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 …
Multiplayer Authority Patterns
Multiplayer Authority Patterns Community guide for structuring multiplayer code based on official networking documentation and proven patterns. Host-Authoritati…
Media Support - Video and Audio Codecs
Media Support - Video and Audio Codecs Video and audio codec/format support for playback, streaming, and encoding. Video Codecs Recommendation: Use VP9 or AV1 f…
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…
s&box Ownable: Ownership tracking component
Ownable Component API Reference Ownable is a Component that tracks which Connection (player) spawned a GameObject, enabling prop protection and ownership checks…
Sandbox: PlayerInventory — weapon slots, pickup, drop, and loadout persistence
Sandbox PlayerInventory — Weapon Slots, Pickup, Drop, and Loadout Persistence manages up to 6 weapon slots, handles pickup/drop logic, and delegates loadout sav…
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 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…
Code Upgrader Diagnostics: SBOX001-SBOX007 and SB3000 Roslyn Analyzer Warnings
Code Upgrader Diagnostics: s&box Roslyn Analyzer Warnings s&box ships a Roslyn analyzer () that warns about deprecated patterns and auto-fixes them. These appea…
s&box SpeechLayer: NPC speech and subtitles
NPC behavior layer that manages speech state, plays sound files, and renders subtitle text above the NPC's head. Properties Methods Behavior Resolves a random s…
Networked Objects: Spawning, Network Modes, and Interpolation
Any GameObject can become networked by calling . It will then be sent to all clients and can have Sync Properties and RPC Messages. Spawning a Networked Object …
INetworkSnapshot: Custom Binary Data in s&box Network Snapshots
s&box Components can implement to write and read custom binary data during the network snapshot process. When a client joins a server, the snapshot is sent once…
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…
PlayerInventory Weapon Switching
PlayerInventory Weapon Switching Weapon switching with host authority and IPlayerEvents delegation. Key Features Sync'd ActiveWeapon with Change callback for ne…
s&box AmmoInventory: Shared ammo pools
AmmoInventory Component API Reference AmmoInventory stores shared ammo pools on a player, keyed by AmmoResource. Add this component to the player prefab alongsi…
s&box Rigidbody Component: Physics Body Reference
s&box Rigidbody Component: Physics Body Reference adds physics simulation to a . It requires at least one component on the same object. Key Properties Force and…
RPC Messages - s&box Documentation
RPC Messages Components can contain RPCs. An RPC is a function that when called, is called remotely too. Supported RPC arguments are the exact same as Sync prop…
Sandbox: Duplicator tool — copy, paste, and save contraptions with DuplicationData
Duplicator Tool — Copy, Paste, and Save Contraptions The Duplicator tool copies a contraption (a connected graph of GameObjects) to JSON and pastes it back. It …
Sandbox: Ownable component — prop protection with IPhysgunEvent and IToolgunEvent
Ownable Component — Prop Protection and Physgun/Toolgun Access Control The component tracks which spawned a . It implements and to enforce ownership checks when…
Network visibility — culling networked objects per client with INetworkVisible
Network Visibility — Culling Networked Objects Per Client Network visibility controls whether a networked object sends updates (Sync Vars, transforms) to a spec…