BaseWeapon and BaseCarryable Weapon Framework
BaseWeapon and BaseCarryable - Weapon Framework Base classes for creating weapons in s&box. Provides ammo management, view/world models, and input handling. Bas…
Sandbox: BaseConstraintToolMode — two-stage constraint creation with IToolActionEvents
BaseConstraintToolMode — Two-Stage Constraint Creation Pattern is the base for all two-point constraint tools (Weld, Rope, BallSocket, Elastic, Hydraulic, NoCol…
BaseConstraintToolMode for Constraint Tools
BaseConstraintToolMode Abstract Class Base class for two-stage constraint tools (weld, rope, elastic, etc.) with selection point handling. Class Overview Contro…
Trigger-Based Background Music Crossfade Framework
This pattern replaces area music with a small local-client music framework. Each zone requests a target , while one controller crossfades the currently playing …
s&box TaskBase: NPC task base class
Abstract base class for NPC tasks. Tasks are executed as part of a Schedule and return a TaskStatus to indicate their state. Properties Methods TaskStatus Enum …
s&box ScheduleBase: NPC schedule base class
Abstract base class for NPC schedules. A schedule executes a sequence of tasks with cancellation support. Properties Methods Behavior Executes tasks sequentiall…
ToolMode Base Class for Toolgun Modes
ToolMode Base Class Abstract base class for creating toolgun modes in s&box. Handles input registration, action dispatch, and HUD rendering. Class Overview Acti…
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 …
Sandbox: NPC system — Schedule, Task, and Layer architecture
NPC System — Schedule, Task, and Layer Architecture The Sandbox NPC system uses a layered architecture: Layers handle continuous behaviours (navigation, senses,…
Component execution order — OnAwake, OnStart, OnUpdate, OnFixedUpdate, and OnLateUpdate
Component Execution Order s&box calls component lifecycle methods in a defined order each frame. Understanding this order is essential for avoiding race conditi…
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…
Debugging and Profiling Tips
Debugging and Profiling Tips Community guide for debugging s&box games based on official tools and developer recommendations. Console Commands Useful built-in c…
Custom GameResource assets — defining asset types with ResourceLibrary and PostLoad registry
Custom GameResource Assets lets you define your own asset types with a custom file extension, inspector UI, and hot-reload support. Assets are JSON files under …
Time Utilities: TimeSince, TimeUntil, and Frame-Rate Independence
s&box provides time utilities for cooldowns, countdowns, and frame-rate independent movement without manual bookkeeping. Time.Delta Seconds since last frame. Mu…
s&box ManualLink: Logical link component
ManualLink Component API Reference ManualLink is a Component that creates a non-physics logical link between two GameObjects, used by the Linker tool to group u…
Common Pitfalls and How to Avoid Them
s&box Common Pitfalls and How to Avoid Them Community-compiled list of frequently encountered issues and their solutions, based on Discord support channels and …
NavMeshLink custom traversal — parabolic jump, ladder climb, and physics jump
NavMeshLink Custom Traversal connects two NavMesh points for agents to traverse (jumps, ladders, teleports). Default traversal linearly interpolates between sta…
Performance Best Practices
s&box Performance Best Practices Community guide for writing performant s&box code based on engine behavior and developer recommendations. Object Pooling Avoid …
s&box Projectile: Collision-based projectile
Projectile Component API Reference Projectile is a Component that implements ICollisionListener for collision-based projectiles. It destroys itself on collision…
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 …