Our official Sandbox Mode is now live. It's still very much a work in progress, we're iterating on it, but it gives a good idea of what it's going to be.

Workshop Models

You don't have to download and install models. You can spawn them straight from the cloud. This sounds horrible when you first hear it, like it's going to be a 3 minute wait to spawn a model.. but it's not. We've gone to great pains to make sure everything downloads as fast as possible, and in reality it's usually less than a couple of seconds.

Mounts

We have a mount system in s&box that no-one knows about yet. Basically you can mount games and spawn their assets. We only ship with support for Quake at the moment. If you have quake installed on Steam you'll be able to spawn Quake models. This is a system that people can write their own mounts to support - so it's infinitely extendable.

Multiplayer

We have a few of the basic tools in game, with the familiar UI. They support things like undo and multiplayer - as you'd expect.. We have more to add, and more things we want to explore - but the important thing it's a working system.

Next Steps

Now the baseline is done it's time to start exploring some of the harder things. I want it so you can spawn weapons, tools, vehicles and npcs in the same way that you can spawn props, from the cloud without addons. I'd like to find an elegant way to do it for tools too. There's saving duplications and saved games too.
Our timeline-based sequencer is now built into the S&box editor! You can use it to direct cutscenes, edit trailers, and choreograph moving obstacles in your scenes.

Included is a keyframe editor for designing simple animations, and a motion editor for more detailed edits.

Movies can reference each other as sequences, making it easy to organise and edit complex projects with many actors and takes.
Use the recording feature to capture gameplay, or to manually puppet characters in your cutscenes.

We've written up guides for how to use each feature, check them out here:

Movie Maker Documentation

Next steps will be to add IK controls to make animating characters much more intuitive, adding a way to export your movies to video files, and thinking about how movies can trigger game events from the timeline.
We've changed the way tools work inside the editor. Rather than having a horizontal bar of controls that persist throughout the whole editor, we've moved tool modes into the scene viewport, and made it so that each tool has subtools - in the same way that applications like Blender work.

We're doing this because:
  • It gives us more flexibility in the future when it comes to the scene editor
  • We'll be able to make changes to things like scene mesh editing so that they function more closely to Hammer. 
  • Moving the controls into the viewport puts them closer to where you're going to use them
We have more plans to make our editor experience great; we're going to continue evolving it over time based on feedback, and we're working on things that make our editor behave more like modern game engine editors:
  • Ejecting while playing
  • Togglable Asset Browser drawers
  • Refined menus for project, account, notifications, etc
We've also changed how the hierarchy looks, and refined various different layouts and widget appearances:
We're introducing a long-requested feature that allows developers to run projects on dedicated servers with secure code hidden from clients. You can now wrap code in #if SERVER blocks to ensure it only runs on the server: 
protected override void OnUpdate()
{
#if SERVER
  Log.Info( $"This is a server update!" );
#else
  Log.Info( $"This is a client update!" );
#endif
}
 Additionally, any code file ending with .Server.cs will automatically be excluded.

Read more on our docs.
We needed more ways to help debug networking performance, so I've added a network graph. In addition to that, I've improved the existing message stats overlay which was previously accessed by a console command. Both of these are now togglable by the F2 console in-game.




We've added some more default surface types with new built in impact decals.
We have multiple Vector structs, and each were weirdly unique from one another. Now they all share the same members/functions you'd expect to see for your average 2D/3D/Matrix operations.

Vector2.Up, Vector2.Down, Vector2.Left, and Vector2.Right have also been reconfigured to follow the 2D graphics standard:
  • Right is +X, Left is -X
  • Down is +Y, Up is -Y
Now you can actually use Vector2.Up or Vector2.Right in your UI/razor code/anything drawn in screen-space and not have to worry about slapping a negative at the front.

For a full list of all Vector-related changes, see the "Improved" changelog at the bottom of the post.
It wasn't possible to define a SamplerState from C# which forced users to create workarounds. You can now define one and use the Attributes API to pass it to your shader. This is also available on the CommandList API.

Shader
SamplerState mySampler < Attribute( "mySampler" ); >;
C#
var anisotropicSampler = new SamplerState
{
    Filter = FilterMode.Anisotropic,
    AddressU = AddressMode.Wrap,
    AddressV = AddressMode.Wrap,
    AddressW = AddressMode.Clamp,
    MipLodBias = 0.0f,
    MaxAnisotropy = 16
};


