Skip to main content
skill CX Codex

roblox-input — Claude Code skill: Roblox input handling

A skill for Roblox input: touch, gamepad, keyboard, mouse, on-screen buttons and cross-platform bindings.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-code
Open on GitHub

What roblox-input does

The skill loads when a project needs work on Roblox input: touch, gamepad, keyboard, mouse, on-screen buttons, cross-platform bindings. It is client-only — server-authority simulation input goes through the Input Action System.

Inside is a quick reference for InputBegan/Changed/Ended and filtering gameProcessedEvent, plus ContextActionService:BindAction with a state check and stacking via BindActionAtPriority. For mobile it advises reading UserInputService.PreferredInput through GetPropertyChangedSignal instead of a cached TouchEnabled. On-screen buttons should fire only for touches that began on the button. Gameplay input is gated while a window is open, a TextBox is focused, GuiService.MenuIsOpen is set, or GuiService.SelectedObject is assigned.

Cancel is not release: holds reset on window open, Cancel, unequip, focus loss, input switch or pad disconnect. For key hints there are GetStringForKeyCode, GetImageForKeyCode and InputActionLabel — hardcoding Xbox names is a bad idea. Device Simulator and Controller Emulator are the places to check behaviour.

What it helps with

  • separate touch, gamepad and keyboard in one input handler
  • build on-screen buttons that ignore camera drags across them
  • fix controls that break on mobile or console
  • show the right key prompt instead of a hardcoded name
  • reset a held button when a menu opens or a pad disconnects

Example prompts for the agent

  • Why does the attack button not work on mobile? Check with roblox-input.
  • Set up ContextActionService bindings for gamepad and touch
  • Key prompts show the wrong button on Xbox — sort it out

How to install roblox-input

1Skills CLI (Vercel)

npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-code

2Manually: put the files in place

~/.claude/skills/roblox-input/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/roblox-input/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about roblox-input

How do I install roblox-input in Claude?

Run npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-code. The skill lands in ~/.claude/skills/roblox-input/SKILL.md.

What does roblox-input do?

It helps with Roblox input: touch, gamepad, keyboard, mouse, on-screen buttons and cross-platform bindings. It is client-only.

When does the skill load?

When a button fires by accident, controls fail on mobile or console, a controller gets stuck in a menu, or prompts show the wrong key.

Source text

SKILL.md · MIT
---
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/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](references/full.md)

© TabooHarmony · MIT · TabooHarmony/roblox-brain

Similar skills

Everything for Game dev and 3D: Unity, Unreal, Godot, Blender →

From the same set28

roblox-tooling Helps configure and fix Roblox development toolchains: Rojo, Wally, pesde, Selene, StyLua, Lune, and CI/CD pipelines. CX Codex +1 1,800installs roblox-analytics A skill for Roblox analytics work: AnalyticsService events, economy, funnels, onboarding traces and rate limits. Useful when instrumenting a feature or finding where players drop off. CX Codex +1 1,800installs roblox-publish-checklist Runs release gates and a pre-release audit before you publish or update a Roblox experience, so blockers surface before players do. CX Codex +1 1,900installs roblox-server-data A skill for Roblox cross-server data: OrderedDataStore leaderboards, MessagingService, MemoryStore coordination, seasons and guilds. CX Codex +1 1,700installs roblox-cloud Guides your agent through Roblox Open Cloud integrations: OAuth 2.0 with PKCE, API keys, webhooks, and accessing DataStore externally. CX Codex +1 1,700installs roblox-growth-design Diagnoses Roblox game growth, retention, and Home discovery metrics. Guides updates, monetization setups, and A/B experiments using Creator Dashboard data. CX Codex +1 1,600installs roblox-localization A skill for Roblox localization work: translation tables, auto-translation, country detection and auditing strings before you add more languages. CX Codex +1 1,600installs roblox-collaboration-mode Calibrates agent initiative for Roblox tasks and categorizes actions by risk. Load it first before domain skills to decide when the agent acts alone. CX Codex +1 1,400installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor