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…
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…
NavMesh Links: Custom Agent Traversal with Jump, Ladder, and Physics Examples
NavMesh Links in s&box connect disconnected navigation areas, allowing agents to jump, climb ladders, or traverse gaps. Add a NavMeshLink component to a GameObj…
VR Development: Tracked Objects, Controllers, and Hand Input
s&box supports VR development with built-in components for headset tracking, controller input, and hand animation. Enabling VR Editor: Launch with headset conne…
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…
Component Editor Tools: Selection-Based Scene View UI and Gizmos
Component Editor Tools in s&box are always active when a specific Component is selected. They create UI in the scene view and can override input. An example is …
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…
Serverside Code: #if SERVER Blocks and .Server.cs Files for Hidden Logic
s&box supports serverside-only code that is stripped from client builds. This only works when running local projects on dedicated servers. #if SERVER Blocks Cod…
Dedicated Server User Permissions: Claims-Based Access Control via Steam ID
On s&box Dedicated Servers, you can specify admin permissions per user via the file using Steam IDs and claims. Configuration Claims Claims are strings describi…
Standalone Code: Full .NET Access and STANDALONE Constant for Exported Games
When s&box games are exported as standalone builds, they run outside the platform with additional capabilities not available in platform games. STANDALONE Const…
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…
Animation System: Animgraph, Skeletal Animation, IK, and Ragdolls
s&box uses Valve's Animgraph system for character animation, providing a powerful node-based animation state machine. Key Features Animgraph — node-based animat…
HTTP Requests: Async GET, POST, and JSON with the Static Http Class
s&box provides a static class for creating asynchronous HTTP requests (GET, POST, DELETE, etc.) with JSON content and response parsing. URL Restrictions Only or…
Navigation: Recast NavMesh Generation and Pathfinding in s&box
s&box implements Recast Navigation (the industry standard used in Unreal, Unity, and Godot) for navmesh generation and navigation agents. What is a NavMesh? A s…
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…
Hotloading: Live Code Reload Without Editor Restart in s&box
s&box hotloading recompiles and live-reloads code when you save or files, without restarting the editor. How It Works IL Hotload (Fast): If only method bodies c…
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…