
This is the exact-reference guide for scaffolded AuraJS projects.
Use it when you need:
appState, sceneState, config, and contentnpm install -g auramaxx
auramaxx create my-game
cd my-game
npm run dev
auramaxx make scene Scene1
Inside a project root, these surfaces all point at the same AuraJS project:
auramaxx ... public wrappernpm run dev|play|publish|state|inspect|action generated wrapper scriptsCreate a project:
auramaxx create my-game
auramaxx create my-game --template 2d-adventure
auramaxx create my-game --template 3d-adventure
auramaxx create my-game --template blank
Current create behavior:
auramaxx create my-game defaults to 2d-adventureauramaxx create with no name opens the starter promptauramaxx create my-game --template ... accepts the shipped template catalog--template 2d and --template 3d normalize to
2d-adventure and 3d-adventureRun the local dev loop:
cd my-game
npm run dev
auramaxx explain
auramaxx check
List available generators for the current project:
auramaxx make list
auramaxx make list --json
Core generators available in every scaffold:
auramaxx make scene Scene1
auramaxx make ui-screen PauseMenu
auramaxx make prefab EnemyShip --role enemy
auramaxx make system Combat
auramaxx make component Health
auramaxx make config enemy-table
auramaxx make level intro-route
auramaxx make dialogue archive-brief
auramaxx make encounter opening-skirmish
auramaxx make entity signal-orb
auramaxx make spawn-table enemy-spawns
auramaxx make cinematic opening-reveal
auramaxx make content spawn-table
auramaxx make material GrassTile
auramaxx make shader RimLight
make config, make content, and the content-family generators register those
new files into src/runtime/project-registry.js, so auramaxx explain and
auramaxx check keep reporting the real authored surface instead of only the
starter seed files.
The content-family generators also maintain registry modules under
content/registries/ for levels, dialogue, encounters, entities, spawns, and
cinematics so authored content can stay indexed instead of turning into folder
sprawl.
Starter-owned generators are template-specific. Example for deckbuilder-2d:
auramaxx make card StrikePlus
auramaxx make enemy JawWorm
auramaxx make relic BurningBlood
auramaxx make encounter Act1Hallway
Interactive make flow:
auramaxx make
When run in a TTY with no arguments, AuraJS opens a selector, asks what to make, then asks for the name.
Use make list as the truthful current project surface. It reflects starter-
specific kinds too, while generic help output can still lag the merged per-
project catalog.
Every scaffold now uses the same top-level authored layout, including blank:
my-game/
assets/
starter/
bin/
config/
balance/
gameplay/
game.config.json
# template-specific config files may live here
content/
dialogue/
# authored conversations and branching text
encounters/
# wave plans and encounter payloads
entities/
# placed collectibles and entity payloads
gameplay/
# catch-all gameplay payloads when no narrower family fits
levels/
# tilemaps, routes, room layouts, and course data
localization/
registries/
# starter-owned registries when a template needs them
spawns/
# spawn zones, checkpoints, and placement payloads
docs/
design/
content-map.md
game-pillars.md
prefabs/
player.prefab.js
# reusable gameplay blueprints
scenes/
boot.scene.js
gameplay.scene.js
# additional authored scenes
src/
main.js
runtime/
app.js
app-state.js
capabilities.js
project-inspector.js
project-registry.js
scene-flow.js
scene-registry.js
screen-shell.js
ui/
hud.screen.js
aura.capabilities.json
aura.config.json
package.json
README.md
RUNBOOK.md
Template-specific files add on top of this:
2d-adventure: config/gameplay/adventure.config.js, content/levels/moon-archive.level.js, content/dialogue/archive.dialogue.js2d-shooter: config/gameplay/shooter.config.js, content/encounters/wave-plan.json2d-survivor: config/gameplay/survivor.config.js, content/spawns/spawn-zones.json3d-adventure: config/gameplay/adventure.config.js, content/levels/signal-route.course.js, content/spawns/signal-route.spawns.js3d-platformer: content/levels/checkpoint-climb.course.js, content/spawns/checkpoints.json3d-collectathon: content/levels/relic-run.course.js, content/entities/collectibles.jsondeckbuilder-2d: config/gameplay/deckbuilder.config.js, content/cards/, content/enemies/, content/relics/, content/encounters/, content/registries/Use this ownership model:
aura global: engine/runtime API onlyappState: shared mutable app/session state across scenessceneState: mutable state local to one scene while it is runningconfig/: defaults, tunables, balancing numberscontent/: authored nouns and progression contentShort rule:
appState.sceneState.config/.content/.Examples:
appStatesceneStateconfig/content/Starter example for src/runtime/app-state.js:
const runFlags = context.ensureSessionState('runFlags', { DID_START: false });
if (!runFlags.DID_START) {
runFlags.DID_START = true;
}
Use these defaults:
scenes/prefabs/ui/src/runtime/app-state.jssrc/runtime/config/content/docs/design/If you are an agent working in an AuraJS project, prefer these commands:
auramaxx explain --json
auramaxx check --json
auramaxx make list --json
Then use the returned project structure and make kinds instead of inventing paths.
If a generator exists, prefer:
auramaxx make scene Scene1
over hand-creating:
scenes/scene1.scene.js
src/runtime/project-registry.js