π₯ 09.06.2026 - Fixed for WARNO v.193438
Self-contained ZIP shrunk from 684 MB β 150 MB, major UI rework, lots of bug fixes.
β¨ Single executable
Merged the 5 separate executables (moddingSuite, AtlasCli, GfxCli, EssCli, TgvCli) into one moddingSuite.exe.
- No arguments β GUI launches as before.
- CLI mode via subcommand:
moddingSuite.exe atlas --warno-root β¦ --asset-path β¦ --out-json β¦ --cache-dir β¦ moddingSuite.exe gfx --warno-root β¦ --asset-path β¦ --out-json β¦ --cache-dir β¦ moddingSuite.exe ess <file.ess> [more.ess β¦] moddingSuite.exe tgv <file.tgv> [more.tgv β¦] moddingSuite.exe tgv --atlas --file <TextureSmall.atlas> --tgv-root <dir> --out <dir> - The Blender plugin auto-detects the unified exe; old split exes still work as a fallback.
ποΈ ZZ Virtual rework
A new View: Tree / Tiles / List switch at the top of the ZZ Virtual panel:
| Mode | What it shows |
|---|---|
| Tree | Classic full hierarchy. |
| Tiles | Windows-Explorer-style grid of the selected folder's contents, with .tgv thumbnail previews (96Γ96, async-decoded, disk-cached under %LOCALAPPDATA%\WarnoModdingSuite\thumbs). |
| List | Compact list view with Name / Kind / Items columns. |
Plus:
- Resizable splitter between tree and content pane.
- Double-click a folder tile/row β drills into it.
- Click a tile β blue selection highlight,
Ctrl/Shiftmulti-select, arrow-key navigation. - Per-file-type icons everywhere β folder, script, texture, audio, mesh, python, package, generic (previously almost everything showed the generic icon).
- Search-results panel auto-collapses when empty, resizable when populated.
π·οΈ Buttons renamed for clarity
Build Virtual ZZ ViewβScan ZZ ArchivesExport SelectedβSave Selected to Diskβ¦Extract Output to FolderβUnpack Whole Game to Diskβ¦
All three now have hover tooltips explaining exactly what they do.
πΌοΈ Texture decode (.tgv β .png)
- Fixed
A8B8G8R8_LINbyte order β flag atlas extractions had wrong-looking colors (blue showing as transparent black, pink instead of yellow). Output now matches the Python reference byte-for-byte. BC1/BC5alpha forced to255to kill the magenta blocks Windows used to show on transparent regions.- Correct full-res mip pick (WARNO stores mipmaps reversed β largest mip last).
π§© Atlas extraction (right-click .atlas β Extract atlas texturesβ¦)
- Full C# port β no more Python subprocess.
- Tolerates
ZZ:/,CombinedTexture:/,GameData:/prefixes in NDF refs and.png β .tgvextension swaps. - Filename-tail resolver survives the various WARNO path conventions.
π§± AvalonDock fixes
Window β Reset panel layoutactually restores positions now (it used to only re-show hidden panels β positions stayed broken).- Panels can no longer be dropped into the document-tab area, which used to nuke their title bar and leave them un-grabbable. They can still be re-arranged between themselves freely.
- Initial layout XML is captured on first
Loadedand used by the reset command.
π Audio (.ess β .wav)
- New right-click
Convert to WAVβ¦action on.essfiles in the ZZ Virtual tree. - Pure C# decoder with correct stereo handling (41-bit separator fix).
π‘οΈ Startup robustness
PublishReadyToRun=falseβ fixes theSTATUS_FAIL_FAST_EXCEPTION (0xC0000602)crash fromKERNELBASE.dllon older CPUs that lack AVX2 etc. (a few seconds of first-launch JIT cost in exchange for portability).- Global
AppDomain/TaskScheduler/Dispatcherunhandled-exception handlers + auto-recenter if the window lands off-screen on multi-monitor setups. diagnostic.bat/diagnostic.ps1shipped in the zip β collects OS, antivirus, MoTW, event log entries and recent .NET runtime crashes; perfect for "it won't open on my friend's PC" reports.
π¦ Misc
- Plugin-folder layout flattened β everything next to
moddingSuite.exe, noatlas_cli//gfx_cli/subdirectories. - Bundled QuickBMS still under
tools/quickbms_win/. - README in the release zip rewritten with the new CLI subcommand syntax.
Install
- Download
moddingSuite.zipbelow. - Extract anywhere.
- Run
moddingSuite.exe. No .NET install required (self-contained). - If it doesn't open: run
diagnostic.batand send the resultingdiagnostic_dump_*.txtalong withlogs\logging_*.dat.