#Keybind Buttons keep coming back after changing keybinds

1 messages · Page 1 of 1 (latest)

left palmBOT
#

Hey there! Could you share a few more details so I can help properly?

  • Are you editing a layout that affects the Controls screen?
  • Did you delete the vanilla keybind buttons or move them?
  • Are you working in a “for current screen” layout or a universal one?
  • Does the issue happen every time you reopen the screen, or only after a relaunch/reload?

Also let me know if you’re using any listener/ticker scripts that touch those controls.

true orbit
#

editing a layout that affects the Controls screen

left palmBOT
# true orbit editing a layout that affects the Controls screen

If you’re editing the Controls screen, make sure you created a layout for the current screen (not a universal layout) and that customization is enabled for that screen before deleting/moving the vanilla keybind buttons.
Once the layout is open, right-click the vanilla controls you want gone and delete them; that will only affect this single screen. You can restore them later via Menu Bar → Element → Deleted Vanilla Elements if needed.

If a different layout (e.g., a universal one) is still enabled on the controls screen, it might be re-adding those buttons every time the screen loads, so double-check you’re editing the correct layout and that only that layout is active for the controls screen.

More info: see the “Vanilla Elements” page in the docs— it explains how to delete, restore, and move Minecraft’s built-in widgets properly.

true orbit
#

If the keybinds conflict with another the positions all get messed up. This is using the default keybind buttons.

left palmBOT
# true orbit If the keybinds conflict with another the positions all get messed up. This is u...

That’s expected behavior when you leave the vanilla Keybind buttons in place: Minecraft will re-create and re-order them every time the screen redraws (especially once a duplicate key assignment shows up), so your manual rearrangement will get “smudged” again.

If you want full control, remove the vanilla buttons via Menu Bar → Element → Deleted Vanilla Elements and rebuild the section with your own custom elements. Otherwise you’re stuck with whatever Minecraft’s keybind layout gives you—duplicates will stack and shift as soon as the same key is assigned twice, because FancyMenu can’t override vanilla behaviour for those widgets.

For reference see the docs on customizing Vanilla Elements: it explains how those controls are tied to the original widgets and why they reappear every time you reopen the screen.

true orbit
#

How would I rebuild the default keybinds with my own custom elements?

left palmBOT
# true orbit How would I rebuild the default keybinds with my own custom elements?

You basically recreate the controls UI yourself:

  1. Open the Controls screen, enable customization for it, and create a layout “for the current screen”.
  2. Right‑click each vanilla keybind button and delete it. (You can restore them later via Menu Bar → Element → Deleted Vanilla Elements if needed.)
  3. Add your own Button elements for every keybind you want to show. You can place them anywhere, control their texture/label, and even give each button an action that shows the current key using placeholders or opens the vanilla keybind dialog via mimicbutton.
  4. Anchor/position them like you prefer—use the anchor overlay or drag them near the corners you need (see the Positioning Elements guide for anchor tips).
  5. If you need the buttons to sync to vanilla behavior (e.g., open the built‑in keybind dialog), use the Mimic Vanilla/Mod Button action pointing at the original controls, or rebuild the interaction entirely with your own action scripts.
  6. Save the layout when you’re happy with it.

This gives you full control so duplicates won’t mess up the layout. For extra reference on deleting/restoring/modifying vanilla widgets, check the Vanilla Elements page.

true orbit
#

How would I make a custom button have the same functionality as the "Forward" keybind button?

left palmBOT
# true orbit How would I make a custom button have the same functionality as the "Forward" ke...

To make your own button behave exactly like the default “Forward” keybind control, you can have it mimic the vanilla widget:

  1. Enable the debug overlay (Customization → Debug Overlay) while the Controls screen is open, then copy the identifier of the existing Forward keybind button (click the first line of the overlay while hovering the widget).
  2. Create your custom button, right-click it → Edit Action Script → add a Mimic Vanilla/Mod Button action.
  3. Set the action value to screen_identifier:widget_locator, where screen_identifier is the Controls screen ID (from the debug overlay) and widget_locator is the identifier you copied.
  4. Save and test—the new button will now run the same logic as the original Forward button, including opening the “press a key” prompt.

More detail about the action is on the Action Scripts page (search for “Mimic Vanilla/Mod Button”).

true orbit
#

How do I copy the identifier?

left palmBOT
# true orbit How do I copy the identifier?
  1. Open the Controls screen and press CTRL + ALT + D (or go to Customization → Debug Overlay) so the overlay appears.
  2. Hover the vanilla Forward keybind button until the overlay highlights it. The overlay’s first line shows that button’s identifier.
  3. Left-click that first line in the overlay to copy the identifier to your clipboard.

