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.
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
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.
We're releasing yet another title to the platform. This time, it's a suite of card games that you can play alone, or with friends. All games are using new capabilities from the addon system, so you can submit your own community card/board games and play them.
Alongside The Deck, we are also bringing you Breakout. A remake of an old classic game with some twists, It features 3 modes, Classic, Arcade and Weekly challenge. Each has their own leaderboards and ways to play.
We've added an Orientation Gizmo to the top-right of the Viewport. So you can quickly and easily jump in-and-out of 2D/Orthographic views on any axis. (Also slightly modified the View Options button in the top-right to make room for the new Widget)
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.
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.
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.
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.
Rasterized Shadow Maps have a limitation that their detail is only as fine as the resolution of the shadow map 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.
We never handled viewmodels gracefully specially as you shoved it into the wall, now they are handled correctly.
Previously we would draw it as a normal object and clip as you would enter geometry, causing effects like SSR or SSAO to draw over the actual overlay effect, making it look horrible
We're now using a stencil masks on things rendered as overlays like Viewmodels, this separates things graciously and effects that use Depth or Normals are composited properly, even with it's actual depth deeper than the wall.
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.
26.07.08
26.07.08
8 July 2026
🎁 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.
ok, it's not a bad devblog, I'm really pleased with MCP server and the direction it's taking. Any criticism of AI is valid if the game turns out to be rubbish or has a typical claude UI, but when it's a quality game or people actually want to play it, the only criticism comes from those who are jealous or afraid of losing their jobs because of AI. spoiler: people who’ve achieved nothing in life apart from working 12h days let them lose their jobs.
breakout looks so good, I think I'll play it
please ban clicker games from playfund.
like gmod i.e.