Toolbox & Website Changelogs

v2.19.1 - 2026-10-02

A comprehensive web overhaul, bringing full AI-search indexing, expanded site navigation, and pristine Google Knowledge Graph mapping to the VixForge ecosystem.

Added

  • Expanded site navigation. Added dedicated page to the website Planned Features to properly index VixForge's scope.
  • Full AI crawler support. The robots.txt file has been explicitly configured to welcome major LLM indexers (GPTBot, ClaudeBot, PerplexityBot, xAI-Bot, and Google-Extended), ensuring Vixens Toolbox and VixenWear shaders are fully discoverable in modern RAG-based AI search engines.
  • Knowledge Graph structured data. Injected comprehensive JSON-LD schemas (Organization, TechArticle, SoftwareApplication) to explicitly define VixForge Interactive's technical competencies (UdonSharp, HLSL, Built-in Render Pipeline) to search engines.

Changed

  • The sitemap is optimized for crawl budgets. Deprecated legacy <changefreq> and <priority> tags. The sitemap now strictly relies on <lastmod> timestamps to guarantee Googlebot immediately recognizes and indexes new releases.
  • Consolidated creator entity mapping. "Vixenlicious" is now strictly mapped to the Founder/Lead Developer entity, perfectly separating personal creator aliases from the overarching VixForge Interactive studio brand.
  • Streamlined SEO metadata. Trimmed <title> tags to prevent truncation on mobile SERPs, consolidated description payloads, and purged redundant meta tags to lighten the raw HTML payload for faster parsing.
  • Refined social authority signals. Pruned dead links from the brand's identity graph, hyper-focusing domain authority strictly onto active GitHub repositories and the primary YouTube channel.

