Agent documentation: index
Sparklight is operated by agents. Every page here is a reference an agent reads once and then uses; each starts with a quick start that
can be pasted. The machine-readable parts are not in these pages: commands are listed by spark commands --brief (with schemas
by spark commands) and sit in schemas/commands/; file formats are spark schema list and schemas/; error codes are
spark schema errors. Short map for crawlers: ../../llms.txt.
By task
Section titled “By task”| I want to … | Read | Entry point |
|---|---|---|
| Connect to the engine and call commands | commands.md | spark mcp, spark serve, spark call <command> '<json>' |
| Step a scene deterministically and hash it | runtime.md | spark headless <scene> --frames 600 |
| Author a 2D scene, prefab, clip, tile map | ../GUIDE.md, ../LUA_API.md | spark validate <file>, spark schema scene |
| Author a 3D scene and drive it | space3d.md | space3d.load, space3d.step, space3d.capture |
| Test a feature without looking | testing.md | spark test <scenario>; *.scenario.json (2D), *.scenario3d.json (3D) |
| Record or check a golden image | testing.md, space3d.md (goldens) | golden.check, --update-goldens after looking |
| Physics, joints, ragdolls, destruction | physics.md | space3d.set of Body, Joint, Ragdoll, Destructible |
| Vehicles, impact damage | vehicles.md | Vehicle, VehicleDamage, space3d.vehicle.* |
| Characters and animation | animation3d.md | Skeleton, Animator, space3d.anim.* |
| Characters: morph targets, face, hair, cloth, retargeting, foot placement | characters.md | Character, MorphSet, FaceDef, GroomDef, Retargeter, character.* |
| Materials and shaders | shaders.md, rendering.md | shader.*, *.material.json |
| Effects, particles, decals, trails | vfx.md | vfx.* |
| Global illumination: probe GI, screen-space GI, baked lightmaps | gi.md | gi.set, gi.tier, gi.bake, space3d.capture |
| Virtual geometry (cluster DAG meshes, GPU culling, streaming) | virtual-geometry.md | vgeo.* |
| Cinematics | cinema.md | cinema.*, *.sequence.json |
| Sound, music, spatial audio | audio.md | audio.* |
| Navigation, crowds, AI | navigation.md | nav.*, ai.* |
| Menus, HUD and other retained UI as data | ui.md | ui.* |
| Texts in several languages, plural forms, case forms | localization.md | Localization, {n:@key}, {@key:gen} |
| See what the frame is made of and how components are stored | ecs.md | schedule.explain, ecs.stats, space3d.schedule.explain, space3d.ecs.stats |
| Profile, find hitches, assert frame-time budgets | performance.md | perf.start, perf.report, perf.budget; frame_budget assertion |
| Terrain, foliage, sky, fog, world streaming | world.md | terrain.*, world.stream.*, world.atmosphere.* |
| Clouds, rain, snow, wet surfaces, lightning, wind | weather.md | weather.*, sky.* |
| Online play, bots, prediction | netcode.md | spark serve-game, spark join-game |
| Import textures and models | assets.md | assets.import, assets.report |
| Extend the engine | plugins.md | plugin.json, Lua plugin |
| Drive the editor | editor.md | spark call --connect |
| Run on another platform (Linux, Windows, iOS, Android) | platforms.md | what was built and run where, the downlevel renderer, touch |
| Reach Gameway | ../gameway.md | start-up gate, sparklight.gameway.* |
| Show the “Made with Sparklight” splash at game start | splash.md | <assets>/splash.json, spark run --splash |
| Make a game in its own repository | rules/README.md | spark new <name>, the sparklight crate |
Conventions all pages share
Section titled “Conventions all pages share”- A command id is
area.verb(space3d.step); as an MCP tool it isarea_verb. Errors carry a stable code (E_...) and a hint. - Everything is muted and headless by default for agents; outputs go below
.gwdev/out; hashes name states (equal hash, equal state). crates/sparklight-cli/tests/docs.rsfails when a link in this index,llms.txt, the plan, the architecture or the rule pages points nowhere.