Releases: trappuss/D4AssetBrowser
Releases · trappuss/D4AssetBrowser
Release list
D4AssetBrowser_v2.2.8
v2.2.8
Fixed
- "Bake surface detail into normal / roughness maps" did nothing outside the Wardrobe. The setting was read in one place, so Models, Stable and Bulk Extract exports ignored it and wrote smooth base normals.
- Where it did apply, detail baking silently did nothing on some materials. A rescaled roughness map came back in a different pixel format, so metalness was read from the wrong colour channel — every texel looked metallic, which on leather and fabric switched the effect off entirely.
- Encrypted materials had no surface detail at all, in the viewport or in exports. Their detail maps were looked up by texture name, which an encrypted texture does not have.
- Cancel in Settings kept seven changes. Loose textures, GIF dither, both GIF physics steps, catalogue frames, catalogue only-new and Models base-colour-only were missing from the revert list, which is now derived rather than hand-written.
- The Settings tab bar read "eneral" and "Experim". Nine pages overflowed the strip and every label was shortened to fit; the dialog now opens wide enough for all of them.
- Bulk Extract's raw buffers and name-matched textures ignored the output layout. Both always wrote to the top of the output folder while the models themselves were correctly split by class or type.
- The run report listed every successful item as missing. It only looked for the extraction ledger at the top of the output folder, and any layout other than Flat writes one per subfolder.
- Six viewport panel headings lost their ampersand, showing "Scene shadows" and "Geometry debug" across Models, Stable and Wardrobe.
- Three silent drops now say so. The stable index skipped mounts, barding, trophies and pets whose appearance would not resolve, equipping a theme skipped pieces missing from the archive, and a Stable raw-sources export skipped materials it could not name — all without a word.
Added
- Subfolders by Model — one folder per model, holding its .glb, textures, raw sources and buffers together.
- The output layout now applies to the Models tab's own exports (multi-select, context menu, export all), not only Bulk Extract, and is settable from Settings ▸ Export ▸ Models.
- Decoded textures are reused for the length of an export run instead of being re-read and re-decoded once per model and once per material slot.
- Export notifications name the file's axis convention, unit scale and normal handling.
- Settings ▸ Information is now sub-tabbed, with a table comparing the three loose-texture options side by side.
Changed
- Bulk Extract's Buffers, Write report and Loose textures checkboxes moved to Settings ▸ Export ▸ Wardrobe, Catalogue & Bulk. They persisted the moment you ticked them, so they were preferences sitting under a "This run:" label.
- Raw source files go to one shared
depsfolder per output folder instead of a<name>_depsfolder per model, so a texture ten models reference is stored once. Stable exports follow the same rule.
D4AssetBrowser_v2.2.7
v2.2.7
Fixed
- 308 weapons, mounts and trophies showed a blank icon. The fix for their icon binding shipped, but nothing in the metadata cache's signature could see that the rule had changed — so the old cache stayed valid and the new bindings never ran.
- Armour exported with a whole untextured character attached. "Include base body for fit reference" appended
base00, which is the class's fully-dressed default rig — hair, fur and effect meshes included — not a body. - Base-rig exports embedded every cutscene the body appears in.
barM_base00declares 758 clips; 378 are its own gameplay, emote and wardrobe set and 380 areIGC_/Conv_cutscene performances. "All of the model's animations" took both, with no way to ask for the playable set. - Animation exports wrote the same timestamps once per bone per channel. On a 318-bone rig that is 954 byte-identical arrays per clip, plus an accessor and a buffer view describing each. Channels of equal length now share one.
- Bulk Extract's "Select all" queued only the first 5,000 matches. The list caps its display at 5,000 rows and the queue was built from rows, so a 12,000-match filter silently dropped 7,000 items.
- Warlock shop products showed a blank class. The class-name table stopped at index 6 while every other table in the tool named index 7.
- Exports embedded guessed animation clips, but only sometimes. Interactive exports read the animation list, which includes unconfirmed skeleton-similarity matches; batch exports of the same model didn't. Guesses are now excluded from both.
- Bulk Extract's animation checkbox silently overwrote your export scope. Ticking it forced "all clips" every time, discarding a per-model choice made elsewhere.
- Models tab copied the wrong part name. "Copy part file name" copied an internal placeholder rather than the material name shown in the outliner.
- Two settings group titles ate their ampersand — "Caches & reset" drew as "Caches reset" with an underline, a stray mnemonic.
Added
- Five independent animation sources (Settings ▸ Export ▸ Models) — Original (clips named in the model's own family), Cutscene & conversation, Previewed, Pulled, Base. The old "all of the model's animations" merged a model's own clips with inherited and cutscene ones, so "export this armour piece with no animation, because it has none of its own" couldn't be expressed.
- Clip filters — a length cap and exclude-by-name patterns, applied across the sources. Eight of
barM_base00's clips carry about a quarter of its animation payload against a 75-frame mean, and no source toggle can exclude them. - The export clip count is shown before you export — in the Export menu (Export animations only — 378 clips…) and in the panel header (
ANIMATIONS · 758 (378 export)). The list shows everything reachable; only the second number follows the export scope. - Include base body (Settings ▸ Export ▸ Models) — the class's nude
test999body under exported armour, all four slots merged into one material you can delete in a single action. - Include base head — the head mesh alone, without the teeth, eyes, lashes and stubble that ship alongside it.
- The ANIMATIONS panel bands by AnimSet — each set gets a stable colour, header and rows together, so a run of clips stays attached to its set after the header scrolls away. Gold (pulled) and cyan (unconfirmed) still take precedence.
- 27 built-in Bulk Extract presets — all customization and base appearance, plus appearance, armour and textures for each of the eight classes, and all weapons. Generated from the class table, so a new class gets its presets automatically.
|means OR in the name filter —barf_|barm_ _hlm|_trsmatches (barF or barM) and (helm or torso).- File ▸ Index — every background index with its state (not started / live percentage / done), Index all for whatever is outstanding, Re-index everything to drop the caches, and a click on any row to rebuild just that one. The status bar carries the summary (
Indexes 6/9), and an option runs Index all at startup. - Help ▸ Audit bulk presets — writes a match count and sample names for every built-in preset, so a preset that has quietly stopped matching anything is visible without extracting.
Changed
- Settings reorganised. A new Interface tab takes the display options off General, which had grown to seven unrelated boxes; Export is split into Models, Images, Wardrobe & Catalogue and File names; long boxes are divided into labelled sections so an option no longer inherits the heading above it; update checking and the export notification get their own boxes; Diagnostics moves in beside Caches & reset.
- Bulk Extract's duplicate export toggles are gone, replaced by an "Export settings…" button. Textures, animations and raw sources were second controls for the same settings, so a run followed whichever had been touched last.
D4AssetBrowser_v2.2.6
v2.2.6
Fixed
- Encrypted and newly-patched armour exported untextured. The export read its material list only from the metadata snapshot, which has no entry for those pieces — so the mesh came out perfect and completely bare. The viewport had been reading them from the game binary all along; only the export path hadn't.
- Adding TACT keys unlocked nothing until something else changed. The key count wasn't part of the data fingerprint, so every cache that had recorded "this asset can't be decoded" stayed valid — the one action whose entire purpose is to unlock content was the one action that triggered no rebuild.
- Body markings exported nothing at all — no masks, no icon. A marking isn't a mesh, and the code that noticed that also stopped looking; its two mask textures and swatch are now exported like anything else.
- The Stable tab's mounts and pets never updated after a game patch. That cache validated on a magic number alone — no build id, no snapshot signature — so once written it was frozen for the life of the install. Same for the texture format/dimension cache.
- Bulk-exporting from the Catalogue asked you to click OK after every bundle. Eight bundles meant eight dialogs, each stopping the run. It's one operation now, with one folder prompt and one summary.
- "Export all available texframes" wrote nothing for recent shop art. It asked the icon index for each frame, which knows nothing about atlases it hasn't indexed — exactly the seasonal and collab art the option exists for.
- The window paused and something flashed a few seconds after launch. Tabs you hadn't opened were being built in the background — which creates a 3D viewport and assembles a character on the UI thread. Now switchable (Settings ▸ Interface), and the log names the tab before it starts.
- The window froze for up to 20 seconds after a game patch. A network fetch for the community icon database ran on the UI thread, with no dialog and no way to cancel.
- A console window flashed on startup. The update check and download helpers run
gitandcurl, and nothing suppressed the console Windows gives a console program. - Weapons had no hover info anywhere in the tool. The rule mapping an item to its appearance only knew the five armour slots, so weapons, mounts and trophies were skipped outright — no rarity, no flavour text, no "introduced in".
- Weapons and mounts added since the snapshot got no icon — the same rule, in the pass that exists specifically to rescue brand-new content.
- The icon audit couldn't see weapons at all, so its coverage figure counted only what it happened to check. It now checks 10,453 appearances instead of about 5,000.
- Exports could finish silently. A run that resolved nothing, had no folder, or found the game storage closed logged nothing at all.
- A snapshot swapped in place (not a git checkout) left every cache stale, because nothing in the fingerprint could see it.
Added
- The Catalogue shows bundles the metadata snapshot has never heard of. It describes about 7,500 shop products; the game has 9,300. The missing ~1,800 are the encrypted and newly-patched ones — the Doom collab armour was absent for every class except Druid and Rogue purely because only those two shipped a description file. Read straight from the game's own files now, contents and artwork included.
- Export all matching bundles — narrow with the funnel, then export the lot from the Export menu. One folder prompt, one folder per bundle, one summary.
- Choose what a bundle export writes (Settings ▸ Export ▸ Catalogue export) — models, shop art, icons and manifest as separate toggles.
- "Only new" skips bundles already exported, making a large export resumable. It compares against what the previous run recorded writing, so an art-only export followed by a full one isn't skipped.
- "Sold in" is a link. Click a bundle name in a model's INFO panel to open it in the Catalogue; Alt+Left comes back.
- Textures beside the model (Settings ▸ Export ▸ Model export) — each material's maps as PNGs in a
textures\folder next to the.glb. Adds to the model rather than changing it. - Health check reports snapshot coverage — how many shop products and items the game has versus how many the snapshot describes.
- The asset-health audit reports iconless-but-renderable assets — pieces that decode perfectly and show as a blank row.
D4AssetBrowser_v2.2.5
v2.2.5
Added
- Catalogue — a new tab for the Cosmetics Shop. Every bundle it has sold, with its hero art, card, lore text, and each item inside resolved to the appearance or texture it actually is. Search matches the shop title, the SNO name and the lore.
- Two views of a bundle's contents — the shop's own icon strip, one row per gender, and a tree beneath it carrying SNOs and a plain no appearance found where a product couldn't be matched. Selection is mirrored between them.
- Filters behind the funnel — contents, patch, season, Latest — with sort by name/season/patch and removable chips, matching Models and Textures.
- SLOT column, read from the item-to-gear reference graph rather than guessed from the name — so a weapon packaged into an armour set is labelled correctly.
- Multi-select in the bundle list, the includes strip and the contents list.
- Export a bundle, several bundles, or just the rows you highlighted. Each bundle gets its own folder with
models\,art\,icons\and amanifest.jsonnaming what resolved and what didn't. - The Export menu names what it will act on before you commit — Export 2 models…, Export 1 image…, Export 3 bundles… — and routes through the Models and Textures pipelines, so every Export setting applies.
- Bundle requirements — requires, add-on to, excludes — from shop fields nothing else reads. It's how you find that a mount trophy was never sold, but was a Season 3 premium pass reward.
- Double-click an item to open it in Models, textured, with its parts and animations; bundle art opens in Textures.
- "Sold in" in the Models tab: which bundle an item shipped in.
- Settings ▸ Export ▸ Catalogue export — Export all available texframes, writing every frame of each shop atlas as its own PNG.
Fixed
- Weapons in a bundle resolved to nothing — no icon in the strip, no View in Models, and no
.glbin the export. The name rule only knew the five armour slots; a weapon's appearance simply carries the item's own name. - Headstones had no icon. Unlike every other shop item they carry no inventory image at all — their art sits on the actor, in a field nothing read.
D4AssetBrowser_v2.2.4
v2.2.4
Fixed
- Encrypted models were textured with the wrong maps, or none. Six places picked textures by NAME, and an encrypted texture has none — only a SNO. A material with two base-colour maps handed the viewport the wrong one; roughness, metallic, AO, detail normals and emissive were dropped outright.
- Roughness and metal were missing in the Wardrobe and Stable viewports while the Models tab looked correct — the shared decode had its own copy of the same name-based pick.
- Encrypted materials showed an empty texture preview. The panel listed all sixteen textures and then returned without ever asking for a decode, which is also why nothing was logged.
- The Wardrobe's material panel was blank for encrypted materials — same early return, one file over.
- Encrypted models exported to glTF untextured, because the export read textures only from the JSON that encrypted materials do not have.
- Thousands of textures reported "no payload in CASC". 36,930 assets deliberately carry no payload and share another asset's; the game ships that mapping and we never read it. Every
*_FurMaskpointing atroughness_default, every female piece sharing the male's AO, was reaching for data that was never there. - Loading some encrypted armour crashed the tool — a null dereference on the "no base texture" note row, which has no SNO cell. Clicking that row crashed it too.
- Encrypted items had no inventory icons. The handle comes from the item and joins to the appearance by name, but the cache signature counted appearances instead of noticing they had been renamed, so the join kept matching against names that no longer existed. 1 → 106 recovered.
- Grid view could leave the tool unable to start, with no window left to change the setting back from. It now falls back to Outliner and says so in the log.
- Verifying a candidate TACT key list wiped the keys you already had for the rest of the session.
- Saving with transparency made fur see-through, and supersampled captures made it noisy. Alpha was counted twice on multisampled targets, and alpha-to-coverage stayed on for a capture buffer with no samples to resolve.
- Scrolling the viewport channel wrapped past "Shaded" instead of stopping at it.
Added
- Yaw / Pitch camera controls on every Camera panel — slider plus an exact numeric box.
- Automatic log file, on by default, replaced each launch (Settings ▸ General ▸ Diagnostics).
- Real texture names in the material panels instead of
~unnamed_<sno>. - Compact Textures list matching the Models tab, with filter chips to match.
D4AssetBrowser_v2.2.3
v2.2.3
Rough build. A lot changed at once and it has had limited testing — expect bugs, and please report them.
Fixed
- Doom collab armour was missing. Helms and back pieces never showed for any class — the game withholds the names of encrypted assets. The browser now reads the game's own name dictionaries (189 of them, one per key) and recovered 2,426 names.
- Encrypted models rendered flat grey and exported with no textures. Some showed correctly in Wardrobe but not in Models — three places looked for texture metadata only in d4data, which never ships it for encrypted content. They now fall back to the game's texture tables, as Wardrobe already did.
- Right-click menus were wrong in several places. Grid view acted on the wrong item, the model root in the parts panel showed an outdated menu, and wording and copy actions differed between tabs. Menu text now comes from one place.
- Theme weapons only pinned to one slot. A theme with an axe and a dagger now pins both to every weapon slot.
- Settings didn't fit smaller screens. The window ran past the bottom of the display with the buttons out of reach; it now scrolls, resizes and is clamped to the screen.
- Adding a TACT key appeared to do nothing until the next game patch — the asset index cache ignored which keys were loaded.
- Bulk extract's "finished" toast never went away.
Added
- Catalogue tab — pick a store bundle and view or export everything in it: bundle art, models, markings, emblems and emotes. Grid or list view, Ctrl+wheel zoom, hover preview.
- "Only encrypted (TACT)" filter in Textures, matching the Models tab — isolates collab and seasonal art, which is otherwise unfindable because it has no name to search for.
- A ninth TACT key, unlocking more encrypted content.
- Store products are now indexed and searchable; they were excluded from the asset list entirely.
D4AssetBrowser_v2.2.2
v2.2.2
Fixed
- Auto Animate wasn't remembered. The setting saved correctly but was never read back, so it always reopened as off.
- Switching gender emptied the equipment slots. The armour was re-equipped correctly; the slot cells just weren't repainted.
- Wardrobe still paused ~2 seconds on first open. The clip-name index was built on the UI thread; it now builds in the background during startup.
Added
- HED toggle in the Wardrobe viewport — hides the head and everything attached to it (teeth, eyes, lashes, facial hair). On by default.
- Wardrobe export scopes — everything shown, items only, or items plus an untextured character. Items only also strips the skin submeshes carried by armour; untextured character attaches the bare head and body, using the equipped marking as their colour.
- Export the matching opposite-gender item — Wardrobe, Models, Bulk Extract and context-menu exports. Every other export option applies to both files.
- Outfit filename templates —
{{Class}} {{Collection}} {{Torso}} {{Date}}and more, case-insensitive, under File names (templates). - Desktop notification when an export or bulk extract finishes.
- Equipping a theme pins a copy of each slot's matching piece to the top of the list, under its collection name — including weapons and markings.
- Experimental tab in Settings, holding the modding / retarget options.
- FX / SIM / FORM submeshes are now hidden by default, with their own export option.
D4AssetBrowser_v2.2.1
v2.2.1
Fixed
#tagsearch matched nothing — the#was never stripped. Works now in Models, Textures and Bulk Extract;-#tagexcludes.- Log written to the wrong place. It went next to the exe while the docs said
data\D4AssetBrowser.log— bug reports pointed at an empty path. - Window froze on every launch. The icon audit ran on the UI thread; now runs in the background.
- Wardrobe took seconds to open, sometimes ~90. It rescanned all 45,549 animation files on the UI thread every launch. Now scanned once and cached.
- "Latest" broke with two game installs (retail + PTR) — each overwrote the other's baseline. They're kept separate now.
- Settings' "Game build" dropdown did nothing. It now picks the build, and the log says which one opened.
- Stale metadata after a game patch was possible; the cache is now tied to the game build.
Added
- Exe shows a version in Properties → Details.
- Tracks which assets arrived in each game update.