How to effectively stun the player for a set time?

Essentially, I'm trying to prevent the player from taking any action when stunned. However, all of the tutorials I've seen revolve around stopping the players movement but not their ability to shoot. For my game, I'd want the player to be completely stunned, but I have no idea how to manage this. Any tips?
 
As a starting point:

1. Have a Stun ability which you would manually start and put this ability at the top of the character's abilities list, preventing many other abilities in the list from starting whilst it's active. In this ability you can also disable input, collisions, unequip items, etc.
2. Use the state system to prevent any other concurrent abilities from starting whilst stunned.
3. You could also add a second Stun ability as an item ability, again at the top of the list, to prevent other abilities like Use and Reload from being usable.
 
Top