Thanks, yes the demo scene seems fine It requires F key to be pressed, but no auto pick up to compare to (unless it can be activated). My project uses auto pick up. I implemented API equip to my code Rifle/Machine gun buttons as my own code for pick up and shooter code initially had an issue. My code (using different method here), switches sound and gunspawn component for: rifle/sword unequipped - this is attached directly to the camera to spawn bullets from centre of the screen. This makes it tricky to disable/enable tagged components with colliders (not directly attached to player so my collider based system (on trigger other type code) for detect equip status was not possible - The player would fire unequipped. Adding these API's rescued the situation as its now not possible to be unequipped upon pick up or switching shooter / sword, so works much better. It works very well but the scroller could lock if button with (API equip rifle (1) method) and fire button held at the exact same time. To avoid this more I have assigned addition direct sword equip API (2) button this will unlock the state if locked. I have a UI text stating the direct rifle or sword buttons to press, so the equip next item scroller is not the main choice so less likely to enter issues. This idea you mentioned 'UltimateCharacterLocomotion.IsAbilityTypeActive<Use>() sounds a good' I may be getting confused here but would I just need to Implement this to the API Unequip/Equip Code or would I need to create a new block type of ability? or both methods perhaps? Actually I think it's the fire animation that need to be blocked as mentioned above API are keeping my player equipped on pick up to avoid firing unequipped. How would I implement a block?