# \[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:** 4

<div class="post-metadata">

**Author:** ![gmc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gmc](https://forums.unrealengine.com/u/gmc)\
**Post date:** [October 21, 2015, 8:41pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/61 "2015-10-21T20:41:02Z")

</div>

Ok, I have the Mouse Wheel Working, you can’t get the key, so you have to use the Mouse Wheel Delta to determine if its up/down. And I think your already using this, but for anyone reading this, to get when you use the Wheel, you have to get the Override OnMouseWheel.  
 ![6af946fcd2963d4d06e5b5e66616ffd88cf03034.jpeg](https://d1ap1mz92jnks1.cloudfront.net/images/transparent.png)

---

<div class="post-metadata">

**Author:** ![arbopa](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@arbopa](https://forums.unrealengine.com/u/arbopa)\
**Post date:** [October 22, 2015, 3:57am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/62 "2015-10-22T03:57:02Z")

</div>

Nice work, clever. Having trouble figuring out what you set the pin type to in the second one to get it to have the mouse key pair as output.

Nevermind, it is type Key.

---

<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:** [October 25, 2015, 11:23am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/63 "2015-10-25T11:23:47Z")

</div>

> [@gmc;404605](#):
>
> Ok, I have the Mouse Wheel Working, you can’t get the key, so you have to use the Mouse Wheel Delta to determine if its up/down. And I think your already using this, but for anyone reading this, to get when you use the Wheel, you have to get the Override OnMouseWheel.  
> ![6af946fcd2963d4d06e5b5e66616ffd88cf03034.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/6/a/f/6af946fcd2963d4d06e5b5e66616ffd88cf03034.jpeg)

Thank you for helping people out in my thread gmc!

Much appreciated!

🙂

---

<div class="post-metadata">

**Author:** ![gmc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gmc](https://forums.unrealengine.com/u/gmc)\
**Post date:** [October 25, 2015, 6:17pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/64 "2015-10-25T18:17:03Z")

</div>

> [@;406803](#):
>
> Thank you for helping people out in my thread gmc!
> 
> Much appreciated!
> 
> 🙂

Anytime! Especially since the question was about one of my posts! I’m always available to help if anyone needs it! (As long as it’s BP only :D)

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33d428af1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33d428af1](https://forums.unrealengine.com/u/anonymous_user_33d428af1)\
**Post date:** [October 27, 2015, 4:33pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/65 "2015-10-27T16:33:48Z")

</div>

Quick question i hope! I used your rebinding library, which works very well. I am having issues with combinations of keys in a mapping though, such as CTRL + F etc… It does work in your example, but my key down event already gets triggered before i can press anything besides CTRL… It does work if i press the keys before i press the rebind button… Do you have anything special configured in your example project that i should know of? I am on version 4.8.3 by the way. I already tried using GetInputKeyTimeDown to give it time to get the additional keys as well, which i check in the keydown event, but it doesn’t get triggered often enough which makes the time for binding way too long.

Thanks for any help!

---

<div class="post-metadata">

**Author:** ![gmc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gmc](https://forums.unrealengine.com/u/gmc)\
**Post date:** [October 27, 2015, 8:48pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/66 "2015-10-27T20:48:56Z")

</div>

If I’m reading this correctly, you’re trying to get a double binding right? (IE. RMB + G,) Or are you just trying to get CTRL, SHIFT, ALT, or CMD with a separate button? (G + ALT) If it’s the second, there are separate buttons you click to get those (to the right of the binding) As for the first, I don’t know if you can do a double binding (at least I can’t with my setup since I can only have one Key for the Make VictoryInput and there is no Append or anything to combine multiple Keys); although it sounds like you have it working sometimes

> [@](#):
>
> It does work if i press the keys before i press the rebind button…

Mind posting, and I’ll see if I can fix it in BPs, or we may need to re-code the Input to allow multiple keys/add a way to combine Keys! (Which I don’t even know if that’s possible since in the Project Settings, you’re only allowed to have one Key, unless I’m missing something!)

---

<div class="post-metadata">

**Author:** ![gmc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gmc](https://forums.unrealengine.com/u/gmc)\
**Post date:** [October 27, 2015, 9:18pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/67 "2015-10-27T21:18:57Z")

</div>

If Im reading this correctly, you’re trying to get a double binding right? (IE. RMB + G,) Or are you just trying to get CTRL, SHIFT, ALT, or CMD with a separate button? (G + ALT) If it’s the second, there are separate buttons you click to get those (to the right of the binding) As for the first, I don’t know if you can do a double binding (at least I can’t with my setup since I can only have one Key for the Make VictoryInput and there is no Append or anything to combine multiple Keys); although it sounds like you have it working sometimes

> [@](#):
>
> It does work if i press the keys before i press the rebind button…

Mind posting, and I’ll see if I can fix it in BPs, or we may need to re-code the Input to allow multiple keys/add a way to combine Keys!

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33d428af1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33d428af1](https://forums.unrealengine.com/u/anonymous_user_33d428af1)\
**Post date:** [October 28, 2015, 8:49am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/68 "2015-10-28T08:49:44Z")

</div>

I am only looking into combinations of CTRL, SHIFT, ALT, or CMD and another key, which is supported by’s plugin. Note: you can push the button and press CTRL + F and it correctly marks the keybinding as being CTRL + F, no need for doing checking the checkbox. Somehow every UMG example i make myself doesn’t work as explained above. It suspect it has to do with the way combinations of keys are handled by UE4

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_33d428af1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_33d428af1](https://forums.unrealengine.com/u/anonymous_user_33d428af1)\
**Post date:** [October 28, 2015, 7:14pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/69 "2015-10-28T19:14:58Z")

</div>

I think i found out what is the problem with my code compared that of. 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 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’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.

---

<div class="post-metadata">

**Author:** ![gmc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gmc](https://forums.unrealengine.com/u/gmc)\
**Post date:** [November 6, 2015, 5:42am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/70 "2015-11-06T05:42:35Z")

</div>

> [@;402603](#):
>
> I haven’t done a 4.9.1 upgrade, you can just get the latest version of my Victory Plugin as it has all the nodes used in this project  
> 🙂

Hey, 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 🙂

---

<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 6, 2015, 6:00am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/71 "2015-11-06T06:00:46Z")

</div>

> [@gmc;415125](#):
>
> The full Victory Plugin is ~956mb)

My original project uses my Victory plugin though 🙂

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.

🙂

I

---

<div class="post-metadata">

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

</div>

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

---

<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, 2015, 8:03am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/73 "2015-11-07T08:03:58Z")

</div>

> [@gmc;415473](#):
>
> That worked! However, for some reason, if I deleted the intermediate folder itself, it gave me an error, so I just deleted everything inside 🙂  
> Now its only ~100mb!  
> Thanks !

You’re welcome gmc!

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

🙂

---

<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 17, 2015, 9:39am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/74 "2015-11-17T09:39:12Z")

</div>

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

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

**Video**

Hj969IfWhVc

```

**Axis Mappings**

 ![78e4afd1f68c16c666acb4a5fe6badb7773ab16f.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/8/e/78e4afd1f68c16c666acb4a5fe6badb7773ab16f.jpeg)

```auto

**Action Mappings**

![4b996f7710fbd5c76274a9a62eda2d72df9776b9.jpeg|1280x960](upload://aMMxJEx5JIhK597MhCvxRiIV05b.jpeg)

```

**The Nodes**

 ![8ecc5dd055a307c7df41b32c70e56ddba193b6f4.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/e/c/8ecc5dd055a307c7df41b32c70e56ddba193b6f4.jpeg)

```auto

Have fun today!

♥
```

---

<div class="post-metadata">

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

</div>

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?

Thanks!!

---

<div class="post-metadata">

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

</div>

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)

---

<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 20, 2015, 3:23am UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/77 "2015-11-20T03:23:42Z")

</div>

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!

\*\*❤ Thank you gmc! ❤ \*\*

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

\*\*Wiki Download Link \*\*

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

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

```

**Video**

[![](https://d3kjluh73b9h9o.cloudfront.net/original/4X/1/5/e/15e4f00d402929b84a0e3c30016702c3f84a5fc2.jpeg "RamaRebindKeys") ](https://www.youtube.com/watch?v=Hj969IfWhVc)

```auto

Have fun today!

♥
```

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_2aa32ab8](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_2aa32ab8](https://forums.unrealengine.com/u/anonymous_user_2aa32ab8)\
**Post date:** [November 21, 2015, 1:23pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/78 "2015-11-21T13:23:23Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![DamirH](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/damirh/32/906591_2.png) [@DamirH](https://forums.unrealengine.com/u/DamirH)\
**Post date:** [November 21, 2015, 4:22pm UTC](https://forums.unrealengine.com/t/full-project-s-umg-rebindable-key-system-rebind-keys-at-runtime/14834/79 "2015-11-21T16:22:30Z")

</div>

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?

---

<div class="post-metadata">

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

</div>

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.

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

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