Custom Particle Controller: Code-Based Particle Simulation with Threading
The s&box particle system allows custom code-based particle controllers by inheriting from . Add the component to a GameObject with a ParticleEffect to control …
Input Glyphs: Device-Adaptive Button Icons for UI Hints
Input glyphs in s&box provide an easy way to show users which buttons to press for actions. They automatically adjust for whatever device is being used and retu…
Storage UGC: User-Generated Content with Steam Workshop Integration
The s&box Storage system provides a unified way to manage user-generated content in your game. Each storage entry is a self-contained folder with its own filesy…
Raw Input: Direct Keyboard Access Bypassing Input Actions
s&box provides raw keyboard input access that bypasses input actions. Only use this when input actions won't work — raw inputs cannot be rebound by players. Ava…
Creating Post-Process Effects: BasePostProcess with Volume Blending and Shaders
Create custom post-processing effects in s&box by deriving from . This enables volume-based blending and custom shader rendering. The Component Key Methods GetW…
Dedicated Servers: Running Local Projects with Hidden Serverside Code
s&box dedicated servers can run entirely local projects as the game using the command line argument: Assets are still fetched from the cloud version of the game…
Leaderboard Web API: Public REST Endpoint with Aggregation and Filtering
The s&box leaderboard Web API is publicly accessible for querying player rankings based on stats. Endpoint Parameters stat — stat name to base the leaderboard o…
Binary Serialization: BlobData for Large GameResource Data Storage
When JSON files grow too large in s&box, you can store data as a binary blob using the class. This works with GameResource assets and provides custom serializat…
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…