create-siltrun
v0.1.2
Published
Scaffold a Silt multiplayer project — `npm create siltrun my-game`.
Maintainers
Readme
create-siltrun
Scaffold a Silt multiplayer project: an authoritative room contract and a client, in one directory, wired together and ready to run.
npm create siltrun@latest my-game
cd my-game
npm install
npm run devnpm run dev boots both halves at once. Your room runs through the siltrun CLI,
which serves room info on http://localhost:4000, and the Vite client runs on
http://localhost:5173. Open the client in two windows and you have a multiplayer
room. Edit room.ts and both sides reload.
The project directory is required. Running the command with no directory prints usage and exits.
Templates
npm create siltrun@latest my-game -- --template tower-defense| Template | What you get |
|---|---|
| minimal | The default. The smallest real room: each player moves a ship by tapping a target, the server clamps that intent and eases the ship toward it, and every client renders the same authoritative state. |
| tower-defense | Co-op tower defense. Two players share one always-warm room, ready up, and defend a path against waves together. |
| mass-grid | Territory capture in the Paper.io style. Leave your land to draw a trail, loop back to claim what you enclosed, cut a rival by crossing their trail. |
| turn-based-grid | A starter for agent-first games: a deterministic world that agents play and humans watch, with an action API, an ASCII view alongside the graphics view, an emote channel, and scripted stub agents to prove it. |
An unknown template name fails immediately and lists the ones that exist.
What you get
my-game/
room.ts your contract: tick(state, inputs), runs server-side at 60Hz
src/ the client, built on @siltrun/react and @siltrun/stage
package.json a dev script that runs the room and Vite togetherroom.ts is the whole server. It default-exports a tick(state, inputs) function
that runs 60 times a second and owns the truth. Clients send intent; the tick
decides what actually happens.
This is a plain Node initializer with no dependencies of its own, so it runs
anywhere npm create does.
Docs
Full guides and API reference: https://silt.run/docs/
