[Studio Beta] No-code Hotkey Hints With InputActionLabel


Hi Creators!

You can now easily build cross-platform UI that displays the correct bindings for all InputActions! :tada:

Players often have multiple input devices connected at once, and can switch between them mid-gameplay – connecting a gamepad, then reaching back for the keyboard. Showing a player which key or button triggers an action used to require a lot of manual work: calling GetImageForKeyCode, resolving the right binding per device, wiring up signals for device switches, and toggling between text and image states yourself.

Now you can skip all of that by adding a single InputActionLabel instance! Point it at an InputAction, and it displays the right hotkey no matter what device your players are on. It uses new APIs on the Input Action System that tracks the player’s current and preferred input device (similar to PreferredInput), so your hints stay correct without any device-switch logic from you.

Use this to easily build your HUD, ability bars, or interaction prompts.

There are three pieces to this release:

Keep reading for more details!

2026-07-31 10.54.21 (3)


How to Enable the Beta

  1. Navigate to File > Beta Features.
  2. Find and check the box for InputActionLabel.
  3. Restart Roblox Studio when prompted.

:warning: During this Studio beta period, InputActionLabel is non-publishable – you can experiment with it in Studio, and once we release to the client it’ll be available in published experiences. PreferredBinding on InputAction and DisplayName/DisplayImage APIs on InputBinding are live in production, so you can use these in your live experiences today if helpful in your workflow!

InputActionLabel

InputActionLabel is a new UI instance that inherits directly from GuiObject and automatically renders keybinding information from an InputAction’s preferred binding. (If you’re new to the Input Action System, check out our documentation here, or watch our tutorial on Youtube.) You assign an InputAction through its properties and get an automatically managed keybinding indicator – no scripting, no signal wiring, and full styling support!

Properties

Beyond the standard GuiObject properties (Size, Position, BackgroundColor3, BackgroundTransparency, etc.), InputActionLabel has the following properties:

  • InputAction: A read/write reference to the action used to resolve the display output.
  • ResolvedText: A read-only string containing the resolved display text at run-time. Empty when the label is showing an image.
  • ResolvedImageContent: A read-only Content value containing the resolved display image at run-time. Empty when the label is showing text.

It also carries over familiar text and image styling properties from TextLabel and ImageLabel — TextColor3, FontFace, TextSize, TextXAlignment, ImageColor3, and so on. UIModifiers like UICorner, UIStroke, and UIPadding parent directly to the InputActionLabel and affect the container uniformly in both text and image modes.

Adding Your Own InputActionLabel

You can add an InputActionLabel as simply as any other UI instance! Check out our sample placefile to follow along and see more complex examples:
InputActionLableExample.rbxl (101.5 KB)

  1. Under your ScreenGui, insert an InputActionLabel just like any other GuiObject.
  2. In the Properties panel, set the InputAction property to the action you want to display (e.g. your Jump action under ReplicatedStorage). Your DataModel should look like this:
  3. If you don’t apply any Styling or just use Studio defaults, the InputActionLabel will appear as a vanilla UI instance.
  4. At run-time, the label resolves the preferred binding and picks the associated display text or display image automatically.

Styling with StyleSheets

InputActionLabel works with the Styling system just like any other GuiObject, so you can match your hotkeys to your game’s theme! (If you’re new to our Styling system, check out our documentation here, or watch our tutorial on Youtube.) Now, there’s a new StyleRule for InputActionLabel that you can customize.

If you’re using default Studio styling, note that ImageColor3 will be set to black, since our platform keycodes render as white.

New Input Action System APIs

How does InputActionLabel work under the hood? We’ve added three new APIs to InputAction & InputBinding to support auto-hotkey display:

  1. InputBinding.DisplayName: A read/write string for a custom text override on the binding.
  2. InputBinding.DisplayImage: A read/write Content value for a custom image override on the binding.
  3. InputAction.PreferredBinding: A read-only property that returns the child InputBinding best matching the player’s current preferred input (KeyboardAndMouse, Gamepad, or Touch). It updates dynamically as the player’s device configuration changes.

