mcpField
R
roblox-input

roblox-input

github.com/tabooharmonyDevelopment1381.9k installsUpdated 2w ago
Repository

About roblox-input

Roblox Input is a development skill for handling client-side touch, gamepad, keyboard, mouse, and motion input. It explains cross-platform bindings, interface-aware gameplay gating, cancellation behavior, and testing tools.

Key features

  1. 01Input event handling
  2. 02ContextActionService binding patterns
  3. 03PreferredInput-based control display
  4. 04Gameplay gating for UI focus
  5. 05Hold cancellation conditions
  6. 06Device Simulator and Controller Emulator testing

Use cases

  1. 01Building cross-platform controls
  2. 02Adding mobile action buttons
  3. 03Preventing gameplay input during menus or text entry

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-input

After installing, type/roblox-inputin Claude Code to confirm it loaded.

Bundled filesreferences/full.md

Details

From the project README

Roblox Input

When to Load

Touch, gamepad, keyboard, mouse or motion input, on-screen action buttons, cross-platform binding. Client-only; Server Authority simulation input uses the Input Action System.

Quick Reference

  • Events: InputBegan/Changed/Ended give (input, gameProcessedEvent); filter it for gameplay. Wheel fires only InputChanged.
  • Bindings: prefer ContextActionService:BindAction(name, handler, touchButton, ...keys); gate on state (touch is KeyCode.Unknown); stack order, so BindActionAtPriority. Server Authority: InputAction/InputContext + RunService:BindToSimulation() (needs Workspace.UseFixedSimulation).
  • Mobile first, hybrid aware: show controls from UserInputService.PreferredInput (Enum.PreferredInput), observed with GetPropertyChangedSignal, not from TouchEnabled cached once.
  • Touch action buttons: fire only for touches that began on the button; camera drags across it never fire. Place from the measured jump button under PlayerGui.TouchGui; clear the thumbstick zone.
  • Gate gameplay: block attacks while a game window is open, a TextBox is focused, GuiService.MenuIsOpen, or GuiService.SelectedObject is set.
  • Cancel is not release: holds cancel on window open, Cancel, unequip, focus loss, input switch or pad disconnect.
  • Gamepad tools: default controls bind ButtonR2 through BindActivate; Tool.ManualActivationOnly = true disables it. Aim from the screen center on gamepad, not GetMouseLocation().
  • Hints: GetStringForKeyCode(key, Enum.KeyCodeStringFormat.Abbreviated), GetImageForKeyCode, or InputActionLabel; never hardcode Xbox names.
  • Test: Device Simulator + Controller Emulator; menu focus is in roblox-gui.

Details: references/full.md

Comments

Markdown supported