Component Lifecycle: Full Callback Order — OnAwake, OnEnabled, OnStart, OnUpdate, OnFixedUpdate, OnDisabled, OnDestroy
Component Lifecycle: Full Callback Order s&box components have a well-defined lifecycle. Understanding the exact order prevents subtle bugs. Callback Order Key …
Scene Tick Order: Full Frame Pipeline — FixedUpdate, Update, PreRender, ProcessDeletes, and Stage Hooks
Scene Tick Order: The Full Frame Pipeline Understanding the exact order of operations in a scene tick is critical for writing correct game logic. Game Tick Orde…
RPC Security: How s&box Validates Incoming RPCs — Attribute Check, Permission Flags, Kick on Unauthorized
RPC Security: How s&box Validates Incoming RPCs Understanding how s&box validates incoming RPCs is important for writing secure multiplayer code. Validation Ste…
Application Context Flags: IsDedicatedServer, IsHeadless, IsEditor, IsVR — Runtime Context in s&box
Application Context Flags: IsDedicatedServer, IsHeadless, IsEditor, IsVR is a static class in s&box that exposes runtime context flags. These are set at startup…
Collider Component: Triggers, Surface Properties, Keyframe Bodies, Concave Shapes, and Tag Propagation
Collider Component: Triggers, Surface Properties, and Keyframe Bodies The abstract base class is the foundation for all physics colliders in s&box (, , , , ). T…
s&box Source Generator: IUpdateSubscriber, WrappedPropertySet, and How [Sync]/[Rpc.*] Work at Compile Time
s&box Source Generator: How [CodeGenerator] Works for [Sync] and [Rpc.*] The Roslyn source generator transforms your C# code at compile time. Understanding this…
Components - s&box Documentation
Components A Component is added to a GameObject to provide functionality. This functionality can vary wildly. You could add a component that renders a model at …
RPC-based chat system with avatars and Steam filtering
RPC-Based Chat System with Avatar Support This example shows a complete chat system using Razor, RPC broadcasting, Steam filtering, and avatar display. Key Feat…
Slot-based inventory UI with BuildHash optimization
Slot-Based Inventory UI with BuildHash Optimization This example shows a slot-based inventory UI with BuildHash() optimization to prevent unnecessary rebuilds a…
Drag-and-drop system with static instance pattern
Drag-and-Drop System with Static Instance Pattern This example shows a drag-and-drop system using a static instance pattern for global state management and visu…
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…
Cloud Assets: Using sbox.game Models, Textures, and Sounds in Your Project
s&box provides access to a large selection of cloud assets (textures, models, sounds) from sbox.game without manual downloading or mounting. Cloud Browser Drag …
s&box context menu with submenus and auto-positioning
s&box Context Menu with Submenus and Auto-Positioning This example shows a context menu system using s&box's Panel, Screen, and layout system with submenu build…
CodeGenerator: Compile-Time Method and Property Wrapping via Attributes
The attribute in s&box lets you create custom attributes that wrap methods and properties at compile time. This is the mechanism behind properties and — you can…
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…
Media Support - Video and Audio Codecs
Media Support - Video and Audio Codecs Video and audio codec/format support for playback, streaming, and encoding. Video Codecs Recommendation: Use VP9 or AV1 f…