If you’re using InputActionLabel, DisplayImage will be prioritized over DisplayName if available. If you don’t designate a custom DisplayName or DisplayImage for any binding, the engine will use the binding’s default KeyCode. For example, the space bar keycode will display “Space”, and the GamepadA keycode will display the A button.

:blue_heart: Made With Love

Huge thanks to @rygulwg1 (our intern!), @AykeriZero, @SharpenedByWater, @uiuxartist, @runitbackrolfo, @Astonish1656, @RaspberryPie007, and @MetaVars for making this happen. While you try these out, we’ll be hard at work continuing to make cross-platform development easier for you.

We can’t wait to see the awesome cross-platform UI you build with these new APIs – as always, share your creations, let us know your thoughts, and please send feedback if you have any! :grinning_face:

227 Likes

This topic was automatically opened after 10 minutes.

nice, im glad these cross platform things are being implemented because so many games on Roblox still don’t implement extra console shortcuts (and keyboard even)

25 Likes

This is very cool. I have my own system for building and showing these. Might be time to rewrite it.

20 Likes

nice update! i can see many using this

13 Likes

why is there no TextScaled property for the InputActionLabel?

17 Likes

:weary_cat::weary_cat::weary_cat: this very awesome update will done roblox !
i really hope it will support VR !? i really wish if i can put my custom binds

8 Likes

Placed in ? This is not applicable for server authority. Server authority is used when each player has a copy of the input data to distinguish which input was triggered by which player. It’s unclear why the default player control input has duplicate copies – one for the server and one for the client. Modifying one of these copies could lead to inconsistencies in the binding of the corresponding key.
To be honest, I find the design of the server authority to be somewhat illogical. It just feels off.

6 Likes

I wish! What I wish! What?!
hoping for something like VR gestures.
Hmm, okay. If it requires complex gestures, that might be a bit tricky.
or the coordinates for the left hand versus the right hand.
Hmm, it seems like when I select this option for , there are no options related to 3D.
There’s no mouse coordinate for 3D position, VR left/right hand, or VR laser pointer coordinates. What’s the purpose of this?

Oh, that’s not right. It should be CF. There also needs to be some perspective involved.

4 Likes

For hotkeys that use images for the icons such as the XABY buttons on an Xbox controller, it would be nice if we can modify the XABY letter colours.

Currently, they are cut out from the circle, but if I want to replicate what the XABY buttons actually look like (see image below), I am unable to do so unless I do a work around such as adding a coloured frame behind the hotkey.

The alternative is to have the XABY hotkey images already look like what they do in real life, but I guess that may not be convenient for some.

4 Likes

Will we be able to add our own icons?

11 Likes

the input action system is seriously one of the most awesome things ever. thank you!!!

5 Likes

yo wait, this is actually peak..

3 Likes

This is pretty cool! I already had my own system for this which uses PreferredInput just like the post, however it would be really nice if this supported properties such as ImageRectOffset and ImageRectSize for spritesheets.

2 Likes

Nothing is rendering, any ideas?


5 Likes

Is there any plan to add UIButton support for InputBindings with types defined as Direction1D, 2D, and 3D? :grin:

8 Likes

Really love this feature!

Will definently be looking into this more when it fully releases (& for newer projects), only reason I am not using it right now is because I already have my own custom solution to this which includes custom icons and some more customization (e.g an option to switch between PS5 & PS4 icons), I even added an option for Xbox users to switch between Xbox One & Xbox 360 icons because it felt like a funny gimmick.

Looking forward to more Input Action updates! :heart:

7 Likes

I had my own wrapper for this. Glad to see this is built - in now.

2 Likes

rahhh I wish this could release rn :frowning:

2 Likes

Amazing update! Keep up the good work : )

2 Likes