<< All versions
Skill v1.0.1
currentAutomated scan100/100tabooharmony/roblox-brain/roblox-input
+3 new
──Details
PublishedOctober 21, 2026 at 01:00 AM
Content Hashsha256:5bde713ffff65973...
Git SHAceee4aaa5004
Bump Typepatch
──Files
Files (1 file, 2.9 KB)
SKILL.md2.9 KBactive
SKILL.md · 41 lines · 2.9 KB
version: "1.0.1" name: roblox-input description: "Use when handling Roblox touch, gamepad, keyboard, mouse or motion input, on-screen action buttons, or cross-platform action binding." when_to_use: "Also when a button fires by accident, controls don't work on mobile or console, a controller gets stuck in a menu, or button prompts show the wrong key." last_reviewed: 2026-10-14 sources:
- https://devforum.roblox.com/t/the-correct-way-to-design-mobile-buttons/2494558
- https://create.roblox.com/docs/reference/engine/classes/UserInputService
- https://create.roblox.com/docs/reference/engine/enums/PreferredInput
- https://create.roblox.com/docs/input/mobile
- https://create.roblox.com/docs/production/publishing/console-guidelines
- https://create.roblox.com/docs/reference/engine/classes/ContextActionService
- https://create.roblox.com/docs/reference/engine/classes/Tool
- https://create.roblox.com/docs/studio/controller-emulator
- original
- https://create.roblox.com/docs/projects/server-authority
- https://create.roblox.com/docs/ui/3D-drag-detectors
- https://create.roblox.com/docs/ui/ui-drag-detectors
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/Endedgive(input, gameProcessedEvent); filter it for gameplay. Wheel fires onlyInputChanged. - Bindings: prefer
ContextActionService:BindAction(name, handler, touchButton, ...keys); gate onstate(touch isKeyCode.Unknown); stack order, soBindActionAtPriority. Server Authority:InputAction/InputContext+RunService:BindToSimulation()(needsWorkspace.UseFixedSimulation). - Mobile first, hybrid aware: show controls from
UserInputService.PreferredInput(Enum.PreferredInput), observed withGetPropertyChangedSignal, not fromTouchEnabledcached 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
TextBoxis focused,GuiService.MenuIsOpen, orGuiService.SelectedObjectis set. - Cancel is not release: holds cancel on window open,
Cancel, unequip, focus loss, input switch or pad disconnect. - Gamepad tools: default controls bind
ButtonR2throughBindActivate;Tool.ManualActivationOnly = truedisables it. Aim from the screen center on gamepad, notGetMouseLocation(). - Hints:
GetStringForKeyCode(key, Enum.KeyCodeStringFormat.Abbreviated),GetImageForKeyCode, orInputActionLabel; never hardcode Xbox names. - Test: Device Simulator + Controller Emulator; menu focus is in
roblox-gui.
Details: references/full.md