1. s&box
  2. News

s&box News

Update 26.04.08

[p]A new update has been released, you can view the full changes on our blog post.[/p][p]https://sbox.game/news/update-26-04-08[/p][p][/p][p]Here's some highlights from the blog.[/p][h3][/h3][h3]New Games Menu[/h3][p] [/p][h3]Sandbox: Open Source[/h3][p][/p][p]The Sandbox game itself is now open-source, people can contribute or take the code for their own games.[/p][p][/p][h3]Sandbox: Emitters[/h3][h3][/h3][p][/p][h3]Sandbox: Achievements[/h3][p][/p][p][/p][h3]Changelog[/h3][p]🎁 Added[/p]
  • [p]Doo, a simpler visual scripting system for wiring up component events β€” designed as a friendlier alternative to ActionGraph for common use cases[/p]
  • [p]Mesh cable tool in the mesh editor for creating cables, working similarly to Hammer[/p]
  • [p]New games dashboard with a rotating carousel and redesigned game cards[/p]
  • [p]`lang.showkeys` cvar and editor toggle to display localisation keys instead of translated text for debugging[/p]
  • [p]CSS `overflow: clip` and `overflow: clip-whole` properties for UI element clipping[/p]
  • [p]CSS `background-playback-state` property to pause video backgrounds[/p]
  • [p]`\[ShowIf]` and `\[HideIf]` attributes now support null checks[/p]
  • [p]Center option added to the pivot list in mapping tools[/p]
  • [p]`IFormattable` whitelisted for use in the sandbox. Thank you @RumBugen![/p]
[p]🧼 Improved[/p]
  • [p]Texture editor moved into the inspector - Thank you @boxrocket6803![/p]
  • [p]Cascaded shadow map exclusion culling β€” shadows no longer render beyond each cascade boundary and objects from previous cascades are no longer re-rendered, significantly improving shadow performance[/p]
  • [p]Networking thread now processes messages at the same tick rate as the main thread[/p]
  • [p]Particle sprite GPU upload performance β€” buffer uploads moved into valid Graphics.Scope to avoid unnecessary render context creation[/p]
  • [p]Network packet byte arrays are now pooled in DecodeStream, reducing GC pressure for large compressed payloads[/p]
  • [p]Fixed a Steam buffer GCHandle leak where N-1 handles would leak per broadcast packet; replaced with a cheaper memcpy approach[/p]
  • [p]`Package.MountAsync` now supports mounting specific package revisions, allowing games to pin map versions[/p]
  • [p]`LoadingScreen.IsVisible` is no longer overridden every frame, allowing games to manually control loading screen visibility[/p]
  • [p]`Game.ChangeScene` now shows a loading screen for all clients instead of just the host[/p]
  • [p]Engine overlays remain visible during loading states[/p]
  • [p]ScreenPanel `Scale` property now works when Auto Scale is enabled, and `Opacity` now correctly affects ScreenPanels[/p]
  • [p]Undo support for WrapTextureToSelection and WrapTexture operations in the mapping tools[/p]
  • [p]Pause modal now uses the lighter HtmlPanel instead of a full WebPanel[/p]
  • [p]Launcher window geometry is saved when auto-closing[/p]
  • [p]PATH changes are now a no-op on non-Windows platforms. Thank you @MrSoup678![/p]
