Sync Properties: Networked State with Change Detection and Collections
The attribute on a Component property sends its latest value to other players each time it changes. Only the owner of the object can change synced properties. B…
Scenes: Loading, Component Lookup, and GameObject Directory
A Scene is a collection of GameObjects that represents the game world. Every Component and GameObject has a property for accessing the current scene, and you ca…
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…
WebSocket Connections with Auth Token Authentication in s&box
s&box supports WebSocket connections to external servers for custom networking or persistent data outside the local filesystem. Basic Connection and Messaging U…
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…
Unit Tests: MSTest with Engine Initialization for Component Testing
s&box supports unit testing via a directory in your project. The engine auto-generates a test project when this directory exists (restart editor after creating …
NetworkHelper: Simplified Multiplayer Setup with Player Spawning
The NetworkHelper component simplifies multiplayer setup. It handles server creation, player spawning, and object ownership. Creating a Server Set to true and a…
Prefab Instance Overrides: Property, Component, and GameObject Customization
Prefab instance overrides in s&box allow you to customize individual instances of a prefab without affecting the original or other instances. The instance remem…
Game Mounts: Creating Custom Asset Mounts for External Games
The s&box mount system is extensible — anyone can write a mount to add support for a new game or engine. A mount detects a game's install directory via Steam, s…
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…
WebSockets: External Server Communication with Auth Token Support
s&box allows WebSocket connections to interface with external servers. Common uses include custom networking and persistent data storage outside the local files…
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…
Component Versioning: JsonUpgrader for Breaking Property Changes in s&box
s&box Component Versioning lets you define upgraders for breaking changes like property renames or data structure changes. Upgrades are chained — if a component…
Custom Editors
Custom Editors Create custom editor widgets for your classes, structs, and assets. ControlWidget (Property Editor) Create custom property editors using : Attrib…
Particle Effects System
Particle Effects System CPU-simulated, fully controllable particle system for effects like fire, smoke, sparks, and explosions. Architecture The particle system…
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…
Game Static Class: ActiveScene, ChangeScene, TypeLibrary, Cookies, and Core State Properties
Game Static Class: ActiveScene, ChangeScene, TypeLibrary, and Core State The static class is the primary entry point for global game state in s&box. Core State …
Connection Class: Local, Host, All, Find, Permissions, Kicking, and Visibility Origins
Connection Class: Local, Host, All, Find, and Permissions represents a network connection to a player. It's the primary way to identify and interact with player…
Networking Static Class: IsHost, IsClient, CreateLobby, Connect, SetData, and Debug Convars
Networking Static Class: IsHost, IsClient, CreateLobby, Connect, and Server Data The static class manages the multiplayer session in s&box. Session State Note: …
Tracing: Scene Traces with Ray, Sphere, and Box Shapes
Scenes can be traced against using with a builder pattern. At minimum, traces need a shape, start, and end position. You can filter by tags or use your project'…