dojo-system

Generate Cairo Dojo systems with contract interfaces, events, and world access.

Updated Feb 16, 2026
One-click install
npx skills add https://github.com/steebchen/proof-of-war --skill dojo-system-steebchen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dojo-system
Source: https://github.com/steebchen/proof-of-war/tree/main/.agents/skills/dojo-system
Command: npx skills add https://github.com/steebchen/proof-of-war --skill dojo-system-steebchen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Dojo system generation automates creating contract-based game logic components, enabling consistent world state updates and event-driven behavior.

Core Features & Use Cases

  • Generates #[dojo::contract]-enabled Cairo systems with interface traits, system impls, and world access
  • Supports emitting events and interacting with world storage for reading/writing models
  • Use cases include movement, combat, inventory, and other game mechanics that require on-chain logic

Quick Start

Create a move system that updates Position based on Direction.

Frequently Asked Questions about dojo-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate Dojo systems for game logic in Cairo?

Generating Dojo systems for game logic in Cairo involves creating contract modules with #[dojo::contract], defining interface traits with #[starknet::interface], and implementing world-access operations to modify model state. This automates consistent state updates and event-driven behavior for mechanics like movement and combat.

How does a Dojo system interact with world storage on Starknet?

A Dojo system interacts with world storage on Starknet by executing world-access operations that read and write models directly within the contract logic. This allows on-chain game mechanics to update world state consistently while emitting events to signal state changes across the namespace.

Can I use Dojo systems to implement combat and inventory mechanics?

Yes, you can use Dojo systems to implement combat and inventory mechanics. The system generation supports creating on-chain logic for movement, combat, and inventory by emitting events and interacting with world storage to modify model state across a namespace.

What is the best way to structure events and interfaces in a Dojo contract?

The best way to structure events and interfaces in a Dojo contract is to generate a contract module with #[dojo::contract] and an interface trait with #[starknet::interface]. This setup enables event emissions and defines world-access operations within the system implementation.

Do I need prior Cairo knowledge to build Starknet game logic with Dojo?

Yes, you need prior Cairo knowledge to build Starknet game logic with Dojo. The generated systems rely on Cairo-specific attributes like #[dojo::contract] and #[starknet::interface] to implement world-access operations and model state modifications for on-chain game mechanics.

Why are my Dojo systems not updating model state correctly?

Dojo systems might not update model state correctly if the world-access operations for reading and writing models are improperly configured within the contract logic. Ensuring the generated #[dojo::contract] module correctly implements world storage interactions and event emissions resolves state synchronization issues.