Blueprint-based Key Remapping System

I’ve tried to add this to my 4.11 project and it is currently not possible it seems.

@Blue669, @ElChipacabra Very sorry for a delay.

Current version works on 4.11 very well. I’ve just tested this. Simply add this system to your project and follow the instructions inside tutorials folder.

If you have any questions, fell free to ask :slight_smile:

@AlFlakky Thanks, but the launcher simply does not allow me to add it to the project because it says it is not compatible with version 4.11.

@Blue669, It just writes, that pack is not compatible, but it does allow to add (you can press a button).

Ah ok I didn’t know that this is possible. I’ll try it out, thanks :slight_smile:

After installing. I cannot package my project anymore. The log file says
"MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.04.10-10.56.59:140] 0]LogInit:Display: LogPackageName:Error: DoesPackageExist: DoesPackageExist FAILED: ‘/Game/BlueprintKeyRemapping/ExampleMap/FirstPersonExampleMap (2)’ is not a standard unreal filename or a long path name. Reason: Name may not contain the following characters: "

I’ve already tried to delete every file from the BlueprintKeyRemapping directory that isn’t required but I still get the packaging error.

Edit: I was able to get rid of this issue. Even though the Content Browser didn’t show the file, it was still there when I was going to the folder with the Windows Explorer. Deleting it in Windows removed this issue and I was able to package the project again. You still might want to check into this for other customers though.

@AlFlakky I’ve now successfully added the keybinding to my game. It seems to work really well, expect for some oddities I’ve come across.

1.) For some reason Mouse Wheel Up and Mouse Wheel Down are not recognized by the system. It is also very hard to bind these in the menu. For some reason you have to scroll around a lot until the system recognizes it and even then it doesn’t say “mouse wheel up” or down in the menu but instead mouse wheel axis or something. Not sure what is wrong there but it would be awesome if you could tell me how to sort this issue out.
2.) Same goes for Mouse buttons. You have to click repeatedly until it gets recognized and after that the menu seems to be broken and a simple click on the “add” button just adds RMB over and over.
3.) For some reason, the gamepad Look (right thumbstick) axis seem to be hardcoded to the mouse X and Y turn rates. This is really bad because in my game you can activate “invert mouse” option which turns gamepad looking upside down as well. I’ve tried adding my own gamepad axis to have it exactly like the default Unreal Engine input system (which has special TurnRate for gamepad looking), but as I’ve said it seems to be hardcoded to use mouse turn rates and my new axis are ignored by the system entirely. Am I doing something wrong or can this be fixed?

Also when I package the project, I get these warnings
"MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.04.11-14.29.57:575] 0]Warning: Unknown property in St_ActionInput: Pressed_6_1A976E184A33E276B7F9FB91902216B9=False,Identifier_15_CDBB2A5547B999D2F5C3B89653A816CF=,VisualName_18_3D3E59D6467BB3C800A636A1208DD72F=)
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.04.11-14.29.57:575] 0]Warning: Unknown property in St_AxisInput: Analog_3_5A2ECA434C749DB4FEAEC0A9A146E803=,Positive_7_8B1C77264E2FA601926856BB7912404A=,Negative_11_3713F3B04AF23F6E602077A20E5B67FD=,Value_14_F2955B184DC07286C2AB5C9AA
MainFrameActions: Packaging (Windows (32-bit)): B9710D9=0.000000,Identifier_18_CA84D980475F677984783BB8783ECD3D=,VisualPosName_21_8046C5E843B7C934B629ED81E5C7881B=,VisualNegName_25_4230A0C948BA8BD8C5FB0B8E86AFE43A=)
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.04.11-14.29.57:576] 0]Warning: Unknown property in St_AxisInput: Value_14_F2955B184DC07286C2AB5C9AAB9710D9=0.000000,Identifier_18_CA84D980475F677984783BB8783ECD3D=,VisualPosName_21_8046C5E843B7C934B629ED81E5C7881B=,VisualNegName_25_4
MainFrameActions: Packaging (Windows (32-bit)): 230A0C948BA8BD8C5FB0B8E86AFE43A=) "

Not sure what that means and what can be done about it, but it was still able to package successfully.

Overall I’m very happy with the system and it was very easy to implement it in my already existing game. If you can fix these few oddities I’ll rate you 5 stars :slight_smile:
Keep it up!

PS: Please do not add some sort of modifier keys or something. This would only confuse players because it is very uncommon to have “sprint = W+shift” or something. It would only clutter up the clean display and would confuse players. If someone wants a sprint option in their game, simply add a “sprint” event which is triggered by an action input key that alternates your movement speed or something. Thank you and have a great day!

@Blue669,

  1. I’ll take a look at that.
  2. I do not have this kind of problem. It recognize my mouse on the first try.
  3. They are not hardcoded at all. I just turned them off as an example, that user can hide/show some actions. Take a look at default settings data table, you will see “Show in settings menu” option.

@AlFlakky Thanks for the response!
I was able to bind gamepad looking successfully now after pressing “reset” in the configuration. For some reason it had saved my old settings and that made testing not accurate.

Mouse buttons and mouse wheel seem to be the only problems that I still have. Do you think it has something to do with the UMG? Currently I have only imported your UI into my own setup screen and changed a few buttons to make it work. It works wonderful, but I have noticed UMG has some problems with recognizing mouse button input sometimes.

Thanks for your help :slight_smile:

No, it might be my mistake. I’ll check.

Yes, it is my mistake. I’ll send a new version to epic soon. Follow this thread.

ActionInputs while paused

Hey @AlFlakky — I’ve been using the your remapping system for a few months now and it has been working really well. Thank you for putting this together.

Came across an issue that I figured out how to solve and I thought I’d share it with the community. I’ve been using the start button to pause the game and go to my main menu. I set this up in game, and I can pause just fine, but the ActionInputs component stops ticking on pause so the binding never fires. I’ve even tried toggling SetGlobalTimeDilation between 0 and 1 instead of paused—this doesn’t work as well, as time still moves (though at 1/50th the speed).

I did a quick google search and discoverered a node for components that I added into ActionInput Event BeginPlay that made everything happy:

Hope this helps someone else. :slight_smile:

Thanks a lot! Some of my players have reported the same issue and I wasn’t able to find a fix! Great job :slight_smile:

Working great so far, I’ve gotten to pulling it up with my custom fps pawn and remapping controls. Any pre-built or recommended/ideas on navigating the settings menu with a controller/button instead of a mouse/click?

You mean console-like navigation type? Unfortunately I have not implemented this, but I guess you can make this by your self, using pre-built unreal navig. system. I’m not pro at this, though… I’ll take a look at this and try to make something :slight_smile:

I was about to buy this, but I had this exact same question. Any plans to implement this? If so I will definitely purchase this package.

Having the weirdest issue implementing this in a new project, I feel like I had this issue before and resolved it, must be unclear on configuration. I’m trying to add a new input. Step 1 I add it to the DefaultActionInputs table, its Flashlight, I call the rowname identifier and visual name all Flashlight, set ShowInMappingSettings to True assign key F. Step 2, I go to ActionInputs blueprint event dispatchers and add a new one, I call it “Flashlight” and set its “Input” even though tutorial says “Output” to have a boolean “Pressed”, of which matches other defaults like “Fire”. Step 3: I open ActionEvents macro, pull this new dispatcher onto screen select call, then wire to a new Switch string also called “Flashlight” to this call, I also wire the pressed node into the pressed input. It ends up looking like all the other calls. I can now add the action in my Player Blueprint, but it doesn’t show up in remap list and doesn’t fire at all. What am I missing, I swear its one step and it took me hours to find before.

@edencorbin, hello.

Try to reset mappings through mapping menu. It should add new key (it seems that you load old list on start).

That was it, you might want to mention that in the tutorial (part 3) when you update it, as its really hard to see why its not working prior to resetting your inputs in the in game interface.

Will this be updated to 4.14 and future versions?