Complete UI Management
Structured navigation that scales from prototypes to production
Single-Tier Page Navigation
UIManager → Page. A flat, recursive page hierarchy where every page can be a root canvas, a nested child, or both. Navigate forward, back, and across canvases with a unified API — no hub or window layers to manage.
- GS_UIPageComponent — One component handles root registration, child management, focus, and animated transitions
- NavigateTo / NavigateBack — Focus-stack navigation with automatic ancestor alignment
- ChangePage — Swap child content within a parent page without losing broader focus state
- NavigationReturnPolicy — Per-page control over where focus lands on return: last focused or always default
Enhanced Button System
Gamepad and keyboard navigation with automatic routing. Focus states, hover effects, and visual feedback. Built on LyShine's interactable system with GS extensions for animated state transitions.
- Navigation Routing — Configure up/down/left/right routing per button
- Focus Management — Automatic focus stack for returning to previous UI states
- Input Integration — Works with mouse, keyboard, and gamepad input
- State Animations — UiAnimationMotion assets drive hover, focus, and click transitions
Loading Screens & Pause Menus
Specialized components for the UI patterns every game needs. Loading screens that coordinate with stage transitions. Pause menus that integrate with game state. Ready-to-use, fully customizable.
- Load Screen — Progress tracking, splash display, stage transition coordination
- Pause Menu — Game pause integration, focus management
- UIManager Integration — Participates in the global focus stack seamlessly
- Prefab Assets — Working templates to start from and customize
UI Animation System
Asset-based animation via the GS_Motion extension. Author reusable .uiam motion assets in the editor and attach them directly to page show, hide, and loop transitions — or play them on demand from Script Canvas.
- 8 Motion Tracks — Position, rotation, scale, element alpha, image alpha, image color, text color, text size
- Page Transitions — OnShow, OnHide, and OnShowLoop motion slots built into every page
- Reusable Assets — .uiam files shared across pages for consistent UX
- Easing Support — Full access to GS_Core's easing library
Technical Specifications
Components
Single-tier page navigation framework
Navigation: GS_UIPageComponent, GS_UIManagerComponent
Interaction: GS_ButtonComponent, GS_UIInputInterceptorComponent
Specialized: GS_LoadScreenComponent, PauseMenuComponent
Animation: UiAnimationMotionComponent, UiAnimationMotionAsset (.uiam)
Dependencies
Required: GS_Core, LyShine, LmbrCentral
Built directly on O3DE’s LyShine UI system. GS_Motion (from GS_Core) powers the animation system.
EBus Interfaces
Request Buses: UIManager, UIPage, LoadScreen, PauseMenu, Button
Notification Buses: UIPage events, Input notifications
Full EBus integration for C++ and Script Canvas.
Data Assets
Animation Assets: UiAnimationMotionAsset (.uiam) — reusable motion data for transitions and effects
Prefabs: GS_UIManager.prefab, canvas templates
Reusable UI templates and motion assets.
Built for Real Interfaces
Start Fast
Use the prefab manager and load screen templates to get UI running immediately. The flat page hierarchy keeps simple HUDs simple while scaling naturally to complex menus.
Scale to Complexity
Build deeply nested menus with animated transitions on every page. Focus routing, NavigationReturnPolicy, and cross-canvas navigation mean the system handles the complexity so you don’t have to.
Input-Agnostic
Works with mouse, keyboard, and gamepad out of the box. The input interceptor handles focus routing and the button system navigates menus naturally — without fighting the input system.
Build Interfaces That Feel Good
From simple HUDs to complex menu systems — GS_UI gives you the structure to make great interfaces.
Get GS_Play Read Documentation Explore Other Gems