2026-04-30 11:18:02 +03:00
..
2026-04-30 11:18:02 +03:00
2026-04-30 11:18:02 +03:00

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:

  • AntiDickheadChatmodule
  • CrystallineConflictWinsTracker
  • MultiboxMutexer
  • OmicronMountMusicFixer
  • WorldMapEnhancer

Observed runtime targets from shipped .deps.json files:

  • AntiDickheadChatmodule: .NETCoreApp,Version=v10.0
  • CrystallineConflictWinsTracker: .NETCoreApp,Version=v7.0
  • MultiboxMutexer: .NETCoreApp,Version=v7.0
  • OmicronMountMusicFixer: .NETCoreApp,Version=v10.0
  • WorldMapEnhancer: .NETCoreApp,Version=v10.0

Repeat The Recovery

Run:

powershell -ExecutionPolicy Bypass -File .\recovery\recover-plugins.ps1

That script will:

  1. Install ilspycmd into repo-local .tools if it is missing.
  2. Extract every plugins/*/latest.zip into .recovery/extract.
  3. Decompile every top-level DLL into .recovery/decompiled/<AssemblyName>.
  4. Write .recovery/inventory.csv with 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 .csproj files 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 occasional Unknown result type notes. Those are normal decompiler artifacts around hooks, pointers, and game structs.
  • PDB-backed projects retain better type and file names. CrystallineConflictWinsTracker and MultiboxMutexer shipped PDBs.
  • MultiboxMutexer and OmicronMountMusicFixer show Fody/Resourcer-generated artifacts in the decompile output. Those may be easier to replace with simpler source equivalents than to preserve exactly.

For each recovered project:

  1. Create a fresh plugin project targeting the framework required by your current Dalamud toolchain.
  2. Copy the decompiled source into that fresh project instead of trying to compile the raw ILSpy .csproj unchanged.
  3. Re-add package references and Dalamud services incrementally until it builds.
  4. 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.