Release Tracker
Notes on what changed in each release and how it was built, drawn from the build logs of the item and map work behind OOORF. For the file-level list, see the changelog; for the new armor sets, the New Items page.
alpha92 is in progress. The map work is settled as of alpha91, so the work so far is purely armor: twelve new sets built on the recolor pipeline, in two groups. The first is six sets — Dragonborne, Draconis, and a four-set Daedric family (DaedricPrince, Dread, ImagoStorm, DremoraElite). The second is a six-set Steel tier — WornSteel, UnfinishedSteel, UnfinishedWornSteel, DurableSteel, BladesElite, and TheBear — all cloned from one source, the vanilla Steel armor. Alongside the sets the pipeline gained new capabilities: a thread of build-time quality gates that make it self-verifying, a reusable wear-and-scratch system, a whole-diffuse recolor pass, and a way to separate a texture's cloth and metal regions by the model's own geometry rather than by color, and a way to preserve small vanilla hardware — rivets, buttons, buckles — under a whole-texture recolor. The gates read the bytes a build is about to produce and fail the build if a recolor has regressed, so a mistake that used to surface only in-game now stops the build instead.
Four sets cloned from one shared Daedric base — a lava prince, a green dread set, and two bright-steel variants. The shared body brought shared problems: lava that ramps red-to-orange by brightness, demon-face eyes whose glow lives in a hidden texture channel, and a belly-gem seam that was a lighting artifact, not a paint error.
Jump to the story ↓Replacing the Kvatch wolf with a dragon insignia on the cuirass took four days. The emblem was traced to the wrong layer twice before it was found in the cloth's normal map, hidden by a quirk of how the export tool drops channels.
Jump to the story ↓The new sets needed capabilities the older recolors did not have: passing the vanilla diffuse through untouched and editing only named regions, shipping a hand-painted texture as-is, and overriding only part of a texture while holding the rest vanilla.
Jump to the story ↓The pipeline now turns each config promise into a build-time check that inspects the output and refuses to emit on a violation. A capstone gate requires every output-shaping directive to carry its own verifier, so a new knob cannot be added without a check.
Jump to the story ↓A two-piece Kvatch derivative with twin red griffins, whose shoulder plates refused to take a steel color until the cause was traced past the texture to a tint baked into the shared parent material.
Jump to the story ↓Six sets built from one source — every one cloned from the vanilla Steel armor — ranging from scratched and tarnished, through de-gilded and darkened, to a matte-black set and a bright ivory one. The shared base made each new set mostly a matter of recipe and region masks.
Jump to the story ↓A reusable way to add believable wear to any set. The lesson that shaped it: the vanilla art already has dents, and faked ones render as blocky compression squares, so the wear is carried as depth in the surface normal map rather than as bright paint in the color.
Jump to the story ↓Recoloring a skirt without touching the plate needs a mask that separates cloth from metal, and color alone cannot do it on grimy, rusted pieces where rust reads like leather. The reliable separator is the model's own geometry: classify the mesh's faces, not the texture's pixels.
Jump to the story ↓A whole-texture lighten washes small gold objects — rivets, buttons, buckles — toward white wherever a mask misses them. The reliable fix stops trying to mask them perfectly and instead whitens the plate freely, then restores each catalogued gold object's original bytes on top, with a gate that fails the build if any is missed.
Jump to the story ↓Dragonborne is a five-piece dark recolor of the Kvatch/Townguard "Townguard" armor with no helmet: a near-black quilted tunic, cooled steel, and dark-brown leather, with the Kvatch wolf emblem to be replaced by a dragon insignia. Reconnaissance traced the full asset chain and surfaced the cuirass as the hard piece — its body mesh and cloth-simulation assets come from one vanilla folder while its material, textures, and ground mesh come from another, with inconsistent casing between them. The set was cloned and built end-to-end today, rendering as a dark Townguard set with the wolf emblem still in place.
Replacing the wolf with a dragon spanned 06-14 to 06-18. On the cuirass the dragon is a flat painted decal; on the shield it is an embossed metal relief. The first obstacle was a notch where the cuirass emblem's frame met its picture: the frame's bottom verts were sampling the wrong texels of the disc, which was fixed by fitting the frame's mapping only from the clean rim ring. The deeper trap came next. The old wolf kept showing through, and was diagnosed as baked into the mesh — a wipe of the mesh did nothing in-game. The real cause was that the export tool drops a packed texture's color channels wherever its metallic channel reads zero, which is the entire cloth region, so the emblem only looked absent. The wolf was actually in the cloth's normal map; flattening it there, then adding back clean weave grain, removed it. This was confirmed in-game.
Two finishing issues closed out the cuirass. The skirt and strap leather read as plain brown rather than the set's oxblood, because the tunic's cloth mask suppressed the path that gave the other pieces their red; a cuirass-specific recipe restored it. On the body pieces the warm recesses of the chainmail were being painted red as if they were cloth, fixed by gating the cloth recoloring to non-metallic pixels so the mail reclaims its steel. The shield's rivets were over-grown by an unnecessary dilation, which was removed. A thin trim around the tunic panels reading three different colors was noted as a remaining polish item.
Draconis is a two-piece Kvatch derivative — a cuirass and shield carrying twin red griffins in place of the wolf. It needed an approach the earlier global recolors could not provide, since the vanilla armor was to be preserved and only specific patches changed. Three mechanisms were built for this: passing the vanilla diffuse through untouched and editing only named regions; giving a region its own surface recipe so the shoulder plates and shield boss could be flipped to metal while the rest stayed vanilla; and subtracting one region from another, used to keep the painted griffin out of the metal boss. The set was built and confirmed in-game the next day, which exposed the bugs handled below.
The converted plate regions rendered shiny brown on the cuirass and shiny black on the shield rather than steel, because on a metallic surface the base color tints the reflection, and the recipe had been derived from the dark leather beneath. Neutralizing to true steel — bright on the shield, darker gunmetal on the cuirass — addressed the shield, but the cuirass plates stayed near-black no matter the texture. The cause was not in the texture at all: the cuirass material inherited a shared parent that bakes in a strong blue tint at full strength, which crushes any neutral or dark base toward near-black. Repointing the cuirass to a plain untinted parent let the steel render true. The clue was an overlay showing the visible plate faces sampling the edited texture by only about five percent, which pointed past the texture to the material. With both pieces corrected, Draconis was confirmed in-game and called done.
The Daedric family is four sets cloned from one shared Daedric body, so a fix to the shared cuirass propagates to every variant. Reconnaissance found the Daedric diffuse textures use a format with a load-bearing alpha channel, not the simpler format the plan assumed, and corrected a decoder that had been misreading them. Dread, the first set, is a dark green-steel plate with a blue gem. Its first build still showed vanilla red in-game on the trim, because part of the red lives in the material's color parameters rather than the visible texture; a tool that rotates those parameters to the target hue resolved it. The skirt's dark-red cloth hem was too unsaturated for the automatic mask to catch and was handled with a hand-painted region.
The green metal recolor had flattened the texture's brightness range so the mesh relief stopped reading; a value-preserving recolor following a supplied olive swatch restored it. The same diagnosis confirmed and fixed the texture-format decoder bug. The side skirt panels — fragmented into many small separately-mapped scales — were left showing vanilla brown, which fed into the later shared side-panel work. Dread carries a small hand-edited diffuse to clean up the remaining green bleed.
DaedricPrince is a six-piece lava set, including a shield: tarnished bronze-gold metal that glows with red lava, indigo chainmail, and a gem rendered as a radial flame burst. Two techniques were built for it — a value-dependent hue ramp that reads each pixel's brightness so dark areas stay deep red while highlights shift to orange, and a radial fill that brightens the gem at its center and darkens it to the rim. The first build rotated the glow's color parameters toward orange, which killed the vibrant red on every piece except the cuirass. The cuirass survived because its glow comes from a rich texture alpha mask, not the parameters; the shield, having no such mask, went dull. The fix set the glow parameters back to pure red and let the diffuse supply the warmth.
Two problems shared across the family were resolved today. The demon-face eyes on the shared cuirass were dead while the surrounding face glowed: the glow is driven not by the visible color or the material parameters but by the diffuse texture's alpha channel, which the master material routes as a per-region glow mask, and the vanilla eyes carried that alpha at zero. A reusable alpha patch lifts an authored mask to switch the eyes on while leaving their color untouched. Separately, the navel gem split dark-on-one-side viewed head-on but looked fine at an angle; because the artifact was view-dependent the cause was geometry, not paint. The gem is a coarse bump whose two half-domes catch light unevenly, exaggerated by the bright radial coloring. Flattening the surface normals across the gem so its faces point one way removed the split. With these, Dread and DaedricPrince were confirmed in-game and called done.
The last two Daedric variants were built today: ImagoStorm in bright neutral steel with gold accents, DremoraElite the same bright steel with a darker dark-red accent and a shield. Building them extended the pipeline. A masked partial override composites only the front and back skirt panels from a hand-painted texture while holding the side panels and everything else from the normal recolor; a separate uniform fill colors the side panels while preserving their original brightness and grain. ImagoStorm's plate first read green-yellow from a hue-scale units error and was corrected to neutral grey, and a saturation clamp that was flattening vanilla's soft accent fades was dropped. DremoraElite rendered completely invisible in-game — the build was sound, but only its materials package had been copied into the mods folder and not the matching items package that holds the asset paths, so the pieces loaded with nothing to render. Copying the items package fixed it.
The vanilla inventory icons carry a bright cream halo around each item, which the recolor had been repainting along with the item. The recipe was changed to recolor only the icon's solid core and leave the bright aura vanilla, which required several adjustments working together: a mode that recolors only the item silhouette, a brightness ceiling so the brightest aura pixels stay vanilla, a saturation-minimum tweak, and a corrected hue-scale value. All four Daedric sets were rebuilt with the corrected icons.
The quality-gate thread that runs through alpha92 turns each config promise into a build-time check that reads the staged bytes and refuses to emit on a violation. Earlier gates landed alongside the sets: a gate that fails the build if a set's item-id repoint is incomplete, caught when only one of two Daedric item groups had been repointed; a region-class gate that fails if a new color region overlaps an already-owned one; the master-tint gate that flags a piece sitting on a tinting parent; an icon-aura gate that fails if a recolored icon's halo drifts toward the theme color; and a guard that refuses to overwrite a hand-edited texture on bulk re-export. Today's work generalized them. The motivating regression was a partial build that ran the recolor but skipped the emblem step and produced a cuirass with a black disc instead of the dragon — every structural check passed because nothing inspected content. The new framework maps each output-shaping directive to a verifier that confirms the promised result is actually present, with a meta-gate that fails the build if any declared directive has no verifier at all, so a new output knob cannot be added without its own check. Verifiers were written for the emblem, skirt emblem, leather grain, and corrected-source-diffuse directives, with others delegating to the existing gates; the framework was specified and planned test-first before implementation. Dragonborne was rebuilt today with its dragon confirmed by the new emblem gate.
The Steel tier is six sets built from a single source: every one is cloned from the vanilla Steel armor, with each set's items repointed onto its own steel-based copy. The first is WornSteel, a scratched and tarnished version of the base steel across six pieces including a shield. Building it started with a reusable wear-and-scratch capability, described below, and its first in-game pass opened a tuning loop on how heavy and how fine the wear should read.
The wear capability built for WornSteel is material-agnostic and reusable across sets. Its central lesson came from an in-game test: the vanilla steel art already carries dents, and synthesizing more produced low-resolution blocky squares, because the compressed texture format quantizes small high-contrast marks badly. The correction was to stop painting dents — let the vanilla ones stand — and to carry the added scratches as depth in the surface normal map rather than as bright bare metal in the color, keeping the color change modest. Four separate bugs in re-encoding that normal map, each producing its own compression artifact, were found and fixed, and scratch size was normalized across pieces so a scratch is the same physical size everywhere despite the pieces differing several-fold in texture density. A new build-time check requires the worn normal map to stay almost entirely identical to vanilla outside the scratch marks, and caught two regressions on its own. WornSteel was confirmed in-game.
Two cuirass-only sets strip the vanilla steel's gold trim: UnfinishedSteel reads as clean ungilded steel, UnfinishedWornSteel as a tarnished version of the same. Both depend on a mask that selects the gold trim, and the first version failed on the trim's dark, shadowed edges. The mask had used brightness to exclude the brown leather, but the dark gold edges and the leather are both warm and dark, so no brightness threshold could separate them — tightening dropped the edges, loosening grabbed the leather. The discriminator that works is an orthogonal one: the surface's metallic channel, since gold is metal and leather is not. Re-gating on that, and removing a cleanup step that had been eroding the thin edges, brought the trim mask to full coverage. Both sets share the fixed mask, and both were confirmed in-game.
DurableSteel is a darker, richer version of the base steel across all six pieces, including a shield. It introduced a whole-diffuse recolor pass — a single hue, saturation, and lightness adjustment applied to the entire texture at once, the same operation a photo editor's Hue/Saturation control performs — used here to deepen the steel in one step before any region work. The first build came out too dark, and the lightness was lifted to settle it. The set was confirmed in-game.
BladesElite is a five-piece set with no shield: matte-black plate, dark-gold trim, and a red skirt. Its hard problem was separating the cloth skirt and leather straps from the metal so each could be recolored on its own. A color-based mask kept failing on the grimy, rusted pieces, where rust on metal reads warm and unsaturated exactly like leather, so a color rule could not tell them apart — and a good score on one clean piece hid the failure on the dirty ones. The method that works classifies the mesh's faces rather than the texture's pixels: each face is assigned to cloth, leather, or metal by a vote of its own pixels, with the metal faces dropped by the same metallic signal used elsewhere. Because faces are classified as whole units, scattered grime specks no longer flip the result, and this per-face approach became the pipeline's preferred way to author region masks. With the masks resolved, BladesElite was tuned and confirmed in-game.
TheBear — the sixth and last Steel set, six pieces including a shield — is an ivory set: near-white cream plate, a vivid scarlet cloth skirt and shield emblem, natural brown leather, gold trim on every piece, and silver chainmail. It is the first set to lighten its base rather than darken it, which the whole-diffuse pass could not do without flattening the metal's light-to-dark structure and tinting it pink; a spread-preserving lighten was built that remaps the vanilla brightness onto a brighter range while keeping that structure, with a warm tint so the white reads as ivory rather than blue-grey. The per-face masks carried over from BladesElite unchanged, and because the cloth is red and the leather is brown they separated by color for free. An in-game pass approved TheBear's ivory look and completed the Steel material at six of six sets; its fine gold hardware then needed several more days to hold up under the lighten, covered below.
TheBear's shield and helmet geometry tripped up our mesh previews for pipeline approval, and each exposed a way the mesh reader could silently misread a model's data — a shield whose index data used a wider number format than assumed, and a helmet whose header sat at an unexpected offset. Both produced wrong readings. A structural check was added: it measures the edge lengths a decoded mesh implies and fails the build when they are impossible, so a misread model is caught by its own bad geometry rather than by a person noticing later. It runs over every shipped piece as part of the build's gates.
Whitening the whole plate to ivory washed the small gold hardware toward white — the rivets, flower buttons, buckles, and belt studs studding the armor. The cause was structural: the lighten paints the entire texture, so any gold object the region mask failed to cover defaulted to ivory. Refining the mask object by object helped but never closed it, because the defects were a whole population — each in-game test surfaced a different missed object while many more remained, and a fix confirmed at one rivet said nothing about the rest. The resolution reframed the problem: rather than defend every gold object inside a mask, whiten the plate freely and then restore the original gold hardware on top. A persistent registry was built — a ground-truth inventory of every hardware object on each piece — and the restore step holds those objects out of the lighten so they keep their vanilla bytes, while grime that only looks gold is left to whiten. A new build gate checks every registered object against being painted by the lighten, turning a defect that used to surface one at a time in-game into a build failure that names the whole set at once. With the registry and restore in place, TheBear was confirmed in-game and its gold hardware reads correctly across every piece.
alpha91 is a large OOORF release with work on two fronts: fourteen new armor sets, and fixes to the bundled dungeons covering water, campfire effects, surface flicker, and ghost objects. This entry records what changed and how each problem was solved.
Several OOO dungeons had no water of their own. A working water body was transplanted from a clean vanilla cave, and its four parts — the visible surface, the underwater fog, the swim volume, and the breath meter — were brought up one at a time and combined into a single result.
Jump to the story ↓One dungeon zone needed working campfires. A campfire blueprint and its particle system were cloned from a different vanilla package; the clone step had to be corrected so the sparks, flame, light, and smoke render in the target cave.
Jump to the story ↓In modded caves the remaster's baked geometry and OOO's older copy occupy the same space, so surfaces flicker. The fix disables OOO's redundant copy; a separate pass removes UE5-baked objects that have no place in the OOO layout.
Jump to the story ↓Recoloring inventory icons in their compressed format, and wiring up recolored drop/preview meshes, each introduced a specific bug — a glow halo that took on color, and a packing error that produced invalid icon dimensions. Both were diagnosed and added to the build's quality gates.
Jump to the story ↓New sets are recolors of existing armor, not new models. The pipeline recolors by scaling each texture's existing light-to-dark variation rather than flattening it. Fur is a special case: its color is stored as two values inside the material, not in a texture.
Jump to the story ↓Fourteen sets were built between 2026-06-01 and 2026-06-12 on one shared recolor pipeline, finishing with the rename of two older sets to their in-game names.
Jump to the story ↓Oblivion Remastered runs a UE5 world re-baked from the original game on top of the old Oblivion data that still drives its logic. OOO injects its own copy of dungeon architecture into that world, so in modded caves many walls and pillars exist twice — once as the UE5-baked geometry, once as OOO's older duplicate in the same place. When two surfaces occupy the same depth the renderer alternates between them, which is the flicker players reported. The fix, proven today on a single duplicated pedestal, is to flip an "initially disabled" flag on OOO's copy so it never spawns. The UE5 original remains, along with its collision and navigation.
The first dungeon to get water and ghost suppression working together end-to-end, later reused as the reference recipe. Its first zone was confirmed in-game today.
The second zone's water was confirmed in-game — a case that needed only a water-height adjustment, not a full surface rebuild.
OOO's armor families — roughly sixty-eight sets — were catalogued, and the approach was set: build new looks by recoloring existing vanilla armor rather than modeling new geometry.
The first cave with no vanilla water of its own. Water was transplanted from a donor cave and confirmed in-game, establishing the height-offset rule used for later water work.
The second zone was confirmed. A suppressed container had left behind invisible collision that the player could walk into; that was fixed here.
Arondar (three zones) and Narind (two zones) passed full in-game validation as part of the "unify" retest campaign, which walks each dungeon end-to-end to confirm flicker, ghost suppression, and chest placement. Narind also recovered a batch of ghost-suppression entries that had been dropped months earlier under an unrelated change; rather than re-adding them by hand, the suppression tool gained rules that regenerate them. This is where the two suppression problems are distinguished. TES4-REFR suppression removes OOO's redundant copy of geometry the remaster already bakes in. The Begone tool does the reverse: it removes a UE5-baked object — a stray door, torch, or cobweb — that has no counterpart in the OOO layout. The goal in both cases is one object per location; the difference is which layer holds the unwanted copy.
Both Cehani zones were confirmed. The main change today was the Begone migration. Begone had run as a live mod that scanned each zone on entry and hid ghost actors at runtime, but the scanning kept references to engine objects that went stale during zone transitions and could crash the game. The work was moved to edit the cooked map files directly before load, so the engine skips each ghost as it loads the map. The live mod was kept only for debug logging and is not bundled for normal play.
Yeleri (three zones) and Barastas (two zones) were confirmed. Yeleri's altar chests began the chest-placement work that later exposed a measurement error.
Dostares (two zones) was confirmed. Disabling a duplicated platform, sarcophagus, or table leaves anything resting on it with no surface beneath, so a chest that sat on a tomb lid now hangs above where the lid was. The fix, "position overrides," re-seats each affected chest, bedroll, and furniture piece onto the UE5-baked surface that remains. The offsets are not uniform — even two identical sarcophagi in one room can sit at different heights — and a scale-conversion error found here had been skewing every height calculation.
Both Rosulas zones were confirmed. The rule established here: a chest's correct height is measured against the UE5-baked surface beneath it, and the original OOO placement is the best clue to where it belongs.
Four dungeons were confirmed in one day — Varastal, Lipsand Tarn 03, Thundering Steps Cave (three zones), and Broken Tooth Cave (two zones) — several in a single walkthrough, using a new tool that derives chest heights automatically.
Grave Ground Cave was confirmed. Its entrance was blocked by a UE5-baked rock that neither suppression method could touch, because it was a foliage instance rather than a normal actor. A separate workflow shifted the rock in the cooked foliage data and produced the GraveGroundExterior pak, the bundle's first non-dungeon map.
Blood Clot Cave is an OOO-added, Argonian-themed dungeon with no usable water of its own. Adding water means making four independent systems agree: the water surface seen from above, the underwater fog seen while submerged, the swim volume that lets the player float and paddle, and the breath/drowning meter. Each is driven by different engine data and can fail on its own. The starting point was to copy the entire working water apparatus out of a clean vanilla cave — a donor cell, a simple rectangular pool chosen over larger but messier candidates — and graft it into Blood Clot Cave. The remaining work was getting each of the four components to function in the new location.
The swim volume reported the right size and position but never triggered a swim. The cause: a copied water brush carries an internal pointer to its collision body, stored as a slot number. In the larger donor cave that number referenced a valid object; in the smaller Blood Clot Cave it referenced an unrelated decal, so the engine could not build the swim collision. Re-pointing the brush at a valid collision body fixed it. The correct water height was also measured against roughly ninety vanilla cells, correcting the scale error noted earlier.
The last component for zone 1 was the visible surface, which clipped off at a vertical line partway down the cave. Extending the surface meshes, bounds, splines, and zone boxes had no effect. The surface is shaped by a separate, high-precision copy of the collision hull's vertices — not the copy being edited — confirmed against the UE5.3 engine source. Extending that copy covered the whole cave. With the surface, fog, swim volume, breath meter, and ghost-fire suppression all working, zone 1 was confirmed in-game today.
Zone 2 needed the water raised into a previously dry upper hall. The surface is gated by a chain of elements where the smallest clips the rest, including an outer tile grid that had not been accounted for. Resolving zone 2 prompted an offline check that flags an incomplete water footprint before the game is launched.
The roughly eight days since zone 1 were spent on a separate problem: zone 3 needed two working campfires. A water volume belongs to an always-loaded engine module, but a campfire is a blueprint with a particle system, and cloning one from a different vanilla package than the target cave required correcting how the clone step rewrites the asset's internal data. The clone used a byte-scan that rewrote any value resembling an internal reference; a particle system contains parameter values, name indices, and offset fields that resemble references and were being corrupted. The fixes addressed the asset header layout, parameter names lost to the packaging tool, and a specific offset field that controlled the flame spawn rate. The vanilla bonfire effect also overflows its woodpile mesh, which was compensated with a scale adjustment. With these corrected, both campfires render sparks, flame, light, and smoke, and the cross-package clone method is reusable for later effects.
ElvenNight was the first set built with the recolor approach. It established that a vanilla texture works on its own if its full structure and exact byte size are preserved: recolor the top image, regenerate the smaller zoom levels, and rename the texture in its folder. It also set the original metal/cloth/leather region recipe used by later sets. The pipeline recolors by scaling a texture's existing light-to-dark variation up or down, never by flattening every pixel to one value, because that variation is what makes a material read as itself.
The recolor pipeline gained automated checks: one confirms each generated texture is structurally valid, one confirms a renamed clone did not break an internal reference, and a later one confirms a recolor's region assignment matches the vanilla layout.
The Mithril base material and its first variants — Eboron and ShadowMail — were built today, along with the ElvenSky and ElvenEldar recolors on the now-generic pipeline. Eboron established four metal-recolor rules confirmed in-game: gold rivets must be excluded from the plate region by area; chainmail must be the default surface or its highlights stay vanilla; dark metal comes from darkening mid-tones while keeping highlights; and a brightness cap lets trim stay silver while rivets stay dark.
ShadowMail, the second Mithril variant, was first built today and tuned through 2026-06-06. It uses a blue-steel hue with a saturation floor so the blue does not read as grey, leather corrected from an initial muddy red to dark mahogany, and a four-region model — trim, plate body, chainmail, and skirt leather — with the chainmail separated by a hand-painted mask because no texture statistic distinguished it from the body.
Some vanilla textures carry baked-in defects; on one cuirass the top strip of a leather panel is blurred in the original art. Instead of synthesizing replacement grain, a clean copy of the same panel found elsewhere on the texture sheet was pasted over the defect. A second technique transplants fine leather grain from a sharp region into a blurred one, taking only the detail and keeping the original color.
Aureus, the third Mithril variant (silver body, copper chainmail), was built today with a gold rampant-unicorn emblem on its skirt panels. Recolored ground meshes — the model shown when an item is dropped or previewed — were first wired into the pipeline here, which surfaced a rotation issue: dropped boots lay on their backs. The mesh was unchanged with no rotation baked in; the display angle is stored in a separate table keyed by mesh name, so a renamed mesh finds no entry and falls back to a default angle. The decision was to keep the correct recolored art at the wrong angle for now and treat the rotation as a later fix.
The skirt emblem was resolved, but the front tabard's tribal engraving remained visible regardless of texture edits. It was traced to the mesh itself — the relief is in the vertex normals and geometry, which a flat texture cannot cancel — so the unicorn emblem was placed over it. The general check that came out of this: determine whether a relief lives in the texture or the mesh before attempting to remove it.
Fur is rendered with a hair-card shader, and recoloring it appeared to require decoding and repainting a packed texture. Reconnaissance found the color is not in a texture: it is two values in the material — a root color and a tip color, giving the base-to-tip gradient — stored as 16-byte color values in the material's parameter block, confirmed against the UE5.3 source. Those two overrides already existed in the vanilla material as a brown gradient, so the recolor is an in-place overwrite of two values with no repainting or re-encoding. ArcticFur was set to a cool snow-white; WornFur kept the vanilla brown. The fur helmet's body texture was the only one in a different compression format, which made its real dimensions read as garbled until the format was confirmed. Both fur sets were built today.
The last Mithril variant was built, confirmed in-game, and merged today. Its engraved helmet was losing line-work to a hard brightness cap; a value-preserving multiply restored it.
The two fur sets, built the day before, were tuned and approved in a live in-game test.
WornLeather's first build showed vanilla in-game. The armor players call "Leather" is built from a "Thief"-codenamed asset chain, while the assets literally named "Leather" are an unused arena set the vanilla game never released, so the first build recolored the wrong chain. The fix traced the full display chain from item to blueprint to mesh to material to texture and retargeted onto the correct body. A tuning note also came out of this: in-game lighting is brighter than the flat preview, so previews should be biased darker. Built and verified today.
Both were built on the WornLeather groundwork and verified in-game today — BloodLeather in a deep-red dye, GrayFox a grey body with darker straps. GrayFox includes one bracer that is genuinely Leather-named, handled by reusable mix-and-match logic added here.
The final pass renamed the two oldest sets from their codenames to their in-game names: BGlass to BlueGlass, RGlass to Drakefired. Drakefired also received new red icons, since its previous ones were copied from the blue set. The rename surfaced a process point: builds passed while the override file binding items to asset paths still pointed at the old names, so "done" means checking the full deploy set, not only the build. With these two re-released, all fourteen sets are complete: ArcticFur, Aureus, BloodLeather, BlueGlass, Drakefired, Eboron, ElvenEldar, ElvenNight, ElvenSky, GoldenBronze, GrayFox, ShadowMail, WornFur, and WornLeather.
Inventory icons are recolored in their compressed DXT5 form, which keeps a transparency channel for clean edges. An in-game test showed the recolor bleeding past the item silhouette: the game draws a soft glow halo, and the recolor was tinting the halo's bright pixels as metal. A second artifact was stray black blocks, caused when two reference colors in a compression block are set to the same value. The initial response was to edit each icon's transparency data to remove the glow.
The next session opened with a crash to desktop when the inventory was opened, and many icons rendering as blank or broken. Because the test character carried every item at once, the trigger was unclear, and effort first went to comparing the preview meshes. A reduced save with a single set, run through the game's own texture parser, showed the cause: the icons still declared the right format but their stored width and height were invalid, so the game could not build the images. The previous day's transparency edit had corrupted the repacking bookkeeping, but only for icons storing multiple zoom levels, which is why the one single-level icon stayed fine. The correction was to recolor icon color only and leave the glow channel untouched, and to add a quality gate that runs the parser over every output icon and fails the build on an invalid size. A separate ground-mesh drop crash was isolated the same day by bisection, and two minor regressions — a fur set reverted to brown and a truncated package — were fixed. All confirmed in-game.