Agent skill
dojo-init
Initialize new Dojo projects with proper directory structure, configuration files, and dependencies. Use when starting a new Dojo game project or setting up the initial project structure.
Install this agent skill to your Project
npx add-skill https://github.com/dojoengine/book/tree/main/skills/dojo-init
SKILL.md
Dojo Project Initialization
Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
When to Use This Skill
- "Create a new Dojo project"
- "Initialize a Dojo game called [name]"
- "Set up a new Dojo application"
- "Start a new provable game project"
What This Skill Does
Creates a complete Dojo project with:
Scarb.tomlwith Dojo dependenciesdojo_dev.tomlfor local development- Source directory structure
- Example models and systems
- Test files
Quick Start
Using 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"
Project Structure
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
Configuration Files
Scarb.toml
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"]
dojo_dev.toml
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"]
Starter Template Contents
The starter template includes:
Models (src/models.cairo)
Positionmodel with player key and Vec2 coordinatesMovesmodel tracking remaining moves and directionDirectionenum
Systems (src/systems/actions.cairo)
spawnfunction to initialize player statemovefunction to update player position- Example event emission
Tests (src/tests/test_world.cairo)
- Test world setup with
spawn_test_world - Integration tests for spawn and move
Development Workflow
-
Initialize project:
bashsozo init my-game cd my-game -
Start Katana:
bashkatana --dev --dev.no-fee -
Build and deploy:
bashsozo build && sozo migrate -
Test your system:
bashsozo execute my_game-actions spawn -
Run tests:
bashsozo test
Customization
After initialization, customize your project:
- Add models: Create new model structs in
src/models.cairoor separate files - Add systems: Create new contract modules in
src/systems/ - Update permissions: Edit
[writers]indojo_dev.toml - Add dependencies: Edit
[dependencies]inScarb.toml
Next Steps
After initialization:
- Use
dojo-modelskill to add game state models - Use
dojo-systemskill to implement game logic - Use
dojo-testskill to write tests - Use
dojo-deployskill to deploy your world
Related Skills
- dojo-model: Add models to your project
- dojo-system: Add systems to your project
- dojo-config: Modify configuration
- dojo-deploy: Deploy your project
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
dojo-migrate
Manage world migrations, handle breaking changes, and upgrade Dojo versions. Use when updating deployed worlds, migrating to new versions, or handling schema changes.
dojo-system
Create Dojo systems that implement game logic, modify model state, and handle player actions. Use when implementing game mechanics, player commands, or automated logic.
dojo-review
Review Dojo code for best practices, common mistakes, security issues, and optimization opportunities. Use when auditing models, systems, tests, or preparing for deployment.
dojo-config
Configure Scarb.toml, dojo profiles, world settings, and dependencies. Use when setting up project configuration, managing dependencies, or configuring deployment environments.
dojo-deploy
Deploy Dojo worlds to local Katana, testnet, or mainnet. Configure Katana sequencer and manage deployments with sozo. Use when deploying your game or starting local development environment.
dojo-model
Create Dojo models for storing game state with proper key definitions, trait derivations, and ECS patterns. Use when defining game entities, components, or state structures.
Didn't find tool you were looking for?