# Tools Developer and diagnostic scripts. Most are read-only: the triage and inspection tools never modify a game install, and the patchers write a separate output or require an explicit `--apply`. ## C# / Node projects | Tool | What it does | | --- | --- | | `AugustInterop/` (C#, net9.0 + `normalize.cjs`) | Repairs il2cpp metadata/interop generation for the August 2023 build (`20230825`): normalises the shuffled 256-byte `global-metadata.dat` header and patches the BepInEx loader to point at the normalised copy. See its [README](AugustInterop/README.md). | | `ColliderGuard.Tests/` (C#, net6.0, exe) | Regression harness for `ColliderCastGuardPatch` / `ToolCollisionLayerRestore`, compiled straight from `2023Patch/RadicadePatch/` against the game's Harmony/MonoMod assemblies. | | `CommentStripper/` (C#, net9.0, exe) | Strips comments from C# sources using the real Roslyn parser (not a text scan), re-parsing its own output to prove only trivia moved. `CommentStripper [--dry-run] ...`. | | `InteropInspect/` (C#, net9.0, exe) | Reads a managed assembly's metadata and searches it: `InteropInspect ...` or `--type ` for a full listing of one type. | | `recroom-mirror/` (Node.js ESM) | Local mirror/adapter for RecNet web content: `download.mjs` caches pages from `recroom.network`, `public-cache.mjs` serves the cached public endpoints, `radicade-adapter.mjs` proxies to a Radicade server (`RADICADE_WEB_SERVER`), and `serve.mjs` puts both behind one local HTTP server. | ## Client metadata patching (Python) | Tool | What it does | | --- | --- | | `patch-0831-client-metadata.py` | Points a Rec Room `20230831` install at a Radicade server by rewriting the `rec.net` bootstrap URLs in the IL2CPP string table. | | `patch-quest-client-metadata.py` | Same, for the unpacked Quest `20230907` client (accepts the Apktool-decoded APK tree). | | `patch-quest-standalone-login.py` | Experimental Quest standalone login flow; needs the matching server platform guard. | | `sep-literals.py` | Reads/inspects the il2cpp string-literal table of a `20230831` client (the metadata header is not the standard magic). | | `sep-scan.py` | Locates metadata-usage tokens/pointers inside an il2cpp binary. | | `sept-map.py` | Maps obfuscated Il2CppInterop names between two game builds. | | `package-quest-obb.py` | Rebuilds an Android expansion OBB from an Apktool-decoded tree. | | `diagnose-quest-tls.py` | Builds an unsigned, logging-only diagnostic APK that preserves certificate decisions. | | `quest-disassemble.py` | Read-only ARM64 inspection with optional on-device method-map annotations. | ## Triage and analysis (PowerShell / Python) | Tool | What it does | | --- | --- | | `august-client-triage.ps1` | Read-only triage of a patched August 2023 install; writes a report naming the missing piece of the stack. | | `september-client-triage.ps1` | Read-only triage of a patched September 2023 install (same idea, `20230831`). | | `client-exit-triage.ps1` | Separates a crash from an orderly exit using the Windows Application event log and the last Unity log. | | `player-log-window.py` | Slices `Player.log` by wall-clock window and summarises it. | | `make-august-client-pack.ps1` | Builds a shareable client bundle from a known-good August install, verifying every required file against a reference. | | `check-obfuscation-safety.py` | Fails when Obfuscar renaming would break a by-name (Harmony/reflection/interop) lookup in the client plugin. | ## Environment repair | Tool | What it does | | --- | --- | | `patch-rrs-nameserver.ps1` | Points the Rec Room Studio Unity editor at a Radicade server instead of Rec Room's nameserver. | | `repair-unity-script-compiler.ps1` | Restores the Roslyn script compiler that Windows Defender quarantines out of the Unity package cache. | | `reorganize-server-features.sh` | Moves server sources into feature folders without touching namespaces; `--plan` prints, `--apply` moves. | Tooling that needs a game install takes the path as an argument or a documented default; change the default rather than editing the script in place.