[p]πŸͺ› Fixed[/p]
  • [p]Disabling shadows on a directional light now works correctly[/p]
  • [p]Shader compiler shutdown crashes resolved by properly draining the material system and preventing Steam callbacks after managed shutdown[/p]
  • [p]Exceeding the maximum light count no longer triggers assertions or causes directional light flickering[/p]
  • [p]`GetPixels` arguments are now validated to prevent negative values, fixing a security vulnerability[/p]
  • [p]Referencing a deleted prefab no longer crashes β€” the editor shows a warning and preserves instance data for recovery[/p]
  • [p]Creating a prefab from a GameObject now correctly restores the object's position[/p]
  • [p]Reverting changes on a nested prefab instance no longer wipes all outermost overrides[/p]
  • [p]Applying changes to a nested prefab no longer regenerates all GUIDs[/p]
  • [p]Fixed cyclical library references caused by built-in projects referencing libraries[/p]
  • [p]Fixed a null `AssetTypeAttribute.Name` NRE that silently shut down the GameInstance on editor startup[/p]
  • [p]Game loading is now properly cancelled on disconnect, preventing background loads from continuing[/p]
  • [p]Fixed filesystem unmount exceptions when a load is cancelled[/p]
  • [p]Prop gibs now properly inherit velocity when spawned in a batch group[/p]
  • [p]`IgnoreSingleObject` trace now correctly checks both rigidbody and collider GameObjects[/p]
  • [p]Glass shader tint now blends correctly through multiple layers using premultiplied alpha blending. Thank you @Infiland![/p]
  • [p]`backdrop-filter: blur` no longer generates excessive mipmap levels Thank you @Infiland![/p]
  • [p]Toast notifications (e.g. achievements) no longer persist indefinitely[/p]
  • [p]Post-game info popup is no longer dismissed on click, so its actions can be used. Thank you @RumBugen![/p]
  • [p]Fixed human models having deformed hands with the "holditem" holdtype[/p]
  • [p]Fixed TextRenderer alignment not updating on re-enable[/p]
  • [p]Fixed possible NRE in `Button.Text` setter[/p]
  • [p]Fixed possible NRE in `UpdateMusic`[/p]

Community Cosmetics - April

[p]Grab yourself these Community-made cosmetics! Mob Boss Pinstripe Trousers, Waistcoat and Shoes, Golden Earrings, Pirate Hook, SWAG Chain, Bandana Hair and Bag Mask![/p][p][/p][p][/p][p]Sale ends May 1st 2026, after which it'll only be available on the Community Marketplace. Sales proceeds go towards the cosmetic item's creators, the playfund and engine development.[/p][p][/p][p]Playfund data is public. Learn more about the playfund and track how much money we pay out to s&box cosmetics and game creators here: [/p][p][/p][p]https://sbox.game/metrics/finance[/p][p][/p]

Update 26.04.01

[p]A new update has been released, you can view the full changes on our blog post.[/p][p]https://sbox.game/news/update-26-04-01[/p][p][/p][p][/p][p][/p][p]Here's some highlights from the blog.[/p][h3][/h3][h3]Sandbox: Vehicle Camera[/h3][p]We overhauled the third person camera to be a lot smoother, so being in a vehicle feels great.[/p][p][/p][p][/p][h3]Sandbox: Hoverballs[/h3][p]You can now stick hoverballs on your contraptions to fly around![/p][p][/p][p][/p][h3]Sandbox: Saves[/h3][p]There are now Saves in Sandbox so you can save and load entire play sessions. These work in singleplayer or multiplayer, and will keep track of the map, players, all props and entities, ect.[/p][p][/p][p][/p][h3]Shadow Quality Settings[/h3][p]We had no ways to configure the performance settings of shadows, now we have a shit ton of convars to control max shadows, max number of cascades, shadow filter quality, max resolutions, and more.. These are globally configured in the graphics settings menu now too.[/p][p][/p][p][/p][h3]Non-QWERTY Support[/h3][p]We've made our input system use scan codes now, which standardizes input keys based on position instead of name. Meaning when a game binds something to the W key, if you're an AZERTY keyboard that will be bound to the Z key automatically.[/p][p][/p][p][/p][h3]Summary[/h3][p]Everything is continuing to come together, we've been playing Sandbox everyday, it's starting to feel very well rounded. Building contraptions, messing around, taking screenshots for our Steam page.[/p][p][/p][p]We tried to quietly announce our release date β€” 28th April, but it seems everyone has got excited.

Before then we'll be revoking anyone who hasn't played a lot recently, developed games or bought skins.
And we'll then go on sale for $20.Β 