var pointSampler = sampler with { Filter = FilterMode.Point };

Graphics.Attributes.Set( "mySampler", pointSampler);
Sam and I iterated on the LineRenderer this month. Adding PBR material support and a new Face Mode called Cylinder, which outputs 3D geometry for the line.

When used in conjunction you will be able to draw realistic looking ropes and cables.
Ragdolls are now fully networked, these are simulated on the host and their transforms networked over.
This also works for kinematic ragdolls.
Made some changes to the Hotspot Editor to make it a lot more friendlier to use:
  • Added "Grid Size" option, shown in the Properties window when no Rectangle is selected. Allows you to enter exact grid sizes that aren't powers of 2.
  • Can now hold CTRL or SHIFT to multi-select rectangles and edit multiple at once.
  • Position and Size properties are now shown when any Rectangle(s) are selected.
  • Added "Normalized Values" option to the Toolbar, when enabled, the normalized Min and Max properties are shown in place of Position and Size.
  • Grid Size and Material Reference are now serialized so the editor loads the exact same way it was left.
  • Added Context Menu when Right Clicking on a Rectangle, contains option to delete selected Rectangle(s)
  • Can now click-and-drag Rectangle(s) to move then, and drag from the corners/edges to resize.
The audio system now listens to sounds based on which scene they're played from, this fixed issues with scene panels stomping sounds played from the main scene. As a bonus, this allows scenes to have multiple audio listeners.
When doing physics traces, it's useful to see visually where and how traces are happening. Debug overlay can now take a trace result to easily visualize them.
This month we're releasing the Wizard Outfit set, available for a limited time. After August 15th we'll remove it from sale and won't ever sell it again.

In this set, we've released the Wizard Hat, Wizard Beard, Wizard Trousers and Wizard Gown! You can purchase these items in game now, via the Store tab on the main menu.
We didn't have a good water shader, so I made one. It isn't great, but first you make it exist, and then you make it better. There are a bunch of built-in water materials that we'll keep working on.
It feels like we have a handle on everything now. Before it felt like some stuff was lagging behind, or standing still. But now all aspects of the engine improve every month. I am really happy with our team here right now.

Shipping movie maker is a milestone for us. It's important that people can make animations, cutscenes and machinima in s&box. Pair that with the ability to mount other games, and I think we have something special.

Sandbox Mode is good for me. It's forcing some real dogfooding, which is forcing some real decisions to be made about how things work. That's good - because no-one wants to deal with this shit.

This month we sent out the June 2025 payments. A couple of people earned over $4,000 from their games and maps, and in total we paid out just under $30,000.
August Update
0.5.0
1 July 2025
🎁 Added
  • MovieMaker
  • Serverside Code
  • Wizard Outfit
  • Mounts API
  • Water Shader
  • LineRenderer: PBR Material support
  • LineRenderer: Face Mode Cylinder
  • SamplerStates API
  • Renderer.Attributes - set attributes are now deferred when the renderer is disabled and will persist when re-enabled
  • ModelPhysics GameObjects
  • Ragdoll Networking
  • Network Graph Overlay
  • Rigidbody networking kinematic proxy
  • GameObject.Network.RootGameObject
  • NetworkTable<T> and NetworkTransforms
  • NetworkSpawn accepts options to specifcy NetworkOrphaned and OwnerTransfer settings
  • Component.DontExecuteOnServer
  • Game.ChangeScene
  • Sequence Animation Events
  • SprintJoint.RestLength
  • DebugOverlay.Trace
  • TextRenderer.VerticalAlignment - the vertical alignment of the rendered text.
  • ImageFileGenerator.Cropping (useful for importing spritesheets or images with whitespace)
  • Perlin and Simplex noise types to RandomTextureGenerator
  • Offset, Scale and Octaves properties to RandomTextureGenerator (only for Perlin and Simplex noise types)
  • Bitmap.Tint and ImageFileGenerator.Tint
  • Bitmap.SetPixels(Color[])
  • [Step] attribute, allows you to specify step amount of a value in an inspector without specifying the range
  • [Range] (and [Step]) attribute support to types Angles, Rotation, Margin, BBox, and Sphere
  • Editor viewport now has a context menu
  • Projects can now be editor only
  • Application.RenderSettings for standalone
  • ITintable to ParticleEffect
  • Audio: Support FLAC 24 bit
  • Hotspot Editor - Position and Size properties are now shown when any Rectangle(s) are selected
  • Hotspot Editor - Added "Grid Size" option for entering exact values that are not a power of 2
  • Hotspot Editor - Added "Normalized Values" option, which shows Min and Max properties in place of Position and Size
  • ConVar properties now support decimal type
  • New surface types: plaster, plastic, cardboard, ceramic, fabric
  • Whitelist: ITuple
  • SerializedProperty: Added OnPreChange, OnChanged, OnStartEdit, OnFinishEdit events
  • Validate Attribute for Properties
