Files
skate-3-rust-engine/tools
Hails bebdf0cc9b Audio: bail speed curve, |Δv·n|, console-cadence posters, NPC grain bed
- Body region impacts are scaled by retail's centre-of-mass speed curve (x1 at rest up to x5 from ~0.95 m/s,
  read from the vault; no clamp after the multiply), so bails reach the tier-1 / tier-2 body and concrete hits.
  Setup exports the curve; older installs get the identical default. SKATE_AEMS_BODY_CURVE=0 = old.
- Region impacts take |Δv·n| as retail does (matches 12,054 of 12,054 recomp region lines).
- The body and deck posters' cooldowns count console frames (0.5 s / 0.2 s at any frame rate).
  SKATE_AEMS_BODY_CONSOLE=0 / SKATE_AEMS_DECK_CONSOLE=0 = old.
- Second grain bed for the NPC skater (retail's per-instance SkateBoard update; inert until the engine has
  NPC skaters). The local player's renders are byte-identical.
- The state log records the COM speed; the e2e harness replays it.
- Docs: doc 11 (bail density: the missing speed curve, not the ragdoll; the hooks' local test), PR plan,
  docs index; the published recomp trace reader knows the new line kinds.
2026-10-03 11:37:32 -06:00
..

Tools

The top-level scripts here are the repository's own tooling: setup and asset preparation (setup.py, prepare_assets.py, asset_pipeline/, owned_game/), the updater, release and build helpers, and their tests. They are documented where they are used (the main README and the scripts' own help).

The folders below are standalone helper tools for development and research. Each has a README.md with what it does, its inputs, usage, example output and requirements. They read your own copy of the game; none of them contain game code or data. Default work folders are under .local/ (gitignored).

Folder What it is for
regression-checks/ Map validation and collision counts, baked spawns, customiser outputs against your own baselines; a muted crash smoke test per map.
setup-equivalence/ Prove a faster setup path gives identical bytes (district stream loader, native RefPack DLL).
collision-inspect/ Extract a district's collision for analysis: triangles, surfaces at a point, surface ids and flags, surfaceless meshes.
world-stream-inspect/ List / extract .big archives; survey the RW4 arenas of the district simulation streams; dump named trigger volumes.
audio-file-inspect/ Readers for the audio formats: ABKC banks and MOIR projects, SPLC banks, .ems emitter files, .grain data; decode bank samples.
vault-inspect/ Look up fields in the attribute database (converted skater collections) and class layouts in the schema.
audio-e2e/ Scripted scenarios for the headless audio render and analysis of the renders (diffs, levels, voices, bus share).
audio-bench/ Audio performance: hashed e2e bench runs, timing summaries, emitter bank memory.
recomp-trace/ For use with the Skate 3 recomp's research hooks (research-hooks branch): read and analyse trace sessions. Reference only; you build the recomp and set up the paths yourself.
recomp-code-search/ For use with the Skate 3 recomp's research hooks (research-hooks branch): search the recompiled sources and the memory image. Reference only; you build the recomp and set up the paths yourself.

See docs/hails-additions/14-published-tools.md for the background.