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 …
HTTP Requests: Async GET and POST with JSON in s&box
s&box provides a static class for asynchronous HTTP requests (GET, POST, DELETE, etc.) with JSON support. Allowed URLs Only or URLs to domains (no IP addresses)…
Custom GameResource Assets: Define, Create, and Access Custom Asset Types
Define custom asset types as subclasses. They get a nice inspector window, are hotloaded in-game, and are stored as JSON files with a custom extension. Creating…
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…
Localization: Multi-Language Token System for UI Text
s&box supports localization via JSON token files. Any displayed string beginning with is treated as a localization token and automatically replaced with the use…
CodeGenerator: Compile-Time Method and Property Wrapping via Attributes
The attribute in s&box lets you create custom attributes that wrap methods and properties at compile time. This is the mechanism behind properties and — you can…
GameResource Extensions: Appending Data to Existing Assets Without Modification
ResourceExtensions in s&box append additional data to existing GameResources without modifying the original class or assets. Useful for adding properties to Clo…
Dedicated Server User Permissions: Claims-Based Access Control via Steam ID
On s&box Dedicated Servers, you can specify admin permissions per user via the file using Steam IDs and claims. Configuration Claims Claims are strings describi…
HTTP Requests: Async GET, POST, and JSON with the Static Http Class
s&box provides a static class for creating asynchronous HTTP requests (GET, POST, DELETE, etc.) with JSON content and response parsing. URL Restrictions Only or…
Localization: Token-Based Multi-Language UI Text in s&box
s&box supports localization through token-based string replacement. Any displayed string beginning with is recognized as a localization token and replaced with …
Console Variables and Commands: ConVar and ConCmd Runtime Configuration
s&box provides console variables () and console commands () for runtime configuration and debugging. Console Commands Static methods with attribute: Server Comm…
Custom Assets: GameResource Definition with Inspector and Hotloading
Define custom asset types as in s&box. They provide inspector windows, are hotloaded in-game, and are stored as JSON files with custom extensions. Creating a Cu…
s&box DupeCategory: Workshop duper categories
s&box DupeCategory Enum DupeCategory is an enum used to categorize workshop dupes for filtering and browsing. Each category has an associated icon for UI displa…
Razor Panels: HTML/CSS UI with C# in s&box PanelComponent System
s&box Razor Panels use web-like HTML/CSS syntax with C# for UI creation. Panels are rendered natively (not via HTML renderer) — the syntax is a convenience laye…
Sync Properties: Automatic Property Replication with [Sync] Attribute
Adding the attribute to a property on a Component will have its latest value sent to other players each time it changes. Only the owner of the object can change…
Steam filtering API for user content sanitization
Steam Filtering API in s&box s&box provides Steam filtering APIs to sanitize user-generated content like names and chat messages. This helps prevent profanity, …
Razor Panels: HTML/CSS UI with C# in s&box
s&box UI can be created using Razor syntax — web-like HTML/CSS combined with C#. Panels are not rendered via a HTML renderer; the syntax is a convenience layer …
Async Tasks and Coroutines in s&box Components
Async tasks in s&box run on the main thread by default, operating like coroutines. They are the recommended replacement for coroutines. Basic Async Method Frame…
Stats Service: Recording and Reading Player Statistics in s&box
Games can record per-player stats using . Stats can be queried individually, per-player, or globally. Recording Stats Increment a counter: Set a value directly:…
Async Components: Coroutine-Style Async Tasks on the Main Thread
Async tasks in s&box run on the main thread by default, operating like coroutines. They are the recommended replacement for coroutines in s&box. Basic Async Fra…