Now you can paste it into your custom button’s Mimic Vanilla/Mod Button action value (format: screen_identifier:widget_locator).

true orbit
#

Can you just give me the Forward keybind identifier?

left palmBOT
# true orbit Can you just give me the Forward keybind identifier?

I can’t give you the exact identifier, but here’s how to grab it yourself: open the Controls screen, enable the debug overlay (Customisation → Debug Overlay), hover the Forward keybind button, and left-click the first line of the overlay to copy its identifier. Use that screen_identifier:widget_locator combo in your Mimic Button action.

true orbit
#

How do I make the button say the active keybind instead of "New Button"?

left palmBOT
# true orbit How do I make the button say the active keybind instead of "New Button"?

You can make your custom button show whatever the vanilla Forward button is currently displaying by using the vanillabuttonlabel placeholder (see the Placeholders document).

Steps:

  1. Open the Controls screen, enable the debug overlay (Customization → Debug Overlay).

  2. Hover the vanilla Forward button and copy its identifier by left‑clicking the first line in the overlay.

  3. On your custom button, edit the label text and insert this placeholder:

    {"placeholder":"vanillabuttonlabel","values":{"locator":"<screen_id>:<widget_id>"}}
    

    Replace <screen_id>:<widget_id> with the identifier you just copied.

That placeholder will always mirror whatever text the vanilla button shows (which changes when the key is reassigned), so your custom button will automatically display the active key instead of “New Button.”

true orbit
#

If I try to do the same for the "Back" keybind it doesn't work.

left palmBOT
# true orbit If I try to do the same for the "Back" keybind it doesn't work.

If the same placeholder works for Forward but not Back, it usually means the widget identifier you used isn’t actually the Back button (or that button is a bit special). Could you:

  1. Open the Controls screen, enable the Debug Overlay (Customization → Debug Overlay or Ctrl+Alt+D), and hover the Back keybind button?
  2. Copy the identifier from the first line of the overlay (left-click it) and paste it somewhere so we can see exactly what it is.
  3. Confirm you’re pasting that exact identifier into the locater value of {"placeholder":"vanillabuttonlabel","values":{"locator":"<screen_id>:<widget_id>"}}.

If you can share what that identifier looks like, I can tell you whether the button actually exposes a label the placeholder can read.

true orbit
#

Is there a list of the identifiers for each vanilla keybind?

left palmBOT
# true orbit Is there a list of the identifiers for each vanilla keybind?

There isn’t a published list of those widget identifiers. You have to grab each one yourself via the debug overlay:

  1. Open the Controls screen and enable the debug overlay (Customization → Debug Overlay or Ctrl+Alt+D).
  2. Hover the keybind you care about; the overlay’s first line shows its screen_identifier:widget_locator.
  3. Left-click that line to copy it, then paste it wherever you need it (mimic action, placeholder, etc.).

If you need a reminder, the same instructions are on the Screen Identifiers doc.

true orbit
#

Can you do this for the Jump keybind? It breaks the UI whenever I use the spacebar for a custom button.

left palmBOT
# true orbit Can you do this for the Jump keybind? It breaks the UI whenever I use the spaceb...

I can’t fetch the Jump button’s identifier for you, but you can grab it yourself the same way as before:

  1. Open the Controls screen, enable the debug overlay (Customization → Debug Overlay or Ctrl + Alt + D).
  2. Hover the Jump button until the overlay highlights it; the first line shows screen_identifier:widget_locator.
  3. Left-click that line to copy it and paste it into your Mimic/placeholder value so your custom button mirrors the Jump widget.

If your spacebar button still messes up the UI when the vanilla Jump button is present, delete the original Jump widget (right-click → Delete) and rebuild the whole control with your own buttons so you no longer fight the vanilla layout. The Vanilla Elements doc covers deleting/restoring those widgets, and the Screen Identifiers doc shows how to copy identifiers via the overlay.

true orbit
#

How do I have text before the keybind? Like make it say "Forward: W"

left palmBOT
# true orbit How do I have text before the keybind? Like make it say "Forward: W"

If you want your custom button to show something like Forward: W, just give the button label the literal text Forward: and add the same placeholder that mirrors the vanilla key text right after it:

Forward: {"placeholder":"vanillabuttonlabel","values":{"locator":"<controls_screen_id>:<forward_widget_id>"}}

Replace <controls_screen_id>:<forward_widget_id> with the identifier you copied from the debug overlay (see the Screen Identifiers doc for how to copy it). The placeholder (vanillabuttonlabel) will always output whatever key Minecraft currently shows for that widget, so your button label becomes Forward: W (or whatever key the player assigned).

true orbit
#

What is the jump button identifier?