It's AprilΒ  β€” we've got the month left to really beat out the worst of the rough edges. Don't expect too much fanfare in the upcoming updates, we're doing the boring stuff before we can get to the fun stuff again.[/p][p][/p][h3]Changelog[/h3][p]🎁 Added[/p]
  • [p]New C# shadow mapper, fully replacing Source 2's native shadow mapper[/p]
  • [p]Bindless per-light shadow maps[/p]
  • [p]Directional light configurable cascade counts[/p]
  • [p]Per-light shadow hardness[/p]
  • [p]User quality settings for shadows[/p]
  • [p]ModelDoc hulls from meshes now supports per-mesh and per-element hull generation, allowing better collision when saving map meshes with mixed hull and mesh collision types[/p]
  • [p]HtmlPanel now supports ordered and unordered lists[/p]
  • [p]Footstep sounds for glass surfaces[/p]
  • [p]Mesh element selection now supports undo/redo in the editor[/p]
  • [p]New hub page layout with smarter game cards showing upvotes/downvotes and active players, condensed friend activity grouped by game, and achievements sorted by completion percentage[/p]
  • [p]Movie recordings can now be imported from any game into a blank project, and games can disable demo recording on clients[/p]
[p]🧼 Improved[/p]
  • [p]Input system now uses scan codes for gameplay input, making the game usable on non-QWERTY keyboard layouts (e.g. AZERTY) without rebinding β€” key glyphs are translated to local key names[/p]
  • [p]Vulkan per-thread data rewritten with a dynamic slot pool that bounds memory usage and eliminates potential out-of-bounds access from unbounded thread indices[/p]
  • [p]Pixel shaders are now stripped for opaque objects during shadow and depth passes, reducing GPU work[/p]
  • [p]Physics hull creation is more robust, routing through CQuickHullBuilder to avoid potential infinite loops with coplanar points and adding support for planar geometry[/p]
  • [p]Network broadcast now encodes the wire payload once instead of per-connection, and large messages are compressed before chunking β€” client decompression is ~3.4x faster[/p]
  • [p]Network serialization omits null values, reducing JSON processing overhead and improving compression/decompression speed[/p]
  • [p]Sprite system optimized to perform a single GPU upload instead of one per group, eliminating upload overhead[/p]
  • [p]RadiusDamage batches and parallelizes LOS traces with reduced allocations, improving heavy explosion processing from ~10s to ~2s[/p]
  • [p]Heartbeat ping/pong switched to unreliable channel, eliminating head-of-line blocking under packet loss[/p]
  • [p]Movie recording performance improved by avoiding reflection in hot paths, reducing per-frame recording cost[/p]
[p]πŸͺ› Fixed[/p]
  • [p]Potential infinite loop in PolygonMesh.Rebuild with fractional/coplanar vertex positions[/p]
  • [p]Memory leak in DeltaSnapshotSystem where pooled snapshot IDs were not cleared before returning to the pool[/p]
  • [p]OutOfRangeException in Rigidbody when Bodies and BodyTransforms sync lists arrive independently[/p]
  • [p]"Lobby Disbanded" spam, lingering socket, and stuck loading screen when host disconnects mid-join[/p]
  • [p]Modals not closing when joining a game, server, or lobby[/p]
  • [p]Lingering error toast popups not dismissing across game/menu context switches[/p]
  • [p]Atmosphere sky shader not using the new single sunlight path[/p]
  • [p]IgnoreGameObjectHierarchy not applying to child objects[/p]
  • [p]Client hotload not clearing reflection type cache, causing errors after server-side code changes[/p]
  • [p]Damage falloff being inverted in RadiusDamage[/p]
  • [p]Movie recording of TextRenderer, NaN rotations, and target creation edge cases[/p]
[p]🚯 Removed[/p]
  • [p]Deprecated OnDirty, MakeDirty, and OnPropertyDirty in favor of field-backed properties[/p]

Easter Outfit - Now Available For A Limited Time

[p][/p][p][/p][p]Make the most of Easter with the Easter Bunny Hat and Easter Bunny Nose, perfect for sniffing out easter eggs![/p][p][/p][p]These items are only available in the store until 13th April 2026, after which it'll only be available on the Community Marketplace.[/p]

Facepunch signed a license with Valve to allow standalone releases from s&box

The spiritual successor to Garry’s Mod based on Valve's Source 2 is growing up, as you'll be able to create full standalone games with it.

Read the full article here: https://www.gamingonlinux.com/2026/03/facepunch-signed-a-license-with-valve-to-allow-standalone-releases-from-sandbox/