Thank you for everyone that has helped us during this period - the developer preview is now closed!

The developer preview has been invaluable to the development of s&box, putting the engine in front of it's core audience from day 1 - you guys telling us what you love and what is shit has turned the engine into what it is today.

We'll be open again on Steam on the 28th April for $20.
store.steampowered.com
s&box on Steam
Our spiritual successor to Garry

Out of 800,000 people who joined the developer preview, 40,000 get to keep it and the rest have been revoked.

Who got to keep it:
  • Developers who have published games people have played
  • Anyone who has purchased any cosmetics
  • Anyone who has played a good amount and actually opened the game this year
We're doing this in batches, making sure it's right, it might take a short while to complete.
I've merged the UI batcher, which means UI will render much much faster now.

You can expect major performance improvements in your user interfaces(which is almost every game) with some users reporting up to 54% more FPS while on the menu.

Batching

Previously we would render each panel individually as we traversed the DOM. The GPU would paint each individually which worked fine for a while. But as complexity grew, the number of individual draw that your GPU would execute would affect performances.

We can now, in the best case scenario, draw everything all at once.

Discovery Page

Our discover page went down from 1080+ draw calls to only 5.

This is what your GPU was doing before. Each line is a draw call.
And this is after. 
Here is a video replaying each draw one by one with a before and after.

Other pages

The other pages of the menu are drawn in a single call, which unfortunately doesn't make for a very exciting video as its drawn in a single step.

Overall, this was a much needed improvement as the complexity of games and user interfaces grew. We plan on working on this a bit more to optimize other aspect of our UI pipeline.




We've made it easier to search by putting a nicely accessible search bar in the middle of the navbar:
This is pretty basic, and we'll improve it over time - but we're hoping it makes it easier to find the games you want to play.
Our floating point serialization had a precision bug that caused values to appear changed even when they hadn't been touched, leading to noisy git diffs.
This is now fixed and you should no longer see large unexpected diffs like this one in your scenes or prefabs.
This week we made a bunch of improvements to prefab editing.
  • Faster: Less memory allocation and wasted work when editing prefabs.
  • Cleaner diffs: Nested prefab operations no longer regenerate all GUIDs.
  • Missing prefabs: instances with deleted prefab files now show as "broken" instead of throwing an error;
    data is restoreed if the prefab file comes back.
  • Bug fixes: Reverting nested prefabs no longer wipes parent overrides; creating a prefab from a GameObject correctly restores positions.



We've added a tool that lets you convert a model into a map mesh.
Add DeferGeneration property to skip navmesh generation during scene load, allowing tiles to be generated and unloaded on demand at runtime.

New public API:

// Skip tile generation on load
bool NavMesh.DeferGeneration

// Request tile generation (fire and forget)
void NavMesh.RequestTileGeneration( Vector3 )
void NavMesh.RequestTilesGeneration( BBox )

// Remove tiles from the navmesh
void NavMesh.UnloadTile( Vector3 )
void NavMesh.UnloadTiles( BBox )

Ambient Occlusion is currently the biggest bottleneck in low end systems.

We shipped a few optimizations to SSAO, it's using Hilbert Tree instead of Blue Noise, this allows us to use less brute forced samples to resolve the same perceptual result.

On top of that we are using Float16 logic instead of Float32 on it now, which should have a considerable speedup in some GPU families.

There's more to do with this but it's better to ship it in small, quick iterations, being able to use proper Motion Vectors and a good bilateral upsampler should reduce the need to do brute forcing greatly.
We've added a parallel / upright joint, so you can keep objects upright reliably.
As an added bonus, you can also link two objects together and they'll stay parallel.


The documentation has been getting a lot of love, we have a lot of great content on there but the discoverability and flow was non obvious. I've been rearranging it all, polishing up the Getting Started, adding more top level sections as well as "hub" pages. There's been a lot of community contributions already too since we open-sourced it last week!
For a long while now, if a dedicated server networked a GameObject with a Texture reference, it was nulled out and never sent. This is because servers don't load texture data, which makes sense. But because of that we were never registering them in our managed engine. 

So we're registering them now -- this doesn't mean you can start reading texture data on the server, you can't. However, networking these resources will work as intended now.
It's the end of an era with the developer preview closing - 5 years ago we got Source 2 and we almost immediately opened up to developers, letting them try out the toolset from when there was very little, so we could see what was great and what wasn't.

