Files
skate-3-rust-engine/sdk/AGENTS.md
T
Hails 7f120de0b8 Audio: world / NPC sources complete, ped speech, specs published
- Ped speech plays: speech manager -> library -> the living world's two streams, with queue / interrupts and the
  near / far lines by distance; levels and filters from the retail mechanism (filters equal to the recomp's, gain
  median within 0.5 %). Silent and logged when the opt-in speech decode is absent.
- NPC skater: wheels and clothing on its own instance and a bail grunt; tricks, treatment and footsteps stay off for
  NPCs as in retail.
- Per-model ped data (shoe class, voice, far threshold) and traffic engine records per model exported by setup;
  traffic relative-speed input and front / rear sound points; world hosts process before the mixer tick.
- Test mod: opt-in (off by default), higher world-object limits (48 per mod, 128 total), a per-second summary log.
- Specs published in docs/hails-additions/audio-specs/; code comments point at them; test data paths behind env vars
  (no .local defaults).
2026-10-03 18:34:48 -06:00

1.2 KiB

Agent guide: physics/graphics mods (API 2)

Use this when asked to make a mod. Deliver a validated package under mods/ (folder or .zip). Do not invent vehicle/wheel/suspension host APIs — assemble those in Lua from primitives.

Read first

  1. docs/physics-graphics-sdk.md — layer philosophy and deferred work
  2. sdk/skate.lua — annotations
  3. sdk/examples/physics-sandbox/ — reference mod
  4. Host: crates/skate-game/src/modding/, runtime crates/skate-mods/, dynamics crates/skate-dynamics/

Workflow

cargo run --locked -p skate-mods --example check_mod -- sdk/examples/your-mod
# copy/symlink into mods/

Manifest must use "api": 2. Return a callback table from the entry Lua file. Optional "enabled_by_default": false keeps a dev / test mod off until the player enables it (or SKATE3_MODS_ENABLE=<id>[,<id>] for one run); a saved preference always wins.

Building blocks

Physics bodies (box/sphere/capsule/convex/mesh from named GLB objects), extra add_collider hulls, forces/joints(+motors)/sensors, graphics meshes/overlays, player attach/detach, camera follow/set, sdk.assets.objects, sdk.input.pad, settings/log/timers. No sdk.vehicle.