Quirkymals (Player Characters)
Quirkymals are the player characters in Woodlands — small creatures navigating the forest.
Spawn Resolution
QuirkymalService._getSpawnForPlayer() resolves spawn location in priority order:
- Development — If
DevelopmentModeflag is active - GameStart — If teleport data contains
gameStart: trueorGamePhase === "game" - Lobby — Default fallback
Spawn locations are registered by SpawnLocationComponent — a Flamework component that registers tagged SpawnLocation parts by name.
Character Creation
- Clone quirkymal model from
ServerStorageprefab - Assembly via Quirkify module:
add-quirkymal.ts— Model assemblyadd-animations.ts— AnimationTrack bindingadd-rotations.ts— Rotation LOD setup
- Assign to player
Camera Modes
Based on gamePhase atom:
| Phase | Camera | Zoom |
|---|---|---|
lobby | 3rd person (Custom) | Min 3, Max 5 |
game | 1st person (FirstPersonCamera module) | Locked |
Debug mode overrides mouse lock for UI interaction.
Animation State Machine
quirkymal-animations.ts manages:
- Idle
- Walk
- Sprint
- Jump
- Death
Transitions based on humanoid state and velocity.
Key Files
| File | Purpose |
|---|---|
quirkymal-service.ts | Server spawn resolution, character creation |
quirkymal-controller.ts | Client character management |
spawn-location.ts | Component registering spawn points |
viewport-controller.ts | 3D character preview |
Quirkify/ | Character assembly module |