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

**URL:** <https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834>\
**Category:** Programming & Scripting\
**Tags:** unreal-engine\
**Created:** [November 7, 2014, 11:59pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834 "2014-11-07T23:59:59Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 7, 2014, 11:59pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/1 "2014-11-07T23:59:59Z")

</div>

![4b996f7710fbd5c76274a9a62eda2d72df9776b9.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/4/b/9/4b996f7710fbd5c76274a9a62eda2d72df9776b9.jpeg)

**Current Version: 4.15, Prior Engine Versions Are Available!**

**4.15 Update**

> **[\[Full Project\] 's UMG Rebindable Key System, Rebind keys at Runtime!](https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime%21&p=672380&viewfull=1#post672380)**
>
> Current Version: 4.15, Prior Engine Versions Are Available! 4.15 Update https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=672380&viewfull=1#post672380 \*\*Major Update ~...

```auto

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

https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=492721&viewfull=1#post492721

```

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

> **[\[Full Project\] 's UMG Rebindable Key System, Rebind keys at Runtime!](https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime%21&p=430656&viewfull=1#post430656)**
>
> Current Version: 4.15, Prior Engine Versions Are Available! 4.15 Update https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=672380&viewfull=1#post672380 \*\*Major Update ~...

```auto

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

https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=423187&viewfull=1#post423187

:)

```

**Major Update ~ Multiple Keys Per Mapping**

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

> **[\[Full Project\] 's UMG Rebindable Key System, Rebind keys at Runtime!](https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime%21&p=334917&viewfull=1#post334917)**
>
> Current Version: 4.15, Prior Engine Versions Are Available! 4.15 Update https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=672380&viewfull=1#post672380 \*\*Major Update ~...

```auto

**Major Update ~ Axis Mappings**

I've added support for Axis Keys!
https://forums.unrealengine.com/showthread.php?51449-Full-Project--s-UMG-Rebindable-Key-System-Rebind-keys-at-Runtime!&p=334917&viewfull=1#post334917

```

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!

```auto

**Video**

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 -&gt; Input!

And!

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

Hj969IfWhVc

```

**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!

```auto

**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

♥

```

**Download**

Here’s the full project for you!

**Wiki Link to Download Page**

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — https://unrealcommunity.wiki/! You will be able to find content from...

```auto

**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-&gt;Input**

```

**Victory BP Library**

**UE4 Forum Link**

> **[(39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!](https://forums.unrealengine.com/showthread.php?3851-%2839%29--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required%21&p=176137&viewfull=1#post176137)**
>
> Dear Community, 🌟 Newest Awesome Feature 🌟 (In this Complimentary (no cost) Victory Plugin!) Now You Can Get the Text Output (STDOUT or STDERR) from any .exe program, straight into Unreal Engine! This is the output of ⚡ a video compression...

❤

---

<div class="post-metadata">

**Author:** ![Demolition\_Man](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Demolition\_Man](https://forums.unrealengine.com/u/Demolition_Man)\
**Post date:** [November 8, 2014, 12:33am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/2 "2014-11-08T00:33:48Z")

</div>

This is an awesome job! Thanks!

---

<div class="post-metadata">

**Author:** ![Devero](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Devero](https://forums.unrealengine.com/u/Devero)\
**Post date:** [November 8, 2014, 1:27am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/3 "2014-11-08T01:27:04Z")

</div>

Nice work. This will be handy. 😃

---

<div class="post-metadata">

**Author:** ![ChrisTm](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ChrisTm](https://forums.unrealengine.com/u/ChrisTm)\
**Post date:** [November 8, 2014, 4:36am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/4 "2014-11-08T04:36:17Z")

</div>

Thank you so mush

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [November 8, 2014, 11:12am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/5 "2014-11-08T11:12:11Z")

</div>

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

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 🙂

---

<div class="post-metadata">

**Author:** ![Fen](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/fen/32/635651_2.png) [@Fen](https://forums.unrealengine.com/u/Fen)\
**Post date:** [November 8, 2014, 12:43pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/6 "2014-11-08T12:43:24Z")

</div>

Thank you ! On my way to try it ^^

---

<div class="post-metadata">

**Author:** ![Jacky](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/jacky/32/918690_2.png) [@Jacky](https://forums.unrealengine.com/u/Jacky)\
**Post date:** [November 8, 2014, 1:39pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/7 "2014-11-08T13:39:05Z")

</div>

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![SaxonRah](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@SaxonRah](https://forums.unrealengine.com/u/SaxonRah)\
**Post date:** [November 8, 2014, 3:10pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/8 "2014-11-08T15:10:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 9, 2014, 2:14am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/9 "2014-11-09T02:14:26Z")

</div>

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

🙂

> [@Diat Funa;176293](#):
>
> Hi ! Many thanks for your Rebindable Key System.
> 
> 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…

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.

> [@Kris;176269](#):
>
> I planned on adding proper key binding this week, so your timing is awesome 🙂
> 
> 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 🙂

You’re welcome Kris!

> [@Jacky;176308](#):
>
> Thanks a lot !

Hee hee!

> [@Fen;176294](#):
>
> Thank you ! On my way to try it ^^

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

> [@SaxonRah;176335](#):
>
> Great job mate : ) this will be of use to so many. thanks for the great free content!

You’re welcome SaxonRah! 🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 9, 2014, 3:08am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/10 "2014-11-09T03:08:42Z")

</div>

```auto

**Video**

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 -&gt; Input!

And!

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

https://youtube.com/watch?v=Hj969IfWhVc
```

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [November 9, 2014, 6:34am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/11 "2014-11-09T06:34:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 9, 2014, 11:52am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/12 "2014-11-09T11:52:51Z")

</div>

> [@Kris;176593](#):
>
> One thing I just noticed is that this implementation doesn’t include axis mappings - e.g. MoveForward.  
> I’m sure will sort that though 😛

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

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [November 9, 2014, 12:06pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/13 "2014-11-09T12:06:01Z")

</div>

> [@;176662](#):
>
> Yea I didnt do Axismappings yet, and that will be more C++ to do that 🙂

Yep.  
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.  
Hmm…

---

<div class="post-metadata">

**Author:** ![Tesla](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Tesla](https://forums.unrealengine.com/u/Tesla)\
**Post date:** [November 9, 2014, 1:18pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/14 "2014-11-09T13:18:03Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [November 9, 2014, 2:46pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/15 "2014-11-09T14:46:55Z")

</div>

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

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/4X/4/9/8/498c1effd301d2e734a8224db017abd5ef616018.jpeg)  
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! 🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 12, 2014, 9:33am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/16 "2014-11-12T09:33:55Z")

</div>

> [@Kris;176708](#):
>
> Here it is a screenshot of a modified version that adds the axis mapping:
> 
> [http://www.groundbranch.com/wp-content/uploads/2014/11/dev\_ui\_20141110a.jpg](http://www.groundbranch.com/wp-content/uploads/2014/11/dev_ui_20141110a.jpg)

This is a great pic Kris!

Very stylized / polished look!

Awesome work!

❤

---

<div class="post-metadata">

**Author:** ![Ixiguis](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Ixiguis](https://forums.unrealengine.com/u/Ixiguis)\
**Post date:** [November 15, 2014, 3:28am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/17 "2014-11-15T03:28:14Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![Xendran](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Xendran](https://forums.unrealengine.com/u/Xendran)\
**Post date:** [November 15, 2014, 4:03pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/18 "2014-11-15T16:03:46Z")

</div>

This is so great. I love it.

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 22, 2014, 6:14pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/19 "2014-11-22T18:14:25Z")

</div>

> [@Xendran;179793](#):
>
> This is so great. I love it.

Yaay!

> [@Ixiguis;179647](#):
>
> 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!

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

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [November 29, 2014, 9:29am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/20 "2014-11-29T09:29:26Z")

</div>

Reminder about this free Key Rebinding project that I did for you all!

**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

❤

```auto

**Download (UE4 Engine Version 4.5)**

Here's the full project for you!

**Wiki Link to Download Page**
https://wiki.unrealengine.com/File:ReBindableKeys.zip

```

**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**

❤

[Next page](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834.md?page=2)
