Testing Multiplayer: Local Multi-Instance Development Workflow
The best way to test multiplayer is having someone join your game, but s&box provides tools for solo testing. Spawning a New Instance Click the network status i…
Voice Component: Push-to-Talk, Lip Sync Visemes, ExcludeFilter, ShouldHearVoice, and Amplitude
Voice Component: Voice Chat, Lip Sync, and Viseme Morphs The component handles voice chat recording, transmission, and playback with optional lip sync. Basic Se…
Dedicated Servers - s&box Documentation
Official s&box documentation for dedicated server hosting. Dedicated Servers covers running s&box games on headless servers. Running Local Projects explains tes…
Physgun Grab State with Permission Checks
Physgun Grab State Pattern Implementation pattern for physgun object grabbing with ownership checks and IPhysgunEvent permissions. Key Features Sync'd GrabState…
s&box Source Generator: IUpdateSubscriber, WrappedPropertySet, and How [Sync]/[Rpc.*] Work at Compile Time
s&box Source Generator: How [CodeGenerator] Works for [Sync] and [Rpc.*] The Roslyn source generator transforms your C# code at compile time. Understanding this…
s&box Hotload System: How Code Reloading Works, SkipHotload, ConVar Persistence, and NetworkObject.OnHotload
s&box Hotload System: How Code Reloading Works s&box supports live code reloading (hotload) without restarting the game. Understanding how it works helps avoid …
Sandbox: ControlSystem — vehicle seat and contraption control with IPlayerControllable
ControlSystem — Vehicle Seat and Contraption Control is a that drives components on contraptions. When a player sits in a , the system walks the connected contr…
Sync Properties for Networked State
Sync Properties for Multiplayer The attribute automatically synchronizes property values to all clients when they change. Basic Sync Sync Flags Customize sync b…
PlayerInventory Weapon Switching
PlayerInventory Weapon Switching Weapon switching with host authority and IPlayerEvents delegation. Key Features Sync'd ActiveWeapon with Change callback for ne…
Explore the Engine - s&box Documentation
Explore the Engine Learn how s&box works by exploring the testbed and understanding the core concepts. Play Testbed Start s&box (not the editor) and find the ga…
Sandbox: SaveSystem — scene diff save/load with versioning and ISaveEvents
Sandbox SaveSystem — Scene Diff Save/Load The captures the difference between the current scene state and the original scene file. This means saves are compact …
s&box MorphState: Morph value persistence
MorphState Component API Reference MorphState persists morph values on a GameObject so they survive over the network and duplication. Type Signature Properties …
IGameObjectNetworkEvents: StartControl, StopControl, and NetworkOwnerChanged Callbacks
IGameObjectNetworkEvents: Ownership Change Callbacks Implement on a component to receive callbacks when network ownership of the parent changes. Interface Metho…
Scene.Push(), BatchGroup(), FindInPhysics, and FindAllWithTag — Scene Context Management
Scene.Push() and Scene.BatchGroup(): Scene Context Management Scene.Push() makes a scene the active scene for the duration of a scope. This is required when cre…
WebSockets
Use WebSockets for real-time communication with external servers. Basic Setup With Auth Token Common Use Cases Custom networking — External matchmaking, chat se…
s&box SaveSystem: Scene save/load
SaveSystem GameObjectSystem API Reference SaveSystem is a saving/loading system that captures the differences between the current scene state and the original s…
s&box ManualLink: Logical link component
ManualLink Component API Reference ManualLink is a Component that creates a non-physics logical link between two GameObjects, used by the Linker tool to group u…
s&box ResourceLibrary: Loading and Accessing Game Resources
s&box ResourceLibrary: Loading and Accessing Game Resources (and ) provides access to all loaded resources. Loading Resources ```csharp // Synchronous get (retu…
HTTP Requests - s&box Networking Documentation
HTTP Requests s&box provides an HTTP client for making web requests to external APIs. This is useful for fetching data, submitting scores to custom backends, or…
Performance Best Practices
s&box Performance Best Practices Community guide for writing performant s&box code based on engine behavior and developer recommendations. Object Pooling Avoid …