Overview
Every Crafty game must include amanifest.json file in the game pack.
The submission API validates required keys and types before a game can enter review.
Required Fields
These fields are required by submission validation:| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Stable game identifier. Used for slug generation and updates. |
name | string | Yes | Display name shown in platform surfaces. |
version | string | Yes | Semantic or creator-defined version string (for example 1.0.0). |
crafty_sdk | string | Yes | SDK version your game targets (for example 1.0). |
entry_scene | string | Yes | Main scene path/name loaded by the runtime. |
min_players | number | Yes | Minimum players required before start flow. |
max_players | number | Yes | Maximum concurrent players for a match. |
Optional Fields
| Field | Type | Required | Description |
|---|---|---|---|
player_scene | string | No | Player scene path/name used by server/client spawning logic. |
description | string | No | Short game description. |
tags | string[] | No | Category/search tags. |
genre | string | No | Primary genre label. |
tick_rate | number | No | Server sync tick hint (if supported by runtime config). |
preview | string | No | Preview asset path/name for discovery UI. |
input_actions | object | No | Input action metadata for UX/docs tooling. |
Minimal Valid Example
Full Example
Validation Rules That Cause Rejection
- Missing any required key
- Wrong type for required string fields
min_playersormax_playersnot numeric- Invalid JSON
Versioning and Updates
When you submit a new.pck:
- Keep the same
idfor the same game - Increase
version - Re-submit through the submission endpoint

