What Is SummerPlayer?
SummerPlayer is the scaffolded platform contract for a future connected-player record.
The production gameplay runtime and transport are not live, so the signatures below are
authoring targets rather than deployed connection behavior. See
platform capability status.
It is intentionally game-agnostic:
- no required 3D movement model,
- no required health model,
- no required scene structure.
Core Contract (Signatures)
Identity
The future runtime contract assigns identity fields during connection:peer_id: intplayer_id: Stringdisplay_name: Stringavatar: Dictionary
Custom Synced Variables
set_synced and get_synced are the core data sync mechanism.
Use them for any gameplay data your clients need:
- card hand summaries,
- turn state,
- unit stats,
- score,
- custom RPG state.
set_synced(key: String, value: Variant) -> voidget_synced(key: String) -> Variant
Input (Read On Server)
The future runtime contract gives a connected player an input proxy for server-side reads:player.input.movement -> Vector2player.input.look_direction -> Vector2player.input.is_action_pressed(action: String) -> boolplayer.input.is_action_just_pressed(action: String) -> bool
SummerCharacter3D (Optional 3D Template)
For 3D action games, use SummerCharacter3D in your player.tscn.
The template contract includes:
CharacterBody3Dmovement-compatible node type,- health fields (
health,max_health,is_alive), - helpers (
respawn,damage,heal,kill,teleport), - same synced API (
set_synced/get_synced).
Practical Rule
If your game needs built-in 3D character behavior, useSummerCharacter3D.
If your game is not a 3D character game, extend SummerPlayer directly and sync your own state model.
