Libraries
Libraries Create reusable, shareable code and asset libraries. Structure Libraries live in folder: How It Works Game code references all installed libraries Lib…
Achievements: Score-Based and Stat-Based Player Unlocks
s&box achievements allow players to unlock rewards with configurable scores. The API lives in . Score Each achievement has a score (5-100). Low values for easy …
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…
Network Visibility: Per-Connection Object Culling with INetworkVisible
Network Visibility controls whether a networked object should be visible (receive ongoing network updates) for a specific player. By default, all networked obje…
PlayerController: Built-in First/Third Person Controller with Physics, Input, and Camera
The PlayerController component is a first and third person player controller built into s&box. It is physics-based (a special RigidBody) with built-in input, ca…
GameObjectSystem: Scene-Level Batch Processing Systems in s&box
A in s&box is a scene-level system that performs work at specific points during the frame. Automatically instantiated when a scene is created — no manual setup …
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…
Clutter System: GPU-Instanced Scattering for Grass, Rocks, and Debris
The s&box Clutter System scatters large amounts of small objects (grass, rocks, debris) with GPU-instanced rendering. It handles placement, streaming, and LOD a…
Hotloading Pitfalls: Default Values, Types, Delegates, and Optimization
s&box hotloads code changes live when you save or files. Understanding the pitfalls helps avoid subtle bugs during development. How It Works IL Hotload (Fast): …
Mapping in s&box
Mapping in s&box s&box includes Hammer, the Source 2 level editor, for creating maps. Opening Hammer Main Menu → Tools → Hammer Or click Hammer icon in toolbar …
Prefab Instance Overrides
Prefab Instance Overrides Customize individual prefab instances without affecting the original or other instances. Types of Overrides Visual Indicators Prefab i…
PostProcessVolume: Camera-Based Effect Blending with Box, Sphere, and Infinite Modes
The component in s&box applies post-processing effects to cameras inside its volume. Effect components can be on the same GameObject or child GameObjects. Volum…
IGameObjectNetworkEvents: Ownership Change and Control Transfer Events
lets Components on a networked GameObject react to ownership changes. The events are targeted only at the specific GameObject whose ownership is changing. Inter…
Playing Sounds: SoundEvent, SoundHandle, and GameObject Audio in s&box
s&box provides several ways to play sounds in code: fire-and-forget at a world position, control via SoundHandle, attach to a GameObject, or use scene component…
Input System: Button Queries, AnalogMove, AnalogLook, and Escape Override
Input is accessed using the class in s&box. It provides button state queries, analog stick/mouse values, and escape key handling for game components. Button Que…
Platform Chat - Built-in Multiplayer Text Chat System
Built-in text chat for multiplayer games. Messages are routed through the host, validated, filtered, and displayed via the standard overlay UI - no game code re…
Shader Graph - s&box Documentation
Official s&box documentation for the Shader Graph - node-based shader creation. Shader Graph allows creating custom shaders without writing HLSL code. Nodes rep…
ComponentFlags: Hidden, NotSaved, NotNetworked, NotCloned — Controlling Component Behavior
ComponentFlags: Controlling Component Serialization, Networking, and Visibility is a flags enum on that controls how a component behaves in the editor, serializ…
Component Methods: OnLoad, OnAwake, OnStart, OnUpdate, OnFixedUpdate Lifecycle
Component lifecycle methods you can override: OnLoad (async) Called after deserialization for loading. Loading screen stays open until all OnLoad tasks complete…
Math Types: Vector3, Rotation, Angles, and Transform
s&box provides several math types for 3D game development in the namespace. Vectors Vector2 — 2D (x, y) for screen/UI Vector3 — 3D (x, y, z) for world positions…