🧼 Improved
  • Editor Apperance
  • More Vulkan Validation Fixes
  • Materials made with shaders created with ShaderGraph will automatically populate any textures used in samplers instead of the color white.
  • Made SceneViewportWidget editor shortcuts consistent with one-another so they need viewport focus.
  • Pressing a ViewportTools-related editor shortcut will update the related button visually without having to hover/click it.
  • Added missing XML summaries to TextRenderer.
  • Added missing XML summaries to ImageFileGenerator and re-categorized properties
  • Removed "Null or empty audio data" warning.
  • Physics: Box3D now uses the thread pool improving
  • Stepped increments with new [Step] attribute (or previous [Range] attribute uses) now work without the need for a slider
  • Inspector handles inspecting [ null ] better instead of erroring
  • Allow suppressing SB3000 with [SkipHotload], add a CodeFixProvider
  • Networking: Optimize prefab instance NetworkSpawn
  • Networking: Break prefabs before network spawning
  • Networking: Unify GameObject refresh logic
  • Networking: Fonts load over local instances
  • Networking: Deterministic map ids
  • Dedicated Server: Cvar fixes, cheats
  • Dedicated Server: clear command
  • Scene.Source is no longer set when loading an additive scene
  • Vignette renders before bloom
  • Derived GameResources are pickable
  • Removed SceneTree splitter and hotload event
  • FileSystem.Data is no longer resets with every game version
  • Ambient occlusion has more sane defaults
  • AssetPreview uses proper Scenes now
  • AssetPreview on small objects
  • Reduce allocations in Json.Diff
  • Misc Asset Browser fixes:
  • Only do FolderContextMenu for disk locations. Prevents trying to pin paths that aren't real etc.
  • Wait for the browser to populate after navigation before trying to highlight an asset.
  • When renaming non-assets, only auto-select the region up to the last '.' so you can just start typing without accidentally changing the extension, but still change it if needed. (Like windows does)
  • Editor shortcut consistency
  • ImageFile TextureGenerator Improvements
  • RandomTextureGenerator Optimizations
  • Texture.Load() no longer requires BaseFileSystem to load files
  • Texture.LoadAvatar() now takes an optional argument for the avatar size
  • Hotspot Editor - Can now hold CTRL or SHIFT to multi-select rectangles and edit multiple at once
  • Hotspot Editor - Editor now remembers the Grid Size and Reference Material for each .rect asset
  • Hotspot Editor - Can right click on a rectangle to quickly delete them
  • Hotspot Editor - Can now click-and-drag to move or resize rectangles
  • Vector2.Up is now ( 0, -1 )
  • Vector2.Down is now ( 0, 1 )
  • Vector2.Left is now ( -1, 0 )
  • Vector2.Right is now ( 1, 0 )
  • Vector2 now implements IInterpolator
  • Added Vector2.IsNan, Vector2.IsInfinity, Vector2.IsNearlyZero, Vector2.SmoothDamp, Vector2.SpringDamp, Vector2.ClampLength, Vector2.AddClamped, Vector2.Reflect, Vector2.Approach, Vector2.SubtractDirection, Vector2.Angle and Vector2.GetAngle
  • Vector2 and Vector4 now have an index accessor
  • Matrix.Transform now accepts Vector2 and Vector4
  • Many APIs now take Vector2 instead of Vector3 where it makes sense
  • Vector3.IsNearZeroLength actually checks if the length is near zero instead of checking if each axis near zero (which is how Vector2 and Vector4 work)
  • Added == and != operators to Vector4 along with Vector4.Equals and Vector4.GetHashCode
  • Added Vector4.WithX, Vector4.WithY, Vector4.WithZ, Vector4.WithW, Vector4.SnapToGrid, Vector4.Clamp, Vector4.Min, Vector4.Max and Vector4.Lerp
  • Added implicit operators for int -> Vector2Int and int -> Vector3Int
  • Added explicit operators for Vector2 -> Vector2Int and Vector3 -> Vector3Int
  • Make use of MethodImplOptions.AggressiveInlining across all Vector structs
