Install
Get a local Aether running, then scaffold a package to build against it.
Aether is a Bun monorepo. You need Bun 1.3 or newer, and Docker if you want the full hosted stack.
#Run the engine locally
bun install
bun run dev:playThat starts a world server and the tabletop client. Open the client, sign in with the local bootstrap credentials, and you have a world to develop against.
#Scaffold a package
bunx aether create system my-systemThe scaffold gives you a manifest, one document type, one sheet, and a passing test.
#Register it with an app
Systems load from a registry rather than being resolved dynamically, so add yours and restart. Lines 4 and 8 are the two that matter: the import, and the entry in the registry array.
import { defineRegistry } from "@aether/sdk";
import demoSystem from "@aether/demo-system";
import dnd5eSrd from "@aether/dnd5e-srd";
import mySystem from "@aether/my-system";
export const systems = defineRegistry([
demoSystem,
dnd5eSrd,
mySystem,
]);Declarative content reloads without a restart. A manifest change does not, so restart after editing one.
#Moving from a hand-written manifest
If you started before the scaffold existed, the shape changed: compatibility became required and
minSdkVersion replaced the old sdk field.
export const manifest = {
id: "my-system",
kind: "system",
sdk: "0.1.0",
minSdkVersion: "0.1.0",
compatibility: {},
};