Video: VideoPlayer Decoding and VideoWriter Encoding with Streaming Support
s&box provides VideoPlayer for decoding video and VideoWriter for encoding video frames. VideoPlayer Decodes video files or URLs, exposing the current frame as …
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…
Creating Terrain: Heightmap Setup, World Scale, and Asset Reuse
To add Terrain to your s&box scene, right-click in the Hierarchy and select 3D Object → Terrain. The inspector prompts you to create, import, or link an existin…
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…
NavMesh Area Costs and Filters: Weighted Pathfinding and Agent Restrictions
NavMesh Areas in s&box can be used to mark sections as more costly to traverse (e.g. shallow water) or to prevent certain agents from entering specific areas. C…
MusicPlayer: Streaming Audio with Visualization and World-Space Positioning
in s&box handles music tracks and streaming audio with programmatic control over playback, positioning, and visualization. For sound effects, use the Sound syst…
ActionGraph: Visual Scripting with Nodes, Links, and Control Flow
ActionGraph is s&box's visual scripting language. Each node describes an action or expression, and links between nodes carry values or signals. No C# coding req…
DecalDefinition: PBR Decal Assets with Color, Normal, and Parallax
A DecalDefinition in s&box holds what a single decal should look like. It describes color, normals, roughness, metalness, ambient occlusion, and optional parall…
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'…
Triggers: Non-Blocking Collision Detection with ITriggerListener
A trigger is a collider that detects when other physics objects enter or exit it without blocking their movement. Useful for pickup zones, death planes, checkpo…
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: Taking, Dropping, and Transferring Object Control
Networked GameObjects can be owned by a connection. Objects owned by a connection are simulated by that connection — their position and sync variables are contr…
Network Events: INetworkListener for Player Join, Leave, and Active Callbacks
Implement or on a component to react to players joining and leaving the game. INetworkListener Example Spawn a player object when someone joins: INetworkListene…
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…
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…
Leaderboards: Stat-Based Rankings with Filtering, Centering, and Aggregation
Leaderboards in s&box are stats aggregated and ordered. They use the same stat system and provide filtering, sorting, and centering options. Basic Example By de…
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…
Testing Multiplayer: Local Multi-Instance Development Workflow
The best way to test multiplayer is having someone join your game, but s&box provides tools for solo testing. Spawning a New Instance Click the network status i…
Custom Snapshot Data: INetworkSnapshot for s&box Joining Client Data Transfer
s&box Components can write and read custom data during the network snapshot process by implementing . The snapshot is sent to clients when they join a s&box mul…