Call input multiple times when button/ key is held down (but not every single frame)

Hello guys, I’m looking into ways to do some fancy menus that can be controlled using a gamepad or keyboard. As the player will naturally be scrolling through menus every now and then, I need to find a way to have my inputs fire multiple times while the corresponding input key is held down. Sadly, your standard Input Action event only fires once when pressed, and once when released, and Input Axis events fire every single frame.
However, I’m trying to find something similar to the way this textbox I’m typing in right now behaves. When I press and hold a key, let’s say the A key, it immediately prints one A and then has a delay of X. After the delay, it begins rapidly printing As with a very short delay of Y in between. If I hit a different key, it will start doing the same with that key, and completely disregard the A key, even if I let go of the other key again.
I tried doing this manually once, but I ended up having three new boolean variables per possible input, and I had to manually copy and paste the entire thing for every possible input (which, of course, is super bad and demotivated me enough to drop the project altogether). I think that there’s gotta be an easier way since making menus for console is pretty much impossible otherwise, but I haven’t found out how to do it.

Can somebody help me out here?

You press space key, code sets value for eg: space_bar_pressed? to TRUE
When you release set space_bar_pressed? to FALSE

Then either create timer, or do this in event tick (like every 0.25 sec process buttons pressed, sequence is godsend for such stuff)
So every 0.25 sec while space_bar_pressed? is true do your stuff in menu.

I know that that’s a way to do it, but this again uses a specific variable for every possible event and you have to copy/ paste the code for every single possible event. That’s what I’m trying to avoid here. Given that this is a basic Windows feature I was thinking there would be some project setting or other elegant solution to enable this in Unreal, but apparently there isn’t.

Do even big budget Unreal developers have to use custom systems like this? Or is it possible only if you use C rather than Blueprints? Because I really can’t believe that there is no better way…

This seems to work well enough:

Unless I misunderstood something.

Looks great already, but I was looking for a way to do it with Input Actions instead of hardcoded keys, Thankfully, I’ve found a way to do that:

Now there just is the problem that UE 4.21 seems to have broken my way of using a Switch Pro Controller… but that’s something for a different thread, since this problem here has been solved.

When using a timer, I wonder if it’s best to clear out inactive timers, rather than load a timer for each key and then it runs forever, even after release. For example: