2.5 KiB
2.5 KiB
Binary Recovery
This repo is a plugin feed, not a source repo. The recoverable assets live in plugins/*/latest.zip.
What already worked
The current packages decompile cleanly with ILSpy into usable C# projects under .recovery/decompiled.
Recovered assemblies:
AntiDickheadChatmoduleCrystallineConflictWinsTrackerMultiboxMutexerOmicronMountMusicFixerWorldMapEnhancer
Observed runtime targets from shipped .deps.json files:
AntiDickheadChatmodule:.NETCoreApp,Version=v10.0CrystallineConflictWinsTracker:.NETCoreApp,Version=v7.0MultiboxMutexer:.NETCoreApp,Version=v7.0OmicronMountMusicFixer:.NETCoreApp,Version=v10.0WorldMapEnhancer:.NETCoreApp,Version=v10.0
Repeat The Recovery
Run:
powershell -ExecutionPolicy Bypass -File .\recovery\recover-plugins.ps1
That script will:
- Install
ilspycmdinto repo-local.toolsif it is missing. - Extract every
plugins/*/latest.zipinto.recovery/extract. - Decompile every top-level DLL into
.recovery/decompiled/<AssemblyName>. - Write
.recovery/inventory.csvwith the assembly names, runtime targets, PDB presence, and output paths.
What To Expect
The output is usable, but not production-ready without cleanup:
- The generated
.csprojfiles only contain bare assembly references. You will need to rebuild package references and the Dalamud build setup. - Some unsafe or native interop blocks decompile with
//IL_...comments and occasionalUnknown result typenotes. Those are normal decompiler artifacts around hooks, pointers, and game structs. - PDB-backed projects retain better type and file names.
CrystallineConflictWinsTrackerandMultiboxMutexershipped PDBs. MultiboxMutexerandOmicronMountMusicFixershow Fody/Resourcer-generated artifacts in the decompile output. Those may be easier to replace with simpler source equivalents than to preserve exactly.
Recommended Next Pass
For each recovered project:
- Create a fresh plugin project targeting the framework required by your current Dalamud toolchain.
- Copy the decompiled source into that fresh project instead of trying to compile the raw ILSpy
.csprojunchanged. - Re-add package references and Dalamud services incrementally until it builds.
- Replace any fragile hook signatures, pointer code, or generated-resource code only where the compiler forces you to.
If you want, the next step can be to take one recovered plugin and turn it back into a clean, buildable source project in this repo.