
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 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 content spawn-table
auramaxx make material GrassTile
auramaxx make shader RimLight
make config and make content 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.
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/
gameplay/
# authored levels, waves, checkpoints, collectibles, etc.
localization/
registries/
# starter-owned registries when a template needs them
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/gameplay/world.js2d-shooter: config/gameplay/shooter.config.js, content/gameplay/waves.json2d-survivor: config/gameplay/survivor.config.js, content/gameplay/spawn-zones.json3d-adventure: config/gameplay/adventure.config.js, content/gameplay/course.js3d-platformer: content/gameplay/course.js, content/gameplay/checkpoints.json3d-collectathon: content/gameplay/course.js, content/gameplay/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