From book
Initializes new Dojo projects with directory structure, Scarb.toml, dojo_dev.toml configs, models, systems, and tests. Use when starting provable game projects.
npx claudepluginhub dojoengine/bookThis skill is limited to using the following tools:
Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
Configures Scarb.toml, Dojo profiles, world settings, and dependencies for Dojo projects. Use for project setup, dependency management, and deployment environment configuration.
Generates complete production-ready projects from descriptions: directory structure, code, tests, docs, config, git init. Orchestrates pipeline with verification to ensure builds and tests pass.
Scaffolds projects with directory structures, configs, dependencies, linting, testing, CI/CD basics, and docs for frontend, backend, mobile, CLI, libraries, and monorepos.
Share bugs, ideas, or general feedback.
Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
Creates a complete Dojo project with:
Scarb.toml with Dojo dependenciesdojo_dev.toml for local developmentUsing sozo init:
sozo init my-game
This creates a new Dojo project from the dojo-starter template.
Interactive mode:
"Create a new Dojo project called my-game"
After initialization:
my-game/
├── Scarb.toml # Package manifest and dependencies
├── dojo_dev.toml # Local development profile
├── dojo_release.toml # Production deployment profile
└── src/
├── lib.cairo # Module exports
├── models.cairo # Game state models
├── systems/
│ └── actions.cairo # Game logic systems
└── tests/
└── test_world.cairo # Integration tests
Package manifest with Dojo dependencies:
[package]
cairo-version = "2.12.2"
name = "my_game"
version = "1.0.0"
edition = "2024_07"
[[target.starknet-contract]]
sierra = true
build-external-contracts = ["dojo::world::world_contract::world"]
[dependencies]
starknet = "2.12.2"
dojo = "1.7.1"
[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"
[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]
Local development configuration:
[world]
name = "My Game"
seed = "my_game"
[env]
rpc_url = "http://localhost:5050/"
account_address = "0x127fd..."
private_key = "0xc5b2f..."
[namespace]
default = "my_game"
[writers]
"my_game" = ["my_game-actions"]
The starter template includes:
src/models.cairo)Position model with player key and Vec2 coordinatesMoves model tracking remaining moves and directionDirection enumsrc/systems/actions.cairo)spawn function to initialize player statemove function to update player positionsrc/tests/test_world.cairo)spawn_test_worldInitialize project:
sozo init my-game
cd my-game
Start Katana:
katana --dev --dev.no-fee
Build and deploy:
sozo build && sozo migrate
Test your system:
sozo execute my_game-actions spawn
Run tests:
sozo test
After initialization, customize your project:
src/models.cairo or separate filessrc/systems/[writers] in dojo_dev.toml[dependencies] in Scarb.tomlAfter initialization:
dojo-model skill to add game state modelsdojo-system skill to implement game logicdojo-test skill to write testsdojo-deploy skill to deploy your world