ctrlz docs
On this page

Quickstart

Installation

Download the tp CLI tool to develop, playtest and publish games.

curl -fsSL https://ctrlz.gg/install.sh | sh

To learn more about the commands available run tp help.

Your first game

Use tp new my-game to dive right in with a simple starter project that demonstrates some basic features: a character to walk and jump with, balls dropping from a post, and other players joining in.

Terminal
tp new my-game
tp dev my-game

ctrlz games are written using TypeScript. Using an editor like VS Code you can get autocomplete suggestions in scripts. A game’s scripts are in three folders:

  • server/ runs once for everyone: it builds the world and decides what happens in it.
  • client/ runs on each player’s device: the camera, the UI, what the player presses.
  • shared/ is what both use, such as the game’s components.

You can use tp dev my-game to preview your game in the browser and see it reload as edits are saved to get feedback in real time. It prints an address to open, such as localhost:8080/?watch to play alone. Running tp check my-game builds the game and checks its types without running it.

Check out the embedded starter project below, you can edit its scripts and try out the changes live.

tp new my-game
0 B

Examples

Examples are small games, each showing one thing. tp new --example lists them, and this starts a copy of one to read and change:

Terminal
tp new my-chat --example chat

Publishing

Developer account

Anyone can play, but publishing needs a developer account. Sign in to the developer dashboard with your email and apply to publish, telling us a little about what you’d like to make. Then sign in to tp with the same email:

Terminal
tp login

game.toml

Ensure your game.toml has:

  • id: the game’s address, @<your username>/<id>. It can’t change once published.
  • image: a 1280×720 picture in assets/, shown in the game list.
  • name and description, as players will see them.

Publish

Terminal
tp publish my-game

Every version is reviewed before players get it: a person plays it and reads its code. Once approved it goes live, and new players get it.

Updating

Keep your tp up to date using tp update. Run tp changes my-game to see what changed for your game.

Working with agents

Projects created with tp new ship with CLAUDE.md and AGENTS.md instructing agents to use tp guide to learn more about engine features. Agents can also read the changelog with tp changes and follow its Do: lines to migrate your code. You can also use agents as an interactive teacher, for fast prototyping, etc.

Next steps

These docs are a work in progress. Until then, run tp guide to read the creator guide.