AetherDocssdk 0.0.0

Install

Get a local Aether running, then scaffold a package to build against it.

1 minute readEdit this page

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

TerminalShell
bun install
bun run dev:play

That 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

TerminalShell
bunx aether create system my-system

The 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.

apps/play/src/systems.tsTypeScript
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.

systems/my-system/src/manifest.tsTypeScript
export const manifest = {
  id: "my-system",
  kind: "system",
  sdk: "0.1.0",
  minSdkVersion: "0.1.0",
  compatibility: {},
};
Was this page helpful?