roblox-input — скилл для Claude Code: ввод в Roblox
Скилл для работы с вводом в Roblox: тач, геймпад, клавиатура, мышь, кнопки на экране и кросс-платформенные привязки.
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-codeЧто делает roblox-input
Скилл подключается, когда в проекте нужно разобраться с вводом в Roblox: тач, геймпад, клавиатура, мышь, кнопки на экране, кросс-платформенные привязки. Работает только на клиенте — серверная симуляция ввода идёт через Input Action System.
Внутри — краткая справка по событиям InputBegan/Changed/Ended и фильтрации gameProcessedEvent, по ContextActionService:BindAction с проверкой state и порядком через BindActionAtPriority. Для мобильных советует смотреть на UserInputService.PreferredInput через GetPropertyChangedSignal, а не на закешированный TouchEnabled. Кнопки на экране должны срабатывать только от касаний, начавшихся на самой кнопке. Игровой ввод блокируется, пока открыто окно, активен TextBox, GuiService.MenuIsOpen или задан GuiService.SelectedObject.
Отмена — не то же самое, что отпускание: удержание сбрасывается при открытии окна, Cancel, снятии экипировки, потере фокуса, смене ввода или отключении геймпада. Для подсказок клавиш есть GetStringForKeyCode, GetImageForKeyCode и InputActionLabel — хардкодить названия кнопок Xbox не стоит. Проверять поведение удобно в Device Simulator и Controller Emulator.
Какие задачи решает
- развести тач, геймпад и клавиатуру в одном обработчике ввода
- сделать кнопки на экране, которые не срабатывают от пролетающей камеры
- починить управление на мобильных и консолях
- показать правильную подсказку клавиши вместо захардкоженного названия
- сбросить удержание кнопки при открытии меню или отключении геймпада
Примеры запросов агенту
- Почему на мобильном не работает кнопка атаки? Проверь через roblox-input.
- Настрой привязки через ContextActionService для геймпада и тача
- Подсказки клавиш показывают не ту кнопку на Xbox — разберись
Как установить roblox-input
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-code2Вручную: положить файлы
~/.claude/skills/roblox-input/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/roblox-input/
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a codex2Вручную: положить файлы
.agents/skills/roblox-input/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a cursor2Вручную: положить файлы
.cursor/skills/roblox-input/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install TabooHarmony/roblox-brain roblox-input2Вручную: положить файлы
.github/skills/roblox-input/SKILL.md1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a gemini-cli2Командой платформы
gemini skills install https://github.com/TabooHarmony/roblox-brain --path skills/gameplay/roblox-inputВручную: положить файлы
.devin/skills/roblox-input/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-input -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о roblox-input
Как установить roblox-input в Claude?
Выполните npx skills add TabooHarmony/roblox-brain --skill roblox-input -a claude-code. Скилл окажется в ~/.claude/skills/roblox-input/SKILL.md.
Что делает roblox-input?
Помогает разбираться с вводом в Roblox: тач, геймпад, клавиатура, мышь, кнопки на экране и кросс-платформенные привязки. Работает на клиенте.
Когда скилл подключается?
Когда кнопка срабатывает случайно, управление не работает на мобильном или консоли, геймпад застревает в меню или подсказки показывают не ту клавишу.
Исходный текст
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