A downloadable tool

Buy Now$14.99 USD or more

What it does

Unreal 5.8 deprecates legacy Action and Axis input and ships no way to convert it. Tick the deprecated box and every legacy input node in your Blueprints raises a warning; the engine tells you what is wrong, stops you adding more, and leaves the rewire to you.

This does the rewire. It reads the mappings you already have, generates the InputAction assets and the mapping context, rewires the legacy Blueprint event nodes in place, recompiles everything it touched to prove the result builds, and writes nothing at all if any compile fails. Everything it will not guess at is listed and counted rather than silently skipped.

What one run does, measured

On the demo project in the screenshots:

  • 46 legacy key bindings across 22 names become 20 InputAction assets and one IMC_Default context holding 45 rows
  • 38 legacy event nodes across 6 Blueprints rewired, 38 pin links moved, each new node placed exactly where the one it replaced stood, so your layout survives
  • 6 Blueprints recompiled, 0 errors, 27 packages saved
  • 19 things refused and listed in 4 kinds, each with its file and line or its asset and graph
  • one journal file naming all 21 created assets and all 6 modified Blueprints, with a byte-for-byte backup of each, and a -Undo that puts it back

What makes it safe to accept

It refuses rather than guesses. Native C++ BindAction call sites are listed by file and line, never rewritten. A modifier-key chord, a Get Input Axis Value read, a connected axis value pin on a folded pair, an ambiguous pairing, an asset already at the destination path: all reported, none guessed.

It cannot half-write. Assets are built in memory, every graph is rewired and recompiled, and only a completely clean result reaches disk. A rollback is the absence of a write, which is the one kind of rollback that cannot itself fail halfway.

It backs up before it touches anything. If a backup cannot be taken the run refuses to write.

It tells you the two things a migration cannot fix. A legacy axis event fired every tick including at rest and Enhanced Input does not; a legacy axis value was a float where a folded 2D action delivers a Vector2D. Both are stated in the report with every affected node listed, and -NoPairing migrates mechanically if you prefer.

Use it

Three console commands in the editor:

EnhancedInputMigrator.Preview
EnhancedInputMigrator.Apply
EnhancedInputMigrator.Undo

Preview changes nothing at all: in the editor it reads your graphs rather than rewiring them, so a preview cannot leave you holding changes you were told were never made. Start there and read the report. The commandlet's -Preview also recompiles, which is the one check that needs the rewire.

Or headless, for CI, with a real exit code:

UnrealEditor-Cmd.exe MyProject.uproject -run=EIM -Preview
UnrealEditor-Cmd.exe MyProject.uproject -run=EIM -Apply

0 clean, 1 bad arguments, 2 nothing to migrate, 3 completed with refusals, 4 rolled back after a compile failure, 5 could not read or write. An unrecognised switch is a hard error, never a silent default.

What you get

Full C++ source, raw and readable: one editor module, 10 private translation units, 10 public headers, and 14 automation tests across 2 suites that ship with it. No content, no Blueprints. Documentation: https://github.com/onefreeman1337/csaf-releases/blob/main/docs/enhanced-input-migrator/README.md

Requirements

Unreal Engine 5.8, Windows. That is the only version this plugin has been built and run against, so it is the only version it claims. The Enhanced Input plugin must be enabled, which it is by default in 5.8.

More from Core Systems Asset Factory

The rest of our Unreal Engine tools, and our games: csaf.itch.io

Code and graphics for this product were AI generated.

Purchase

Buy Now$14.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:

enhanced-input-migrator-ue5-plugin.zip 70 kB
Version 1.0.1

Development log

Leave a comment

Log in with itch.io to leave a comment.