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

Current Version: 4.15, Prior Engine Versions Are Available!

4.15 Update

**Major Update ~ Assorted fixes contriubted by community members:**


Major Update ~ Added 3 New Nodes for Finding and Removing Key Bindings

**Major Update ~ Support for Mouse Inputs, LMB, RMB, MMB, MouseX, MouseY**



Major Update ~ Multiple Keys Per Mapping

I’ve added support for rebinding a mapping during runtime which has multiple keys associated with it!

**Major Update ~ Axis Mappings**

I've added support for Axis Keys!

Dear Community,

I am giving you a full sample project as a download (8mb) where I’ve created a fully functional UMG Key Rebinding System!

You can click on the name of any key and then simply enter a new one on the keyboard/gamepad (just pressing the button itself that you want to be the new binding!

And I do track ctrl,alt,shift, and command!

And the list is scrollable too!


This video demonstrates how my Runtime Rebindable Key System does actually have a scrolling feature!

You can have infinite key bindings in your list!

I also demonstrate how easy and fast it is to add new keybindings usig Project Settings -> Input!


**Remember that I am giving you this whole project for your own use!**


Rebind Actions During Runtime

And best of all, because of my Victory BP Library nodes, the changes you make in the Key Rebinding Menu instantly update the ingame character input component!

So if you rebind Jump from spacebar to page up, it takes effect instantly!

**Why Am I Giving This For Free?**

Because its really important feature for any game and I just finished figuring out how to do it for Solus.

I figured you would enjoy it as well, since it was honestly not that easy to do, and I had to really think about how to do both the UMG and the actual C++ code to dynamically update action mappings during runtime



Here’s the full project for you!

Wiki Link to Download Page

**How To Use My Menu**

Go in game and press the K key!

Click on the black and red buttons to rebind the jump button!

Add new actions any time using **Project Settings->Input**

Victory BP Library

UE4 Forum Link



This is an awesome job! Thanks!

Nice work. This will be handy. :smiley:

Thank you so mush

I planned on adding proper key binding this week, so your timing is awesome :slight_smile:

And thank you for your earlier work on GetAllWidgetsOfClass() and explanation behind its use.
I’m now using it for a basic loading screen in Ground Branch.
Works well :slight_smile:

Hi! Many thanks for your Rebindable Key System.

I’ve tried it and I’ve found 2 little “problems”.

1- If I press K when I walk, the character keeps walking. It’s easy to fix.
2- Is it possible to avoid multiple key binding? At the moment we can use the same Input Key for every action…

Thank you ! On my way to try it ^^

Thanks a lot!

Great job mate : ) this will be of use to so many. thanks for the great free content!

Great to hear from you Demolition Man, Devero, and !


You have the whole project as a download, do whatever you want to it!

I personally like having ability to bind same key to multiple actions, its really important in games that have multiple modes. You can stop the action from firing based on some internal way of tracking what game mode you are in.

You’re welcome Kris!

Hee hee!

Enjoy Fen! Feel free to post what you do with it!

You’re welcome SaxonRah! :slight_smile:


This video demonstrates how my Runtime Rebindable Key System does actually have a scrolling feature!

**You can have infinite key bindings in your list!**

I also demonstrate how easy and fast it is to add new keybindings usig Project Settings -> Input!


**Remember that I am giving you this whole project for your own use!**


One thing I just noticed is that this implementation doesn’t include axis mappings - e.g. MoveForward.
I’m sure will sort that though :stuck_out_tongue:

Yea I didnt do Axismappings yet, and that will be more C++ to do that :slight_smile:

Looking at other potential issues too, such as duplicate entries for Stop/Start commands etc.
Can be fixed when input component is init’d, but it may pay to create a way to bind two or more actions under to key.
Looking at the UT source, they’ve have a system for this, but you have to manually put them together.

! This is fantastic! This feature should be added by default to the engine for blueprints. Looking forward to the axis mappings getting added!

Here it is a screenshot of a modified version that adds the axis mapping:

Of course, its not supposed to have MoveRight1.0, MoveRight-1.0 etc.
I am trying to pass it into a “Find Text in Localization table” Blueprint node to get a proper command name.

Has anyone had any luck using one?
Can you actually set the Namespace & Key manually so you can test things properly?

Can’t seem to info on it speficically, though I have found the GatherText commandlet thingy.
And who do you think I came across why looking into it?
You guessed it… .
The bugga gets everywhere! :slight_smile:

This is a great pic Kris!

Very stylized / polished look!

Awesome work!


I’m currently moving the interface on our game from code to UMG, and already added this. Took me 2 minutes, great work! Thank you very much for sharing!

This is so great. I love it.


Your’re welcome Ixiguis, yaay! Glad you are enjoying it!