This feedback loop was vital to get to where we are, seeing people want to push the boundaries of Source 2 further and further until we ended up rewriting half the engine from entities into the convenient scene system we all love today.

A huge thank you to everyone in the community who've participated along all the way, and helped define what s&box is today.

Everything we do is to provide opportunities for the next generation of developers, be it with our Play Fund, cosmetic creators, open sourcing, or exporting standalone games royalty-free to Steam.

We're only a couple of weeks away now, we're running out of loose ends to tie up, we're pretty confident now, we know what we're offering and what we're not offering, there's no over promising, we're excited to cross the line and start a new cycle of development, and continue to evolve alongside everyone.
26.04.15
26.04.15
15 April 2026
🎁 Added
  • Added `UprightJoint`, which constrains objects to remain upright, useful for characters, vehicles, and other physics objects that should resist tipping. Also has a parallel mode when targeting another body.
  • Added on-demand navmesh tile generation API — new `NavMesh.DeferGeneration`, `NavMesh.RequestTileGeneration`, `NavMesh.RequestTilesGeneration`, `NavMesh.UnloadTile`, and `NavMesh.UnloadTiles` APIs for large open-world games that need to generate and unload navmesh tiles at runtime rather than all at once on load.
  • Added a search bar to the main menu navbar for quickly finding games and content.
  • Added "Convert to Mesh" in the mapping editor — converts a placed model to an editable scene mesh, similar to Hammer's workflow.
  • Added `movie` command support for recording Light Components — light brightness and colour changes are now captured in recordings.
🧼 Improved
  • Rewrote the UI renderer with a batching system that groups panels into a single draw call where possible, yielding massive performance improvements — up to ~4× faster in benchmarks (40fps → 150fps). Also introduces a new `Panel.Draw.XX` API for custom panels to emit drawing commands directly.
  • Improved ambient occlusion performance with various shader and sampling optimisations.
  • Improved hotspot tool in the mapping editor — now uses the active material, supports mirror horizontal/vertical, and adds a per-face apply button.
  • Improved prefab editor performance when handling large prefabs — faster diffing and reduced initial load times.
  • Improved serialization accuracy for prefab and scene files — positions, rotations, and transforms no longer silently drift between saves, eliminating unnecessary prefab instance noise and large git diffs. Switched to lossless `G9` float format.
  • Improved `WildcardMatch` performance by replacing expensive regex with `MatchesSimpleExpression`.
  • Improved shadow mapper hot path by eliminating array, `IEnumerable`, and LINQ allocations.
  • Improved `SetObjectBounds` with minor overhead reductions.
  • New s&box installs now default to MSAA 4× anti-aliasing on first launch.
  • "Make Editable Mesh" in the mapping editor is now undoable.
🪛 Fixed
  • Fixed a VRAM leak where shadow map textures were never returned to the pool when a `SceneLight` was destroyed — in scenes with many lights this would fill VRAM quickly.
  • Fixed a transform equality regression where `Rotation.AlmostEqual`'s default threshold was too loose (~1.62°), causing `SetLocalTransform` to silently drop small updates and producing jittery camera movement.
  • Fixed `Rotation.AlmostEqual` incorrectly returning `false` for two default (zero-length) quaternions.
  • Fixed cascade shadow exclusion culling overculling objects at the edge of shadow cascade spheres.
  • Fixed managed textures (prefab-embedded textures) never being present on headless/dedicated servers, which caused missing icons for inventory items, health, ammo, etc.
  • Fixed `ScenePanel` being completely reset on hotload — panels that manage their own `Scene` now survive hotloads intact.
  • Fixed the `TextEntry` caret becoming invisible after the move to command lists.
  • Fixed a ~300ms stutter when first opening the settings panel.
  • Fixed `MaterialAccessor` retaining stale material overrides after deserializing new data, causing phantom overrides to persist after prefab instance reverts.
  • Fixed `PolygonMesh` writing world-space properties into JSON, which broke prefab diffing.
  • Fixed blob IDs regenerating on every save, producing unnecessary git noise.
  • Fixed light probe regression caused by an incorrect call to a stubbed `RenderDevice->IsUsingGraphics()` on headless servers.
  • Fixed modeldoc wireframe rendering.
  • Fixed crash when accessing `MusicPlayer.Title` with an invalid URL.
  • Fixed assert triggered on `MusicPlayer` disposal.
  • Fixed null `TargetComponent` crash in the Doo invoke block inspector.
  • Fixed `SimplePicker` showing cloud assets when searching in the "Local Assets" tab.
  • Fixed package modal portal layout regression.
  • Fixed several Linux server path and library casing issues that prevented the dedicated server from starting.
  • Restored center pivot behaviour in object selection mode.
