NavMesh Agent: AI Pathfinding Component with Crowd Control
The s&box NavMeshAgent component moves GameObjects along the NavMesh automatically with built-in crowd control to avoid collisions between agents. Component Set…
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…
s&box CharacterController: Physics-Free Movement Component
s&box CharacterController: Physics-Free Movement Component provides collision-constrained movement without a . It only moves when you explicitly call or . Key P…
Decals in s&box
Decals in s&box Decals are textures projected onto surfaces for bullet holes, graffiti, scorch marks, etc. Decal Component Add to a GameObject: DecalDefinition …
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…
MainThread.Queue: Running Code on the Main Thread from Worker Threads
MainThread.Queue: Running Code on the Main Thread from Worker Threads s&box is single-threaded for game logic. If you have code running on a worker thread (e.g.…
ScreenPanel and WorldPanel: AutoScale Strategies, ZIndex, LookAtCamera, and Interaction Range
ScreenPanel and WorldPanel: UI Components in s&box Scenes ScreenPanel is the root component for 2D screen-space UI. It renders attached children to the screen. …
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…
Custom Particle Controller - s&box Documentation
Official s&box documentation for the Particle System - visual effects. Particle Effect creates GPU-accelerated visual effects. Custom Particle Controllers scrip…
ModelRenderer: Body Groups, Material Override, Material Groups, Shadow Modes, and LOD Override
ModelRenderer: Body Groups, Material Override, Shadow Modes, and LOD renders a static (non-skinned) model in the world. It creates a in the . Basic Usage Body G…
BeamEffect: Animated Line Renderer for Tracers, Lasers, and Beams
The BeamEffect in s&box is an animated LineRenderer for creating beams, tracers, and lasers. It supports multiple beams, fade over time, scale over time, and te…
ScenePhysicsSystem: Physics Sub-Stepping at 120Hz, Collision Event Routing, Keyframe Colliders, and Editor Physics
ScenePhysicsSystem: How Physics Steps Work in s&box is the built-in that drives physics simulation. Understanding it explains the physics step order and collisi…
Component Interfaces: ExecuteInEditor, ICollisionListener, IDamageable in s&box
s&box provides several Component interfaces for specific purposes: editor execution, collision handling, triggers, damage, and networking. ExecuteInEditor Compo…
s&box LineRenderer and TrailRenderer: Points, Spline Interpolation, Face Modes, Texture Scrolling, and DepthFeather
s&box LineRenderer and TrailRenderer: Procedural Line Rendering renders a line through a list of points with configurable width, color, and spline interpolation…
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…
Getting Started - s&box Documentation
Getting Started S&box is coded in C#. Under the hood, it uses the Source 2 engine (CS2, HL:Alyx, DOTA2) and some of its systems: rendering, resources, physics, …
Connection Permissions: CanSpawnObjects and CanRefreshObjects
The host can change permissions for a specific in s&box multiplayer. The ideal place to set these permissions is in the network event callback when a player con…
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…
Networked Objects: NetworkSpawn, Interpolation, and Network Modes
Any GameObject can become a networked object by calling on it. It will then be sent to all clients and can have Sync Properties and RPC Messages. Network Mode I…
Network Ownership: Transfer, IsProxy, and Orphaned Modes
Networked GameObjects can be owned by a connection. The owner simulates the object — controlling its position and sync properties. Unowned objects are simulated…