Hotloading - s&box Documentation
Hotloading Whenever you save a code file in your project (.cs or .razor files), we recompile and attempt to live-reload the changed assembly. This lets you quic…
VirtualGrid: Virtualized Grid Panel for Large Item Collections
is a s&box UI Panel that virtualizes large item collections — only rendering visible cells. If you have thousands of items, it creates only the few on screen an…
GameObject - s&box Documentation
GameObject A GameObject is the fundamental building block of scenes in s&box. GameObjects have a transform (position, rotation, scale), can have parents and chi…
Editor Widgets
Editor Widgets Build custom editor UI using Widgets (different from in-game Panels). Creating a Widget Widget as Window Widget as Child Dockable Widget Asset Ed…
Scene Metadata - s&box Scene Documentation
Scene Metadata You can implement the interface in any Component that has data you'd like saved to Metadata. Metadata is data that can be accessed without needin…
Prefab instance overrides — customizing instances without breaking the prefab link
Prefab Instance Overrides Prefab instance overrides let you customize individual instances without affecting the original prefab or other instances. The instanc…
Video - s&box Media Documentation
Video s&box can decode and play video files for cutscenes, UI elements, or in-world displays. VideoPlayer The VideoPlayer decodes video and exposes frames as a …
ConVar and ConCmd: Console Variables and Commands in s&box
ConVar and ConCmd: Console Variables and Commands s&box uses and attributes on static properties and methods to expose them to the console system. ConVar (Conso…
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…
RPC Security: How s&box Validates Incoming RPCs — Attribute Check, Permission Flags, Kick on Unauthorized
RPC Security: How s&box Validates Incoming RPCs Understanding how s&box validates incoming RPCs is important for writing secure multiplayer code. Validation Ste…
[Change] Attribute: Callbacks When Properties Change — Works with [Sync] and [ConVar], Priority, and All-Client Firing
[Change] Attribute: Callbacks When Properties Change The attribute invokes a method whenever a property's value changes. It works with any property but is espec…
ClothingContainer: Apply, ApplyAsync, CreateFromConnection, RemoveUnownedItems, and Body Group Masking
ClothingContainer: Avatar Dressing System — Apply, CreateFromConnection, and RemoveUnownedItems manages a player's avatar outfit. It handles clothing compatibil…
BasePostProcess: Custom Post-Processing with GetWeighted, BlitMode, and PostProcessVolume Blending
BasePostProcess<T>: Custom Post-Processing Effects with Volume Blending is the current (non-obsolete) base class for post-processing effects in s&box. It replac…
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…
RPC Messages: Broadcast, Owner, Host with Filtering and Caller Info
Components can contain RPCs — functions that when called locally, are also called remotely. Supported RPC argument types are the same as Sync properties. Basic …
Auth Tokens: Steam Identity Validation for External Services
Auth Tokens validate that HTTP or WebSocket requests originate from a legitimate Steam user in an active s&box game session. Use them to tie data to Steam accou…
Styling Panels: SCSS, Inline Styles, and Code-Based Styling
s&box panels can be styled using SCSS stylesheets, inline styles, style blocks, or direct code manipulation. The styling system uses CSS-like syntax but is rend…
Component Versioning: JsonUpgrader for Scene and Prefab Migration
s&box component versioning uses attributes and the property to migrate serialized scene/prefab data when you make breaking changes to component properties. This…
Libraries: Reusable Code Packages with Source Sharing
s&box Libraries are self-contained code and asset packages stored in your project's folder. They enable code reuse across multiple projects and can be shared wi…
GameObject: Transform, Tags, Children, and Components
A represents an object in the scene world. It contains a Transform, Tags, Children, and Components. Transform Represents where the GameObject is in the scene — …