Platform Framing
You are not building a “Crafty game type.”You are building a 2D game in Summer/Godot and integrating the Crafty platform layer:
- multiplayer runtime,
- server authority,
- data/economy/teams/score modules.
Recommended Player Model
For 2D games, create your own 2D player class that extendsCraftyPlayer.
Server Authority Loop
Client Render Pattern
On clients, render from synced state:Joining / Leaving
Optional Subsystems
Use only what you need:Crafty.scorefor score/rank,Crafty.teamsfor team modes,Crafty.datafor persistent inventory/progress,Crafty.economyfor currency.
Common Mistakes
- Running movement authority on clients.
- Mutating score/economy from client paths.
- Treating
set_syncedas client-owned state.
Production Checklist (2D)
-
Crafty.is_server()gates all authoritative state updates. - 2D state is synced via
set_synced. - Client only renders synced values.
- Required manifest fields valid.
- Local test runner flow passes.

