Table of Contents

Start Here

  • Got a task? → How do I… — problem, code, gotcha.
  • Got a type you don't understand? → Reference, or search the API.
  • Got neither yet? → Getting Started builds a project and gets a .dll into the game.

Scope

Setup, manifest.json, and dependencies are covered well by the official wiki; ShapezShifter's content-authoring builders are covered by the Notion docs.

This site covers what neither does: working with the game that is already there — reading the map, watching machines, drawing over the world, and hooking behaviour that has no builder API.

First fifteen minutes

  1. Getting Started — build something, watch it load.
  2. Run code when a game loads — your constructor runs at the main menu, not in a game. This catches everyone.
  3. Find buildings — walk the world.
  4. Add a console command — the fastest debug loop you get.

Conventions

Everything stated as fact was read out of the shipped assemblies. Guesses are marked Inference, not verified. Written against shapez 2 1.0 and the ShapezShifter workshop release (steam:3542611357).

Where a page uses an [Obsolete] type — DrawHooks, IGameSessionManagers, IslandModel.LayoutQuery — it says so. They are the easy way today and the first thing to break tomorrow.