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.
Try out our new game on s&box now!

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.
Breakout!

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.
Added support for texturing locking.
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 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.
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.
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.
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.
  • 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`.
trophy 2525
Apr 2021 76 posts
Update 26.07.08 : news/update-26-07-08
trophy 3306
Apr 2026 19 posts
Q29sZFplYW4= Today edited Today
nice j*b
edited:
YAY THANK YOU GARRY, FINALLY I CAN VIBE CODE MY GAMES IN AN OFFICIAL STYLED WAY
trophy 2872
Aug 2022 17 posts
I LOVE ROD AND GRAFIS

trophy 730
Aug 2023 18 posts
mondarins
trophy 2535
Jan 2024 43 posts
S&BOX GAME JAM III WHEN?
trophy 255
Apr 2026 6 posts
 Great update! 🔥 
trophy 2708
Sep 2021 289 posts
 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
trophy 3262
Jul 2022 56 posts
great blog post.
please ban clicker games from playfund.
trophy 1610
Jul 2024 10 posts
Bacterian Today edited Today
Big stuff
edited:
Big stuff
trophy 2835
Sep 2021 2 posts
W, great job
trophy 2335
Feb 2024 67 posts
awesome blog post keep it coming!!!
trophy 3072
Oct 2021 6 posts
Love the weekly updates . Keep em coming we have faith ! 
trophy 20
Apr 2026 1 post
Guys, thank you so much for all your hard work!
trophy 1781
Jul 2022 49 posts
neat
trophy 15041
Aug 2021 43 posts
trophy 9472
May 2026 22 posts
great blog post. please ban clicker games from playfund.
Please do this, we NEED this...
trophy 795
Apr 2025 1 post
does this mean we will be able to use these addons on the game itself when playing solo?
like gmod i.e.
people
Log in to reply
You can't reply if you're not logged in. That would be crazy.