s&box
Steam News 4 March 20262mo ago

Update 26.03.04

A new update has been released, you can view the full changes on our blog post. https://sbox.game/news/update-26-03-04 Here's some highlights from the blog. Clutter A new tool has been added to procedurally place object…

Update log

Full s&box update

The complete published notes, normalized for clean reading and source attribution.

Extracted changes

0 fixes8 additions12 changes0 removals
  • Gameplay
  • Workshop
  • Performance
  • UI and audio
addedA new update has been released, you can view the full changes on our blog post.
addedClutterA new tool has been added to procedurally place objects in your scenes. It is completely independent from the terrain system and supports both prefabs and instanced models.
changedUI Multithreaded RenderingUI could only render on the main thread - now it can render on any thread thanks to command lists. This means whilst your game is rendering the 3D world it can also start rendering the UI layers.
changedUI Multithreaded RenderingYou'll notice a performance boost mostly on low-mid range CPUs and in games with a considerable amount of UI and 3D at the same time.
changedUI Multithreaded RenderingIt can be toggled with the convar r_ui_multithreaded to measure impact.
changedProfiler Overlay ImprovementsWe reorganized the timings so they now more accurately break down a the time needed to render a frame. Garbage collection pauses are now also tracked as individual timing, and subtracted from other timing scopes.

A new update has been released, you can view the full changes on our blog post.

https://sbox.game/news/update-26-03-04

Here's some highlights from the blog.

Clutter

A new tool has been added to procedurally place objects in your scenes. It is completely independent from the terrain system and supports both prefabs and instanced models.

It can be used to automate tasks such as procedurally generating landscapes, painting enemies, or even acting as a world grid system.

Menu Polish

We're polishing the menu ready for release, nothing is significantly different but we're making it all look pretty.

The depressing dark foggy scene is gone and replaced with Flatgrass. The header bar has been spaced out and made transparent. And the latest update is display on the front page. We'll keep polishing stuff bit by bit each week.

UI Multithreaded Rendering

UI could only render on the main thread - now it can render on any thread thanks to command lists. This means whilst your game is rendering the 3D world it can also start rendering the UI layers.

You'll notice a performance boost mostly on low-mid range CPUs and in games with a considerable amount of UI and 3D at the same time.

It can be toggled with the convar r_ui_multithreaded to measure impact.

Profiler Overlay Improvements

We reorganized the timings so they now more accurately break down a the time needed to render a frame. Garbage collection pauses are now also tracked as individual timing, and subtracted from other timing scopes.

We also improved the visuals for various overlays with significant community contributions from @darkfated

Sandbox: New Inventory

The inventory got rebuilt to be slot based. You can drag and drop stuff from the spawnmenu right into your inventory. It's kinda cool.

Sandbox: UI Improvements

The scoreboard and HUD got a new lick of paint. You can also mute people.

Sandbox: Easy Weld Rotate

Brought up the weld tool to gmod parity by adding the ability to rotate after easy welding.

Sandbox: Physgun Screen

We also added a screen to the physgun that spits out info based on what you're doing with it.

Changelog

🎁 Added

  • Clutter system — the clutter/scatter tool and system has been moved in-engine

  • CSS outline property — outline draws outside a panel's border without affecting layout, matching web standards

  • Multithreaded UI rendering — UI can now render off the main thread

  • New main menu front page — redesigned around flatgrass, refreshed navbar and footer

  • ContentBlock row scroll buttons — left/right scroll arrows appear on hover as an alternative to drag-scrolling

  • DepthTextureRef on RenderTargetHandle — lets you access the depth buffer of a render target in command lists, not just the colour buffer

  • Improved UI drag & drop — new OnDragEnter, OnDragLeave, and OnDrop panel events matching standard web behaviour

  • AdvancedDropdown — ComponentTypeSelector abstracted into a reusable dropdown that supports foldered menus

  • SerializedProperty.GetCustomizable() — creates a customisable copy of a property with an overridable display name and other metadata

  • MemberDescription.DeclaringType — exposes the type that declared the member

  • Json.Serialize / Json.Deserialize — low-level methods plus object/Type overloads for use with IJsonConvert

  • Package.MountAsync() — public API equivalent of the internal PackageManager.InstallAsync

  • Json.Patch, Json.CalculateDifferences, Json.ApplyPatch and related types are now public, along with GameObject.DiffObjectDefinitions and Scene.SerializeProperties()

  • TestAppSystem exposed to user unit test projects, replacing the old Application.InitUnitTest flow

  • Vector2Int and Vector3Int added to TryToType

  • Mirror tool now supports mirroring any selected object type, not just meshes

🧼 Improved

  • UI rendering now uses command lists — panels only rebuild their command lists when something actually changes, reducing per-frame

Source

Steam News / 4 March 2026

Open original