Fixed

  • Resolved Google Search Console schema warnings. Cleared missing offers errors by explicitly defining a zero-dollar price for the VPM registry software, and bound article schemas strictly to their mainEntityOfPage URLs.
  • Prevented Open Graph layout shifts. Social sharing assets now utilize explicit ImageObject dictionaries with defined 1200x630 dimensions, ensuring preview images render immediately on platforms like Discord and Google Discover.
  • Secured FOUC guard crawlability. Explicitly allowed /*.js$ and /*.css$ in the robots directives, guaranteeing Google's Web Rendering Service can execute the Fluent UI hydration scripts without timing out or indexing a blank page.
v2.19.0 - 2026-09-27

The World Engine understands VRC Light Volumes 3, converting a material leaves the original alone, and ImageMagick runs on Linux.

Added

  • ImageMagick works in the Linux editor. Badge Studio's badge and template creation, texture resizing in the Avatar Validator and the Quest converter, and the World Engine's Convert To PNG all run on Linux now. macOS still goes without.

Changed

  • ImageMagick is updated to 7.1.2-32 (Magick.NET 14.17.2), which fixes six security problems in how some image files are read.
  • Converting a material keeps the original. Fix on a finding in SHADERS & REPLACER now saves a copy under Assets/VixenTools/Converted/Materials/, converts the copy, and moves everything in the open scenes that used the original onto it, inside prefabs and nested prefabs too: renderers, particle trails, terrain, UI, projectors, Udon variables and script fields. Skyboxes are left alone. With VixForge in the project, the copy goes through VixForge's own translation, so the colour, maps, metal, smoothness, occlusion, glow and cutout of a Unity Standard or REDSIM Light Volume PBR material come across. Ctrl+Z puts everything back on the original.
  • The Light Volumes checks follow Light Volumes 3. They read the Light Volume Manager, where Light Volumes 3 keeps its settings, and its volume and point light components. New checks cover more than 32 active volumes or 128 active point lights (Light Volumes 3 leaves the rest out), volumes with no baked lighting, Clustering off with many point lights, volume tracking or texture refreshing with nothing to follow, a light that redraws its shadow without moving, and Light Volumes 2 components still in the scene. Brightness Cutoff is checked on the manager, where it lives now.
  • The performance score counts Light Volumes 3. It looked for the Light Volumes 2 components, so a Light Volumes 3 world scored as if it had none.
  • Light Volumes fixes also update the Udon behaviour behind each component, the way the Light Volumes editor does.

Fixed

  • The World Engine no longer changes files inside packages. A fix for a mesh, texture, audio clip or material under Packages/ is left out, and the finding says why. Before, a fix could change the import settings of another creator's package or switch the shader on a material inside it.
  • Scanning again picks up changes to the scene. The World Engine kept the objects from its first scan until you closed the window, so objects you added afterwards, or a scene you opened later, were missing from later scans and fixes.
  • TextMesh Pro font materials are no longer offered for shader conversion. Converting one breaks the text it draws.
v2.18.1 - 2026-09-24

Linux and macOS editors can load the toolbox.

Fixed

  • The toolbox would not load in the Linux or macOS editor. ImageMagick is only included for Windows, and the tools that use it stopped every other tool from loading. Everything else works on Linux and macOS now. Badge Studio's badge and template creation, texture resizing in the Avatar Validator, and the World Engine's Convert To PNG need ImageMagick, so they're turned off there and say why. Quest conversion still shrinks textures there, using Max Size instead of resizing the image file.
v2.18.0 - 2026-09-23

See what is slowing the editor down, find what a tool left in memory, World Engine texture fixes that never touch your image files, and a safer ImageMagick.

Added

  • Scene View Enhancer, at VixenTools/Unity Engine/Scene View Enhancer, for world and avatar projects. It caps the editor's frame rate through Unity's own Interaction Mode setting, and puts your previous setting back when you turn it off. Its Vixen Scene Stats panel in the Scene view shows how often the Scene view redraws, the frame cap, script memory, engine memory and graphics driver memory. It refreshes once a second, so it adds at most one redraw a second of its own.
  • Memory Diagnostics, at VixenTools/Unity Engine/Memory Diagnostics. Press Take Snapshot, repeat the task you want to test, press Free Unused Memory, then Compare With Snapshot to see which textures, materials and meshes a tool made and never freed. Only objects that are not saved in your project are counted, so loaded assets never show up as leaks. Largest Textures lists the 50 textures using the most editor memory and marks the ones made at runtime, by a tool or by Unity itself.
  • Convert To PNG, in the World Engine's new TEXTURES: SOURCE FILES section. For a texture stored as a PSD, a JPG, or a TIF, TGA or BMP file over 15 MB, it saves a PNG copy to Assets/VixenTools/Converted/<Material>/, gives the copy the same import settings, and points your materials at it. Your original file is never changed or deleted. Files under Packages/ are left alone, and a texture is only offered when every use of it in the scene is a material the tool can change, so the copy never loads alongside the original.

Changed

  • The performance map is a tab in the World Engine. It used to open in a window of its own after every scan. Now FINDINGS and PERFORMANCE MAP sit side by side in the World Engine window, and one scan fills both.
  • The World Engine checks textures the way the VixForge Texture Check does. Every texture fix changes import settings only. A texture that imports bigger than your target size gets a lower Max Size, where before its image file was overwritten at the smaller size. New findings cover normal maps that are not on BC5, mipmaps switched off, a texture in the wrong colour space for its slot, a normal map imported as a colour texture, and bent normal maps bigger than they need to be. A fix that makes a texture bigger in memory says so and is left out of Toggle All Fixes. Uncompressed textures are reported with advice, and the compression choice is left to you.
  • Findings show which objects a nested object sits under, below the description, so two objects with the same name can be told apart.

Removed

  • The Massive Raw File Bloat check. It flagged image files over 15 MB and re-saved them. VRChat never gets your source file, only the texture Unity imports from it, so the file's size on disk costs nothing in game.
  • The non-power-of-two check. Its fix stretched the texture to a new size, and Unity already imports those sizes as they are.

Fixed

  • World Engine checks that had stopped working. Newer ProTV, TXL, LTCGI and UdonSharp releases renamed what these checks looked for, so they found nothing. They now read the current names, and older versions are still checked the old way: ProTV 3 speakers (the AudioLink link check and the 3D speaker distance check), ProTV 3's audio adapter, TXL 2's Audio Manager AudioLink link (now with a one-click fix), LTCGI screens that take their colour from AudioLink in a scene without AudioLink, and the sync mode an UdonSharp script declares.
  • The compute score counted things that cost nothing. A baked reflection probe counted as much as a realtime one, and a camera with its Culling Mask set to Nothing counted like one that renders the world. Only realtime reflection probes and cameras that draw something count now.
  • The heavy script check counted code that does not run every frame. It added up every instruction in a script, so scripts that only react to clicks and events were flagged. Across 732 real Udon programs, 25 of the 33 over its limit run nothing every frame, among them TXL's player controls, playlist queue, audio manager and video manager. It now counts only what Update, LateUpdate, FixedUpdate, PostLateUpdate and the render events can reach, times the number of active objects running the script.
  • Continuous sync was flagged on scripts with nothing to sync. A script with no synced variables sends nothing, however it is set, and a pickup or Rigidbody on a parent or child object was missed. AudioLink's controller, whose pickups are its two handles, was flagged for both reasons. Both are checked now.
  • The texture size fix overwrote original image files. It shrank a texture by rewriting its source file, including files from other creators' packages, and it could set Max Size higher than you had it. It now only ever lowers Max Size.
  • The player data check fired for any script with an Update. It now fires only when saving player data can happen from an event that runs every frame.
  • A scan logged an error for every TXL screen material. The missing texture repair looked for an emission texture by name and found TXL's Emission Scale, a number with the same name. It now only looks at texture slots, so it can no longer put a texture into a colour or number setting either.

Security

  • ImageMagick updated to 7.1.2-31 (Magick.NET 14.17.1). It brings 25 upstream security fixes made since the version we shipped, among them two code injection flaws in text labels, which Badge Studio uses to draw your badge text, and a flaw in how ImageMagick enforced its own format rules.
  • ImageMagick only works with the formats the toolbox needs. A security policy now blocks script formats (MSL, MVG, SVG), PostScript and PDF, web addresses, the clipboard and screenshots, and a set of rarely used formats that had recent security fixes. It also stops ImageMagick from starting any other program, and refuses images wider or taller than 32,768 pixels. The texture formats Unity imports are not blocked.
v2.17.0 - 2026-09-05

Quest conversion for worlds, and the World Engine learns collision layers, baked lighting and four more packages.

Added

  • Quest World Converter, a new tool at VixenTools/Scene/Quest World Converter. Worlds never had a Quest conversion path, only avatars did. Press Scan Open Scenes and it collects every material on your renderers, terrains and skybox, then Convert Selected Materials writes Quest-ready copies into Assets/VixenTools/Quest World/<Scene>/. Your originals are never touched. Materials already using a Quest shader are detected and left alone. Point the scene at the new materials is off by default, and asks before it swaps anything.
  • Collision layers, not just collider shapes. The World Engine now reports what your colliders actually are, and reads your project's real collision matrix to find geometry players will walk straight through. It also catches a concave mesh collider under a physics Rigidbody, which Unity cannot simulate at all.
  • Baked lighting checks. New findings for objects set to Contribute GI that sit under a Rigidbody, so their baked lighting stays behind when they move; for moving objects with Light Probes switched off in a baked scene; for a baked scene with no probes and no Light Volumes; and for a probe group that was never baked. If Light Volumes is in your scene, the probe findings stay quiet, because Light Volumes already covers that job.
  • Post processing checks. Missing Reference Camera, a reference camera with no Post Process Layer, a volume layer set to Nothing, volumes sitting on a layer the camera is not watching, volumes with no profile, and Temporal Anti-Aliasing, which VRChat does not accept.
  • GPU Particle Volumes support, covering a manager with no mesh assigned, volumes recalculating every frame, and empty include or exclude slots.
  • TXL Player Audio, Portal and Misc support, covering duplicate audio managers, zones with no trigger or no settings, portals missing their station or zone, chairs with no station, and material swappers with nothing to swap.
  • Light Volumes 3.0 support for the runtime shadow baker, catching one with no target assigned and one left on Realtime.

Fixed

  • Two World Engine checks had quietly stopped working. The VRSL check looked for a class that no longer exists in VRSL, and the ProTV check looked for a UrlInput component that ProTV 3 removed. Both had been finding nothing at all. They now look for what those packages actually ship.
  • The Udon sync fix wrote a value that does not exist. Aligning an Udon behaviour's sync mode set the field to an undefined number, and VRChat's own setter then copied that number onto every other Udon behaviour on the same object. It now sets None properly.
  • Udon instruction counts were inflated. The heavy script warning counted data declarations as executed instructions. Measured across 251 real Udon programs, counts were about 22 percent high and up to 43 percent on individual scripts.
  • Colliders and contacts could be deleted from an avatar. The Optimization Suite only protected a PhysBone collider or contact when its Root Transform was filled in, but leaving that empty is the default and means the component uses its own transform. Those bones were left eligible for removal. Every collider and contact now protects the object it sits on.
  • The Quest converter offered shaders VRChat rejects. Mobile/Standard was a target and Standard was the fallback, and neither is on VRChat's mobile shader list, so uploads replaced them. Both converters now read that list from the SDK itself and offer all ten shaders on it.

Changed

  • The shader replacer works with our shaders. VixenWear/ and VixForge/ shaders are the replacement targets and are never flagged for conversion. Retired VixenWorld/ and Vixen/ shaders from earlier releases are flagged so you can move off them.
  • Poiyomi materials are treated as broken when Poiyomi is missing. A locked Poiyomi material still renders but its inspector will not load and it cannot be unlocked. These used to be protected from replacement by the rules covering hidden and optimized shaders. When Poiyomi is not in your project they are now offered for conversion instead.
  • More third-party shaders left alone. Towel, GPU Grass, GPU Infinite Grass, QvPen, Silent and Mochie shaders are no longer flagged for conversion.
v2.16.0 - 2026-08-30

A new tool for when your materials quietly disagree with each other, and our X handle is now @VixForge.

Added

  • Material Conflict Finder, a new tool at VixenTools/Avatars/Material Conflict Finder and on the Hub's Avatar Tools grid. Drop an avatar in, press Analyze Materials & Toggles, and it reports what it found in four sections, each with the buttons to settle it.
  • Cross-Material Property Mismatches. Toggle properties holding different values across your materials, grouped by value so you can see which materials sit on which side. Sync All to 0.0 (OFF), Sync All to 1.0 (ON) and Align Majority settle a whole group in one press, and Select All and Ping take you to the materials involved.
  • Orphaned Shader Keywords. A toggle switched off while its shader keyword is still enabled. That is the state where a feature reads as disabled in the inspector but still renders. Fix clears one, Fix All Keywords clears them all.
  • Animation & VRCFury Driven Toggle Conflicts. A clip drives a toggle up to 1.0, but the keyword it needs is switched off on the material, so the animation changes nothing in game. It reads your VRC base and special playable layers, plus any clips VRCFury carries.
  • Scanned Materials Inventory. Everything the scan looked at, in one list.
  • Locked materials read correctly. A locked material carries no keywords, because the locker bakes them into the generated shader, so a plain keyword check calls every animated toggle broken. The finder reads the pre-lock keyword list stashed on the material instead, and leaves alone any property the lock deliberately kept animated.

Changed

  • Our X handle is now @VixForge. The Hub's Twitter button, the package and VPM listing author links, and every page on this website point at x.com/VixForge.
v2.15.1 - 2026-08-17

Every button, panel and dialog in plain English, two Hub fixes, and the PhysBone Topology Mapper is now PhysBone Blueprints.

Changed

  • Fix Scene Data moved to VixenTools/Unity Engine/Fix Scene Data, to keep the menus a little shorter.
  • Plainer names on everything you click. Buttons and panel headers across the toolbox lost the jargon. EXECUTE DEEP SYSTEM SCAN is now SCAN AVATAR, EXECUTE DESTRUCTIVE TOPOLOGY FIXES is APPLY SELECTED FIXES, EXECUTE TARGETED DOWNSCALE is Downscale Selected Textures, Optimization Target (px) is Max Texture Size (px), and the Optimization Suite's panels read Settings, Physics Components, Textures and Memory & Limits. The Quest engine converts with Convert To Quest, the Preset Manager's tabs are Extract From Assets and Create New Preset, and the Hub's Architecture tab is now Overview. Tool names, menu paths and every setting behave exactly as before: only the wording changed. The docs and this website match.
  • The PhysBone Topology Mapper is now PhysBone Blueprints, under VixenTools/Avatars/PhysBone Blueprints. Its two buttons are Save Blueprint and Apply Blueprint instead of Extract Master Copy and Inject Blueprint, and new blueprints are named Avatar_PhysBones rather than Avatar_MasterTopology. Blueprints you already saved keep working: only the default name for new ones changed.
  • The Quest converter's component list dropped its "System:" prefixes. The sections are just Animators, PhysBones, Colliders and so on, and the auto-culled ones say removed for you.

Fixed

  • The update badge lands on the changelog. Clicking the update notice in the Scene View opened the Hub on News the first time, because it asked for the Changelogs tab before the Hub had finished building it. It now waits and takes you where it says it will.
  • Old releases stopped halfway down. Reading release 1.4.3 in the Hub's Changelogs tab cut off partway, because the Hub used to stop reading a document the moment it saw the words "Network Links", and that release happens to mention them. Every release reads to the end now.
v2.15.0 - 2026-08-15

Shrinking a texture is the blunt way to save VRAM, so the Optimization Suite now offers you the format first and only suggests resolution afterwards. The destructive tasks stop arriving pre-ticked, and they stop treating anything your animations or VRCFury reference as dead weight. The Hub also starts telling you the truth about which SDK you have.

Added

  • Texture compression comes before texture shrinking. The Optimization Suite now finds textures left on Uncompressed and offers to move them to high-quality block compression, at the top of the task list, above the resize panel. An uncompressed RGBA texture costs 32 bits per pixel and a compressed one costs 8, so this is the same VRAM saving you would get by halving the resolution, without the blur. Unity picks the right block format per texture, so colour maps get BC7 and normal maps stay normal maps. Shrink the resolution afterwards if you still need to, rather than first.
  • Free quality upgrade for transparent textures. A second task spots textures already compressed on the older DXT5 format and offers BC7 instead. Both are 8 bits per pixel, so memory does not move, but banding and block artifacts largely go away. It deliberately skips opaque textures: those sit on 4-bit DXT1 today, and moving them to BC7 would double their memory rather than cost nothing.

Changed

  • Magick.NET updated to 14.16.0 (ImageMagick 7.1.2-29, up from 14.14.0 and 7.1.2-25). Upstream bug fixes only. Nothing about how your textures are resized or composited has changed.
  • The imaging library is Editor-only now. It moved out of Runtime and ships with import settings that pin it to the Editor on Windows x64, so 25 MB of native imaging code can no longer be dragged into an Android or Quest build.
  • Animator Forge writes to Assets/VixenTools/AnimatorForge/. Everything the toolbox generates now lives under one folder instead of a second Assets/VixenForge/ one. Clips you already have keep working exactly where they are.
  • New PhysBone blueprints are named Avatar_MasterTopology by default instead of carrying a test avatar's name.

Fixed

  • Nothing in the Optimization Suite is ticked for you any more. Every task in the Destructive Optimization Engine now starts unchecked, so the execute button does nothing until you have actually chosen something. They used to arrive pre-selected, which put a one-click purge of your hierarchy behind a button you might press while still reading the list.
  • Purging orphans and collapsing leaf bones now check whether anything is using them first. Both passes previously looked only at components and children, so an empty GameObject that a clip toggled, or a bone a VRCFury component pointed at, read as dead weight and got destroyed. Both now build a reference set from every animation clip on the avatar (your playable layers plus anything VRCFury carries), every object reference held by a VRCFury component, contact senders and receivers, and constraint sources, then skip anything that appears in it.
  • The Hub showed the wrong VRChat SDK version. It read the SDK version out of the toolbox's own manifest, so it always printed the minimum version we build against rather than the SDK you actually have. It now reads your installed SDK.
  • PhysBone Topology Mapper in projects without the VRChat SDK. It was meant to open with a friendly "SDK required" screen, but the whole tool was compiled out, so it never appeared at all. The fallback works as described now.
  • Animation Workbench property categories. Shader properties starting with _AL never landed in the AudioLink group. They do now, without sweeping up names like _Alpha by mistake.

Removed

  • Dead mesh-welding code left behind when QEM decimation replaced it, plus a duplicated property-category helper.
v2.14.0 - 2026-08-10

Animation Workbench learns to see the rest of your clip. Material swaps were invisible to it, so a clip that opened on one looked completely empty - those now list with every key. Component properties can be animated without leaving the window. And the window loads its styling again instead of opening bare.

Added

  • Animation Workbench - animate components: A Component Property picker now sits beside the material one. Anything Unity can key on your avatar is reachable from it: a component's enabled toggle, Transform values, fields on a script. Set your Preview Target, hit Choose, pick the property, then Add Binding. Until now the only thing you could add was a material property, so anything else meant leaving the Workbench.

Fixed

  • Animation Workbench - material swaps were invisible. A clip that swapped materials looked empty. Swap tracks are a different kind of track from the rest and were never being read, so a clip that opened on one showed nothing at all. They now list alongside everything else, marked as swaps, with each key shown as its time and the material it swaps to. Single-key swaps pinned at the start show up too, which is how most of them are written. They are there to be read rather than edited, since there is nothing to ease between two materials.
  • Animation Workbench - the window opened unstyled. It was looking for its stylesheet somewhere it was never kept, so it fell back to bare layout and logged a warning every time you opened it.
v2.13.1 - 2026-08-07

Hub maintenance release focusing on ecosystem compliance. Removed legacy partnership links, deprecated code, and decoupled documentation to streamline the hub environment and maintain strict licensing standards across the board.

Removed

  • Hub: Removed the Partnership tab. Due to conflicting values and morals, we are no longer partnered with Engima Industries and will no longer be supporting their needs.
  • Hub: Removed the ShaderDoc tab. This is now packaged separately with the Gumroad products.
  • VixForge Ecosystem: Removed TechnicallySane's integrations completely due to licensing compliance.
v2.12.0 - 2026-07-11

Adds the Animator Forge, a new avatar tool that both diagnoses broken animators and builds fully-rigged toggles for you. New avatar bases often ship with FX controllers that reference VRChat driver parameters like Seated without declaring them, which floods the SDK panel with "uses parameter which does not exist" errors. Animator Forge finds those and a whole family of related problems, and its Forge side generates a complete toggle - parameter, menu control, FX layer and states, and animation clips - in a single click, matched to your avatar's own Write Defaults convention. Editor tooling only; Built-in Render Pipeline / VRChat, as always.

Added

  • Animator Forge - Doctor: A new diagnostics engine that scans an avatar's playable-layer controllers plus its Expression Parameters and Menu, then lists ranked findings with one-click fixes. It catches transitions and blend trees that reference undeclared parameters (recognizing the full set of VRChat driver parameters such as Seated, AFK, VRMode and the Gesture values, and adding them back with the correct type), a broken mix of Write Defaults, menu controls bound to missing parameters, synced-parameter cost overflow, duplicate or mismatched parameters, dead zero-weight layers, and invalid transitions. Every finding has a Locate button and, where safe, a Fix, plus a "Fix all safe issues" batch for the unambiguous ones.
  • Animator Forge - Write Defaults Normalizer: The Write Defaults detection and fix follow the widely-used VRCFury model - grouping states as normal, Direct blend tree, or additive, taking the target from the FX layer's majority, and always forcing Direct blend trees and additive layers on. It reports the exact offending states and only changes anything when you ask it to.
  • Animator Forge - Empty Write-Defaults-Off Clip Check: Detects the SDK's "Write Defaults disabled where the animation clip is either missing or empty" warning (using VRChat's own scan logic), and one-click fixes it by assigning a shared inert clip with a single harmless property - which is what actually clears the warning, since a truly empty clip still reads as empty to the SDK.
  • Animator Forge - Rig Builder: The Forge tab builds complete, ready-to-use rigs with no manual Animator wiring. Five types are supported: GameObject toggle, blendshape toggle, blendshape slider (a radial dial), material swap, and exclusive group (a radio set where enabling one option disables the rest). Each build generates the Expression parameter, the menu control or submenu, the FX layer with states and transitions, and the animation clips, with new states matched to the avatar's Write Defaults convention. It is non-destructive - it reuses or creates the FX controller and expression assets, clones read-only sample controllers before touching them, and never deletes existing layers or parameters.
v2.11.0 - 2026-07-09

The Latex Ultra shaders reach 3.0.0 - a major overhaul. Hyper-realism gains a dedicated occlusion and baked-shadow map pair; high-gloss sparkle is gone by default; MatCaps grow to five layers with an avatar-lock Freeze, super-bright intensity and a fully reorganized panel; Emissions grow to five layers with consistent AudioLink; VRSL becomes its own tab; Light Volumes gain optional per-light speculars; and locked materials compile faster. Both shaders. Built-in Render Pipeline / VRChat only, as always. Every new feature is off or neutral by default so existing materials keep their look, but this is a big release - re-lock and spot-check your materials.

Added

  • Occlusion & Baked Shadow maps - new Lighting Detail section (Both Shaders): A dedicated Occlusion Map darkens ambient / indirect light in crevices, and a Baked Shadow Map paints permanent contact shadows that also cut direct light - both for added realism on the latex. Each has a channel picker and strength, and both share the Albedo sampler, so they add no sampler-budget cost. Off by default, so existing materials are unchanged.
  • Two more MatCap layers, five total (Both Shaders): MatCap 4 and MatCap 5 join 1-3, each a full matcap layer (texture, mask and channel, tint, rotation, intensity, blend mode, lighting mix, tiling, position, scroll). Off by default; no added sampler-budget cost.
  • MatCap Freeze - lock a matcap to the material (Both Shaders): A per-matcap Freeze slider stops a matcap sliding as the camera moves, so it reads as baked-in detail that turns naturally with the avatar instead of a mirror-like reflection. Default off (classic reflective matcap).
  • Three more Emission layers, five total (Both Shaders): Emission layers 3, 4 and 5 join 1 and 2, each with its own colour, map, mask channel and AudioLink band and amplitude. Off by default; no added sampler-budget cost.
  • Optional per-light Light Volume specular (Both Shaders): A new toggle routes Point Light Volumes through the light-source-size-aware per-light specular path for sharper, more accurate point-light glints on glossy latex, alongside a new Point Light Volume Shading strength control. Off by default (keeps the prior look).

Changed

  • Specular anti-aliasing on by default - no more sparkle (Both Shaders): High-gloss latex no longer shimmers or fizzes under motion. The specular anti-aliasing that already existed now defaults on, and an always-on roughness floor protects even previously-saved materials and distant surfaces. If you preferred the razor-sharp highlights, turn the anti-aliasing back down.
  • MatCaps reorganized into one panel (Both Shaders): The separate matcap tabs are consolidated into a single MatCaps section with Global Settings and Matcap 1-5 as sub-sections. Each matcap now has a Tiling & Movement sub-section (holding the Freeze control) and a dedicated Offsets sub-section, with clearly labelled position controls - Offset X moves side to side, Offset Y up and down (previously present but hidden inside an unlabelled field).
  • Brighter MatCaps (Both Shaders): MatCap Intensity now ranges up to 6 (was 2), so a matcap can push a strong, over-driven glow.
  • Emissions reorganized, AudioLink made consistent (Both Shaders): Each emission layer is now its own sub-section, and every layer's AudioLink band and amplitude sit inline with that layer and hide unless AudioLink is enabled. Previously only the second layer showed its AudioLink controls in this panel while the first layer's lived over in the AudioLink tab.
  • VRSL promoted to its own tab (Both Shaders): "Stage Lighting & VRSL" is now a top-level tab instead of being buried inside the AudioLink panel.
  • Faster locked-material compiles (Both Shaders): When a procedural effect is turned off (water drips, melting goo, the AudioLink HUD ring, fracture shards / trails), locked materials now drop that effect's geometry pass entirely at lock time, so locking and in-headset shader compilation are quicker. Animated toggles are respected - a pass is kept whenever its toggle is marked animated - so runtime toggling still works. Unlocked materials are unchanged.

Fixed

  • Light Volumes point-light bugfix and re-sync (Both Shaders): Re-synced the vendored Light Volumes to the current upstream revision, which fixes an off-by-one in the point-light attenuation lookup. The Light Volumes version stays 3 and every entry point the shaders use is unchanged, so the fix comes in transparently; no new samplers, keywords or variants, and existing worlds render unchanged.
Newer Updates Older Updates