1. s&box
  2. News
  3. Update 26.04.08

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]