s&box 26.08.05 Patch Notes (5th August 2026)
The platform jumps to Vulkan 1.3, switches shader compilers, adds DLSS upscaling, and introduces Streamer Mode for content creators. All without raising PC requirements.

Update 26.08.05 lands with a rendering infrastructure overhaul that sounds technical on paper but carries real consequences for both creators and players chasing visual fidelity. The headline is Vulkan 1.3, but the work underneath, modernising how the engine talks to graphics drivers, is what actually matters.
The Vulkan 1.3 bump from 1.2 reads as a major version jump, yet Facepunch is explicit: this changes almost nothing for players. No new visual settings, no performance shift expected, no hardware upgrades required. The studio benchmarks this against Minecraft's recent spec bump and calls it a sane standard. What you're really getting is cleaner code and a more honest conversation between the engine and your GPU. The synchronisation overhaul (VK_KHR_synchronization2) tells drivers exactly what depends on what, rather than forcing them to over-synchronise and stall work that could run in parallel. The mandatory dynamic rendering path deletes legacy render pass code entirely. These are housekeeping moves that unblock future upgrades without breaking anything today.
Download speeds double on faster connections thanks to raising the parallel cap from 16 to 64 parallel requests and moving to HTTP/2, which consolidates those into fewer sockets. More importantly, the engine now streams files directly to disk instead of buffering them in memory first. A 610MB package that used to spike heap usage to 739MB now sits at 3MB. Anyone on gigabit or faster will notice this immediately. Anyone on slower connections won't see much difference, but the memory efficiency helps everyone.
Streamer Mode is the feature that actually changes how people use the platform. When enabled, every player, including you, gets a procedurally generated anonymous name and profile picture. Developers must check Preferences.StreamerMode to ensure they never network player strings or profile pictures when the flag is active, as this is developer-dependent. That's not a platform guarantee yet; it's a best-practice contract. Games that ignore it will leak real names and avatars on stream regardless.
The shader compiler switch from DXC to Slang (matching upstream Source 2) cuts compile times by up to 25% with identical HLSL output, adds Intellisense support, and opens the door to generics and interfaces. Specular is now enabled by default in complex materials, which will look correct for most existing work but may add unwanted shine to edge-case materials with no roughness texture. The fix is one-line: set roughness to 1.0 or add a proper texture. DLSS joins FSR3 as an optional upscaler with temporal artifacts but no frame generation planned. Bloom 3 replaces the old implementation and benchmarks 25% faster. Static shadow caching now renders static geometry once and caches it, only re-rendering dynamic objects per frame.
What's absent: any mention of the menu overhaul being finished. The notes say the front page "isn't doing its job" and Facepunch will "keep changing it until it's useful," which reads as ongoing work rather than a solved problem. Friends list got grouped party members and direct invite buttons, which is a quality-of-life improvement, but the main menu remains in flux. For most players, this patch is invisible. Vulkan 1.3 and shader modernisation are infrastructure. For creators and artists, Streamer Mode and fur tinting are immediate tools. For anyone on fast internet, downloads just got noticeably quicker.
Full Patch Notes
▲ Buff▼ Nerf✓ Fix◆ TweakA new update has been released, you can view the full changes on our blog post.
https://sbox.game/news/update-26-08-05
Main Menu Changes
The front page of the main menu isn't doing it's job, it should be getting you into a game you're interested in as easy as possible. I've made a few changes this week, and we'll keep changing it until it's useful.
Friends List
The friends list got a couple of upgrades this week as it was looking dated. Party members are grouped in the list and you can invite users to your game / party straight from the row.
Streamer Mode
We've added a Streamer Mode setting to the platform. When enabled, everyone (yourself included) will be given a generic anonymous name along with a procedurally generated profile picture.
Please note that this won't work for all games out of the box, so developers can check `Preferences.StreamerMode` to ensure they will never network player strings/profile pictures when a client has Streamer Mode enabled.
Mount Maps Thumbnails
You can play maps from supported mounted games, these now have thumbnails shipped with them to make selection much nicer. Enjoy 😎
If you're developing your own mount, SceneLoader now implements IThumbnailProvider loading thumbnails from `/thumbs/{Host.Ident}/{RelativePath.WithExtension( ".png" )}` You can mass generate them with the `mount_generatethumbs` concmd which takes a thumbnail screenshot from a gameobject tagged map_preview or falls back on a player spawnpoint.
Faster Package Downloads
Downloading games and assets was leaving a lot of bandwidth on the table, especially on faster connections.
We raised the parallel download cap from 16 to 64, and moved to HTTP/2 so those downloads share a few connections instead of opening 64 separate sockets. Small files now come down about twice as fast.
We also stream files straight to disk instead of buffering them in memory first. A 610MB package used to spike our heap to 739MB, now it sits at 3MB.
Input Glyphs & Improvements
We've added support for the recent Steam Controller, now we have a unique glyph library for both the Steam Deck & Controller. While in the area, I also added support for the Switch joycons too.
Also, the Steam Controller / other generic controllers were not reporting their name at all, now they do, should make it easier to tell your controllers apart.
Vulkan 1.3
We’re raising our minimum Vulkan version from 1.2 to 1.3. Although that sounds like a significant jump, we don’t expect it to affect the overwhelming majority of players or meaningfully change our hardware requirements.
In reality this matches Minecraft's new minimum specs which we feel is a very sane standard.
Moving to Vulkan 1.3 gives us a cleaner, more consistent foundation for rendering and lets us rely on functionality that is already standard across modern hardware. For almost everyone, nothing changes. There are no new visual settings to configure, no expected change in performance, and no need to upgrade your PC.
Vulkan Modernization
We've started modernizing how we use the Vulkan API.
Nothing you'll see directly, but it sheds a lot of legacy code and gives the driver better information to work with.
VK_KHR_synchronization2 is now in use across the board. Sync scopes are specified per barrier instead of one OR'd mask per call, so the driver sees the real dependencies and can overlap unrelated work instead of over-synchronizing.
VK_KHR_dynamic_rendering is now mandatory, which let us delete the legacy render pass and framebuffer paths entirely.
All of this has been well supported across the three major vendors for years, so it's mostly about clearing out old code paths and laying the groundwork for further upgrades.
Slang Shader Compiler
We've switched our shader compiler from DXC to Slang, this is the same compiler used in upstream Source 2.
There shouldn't be any breaking changes to your shaders, Slang is fully backwards compatible with HLSL but adds:
- Reduced shader compile times by up to 25% with the exact same HLSLThis can be further enhanced with modules, generics and interfaces.
- Intellisense support via Visual Studio & VSCode extensions (which we were already using)
- Generics & interfaces reducing shader combinations and scaling large code bases with more modular code.
As always we're going to aim to stay up to date with the latest technologies, be that rendering, .NET or more.
DLSS
I've added a new DLSS upscaler alongside FSR3. These are optional upscalers that makes use of temporal techniques, so it will exhibit minor ghosting and artifacts. There is no frame gen and no plans to add it.
Upscaler Fixes
GPUs implicitly select a smoother, smaller version of a texture when the neighbouring pixels of the textures are closer when rendering at lower resolutions, upscalers render the game at lower resolution, the combination of both was causing textures to look overly smooth when you were using DLSS or FSR.
By applying a bias on how these textures are selected we can have the game's textures have the same sharp look as native resolution.
Specular is now enabled by default in complex shaders
We've made specular enabled by default in all materials that use "complex" shader. If you ever authored materials with complex shaders, then you know that "specular" used to be an opt-in feature that you would have to manually turn on in every material that you create with complex.
Specular is what makes models shiny and fancy. Everything is shiny. It didn't make sense that such important part of shading was optional, and I know from my personal experience that this can be quite confusing for many beginner artists. Also, nearly all other shaders, including custom ones, have specular enabled by default.
Will this affect my assets? It's very likely that this will NOT affect your materials, and games will continue to look the same. However there may be an edge case where this *can* change how your materials look, but only if they meet specific criteria:
- Material previously had "Specular" feature turned off
- No roughness texture set, used default texture which equals 0.5 roughness
In this case models might gain a flat plastic shine. This can be changed by setting roughness value in material settings to 1.0, or adding a proper roughness texture, should be a pretty quick fix hopefully.
Add tint support to fur shader
Fur shader now supports tinting from model renderer component. This was previously not possible, but now that we finally have a human readable code in fur shader, we can start implementing new features to it. I imagine this will be handy for cosmetic creators.
Static Shadow Caching
Now that we can flag objects as static we can do some nice optimizations around it.
For shadow maps we only need to render static geometry once and then cache it, shadows will then only re-render dynamic objects in shadow maps and you don't need to do much configuration or baking.
Hair Transparency Fixes
We rely on alpha to coverage for order independent transparency, but that technique only works when MSAA is enabled. With MSAA off we were essentially falling back to screen door transparency, which gives ugly stippling patterns.
Now when MSAA is disabled we alpha clip instead. That means hair is no longer semi opaque, but it also gets rid of the stippling.
In the future we may look into other order independent transparency techniques that don't rely on MSAA, but until then we will warn in the settings if MSAA is turned off.
Bloom 3
Our second bloom implementation, the previous one suited better than what came with the engine and was also a good example of the our postprocess pipeline, but was hard to configure, after recent changes it also lost a lot of visual oomph.
Bloom 3 is looks even nicer and is easier to configure, this implementation is more like how modern games do it.
Small very bright details wouldn't bloom, they do nicely now:
This also proved to be about 25% faster in our benchmarks.
Shadows
A few updates back we added Screen-Space Shadows, we want to expose the concept of Shadow Masks more generally gradually, a way to defer part of the shadow calculations to compute shaders with a screen space texture, so they can decimated efficiently and composited correctly.
I've redone how we do shadow masks internally and this also fixed the 1 frame delay that caused stuff like Screen-Space Shadows in VR to be rendered in the reverse order, now it's all fine and the API should be pretty much almost good to be made public.
I've also fixed artifacts across quad divergences in shadows, we use a technique called Receiver Plane Depth Bias which uses the depth difference between neighbouring shadow maps texels in a quad to adjust the depth bias accordingly, the problem is that ordering of which shadow maps are in that quad can diverge in a quad giving garbage data, even when we try to mitigate it hardly.
I simplified it and just used a technique similar to what Unity and Godot do by offsetting the shadow position by the PCF size and surface normal, solves both shadow acne and the quad divergence shit
Hammer Aggregate Meshes
Hammer maps will now build aggregate scene objects from meshes and props, aggregates combine multiple meshes and props sharing a material into a single specialized aggregate sceneobject, so the runtime submits one batch instead of one per mesh.
This results in less draw calls and a faster path for drawing static geometry.
This is semi-backported from Source 2 upstream, but without meshlets or GPU culling for the first version.
Hammer Open World Vis
We’ve updated how visibility clusters are merged during map compilation, using proven settings from Deadlock.
Open maps could previously generate many small, neighbouring visibility clusters, even when those areas could already see one another. The new pre-merge passes combine suitable open-space and small regions before visibility sampling begins.
This should:
- Reduce unnecessary visibility clusters
- Improve visibility calculations in large, open areas
- Produce cleaner visibility data during map compilation
Maps must be rebuilt to benefit from these changes. Because this affects visibility across every map, we’ll also be validating the results through map builds and visual sanity checks.
Why update Hammer?
Our scenes will soon have a compile step that makes use of aggregate meshes and props.
Backporting them from upstream Source 2 into Hammer gave us an opportunity to test them out in our worst performing cases of static geometry.
Bad faces
Hammer would highlight bad faces so you could sort them out, so now we do the same.
Mesh hide faces
As well as hiding gameobjects, you can now also hide mesh faces temporarily.
Primitive Tool UX
The primitive tool in our mapping tool needed to be sorted out so I collaborated with the community to come up with something nicer.
Add import scale with unit presets
A little user requested QoL feature, import scale is now included in the create model wizard.
ModelDoc: auto-fill material textures by name
I've updated how DefaultMaterialGroup node works and now it can automatically assign materials if names are matching. So if your model's material names match with materials in your project, they will be auto-filled.
Previously this auto-fill feature worked only if material slots in model had full content path in them, which is obviously not very convenient for artists. Now it also works with bare material names.
This helper will work as long as following conditions are met: 1) material slot hasn't been automatically filled by some other function already, like auto-fill by content path, 2) material name isn't ambiguous, meaning that there should be only 1 material with this name in your s&box project
Creating decals from context menu
I've added a new option to context menu that allows quickly creating new decal definitions from current selection of textures. Just select 1 or more images in asset browser, right click on them and click "Create Decal".
Engine will try to automatically assign all textures to appropriate decal slots from selection. The only requirement is that your decal textures must have appropriate suffixes appended at the end of their file name, such as: _color, _normal, _rma, _emissive, _height. For example, "my_custom_decal_color.png" will be assigned to a color slot.
You will be notified in a popup window if something went wrong during decal creation, this will usually happen if any of the decal textures have incorrect/missing suffixes. This tool should make decal creation a significantly less tedious process, turning it into essentially a fast two-clicks procedure.
Physics Event Callback Optimization
Collision events are now quite a bit faster, and a lot faster when bodies are asleep.
Every event used to cost its own managed callback plus four calls back into native. Now all events are batched into a single call per physics step.
This brings one small behavior change: collision update events are no longer sent for sleeping contacts.
Unity has the same semantics for OnCollisionStay.
If you need the old behaviour, PhysicsBody.AutoSleep = false brings it back.
Clutter on Published maps
Previously, painted clutter would not load correctly in published maps because its data was stored at the scene level rather than directly in the map.
Map instances can now apply temporary Game Object System overrides. These overrides are reverted when the map is unloaded, preventing map-specific data from polluting the main scene.
Thanks to @Pol for this contribution!
Changelog
🎁 Added
- Bloom 3 — a rebuilt, higher-quality bloom pipeline.
- Static Shadows Cache — caches shadow rendering for static geometry to cut per-frame cost.
- NVIDIA DLSS support, available alongside FSR3.
- Steam Controller support
- Streamer Mode setting to hide sensitive personal info.
- CSS `isolation` property support in the UI/panel system.
- Show Pivot Transform in the editor gizmo
- Mapping rotation nudging
- Model builder bindings for constructing models from code.
- Expose sun direction/color to Shader Graph, plus new sRGB colour-transform nodes.
- Public `Index` on `SamplerState`s for bindless rendering.
- `Input.SetLastAction` API.
- `SurfacePrefabCollection.BulletImpactDecal`.
- Allow `` and `` attributes on fields (not just properties).
- "Create Decal" entry in the context menu.
- Tint support on the fur shader.
- Mesh editor: hide faces, box-select for edges/faces, and component collapse menu actions.
- Mesh editor: import scale with unit presets that remembers your options.
- Bring back multiple asset browsers.
- Add optional mounts to the asset picker.
- Mounts: map thumbnails.
- Quake maps: support for 6-sided skyboxes (`_sky`) and sky surfaces in thumbnails.
- MCP compile status reporting.
- Debug names on command-list error messages for easier diagnosis.
- Constructor overload taking an extension on `FilePathAttribute`. Thank you @boxrocket6803
- Terrain: option to show the grid, and show it outside the paint tool too. Thank you @PolEpie
🧼 Improved
- Shader toolchain moved to Slang — `vfx_vulkan` now compiles with the Slang compiler; built-in shaders are offline-compiled and ship as embedded SPIR-V, removing the runtime DXC dependency.
- Vulkan 1.3 is now the minimum, using core APIs instead of extensions: `VK_KHR_dynamic_rendering` is mandatory, `VK_KHR_synchronization2` adopted, `VK_KHR_dynamic_rendering_local_read` used when available, and redundant render-pass begins are skipped when render state is unchanged.
- Map aggregation backport from Deadlock — aggregate meshes and props in the map builder, more aggressive aggregation and open-space pre-merge parameters, and aggregates submitted via `MultiDrawIndexedInstancedIndirect` with self-managed culling.
- Physics collision event optimizations.
- Clutter allocation optimizations.
- Improved GPU crash reporting, with precise buffer stages specified for buffer operations.
- Improved package download reliability.
- Friends list improvements.
- Primitive tool UX pass.
- Show localized strings when using `` or `` attributes in the editor.
- Editor reopens in ortho view if it was last closed in ortho.
- Refactored the viewport orientation gizmo to render in-scene.
- Mesh editor: bevel & edge-cut tools now support undo; ctrl/shift selection fixed.
- NS2 model loader updated to support animations.
- Resolve modeldoc material slots by their name.
- Specular is now always enabled in the complex shader.
- Tints now work on Hammer aggregates.
- Updated the Citizen skin clothing preview material.
- Reward drop tweaks.
- Include library and transient assets in editor file networking.
- Terrain editor quality-of-life improvements. Thank you @PolEpie
- Improved `TcpChannel` to stop stuttering caused by non-async reading. Thank you @deadmonstor
- `Http.RequestStreamAsync` now streams the response instead of buffering it. Thank you @Gamah
- Font loading logs an error and falls back to the system font instead of hard-failing. Thank you @Mykol-Word
- Changed a fallback message from an error to a warning. Thank you @Mykol-Word
- Clear the resource loader to ensure a clean state. Thank you @deadmonstor
🪛 Fixed
- Fix A2C artifacts on hair and when MSAA is off.
- Movie Maker: `Enabled` property playback fixes.
- Fix blurred textures when using upscalers.
- Remove the flashing red background in the pause menu while the thumbnail loads.
- Fix Hammer `light_environment` SkyColor not applying to the DirectionalLight.
- Fix Hammer `physic_entity` prop not applying its MaterialGroup at runtime.
- Fix default baked Hammer lights casting dynamic shadows.
- Kill the orientation gizmo when entering play or repossessing.
- Fix nav agent avoiding the goal when it is next to a wall.
- Guard Aspect against NaN and build `CameraComponent` FoV from the camera rect instead of the screen's.
- Remove receiver plane depth bias to fix shadow-acne quad divergence.
- Fix shadow-mask textures having a 1-frame creation delay.
- Fix ragdoll bounds being wrong.
- Read loop point from the WAV cue chunk, and fix load options not defaulting so every sound looped.
- Don't cache `overridesDrawGizmos` on component instances.
- Fix mixer processors not applying to child mixers.
- Fix mesh component vanishing after editing a mesh in a prefab.
- Height coverage clipping fix.
- Fix `` UV on the triplanar node.
- Fix `SliderControl` ignoring `ShowValueTooltip`.
- Physics debug draw now requires cheats or the editor.
- Fix multi-scene hotkeys.
- Fix heightfield contact material hole check.
- Fix gizmo lines exploding on very long surfaces.
- Quad slice falls back to the four sharpest corners.
- Draw bad-face outlines in mapping mode.
- Fix stack overflow computing submerged volume for many-sided hull faces.
- Applying material to faces now recomputes texture coordinates so they aren't stale.
- Fix nudging not correctly updating the texture.
- Fix terrain material update using the wrong stride.
- Make the asset transient string ring per-thread to fix garbage paths.
- Mesh component blob fixes.
- Fix nested compiler search paths.
- Fix an appendstructurebuffer Slang regression.
- Fix editor validation errors/warnings.
- Fix missing barrier for UAV clear.
- Forget scene-tree expansion state for scenes that have closed.
- Stop the GPU resource viewer keeping the textures it lists alive.
- Expire `NativeResourceCache` entries ourselves instead of via `MemoryCache`.
- `vfx`: stop serialising uninitialised memory into compiled shaders (made them non-deterministic).
- Fix sync vars getting stuck due to dropped/delayed ACKs. Thank you @deadmonstor
- Mark create messages as sent for every object in a join snapshot, including ancestors. Thank you @deadmonstor
- Fix `NullReferenceException` in `WaterVolume.OnFixedUpdate`. Thank you @Nolankicks
- Fix off-by-one in the `Texture.GetPixels` destination array bounds check. Thank you @Relicjamin-jv
- `BaseFileSystem.FileExists` returns false instead of throwing on a null/empty path. Thank you @boxrocket6803
- Fix `Steam.SteamId` for dedicated servers. Thank you @766974616c79
🚯 Removed
- Removed the DXC dependency and dead D3D11 backends from `vfx_vulkan` (Slang migration)
- Removed legacy Vulkan code paths superseded by mandatory dynamic rendering
- Removed the C++ ATL dependency
Sources
Stay on top of every update — find all the latest patch notes and gaming news at XP Gained. Join our Discord for live patch note alerts and discussion.
Written by
Nathan LeesGaming journalist and founder of XP Gained. Covering patch notes, breaking news, and updates across 160+ games.
Related Posts

s&box 26.06.24 Patch Notes (24th June 2026)
Discovery gets a social overhaul, Rust content arrives, and shader optimization nets serious frame time gains.

s&box 26.06.17 Patch Notes (17th June 2026)
Mini Motors debuts as the first in a series of small, polished games. Mounts integration hits the main menu, and code archives are gone for good.

s&box 26.06.10 Patch Notes (11th June 2026)
Reward clarity, security overhauls, and Twitch integration headline s&box's latest update.