subagent-driven-development
OBobra/superpowers299k2,675 new stars in the last 7 days
Read how a game actually works so a mod can hook it. Decompile .NET/Mono (ILSpy), IL2CPP (Cpp2IL, Il2CppDumper), Java (Vineflower) and native code (Ghidra, IDA, via MCP servers); dump data and asset formats; reverse-engineer a binary file format and prove it with a round trip; read live memory (Cheat Engine, Frida, x64dbg); find render passes (RenderDoc). Use when a mod needs game internals, e.g. "how does the boss AI work", "find the damage function", "what format is this .sld/.pak/.dat", "where is the player position in memory".
Rule zero: read the real thing, don't guess. Decompiled code, the actual data, a live memory view or a
GPU capture is the spec. Write what you learn into MODLOG.md (names, IDs, offsets, formats) as you go.
Keep all decompiled output and extracted assets outside the mod repo (e.g. ~/<game>-decomp/) and never
publish them. Single-player, offline or servers the user runs. Never attach debuggers or scanners to games
with anti-cheat (see skills/mod-any-game/references/safety.md).
um scan tells you)Managed .NET (XNA/FNA, Unity Mono, most indie C#)
dotnet tool install -g ilspycmd, then ilspycmd -p -o ~/<game>-decomp <Game>.exe (or
Assembly-CSharp.dll). This gives a full C# project you can grep.Unity IL2CPP
GameAssembly.dll + global-metadata.dat gives types, fields, method
signatures and addresses, plus dummy DLLs for ILSpy.GameAssembly.dll in Ghidra/IDA and apply the generated script to name
functions.il2cpp-frida-mcp.Java (Minecraft, Slay the Spire...)
Vineflower / CFR / Recaf. For Minecraft, use Loom genSources with Mojang mappings.
Native C/C++ (custom engines, Unreal game code, console recomps)
Dynamic / live
Graphics
Use the community tool first:
.upk (UELib shows Exports=0): unpack a copy with Gildor's decompress
(from UE Viewer), or, for LZO packages, with
unpack_upk.py.Before reversing a format yourself, search the community archives. Most game formats from the 2000s and 2010s were worked out there:
Use them for format knowledge and tools, whatever its origin (betas, leaked SDKs). Don't download game files, leaked code, SDKs or license keys from them.
For an undocumented format:
xxd | head). Look for magic
numbers, counts, offsets and tables of fixed-size records.examples/aoe2-de-civ/sld.py).0.2f ≠ 0.2). A leftover mismatch was traced to a hidden buff (Happy!, x1.21
move speed). Replays find what reading the code misses.OBobra/superpowers299k2,675 new stars in the last 7 days
MAmattpocock/skills290k10,235 new stars in the last 7 days
MAmattpocock/skills290k10,235 new stars in the last 7 days
MAmattpocock/skills290k10,235 new stars in the last 7 days
AFaffaan-m/ECC279k4,056 new stars in the last 7 days
AFaffaan-m/ECC279k4,056 new stars in the last 7 days