s&box 26.07.08 Patch Notes (8th July 2026)
S&box closes the engine-to-game boundary with native inventory and weapons, overhauls rendering performance with GPU clutter culling, and adds contact shadows for fine shadow detail.

S&box has plugged one of its longest-standing gaps: native inventory and weapon systems. Until now, you've had to build these from scratch, even though GMod shipped them baked into the engine. This week's update 26.07.08 adds BaseWeapon and InventoryComponent with muzzle flashes, impact effects, tracers, and brass ejection built in. You can still override everything if your game needs it, but the idea is you get 90% of the work done for you.
On the rendering side, two changes should tighten performance noticeably. GPU-accelerated clutter culling reworked the instancing system entirely. LOD selection and culling now happen on the GPU instead of the CPU. In their benchmark with heavy clutter scatter, they dropped from 60ms to 8ms. Contact shadows, running in screen-space per pixel, fill the gaps where shadow maps lose detail, and they're fast enough to cost just 0.00006 seconds on an RTX 3080.
There's also a fur shader rewrite for readability and texture packing, bloom threshold fixes, and a new MCP server that lets Claude and other AI tools talk to the editor without forcing an annoying chat interface on you. The full list, including mapping icon updates and GPU profiler improvements, is below.
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-07-08-0edd49e2
Addons
Previously, you were able to publish a single asset to our workshop, you'd be able to add code and use your own components. However, you weren't able to use the game's code, just stuff from the engine.
This week, we've added support for these addons to target games. In your addon, you must set the "Target/Parent Game" field in Project Settings to make use of this. This should really increase the capabilities for community addons and we're hoping to see that with Sandbox Game in the coming weeks.
MCP Server
The s&box editor now has a MCP server. The server allows stuff like Claude to talk directly to the editor. This isn't adding an annoying AI assistant chat box to the editor. It's totally invisible unless you're already using AI and want it to be able to communicate with the editor.
I know there's going to be whole swale of the community that opposes this. I think the impression is usually wrong around this stuff. This is here to save time and make boring repetitive tasks quicker and easier.
What this is
- ✅ Find out why my models aren't compiling
- ✅ Diagnose and fix the broken paths on my prefabs
- ✅ Change all the tree models in this scene to oak_06 instead of oak_07
- ✅ Give all the published assets in the models/rust/ folder nice descriptive titles
- ✅ Can you spot anything wrong with my scene? The lighting is all broken.
What this isn't
- ❌ Generate a game that is like the matrix vs rollercoaster tycoon
- ❌ Generate a model of shrek
- ❌ Generate a pixel art image of a plumber for me to use as my game character
Bloomin Bloom
Our bloom was hard to balance. It was easy to land into overblown territory. This week, we've made the threshold parameter work like an actual threshold.
There was also an under lying issue where light would contribute exponentially as we went down the mip chain.
The threshold parameter also takes into eye adaptation. So going from a dark scene to a bright scene should retain the same amount of bloom. This should make it easier for everyone to balance no matter the scene.
Fur Shader Rewrite
Our engine has a built-in fur shader that allows getting pretty nice fluffy visuals using the shell technique. It's used by some cosmetics, like santa hat, and probably used in some community content as well. It was useable, but its code was barely readable because it was made with Shadergraph long time ago. It had some other issues too, like no texture packing, mismatched color space on textures, and missing UI groups.
This is not very good, considering that almost all of our shader code is open source - anybody should be able to peek how these shaders are made and learn something new from them. So I rewrote the fur shader with a goal to keep visuals 100% intact. Full rework inside, no changes from outside:
- Fixed missing UI groups, all inputs should be properly categorized in Material Editor now
- Fixed sRGB color space on some texture inputs (fur noise and normal map)
- Added proper texture packing for compiled textures. Previously each material would write 6 separate textures to disk, now it's just 3
- Rewrote wind displacement code, instead of calculating simplex noise at runtime, just sample blue noise texture
- Simplified math where it's appropriate
- Added an option to convert vertex color from sRGB to linear color space
- Added an option to toggle between transformed/geometric normals for rim lighting
Matt also added a handy helper that now allows safely upgrading sensitive shader code without breaking existing materials, it's called FeatureUpgrade.
`FeatureUpgrade` is a special utility in `FEATURES` block that marks an already-declared feature as an internal upgrade toggle. New materials will be automatically created with a new feature value assigned, while keeping old materials unaffected. You can use this to wrap upgraded code in a static combo, and it will be always enabled by default in all new materials, while old ones will continue executing old code.
I wrote a detailed explanation with usage example in s&box docs here. You can see how exactly this thing is used in the fur shader source code.
While at it, I've also fixed a long standing bug with Material Editor, where some custom shaders with identical variables defined in multiple static/dynamic combos would reset affected properties to defaults whenever you click on any feature. It was more likely to happen with code upgrades like in fur shader, but now you can safely define variables under the same name in multiple code paths.
Mapping Icons
For most of s&box tools we using Material Icons, which work for most things but for the mapping tools we've reached a point there either there isn't ones which match the function or an icon is used for multiple functions which causes confusiong. Also it should make it eaiser to see functions from a glance now.
Clutter GPU Culling
Our clutter renderer was barebones. We instanced the models, but that was about it. There was no culling at all for instanced models, and LOD selection was done entirely on the CPU. It worked, but didn't scale when trying to scatter a large amount of clutter.
This week we've reworked the clutter renderer:
- LOD selection is now done on the GPU
- Culling is also now done on the GPU in the same pass
- Collision for painted instances works as expected
You should see a performance boost across the board. On our benchmark scene with a lot of scattered clutter, we went from 60ms to 8ms.
We've also unified the render path across every instance type, so all clutter whether painted, procedural, volume-based will benefit from the same improvements.
GPU Profiler Improvements
We cleaned up the GPU profiler:
- Timings that were bogus due to work being split across threads are now accurate and no longer inflated.
- We also added a hierarchy, so command lists nest under their parent stage, making it easy to see which part of a stage is actually costing you.30_12-52-LightgrayCoelacanth.png 610.32 KB
Inventory + Weapons
We've struggled with where the seam between the engine and game code is in s&box.
In GMod the engine had player controller, inventory, weapons, and all the supporting effects and UI around that built in. We added the native player controller in s&box, but weapons and inventory have always been something you had to completely implement yourself.
Well this week we're adding a native inventory and weapon system. This contains all the components you need to provide a working weapon system in your game, including things like muzzle flashes, impact effects, tracers and brass ejection.
Care has been taken to serve a large variety of games with this system. You can derive from and implement a custom version of InventoryComponent to make it do whatever you want while still using the same backbone. The same with BaseWeapon and BaseCarriable.
The idea is that the components should offer 90% of required functionality natively, and then you can add the other 10% on yourself by overriding, if you need to.
Contact Shadows
Rasterized Shadow Maps have a limitation that their detail is only as fine as the resolution of the shadow itself, as you double it's detail, the work needed to be done on the rasterizer is increased 4x.
We want to be able to support fine shadow details everywhere without overblowing the budget, we have implemented Contact Shadows that run in screen-space for every pixel, this fills every gap where there would be discontinuity on shadow maps by whether the shadow map's resolution or it's bias.
This is based on Bend Studio's incredible implementation, all raycasting tests are done in parallel in the GPU and this makes it ridiculously perfomant, taking just 0.00006s to compute on a RTX 3080
Traditional Contact Shadows implementations can have this issue there's discontinuity between the actual geometry and the shadow map, specially on softer shadow maps, the way we do it allows for very fine penumbras that accurately transition
As a bonus, our changes to it allow us to have very nicely detailed view model shadows at no extra cost over the contact shadows pass we already execute.
This implementation on the engine opens the door for light masks support in the engine, allowing you to compute any kind of shadow through compute shaders, eg cloud shadows, RT shadows, etc, backend of this can be applied to normal lights as well but want to iterate slowly.
Static GameObjects
You can now flag entire GameObjects as static
A static GameObject is one that does not move at runtime, allowing us to hint precomputed information about it to improve performance. This is useful for optimizing calculations related to lighting, occlusion, and navigation.
This is a pre-requisite to be able to support Static Shadow Caching, letting you render static objects only once in lights.
🎁 Added
- First-party inventory, weapon, ammo, camera shake, camera modifier, tracer, and scene anchor APIs.
- Targeted Addons so published code can target a parent game package, including a Target Game option in the project wizard.
- An editor MCP server so local AI agents can inspect and drive open projects through discoverable editor tools.
- Screen-space shadows for lights, including support for soft contact shadows and viewmodel shadowing.
- Static GameObjects for static-layer rendering and future static shadow caching.
- A viewport orientation gizmo for quickly orbiting and switching between orthographic axis views.
- Lip sync generation support to the sound editor.
- Mapping texture lock, mesh edge path selection, and refreshed mapping icons.
- Draw count and stride parameters to indirect draw calls.
- A local loopback networking socket for multi-instance testing. Thank you, @dictateurfou!
- `PlayerController.RestoreGrounding()` for restoring grounding after temporarily losing it. Thank you, @2czu!
- A camera ignore tag set to PlayerController camera collision. Thank you, @nixxquality!
- Missing menu binding support for map list context menus. Thank you, @766974616c79!
- Multi-edit support for particle resources. Thank you, @PolEpie!
- Rich text label support for the `style` attribute. Thank you, @kEllieDev!
- Shortcut on tooltip of Play/Stop, pause and eject.
🧼 Improved
- GPU clutter rendering with per-view GPU LOD selection and culling for painted, volume, and procedural instanced models.
- Polygon mesh serialization by storing versioned binary blobs for faster loads, faster saves, smaller files, and larger maps.
- The fur shader with cleaner packing, fewer compiled textures, better color-space handling, and new optional lighting controls.
- The GPU profiler with accurate nested timing, fixed editor frame timing, and clearer scope names.
- Performance API reporting with idle timing, accurate timing accumulation, and higher precision GC pause reporting.
- Terrain rendering by using cull distance for holes and bounds so clipped terrain avoids pixel shader work and keeps early-Z.
- Bloom threshold behavior and made bloom intensity more linear.
- Shader compilation recovery when existing compiled shader data is corrupt or still contains a git-lfs pointer.
- Single-asset addon publishing so code-path files such as stylesheets are included.
- Asset Browser behavior so Find In Asset Browser clears the current search before selecting an asset.
- Scene drag-and-drop for textures, images, and 2D view placement.
- AddressSanitizer builds so they are easier and faster to use when debugging native memory issues.
- Clothing metadata with missing clothing categories.
- Sound previews with playback shortcuts.
- Benchmark timing by moving forced GC out of the measured first frame.
- When entering play mode, carry the current selection to the runtime object.
🪛 Fixed
- ByteStream copies reading pooled buffers after disposal and hardened BytePack against deeply nested payload crashes.
- Occluded sounds briefly playing at full volume when they start.
- Menu boot errors when sound occlusion traces run before surfaces are loaded.
- Nested prefab instances losing data when applying prefab changes.
- Old sprite files loading as white or invalid textures when legacy loop points were present.
- Sprite opacity incorrectly affecting scissor clipping cutoff.
- A Sprite string allocation issue that could scale badly. Thank you, @K3rhos!
- Doors playing their close-finished sound when a game launches. Thank you, @Fitamas!
- Terrain brush size being treated as a radius instead of a diameter. Thank you, @PolEpie!
- Terrain holes rendering black or crashing on AMD hardware.
- Terrain requiring at least one valid splatmap before continuing. Thank you, @766974616c79!
- Viewmodels and game overlays being overwritten by world depth prepass effects.
- Vertex explosions on skinned instancing.
- Shadow receiver depth bias producing bad shadow artifacts and validation issues.
- Several Vulkan validation issues.
- Material editor shader variable duplicates resetting properties when toggling features.
- Movie keyframe merging and reduction edge cases when loading older movie projects.
- GameResource inspectors prompting to save unchanged assets and SpriteInspector not enabling Save for some edits.
- The editor console ignoring its filter after compiling.
- Editor ray casts at non-100% DPI. Thank you, @PolEpie!
- Badge components not updating when their value changes. Thank you, @zxcPandora!
- GameObject transform control margin in the editor inspector. Thank you, @Tripperful!
- DontDestroyOnLoad survivor hierarchy preservation during non-additive scene loads. Thank you, @deadmonstor!
- Pressing Escape in the editor opening the pause menu instead of freeing the cursor.
- Targeted addons not swapping to the hotloaded parent game assembly.
- Radius( 0 ) traces missing everything.
- PlayerController press interactions not searching parent objects for pressables.
- AssetPreviewWidget null reference errors.
- VFX serialized data compatibility for newly versioned data.
- Fix Eject keybind inconsistency.
- AssetBrowser.FocusOnAsset isnt suitable for filter clearing.
🚯 Removed
- Removed obsolete `CameraComponent.ISceneCameraSetup`.
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

Rust Common Ground Patch Notes (2nd July 2026)
Rust's latest patch brings player-run shops, apartment rentals with scrap upkeep, a clan system with shared maps, and major softcore changes including raid windows and accelerated progression.

Subnautica 2 1.1 Patch Notes (8th July 2026)
The Adaptive Measures update lands with the community's most-requested feature: a FOV slider. It also adds land sprinting, overhauls Biomod progression, and fixes performance issues that plagued certain areas.
SCUM Hotfix - 1.3.1.1 Patch Notes (8th July 2026)
Hotfix 1.3.1.1 tackles server stability, inventory mishaps, and weapon bugs that plagued players since June's update.