<?xml version="1.0"?>
<doc>
    <assembly>
        <name>package.facepunch.sandbox</name>
    </assembly>
    <members>
        <member name="T:Sandbox.CleanupSystem">
            <summary>
            A system that tracks the baseline scene state and allows resetting the map to its original state.
            Removes all spawned props and restores destroyed map objects while leaving players untouched.
            </summary>
        </member>
        <member name="F:Sandbox.CleanupSystem._baselineObjectIds">
            <summary>
            Set of GameObjects that existed in the original scene baseline.
            </summary>
        </member>
        <member name="F:Sandbox.CleanupSystem._baselineObjectData">
            <summary>
            Serialized data of baseline objects so we can restore them if destroyed.
            </summary>
        </member>
        <member name="P:Sandbox.CleanupSystem.HasBaseline">
            <summary>
            Whether a baseline has been captured.
            </summary>
        </member>
        <member name="M:Sandbox.CleanupSystem.PreserveBaselineForSaveLoad">
            <summary>
            Call from SaveSystem before Game.ChangeScene() to snapshot the current baseline
            </summary>
        </member>
        <member name="M:Sandbox.CleanupSystem.CaptureBaseline">
            <summary>
            Captures the current scene state as the baseline.
            All objects that exist at this point are considered part of the original map.
            </summary>
        </member>
        <member name="M:Sandbox.CleanupSystem.IsPlayerObject(Sandbox.GameObject)">
            <summary>
            Determines if a GameObject is a player or belongs to a player.
            </summary>
        </member>
        <member name="M:Sandbox.CleanupSystem.Cleanup">
            <summary>
            Cleans up the scene by removing all spawned objects and restoring destroyed baseline objects.
            Players and their belongings are preserved.
            </summary>
        </member>
        <member name="M:Sandbox.CleanupSystem.CleanupCommand(System.String)">
            <summary>
            Console command to cleanup the map.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.CombatNpc.CombatEngageSchedule">
            <summary>
            Engages a visible player: close the gap, fire a burst, pause, then reposition to a flanking point.
            Cancels immediately if the target leaves sight.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.Target">
            <summary>
            The player to engage.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.Weapon">
            <summary>
            Weapon to fire. Should be a child component on the NPC's GameObject. Its NPC usage decides
            the engagement range, burst length and the rest between bursts.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.EngageSpeed">
            <summary>
            Speed the NPC moves when engaging.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.FlankRadius">
            <summary>
            Radius around the current position to pick a flanking point.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.GetFlankPosition">
            <summary>
            Pick a random position perpendicular to the NPC→target axis at <see cref="P:Sandbox.Npcs.CombatNpc.CombatEngageSchedule.FlankRadius"/>.
            Snaps to navmesh if possible.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.CombatNpc.CombatNpc">
            <summary>
            A combat NPC that searches for players, advances on them, fires in bursts, and repositions.
            When friendly, can be recruited to follow a player and engages hostile NPCs instead.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.Friendly">
            <summary>
            When true, this NPC is friendly to players and will follow them, engaging hostile NPCs.
            When false, this NPC targets players and friendly NPCs.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.Weapon">
            <summary>
            The weapon this NPC uses to attack. Its NPC usage decides the engagement range and burst
            cadence - the same soldier fights differently with a shotgun than an SMG.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.AimSpreadScale">
            <summary>
            Skill multiplier on the weapon's NPC spread - 1 is a average shot, lower is more accurate.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.SearchTimeout">
            <summary>
            How long after losing sight of a player to keep searching their last known position.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.FollowDistance">
            <summary>
            How far a friendly NPC will follow a player before stopping.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatNpc.Leader">
            <summary>
            The player this friendly NPC is following, if any.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.CombatNpc.CombatNpc.DropWeapon">
            <summary>
            Drop the held weapon into the world where the hand was, so it survives the NPC's death and can
            be picked up.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.CombatNpc.CombatPatrolSchedule">
            <summary>
            Wanders to random nearby points when no player is known.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.CombatNpc.CombatPatrolSchedule.PatrolRadius">
            <summary>
            Maximum distance from current position to pick a patrol destination.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Disposition">
            <summary>
            How one NPC regards another entity. Drives target selection -- who to fight, follow,
            ignore, or flee from.
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.Disposition.Neutral">
            <summary>No strong feeling -- ignore them.</summary>
        </member>
        <member name="F:Sandbox.Npcs.Disposition.Friendly">
            <summary>An ally -- protect or assist.</summary>
        </member>
        <member name="F:Sandbox.Npcs.Disposition.Hostile">
            <summary>An enemy -- attack on sight.</summary>
        </member>
        <member name="F:Sandbox.Npcs.Disposition.Fearful">
            <summary>A threat to avoid -- flee from them.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Relationship">
            <summary>
            A disposition plus a priority. Priority breaks ties when an NPC must choose between
            several valid targets -- higher wins.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Relationship.#ctor(Sandbox.Npcs.Disposition,System.Int32)">
            <summary>
            A disposition plus a priority. Priority breaks ties when an NPC must choose between
            several valid targets -- higher wins.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Examples.ExampleNpc">
             <summary>
             A minimal NPC to copy when making your own. This "curious villager" wanders around, and
             goes to investigate any gunshot or disturbance it hears nearby.
            
             Everything an NPC needs is here:
               1. A <see cref="P:Sandbox.Npcs.Npc.Faction"/> -- who it is, so others know how to treat it.
               2. Relationships -- who it fights / fears / likes (see <see cref="M:Sandbox.Npcs.Examples.ExampleNpc.SetupRelationships"/>).
               3. A <see cref="M:Sandbox.Npcs.Examples.ExampleNpc.GetSchedule"/> -- what it wants to do right now.
            
             To put one in the world, make a prefab with this component plus a NavMeshAgent, a
             SkinnedModelRenderer (wire it to the Renderer field), and a Collider. The four AI layers
             (Senses, Navigation, Animation, Speech) are added for you automatically.
             </summary>
        </member>
        <member name="T:Sandbox.Npcs.Factions">
            <summary>
            The built-in faction names -- an NPC's faction is its identity to others, like a Source
            engine NPC's class. These are plain strings so UGC NPCs can reuse them or invent their own;
            this list is just the common set so content interoperates.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Layers.AnimationLayer">
            <summary>
            Provides animation parameters and helpers for behaviors.
            Also handles look-at (eyes/head) and body turning via animator parameters.
            Synced properties replicate animation state to all clients.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.HeldProp">
            <summary>
            The prop currently being held, if any.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.SetHeldProp(Sandbox.GameObject)">
             <summary>
             Pick up and hold a prop — disables physics
            
             holdtype_pose ranges:
               0-2 : close grip (~16u out), interpolates weight poses — used for heavy objects, but small enough to hold close
               2-4 : arms extend outwards — used for normal objects, mapped by width
               4-5 : above the head — used for large objects
             </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.ClearHeldProp">
            <summary>
            Drop the held prop — clears IK, holdtype, holdtype_pose, places the prop
            on the ground in front of the NPC, unparents, and re-enables physics.
            Safe to call when nothing is held.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.UpdateHeldPropIk">
            <summary>
            Update IK hand targets each frame from the held prop's bounds.
            If the object is too wide to grip from the sides, support from below with palms up.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.BodyTurnSpeed">
            <summary>
            How fast the body turns to face a look target, in degrees per second.
            Constant rate - an exponential turn covers most of a half-circle in its
            first moments, which reads as a jolting spin.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.MaxAimYaw">
            <summary>How far the head can aim away from the body, in degrees of yaw.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.AimSmoothSpeed">
            <summary>How quickly the head sweeps onto (and lets go of) a look target.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.EnableFootsteps">
            <summary>Play footstep sounds from the model's footstep animation events.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.FootstepVolume">
            <summary>Overall footstep volume multiplier.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.LookTarget">
            <summary>
            Current world-space target the Npc is looking at (if any). Host-only.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.LookTargetObject">
            <summary>
            The GameObject being tracked as the look target, if any. Host-only.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.AnimationLayer.DebugJitter">
            <summary>
            Shows what's feeding the head every frame, to hunt down rhythmic jitter.
            Watch which value pulses: body yaw (someone rotating the object), aim
            (look target moving or flickering), or move params (animgraph input).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.AddLookTarget(Sandbox.GameObject,System.Single)">
            <summary>
            Look at a target for a limited time, overriding the persistent look target.
            The NPC aims at the target's eyes. Call again to extend - when it expires we
            fall back to the persistent target, if any.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.GetEyePosition(Sandbox.GameObject)">
            <summary>
            Where a GameObject's eyes are - the "eyes" attachment if it has a model with
            one (players, NPCs), otherwise roughly head height above its position.
            The local player in first person is really "at" their camera, so on their
            own screen we look straight down the lens.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.GetOwnEyePosition">
            <summary>
            Where this NPC looks from.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.SetLookTarget(Sandbox.GameObject)">
            <summary>
            Set a persistent look target that tracks a GameObject each frame.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.SetLookTarget(Vector3)">
            <summary>
            Set a persistent look target at a fixed world position.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.ClearLookTarget">
            <summary>
            Clear the persistent look target. The NPC will stop tracking.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.ApplyAim(Vector3,System.Single)">
            <summary>
            Ease the applied aim toward a desired direction and weight, clamped to what
            a neck can actually do. Every look path feeds through here, so the head
            sweeps onto targets instead of snapping, and never flip-flops on a target
            directly behind us.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.LookAt(Vector3)">
            <summary>
            Command this layer to look at a target (one-shot, no tracking).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.StopLooking">
            <summary>Stop looking.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.IsFacingTarget">
            <summary>
            Returns true if the NPC body is facing the current look target within MaxHeadAngle.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.SetMove(Vector3,Rotation)">
            <summary>
            Records move state for replication. Called by NavigationLayer on the host.
            All clients apply this each frame in OnUpdate.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.TriggerAttack">
            <summary>
            Broadcasts the attack trigger to all clients so the animation plays everywhere.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.AnimationLayer.SetHoldType(System.String)">
            <summary>
            Sets the holdtype so the NPC poses its arms for the held item - an option name on the
            animgraph's holdtype enum (e.g. "pistol"). Synced to all clients via HoldType.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Layers.BaseNpcLayer">
            <summary>
            A behavior layer provides specific services for tasks to use -- we don't use behavior layers for state, they are services.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.BaseNpcLayer.Npc">
            <summary>
            The owning NPC
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.BaseNpcLayer.GetDebugString">
            <summary>
            Optional debug string shown in the NPC debug overlay. Return null to skip.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.BaseNpcLayer.ResetLayer">
            <summary>
            Reset any runtime state on this layer.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Layers.NavigationLayer">
            <summary>
            Handles Npc navigation
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.WishSpeed">
            <summary>
            The desired movement speed for the agent (its normal walk). Schedules can raise this.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.RunSpeed">
            <summary>
            Speed used to run when the destination is far away -- HL-style: walk when close, run
            when there's ground to cover. Acts as a floor, so a schedule that sets a higher
            <see cref="P:Sandbox.Npcs.Layers.NavigationLayer.WishSpeed"/> (fleeing, charging) is never slowed down.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.RunDistance">
            <summary>Distance beyond which the NPC breaks into a run.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.FaceMovementDirection">
            <summary>
            When true (the default) the NPC turns to face the direction it's moving, so it runs
            forward. Combat schedules set this false to strafe -- face a target while moving.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.TurnSpeed">
            <summary>How quickly the body turns to face the movement direction.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.NavigationLayer.IsMoving">
            <summary>
            True while the agent is actually travelling. Standing NPCs are free to turn
            their body toward whatever they're looking at.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.NavigationLayer.MoveTo(Vector3,System.Single,System.Nullable{System.Single},Sandbox.GameObject)">
            <summary>
            Command this layer to move to a target
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.NavigationLayer.Stop">
            <summary>
            Stop moving and forget the current move target.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.NavigationLayer.GetStatus">
            <summary>
            Current navigation status — reached target, still moving, or failed.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Layers.SensesLayer">
            <summary>
            Handles awareness and environmental scanning.
            Scans for all objects matching <see cref="P:Sandbox.Npcs.Layers.SensesLayer.ScanTags"/> and caches them by tag.
            Whether a scanned object is a hostile target is decided by the NPC's disposition
            toward it (see <see cref="M:Sandbox.Npcs.Npc.GetDisposition(Sandbox.GameObject)"/>), not by tags.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SensesLayer.FieldOfView">
            <summary>
            Total horizontal field of view in degrees. Targets outside this cone aren't seen
            (they can still be heard, or noticed if they're right next to the NPC).
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SensesLayer.ScanTags">
            <summary>
            All tags the NPC should scan for and cache. This is just the broad-phase filter --
            disposition decides who counts as hostile. Defaults to other agents.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SensesLayer.VisibleThreats">
            <summary>Visible entities this NPC is disposed Fearful toward (things to flee from).</summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SensesLayer.Disturbance">
            <summary>
            The most relevant disturbance (gunshot, death, etc.) this NPC currently senses, if any.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.PerceiveStimuli">
            <summary>
            Find the nearest world stimulus this NPC can sense (ignoring its own noise).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.ScanEnvironment">
            <summary>
            Scan for all objects matching <see cref="P:Sandbox.Npcs.Layers.SensesLayer.ScanTags"/>, bucket by tag, and populate
            the hostile-filtered <see cref="P:Sandbox.Npcs.Layers.SensesLayer.VisibleTargets"/>/<see cref="P:Sandbox.Npcs.Layers.SensesLayer.AudibleTargets"/> using
            the NPC's disposition toward each.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.HasLineOfSight(Sandbox.GameObject)">
            <summary>
            Check if we have line of sight to target
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.IsInViewCone(Sandbox.GameObject,System.Single)">
            <summary>
            True if a target is within the NPC's forward field of view. Anything inside personal
            space is always in view -- you notice someone right next to you, even behind.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetNearestVisible">
            <summary>
            Get the nearest visible hostile target (anything this NPC is disposed Hostile toward).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetBestTarget">
            <summary>
            Get the visible hostile this NPC should engage first: highest relationship priority,
            nearest breaking ties.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetNearestVisible(System.String)">
            <summary>
            Get the nearest visible object with a specific tag.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetNearestVisible(Sandbox.Npcs.Disposition)">
            <summary>
            Get the nearest visible entity this NPC regards with the given disposition
            (e.g. the nearest thing it's afraid of).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetPushingPlayer">
            <summary>
            A player inside our personal space who's moving toward us -- they're trying to
            get past and we're in their way. Returns null when nobody is barging in.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetVelocity(Sandbox.GameObject)">
            <summary>
            Resolve a scanned object's velocity from whatever movement source it has.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetVisible(System.String)">
            <summary>
            Get all visible objects with a specific tag from the cache.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SensesLayer.GetAudible(System.String)">
            <summary>
            Get all audible objects with a specific tag from the cache.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Layers.SpeechLayer">
            <summary>
            Manages NPC speech state, plays sound files, and renders subtitle text above their head.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SpeechLayer.CurrentSpeech">
            <summary>
            The subtitle text currently being shown, if any. Synced to all clients.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SpeechLayer.IsSpeaking">
            <summary>
            Whether the NPC is currently speaking. Voice lines usually have no subtitle,
            so this has to watch the sound itself, not just the subtitle text.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SpeechLayer.Cooldown">
            <summary>
            Minimum seconds between speeches.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SpeechLayer.FallbackSound">
            <summary>
            A generic fallback sound (e.g. a grunt or mumble) played when we're talking without a specific sound.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Layers.SpeechLayer.CanSpeak">
            <summary>
            Whether the cooldown has elapsed and the NPC can speak again.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.Say(Sandbox.SoundEvent,System.Single,Sandbox.GameObject)">
            <summary>
            Play a sound event and show its subtitle (if one exists) above the NPC.
            If <paramref name="lookAt"/> is given, the NPC looks them in the eyes
            while talking.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.TrySay(Sandbox.SoundEvent,System.Single,Sandbox.GameObject,Sandbox.TagSet,System.Int32,System.Single)">
            <summary>Attempts to play a tagged sound event.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.Say(Sandbox.SoundEvent,System.String,System.Single,Sandbox.GameObject)">
            <summary>
            Play a sound event with an explicit subtitle override.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.TrySay(Sandbox.SoundEvent,System.String,System.Single,Sandbox.GameObject,Sandbox.TagSet,System.Int32,System.Single)">
            <summary>Attempts to play a tagged sound event with a subtitle.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.Say(System.String,System.Single,Sandbox.GameObject)">
            <summary>
            Say a string message using the fallback sound, with the string shown as a subtitle.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.TrySay(System.String,System.Single,Sandbox.GameObject,Sandbox.TagSet,System.Int32,System.Single)">
            <summary>Attempts to show a tagged message using the fallback sound.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.Stop">
            <summary>
            Stop any current speech and sound.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Layers.SpeechLayer.DrawSpeech">
            <summary>
            Draw a simple speech bubble above the NPC.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Faction">
            <summary>
            The faction this NPC belongs to -- its identity to others, like a Source NPC's class.
            Override per NPC type.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.SetupRelationships">
            <summary>
            Declare this NPC's relationships toward other factions with <see cref="M:Sandbox.Npcs.Npc.Hates(System.String[])"/> /
            <see cref="M:Sandbox.Npcs.Npc.Fears(System.String[])"/> / <see cref="M:Sandbox.Npcs.Npc.Likes(System.String[])"/>. Anything not listed is neutral (ignored).
            Override per NPC type.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Hates(System.String[])">
            <summary>Attack members of these factions.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Hates(System.String,System.Int32)">
            <summary>Attack members of a faction, with a target-selection priority.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Fears(System.String[])">
            <summary>Flee members of these factions.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Likes(System.String[])">
            <summary>Treat members of these factions as allies.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.SetDisposition(Sandbox.GameObject,Sandbox.Npcs.Disposition,System.Int32)">
            <summary>
            Override how this NPC regards a specific entity, ignoring faction defaults -- e.g. a
            cop turning hostile toward someone it saw commit a crime.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.ClearDisposition(Sandbox.GameObject)">
            <summary>Remove a per-entity override, falling back to the faction default.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetRelationship(Sandbox.GameObject)">
            <summary>
            The full relationship (disposition + priority) this NPC has toward another entity.
            Per-entity overrides win, then the faction default, then neutral. Override this for
            fully dynamic relationships (the equivalent of Source's IRelationType).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetDisposition(Sandbox.GameObject)">
            <summary>How this NPC regards another entity.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetFactionOf(Sandbox.GameObject)">
            <summary>
            Resolve any entity's faction -- an NPC's own faction, or the player faction. Returns
            null for things that don't take part in relationships.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Senses">
            <summary>
            Senses layer - handles environmental awareness and target detection
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Navigation">
            <summary>
            Navigation layer - handles pathfinding and movement
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Animation">
            <summary>
            Animation layer - handles look-at and animation parameters
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Speech">
            <summary>
            Speech layer - handles talking, lipsync, etc..
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.ActiveSchedule">
            <summary>
            The current running schedule for this NPC.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Awareness">
            <summary>
            What the NPC is aware of this tick, refreshed before selection.
            Schedules declare which of these interrupt them via <see cref="P:Sandbox.Npcs.ScheduleBase.InterruptedBy"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetSchedule``1">
            <summary>
            Get a schedule -- if it doesn't exist, one will be created. The instance is reused
            across selections, so set its inputs each time you return it; its runtime state is
            reset when it starts.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetSchedule">
            <summary>
            Pick the schedule the NPC most wants to run right now -- return the highest-priority
            applicable one. Only called when (re)selecting, so a little work is fine, but keep it
            free of side effects and avoid randomness that shouldn't re-roll each selection.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GatherAwareness">
            <summary>
            Build what the NPC is aware of this tick. Override to add NPC-specific
            awareness -- call base first.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.TickSchedule">
            <summary>
            Runs once per tick: refresh conditions, then preempt the active schedule with
            something more important, run it, or select a new one when it finishes.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.SelectNewSchedule">
            <summary>
            End the active schedule and start whatever the NPC wants next.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.EndCurrentSchedule">
            <summary>
            End the current schedule cleanly. Can be called by subclasses to interrupt
            the active schedule (e.g. when damaged).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.EmitStimulus(System.String,System.Single,System.Single)">
            <summary>
            Broadcast a stimulus from this NPC's position for nearby NPCs to sense (a gunshot when
            it fires, a death when it dies, and so on).
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.DisplayName">
            <summary>
            The name shown in the kill feed when this NPC is killed.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Npc.Health">
            <summary>Current health. The NPC dies when this drops below 1.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.CreateRagdoll(Vector3,Vector3,System.Single)">
            <summary>
            Spawns a ragdoll at the NPC's current position, copying the renderer and clothing,
            and optionally applies a launch velocity from the attacker.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetAttackerVelocity(Sandbox.GameObject)">
            <summary>
            Resolves the attacker's current velocity from whatever movement source it has.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.GetDeathLaunchVelocity(Sandbox.DamageInfo@)">
            <summary>
            Calculates the launch velocity for a ragdoll based on the damage source.
            For explosions, uses the direction from the blast origin to this NPC.
            Otherwise, falls back to the attacker's physical velocity.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Sandbox#Component#IDamageable#OnDamage(Sandbox.DamageInfo@)">
            <summary>
            Base damage handling: subtract health, let the subclass react via <see cref="M:Sandbox.Npcs.Npc.OnHurt(Sandbox.DamageInfo@)"/>,
            and die at zero. Subclasses react by overriding OnHurt and Die -- they don't touch this.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.OnHurt(Sandbox.DamageInfo@)">
            <summary>Called when the NPC takes damage (before the death check). Override to react.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Npc.Die(Sandbox.DamageInfo@)">
            <summary>
            Notifies the kill feed, spawns a ragdoll, and destroys this NPC. Called automatically
            when health drops below 1. Override to add NPC-specific behaviour before/after death.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.NpcAwareness">
            <summary>
            What an NPC perceives this tick. Schedules declare which of these interrupt them via
            <see cref="P:Sandbox.Npcs.ScheduleBase.InterruptedBy"/>, so an idle schedule yields the moment a threat
            or disturbance appears without having to poll for it itself.
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.NpcAwareness.SeesHostile">
            <summary>A hostile target is visible.</summary>
        </member>
        <member name="F:Sandbox.Npcs.NpcAwareness.SeesThreat">
            <summary>A visible entity the NPC is afraid of -- something it wants to flee.</summary>
        </member>
        <member name="F:Sandbox.Npcs.NpcAwareness.HeardDisturbance">
            <summary>A notable disturbance was sensed nearby -- a gunshot, a death, a scream.</summary>
        </member>
        <member name="F:Sandbox.Npcs.NpcAwareness.PlayerPushing">
            <summary>A player is walking into us -- they want to get past and we're in the way.</summary>
        </member>
        <member name="T:Sandbox.Npcs.NpcConVars">
            <summary>
            Console variables that control NPC AI behaviour globally.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.NpcConVars.Enabled">
            <summary>
            When disabled, all NPC AI thinking is paused — they just stand idle.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.NpcConVars.NoTarget">
            <summary>
            When enabled, NPCs cannot target players.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.NpcStimulusSystem">
            <summary>
            The world stimulus bus. Anything can broadcast a <see cref="T:Sandbox.Npcs.Stimulus"/> (a gunshot, a
            death, a crime) and nearby NPCs sense it through their <see cref="T:Sandbox.Npcs.Layers.SensesLayer"/>.
            This is how the world pushes events at NPCs, rather than NPCs only polling for entities.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcStimulusSystem.Broadcast(System.String,Vector3,Sandbox.GameObject,System.Single,System.Single)">
            <summary>
            Broadcast a stimulus into the world. <paramref name="radius"/> is how far it can be
            sensed; <paramref name="lifetime"/> is how long it lingers (seconds).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcStimulusSystem.Near(Vector3)">
            <summary>
            Active stimuli whose range reaches a position.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.NpcSystem">
            <summary>NPC speech coordination.</summary>
            <summary>Shared NPC coordination for a scene.</summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.TryBeginSpeech(Sandbox.Npcs.Npc,System.Single,Sandbox.TagSet,System.Int32,System.Single)">
            <summary>
            Attempts to reserve speech around an NPC. Higher priorities preempt lower priorities.
            The reservation expires after <paramref name="duration"/> unless stopped early.
            </summary>
            <param name="speaker">NPC requesting the reservation.</param>
            <param name="duration">Length of the selected speech in seconds.</param>
            <param name="tags">Optional tags matched against tag cooldowns.</param>
            <param name="priority">Priority used for blocking and preemption. Defaults to 1000; <see cref="F:System.Int32.MaxValue"/> always speaks.</param>
            <param name="radius">Coordination radius for this line. Defaults to 1500.</param>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.StopSpeech(Sandbox.Npcs.Npc)">
            <summary>Releases all speech reservations owned by an NPC before their normal expiry.</summary>
            <param name="speaker">NPC whose reservations should be released.</param>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.SetTagCooldown(Vector3,System.String,System.Single,System.Single,System.Int32)">
            <summary>Adds a timed tag cooldown around a position.</summary>
            <param name="position">Center of the cooldown area.</param>
            <param name="tag">Speech tag blocked by the cooldown.</param>
            <param name="duration">Cooldown duration in seconds.</param>
            <param name="radius">Cooldown radius. Defaults to 1500.</param>
            <param name="priority">Requests above this priority bypass the cooldown.</param>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.IsWithinSpeechRadius(Vector3,System.Single,Vector3,System.Single)">
            <summary>Returns whether two speech areas overlap, using the larger radius.</summary>
            <param name="firstPosition">Center of the first speech area.</param>
            <param name="firstRadius">Radius of the first speech area.</param>
            <param name="secondPosition">Center of the second speech area.</param>
            <param name="secondRadius">Radius of the second speech area.</param>
        </member>
        <member name="P:Sandbox.Npcs.NpcSystem.Npcs">
            <summary>NPCs currently registered in the scene.</summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.#ctor(Sandbox.Scene)">
            <summary>Creates the scene NPC coordinator.</summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.Register(Sandbox.Npcs.Npc)">
            <summary>Registers an NPC with the scene.</summary>
        </member>
        <member name="M:Sandbox.Npcs.NpcSystem.Unregister(Sandbox.Npcs.Npc)">
            <summary>Removes an NPC and any speech reservation it owns.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.Schedules.RollerChaseSchedule">
            <summary>
            Roller chase: roll toward target then leap at it.
            On completion the schedule ends naturally, GetSchedule re-picks it and loops.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.Schedules.RollerIdleSchedule">
            <summary>
            Roller idles when no target is visible — waits briefly then re-evaluates.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.RollerMorphs">
            <summary>
            Drives morph targets and material glow on the rollermine mesh based on hunting state.
            Same mesh as hoverball — uses Coils_Deployed and Pins_Deployed morphs.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.RollerNpc">
            <summary>
            A physics-driven NPC that chases players, leaps at them, and bounces off dealing damage on contact.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.RollForce">
            <summary>
            Continuous force applied per-frame while rolling toward a target.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.RollTorque">
            <summary>
            Torque applied per-frame to spin the sphere visually.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.StuckJumpForce">
            <summary>
            Upward impulse applied when the rollermine gets stuck.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.LeapForce">
            <summary>
            Impulse applied when leaping at the target.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.LeapUpwardBias">
            <summary>
            Upward component added to the leap direction (0 = flat, 1 = 45°).
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.BounceForce">
            <summary>
            Impulse magnitude applied to self when bouncing off a surface/player.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.ContactDamage">
            <summary>
            Damage applied to anything we crash into.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.LeapRange">
            <summary>
            Distance at which we switch from rolling to leaping.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.Eye">
            <summary>
            Eye child GameObject — assign in editor.
            Rotated to face the current target each frame.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.HuntingEffects">
            <summary>
            GameObject whose child ParticleEffects are enabled while actively hunting a target.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.LeapEffect">
            <summary>
            Prefab cloned at world position when leaping at the target.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.ContactEffect">
            <summary>
            Prefab cloned at the contact point when hitting a player.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.RollSound">
            <summary>
            Looping roll sound — pitch is driven by speed.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.PitchSpeedMax">
            <summary>Speed (units/s) at which pitch reaches PitchMax.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.PitchMin">
            <summary>Pitch at rest.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Roller.RollerNpc.PitchMax">
            <summary>Pitch at full speed.</summary>
        </member>
        <member name="M:Sandbox.Npcs.Roller.RollerNpc.SetHunting(System.Boolean)">
            <summary>
            Called by chase/idle schedules to toggle the hunting particle children.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Roller.RollerNpc.BroadcastLeapEffect">
            <summary>
            Clones the leap effect prefab at our current position (broadcast so all clients see it).
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Roller.RollerNpc.BroadcastContactEffect(Vector3)">
            <summary>
            Clones the contact effect prefab at the hit position (broadcast so all clients see it).
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.Tasks.RollerLeapTask">
            <summary>
            Leaps at the current target with a clean impulse (velocity zeroed first),
            then waits for cooldown before handing back to the roll task.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Roller.Tasks.RollerRollTask">
            <summary>
            Rolls toward the current target by applying force and torque.
            Succeeds when within LeapRange.  Fails if target is lost.
            Force/torque values are configured on RollerNpc.
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.Roller.Tasks.RollerRollTask.StuckSpeedThreshold">
            <summary>If lateral speed stays below this for StuckTime, jump to un-stick.</summary>
        </member>
        <member name="T:Sandbox.Npcs.ScheduleBase">
            <summary>
            A schedule -- can be understood as a way to execute a sequence of tasks
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.ScheduleBase.Priority">
            <summary>
            Selection priority. A running schedule is only preempted by one with a strictly
            higher priority. Use <see cref="T:Sandbox.Npcs.SchedulePriority"/> for the common tiers.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.ScheduleBase.InterruptedBy">
            <summary>
            Stimuli that should make this schedule reconsider mid-run. When one of these newly
            appears, the NPC re-selects and a higher-priority schedule can take over. Defaults
            to the "drop everything and re-think" stimuli so ambient schedules yield to threats
            for free; combat and flee schedules override this to stay focused.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.InternalInit(Sandbox.Npcs.Npc)">
            <summary>
            Initialize the schedule with the Behavior context
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.OnCancelled">
            <summary>
            Called when task is ended because of ShouldCancel returning true
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.InternalUpdate">
            <summary>
            Called every frame while schedule is running
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.InternalEnd">
            <summary>
            Called once when schedule ends
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.OnStart">
            <summary>
            Called when this schedule starts -- this is where you can add tasks to run
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.OnEnd">
            <summary>
            Called when this schedule ends -- this is where you can clean stuff up
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.AddTask(Sandbox.Npcs.TaskBase)">
            <summary>
            Add a task to the sequence
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.StartCurrentTask">
            <summary>
            Start the current task in sequence
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.ScheduleBase.GetDebugString">
            <summary>
            Information about this schedule for debugging purposes
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.SchedulePriority">
            <summary>
            Common schedule priority tiers. A running schedule is only preempted by one with a
            strictly higher priority, so these tiers decide who interrupts whom. Authors are free
            to use their own numbers — these are just sensible defaults.
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.SchedulePriority.Idle">
            <summary>Doing nothing in particular. Yields to everything.</summary>
        </member>
        <member name="F:Sandbox.Npcs.SchedulePriority.Ambient">
            <summary>Ambient behaviour — wandering, patrolling, following, inspecting.</summary>
        </member>
        <member name="F:Sandbox.Npcs.SchedulePriority.Alert">
            <summary>Reacting to something — searching a last-known position, investigating.</summary>
        </member>
        <member name="F:Sandbox.Npcs.SchedulePriority.Combat">
            <summary>Actively fighting a target.</summary>
        </member>
        <member name="F:Sandbox.Npcs.SchedulePriority.Survival">
            <summary>Self-preservation — fleeing, panicking. Overrides combat.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.FollowSchedule">
            <summary>
            Follow a target around, keeping a respectful distance. Re-evaluates each cycle so it
            tracks a moving target. Higher-priority schedules (like fleeing danger) preempt it.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.FollowSchedule.FollowDistance">
            <summary>
            How close we walk up to the target before stopping.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.FollowSchedule.CatchUpDistance">
            <summary>
            How far the target gets before we start walking again. The band between
            this and FollowDistance is "close enough" - without it, a crowd of
            followers endlessly jockeys and shoves to close the last few units.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.FollowSchedule.TooCloseDistance">
            <summary>
            If the target walks right up into our face, back off to arm's length --
            facing them and walking backwards, not turning our back on them.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.InvestigateSchedule">
            <summary>
            Move to a point, look around, and wait -- used to check out a last-known position or a
            heard disturbance. Re-spotting a target preempts this with a higher-priority schedule.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.MoveAsideSchedule">
            <summary>
            A player is walking into us -- step sideways out of their path and let them
            through, HL2 companion style. We step to whichever side of their path we're
            already closest to, so we clear it instead of crossing in front of them,
            and watch them as they pass.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.MoveAsideSchedule.Blocker">
            <summary>The player barging into us.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.MoveAsideSchedule.StepDistance">
            <summary>How far to step out of the way.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.WanderSchedule">
            <summary>
            Wander to a random reachable point nearby, then pause. A simple ambient behaviour any
            NPC can use as its default.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.WanderSchedule.Radius">
            <summary>How far to roam from the current position.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.ScientistFarewellSchedule">
            <summary>
            Stop, turn to face whoever we're talking to, deliver a line while looking them
            in the eyes, and only then get on with life. Used when a player dismisses the
            scientist, so it says goodbye to their face instead of muttering it while
            wandering off.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.ScientistFleeSchedule">
            <summary>
            Panic flee — scream while sprinting away from the source.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Schedules.ScientistFleeSchedule.PanicLevel">
            <summary>
            0–1 panic intensity. Higher values mean faster speed and longer flee distance.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.ScientistIdleSchedule">
            <summary>
            Idle in place — glance around at eye level, and watch the people we can see,
            HL2 style: a visible player gets looked at for a while, then other NPCs, and
            otherwise we just scan the room.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.ScientistInspectPropSchedule">
            <summary>
            Walk to a nearby prop, look at it, and maybe comment on it.
            If the prop is small enough, pick it up, carry it around, then drop it.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Schedules.ScientistWanderSchedule">
            <summary>
            Wander to a random nearby point, avoiding player directions.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Scientist.ScientistNpc.AfraidLevel">
            <summary>
            Current fear level (0–1). Computed from peak fear and time since last hurt.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Scientist.ScientistNpc.FearGracePeriod">
            <summary>
            Seconds at full fear before decay begins.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Scientist.ScientistNpc.FearDecayRate">
            <summary>
            Fear units lost per second after the grace period.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Scientist.ScientistNpc.Leader">
            <summary>
            The player this scientist is following, if any. Press USE on the scientist to toggle.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Scientist.ScientistNpc.GetIdleSchedule">
            <summary>
            Pick a random idle behavior so the scientist doesn't just stand around.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Scientist.ScientistNpc.FindNearbyProp">
            <summary>
            Find the nearest prop within range to inspect.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Stimulus">
            <summary>
            Something that happened in the world that NPCs can sense -- a gunshot, an explosion, a
            scream. Broadcast via <see cref="T:Sandbox.Npcs.NpcStimulusSystem"/>; sensed by <see cref="T:Sandbox.Npcs.Layers.SensesLayer"/>.
            </summary>
        </member>
        <member name="M:Sandbox.Npcs.Stimulus.#ctor(System.String,Vector3,Sandbox.GameObject,System.Single,System.Single)">
            <summary>
            Something that happened in the world that NPCs can sense -- a gunshot, an explosion, a
            scream. Broadcast via <see cref="T:Sandbox.Npcs.NpcStimulusSystem"/>; sensed by <see cref="T:Sandbox.Npcs.Layers.SensesLayer"/>.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.StimulusKind">
            <summary>
            Common stimulus kinds. Plain strings so UGC can add its own; this is just the shared set.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.TaskBase">
            <summary>
            A task
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.TaskBase.Status">
            <summary>
            What is the current status of this task?
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.TaskStatus">
            <summary>
            Status returned by task execution
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.TaskStatus.Running">
            <summary>
            Task is still running, continue executing
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.TaskStatus.Success">
            <summary>
            Task completed successfully
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.TaskStatus.Failed">
            <summary>
            Task failed or was cancelled
            </summary>
        </member>
        <member name="F:Sandbox.Npcs.TaskStatus.Interrupted">
            <summary>
            Task was interrupted by conditions
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.DropProp">
            <summary>
            Tells the AnimationLayer to drop the held prop.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.FireWeapon">
            <summary>
            Fires a burst at a target. The burst length comes from the weapon's NPC usage - a random shot
            count between its burst min and max. Shots only fire while the target is inside the weapon's
            engagement band.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.FireWeapon.Weapon">
            <summary>The weapon component to fire.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.FireWeapon.Target">
            <summary>The GameObject to aim at.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.FireWeapon.AimTurnSpeed">
            <summary>Body rotation speed (degrees/s scale) used while actively aiming. Higher than the default look speed.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.LookAt">
            <summary>
            Sets a persistent look target on the AnimationLayer and waits until the NPC is facing it.
            The look target persists after this task completes — call <see cref="M:Sandbox.Npcs.Layers.AnimationLayer.ClearLookTarget"/>
            when you no longer need it (typically in <see cref="M:Sandbox.Npcs.ScheduleBase.OnEnd"/>).
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.MoveTo">
            <summary>
            Task that commands the NavigationLayer to move to a target position or GameObject.
            When tracking a GameObject, re-evaluates the path periodically.
            Does not override the NPC's look target — but will rotate the body to face the
            movement direction when the angle would otherwise cause silly walking
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.MoveTo.Speed">
            <summary>Movement speed for this task. Null uses the NPC's configured speed.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.MoveTo.FaceTarget">
            <summary>
            Keep facing this object while moving instead of turning into the movement
            direction. The NPC backpedals or strafes -- short moves away from someone
            happen without turning our back on them.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.PickUpProp">
            <summary>
            Tells the AnimationLayer to pick up and hold a prop.
            </summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.Say">
            <summary>
            Task that plays speech via the SpeechLayer. Waits for the speech to finish before completing.
            Accepts either a SoundEvent or a plain string (which uses the fallback sound).
            If LookAt is set, the NPC looks them in the eyes while talking.
            </summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.Say.Tags">
            <summary>Tags describing the line and its shared cooldown groups.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.Say.Priority">
            <summary>Admission and interruption priority for this line.</summary>
        </member>
        <member name="P:Sandbox.Npcs.Tasks.Say.Radius">
            <summary>Distance within which this line coordinates with other NPC speech.</summary>
        </member>
        <member name="T:Sandbox.Npcs.Tasks.Wait">
            <summary>
            Task that waits for a specified duration
            </summary>
        </member>
        <member name="P:Sandbox.SandboxVoice.MutedList">
            <summary>
            A list of muted users.
            </summary>
        </member>
        <member name="M:Sandbox.SandboxVoice.Mute(Sandbox.SteamId)">
            <summary>
            Toggles mute for a user
            </summary>
            <param name="id"></param>
        </member>
        <member name="M:Sandbox.SandboxVoice.IsMuted(Sandbox.SteamId)">
            <summary>
            Is this user muted?
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="T:Sandbox.SaveSystem">
            <summary>
            A saving/loading system that captures the differences between the current scene state and the original scene.
            </summary>
        </member>
        <member name="P:Sandbox.SaveSystem.SaveVersion">
            <summary>
            The current save format version. Saves with a different version are incompatible.
            </summary>
        </member>
        <member name="P:Sandbox.SaveSystem.LoadedSavePath">
            <summary>
            The path of the save file that was most recently loaded, if any.
            </summary>
        </member>
        <member name="P:Sandbox.SaveSystem.HasLoadedSave">
            <summary>
            Whether a save file is currently loaded.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.SetMetadata(System.String,System.String)">
            <summary>
            Set metadata on the current session's save.
            This will be written on the next <see cref="M:Sandbox.SaveSystem.Save(System.String)"/> call.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.GetMetadata(System.String,System.String)">
            <summary>
            Get a metadata value from the current session, falling back to a default value.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.GetAllMetadata">
            <summary>
            Get a copy of all metadata for the current session.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.GetFileMetadata(System.String)">
            <summary>
            Read metadata from a save file on disk without loading the full save.
            Returns null if the file doesn't exist or is invalid.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.GetFileSaveVersion(System.String)">
            <summary>
            Read the save format version from a save file without loading the full save.
            Returns 0 if the file doesn't exist, is invalid, or has no version field.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.Save(System.String)">
            <summary>
            Saves the current world to the given path. This means any changes made to the those original
            scenes are preserved when loading an older save.
            </summary>
            <returns>True if the save was successful.</returns>
        </member>
        <member name="M:Sandbox.SaveSystem.Load(System.String)">
            <summary>
            Load a previously saved game state from a file, applying the differences to the original scene file(s) to reconstruct the saved scene.
            </summary>
            <returns>True if the load was successful.</returns>
        </member>
        <member name="M:Sandbox.SaveSystem.BuildCompositeBaseline">
            <summary>
            This builds a baseline JSON from all the loaded scene files that we've tracked in BeforeLoad.
            The final scene gets diffed against this.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.BuildCompositeBaselineFromFiles(System.Collections.Generic.List{Sandbox.SceneFile},System.Guid)">
            <summary>
            Builds a composite baseline JSON from a list of scene files by merging
            all their GameObjects into a single root node.
            </summary>
            <param name="sceneFiles">The scene files to merge.</param>
            <param name="rootId">The GUID to use for the root node. Match the scene's root ID to make sure diffs dont get fucked.</param>
        </member>
        <member name="M:Sandbox.SaveSystem.BuildCurrentSceneJson(Sandbox.Scene)">
            <summary>
            Serializes the current live scene as a JSON object in the same format as <see cref="M:Sandbox.SaveSystem.BuildCompositeBaseline"/> so the two can be diffed.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.SerializeScenePropertyDiffs(Sandbox.Scene,Sandbox.SceneFile)">
            <summary>
            Get any changes made to scene-level properties (like gravity, nav mesh settings, etc)
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.CollectNetworkOwnership(Sandbox.Scene)">
            <summary>
            Snapshots network ownership for all owned GameObjects in the scene, storing the owner's SteamID.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.RestoreNetworkOwnership(Sandbox.Scene,System.Text.Json.Nodes.JsonObject)">
            <summary>
            Restores network ownership by matching saved SteamIDs to connected players.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.CollectSyncState(Sandbox.Scene)">
            <summary>
            Collects all [Sync]-only property values from every component in the scene, so the networked state can be restored
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.RestoreSyncState(Sandbox.Scene,System.Text.Json.Nodes.JsonObject)">
            <summary>
            Restore the [Sync]-only properties
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.BroadcastShowLoadingScreen">
            <summary>
            Tells all clients to show the loading screen immediately, before Scene.Load() fires.
            </summary>
        </member>
        <member name="M:Sandbox.SaveSystem.BuildPatchedSceneFile(Sandbox.SceneFile,System.Text.Json.Nodes.JsonObject,System.Text.Json.Nodes.JsonNode)">
            <summary>
            Constructs a <see cref="T:Sandbox.SceneFile"/> from the patched JSON data so we can load it just like any other scene
            </summary>
        </member>
        <member name="T:Sandbox.UI.IMixedVirtualGridFullRow">
            <summary>
            Implemented by items that occupy a complete row in a <see cref="T:Sandbox.UI.MixedVirtualGrid"/>.
            </summary>
        </member>
        <member name="T:Sandbox.UI.MixedVirtualGrid">
            <summary>
            A virtual grid that mixes fixed-size tiles with full-width rows.
            </summary>
        </member>
        <member name="P:Sandbox.UI.NoticePanel.Manual">
            <summary>
            If true, the notice won't auto-dismiss. Call <see cref="M:Sandbox.UI.NoticePanel.Dismiss"/> to remove it.
            </summary>
        </member>
        <member name="M:Sandbox.UI.NoticePanel.Dismiss">
            <summary>
            Dismiss a manual notice, causing it to slide out and be deleted.
            </summary>
        </member>
        <member name="M:Sandbox.UI.Notices.SendNotice(Sandbox.Connection,System.String,Color,System.String,System.Single)">
            <summary>
            Send a notice to a specific connection. Must be called from the host.
            </summary>
        </member>
        <member name="M:Sandbox.UI.Scoreboard.BuildHash">
            <summary>
            update every second
            </summary>
        </member>
        <member name="T:Sandbox.ComponentHandle">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:Sandbox.InspectorEditorAttribute">
            <summary>
            Put this on a panel implementing <see cref="T:Sandbox.IInspectorEditor"/> to register it with the inspector.
            </summary>
        </member>
        <member name="T:Sandbox.DragData">
            <summary>
            Data being dragged. Carries enough info for both the visual and the drop action.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Type">
            <summary>
            The spawner type, e.g. "prop", "entity", "dupe".
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Path">
            <summary>
            The cloud ident or resource path.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Icon">
            <summary>
            The icon URL to display while dragging.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Title">
            <summary>
            Optional display title.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Source">
            <summary>
            The panel that initiated the drag, so we can ignore it as a drop target.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.SpawnlistItemId">
            <summary>
            Stable spawnlist entry ID when reordering an editable spawnlist.
            </summary>
        </member>
        <member name="P:Sandbox.DragData.Handled">
            <summary>
            Set to true when a drop target has already handled this drag (e.g. slot-to-slot swap),
            so the source panel's OnDragEnd can skip secondary actions like dropping to the world.
            </summary>
        </member>
        <member name="T:Sandbox.EntityListCloud">
            <summary>
            Local scripted entities followed by cloud entity packages.
            </summary>
        </member>
        <member name="T:Sandbox.SpawnPageCloud">
            <summary>
            Local props followed by cloud model packages.
            </summary>
        </member>
        <member name="T:Sandbox.SpawnlistCollection">
            <summary>
            Class that handles all the spawnlist data fetching and workshop fetching so it's not a huge mess everywhere.
            </summary>
        </member>
        <member name="E:Sandbox.SpawnlistCollection.Changed">
            <summary>
            Raised whenever the visible entry list changes.
            </summary>
        </member>
        <member name="E:Sandbox.SpawnlistCollection.Installed">
            <summary>
            Raised after a workshop install, with the installed entry name.
            </summary>
        </member>
        <member name="E:Sandbox.SpawnlistCollection.Uninstalled">
            <summary>
            Raised after an uninstall.
            </summary>
        </member>
        <member name="P:Sandbox.SpawnlistCollection.PendingCount">
            <summary>
            Number of cookie-tracked workshop entries not yet resolved from storage or the cloud.
            Non-zero while the initial cloud fetch is in progress.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnlistCollection.Refresh">
            <summary>
            Rebuilds the visible list and triggers a cloud re-fetch.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnlistCollection.InstallAsync(Sandbox.Storage.QueryItem)">
            <summary>
            Install a workshop item, persist its ID to cookie, and refresh.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnlistCollection.Uninstall(System.UInt64)">
            <summary>
            Uninstall a workshop-installed entry: remove from cookie, cloud list, and rebuild.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnlistCollection.Delete(Sandbox.Storage.Entry)">
            <summary>
            Delete a locally editable spawnlist and rebuild.
            </summary>
        </member>
        <member name="T:Sandbox.SpawnlistItem">
            <summary>
            A spawnlist item -- lots of cleanup needed, docs, etc
            </summary>
        </member>
        <member name="E:Sandbox.SpawnlistData.SpawnlistCreated">
            <summary>
            Raised whenever a new spawnlist is created, so UI can refresh without needing a panel ancestor walk.
            </summary>
        </member>
        <member name="T:Sandbox.SpawnlistsPage">
            <summary>
            Shared spawnlist support for spawn menu pages.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnlistsPage.RefreshList">
            <summary>Refresh after external changes (create, etc.).</summary>
        </member>
        <member name="T:Sandbox.SpawnMenuIconSize">
            <summary>
            How big tiles are in spawn menu grids.
            </summary>
        </member>
        <member name="P:Sandbox.SpawnMenuIconSizeExtensions.Current">
            <summary>
            The user's chosen tile size, persisted between sessions.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnMenuIconSizeExtensions.ItemSize(Sandbox.SpawnMenuIconSize)">
            <summary>
            Cell size to give a <see cref="T:Sandbox.UI.VirtualGrid"/> for this tile size.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnMenuIconSizeExtensions.CssClass(Sandbox.SpawnMenuIconSize)">
            <summary>
            CSS class to put on the grid so tiles can adapt their text to the size.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnMenuIconSizeExtensions.Icon(Sandbox.SpawnMenuIconSize)">
            <summary>
            Material icon representing this size in the toolbar and its menu.
            </summary>
        </member>
        <member name="M:Sandbox.Hud.IsVisible(HudElement)">
            <summary>
            True if none of the given elements are hidden. HUD panels call this before drawing. The answer
            comes from every <see cref="T:IHudEvents"/> listener in the scene, asked once per frame.
            </summary>
        </member>
        <member name="T:Sandbox.CloudSpawnList.Entry">
            <summary>
            A single tile in the grid, whether it came from disk or from the cloud.
            </summary>
        </member>
        <member name="M:Sandbox.CloudSpawnList.Entry.#ctor(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            A single tile in the grid, whether it came from disk or from the cloud.
            </summary>
        </member>
        <member name="P:Sandbox.CloudSpawnList.PackageType">
            <summary>
            Value of the "type:" term in the package search, e.g. "sent" or "model".
            </summary>
        </member>
        <member name="P:Sandbox.CloudSpawnList.PackageQuery">
            <summary>
            Extra terms appended to the package search.
            </summary>
        </member>
        <member name="P:Sandbox.CloudSpawnList.EmptyTitle">
            <summary>
            Title shown when nothing matched. Null uses the empty state's default.
            </summary>
        </member>
        <member name="M:Sandbox.CloudSpawnList.PackageIdent(Sandbox.Package)">
            <summary>
            Build the spawn ident for a cloud package.
            </summary>
        </member>
        <member name="M:Sandbox.CloudSpawnList.FindLocalEntries">
            <summary>
            Local entries shown ahead of cloud results. Should respect <see cref="P:Sandbox.CloudSpawnList.Filter"/>.
            </summary>
        </member>
        <member name="P:Sandbox.DragHandler.Current">
            <summary>
            The data currently being dragged, or null.
            </summary>
        </member>
        <member name="P:Sandbox.DragHandler.IsDragging">
            <summary>
            True if something is actively being dragged.
            </summary>
        </member>
        <member name="M:Sandbox.DragHandler.StartDragging(Sandbox.DragData)">
            <summary>
            Start dragging with the given data.
            </summary>
        </member>
        <member name="M:Sandbox.DragHandler.StopDragging">
            <summary>
            Stop dragging and clear all state.
            </summary>
        </member>
        <member name="M:Sandbox.Inventory.SelectSlot(System.Int32)">
            <summary>
            Pressing a number key directly switches to that slot's weapon.
            If the slot is empty or already active, holsters the current weapon.
            </summary>
        </member>
        <member name="M:Sandbox.SignalsOverlay.Show(Sandbox.SignalsOverlay.Entry)">
            <summary>
            Keep the overlay visible this frame — call every frame while a tool wants it up,
            optionally with a hover card to show. The overlay also shows itself while the
            inspect menu is open; either way it collects and draws the wires on its own.
            </summary>
        </member>
        <member name="M:Sandbox.SignalsOverlay.CollectConnectors(System.Collections.Generic.List{Sandbox.SignalsOverlay.Connector})">
            <summary>
            Find every wire around the camera: signal connections on outputs, and component
            links (references and presence) on their ManualLink stamps.
            </summary>
        </member>
        <member name="M:Sandbox.SignalsOverlay.TryGetScreenBounds(Sandbox.CameraComponent,Sandbox.GameObject,Sandbox.Rect@)">
            <summary>
            The screen-space box around the object's projected bounds corners, in pixels.
            False when any corner is behind the camera — the box would be meaningless.
            </summary>
        </member>
        <member name="M:Sandbox.SignalsOverlay.ClipToBounds(Sandbox.Rect,Vector2,Vector2)">
            <summary>
            Slide a point sitting inside the box along the line towards the outside point,
            stopping at the box edge.
            </summary>
        </member>
        <member name="P:Sandbox.SpawnMenuHost.IsOpen">
            <summary>
            Whether the menu is currently up (held or pinned), in any mode.
            </summary>
        </member>
        <member name="M:Sandbox.SpawnMenuHost.Local#IPlayerEvents#OnMove(System.Boolean@)">
            <summary>
            Opening the menu with a controller uses the same stick input as movement, so block movement
            while the open button is held (mouse/keyboard players can move and open the menu at once).
            </summary>
        </member>
        <member name="P:Sandbox.SpawnMenuIcon.WantsDrag">
            <summary>
            We want to drag from this panel
            </summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.Title">
            <summary>Title shown at the top of the popup.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.Prompt">
            <summary>Optional subtitle/prompt below the title.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.Placeholder">
            <summary>Placeholder text for the text entry.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.ConfirmLabel">
            <summary>Label for the confirm button.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.InitialValue">
            <summary>Pre-filled value in the text entry.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.ShowInput">
            <summary>When false, hides the text entry — acts as a simple confirm/deny dialog.</summary>
        </member>
        <member name="P:Sandbox.StringQueryPopup.OnConfirm">
            <summary>Called with the trimmed string when the user confirms.</summary>
        </member>
        <member name="P:Sandbox.VerticalMenu.Value">
            <summary>
            The currently selected value of any sub-menus
            </summary>
        </member>
        <member name="P:IPhysgunEvent.GrabEvent.Grabber">
            <summary>
            The connection attempting to grab this object.
            </summary>
        </member>
        <member name="P:IPhysgunEvent.GrabEvent.Cancelled">
            <summary>
            Set to true to cancel the grab.
            </summary>
        </member>
        <member name="M:IPhysgunEvent.OnPhysgunGrab(IPhysgunEvent.GrabEvent)">
            <summary>
            Called when a player attempts to grab this object with the physgun.
            Set <see cref="P:IPhysgunEvent.GrabEvent.Cancelled"/> to true to reject the grab.
            </summary>
        </member>
        <member name="P:IToolgunEvent.SelectEvent.User">
            <summary>
            The connection attempting to use a tool on this object.
            </summary>
        </member>
        <member name="P:IToolgunEvent.SelectEvent.Cancelled">
            <summary>
            Set to true to reject the toolgun selection.
            </summary>
        </member>
        <member name="M:IToolgunEvent.OnToolgunSelect(IToolgunEvent.SelectEvent)">
            <summary>
            Called when a player attempts to select this object with the toolgun.
            Set <see cref="P:IToolgunEvent.SelectEvent.Cancelled"/> to true to reject the selection.
            </summary>
        </member>
        <member name="T:ManualLink">
            <summary>
            A non-physics logical link between two GameObjects.
            Used by the Wire tool to group unconnected objects so the Duplicator
            treats them as part of the same contraption.
            </summary>
        </member>
        <member name="P:ManualLink.IsComponentWire">
            <summary>
            Wires whose output is the source component itself — reference and presence links.
            </summary>
        </member>
        <member name="M:ManualLink.SetWire(Sandbox.Component,System.String,Sandbox.Component,System.String)">
            <summary>
            Stamp the wire on both ends of the pair, so either side can resolve it from
            its own link children.
            </summary>
        </member>
        <member name="T:MorphState">
            <summary>
            Persists morph values on a GameObject so they survive over the network and dupes. 
            </summary>
        </member>
        <member name="P:MorphState.SerializedMorphs">
            <summary>
            Serialized morphs. Persisted for dupes/saves — not synced over the network.
            </summary>
        </member>
        <member name="M:MorphState.ApplyBatch(System.String)">
            <summary>
            Apply a partial morph batch on the host, then broadcast to all clients.
            </summary>
        </member>
        <member name="M:MorphState.ApplyPreset(System.String)">
            <summary>
            Apply a full morph preset on the host (resets all first), then broadcast to all clients.
            </summary>
        </member>
        <member name="M:MorphState.Capture(Sandbox.SkinnedModelRenderer)">
            <summary>
            Snapshot all current morph values from <paramref name="smr"/> into <see cref="P:MorphState.SerializedMorphs"/>.
            </summary>
        </member>
        <member name="M:MorphState.Apply">
            <summary>
            Apply the stored <see cref="P:MorphState.SerializedMorphs"/> to the first <see cref="T:Sandbox.SkinnedModelRenderer"/> we find.
            Called on spawn/dupe restore.
            </summary>
        </member>
        <member name="T:MountMetadata">
            <summary>
            Attached to mount-spawned props. This tries to show a graceful bounding box and hints the player what game it's from if they don't have the mount installed.
            </summary>
        </member>
        <member name="T:Ownable">
            <summary>
            Tracks which connection spawned this object
            </summary>
        </member>
        <member name="P:Ownable.Owner">
            <summary>
            I would fucking love to be able to Sync these..
            And it would just do this exact behaviour. Why not?
            </summary>
        </member>
        <member name="M:Ownable.Set(Sandbox.GameObject,Sandbox.Connection)">
            <summary>
            Sets a gameObject as owned by a connection. If the gameObject already has an Ownable component, it'll just update the owner.
            </summary>
            <param name="go"></param>
            <param name="owner"></param>
            <returns></returns>
        </member>
        <member name="P:Ownable.OwnershipChecks">
            <summary>
            When enabled, players can only physgun/toolgun objects they own.
            Host is always exempt. Off by default.
            </summary>
        </member>
        <member name="T:PhysicalProperties">
            <summary>
            Persists physical properties (mass, gravity, health) across duplication and networking.
            Attach this to any GameObject to ensure these values survive serialization.
            </summary>
        </member>
        <member name="T:BanSystem">
            <summary>
            Holds a banlist, can ban users
            </summary>
        </member>
        <member name="M:BanSystem.Ban(Sandbox.Connection,System.String)">
            <summary>
            Bans a connected player and kicks them immediately
            </summary>
        </member>
        <member name="M:BanSystem.Ban(Sandbox.SteamId,System.String)">
            <summary>
            Bans a Steam ID by value. Use for pre-banning or banning players who are not currently connected.
            Display name falls back to the Steam ID string.
            </summary>
        </member>
        <member name="M:BanSystem.Unban(Sandbox.SteamId)">
            <summary>
            Removes the ban for the given Steam ID.
            </summary>
        </member>
        <member name="M:BanSystem.IsBanned(Sandbox.SteamId)">
            <summary>
            Returns true if the given Steam ID is currently banned
            </summary>
        </member>
        <member name="M:BanSystem.GetBannedList">
            <summary>
            Returns a read-only view of all active bans
            </summary>
        </member>
        <member name="M:BanSystem.RpcBanPlayer(Sandbox.Connection,System.String)">
            <summary>
            RPC to ban a connected player. Caller must be host or have admin permission.
            </summary>
        </member>
        <member name="M:BanSystem.BanCommand(System.String,System.String)">
            <summary>
            Bans a player by name or Steam ID. Optionally provide a reason.
            Usage: ban [name|steamid] [reason]
            </summary>
        </member>
        <member name="T:ClientInput">
            <summary>
            A configurable input action for contraptions driven from a seat. This contains no state:
            it reads the active driver's connection while <see cref="M:IPlayerControllable.OnControl"/>
            is running. Wired inputs are ordinary <see cref="T:SignalInputAttribute"/> handlers instead.
            </summary>
        </member>
        <member name="T:ControlContext">
             <summary>
             Answers "which player caused this?" while entity code is running.
            
             When a signal input fires or a seat pushes key states, the system notes who did it here.
             If your code needs to blame someone — kill credit, undo, prop protection — just read
             <see cref="P:ControlContext.Player"/>. It's null when nobody is responsible (e.g. map logic).
             </summary>
        </member>
        <member name="P:ControlContext.Player">
            <summary>
            The player who caused whatever is currently running, or null.
            </summary>
        </member>
        <member name="T:ControlContext.Scope">
            <summary>
            Restores whoever was responsible before when disposed, so nested pushes unwind cleanly.
            </summary>
        </member>
        <member name="M:ControlContext.Push(Player,Sandbox.Connection)">
            <summary>
            Mark a player as responsible for the code that runs until the scope is disposed:
            <code>using var scope = ControlContext.Push( player );</code>
            </summary>
        </member>
        <member name="T:ControlSystem">
            <summary>
            Lets players drive contraptions from a seat. Every tick, this finds who's sitting in each
            chair and calls <see cref="M:IPlayerControllable.OnControl"/> on the attached contraption.
            </summary>
        </member>
        <member name="T:IPlayerControllable">
            <summary>
            A component that can be driven by the player occupying a linked seat.
            <see cref="M:IPlayerControllable.OnControl"/> runs once per fixed update with the player's input connection active.
            </summary>
        </member>
        <member name="T:SignalEvent">
            <summary>
            The raw value of a signal delivery. You rarely need this — declare inputs as plain
            <c>bool</c>, <c>float</c>, or parameterless methods and the system converts for you.
            </summary>
        </member>
        <member name="M:SignalEvent.#ctor(System.Single,System.Boolean,System.Boolean,System.Boolean,Player)">
            <summary>
            The raw value of a signal delivery. You rarely need this — declare inputs as plain
            <c>bool</c>, <c>float</c>, or parameterless methods and the system converts for you.
            </summary>
        </member>
        <member name="T:SignalInputAttribute">
            <summary>
            Makes a method or property wireable as an input. Works on: a parameterless method (fires
            once when the signal turns on), a method taking a <c>bool</c> or <c>float</c>, or a writable
            <c>bool</c>/<c>float</c> property.
            On a writable property of a Component type it becomes a component input instead: linking
            sets the property to the source component directly, and only components of that type
            (marked <see cref="T:SignalOutputAttribute"/> on their class) can be linked to it.
            The member's name is the wire's name — renaming it breaks saved contraptions.
            </summary>
        </member>
        <member name="P:SignalInputAttribute.Id">
            <summary>
            The stable port id. Defaults to the member name.
            </summary>
        </member>
        <member name="T:SignalOutputAttribute">
            <summary>
            Makes a <see cref="T:SignalOutput"/> property wireable as an output.
            The member's name is the wire's name — renaming it breaks saved contraptions.
            On a class it exposes the component itself as a linkable reference instead: players can
            wire it into any component input (<see cref="T:SignalInputAttribute"/> on a property of a
            matching type) and the input receives the component directly. Wired into a boolean
            input instead, it holds the input on for as long as the link exists.
            </summary>
        </member>
        <member name="T:SignalConnection">
            <summary>
            One wire: which component and which input it feeds into.
            </summary>
        </member>
        <member name="T:SignalOutput">
             <summary>
             An output port that players can wire to inputs on other entities. Call whichever
             <c>Emit</c> overload matches what you have — the receiving end converts as needed.
             State providers should emit every tick while active; this keeps continuous inputs push-driven.
             Only does anything on the host.
            
             Credit follows automatically: whoever last pressed or signaled this component is
             passed along with the emit. Pass an instigator explicitly only to override that.
             </summary>
        </member>
        <member name="M:SignalOutput.Emit(Sandbox.Component,Player)">
            <summary>
            Fire a one-shot pulse — "something happened once".
            </summary>
        </member>
        <member name="M:SignalOutput.Emit(Sandbox.Component,System.Boolean,Player)">
            <summary>
            Emit an on/off state.
            </summary>
        </member>
        <member name="M:SignalOutput.Emit(Sandbox.Component,System.Single,Player)">
            <summary>
            Emit a number. Values above 0.5 count as "on".
            </summary>
        </member>
        <member name="T:SignalInputBinding">
            <summary>
            What actually runs when a signal arrives at an input.
            </summary>
        </member>
        <member name="M:SignalInputBinding.#ctor(Sandbox.MethodDescription,Sandbox.PropertyDescription,SignalInputKind,System.Action{Sandbox.Component,SignalEvent})">
            <summary>
            What actually runs when a signal arrives at an input.
            </summary>
        </member>
        <member name="T:ISignalAdapter">
            <summary>
            Lets a custom property type act as a signal input. Just implement this anywhere —
            it's found automatically.
            </summary>
        </member>
        <member name="T:SignalPortDescription">
            <summary>
            The shared metadata exposed by both ends of a signal connection.
            </summary>
        </member>
        <member name="P:SignalPortDescription.ComponentType">
            <summary>
            Component ports: the component type this port provides or accepts. Null for signal ports.
            </summary>
        </member>
        <member name="T:SignalOutputDescription">
            <summary>
            An output port found on a component: its name and how to reach it.
            </summary>
        </member>
        <member name="T:SignalInputDescription">
            <summary>
            An input port found on a component: its name and how to reach it.
            </summary>
        </member>
        <member name="T:SignalPort">
            <summary>
            One input or output declared on a component type.
            </summary>
        </member>
        <member name="M:SignalPort.#ctor(System.String,System.String,System.String,System.String,System.Boolean,System.Int32)">
            <summary>
            One input or output declared on a component type.
            </summary>
        </member>
        <member name="P:SignalPort.Property">
            <summary>
            Outputs: the property holding the SignalOutput.
            </summary>
        </member>
        <member name="P:SignalPort.Binding">
            <summary>
            Inputs: what to run when a signal arrives.
            </summary>
        </member>
        <member name="P:SignalPort.ComponentType">
            <summary>
            Component ports: the component type this port provides or accepts.
            </summary>
        </member>
        <member name="T:SignalSystem">
            <summary>
            Delivers signals from outputs to the inputs they're wired to. Everything runs on the host;
            clients just see the results through normal networking. TypeLibrary owns member caching and
            hotload invalidation; this system resolves ports from its current descriptions when needed.
            </summary>
        </member>
        <member name="F:SignalSystem.ComponentOutputId">
            <summary>
            Port id of the synthetic output a class-level <see cref="T:SignalOutputAttribute"/> creates.
            Can't collide with member names — C# identifiers can't contain '$'.
            </summary>
        </member>
        <member name="M:SignalSystem.InstigatorFor(Sandbox.Component)">
            <summary>
            The player who last pressed or signaled this component, or null.
            </summary>
        </member>
        <member name="M:SignalSystem.GetOutputs(Sandbox.GameObject)">
            <summary>
            Every output under this object's root. Unsorted — UI that lists ports uses <see cref="M:SignalSystem.GetPorts(Sandbox.GameObject)"/>.
            </summary>
        </member>
        <member name="M:SignalSystem.AreCompatible(SignalOutputDescription,SignalInputDescription)">
            <summary>
            Any signal output can wire to any signal input. Component outputs wire to component
            inputs whose property type the component satisfies — or to boolean inputs, which they
            hold on for as long as the link exists.
            </summary>
        </member>
        <member name="M:SignalSystem.CreateLink(SignalOutputDescription,SignalInputDescription)">
            <summary>
            Create a logical object link and connect the selected signal ports in one host operation.
            </summary>
        </member>
        <member name="M:SignalSystem.StampWire(Sandbox.Component,System.String,Sandbox.Component,System.String)">
            <summary>
            Record the wire on the ManualLink pair that carries it, so destroying the link
            (undo, the wire tool's unlink) also disconnects the wire. Wires between objects
            joined some other way (welds, same root) have no pair — that's fine.
            </summary>
        </member>
        <member name="M:SignalSystem.DisconnectWire(ManualLink)">
            <summary>
            Disconnect the wire a dying ManualLink was carrying.
            </summary>
        </member>
        <member name="M:SignalSystem.SetComponentLinkInternal(Sandbox.Component,SignalPort,Sandbox.Component,SignalPort,System.Boolean,Player,ManualLink)">
            <summary>
            Component links set the input property to the source component directly — there is
            no connection list and nothing ever travels; the reference is the whole wire.
            Into a boolean input, the reference implicitly reads as a bool instead: on while
            anything is wired in, off when the last wire dies.
            </summary>
        </member>
        <member name="M:SignalSystem.FindPresenceWire(Sandbox.Component,System.String,Sandbox.Component,ManualLink)">
            <summary>
            Is there a stamped component wire into this input? Optionally from one specific
            source, optionally ignoring a link that's currently being destroyed.
            </summary>
        </member>
        <member name="M:SignalSystem.DestroyStampedWires(Sandbox.Component,System.String)">
            <summary>
            Destroy the stamped ManualLink pairs carrying wires into this input.
            </summary>
        </member>
        <member name="M:SignalSystem.GetContraptionOutputs(Sandbox.GameObject)">
            <summary>
            Every output on this object's contraption (anything joined by welds, joints or links).
            Tools and UI should use this so they all agree on what's wireable.
            </summary>
        </member>
        <member name="M:SignalSystem.GetContraptionInputs(Sandbox.GameObject)">
            <summary>
            Every input on this object's contraption.
            </summary>
        </member>
        <member name="T:EmitMode">
            <summary>
            Whether the emitter fires while the input is held, or toggles on/off with a press.
            </summary>
        </member>
        <member name="F:EmitMode.Toggle">
            <summary>
            Press once to turn on, press again to turn off.
            </summary>
        </member>
        <member name="F:EmitMode.Hold">
            <summary>
            Emits only while the input is held down.
            </summary>
        </member>
        <member name="T:EmitterEntity">
            <summary>
            A world-placed SENT that spawns and controls a particle/VFX emitter.
            The emitter prefab is defined by a <see cref="T:ScriptedEmitter"/> resource.
            </summary>
        </member>
        <member name="P:EmitterEntity.Emitter">
            <summary>
            The emitter definition points to a prefab containing a particle system.
            </summary>
        </member>
        <member name="P:EmitterEntity.Mode">
            <summary>
            Whether this emitter toggles on/off with a press, or emits only while held.
            </summary>
        </member>
        <member name="P:EmitterEntity.ToggleInput">
            <summary>
            Used when <see cref="P:EmitterEntity.Mode"/> is <see cref="F:EmitMode.Toggle"/>.
            </summary>
        </member>
        <member name="P:EmitterEntity.HoldInput">
            <summary>
            Used when <see cref="P:EmitterEntity.Mode"/> is <see cref="F:EmitMode.Hold"/>.
            </summary>
        </member>
        <member name="P:EmitterEntity.IsEmitting">
            <summary>
            Whether the emitter is currently active. Synced to all clients.
            </summary>
        </member>
        <member name="P:EmitterEntity.ManualOn">
            <summary>
            When enabled, forces the emitter on regardless of input or mode.
            Can be set from the editor or wired up externally.
            </summary>
        </member>
        <member name="T:EntitySpawnerEntity">
            <summary>
            A world-placed SENT that spawns another SENT at its location.
            Can be triggered manually via player input or automatically on a timer.
            </summary>
        </member>
        <member name="P:EntitySpawnerEntity.Entity">
            <summary>
            The SENT to spawn.
            </summary>
        </member>
        <member name="P:EntitySpawnerEntity.SpawnInput">
            <summary>
            Input binding that triggers a manual spawn when the player uses this entity.
            </summary>
        </member>
        <member name="P:EntitySpawnerEntity.AutoSpawn">
            <summary>
            When enabled, spawns the entity automatically every <see cref="P:EntitySpawnerEntity.SpawnInterval"/> seconds.
            </summary>
        </member>
        <member name="P:EntitySpawnerEntity.SpawnInterval">
            <summary>
            Seconds between automatic spawns.
            </summary>
        </member>
        <member name="P:EntitySpawnerEntity.MaxEntities">
            <summary>
            Maximum number of entities spawned by this spawner allowed to exist at once.
            New spawns are suppressed until existing ones are destroyed.
            </summary>
        </member>
        <member name="P:ScriptedEmitter.Prefab">
            <summary>
            The prefab containing the particle/VFX system to emit.
            </summary>
        </member>
        <member name="P:ScriptedEmitterModel.Prefab">
            <summary>
            The prefab containing the physical emitter body
            </summary>
        </member>
        <member name="P:ScriptedEntity.Category">
            <summary>
            Used to group this entity under a named category in the spawn menu (e.g. "Chair", "Weapon", "Npc", "World").
            Categories can be nested with <c>/</c>, such as <c>Weapon/Melee</c>.
            Leave blank to place it under "Other".
            </summary>
        </member>
        <member name="P:ScriptedEntity.IncludeCode">
            <summary>
            If this entity uses code then you should enable this so the code is included when publishing.
            </summary>
        </member>
        <member name="P:ScriptedEntity.Developer">
            <summary>
            If true, this entity only appears in the spawn menu when running in the editor.
            Use for test/debug entities that shouldn't ship to players.
            </summary>
        </member>
        <member name="T:TVEntity">
            <summary>
            A TV screen entity that displays the feed from a linked <see cref="T:CameraWeapon"/>.
            Use the Wire tool to wire a Camera's video feed to this TV's display input.
            </summary>
        </member>
        <member name="P:TVEntity.Display">
            <summary>
            The camera whose view is on the screen. A component input: only a Camera
            can be linked here, and linking just sets this reference.
            </summary>
        </member>
        <member name="P:TVEntity.HasLinkedCamera">
            <summary>
            True when a linked camera is actively providing a render texture.
            </summary>
        </member>
        <member name="T:IKillSource">
            <summary>
            Implement on any component that can appear as an attacker in the kill feed.
            Examples: Player, Npc, explosive barrel, turret, whatever the fuck.
            </summary>
        </member>
        <member name="P:IKillSource.DisplayName">
            <summary>
            Display name
            </summary>
        </member>
        <member name="P:IKillSource.SteamId">
            <summary>
            Steam ID for the local "is-me" highlight. Defaults to 0 (not a player).
            </summary>
        </member>
        <member name="P:IKillSource.Tags">
            <summary>
            Entity-type tag passed as <c>attackerTags</c>.
            Return an empty string for plain player kills. Examples: "npc"
            </summary>
        </member>
        <member name="M:IKillSource.OnKill(Sandbox.GameObject)">
            <summary>
            Called on the host when this source kills something.
            Credit kills, update stats, etc. Default is no-op.
            </summary>
        </member>
        <member name="T:IResourcePreview">
            <summary>
            Implement on a <see cref="T:Sandbox.GameResource"/> to enable in-picker previewing.
            When the user clicks an item in the resource picker, <see cref="M:IResourcePreview.OnPreview"/> is called
            instead of immediately selecting it. A "Select" button confirms the choice.
            </summary>
        </member>
        <member name="M:IResourcePreview.OnPreview">
            <summary>
            Called when the user clicks this resource in the picker for preview.
            Use this to play a sound, show a visual, etc.
            </summary>
        </member>
        <member name="M:IResourcePreview.OnPreviewStop">
            <summary>
            Called when the preview should stop (another item previewed, picker closed, or resource selected).
            </summary>
        </member>
        <member name="T:SoundDefinition">
            <summary>
            A categorized sound resource for use on spawned entities (thrusters, hoverballs, emitters, etc.).
            The <see cref="P:SoundDefinition.Category"/> field allows the editor to filter definitions by type.
            </summary>
        </member>
        <member name="P:SoundDefinition.Title">
            <summary>
            Display name for this sound definition.
            </summary>
        </member>
        <member name="P:SoundDefinition.Description">
            <summary>
            Optional description of the sound.
            </summary>
        </member>
        <member name="P:SoundDefinition.Category">
            <summary>
            Category tag used for filtering in the resource picker (e.g. "thruster", "hoverball").
            </summary>
        </member>
        <member name="P:SoundDefinition.Sound">
            <summary>
            The underlying sound event to play.
            </summary>
        </member>
        <member name="M:SoundDefinition.Play(Vector3)">
            <summary>
            Plays the sound at the given world position. Returns default if no sound is set.
            </summary>
        </member>
        <member name="M:SoundDefinition.Play(Vector3,Sandbox.GameObject)">
            <summary>
            Plays the sound at the given world position, parented to a GameObject. Returns default if no sound is set.
            </summary>
        </member>
        <member name="T:UtilityPage">
            <summary>
            Base class for pages opened in the utility tab right panel.
            Decorate subclasses with [Icon], [Title], [Group], and [Order].
            </summary>
        </member>
        <member name="M:UtilityPage.IsPageVisible">
            <summary>
            Return false to hide this page from the utility menu.
            </summary>
        </member>
        <member name="P:BaseBulletWeapon.RecoilPitch">
            <summary>Random pitch punch per shot (min, max degrees).</summary>
        </member>
        <member name="P:BaseBulletWeapon.RecoilYaw">
            <summary>Random yaw punch per shot (min, max degrees).</summary>
        </member>
        <member name="P:BaseBulletWeapon.CameraRecoilStrength">
            <summary>First-person camera shake strength per shot.</summary>
        </member>
        <member name="P:BaseBulletWeapon.CameraRecoilFrequency">
            <summary>First-person camera shake frequency per shot.</summary>
        </member>
        <member name="P:BaseBulletWeapon.ShootForce">
            <summary>Physical kick applied to a standalone (unheld) gun when it fires.</summary>
        </member>
        <member name="M:BaseBulletWeapon.DoRecoil">
            <summary>
            The per-shot kick - eye punch and camera shake for a held gun, a physical shove for a
            standalone one.
            </summary>
        </member>
        <member name="M:BaseBulletWeapon.BulletTrace(Ray,System.Single,System.Single)">
            <summary>
            Bullet trace for this gun - the sandbox's bullet collision rules, skipping player controller
            colliders (players are hit through their hitboxes).
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.IsDropped">
            <summary>
            True while this weapon is loose in the world as a pickup rather than held. Host authoritative -
            the change callback toggles the pickup components (physics, the standalone model) on every peer.
            </summary>
        </member>
        <member name="M:BaseSandboxWeapon.CreateWorldModel(Sandbox.SkinnedModelRenderer)">
            <summary>
            Creates and attaches the world model to the given renderer's bone.
            Use this overload when the weapon is held by something other than a player (e.g. an NPC).
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.InventoryIconOverride">
            <summary>
            Used for overriding the display icon
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.WantsHideHud">
            <summary>
            If true the game should hide the hud when holding this weapon. Useful for cameras, or scopes.
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.Owner">
            <summary>
            The owner of this carriable
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.IsTargetedAim">
            <summary>
            When true, seated aim uses the scene camera direction instead of the weapon's muzzle direction.
            Override in weapons that support player-directed aim (e.g. RPG tracked mode, Physgun aim mode).
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.UnheldAimRay">
            <summary>
            Controlled from a seat with targeted aim fires where the camera looks; otherwise the engine's
            muzzle-based unheld aim applies.
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.AimIgnoreRoot">
            <summary>
            The root GameObject to ignore when tracing from AimRay.
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.Attacker">
            <summary>
            Who gets credit for this weapon's damage (the engine's <see cref="P:Sandbox.BaseCombatWeapon.Attacker"/>).
            The owning player if held, the seated player if controlled from a contraption seat, otherwise
            the nearest kill source or the weapon itself.
            </summary>
        </member>
        <member name="M:BaseSandboxWeapon.OnAdded(Sandbox.BaseInventoryComponent)">
            <summary>
            Runs on the host when added to an inventory. The engine base seeds the magazines and the
            shared reserve pool - only when they've never been filled, so a dropped gun keeps its rounds
            through a pickup.
            </summary>
        </member>
        <member name="P:BaseSandboxWeapon.ShootInput">
            <summary>The input that fires the primary attack when this weapon is controlled via a seat.</summary>
        </member>
        <member name="P:BaseSandboxWeapon.SecondaryInput">
            <summary>The input that fires the secondary attack when this weapon is controlled via a seat.</summary>
        </member>
        <member name="M:BaseSandboxWeapon.OnCanPickup(Sandbox.BaseInventoryComponent)">
            <summary>Weapons wired into a contraption stay put - no pickup prompt, no Touch pickup.</summary>
        </member>
        <member name="M:BaseSandboxWeapon.CanControl(Player)">
            <summary>A seated player can only control this while not holding a weapon of their own.</summary>
        </member>
        <member name="M:BaseSandboxWeapon.OnCameraSetup(Player,Sandbox.CameraComponent)">
            <summary>
            Called when setting up the camera - use this to apply effects on the camera based on this carriable
            </summary>
            <param name="player"></param>
            <param name="camera"></param>
        </member>
        <member name="M:BaseSandboxWeapon.OnCameraMove(Player,Angles@)">
            <summary>
            Can directly influence the player's eye angles here
            </summary>
            <param name="player"></param>
            <param name="angles"></param>
        </member>
        <member name="M:BaseSandboxWeapon.DropIntoWorld(Vector3,Vector3,Sandbox.Connection)">
            <summary>
            Drops this weapon into the world as a pickup - the same live object, so it keeps its state
            (ammo, tool modes). Unparents it, drops network ownership, enables the dropped components and
            tags it cleanable. Host only.
            </summary>
        </member>
        <member name="M:BaseSandboxWeapon.OnDrop">
            <summary>
            The engine inventory is dropping this - throw the live object out in front of the dropper.
            </summary>
        </member>
        <member name="M:BaseSandboxWeapon.IsInUse">
            <summary>
            Is this item currently being used? When true, prevents auto-switching away on item pickup etc.
            </summary>
        </member>
        <member name="M:BaseSandboxWeapon.OnJump">
            <summary>
            The player carrying us just jumped. Forwards to the view model so its anim graph can react.
            </summary>
        </member>
        <member name="T:IronSightsWeapon">
            <summary>
            A weapon that can aim down sights
            </summary>
        </member>
        <member name="P:IronSightsWeapon.IronSightsFireScale">
            <summary>
            Lowers the amount of recoil / visual noise when aiming
            </summary>
        </member>
        <member name="P:IronSightsWeapon.CurrentSpread">
            <summary>Aiming down sights narrows the spread cone.</summary>
        </member>
        <member name="P:MeleeWeapon.SwingDelay">
            <summary>
            Cooldown after a hit connects.
            </summary>
        </member>
        <member name="P:MeleeWeapon.MissSwingDelay">
            <summary>
            Cooldown after a swing misses.
            </summary>
        </member>
        <member name="P:MeleeWeapon.Damage">
            <summary>
            Damage dealt per hit.
            </summary>
        </member>
        <member name="P:MeleeWeapon.Range">
            <summary>
            Reach of the swing trace.
            </summary>
        </member>
        <member name="P:MeleeWeapon.SwingRadius">
            <summary>
            Radius of the swing trace sphere.
            </summary>
        </member>
        <member name="P:MeleeWeapon.SwingForce">
            <summary>
            Physics impulse magnitude applied to hit objects.
            </summary>
        </member>
        <member name="M:MeleeWeapon.PrimaryAttack">
            <summary>
            The swing. Runs once on the owning client - our trace decides what we hit, the engine claims it
            to the host, and the host applies the damage.
            </summary>
        </member>
        <member name="T:ProjectileEntity">
            <summary>
            A projectile. It explodes when it hits something.
            </summary>
        </member>
        <member name="M:ProjectileEntity.NotifyHit(Sandbox.Component.IDamageable,Vector3)">
            <summary>
            Tell the instigator their projectile hit, so they can do things like show a hitmarker
            </summary>
        </member>
        <member name="M:ProjectileEntity.UpdateDirection(Vector3,System.Single)">
            <summary>
            Updates the current direction of the projectile
            </summary>
            <param name="direction"></param>
            <param name="speed"></param>
        </member>
        <member name="T:ViewModel.Throwable">
            <summary>
            Throwable type
            </summary>
        </member>
        <member name="P:ViewModel.IsThrowable">
            <summary>
            Is this a throwable?
            </summary>
        </member>
        <member name="P:ViewModel.ThrowableType">
            <summary>
            The throwable type
            </summary>
        </member>
        <member name="T:ViewModel.ReloadSoundEntry">
            <summary>
            A sound to play at a specific time during reload.
            </summary>
        </member>
        <member name="P:ViewModel.ReloadSoundEntry.Time">
            <summary>
            Seconds after reload starts to play this sound.
            </summary>
        </member>
        <member name="P:ViewModel.ReloadSoundEntry.Sound">
            <summary>
            The sound to play.
            </summary>
        </member>
        <member name="P:ViewModel.ReloadSoundEvents">
            <summary>
            Timed sound events to play during reload.
            </summary>
        </member>
        <member name="P:ViewModel.IncrementalReloadSoundEvents">
            <summary>
            Timed sound events to play during each incremental reload cycle.
            </summary>
        </member>
        <member name="P:ViewModel.IncrementalReloadStartSounds">
            <summary>
            Timed sound events played when starting an incremental reload sequence.
            </summary>
        </member>
        <member name="P:ViewModel.IncrementalReloadFinishSounds">
            <summary>
            Timed sound events played when finishing an incremental reload sequence.
            </summary>
        </member>
        <member name="P:ViewModel.IsIncremental">
            <summary>
            Turns on incremental reloading parameters.
            </summary>
        </member>
        <member name="P:ViewModel.AnimationSpeed">
            <summary>
            Animation speed in general.
            </summary>
        </member>
        <member name="P:ViewModel.IncrementalAnimationSpeed">
            <summary>
            Animation speed for incremental reload sections.
            </summary>
        </member>
        <member name="P:ViewModel.UseFastAnimations">
            <summary>
            Use fast anims?
            </summary>
        </member>
        <member name="P:ViewModel.InertiaScale">
            <summary>
            How much inertia should this weapon have?
            </summary>
        </member>
        <member name="P:ViewModel.LookInertia">
            <summary>
            Swing the viewmodel around based on the player's look direction, with a springy lag. This is purely cosmetic and does not affect the actual camera.
            </summary>
        </member>
        <member name="P:ViewModel.LookInertiaFrequency">
            <summary>
            Spring stiffness - how quickly it pulls back towards your actual look direction.
            </summary>
        </member>
        <member name="P:ViewModel.LookInertiaDamping">
            <summary>
            Spring damping. 1 settles with no overshoot, below 1 wobbles before settling - lower
            for a springier, bouncier feel.
            </summary>
        </member>
        <member name="P:ViewModel.LookInertiaPivotDistance">
            <summary>
            How far out in front of the eye the gun pivots from. Larger values make the same angle
            lag produce a bigger visible swing, since the gun is swinging on a longer arm.
            </summary>
        </member>
        <member name="P:ViewModel.LookInertiaAmount">
            <summary>
            Overall strength of the effect, applied after the spring - 0 is off, 1 is the spring's
            natural lag, above 1 exaggerates it. Use this to dial the whole thing up or down without
            touching how snappy or bouncy it feels (that's Frequency/Damping).
            </summary>
        </member>
        <member name="P:ViewModel.ADSInertiaScale">
            <summary>
            Further multiplies <see cref="P:ViewModel.LookInertiaAmount"/> while aiming down sights (on weapons
            with an <see cref="T:IronSightsWeapon"/>), so the gun holds steadier while aiming - below 1
            calms the sway down, above 1 makes it worse.
            </summary>
        </member>
        <member name="M:ViewModel.UpdateCameraBone(Sandbox.CameraView@)">
            <summary>
            Called by the weapon while the camera composes - feeds the aim inertia and lets the
            animation's camera bone drive the view (reload sway and kicks authored in the anim).
            This mutates the real camera view, not the viewmodel - the viewmodel itself is placed
            separately from the pre-bone snapshot, see <see cref="M:ViewModel.Place(Sandbox.CameraView@)"/>.
            </summary>
        </member>
        <member name="M:ViewModel.Place(Sandbox.CameraView@)">
            <summary>
            Place the view model - called by the weapon's <c>PlaceViewModel</c> with the pre-bone view,
            so the camera bone moves the camera around the gun rather than dragging the gun with it.
            </summary>
        </member>
        <member name="M:ViewModel.OnReloadStart">
            <summary>
            Called when starting to reload a weapon.
            </summary>
        </member>
        <member name="M:ViewModel.OnIncrementalReload">
            <summary>
            Called when incrementally reloading a weapon.
            </summary>
        </member>
        <member name="M:GameManager.IContextMenuEvent#PopulateContextMenu(IContextMenuEvent.Event)">
            <summary>
            The built-in Inspector right-click options: Ignite/Extinguish, Delete and Break.
            Addons add their own by implementing <see cref="T:IContextMenuEvent"/> the same way.
            </summary>
        </member>
        <member name="M:GameManager.DeleteInspectedObject(Sandbox.GameObject)">
            <summary>
            Delete an object from the Inspector context menu.
            </summary>
        </member>
        <member name="M:GameManager.BreakInspectedProp(Sandbox.Prop)">
            <summary>
            Break (gib) a prop from the Inspector context menu.
            </summary>
        </member>
        <member name="M:GameManager.IgniteInspectedObject(Sandbox.GameObject)">
            <summary>
            Set an object on fire from the Inspector context menu. The engine's FireDamage component
            damages every IDamageable under the root until it breaks. Objects that can't break (unbreakable
            props, non-damageable entities) just keep burning.
            </summary>
        </member>
        <member name="M:GameManager.ExtinguishInspectedObject(Sandbox.GameObject)">
            <summary>
            Put out a burning object from the Inspector context menu. Removes every fire effect
            (anything carrying a FireDamage) under the root; descendant destruction is networked.
            </summary>
        </member>
        <member name="M:GameManager.IsOnFire(Sandbox.GameObject)">
            <summary>
            Is this object currently burning? Works on clients too, since the fire prefab is replicated
            as a child of the root. Deliberately not Prop.IsOnFire: that flag is never cleared.
            </summary>
        </member>
        <member name="M:GameManager.Spawn(System.String,System.String,System.Boolean)">
            <summary>
            Spawn from a string identifier (e.g. "prop:path", "entity:path", "dupe.local:id", "dupe.workshop:id").
            Optional metadata string is passed through to the spawner for type-specific use (e.g. mount bounds/title).
            </summary>
        </member>
        <member name="M:GameManager.Kick(Sandbox.Connection,System.String)">
            <summary>
            Kicks a connected player with an optional reason.
            </summary>
        </member>
        <member name="M:GameManager.RpcKickPlayer(Sandbox.Connection,System.String)">
            <summary>
            RPC to kick a player. Caller must be host or have admin permission.
            </summary>
        </member>
        <member name="M:GameManager.KickCommand(System.String,System.String)">
            <summary>
            Kicks a player by name or Steam ID. Optionally provide a reason.
            Usage: kick [name|steamid] [reason]
            </summary>
        </member>
        <member name="M:GameManager.SetConVar(System.String,System.Boolean)">
            <summary>
            Sets a boolean convar and broadcasts the change to all players via chat.
            Only callable by the host.
            </summary>
        </member>
        <member name="M:GameManager.Sandbox#Component#INetworkListener#OnDisconnected(Sandbox.Connection)">
            <summary>
            Called when someone leaves the server. This will only be called for the host.
            </summary>
        </member>
        <member name="M:GameManager.SpawnPlayer(Sandbox.Connection,System.Boolean)">
            <summary>
            Spawns a player for this connection if they don't already have one. Host only.
            Fires <see cref="M:Global.IPlayerEvents.OnPlayerRespawning(PlayerRespawnEvent)"/> first, so listeners can move or
            cancel the spawn. Pass <paramref name="force"/> to skip that event - for addons that cancelled
            the normal flow and now want the player in the world. Returns the new player, or null if the
            connection already has one or a listener cancelled.
            </summary>
        </member>
        <member name="M:GameManager.SpawnPlayer(PlayerData,System.Boolean)">
            <inheritdoc cref="M:GameManager.SpawnPlayer(Sandbox.Connection,System.Boolean)"/>
        </member>
        <member name="M:GameManager.Respawn(Sandbox.Connection)">
            <summary>
            Forcefully respawns a player, whether they're dead or alive. Host only. Removes their current
            player object and any observer without a death, then spawns a fresh one without consulting
            <see cref="M:Global.IPlayerEvents.OnPlayerRespawning(PlayerRespawnEvent)"/>. This is the entry point for addons
            that run their own round flow: cancel the normal respawn, then call this when it's time.
            </summary>
        </member>
        <member name="M:GameManager.DestroyObservers(Sandbox.Connection)">
            <summary>
            Clean up any lingering death observers for this connection.
            </summary>
        </member>
        <member name="M:GameManager.RequestRespawn">
            <summary>
            Called by the client (via PlayerObserver) when they want to respawn. If a listener cancels the
            respawn the observer is kept, so the player stays spectating until an addon calls
            <see cref = "M:GameManager.Respawn(Sandbox.Connection)"/> or the next request goes through.
            </summary>
        </member>
        <member name="F:GameManager.PlayerHull">
            <summary>Approximate standing-player hull, used for spawn clearance and floor settling.</summary>
        </member>
        <member name="F:GameManager._lastSpawnPosition">
            <summary>The last position we spawned a player at, so we can avoid reusing it.</summary>
        </member>
        <member name="M:GameManager.FindSpawnLocation">
            <summary>
            Find a place to respawn: a floor-settled spawn point nobody is standing on, avoiding the
            last one used.
            </summary>
        </member>
        <member name="M:GameManager.OnDeath(Player,Sandbox.DamageInfo)">
            <summary>
            Called on the host when a played is killed
            </summary>
        </member>
        <member name="M:GameManager.OnNpcDeath(Sandbox.Npcs.Npc,Sandbox.DamageInfo)">
            <summary>
            Called on the host when an NPC is killed. Credits the attacker and adds a kill feed entry.
            </summary>
        </member>
        <member name="M:GameManager.ChangeProperty(Sandbox.Component,System.String,System.Object)">
            <summary>
            Change a property, remotely
            </summary>
        </member>
        <member name="M:GameManager.ApplyMorphBatch(Sandbox.SkinnedModelRenderer,System.String)">
            <summary>
            Apply a debounced batch of morph changes to a <see cref = "T:Sandbox.SkinnedModelRenderer"/>,
            replicated to all clients. Only the morphs present in the batch are modified.
            </summary>
        </member>
        <member name="M:GameManager.ApplyFacePosePreset(Sandbox.SkinnedModelRenderer,System.String)">
            <summary>
            Apply a full morph preset (as json), and captures with <see cref = "T:MorphState"/> which replicates changes to other clients
            </summary>
        </member>
        <member name="F:WaterVolume.Objects">
            <summary>
            Roots of objects currently in the water.
            Handy for playing sounds only once per object, even if it has multiple colliders (like ragdolls)
            </summary>
        </member>
        <member name="T:GamePreferences">
            <summary>
            The local user's preferences in Deathmatch
            </summary>
        </member>
        <member name="P:GamePreferences.AutoSwitch">
            <summary>
            Enables automatic switching to better weapons on item pickup
            </summary>
        </member>
        <member name="P:GamePreferences.FastSwitch">
            <summary>
            Enables fast switching between inventory weapons
            </summary>
        </member>
        <member name="P:GamePreferences.ViewBobbing">
            <summary>
            Intensity of your camera's screenshake
            </summary>
        </member>
        <member name="P:GamePreferences.Screenshake">
            <summary>
            Intensity of your camera's screenshake
            </summary>
        </member>
        <member name="T:LimitsSystem">
            <summary>
            Enforces configurable limits on spawning and tool usage.
            Maintains a per-player tracked object list populated from post-events.
            Limit checks iterate only the player's objects, not the entire scene.
            </summary>
        </member>
        <member name="F:LimitsSystem._tracked">
            <summary>
            Per-player tracked objects keyed by SteamId.
            </summary>
        </member>
        <member name="F:LimitsSystem._allTracked">
            <summary>
            Fast lookup to check if a GameObject is already tracked by any player.
            </summary>
        </member>
        <member name="M:LimitsSystem.IsExceeded(System.Int32,System.Int32)">
            <summary>
            Returns true if the given count meets or exceeds the limit.
            A limit of -1 means unlimited (never exceeded). A limit of 0 means none allowed (always exceeded).
            </summary>
        </member>
        <member name="M:LimitsSystem.Count(System.Int64,System.Func{Sandbox.GameObject,System.Boolean})">
            <summary>
            Count tracked objects for a player, pruning destroyed ones. Applies an optional filter.
            </summary>
        </member>
        <member name="M:LimitsSystem.CheckToolLimit``2(IToolActionEvents.ActionData,System.Int32,System.Nullable{ToolInput})">
            <summary>
            Check a per-player tool limit. Returns true if the tool type matched.
            </summary>
        </member>
        <member name="T:ServerSettings">
            <summary>
            Server-controlled settings replicated to all clients.
            </summary>
        </member>
        <member name="P:ServerSettings.DeveloperEntities">
            <summary>
            When enabled, developer entities are visible in the spawn menu for all players.
            Always on in the editor regardless of this value.
            </summary>
        </member>
        <member name="P:ServerSettings.ShowDeveloperEntities">
            <summary>
            Returns true if developer entities should be shown.
            </summary>
        </member>
        <member name="T:AmmoPickup">
            <summary>
            A pickup that gives the player reserve ammo for a matching weapon.
            </summary>
        </member>
        <member name="P:AmmoPickup.AmmoType">
            <summary>
            The ammo resource this pickup gives ammo for.
            When set, ammo is added directly to the player's shared pool for that resource.
            </summary>
        </member>
        <member name="P:AmmoPickup.AmmoAmount">
            <summary>
            The quantity of ammo to give.
            </summary>
        </member>
        <member name="T:BasePickup">
            <summary>
            A weapon, or weapons, or ammo, that can be picked up
            </summary>
        </member>
        <member name="P:BasePickup.Collider">
            <summary>
            The pickup's collider, it is required
            </summary>
        </member>
        <member name="P:BasePickup.PickupSound">
            <summary>
            The sound to play when picking up this item
            </summary>
        </member>
        <member name="M:BasePickup.CanPickup(Player,PlayerInventory)">
            <summary>
            Check if the player can pick up this object
            </summary>
        </member>
        <member name="M:BasePickup.OnPickup(Player,PlayerInventory)">
            <summary>
            Give the player the effect of this pickup
            </summary>
            <returns>Should this object be consumed, eg on successful pickup</returns>
        </member>
        <member name="M:BasePickup.Sandbox#Component#ITriggerListener#OnTriggerEnter(Sandbox.GameObject)">
            <summary>
            Called when a gameobject enters the trigger.
            </summary>
        </member>
        <member name="M:BasePickup.Sandbox#Component#ICollisionListener#OnCollisionStart(Sandbox.Collision)">
            <summary>
            Called when a gameobject enters the trigger.
            </summary>
        </member>
        <member name="T:HealthPickup">
            <summary>
            A pickup that gives the player some health.
            </summary>
        </member>
        <member name="P:HealthPickup.HealthGive">
            <summary>
            How much health to give to the player
            </summary>
        </member>
        <member name="P:BaseToggle.OnStateChanged">
            <summary>
            The toggle state has changed
            </summary>
        </member>
        <member name="M:BaseToggle.StateHasChanged(System.Boolean)">
            <summary>
            The toggle state has changed
            </summary>
        </member>
        <member name="T:FuncMover">
            <summary>
            Moves and Rotates an Object.
            </summary>
        </member>
        <member name="P:TriggerTeleport.Include">
            <summary>
            If not empty, the target must have one of these tags
            </summary>
        </member>
        <member name="P:TriggerTeleport.Exclude">
            <summary>
            If not empty, the target must not have one of these tags
            </summary>
        </member>
        <member name="T:MetadataAttribute">
            <summary>
            A reusable property attribute that stores a string tag for resource picker filtering.
            The editor can read this attribute to filter GameResource assets by matching metadata.
            </summary>
        </member>
        <member name="P:NoclipMoveMode.EnableCollision">
            <summary>
            If true, the player will still collide with the world and other players. This probably
            means that the noclip mode is named wrong. But it's cool. It just becomes a fly around mode.
            </summary>
        </member>
        <member name="T:Player">
            <summary>
            Holds player information like health
            </summary>
        </member>
        <member name="M:Player.KillSelf(Sandbox.Connection)">
            <summary>
            Kill yourself
            </summary>
        </member>
        <member name="M:Player.ChangeMap(System.String)">
            <summary>
            Switch to another map
            </summary>
        </member>
        <member name="M:Player.RunUndo(Sandbox.Connection)">
            <summary>
            Undo the last action for the calling player
            </summary>
        </member>
        <member name="M:Player.FindForConnection(Sandbox.Connection)">
            <summary>
            Find a player for this connection
            </summary>
        </member>
        <member name="M:Player.For(System.Guid)">
            <summary>
            Get player from a connection id
            </summary>
        </member>
        <member name="P:Player.Undo">
            <summary>
            Access the undo system for this player
            </summary>
        </member>
        <member name="P:Player.WantsHideHud">
            <summary>
            True if the player wants the HUD not to draw right now
            </summary>
        </member>
        <member name="M:Player.IHudEvents#OnHudVisibility(HudElement@)">
            <summary>
            Feeds <see cref="P:Player.WantsHideHud"/> into the HUD visibility event, so the camera weapon and freecam
            hide everything through the same path addons use. Panels ask through <see cref="M:Sandbox.Hud.IsVisible(HudElement)"/>.
            </summary>
        </member>
        <member name="P:Player.IsNoclipping">
            <summary>
            Whether this player is currently noclipping. Synced so proxies can animate correctly.
            </summary>
        </member>
        <member name="P:Player.SpawnProtection">
            <summary>Seconds of invulnerability after spawning, to stop spawn-killing. 0 disables it.</summary>
        </member>
        <member name="F:Player._timeSinceSpawned">
            <summary>
            Time since this player last spawned. Drives <see cref="P:Player.IsSpawnProtected"/>.
            </summary>
        </member>
        <member name="P:Player.IsSpawnProtected">
            <summary>
            True while the player is briefly invulnerable just after spawning, per the
            <c>sandbox.spawnprotection</c> convar.
            </summary>
        </member>
        <member name="M:Player.CopyBoneScalesToRagdoll(Sandbox.GameObject)">
            <summary>
            Try to inherit transforms from the player onto its new ragdoll
            </summary>
            <param name="ragdoll"></param>
        </member>
        <member name="M:Player.GetDeathLaunchVelocity(Sandbox.DamageInfo@)">
            <summary>
            Calculates the launch velocity for a ragdoll based on the damage source.
            For explosions, uses the direction from the blast origin to this NPC.
            Otherwise, falls back to the attacker's physical velocity.
            </summary>
        </member>
        <member name="M:Player.NotifyDeath(PlayerDiedParams)">
            <summary>
            Broadcasts death to other players
            </summary>
        </member>
        <member name="M:Player.Kill(Sandbox.DamageInfo@)">
            <summary>
            Called on the host when a player dies
            </summary>
        </member>
        <member name="T:PlayerData">
            <summary>
            Holds persistent player information like deaths, kills
            </summary>
        </member>
        <member name="P:PlayerData.IsMe">
            <summary>
            Is this player data me?
            </summary>
        </member>
        <member name="P:PlayerData.All">
            <summary>
            Data for all players
            </summary>
        </member>
        <member name="M:PlayerData.For(Sandbox.Connection)">
            <summary>
            Get player data for a player
            </summary>
        </member>
        <member name="M:PlayerData.AddStat(System.String,System.Int32)">
            <summary>
            Called on the host, calls a RPC on the player and adds a stat
            </summary>
        </member>
        <member name="T:PlayerPickupEvent">
            <summary>
            Data passed to pickup events. Set <see cref="P:PlayerPickupEvent.Cancelled"/> to true to prevent the pickup.
            </summary>
        </member>
        <member name="T:PlayerDropEvent">
            <summary>
            Data passed to drop events. Set <see cref="P:PlayerDropEvent.Cancelled"/> to true to prevent the drop.
            </summary>
        </member>
        <member name="T:PlayerSwitchWeaponEvent">
            <summary>
            Data passed to switch weapon events. Set <see cref="P:PlayerSwitchWeaponEvent.Cancelled"/> to true to prevent the switch.
            </summary>
        </member>
        <member name="T:PlayerRemoveWeaponEvent">
            <summary>
            Data passed to remove weapon events. Set <see cref="P:PlayerRemoveWeaponEvent.Cancelled"/> to true to prevent the removal.
            </summary>
        </member>
        <member name="T:PlayerMoveSlotEvent">
            <summary>
            Data passed to slot move events. Set <see cref="P:PlayerMoveSlotEvent.Cancelled"/> to true to prevent the move.
            </summary>
        </member>
        <member name="T:PlayerDamageEvent">
            <summary>
            Pre-damage event. Fired before damage is applied. Listeners can modify <see cref="P:PlayerDamageEvent.Damage"/>
            or set <see cref="P:PlayerDamageEvent.Cancelled"/> to block damage entirely.
            </summary>
        </member>
        <member name="T:PlayerRespawnEvent">
            <summary>
            Pre-respawn event. Fired on the host before the player is spawned. Listeners can modify
            <see cref="P:PlayerRespawnEvent.SpawnLocation"/> to control where the player appears, or set <see cref="P:PlayerRespawnEvent.Cancelled"/>
            to stop the spawn entirely - for example an addon running its own round loop that wants dead
            players to wait. A player cancelled after death stays in the observer state; spawn them later
            with <see cref="M:GameManager.Respawn(Sandbox.Connection)"/>, which skips this event. This also fires for the first
            spawn on join, so a listener that cancels there is responsible for giving that connection
            something to look at.
            </summary>
        </member>
        <member name="T:PlayerKillEvent">
            <summary>
            Fired when a player kills another player or NPC.
            </summary>
        </member>
        <member name="T:Local">
            <summary>
            Events fired only to the Player's own GameObject hierarchy.
            </summary>
        </member>
        <member name="M:Local.IPlayerEvents.OnMove(System.Boolean@)">
            <summary>
            Called every tick before movement input is applied. Set <paramref name="allowMovement"/>
            to false to prevent the player from moving with WASD this tick (e.g. while spinning a
            physgun-held object).
            </summary>
        </member>
        <member name="T:Global">
            <summary>
            Events broadcasted to the entire scene for any player action.
            </summary>
            <summary>
            Allows listening to events related to the <see cref="T:Sandbox.SaveSystem"/>.
            Implement this on a <see cref="T:Sandbox.Component"/> to receive callbacks before and after saves and loads.
            </summary>
            <summary>
            Allows listening to spawn events across the scene.
            Implement this on a <see cref="T:Sandbox.Component"/> to receive callbacks before and after objects are spawned.
            </summary>
        </member>
        <member name="M:Global.ISaveEvents.BeforeSave(System.String)">
            <summary>
            Called before the scene state is captured for saving.
            Use this to prepare any transient state that needs to be persisted.
            </summary>
        </member>
        <member name="M:Global.ISaveEvents.AfterSave(System.String)">
            <summary>
            Called after the save file has been written to disk.
            </summary>
        </member>
        <member name="M:Global.ISaveEvents.BeforeLoad(System.String)">
            <summary>
            Called before a save file is loaded — the current scene is still active.
            Use this to clean up any state that won't survive the scene reload.
            </summary>
        </member>
        <member name="M:Global.ISaveEvents.AfterLoad(System.String)">
            <summary>
            Called after a save file has been loaded and the scene is fully restored.
            Use this to re-initialize any runtime state from the loaded data.
            </summary>
        </member>
        <member name="T:Global.ISpawnEvents.SpawnData">
            <summary>
            Data passed to <see cref="M:Global.ISpawnEvents.OnSpawn(Global.ISpawnEvents.SpawnData)"/>. Set <see cref="P:Global.ISpawnEvents.SpawnData.Cancelled"/> to true to prevent the spawn.
            </summary>
        </member>
        <member name="P:Global.ISpawnEvents.SpawnData.Spawner">
            <summary>
            The spawner that will create the object(s).
            </summary>
        </member>
        <member name="P:Global.ISpawnEvents.SpawnData.Transform">
            <summary>
            The world-space transform where the object will be placed.
            </summary>
        </member>
        <member name="P:Global.ISpawnEvents.SpawnData.Player">
            <summary>
            The connection of the player requesting the spawn.
            </summary>
        </member>
        <member name="P:Global.ISpawnEvents.SpawnData.Cancelled">
            <summary>
            Set to true to cancel the spawn.
            </summary>
        </member>
        <member name="T:Global.ISpawnEvents.PostSpawnData">
            <summary>
            Data passed to <see cref="M:Global.ISpawnEvents.OnPostSpawn(Global.ISpawnEvents.PostSpawnData)"/> after a successful spawn.
            </summary>
        </member>
        <member name="P:Global.ISpawnEvents.PostSpawnData.Objects">
            <summary>
            The GameObjects that were spawned.
            </summary>
        </member>
        <member name="M:Global.ISpawnEvents.OnSpawn(Global.ISpawnEvents.SpawnData)">
            <summary>
            Called before an object is spawned into the world.
            Set <see cref="P:Global.ISpawnEvents.SpawnData.Cancelled"/> to true to reject the spawn.
            </summary>
        </member>
        <member name="M:Global.ISpawnEvents.OnPostSpawn(Global.ISpawnEvents.PostSpawnData)">
            <summary>
            Called after an object has been successfully spawned into the world.
            </summary>
        </member>
        <member name="T:PlayerFallDamage">
            <summary>
            Apply fall damage to the player
            </summary>
        </member>
        <member name="P:PlayerFallDamage.FatalFallSpeed">
            <summary>
            Fatal fall speed, you will die if you fall at or above this speed
            </summary>
        </member>
        <member name="P:PlayerFallDamage.MaxSafeFallSpeed">
            <summary>
            Maximum safe fall speed, you won't take damage at or below this speed
            </summary>
        </member>
        <member name="P:PlayerFallDamage.DamageMultiplier">
            <summary>
            Multiply damage amount by this much
            </summary>
        </member>
        <member name="P:PlayerFallDamage.FallSound">
            <summary>
            Fall damage sound
            </summary>
        </member>
        <member name="T:PlayerGib">
            <summary>
            Describes a player gib.
            </summary>
        </member>
        <member name="P:PlayerInventory.Weapons">
            <summary>
            All weapons currently in the inventory, ordered by slot. Narrowing shim over engine Items.
            </summary>
        </member>
        <member name="P:PlayerInventory.ActiveWeapon">
            <summary>
            The currently active weapon. Narrowing shim over the engine's <see cref="P:Sandbox.BaseInventoryComponent.ActiveItem"/>.
            </summary>
        </member>
        <member name="M:PlayerInventory.GetSlot(System.Int32)">
            <summary>
            Returns the weapon in the given slot, or null if the slot is empty.
            </summary>
        </member>
        <member name="M:PlayerInventory.FindExistingWeapon(BaseSandboxWeapon)">
            <summary>
            A weapon of the same class we already carry, if any. Duplicate handling itself is the
            engine's (a duplicate donates its magazine to the reserve, see BaseCombatWeapon.OnAdding) - this
            just finds the weapon the donation lands on, for the pickup notices.
            </summary>
        </member>
        <member name="M:PlayerInventory.SetToolMode(System.String)">
            <summary>
            Activates the named tool mode, giving and equipping the toolgun first if the player doesn't have one.
            </summary>
        </member>
        <member name="M:PlayerInventory.PickupWorldItem(Sandbox.BaseInventoryItem)">
            <summary>
            Engine Touch pickup lands here (see <see cref="P:Sandbox.BaseInventoryComponent.PickupMode"/>). Routes into
            <see cref="M:PlayerInventory.Take(BaseSandboxWeapon,System.Boolean)"/>, so duplicates donate their ammo and the pickup notices fire. Contraption-
            wired weapons refuse themselves (see <see cref="T:BaseSandboxWeapon"/>'s OnCanPickup).
            </summary>
        </member>
        <member name="M:PlayerInventory.OnAdding(Sandbox.BaseInventoryItem,System.Int32)">
            <summary>
            Fires the cancellable pickup events before the engine adds an item.
            </summary>
        </member>
        <member name="M:PlayerInventory.Drop(BaseSandboxWeapon)">
            <summary>
            Drops the given weapon from the inventory. The engine holsters it, the weapon throws itself
            into the world (see <see cref="M:BaseSandboxWeapon.OnDrop"/>) and we switch to the best remaining
            weapon. The cancellable drop event fires from <see cref="M:PlayerInventory.OnDropping(Sandbox.BaseInventoryItem)"/>.
            </summary>
        </member>
        <member name="M:PlayerInventory.GetBestWeapon">
            <summary>
            The weapon the inventory would auto-switch to. The engine's <see cref="M:Sandbox.BaseInventoryComponent.GetBestItem"/>
            handles the Value ordering and the avoid-empty-guns fallback.
            </summary>
        </member>
        <member name="M:PlayerInventory.CanSwitchTo(BaseSandboxWeapon)">
            <summary>
            Asks whether this player may switch to <paramref name="weapon"/> (null means holster). Checks the
            weapon's own <see cref="M:Sandbox.BaseInventoryItem.CanSwitchTo"/>, then fires the cancellable
            switch event on the player and scene-wide, so addons can refuse. Runs wherever it's called - the
            hotbar uses it client-side to filter, <see cref="M:PlayerInventory.SwitchWeapon(BaseSandboxWeapon,System.Boolean)"/> uses it as the gate. Voluntary
            switches are therefore vetoed on the initiating client; the engine's host path isn't hookable.
            </summary>
        </member>
        <member name="M:PlayerInventory.SwitchWeapon(BaseSandboxWeapon,System.Boolean)">
            <summary>
            Switches to the given weapon after asking <see cref="M:PlayerInventory.CanSwitchTo(BaseSandboxWeapon)"/>. Wraps the engine inventory's
            <see cref="M:Sandbox.BaseInventoryComponent.Switch(Sandbox.BaseInventoryItem,System.Boolean)"/>, which handles host-routing and the outgoing weapon's
            holster veto. Forced switches (death, drop, removal) don't come through here and can't be vetoed.
            </summary>
        </member>
        <member name="M:PlayerInventory.DropActiveWeapon">
            <summary>
            Called by the owning client to drop their currently held weapon.
            </summary>
        </member>
        <member name="M:PlayerInventory.Remove(BaseSandboxWeapon)">
            <summary>
            Removes a weapon from the inventory and destroys it without dropping it into the world. The
            engine holsters it, destroys it and switches to the best remaining weapon. The cancellable
            remove event fires from <see cref="M:PlayerInventory.OnRemoving(Sandbox.BaseInventoryItem)"/>.
            </summary>
        </member>
        <member name="T:PlayerLoadout">
            <summary>
            Manages loadout persistence, presets, and restoration for a player.
            Lives on the Player GameObject alongside PlayerInventory.
            Listens to inventory events to auto-save, and handles all loadout RPCs directly.
            </summary>
        </member>
        <member name="T:PlayerLoadout.LoadoutEntry">
            <summary>
            One entry in a serialized loadout: the prefab resource path and the slot it occupies.
            </summary>
        </member>
        <member name="M:PlayerLoadout.ReplaceLoadoutAsync(System.String)">
            <summary>
            Clears the current inventory, waits a frame, then gives the loadout from JSON and equips the best weapon.
            </summary>
        </member>
        <member name="T:PlayerObserver">
            <summary>
            Dead players become these. They try to observe their last corpse. 
            </summary>
        </member>
        <member name="T:PlayerStats">
            <summary>
            Record stats for the local player
            </summary>
        </member>
        <member name="E:UndoSystem.HistoryUpdated">
            <summary>
            Raised on the requesting client when the host sends the latest undo history.
            </summary>
        </member>
        <member name="M:UndoSystem.For(System.Int64)">
            <summary>
            Get the undo stack for a specific SteamId
            </summary>
        </member>
        <member name="M:UndoSystem.RemovePlayer(System.Int64)">
            <summary>
            Call this when a player disconnects to prevent memory leaks!
            </summary>
        </member>
        <member name="M:UndoSystem.Remove(Sandbox.GameObject)">
            <summary>
            Remove a GameObject from all player undo stacks.
            </summary>
        </member>
        <member name="M:UndoSystem.RequestHistory">
            <summary>
            Ask the host for the local player's current undo history.
            </summary>
        </member>
        <member name="M:UndoSystem.UndoEntry(System.Guid)">
            <summary>
            Undo one specific history entry. The caller can only address their own stack.
            </summary>
        </member>
        <member name="T:UndoSystem.PlayerStack">
            <summary>
            Per-player undo stack
            </summary>
        </member>
        <member name="M:UndoSystem.PlayerStack.Create">
            <summary>
            Create a new undo entry
            </summary>
        </member>
        <member name="M:UndoSystem.PlayerStack.Undo">
            <summary>
            Run the undo
            </summary>
        </member>
        <member name="M:UndoSystem.PlayerStack.Undo(System.Guid)">
            <summary>
            Run and remove one specific entry from this player's history.
            </summary>
        </member>
        <member name="M:UndoSystem.PlayerStack.GetHistory">
            <summary>
            Return newest-first history, pruning entries whose objects no longer exist.
            </summary>
        </member>
        <member name="M:UndoSystem.PlayerStack.Remove(Sandbox.GameObject)">
            <summary>
            Remove a GameObject from all entries in this stack.
            </summary>
        </member>
        <member name="T:UndoSystem.Entry">
            <summary>
            An undo entry
            </summary>
        </member>
        <member name="P:UndoSystem.Entry.Name">
            <summary>
            The name of the undo, should fit the format "Undo something". Like "Undo Spawn Prop".
            </summary>
        </member>
        <member name="M:UndoSystem.Entry.Add(Sandbox.GameObject)">
            <summary>
            Add a GameObject that should be destroyed when the undo is undone
            </summary>
        </member>
        <member name="M:UndoSystem.Entry.Add(System.Collections.Generic.IEnumerable{Sandbox.GameObject})">
            <summary>
            Add a collection of GameObjects that should be destroyed when the undo is undone
            </summary>
            <param name="gos"></param>
        </member>
        <member name="M:UndoSystem.Entry.Remove(Sandbox.GameObject)">
            <summary>
            Remove a GameObject from this entry so it will no longer be destroyed on undo.
            </summary>
        </member>
        <member name="M:UndoSystem.Entry.Run(System.Boolean)">
            <summary>
            Run this undo
            </summary>
        </member>
        <member name="T:CloudLoadTracker">
            <summary>
            Tracks how many <see cref="T:ISpawner"/> instances are currently loading, across every
            spawn path (holding the spawner tool, spawn-menu clicks, dupes). Each spawner registers
            its own <see cref="P:ISpawner.Loading"/> task in its constructor - see <see cref="M:CloudLoadTracker.Track(System.Threading.Tasks.Task{System.Boolean})"/>.
            </summary>
        </member>
        <member name="P:CloudLoadTracker.IsLoading">
            <summary>
            True while any spawner is still loading its payload.
            </summary>
        </member>
        <member name="T:DuplicatorSpawner">
            <summary>
            Payload for spawning a duplicator contraption.
            </summary>
        </member>
        <member name="M:DuplicatorSpawner.#ctor(System.String,System.String)">
            <summary>
            Create a duplicator spawner from a storage or workshop ident.
            Resolution and package installation happen asynchronously via <see cref="P:ISpawner.Loading"/>.
            </summary>
        </member>
        <member name="M:DuplicatorSpawner.FromJson(System.String,System.String,System.String)">
            <summary>
            Create from raw dupe JSON (e.g. from a storage entry). No icon.
            </summary>
        </member>
        <member name="M:DuplicatorSpawner.FromData(System.String)">
            <summary>
            Creates a duplicator spawner from the serialized data string. This is what gets synced to clients, so it includes the icon and raw JSON.
            </summary>
            <param name="data"></param>
            <returns></returns>
        </member>
        <member name="T:EntitySpawner">
            <summary>
            Payload for spawning a scripted entity prefab.
            </summary>
        </member>
        <member name="M:EntitySpawner.GetYawCorrection">
            <summary>
            Get a yaw correction so the longest horizontal axis of the bounds aligns with forward.
            </summary>
        </member>
        <member name="M:ISpawnerExtensions.Create(System.String,System.String,System.String,System.String)">
            <inheritdoc cref="M:ISpawnerExtensions.&lt;G&gt;$F5275EE18425D354D1CC4D7200FBC4D4.Create(System.String,System.String,System.String,System.String)"/>
        </member>
        <member name="M:ISpawnerExtensions.&lt;G&gt;$F5275EE18425D354D1CC4D7200FBC4D4.Create(System.String,System.String,System.String,System.String)">
            <summary>
            Create an <see cref="T:ISpawner"/> from its type, path, and optional metadata.
            The spawner may still be loading — await <see cref="P:ISpawner.Loading"/> before use.
            </summary>
        </member>
        <member name="T:ISpawner">
            <summary>
            Describes something that can be spawned into the world
            Implementations handle their own preview rendering and spawn logic.
            </summary>
        </member>
        <member name="P:ISpawner.DisplayName">
            <summary>
            Display name shown in the HUD while holding this payload.
            </summary>
        </member>
        <member name="P:ISpawner.FullIdent">
            <summary>
            A full ident if it's a sbox.game thing
            </summary>
        </member>
        <member name="P:ISpawner.Icon">
            <summary>
            Icon path for this payload, used for inventory display via <c>thumb:path</c>.
            </summary>
        </member>
        <member name="P:ISpawner.Bounds">
            <summary>
            The local-space bounds of the thing being spawned, used to offset placement so it sits on surfaces.
            </summary>
        </member>
        <member name="P:ISpawner.IsReady">
            <summary>
            Whether all required resources (packages, models, etc.) are loaded and ready to place.
            </summary>
        </member>
        <member name="P:ISpawner.Loading">
            <summary>
            A task that completes with true when loading succeeds, or false if it fails.
            </summary>
        </member>
        <member name="P:ISpawner.Data">
            <summary>
            The raw data needed to reconstruct this spawner (e.g. a cloud ident, or JSON).
            </summary>
        </member>
        <member name="P:ISpawner.Prefab">
            <summary>
            The unspawned prefab GameObject, if available. Allows inspecting components before spawning.
            Returns null for spawners that don't use prefabs (e.g. props, duplicator).
            </summary>
        </member>
        <member name="M:ISpawner.PopulateContextMenu(Sandbox.MenuPanel,System.String,System.String)">
            <summary>
            Populate a right-click context menu with spawner-specific options.
            Override in spawner implementations to add custom menu items.
            </summary>
        </member>
        <member name="M:ISpawner.DrawPreview(Transform,Sandbox.Material)">
            <summary>
            Draw a ghost preview at the given world transform.
            </summary>
        </member>
        <member name="M:ISpawner.Spawn(Transform,Player)">
            <summary>
            Actually spawn the thing at the given transform. Called on the host.
            Returns the root GameObject(s) that were spawned so they can be added to undo.
            </summary>
        </member>
        <member name="T:MountSpawner">
            <summary>
            Like <see cref="T:PropSpawner"/>, but attaches <see cref="T:MountMetadata"/> to the spawned object
            so clients without the mount installed can show a fallback cube and install prompt.
            </summary>
        </member>
        <member name="M:MountSpawner.SerializeMetadata(System.String)">
            <summary>Serialize mount metadata to pass through the Spawn RPC.</summary>
        </member>
        <member name="T:PropSpawner">
            <summary>
            Payload for spawning a prop model from a cloud ident.
            </summary>
        </member>
        <member name="T:SpawnerWeapon">
            <summary>
            A weapon that previews and places objects into the world. 
            Accepts any <see cref="T:ISpawner"/> to define what to spawn.
            The spawn menu (or any other system) sets the payload, and this weapon handles
            aiming, previewing, and placement.
            </summary>
        </member>
        <member name="P:SpawnerWeapon.SpawnerData">
            <summary>
            Synced payload descriptor. When this changes on any client,
            <see cref = "M:SpawnerWeapon.OnPayloadDataChanged"/> reconstructs the <see cref = "T:ISpawner"/> locally.
            </summary>
        </member>
        <member name="P:SpawnerWeapon.Spawner">
            <summary>
            The local spawner, built from <see cref="P:SpawnerWeapon.SpawnerData"/>.
            </summary>
        </member>
        <member name="P:SpawnerWeapon.InventoryIconOverride">
            <summary>
            Override the inventory icon with the payload's cloud thumbnail.
            </summary>
        </member>
        <member name="F:SpawnerWeapon._isValidPlacement">
            <summary>
            Whether the current aim position is a valid placement target.
            </summary>
        </member>
        <member name="F:SpawnerWeapon._isRotating">
            <summary>
            True while the player is holding Use to rotate the preview.
            </summary>
        </member>
        <member name="F:SpawnerWeapon._rotationOffset">
            <summary>
            Accumulated rotation offset applied to the spawn preview.
            </summary>
        </member>
        <member name="M:SpawnerWeapon.SetSpawner(ISpawner)">
            <summary>
            Set what this spawner should spawn. Serializes the payload and syncs to all clients via <see cref="P:SpawnerWeapon.SpawnerData"/>.
            </summary>
        </member>
        <member name="M:SpawnerWeapon.ClearPayload">
            <summary>
            Clear the current payload, returning to an idle state.
            </summary>
        </member>
        <member name="M:SpawnerWeapon.RestoreSpawnerData(System.String)">
            <summary>
            Directly restores a previously serialized payload string
            </summary>
        </member>
        <member name="M:SpawnerWeapon.OnPayloadDataChanged">
            <summary>
            Called on every client when <see cref="P:SpawnerWeapon.SpawnerData"/> changes.
            Reconstructs the <see cref="T:ISpawner"/> locally so each client can render the preview.
            </summary>
        </member>
        <member name="M:SpawnerWeapon.SerializeSpawner(ISpawner)">
            <summary>
            Serialize a spawner for networking to <c>type:data</c>
            </summary>
        </member>
        <member name="M:SpawnerWeapon.DeserializeSpawner(System.String)">
            <summary>
            Reconstruct an <see cref="T:ISpawner"/> from <c>type:data</c>
            </summary>
        </member>
        <member name="M:SpawnerWeapon.RemoveFromInventory">
            <summary>
            Remove this weapon from the player's inventory entirely.
            Holsters first, then destroys the game object.
            </summary>
        </member>
        <member name="T:IContextMenuEvent">
            <summary>
            Lets scene components and systems add actions to an object's right-click menu.
            Options are collected with a sort order (lower is higher in the menu), then the Inspector builds the menu.
            The built-ins use 100 (Ignite/Extinguish), 200 (Delete) and 300 (Break); the default of 0 lands above them.
            </summary>
        </member>
        <member name="P:IContextMenuEvent.Event.Target">
            <summary>
            The network root of the object that was right-clicked.
            </summary>
        </member>
        <member name="P:IContextMenuEvent.Event.Options">
            <summary>
            Options collected so far, sorted by order. Stable, so options sharing an order keep insertion order.
            </summary>
        </member>
        <member name="M:IContextMenuEvent.Event.Populate(Sandbox.MenuPanel)">
            <summary>
            Build the collected options into a menu.
            </summary>
        </member>
        <member name="T:HudElement">
            <summary>
            The pieces of the HUD that can be hidden independently. Flags, so a listener can hide several at
            once; <see cref="F:HudElement.All"/> hides everything, which is what the camera weapon and freecam do.
            </summary>
        </member>
        <member name="F:HudElement.Vitals">
            <summary>
            Health and armour.
            </summary>
        </member>
        <member name="F:HudElement.Ammo">
            <summary>
            The active weapon's clip and reserve.
            </summary>
        </member>
        <member name="F:HudElement.Inventory">
            <summary>
            The weapon hotbar.
            </summary>
        </member>
        <member name="F:HudElement.KillFeed">
            <summary>
            The kill feed.
            </summary>
        </member>
        <member name="F:HudElement.Scoreboard">
            <summary>
            The scoreboard (held on the Score bind).
            </summary>
        </member>
        <member name="F:HudElement.ToolInfo">
            <summary>
            The active tool's name, description and action hints.
            </summary>
        </member>
        <member name="F:HudElement.Crosshair">
            <summary>
            The crosshair, pressable tooltips and the cloud-loading ring around it.
            </summary>
        </member>
        <member name="F:HudElement.Nameplates">
            <summary>
            Name and avatar floating over other players.
            </summary>
        </member>
        <member name="F:HudElement.OwnerLabel">
            <summary>
            The "Owned by" label for the object you're looking at.
            </summary>
        </member>
        <member name="F:HudElement.Notices">
            <summary>
            Toast notices in the corner.
            </summary>
        </member>
        <member name="F:HudElement.Voices">
            <summary>
            Who is talking.
            </summary>
        </member>
        <member name="T:IHudEvents">
            <summary>
            Lets any component in the scene hide parts of the HUD. Asked once a frame by <see cref="T:Sandbox.Hud"/>
            whenever a HUD panel wants to know if it may draw. Implement this on an addon component and add
            the elements you want off screen: <c>hidden |= HudElement.Inventory | HudElement.Ammo</c> during a
            build phase, or <c>hidden = HudElement.All</c> for a cutscene. Anything nobody hides stays visible.
            <see cref="P:Player.WantsHideHud"/> (the camera weapon, freecam) hides everything through this same event.
            </summary>
        </member>
        <member name="T:IKillIcon">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:DupesPage">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:EntityPage">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:MountsPage">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:LocalProps">
            <summary>
            Hardcoded models that ship with the game and aren't available on the workshop.
            Add new entries here — they'll appear automatically in the Local props section.
            </summary>
        </member>
        <member name="P:LocalProps.Entry.DisplayName">
            <summary>
            Derives a display name from the filename: strips the extension,
            replaces underscores with spaces, and title-cases each word.
            </summary>
        </member>
        <member name="T:PropsPage">
            <summary>
            This component has a kill icon that can be used in the killfeed, or somewhere else.
            </summary>
        </member>
        <member name="T:ICookieSource">
            <summary>
            We want to save the properties of this instance as cookies.
            </summary>
        </member>
        <member name="P:ICookieSource.CookiePrefix">
            <summary>
            Prefix to put before the names of any cookies, without a trailing period.
            For example: <c>"tool.balloon"</c>
            </summary>
        </member>
        <member name="T:CookieSourceExtensions">
            <summary>
            Extension methods for <see cref="T:ICookieSource"/>.
            </summary>
        </member>
        <member name="M:CookieSourceExtensions.SaveCookies(ICookieSource)">
            <inheritdoc cref="M:CookieSourceExtensions.&lt;G&gt;$50404B163C2297A5D1FD7B9E14FA962D.SaveCookies"/>
        </member>
        <member name="M:CookieSourceExtensions.LoadCookies(ICookieSource)">
            <inheritdoc cref="M:CookieSourceExtensions.&lt;G&gt;$50404B163C2297A5D1FD7B9E14FA962D.LoadCookies"/>
        </member>
        <member name="M:CookieSourceExtensions.&lt;G&gt;$50404B163C2297A5D1FD7B9E14FA962D.SaveCookies">
            <summary>
            Saves any instance properties with a <see cref="T:Sandbox.PropertyAttribute"/>, excluding any
            with <see cref="T:System.Text.Json.Serialization.JsonIgnoreAttribute"/>, into <see cref="P:Sandbox.Game.Cookies"/>.
            </summary>
        </member>
        <member name="M:CookieSourceExtensions.&lt;G&gt;$50404B163C2297A5D1FD7B9E14FA962D.LoadCookies">
            <summary>
            Loads any instance properties with a <see cref="T:Sandbox.PropertyAttribute"/>, excluding any
            with <see cref="T:System.Text.Json.Serialization.JsonIgnoreAttribute"/>, from <see cref="P:Sandbox.Game.Cookies"/>.
            </summary>
        </member>
        <member name="T:LocalData">
            <summary>
            Quick data folder file storage, good for saving local data
            </summary>
        </member>
        <member name="M:LocalData.Set``1(System.String,``0)">
            <summary>
            Serialize <paramref name="value"/> and write it to <c>{key}.json</c> under <see cref="P:Sandbox.FileSystem.Data"/>.
            The directory hierarchy is created automatically.
            </summary>
        </member>
        <member name="M:LocalData.Get``1(System.String,``0)">
            <summary>
            Read and deserialize the value stored at <paramref name="key"/>.
            Returns <paramref name="fallback"/> if the file doesn't exist or deserialization fails.
            </summary>
        </member>
        <member name="M:LocalData.Has(System.String)">
            <summary>
            Returns true if a value has been stored at <paramref name="key"/>.
            </summary>
        </member>
        <member name="M:LocalData.Delete(System.String)">
            <summary>
            Delete the value stored at <paramref name="key"/>. No-op if it doesn't exist.
            </summary>
        </member>
        <member name="T:PackageSortMode">
            <summary>
            A typed sort mode for finding packages.
            </summary>
        </member>
        <member name="M:PackageSortModeExtensions.ToIdentifier(PackageSortMode)">
            <summary>
            Returns the API supported string equivalent of this sort mode.
            </summary>
        </member>
        <member name="M:PackageSortModeExtensions.Icon(PackageSortMode)">
            <summary>
            Material icon representing this sort mode in menus.
            </summary>
        </member>
        <member name="T:SelfCollisionSound">
            <summary>
            Only play the collision sound from this object's surface - not both the impacting surface and this surface.
            </summary>
        </member>
        <member name="T:SpawnPlacement">
            <summary>
            Pure queries for placing things in the world: drop a position to the floor, test whether a
            spot is occupied, and pick a spawn position from one or more candidates. Never moves anything.
            </summary>
        </member>
        <member name="M:SpawnPlacement.DropToFloor(Vector3,BBox,System.Single,Sandbox.GameObject)">
            <summary>
            Settle <paramref name="position"/> onto the first solid (non-trigger) surface within
            <paramref name="maxDrop"/> below it. Returns it unchanged if nothing solid is below.
            </summary>
        </member>
        <member name="M:SpawnPlacement.IsPositionClear(Vector3,BBox,Sandbox.GameObject)">
            <summary>
            True if nothing solid (excluding the static world and triggers) overlaps the hull at
            <paramref name="position"/> — i.e. no player, prop or NPC is already standing there.
            </summary>
        </member>
        <member name="M:SpawnPlacement.FindSpawnPosition(System.Collections.Generic.IEnumerable{Transform},BBox,System.Boolean,System.Single,System.Nullable{Vector3})">
            <summary>
            Pick a spawn position from one or more seed transforms: settle to the floor (unless
            <paramref name="dropToFloor"/> is false), make sure nothing is standing there, and scan
            outward up to <paramref name="scanRadius"/> for a clear spot. Prefers spots away from
            <paramref name="avoid"/>. Best-effort if nothing is clear.
            </summary>
        </member>
        <member name="M:SpawnPlacement.Candidates(Vector3,System.Single)">
            <summary>
            Candidate positions for a seed: the seed itself, then concentric rings of offsets when
            scanning is enabled.
            </summary>
        </member>
        <member name="T:WorkshopSortMode">
            <summary>
            A friendly sort mode for Storage/Workshop queries, wrapping <see cref="T:Sandbox.Storage.SortOrder"/>.
            </summary>
        </member>
        <member name="M:WorkshopSortModeExtensions.ToSortOrder(WorkshopSortMode)">
            <summary>
            Converts to the underlying <see cref="T:Sandbox.Storage.SortOrder"/> value.
            </summary>
        </member>
        <member name="T:CameraWeapon">
            <summary>
            A camera weapon that can be held by a player and renders to a render target texture, which can be displayed on a TV.
            </summary>
        </member>
        <member name="F:CameraWeapon._cameraResolution">
            <summary>
            The RT camera's resolution 
            </summary>
        </member>
        <member name="P:CameraWeapon.RenderTexture">
            <summary>
            The render target texture produced by this camera. Read by <see cref="T:TVEntity"/>.
            </summary>
        </member>
        <member name="M:CameraWeapon.OnCameraSetup(Player,Sandbox.CameraComponent)">
            <summary>
            We want to control the camera fov when held by a player.
            </summary>
        </member>
        <member name="T:HandGrenadeWeapon">
            <summary>
            A throwable grenade weapon
            Cooks while held — explodes in hand if held too long
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.PinPullSound">
            <summary>
            Sound played when the pin is pulled and cooking starts.
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.DeploySound">
            <summary>
            Sound played when deploying the next grenade after a throw.
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.Lifetime">
            <summary>
            Fuse time in seconds — grenade explodes after this, whether thrown or not.
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.Radius">
            <summary>
            Explosion damage radius.
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.MaxDamage">
            <summary>
            Maximum damage at the center.
            </summary>
        </member>
        <member name="P:HandGrenadeWeapon.Force">
            <summary>
            Physics force scale for the explosion.
            </summary>
        </member>
        <member name="T:TimedExplosive">
            <summary>
            Explodes after a set time. Spawns an explosion prefab with configurable radius, damage, and force.
            </summary>
        </member>
        <member name="P:TimedExplosive.Attacker">
            <summary>Who gets credit/blame for the explosion (the thrower). Host-side only. Falls back to the explosion itself.</summary>
        </member>
        <member name="T:M4a1Weapon">
            <summary>
            M4 with an underbarrel grenade launcher on secondary fire. Grenades feed from the secondary
            magazine (Clip2), topped back up from its reserve when reloading.
            </summary>
        </member>
        <member name="P:M4a1Weapon.GrenadePrefab">
            <summary>
            The grenade the launcher fires.
            </summary>
        </member>
        <member name="P:M4a1Weapon.GrenadeSpeed">
            <summary>
            Launch speed of the grenade.
            </summary>
        </member>
        <member name="P:M4a1Weapon.StartingGrenades">
            <summary>
            Reserve grenades granted on first pickup - reloads top the launcher's magazine up from these.
            </summary>
        </member>
        <member name="M:M4a1Weapon.LaunchGrenade(Vector3,Vector3)">
            <summary>
            Spawns and launches the grenade with the host's permission.
            </summary>
        </member>
        <member name="P:Physgun.PullForce">
            <summary>
            The force applied to pull objects to us.
            </summary>
        </member>
        <member name="P:Physgun.LaunchForce">
            <summary>
            The force applied when launching grabbed objects.
            </summary>
        </member>
        <member name="P:Physgun.PullDistance">
            <summary>
            The distance at which we'll grab an object when pulling it towards us.
            </summary>
        </member>
        <member name="P:Physgun.KeyboardMoveSpeed">
            <summary>
            How quickly W/S moves a held object while rotate mode is active.
            </summary>
        </member>
        <member name="P:Physgun.KeyboardYawSpeed">
            <summary>
            How quickly A/D yaws a held object while rotate mode is active.
            </summary>
        </member>
        <member name="P:Physgun.CanAim">
            <summary>
            When true, the physgun aims where the seated player's camera looks.
            </summary>
        </member>
        <member name="T:RpgProjectile">
            <summary>
            An RPG projectile. It supports either being fired in a set direction, or continuously updated with an end target.
            </summary>
        </member>
        <member name="M:RpgProjectile.UpdateWithTarget(Vector3,System.Single)">
            <summary>
            This is meant to be called continuously, updates the target, rotates slowly to it and moves at a set speed.
            </summary>
            <param name = "target"></param>
            <param name = "speed"></param>
        </member>
        <member name="P:RpgWeapon.IsTrackedAim">
            <summary>
            When enabled, fired rockets will continuously track toward the player's crosshair.
            Toggle with right-click (player) or SecondaryInput (standalone/seat).
            </summary>
        </member>
        <member name="P:RpgWeapon.IsGuiding">
            <summary>
            Whether a live rocket is currently being guided toward the crosshair.
            </summary>
        </member>
        <member name="M:RpgWeapon.OnPrimaryDown">
            <summary>
            Standalone / seat control — uses SecondaryInput to toggle tracking.
            </summary>
        </member>
        <member name="M:RpgWeapon.GetAimTarget">
            <summary>
            Traces from AimRay and returns the world-space point the player is looking at.
            </summary>
        </member>
        <member name="M:RpgWeapon.CheckThrowPosition(Player,Vector3,Vector3)">
            <summary>
            Muzzle flash + launch sound. Plays for the shooter (predicted) and, via the host relay, everyone else.
            </summary>
        </member>
        <member name="M:RpgWeapon.CreateProjectile(Vector3,Vector3,System.Single)">
            <summary>
            Creates the projectile with the host's permission
            </summary>
        </member>
        <member name="P:ScreenWeapon.ScreenMaterialName">
            <summary>
            Override to match a different model's screen material.
            </summary>
        </member>
        <member name="P:ScreenWeapon.ScreenMaterialPath">
            <summary>
            Override to use a different screen material
            </summary>
        </member>
        <member name="P:ScreenWeapon.ScreenRefreshInterval">
            <summary>
            Minimum time in seconds between screen redraws
            </summary>
        </member>
        <member name="M:ScreenWeapon.SpinCoil">
            <summary>
            Add energy to the coil spin (e.g. on fire).
            </summary>
        </member>
        <member name="M:ScreenWeapon.ApplyCoilSpin">
            <summary>
            Smoothly decays the coil spin and applies it to the viewmodel's "coil" object.
            </summary>
        </member>
        <member name="M:ScreenWeapon.UpdateJoystick(Angles)">
            <summary>
            Updates joystick_x and joystick_y on the viewmodel based on a per-frame look delta.
            </summary>
        </member>
        <member name="M:ScreenWeapon.UpdateViewmodelScreen">
            <summary>
            Updates the viewmodel screen render target and redraws it.
            </summary>
        </member>
        <member name="M:ScreenWeapon.DrawScreenContent(Sandbox.Rect,Sandbox.Rendering.HudPainter)">
            <summary>
            Override this to draw custom content onto the viewmodel screen.
            </summary>
        </member>
        <member name="T:SniperViewModel">
            <summary>
            Sniper viewmodel helper. Moves the weapon down during scope transitions.
            </summary>
        </member>
        <member name="M:SniperWeapon.ModifyCamera(Sandbox.CameraComponent,Sandbox.CameraView@)">
            <summary>
            Scoped zoom goes through the engine's camera modifier chain - one owner for the FOV, no
            fighting the player's preference FOV write.
            </summary>
        </member>
        <member name="T:IToolActionEvents">
            <summary>
            Allows listening to tool actions across the scene.
            Implement this on a <see cref="T:Sandbox.Component"/> to receive callbacks before and after any tool action fires.
            Use this to enforce limits (e.g. max balloons, max constraints) or react to tool usage.
            </summary>
        </member>
        <member name="T:IToolActionEvents.ActionData">
            <summary>
            Data passed to <see cref="M:IToolActionEvents.OnToolAction(IToolActionEvents.ActionData)"/>. Set <see cref="P:IToolActionEvents.ActionData.Cancelled"/> to true to prevent the action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.ActionData.Tool">
            <summary>
            The tool mode that is about to execute.
            Check <c>e.Tool is BalloonTool</c>, <c>e.Tool is WeldTool</c>, etc. for tool-specific logic.
            </summary>
        </member>
        <member name="P:IToolActionEvents.ActionData.Input">
            <summary>
            Which input triggered this action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.ActionData.Player">
            <summary>
            The connection of the player performing the action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.ActionData.Cancelled">
            <summary>
            Set to true to cancel the action.
            </summary>
        </member>
        <member name="T:IToolActionEvents.PostActionData">
            <summary>
            Data passed to <see cref="M:IToolActionEvents.OnPostToolAction(IToolActionEvents.PostActionData)"/> after a successful action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.PostActionData.Tool">
            <summary>
            The tool mode that executed the action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.PostActionData.Input">
            <summary>
            Which input triggered this action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.PostActionData.Player">
            <summary>
            The connection of the player who performed the action.
            </summary>
        </member>
        <member name="P:IToolActionEvents.PostActionData.CreatedObjects">
            <summary>
            GameObjects created by this action, if any.
            </summary>
        </member>
        <member name="M:IToolActionEvents.OnToolAction(IToolActionEvents.ActionData)">
            <summary>
            Called before a tool action executes.
            Set <see cref="P:IToolActionEvents.ActionData.Cancelled"/> to true to reject the action.
            </summary>
        </member>
        <member name="M:IToolActionEvents.OnPostToolAction(IToolActionEvents.PostActionData)">
            <summary>
            Called after a tool action has executed successfully.
            </summary>
        </member>
        <member name="M:BaseConstraintToolMode.FindConstraints(Sandbox.GameObject,Sandbox.GameObject)">
            <summary>
            Lets tools define what constraints should be removed when removing constraints from a game object.
            </summary>
            <param name="linked"></param>
            <param name="target"></param>
            <returns></returns>
        </member>
        <member name="M:BaseConstraintToolMode.OnConstraintSubmitted(ToolMode.SelectionPoint,ToolMode.SelectionPoint)">
            <summary>
            Called on the owning client after a valid constraint creation was submitted to the host.
            Follow-up RPCs are ordered after the constraint creation RPC.
            </summary>
        </member>
        <member name="T:ButtonMode">
            <summary>
            Determines whether the button is active only briefly when pressed, or alternates
            between on and off for each press.
            </summary>
        </member>
        <member name="T:DuplicationData">
            <summary>
            Holds a bunch of GameObject json, a bounding box, and some preview models for a
            duplication. This is what gets serialized to a string and stored in the Duplicator tool.
            The objects and the bounds are created in selection space. Where the user right clicked to 
            select is 0,0,0, and the player's view yaw is the rotation identity.
            </summary>
        </member>
        <member name="P:DuplicationData.Objects">
            <summary>
            An array of JsonObject objects, which are serialzed GameObjects
            </summary>
        </member>
        <member name="P:DuplicationData.Bounds">
            <summary>
            The bounds are used to work out where to place the duplication, so it
            doesn't clip through the floor.
            </summary>
        </member>
        <member name="T:DuplicationData.PreviewModel">
            <summary>
            Describes where to draw a model for the preview
            </summary>
        </member>
        <member name="M:DuplicationData.PreviewModel.#ctor(Sandbox.Model,Transform,Transform[],BBox)">
            <summary>
            Describes where to draw a model for the preview
            </summary>
        </member>
        <member name="P:DuplicationData.PreviewModels">
            <summary>
            A list of preview models to help visualze where the duplication will be placed
            </summary>
        </member>
        <member name="P:DuplicationData.Packages">
            <summary>
            Packages used in this
            </summary>
        </member>
        <member name="M:DuplicationData.CreateFromObjects(System.Collections.Generic.IEnumerable{Sandbox.GameObject},Transform)">
            <summary>
            Create DuplicationData from a bunch of objects.
            center is the transform to use as the origin for the duplication.
            The rotation of center should be the player's view yaw when they made the selection.
            </summary>
        </member>
        <member name="M:DuplicatorTool.RenderIconToBitmap(System.String,Sandbox.Bitmap)">
            <summary>
            Render duplicator Json to a bitmap
            </summary>
        </member>
        <member name="P:DuplicatorTool.CopiedJson">
            <summary>
            When we right click, to "copy" something, we create a Duplication object
            and serialize it to Json and store it here.
            </summary>
        </member>
        <member name="M:DuplicatorTool.Save">
            <summary>
            Save the current dupe to storage.
            </summary>
        </member>
        <member name="P:LinkedGameObjectBuilder.RejectPlayers">
            <summary>
            Reject players and any objects with players as descendants. This is used for the duplicator to avoid accidentally duping the player and all their attachments.
            </summary>
        </member>
        <member name="M:LinkedGameObjectBuilder.Add(Sandbox.GameObject)">
            <summary>
            Adds a GameObject. Won't find connections.
            </summary>
        </member>
        <member name="M:LinkedGameObjectBuilder.AddConnected(Sandbox.GameObject)">
            <summary>
            Add a GameObject with all connected GameObjects
            </summary>
        </member>
        <member name="P:EmitterTool.BaseDef">
            <summary>
            The physical emitter body to spawn (model + physics).
            </summary>
        </member>
        <member name="P:EmitterTool.EffectDef">
            <summary>
            The particle/VFX effect the emitter will produce.
            </summary>
        </member>
        <member name="P:HoverballEntity.IsEnabled">
            <summary>
            Is the hoverball on?
            </summary>
        </member>
        <member name="P:HoverballEntity.TargetZ">
            <summary>
            The world Z position the hoverball is trying to maintain.
            </summary>
        </member>
        <member name="P:HoverballEntity.Speed">
            <summary>
            How fast the target height changes when inputs are held.
            </summary>
        </member>
        <member name="P:HoverballEntity.AirResistance">
            <summary>
            Horizontal air resistance applied while hovering. Also increases vertical damping.
            </summary>
        </member>
        <member name="P:HoverballEntity.Up">
            <summary>
            While held, raises the hover target.
            </summary>
        </member>
        <member name="P:HoverballEntity.Down">
            <summary>
            While held, lowers the hover target.
            </summary>
        </member>
        <member name="P:HoverballEntity.Toggle">
            <summary>
            Toggles the hoverball on/off
            </summary>
        </member>
        <member name="T:BallSocketPairEntity">
            <summary>
            A pair of ball sockets, we try to align the balls towards eachother.
            </summary>
        </member>
        <member name="T:BaseLengthConstraintTool">
            <summary>
            Shared geometry for two-point length-changing constraints (Hydraulic, Muscle, Winch):
            a shaft between two capped anchors, driven by a <see cref="T:Sandbox.SliderJoint"/>.
            </summary>
        </member>
        <member name="T:LengthConstraintEntity">
            <summary>
            A length-changing constraint: a SliderJoint whose length is puppeted between MinLength
            and MaxLength by player input, wires, or an idle animation loop. Hydraulic, Muscle and
            Winch are the same component with different presentation and defaults - <see cref="P:LengthConstraintEntity.Kind"/>
            just picks which one this instance is, for undo names, tool info and wiring titles.
            </summary>
        </member>
        <member name="P:LengthConstraintEntity.Activate">
            <summary>
            While the input is active we'll extend towards full length
            </summary>
        </member>
        <member name="P:LengthConstraintEntity.Position">
            <summary>
            Emits the current 0-1 extension whenever it changes. Wire it into a gauge, a
            dependent mechanism, or another length constraint's Push/Pull to gang two rams together.
            </summary>
        </member>
        <member name="T:MotorEntity">
            <summary>
            Drives a <see cref="T:Sandbox.HingeJoint"/> at a continuous angular velocity — a spinning axle,
            turntable, or wheel that isn't a ground-contact wheel.
            </summary>
        </member>
        <member name="P:MotorEntity.StartActive">
            <summary>
            Spins on its own as soon as it's created, without needing a driver or a wire signal.
            </summary>
        </member>
        <member name="P:MotorEntity.Forward">
            <summary>
            While held, spins forward regardless of <see cref="P:MotorEntity.Reversed"/> or <see cref="P:MotorEntity.StartActive"/>.
            </summary>
        </member>
        <member name="P:MotorEntity.Reverse">
            <summary>
            While held, spins backward regardless of <see cref="P:MotorEntity.Reversed"/> or <see cref="P:MotorEntity.StartActive"/>.
            </summary>
        </member>
        <member name="P:MotorEntity.AngleOutput">
            <summary>
            Emits the joint's current angle, normalized so a full turn is 1.0 — wire it into a
            gauge, or into another motor's Forward/Reverse to sync two axles.
            </summary>
        </member>
        <member name="P:MotorTool.FlipAxis">
            <summary>
            The spin axis is the surface normal where you make the first selection - this flips it
            180 degrees, which is only useful in combination with <see cref = "P:MotorTool.Reversed"/> and a limit range.
            </summary>
        </member>
        <member name="T:StackDirection">
            <summary>
            Direction to stack objects in.
            </summary>
        </member>
        <member name="T:StackAlignMode">
            <summary>
            How to interpret the stack direction axis.
            </summary>
        </member>
        <member name="F:StackAlignMode.World">
            <summary>
            Stack along world-space axes regardless of object orientation.
            </summary>
        </member>
        <member name="F:StackAlignMode.Object">
            <summary>
            Stack along the target object's local axes.
            </summary>
        </member>
        <member name="P:StackerTool.StackCount">
            <summary>
            Number of copies to create.
            </summary>
        </member>
        <member name="P:StackerTool.Direction">
            <summary>
            Which direction to stack in.
            </summary>
        </member>
        <member name="P:StackerTool.AlignMode">
            <summary>
            Whether to align the stack axis to the world or the target object.
            </summary>
        </member>
        <member name="P:StackerTool.AngleOffsetX">
            <summary>
            Rotation offset (degrees) around the first perpendicular axis of the stack direction.
            For Up/Down stacking this rotates around the right axis.
            </summary>
        </member>
        <member name="P:StackerTool.AngleOffsetY">
            <summary>
            Rotation offset (degrees) around the second perpendicular axis of the stack direction.
            For Up/Down stacking this rotates around the forward axis.
            </summary>
        </member>
        <member name="P:StackerTool.PositionOffset">
            <summary>
            Extra gap (in units) between each stacked copy.
            </summary>
        </member>
        <member name="P:StackerTool.FreezeAll">
            <summary>
            When true, stacked copies will be frozen (motion disabled).
            </summary>
        </member>
        <member name="M:StackerTool.ResolveRoot(Sandbox.GameObject)">
            <summary>
            Resolve to the networked root object so we clone the full prop, not a child collider.
            </summary>
        </member>
        <member name="M:StackerTool.CycleDirection">
            <summary>
            Cycle through stack directions on reload.
            </summary>
        </member>
        <member name="M:StackerTool.CycleAlignment">
            <summary>
            Toggle between world and object alignment.
            </summary>
        </member>
        <member name="M:StackerTool.IsValidTarget(ToolMode.SelectionPoint)">
            <summary>
            Check if the aimed-at object is a valid stacking target.
            </summary>
        </member>
        <member name="M:StackerTool.GetLocalDirection(StackDirection)">
            <summary>
            Get the local-space direction vector for the configured <see cref="P:StackerTool.Direction"/>.
            </summary>
        </member>
        <member name="M:StackerTool.GetPerpendicularAxes(StackDirection)">
            <summary>
            Get the two perpendicular axes for a given stack direction.
            X and Y angle offsets rotate around these respectively.
            </summary>
        </member>
        <member name="M:StackerTool.GetStepRotation">
            <summary>
            Build the per-step rotation from the X/Y angle offsets around the
            two axes perpendicular to the stack direction.
            </summary>
        </member>
        <member name="M:StackerTool.GetStackExtent(Sandbox.GameObject,Vector3)">
            <summary>
            Compute how far apart copies should be along the stack axis by projecting
            the object's oriented bounding box corners onto the actual world-space axis.
            </summary>
        </member>
        <member name="M:StackerTool.ComputeStackTransforms(Sandbox.GameObject)">
            <summary>
            Compute the world transforms for all stacked copies using iterative placement.
            Each copy is positioned relative to the previous one, so angle offsets
            produce correct arcs and circles rather than spirals.
            </summary>
        </member>
        <member name="M:StackerTool.DrawStackPreview(Sandbox.GameObject,Transform[])">
            <summary>
            Render ghost previews of each stacked copy.
            </summary>
        </member>
        <member name="M:StackerTool.SpawnStack(Sandbox.GameObject)">
            <summary>
            Server-side spawn: recomputes transforms from synced properties to prevent
            clients from sending arbitrary placement data.
            </summary>
        </member>
        <member name="T:PropellerEntity">
            <summary>
            Attach to a thruster GameObject to spin a target model based on thrust output.
            The model spins around its local up axis proportional to ThrustAmount.
            </summary>
        </member>
        <member name="P:PropellerEntity.Target">
            <summary>
            The model renderer to spin.
            </summary>
        </member>
        <member name="P:PropellerEntity.SpinSpeed">
            <summary>
            Spin speed in full rotations per second at maximum thrust.
            </summary>
        </member>
        <member name="P:ThrusterEntity.Activate">
            <summary>
            While this input is active we'll apply thrust
            </summary>
        </member>
        <member name="P:ThrusterEntity.Reverse">
            <summary>
            While this input is active we'll apply thrust in the opposite direction
            </summary>
        </member>
        <member name="P:ThrusterEntity._defaultSound">
            <summary>
            The fallback sound for all thrusters.
            </summary>
        </member>
        <member name="P:ThrusterEntity.ThrusterSound">
            <summary>
            Looping sound played while the thruster is active.
            </summary>
        </member>
        <member name="P:ThrusterEntity.ThrustAmount">
            <summary>
            Current thrust output, -1 to 1. Updated every control frame.
            </summary>
        </member>
        <member name="M:WeldTool.SnapSelectionPoint(ToolMode.SelectionPoint)">
            <summary>
            Overrides a SelectionPoint's local position to the nearest snap grid corner
            </summary>
        </member>
        <member name="M:WeldTool.RotateStage">
            <summary>
            Stage 2: mouse controls rotation, shift snaps to 15° grid, attack1 confirms, attack2 cancels.
            </summary>
        </member>
        <member name="M:WeldTool.TryEnterRotateStage">
            <summary>
            Intercept the Stage 1 click to enter rotation stage instead of finalizing.
            </summary>
        </member>
        <member name="M:WeldTool.UpdateRotationInput">
            <summary>
            Accumulate mouse yaw into rotation, with optional shift-to-snap.
            </summary>
        </member>
        <member name="M:WeldTool.DrawEasyModePreview(Transform)">
            <summary>
            Draw a ghost preview of the source object and all its connected objects at the given placement.
            </summary>
        </member>
        <member name="M:WheelOverlay.DrawDirection(Vector3,Vector3,Vector3,System.Single,System.Boolean)">
            <summary>
            Draws a spinning direction arrow overlay on a wheel face.
            </summary>
            <param name="position">Center of the wheel.</param>
            <param name="spinAxis">The wheel's spin axis (points outward from the wheel face).</param>
            <param name="stableUp">A stable up reference that doesn't rotate with the wheel.</param>
            <param name="radius">Visual radius of the overlay.</param>
            <param name="reversed">Whether the spin direction is reversed.</param>
        </member>
        <member name="T:SnapGrid">
            <summary>
            Manages a world-space snap grid overlay projected onto a surface plane.
            </summary>
        </member>
        <member name="P:SnapGrid.GridSize">
            <summary>
            Fallback half-extent used when the hovered object has no usable bounds.
            </summary>
        </member>
        <member name="P:SnapGrid.LastSnapWorldPos">
            <summary>
            The snapped world-space position of the highlighted corner
            </summary>
        </member>
        <member name="M:SnapGrid.ComputeSnap(Vector3,Vector3,Vector3,System.Single,Vector3)">
            <summary>
            Returns the nearest grid corner index (cx, cy) and its world-space position,
            given the face plane in world space and the aim world position.
            </summary>
        </member>
        <member name="M:SnapGrid.Update(Sandbox.SceneWorld,Sandbox.GameObject,Vector3,Vector3)">
            <summary>
            Called every frame when the weld tool hovers a valid object.
            After calling, read <see cref="P:SnapGrid.LastSnapWorldPos"/> for a snapped position
            </summary>
        </member>
        <member name="M:SnapGrid.Hide">
            <summary>
            Hide the overlay
            </summary>
        </member>
        <member name="M:SnapGrid.GetObjectOBB(Sandbox.GameObject)">
            <summary>
            Returns the OBB (oriented bounding box) of <paramref name="go"/> in world space.
            Prefers model-local bounds (tight, rotation-aware) over collider world AABB.
            </summary>
        </member>
        <member name="M:SnapGrid.ProjectOntoPlane(Vector3,Vector3,Vector3)">
            <summary>
            Projects <paramref name="point"/> onto the plane defined by <paramref name="planePoint"/> and <paramref name="normal"/>.
            </summary>
        </member>
        <member name="M:SnapGrid.ProjectedHalfExtents(Vector3,Rotation,Vector3,Vector3)">
            <summary>
            Returns the half-extents of an OBB projected along <paramref name="right"/> and <paramref name="up"/>.
            Uses the OBB support function, which correctly handles rotated objects.
            </summary>
        </member>
        <member name="M:SnapGrid.Destroy">
            <summary>
            Destroys the underlying scene object.
            </summary>
        </member>
        <member name="T:ToolInput">
            <summary>
            Identifies which toolgun input slot an action is bound to.
            </summary>
        </member>
        <member name="T:InputMode">
            <summary>
            How the input is sampled each frame.
            </summary>
        </member>
        <member name="F:InputMode.Pressed">
            <summary>
            Fires once when the button is first pressed.
            </summary>
        </member>
        <member name="F:InputMode.Down">
            <summary>
            Fires every frame while the button is held.
            </summary>
        </member>
        <member name="T:ToolActionEntry">
            <summary>
            A registered tool action. Stores the input binding, a dynamic display-name lambda,
            the callback to invoke, and the input sampling mode.
            </summary>
        </member>
        <member name="M:ToolActionEntry.#ctor(ToolInput,System.Func{System.String},System.Action,InputMode)">
            <summary>
            A registered tool action. Stores the input binding, a dynamic display-name lambda,
            the callback to invoke, and the input sampling mode.
            </summary>
        </member>
        <member name="P:ToolActionEntry.InputAction">
            <summary>
            The engine input action string for this <see cref="T:ToolInput"/>.
            </summary>
        </member>
        <member name="T:ToolMode.SelectionPoint">
            <summary>
            A point in the world selected by the current player's toolgun. We try to keep this as minimal as possible
            while catering for as much as possible.
            </summary>
        </member>
        <member name="M:ToolMode.SelectionPoint.IsValid">
            <summary>
            Returns true if GameObject is valid - which means we hit something
            </summary>
        </member>
        <member name="M:ToolMode.SelectionPoint.WorldPosition">
            <summary>
            Returns the position of the hit - in the world space. This is the transformed position of the LocalTransform relative to the GameObject.
            </summary>
            <returns></returns>
        </member>
        <member name="M:ToolMode.SelectionPoint.WorldTransform">
            <summary>
            Returns the transform of the hit
            </summary>
            <returns></returns>
        </member>
        <member name="P:ToolMode.SelectionPoint.IsWorld">
            <summary>
            Returns true if this object is a part of the static map
            </summary>
        </member>
        <member name="P:ToolMode.SelectionPoint.IsPlayer">
            <summary>
            Returns true if this object is a player
            </summary>
        </member>
        <member name="M:ToolMode.TraceFromRay(Ray,System.Single,Sandbox.GameObject)">
            <summary>
            Get a SelectionPoint along a ray.
            </summary>
        </member>
        <member name="M:ToolMode.TraceSelect">
            <summary>
            Get a SelectionPoint from the tool gun owner's eyes.
            </summary>
        </member>
        <member name="M:ToolMode.GetEasyModePlacement(ToolMode.SelectionPoint,ToolMode.SelectionPoint)">
            <summary>
            Given a clicked point on a, and a clicked point on b, return a transform that places the objects so the points are touching
            </summary>
        </member>
        <member name="M:ToolMode.ApplyPhysicsProperties(Sandbox.GameObject)">
            <summary>
            Helper to apply physics properties from a model to a GameObject's <see cref="T:Sandbox.Rigidbody"/>
            </summary>
            <param name="go"></param>
        </member>
        <member name="P:ToolMode.UseSnapGrid">
            <summary>
            When true (default), a SnapGrid overlay is shown on the hovered object surface.
            Override to return false to opt out.
            </summary>
        </member>
        <member name="P:ToolMode.SnapGrid">
            <summary>
            The active snap grid, updated every frame in <see cref="M:ToolMode.OnControl"/>.
            Null when snap grid is disabled or the tool is inactive.
            </summary>
        </member>
        <member name="M:ToolMode.OnCameraMove(Player,Angles@)">
            <summary>
            While hovering an object, hold E to lock the camera aim onto the nearest snap corner.
            </summary>
        </member>
        <member name="M:ToolMode.ShouldDisplaySnapGrid(Sandbox.GameObject)">
            <summary>
            Override to control which objects show the snap grid. Returns false for world and player geometry by default.
            </summary>
        </member>
        <member name="P:ToolMode.IsValidState">
            <summary>
            The mode should set this true or false in OnControl to indicate if the current state is valid for performing actions.
            </summary>
        </member>
        <member name="P:ToolMode.AbsorbMouseInput">
            <summary>
            When true, the toolgun will absorb mouse input so the camera doesn't move.
            The mode can then read <see cref="P:Sandbox.Input.AnalogLook"/> to use the mouse for rotation etc.
            </summary>
        </member>
        <member name="P:ToolMode.Name">
            <summary>
            Display name for the tool, defaults to the TypeDescription title.
            </summary>
        </member>
        <member name="P:ToolMode.Description">
            <summary>
            Description of what this tool does.
            </summary>
        </member>
        <member name="P:ToolMode.PrimaryAction">
            <summary>
            Label for the primary action (attack1), or null if none.
            Auto-populated from registered <see cref="T:ToolActionEntry"/> when not overridden.
            </summary>
        </member>
        <member name="P:ToolMode.SecondaryAction">
            <summary>
            Label for the secondary action (attack2), or null if none.
            Auto-populated from registered <see cref="T:ToolActionEntry"/> when not overridden.
            </summary>
        </member>
        <member name="P:ToolMode.ReloadAction">
            <summary>
            Label for the reload action, or null if none.
            Auto-populated from registered <see cref="T:ToolActionEntry"/> when not overridden.
            </summary>
        </member>
        <member name="P:ToolMode.TraceIgnoreTags">
            <summary>
            Tags that TraceSelect will ignore. Override per-tool to filter out specific objects.
            Defaults to "player" so tools cannot target players.
            </summary>
        </member>
        <member name="P:ToolMode.TraceHitboxes">
            <summary>
            When true, TraceSelect will also hit hitboxes.
            </summary>
        </member>
        <member name="P:ToolMode.TypeDescription">
            <summary>
            Reflection info for this tool's type. Lazy so it's valid before the component starts.
            </summary>
        </member>
        <member name="M:ToolMode.RegisterAction(ToolInput,System.Func{System.String},System.Action,InputMode)">
            <summary>
            Register a tool action that will be dispatched automatically by the base <see cref="M:ToolMode.OnControl"/>.
            The display name is a lambda so it can vary with tool state (e.g. stage-dependent hints).
            </summary>
        </member>
        <member name="M:ToolMode.Track(Sandbox.GameObject[])">
            <summary>
            Track a GameObject created by this tool action. These are passed through
            to <see cref="P:IToolActionEvents.PostActionData.CreatedObjects"/> when the post-event fires.
            </summary>
        </member>
        <member name="M:ToolMode.GetActionName(ToolInput)">
            <summary>
            Returns the display name for the first registered action matching <paramref name="input"/>, or null.
            </summary>
        </member>
        <member name="M:ToolMode.FireToolAction(ToolInput)">
            <summary>
            Fire <see cref="M:IToolActionEvents.OnToolAction(IToolActionEvents.ActionData)"/> before executing an action.
            Returns true if the action should proceed, false if cancelled.
            </summary>
        </member>
        <member name="M:ToolMode.FirePostToolAction(ToolInput)">
            <summary>
            Fire <see cref="M:IToolActionEvents.OnPostToolAction(IToolActionEvents.PostActionData)"/> after a successful action.
            Passes a snapshot of tracked objects, then clears the list.
            </summary>
        </member>
        <member name="M:ToolMode.DispatchActions">
            <summary>
            Check registered actions and invoke any whose input condition is met this frame.
            Wraps each callback with <see cref="T:IToolActionEvents"/> pre/post events.
            </summary>
        </member>
        <member name="M:ToolMode.CheckContraptionStats(Sandbox.GameObject)">
            <summary>
            Called on the host after placing an entity or constraint. Fires an RPC to the owning
            client so it can walk the contraption graph and record achievement stats locally.
            </summary>
        </member>
    </members>
</doc>
