[Full Project] Rama's UMG Rebindable Key System, Rebind keys at Runtime!

I think i found out what is the problem with my code compared that of Rama. He keeps the binding widget active after the initial key press until you either close the menu or try to bind another key. This ensures that if i press ctrl + F it might not be registered correctly the first event, but afterwards its recognized. Its kind of lame that UE4 doesn’t recognize the combination keys within menu’s though and i now have to build in some delay to give the user the chance to press a combination instead.

Update: i now have added a 0.5 second delay when ctrl, alt, shift or cmd is pressed to register a possible combination instead… Afterwards you have to reclick the button again if you want to rebind again, in Rama’s implementation you can keep rebinding, but i don’t like this since you have to be able to navigate through my menu using keyboard/controllers as well.

Hey Rama, would you mind upgrading this? The full Victory Plugin is ~956mb compared to ~1.9MB with the bindings by them self, so it would save a lot of space for people only using the Bindings, like my self :slight_smile:

My original project uses my Victory plugin though :slight_smile:

The solution is to delete the intermediate folder of the plugin if you find the size of the plugin suddenly jumped. Intermediate is often about 1 GB

But if you package and get an error, and have VS, you should do a full recompile of the plugin only during packaging phase.

Or if you dont have VS, you can use my packaged binaries from the wiki or my media fire version.



That worked! However, for some reason, if I deleted the intermediate folder itself, it gave me an error, so I just deleted everything inside :slight_smile:
Now its only ~100mb!
Thanks Rama!

You’re welcome gmc!

Whoa that’s a neat idea, to not delete the Intermediate folder itself, thanks for letting me know!



4.10 Upgrade completed, Action and Axis Mappings Are Both Supported!

Dear Community,

I’ve upgraded my Rebindable Keys UMG system (which uses my Victory Plugin) to 4.10!

Here’s the download link so you can get the version that is right for you!

**Wiki Download Link **



Axis Mappings


**Action Mappings**


The Nodes


Have fun today!



Thanks so much for this!

I’m having an issue, though, that I’m not sure if it’s actually doable or if I’ve just missed it somehow. Is there any way to bind click events? For example if I use the left mouse button to shoot a gun and then for some reason change that to shift, I can’t change it back to the left mouse button. Or can I simply disable the ability to change the binding of certain events?


Hello Halokllr! If you scroll up, I have 3 pictures on how to bind mouse clicks, mouse X, mouse Y, and Mouse Wheel! (the Wheel is a little further down than the others) As for your second Q, do you want to make certain keys not bindable? (like locking space to only jump)

Mouse Button Presses and MouseX and MouseY Are Now Supported!

Dear Community,

My Rebindable Keys project now officially supports mouse input events!

Community Member gmc has integrated his support for MouseX, MouseY, LMB, RMB, and MMB into my Rebindable Keys project!

**:heart: Thank you gmc! :heart: **

Here’s the download link so you can get the latest version:

**Wiki Download Link **

**List of Project Features**

1. **Action Remapping** during runtime, such as from an in-game key re-binding menu
2. **Axis Remapping** during runtime, any time!
3. Support for Mouse input events to be binded to actions or axis mappings!


Have fun today!



why you are good at every thing … and u make it free . such a generous person … Rama for the best

From what I see these don’t persist over map changes, correct? I have to do something in the new map for it to trigger there?

It works for me, my bindings are still the same after I change them and then open a new level. They should not change on a new level since it actually changes the bindings in the project settings! Make sure they are saving when you set them (try them out before changing level) also do you have special options for level load? I don’t know if that would affect anything but worth a check.

Thank you very much!

For me, the settings not only persist across map changes, they persist even when I shut down computer and then reopne the project :slight_smile:

It’s all tied to the DefaultInput.ini file, you should make sure yours is getting updated / is not version controlled


Hee hee! Nice to hear from you! MuhammadMadi!

You’re welcome! And welcome to the forums!


New Wiki Download ~ Mouse Input Fix

Dear Community,

I’ve just uploaded a fix so that mouseX and mouseY wont get bound to lots of stuff, so if you have that issue, make sure to get the latest on the wiki!

Wiki Download Page


Hi Rama!
I’m having a go at adding controller support to my project by adding extra inputs to each mapping (as you can see in the 1st image). However the ‘Victory get all action keybindings’ node puts them in a weird order. I can work around it but it feels like a bug.

Here in the logs from bottom to top I’m expecting gamepad right shoulder to be the 2nd entry, but all apart from right trigger puts themselves right at the end :confused:


I can re-arrange the bindings in DefaultInput.ini HOWEVER they always re-arrange themselves to be in alphabetical order.
So say I have a binding that has gamepad right trigger then H, if I rebind the H to F then those bindings will automatically switch around to be in alphabetical order and mess up my rebindings system. :frowning:
If there is a way to disable this auto arrange nonsense that would be great. And sorry Rama it’s probably epics doing rather than yours, the victory plugin has been amazing so far!

you working on solus? :confused:

It’s probably the version control. I suppose I need to check out the file in the Input Settings? I’ll just check if the file changes when I set my bindings. I am pretty sure that when I set them, they work for that run, but as soon as I stop playing they revert. Gonna try it out and report.

The auto-rearranging happens in this part of the code, I believe:


This is in UInputSettings

I can’t prevent Epic’s code from doing this very easily :slight_smile:

Very nice to hear from you though!

If you want to write your own implementation that doesnt re-alphabetize you’ll want to look in InputSettings.h / .cpp


Yup I’m part of the Solus team :slight_smile: