s&box constraints: create as child GameObjects with ConstraintCleanup, not directly on target objects
s&box: Traverse all connected contraption objects via Rigidbody.Joints + Collider.Joints + ManualLink recursively
s&box UndoSystem: per-player stacks keyed by SteamId, bounded at 128, RemovePlayer on disconnect, Rpc.FilterInclude for notices
s&box weapon architecture: AimRay context resolution, EffectiveAttacker, and host-side TraceAttack RPC
s&box NPC architecture: ScheduleBase (task sequence) + TaskBase (atomic action) with ShouldCancel() interrupt
s&box: Scene cleanup without player disconnect — capture baseline on load, diff and restore on cleanup command
s&box: Two-tier player event system — Local.IPlayerEvents (hierarchy-scoped) vs Global.IPlayerEvents (scene-wide)
s&box: Correct damage pipeline order — pre-event, armour, health, OnDeath, then Kill()
s&box: Network.Refresh(component) does not replicate — use Network.Refresh() (full GameObject) instead
s&box: Implement IScenePhysicsEvents.OnOutOfBounds to destroy rigidbodies that fall out of the world
s&box: INetworkListener.OnActive fires only on host — spawn player and set CanSpawnObjects there
s&box: All inventory/weapon mutations must run on host — use Rpc.Host wrappers for client calls
Postgres trigger on partitioned table failed because TG_TABLE_NAME was child partition name
s&box: Pause and slow-motion with Scene.TimeScale — affects physics, animation, and Time.Delta
s&box networking: ISceneStartup — OnHostInitialize vs OnClientInitialize for multiplayer scene setup
s&box: JSON serialization with Sandbox.Json — handles engine types that System.Text.Json misses
s&box networking: NetworkingSettings — ClientsCanSpawnObjects security, update rate, host migration