trophy 1550
Apr 2021 195 posts
Update 25.04.15 : news/update-25-04-15
trophy 5156
May 2023 59 posts
Deliciousness
trophy 430
Aug 2023 3 posts
Cool
trophy 1105
Aug 2022 144 posts
Got some nice performance boosts, thanks FP ^_^
trophy 80
Jun 2025 5 posts
No problem! It was an honor to shape S&box the way it is today.

trophy 830
Apr 2021 22 posts
End of an era, also, you used 25, instead of 26
trophy 5
Oct 2021 1 post
o7 goodbye beta
trophy 285
Jan 2023 15 posts
Hopefully we will get lots of cool games after the release with how many devs will be using s&box!
trophy 1450
Jan 2024 41 posts
Hard to think of how much effort you've put into this project. It's been an amazing time watching it grow and change in front of your eyes...
But personally the main issue to me now is the lack of good game modes... It would've been nice if you did a pre-release / post-release jam...
trophy 2013
Sep 2021 219 posts
trophy 1550
Apr 2021 195 posts
Hard to think of how much effort you've put into this project. It's been an amazing time watching it grow and change in front of your eyes... But personally the main issue to me now is the lack of good game modes... It would've been nice if you did a pre-release / post-release jam...
We'll do a post release game jam ☺️
trophy 220
Jul 2023 1 post
See y'all on the other side 
trophy 1385
Feb 2024 54 posts
crazy to finally see s&box inching closer and closer to release!!! ive been keeping an eye since day 1!!!
trophy 0
Apr 2026 1 post
Cant wait to start making games. Really loved this engine when tried out development on s&box during testing.

trophy 2235
Dec 2022 14 posts
thanks
trophy 585
Mar 2026 1 post
bro fixing draw calls meanwhile we got 100% usage in the menu 😭 DOES HE KNOW 👉⭕ 💀💀
trophy 0
Aug 2021 1 post
I literally just started toying with this game again after three years and wanted to understand the actual toolset behind it, what do you mean by not "playing enough"?

Clarify, please.
trophy 220
Jan 2026 1 post
Is there a way to retroactively readd developer's access? I have over 124 hours and was looking forward to having a demo ready around release but now I don't have access.



trophy 205
Sep 2022 1 post
terry approves of this update
trophy 1150
Oct 2023 5 posts
cant wait to see players join the S&box trading hub on release im so excited to share what we've been cooking <3 
trophy 1495
Jul 2022 103 posts
Massive FPS increase on the UI part, went from 100 FPS to 400+ in some cases
trophy 165
Feb 2024 1 post
Грустно конечно, что забрали доступ. Обнова офигенная. Хоть я и не наиграл даже сотни часов (вообще почти не отыграл, так как по сути только не давно узнал что оно активно разрабатывается (доступ дали капец как давно, но старый комп кончился, а на новом мне стало не до него)) Буду непременно ждать видосов на тему этого интересного игрового "движка".  Больше всего запомнилась игрулька с боксом (хз что за "плэйс" был, щас то доступа уже нету, явно была ранняя демка) и данжнкроулер. В него я бы и отдельно поиграл. Слыша про выпуск игр отдельно от S&box надеюсь что юридические приколы будут улажены и такой классный инструмент будет очень доступен для инди-разрабов. Желаю хорошего выпуска!
trophy 250
Sep 2023 1 post
I think i got to keep my copy. im so happy thanks!
trophy 320
Sep 2021 12 posts
After so many years... You've been waiting since 2018?

trophy 20
Mar 2026 3 posts
Thanks
trophy 570
Jul 2023 2 posts
Incroyable !
trophy 320
Sep 2021 12 posts
trophy 220
Apr 2026 1 post
Do those who still have access get to keep the game forever or do we pay when the full release is out?
trophy 230
Jan 2024 1 post
welcome new s&box era!!
people
Log in to reply
You can't reply if you're not logged in. That would be crazy.