[Full Release] Input Action Manager


Hi Creators!

The Input Action Manager is now fully released and available to use in your workflows as you’re building cross-platform compatible control schemas! :tada:

For those new to our ecosystem, we released the Input Action System (IAS) this year: a modular, scalable framework where control schemes automatically adapt to players on different hardware. (New to IAS? Check out our guide or our YouTube video.)

The Input Action Manager lets you design, audit, and scale that setup from a single table-style interface, instead of managing instances through code or the Explorer tree.

image7

Thank you for all your excitement and feedback as we’ve been iterating on the tool during our Studio Beta. As part of this full release, we’ve removed “Input Action Manager” from the Studio Beta Features tab. Everyone now has access to this Studio tool by default.

Refresher of the Input Action Manager

The Input Action Manager is a table-style editor for IAS. Your contexts, actions, and bindings for every input schema live in one view, and changes stay in sync with the Explorer.

To open the Input Action Manager, head to the top menu and select Window > Input > Input Action Manager. We recommend keeping IAM undocked or docked at a large size for the best experience!

Once you have it open, you can use this tool for the following use cases:

  1. Build your hierarchy: Create an InputContext, add InputActions, and set each action’s bindings per platform in the table. Use the interface to add more bindings on the same input schema, or bind touch inputs to UI buttons by selecting a touch cell and choosing the button in the Explorer.

    image3

  2. Catch cross-platform problems early: IAM flags actions that are missing a binding for an input schema, and warns you when the same keycode is mapped to more than one action in a context.

  3. Stay focused in your workspace: Filter by context or device to see only the gameplay state or hardware you’re working on. Existing IAS instances in your experience appear automatically, and actions without a context are grouped under a Default Context folder.

Check out our guide or Studio Beta Dev Forum post for more examples of these workflows.

What’s New

Since Studio Beta, we’ve made a number of improvements to enhance your workflows:

  • Live Debugging Support: See what values actions are firing in real-time while in PlaySolo mode through the “State” column in the Input Action Manager. This column only appears during play mode and disappears when you re-enter edit mode.

image2

  • PlayerScripts Visibility: Default input actions from Roblox-provided PlayerScripts (e.g., Move, Jump) now display directly inside the Input Action Manager during both edit-time and run-time, so you can see exactly how your custom controls interplay with Roblox’s default movement actions. These are read-only currently.

:warning: Note: To see this feature, you must be opted into our IAS-converted player scripts. Do this by setting the PlayerScriptsUseInputActionSystem variable to Enabled on Workspace. See this post for more information.

image6

  • UIModifier Support: You can now configure UIModifier instances directly inside the Input Action Manager, alongside your actions and bindings. Modifier controls have been moved to the “Add” button for easier discovery, and the modifier menu has been updated to be more intuitive.

image1

  • Property Editing Support: Properties tied to InputContext, InputAction, and InputBinding instances can now be edited by right clicking on the relevant tree node, or table cell.

image4

  • Easy Access: You can now open the Input Action Manager directly from the properties panel when you are selecting either an InputContext, InputAction, or InputBinding!

image5

  • Undo/Redo Support: Changes made in the Input Action Manager are now tracked via Studio’s change history, so you can undo and redo edits like any other Studio operation.

Known Issues

  • Editing tools are still available in play mode – this functionality is unintended and will be removed.
  • You can currently add new instances under PlayerScripts contexts, even within edit mode – this functionality is unintended and will be removed.
  • The ResponseCurve property isn’t appearing properly in IAM for Direction2D actions.
  • There are some cases where the properties panel & IAM fall out of sync if you are editing both in parallel.

:blue_heart: Made with love

IAM was made possible thanks to hard work from @ProtoValence, @SharpenedbyWater, @uiuxartist, @Dogekidd2012, @RaspberryPie007, @Astonish1656, @jimjamjomj, and @MetaVars.

Please continue to leave feedback, ask questions, or share your amazing creations in the thread below. We can’t wait to see what you build! :heart:

123 Likes

This topic was automatically opened after 10 minutes.

lowky forgot about input action manager since I don’t use it, I don’t even know how I would even bind
like user input service with indexing

10 Likes

Hello engine team, would it be possible to add a ‘Keybinds’ section to the roblox menu while in game?

Integrating the input actions with the menu would let players customize their keybinds in games that utilize the IAS, without the developer having to implement their own rebinding system. Additionally, players will know where to rebind their controls for most games. Instead of each game having to implement their own rebindings and handle it differently. I think this would be a nice value add for both developers and players, because it makes the user experience more consistent.

Please think about it, thanks.

40 Likes

Glad to see this roll out! Can’t wait to tell the core movement scripts player is using a shiftlock, because previous core movement scripts had the api, but the head module has been missing the linking. (Hopefully you can communicate the inputs to the core movement scripts now)

2 Likes

Yes, this is an excellent idea and we do plan to research how to support player customized key bindings in the future.

23 Likes

This very awesome change will done roblox team will done :heart::heart::heart:

2 Likes

Great! Does it finally work with mobile thumbstick/buttons? Does MouseDelta return the delta on GetState correctly now?

When is the InputImage thing releasing? I don’t think I’ve seen that release yet.

Having an editor and debugger is nice, but please don’t force developers to use “centralized” use of it
Developers should still be able to create them via scripts, parent them where they want, and have their own UI for rebinding them
I really don’t want to, khm khm TextChannelWindow situation.
Are there any plans on updating PluginAction, like default binding or having binding editable?

2 Likes

Questions

  1. Is this any more efficient performance and security-wise than UserInputService (& ContextActionService I guess)?
  2. Will previous methods be deprecated in favor of this or will they work parallel alongside it?
  3. If I have a keybinds changing settings system, could players re-map keys if I use this system?
  4. Are side mousebuttons & extra mouse keys finally supported? I’ve had issues with this in the past.
2 Likes

How is it going on fixing the drag detector bug from the last attempt to take my games off the placefilter? Players using drag detectors had all of their movement input sunk and could not walk while carrying props.

2 Likes