Sandbox: Full codebase architecture — systems, player components, weapons, tools, NPCs
Sandbox Codebase Architecture Overview The Facepunch Sandbox game is a large reference implementation. Here's a map of the major systems and how they connect. C…
Sandbox.Light
Sandbox.Light Illuminates the scene. Overview Light component adds dynamic lighting to GameObjects. Supports point, spot, and directional lights. Setup Light Ty…
Common s&box component gotchas — physics, networking, scene, and rendering pitfalls
Common s&box Component Gotchas Practical pitfalls that catch most new s&box developers. Physics Rigidbody + CharacterController on the same GO — don't do it. Th…
s&box built-in component quick reference — rendering, physics, navigation, UI, and audio
s&box Component Quick Reference A cheat sheet of the most commonly used built-in components and what they do. Rendering Lighting Physics Navigation UI Audio Gam…
Styling Panels - s&box UI Documentation
Styling Panels Style your UI panels using SCSS-like stylesheets or direct code styling. Using Stylesheets Create files alongside your files: Or specify a differ…
Engine Frame Loop Order: FrameStart, Scene Tick, and FrameEnd Sequence
Engine Frame Loop Order The s&box engine frame loop runs in a specific order each frame. Understanding this is important for knowing when your code runs relativ…
s&box Tracer: Projectile trail renderer
Tracer Renderer Component API Reference Tracer is a Renderer component that creates a tracer effect (like bullet trails) that travels from its world position to…
s&box Throwable: Grenade type enum
Throwable Enum Documentation Throwable is an enum that defines the type of throwable weapon for viewmodels. It is used by the ViewModel component to specify whi…
ReloadSoundEntry record struct
ReloadSoundEntry Record Struct Defines a timed sound event to play during s&box weapon reload animations. Properties Time () - Seconds after reload starts to pl…
GameObjectSystem: Batch Processing and Execution Order Control
A GameObjectSystem lets you run logic at specific points during the frame for all components of a type, rather than relying on individual component Update metho…
s&box NavigationLayer: NPC navigation
NPC behavior layer that handles navigation using NavMeshAgent. Provides movement commands and status tracking. Properties Methods Behavior Uses NavMeshAgent for…
Async Tasks and Coroutines in s&box Components
Async tasks in s&box run on the main thread by default, operating like coroutines. They are the recommended replacement for coroutines. Basic Async Method Frame…
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…
Component Lifecycle Methods Reference
Component Lifecycle Methods s&box Components have a well-defined lifecycle with specific methods you can override for different phases of initialization and upd…
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 …
UI Style Properties: CSS Reference with Custom Pseudo-Classes and Sound Events
s&box UI styling follows web CSS conventions with some differences. Everything is flex by default. Key custom properties include / for hover/click sounds, , and…
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…