### Manifest file example Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/def-files.md Example of a manifest.def file listing the .def files to be built. ```def Definitions/tools.def Definitions/engine.def ... ``` -------------------------------- ### Include directive examples Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/def-files.md Demonstrates how the 'include' directive handles different file types and folders. ```def include "engine/*" ``` -------------------------------- ### Example .def file directives Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/def-files.md Illustrates common top-level directives used in .def files for configuration. ```def ident "engine" nativedll engine2.dll cs "../Sandbox.Engine/Interop.Engine.cs" cpp "../../src/engine2/interop.engine.cpp" hpp "../../src/engine2/interop.engine.h" namespace "Managed.SandboxEngine" exceptions "Sandbox.Interop.BindingException" pch "cbase.h" include "engine/*" inherit "engine.def" skipall "tools.def" delegate DebugDrawDelegate_t; ``` -------------------------------- ### Inherit directive example Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/def-files.md Shows how to use the 'inherit' directive to build upon an existing def file. ```def ident "tools" inherit "engine.def" include "common/*" ``` -------------------------------- ### Parameter Declaration Examples Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/types.md Illustrates the usage of parameter flags like 'out', 'ref', and 'CastTo' in function signatures. ```csharp void GetEngineSwapChainSize( out int w, out int h ); ``` ```csharp void SetTonemapParameters( ref SceneTonemapParameters_t pParams ); ``` ```csharp bool ConvertImageFormat( CastTo[uint8*] void* src, ... ``` -------------------------------- ### Attribute.C_INIT_PositionWarp.m_flWarpTime Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Treats the min/max as start and end sizes for a warp that takes place over the specified time. ```APIDOC ## Attribute.C_INIT_PositionWarp.m_flWarpTime ### Description Treats the min/max as start and end sizes for a warp that takes place over the specified time. So the emission placement of each new particle will be warped over time. ### Method N/A (Attribute Configuration) ### Endpoint N/A (Attribute Configuration) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Run InteropGen Generator Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/README.md Example of how to run the InteropGen generator from the repository root using a small console application. This is used to verify pure refactors by comparing output snapshots. ```bash # from the repo root, with a tiny console app calling Program.ProcessManifest("engine"): dotnet run # before the change # snapshot A dotnet run # after the change # snapshot B - must equal A for a pure refactor ``` -------------------------------- ### Element.C_INIT_RandomSequence Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Allows particles to randomly start at a minimum and maximum supplied frame when using a multi-frame texture. ```APIDOC ## Element.C_INIT_RandomSequence ### Description When using a multi-frame texture, this allows particles to randomly start at a minimum and maximum supplied frame. ### Method N/A (Element) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Skipall directive example Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/def-files.md Illustrates the use of 'skipall' to prevent re-emission of declarations from another def file. ```def inherit "tools.def" skipall "tools.def" ``` -------------------------------- ### Sound Event Attributes Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_sndtool_english.txt A reference guide for the public attributes used to define and control sound event behavior in the sound system. ```APIDOC ## Sound Event Attributes ### Description Public attributes used to configure sound event behavior, including file selection, positioning, and volume modulation. ### Parameters - **vsnd_files** (array) - An array of string paths to the vsnd files to be selected from. - **vsnd_selection_type** (string) - The method used to select a vsnd: index, forward, backward, random, random_exclusive, or random_weighted. - **vsnd_selection_index** (integer) - Index used when vsnd_selection_type is 'index'. - **position** (vector) - World position used if entity index is 0 or use_world_position is true. - **position_offset** (vector) - Positional offset added to the sound play location. - **static_position** (boolean) - If true, position is only calculated on the first frame. - **force_from_player** (boolean) - If true, position is set 12 units in front of the player. - **use_world_position** (boolean) - If true, ignores entity index and uses the position field. - **attachment** (string) - Name of an attachment on the entity ID. - **volume** (float) - Baseline volume level. - **volume_rand_min** (float) - Minimum value for volume randomization. - **volume_rand_max** (float) - Maximum value for volume randomization. - **volume_fade_in** (float) - Time in seconds to scale volume from 0.0 to 1.0. - **volume_fade_out** (float) - Time in seconds to scale volume from 1.0 to 0.0. - **volume_fade_over_time_curve** (string) - Specifies a volume attenuation curve. ``` -------------------------------- ### Attribute: CLookAtAnimNode.m_flHysteresis Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Controls the look-at behavior when the target is at rest. The target direction must be more than this threshold for the look-at to start turning towards the target direction. To get the best results this should be more than Inner Angle. ```APIDOC ## Attribute CLookAtAnimNode.m_flHysteresis ### Description If the lookat is at rest, the target direction must be more than this threshold in order for the lookat to start turning to face the target direction. To get the best results this should be more than
**Inner Angle**. ### Method N/A ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Attribute.CParticleOperatorInstance.m_flOpStartFadeInTime Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Operator Fade: Operator Start Fadein. Controls the start time of the fade-in effect for an operator. ```APIDOC ## Attribute.CParticleOperatorInstance.m_flOpStartFadeInTime ### Description Operator Fade: Operator Start Fadein. Controls the start time of the fade-in effect for an operator. ### Method N/A (This is a description of an attribute) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Attribute.C_INIT_CreateWithinSphere.m_fRadiusMin Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Minimum distance to spawn from the center of the sphere. ```APIDOC ## Attribute.C_INIT_CreateWithinSphere.m_fRadiusMin ### Description Minimum distance to spawn from the center of the sphere. ### Method N/A (Attribute Configuration) ### Endpoint N/A (Attribute Configuration) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Element.C_INIT_CreateWithinSphere Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Positions particles within a sphere. ```APIDOC ## Element.C_INIT_CreateWithinSphere ### Description Positions particles within a sphere. This initialization operator is used to define the spatial distribution of newly created particles. ### Method N/A (Initializer) ### Endpoint N/A (Initializer) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) None #### Response Example None ``` -------------------------------- ### Clone the s&box repository Source: https://github.com/facepunch/sbox-public/blob/master/README.md Use this command to download the source code repository to your local machine. ```bash # Clone the repo git clone https://github.com/Facepunch/sbox-public.git ``` -------------------------------- ### Element: C_INIT_CreateAlongPath Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Initializes particle positions randomly along a line between two control points. ```APIDOC ## Element: C_INIT_CreateAlongPath ### Description Initializes particle positions randomly along a line between two control points. ### Method N/A ### Endpoint N/A ### Parameters #### Request Body - **Create Along Path** (object) - Required - Parameters for creating the path. ``` -------------------------------- ### Element.CRootAnimNode Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Final Pose: The top level (ie: right-most) node of the tree. Each update of the graph, evaluation starts from here. ```APIDOC ## Element.CRootAnimNode ### Description The top level (ie: right-most) node of the tree. Each update of the graph, evaluation starts from here. Each graph must have exactly one Final Pose node in order for to work. ### Method N/A (Node Definition) ### Endpoint N/A (Node Definition) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Element: C_INIT_CreateSequentialPath Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Initializes particle positions sequentially along a line between two control points. ```APIDOC ## Element: C_INIT_CreateSequentialPath ### Description Initializes particle positions sequentially along a line between two control points. ### Method N/A ### Endpoint N/A ### Parameters #### Request Body - **Create Sequential Path** (object) - Required - Parameters for creating the sequential path. ``` -------------------------------- ### C_INIT_CreateOnGrid Configuration Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Configuration attributes for defining how particles are generated on a grid structure. ```APIDOC ## C_INIT_CreateOnGrid Attributes ### Description Defines the spatial configuration for particle initialization on a grid, including count, spacing, and alignment relative to control points. ### Parameters - **m_nZCount** (integer) - The number of particles to place along the Z dimension. Minimum value is clamped to one. - **m_nYSpacing** (float) - The distance in units to place between each particle on the Y dimension. - **m_nZSpacing** (float) - The distance in units to place between each particle on the Z dimension. - **m_nControlPointNumber** (integer) - The control point index used as a reference for particle placement. - **m_bLocalSpace** (boolean) - If true, particles are placed in the local space of the control point; otherwise, world-space. - **m_bCenter** (boolean) - If true, particles are centered around the control point; otherwise, the control point acts as the starting corner. - **m_bHollow** (boolean) - If true, particles are not created in the center of the grid, resulting in a hollow box structure for 3D grids. ``` -------------------------------- ### FootLockAnimNode Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt The FootLockAnimNode is used to lock feet in place when they are on the ground and guide them to the predicted next step position when they are in the air. ```APIDOC ## FootLockAnimNode ### Description Uses the blended foot cycles of the child nodes to lock the feet in place when they are on the ground, and guide them to the predicted next step position when they are in the air. The results are set on a user-defined bone for each foot, which should be used as the IK target for the leg. ### Attributes - **m_sName** (String) - The name of the anim graph node. - **m_items** (Array of FootLockItem) - List of the feet that this node should control. ``` -------------------------------- ### Attribute.C_INIT_CreateWithinSphere.m_fRadiusMax Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Maximum distance to spawn from the center of the sphere. ```APIDOC ## Attribute.C_INIT_CreateWithinSphere.m_fRadiusMax ### Description Maximum distance to spawn from the center of the sphere. ### Method N/A (Attribute Configuration) ### Endpoint N/A (Attribute Configuration) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Declare Derived Native Class Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/classes.md Declares a native class that inherits from another class. The derived wrapper inherits non-static functions and gets implicit/explicit conversion operators. ```csharp native class CSceneObject as Sandbox.SceneObject native class CSceneModel as Sandbox.SceneModel : Sandbox.SceneObject ``` -------------------------------- ### Function Declarations in InteropGen Source: https://github.com/facepunch/sbox-public/blob/master/engine/Tools/InteropGen/docs/classes.md Examples of function declarations. Static members do not take a self argument. Trailing 'const' is accepted for matching const native methods. Overloads are supported. ```cpp bool Play( string pUrl, string pExt ); static CVideoPlayer Create( Sandbox.VideoPlayer managedObject ); [new] void Destroy(); [delete] int GetMemRequired( int width, int height ) const; ``` -------------------------------- ### Fast Texture Tool Commands Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_hammer_commands_english.txt Commands for UV mapping, grid adjustments, and texture transformations. ```APIDOC ## ToolFastTexture Commands ### Description Commands for texture mapping operations and UV adjustments. ### Available Commands - **Command.ToolFastTexture.MappingUnwrapSquare**: Unwrap the selected faces and attempt to fit them into the current rectangle - **Command.ToolFastTexture.MappingUnwrapConforming**: Unwrap the selected faces attempting to minimize distortion - **Command.ToolFastTexture.MappingPlanar**: Planar project the selected faces based on the current view - **Command.ToolFastTexture.MappingUseExisting**: Use the existing UVs of the selected faces, but fit them to the current rectangle - **Command.ToolFastTexture_UVWidget.BeginPickEdge**: Select an edge to align with the currently selected axis - **Command.ToolFastTexture.SmallerGrid**: Decrease the number of units between grid lines - **Command.ToolFastTexture.BiggerGrid**: Increase the number of units between grid lines - **Command.ToolFastTexture.ToggleFlipHorizontal**: Horizontally flip the texture on the target faces - **Command.ToolFastTexture.ToggleFlipVertical**: Vertically flip the texture on the target faces - **Command.ToolFastTexture.DecreaseInset**: Decrease the number of units the mapping is inset from the selected rectangle - **Command.ToolFastTexture.IncreaseInset**: Increase the number of units the mapping is inset from the selected rectangle ``` -------------------------------- ### Configure Face Selection Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines input bindings for the ToolFaceSelection context. These map keyboard and mouse inputs to specific commands for manipulating faces and textures. ```C++ InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "Collapse" m_Input = "O" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "Detach" m_Input = "N" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "Extract" m_Input = "Alt+N" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "SnapToGrid" m_Input = "Ctrl+B" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "ClearPivot" m_Input = "Home" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "CenterPivotInView" m_Input = "Ctrl+Home" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "SetPivotToWorldOrigin" m_Input = "Ctrl+End" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "EndPivotManipulation" m_Input = "Ins" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "IncreaseSubdivisionLevel" m_Input = "," }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "DecreaseSubdivisionLevel" m_Input = "." }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "MoveObjectDownByTraceLocal" m_Input = "Ctrl+Num1" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "MoveObjectDownByTrace" m_Input = "Ctrl+Num2" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "NextTile" m_Input = "Alt+F" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "PreviousTile" m_Input = "Alt+V" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "RandomTile" m_Input = "Alt+G" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "RotateTexture90CCW" m_Input = "Alt+Q" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "RotateTexture90CW" m_Input = "Alt+S" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "FlipTextureHorizontal" m_Input = "Alt+D" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "FlipTextureVertical" m_Input = "Alt+E" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "ApplyMaterialByHotspot" m_Input = "Alt+H" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "ApplyMaterialByHotspotPerFace" m_Input = "Alt+T" }, InputBinding_t { m_Context = "ToolFaceSelection" m_Command = "FastTextureTool" m_Input = "Ctrl+G" } ``` -------------------------------- ### Operator Fade Group Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt The properties of the operator fade group enable you to hand-tune exactly when you want an operator to influence your effect. These are standard properties that work on all operators. Depending on the operator, the fade component may or may not function - binary operators that can't logically scale (such as setting control point positions) will ignore fades and simply switch on and off. Operator fade times are relative to the <0xE2><0x80><0x98>emitter lifespan<0xE2><0x80><0x99>, so an operator that fades in after 3 seconds does so relative to the emitter's life, not the individual particle. If an oscillation time is set, fade in and fade out times become 0.0 to 1.0 times relative to that oscillation time. If you wish your operator to oscillate in and out, setting an oscillation time of 4, a fade in of .25 and a fade out of .75 would mean that the operator has no effect for 1 second (one quarter the oscillation cycle time), works for 2 seconds (.25-.75), fades back out at 3 (three quarters of the oscillation cycle time), and then the cycle loops at the 4th second back to the start. *Note: The operator fade group is generally considered to be an advanced tool, and is often used only as a last resort in cases where operator-specific control mechanisms are (for whatever reason) proving unsuitable.* Attribute.CParticleOperatorInstance.m_flOpEndFadeInTime ```APIDOC ## Operator Fade Group ### Description The properties of the operator fade group enable you to hand-tune exactly when you want an operator to influence your effect. These are standard properties that work on all operators. Depending on the operator, the fade component may or may not function - binary operators that can't logically scale (such as setting control point positions) will ignore fades and simply switch on and off. Operator fade times are relative to the *emitter lifespan*, so an operator that fades in after 3 seconds does so relative to the emitter's life, not the individual particle. If an oscillation time is set, fade in and fade out times become 0.0 to 1.0 times relative to that oscillation time. If you wish your operator to oscillate in and out, setting an oscillation time of 4, a fade in of .25 and a fade out of .75 would mean that the operator has no effect for 1 second (one quarter the oscillation cycle time), works for 2 seconds (.25-.75), fades back out at 3 (three quarters of the oscillation cycle time), and then the cycle loops at the 4th second back to the start. *Note: The operator fade group is generally considered to be an advanced tool, and is often used only as a last resort in cases where operator-specific control mechanisms are (for whatever reason) proving unsuitable.* ### Method N/A (This is a description of an operator group) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### ToolVertexNormalPaint Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Specifies input bindings for the ToolVertexNormalPaint context, covering actions like painting, erasing, scaling the brush, and freezing normals. ```C++ InputBinding_t { m_Context = "ToolVertexNormalPaint" m_Command = "Paint" m_Input = "LMouse" }, InputBinding_t { m_Context = "ToolVertexNormalPaint" m_Command = "Erase" m_Input = "Ctrl" }, InputBinding_t { m_Context = "ToolVertexNormalPaint" m_Command = "ScaleBrush" m_Input = "MMouse" }, InputBinding_t { m_Context = "ToolVertexNormalPaint" m_Command = "FreezeNormal" m_Input = "Shift" } ``` -------------------------------- ### Tool Selection Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines input bindings for various tool selection commands. These are used to map user inputs to specific actions within the tool selection context. ```C++ InputBinding_t { m_Context = "ToolSelection" m_Command = "CloneSelection" m_Input = "Shift" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ToggleAlignToSurface" m_Input = "Alt" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SelectNext" m_Input = "PgUp" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SelectPrev" m_Input = "PgDn" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "CancelSelectOperation" m_Input = "Esc" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ShrinkGizmo" m_Input = "Ctrl+NumSub" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "EnlargeGizmo" m_Input = "Ctrl+NumAdd" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NextPivotTap" m_Input = "N" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NextPivotCycle" m_Input = "N+MWheelUp" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "PrevPivotCycle" m_Input = "N+MWheelDn" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ClearPivot" m_Input = "Home" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "CenterPivotInView" m_Input = "Ctrl+Home" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SetPivotToWorldOrigin" m_Input = "Ctrl+End" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "EndPivotManipulation" m_Input = "Ins" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "FlipNormals" m_Input = "F" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "MergeSelectedMeshes" m_Input = "M" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SeparateMeshComponents" m_Input = "Alt+N" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeUp" m_Input = "Up" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeRotateUp" m_Input = "Alt+Up" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeDown" m_Input = "Down" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeRotateDown" m_Input = "Alt+Down" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeLeft" m_Input = "Left" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeRotateLeft" m_Input = "Alt+Left" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeRight" m_Input = "Right" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "NudgeRotateRight" m_Input = "Alt+Right" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ApplyMaterial" m_Input = "Shift+T" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "GizmoDebugHook" m_Input = "\\" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SetOriginToCenter" m_Input = "End" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ClearRotationAndScale" m_Input = "Ctrl+Num0" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "MoveObjectDownByTraceLocal" m_Input = "Ctrl+Num1" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "MoveObjectDownByTrace" m_Input = "Ctrl+Num2" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ShowObjectProperties" m_Input = "Alt+Enter" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ReplaceSelectionWithInstance" m_Input = "Ctrl+Alt+H" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "GrowSelection" m_Input = "NumAdd" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "GrowSelection" m_Input = "=" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ShrinkSelection" m_Input = "NumSub" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "ShrinkSelection" m_Input = "-" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "SetOriginToPivot" m_Input = "Ctrl+D" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "AlignObjects" m_Input = "Alt+T" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "AlignObjectsRotation" m_Input = "Alt+R" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "AlignObjectsToWorkplane" m_Input = "Alt+E" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "AlignWorkplaneToObject" m_Input = "Alt+Q" }, // Private bindings not to be remapped by user. These should match ones ones in GizmoManipulator InputBinding_t { m_Context = "ToolSelection" m_Command = "GizmoNumKey0" m_Input = "Num0" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "GizmoNumKey1" m_Input = "Num1" }, InputBinding_t { m_Context = "ToolSelection" m_Command = "GizmoNumKey2" m_Input = "Num2" } ``` -------------------------------- ### DirectPlaybackAnimNode Attributes Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Configuration for the DirectPlaybackAnimNode, specifically regarding sequence completion. ```APIDOC ## DirectPlaybackAnimNode ### Parameters - **m_bFinishEarly** (boolean) - Optional - Enabling this option will cause all scripted sequences on this character to be considered "finished" early, so that they will still be animating while they are blending out. ``` -------------------------------- ### Define InputBindingList_t bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/helpsystem_key_bindings.txt Configures key shortcuts for the HelpEditorWidget context. Commented lines represent disabled or reserved bindings. ```text InputBindingList_t { m_Bindings = [ InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "Save" m_Input = "Ctrl+S" }, InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "Cancel" m_Input = "Esc" }, InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "InsertBold" m_Input = "Ctrl+B" }, InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "InsertUnderlined" m_Input = "Ctrl+U" }, InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "InsertItalic" m_Input = "Ctrl+I" }, // InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "InsertImage" m_Input = "Ctrl+Shift+I" }, // InputBinding_t { m_Context = "HelpEditorWidget" m_Command = "InsertLink" m_Input = "Ctrl+Shift+L" }, ] } ``` -------------------------------- ### Attribute: FollowPathAnimNode.m_flBlendOutTime Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Blend Out Time for the FollowPathAnimNode. ```APIDOC ## Attribute.FollowPathAnimNode.m_flBlendOutTime ### Description Blend Out Time ### Method N/A ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Configure Vertex Selection Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines input bindings for the ToolVertexSelection context. These map mouse clicks and keyboard modifiers to vertex selection and manipulation commands. ```C++ InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "Select" m_Input = "LMouse" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "LassoSelect" m_Input = "MMouse" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SelectionAddModifier" m_Input = "SELECTION_ADD_KEY" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SelectionRemoveModifier" m_Input = "SELECTION_REMOVE_KEY"}, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "GrowSelection" m_Input = "NumAdd" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "GrowSelection" m_Input = "=" } ``` -------------------------------- ### Attribute.C_INIT_CreateWithinSphere.m_fSpeedMin Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Minimum initial speed of the particle emitted outward from the sphere. ```APIDOC ## Attribute.C_INIT_CreateWithinSphere.m_fSpeedMin ### Description Minimum initial speed of the particle emitted outward from the sphere. ### Method N/A (Attribute Configuration) ### Endpoint N/A (Attribute Configuration) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### Element.C_INIT_InitialVelocityNoise Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_particles_english.txt Initializes particle velocity within a selected range via a noise function, based on both time and space. ```APIDOC ## Element.C_INIT_InitialVelocityNoise ### Description Allows particle velocity to be initialized to a select range via a noise function. The noise function is mapped based on both time and space, each with their own coordinate scales and offsets. This creates a range of results that are non-random but vary based on creation time and position. ### Method N/A (Element) ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### ToolEdgeCut Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines input bindings for the ToolEdgeCut context, including actions like cutting edges, finishing, applying, canceling, and toggling snapping. ```C++ InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "CutEdge" m_Input = "LMouse" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "Finish" m_Input = "Enter" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "Finish" m_Input = "NumEnter" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "Apply" m_Input = "Space" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "Cancel" m_Input = "Esc" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "ToggleSnapping" m_Input = "TOGGLE_SNAPPING_KEY" }, InputBinding_t { m_Context = "ToolEdgeCut" m_Command = "AlignedSnap" m_Input = "Shift" }, ``` -------------------------------- ### Tool Tile Editor Commands Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_hammer_commands_english.txt Commands for managing tile sets and grid properties in the Tile Editor tool. ```APIDOC ## ToolTileEditor Commands ### Description Commands for managing tile sets, grid properties, and tile conversion. ### Available Commands - **Command.ToolTileEditor.ModeEnableDisableTiles**: Disable tiles or enable previously disabled tiles - **Command.ToolTileEditor.AssignNextTileSet**: Switch the selected item to the next tile set - **Command.ToolTileEditor.AssignPreviousTileSet**: Switch the selected item to the previous tile set - **Command.ToolTileEditor.AssignCurrentTileSet**: Assign the current tile set to the selected item - **Command.ToolTileEditor.ShowGridProperties**: Open the properties for the tile grid where the active tile sets can be selected - **Command.ToolTileEditor.CollapseTiles**: Convert selected tiles into objects which can be directly edited ``` -------------------------------- ### Attribute.CjiggleBoneAnimNode.m_networkMode Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Not used for this node; the spring simulation is performed locally on both the server and the client ```APIDOC ## Attribute.CjiggleBoneAnimNode.m_networkMode ### Description Not used for this node; the spring simulation is performed locally on both the server and the client. ### Method N/A ### Endpoint N/A ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A #### Response Example N/A ``` -------------------------------- ### CAimMatrixAnimNode Configuration Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_animgraph_editor_english.txt Attributes for configuring the Aim Matrix animation node. ```APIDOC ## CAimMatrixAnimNode Attributes ### Description Configuration for the Aim Matrix animation node, used for directional aiming. ### Parameters - **m_upDirection** (vector) - The up direction (in Model Space). By default, Up in the Source2 engine is +Z. ``` -------------------------------- ### Hammer Application Commands Source: https://github.com/facepunch/sbox-public/blob/master/game/core/resource/toolhelp_hammer_commands_english.txt Global application commands for toggling visual settings and editor features. ```APIDOC ## HammerApp Commands ### Description Global commands for toggling visibility and rendering settings in the Hammer application. ### Available Commands - **Command.HammerApp.ToggleShowVisContributorsOnly**: Hide objects and materials which do not contribute to vis - **Command.HammerApp.ToggleForceLightsOn**: Force all lights to be on in the editor - **Command.HammerApp.ToggleVolumetricFog**: Toggle Volumetric Fog - **Command.HammerApp.ToggleShowParticles**: Hide or show particle effects ``` -------------------------------- ### Vertex Selection Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines input bindings for vertex selection tools. These map commands like 'ShrinkSelection' or 'AddToSelection' to specific keys or mouse actions. ```C++ InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "ShrinkSelection" m_Input = "NumSub" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "ShrinkSelection" m_Input = "-" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "AddToSelection" m_Input = "Ctrl+Shift+Up" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "RemoveFromSelection" m_Input = "Ctrl+Shift+Down" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "RemoveFromSelectionOldest" m_Input = "Ctrl+Alt+Down" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SelectLoop" m_Input = "L" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SelectContiguous" m_Input = "LMouseDoubleClick" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "CutTool" m_Input = "C" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "CreateNewEdge" m_Input = "V" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "Merge" m_Input = "M" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SnapToVertex" m_Input = "B" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeUp" m_Input = "Up" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeRotateUp" m_Input = "Alt+Up" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeDown" m_Input = "Down" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeRotateDown" m_Input = "Alt+Down" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeLeft" m_Input = "Left" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeRotateLeft" m_Input = "Alt+Left" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeRight" m_Input = "Right" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "NudgeRotateRight" m_Input = "Alt+Right" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "ToggleSnapping" m_Input = "TOGGLE_SNAPPING_KEY" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SnapToGrid" m_Input = "Ctrl+B" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "ClearPivot" m_Input = "Home" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "CenterPivotInView" m_Input = "Ctrl+Home" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "SetPivotToWorldOrigin" m_Input = "Ctrl+End" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "EndPivotManipulation" m_Input = "Ins" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "Bevel" m_Input = "F" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "Extrude" m_Input = "Shift" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "MoveObjectDownByTraceLocal" m_Input = "Ctrl+Num1" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "MoveObjectDownByTrace" m_Input = "Ctrl+Num2" }, InputBinding_t { m_Context = "ToolVertexSelection" m_Command = "WeldUVs" m_Input = "Ctrl+F" } ``` -------------------------------- ### ToolEdgeSelection Input Bindings Source: https://github.com/facepunch/sbox-public/blob/master/game/core/tools/keybindings/hammer_key_bindings.txt Defines keyboard and mouse bindings for the ToolEdgeSelection context, including nudging, rotation, and gizmo controls. ```C++ InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeRotateUp" m_Input = "Alt+Up" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeDown" m_Input = "Down" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeRotateDown" m_Input = "Alt+Down" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeLeft" m_Input = "Left" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeRotateLeft" m_Input = "Alt+Left" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeRight" m_Input = "Right" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "NudgeRotateRight" m_Input = "Alt+Right" }, ``` ```C++ // Private bindings not to be remapped by user. These should match ones ones in GizmoManipulator InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey0" m_Input = "Num0" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey1" m_Input = "Num1" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey2" m_Input = "Num2" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey3" m_Input = "Num3" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey4" m_Input = "Num4" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey5" m_Input = "Num5" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey6" m_Input = "Num6" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey7" m_Input = "Num7" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey8" m_Input = "Num8" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKey9" m_Input = "Num9" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKeyDecimal" m_Input = "NumDec" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoComma" m_Input = "," }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoNumKeyMinus" m_Input = "NumSub" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoClearValue" m_Input = "Backspace" }, InputBinding_t { m_Context = "ToolEdgeSelection" m_Command = "GizmoApplyValue" m_Input = "NumEnter" }, // End private ```