Skip to content
Back to skills

Game Ui Ux

ASecurity

Engine-agnostic game UI/UX design guidance, adapted for Roblox ScreenGuis. Covers responsive scale-based layout, safe areas, gamepad focus navigation, a panel/screen stack, event-driven HUD updates, accessibility and localization. Use when building or fixing a Roblox HUD, menu, shop, modal window or overlay; when UI breaks on phones, tablets or consoles, collides with the top bar, thumbstick or jump button, or can't be used with a gamepad; when a HUD polls state every frame; or when structuri...

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 17, 2026
developmentgoreact

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 17, 2026

npx -y skills add rodrigo-guerraa/roblox-hub --skill game-ui-ux --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Game Ui Ux?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Game Ui Ux
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rodrigo-guerraa-game-ui-ux/badge)](https://www.skillsdirectory.com/skills/rodrigo-guerraa-game-ui-ux)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: game-ui-ux
description: Engine-agnostic game UI/UX design guidance, adapted for Roblox ScreenGuis. Covers responsive scale-based layout, safe areas, gamepad focus navigation, a panel/screen stack, event-driven HUD updates, accessibility and localization. Use when building or fixing a Roblox HUD, menu, shop, modal window or overlay; when UI breaks on phones, tablets or consoles, collides with the top bar, thumbstick or jump button, or can't be used with a gamepad; when a HUD polls state every frame; or when structuring panel flow so only one window is open at a time.
---

# Game UI/UX

Where this conflicts with the `roblox-lessons` skill, `roblox-lessons` wins. Read roblox-lessons `references/ui.md` before building UI. It holds the TextScaled, inset, canvas-size and aspect-constraint traps.

Build HUDs and menus that stay correct on a phone in landscape, a desktop monitor and a TV with a gamepad.

## On Roblox

- **Layout:** use Scale sizes with `AnchorPoint`, `UIAspectRatioConstraint`, and `UIListLayout`/`UIGridLayout`/`UIPadding`. Never use offset-only pixel layouts. Size windows from the screen with a maximum cap.
- **Layering:** give each layer its own ScreenGui with a fixed `DisplayOrder` (ladder: HUD 2–4, windows 5, notices 6, reveals 7, tutorial 9, effects 20, loading 100). Set `ResetOnSpawn = false` on persistent UI.
- **Panel stack:** use a `UIManager`-style client module. Panels register by name, opening one closes the others, Escape or gamepad B closes the top one, and a changed signal lets HUD tiles hide under an open window.
- **Safe areas:**
  - The top bar: `GuiService:GetGuiInset()` and `IgnoreGuiInset`.
  - Notches: `ScreenGui.ScreenInsets`.
  - On phones, the thumbstick (bottom-left), the jump button (bottom-right) and the chat button (top-left). Read `TouchGui` positions at runtime.
- **Gamepad and console:** set the initial focus with `GuiService.SelectedObject`, set explicit neighbours with `NextSelectionUp/Down/Left/Right`, and mark controls `Selectable`. Style focus with `SelectionImageObject`. Track the input device with `UserInputService.LastInputTypeChanged`.
- **Event-driven:** update on RemoteEvent pushes or `GetAttributeChangedSignal`, never by polling in `RenderStepped`. Build list rows once and update them in place.
- **Localization:** use `LocalizationTable` and `AutoLocalize`, and let text containers grow with `AutomaticSize`.

## Workflow

1. Lay out with anchors, scale and layouts, never absolute pixel positions.
2. Pick one scaling policy for the whole UI (size from screen height with caps), and decide where extra width goes.
3. Inset critical UI from the top bar, notches and touch controls. Decorative art can bleed to the edges.
4. Make every screen reachable by gamepad: give it an initial focus, neighbours and a visible focus style.
5. Model screens as a stack (push an overlay, pop on back) instead of boolean flags.
6. Drive the HUD from events.
7. Verify at real sizes: a phone in landscape (about 749×367 usable), a tablet, 1080p, and gamepad-only. Report what you observed at each size.

## Pitfalls

- Offset sizes designed on one monitor overflow phones.
- `TextScaled` turned off by setting `TextWrapped` afterwards (roblox-lessons ui.md).
- HUD under the top bar, a notch or the thumbstick.
- Nothing focused when a window opens, so the gamepad does nothing.
- Polling player state every frame instead of reacting to pushes.
- Rebuilding lists on every push, which restarts every progress bar.
- Tiny fixed text; text with no size cap that balloons on big screens.
- Menu flow as flags (`isShopOpen`, `inSettings`, ...). Use a stack.
- English baked into fixed-width buttons, so translations overflow.
- A refusal toast drawn under the window that triggered it.

## References

- `references/layout-and-flow.md`: scaling, safe-area math, focus navigation, a panel-stack sketch, world-space UI (BillboardGui, SurfaceGui, ProximityPrompt), accessibility, and localization-ready layout.

Related: `game-feel` (pops and transitions on top of this layout), `roblox-lessons`.

---
Adapted from awesome-gamedev-agent-skills (Apache-2.0). Modified; see `SOURCE.md`.

Files in this skill

  • LICENSE11.1 KB
  • NOTICE883 B
  • SKILL.md4.1 KB
  • SOURCE.md2.4 KB
  • references/layout-and-flow.md5.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.