What I did for this is create ‘stances’ or ‘modes’ which the player can enter. These control everything from cameras, how movement and interactibility. I’ve got an array of stances (which are based on UObject) and a variable linking to the active one. Each input in the character thunks it to the stance object which then does whatever with it. Each stance object implements things like moving left/right, what jump does, etc.