Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commit3bb1da2647

README.md

blank_app template

Minimum-viable app — one screen, no layout. Clone this when you have a single panel of UI and no layout shape. The screen is built from the engine's raw, CSS-parity widget tree.

What's in the template

blank_app/
├── README.md
├── blank_app.scene/
│   ├── scene.json          ← bare scene metadata (no entities)
│   └── entrypoint.luau     ← spawns one UiPanel-bearing entity
└── blank_app_layout.module/
    ├── init.luau           ← mount(ctx) builds one screen and handles clicks
    └── README.md           ← the module contract and the raw widget model

Run it: layers.load("@builtin::_templates.blank_app.blank_app").

How to extend

  1. Replace the build tree in blank_app_layout.module/init.luau with your own widget nodes ({ type, props, style, children }).
  2. Give an interactive widget a callback id (e.g. props.onClick = "blank:inc"), then handle it in the onCallback(id, data) the module returns.
  3. Keep runtime data on state; on an interaction, mutate state and call ui.updateScreen(name, build()) to re-render.

See blank_app_layout.module/README.md for the full mount(ctx) contract and the raw widget model. The gui toolbox's widgetTypes and widgetProps tools enumerate the widget surface; @builtin::examples.ui.* are complete screens in the same model.

For richer layouts, use one of the other single-screen templates:

  • docked_app/ — toolbar + body + status
  • canvas_app/ — node-graph editor
  • inspector_app/ — form with fields and actions