As long as button is pressed blueprint

I have a fair number player controls that rely on the “while button is pressed do x” logic. For instance I have a jetpack and a shield. Both have their buttons and both should only be active while the button is pressed.

One of the two I could just append to the Event Tick node in my Event Graph but this doesn’t work as soon as I have two or more problems like this. while loops don’t work because they freeze the game until the loop is done. So my question is, how do I constantly propel the character up or constantly project the shield if the button is pressed?

To add a layer of difficulty, these ‘abilities’ have ‘energy’ attached to them and should reduce at a rate of x per second. I know I can store the delta time of the Event Tick node in a float in a time += detla fashion. Any tips?

Like I said, that Tick only works when I have one thing to do (like the jetpack) but with two things (jetpack + shield) I cant do that anymore. Blueprint won’t let me make a second TickEvent node
Adding a whole bunch of Sequence nodes after the event tick seems bloated.

alot of blueprint stuff seems bloated and looks ugly, thats just the way node graphs work. when i get sick of looking at a spaghetti mess of blueprint nodes, i translate it into c++. but if you want to stay in blueprint, you can clean things up with collapsed graphs, macros, functions, events, or just separate the logic into commented groups of nodes. you can have TickEvent call a sequence node, then each pin on the sequence node can call a custom event. thats about as clean as you can get. if the events are named well, its almost like a table of contents that tells you the order of events without explaining the details.