Command,don't configure.

Rewrite any key or click in Luau. Add Rebind Link to drive the mouse and gamepads as real USB.

remap.luau
-- rebind: min_sdk=3.11.0-- rebind: name=Remap-- rebind: version=1.0.0-- input from controllerrb.on("axis", function(axis, value)  local d = math.round(value * 10)  -- output as mouse  if axis == "LeftX" then rb.hid.move(d, 0) end  if axis == "LeftY" then rb.hid.move(0, d) endend)-- input from keyboardrb.bind("Ctrl+B", rb.async(function()  rb.hid.typewriter("brb, two minutes", 90)end))

Left stick moves the mouse

game controllers / remap buttons, sticks and triggers in luau / pass a controller through rebind link as a joypad / needs hardware mode and a joypad usb profile / read the controller docs /

Rebind is a crowbar for the USB stack.

  • Your firmware has opinions. Your Luau scripts outrank them.
  • Vendor software lets you select behavior. Rebind lets you write it.
  • The defaults came preinstalled. Authority did not.

Scripts run on your computer and decide what every key, click and button does. With Rebind Link, their output leaves a real USB device.

How it works

Run Luau scripts on hardware wires.

The fast, typed Lua from Roblox. Think of an AutoHotkey macro that runs on Windows and macOS, sees input before your apps do, and can drive real USB hardware.

-- rebind: min_sdk=3.9.0
-- rebind: name=Push to Talk
-- rebind: version=1.0.0

rb.on("down", function(key)
  if key == "Mouse4" then
    rb.hid.down("F13")
    return false
  end
  return true
end)

rb.on("up", function(key)
  if key == "Mouse4" then
    rb.timer.after(250, function()
      rb.hid.up("F13")
    end)
    return false
  end
  return true
end)

Hold the side button to talk. Let go and the mic stays open a quarter second longer, so your last word never gets clipped.

Reviews from the Rebind Discord.

Excerpts from reviews posted in the Rebind Discord(opens in a new tab), quoted as written.

-- snoxsolutions on Discord / Jul 2026(opens in a new tab)
-- gavinweiland on Discord / Jul 2026(opens in a new tab)
-- toxic.0420 on Discord / Sep 2026(opens in a new tab)
-- cee77777 on Discord / Oct 2026(opens in a new tab)
-- itzchill_ on Discord / Oct 2026(opens in a new tab)

Your peripherals.Your rules.

Rebind is free. Install it, start from an example, and write the behavior you want.