🪛 Fixed
  • Standalone: Now launches exported games fully
  • VR: Scaling fixed
  • VR: Main menu inputs work again
  • In-game debug wireframe rendering
  • Interpolation seams in lightmaps
  • LineRenderer not receiving baked lighting
  • TextRenderers now update immediately upon making a change in the editor instead of having to disable and re-enable component.
  • Panel.MousePosition for world panels
  • Can no longer delete the scene root
  • Decals: DecalDefinition.Tint is now used
  • Decals: Preview updates when properties change
  • Decals: Fix texture streaming requesting only lowest mips
  • Terrain: Only create terrain when active
  • Terrain: Fixed terrain "Fucked" error causing storage resource not to link to component
  • Update parent panel
  • Fix reparenting and cloning parts of prefab instances
  • Fix text area control multi edit
  • Fix Map Load Warning Spam + Unnecessary Creation of GameObjects
  • Folder Metadata now loads properly
  • Fix editor only prefab instances not getting destroyed on load
  • Physics aggregate surfaces
  • Fixed regression when calling NetworkRefresh on a GameObject hierarchy that contains child networked objects.
  • Fixed several asset load problems when running a dedicated server with a local project.
  • Server local project asset fixes
  • Input.Keyboard erroring on dedicated server
  • PostProcess running on dedicated server
  • Networking: unidentified RPCs no longer crash the dedicated server
  • Bytepack TypePacker respect [JsonIgnore]
  • NavMeshLink Start/End Local <-> World space transformation
  • NavMeshLinks sometimes lingering wen moving from one tile to another
  • Player controller reground
  • DragData.OfType includes value types when T is object
  • Incorrect nav areas offset when BoxCollider.Center is set
  • Plane.Trace returning hits behind ray
  • Fixed support for .flac sound files
  • ShaderGraph now tells you when you are using invalid parameter names to prevent conflicts
  • Margin struct now serializes/deserializes properly
  • Hotspot Editor no longer resets the Grid Size and Material Reference upon hotload
  • Blendable material preview
  • 3D Skybox applies proper rotation from the Hammer sky entity
  • SerializedDictionary: set parent, formatting fixes
  • Fix inspector widgets duplicating after editing a property
  • Fix mono mixing
  • Fix ModelPhysics not using mass and mass center overrides
  • Fix PolygonMesh not clearing out unused materials
  • Mouse4/Mouse5 glyphs
🚯 Removed
  • RangeAttribute.Step obsoleted - Use [Step] attribute now
  • Citizen gibs - Now available on the workshop
  • Core cleanup
  • Shader cull: black_only, combine_colorcorrection_lut, cables, cs_mipgen, decal, downsample, general_filter, hair, projected_decals, projected_sheet_decal, sampletexture_bicubic, screen_texture_with_depth, tools_encode_environment_map, tools_modelviewer_wireframe, visualize_depth, visualize_physics
  • Various HL:Alyx particle textures
  • Unused thirdparty libs
trophy 1110
Apr 2021 70 posts
August Update : news/august-2025
trophy 1990
Apr 2021 41 posts
Great stuff 🍻
trophy 1718
Sep 2021 9 posts
the new interface is really better
trophy 1050
Mar 2023 38 posts
Collision sounds no longer work
trophy 1220
Sep 2021 83 posts
I didn't think I'd live to see private server code. Good job, guys. Devblogs are really interesting to watch, vibe of 2023. I wonder what will happen in the autumn 💚
trophy 305
Oct 2021 22 posts
we gaming
trophy 635
Sep 2021 10 posts
If we have animation and record system, it would be cool to see theater mode like in Halo with ability to look around and not be glued to one perspective like in GMod demos.
trophy 395
Jun 2023 1 post
Sandbox is back finally!
trophy 50
Aug 2021 1 post
YES!!! FINALLY SANDBOX MODE!!! 💛 OwO
trophy 50
Jul 2022 1 post
Zeref 5 hours ago edited 5 hours ago
Good news
people
Log in to reply
You can't reply if you're not logged in. That would be crazy.