Skip to content

CSmartPropElement_PlaceOnPath

CS2 build 25218825 · Steam date 2026-09-09 · platform windows-x86_64 · cs2_schema.json

Kind: classSize: 768 bytes (0x300)Alignment: 8 bytesModule: smartpropsBinary: !GlobalTypes

Metadata: MPropertyDescription An element which places an instance of its child elements at a specified interval along a path. MPropertyFriendlyName Place on Path

Relationships

Inherits from: CSmartPropElement_Group

Inheritance tree
Relationship diagram (3 edges)
classDiagram
    CSmartPropElement <|-- CSmartPropElement_Group
    CSmartPropElement_Group <|-- CSmartPropElement_PlaceOnPath
    CSmartPropElement_PlaceOnPath *-- CSmartPropAttributeCoordinateSpace
Inheritance chain, direct subclasses (up to 20) and a few composition edges

Memory layout

17 fields, 11 declared here and 6 inherited. Offsets are absolute from the object base on windows-x86_64.

CSmartPropElementCSmartPropElement_GroupCSmartPropElement_PlaceOnPath

OffsetFieldTypeFromAnnotations
0x8m_nElementIDint32CSmartPropElementMPropertySuppressField MVDataUniqueMonotonicInt _editor/next_element_id
0x10m_bEnabledCSmartPropAttributeBoolCSmartPropElementMPropertyDescription Is this element enabled? If not enabled, this element will not be evaluted and will have no effect on the result. MPropertySortPriority 10 MVDataEnableKey
0x50m_sLabelCUtlStringCSmartPropElementMPropertyDescription Optional text that will appear in the outliner to help organize Smart Prop elements and communicate their purpose to other users. MPropertyFriendlyName Label
0x58m_SelectionCriteriaCUtlVector< CSmartPropSelectionCriteria* >CSmartPropElementMPropertyFriendlyName Selection Criteria MVDataPromoteField 2
0x70m_ModifiersCUtlVector< CSmartPropModifier* >CSmartPropElementMPropertyFriendlyName Modifiers MVDataPromoteField 2
0x88m_ChildrenCUtlVector< CSmartPropElement* >CSmartPropElement_GroupMPropertyDescription List of child elements which will appear if this element appears MPropertyFriendlyName Children MVDataPromoteField 1
0xa0m_PathNameCUtlStringMPropertyDescription Name of the path to use. This path name will show up in the property editor when selecting a placement of this smart prop in Hammer, allowing selection of a path object in the map to use.
0xa8m_flSpacingCSmartPropAttributeFloatMPropertyDescription Spacing between points on the path
0xe8m_flOffsetAlongPathCSmartPropAttributeFloatMPropertyDescription Offset from the start of the path to place the first point.
0x128m_vPathOffsetCSmartPropAttributeVector2DMPropertyDescription Offset to apply to the path, specifies a horizontal and vertical offset to apply relative to the up direction. MPropertyFriendlyName Offset from path
0x168m_PathSpaceCSmartPropAttributeCoordinateSpaceMPropertyDescription Specifies the space in which the provided input path is to be evalauted.<br><br><b>World Space</b>: The input path will be evaluated in world space, such that child elements will be placed directly on the target path regardless of the transform of the smart prop object. <br><b>Object Space</b>: The world space transform of the input path will be ignored and instead the path will be evaluated relative to the transform of the smart prop object. <br><b>Element Space</b>: The world space transform of the input path will be ignored and instead the path will be evaluated relative to the transform of the current element within the smart prop. MPropertyFriendlyName Path Evaluation Space
0x1a8m_bUseFixedUpDirectionCSmartPropAttributeBoolMPropertyDescription If true, treat the specified up direction as fixed up direction to apply to all elements placed on the path. If false the up direction is just an initial direction.
0x1e8m_bUseProjectedDistanceCSmartPropAttributeBoolMPropertyDescription Compute the spacing distance in the 2d plane defined by the up direction. Most useful when using a fixed up direction, if maintaining a distance in the 2d plane is more important than maintaing distance along the path.
0x228m_vUpDirectionCSmartPropAttributeVectorMPropertyDescription If not using a fixed up direction, provides an initial up direction which will be used to determine the orientation of first element on the path, after that the elements will incrementally update to follow the path and may not match this direction. If Use Fixed Up direction is specified, then all elements will use this direction to deterime their up direction.
0x268m_UpDirectionSpaceCSmartPropAttributeCoordinateSpaceMPropertyDescription Space in which the up direction is defined.
0x2a8m_DefaultPathInWorldSpaceCSmartPropAttributeBoolMPropertyDescription If enabled, the default path values will be treated as world space values, if disabled they are treated as object space values. Typically it makes sense for literal values to be treated as being in object space, but if the values are being supplied by locators they will typically be in world space. MPropertyFriendlyName Default Path In World Space
0x2e8m_DefaultPathCUtlVector< CSmartPropAttributeVector >MPropertyDescription A set of points defining a path to use when an external path isn't specified. This will be used in the preview and thumbnail for the smart prop. It will also be used when the smart prop is placed in Hammer before a path is selected.
KV3 class defaults
{
	"_class": "CSmartPropElement_PlaceOnPath",
	"m_nElementID": -1,
	"m_bEnabled": true,
	"m_sLabel": "",
	"m_SelectionCriteria":
	[
	],
	"m_Modifiers":
	[
	],
	"m_Children":
	[
	],
	"m_PathName": "",
	"m_flSpacing": 1.000000,
	"m_flOffsetAlongPath": 0.000000,
	"m_vPathOffset":
	[
		0.000000,
		0.000000
	],
	"m_PathSpace": "WORLD",
	"m_bUseFixedUpDirection": false,
	"m_bUseProjectedDistance": false,
	"m_vUpDirection":
	[
		0.000000,
		0.000000,
		1.000000
	],
	"m_UpDirectionSpace": "WORLD",
	"m_DefaultPathInWorldSpace": false,
	"m_DefaultPath":
	[
	]
}