I told someone the other day that it's kind of embarrassing how long it's taken us to get here. That if I was going to make it all from scratch now it'd probably take less than a year. They made the point that that's like a song writer saying if I knew what the song was I could have knocked it out in 5 minutes. I think that's true.
It would have been easy to have taken Garry's Mod and applied it to Source 2. I wasn't happy to do that. I knew we could do more, I knew we would have regretted walking the easy path.
It isn't perfect. It's likely never going to be perfect. At some point we have to say that it's good enough for v1. We know we have work to do. We know we have challenges. We know that we're going to have to find ways to deal better with discovery. We know that we have to deal with people using AI in obvious, low quality ways.
But we're happy for you to join us on our adventure. We hope you enjoy what we have created, that you enjoy what our community has created and that you will consider joining us and becoming a creator so you can fully appreciate the engine on the same level that we do.
It isn't perfect but at this moment in time It's both the worst it will be and the best it has ever been.
Our plan is to continue doing what we were doing. We will release weekly updates. We will listen to the community, we will play, we will develop and we will improve everything. Our roadmap shows a bunch of the bigger things that we're looking forward to improve on.
One of our main focuses is always going to be on how we're serving the community. I got my start in the game industry with Garry's Mod. A lot of our staff got their start in the Garry's Mod community. My proudest moments are when people have told me that Garry's Mod got them into the industry, that they are a game developer now because of that. I want Facepunch to keep doing that. I want to show people how fun and rewarding making games is. I want them to be able to make money from it.
Today, in the hopeful anticipation of finally being in profit, we're going to double the Play Fund. And it's my hope that we can steadily increase it more and more over time.
So more of the same. This is how we work. We release and improve. This is what we did with Garry's Mod, this is what we did with Rust. This is what we're going to do with s&box.
It hasn't been an easy or straight forward journey. It's been long, sometimes confusing, sometimes unrewarding and sometimes a hard slog. But the pain has bought growth. I've seen the team grow in strength, in ability and in confidence. The project has turned from something that at times felt like I was pushing forward myself, to a machine that feels like it has its own velocity.
So to the team all I can say is thanks. Thanks for your dedication. Thanks for sharing and improving on the vision. Thanks for the late nights. Thanks for fixing my shitty code. Thanks for fixing my bugs.
Thank you s&box team for getting us to release, and I'm excited for our future together 💪
26.04.28
26.04.28
28 April 2026
🎁 Added
Linux Dedicated Server
Editor: Selection Sets
Editor: Paste Special
🧼 Improved
Native library loading now happens at runtime instead of at InteropGen, enabling cross-platform binary compatibility
Zio case-insensitive filesystem wrapper for Linux
Offline mode login handling is more resilient, menu no longer throws errors when launched offline
Video encoder now uses libyuv for much faster RGB to YUV conversion, enabling 2K AV1 recording at 60fps
Video export render target now uses MSAA, eliminating dithering artifacts
Video recorder quality improved for scenes with fast-moving objects and camera
Video container format settings now properly passed from managed to native layer
AO upscaler is now pixel-perfect compared to full-res, with proper MSAA support
Slow rotation no longer stutters due to improved per-component Rotation.AlmostEqual precision
Menu layout improved for ultrawide displays with constrained content width and feathered edges
Menu fixes across store CTA positioning, search overlay, server list filters, and various UI components
Batch publisher UX improvements including org handling and completion messages
Component categories reorganized for better discoverability in the editor
Removed unused shadow data from lightbinner, cleaning up for future GPU-driven lighting
Missing undo support to TransformComponentWidget for reset, paste, and toggle operations
Storage settings page no longer takes minutes to scan large download caches. Thank you @Zaddish
🪛 Fixed
StringBuilder race condition that could lead to remote code execution
Two AnimGraph crashes
Crash in FindOrAllocateTransforms during model hot-reload
CResourceSystem crash when reloading symlinked resident resources on Linux
WebM video header being written twice
Odd-size resolutions breaking the AV1 encoder
Inverse scissor box shadow rendering in UI
World panel transformation being applied twice in subpanels and render targets
IsRunningOnHandheld always returning false, causing small UI on Steam Deck and other handhelds
Dedicated server errors when using Steamworks.Friend methods
Focus in 2D editor views incorrectly moving camera toward objects instead of framing them
Rigidbody properties not being reapplied when ModelCollider updates, causing lost gravity scale on resize
Editor exceptions when performing large project structure changes
Client disconnect not triggering when game load fails during handshake
Shorts clothing models clipping with the player body
Menu carousel null reference exception
Menu toggle styles and context menus on game cards
Thanks for the sausage