🧍‍♀️ Player Schema

Defines the main playable character’s stats, sprite, and controls.

✅ Field Rules & Accepted Values

FieldTypeRequiredNotes
idstring✅ YesUnique internal identifier (e.g., 'main_character'). Used in logic.
displayNamestring✅ YesName shown in the game UI (e.g., 'Ayla').
healthnumber✅ YesStarting HP (integer).
speednumber (float)✅ YesHorizontal movement speed (e.g., 1.0).
jumpStrengthnumber (float)✅ YesJump height/power.
gravityScalenumber (float)✅ YesMultiplier for gravity (e.g., 1.0 = normal).
collidesboolean✅ YesIf true, interacts with platforms, walls, enemies.
invincibleboolean✅ YesIf true, cannot take damage.
abilitiesstring[]✅ YesList of ability IDs (must match abilities schema).
spritestring✅ YesSprite file (e.g., 'ayla.png').
sizeobject✅ YesPhysical dimensions in pixels.
controlsobject✅ YesKey mappings for ability/action triggers.

👤 player (global)

Defines the main playable character. This config connects with movement, abilities, UI, and game logic.

FieldTypeDescriptionRequiredExample
idstringUnique reference used in logic and events."main_character"
displayNamestringOptional in-game name shown in dialog/UI."Ayla"
healthnumberStarting health (can be 0–100+ depending on gameplay).100
speednumberMovement speed multiplier (1.0 = default).1.0
jumpStrengthnumberVertical force applied when jumping.2.0
gravityScalenumberAffects fall rate (1 = normal, <1 = floaty, >1 = heavy).1.0
collidesbooleanWhether player can collide with world geometry.true
invinciblebooleanIf true, takes no damage (e.g. cutscene/cheat).false
abilitiesstring[]List of ability IDs from the abilities schema.["dash", "jump"]
spritestringPath to character sprite asset."ayla.png"
sizeobjectPhysical collision box in pixels.{ "width": 32, "height": 48 }
controlsobjectMaps abilities to keyboard/controller keys.{ "dash": "X" }