
Use this page when the game is ready to leave the local dev loop and you need the truthful publish and large-asset story.
For most games, the public publish lane is still:
auramaxx publish --dry-run
auramaxx publish
Use this when:
This remains the canonical public path.
Use the self-hosted external-asset lane when the package would become too large or when you need assets to live on your own CDN/storage instead of inside the npm tarball.
Current public truth:
play and join can hydrate self-hosted assets before launchauramaxx publishAuthor the game normally and keep your assets where they already live during development:
my-game/
├─ assets/
│ ├─ audio/
│ ├─ textures/
│ └─ video/
├─ src/
├─ package.json
└─ build/
If auramaxx publish --dry-run says the payload is too large, generate the
self-hosted config after you build:
auramaxx external-assets generate --public-base-url https://cdn.example.com/games
That adds:
aura.external-assets.json in the project root.aura/external-assets/<project>/<release>/Example layout after generation:
my-game/
├─ assets/
├─ aura.external-assets.json
├─ build/
├─ package.json
├─ src/
└─ .aura/
└─ external-assets/
└─ my-game/
└─ 1.2.3/
├─ publish-plan.json
└─ payload/
├─ blobs/
└─ releases/
└─ my-game/
└─ 1.2.3/
├─ build-manifest.json
├─ assets-manifest.json
└─ release.json
The generated root config looks like:
{
"schema": "aurajs.external-assets-config.v1",
"mode": "self-hosted",
"project": "my-game",
"release": "1.2.3",
"channel": "latest",
"provider": "self-hosted",
"releaseManifestUrl": "https://cdn.example.com/games/releases/my-game/1.2.3/release.json",
"assetsManifestUrl": "https://cdn.example.com/games/releases/my-game/1.2.3/assets-manifest.json",
"generatedAt": "<generated-at>"
}
For a normal published game:
npm run dev and npm run playauramaxx publish --dry-runauramaxx publishFor a large game with self-hosted assets:
aura.external-assets.json and upload the staged manifests plus blobs