Luna's pre-built views cover the screens almost every game needs — menus, loading, saves, dialogue, inventory. Most are UIViewComponents you drop onto a prefab and subclass where behavior is game-specific (button handlers, save types, item binding); all of them are built from the same components and theme classes, so they restyle with your palette like everything else.

  1. Loading and Main Menu first — every game boots through these two, and together they exercise the navigation + GameSave integration the other views assume.
  2. The menu loopPause Menu, Settings, Save & Load (plus Confirmation Popup, which Save & Load uses for its confirmations).
  3. Dialogue Controller before its subclasses — Speech Bubble, Tutorial Modal, and Visual Novel all extend it.
  4. GridView before Inventory — Inventory is a GridView subclass wired to the Inventory package.

Core Views

The boot-and-menu loop every game ships:

  • LoadingLoadingViewController, a dual-role overlay: scene-transition loading screen, plus an opt-in boot preloader that covers the screen and holds navigation until every NavHost is ready.
  • Main MenuMainMenuView<TSaveData, TSaveMetadata>, abstract Continue / Load / New Game / Settings / Credits / Quit wiring; Continue and Load auto-enable based on whether a save exists in your GameSave manager.
  • Pause MenuPauseMenuView, abstract Continue / Load / Settings / Main Menu / Quit wiring with the Continue handler (PopBackStack) already implemented.
  • SettingsSettingsDataSO (model bundle) + SettingsMenuView (view root) hosting per-category section pairs (SettingsDataSection + SettingsMenuViewSection) — Graphics, Audio, Localization, and your own.
  • Save & LoadGameSaveViewList<TSaveData, TSaveMetadata>, the slot list for the GameSave system: load / overwrite / delete, autosave/manual filters, gamepad-friendly prompts.
  • CreditsCreditsView, auto-scrolling credits with labeled sections and "Position: Person" line formatting; optionally closes itself when the scroll completes.

Dialogue & Narrative

One base class, three ready-made shapes:

  • Dialogue Controller — the base class for every dialogue view: character-by-character text reveal (three modes), audio via DialogueAudio, inline text effects parsing.
  • Speech BubbleSpeechBubbleController, positioned bubbles with directional arrows, dual avatars, and an animated "next" continuation prompt.
  • Tutorial ModalTutorialModalController, a step-by-step modal with title, subtitle, image, and prev/next navigation.
  • Visual NovelVisualNovelController, the full VN layout: dual character portraits with breathing animation, speaker name label, Continue / Skip / Restart bindings.

Data & Utility

Grids, popups, and status indicators:

  • GridViewGridViewBase<TItem>, the abstract base for paginated, filterable grids, plus two ready-made subclasses: GridViewPagination (page-button strip) and GridViewList (virtualized ListView scrolling).
  • Inventory — a GridView subclass wired against the Inventory package: drag-and-drop slots, equipment loadouts, stat-modifier tooltips, category filters.
  • Notifications — toast notifications plus a history view. A redesign is slated for an upcoming release — expect the APIs to change.
  • Autosave NotificationAutoSaveView, listens to GameSaveEvents and spins a RadialLoading arc while an autosave runs.
  • Confirmation PopupChoicePopupController, an N-button modal (Yes/No, Save/Discard/Cancel, or any custom set) built dynamically from a serialized choice list.

Settings

Theme

Light

Contrast

Material

Dark

Dim

Material Dark

System

Sidebar(Light & Contrast only)

Light
Dark

Font Family

DM Sans

Wix

Inclusive Sans

AR One Sans

Direction

LTR
RTL