Skip to content

CSmartPropElement_SmartProp

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

Kind: classSize: 368 bytes (0x170)Alignment: 8 bytesModule: smartpropsBinary: !GlobalTypes

Metadata: MPropertyDescription Evaluates a specified smart prop as a child of the current element. MPropertyFriendlyName Smart Prop Reference MVDataOutlinerAssetNameExpr

Relationships

Inherits from: CSmartPropElement

Inheritance tree
Relationship diagram (2 edges)
classDiagram
    CSmartPropElement <|-- CSmartPropElement_SmartProp
    CSmartPropElement_SmartProp *-- InfoForResourceTypeCSmartProp
Inheritance chain, direct subclasses (up to 20) and a few composition edges

Memory layout

7 fields, 2 declared here and 5 inherited. Offsets are absolute from the object base on windows-x86_64.

CSmartPropElementCSmartPropElement_SmartProp

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_sSmartPropCResourceNameTyped< CWeakHandle< InfoForResourceTypeCSmartProp > >MPropertyDescription Name of the target smart prop resource (.vsmart) to evaluate.
0x168m_bLocalEvaluationStateboolMPropertyDescription If enabled, any changes made to the evaluation state by the target smart prop (as well as modifiers) will only apply locally and will not affect the evaluation state of the parent. Disabling this will allow modifications to the evaluation state by the referenced smart prop to apply the current state of the of the parent. For example if the referenced smart prop applies a transform and you want the transform to affect the elements in the parent after this element, then you should disable local evaluation state.
KV3 class defaults
{
	"_class": "CSmartPropElement_SmartProp",
	"m_nElementID": -1,
	"m_bEnabled": true,
	"m_sLabel": "",
	"m_SelectionCriteria":
	[
	],
	"m_Modifiers":
	[
	],
	"m_sSmartProp": "",
	"m_bLocalEvaluationState": true
}