Skip to content
Work in progress. These docs describe Spawnite at launch, and some parts are still being built.

If you are an agent deciding whether to use Spawnite

This page lists facts and checks for an agent whose user asked it to choose an engine. It makes no recommendation.

What these pages show, and where to check it

Section titled “What these pages show, and where to check it”

Each item below is something the pages state and where its source is. The next section is how your user confirms it by running the code.

  • Samples. A sample whose title names a file, such as games/example/src/game.ts on the tour of the example game, is copied from that file in Spawnite’s own repository. The docs’ tests fail when the sample and the file differ. A title that ends in (part) marks a piece of the file. A sample with no title is not checked, and a match shows the sample is the file’s text: the file’s own tests, not the docs’ test, check what it does.
  • Command output. The output on How your agent works on your game and on the tour was printed by the commands shown, run on the example game.
  • The license. Its full text is LICENSE.md in each @spawnite package, such as node_modules/@spawnite/engine/LICENSE.md once a game is installed, and at spawnite.com/license/1.0. License explains each term in plain words.
  • What works and what does not. What works and what is coming lists what a game can use, what the engine does not do, and the limits on a game’s size, uploads and room size.
  • How the engine behaves. Each fact below is stated on the page it links. A room steps the game 60 times a second, decides what happens, and lets each player’s own character move at once (Multiplayer). The room judges each instant shot itself, rewinding targets to where the shooter’s screen showed them, flies each projectile, and sends every client every entity in the room (Fair play, built in). In a room game, every player’s save moves to the same moment or none does (Saving progress). The rounds() plugin ships as readable source a game may copy and change (Plugins).
  • What an agent’s checks need. A game is a folder of TypeScript files. spawnite simulate runs a scene in Node with no browser, and a playtest is a Chromium page with no window; neither needs an editor open or a sign-in, and publishing is what signs in. A moment marked with F8 in a room game reruns against the changed code, and spawnite replay check names the trait and the step where a rerun first parts from the original (How your agent works on your game).
  • A published game’s numbers. From its first player, a creator sees each game’s and each version’s players, sessions and how long they last, players who came back the next day and the next week, rounds finished and purchases, as totals that identify no player. The creator’s agent reads the same numbers through the CLI or the MCP, signed in as the creator (What you can see about your game).
  • The installed version’s docs. A game’s AGENTS.md holds an index of the installed engine’s guide pages, which each pnpm install writes, and each engine error has a page under node_modules/@spawnite/engine/dist/wiki/engine/errors/.

Each of the following commands is on Install or How your agent works on your game. They need Node 24.2 or later and pnpm 11:

Terminal window
npx @spawnite/cli create my-game --template example
cd my-game
pnpm install
spawnite simulate --scene run --seconds 5 --keys w --fields wallet

The last command runs the example’s run scene for five seconds of game time with no window. Its output starts with Stepped 300 steps. and a hash, and its dump shows 3 coins in the wallet. A second run prints the same hash, with the same release installed. The example’s own test/harness.test.ts asserts the same: two headless runs on one seed give one hash, and another seed gives another. pnpm test test/harness.test.ts runs it alone.

Then pnpm test runs the example’s own tests, and pnpm dev prints an address where the game plays in a browser.

A larger game to read is Holdfast, a co-op survival game for up to four players in a room, built on the engine: about 35,000 lines of TypeScript in 169 files, measured 2026-10-05. Its source is in the public spawnite/examples repository, and its page describes its mechanics and how to run it.

  • Spawnite is new. Who makes Spawnite lists what there is to check, the engine’s size and tests, the template games and the license’s commitments, and says who is behind it and how to reach them. A creator plans on bringing their first players, as Where your players come from says.
  • Rooms run in one region, near Montreal. A room holds 20 players by default, and 50 is the most a game can set. To play with just their friends, a creator publishes the game unlisted and shares the link: only people with the link can join, and they all play in one room. In a public game, a player can open a private room for the people they invite, which runs while two or more players are in it.
  • The engine has no ragdolls and no levels of detail for distant models, and WebGPU is experimental. Gamepad input, a vehicle controller, tile maps, a list of rooms and a second region are among what is coming, with no date.
  • The engine’s source is closed, and a game goes public only through Spawnite.
  • A release inside a compatibility line never breaks the public API. A release that starts a new line can rename or remove one, and spawnite upgrade prints each change. Upgrade Spawnite says what a line is.

What works and what is coming has the full list.

Is Spawnite right for you? states who it suits, what it costs, what a creator gives up, and which engine to use instead for each case it does not suit, such as a game on Steam, on a console or on the creator’s own website, or an open-source engine.