Tooling & environment
Windows / PowerShell / dotnet traps that corrupt source.
Angles uses .pitch/.yaw/.roll (lowercase) and Vector3 uses .x/.y/.z — capitalized sightings in a codebase belong to unrelated component properties.
Deriving a visual's facing from horizontal velocity causes 180-degree snaps on any momentum reversal — lock facing to an attach-time azimuth for pendulums and oscillators.
Headless dotnet build is green while the in-editor compiler emits SB1000 — Environment/IO/Process/reflection are banned in game code.
Razor HUD emoji and dashes die under Get-Content/Set-Content — edit with byte-safe UTF-8 APIs or a real editor.
The engine ships its built-in [McpTool]s as full C# source, not compiled DLLs — check addons/tools/Code/Mcp/*.cs for canonical patterns before inventing your own.
Failed package compile leaves the editor running the last-good hotload — multi-symptom 'regressions' are often stale code.
A front-flip rotation uses _baseRot.Forward (not .Right) when FacingYawOffset is ±90° — the offset swaps which local axis is perpendicular to travel.
dotnet build reports 0 errors on .razor files the in-editor compiler rejects — the headless build doesn't surface the Razor errors the live editor's Roslyn compiler flags.
If sbox-launcher.exe stays open during a Steam update, files vanish mid-install — validate via steam://validate/590830.
Get-Content/Set-Content re-encodes BOM-less UTF-8 as ANSI; CRLF files break \n-only search-replace — use byte-safe APIs.