From 01579f127dc3e8f23267199b15151887a224538b Mon Sep 17 00:00:00 2001
From: anarh1st47 <anarh1st47@protonmail.com>
Date: Wed, 15 Mar 2023 22:24:28 +0300
Subject: [PATCH] underlords init

---
 sdk/!GlobalTypes.hpp     | 12814 ++++++++++++++++++++++----------
 sdk/animationsystem.hpp  |  1393 ++--
 sdk/client.hpp           |  4774 +++++++++---
 sdk/engine2.hpp          |   105 +-
 sdk/materialsystem2.hpp  |    24 +-
 sdk/particles.hpp        |  5583 ++++++++------
 sdk/rendersystemdx11.hpp |    14 +-
 sdk/rendersystemdx9.hpp  |    10 +
 sdk/resourcesystem.hpp   |   128 +-
 sdk/scenefilecache.hpp   |    10 +
 sdk/scenesystem.hpp      |    76 +-
 sdk/server.hpp           | 14827 +++++++++++++++++++++++++++++++------
 sdk/soundsystem.hpp      |    28 +-
 sdk/vphysics2.hpp        |   722 +-
 sdk/worldrenderer.hpp    |   159 +-
 15 files changed, 30103 insertions(+), 10564 deletions(-)
 create mode 100644 sdk/rendersystemdx9.hpp
 create mode 100644 sdk/scenefilecache.hpp

diff --git a/sdk/!GlobalTypes.hpp b/sdk/!GlobalTypes.hpp
index 0a01e4fd..1d3051fd 100644
--- a/sdk/!GlobalTypes.hpp
+++ b/sdk/!GlobalTypes.hpp
@@ -4,8 +4,8 @@
 
 ///////////////////////////////////////////
 // Binary: !GlobalTypes
-// Class Count: 906
-// Enum Count: 168
+// Class Count: 1075
+// Enum Count: 219
 ///////////////////////////////////////////
 
 // Aligment: 4
@@ -25,7 +25,7 @@ enum class LightSourceShape_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 7
+// Size: 6
 enum class LightType_t : uint32_t
 {
 	MATERIAL_LIGHT_DISABLE = 0x0,
@@ -34,7 +34,6 @@ enum class LightType_t : uint32_t
 	MATERIAL_LIGHT_SPOT = 0x3,
 	MATERIAL_LIGHT_ORTHO = 0x4,
 	MATERIAL_LIGHT_ENVIRONMENT_PROBE = 0x5,
-	MATERIAL_LIGHT_AREA = 0x6,
 };
 
 // Aligment: 4
@@ -59,14 +58,15 @@ enum class CubeMapFace_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 5
+// Size: 6
 enum class InputLayoutVariation_t : uint32_t
 {
 	INPUT_LAYOUT_VARIATION_DEFAULT = 0x0,
-	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x1,
-	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x2,
-	INPUT_LAYOUT_VARIATION_STREAM1_DRAWINDIRECT_ID = 0x3,
-	INPUT_LAYOUT_VARIATION_MAX = 0x4,
+	INPUT_LAYOUT_VARIATION_STREAM1_MAT3X4 = 0x1,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x2,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_LIGHTMAP_PARAMS = 0x3,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x4,
+	INPUT_LAYOUT_VARIATION_MAX = 0x5,
 };
 
 // Aligment: 4
@@ -84,7 +84,7 @@ enum class RenderMultisampleType_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 9
+// Size: 8
 enum class RenderBufferFlags_t : uint32_t
 {
 	RENDER_BUFFER_USAGE_VERTEX_BUFFER = 0x1,
@@ -95,7 +95,6 @@ enum class RenderBufferFlags_t : uint32_t
 	RENDER_BUFFER_STRUCTURED_BUFFER = 0x20,
 	RENDER_BUFFER_APPEND_CONSUME_BUFFER = 0x40,
 	RENDER_BUFFER_UAV_COUNTER = 0x80,
-	RENDER_BUFFER_UAV_DRAW_INDIRECT_ARGS = 0x100,
 };
 
 // Aligment: 4
@@ -176,6 +175,20 @@ enum class RenderPrimitiveType_t : uint32_t
 	RENDER_PRIM_TYPE_COUNT = 0x2c,
 };
 
+// Aligment: 4
+// Size: 8
+enum class SignonState_t : uint32_t
+{
+	SIGNONSTATE_NONE = 0x0,
+	SIGNONSTATE_CHALLENGE = 0x1,
+	SIGNONSTATE_CONNECTED = 0x2,
+	SIGNONSTATE_NEW = 0x3,
+	SIGNONSTATE_PRESPAWN = 0x4,
+	SIGNONSTATE_SPAWN = 0x5,
+	SIGNONSTATE_FULL = 0x6,
+	SIGNONSTATE_CHANGELEVEL = 0x7,
+};
+
 // Aligment: 4
 // Size: 9
 enum class EntityIOTargetType_t : uint32_t
@@ -284,7 +297,7 @@ enum class IkTargetType : uint32_t
 };
 
 // Aligment: 4
-// Size: 13
+// Size: 14
 enum class AnimVectorSource : uint32_t
 {
 	MoveDirection = 0x0,
@@ -292,14 +305,15 @@ enum class AnimVectorSource : uint32_t
 	LookDirection = 0x2,
 	VectorParameter = 0x3,
 	WayPointDirection = 0x4,
-	Acceleration = 0x5,
-	SlopeNormal = 0x6,
-	SlopeNormal_WorldSpace = 0x7,
-	LookTarget = 0x8,
-	LookTarget_WorldSpace = 0x9,
-	WayPointPosition = 0xa,
-	GoalPosition = 0xb,
-	RootMotionVelocity = 0xc,
+	TargetMoveDirection = 0x5,
+	Acceleration = 0x6,
+	SlopeNormal = 0x7,
+	SlopeNormal_WorldSpace = 0x8,
+	LookTarget = 0x9,
+	LookTarget_WorldSpace = 0xa,
+	WayPointPosition = 0xb,
+	GoalPosition = 0xc,
+	RootMotionVelocity = 0xd,
 };
 
 // Aligment: 4
@@ -475,14 +489,6 @@ enum class AnimVrFingerSplay_t : uint32_t
 	AnimVrFingerSplay_Ring_Pinky = 0x3,
 };
 
-// Aligment: 4
-// Size: 2
-enum class AnimVrBoneTransformSource_t : uint32_t
-{
-	AnimVrBoneTransformSource_LiveStream = 0x0,
-	AnimVrBoneTransformSource_GripLimit = 0x1,
-};
-
 // Aligment: 4
 // Size: 4
 enum class ResetCycleOption : uint32_t
@@ -549,7 +555,7 @@ enum class IKSolverType : uint32_t
 };
 
 // Aligment: 4
-// Size: 36
+// Size: 35
 enum class AnimValueSource : uint32_t
 {
 	MoveHeading = 0x0,
@@ -557,37 +563,36 @@ enum class AnimValueSource : uint32_t
 	ForwardSpeed = 0x2,
 	StrafeSpeed = 0x3,
 	FacingHeading = 0x4,
-	ManualFacingHeading = 0x5,
-	LookHeading = 0x6,
-	LookPitch = 0x7,
-	Parameter = 0x8,
-	WayPointHeading = 0x9,
-	WayPointDistance = 0xa,
-	BoundaryRadius = 0xb,
-	TargetMoveHeading = 0xc,
-	TargetMoveSpeed = 0xd,
-	AccelerationHeading = 0xe,
-	AccelerationSpeed = 0xf,
-	SlopeHeading = 0x10,
-	SlopeAngle = 0x11,
-	SlopePitch = 0x12,
-	SlopeYaw = 0x13,
-	GoalDistance = 0x14,
-	AccelerationLeftRight = 0x15,
-	AccelerationFrontBack = 0x16,
-	RootMotionSpeed = 0x17,
-	RootMotionTurnSpeed = 0x18,
-	MoveHeadingRelativeToLookHeading = 0x19,
-	MaxMoveSpeed = 0x1a,
-	FingerCurl_Thumb = 0x1b,
-	FingerCurl_Index = 0x1c,
-	FingerCurl_Middle = 0x1d,
-	FingerCurl_Ring = 0x1e,
-	FingerCurl_Pinky = 0x1f,
-	FingerSplay_Thumb_Index = 0x20,
-	FingerSplay_Index_Middle = 0x21,
-	FingerSplay_Middle_Ring = 0x22,
-	FingerSplay_Ring_Pinky = 0x23,
+	LookHeading = 0x5,
+	LookPitch = 0x6,
+	Parameter = 0x7,
+	WayPointHeading = 0x8,
+	WayPointDistance = 0x9,
+	BoundaryRadius = 0xa,
+	TargetMoveHeading = 0xb,
+	TargetMoveSpeed = 0xc,
+	AccelerationHeading = 0xd,
+	AccelerationSpeed = 0xe,
+	SlopeHeading = 0xf,
+	SlopeAngle = 0x10,
+	SlopePitch = 0x11,
+	SlopeYaw = 0x12,
+	GoalDistance = 0x13,
+	AccelerationLeftRight = 0x14,
+	AccelerationFrontBack = 0x15,
+	RootMotionSpeed = 0x16,
+	RootMotionTurnSpeed = 0x17,
+	MoveHeadingRelativeToLookHeading = 0x18,
+	MaxMoveSpeed = 0x19,
+	FingerCurl_Thumb = 0x1a,
+	FingerCurl_Index = 0x1b,
+	FingerCurl_Middle = 0x1c,
+	FingerCurl_Ring = 0x1d,
+	FingerCurl_Pinky = 0x1e,
+	FingerSplay_Thumb_Index = 0x1f,
+	FingerSplay_Index_Middle = 0x20,
+	FingerSplay_Middle_Ring = 0x21,
+	FingerSplay_Ring_Pinky = 0x22,
 };
 
 // Aligment: 4
@@ -645,7 +650,7 @@ enum class ControlValue : uint32_t
 };
 
 // Aligment: 1
-// Size: 69
+// Size: 67
 enum class fieldtype_t : uint8_t
 {
 	FIELD_VOID = 0,
@@ -691,32 +696,30 @@ enum class fieldtype_t : uint8_t
 	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_VECTOR = 40,
 	FIELD_HMATERIAL = 41,
 	FIELD_HMODEL = 42,
-	FIELD_HANIMATIONGRAPH = 43,
-	FIELD_NETWORK_QUANTIZED_VECTOR = 44,
-	FIELD_NETWORK_QUANTIZED_FLOAT = 45,
-	FIELD_DIRECTION_VECTOR_WORLDSPACE = 46,
-	FIELD_QANGLE_WORLDSPACE = 47,
-	FIELD_QUATERNION_WORLDSPACE = 48,
-	FIELD_HSCRIPT_LIGHTBINDING = 49,
-	FIELD_V8_VALUE = 50,
-	FIELD_V8_OBJECT = 51,
-	FIELD_V8_ARRAY = 52,
-	FIELD_V8_CALLBACK_INFO = 53,
-	FIELD_UTLSTRING = 54,
-	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_POSITION_VECTOR = 55,
-	FIELD_HRENDERTEXTURE = 56,
-	FIELD_HPARTICLESYSTEMDEFINITION = 57,
-	FIELD_UINT8 = 58,
-	FIELD_UINT16 = 59,
-	FIELD_CTRANSFORM = 60,
-	FIELD_CTRANSFORM_WORLDSPACE = 61,
-	FIELD_HPOSTPROCESSING = 62,
-	FIELD_MATRIX3X4 = 63,
-	FIELD_SHIM = 64,
-	FIELD_CMOTIONTRANSFORM = 65,
-	FIELD_CMOTIONTRANSFORM_WORLDSPACE = 66,
-	FIELD_ATTACHMENT_HANDLE = 67,
-	FIELD_TYPECOUNT = 68,
+	FIELD_NETWORK_QUANTIZED_VECTOR = 43,
+	FIELD_NETWORK_QUANTIZED_FLOAT = 44,
+	FIELD_DIRECTION_VECTOR_WORLDSPACE = 45,
+	FIELD_QANGLE_WORLDSPACE = 46,
+	FIELD_QUATERNION_WORLDSPACE = 47,
+	FIELD_HSCRIPT_LIGHTBINDING = 48,
+	FIELD_V8_VALUE = 49,
+	FIELD_V8_OBJECT = 50,
+	FIELD_V8_ARRAY = 51,
+	FIELD_V8_CALLBACK_INFO = 52,
+	FIELD_UTLSTRING = 53,
+	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_POSITION_VECTOR = 54,
+	FIELD_HRENDERTEXTURE = 55,
+	FIELD_HPARTICLESYSTEMDEFINITION = 56,
+	FIELD_UINT8 = 57,
+	FIELD_UINT16 = 58,
+	FIELD_CTRANSFORM = 59,
+	FIELD_CTRANSFORM_WORLDSPACE = 60,
+	FIELD_HPOSTPROCESSING = 61,
+	FIELD_MATRIX3X4 = 62,
+	FIELD_SHIM = 63,
+	FIELD_CMOTIONTRANSFORM = 64,
+	FIELD_CMOTIONTRANSFORM_WORLDSPACE = 65,
+	FIELD_TYPECOUNT = 66,
 };
 
 // Aligment: 4
@@ -767,14 +770,6 @@ enum class AnimNodeNetworkMode : uint32_t
 	ClientPredicted = 0x2,
 };
 
-// Aligment: 4
-// Size: 2
-enum class StepPhase : uint32_t
-{
-	StepPhase_OnGround = 0x0,
-	StepPhase_InAir = 0x1,
-};
-
 // Aligment: 4
 // Size: 3
 enum class AnimPoseControl : uint32_t
@@ -844,16 +839,6 @@ enum class CAnimationGraphVisualizerPrimitiveType : uint32_t
 	ANIMATIONGRAPHVISUALIZERPRIMITIVETYPE_Axis = 0x4,
 };
 
-// Aligment: 4
-// Size: 4
-enum class BoneTransformSpace_t : uint32_t
-{
-	BoneTransformSpace_Invalid = 0xffffffffffffffff,
-	BoneTransformSpace_Parent = 0x0,
-	BoneTransformSpace_Model = 0x1,
-	BoneTransformSpace_World = 0x2,
-};
-
 // Aligment: 4
 // Size: 17
 enum class SeqCmd_t : uint32_t
@@ -877,6 +862,24 @@ enum class SeqCmd_t : uint32_t
 	SeqCmd_Transform = 0x10,
 };
 
+// Aligment: 4
+// Size: 5
+enum class ModelConfigAttachmentType_t : uint32_t
+{
+	MODEL_CONFIG_ATTACHMENT_INVALID = 0xffffffffffffffff,
+	MODEL_CONFIG_ATTACHMENT_BONE_OR_ATTACHMENT = 0x0,
+	MODEL_CONFIG_ATTACHMENT_ROOT_RELATIVE = 0x1,
+	MODEL_CONFIG_ATTACHMENT_BONEMERGE = 0x2,
+	MODEL_CONFIG_ATTACHMENT_COUNT = 0x3,
+};
+
+// Aligment: 4
+// Size: 1
+enum class VPhysXDiskShapeHeader_t::VersinEnum_t : uint32_t
+{
+	VPhysXDiskShapeHeader_t::VERSION = 0x81,
+};
+
 // Aligment: 4
 // Size: 2
 enum class VPhysXJoint_t::Flags_t : uint32_t
@@ -981,17 +984,19 @@ enum class ModelBoneFlexComponent_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 8
+// Size: 10
 enum class MeshDrawPrimitiveFlags_t : uint32_t
 {
 	MESH_DRAW_FLAGS_NONE = 0x0,
 	MESH_DRAW_FLAGS_USE_SHADOW_FAST_PATH = 0x1,
 	MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT = 0x2,
+	MESH_DRAW_FLAGS_IS_OCCLUDER = 0x4,
 	MESH_DRAW_INPUT_LAYOUT_IS_NOT_MATCHED_TO_MATERIAL = 0x8,
 	MESH_DRAW_FLAGS_USE_COMPRESSED_PER_VERTEX_LIGHTING = 0x10,
 	MESH_DRAW_FLAGS_USE_UNCOMPRESSED_PER_VERTEX_LIGHTING = 0x20,
 	MESH_DRAW_FLAGS_CAN_BATCH_WITH_DYNAMIC_SHADER_CONSTANTS = 0x40,
 	MESH_DRAW_FLAGS_DRAW_LAST = 0x80,
+	MESH_DRAW_FLAGS_HAS_LIGHTING_BASIS = 0x100,
 };
 
 // Aligment: 4
@@ -1092,7 +1097,7 @@ enum class VPhysXAggregateData_t::VPhysXFlagEnum_t : uint32_t
 {
 	VPhysXAggregateData_t::FLAG_IS_POLYSOUP_GEOMETRY = 0x1,
 	VPhysXAggregateData_t::FLAG_LEVEL_COLLISION = 0x10,
-	VPhysXAggregateData_t::FLAG_IGNORE_SCALE_OBSOLETE_DO_NOT_USE = 0x20,
+	VPhysXAggregateData_t::FLAG_IGNORE_SCALE = 0x20,
 };
 
 // Aligment: 4
@@ -1167,7 +1172,7 @@ enum class vmix_filter_type_t : uint16_t
 };
 
 // Aligment: 2
-// Size: 13
+// Size: 12
 enum class vmix_processor_type_t : uint16_t
 {
 	VPROCESSOR_UNKNOWN = 0,
@@ -1182,14 +1187,12 @@ enum class vmix_processor_type_t : uint16_t
 	VPROCESSOR_STEAMAUDIO_PATHING = 9,
 	VPROCESSOR_EQ8 = 10,
 	VPROCESSOR_ENVELOPE = 11,
-	VPROCESSOR_VOCODER = 12,
 };
 
 // Aligment: 4
-// Size: 13
+// Size: 12
 enum class ObjectTypeFlags_t : uint32_t
 {
-	OBJECT_TYPE_NONE = 0x0,
 	OBJECT_TYPE_IMAGE_LOD = 0x1,
 	OBJECT_TYPE_GEOMETRY_LOD = 0x2,
 	OBJECT_TYPE_DECAL = 0x4,
@@ -1280,7 +1283,7 @@ enum class ParticleOrientationChoiceList_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 18
+// Size: 17
 enum class ParticleAttachment_t : uint32_t
 {
 	PATTACH_INVALID = 0xffffffffffffffff,
@@ -1298,9 +1301,8 @@ enum class ParticleAttachment_t : uint32_t
 	PATTACH_MAIN_VIEW = 0xb,
 	PATTACH_WATERWAKE = 0xc,
 	PATTACH_CENTER_FOLLOW = 0xd,
-	PATTACH_BONE = 0xe,
-	PATTACH_BONEFOLLOW = 0xf,
-	MAX_PATTACH_TYPES = 0x10,
+	PATTACH_CUSTOM_GAME_STATE_1 = 0xe,
+	MAX_PATTACH_TYPES = 0xf,
 };
 
 // Aligment: 4
@@ -1340,16 +1342,6 @@ enum class ParticleVecType_t : uint32_t
 	PVEC_TYPE_COUNT = 0xa,
 };
 
-// Aligment: 4
-// Size: 4
-enum class PFNoiseModifier_t : uint32_t
-{
-	PF_NOISE_MODIFIER_NONE = 0x0,
-	PF_NOISE_MODIFIER_LINES = 0x1,
-	PF_NOISE_MODIFIER_CLUMPS = 0x2,
-	PF_NOISE_MODIFIER_RINGS = 0x3,
-};
-
 // Aligment: 4
 // Size: 4
 enum class ParticleFloatRandomMode_t : uint32_t
@@ -1464,7 +1456,7 @@ enum class SequenceCombineMode_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 11
+// Size: 10
 enum class ParticlePinDistance_t : uint32_t
 {
 	PARTICLE_PIN_DISTANCE_NONE = 0xffffffffffffffff,
@@ -1477,26 +1469,6 @@ enum class ParticlePinDistance_t : uint32_t
 	PARTICLE_PIN_DISTANCE_CP_PAIR_EITHER = 0x7,
 	PARTICLE_PIN_DISTANCE_CP_PAIR_BOTH = 0x8,
 	PARTICLE_PIN_SPEED = 0x9,
-	PARTICLE_PIN_COLLECTION_AGE = 0xa,
-};
-
-// Aligment: 4
-// Size: 3
-enum class ParticleDirectionNoiseType_t : uint32_t
-{
-	PARTICLE_DIR_NOISE_PERLIN = 0x0,
-	PARTICLE_DIR_NOISE_CURL = 0x1,
-	PARTICLE_DIR_NOISE_WORLEY_BASIC = 0x2,
-};
-
-// Aligment: 4
-// Size: 4
-enum class PFNoiseType_t : uint32_t
-{
-	PF_NOISE_TYPE_PERLIN = 0x0,
-	PF_NOISE_TYPE_SIMPLEX = 0x1,
-	PF_NOISE_TYPE_WORLEY = 0x2,
-	PF_NOISE_TYPE_CURL = 0x3,
 };
 
 // Aligment: 4
@@ -1521,16 +1493,6 @@ enum class ScalarExpressionType_t : uint32_t
 	SCALAR_EXPRESSION_MAX = 0x6,
 };
 
-// Aligment: 4
-// Size: 4
-enum class DetailCombo_t : uint32_t
-{
-	DETAIL_COMBO_OFF = 0x0,
-	DETAIL_COMBO_ADD = 0x1,
-	DETAIL_COMBO_ADD_SELF_ILLUM = 0x2,
-	DETAIL_COMBO_MOD2X = 0x3,
-};
-
 // Aligment: 4
 // Size: 8
 enum class ParticleColorBlendType_t : uint32_t
@@ -1557,19 +1519,7 @@ enum class ParticleColorBlendMode_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 6
-enum class PFNoiseTurbulence_t : uint32_t
-{
-	PF_NOISE_TURB_NONE = 0x0,
-	PF_NOISE_TURB_HIGHLIGHT = 0x1,
-	PF_NOISE_TURB_FEEDBACK = 0x2,
-	PF_NOISE_TURB_LOOPY = 0x3,
-	PF_NOISE_TURB_CONTRAST = 0x4,
-	PF_NOISE_TURB_ALTERNATE = 0x5,
-};
-
-// Aligment: 4
-// Size: 18
+// Size: 17
 enum class ParticleFloatType_t : uint32_t
 {
 	PF_TYPE_INVALID = 0xffffffffffffffff,
@@ -1581,15 +1531,14 @@ enum class ParticleFloatType_t : uint32_t
 	PF_TYPE_CONTROL_POINT_COMPONENT = 0x5,
 	PF_TYPE_CONTROL_POINT_CHANGE_AGE = 0x6,
 	PF_TYPE_PARTICLE_DETAIL_LEVEL = 0x7,
-	PF_TYPE_PARTICLE_NOISE = 0x8,
-	PF_TYPE_PARTICLE_AGE = 0x9,
-	PF_TYPE_PARTICLE_AGE_NORMALIZED = 0xa,
-	PF_TYPE_PARTICLE_FLOAT = 0xb,
-	PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0xc,
-	PF_TYPE_PARTICLE_SPEED = 0xd,
-	PF_TYPE_PARTICLE_NUMBER = 0xe,
-	PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0xf,
-	PF_TYPE_COUNT = 0x10,
+	PF_TYPE_PARTICLE_AGE = 0x8,
+	PF_TYPE_PARTICLE_AGE_NORMALIZED = 0x9,
+	PF_TYPE_PARTICLE_FLOAT = 0xa,
+	PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0xb,
+	PF_TYPE_PARTICLE_SPEED = 0xc,
+	PF_TYPE_PARTICLE_NUMBER = 0xd,
+	PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0xe,
+	PF_TYPE_COUNT = 0xf,
 };
 
 // Aligment: 4
@@ -1611,19 +1560,6 @@ enum class ParticleVRHandChoiceList_t : uint32_t
 	PARTICLE_VRHAND_CP_OBJECT = 0x3,
 };
 
-// Aligment: 4
-// Size: 7
-enum class PFuncVisualizationType_t : uint32_t
-{
-	PFUNC_VISUALIZATION_SPHERE_WIREFRAME = 0x0,
-	PFUNC_VISUALIZATION_SPHERE_SOLID = 0x1,
-	PFUNC_VISUALIZATION_BOX = 0x2,
-	PFUNC_VISUALIZATION_RING = 0x3,
-	PFUNC_VISUALIZATION_PLANE = 0x4,
-	PFUNC_VISUALIZATION_LINE = 0x5,
-	PFUNC_VISUALIZATION_CYLINDER = 0x6,
-};
-
 // Aligment: 4
 // Size: 5
 enum class ParticleFloatBiasType_t : uint32_t
@@ -1673,21 +1609,37 @@ enum class ParticleSetMethod_t : uint32_t
 enum class MoveType_t : uint8_t
 {
 	MOVETYPE_NONE = 0,
-	MOVETYPE_UNUSED1 = 1,
+	MOVETYPE_ISOMETRIC = 1,
 	MOVETYPE_WALK = 2,
-	MOVETYPE_UNUSED9 = 3,
-	MOVETYPE_UNUSED2 = 4,
-	MOVETYPE_UNUSED3 = 5,
+	MOVETYPE_STEP = 3,
+	MOVETYPE_FLY = 4,
+	MOVETYPE_FLYGRAVITY = 5,
 	MOVETYPE_VPHYSICS = 6,
-	MOVETYPE_UNUSED8 = 7,
-	MOVETYPE_UNUSED4 = 8,
-	MOVETYPE_UNUSED5 = 9,
-	MOVETYPE_UNUSED6 = 10,
-	MOVETYPE_UNUSED7 = 11,
+	MOVETYPE_PUSH = 7,
+	MOVETYPE_NOCLIP = 8,
+	MOVETYPE_LADDER = 9,
+	MOVETYPE_OBSERVER = 10,
+	MOVETYPE_CUSTOM = 11,
 	MOVETYPE_LAST = 11,
 	MOVETYPE_MAX_BITS = 4,
 };
 
+// Aligment: 4
+// Size: 10
+enum class Disposition_t : uint32_t
+{
+	D_ER = 0x0,
+	D_HT = 0x1,
+	D_FR = 0x2,
+	D_LI = 0x3,
+	D_NU = 0x4,
+	D_ERROR = 0x0,
+	D_HATE = 0x1,
+	D_FEAR = 0x2,
+	D_LIKE = 0x3,
+	D_NEUTRAL = 0x4,
+};
+
 // Aligment: 4
 // Size: 2
 enum class ValueRemapperHapticsType_t : uint32_t
@@ -1721,6 +1673,18 @@ enum class BrushSolidities_e : uint32_t
 	BRUSHSOLID_ALWAYS = 0x2,
 };
 
+// Aligment: 4
+// Size: 6
+enum class ShakeCommand_t : uint32_t
+{
+	SHAKE_START = 0x0,
+	SHAKE_STOP = 0x1,
+	SHAKE_AMPLITUDE = 0x2,
+	SHAKE_FREQUENCY = 0x3,
+	SHAKE_START_RUMBLEONLY = 0x4,
+	SHAKE_START_NORUMBLE = 0x5,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PointWorldTextJustifyHorizontal_t : uint32_t
@@ -1730,6 +1694,35 @@ enum class PointWorldTextJustifyHorizontal_t : uint32_t
 	POINT_WORLD_TEXT_JUSTIFY_HORIZONTAL_RIGHT = 0x2,
 };
 
+// Aligment: 4
+// Size: 3
+enum class WeaponState_t : uint32_t
+{
+	WEAPON_NOT_CARRIED = 0x0,
+	WEAPON_IS_CARRIED_BY_PLAYER = 0x1,
+	WEAPON_IS_ACTIVE = 0x2,
+};
+
+// Aligment: 4
+// Size: 14
+enum class UnitStatusLabel : uint32_t
+{
+	STATUS_NO_HEALTH_BAR = 0x0,
+	STATUS_BANISHED = 0x1,
+	STATUS_SLEEP = 0x2,
+	STATUS_STUNNED = 0x3,
+	STATUS_HEXED = 0x4,
+	STATUS_TAUNTED = 0x5,
+	STATUS_FEAR = 0x6,
+	STATUS_CHARMED = 0x7,
+	STATUS_MUTED = 0x8,
+	STATUS_SILENCED = 0x9,
+	STATUS_ROOTED = 0xa,
+	STATUS_DISARMED = 0xb,
+	STATUS_BREAK = 0xc,
+	STATUS_NONE = 0xd,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PointTemplateOwnerSpawnGroupType_t : uint32_t
@@ -1749,6 +1742,26 @@ enum class ValueRemapperOutputType_t : uint32_t
 	OutputType_RotationZ = 0x3,
 };
 
+// Aligment: 1
+// Size: 6
+enum class MoveCollide_t : uint8_t
+{
+	MOVECOLLIDE_DEFAULT = 0,
+	MOVECOLLIDE_FLY_BOUNCE = 1,
+	MOVECOLLIDE_FLY_CUSTOM = 2,
+	MOVECOLLIDE_FLY_SLIDE = 3,
+	MOVECOLLIDE_COUNT = 4,
+	MOVECOLLIDE_MAX_BITS = 3,
+};
+
+// Aligment: 4
+// Size: 2
+enum class attributeprovidertypes_t : uint32_t
+{
+	PROVIDER_GENERIC = 0x0,
+	PROVIDER_WEAPON = 0x1,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PointWorldTextJustifyVertical_t : uint32_t
@@ -1759,7 +1772,7 @@ enum class PointWorldTextJustifyVertical_t : uint32_t
 };
 
 // Aligment: 1
-// Size: 11
+// Size: 8
 enum class SolidType_t : uint8_t
 {
 	SOLID_NONE = 0,
@@ -1769,10 +1782,17 @@ enum class SolidType_t : uint8_t
 	SOLID_POINT = 5,
 	SOLID_VPHYSICS = 6,
 	SOLID_CAPSULE = 7,
-	SOLID_SPHERE = 8,
-	SOLID_ORIENTED_CAPSULE = 9,
-	SOLID_CYLINDER = 10,
-	SOLID_LAST = 11,
+	SOLID_LAST = 8,
+};
+
+// Aligment: 4
+// Size: 4
+enum class PetLevelup_Rule_t : uint32_t
+{
+	PETLEVELFROM_NOTHING = 0x0,
+	PETLEVELFROM_KILLEATER = 0x1,
+	PETLEVELFROM_COMPENDIUM_LEVEL = 0x2,
+	NUM_PETLEVELUPRULES = 0x3,
 };
 
 // Aligment: 4
@@ -1782,6 +1802,45 @@ enum class navproperties_t : uint32_t
 	NAV_IGNORE = 0x1,
 };
 
+// Aligment: 4
+// Size: 10
+enum class DAC_UNIT_TARGET_TYPE : uint32_t
+{
+	DAC_UNIT_TARGET_NONE = 0x0,
+	DAC_UNIT_TARGET_HERO = 0x1,
+	DAC_UNIT_TARGET_CREEP = 0x2,
+	DAC_UNIT_TARGET_BUILDING = 0x4,
+	DAC_UNIT_TARGET_COURIER = 0x10,
+	DAC_UNIT_TARGET_OTHER = 0x20,
+	DAC_UNIT_TARGET_TREE = 0x40,
+	DAC_UNIT_TARGET_CUSTOM = 0x80,
+	DAC_UNIT_TARGET_BASIC = 0x12,
+	DAC_UNIT_TARGET_ALL = 0x37,
+};
+
+// Aligment: 4
+// Size: 8
+enum class attackfail : uint32_t
+{
+	DAC_ATTACK_RECORD_FAIL_NO = 0x0,
+	DAC_ATTACK_RECORD_FAIL_TERRAIN_MISS = 0x1,
+	DAC_ATTACK_RECORD_FAIL_SOURCE_MISS = 0x2,
+	DAC_ATTACK_RECORD_FAIL_TARGET_EVADED = 0x3,
+	DAC_ATTACK_RECORD_FAIL_TARGET_INVULNERABLE = 0x4,
+	DAC_ATTACK_RECORD_FAIL_TARGET_OUT_OF_RANGE = 0x5,
+	DAC_ATTACK_RECORD_CANNOT_FAIL = 0x6,
+	DAC_ATTACK_RECORD_FAIL_BLOCKED_BY_OBSTRUCTION = 0x7,
+};
+
+// Aligment: 4
+// Size: 3
+enum class SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t : uint32_t
+{
+	SimpleConstraintSoundProfile::kMIN_THRESHOLD = 0x0,
+	SimpleConstraintSoundProfile::kMIN_FULL = 0x1,
+	SimpleConstraintSoundProfile::kHIGHWATER = 0x2,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PlayerConnectedState : uint32_t
@@ -1791,6 +1850,16 @@ enum class PlayerConnectedState : uint32_t
 	PlayerDisconnected = 0x2,
 };
 
+// Aligment: 4
+// Size: 4
+enum class MaterialModifyMode_t : uint32_t
+{
+	MATERIAL_MODIFY_MODE_NONE = 0x0,
+	MATERIAL_MODIFY_MODE_SETVAR = 0x1,
+	MATERIAL_MODIFY_MODE_ANIM_SEQUENCE = 0x2,
+	MATERIAL_MODIFY_MODE_FLOAT_LERP = 0x3,
+};
+
 // Aligment: 4
 // Size: 5
 enum class DoorState_t : uint32_t
@@ -1814,6 +1883,28 @@ enum class LatchDirtyPermission_t : uint32_t
 	LATCH_DIRTY_PARTICLE_SIMULATE = 0x5,
 };
 
+// Aligment: 4
+// Size: 16
+enum class vote_create_failed_t : uint32_t
+{
+	VOTE_FAILED_GENERIC = 0x0,
+	VOTE_FAILED_TRANSITIONING_PLAYERS = 0x1,
+	VOTE_FAILED_RATE_EXCEEDED = 0x2,
+	VOTE_FAILED_YES_MUST_EXCEED_NO = 0x3,
+	VOTE_FAILED_QUORUM_FAILURE = 0x4,
+	VOTE_FAILED_ISSUE_DISABLED = 0x5,
+	VOTE_FAILED_MAP_NOT_FOUND = 0x6,
+	VOTE_FAILED_MAP_NAME_REQUIRED = 0x7,
+	VOTE_FAILED_FAILED_RECENTLY = 0x8,
+	VOTE_FAILED_TEAM_CANT_CALL = 0x9,
+	VOTE_FAILED_WAITINGFORPLAYERS = 0xa,
+	VOTE_FAILED_PLAYERNOTFOUND = 0xb,
+	VOTE_FAILED_CANNOT_KICK_ADMIN = 0xc,
+	VOTE_FAILED_SCRAMBLE_IN_PROGRESS = 0xd,
+	VOTE_FAILED_SPECTATOR = 0xe,
+	VOTE_FAILED_MAX = 0xf,
+};
+
 // Aligment: 1
 // Size: 20
 enum class RenderFx_t : uint8_t
@@ -1840,6 +1931,261 @@ enum class RenderFx_t : uint8_t
 	kRenderFxMax = 19,
 };
 
+// Aligment: 4
+// Size: 2
+enum class CRR_Response::ResponseEnum_t : uint32_t
+{
+	CRR_Response::MAX_RESPONSE_NAME = 0xc0,
+	CRR_Response::MAX_RULE_NAME = 0x80,
+};
+
+// Aligment: 4
+// Size: 241
+enum class modifierfunction : uint32_t
+{
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE = 0x0,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_TARGET = 0x1,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_PROC = 0x2,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_POST_CRIT = 0x3,
+	MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE = 0x4,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL = 0x5,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_MAGICAL = 0x6,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PURE = 0x7,
+	MODIFIER_PROPERTY_PROCATTACK_FEEDBACK = 0x8,
+	MODIFIER_PROPERTY_OVERRIDE_ATTACK_DAMAGE = 0x9,
+	MODIFIER_PROPERTY_PRE_ATTACK = 0xa,
+	MODIFIER_PROPERTY_INVISIBILITY_LEVEL = 0xb,
+	MODIFIER_PROPERTY_INVISIBILITY_ATTACK_BEHAVIOR_EXCEPTION = 0xc,
+	MODIFIER_PROPERTY_PERSISTENT_INVISIBILITY = 0xd,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT = 0xe,
+	MODIFIER_PROPERTY_MOVESPEED_BASE_OVERRIDE = 0xf,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE = 0x10,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE = 0x11,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE_2 = 0x12,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE = 0x13,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE_2 = 0x14,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE = 0x15,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE_2 = 0x16,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE = 0x17,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MIN = 0x18,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MAX = 0x19,
+	MODIFIER_PROPERTY_IGNORE_MOVESPEED_LIMIT = 0x1a,
+	MODIFIER_PROPERTY_MOVESPEED_LIMIT = 0x1b,
+	MODIFIER_PROPERTY_ATTACKSPEED_BASE_OVERRIDE = 0x1c,
+	MODIFIER_PROPERTY_FIXED_ATTACK_RATE = 0x1d,
+	MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT = 0x1e,
+	MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT = 0x1f,
+	MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT = 0x20,
+	MODIFIER_PROPERTY_ATTACK_POINT_CONSTANT = 0x21,
+	MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE = 0x22,
+	MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE_ILLUSION = 0x23,
+	MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE = 0x24,
+	MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE = 0x25,
+	MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE_UNIQUE = 0x26,
+	MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE_SOURCE = 0x27,
+	MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE = 0x28,
+	MODIFIER_PROPERTY_MP_REGEN_AMPLIFY_PERCENTAGE = 0x29,
+	MODIFIER_PROPERTY_MP_RESTORE_AMPLIFY_PERCENTAGE = 0x2a,
+	MODIFIER_PROPERTY_MP_FROM_DAMAGE_INCOMING_AMPLIFY_PERCENTAGE = 0x2b,
+	MODIFIER_PROPERTY_MP_FROM_DAMAGE_OUTGOING_AMPLIFY_PERCENTAGE = 0x2c,
+	MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE = 0x2d,
+	MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE_UNIQUE = 0x2e,
+	MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE = 0x2f,
+	MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_PERCENTAGE = 0x30,
+	MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_CONSTANT = 0x31,
+	MODIFIER_PROPERTY_INCOMING_SPELL_DAMAGE_CONSTANT = 0x32,
+	MODIFIER_PROPERTY_EVASION_CONSTANT = 0x33,
+	MODIFIER_PROPERTY_NEGATIVE_EVASION_CONSTANT = 0x34,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE = 0x35,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING = 0x36,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE_CASTER = 0x37,
+	MODIFIER_PROPERTY_AVOID_DAMAGE = 0x38,
+	MODIFIER_PROPERTY_AVOID_SPELL = 0x39,
+	MODIFIER_PROPERTY_MISS_PERCENTAGE = 0x3a,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS = 0x3b,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE = 0x3c,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE_ACTIVE = 0x3d,
+	MODIFIER_PROPERTY_IGNORE_PHYSICAL_ARMOR = 0x3e,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DIRECT_MODIFICATION = 0x3f,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS = 0x40,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DECREPIFY_UNIQUE = 0x41,
+	MODIFIER_PROPERTY_BASE_MANA_REGEN = 0x42,
+	MODIFIER_PROPERTY_MANA_REGEN_CONSTANT = 0x43,
+	MODIFIER_PROPERTY_MANA_REGEN_CONSTANT_UNIQUE = 0x44,
+	MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE = 0x45,
+	MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT = 0x46,
+	MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE = 0x47,
+	MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE_UNIQUE = 0x48,
+	MODIFIER_PROPERTY_HEALTH_BONUS = 0x49,
+	MODIFIER_PROPERTY_MANA_BONUS = 0x4a,
+	MODIFIER_PROPERTY_EXTRA_STRENGTH_BONUS = 0x4b,
+	MODIFIER_PROPERTY_EXTRA_HEALTH_BONUS = 0x4c,
+	MODIFIER_PROPERTY_EXTRA_MANA_BONUS = 0x4d,
+	MODIFIER_PROPERTY_EXTRA_HEALTH_PERCENTAGE = 0x4e,
+	MODIFIER_PROPERTY_STATS_STRENGTH_BONUS = 0x4f,
+	MODIFIER_PROPERTY_STATS_AGILITY_BONUS = 0x50,
+	MODIFIER_PROPERTY_STATS_INTELLECT_BONUS = 0x51,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS = 0x52,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS_TARGET = 0x53,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS_STACKING = 0x54,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BASE_OVERRIDE = 0x55,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS = 0x56,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_UNIQUE = 0x57,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_PERCENTAGE = 0x58,
+	MODIFIER_PROPERTY_MAX_ATTACK_RANGE = 0x59,
+	MODIFIER_PROPERTY_PROJECTILE_SPEED_BONUS = 0x5a,
+	MODIFIER_PROPERTY_PROJECTILE_NAME = 0x5b,
+	MODIFIER_PROPERTY_REINCARNATION = 0x5c,
+	MODIFIER_PROPERTY_RESPAWNTIME = 0x5d,
+	MODIFIER_PROPERTY_RESPAWNTIME_PERCENTAGE = 0x5e,
+	MODIFIER_PROPERTY_RESPAWNTIME_STACKING = 0x5f,
+	MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE = 0x60,
+	MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE_STACKING = 0x61,
+	MODIFIER_PROPERTY_CASTTIME_PERCENTAGE = 0x62,
+	MODIFIER_PROPERTY_MANACOST_PERCENTAGE = 0x63,
+	MODIFIER_PROPERTY_MANACOST_PERCENTAGE_STACKING = 0x64,
+	MODIFIER_PROPERTY_DEATHGOLDCOST = 0x65,
+	MODIFIER_PROPERTY_EXP_RATE_BOOST = 0x66,
+	MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE = 0x67,
+	MODIFIER_PROPERTY_PREATTACK_TARGET_CRITICALSTRIKE = 0x68,
+	MODIFIER_PROPERTY_MAGICAL_CONSTANT_BLOCK = 0x69,
+	MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK = 0x6a,
+	MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK_SPECIAL = 0x6b,
+	MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK_UNAVOIDABLE_PRE_ARMOR = 0x6c,
+	MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK = 0x6d,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION = 0x6e,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION_WEIGHT = 0x6f,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION_RATE = 0x70,
+	MODIFIER_PROPERTY_ABSORB_SPELL = 0x71,
+	MODIFIER_PROPERTY_REFLECT_SPELL = 0x72,
+	MODIFIER_PROPERTY_DISABLE_AUTOATTACK = 0x73,
+	MODIFIER_PROPERTY_BONUS_DAY_VISION = 0x74,
+	MODIFIER_PROPERTY_BONUS_NIGHT_VISION = 0x75,
+	MODIFIER_PROPERTY_BONUS_NIGHT_VISION_UNIQUE = 0x76,
+	MODIFIER_PROPERTY_BONUS_VISION_PERCENTAGE = 0x77,
+	MODIFIER_PROPERTY_FIXED_DAY_VISION = 0x78,
+	MODIFIER_PROPERTY_FIXED_NIGHT_VISION = 0x79,
+	MODIFIER_PROPERTY_MIN_HEALTH = 0x7a,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PHYSICAL = 0x7b,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_MAGICAL = 0x7c,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PURE = 0x7d,
+	MODIFIER_PROPERTY_IS_ILLUSION = 0x7e,
+	MODIFIER_PROPERTY_ILLUSION_LABEL = 0x7f,
+	MODIFIER_PROPERTY_SUPER_ILLUSION = 0x80,
+	MODIFIER_PROPERTY_SUPER_ILLUSION_WITH_ULTIMATE = 0x81,
+	MODIFIER_PROPERTY_TURN_RATE_PERCENTAGE = 0x82,
+	MODIFIER_PROPERTY_TURN_RATE_OVERRIDE = 0x83,
+	MODIFIER_PROPERTY_DISABLE_HEALING = 0x84,
+	MODIFIER_PROPERTY_ALWAYS_ALLOW_ATTACK = 0x85,
+	MODIFIER_PROPERTY_OVERRIDE_ATTACK_MAGICAL = 0x86,
+	MODIFIER_PROPERTY_UNIT_STATS_NEEDS_REFRESH = 0x87,
+	MODIFIER_PROPERTY_BOUNTY_CREEP_MULTIPLIER = 0x88,
+	MODIFIER_PROPERTY_BOUNTY_OTHER_MULTIPLIER = 0x89,
+	MODIFIER_PROPERTY_UNIT_DISALLOW_UPGRADING = 0x8a,
+	MODIFIER_PROPERTY_DODGE_PROJECTILE = 0x8b,
+	MODIFIER_PROPERTY_TOTAL_HEALING_PERCENTAGE_BONUS = 0x8c,
+	MODIFIER_PROPERTY_MANA_REDUCTION_AMPLIFY_PERCENTAGE = 0x8d,
+	MODIFIER_PROPERTY_MANA_GENERATED_BY_OUTGOING_ATTACKS_PERCENTAGE = 0x8e,
+	MODIFIER_PROPERTY_HYPE_GENERATION_PERCENTAGE = 0x8f,
+	MODIFIER_EVENT_ON_SPELL_TARGET_READY = 0x90,
+	MODIFIER_EVENT_ON_ATTACK_RECORD = 0x91,
+	MODIFIER_EVENT_ON_ATTACK_START = 0x92,
+	MODIFIER_EVENT_ON_ATTACK = 0x93,
+	MODIFIER_EVENT_ON_ATTACK_LANDED = 0x94,
+	MODIFIER_EVENT_ON_ATTACK_FAIL = 0x95,
+	MODIFIER_EVENT_ON_ATTACK_ALLIED = 0x96,
+	MODIFIER_EVENT_ON_PROJECTILE_DODGE = 0x97,
+	MODIFIER_EVENT_ON_ORDER = 0x98,
+	MODIFIER_EVENT_ON_UNIT_MOVED = 0x99,
+	MODIFIER_EVENT_ON_ABILITY_START = 0x9a,
+	MODIFIER_EVENT_ON_ABILITY_EXECUTED = 0x9b,
+	MODIFIER_EVENT_ON_ABILITY_FULLY_CAST = 0x9c,
+	MODIFIER_EVENT_ON_BREAK_INVISIBILITY = 0x9d,
+	MODIFIER_EVENT_ON_ABILITY_END_CHANNEL = 0x9e,
+	MODIFIER_EVENT_ON_PROCESS_UPGRADE = 0x9f,
+	MODIFIER_EVENT_ON_REFRESH = 0xa0,
+	MODIFIER_EVENT_ON_TAKEDAMAGE = 0xa1,
+	MODIFIER_EVENT_ON_STATE_CHANGED = 0xa2,
+	MODIFIER_EVENT_ON_ORB_EFFECT = 0xa3,
+	MODIFIER_EVENT_ON_PROCESS_CLEAVE = 0xa4,
+	MODIFIER_EVENT_ON_DAMAGE_CALCULATED = 0xa5,
+	MODIFIER_EVENT_ON_ATTACKED = 0xa6,
+	MODIFIER_EVENT_ON_DEATH = 0xa7,
+	MODIFIER_EVENT_ON_RESPAWN = 0xa8,
+	MODIFIER_EVENT_ON_SPENT_MANA = 0xa9,
+	MODIFIER_EVENT_ON_TELEPORTING = 0xaa,
+	MODIFIER_EVENT_ON_TELEPORTED = 0xab,
+	MODIFIER_EVENT_ON_SET_LOCATION = 0xac,
+	MODIFIER_EVENT_ON_HEALTH_GAINED = 0xad,
+	MODIFIER_EVENT_ON_MANA_GAINED = 0xae,
+	MODIFIER_EVENT_ON_MANA_GAINED_WHEN_DAMAGED = 0xaf,
+	MODIFIER_EVENT_ON_MANA_GAINED_WHEN_DEALING_DAMAGE = 0xb0,
+	MODIFIER_EVENT_ON_TAKEDAMAGE_KILLCREDIT = 0xb1,
+	MODIFIER_EVENT_ON_HERO_KILLED = 0xb2,
+	MODIFIER_EVENT_ON_HEAL_RECEIVED = 0xb3,
+	MODIFIER_EVENT_ON_BUILDING_KILLED = 0xb4,
+	MODIFIER_EVENT_ON_MODEL_CHANGED = 0xb5,
+	MODIFIER_EVENT_ON_MODIFIER_ADDED = 0xb6,
+	MODIFIER_EVENT_ON_DELTA_SLAM_UNIT_HIT = 0xb7,
+	MODIFIER_EVENT_ON_DELTA_SLAM_FINISHED = 0xb8,
+	MODIFIER_EVENT_ON_ASSASSIN_LANDED = 0xb9,
+	MODIFIER_EVENT_ON_RESURRECTION = 0xba,
+	MODIFIER_PROPERTY_TOOLTIP = 0xbb,
+	MODIFIER_PROPERTY_MODEL_CHANGE = 0xbc,
+	MODIFIER_PROPERTY_MODEL_SCALE = 0xbd,
+	MODIFIER_PROPERTY_IS_SCEPTER = 0xbe,
+	MODIFIER_PROPERTY_TRANSLATE_ACTIVITY_MODIFIERS = 0xbf,
+	MODIFIER_PROPERTY_TRANSLATE_ATTACK_SOUND = 0xc0,
+	MODIFIER_PROPERTY_LIFETIME_FRACTION = 0xc1,
+	MODIFIER_PROPERTY_PROVIDES_FOW_POSITION = 0xc2,
+	MODIFIER_PROPERTY_SPELLS_REQUIRE_HP = 0xc3,
+	MODIFIER_PROPERTY_FORCE_DRAW_MINIMAP = 0xc4,
+	MODIFIER_PROPERTY_DISABLE_TURNING = 0xc5,
+	MODIFIER_PROPERTY_IGNORE_CAST_ANGLE = 0xc6,
+	MODIFIER_PROPERTY_CHANGE_ABILITY_VALUE = 0xc7,
+	MODIFIER_PROPERTY_ABILITY_LAYOUT = 0xc8,
+	MODIFIER_EVENT_ON_DOMINATED = 0xc9,
+	MODIFIER_PROPERTY_TEMPEST_DOUBLE = 0xca,
+	MODIFIER_PROPERTY_PRESERVE_PARTICLES_ON_MODEL_CHANGE = 0xcb,
+	MODIFIER_EVENT_ON_ATTACK_FINISHED = 0xcc,
+	MODIFIER_PROPERTY_IGNORE_COOLDOWN = 0xcd,
+	MODIFIER_PROPERTY_CAN_ATTACK_TREES = 0xce,
+	MODIFIER_PROPERTY_VISUAL_Z_DELTA = 0xcf,
+	MODIFIER_PROPERTY_INCOMING_DAMAGE_ILLUSION = 0xd0,
+	MODIFIER_PROPERTY_DONT_GIVE_VISION_OF_ATTACKER = 0xd1,
+	MODIFIER_PROPERTY_TOOLTIP2 = 0xd2,
+	MODIFIER_EVENT_ON_ATTACK_RECORD_DESTROY = 0xd3,
+	MODIFIER_EVENT_ON_PROJECTILE_OBSTRUCTION_HIT = 0xd4,
+	MODIFIER_PROPERTY_SUPPRESS_TELEPORT = 0xd5,
+	MODIFIER_PROPERTY_FORCE_ATTACK_TARGET = 0xd6,
+	MODIFIER_PROPERTY_MODIFY_MOTION = 0xd7,
+	MODIFIER_EVENT_ON_COMBAT_START = 0xd8,
+	MODIFIER_EVENT_ON_COMBAT_PROVISIONALLY_END = 0xd9,
+	MODIFIER_EVENT_ON_COMBAT_END = 0xda,
+	MODIFIER_EVENT_ON_UNIT_SUMMONED = 0xdb,
+	MODIFIER_EVENT_ON_BEFORE_TAKING_DAMAGE = 0xdc,
+	MODIFIER_EVENT_ON_TAKEDAMAGE_ALWAYS = 0xdd,
+	MODIFIER_EVENT_ON_EVADE = 0xde,
+	MODIFIER_PROPERTY_BEST_TARGET = 0xdf,
+	MODIFIER_PROPERTY_KEYWORD_CHANGE = 0xe0,
+	MODIFIER_EVENT_ON_VALIDATE_TARGET_REPORT_INVALID = 0xe1,
+	MODIFIER_EVENT_ON_EXCESS_DAMAGE = 0xe2,
+	MODIFIER_EVENT_ON_ABILITY_PRE_CAST = 0xe3,
+	MODIFIER_PROPERTY_COOLDOWN_TICKDOWN_MULTIPLIER = 0xe4,
+	MODIFIER_PROPERTY_MP_GAIN_FROM_ABILITY = 0xe5,
+	MODIFIER_PROPERTY_BONUS_MAX_MP_GAIN_FROM_ATTACK = 0xe6,
+	MODIFIER_EVENT_ON_HEALTH_REGENED = 0xe7,
+	MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE_FLAT = 0xe8,
+	MODIFIER_PROPERTY_POST_TARGET_SELECT_OVERRIDE = 0xe9,
+	MODIFIER_EVENT_ON_UNDERLORD_POWER_CHANGED = 0xea,
+	MODIFIER_PROPERTY_ALWAYS_BONUS_DAMAGE_PURE = 0xeb,
+	MODIFIER_PROPERTY_BONUS_BURN_DAMAGE_PERCENTAGE = 0xec,
+	MODIFIER_PROPERTY_BYPASSES_HEALING_RESTRICTIONS = 0xed,
+	MODIFIER_PROPERTY_HOLDS_CELL_ON_DEATH = 0xee,
+	MODIFIER_FUNCTION_LAST = 0xef,
+	MODIFIER_FUNCTION_INVALID = 0xff,
+};
+
 // Aligment: 4
 // Size: 5
 enum class NavDirType : uint32_t
@@ -1859,6 +2205,75 @@ enum class ValueRemapperRatchetType_t : uint32_t
 	RatchetType_EachEngage = 0x1,
 };
 
+// Aligment: 4
+// Size: 4
+enum class SpeechPriorityType : uint32_t
+{
+	SPEECH_PRIORITY_LOW = 0x0,
+	SPEECH_PRIORITY_NORMAL = 0x1,
+	SPEECH_PRIORITY_MANUAL = 0x2,
+	SPEECH_PRIORITY_UNINTERRUPTABLE = 0x3,
+};
+
+// Aligment: 4
+// Size: 46
+enum class eEconItemOrigin : uint32_t
+{
+	kEconItemOrigin_Invalid = 0xffffffffffffffff,
+	kEconItemOrigin_Drop = 0x0,
+	kEconItemOrigin_Achievement = 0x1,
+	kEconItemOrigin_Purchased = 0x2,
+	kEconItemOrigin_Traded = 0x3,
+	kEconItemOrigin_Crafted = 0x4,
+	kEconItemOrigin_StorePromotion = 0x5,
+	kEconItemOrigin_Gifted = 0x6,
+	kEconItemOrigin_SupportGranted = 0x7,
+	kEconItemOrigin_FoundInCrate = 0x8,
+	kEconItemOrigin_Earned = 0x9,
+	kEconItemOrigin_ThirdPartyPromotion = 0xa,
+	kEconItemOrigin_GiftWrapped = 0xb,
+	kEconItemOrigin_HalloweenDrop = 0xc,
+	kEconItemOrigin_PackageItem = 0xd,
+	kEconItemOrigin_Foreign = 0xe,
+	kEconItemOrigin_CDKey = 0xf,
+	kEconItemOrigin_CollectionReward = 0x10,
+	kEconItemOrigin_PreviewItem = 0x11,
+	kEconItemOrigin_SteamWorkshopContribution = 0x12,
+	kEconItemOrigin_PeriodicScoreReward = 0x13,
+	kEconItemOrigin_Recycling = 0x14,
+	kEconItemOrigin_TournamentDrop = 0x15,
+	kEconItemOrigin_PassportReward = 0x16,
+	kEconItemOrigin_TutorialDrop = 0x17,
+	kEconItemOrigin_RecipeOutput = 0x18,
+	kEconItemOrigin_GemExtract = 0x19,
+	kEconItemOrigin_EventPointReward = 0x1a,
+	kEconItemOrigin_ItemRedemption = 0x1b,
+	kEconItemOrigin_FantasyTicketRefund = 0x1c,
+	kEconItemOrigin_VictoryPredictionReward = 0x1d,
+	kEconItemOrigin_AssassinEventReward = 0x1e,
+	kEconItemOrigin_CompendiumReward = 0x1f,
+	kEconItemOrigin_CompendiumDrop = 0x20,
+	kEconItemOrigin_MysteryItem = 0x21,
+	kEconItemOrigin_UnpackedFromBundle = 0x22,
+	kEconItemOrigin_WonFromWeeklyGame = 0x23,
+	kEconItemOrigin_SeasonalItemGrant = 0x24,
+	kEconItemOrigin_PackOpening = 0x25,
+	kEconItemOrigin_InitialGrant = 0x26,
+	kEconItemOrigin_MarketPurchase = 0x27,
+	kEconItemOrigin_MarketRefunded = 0x28,
+	kEconItemOrigin_LimitedDraft = 0x29,
+	kEconItemOrigin_GauntletReward = 0x2a,
+	kEconItemOrigin_CompendiumGift = 0x2b,
+	kEconItemOrigin_Max = 0x2c,
+};
+
+// Aligment: 4
+// Size: 1
+enum class TakeHealthOptions_t : uint32_t
+{
+	TH_IGNORE_MAX_HITPOINTS = 0x1,
+};
+
 // Aligment: 4
 // Size: 2
 enum class PointTemplateClientOnlyEntityBehavior_t : uint32_t
@@ -1903,6 +2318,89 @@ enum class soundlevel_t : uint32_t
 	SNDLVL_180dB = 0xb4,
 };
 
+// Aligment: 4
+// Size: 32
+enum class UnitFilterResult : uint32_t
+{
+	UF_SUCCESS = 0x0,
+	UF_FAIL = 0x1,
+	UF_FAIL_FRIENDLY = 0x2,
+	UF_FAIL_ENEMY = 0x3,
+	UF_FAIL_HERO = 0x4,
+	UF_FAIL_CONSIDERED_HERO = 0x5,
+	UF_FAIL_CREEP = 0x6,
+	UF_FAIL_BUILDING = 0x7,
+	UF_FAIL_COURIER = 0x8,
+	UF_FAIL_OTHER = 0x9,
+	UF_FAIL_ANCIENT = 0xa,
+	UF_FAIL_ILLUSION = 0xb,
+	UF_FAIL_SUMMONED = 0xc,
+	UF_FAIL_DOMINATED = 0xd,
+	UF_FAIL_MELEE = 0xe,
+	UF_FAIL_RANGED = 0xf,
+	UF_FAIL_DEAD = 0x10,
+	UF_FAIL_MAGIC_IMMUNE_ALLY = 0x11,
+	UF_FAIL_MAGIC_IMMUNE_ENEMY = 0x12,
+	UF_FAIL_INVULNERABLE = 0x13,
+	UF_FAIL_IN_FOW = 0x14,
+	UF_FAIL_INVISIBLE = 0x15,
+	UF_FAIL_NOT_PLAYER_CONTROLLED = 0x16,
+	UF_FAIL_ATTACK_IMMUNE = 0x17,
+	UF_FAIL_CUSTOM = 0x18,
+	UF_FAIL_INVALID_LOCATION = 0x19,
+	UF_FAIL_DISABLE_HELP = 0x1a,
+	UF_FAIL_OUT_OF_WORLD = 0x1b,
+	UF_FAIL_NIGHTMARED = 0x1c,
+	UF_FAIL_OBSTRUCTED = 0x1d,
+	UF_FAIL_UNDERLORD = 0x1e,
+	UF_FAIL_UNTARGETABLE = 0x1f,
+};
+
+// Aligment: 4
+// Size: 15
+enum class DACDamageFlag_t : uint32_t
+{
+	DAC_DAMAGE_FLAG_NONE = 0x0,
+	DAC_DAMAGE_FLAG_IGNORES_MAGIC_ARMOR = 0x1,
+	DAC_DAMAGE_FLAG_IGNORES_PHYSICAL_ARMOR = 0x2,
+	DAC_DAMAGE_FLAG_BYPASSES_INVULNERABILITY = 0x4,
+	DAC_DAMAGE_FLAG_BYPASSES_BLOCK = 0x8,
+	DAC_DAMAGE_FLAG_REFLECTION = 0x10,
+	DAC_DAMAGE_FLAG_HPLOSS = 0x20,
+	DAC_DAMAGE_FLAG_NON_LETHAL = 0x80,
+	DAC_DAMAGE_FLAG_NO_DAMAGE_MULTIPLIERS = 0x200,
+	DAC_DAMAGE_FLAG_NO_SPELL_AMPLIFICATION = 0x400,
+	DAC_DAMAGE_FLAG_NO_SPELL_LIFESTEAL = 0x1000,
+	DAC_DAMAGE_FLAG_PROPERTY_FIRE = 0x2000,
+	DAC_DAMAGE_FLAG_NO_MANA_GAIN = 0x4000,
+	DAC_DAMAGE_FLAG_CANNOT_DEFER = 0x8000,
+	DAC_DAMAGE_FLAG_NO_MANA_GAIN_DEFENDER = 0x10000,
+};
+
+// Aligment: 4
+// Size: 5
+enum class DAC_UNIT_TARGET_TEAM : uint32_t
+{
+	DAC_UNIT_TARGET_TEAM_NONE = 0x0,
+	DAC_UNIT_TARGET_TEAM_FRIENDLY = 0x1,
+	DAC_UNIT_TARGET_TEAM_ENEMY = 0x2,
+	DAC_UNIT_TARGET_TEAM_CUSTOM = 0x4,
+	DAC_UNIT_TARGET_TEAM_BOTH = 0x3,
+};
+
+// Aligment: 4
+// Size: 7
+enum class BeamType_t : uint32_t
+{
+	BEAM_INVALID = 0x0,
+	BEAM_POINTS = 0x1,
+	BEAM_ENTPOINT = 0x2,
+	BEAM_ENTS = 0x3,
+	BEAM_HOSE = 0x4,
+	BEAM_SPLINE = 0x5,
+	BEAM_LASER = 0x6,
+};
+
 // Aligment: 4
 // Size: 6
 enum class HierarchyType_t : uint32_t
@@ -1923,6 +2421,128 @@ enum class PointWorldTextReorientMode_t : uint32_t
 	POINT_WORLD_TEXT_REORIENT_AROUND_UP = 0x1,
 };
 
+// Aligment: 4
+// Size: 6
+enum class DAMAGE_TYPES : uint32_t
+{
+	DAMAGE_TYPE_NONE = 0x0,
+	DAMAGE_TYPE_PHYSICAL = 0x1,
+	DAMAGE_TYPE_MAGICAL = 0x2,
+	DAMAGE_TYPE_PURE = 0x4,
+	DAMAGE_TYPE_HP_REMOVAL = 0x8,
+	DAMAGE_TYPE_ALL = 0x7,
+};
+
+// Aligment: 4
+// Size: 4
+enum class eLiteralHandType : uint32_t
+{
+	LITERAL_HAND_TYPE_UNKNOWN = 0xffffffffffffffff,
+	LITERAL_HAND_TYPE_RIGHT = 0x0,
+	LITERAL_HAND_TYPE_LEFT = 0x1,
+	LITERAL_HAND_TYPE_COUNT = 0x2,
+};
+
+// Aligment: 4
+// Size: 8
+enum class modifierremove : uint32_t
+{
+	DOTA_BUFF_REMOVE_ENEMY_BUFFS = 0x1,
+	DOTA_BUFF_REMOVE_ALLY_BUFFS = 0x2,
+	DOTA_BUFF_REMOVE_ITEMS = 0x4,
+	DOTA_BUFF_REMOVE_NON_ITEMS = 0x8,
+	DOTA_BUFF_REMOVE_PERMANENT = 0x10,
+	DOTA_BUFF_REMOVE_ON_COMBAT_END = 0x20,
+	DOTA_BUFF_REMOVE_EVERYTHING = 0xffffffffffffffff,
+	DOTA_BUFF_REMOVE_ALL_BUFFS = 0x3,
+};
+
+// Aligment: 4
+// Size: 4
+enum class EntityDisolveType_t : uint32_t
+{
+	ENTITY_DISSOLVE_NORMAL = 0x0,
+	ENTITY_DISSOLVE_ELECTRICAL = 0x1,
+	ENTITY_DISSOLVE_ELECTRICAL_LIGHT = 0x2,
+	ENTITY_DISSOLVE_CORE = 0x3,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelVerticalAlign_t : uint32_t
+{
+	WORLDTEXT_VERTICAL_ALIGN_TOP = 0x0,
+	WORLDTEXT_VERTICAL_ALIGN_CENTER = 0x1,
+	WORLDTEXT_VERTICAL_ALIGN_BOTTOM = 0x2,
+};
+
+// Aligment: 1
+// Size: 21
+enum class gender_t : uint8_t
+{
+	GENDER_NONE = 0,
+	GENDER_MALE = 1,
+	GENDER_FEMALE = 2,
+	GENDER_NAMVET = 3,
+	GENDER_TEENGIRL = 4,
+	GENDER_BIKER = 5,
+	GENDER_MANAGER = 6,
+	GENDER_GAMBLER = 7,
+	GENDER_PRODUCER = 8,
+	GENDER_COACH = 9,
+	GENDER_MECHANIC = 10,
+	GENDER_CEDA = 11,
+	GENDER_CRAWLER = 12,
+	GENDER_UNDISTRACTABLE = 13,
+	GENDER_FALLEN = 14,
+	GENDER_RIOT_CONTROL = 15,
+	GENDER_CLOWN = 16,
+	GENDER_JIMMY = 17,
+	GENDER_HOSPITAL_PATIENT = 18,
+	GENDER_BRIDE = 19,
+	GENDER_LAST = 20,
+};
+
+// Aligment: 4
+// Size: 12
+enum class DacGestureSlot_t : uint32_t
+{
+	GESTURE_SLOT_NONE = 0xffffffffffffffff,
+	GESTURE_SLOT_ATTACK = 0x0,
+	GESTURE_SLOT_ABILITY = 0x1,
+	GESTURE_SLOT_OVERRIDE = 0x2,
+	GESTURE_SLOT_CUSTOM = 0x3,
+	GESTURE_SLOT_CUSTOM2 = 0x4,
+	GESTURE_SLOT_CUSTOM3 = 0x5,
+	GESTURE_SLOT_CONSTANT = 0x6,
+	GESTURE_SLOT_TAUNT = 0x7,
+	GESTURE_SLOT_ABSOLUTE = 0x8,
+	GESTURE_SLOT_COUNT = 0x9,
+	GESTURE_SLOT_STOLEN_ABILITY_BIT = 0x80,
+};
+
+// Aligment: 4
+// Size: 4
+enum class BeamClipStyle_t : uint32_t
+{
+	kNOCLIP = 0x0,
+	kGEOCLIP = 0x1,
+	kMODELCLIP = 0x2,
+	kBEAMCLIPSTYLE_NUMBITS = 0x2,
+};
+
+// Aligment: 4
+// Size: 6
+enum class DAC_PURGE_FLAGS : uint32_t
+{
+	DAC_PURGE_FLAG_NONE = 0x0,
+	DAC_PURGE_FLAG_REMOVE_BUFFS = 0x2,
+	DAC_PURGE_FLAG_REMOVE_DEBUFFS = 0x4,
+	DAC_PURGE_FLAG_REMOVE_STUNS = 0x8,
+	DAC_PURGE_FLAG_REMOVE_EXCEPTIONS = 0x10,
+	DAC_PURGE_FLAG_REMOVE_THIS_FRAME_ONLY = 0x20,
+};
+
 // Aligment: 4
 // Size: 5
 enum class SpawnDebugRestrictionOverrideState_t : uint32_t
@@ -1934,6 +2554,23 @@ enum class SpawnDebugRestrictionOverrideState_t : uint32_t
 	SPAWN_DEBUG_RESTRICT_IGNORE_TARGET_COOLDOWN_LIMITS = 0x8,
 };
 
+// Aligment: 4
+// Size: 11
+enum class Hull_t : uint32_t
+{
+	HULL_HUMAN = 0x0,
+	HULL_SMALL_CENTERED = 0x1,
+	HULL_WIDE_HUMAN = 0x2,
+	HULL_TINY = 0x3,
+	HULL_MEDIUM = 0x4,
+	HULL_TINY_CENTERED = 0x5,
+	HULL_LARGE = 0x6,
+	HULL_LARGE_CENTERED = 0x7,
+	HULL_MEDIUM_TALL = 0x8,
+	NUM_HULLS = 0x9,
+	HULL_NONE = 0xa,
+};
+
 // Aligment: 4
 // Size: 4
 enum class ValueRemapperMomentumType_t : uint32_t
@@ -1966,6 +2603,30 @@ enum class NavAttributeEnum : uint64_t
 	NAV_MESH_NO_HOSTAGES = 0x800,
 };
 
+// Aligment: 4
+// Size: 7
+enum class DOTAModifierAttribute_t : uint32_t
+{
+	MODIFIER_ATTRIBUTE_NONE = 0x0,
+	MODIFIER_ATTRIBUTE_PERMANENT = 0x1,
+	MODIFIER_ATTRIBUTE_MULTIPLE = 0x2,
+	MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE = 0x4,
+	MODIFIER_ATTRIBUTE_AURA_PRIORITY = 0x8,
+	MODIFIER_ATTRIBUTE_KEEP_ON_DEATH = 0x10,
+	MODIFIER_ATTRIBUTE_PERSISTS_COMBAT_END = 0x20,
+};
+
+// Aligment: 4
+// Size: 5
+enum class WeaponProficiency_t : uint32_t
+{
+	WEAPON_PROFICIENCY_POOR = 0x0,
+	WEAPON_PROFICIENCY_AVERAGE = 0x1,
+	WEAPON_PROFICIENCY_GOOD = 0x2,
+	WEAPON_PROFICIENCY_VERY_GOOD = 0x3,
+	WEAPON_PROFICIENCY_PERFECT = 0x4,
+};
+
 // Aligment: 4
 // Size: 8
 enum class TOGGLE_STATE : uint32_t
@@ -1980,6 +2641,16 @@ enum class TOGGLE_STATE : uint32_t
 	DOOR_CLOSING = 0x3,
 };
 
+// Aligment: 4
+// Size: 4
+enum class PerformanceMode_t : uint32_t
+{
+	PM_NORMAL = 0x0,
+	PM_NO_GIBS = 0x1,
+	PM_FULL_GIBS = 0x2,
+	PM_REDUCED_GIBS = 0x3,
+};
+
 // Aligment: 1
 // Size: 13
 enum class RenderMode_t : uint8_t
@@ -1999,6 +2670,15 @@ enum class RenderMode_t : uint8_t
 	kRenderModeCount = 12,
 };
 
+// Aligment: 4
+// Size: 3
+enum class DamageCategory_t : uint32_t
+{
+	DAC_DAMAGE_CATEGORY_SPELL = 0x0,
+	DAC_DAMAGE_CATEGORY_ATTACK = 0x1,
+	DAC_DAMAGE_CATEGORY_ITEM = 0x2,
+};
+
 // Aligment: 4
 // Size: 3
 enum class EntFinderMethod_t : uint32_t
@@ -2008,6 +2688,17 @@ enum class EntFinderMethod_t : uint32_t
 	ENT_FIND_METHOD_RANDOM = 0x2,
 };
 
+// Aligment: 4
+// Size: 5
+enum class Touch_t : uint32_t
+{
+	touch_none = 0x0,
+	touch_player_only = 0x1,
+	touch_npc_only = 0x2,
+	touch_player_or_npc = 0x3,
+	touch_player_or_npc_or_physicsprop = 0x4,
+};
+
 // Aligment: 4
 // Size: 3
 enum class SpawnDebugOverrideState_t : uint32_t
@@ -2017,6 +2708,27 @@ enum class SpawnDebugOverrideState_t : uint32_t
 	SPAWN_DEBUG_OVERRIDE_FORCE_DISABLED = 0x2,
 };
 
+// Aligment: 4
+// Size: 4
+enum class ABILITY_TYPES : uint32_t
+{
+	ABILITY_TYPE_BASIC = 0x0,
+	ABILITY_TYPE_ULTIMATE = 0x1,
+	ABILITY_TYPE_ATTRIBUTES = 0x2,
+	ABILITY_TYPE_HIDDEN = 0x3,
+};
+
+// Aligment: 4
+// Size: 5
+enum class modifierpriority : uint32_t
+{
+	MODIFIER_PRIORITY_LOW = 0x0,
+	MODIFIER_PRIORITY_NORMAL = 0x1,
+	MODIFIER_PRIORITY_HIGH = 0x2,
+	MODIFIER_PRIORITY_ULTRA = 0x3,
+	MODIFIER_PRIORITY_SUPER_ULTRA = 0x4,
+};
+
 // Aligment: 4
 // Size: 11
 enum class PrecipitationType_t : uint32_t
@@ -2034,6 +2746,14 @@ enum class PrecipitationType_t : uint32_t
 	NUM_PRECIPITATION_TYPES = 0xe,
 };
 
+// Aligment: 4
+// Size: 2
+enum class interactions_t : uint32_t
+{
+	INTERACTION_NONE = 0xffffffffffffffff,
+	NUM_HAND_INTERACTIONS = 0x0,
+};
+
 // Aligment: 4
 // Size: 2
 enum class filter_t : uint32_t
@@ -2053,6 +2773,56 @@ enum class Class_T : uint32_t
 	LAST_SHARED_ENTITY_CLASS = 0x4,
 };
 
+// Aligment: 4
+// Size: 12
+enum class Materials : uint32_t
+{
+	matGlass = 0x0,
+	matWood = 0x1,
+	matMetal = 0x2,
+	matFlesh = 0x3,
+	matCinderBlock = 0x4,
+	matCeilingTile = 0x5,
+	matComputer = 0x6,
+	matUnbreakableGlass = 0x7,
+	matRocks = 0x8,
+	matWeb = 0x9,
+	matNone = 0xa,
+	matLastMaterial = 0xb,
+};
+
+// Aligment: 4
+// Size: 4
+enum class NetChannelBufType_t : uint32_t
+{
+	BUF_DEFAULT = 0xffffffffffffffff,
+	BUF_UNRELIABLE = 0x0,
+	BUF_RELIABLE = 0x1,
+	BUF_VOICE = 0x2,
+};
+
+// Aligment: 1
+// Size: 3
+enum class DamageOptions_t : uint8_t
+{
+	DAMAGE_NO = 0,
+	DAMAGE_EVENTS_ONLY = 1,
+	DAMAGE_YES = 2,
+};
+
+// Aligment: 4
+// Size: 7
+enum class WorldTextAttachmentType_t : uint32_t
+{
+	ATTACHED_NONE = 0x0,
+	ATTACHED_PRIMARY_HAND = 0x1,
+	ATTACHED_OFF_HAND = 0x2,
+	ATTACHED_ENTITY = 0x3,
+	ATTACHED_HMD = 0x4,
+	ATTACHED_ENTITY_LARGE = 0x5,
+	ATTACHED_HAND_SPECIFIED_IN_EVENT = 0x6,
+};
+
 // Aligment: 4
 // Size: 3
 enum class ScreenEffectType_t : uint32_t
@@ -2062,6 +2832,1073 @@ enum class ScreenEffectType_t : uint32_t
 	SCREENEFFECT_EP2_GROGGY = 0x2,
 };
 
+// Aligment: 4
+// Size: 7
+enum class PoseController_FModType_t : uint32_t
+{
+	POSECONTROLLER_FMODTYPE_NONE = 0x0,
+	POSECONTROLLER_FMODTYPE_SINE = 0x1,
+	POSECONTROLLER_FMODTYPE_SQUARE = 0x2,
+	POSECONTROLLER_FMODTYPE_TRIANGLE = 0x3,
+	POSECONTROLLER_FMODTYPE_SAWTOOTH = 0x4,
+	POSECONTROLLER_FMODTYPE_NOISE = 0x5,
+	POSECONTROLLER_FMODTYPE_TOTAL = 0x6,
+};
+
+// Aligment: 4
+// Size: 2
+enum class ShatterSurface_t : uint32_t
+{
+	SHATTERSURFACE_GLASS = 0x0,
+	SHATTERSURFACE_TILE = 0x1,
+};
+
+// Aligment: 4
+// Size: 1029
+enum class BaseActivity_t : uint32_t
+{
+	ACT_RESET = 0x0,
+	ACT_IDLE = 0x1,
+	ACT_TRANSITION = 0x2,
+	ACT_COVER = 0x3,
+	ACT_COVER_MED = 0x4,
+	ACT_COVER_LOW = 0x5,
+	ACT_WALK = 0x6,
+	ACT_WALK_AIM = 0x7,
+	ACT_WALK_CROUCH = 0x8,
+	ACT_WALK_CROUCH_AIM = 0x9,
+	ACT_RUN = 0xa,
+	ACT_RUN_AIM = 0xb,
+	ACT_RUN_CROUCH = 0xc,
+	ACT_RUN_CROUCH_AIM = 0xd,
+	ACT_RUN_PROTECTED = 0xe,
+	ACT_SCRIPT_CUSTOM_MOVE = 0xf,
+	ACT_RANGE_ATTACK1 = 0x10,
+	ACT_RANGE_ATTACK2 = 0x11,
+	ACT_RANGE_ATTACK1_LOW = 0x12,
+	ACT_RANGE_ATTACK2_LOW = 0x13,
+	ACT_DIESIMPLE = 0x14,
+	ACT_DIEBACKWARD = 0x15,
+	ACT_DIEFORWARD = 0x16,
+	ACT_DIEVIOLENT = 0x17,
+	ACT_DIERAGDOLL = 0x18,
+	ACT_FLY = 0x19,
+	ACT_HOVER = 0x1a,
+	ACT_GLIDE = 0x1b,
+	ACT_SWIM = 0x1c,
+	ACT_JUMP = 0x1d,
+	ACT_HOP = 0x1e,
+	ACT_LEAP = 0x1f,
+	ACT_LAND = 0x20,
+	ACT_CLIMB_UP = 0x21,
+	ACT_CLIMB_DOWN = 0x22,
+	ACT_CLIMB_DISMOUNT = 0x23,
+	ACT_SHIPLADDER_UP = 0x24,
+	ACT_SHIPLADDER_DOWN = 0x25,
+	ACT_STRAFE_LEFT = 0x26,
+	ACT_STRAFE_RIGHT = 0x27,
+	ACT_ROLL_LEFT = 0x28,
+	ACT_ROLL_RIGHT = 0x29,
+	ACT_TURN_LEFT = 0x2a,
+	ACT_TURN_RIGHT = 0x2b,
+	ACT_CROUCH = 0x2c,
+	ACT_CROUCHIDLE = 0x2d,
+	ACT_STAND = 0x2e,
+	ACT_USE = 0x2f,
+	ACT_ALIEN_BURROW_IDLE = 0x30,
+	ACT_ALIEN_BURROW_OUT = 0x31,
+	ACT_SIGNAL1 = 0x32,
+	ACT_SIGNAL2 = 0x33,
+	ACT_SIGNAL3 = 0x34,
+	ACT_SIGNAL_ADVANCE = 0x35,
+	ACT_SIGNAL_FORWARD = 0x36,
+	ACT_SIGNAL_GROUP = 0x37,
+	ACT_SIGNAL_HALT = 0x38,
+	ACT_SIGNAL_LEFT = 0x39,
+	ACT_SIGNAL_RIGHT = 0x3a,
+	ACT_SIGNAL_TAKECOVER = 0x3b,
+	ACT_LOOKBACK_RIGHT = 0x3c,
+	ACT_LOOKBACK_LEFT = 0x3d,
+	ACT_COWER = 0x3e,
+	ACT_SMALL_FLINCH = 0x3f,
+	ACT_BIG_FLINCH = 0x40,
+	ACT_MELEE_ATTACK1 = 0x41,
+	ACT_MELEE_ATTACK2 = 0x42,
+	ACT_RELOAD = 0x43,
+	ACT_RELOAD_START = 0x44,
+	ACT_RELOAD_FINISH = 0x45,
+	ACT_RELOAD_LOW = 0x46,
+	ACT_ARM = 0x47,
+	ACT_DISARM = 0x48,
+	ACT_DROP_WEAPON = 0x49,
+	ACT_DROP_WEAPON_SHOTGUN = 0x4a,
+	ACT_PICKUP_GROUND = 0x4b,
+	ACT_PICKUP_RACK = 0x4c,
+	ACT_IDLE_ANGRY = 0x4d,
+	ACT_IDLE_RELAXED = 0x4e,
+	ACT_IDLE_STIMULATED = 0x4f,
+	ACT_IDLE_AGITATED = 0x50,
+	ACT_IDLE_STEALTH = 0x51,
+	ACT_IDLE_HURT = 0x52,
+	ACT_WALK_RELAXED = 0x53,
+	ACT_WALK_STIMULATED = 0x54,
+	ACT_WALK_AGITATED = 0x55,
+	ACT_WALK_STEALTH = 0x56,
+	ACT_RUN_RELAXED = 0x57,
+	ACT_RUN_STIMULATED = 0x58,
+	ACT_RUN_AGITATED = 0x59,
+	ACT_RUN_STEALTH = 0x5a,
+	ACT_IDLE_AIM_RELAXED = 0x5b,
+	ACT_IDLE_AIM_STIMULATED = 0x5c,
+	ACT_IDLE_AIM_AGITATED = 0x5d,
+	ACT_IDLE_AIM_STEALTH = 0x5e,
+	ACT_WALK_AIM_RELAXED = 0x5f,
+	ACT_WALK_AIM_STIMULATED = 0x60,
+	ACT_WALK_AIM_AGITATED = 0x61,
+	ACT_WALK_AIM_STEALTH = 0x62,
+	ACT_RUN_AIM_RELAXED = 0x63,
+	ACT_RUN_AIM_STIMULATED = 0x64,
+	ACT_RUN_AIM_AGITATED = 0x65,
+	ACT_RUN_AIM_STEALTH = 0x66,
+	ACT_CROUCHIDLE_STIMULATED = 0x67,
+	ACT_CROUCHIDLE_AIM_STIMULATED = 0x68,
+	ACT_CROUCHIDLE_AGITATED = 0x69,
+	ACT_WALK_HURT = 0x6a,
+	ACT_RUN_HURT = 0x6b,
+	ACT_SPECIAL_ATTACK1 = 0x6c,
+	ACT_SPECIAL_ATTACK2 = 0x6d,
+	ACT_COMBAT_IDLE = 0x6e,
+	ACT_WALK_SCARED = 0x6f,
+	ACT_RUN_SCARED = 0x70,
+	ACT_VICTORY_DANCE = 0x71,
+	ACT_DIE_HEADSHOT = 0x72,
+	ACT_DIE_CHESTSHOT = 0x73,
+	ACT_DIE_GUTSHOT = 0x74,
+	ACT_DIE_BACKSHOT = 0x75,
+	ACT_FLINCH_HEAD = 0x76,
+	ACT_FLINCH_CHEST = 0x77,
+	ACT_FLINCH_STOMACH = 0x78,
+	ACT_FLINCH_LEFTARM = 0x79,
+	ACT_FLINCH_RIGHTARM = 0x7a,
+	ACT_FLINCH_LEFTLEG = 0x7b,
+	ACT_FLINCH_RIGHTLEG = 0x7c,
+	ACT_FLINCH_PHYSICS = 0x7d,
+	ACT_FLINCH_HEAD_BACK = 0x7e,
+	ACT_FLINCH_CHEST_BACK = 0x7f,
+	ACT_FLINCH_STOMACH_BACK = 0x80,
+	ACT_FLINCH_CROUCH_FRONT = 0x81,
+	ACT_FLINCH_CROUCH_BACK = 0x82,
+	ACT_FLINCH_CROUCH_LEFT = 0x83,
+	ACT_FLINCH_CROUCH_RIGHT = 0x84,
+	ACT_IDLE_ON_FIRE = 0x85,
+	ACT_WALK_ON_FIRE = 0x86,
+	ACT_RUN_ON_FIRE = 0x87,
+	ACT_RAPPEL_LOOP = 0x88,
+	ACT_180_LEFT = 0x89,
+	ACT_180_RIGHT = 0x8a,
+	ACT_90_LEFT = 0x8b,
+	ACT_90_RIGHT = 0x8c,
+	ACT_STEP_LEFT = 0x8d,
+	ACT_STEP_RIGHT = 0x8e,
+	ACT_STEP_BACK = 0x8f,
+	ACT_STEP_FORE = 0x90,
+	ACT_GESTURE_RANGE_ATTACK1 = 0x91,
+	ACT_GESTURE_RANGE_ATTACK2 = 0x92,
+	ACT_GESTURE_MELEE_ATTACK1 = 0x93,
+	ACT_GESTURE_MELEE_ATTACK2 = 0x94,
+	ACT_GESTURE_RANGE_ATTACK1_LOW = 0x95,
+	ACT_GESTURE_RANGE_ATTACK2_LOW = 0x96,
+	ACT_MELEE_ATTACK_SWING_GESTURE = 0x97,
+	ACT_GESTURE_SMALL_FLINCH = 0x98,
+	ACT_GESTURE_BIG_FLINCH = 0x99,
+	ACT_GESTURE_FLINCH_BLAST = 0x9a,
+	ACT_GESTURE_FLINCH_BLAST_SHOTGUN = 0x9b,
+	ACT_GESTURE_FLINCH_BLAST_DAMAGED = 0x9c,
+	ACT_GESTURE_FLINCH_BLAST_DAMAGED_SHOTGUN = 0x9d,
+	ACT_GESTURE_FLINCH_HEAD = 0x9e,
+	ACT_GESTURE_FLINCH_CHEST = 0x9f,
+	ACT_GESTURE_FLINCH_STOMACH = 0xa0,
+	ACT_GESTURE_FLINCH_LEFTARM = 0xa1,
+	ACT_GESTURE_FLINCH_RIGHTARM = 0xa2,
+	ACT_GESTURE_FLINCH_LEFTLEG = 0xa3,
+	ACT_GESTURE_FLINCH_RIGHTLEG = 0xa4,
+	ACT_GESTURE_TURN_LEFT = 0xa5,
+	ACT_GESTURE_TURN_RIGHT = 0xa6,
+	ACT_GESTURE_TURN_LEFT45 = 0xa7,
+	ACT_GESTURE_TURN_RIGHT45 = 0xa8,
+	ACT_GESTURE_TURN_LEFT90 = 0xa9,
+	ACT_GESTURE_TURN_RIGHT90 = 0xaa,
+	ACT_GESTURE_TURN_LEFT45_FLAT = 0xab,
+	ACT_GESTURE_TURN_RIGHT45_FLAT = 0xac,
+	ACT_GESTURE_TURN_LEFT90_FLAT = 0xad,
+	ACT_GESTURE_TURN_RIGHT90_FLAT = 0xae,
+	ACT_BARNACLE_HIT = 0xaf,
+	ACT_BARNACLE_PULL = 0xb0,
+	ACT_BARNACLE_CHOMP = 0xb1,
+	ACT_BARNACLE_CHEW = 0xb2,
+	ACT_DO_NOT_DISTURB = 0xb3,
+	ACT_SPECIFIC_SEQUENCE = 0xb4,
+	ACT_VM_DEPLOY = 0xb5,
+	ACT_VM_RELOAD_EMPTY = 0xb6,
+	ACT_VM_DRAW = 0xb7,
+	ACT_VM_HOLSTER = 0xb8,
+	ACT_VM_IDLE = 0xb9,
+	ACT_VM_FIDGET = 0xba,
+	ACT_VM_PULLBACK = 0xbb,
+	ACT_VM_PULLBACK_HIGH = 0xbc,
+	ACT_VM_PULLBACK_LOW = 0xbd,
+	ACT_VM_THROW = 0xbe,
+	ACT_VM_DROP = 0xbf,
+	ACT_VM_PULLPIN = 0xc0,
+	ACT_VM_PRIMARYATTACK = 0xc1,
+	ACT_VM_SECONDARYATTACK = 0xc2,
+	ACT_VM_RELOAD = 0xc3,
+	ACT_VM_DRYFIRE = 0xc4,
+	ACT_VM_HITLEFT = 0xc5,
+	ACT_VM_HITLEFT2 = 0xc6,
+	ACT_VM_HITRIGHT = 0xc7,
+	ACT_VM_HITRIGHT2 = 0xc8,
+	ACT_VM_HITCENTER = 0xc9,
+	ACT_VM_HITCENTER2 = 0xca,
+	ACT_VM_MISSLEFT = 0xcb,
+	ACT_VM_MISSLEFT2 = 0xcc,
+	ACT_VM_MISSRIGHT = 0xcd,
+	ACT_VM_MISSRIGHT2 = 0xce,
+	ACT_VM_MISSCENTER = 0xcf,
+	ACT_VM_MISSCENTER2 = 0xd0,
+	ACT_VM_HAULBACK = 0xd1,
+	ACT_VM_SWINGHARD = 0xd2,
+	ACT_VM_SWINGMISS = 0xd3,
+	ACT_VM_SWINGHIT = 0xd4,
+	ACT_VM_IDLE_TO_LOWERED = 0xd5,
+	ACT_VM_IDLE_LOWERED = 0xd6,
+	ACT_VM_LOWERED_TO_IDLE = 0xd7,
+	ACT_VM_RECOIL1 = 0xd8,
+	ACT_VM_RECOIL2 = 0xd9,
+	ACT_VM_RECOIL3 = 0xda,
+	ACT_VM_PICKUP = 0xdb,
+	ACT_VM_RELEASE = 0xdc,
+	ACT_VM_MAUL_LOOP = 0xdd,
+	ACT_VM_ATTACH_SILENCER = 0xde,
+	ACT_VM_DETACH_SILENCER = 0xdf,
+	ACT_SLAM_STICKWALL_IDLE = 0xe0,
+	ACT_SLAM_STICKWALL_ND_IDLE = 0xe1,
+	ACT_SLAM_STICKWALL_ATTACH = 0xe2,
+	ACT_SLAM_STICKWALL_ATTACH2 = 0xe3,
+	ACT_SLAM_STICKWALL_ND_ATTACH = 0xe4,
+	ACT_SLAM_STICKWALL_ND_ATTACH2 = 0xe5,
+	ACT_SLAM_STICKWALL_DETONATE = 0xe6,
+	ACT_SLAM_STICKWALL_DETONATOR_HOLSTER = 0xe7,
+	ACT_SLAM_STICKWALL_DRAW = 0xe8,
+	ACT_SLAM_STICKWALL_ND_DRAW = 0xe9,
+	ACT_SLAM_STICKWALL_TO_THROW = 0xea,
+	ACT_SLAM_STICKWALL_TO_THROW_ND = 0xeb,
+	ACT_SLAM_STICKWALL_TO_TRIPMINE_ND = 0xec,
+	ACT_SLAM_THROW_IDLE = 0xed,
+	ACT_SLAM_THROW_ND_IDLE = 0xee,
+	ACT_SLAM_THROW_THROW = 0xef,
+	ACT_SLAM_THROW_THROW2 = 0xf0,
+	ACT_SLAM_THROW_THROW_ND = 0xf1,
+	ACT_SLAM_THROW_THROW_ND2 = 0xf2,
+	ACT_SLAM_THROW_DRAW = 0xf3,
+	ACT_SLAM_THROW_ND_DRAW = 0xf4,
+	ACT_SLAM_THROW_TO_STICKWALL = 0xf5,
+	ACT_SLAM_THROW_TO_STICKWALL_ND = 0xf6,
+	ACT_SLAM_THROW_DETONATE = 0xf7,
+	ACT_SLAM_THROW_DETONATOR_HOLSTER = 0xf8,
+	ACT_SLAM_THROW_TO_TRIPMINE_ND = 0xf9,
+	ACT_SLAM_TRIPMINE_IDLE = 0xfa,
+	ACT_SLAM_TRIPMINE_DRAW = 0xfb,
+	ACT_SLAM_TRIPMINE_ATTACH = 0xfc,
+	ACT_SLAM_TRIPMINE_ATTACH2 = 0xfd,
+	ACT_SLAM_TRIPMINE_TO_STICKWALL_ND = 0xfe,
+	ACT_SLAM_TRIPMINE_TO_THROW_ND = 0xff,
+	ACT_SLAM_DETONATOR_IDLE = 0x100,
+	ACT_SLAM_DETONATOR_DRAW = 0x101,
+	ACT_SLAM_DETONATOR_DETONATE = 0x102,
+	ACT_SLAM_DETONATOR_HOLSTER = 0x103,
+	ACT_SLAM_DETONATOR_STICKWALL_DRAW = 0x104,
+	ACT_SLAM_DETONATOR_THROW_DRAW = 0x105,
+	ACT_SHOTGUN_RELOAD_START = 0x106,
+	ACT_SHOTGUN_RELOAD_FINISH = 0x107,
+	ACT_SHOTGUN_PUMP = 0x108,
+	ACT_SMG2_IDLE2 = 0x109,
+	ACT_SMG2_FIRE2 = 0x10a,
+	ACT_SMG2_DRAW2 = 0x10b,
+	ACT_SMG2_RELOAD2 = 0x10c,
+	ACT_SMG2_DRYFIRE2 = 0x10d,
+	ACT_SMG2_TOAUTO = 0x10e,
+	ACT_SMG2_TOBURST = 0x10f,
+	ACT_PHYSCANNON_UPGRADE = 0x110,
+	ACT_RANGE_ATTACK_AR1 = 0x111,
+	ACT_RANGE_ATTACK_AR2 = 0x112,
+	ACT_RANGE_ATTACK_AR2_LOW = 0x113,
+	ACT_RANGE_ATTACK_AR2_GRENADE = 0x114,
+	ACT_RANGE_ATTACK_HMG1 = 0x115,
+	ACT_RANGE_ATTACK_ML = 0x116,
+	ACT_RANGE_ATTACK_SMG1 = 0x117,
+	ACT_RANGE_ATTACK_SMG1_LOW = 0x118,
+	ACT_RANGE_ATTACK_SMG2 = 0x119,
+	ACT_RANGE_ATTACK_SHOTGUN = 0x11a,
+	ACT_RANGE_ATTACK_SHOTGUN_LOW = 0x11b,
+	ACT_RANGE_ATTACK_PISTOL = 0x11c,
+	ACT_RANGE_ATTACK_PISTOL_LOW = 0x11d,
+	ACT_RANGE_ATTACK_SLAM = 0x11e,
+	ACT_RANGE_ATTACK_TRIPWIRE = 0x11f,
+	ACT_RANGE_ATTACK_THROW = 0x120,
+	ACT_RANGE_ATTACK_SNIPER_RIFLE = 0x121,
+	ACT_RANGE_ATTACK_RPG = 0x122,
+	ACT_MELEE_ATTACK_SWING = 0x123,
+	ACT_RANGE_AIM_LOW = 0x124,
+	ACT_RANGE_AIM_SMG1_LOW = 0x125,
+	ACT_RANGE_AIM_PISTOL_LOW = 0x126,
+	ACT_RANGE_AIM_AR2_LOW = 0x127,
+	ACT_COVER_PISTOL_LOW = 0x128,
+	ACT_COVER_SMG1_LOW = 0x129,
+	ACT_GESTURE_RANGE_ATTACK_AR1 = 0x12a,
+	ACT_GESTURE_RANGE_ATTACK_AR2 = 0x12b,
+	ACT_GESTURE_RANGE_ATTACK_AR2_GRENADE = 0x12c,
+	ACT_GESTURE_RANGE_ATTACK_HMG1 = 0x12d,
+	ACT_GESTURE_RANGE_ATTACK_ML = 0x12e,
+	ACT_GESTURE_RANGE_ATTACK_SMG1 = 0x12f,
+	ACT_GESTURE_RANGE_ATTACK_SMG1_LOW = 0x130,
+	ACT_GESTURE_RANGE_ATTACK_SMG2 = 0x131,
+	ACT_GESTURE_RANGE_ATTACK_SHOTGUN = 0x132,
+	ACT_GESTURE_RANGE_ATTACK_PISTOL = 0x133,
+	ACT_GESTURE_RANGE_ATTACK_PISTOL_LOW = 0x134,
+	ACT_GESTURE_RANGE_ATTACK_SLAM = 0x135,
+	ACT_GESTURE_RANGE_ATTACK_TRIPWIRE = 0x136,
+	ACT_GESTURE_RANGE_ATTACK_THROW = 0x137,
+	ACT_GESTURE_RANGE_ATTACK_SNIPER_RIFLE = 0x138,
+	ACT_GESTURE_MELEE_ATTACK_SWING = 0x139,
+	ACT_IDLE_RIFLE = 0x13a,
+	ACT_IDLE_SMG1 = 0x13b,
+	ACT_IDLE_ANGRY_SMG1 = 0x13c,
+	ACT_IDLE_PISTOL = 0x13d,
+	ACT_IDLE_ANGRY_PISTOL = 0x13e,
+	ACT_IDLE_ANGRY_SHOTGUN = 0x13f,
+	ACT_IDLE_STEALTH_PISTOL = 0x140,
+	ACT_IDLE_PACKAGE = 0x141,
+	ACT_WALK_PACKAGE = 0x142,
+	ACT_IDLE_SUITCASE = 0x143,
+	ACT_WALK_SUITCASE = 0x144,
+	ACT_IDLE_SMG1_RELAXED = 0x145,
+	ACT_IDLE_SMG1_STIMULATED = 0x146,
+	ACT_WALK_RIFLE_RELAXED = 0x147,
+	ACT_RUN_RIFLE_RELAXED = 0x148,
+	ACT_WALK_RIFLE_STIMULATED = 0x149,
+	ACT_RUN_RIFLE_STIMULATED = 0x14a,
+	ACT_IDLE_AIM_RIFLE_STIMULATED = 0x14b,
+	ACT_WALK_AIM_RIFLE_STIMULATED = 0x14c,
+	ACT_RUN_AIM_RIFLE_STIMULATED = 0x14d,
+	ACT_IDLE_SHOTGUN_RELAXED = 0x14e,
+	ACT_IDLE_SHOTGUN_STIMULATED = 0x14f,
+	ACT_IDLE_SHOTGUN_AGITATED = 0x150,
+	ACT_WALK_ANGRY = 0x151,
+	ACT_POLICE_HARASS1 = 0x152,
+	ACT_POLICE_HARASS2 = 0x153,
+	ACT_IDLE_MANNEDGUN = 0x154,
+	ACT_IDLE_MELEE = 0x155,
+	ACT_IDLE_ANGRY_MELEE = 0x156,
+	ACT_IDLE_RPG_RELAXED = 0x157,
+	ACT_IDLE_RPG = 0x158,
+	ACT_IDLE_ANGRY_RPG = 0x159,
+	ACT_COVER_LOW_RPG = 0x15a,
+	ACT_WALK_RPG = 0x15b,
+	ACT_RUN_RPG = 0x15c,
+	ACT_WALK_CROUCH_RPG = 0x15d,
+	ACT_RUN_CROUCH_RPG = 0x15e,
+	ACT_WALK_RPG_RELAXED = 0x15f,
+	ACT_RUN_RPG_RELAXED = 0x160,
+	ACT_WALK_RIFLE = 0x161,
+	ACT_WALK_AIM_RIFLE = 0x162,
+	ACT_WALK_CROUCH_RIFLE = 0x163,
+	ACT_WALK_CROUCH_AIM_RIFLE = 0x164,
+	ACT_RUN_RIFLE = 0x165,
+	ACT_RUN_AIM_RIFLE = 0x166,
+	ACT_RUN_CROUCH_RIFLE = 0x167,
+	ACT_RUN_CROUCH_AIM_RIFLE = 0x168,
+	ACT_RUN_STEALTH_PISTOL = 0x169,
+	ACT_WALK_AIM_SHOTGUN = 0x16a,
+	ACT_RUN_AIM_SHOTGUN = 0x16b,
+	ACT_WALK_PISTOL = 0x16c,
+	ACT_RUN_PISTOL = 0x16d,
+	ACT_WALK_AIM_PISTOL = 0x16e,
+	ACT_RUN_AIM_PISTOL = 0x16f,
+	ACT_WALK_STEALTH_PISTOL = 0x170,
+	ACT_WALK_AIM_STEALTH_PISTOL = 0x171,
+	ACT_RUN_AIM_STEALTH_PISTOL = 0x172,
+	ACT_RELOAD_PISTOL = 0x173,
+	ACT_RELOAD_PISTOL_LOW = 0x174,
+	ACT_RELOAD_SMG1 = 0x175,
+	ACT_RELOAD_SMG1_LOW = 0x176,
+	ACT_RELOAD_SHOTGUN = 0x177,
+	ACT_RELOAD_SHOTGUN_LOW = 0x178,
+	ACT_GESTURE_RELOAD = 0x179,
+	ACT_GESTURE_RELOAD_PISTOL = 0x17a,
+	ACT_GESTURE_RELOAD_SMG1 = 0x17b,
+	ACT_GESTURE_RELOAD_SHOTGUN = 0x17c,
+	ACT_BUSY_LEAN_LEFT = 0x17d,
+	ACT_BUSY_LEAN_LEFT_ENTRY = 0x17e,
+	ACT_BUSY_LEAN_LEFT_EXIT = 0x17f,
+	ACT_BUSY_LEAN_BACK = 0x180,
+	ACT_BUSY_LEAN_BACK_ENTRY = 0x181,
+	ACT_BUSY_LEAN_BACK_EXIT = 0x182,
+	ACT_BUSY_SIT_GROUND = 0x183,
+	ACT_BUSY_SIT_GROUND_ENTRY = 0x184,
+	ACT_BUSY_SIT_GROUND_EXIT = 0x185,
+	ACT_BUSY_SIT_CHAIR = 0x186,
+	ACT_BUSY_SIT_CHAIR_ENTRY = 0x187,
+	ACT_BUSY_SIT_CHAIR_EXIT = 0x188,
+	ACT_BUSY_STAND = 0x189,
+	ACT_BUSY_QUEUE = 0x18a,
+	ACT_DUCK_DODGE = 0x18b,
+	ACT_DIE_BARNACLE_SWALLOW = 0x18c,
+	ACT_GESTURE_BARNACLE_STRANGLE = 0x18d,
+	ACT_PHYSCANNON_DETACH = 0x18e,
+	ACT_PHYSCANNON_ANIMATE = 0x18f,
+	ACT_PHYSCANNON_ANIMATE_PRE = 0x190,
+	ACT_PHYSCANNON_ANIMATE_POST = 0x191,
+	ACT_DIE_FRONTSIDE = 0x192,
+	ACT_DIE_RIGHTSIDE = 0x193,
+	ACT_DIE_BACKSIDE = 0x194,
+	ACT_DIE_LEFTSIDE = 0x195,
+	ACT_DIE_CROUCH_FRONTSIDE = 0x196,
+	ACT_DIE_CROUCH_RIGHTSIDE = 0x197,
+	ACT_DIE_CROUCH_BACKSIDE = 0x198,
+	ACT_DIE_CROUCH_LEFTSIDE = 0x199,
+	ACT_DIE_INCAP = 0x19a,
+	ACT_DIE_STANDING = 0x19b,
+	ACT_OPEN_DOOR = 0x19c,
+	ACT_DI_ALYX_ZOMBIE_MELEE = 0x19d,
+	ACT_DI_ALYX_ZOMBIE_TORSO_MELEE = 0x19e,
+	ACT_DI_ALYX_HEADCRAB_MELEE = 0x19f,
+	ACT_DI_ALYX_ANTLION = 0x1a0,
+	ACT_DI_ALYX_ZOMBIE_SHOTGUN64 = 0x1a1,
+	ACT_DI_ALYX_ZOMBIE_SHOTGUN26 = 0x1a2,
+	ACT_READINESS_RELAXED_TO_STIMULATED = 0x1a3,
+	ACT_READINESS_RELAXED_TO_STIMULATED_WALK = 0x1a4,
+	ACT_READINESS_AGITATED_TO_STIMULATED = 0x1a5,
+	ACT_READINESS_STIMULATED_TO_RELAXED = 0x1a6,
+	ACT_READINESS_PISTOL_RELAXED_TO_STIMULATED = 0x1a7,
+	ACT_READINESS_PISTOL_RELAXED_TO_STIMULATED_WALK = 0x1a8,
+	ACT_READINESS_PISTOL_AGITATED_TO_STIMULATED = 0x1a9,
+	ACT_READINESS_PISTOL_STIMULATED_TO_RELAXED = 0x1aa,
+	ACT_IDLE_CARRY = 0x1ab,
+	ACT_WALK_CARRY = 0x1ac,
+	ACT_STARTDYING = 0x1ad,
+	ACT_DYINGLOOP = 0x1ae,
+	ACT_DYINGTODEAD = 0x1af,
+	ACT_RIDE_MANNED_GUN = 0x1b0,
+	ACT_VM_SPRINT_ENTER = 0x1b1,
+	ACT_VM_SPRINT_IDLE = 0x1b2,
+	ACT_VM_SPRINT_LEAVE = 0x1b3,
+	ACT_FIRE_START = 0x1b4,
+	ACT_FIRE_LOOP = 0x1b5,
+	ACT_FIRE_END = 0x1b6,
+	ACT_CROUCHING_GRENADEIDLE = 0x1b7,
+	ACT_CROUCHING_GRENADEREADY = 0x1b8,
+	ACT_CROUCHING_PRIMARYATTACK = 0x1b9,
+	ACT_OVERLAY_GRENADEIDLE = 0x1ba,
+	ACT_OVERLAY_GRENADEREADY = 0x1bb,
+	ACT_OVERLAY_PRIMARYATTACK = 0x1bc,
+	ACT_OVERLAY_SHIELD_UP = 0x1bd,
+	ACT_OVERLAY_SHIELD_DOWN = 0x1be,
+	ACT_OVERLAY_SHIELD_UP_IDLE = 0x1bf,
+	ACT_OVERLAY_SHIELD_ATTACK = 0x1c0,
+	ACT_OVERLAY_SHIELD_KNOCKBACK = 0x1c1,
+	ACT_SHIELD_UP = 0x1c2,
+	ACT_SHIELD_DOWN = 0x1c3,
+	ACT_SHIELD_UP_IDLE = 0x1c4,
+	ACT_SHIELD_ATTACK = 0x1c5,
+	ACT_SHIELD_KNOCKBACK = 0x1c6,
+	ACT_CROUCHING_SHIELD_UP = 0x1c7,
+	ACT_CROUCHING_SHIELD_DOWN = 0x1c8,
+	ACT_CROUCHING_SHIELD_UP_IDLE = 0x1c9,
+	ACT_CROUCHING_SHIELD_ATTACK = 0x1ca,
+	ACT_CROUCHING_SHIELD_KNOCKBACK = 0x1cb,
+	ACT_TURNRIGHT45 = 0x1cc,
+	ACT_TURNLEFT45 = 0x1cd,
+	ACT_TURN = 0x1ce,
+	ACT_OBJ_ASSEMBLING = 0x1cf,
+	ACT_OBJ_DISMANTLING = 0x1d0,
+	ACT_OBJ_STARTUP = 0x1d1,
+	ACT_OBJ_RUNNING = 0x1d2,
+	ACT_OBJ_IDLE = 0x1d3,
+	ACT_OBJ_PLACING = 0x1d4,
+	ACT_OBJ_DETERIORATING = 0x1d5,
+	ACT_OBJ_UPGRADING = 0x1d6,
+	ACT_DEPLOY = 0x1d7,
+	ACT_DEPLOY_IDLE = 0x1d8,
+	ACT_UNDEPLOY = 0x1d9,
+	ACT_CROSSBOW_DRAW_UNLOADED = 0x1da,
+	ACT_GAUSS_SPINUP = 0x1db,
+	ACT_GAUSS_SPINCYCLE = 0x1dc,
+	ACT_VM_PRIMARYATTACK_SILENCED = 0x1dd,
+	ACT_VM_RELOAD_SILENCED = 0x1de,
+	ACT_VM_DRYFIRE_SILENCED = 0x1df,
+	ACT_VM_IDLE_SILENCED = 0x1e0,
+	ACT_VM_DRAW_SILENCED = 0x1e1,
+	ACT_VM_IDLE_EMPTY_LEFT = 0x1e2,
+	ACT_VM_DRYFIRE_LEFT = 0x1e3,
+	ACT_VM_IS_DRAW = 0x1e4,
+	ACT_VM_IS_HOLSTER = 0x1e5,
+	ACT_VM_IS_IDLE = 0x1e6,
+	ACT_VM_IS_PRIMARYATTACK = 0x1e7,
+	ACT_PLAYER_IDLE_FIRE = 0x1e8,
+	ACT_PLAYER_CROUCH_FIRE = 0x1e9,
+	ACT_PLAYER_CROUCH_WALK_FIRE = 0x1ea,
+	ACT_PLAYER_WALK_FIRE = 0x1eb,
+	ACT_PLAYER_RUN_FIRE = 0x1ec,
+	ACT_IDLETORUN = 0x1ed,
+	ACT_RUNTOIDLE = 0x1ee,
+	ACT_VM_DRAW_DEPLOYED = 0x1ef,
+	ACT_HL2MP_IDLE_MELEE = 0x1f0,
+	ACT_HL2MP_RUN_MELEE = 0x1f1,
+	ACT_HL2MP_IDLE_CROUCH_MELEE = 0x1f2,
+	ACT_HL2MP_WALK_CROUCH_MELEE = 0x1f3,
+	ACT_HL2MP_GESTURE_RANGE_ATTACK_MELEE = 0x1f4,
+	ACT_HL2MP_GESTURE_RELOAD_MELEE = 0x1f5,
+	ACT_HL2MP_JUMP_MELEE = 0x1f6,
+	ACT_MP_STAND_IDLE = 0x1f7,
+	ACT_MP_CROUCH_IDLE = 0x1f8,
+	ACT_MP_CROUCH_DEPLOYED_IDLE = 0x1f9,
+	ACT_MP_CROUCH_DEPLOYED = 0x1fa,
+	ACT_MP_DEPLOYED_IDLE = 0x1fb,
+	ACT_MP_RUN = 0x1fc,
+	ACT_MP_WALK = 0x1fd,
+	ACT_MP_AIRWALK = 0x1fe,
+	ACT_MP_CROUCHWALK = 0x1ff,
+	ACT_MP_SPRINT = 0x200,
+	ACT_MP_JUMP = 0x201,
+	ACT_MP_JUMP_START = 0x202,
+	ACT_MP_JUMP_FLOAT = 0x203,
+	ACT_MP_JUMP_LAND = 0x204,
+	ACT_MP_DOUBLEJUMP = 0x205,
+	ACT_MP_SWIM = 0x206,
+	ACT_MP_DEPLOYED = 0x207,
+	ACT_MP_SWIM_DEPLOYED = 0x208,
+	ACT_MP_VCD = 0x209,
+	ACT_MP_ATTACK_STAND_PRIMARYFIRE = 0x20a,
+	ACT_MP_ATTACK_STAND_PRIMARYFIRE_DEPLOYED = 0x20b,
+	ACT_MP_ATTACK_STAND_SECONDARYFIRE = 0x20c,
+	ACT_MP_ATTACK_STAND_GRENADE = 0x20d,
+	ACT_MP_ATTACK_CROUCH_PRIMARYFIRE = 0x20e,
+	ACT_MP_ATTACK_CROUCH_PRIMARYFIRE_DEPLOYED = 0x20f,
+	ACT_MP_ATTACK_CROUCH_SECONDARYFIRE = 0x210,
+	ACT_MP_ATTACK_CROUCH_GRENADE = 0x211,
+	ACT_MP_ATTACK_SWIM_PRIMARYFIRE = 0x212,
+	ACT_MP_ATTACK_SWIM_SECONDARYFIRE = 0x213,
+	ACT_MP_ATTACK_SWIM_GRENADE = 0x214,
+	ACT_MP_ATTACK_AIRWALK_PRIMARYFIRE = 0x215,
+	ACT_MP_ATTACK_AIRWALK_SECONDARYFIRE = 0x216,
+	ACT_MP_ATTACK_AIRWALK_GRENADE = 0x217,
+	ACT_MP_RELOAD_STAND = 0x218,
+	ACT_MP_RELOAD_STAND_LOOP = 0x219,
+	ACT_MP_RELOAD_STAND_END = 0x21a,
+	ACT_MP_RELOAD_CROUCH = 0x21b,
+	ACT_MP_RELOAD_CROUCH_LOOP = 0x21c,
+	ACT_MP_RELOAD_CROUCH_END = 0x21d,
+	ACT_MP_RELOAD_SWIM = 0x21e,
+	ACT_MP_RELOAD_SWIM_LOOP = 0x21f,
+	ACT_MP_RELOAD_SWIM_END = 0x220,
+	ACT_MP_RELOAD_AIRWALK = 0x221,
+	ACT_MP_RELOAD_AIRWALK_LOOP = 0x222,
+	ACT_MP_RELOAD_AIRWALK_END = 0x223,
+	ACT_MP_ATTACK_STAND_PREFIRE = 0x224,
+	ACT_MP_ATTACK_STAND_POSTFIRE = 0x225,
+	ACT_MP_ATTACK_STAND_STARTFIRE = 0x226,
+	ACT_MP_ATTACK_CROUCH_PREFIRE = 0x227,
+	ACT_MP_ATTACK_CROUCH_POSTFIRE = 0x228,
+	ACT_MP_ATTACK_SWIM_PREFIRE = 0x229,
+	ACT_MP_ATTACK_SWIM_POSTFIRE = 0x22a,
+	ACT_MP_STAND_PRIMARY = 0x22b,
+	ACT_MP_CROUCH_PRIMARY = 0x22c,
+	ACT_MP_RUN_PRIMARY = 0x22d,
+	ACT_MP_WALK_PRIMARY = 0x22e,
+	ACT_MP_AIRWALK_PRIMARY = 0x22f,
+	ACT_MP_CROUCHWALK_PRIMARY = 0x230,
+	ACT_MP_JUMP_PRIMARY = 0x231,
+	ACT_MP_JUMP_START_PRIMARY = 0x232,
+	ACT_MP_JUMP_FLOAT_PRIMARY = 0x233,
+	ACT_MP_JUMP_LAND_PRIMARY = 0x234,
+	ACT_MP_SWIM_PRIMARY = 0x235,
+	ACT_MP_DEPLOYED_PRIMARY = 0x236,
+	ACT_MP_SWIM_DEPLOYED_PRIMARY = 0x237,
+	ACT_MP_ATTACK_STAND_PRIMARY = 0x238,
+	ACT_MP_ATTACK_STAND_PRIMARY_DEPLOYED = 0x239,
+	ACT_MP_ATTACK_CROUCH_PRIMARY = 0x23a,
+	ACT_MP_ATTACK_CROUCH_PRIMARY_DEPLOYED = 0x23b,
+	ACT_MP_ATTACK_SWIM_PRIMARY = 0x23c,
+	ACT_MP_ATTACK_AIRWALK_PRIMARY = 0x23d,
+	ACT_MP_RELOAD_STAND_PRIMARY = 0x23e,
+	ACT_MP_RELOAD_STAND_PRIMARY_LOOP = 0x23f,
+	ACT_MP_RELOAD_STAND_PRIMARY_END = 0x240,
+	ACT_MP_RELOAD_CROUCH_PRIMARY = 0x241,
+	ACT_MP_RELOAD_CROUCH_PRIMARY_LOOP = 0x242,
+	ACT_MP_RELOAD_CROUCH_PRIMARY_END = 0x243,
+	ACT_MP_RELOAD_SWIM_PRIMARY = 0x244,
+	ACT_MP_RELOAD_SWIM_PRIMARY_LOOP = 0x245,
+	ACT_MP_RELOAD_SWIM_PRIMARY_END = 0x246,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY = 0x247,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY_LOOP = 0x248,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY_END = 0x249,
+	ACT_MP_ATTACK_STAND_GRENADE_PRIMARY = 0x24a,
+	ACT_MP_ATTACK_CROUCH_GRENADE_PRIMARY = 0x24b,
+	ACT_MP_ATTACK_SWIM_GRENADE_PRIMARY = 0x24c,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_PRIMARY = 0x24d,
+	ACT_MP_STAND_SECONDARY = 0x24e,
+	ACT_MP_CROUCH_SECONDARY = 0x24f,
+	ACT_MP_RUN_SECONDARY = 0x250,
+	ACT_MP_WALK_SECONDARY = 0x251,
+	ACT_MP_AIRWALK_SECONDARY = 0x252,
+	ACT_MP_CROUCHWALK_SECONDARY = 0x253,
+	ACT_MP_JUMP_SECONDARY = 0x254,
+	ACT_MP_JUMP_START_SECONDARY = 0x255,
+	ACT_MP_JUMP_FLOAT_SECONDARY = 0x256,
+	ACT_MP_JUMP_LAND_SECONDARY = 0x257,
+	ACT_MP_SWIM_SECONDARY = 0x258,
+	ACT_MP_ATTACK_STAND_SECONDARY = 0x259,
+	ACT_MP_ATTACK_CROUCH_SECONDARY = 0x25a,
+	ACT_MP_ATTACK_SWIM_SECONDARY = 0x25b,
+	ACT_MP_ATTACK_AIRWALK_SECONDARY = 0x25c,
+	ACT_MP_RELOAD_STAND_SECONDARY = 0x25d,
+	ACT_MP_RELOAD_STAND_SECONDARY_LOOP = 0x25e,
+	ACT_MP_RELOAD_STAND_SECONDARY_END = 0x25f,
+	ACT_MP_RELOAD_CROUCH_SECONDARY = 0x260,
+	ACT_MP_RELOAD_CROUCH_SECONDARY_LOOP = 0x261,
+	ACT_MP_RELOAD_CROUCH_SECONDARY_END = 0x262,
+	ACT_MP_RELOAD_SWIM_SECONDARY = 0x263,
+	ACT_MP_RELOAD_SWIM_SECONDARY_LOOP = 0x264,
+	ACT_MP_RELOAD_SWIM_SECONDARY_END = 0x265,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY = 0x266,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY_LOOP = 0x267,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY_END = 0x268,
+	ACT_MP_ATTACK_STAND_GRENADE_SECONDARY = 0x269,
+	ACT_MP_ATTACK_CROUCH_GRENADE_SECONDARY = 0x26a,
+	ACT_MP_ATTACK_SWIM_GRENADE_SECONDARY = 0x26b,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_SECONDARY = 0x26c,
+	ACT_MP_STAND_MELEE = 0x26d,
+	ACT_MP_CROUCH_MELEE = 0x26e,
+	ACT_MP_RUN_MELEE = 0x26f,
+	ACT_MP_WALK_MELEE = 0x270,
+	ACT_MP_AIRWALK_MELEE = 0x271,
+	ACT_MP_CROUCHWALK_MELEE = 0x272,
+	ACT_MP_JUMP_MELEE = 0x273,
+	ACT_MP_JUMP_START_MELEE = 0x274,
+	ACT_MP_JUMP_FLOAT_MELEE = 0x275,
+	ACT_MP_JUMP_LAND_MELEE = 0x276,
+	ACT_MP_SWIM_MELEE = 0x277,
+	ACT_MP_ATTACK_STAND_MELEE = 0x278,
+	ACT_MP_ATTACK_STAND_MELEE_SECONDARY = 0x279,
+	ACT_MP_ATTACK_CROUCH_MELEE = 0x27a,
+	ACT_MP_ATTACK_CROUCH_MELEE_SECONDARY = 0x27b,
+	ACT_MP_ATTACK_SWIM_MELEE = 0x27c,
+	ACT_MP_ATTACK_AIRWALK_MELEE = 0x27d,
+	ACT_MP_ATTACK_STAND_GRENADE_MELEE = 0x27e,
+	ACT_MP_ATTACK_CROUCH_GRENADE_MELEE = 0x27f,
+	ACT_MP_ATTACK_SWIM_GRENADE_MELEE = 0x280,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_MELEE = 0x281,
+	ACT_MP_STAND_ITEM1 = 0x282,
+	ACT_MP_CROUCH_ITEM1 = 0x283,
+	ACT_MP_RUN_ITEM1 = 0x284,
+	ACT_MP_WALK_ITEM1 = 0x285,
+	ACT_MP_AIRWALK_ITEM1 = 0x286,
+	ACT_MP_CROUCHWALK_ITEM1 = 0x287,
+	ACT_MP_JUMP_ITEM1 = 0x288,
+	ACT_MP_JUMP_START_ITEM1 = 0x289,
+	ACT_MP_JUMP_FLOAT_ITEM1 = 0x28a,
+	ACT_MP_JUMP_LAND_ITEM1 = 0x28b,
+	ACT_MP_SWIM_ITEM1 = 0x28c,
+	ACT_MP_ATTACK_STAND_ITEM1 = 0x28d,
+	ACT_MP_ATTACK_STAND_ITEM1_SECONDARY = 0x28e,
+	ACT_MP_ATTACK_CROUCH_ITEM1 = 0x28f,
+	ACT_MP_ATTACK_CROUCH_ITEM1_SECONDARY = 0x290,
+	ACT_MP_ATTACK_SWIM_ITEM1 = 0x291,
+	ACT_MP_ATTACK_AIRWALK_ITEM1 = 0x292,
+	ACT_MP_STAND_ITEM2 = 0x293,
+	ACT_MP_CROUCH_ITEM2 = 0x294,
+	ACT_MP_RUN_ITEM2 = 0x295,
+	ACT_MP_WALK_ITEM2 = 0x296,
+	ACT_MP_AIRWALK_ITEM2 = 0x297,
+	ACT_MP_CROUCHWALK_ITEM2 = 0x298,
+	ACT_MP_JUMP_ITEM2 = 0x299,
+	ACT_MP_JUMP_START_ITEM2 = 0x29a,
+	ACT_MP_JUMP_FLOAT_ITEM2 = 0x29b,
+	ACT_MP_JUMP_LAND_ITEM2 = 0x29c,
+	ACT_MP_SWIM_ITEM2 = 0x29d,
+	ACT_MP_ATTACK_STAND_ITEM2 = 0x29e,
+	ACT_MP_ATTACK_STAND_ITEM2_SECONDARY = 0x29f,
+	ACT_MP_ATTACK_CROUCH_ITEM2 = 0x2a0,
+	ACT_MP_ATTACK_CROUCH_ITEM2_SECONDARY = 0x2a1,
+	ACT_MP_ATTACK_SWIM_ITEM2 = 0x2a2,
+	ACT_MP_ATTACK_AIRWALK_ITEM2 = 0x2a3,
+	ACT_MP_GESTURE_FLINCH = 0x2a4,
+	ACT_MP_GESTURE_FLINCH_PRIMARY = 0x2a5,
+	ACT_MP_GESTURE_FLINCH_SECONDARY = 0x2a6,
+	ACT_MP_GESTURE_FLINCH_MELEE = 0x2a7,
+	ACT_MP_GESTURE_FLINCH_ITEM1 = 0x2a8,
+	ACT_MP_GESTURE_FLINCH_ITEM2 = 0x2a9,
+	ACT_MP_GESTURE_FLINCH_HEAD = 0x2aa,
+	ACT_MP_GESTURE_FLINCH_CHEST = 0x2ab,
+	ACT_MP_GESTURE_FLINCH_STOMACH = 0x2ac,
+	ACT_MP_GESTURE_FLINCH_LEFTARM = 0x2ad,
+	ACT_MP_GESTURE_FLINCH_RIGHTARM = 0x2ae,
+	ACT_MP_GESTURE_FLINCH_LEFTLEG = 0x2af,
+	ACT_MP_GESTURE_FLINCH_RIGHTLEG = 0x2b0,
+	ACT_MP_GRENADE1_DRAW = 0x2b1,
+	ACT_MP_GRENADE1_IDLE = 0x2b2,
+	ACT_MP_GRENADE1_ATTACK = 0x2b3,
+	ACT_MP_GRENADE2_DRAW = 0x2b4,
+	ACT_MP_GRENADE2_IDLE = 0x2b5,
+	ACT_MP_GRENADE2_ATTACK = 0x2b6,
+	ACT_MP_PRIMARY_GRENADE1_DRAW = 0x2b7,
+	ACT_MP_PRIMARY_GRENADE1_IDLE = 0x2b8,
+	ACT_MP_PRIMARY_GRENADE1_ATTACK = 0x2b9,
+	ACT_MP_PRIMARY_GRENADE2_DRAW = 0x2ba,
+	ACT_MP_PRIMARY_GRENADE2_IDLE = 0x2bb,
+	ACT_MP_PRIMARY_GRENADE2_ATTACK = 0x2bc,
+	ACT_MP_SECONDARY_GRENADE1_DRAW = 0x2bd,
+	ACT_MP_SECONDARY_GRENADE1_IDLE = 0x2be,
+	ACT_MP_SECONDARY_GRENADE1_ATTACK = 0x2bf,
+	ACT_MP_SECONDARY_GRENADE2_DRAW = 0x2c0,
+	ACT_MP_SECONDARY_GRENADE2_IDLE = 0x2c1,
+	ACT_MP_SECONDARY_GRENADE2_ATTACK = 0x2c2,
+	ACT_MP_MELEE_GRENADE1_DRAW = 0x2c3,
+	ACT_MP_MELEE_GRENADE1_IDLE = 0x2c4,
+	ACT_MP_MELEE_GRENADE1_ATTACK = 0x2c5,
+	ACT_MP_MELEE_GRENADE2_DRAW = 0x2c6,
+	ACT_MP_MELEE_GRENADE2_IDLE = 0x2c7,
+	ACT_MP_MELEE_GRENADE2_ATTACK = 0x2c8,
+	ACT_MP_ITEM1_GRENADE1_DRAW = 0x2c9,
+	ACT_MP_ITEM1_GRENADE1_IDLE = 0x2ca,
+	ACT_MP_ITEM1_GRENADE1_ATTACK = 0x2cb,
+	ACT_MP_ITEM1_GRENADE2_DRAW = 0x2cc,
+	ACT_MP_ITEM1_GRENADE2_IDLE = 0x2cd,
+	ACT_MP_ITEM1_GRENADE2_ATTACK = 0x2ce,
+	ACT_MP_ITEM2_GRENADE1_DRAW = 0x2cf,
+	ACT_MP_ITEM2_GRENADE1_IDLE = 0x2d0,
+	ACT_MP_ITEM2_GRENADE1_ATTACK = 0x2d1,
+	ACT_MP_ITEM2_GRENADE2_DRAW = 0x2d2,
+	ACT_MP_ITEM2_GRENADE2_IDLE = 0x2d3,
+	ACT_MP_ITEM2_GRENADE2_ATTACK = 0x2d4,
+	ACT_MP_STAND_BUILDING = 0x2d5,
+	ACT_MP_CROUCH_BUILDING = 0x2d6,
+	ACT_MP_RUN_BUILDING = 0x2d7,
+	ACT_MP_WALK_BUILDING = 0x2d8,
+	ACT_MP_AIRWALK_BUILDING = 0x2d9,
+	ACT_MP_CROUCHWALK_BUILDING = 0x2da,
+	ACT_MP_JUMP_BUILDING = 0x2db,
+	ACT_MP_JUMP_START_BUILDING = 0x2dc,
+	ACT_MP_JUMP_FLOAT_BUILDING = 0x2dd,
+	ACT_MP_JUMP_LAND_BUILDING = 0x2de,
+	ACT_MP_SWIM_BUILDING = 0x2df,
+	ACT_MP_ATTACK_STAND_BUILDING = 0x2e0,
+	ACT_MP_ATTACK_CROUCH_BUILDING = 0x2e1,
+	ACT_MP_ATTACK_SWIM_BUILDING = 0x2e2,
+	ACT_MP_ATTACK_AIRWALK_BUILDING = 0x2e3,
+	ACT_MP_ATTACK_STAND_GRENADE_BUILDING = 0x2e4,
+	ACT_MP_ATTACK_CROUCH_GRENADE_BUILDING = 0x2e5,
+	ACT_MP_ATTACK_SWIM_GRENADE_BUILDING = 0x2e6,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_BUILDING = 0x2e7,
+	ACT_MP_STAND_PDA = 0x2e8,
+	ACT_MP_CROUCH_PDA = 0x2e9,
+	ACT_MP_RUN_PDA = 0x2ea,
+	ACT_MP_WALK_PDA = 0x2eb,
+	ACT_MP_AIRWALK_PDA = 0x2ec,
+	ACT_MP_CROUCHWALK_PDA = 0x2ed,
+	ACT_MP_JUMP_PDA = 0x2ee,
+	ACT_MP_JUMP_START_PDA = 0x2ef,
+	ACT_MP_JUMP_FLOAT_PDA = 0x2f0,
+	ACT_MP_JUMP_LAND_PDA = 0x2f1,
+	ACT_MP_SWIM_PDA = 0x2f2,
+	ACT_MP_ATTACK_STAND_PDA = 0x2f3,
+	ACT_MP_ATTACK_SWIM_PDA = 0x2f4,
+	ACT_MP_GESTURE_VC_HANDMOUTH = 0x2f5,
+	ACT_MP_GESTURE_VC_FINGERPOINT = 0x2f6,
+	ACT_MP_GESTURE_VC_FISTPUMP = 0x2f7,
+	ACT_MP_GESTURE_VC_THUMBSUP = 0x2f8,
+	ACT_MP_GESTURE_VC_NODYES = 0x2f9,
+	ACT_MP_GESTURE_VC_NODNO = 0x2fa,
+	ACT_MP_GESTURE_VC_HANDMOUTH_PRIMARY = 0x2fb,
+	ACT_MP_GESTURE_VC_FINGERPOINT_PRIMARY = 0x2fc,
+	ACT_MP_GESTURE_VC_FISTPUMP_PRIMARY = 0x2fd,
+	ACT_MP_GESTURE_VC_THUMBSUP_PRIMARY = 0x2fe,
+	ACT_MP_GESTURE_VC_NODYES_PRIMARY = 0x2ff,
+	ACT_MP_GESTURE_VC_NODNO_PRIMARY = 0x300,
+	ACT_MP_GESTURE_VC_HANDMOUTH_SECONDARY = 0x301,
+	ACT_MP_GESTURE_VC_FINGERPOINT_SECONDARY = 0x302,
+	ACT_MP_GESTURE_VC_FISTPUMP_SECONDARY = 0x303,
+	ACT_MP_GESTURE_VC_THUMBSUP_SECONDARY = 0x304,
+	ACT_MP_GESTURE_VC_NODYES_SECONDARY = 0x305,
+	ACT_MP_GESTURE_VC_NODNO_SECONDARY = 0x306,
+	ACT_MP_GESTURE_VC_HANDMOUTH_MELEE = 0x307,
+	ACT_MP_GESTURE_VC_FINGERPOINT_MELEE = 0x308,
+	ACT_MP_GESTURE_VC_FISTPUMP_MELEE = 0x309,
+	ACT_MP_GESTURE_VC_THUMBSUP_MELEE = 0x30a,
+	ACT_MP_GESTURE_VC_NODYES_MELEE = 0x30b,
+	ACT_MP_GESTURE_VC_NODNO_MELEE = 0x30c,
+	ACT_MP_GESTURE_VC_HANDMOUTH_ITEM1 = 0x30d,
+	ACT_MP_GESTURE_VC_FINGERPOINT_ITEM1 = 0x30e,
+	ACT_MP_GESTURE_VC_FISTPUMP_ITEM1 = 0x30f,
+	ACT_MP_GESTURE_VC_THUMBSUP_ITEM1 = 0x310,
+	ACT_MP_GESTURE_VC_NODYES_ITEM1 = 0x311,
+	ACT_MP_GESTURE_VC_NODNO_ITEM1 = 0x312,
+	ACT_MP_GESTURE_VC_HANDMOUTH_ITEM2 = 0x313,
+	ACT_MP_GESTURE_VC_FINGERPOINT_ITEM2 = 0x314,
+	ACT_MP_GESTURE_VC_FISTPUMP_ITEM2 = 0x315,
+	ACT_MP_GESTURE_VC_THUMBSUP_ITEM2 = 0x316,
+	ACT_MP_GESTURE_VC_NODYES_ITEM2 = 0x317,
+	ACT_MP_GESTURE_VC_NODNO_ITEM2 = 0x318,
+	ACT_MP_GESTURE_VC_HANDMOUTH_BUILDING = 0x319,
+	ACT_MP_GESTURE_VC_FINGERPOINT_BUILDING = 0x31a,
+	ACT_MP_GESTURE_VC_FISTPUMP_BUILDING = 0x31b,
+	ACT_MP_GESTURE_VC_THUMBSUP_BUILDING = 0x31c,
+	ACT_MP_GESTURE_VC_NODYES_BUILDING = 0x31d,
+	ACT_MP_GESTURE_VC_NODNO_BUILDING = 0x31e,
+	ACT_MP_GESTURE_VC_HANDMOUTH_PDA = 0x31f,
+	ACT_MP_GESTURE_VC_FINGERPOINT_PDA = 0x320,
+	ACT_MP_GESTURE_VC_FISTPUMP_PDA = 0x321,
+	ACT_MP_GESTURE_VC_THUMBSUP_PDA = 0x322,
+	ACT_MP_GESTURE_VC_NODYES_PDA = 0x323,
+	ACT_MP_GESTURE_VC_NODNO_PDA = 0x324,
+	ACT_VM_UNUSABLE = 0x325,
+	ACT_VM_UNUSABLE_TO_USABLE = 0x326,
+	ACT_VM_USABLE_TO_UNUSABLE = 0x327,
+	ACT_PRIMARY_VM_DRAW = 0x328,
+	ACT_PRIMARY_VM_HOLSTER = 0x329,
+	ACT_PRIMARY_VM_IDLE = 0x32a,
+	ACT_PRIMARY_VM_PULLBACK = 0x32b,
+	ACT_PRIMARY_VM_PRIMARYATTACK = 0x32c,
+	ACT_PRIMARY_VM_SECONDARYATTACK = 0x32d,
+	ACT_PRIMARY_VM_RELOAD = 0x32e,
+	ACT_PRIMARY_VM_DRYFIRE = 0x32f,
+	ACT_PRIMARY_VM_IDLE_TO_LOWERED = 0x330,
+	ACT_PRIMARY_VM_IDLE_LOWERED = 0x331,
+	ACT_PRIMARY_VM_LOWERED_TO_IDLE = 0x332,
+	ACT_SECONDARY_VM_DRAW = 0x333,
+	ACT_SECONDARY_VM_HOLSTER = 0x334,
+	ACT_SECONDARY_VM_IDLE = 0x335,
+	ACT_SECONDARY_VM_PULLBACK = 0x336,
+	ACT_SECONDARY_VM_PRIMARYATTACK = 0x337,
+	ACT_SECONDARY_VM_SECONDARYATTACK = 0x338,
+	ACT_SECONDARY_VM_RELOAD = 0x339,
+	ACT_SECONDARY_VM_DRYFIRE = 0x33a,
+	ACT_SECONDARY_VM_IDLE_TO_LOWERED = 0x33b,
+	ACT_SECONDARY_VM_IDLE_LOWERED = 0x33c,
+	ACT_SECONDARY_VM_LOWERED_TO_IDLE = 0x33d,
+	ACT_MELEE_VM_DRAW = 0x33e,
+	ACT_MELEE_VM_HOLSTER = 0x33f,
+	ACT_MELEE_VM_IDLE = 0x340,
+	ACT_MELEE_VM_PULLBACK = 0x341,
+	ACT_MELEE_VM_PRIMARYATTACK = 0x342,
+	ACT_MELEE_VM_SECONDARYATTACK = 0x343,
+	ACT_MELEE_VM_RELOAD = 0x344,
+	ACT_MELEE_VM_DRYFIRE = 0x345,
+	ACT_MELEE_VM_IDLE_TO_LOWERED = 0x346,
+	ACT_MELEE_VM_IDLE_LOWERED = 0x347,
+	ACT_MELEE_VM_LOWERED_TO_IDLE = 0x348,
+	ACT_PDA_VM_DRAW = 0x349,
+	ACT_PDA_VM_HOLSTER = 0x34a,
+	ACT_PDA_VM_IDLE = 0x34b,
+	ACT_PDA_VM_PULLBACK = 0x34c,
+	ACT_PDA_VM_PRIMARYATTACK = 0x34d,
+	ACT_PDA_VM_SECONDARYATTACK = 0x34e,
+	ACT_PDA_VM_RELOAD = 0x34f,
+	ACT_PDA_VM_DRYFIRE = 0x350,
+	ACT_PDA_VM_IDLE_TO_LOWERED = 0x351,
+	ACT_PDA_VM_IDLE_LOWERED = 0x352,
+	ACT_PDA_VM_LOWERED_TO_IDLE = 0x353,
+	ACT_ITEM1_VM_DRAW = 0x354,
+	ACT_ITEM1_VM_HOLSTER = 0x355,
+	ACT_ITEM1_VM_IDLE = 0x356,
+	ACT_ITEM1_VM_PULLBACK = 0x357,
+	ACT_ITEM1_VM_PRIMARYATTACK = 0x358,
+	ACT_ITEM1_VM_SECONDARYATTACK = 0x359,
+	ACT_ITEM1_VM_RELOAD = 0x35a,
+	ACT_ITEM1_VM_DRYFIRE = 0x35b,
+	ACT_ITEM1_VM_IDLE_TO_LOWERED = 0x35c,
+	ACT_ITEM1_VM_IDLE_LOWERED = 0x35d,
+	ACT_ITEM1_VM_LOWERED_TO_IDLE = 0x35e,
+	ACT_ITEM2_VM_DRAW = 0x35f,
+	ACT_ITEM2_VM_HOLSTER = 0x360,
+	ACT_ITEM2_VM_IDLE = 0x361,
+	ACT_ITEM2_VM_PULLBACK = 0x362,
+	ACT_ITEM2_VM_PRIMARYATTACK = 0x363,
+	ACT_ITEM2_VM_SECONDARYATTACK = 0x364,
+	ACT_ITEM2_VM_RELOAD = 0x365,
+	ACT_ITEM2_VM_DRYFIRE = 0x366,
+	ACT_ITEM2_VM_IDLE_TO_LOWERED = 0x367,
+	ACT_ITEM2_VM_IDLE_LOWERED = 0x368,
+	ACT_ITEM2_VM_LOWERED_TO_IDLE = 0x369,
+	ACT_RELOAD_SUCCEED = 0x36a,
+	ACT_RELOAD_FAIL = 0x36b,
+	ACT_WALK_AIM_AUTOGUN = 0x36c,
+	ACT_RUN_AIM_AUTOGUN = 0x36d,
+	ACT_IDLE_AUTOGUN = 0x36e,
+	ACT_IDLE_AIM_AUTOGUN = 0x36f,
+	ACT_RELOAD_AUTOGUN = 0x370,
+	ACT_CROUCH_IDLE_AUTOGUN = 0x371,
+	ACT_RANGE_ATTACK_AUTOGUN = 0x372,
+	ACT_JUMP_AUTOGUN = 0x373,
+	ACT_IDLE_AIM_PISTOL = 0x374,
+	ACT_WALK_AIM_DUAL = 0x375,
+	ACT_RUN_AIM_DUAL = 0x376,
+	ACT_IDLE_DUAL = 0x377,
+	ACT_IDLE_AIM_DUAL = 0x378,
+	ACT_RELOAD_DUAL = 0x379,
+	ACT_CROUCH_IDLE_DUAL = 0x37a,
+	ACT_RANGE_ATTACK_DUAL = 0x37b,
+	ACT_JUMP_DUAL = 0x37c,
+	ACT_IDLE_AIM_SHOTGUN = 0x37d,
+	ACT_CROUCH_IDLE_SHOTGUN = 0x37e,
+	ACT_IDLE_AIM_RIFLE = 0x37f,
+	ACT_CROUCH_IDLE_RIFLE = 0x380,
+	ACT_RANGE_ATTACK_RIFLE = 0x381,
+	ACT_SLEEP = 0x382,
+	ACT_WAKE = 0x383,
+	ACT_FLICK_LEFT = 0x384,
+	ACT_FLICK_LEFT_MIDDLE = 0x385,
+	ACT_FLICK_RIGHT_MIDDLE = 0x386,
+	ACT_FLICK_RIGHT = 0x387,
+	ACT_SPINAROUND = 0x388,
+	ACT_PREP_TO_FIRE = 0x389,
+	ACT_FIRE = 0x38a,
+	ACT_FIRE_RECOVER = 0x38b,
+	ACT_SPRAY = 0x38c,
+	ACT_PREP_EXPLODE = 0x38d,
+	ACT_EXPLODE = 0x38e,
+	ACT_SCRIPT_CUSTOM_0 = 0x38f,
+	ACT_SCRIPT_CUSTOM_1 = 0x390,
+	ACT_SCRIPT_CUSTOM_2 = 0x391,
+	ACT_SCRIPT_CUSTOM_3 = 0x392,
+	ACT_SCRIPT_CUSTOM_4 = 0x393,
+	ACT_SCRIPT_CUSTOM_5 = 0x394,
+	ACT_SCRIPT_CUSTOM_6 = 0x395,
+	ACT_SCRIPT_CUSTOM_7 = 0x396,
+	ACT_SCRIPT_CUSTOM_8 = 0x397,
+	ACT_SCRIPT_CUSTOM_9 = 0x398,
+	ACT_SCRIPT_CUSTOM_10 = 0x399,
+	ACT_SCRIPT_CUSTOM_11 = 0x39a,
+	ACT_SCRIPT_CUSTOM_12 = 0x39b,
+	ACT_SCRIPT_CUSTOM_13 = 0x39c,
+	ACT_SCRIPT_CUSTOM_14 = 0x39d,
+	ACT_SCRIPT_CUSTOM_15 = 0x39e,
+	ACT_SCRIPT_CUSTOM_16 = 0x39f,
+	ACT_SCRIPT_CUSTOM_17 = 0x3a0,
+	ACT_SCRIPT_CUSTOM_18 = 0x3a1,
+	ACT_SCRIPT_CUSTOM_19 = 0x3a2,
+	ACT_SCRIPT_CUSTOM_20 = 0x3a3,
+	ACT_SCRIPT_CUSTOM_21 = 0x3a4,
+	ACT_SCRIPT_CUSTOM_22 = 0x3a5,
+	ACT_SCRIPT_CUSTOM_23 = 0x3a6,
+	ACT_SCRIPT_CUSTOM_24 = 0x3a7,
+	ACT_SCRIPT_CUSTOM_25 = 0x3a8,
+	ACT_SCRIPT_CUSTOM_26 = 0x3a9,
+	ACT_SCRIPT_CUSTOM_27 = 0x3aa,
+	ACT_SCRIPT_CUSTOM_28 = 0x3ab,
+	ACT_SCRIPT_CUSTOM_29 = 0x3ac,
+	ACT_SCRIPT_CUSTOM_30 = 0x3ad,
+	ACT_SCRIPT_CUSTOM_31 = 0x3ae,
+	ACT_VR_PISTOL_LAST_SHOT = 0x3af,
+	ACT_VR_PISTOL_SLIDE_RELEASE = 0x3b0,
+	ACT_VR_PISTOL_CLIP_OUT_CHAMBERED = 0x3b1,
+	ACT_VR_PISTOL_CLIP_OUT_SLIDE_BACK = 0x3b2,
+	ACT_VR_PISTOL_CLIP_IN_CHAMBERED = 0x3b3,
+	ACT_VR_PISTOL_CLIP_IN_SLIDE_BACK = 0x3b4,
+	ACT_VR_PISTOL_IDLE_SLIDE_BACK = 0x3b5,
+	ACT_VR_PISTOL_IDLE_SLIDE_BACK_CLIP_READY = 0x3b6,
+	ACT_RAGDOLL_RECOVERY_FRONT = 0x3b7,
+	ACT_RAGDOLL_RECOVERY_BACK = 0x3b8,
+	ACT_RAGDOLL_RECOVERY_LEFT = 0x3b9,
+	ACT_RAGDOLL_RECOVERY_RIGHT = 0x3ba,
+	ACT_GRABBITYGLOVES_GRAB = 0x3bb,
+	ACT_GRABBITYGLOVES_RELEASE = 0x3bc,
+	ACT_GRABBITYGLOVES_GRAB_IDLE = 0x3bd,
+	ACT_GRABBITYGLOVES_ACTIVE = 0x3be,
+	ACT_GRABBITYGLOVES_ACTIVE_IDLE = 0x3bf,
+	ACT_GRABBITYGLOVES_DEACTIVATE = 0x3c0,
+	ACT_GRABBITYGLOVES_PULL = 0x3c1,
+	ACT_HEADCRAB_SMOKE_BOMB = 0x3c2,
+	ACT_HEADCRAB_SPIT = 0x3c3,
+	ACT_ZOMBIE_TRIP = 0x3c4,
+	ACT_ZOMBIE_LUNGE = 0x3c5,
+	ACT_NEUTRAL_REF_POSE = 0x3c6,
+	ACT_ANTLION_SCUTTLE_FORWARD = 0x3c7,
+	ACT_ANTLION_SCUTTLE_BACK = 0x3c8,
+	ACT_ANTLION_SCUTTLE_LEFT = 0x3c9,
+	ACT_ANTLION_SCUTTLE_RIGHT = 0x3ca,
+	ACT_VR_PISTOL_EMPTY_CLIP_IN_SLIDE_BACK = 0x3cb,
+	ACT_VR_SHOTGUN_IDLE = 0x3cc,
+	ACT_VR_SHOTGUN_OPEN_CHAMBER = 0x3cd,
+	ACT_VR_SHOTGUN_RELOAD_1 = 0x3ce,
+	ACT_VR_SHOTGUN_RELOAD_2 = 0x3cf,
+	ACT_VR_SHOTGUN_RELOAD_3 = 0x3d0,
+	ACT_VR_SHOTGUN_CLOSE_CHAMBER = 0x3d1,
+	ACT_VR_SHOTGUN_TRIGGER_SQUEEZE = 0x3d2,
+	ACT_VR_SHOTGUN_SHOOT = 0x3d3,
+	ACT_VR_SHOTGUN_SLIDE_BACK = 0x3d4,
+	ACT_VR_SHOTGUN_SLIDE_FORWARD = 0x3d5,
+	ACT_VR_PISTOL_LONG_CLIP_IN_CHAMBERED = 0x3d6,
+	ACT_VR_PISTOL_LONG_CLIP_IN_SLIDE_BACK = 0x3d7,
+	ACT_VR_PISTOL_BURST_TOGGLE = 0x3d8,
+	ACT_VR_PISTOL_LOW_KICK = 0x3d9,
+	ACT_VR_PISTOL_BURST_ATTACK = 0x3da,
+	ACT_VR_SHOTGUN_GRENADE_TWIST = 0x3db,
+	ACT_DIE_STAND = 0x3dc,
+	ACT_DIE_STAND_HEADSHOT = 0x3dd,
+	ACT_DIE_CROUCH = 0x3de,
+	ACT_DIE_CROUCH_HEADSHOT = 0x3df,
+	ACT_CSGO_NULL = 0x3e0,
+	ACT_CSGO_DEFUSE = 0x3e1,
+	ACT_CSGO_DEFUSE_WITH_KIT = 0x3e2,
+	ACT_CSGO_FLASHBANG_REACTION = 0x3e3,
+	ACT_CSGO_FIRE_PRIMARY = 0x3e4,
+	ACT_CSGO_FIRE_PRIMARY_OPT_1 = 0x3e5,
+	ACT_CSGO_FIRE_PRIMARY_OPT_2 = 0x3e6,
+	ACT_CSGO_FIRE_SECONDARY = 0x3e7,
+	ACT_CSGO_FIRE_SECONDARY_OPT_1 = 0x3e8,
+	ACT_CSGO_FIRE_SECONDARY_OPT_2 = 0x3e9,
+	ACT_CSGO_RELOAD = 0x3ea,
+	ACT_CSGO_RELOAD_START = 0x3eb,
+	ACT_CSGO_RELOAD_LOOP = 0x3ec,
+	ACT_CSGO_RELOAD_END = 0x3ed,
+	ACT_CSGO_OPERATE = 0x3ee,
+	ACT_CSGO_DEPLOY = 0x3ef,
+	ACT_CSGO_CATCH = 0x3f0,
+	ACT_CSGO_SILENCER_DETACH = 0x3f1,
+	ACT_CSGO_SILENCER_ATTACH = 0x3f2,
+	ACT_CSGO_TWITCH = 0x3f3,
+	ACT_CSGO_TWITCH_BUYZONE = 0x3f4,
+	ACT_CSGO_PLANT_BOMB = 0x3f5,
+	ACT_CSGO_IDLE_TURN_BALANCEADJUST = 0x3f6,
+	ACT_CSGO_IDLE_ADJUST_STOPPEDMOVING = 0x3f7,
+	ACT_CSGO_ALIVE_LOOP = 0x3f8,
+	ACT_CSGO_FLINCH = 0x3f9,
+	ACT_CSGO_FLINCH_HEAD = 0x3fa,
+	ACT_CSGO_FLINCH_MOLOTOV = 0x3fb,
+	ACT_CSGO_JUMP = 0x3fc,
+	ACT_CSGO_FALL = 0x3fd,
+	ACT_CSGO_CLIMB_LADDER = 0x3fe,
+	ACT_CSGO_LAND_LIGHT = 0x3ff,
+	ACT_CSGO_LAND_HEAVY = 0x400,
+	ACT_CSGO_EXIT_LADDER_TOP = 0x401,
+	ACT_CSGO_EXIT_LADDER_BOTTOM = 0x402,
+	ACT_CSGO_PARACHUTE = 0x403,
+	ACT_CSGO_TAUNT = 0x404,
+};
+
+// Aligment: 4
+// Size: 5
+enum class EDACUnderlordEquipSlot : uint32_t
+{
+	EDACUnderlordEquipSlot_None = 0x0,
+	EDACUnderlordEquipSlot_First = 0x1,
+	EDACUnderlordEquipSlot_Skin = 0x1,
+	EDACUnderlordEquipSlot_VictoryDance = 0x2,
+	EDACUnderlordEquipSlot_Max = 0x2,
+};
+
 // Aligment: 4
 // Size: 5
 enum class LifeState_t : uint32_t
@@ -2088,6 +3925,416 @@ enum class SurroundingBoundsType_t : uint8_t
 	SURROUNDING_TYPE_BIT_COUNT = 3,
 };
 
+// Aligment: 4
+// Size: 4
+enum class eLogicalHandType : uint32_t
+{
+	LOGICAL_HAND_TYPE_UNKNOWN = 0xffffffffffffffff,
+	LOGICAL_HAND_TYPE_PRIMARY_HAND = 0x0,
+	LOGICAL_HAND_TYPE_OFF_HAND = 0x1,
+	LOGICAL_HAND_TYPE_COUNT = 0x2,
+};
+
+// Aligment: 4
+// Size: 49
+enum class modifierstate : uint32_t
+{
+	MODIFIER_STATE_ROOTED = 0x0,
+	MODIFIER_STATE_DISARMED = 0x1,
+	MODIFIER_STATE_ATTACK_IMMUNE = 0x2,
+	MODIFIER_STATE_SILENCED = 0x3,
+	MODIFIER_STATE_MUTED = 0x4,
+	MODIFIER_STATE_STUNNED = 0x5,
+	MODIFIER_STATE_HEXED = 0x6,
+	MODIFIER_STATE_INVISIBLE = 0x7,
+	MODIFIER_STATE_INVULNERABLE = 0x8,
+	MODIFIER_STATE_MAGIC_IMMUNE = 0x9,
+	MODIFIER_STATE_PROVIDES_VISION = 0xa,
+	MODIFIER_STATE_NIGHTMARED = 0xb,
+	MODIFIER_STATE_BLOCK_DISABLED = 0xc,
+	MODIFIER_STATE_EVADE_DISABLED = 0xd,
+	MODIFIER_STATE_UNSELECTABLE = 0xe,
+	MODIFIER_STATE_CANNOT_TARGET_ENEMIES = 0xf,
+	MODIFIER_STATE_CANNOT_MISS = 0x10,
+	MODIFIER_STATE_SPECIALLY_DENIABLE = 0x11,
+	MODIFIER_STATE_FROZEN = 0x12,
+	MODIFIER_STATE_COMMAND_RESTRICTED = 0x13,
+	MODIFIER_STATE_NOT_ON_MINIMAP = 0x14,
+	MODIFIER_STATE_LOW_ATTACK_PRIORITY = 0x15,
+	MODIFIER_STATE_FLYING = 0x16,
+	MODIFIER_STATE_NO_UNIT_COLLISION = 0x17,
+	MODIFIER_STATE_NO_TEAM_MOVE_TO = 0x18,
+	MODIFIER_STATE_NO_TEAM_SELECT = 0x19,
+	MODIFIER_STATE_PASSIVES_DISABLED = 0x1a,
+	MODIFIER_STATE_DOMINATED = 0x1b,
+	MODIFIER_STATE_BLIND = 0x1c,
+	MODIFIER_STATE_OUT_OF_GAME = 0x1d,
+	MODIFIER_STATE_FAKE_ALLY = 0x1e,
+	MODIFIER_STATE_FLYING_FOR_PATHING_PURPOSES_ONLY = 0x1f,
+	MODIFIER_STATE_TRUESIGHT_IMMUNE = 0x20,
+	MODIFIER_STATE_UNTARGETABLE = 0x21,
+	MODIFIER_STATE_IGNORING_MOVE_AND_ATTACK_ORDERS = 0x22,
+	MODIFIER_STATE_ALLOW_PATHING_TROUGH_TREES = 0x23,
+	MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES = 0x24,
+	MODIFIER_STATE_UNSLOWABLE = 0x25,
+	MODIFIER_STATE_TETHERED = 0x26,
+	MODIFIER_STATE_DEMON_DISABLED = 0x27,
+	MODIFIER_STATE_DEMON_DISABLED_IMMUNITY = 0x28,
+	MODIFIER_STATE_PREVENT_ROUND_END = 0x29,
+	MODIFIER_STATE_NO_ROUND_DAMAGE = 0x2a,
+	MODIFIER_STATE_ON_FIRE = 0x2b,
+	MODIFIER_STATE_NO_PATHFINDING_CELL_RESERVATION = 0x2c,
+	MODIFIER_STATE_NO_HEALTH_BAR = 0x2d,
+	MODIFIER_STATE_NO_HYPE_DRAIN = 0x2e,
+	MODIFIER_STATE_PREVENT_TEAM_WIPE = 0x2f,
+	MODIFIER_STATE_LAST = 0x30,
+};
+
+// Aligment: 4
+// Size: 27
+enum class DAC_UNIT_TARGET_FLAGS : uint32_t
+{
+	DAC_UNIT_TARGET_FLAG_NONE = 0x0,
+	DAC_UNIT_TARGET_FLAG_RANGED_ONLY = 0x2,
+	DAC_UNIT_TARGET_FLAG_MELEE_ONLY = 0x4,
+	DAC_UNIT_TARGET_FLAG_DEAD = 0x8,
+	DAC_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES = 0x10,
+	DAC_UNIT_TARGET_FLAG_NOT_MAGIC_IMMUNE_ALLIES = 0x20,
+	DAC_UNIT_TARGET_FLAG_INVULNERABLE = 0x40,
+	DAC_UNIT_TARGET_FLAG_FOW_VISIBLE = 0x80,
+	DAC_UNIT_TARGET_FLAG_NO_INVIS = 0x100,
+	DAC_UNIT_TARGET_FLAG_NOT_ANCIENTS = 0x200,
+	DAC_UNIT_TARGET_FLAG_PLAYER_CONTROLLED = 0x400,
+	DAC_UNIT_TARGET_FLAG_NOT_DOMINATED = 0x800,
+	DAC_UNIT_TARGET_FLAG_NOT_SUMMONED = 0x1000,
+	DAC_UNIT_TARGET_FLAG_NOT_ILLUSIONS = 0x2000,
+	DAC_UNIT_TARGET_FLAG_NOT_ATTACK_IMMUNE = 0x4000,
+	DAC_UNIT_TARGET_FLAG_MANA_ONLY = 0x8000,
+	DAC_UNIT_TARGET_FLAG_CHECK_DISABLE_HELP = 0x10000,
+	DAC_UNIT_TARGET_FLAG_NOT_CREEP_HERO = 0x20000,
+	DAC_UNIT_TARGET_FLAG_OUT_OF_WORLD = 0x40000,
+	DAC_UNIT_TARGET_FLAG_NOT_NIGHTMARED = 0x80000,
+	DAC_UNIT_TARGET_FLAG_PREFER_ENEMIES = 0x100000,
+	DAC_UNIT_TARGET_FLAG_RESPECT_OBSTRUCTIONS = 0x200000,
+	DAC_UNIT_TARGET_FLAG_ON_GROUND = 0x400000,
+	DAC_UNIT_TARGET_FLAG_NO_MOTION_CONTROL = 0x800000,
+	DAC_UNIT_TARGET_FLAG_INCLUDE_PLACEABLE_ITEMS = 0x1000000,
+	DAC_UNIT_TARGET_FLAG_NOT_UNDERLORD = 0x2000000,
+	DAC_UNIT_TARGET_FLAG_ALLOW_UNTARGETABLE = 0x4000000,
+};
+
+// Aligment: 4
+// Size: 270
+enum class GameActivity_t : uint32_t
+{
+	ACT_DOTA_IDLE = 0x5dc,
+	ACT_DOTA_IDLE_RARE = 0x5dd,
+	ACT_DOTA_RUN = 0x5de,
+	ACT_DOTA_ATTACK = 0x5df,
+	ACT_DOTA_ATTACK2 = 0x5e0,
+	ACT_DOTA_ATTACK_EVENT = 0x5e1,
+	ACT_DOTA_DIE = 0x5e2,
+	ACT_DOTA_FLINCH = 0x5e3,
+	ACT_DOTA_FLAIL = 0x5e4,
+	ACT_DOTA_DISABLED = 0x5e5,
+	ACT_DOTA_CAST_ABILITY_1 = 0x5e6,
+	ACT_DOTA_CAST_ABILITY_2 = 0x5e7,
+	ACT_DOTA_CAST_ABILITY_3 = 0x5e8,
+	ACT_DOTA_CAST_ABILITY_4 = 0x5e9,
+	ACT_DOTA_CAST_ABILITY_5 = 0x5ea,
+	ACT_DOTA_CAST_ABILITY_6 = 0x5eb,
+	ACT_DOTA_OVERRIDE_ABILITY_1 = 0x5ec,
+	ACT_DOTA_OVERRIDE_ABILITY_2 = 0x5ed,
+	ACT_DOTA_OVERRIDE_ABILITY_3 = 0x5ee,
+	ACT_DOTA_OVERRIDE_ABILITY_4 = 0x5ef,
+	ACT_DOTA_CHANNEL_ABILITY_1 = 0x5f0,
+	ACT_DOTA_CHANNEL_ABILITY_2 = 0x5f1,
+	ACT_DOTA_CHANNEL_ABILITY_3 = 0x5f2,
+	ACT_DOTA_CHANNEL_ABILITY_4 = 0x5f3,
+	ACT_DOTA_CHANNEL_ABILITY_5 = 0x5f4,
+	ACT_DOTA_CHANNEL_ABILITY_6 = 0x5f5,
+	ACT_DOTA_CHANNEL_END_ABILITY_1 = 0x5f6,
+	ACT_DOTA_CHANNEL_END_ABILITY_2 = 0x5f7,
+	ACT_DOTA_CHANNEL_END_ABILITY_3 = 0x5f8,
+	ACT_DOTA_CHANNEL_END_ABILITY_4 = 0x5f9,
+	ACT_DOTA_CHANNEL_END_ABILITY_5 = 0x5fa,
+	ACT_DOTA_CHANNEL_END_ABILITY_6 = 0x5fb,
+	ACT_DOTA_CONSTANT_LAYER = 0x5fc,
+	ACT_DOTA_CAPTURE = 0x5fd,
+	ACT_DOTA_SPAWN = 0x5fe,
+	ACT_DOTA_KILLTAUNT = 0x5ff,
+	ACT_DOTA_TAUNT = 0x600,
+	ACT_DOTA_THIRST = 0x601,
+	ACT_DOTA_CAST_DRAGONBREATH = 0x602,
+	ACT_DOTA_ECHO_SLAM = 0x603,
+	ACT_DOTA_CAST_ABILITY_1_END = 0x604,
+	ACT_DOTA_CAST_ABILITY_2_END = 0x605,
+	ACT_DOTA_CAST_ABILITY_3_END = 0x606,
+	ACT_DOTA_CAST_ABILITY_4_END = 0x607,
+	ACT_MIRANA_LEAP_END = 0x608,
+	ACT_WAVEFORM_START = 0x609,
+	ACT_WAVEFORM_END = 0x60a,
+	ACT_DOTA_CAST_ABILITY_ROT = 0x60b,
+	ACT_DOTA_DIE_SPECIAL = 0x60c,
+	ACT_DOTA_RATTLETRAP_BATTERYASSAULT = 0x60d,
+	ACT_DOTA_RATTLETRAP_POWERCOGS = 0x60e,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_START = 0x60f,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_LOOP = 0x610,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_END = 0x611,
+	ACT_STORM_SPIRIT_OVERLOAD_RUN_OVERRIDE = 0x612,
+	ACT_DOTA_TINKER_REARM1 = 0x613,
+	ACT_DOTA_TINKER_REARM2 = 0x614,
+	ACT_DOTA_TINKER_REARM3 = 0x615,
+	ACT_TINY_AVALANCHE = 0x616,
+	ACT_TINY_TOSS = 0x617,
+	ACT_TINY_GROWL = 0x618,
+	ACT_DOTA_WEAVERBUG_ATTACH = 0x619,
+	ACT_DOTA_CAST_WILD_AXES_END = 0x61a,
+	ACT_DOTA_CAST_LIFE_BREAK_START = 0x61b,
+	ACT_DOTA_CAST_LIFE_BREAK_END = 0x61c,
+	ACT_DOTA_NIGHTSTALKER_TRANSITION = 0x61d,
+	ACT_DOTA_LIFESTEALER_RAGE = 0x61e,
+	ACT_DOTA_LIFESTEALER_OPEN_WOUNDS = 0x61f,
+	ACT_DOTA_SAND_KING_BURROW_IN = 0x620,
+	ACT_DOTA_SAND_KING_BURROW_OUT = 0x621,
+	ACT_DOTA_EARTHSHAKER_TOTEM_ATTACK = 0x622,
+	ACT_DOTA_WHEEL_LAYER = 0x623,
+	ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_START = 0x624,
+	ACT_DOTA_ALCHEMIST_CONCOCTION = 0x625,
+	ACT_DOTA_JAKIRO_LIQUIDFIRE_START = 0x626,
+	ACT_DOTA_JAKIRO_LIQUIDFIRE_LOOP = 0x627,
+	ACT_DOTA_LIFESTEALER_INFEST = 0x628,
+	ACT_DOTA_LIFESTEALER_INFEST_END = 0x629,
+	ACT_DOTA_LASSO_LOOP = 0x62a,
+	ACT_DOTA_ALCHEMIST_CONCOCTION_THROW = 0x62b,
+	ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_END = 0x62c,
+	ACT_DOTA_CAST_COLD_SNAP = 0x62d,
+	ACT_DOTA_CAST_GHOST_WALK = 0x62e,
+	ACT_DOTA_CAST_TORNADO = 0x62f,
+	ACT_DOTA_CAST_EMP = 0x630,
+	ACT_DOTA_CAST_ALACRITY = 0x631,
+	ACT_DOTA_CAST_CHAOS_METEOR = 0x632,
+	ACT_DOTA_CAST_SUN_STRIKE = 0x633,
+	ACT_DOTA_CAST_FORGE_SPIRIT = 0x634,
+	ACT_DOTA_CAST_ICE_WALL = 0x635,
+	ACT_DOTA_CAST_DEAFENING_BLAST = 0x636,
+	ACT_DOTA_VICTORY = 0x637,
+	ACT_DOTA_DEFEAT = 0x638,
+	ACT_DOTA_SPIRIT_BREAKER_CHARGE_POSE = 0x639,
+	ACT_DOTA_SPIRIT_BREAKER_CHARGE_END = 0x63a,
+	ACT_DOTA_TELEPORT = 0x63b,
+	ACT_DOTA_TELEPORT_END = 0x63c,
+	ACT_DOTA_CAST_REFRACTION = 0x63d,
+	ACT_DOTA_CAST_ABILITY_7 = 0x63e,
+	ACT_DOTA_CANCEL_SIREN_SONG = 0x63f,
+	ACT_DOTA_CHANNEL_ABILITY_7 = 0x640,
+	ACT_DOTA_LOADOUT = 0x641,
+	ACT_DOTA_FORCESTAFF_END = 0x642,
+	ACT_DOTA_POOF_END = 0x643,
+	ACT_DOTA_SLARK_POUNCE = 0x644,
+	ACT_DOTA_MAGNUS_SKEWER_START = 0x645,
+	ACT_DOTA_MAGNUS_SKEWER_END = 0x646,
+	ACT_DOTA_MEDUSA_STONE_GAZE = 0x647,
+	ACT_DOTA_RELAX_START = 0x648,
+	ACT_DOTA_RELAX_LOOP = 0x649,
+	ACT_DOTA_RELAX_END = 0x64a,
+	ACT_DOTA_CENTAUR_STAMPEDE = 0x64b,
+	ACT_DOTA_BELLYACHE_START = 0x64c,
+	ACT_DOTA_BELLYACHE_LOOP = 0x64d,
+	ACT_DOTA_BELLYACHE_END = 0x64e,
+	ACT_DOTA_ROQUELAIRE_LAND = 0x64f,
+	ACT_DOTA_ROQUELAIRE_LAND_IDLE = 0x650,
+	ACT_DOTA_GREEVIL_CAST = 0x651,
+	ACT_DOTA_GREEVIL_OVERRIDE_ABILITY = 0x652,
+	ACT_DOTA_GREEVIL_HOOK_START = 0x653,
+	ACT_DOTA_GREEVIL_HOOK_END = 0x654,
+	ACT_DOTA_GREEVIL_BLINK_BONE = 0x655,
+	ACT_DOTA_IDLE_SLEEPING = 0x656,
+	ACT_DOTA_INTRO = 0x657,
+	ACT_DOTA_GESTURE_POINT = 0x658,
+	ACT_DOTA_GESTURE_ACCENT = 0x659,
+	ACT_DOTA_SLEEPING_END = 0x65a,
+	ACT_DOTA_AMBUSH = 0x65b,
+	ACT_DOTA_ITEM_LOOK = 0x65c,
+	ACT_DOTA_STARTLE = 0x65d,
+	ACT_DOTA_FRUSTRATION = 0x65e,
+	ACT_DOTA_TELEPORT_REACT = 0x65f,
+	ACT_DOTA_TELEPORT_END_REACT = 0x660,
+	ACT_DOTA_SHRUG = 0x661,
+	ACT_DOTA_RELAX_LOOP_END = 0x662,
+	ACT_DOTA_PRESENT_ITEM = 0x663,
+	ACT_DOTA_IDLE_IMPATIENT = 0x664,
+	ACT_DOTA_SHARPEN_WEAPON = 0x665,
+	ACT_DOTA_SHARPEN_WEAPON_OUT = 0x666,
+	ACT_DOTA_IDLE_SLEEPING_END = 0x667,
+	ACT_DOTA_BRIDGE_DESTROY = 0x668,
+	ACT_DOTA_TAUNT_SNIPER = 0x669,
+	ACT_DOTA_DEATH_BY_SNIPER = 0x66a,
+	ACT_DOTA_LOOK_AROUND = 0x66b,
+	ACT_DOTA_CAGED_CREEP_RAGE = 0x66c,
+	ACT_DOTA_CAGED_CREEP_RAGE_OUT = 0x66d,
+	ACT_DOTA_CAGED_CREEP_SMASH = 0x66e,
+	ACT_DOTA_CAGED_CREEP_SMASH_OUT = 0x66f,
+	ACT_DOTA_IDLE_IMPATIENT_SWORD_TAP = 0x670,
+	ACT_DOTA_INTRO_LOOP = 0x671,
+	ACT_DOTA_BRIDGE_THREAT = 0x672,
+	ACT_DOTA_DAGON = 0x673,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL_START = 0x674,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL = 0x675,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL_END = 0x676,
+	ACT_DOTA_NIAN_PIN_START = 0x677,
+	ACT_DOTA_NIAN_PIN_LOOP = 0x678,
+	ACT_DOTA_NIAN_PIN_END = 0x679,
+	ACT_DOTA_LEAP_STUN = 0x67a,
+	ACT_DOTA_LEAP_SWIPE = 0x67b,
+	ACT_DOTA_NIAN_INTRO_LEAP = 0x67c,
+	ACT_DOTA_AREA_DENY = 0x67d,
+	ACT_DOTA_NIAN_PIN_TO_STUN = 0x67e,
+	ACT_DOTA_RAZE_1 = 0x67f,
+	ACT_DOTA_RAZE_2 = 0x680,
+	ACT_DOTA_RAZE_3 = 0x681,
+	ACT_DOTA_UNDYING_DECAY = 0x682,
+	ACT_DOTA_UNDYING_SOUL_RIP = 0x683,
+	ACT_DOTA_UNDYING_TOMBSTONE = 0x684,
+	ACT_DOTA_WHIRLING_AXES_RANGED = 0x685,
+	ACT_DOTA_SHALLOW_GRAVE = 0x686,
+	ACT_DOTA_COLD_FEET = 0x687,
+	ACT_DOTA_ICE_VORTEX = 0x688,
+	ACT_DOTA_CHILLING_TOUCH = 0x689,
+	ACT_DOTA_ENFEEBLE = 0x68a,
+	ACT_DOTA_FATAL_BONDS = 0x68b,
+	ACT_DOTA_MIDNIGHT_PULSE = 0x68c,
+	ACT_DOTA_ANCESTRAL_SPIRIT = 0x68d,
+	ACT_DOTA_THUNDER_STRIKE = 0x68e,
+	ACT_DOTA_KINETIC_FIELD = 0x68f,
+	ACT_DOTA_STATIC_STORM = 0x690,
+	ACT_DOTA_MINI_TAUNT = 0x691,
+	ACT_DOTA_ARCTIC_BURN_END = 0x692,
+	ACT_DOTA_LOADOUT_RARE = 0x693,
+	ACT_DOTA_SWIM = 0x694,
+	ACT_DOTA_FLEE = 0x695,
+	ACT_DOTA_TROT = 0x696,
+	ACT_DOTA_SHAKE = 0x697,
+	ACT_DOTA_SWIM_IDLE = 0x698,
+	ACT_DOTA_WAIT_IDLE = 0x699,
+	ACT_DOTA_GREET = 0x69a,
+	ACT_DOTA_TELEPORT_COOP_START = 0x69b,
+	ACT_DOTA_TELEPORT_COOP_WAIT = 0x69c,
+	ACT_DOTA_TELEPORT_COOP_END = 0x69d,
+	ACT_DOTA_TELEPORT_COOP_EXIT = 0x69e,
+	ACT_DOTA_SHOPKEEPER_PET_INTERACT = 0x69f,
+	ACT_DOTA_ITEM_PICKUP = 0x6a0,
+	ACT_DOTA_ITEM_DROP = 0x6a1,
+	ACT_DOTA_CAPTURE_PET = 0x6a2,
+	ACT_DOTA_PET_WARD_OBSERVER = 0x6a3,
+	ACT_DOTA_PET_WARD_SENTRY = 0x6a4,
+	ACT_DOTA_PET_LEVEL = 0x6a5,
+	ACT_DOTA_CAST_BURROW_END = 0x6a6,
+	ACT_DOTA_LIFESTEALER_ASSIMILATE = 0x6a7,
+	ACT_DOTA_LIFESTEALER_EJECT = 0x6a8,
+	ACT_DOTA_ATTACK_EVENT_BASH = 0x6a9,
+	ACT_DOTA_CAPTURE_RARE = 0x6aa,
+	ACT_DOTA_AW_MAGNETIC_FIELD = 0x6ab,
+	ACT_DOTA_CAST_GHOST_SHIP = 0x6ac,
+	ACT_DOTA_FXANIM = 0x6ad,
+	ACT_DOTA_VICTORY_START = 0x6ae,
+	ACT_DOTA_DEFEAT_START = 0x6af,
+	ACT_DOTA_DP_SPIRIT_SIPHON = 0x6b0,
+	ACT_DOTA_TRICKS_END = 0x6b1,
+	ACT_DOTA_ES_STONE_CALLER = 0x6b2,
+	ACT_DOTA_MK_STRIKE = 0x6b3,
+	ACT_DOTA_VERSUS = 0x6b4,
+	ACT_DOTA_CAPTURE_CARD = 0x6b5,
+	ACT_DOTA_MK_SPRING_SOAR = 0x6b6,
+	ACT_DOTA_MK_SPRING_END = 0x6b7,
+	ACT_DOTA_MK_TREE_SOAR = 0x6b8,
+	ACT_DOTA_MK_TREE_END = 0x6b9,
+	ACT_DOTA_MK_FUR_ARMY = 0x6ba,
+	ACT_DOTA_MK_SPRING_CAST = 0x6bb,
+	ACT_DOTA_NECRO_GHOST_SHROUD = 0x6bc,
+	ACT_DOTA_OVERRIDE_ARCANA = 0x6bd,
+	ACT_DOTA_SLIDE = 0x6be,
+	ACT_DOTA_SLIDE_LOOP = 0x6bf,
+	ACT_DOTA_GENERIC_CHANNEL_1 = 0x6c0,
+	ACT_DOTA_GS_SOUL_CHAIN = 0x6c1,
+	ACT_DOTA_GS_INK_CREATURE = 0x6c2,
+	ACT_DOTA_TRANSITION = 0x6c3,
+	ACT_DOTA_BLINK_DAGGER = 0x6c4,
+	ACT_DOTA_BLINK_DAGGER_END = 0x6c5,
+	ACT_DOTA_CUSTOM_TOWER_ATTACK = 0x6c6,
+	ACT_DOTA_CUSTOM_TOWER_IDLE = 0x6c7,
+	ACT_DOTA_CUSTOM_TOWER_DIE = 0x6c8,
+	ACT_DOTA_CAST_COLD_SNAP_ORB = 0x6c9,
+	ACT_DOTA_CAST_GHOST_WALK_ORB = 0x6ca,
+	ACT_DOTA_CAST_TORNADO_ORB = 0x6cb,
+	ACT_DOTA_CAST_EMP_ORB = 0x6cc,
+	ACT_DOTA_CAST_ALACRITY_ORB = 0x6cd,
+	ACT_DOTA_CAST_CHAOS_METEOR_ORB = 0x6ce,
+	ACT_DOTA_CAST_SUN_STRIKE_ORB = 0x6cf,
+	ACT_DOTA_CAST_FORGE_SPIRIT_ORB = 0x6d0,
+	ACT_DOTA_CAST_ICE_WALL_ORB = 0x6d1,
+	ACT_DOTA_CAST_DEAFENING_BLAST_ORB = 0x6d2,
+	ACT_DOTA_NOTICE = 0x6d3,
+	ACT_DOTA_ANESSIX_CAST_GOLEM = 0x6d4,
+	ACT_DOTA_ANESSIX_CAST_GOLEM_CRASH = 0x6d5,
+	ACT_DOTA_FAIL_CAST = 0x6d6,
+	ACT_DAC_BC_IDLE = 0x6d7,
+	ACT_DOTA_UNDERLORD_EMPOWER = 0x6d8,
+	ACT_DAC_PORTRAIT_IDLE = 0x6d9,
+	ACT_DAC_PORTRAIT_IDLE_HAPPY = 0x6da,
+	ACT_DAC_PORTRAIT_IDLE_SAD = 0x6db,
+	ACT_DAC_CHANNEL_LOOP = 0x6dc,
+	ACT_DAC_ATTACK_IDLE = 0x6dd,
+	ACT_DAC_SELECT_FACING_IDLE = 0x6de,
+	ACT_DAC_UNDERLORD_SELECTED = 0x6df,
+	ACT_DAC_ENNO_GRAPPLE_OUT = 0x6e0,
+	ACT_DAC_ENNO_GRAPPLE_IN = 0x6e1,
+	ACT_DAC_ENNO_AIRBRAWL_FIGHT = 0x6e2,
+	ACT_DAC_ENNO_AIRBRAWL_END = 0x6e3,
+	ACT_DAC_ENNO_AIRBRAWL_START = 0x6e4,
+	ACT_DAC_ENNO_STEAL = 0x6e5,
+	ACT_DAC_ENNO_AIRBRAWL_FIGHT_AWAY = 0x6e6,
+	ACT_DAC_VICTORYDANCE_1 = 0x6e7,
+	ACT_DAC_VICTORYDANCE_2 = 0x6e8,
+	ACT_DAC_VICTORYDANCE_3 = 0x6e9,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelHorizontalAlign_t : uint32_t
+{
+	WORLDTEXT_HORIZONTAL_ALIGN_LEFT = 0x0,
+	WORLDTEXT_HORIZONTAL_ALIGN_CENTER = 0x1,
+	WORLDTEXT_HORIZONTAL_ALIGN_RIGHT = 0x2,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelOrientation_t : uint32_t
+{
+	WORLDTEXT_ORIENTATION_DEFAULT = 0x0,
+	WORLDTEXT_ORIENTATION_FACEUSER = 0x1,
+	WORLDTEXT_ORIENTATION_FACEUSER_UPRIGHT = 0x2,
+};
+
+// Aligment: 4
+// Size: 3
+enum class EconEntityParticleDisableMode_t : uint32_t
+{
+	ECON_ENTITY_PARTICLES_ENABLED = 0x0,
+	ECON_ENTITY_PARTICLES_DISABLED = 0x1,
+	ECON_ENTITY_PARTICLES_DISABLED_BUT_PLAY_ENDCAPS_TO_STOP = 0x2,
+};
+
+// Aligment: 4
+// Size: 3
+enum class Explosions : uint32_t
+{
+	expRandom = 0x0,
+	expDirected = 0x1,
+	expUsePrecise = 0x2,
+};
+
 // Aligment: 4
 // Size: 5
 enum class TimelineCompression_t : uint32_t
@@ -2099,6 +4346,15 @@ enum class TimelineCompression_t : uint32_t
 	TIMELINE_COMPRESSION_TOTAL = 0x4,
 };
 
+// Aligment: 4
+// Size: 3
+enum class LessonPanelLayoutFileTypes_t : uint32_t
+{
+	LAYOUT_HAND_DEFAULT = 0x0,
+	LAYOUT_WORLD_DEFAULT = 0x1,
+	LAYOUT_CUSTOM = 0x2,
+};
+
 // Aligment: 4
 // Size: 2
 enum class SceneOnPlayerDeath_t : uint32_t
@@ -2135,6 +4391,21 @@ enum class PostProcessParameterNames_t : uint32_t
 	POST_PROCESS_PARAMETER_COUNT = 0xc,
 };
 
+// Aligment: 4
+// Size: 9
+enum class NPC_STATE : uint32_t
+{
+	NPC_STATE_INVALID = 0xffffffffffffffff,
+	NPC_STATE_NONE = 0x0,
+	NPC_STATE_IDLE = 0x1,
+	NPC_STATE_ALERT = 0x2,
+	NPC_STATE_COMBAT = 0x3,
+	NPC_STATE_SCRIPT = 0x4,
+	NPC_STATE_PLAYDEAD = 0x5,
+	NPC_STATE_PRONE = 0x6,
+	NPC_STATE_DEAD = 0x7,
+};
+
 // Aligment: 18
 // Size: 336
 class CSchemaSystemInternalRegistration
@@ -2168,6 +4439,14 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDOTAPatchNotesList
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeCEntityLump
@@ -2208,6 +4487,22 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCPanoramaDynamicImages
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeIVectorGraphic
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeIMaterial2
@@ -2224,14 +4519,6 @@ public:
 // <no members described>
 };
 
-// Aligment: 0
-// Size: 1
-class InfoForResourceTypeCGenericDataResource
-{
-public:
-// <no members described>
-};
-
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeCVMixListResource
@@ -2256,6 +4543,22 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCPanoramaStyle
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDACGameDefsData
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeCVSoundEventScriptList
@@ -2274,7 +4577,7 @@ public:
 
 // Aligment: 0
 // Size: 1
-class InfoForResourceTypeIAnimationSubGraph
+struct InfoForResourceTypeVSound_t
 {
 public:
 // <no members described>
@@ -2282,7 +4585,7 @@ public:
 
 // Aligment: 0
 // Size: 1
-struct InfoForResourceTypeVSound_t
+class InfoForResourceTypeCPanoramaLayout
 {
 public:
 // <no members described>
@@ -2364,8 +4667,8 @@ public:
 // <no members described>
 };
 
-// Aligment: 35
-// Size: 264
+// Aligment: 36
+// Size: 260
 struct LightDesc_t
 {
 public:
@@ -2379,31 +4682,32 @@ public:
 	float m_Attenuation2; // 0x2c
 	float m_Theta; // 0x30
 	float m_Phi; // 0x34
-	int32_t m_nLightGroupCount; // 0x40
-	CUtlStringToken[1] m_lightGroups; // 0x44
-	bool m_bCastShadows; // 0x48
-	int32_t m_nShadowWidth; // 0x4c
-	int32_t m_nShadowHeight; // 0x50
-	int32_t m_nShadowCascadeCount; // 0x54
-	float32[4] m_flShadowCascadeDistance; // 0x58
-	int32[4] m_nShadowCascadeResolution; // 0x68
-	bool m_bUsesIndexedBakedLighting; // 0x78
-	int32_t m_nBakeLightIndex; // 0x7c
-	float m_flBakeLightIndexScale; // 0x80
-	int32_t m_nFogLightingMode; // 0x84
-	bool m_bRenderDiffuse; // 0x88
-	bool m_bRenderSpecular; // 0x89
-	bool m_bRenderTransmissive; // 0x8a
-	int32_t m_nPriority; // 0x8c
-	LightSourceShape_t m_Shape; // 0x90
-	float m_flLightSourceDim0; // 0x94
-	float m_flLightSourceDim1; // 0x98
-	float m_flLightSourceSize0; // 0x9c
-	float m_flLightSourceSize1; // 0xa0
-	float m_flPrecomputedMaxRange; // 0xa4
-	float m_flFogContributionStength; // 0xa8
-	float m_flNearClipPlane; // 0xac
-	Vector m_vecUp; // 0xc8
+	CUtlStringToken m_lightCookie; // 0x38
+	int32_t m_nLightGroupCount; // 0x3c
+	CUtlStringToken[1] m_lightGroups; // 0x40
+	bool m_bCastShadows; // 0x44
+	int32_t m_nShadowWidth; // 0x48
+	int32_t m_nShadowHeight; // 0x4c
+	int32_t m_nShadowCascadeCount; // 0x50
+	float32[4] m_flShadowCascadeDistance; // 0x54
+	int32[4] m_nShadowCascadeResolution; // 0x64
+	bool m_bUsesIndexedBakedLighting; // 0x74
+	int32_t m_nBakeLightIndex; // 0x78
+	float m_flBakeLightIndexScale; // 0x7c
+	int32_t m_nFogLightingMode; // 0x80
+	bool m_bRenderDiffuse; // 0x84
+	bool m_bRenderSpecular; // 0x85
+	bool m_bRenderTransmissive; // 0x86
+	int32_t m_nPriority; // 0x88
+	LightSourceShape_t m_Shape; // 0x8c
+	float m_flLightSourceDim0; // 0x90
+	float m_flLightSourceDim1; // 0x94
+	float m_flLightSourceSize0; // 0x98
+	float m_flLightSourceSize1; // 0x9c
+	float m_flPrecomputedMaxRange; // 0xa0
+	float m_flFogContributionStength; // 0xa4
+	float m_flNearClipPlane; // 0xa8
+	Vector m_vecUp; // 0xc4
 };
 
 // Aligment: 0
@@ -2414,6 +4718,14 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCPanoramaScript
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeCChoreoSceneFileData
@@ -2430,6 +4742,14 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDotaItemDefinitionResource
+{
+public:
+// <no members described>
+};
+
 // Aligment: 2
 // Size: 32
 struct SheetFrameImage_t
@@ -2552,7 +4872,7 @@ public:
 };
 
 // Aligment: 8
-// Size: 112
+// Size: 120
 struct EntComponentInfo_t
 {
 public:
@@ -2563,7 +4883,7 @@ public:
 	char* m_pNetworkDataReferencedPtrPropDescription; // 0x28
 	int32_t m_nRuntimeIndex; // 0x30
 	uint32_t m_nFlags; // 0x34
-	CEntityComponentHelper* m_pBaseClassComponentHelper; // 0x68
+	CEntityComponentHelper* m_pBaseClassComponentHelper; // 0x70
 };
 
 // Aligment: 0
@@ -2641,8 +4961,8 @@ public:
 	float m_flFrameTime; // 0x2c
 };
 
-// Aligment: 5
-// Size: 72
+// Aligment: 4
+// Size: 64
 struct EventClientPreOutput_t
 {
 public:
@@ -2650,7 +4970,6 @@ public:
 	double m_flRenderTime; // 0x28
 	double m_flRenderFrameTime; // 0x30
 	double m_flRenderFrameTimeUnbounded; // 0x38
-	bool m_bRenderOnly; // 0x40
 };
 
 // Aligment: 0
@@ -2685,15 +5004,14 @@ public:
 // <no members described>
 };
 
-// Aligment: 4
+// Aligment: 3
 // Size: 64
 struct EventAdvanceTick_t : public EventSimulate_t
 {
 public:
 	int32_t m_nCurrentTick; // 0x30
-	int32_t m_nCurrentTickThisFrame; // 0x34
-	int32_t m_nTotalTicksThisFrame; // 0x38
-	int32_t m_nTotalTicks; // 0x3c
+	int32_t m_nTotalTicksThisFrame; // 0x34
+	int32_t m_nTotalTicks; // 0x38
 };
 
 // Aligment: 0
@@ -2713,7 +5031,7 @@ public:
 };
 
 // Aligment: 11
-// Size: 112
+// Size: 120
 class CEntityIdentity
 {
 public:
@@ -2722,16 +5040,16 @@ public:
 	int32_t m_nameStringableIndex; // 0x14
 	CUtlSymbolLarge m_name; // 0x18
 	CUtlSymbolLarge m_designerName; // 0x20
-	uint32_t m_flags; // 0x28
-	uint32_t m_fDataObjectTypes; // 0x30
+	uint32_t m_flags; // 0x30
+	uint32_t m_fDataObjectTypes; // 0x38
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	ChangeAccessorFieldPathIndex_t m_PathIndex; // 0x34
-	CEntityIdentity* m_pPrev; // 0x48
-	CEntityIdentity* m_pNext; // 0x50
-	CEntityIdentity* m_pPrevByClass; // 0x58
-	CEntityIdentity* m_pNextByClass; // 0x60
-	V_uuid_t* m_pId; // 0x68
+	ChangeAccessorFieldPathIndex_t m_PathIndex; // 0x3c
+	CEntityIdentity* m_pPrev; // 0x50
+	CEntityIdentity* m_pNext; // 0x58
+	CEntityIdentity* m_pPrevByClass; // 0x60
+	CEntityIdentity* m_pNextByClass; // 0x68
+	V_uuid_t* m_pId; // 0x70
 };
 
 // Aligment: 0
@@ -2758,12 +5076,12 @@ public:
 	int32_t m_nCount; // 0x0
 };
 
-// Aligment: 0
-// Size: 1
+// Aligment: 1
+// Size: 4
 struct EventProfileStorageAvailable_t
 {
 public:
-// <no members described>
+	int32_t m_nSplitScreenSlot; // 0x0
 };
 
 // Aligment: 0
@@ -2782,6 +5100,14 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 8
+class IRecipientFilter
+{
+public:
+// <no members described>
+};
+
 // Aligment: 1
 // Size: 4
 struct EventAppShutdown_t
@@ -2826,8 +5152,8 @@ public:
 	uint32_t m_nVRDisplayID; // 0x2c
 };
 
-// Aligment: 5
-// Size: 64
+// Aligment: 4
+// Size: 56
 struct EventClientPostOutput_t
 {
 public:
@@ -2835,7 +5161,6 @@ public:
 	double m_flRenderTime; // 0x28
 	float m_flRenderFrameTime; // 0x30
 	float m_flRenderFrameTimeUnbounded; // 0x34
-	bool m_bRenderOnly; // 0x38
 };
 
 // Aligment: 0
@@ -2899,7 +5224,7 @@ public:
 // <no members described>
 };
 
-// Aligment: 5
+// Aligment: 4
 // Size: 56
 struct EventClientOutput_t
 {
@@ -2908,7 +5233,6 @@ public:
 	float m_flRenderTime; // 0x28
 	float m_flRealTime; // 0x2c
 	float m_flRenderFrameTimeUnbounded; // 0x30
-	bool m_bRenderOnly; // 0x34
 };
 
 // Aligment: 1
@@ -2927,15 +5251,14 @@ public:
 	CVariantBase< CVariantDefaultAllocator > m_Value; // 0x18
 };
 
-// Aligment: 4
+// Aligment: 3
 // Size: 64
 struct EventPostAdvanceTick_t : public EventSimulate_t
 {
 public:
 	int32_t m_nCurrentTick; // 0x30
-	int32_t m_nCurrentTickThisFrame; // 0x34
-	int32_t m_nTotalTicksThisFrame; // 0x38
-	int32_t m_nTotalTicks; // 0x3c
+	int32_t m_nTotalTicksThisFrame; // 0x34
+	int32_t m_nTotalTicks; // 0x38
 };
 
 // Aligment: 3
@@ -3033,18 +5356,6 @@ public:
 	float m_flWhitePoint; // 0x1c
 };
 
-// Aligment: 5
-// Size: 20
-struct PostProcessingLocalContrastParameters_t
-{
-public:
-	float m_flLocalContrastStrength; // 0x0
-	float m_flLocalContrastEdgeStrength; // 0x4
-	float m_flLocalContrastVignetteStart; // 0x8
-	float m_flLocalContrastVignetteEnd; // 0xc
-	float m_flLocalContrastVignetteBlur; // 0x10
-};
-
 // Aligment: 6
 // Size: 36
 struct PostProcessingVignetteParameters_t
@@ -3066,8 +5377,8 @@ public:
 	int32_t m_nValue; // 0x8
 };
 
-// Aligment: 10
-// Size: 248
+// Aligment: 8
+// Size: 224
 struct PostProcessingResource_t
 {
 public:
@@ -3077,10 +5388,8 @@ public:
 	PostProcessingBloomParameters_t m_bloomParams; // 0x28
 	bool m_bHasVignetteParams; // 0x98
 	PostProcessingVignetteParameters_t m_vignetteParams; // 0x9c
-	bool m_bHasLocalContrastParams; // 0xc0
-	PostProcessingLocalContrastParameters_t m_localConstrastParams; // 0xc4
-	int32_t m_nColorCorrectionVolumeDim; // 0xd8
-	CUtlBinaryBlock m_colorCorrectionVolumeData; // 0xe0
+	int32_t m_nColorCorrectionVolumeDim; // 0xc0
+	CUtlBinaryBlock m_colorCorrectionVolumeData; // 0xc8
 };
 
 // Aligment: 1
@@ -3199,16 +5508,16 @@ public:
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CPathHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Stopping Radius"
-	float m_flStoppingRadius; // 0x48
+	float m_flStoppingRadius; // 0x3c
 	// MPropertyFriendlyName "Stopping Min Speed Scale"
-	float m_flStoppingSpeedScale; // 0x4c
+	float m_flStoppingSpeedScale; // 0x40
 };
 
 // Aligment: 4
@@ -3245,77 +5554,59 @@ public:
 	float m_end; // 0x18
 };
 
-// Aligment: 4
-// Size: 48
-class CClipProperties
-{
-public:
-	// MPropertyFriendlyName "Name"
-	// MPropertyAttrStateCallback
-	CUtlString m_name; // 0x18
-	// MPropertyFriendlyName "Frame Count"
-	// MPropertyAttrStateCallback
-	int32_t m_frames; // 0x20
-	// MPropertyFriendlyName "Frame Rate"
-	// MPropertyAttrStateCallback
-	float m_flFrameRate; // 0x24
-	// MPropertyFriendlyName "Duration"
-	// MPropertyAttrStateCallback
-	float m_flDuration; // 0x28
-};
-
 // Aligment: 10
-// Size: 152
+// Size: 136
 class CBlend2DAnimNode : public CAnimNodeBase
 {
 public:
-	// MPropertySuppressField
-	CUtlVector< CBlend2DItem > m_items; // 0x50
-	// MPropertyFriendlyName "Horizontal Axis"
-	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendSourceX; // 0x68
-	// MPropertyFriendlyName "Horizontal Parameter"
+	// MPropertyFriendlyName "Blend Items"
+	// MPropertyAutoExpandGroup
+	CUtlVector< CBlend2DItem > m_items; // 0x38
+	// MPropertyFriendlyName "Blend Source"
+	// MPropertyGroupName "Horizontal Axis"
+	AnimValueSource m_blendSourceX; // 0x50
+	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	// MPropertyAttrStateCallback
-	AnimParamID m_paramX; // 0x6c
-	// MPropertyFriendlyName "Vertical Axis"
-	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendSourceY; // 0x70
-	// MPropertyFriendlyName "Vertical Parameter"
+	// MPropertyGroupName "Horizontal Axis"
+	AnimParamID m_paramX; // 0x54
+	// MPropertyFriendlyName "Blend Source"
+	// MPropertyGroupName "Vertical Axis"
+	AnimValueSource m_blendSourceY; // 0x58
+	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	// MPropertyAttrStateCallback
-	AnimParamID m_paramY; // 0x74
+	// MPropertyGroupName "Vertical Axis"
+	AnimParamID m_paramY; // 0x5c
+	// MPropertyFriendlyName "Blend Mode"
+	Blend2DMode m_eBlendNode; // 0x60
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x78
+	bool m_bLoop; // 0x64
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x79
-	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x7a
+	bool m_bLockBlendOnReset; // 0x65
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x7c
+	float m_playbackSpeed; // 0x68
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x80
+	CAnimInputDamping m_damping; // 0x70
 };
 
 // Aligment: 2
-// Size: 80
+// Size: 64
 class CSpeedScaleAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_param; // 0x48
+	AnimParamID m_param; // 0x3c
 };
 
 // Aligment: 1
-// Size: 72
+// Size: 64
 class CChoreoAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 };
 
 // Aligment: 13
@@ -3380,101 +5671,99 @@ public:
 	float m_flWeight; // 0x20
 };
 
-// Aligment: 12
-// Size: 160
+// Aligment: 11
+// Size: 144
 class CAimMatrixAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x48
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x50
+	CUtlString m_sequenceName; // 0x40
 	// MPropertyFriendlyName "Angle Increment"
-	float m_fAngleIncrement; // 0x58
-	// MPropertyFriendlyName "Can Look Straight Down"
-	bool m_bCanLookStraightDown; // 0x5c
+	float m_fAngleIncrement; // 0x48
 	// MPropertyFriendlyName "Target"
-	AnimVectorSource m_target; // 0x60
+	AnimVectorSource m_target; // 0x4c
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x64
+	AnimParamID m_param; // 0x50
 	// MPropertyFriendlyName "Aim Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x68
+	CUtlString m_attachmentName; // 0x58
 	// MPropertyFriendlyName "Blend Mode"
-	AimMatrixBlendMode m_blendMode; // 0x70
+	AimMatrixBlendMode m_blendMode; // 0x60
 	// MPropertyFriendlyName "Bone Mask"
 	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_boneMaskName; // 0x78
+	CUtlString m_boneMaskName; // 0x68
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0x80
+	bool m_bResetBase; // 0x70
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x81
+	bool m_bLockWhenWaning; // 0x71
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x88
+	CAnimInputDamping m_damping; // 0x78
 };
 
 // Aligment: 24
-// Size: 176
+// Size: 168
 class CHitReactAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Minimum Delay Between Hits"
-	float m_flMinDelayBetweenHits; // 0x48
+	float m_flMinDelayBetweenHits; // 0x3c
 	// MPropertyFriendlyName "Trigger Parameter"
 	// MPropertyAttributeChoiceName "BoolParameter"
-	AnimParamID m_triggerParam; // 0x4c
+	AnimParamID m_triggerParam; // 0x40
 	// MPropertyFriendlyName "Hit Bone Parameter"
 	// MPropertyAttributeChoiceName "IntParameter"
-	AnimParamID m_hitBoneParam; // 0x50
+	AnimParamID m_hitBoneParam; // 0x44
 	// MPropertyFriendlyName "Hit Offset Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_hitOffsetParam; // 0x54
+	AnimParamID m_hitOffsetParam; // 0x48
 	// MPropertyFriendlyName "Hit Direction Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_hitDirectionParam; // 0x58
+	AnimParamID m_hitDirectionParam; // 0x4c
 	// MPropertyFriendlyName "Hit Strength Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_hitStrengthParam; // 0x5c
+	AnimParamID m_hitStrengthParam; // 0x50
 	// MPropertyFriendlyName "Bone Weights"
 	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_weightListName; // 0x60
+	CUtlString m_weightListName; // 0x58
 	// MPropertyFriendlyName "Hip Bone"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_hipBoneName; // 0x68
+	CUtlString m_hipBoneName; // 0x60
 	// MPropertyFriendlyName "Hip Translation Scale"
-	float m_flHipBoneTranslationScale; // 0x70
+	float m_flHipBoneTranslationScale; // 0x68
 	// MPropertyFriendlyName "Number of bone effected"
-	int32_t m_nEffectedBoneCount; // 0x74
+	int32_t m_nEffectedBoneCount; // 0x6c
 	// MPropertyFriendlyName "Max Impact Force"
-	float m_flMaxImpactForce; // 0x78
+	float m_flMaxImpactForce; // 0x70
 	// MPropertyFriendlyName "Min Impact Force"
-	float m_flMinImpactForce; // 0x7c
+	float m_flMinImpactForce; // 0x74
 	// MPropertyFriendlyName "Whip Impact Scale"
-	float m_flWhipImpactScale; // 0x80
+	float m_flWhipImpactScale; // 0x78
 	// MPropertyFriendlyName "Counter Rotation Scale"
-	float m_flCounterRotationScale; // 0x84
+	float m_flCounterRotationScale; // 0x7c
 	// MPropertyFriendlyName "Distance Fade Scale"
-	float m_flDistanceFadeScale; // 0x88
+	float m_flDistanceFadeScale; // 0x80
 	// MPropertyFriendlyName "Propagation Scale"
-	float m_flPropagationScale; // 0x8c
+	float m_flPropagationScale; // 0x84
 	// MPropertyFriendlyName "Whip Delay Time"
-	float m_flWhipDelay; // 0x90
+	float m_flWhipDelay; // 0x88
 	// MPropertyFriendlyName "Spring Strength"
-	float m_flSpringStrength; // 0x94
+	float m_flSpringStrength; // 0x8c
 	// MPropertyFriendlyName "Whip Spring Strength"
-	float m_flWhipSpringStrength; // 0x98
+	float m_flWhipSpringStrength; // 0x90
 	// MPropertyFriendlyName "Hip Dip Spring Strength"
-	float m_flHipDipSpringStrength; // 0x9c
+	float m_flHipDipSpringStrength; // 0x94
 	// MPropertyFriendlyName "Hip Dip Scale"
-	float m_flHipDipImpactScale; // 0xa0
+	float m_flHipDipImpactScale; // 0x98
 	// MPropertyFriendlyName "Hip Dip Delay Time"
-	float m_flHipDipDelay; // 0xa4
+	float m_flHipDipDelay; // 0x9c
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0xa8
+	bool m_bResetBase; // 0xa0
 };
 
 // Aligment: 2
@@ -3532,65 +5821,63 @@ public:
 	CUtlString m_boneName; // 0x28
 };
 
-// Aligment: 14
-// Size: 136
+// Aligment: 13
+// Size: 128
 class CFollowPathAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Blend Out Time"
-	float m_flBlendOutTime; // 0x48
+	float m_flBlendOutTime; // 0x3c
 	// MPropertyFriendlyName "Block Non-Path Movement"
-	bool m_bBlockNonPathMovement; // 0x4c
-	// MPropertyFriendlyName "Stop Feet at Goal"
-	bool m_bStopFeetAtGoal; // 0x4d
+	bool m_bBlockNonPathMovement; // 0x40
 	// MPropertyFriendlyName "Enable Speed Scaling"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttrChangeCallback
-	bool m_bScaleSpeed; // 0x4e
+	bool m_bScaleSpeed; // 0x41
 	// MPropertyFriendlyName "Scale"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flScale; // 0x50
+	float m_flScale; // 0x44
 	// MPropertyFriendlyName "Min Angle"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 180"
 	// MPropertyAttrStateCallback
-	float m_flMinAngle; // 0x54
+	float m_flMinAngle; // 0x48
 	// MPropertyFriendlyName "Max Angle"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 180"
 	// MPropertyAttrStateCallback
-	float m_flMaxAngle; // 0x58
+	float m_flMaxAngle; // 0x4c
 	// MPropertyFriendlyName "Blend Time"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttrStateCallback
-	float m_flSpeedScaleBlending; // 0x5c
+	float m_flSpeedScaleBlending; // 0x50
 	// MPropertyFriendlyName "Enable Turn to Face"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrChangeCallback
-	bool m_bTurnToFace; // 0x60
+	bool m_bTurnToFace; // 0x54
 	// MPropertyFriendlyName "Target"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimValueSource m_facingTarget; // 0x64
+	AnimValueSource m_facingTarget; // 0x58
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x68
+	AnimParamID m_param; // 0x5c
 	// MPropertyFriendlyName "Offset"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttributeRange "-180 180"
 	// MPropertyAttrStateCallback
-	float m_flTurnToFaceOffset; // 0x6c
+	float m_flTurnToFaceOffset; // 0x60
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_damping; // 0x70
+	CAnimInputDamping m_damping; // 0x68
 };
 
 // Aligment: 1
@@ -3625,18 +5912,18 @@ public:
 };
 
 // Aligment: 4
-// Size: 120
+// Size: 112
 class CNeuralNetAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Weights File"
-	CUtlString m_weightsFile; // 0x40
+	CUtlString m_weightsFile; // 0x38
 	// MPropertyFriendlyName "Test Input File"
-	CUtlString m_testInputFile; // 0x48
+	CUtlString m_testInputFile; // 0x40
 	// MPropertyFriendlyName "Bone Map File"
-	CUtlString m_boneMapFile; // 0x50
+	CUtlString m_boneMapFile; // 0x48
 	// MPropertyFriendlyName "Sensor Range File"
-	CUtlString m_sensorRangeFile; // 0x58
+	CUtlString m_sensorRangeFile; // 0x50
 };
 
 // Aligment: 1
@@ -3654,7 +5941,7 @@ class CBlendNodeChild
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x0
+	AnimNodeID m_nodeID; // 0x0
 	// MPropertyFriendlyName "Name"
 	CUtlString m_name; // 0x8
 	// MPropertyFriendlyName "Blend Value"
@@ -3670,40 +5957,52 @@ public:
 };
 
 // Aligment: 1
-// Size: 48
+// Size: 200
 class CAnimParameterList
 {
 public:
-	CUtlVector< CSmartPtr< CAnimParameterBase > > m_Parameters; // 0x18
+	CUtlVector< CSmartPtr< CAnimParameterBase > > m_Parameters; // 0xb0
+};
+
+// Aligment: 2
+// Size: 40
+class CBaseAnimMotor
+{
+public:
+	// MPropertyFriendlyName "Name"
+	// MPropertySortPriority "100"
+	CUtlString m_name; // 0x18
+	// MPropertyHideField
+	bool m_bDefault; // 0x20
 };
 
 // Aligment: 9
-// Size: 136
+// Size: 128
 class CBlendAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Blend Items"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CBlendNodeChild > m_children; // 0x48
+	CUtlVector< CBlendNodeChild > m_children; // 0x40
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendValueSource; // 0x60
+	AnimValueSource m_blendValueSource; // 0x58
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x64
+	AnimParamID m_param; // 0x5c
 	// MPropertyFriendlyName "Blend Key Values"
-	BlendKeyType m_blendKeyType; // 0x68
+	BlendKeyType m_blendKeyType; // 0x60
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x6c
+	bool m_bLockBlendOnReset; // 0x64
 	// MPropertyFriendlyName "Sync Cycles"
-	bool m_bSyncCycles; // 0x6d
+	bool m_bSyncCycles; // 0x65
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x6e
+	bool m_bLoop; // 0x66
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x6f
+	bool m_bLockWhenWaning; // 0x67
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x70
+	CAnimInputDamping m_damping; // 0x68
 };
 
 // Aligment: 1
@@ -3734,17 +6033,6 @@ public:
 	CUtlVector< CSeqPoseSetting > m_poseSettingArray; // 0x78
 };
 
-// Aligment: 1
-// Size: 88
-class CGroupInputAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyFriendlyName "External Connections"
-	// MPropertyAutoExpandGroup
-	// MPropertyAttrStateCallback
-	CUtlVector< CConnectionProxyItem > m_proxyItems; // 0x40
-};
-
 // Aligment: 1
 // Size: 40
 class CAnimStateConditionBase
@@ -3764,17 +6052,6 @@ public:
 	Color m_Color; // 0x40
 };
 
-// Aligment: 1
-// Size: 88
-class CGroupOutputAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyFriendlyName "External Connections"
-	// MPropertyAutoExpandGroup
-	// MPropertyAttrStateCallback
-	CUtlVector< CConnectionProxyItem > m_proxyItems; // 0x40
-};
-
 // Aligment: 14
 // Size: 432
 class CAnimDesc
@@ -3796,14 +6073,6 @@ public:
 	CAnimSequenceParams m_sequenceParams; // 0x1a8
 };
 
-// Aligment: 1
-// Size: 48
-class CAnimClipPropertiesManager
-{
-public:
-	CUtlVector< CSmartPtr< CClipProperties > > m_Clips; // 0x18
-};
-
 // Aligment: 4
 // Size: 12
 class CSeqIKLock
@@ -3815,24 +6084,12 @@ public:
 	bool m_bBonesOrientedAlongPositiveX; // 0xa
 };
 
-// Aligment: 2
-// Size: 128
-class CGroupAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	AnimNodeID m_inputNodeID; // 0x48
-	// MPropertyHideField
-	AnimNodeID m_outputNodeID; // 0x4c
-};
-
-// Aligment: 1
-// Size: 40
+// Aligment: 0
+// Size: 32
 class CAnimGraphGeneralSettings : public CAnimGraphSettingsGroup
 {
 public:
-	// MPropertyFriendlyName "Grid Snapping"
-	int32_t m_iGridSnap; // 0x20
+// <no members described>
 };
 
 // Aligment: 4
@@ -3902,73 +6159,74 @@ public:
 };
 
 // Aligment: 8
-// Size: 96
+// Size: 80
 class CSubtractAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_baseInputConnection; // 0x40
+	AnimNodeID m_baseChildID; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_subtractInputConnection; // 0x48
+	AnimNodeID m_subtractChildID; // 0x3c
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x50
+	BinaryNodeTiming m_timingBehavior; // 0x40
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x54
+	float m_flTimingBlend; // 0x44
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x58
+	BinaryNodeChildOption m_footMotionTiming; // 0x48
 	// MPropertyFriendlyName "Reset Base Child"
-	bool m_bResetBase; // 0x5c
+	bool m_bResetBase; // 0x4c
 	// MPropertyFriendlyName "Reset Subtracted Child"
-	bool m_bResetSubtract; // 0x5d
+	bool m_bResetSubtract; // 0x4d
 	// MPropertyFriendlyName "Treat Translation Separately"
-	bool m_bApplyChannelsSeparately; // 0x5e
+	bool m_bApplyChannelsSeparately; // 0x4e
 };
 
 // Aligment: 6
-// Size: 88
-class CPlayerInputAnimMotor : public CAnimMotorBase
+// Size: 96
+class CPlayerInputAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
-	// MPropertyFriendlyName "Sample Times"
-	CUtlVector< float32 > m_sampleTimes; // 0x28
-	// MPropertyFriendlyName "Use Acceleration"
-	// MPropertyAttrChangeCallback
-	bool m_bUseAcceleraion; // 0x40
-	// MPropertyFriendlyName "Spring Constant"
-	// MPropertyAttrStateCallback
-	float m_flSpringConstant; // 0x44
-	// MPropertyFriendlyName "Anticipation Distance"
-	float m_flAnticipationDistance; // 0x48
+	// MPropertyFriendlyName "Anticipation Time"
+	float m_flAnticipationTime; // 0x48
 	// MPropertyFriendlyName "Anticipation Position Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
 	AnimParamID m_anticipationPosParam; // 0x4c
 	// MPropertyFriendlyName "Anticipation Heading Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	AnimParamID m_anticipationHeadingParam; // 0x50
+	// MPropertyFriendlyName "Spring Constant"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flSpringConstant; // 0x54
+	// MPropertyFriendlyName "Min Tension"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flMinSpringTension; // 0x58
+	// MPropertyFriendlyName "Max Tension"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flMaxSpringTension; // 0x5c
 };
 
 // Aligment: 6
-// Size: 88
+// Size: 72
 class CWayPointHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Start Cycle"
 	// MPropertyAttributeRange "0 1"
-	float m_flStartCycle; // 0x48
+	float m_flStartCycle; // 0x3c
 	// MPropertyFriendlyName "End Cycle"
 	// MPropertyAttributeRange "0 1"
-	float m_flEndCycle; // 0x4c
+	float m_flEndCycle; // 0x40
 	// MPropertyFriendlyName "Only align to Goals"
-	bool m_bOnlyGoals; // 0x50
+	bool m_bOnlyGoals; // 0x44
 	// MPropertyFriendlyName "Prevent Overshoot"
-	bool m_bPreventOvershoot; // 0x51
+	bool m_bPreventOvershoot; // 0x45
 	// MPropertyFriendlyName "Prevent Undershoot"
-	bool m_bPreventUndershoot; // 0x52
+	bool m_bPreventUndershoot; // 0x46
 };
 
 // Aligment: 11
@@ -3999,19 +6257,6 @@ public:
 	CUtlString m_Text; // 0x28
 };
 
-// Aligment: 3
-// Size: 24
-class CConnectionProxyItem
-{
-public:
-	// MPropertyFriendlyName "Name"
-	CUtlString m_name; // 0x0
-	// MPropertyHideField
-	AnimOutputID m_outputID; // 0x8
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0xc
-};
-
 // Aligment: 1
 // Size: 16
 class CAnimationGraphVisualizerPrimitiveBase
@@ -4021,46 +6266,46 @@ public:
 };
 
 // Aligment: 13
-// Size: 128
+// Size: 112
 class CBoneMaskAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Bone Mask"
 	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_weightListName; // 0x40
+	CUtlString m_weightListName; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_inputConnection1; // 0x48
+	AnimNodeID m_child1ID; // 0x40
 	// MPropertyHideField
-	CNodeConnection m_inputConnection2; // 0x50
+	AnimNodeID m_child2ID; // 0x44
 	// MPropertyFriendlyName "Blend Space"
-	BoneMaskBlendSpace m_blendSpace; // 0x58
+	BoneMaskBlendSpace m_blendSpace; // 0x48
 	// MPropertyFriendlyName "Use Blend Source"
 	// MPropertyAttrChangeCallback
-	bool m_bUseBlendScale; // 0x5c
+	bool m_bUseBlendScale; // 0x4c
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimValueSource m_blendValueSource; // 0x60
+	AnimValueSource m_blendValueSource; // 0x50
 	// MPropertyFriendlyName "Blend Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_blendParameter; // 0x64
+	AnimParamID m_blendParameter; // 0x54
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x68
+	BinaryNodeTiming m_timingBehavior; // 0x58
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x6c
+	float m_flTimingBlend; // 0x5c
 	// MPropertyFriendlyName "Root Motion Blend"
 	// MPropertyAttributeRange "0 1"
-	float m_flRootMotionBlend; // 0x70
+	float m_flRootMotionBlend; // 0x60
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x74
+	BinaryNodeChildOption m_footMotionTiming; // 0x64
 	// MPropertyFriendlyName "Reset Child1"
-	bool m_bResetChild1; // 0x78
+	bool m_bResetChild1; // 0x68
 	// MPropertyFriendlyName "Reset Child2"
-	bool m_bResetChild2; // 0x79
+	bool m_bResetChild2; // 0x69
 };
 
 // Aligment: 1
@@ -4072,25 +6317,15 @@ public:
 	float m_comparisonValue; // 0x2c
 };
 
-// Aligment: 0
+// Aligment: 2
 // Size: 104
-class CAnimNodeManager
-{
-public:
-// <no members described>
-};
-
-// Aligment: 3
-// Size: 112
 class CStateMachineAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimState > > m_states; // 0x50
+	CUtlVector< CSmartPtr< CAnimState > > m_states; // 0x48
 	// MPropertyFriendlyName "Block Tags from Waning States"
-	bool m_bBlockWaningTags; // 0x68
-	// MPropertyFriendlyName "Lock State when Waning"
-	bool m_bLockStateWhenWaning; // 0x69
+	bool m_bBlockWaningTags; // 0x60
 };
 
 // Aligment: 8
@@ -4135,7 +6370,7 @@ public:
 
 // Aligment: 6
 // Size: 96
-class CDampedPathAnimMotor : public CPathAnimMotorBase, CAnimMotorBase
+class CDampedPathAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
 	// MPropertyFriendlyName "Anticipation Time"
@@ -4185,8 +6420,8 @@ public:
 	Vector2D m_vControlPoint2; // 0x8
 };
 
-// Aligment: 6
-// Size: 6
+// Aligment: 5
+// Size: 5
 class CAnimDesc_Flag
 {
 public:
@@ -4195,15 +6430,6 @@ public:
 	bool m_bHidden; // 0x2
 	bool m_bDelta; // 0x3
 	bool m_bLegacyWorldspace; // 0x4
-	bool m_bModelDoc; // 0x5
-};
-
-// Aligment: 1
-// Size: 72
-class CAnimationSubGraph
-{
-public:
-	CSmartPtr< CAnimNodeManager > m_nodeManager; // 0x8
 };
 
 // Aligment: 4
@@ -4230,7 +6456,7 @@ class CChoiceNodeChild
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x0
+	AnimNodeID m_nodeID; // 0x0
 	// MPropertyFriendlyName "Name"
 	CUtlString m_name; // 0x8
 	// MPropertyFriendlyName "Weight"
@@ -4258,30 +6484,16 @@ public:
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 64
 class CDirectPlaybackAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Finish Early"
-	bool m_bFinishEarly; // 0x48
+	bool m_bFinishEarly; // 0x3c
 	// MPropertyFriendlyName "Reset Child On Finish"
-	bool m_bResetOnFinish; // 0x49
-};
-
-// Aligment: 3
-// Size: 104
-class CFootStepTriggerAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
-	// MPropertyFriendlyName "Tolerance"
-	float m_flTolerance; // 0x48
-	// MPropertyFriendlyName "Feet"
-	// MPropertyAutoExpandGroup
-	CUtlVector< CFootStepTriggerItem > m_items; // 0x50
+	bool m_bResetOnFinish; // 0x3d
 };
 
 // Aligment: 4
@@ -4347,12 +6559,12 @@ public:
 };
 
 // Aligment: 1
-// Size: 72
+// Size: 64
 class CRootAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 };
 
 // Aligment: 3
@@ -4376,170 +6588,169 @@ public:
 };
 
 // Aligment: 8
-// Size: 96
+// Size: 80
 class CAddAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_baseInput; // 0x40
+	AnimNodeID m_baseChildID; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_additiveInput; // 0x48
+	AnimNodeID m_additiveChildID; // 0x3c
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x50
+	BinaryNodeTiming m_timingBehavior; // 0x40
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x54
+	float m_flTimingBlend; // 0x44
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x58
+	BinaryNodeChildOption m_footMotionTiming; // 0x48
 	// MPropertyFriendlyName "Reset Base Child"
-	bool m_bResetBase; // 0x5c
+	bool m_bResetBase; // 0x4c
 	// MPropertyFriendlyName "Reset Additive Child"
-	bool m_bResetAdditive; // 0x5d
+	bool m_bResetAdditive; // 0x4d
 	// MPropertyFriendlyName "Treat Translation Separately"
-	bool m_bApplyChannelsSeparately; // 0x5e
+	bool m_bApplyChannelsSeparately; // 0x4e
 };
 
-// Aligment: 3
-// Size: 64
+// Aligment: 2
+// Size: 16
 class CBlend2DItem
 {
 public:
-	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x10
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x28
+	CUtlString m_sequenceName; // 0x0
 	// MPropertyFriendlyName "Blend Value"
-	Vector2D m_blendValue; // 0x30
+	Vector2D m_blendValue; // 0x8
 };
 
 // Aligment: 10
-// Size: 160
+// Size: 152
 class CSelectorAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CNodeConnection > m_children; // 0x48
+	CUtlVector< AnimNodeID > m_children; // 0x40
 	// MPropertySuppressField
-	CUtlVector< AnimTagID > m_tags; // 0x60
+	CUtlVector< AnimTagID > m_tags; // 0x58
 	// MPropertyFriendlyName "Selection Source"
 	// MPropertyAttrChangeCallback
-	SelectionSource_t m_selectionSource; // 0x78
+	SelectionSource_t m_selectionSource; // 0x70
 	// MPropertyFriendlyName "Bool Parameter"
 	// MPropertyAttributeChoiceName "BoolParameter"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimParamID m_boolParamID; // 0x7c
+	AnimParamID m_boolParamID; // 0x74
 	// MPropertyFriendlyName "Enum Parameter"
 	// MPropertyAttributeChoiceName "EnumParameter"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimParamID m_enumParamID; // 0x80
+	AnimParamID m_enumParamID; // 0x78
 	// MPropertyFriendlyName "Blend Duration"
-	float m_blendDuration; // 0x84
+	float m_blendDuration; // 0x7c
 	// MPropertyFriendlyName "Tag Behavior"
-	SelectorTagBehavior_t m_tagBehavior; // 0x88
+	SelectorTagBehavior_t m_tagBehavior; // 0x80
 	// MPropertyFriendlyName "Reset On Change"
-	bool m_bResetOnChange; // 0x8c
+	bool m_bResetOnChange; // 0x84
 	// MPropertyFriendlyName "Start new option at same cycle"
-	bool m_bSyncCyclesOnChange; // 0x8d
+	bool m_bSyncCyclesOnChange; // 0x85
 	// MPropertySuppressField
-	CBlendCurve m_blendCurve; // 0x90
+	CBlendCurve m_blendCurve; // 0x88
 };
 
-// Aligment: 3
-// Size: 96
+// Aligment: 4
+// Size: 112
 class CAnimReplayFrame
 {
 public:
 	CUtlBinaryBlock m_instanceData; // 0x10
-	CTransform m_localToWorldTransform; // 0x30
-	float m_timeStamp; // 0x50
+	CUtlBinaryBlock m_poseRecipeInstanceData; // 0x28
+	CTransform m_localToWorldTransform; // 0x40
+	float m_timeStamp; // 0x60
 };
 
 // Aligment: 24
-// Size: 232
+// Size: 216
 class CMotionMatchingAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CMotionClipGroup > > m_clipGroups; // 0x50
+	CUtlVector< CSmartPtr< CMotionClipGroup > > m_clipGroups; // 0x40
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CMotionMetricBase > > m_metrics; // 0x68
+	CUtlVector< CSmartPtr< CMotionMetricBase > > m_metrics; // 0x58
 	// MPropertySuppressField
-	CBlendCurve m_blendCurve; // 0x80
+	CBlendCurve m_blendCurve; // 0x70
 	// MPropertyFriendlyName "Prediction Time"
-	float m_flPredictionTime; // 0x90
+	float m_flPredictionTime; // 0x80
 	// MPropertyFriendlyName "Sampling Method"
 	// MPropertyAttrChangeCallback
-	MotionSamplingMethod m_samplingMethod; // 0x94
+	MotionSamplingMethod m_samplingMethod; // 0x84
 	// MPropertyFriendlyName "Sample Rate"
 	// MPropertyAttrStateCallback
-	float m_flSampleRate; // 0x98
+	float m_flSampleRate; // 0x88
 	// MPropertyFriendlyName "Search at fixed interval"
 	// MPropertyGroupName "Search Triggers"
 	// MPropertyAttrChangeCallback
-	bool m_bSearchAtInterval; // 0x9c
+	bool m_bSearchAtInterval; // 0x8c
 	// MPropertyFriendlyName "Search Interval"
 	// MPropertyGroupName "Search Triggers"
 	// MPropertyAttrStateCallback
-	float m_flSearchInterval; // 0xa0
+	float m_flSearchInterval; // 0x90
 	// MPropertyFriendlyName "Search on Steps"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchOnSteps; // 0xa4
+	bool m_bSearchOnSteps; // 0x94
 	// MPropertyFriendlyName "Search when tags change"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bForceSearchWhenTagsChange; // 0xa5
+	bool m_bForceSearchWhenTagsChange; // 0x95
 	// MPropertyFriendlyName "Search when clip ends"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchWhenClipEnds; // 0xa6
+	bool m_bSearchWhenClipEnds; // 0x96
 	// MPropertyFriendlyName "Search when goal changes"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchWhenGoalChanges; // 0xa7
+	bool m_bSearchWhenGoalChanges; // 0x97
 	// MPropertyFriendlyName "Blend Time"
-	float m_flBlendTime; // 0xa8
+	float m_flBlendTime; // 0x98
 	// MPropertyFriendlyName "Selection Threshold"
-	float m_flSelectionThreshold; // 0xac
+	float m_flSelectionThreshold; // 0x9c
 	// MPropertyFriendlyName "Lock Clip When Waning"
-	bool m_bLockClipWhenWaning; // 0xb0
+	bool m_bLockClipWhenWaning; // 0xa0
 	// MPropertyFriendlyName "Enable Goal Assist"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrChangeCallback
-	bool m_bGoalAssist; // 0xb1
+	bool m_bGoalAssist; // 0xa1
 	// MPropertyFriendlyName "Goal Assist Distance"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrStateCallback
-	float m_flGoalAssistDistance; // 0xb4
+	float m_flGoalAssistDistance; // 0xa4
 	// MPropertyFriendlyName "Goal Assist Tolerance"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrStateCallback
-	float m_flGoalAssistTolerance; // 0xb8
+	float m_flGoalAssistTolerance; // 0xa8
 	// MPropertyFriendlyName "Enable Distance Scaling"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrChangeCallback
-	bool m_bEnableDistanceScaling; // 0xbc
+	bool m_bEnableDistanceScaling; // 0xac
 	// MPropertyFriendlyName "Outer Stopping Radius"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_OuterRadius; // 0xc0
+	float m_flDistanceScale_OuterRadius; // 0xb0
 	// MPropertyFriendlyName "Inner Stopping Radius"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_InnerRadius; // 0xc4
+	float m_flDistanceScale_InnerRadius; // 0xb4
 	// MPropertyFriendlyName "Maximum Speed Scale"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_MaxScale; // 0xc8
+	float m_flDistanceScale_MaxScale; // 0xb8
 	// MPropertyFriendlyName "Minimum Speed Scale"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_MinScale; // 0xcc
+	float m_flDistanceScale_MinScale; // 0xbc
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_distanceScale_Damping; // 0xd0
+	CAnimInputDamping m_distanceScale_Damping; // 0xc0
 };
 
 // Aligment: 6
@@ -4606,12 +6817,12 @@ public:
 };
 
 // Aligment: 2
-// Size: 72
+// Size: 224
 class CAnimMovementManager
 {
 public:
 	CAnimMotorList m_MotorList; // 0x18
-	CAnimMovementSettings m_MovementSettings; // 0x38
+	CAnimMovementSettings m_MovementSettings; // 0xd0
 };
 
 // Aligment: 13
@@ -4635,74 +6846,63 @@ public:
 };
 
 // Aligment: 1
-// Size: 32
+// Size: 184
 class CAnimMotorList
 {
 public:
-	CUtlVector< CSmartPtr< CAnimMotorBase > > m_motors; // 0x8
+	CUtlVector< CSmartPtr< CBaseAnimMotor > > m_motors; // 0x8
 };
 
 // Aligment: 16
-// Size: 176
+// Size: 168
 class CGroundIKSolveAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "IK Chains"
 	// MPropertyAttributeChoiceName "IKChainOld"
-	CUtlVector< CUtlString > m_IkChains; // 0x48
+	CUtlVector< CUtlString > m_IkChains; // 0x40
 	// MPropertyFriendlyName "Tilt Source"
 	// MPropertyAttributeChoiceEnumName
-	GroundIKTiltSource_t m_TiltSource; // 0x60
+	GroundIKTiltSource_t m_TiltSource; // 0x58
 	// MPropertyFriendlyName "Override Tilt Root"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_OverrideTiltRoot; // 0x68
+	CUtlString m_OverrideTiltRoot; // 0x60
 	// MPropertyFriendlyName "Tilt Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_TiltAttachment; // 0x70
+	CUtlString m_TiltAttachment; // 0x68
 	// MPropertyFriendlyName "Override Tilt Spring Strength"
-	float m_flOverrideTiltSpringStrength; // 0x78
+	float m_flOverrideTiltSpringStrength; // 0x70
 	// MPropertyFriendlyName "Apply Locks"
-	bool m_bApplyLocks; // 0x7c
+	bool m_bApplyLocks; // 0x74
 	// MPropertyFriendlyName "Enabled"
-	bool m_bEnabled; // 0x7d
+	bool m_bEnabled; // 0x75
 	// MPropertyFriendlyName "Target Blend Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_TargetBlendParameter; // 0x80
+	AnimParamID m_TargetBlendParameter; // 0x78
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Bone Types to Draw"
 	// MPropertyAttributeChoiceEnumName
-	CUtlVector< CGroundIKSolveAnimNode::DebugSkeletonBoneType_t > m_DebugDrawBoneTypes; // 0x88
+	CUtlVector< CGroundIKSolveAnimNode::DebugSkeletonBoneType_t > m_DebugDrawBoneTypes; // 0x80
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw Lock Values"
-	bool m_bDebugDrawLockValues; // 0xa0
+	bool m_bDebugDrawLockValues; // 0x98
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Lock Values Color"
-	Color m_DebugDrawLockValuesColor; // 0xa1
+	Color m_DebugDrawLockValuesColor; // 0x99
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw Before"
-	bool m_bDebugDrawBefore; // 0xa5
+	bool m_bDebugDrawBefore; // 0x9d
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Before IK Color"
-	Color m_DebugDrawBeforeColor; // 0xa6
+	Color m_DebugDrawBeforeColor; // 0x9e
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw After"
-	bool m_bDebugDrawAfter; // 0xaa
+	bool m_bDebugDrawAfter; // 0xa2
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug After IK Color"
-	Color m_DebugDrawAfterColor; // 0xab
-};
-
-// Aligment: 2
-// Size: 72
-class CQuaternionAnimParameter : public CAnimParameterBase
-{
-public:
-	// MPropertyFriendlyName "Default Value"
-	Quaternion m_defaultValue; // 0x30
-	// MPropertyFriendlyName "Interpolate"
-	bool m_bInterpolate; // 0x40
+	Color m_DebugDrawAfterColor; // 0xa3
 };
 
 // Aligment: 2
@@ -4747,8 +6947,8 @@ public:
 	CUtlVector< uint32 > m_nElementMaskArray; // 0x78
 };
 
-// Aligment: 12
-// Size: 144
+// Aligment: 11
+// Size: 136
 class CAnimState
 {
 public:
@@ -4762,21 +6962,19 @@ public:
 	// MPropertySortPriority "100"
 	CUtlString m_name; // 0x68
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x70
+	AnimNodeID m_childNodeID; // 0x70
 	// MPropertyHideField
-	AnimStateID m_stateID; // 0x78
+	AnimStateID m_stateID; // 0x74
 	// MPropertyHideField
-	Vector2D m_position; // 0x7c
+	Vector2D m_position; // 0x78
 	// MPropertyFriendlyName "Start State"
-	bool m_bIsStartState; // 0x84
+	bool m_bIsStartState; // 0x80
 	// MPropertyFriendlyName "End State"
-	bool m_bIsEndtState; // 0x85
+	bool m_bIsEndtState; // 0x81
 	// MPropertyFriendlyName "Passthrough"
-	bool m_bIsPassthrough; // 0x86
+	bool m_bIsPassthrough; // 0x82
 	// MPropertyFriendlyName "Exclusive Root Motion"
-	bool m_bIsRootMotionExclusive; // 0x87
-	// MPropertyFriendlyName "Always Evaluate"
-	bool m_bAlwaysEvaluate; // 0x88
+	bool m_bIsRootMotionExclusive; // 0x83
 };
 
 // Aligment: 6
@@ -4792,90 +6990,52 @@ public:
 	float end; // 0x10
 };
 
-// Aligment: 2
-// Size: 72
-class CPathAnimMotorBase : public CAnimMotorBase
-{
-public:
-	// MPropertyFriendlyName "Facing Damping"
-	// MPropertySortPriority "90"
-	CAnimInputDamping m_facingDamping; // 0x28
-	// MPropertyFriendlyName "Lock To Path"
-	// MPropertySortPriority "90"
-	bool m_bLockToPath; // 0x40
-};
-
-// Aligment: 2
-// Size: 16
-class CBoneMergeModel
-{
-public:
-	// MPropertyHideField
-	CUtlString m_name; // 0x0
-	// MPropertyHideField
-	bool m_bEnabled; // 0x8
-};
-
-// Aligment: 3
-// Size: 96
-class CCommentAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertySuppressField
-	CUtlString m_commentText; // 0x48
-	// MPropertySuppressField
-	Vector2D m_size; // 0x50
-	// MPropertyFriendlyName "Color"
-	// MPropertyColorWithNoAlpha
-	Color m_color; // 0x58
-};
-
 // Aligment: 8
-// Size: 112
+// Size: 96
 class CMoverAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Generate Movement"
-	bool m_bApplyMovement; // 0x48
+	bool m_bApplyMovement; // 0x3c
 	// MPropertyFriendlyName "Orient Movement"
-	bool m_bOrientMovement; // 0x49
+	bool m_bOrientMovement; // 0x3d
 	// MPropertyFriendlyName "Additive"
-	bool m_bAdditive; // 0x4a
+	bool m_bAdditive; // 0x3e
 	// MPropertyFriendlyName "Turn to Face"
-	bool m_bTurnToFace; // 0x4b
+	bool m_bTurnToFace; // 0x3f
 	// MPropertyFriendlyName "Turn to Face Offset"
 	// MPropertyAttributeRange "-180 180"
-	float m_flTurnToFaceOffset; // 0x4c
+	float m_flTurnToFaceOffset; // 0x40
 	// MPropertyFriendlyName "Face Direction"
-	AnimValueSource m_facingTarget; // 0x50
+	AnimValueSource m_facingTarget; // 0x44
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x48
 };
 
 // Aligment: 7
-// Size: 112
+// Size: 104
 class CDirectionalBlendAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence Names Prefix"
-	CUtlString m_animNamePrefix; // 0x40
+	CUtlString m_animNamePrefix; // 0x38
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendValueSource; // 0x48
+	AnimValueSource m_blendValueSource; // 0x40
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x44
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x50
+	bool m_bLoop; // 0x48
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x51
+	bool m_bLockBlendOnReset; // 0x49
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x54
+	float m_playbackSpeed; // 0x4c
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x50
 };
 
 // Aligment: 7
@@ -5007,15 +7167,15 @@ public:
 };
 
 // Aligment: 2
-// Size: 80
+// Size: 64
 class CSlowDownOnSlopesAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Slow Down Strength"
 	// MPropertyAttributeRange "0.1 2"
-	float m_flSlowDownStrength; // 0x48
+	float m_flSlowDownStrength; // 0x3c
 };
 
 // Aligment: 1
@@ -5074,46 +7234,23 @@ public:
 	int32_t m_nType; // 0x10
 };
 
-// Aligment: 0
-// Size: 64
-class CInputStreamAnimNode : public CAnimNodeBase
-{
-public:
-// <no members described>
-};
-
-// Aligment: 3
-// Size: 152
-class CSubGraphAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	AnimNodeID m_inputNodeID; // 0x48
-	// MPropertyHideField
-	AnimNodeID m_outputNodeID; // 0x4c
-	// MPropertyAttributeEditor "AssetBrowse( vsubgrph )"
-	// MPropertyFriendlyName "SubGraph File"
-	// MPropertyAttrChangeCallback
-	CUtlString m_subGraphFilename; // 0x70
-};
-
 // Aligment: 5
-// Size: 96
+// Size: 88
 class CFollowAttachmentAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Bone"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_boneName; // 0x48
+	CUtlString m_boneName; // 0x40
 	// MPropertyFriendlyName "Target Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x50
+	CUtlString m_attachmentName; // 0x48
 	// MPropertyFriendlyName "Match Translation"
-	bool m_bMatchTranslation; // 0x58
+	bool m_bMatchTranslation; // 0x50
 	// MPropertyFriendlyName "Match Rotation"
-	bool m_bMatchRotation; // 0x59
+	bool m_bMatchRotation; // 0x51
 };
 
 // Aligment: 3
@@ -5126,19 +7263,18 @@ public:
 	Color m_Color; // 0x30
 };
 
-// Aligment: 8
-// Size: 144
+// Aligment: 7
+// Size: 256
 class CAnimationGraph
 {
 public:
-	CSmartPtr< CAnimNodeManager > m_nodeManager; // 0x8
-	CSmartPtr< CAnimParameterList > m_pParameterList; // 0x10
-	CSmartPtr< CAnimTagManager > m_pTagManager; // 0x18
-	CSmartPtr< CAnimMovementManager > m_pMovementManager; // 0x20
-	CSmartPtr< CAnimGraphSettingsManager > m_pSettingsManager; // 0x28
-	CSmartPtr< CActivityValueList > m_pActivityValuesList; // 0x40
-	CUtlVector< CUtlString > m_previewModels; // 0x48
-	CUtlVector< CBoneMergeModel > m_boneMergeModels; // 0x60
+	CSmartPtr< CAnimParameterList > m_pParameterList; // 0x28
+	CSmartPtr< CAnimTagManager > m_pTagManager; // 0x30
+	CSmartPtr< CAnimMovementManager > m_pMovementManager; // 0x38
+	CSmartPtr< CAnimGraphSettingsManager > m_pSettingsManager; // 0x40
+	CSmartPtr< CActivityValueList > m_pActivityValuesList; // 0x48
+	AnimNodeID m_rootNodeID; // 0x50
+	CUtlString m_filePath; // 0x58
 };
 
 // Aligment: 7
@@ -5177,98 +7313,75 @@ public:
 	CUtlVector< CUtlString > m_feet; // 0x28
 };
 
-// Aligment: 4
-// Size: 80
+// Aligment: 3
+// Size: 64
 class CSkeletalInputAnimNode : public CAnimNodeBase
 {
 public:
-	// MPropertyFriendlyName "Data Source"
-	// MPropertyAttrChangeCallback
-	AnimVrBoneTransformSource_t m_transformSource; // 0x40
 	// MPropertyFriendlyName "Motion Range"
-	// MPropertyAttrStateCallback
-	AnimVRHandMotionRange_t m_motionRange; // 0x44
+	AnimVRHandMotionRange_t m_motionRange; // 0x38
 	// MPropertyFriendlyName "Enable IK"
 	// MPropertyGroupName "+Retargetting"
-	bool m_bEnableIK; // 0x48
+	bool m_bEnableIK; // 0x3c
 	// MPropertyFriendlyName "Enable Collision"
 	// MPropertyGroupName "+Retargetting"
-	bool m_bEnableCollision; // 0x49
-};
-
-// Aligment: 1
-// Size: 4
-class AnimOutputID
-{
-public:
-	uint32_t m_id; // 0x0
+	bool m_bEnableCollision; // 0x3d
 };
 
 // Aligment: 2
-// Size: 8
-class CNodeConnection
-{
-public:
-	// MPropertySuppressField
-	AnimNodeID m_nodeID; // 0x0
-	// MPropertySuppressField
-	AnimOutputID m_outputID; // 0x4
-};
-
-// Aligment: 2
-// Size: 104
+// Size: 88
 class CSolveIKChainAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x48
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "IK Chains"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CSolveIKChainAnimNodeChainData > m_IkChains; // 0x50
+	CUtlVector< CSolveIKChainAnimNodeChainData > m_IkChains; // 0x40
 };
 
 // Aligment: 14
-// Size: 152
+// Size: 136
 class CLookAtAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Target"
-	AnimVectorSource m_target; // 0x48
+	AnimVectorSource m_target; // 0x3c
 	// MPropertyFriendlyName "Target Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x40
 	// MPropertyFriendlyName "Weight Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_weightParam; // 0x50
+	AnimParamID m_weightParam; // 0x44
 	// MPropertyFriendlyName "LookAt Chain"
 	// MPropertyAttributeChoiceName "LookAtChain"
-	CUtlString m_lookatChainName; // 0x58
+	CUtlString m_lookatChainName; // 0x48
 	// MPropertyFriendlyName "Aim Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x60
+	CUtlString m_attachmentName; // 0x50
 	// MPropertyFriendlyName "Yaw Limit"
 	// MPropertyAttributeRange "0 180"
-	float m_flYawLimit; // 0x68
+	float m_flYawLimit; // 0x58
 	// MPropertyFriendlyName "Pitch Limit"
 	// MPropertyAttributeRange "0 180"
-	float m_flPitchLimit; // 0x6c
+	float m_flPitchLimit; // 0x5c
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0x70
+	bool m_bResetBase; // 0x60
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x71
+	bool m_bLockWhenWaning; // 0x61
 	// MPropertyFriendlyName "Use Hysteresis"
 	// MPropertyGroupName "Hysteresis"
-	bool m_bUseHysteresis; // 0x72
+	bool m_bUseHysteresis; // 0x62
 	// MPropertyFriendlyName "Inner Angle"
 	// MPropertyGroupName "Hysteresis"
-	float m_flHysteresisInnerAngle; // 0x74
+	float m_flHysteresisInnerAngle; // 0x64
 	// MPropertyFriendlyName "Outer Angle"
 	// MPropertyGroupName "Hysteresis"
-	float m_flHysteresisOuterAngle; // 0x78
+	float m_flHysteresisOuterAngle; // 0x68
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x80
+	CAnimInputDamping m_damping; // 0x70
 };
 
 // Aligment: 2
@@ -5284,30 +7397,15 @@ public:
 };
 
 // Aligment: 2
-// Size: 96
+// Size: 88
 class CJiggleBoneAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Jiggle Bones"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CJiggleBoneItem > m_items; // 0x48
-};
-
-// Aligment: 3
-// Size: 40
-class CFootStepTriggerItem
-{
-public:
-	// MPropertyFriendlyName "Foot"
-	// MPropertyAttributeChoiceName "Foot"
-	CUtlString m_footName; // 0x0
-	// MPropertyFriendlyName "Trigger Phase"
-	StepPhase m_triggerPhase; // 0x8
-	// MPropertyFriendlyName "Tags"
-	// MPropertyAttributeChoiceName "Tag"
-	CUtlVector< AnimTagID > m_tags; // 0x10
+	CUtlVector< CJiggleBoneItem > m_items; // 0x40
 };
 
 // Aligment: 1
@@ -5319,20 +7417,8 @@ public:
 	FootFallTagFoot_t m_foot; // 0x30
 };
 
-// Aligment: 2
-// Size: 40
-class CAnimMotorBase
-{
-public:
-	// MPropertyFriendlyName "Name"
-	// MPropertySortPriority "100"
-	CUtlString m_name; // 0x18
-	// MPropertyHideField
-	bool m_bDefault; // 0x20
-};
-
 // Aligment: 1
-// Size: 48
+// Size: 200
 class CAnimTagManager
 {
 public:
@@ -5352,22 +7438,22 @@ public:
 };
 
 // Aligment: 6
-// Size: 112
+// Size: 104
 class CStopAtGoalAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Outer Stopping Radius"
-	float m_flOuterRadius; // 0x48
+	float m_flOuterRadius; // 0x3c
 	// MPropertyFriendlyName "Inner Stopping Radius"
-	float m_flInnerRadius; // 0x4c
+	float m_flInnerRadius; // 0x40
 	// MPropertyFriendlyName "Maximum Speed Scale"
-	float m_flMaxScale; // 0x50
+	float m_flMaxScale; // 0x44
 	// MPropertyFriendlyName "Minimum Speed Scale"
-	float m_flMinScale; // 0x54
+	float m_flMinScale; // 0x48
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x50
 };
 
 // Aligment: 2
@@ -5402,7 +7488,7 @@ public:
 };
 
 // Aligment: 2
-// Size: 72
+// Size: 64
 class CParameterAnimCondition : public CAnimStateConditionBase
 {
 public:
@@ -5425,7 +7511,7 @@ public:
 
 // Aligment: 0
 // Size: 72
-class CPathAnimMotor : public CPathAnimMotorBase, CAnimMotorBase
+class CPathAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
 // <no members described>
@@ -5440,151 +7526,132 @@ public:
 };
 
 // Aligment: 4
-// Size: 120
+// Size: 104
 class CSequenceAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x50
+	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x40
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x68
+	CUtlString m_sequenceName; // 0x58
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x70
+	float m_playbackSpeed; // 0x60
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x74
+	bool m_bLoop; // 0x64
 };
 
-// Aligment: 36
-// Size: 296
+// Aligment: 31
+// Size: 248
 class CFootLockAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Feet"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CFootLockItem > m_items; // 0x48
+	CUtlVector< CFootLockItem > m_items; // 0x40
 	// MPropertyFriendlyName "Hip Bone"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_hipBoneName; // 0x60
+	CUtlString m_hipBoneName; // 0x58
 	// MPropertyFriendlyName "Blend Time"
-	float m_flBlendTime; // 0x68
+	float m_flBlendTime; // 0x60
 	// MPropertyFriendlyName "Apply Foot Rotation Limits"
-	bool m_bApplyFootRotationLimits; // 0x6c
+	bool m_bApplyFootRotationLimits; // 0x64
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetChild; // 0x6d
+	bool m_bResetChild; // 0x65
 	// MPropertyFriendlyName "IK Solver Type"
 	// MPropertyGroupName "IK"
 	// MPropertyAttrChangeCallback
-	IKSolverType m_ikSolverType; // 0x70
+	IKSolverType m_ikSolverType; // 0x68
 	// MPropertyFriendlyName "Always use fallback hinge"
 	// MPropertyGroupName "IK"
 	// MPropertyAttrStateCallback
-	bool m_bAlwaysUseFallbackHinge; // 0x74
+	bool m_bAlwaysUseFallbackHinge; // 0x6c
 	// MPropertyFriendlyName "Curve Foot Paths"
 	// MPropertyGroupName "Curve Paths"
 	// MPropertyAttributeRange "0 1"
-	float m_flStrideCurveScale; // 0x78
+	float m_flStrideCurveScale; // 0x70
 	// MPropertyFriendlyName "Curve Paths Limit"
 	// MPropertyGroupName "Curve Paths"
 	// MPropertyAttributeRange "0 1"
-	float m_flStrideCurveLimitScale; // 0x7c
+	float m_flStrideCurveLimitScale; // 0x74
 	// MPropertyFriendlyName "Enable Vertical Curved Paths"
 	// MPropertyGroupName "Curve Paths"
-	bool m_bEnableVerticalCurvedPaths; // 0x80
+	bool m_bEnableVerticalCurvedPaths; // 0x78
 	// MPropertyFriendlyName "Modulate Step Height"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrChangeCallback
-	bool m_bModulateStepHeight; // 0x81
+	bool m_bModulateStepHeight; // 0x79
 	// MPropertyFriendlyName "Height Increase Scale"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrStateCallback
-	float m_flStepHeightIncreaseScale; // 0x84
+	float m_flStepHeightIncreaseScale; // 0x7c
 	// MPropertyFriendlyName "Height Decrease Scale"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrStateCallback
-	float m_flStepHeightDecreaseScale; // 0x88
+	float m_flStepHeightDecreaseScale; // 0x80
 	// MPropertyFriendlyName "Enable Hip Shift"
 	// MPropertyGroupName "Hip Shift"
-	bool m_bEnableHipShift; // 0x8c
+	bool m_bEnableHipShift; // 0x84
 	// MPropertyFriendlyName "Hip Shift Scale"
 	// MPropertyGroupName "Hip Shift"
 	// MPropertyAttributeRange "0 1"
-	float m_flHipShiftScale; // 0x90
+	float m_flHipShiftScale; // 0x88
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Hip Shift"
-	CAnimInputDamping m_hipShiftDamping; // 0x98
+	CAnimInputDamping m_hipShiftDamping; // 0x90
 	// MPropertyFriendlyName "Apply Tilt"
 	// MPropertyGroupName "Tilt"
-	bool m_bApplyTilt; // 0xb0
+	bool m_bApplyTilt; // 0xa8
 	// MPropertyFriendlyName "Tilt Plane Pitch Spring Strength"
 	// MPropertyGroupName "Tilt"
-	float m_flTiltPlanePitchSpringStrength; // 0xb4
+	float m_flTiltPlanePitchSpringStrength; // 0xac
 	// MPropertyFriendlyName "Tilt Plane Roll Spring Strength"
 	// MPropertyGroupName "Tilt"
-	float m_flTiltPlaneRollSpringStrength; // 0xb8
+	float m_flTiltPlaneRollSpringStrength; // 0xb0
 	// MPropertyFriendlyName "Enable Lock Breaking"
 	// MPropertyGroupName "Lock Breaking"
-	bool m_bEnableLockBreaking; // 0xbc
-	// MPropertyFriendlyName "Tolerance"
-	// MPropertyGroupName "Lock Breaking"
-	float m_flLockBreakTolerance; // 0xc0
+	bool m_bEnableLockBreaking; // 0xb4
 	// MPropertyFriendlyName "Blend Time"
 	// MPropertyGroupName "Lock Breaking"
-	float m_flLockBreakBlendTime; // 0xc4
+	float m_flLockBreakBlendTime; // 0xb8
 	// MPropertyFriendlyName "Enable Stretching"
 	// MPropertyGroupName "Stretch"
-	bool m_bEnableStretching; // 0xc8
+	bool m_bEnableStretching; // 0xbc
 	// MPropertyFriendlyName "Max Stretch Amount"
 	// MPropertyGroupName "Stretch"
-	float m_flMaxStretchAmount; // 0xcc
+	float m_flMaxStretchAmount; // 0xc0
 	// MPropertyFriendlyName "Extension Scale"
 	// MPropertyGroupName "Stretch"
 	// MPropertyAttributeRange "0 1"
-	float m_flStretchExtensionScale; // 0xd0
+	float m_flStretchExtensionScale; // 0xc4
 	// MPropertyFriendlyName "Enable Ground Tracing"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrChangeCallback
-	bool m_bEnableGroundTracing; // 0xd4
+	bool m_bEnableGroundTracing; // 0xc8
 	// MPropertyFriendlyName "Angle Traces with Slope"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTraceAngleBlend; // 0xd8
+	float m_flTraceAngleBlend; // 0xcc
 	// MPropertyFriendlyName "Apply Hip Drop"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	bool m_bApplyHipDrop; // 0xdc
+	bool m_bApplyHipDrop; // 0xd0
 	// MPropertyFriendlyName "Max Foot Lift"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	float m_flMaxFootHeight; // 0xe0
+	float m_flMaxFootHeight; // 0xd4
 	// MPropertyFriendlyName "Leg Extension Scale"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	float m_flExtensionScale; // 0xe4
+	float m_flExtensionScale; // 0xd8
 	// MPropertyFriendlyName "Hip Damping"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_hipDampingSettings; // 0xe8
-	// MPropertyFriendlyName "Enable Root Height Damping"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrChangeCallback
-	bool m_bEnableRootHeightDamping; // 0x100
-	// MPropertyFriendlyName "Damping Settings"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	CAnimInputDamping m_rootHeightDamping; // 0x108
-	// MPropertyFriendlyName "Max Offset"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	float m_flMaxRootHeightOffset; // 0x120
-	// MPropertyFriendlyName "Min Offset"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	float m_flMinRootHeightOffset; // 0x124
+	CAnimInputDamping m_hipDampingSettings; // 0xe0
 };
 
 // Aligment: 1
@@ -5596,100 +7663,86 @@ public:
 	float m_comparisonValue; // 0x28
 };
 
-// Aligment: 3
-// Size: 120
+// Aligment: 2
+// Size: 72
 class CSingleFrameAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x50
+	CUtlString m_sequenceName; // 0x38
 	// MPropertyFriendlyName "Frame"
-	int32_t m_nFrameIndex; // 0x58
-	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x60
-};
-
-// Aligment: 10
-// Size: 136
-class CTwoBoneIKAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
-	// MPropertyFriendlyName "IK Chain"
-	// MPropertyAttributeChoiceName "IKChain"
-	CUtlString m_ikChainName; // 0x48
-	// MPropertyGroupName "End Effector"
-	// MPropertyFriendlyName "End Effector Type"
-	// MPropertyAttrChangeCallback
-	IkEndEffectorType m_endEffectorType; // 0x50
-	// MPropertyGroupName "End Effector"
-	// MPropertyFriendlyName "Attachment"
-	// MPropertyAttributeChoiceName "Attachment"
-	// MPropertyAttrStateCallback
-	CUtlString m_endEffectorAttachmentName; // 0x58
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Target Type"
-	// MPropertyAttrChangeCallback
-	IkTargetType m_targetType; // 0x60
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Attachment"
-	// MPropertyAttributeChoiceName "Attachment"
-	// MPropertyAttrStateCallback
-	CUtlString m_attachmentName; // 0x68
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Bone"
-	// MPropertyAttributeChoiceName "Bone"
-	// MPropertyAttrStateCallback
-	CUtlString m_targetBoneName; // 0x70
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Position Parameter"
-	// MPropertyAttributeChoiceName "VectorParameter"
-	// MPropertyAttrStateCallback
-	AnimParamID m_targetParam; // 0x78
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Match Target Orientation"
-	// MPropertyAttrChangeCallback
-	bool m_bMatchTargetOrientation; // 0x7c
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Rotation Parameter"
-	// MPropertyAttributeChoiceName "QuaternionParameter"
-	// MPropertyAttrStateCallback
-	AnimParamID m_rotationParam; // 0x80
+	int32_t m_nFrameIndex; // 0x40
 };
 
 // Aligment: 9
 // Size: 120
+class CTwoBoneIKAnimNode : public CAnimNodeBase
+{
+public:
+	// MPropertyHideField
+	AnimNodeID m_childID; // 0x38
+	// MPropertyFriendlyName "IK Chain"
+	// MPropertyAttributeChoiceName "IKChain"
+	CUtlString m_ikChainName; // 0x40
+	// MPropertyGroupName "End Effector"
+	// MPropertyFriendlyName "End Effector Type"
+	// MPropertyAttrChangeCallback
+	IkEndEffectorType m_endEffectorType; // 0x48
+	// MPropertyGroupName "End Effector"
+	// MPropertyFriendlyName "Attachment"
+	// MPropertyAttributeChoiceName "Attachment"
+	// MPropertyAttrStateCallback
+	CUtlString m_endEffectorAttachmentName; // 0x50
+	// MPropertyGroupName "Target"
+	// MPropertyFriendlyName "Target Type"
+	// MPropertyAttrChangeCallback
+	IkTargetType m_targetType; // 0x58
+	// MPropertyGroupName "Target"
+	// MPropertyFriendlyName "Attachment"
+	// MPropertyAttributeChoiceName "Attachment"
+	// MPropertyAttrStateCallback
+	CUtlString m_attachmentName; // 0x60
+	// MPropertyGroupName "Target"
+	// MPropertyFriendlyName "Bone"
+	// MPropertyAttributeChoiceName "Bone"
+	// MPropertyAttrStateCallback
+	CUtlString m_targetBoneName; // 0x68
+	// MPropertyGroupName "Target"
+	// MPropertyFriendlyName "Parameter"
+	// MPropertyAttributeChoiceName "VectorParameter"
+	// MPropertyAttrStateCallback
+	AnimParamID m_targetParam; // 0x70
+	// MPropertyGroupName "Target"
+	// MPropertyFriendlyName "Match Target Orientation"
+	// MPropertyAttrStateCallback
+	bool m_bMatchTargetOrientation; // 0x74
+};
+
+// Aligment: 7
+// Size: 112
 class CChoiceAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Options"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CChoiceNodeChild > m_children; // 0x48
+	CUtlVector< CChoiceNodeChild > m_children; // 0x40
 	// MPropertyHideField
-	int32_t m_seed; // 0x60
+	int32_t m_seed; // 0x58
 	// MPropertyFriendlyName "Method"
-	ChoiceMethod m_choiceMethod; // 0x64
+	ChoiceMethod m_choiceMethod; // 0x5c
 	// MPropertyFriendlyName "Change Selection"
-	ChoiceChangeMethod m_choiceChangeMethod; // 0x68
+	ChoiceChangeMethod m_choiceChangeMethod; // 0x60
 	// MPropertyGroupName "Blending"
 	// MPropertyFriendlyName "Blend Method"
 	// MPropertyAttrChangeCallback
-	ChoiceBlendMethod m_blendMethod; // 0x6c
+	ChoiceBlendMethod m_blendMethod; // 0x64
 	// MPropertyGroupName "Blending"
 	// MPropertyFriendlyName "Blend Duration"
 	// MPropertyAttrStateCallback
-	float m_blendTime; // 0x70
-	// MPropertyGroupName "Blending"
-	// MPropertyFriendlyName "Cross Fade"
-	bool m_bCrossFade; // 0x74
+	float m_blendTime; // 0x68
 	// MPropertyFriendlyName "Reset On Selection"
-	// MPropertyAttrChangeCallback
-	bool m_bResetChosen; // 0x75
-	// MPropertyFriendlyName "Don't Reset Same Selection"
-	// MPropertyAttrStateCallback
-	bool m_bDontResetSameSelection; // 0x76
+	bool m_bResetChosen; // 0x6c
 };
 
 // Aligment: 5
@@ -5775,15 +7828,13 @@ public:
 	bool m_comparisonValue; // 0x28
 };
 
-// Aligment: 2
+// Aligment: 1
 // Size: 40
 class CAnimGraphNetworkSettings : public CAnimGraphSettingsGroup
 {
 public:
-	// MPropertyFriendlyName "Enable Networking"
+	// MPropertyFriendlyName "Enable Networking "
 	bool m_bNetworkingEnabled; // 0x20
-	// MPropertyFriendlyName "Default Network Mode"
-	AnimNodeNetworkMode m_defaultNetworkMode; // 0x24
 };
 
 // Aligment: 1
@@ -5839,6 +7890,19 @@ public:
 	int32_t m_frameCount; // 0x68
 };
 
+// Aligment: 2
+// Size: 72
+class CBasePathAnimMotor : public CBaseAnimMotor
+{
+public:
+	// MPropertyFriendlyName "Facing Damping"
+	// MPropertySortPriority "90"
+	CAnimInputDamping m_facingDamping; // 0x28
+	// MPropertyFriendlyName "Lock To Path"
+	// MPropertySortPriority "90"
+	bool m_bLockToPath; // 0x40
+};
+
 // Aligment: 2
 // Size: 56
 class CParameterValue
@@ -5895,8 +7959,8 @@ public:
 	CUtlString m_Name; // 0x0
 };
 
-// Aligment: 11
-// Size: 11
+// Aligment: 10
+// Size: 10
 class CSeqSeqDescFlag
 {
 public:
@@ -5910,7 +7974,6 @@ public:
 	bool m_bLegacyWorldspace; // 0x7
 	bool m_bLegacyCyclepose; // 0x8
 	bool m_bLegacyRealtime; // 0x9
-	bool m_bModelDoc; // 0xa
 };
 
 // Aligment: 6
@@ -5988,26 +8051,26 @@ public:
 };
 
 // Aligment: 7
-// Size: 144
+// Size: 128
 class CLeanMatrixAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x48
+	CUtlString m_sequenceName; // 0x38
 	// MPropertyFriendlyName "Max Value"
-	float m_flMaxValue; // 0x50
+	float m_flMaxValue; // 0x40
 	// MPropertyFriendlyName "Blend Source"
-	AnimVectorSource m_blendSource; // 0x54
+	AnimVectorSource m_blendSource; // 0x44
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x58
+	AnimParamID m_param; // 0x48
 	// MPropertyFriendlyName "Vertical Axis"
-	Vector m_verticalAxisDirection; // 0x5c
+	Vector m_verticalAxisDirection; // 0x4c
 	// MPropertyFriendlyName "Horizontal Axis"
-	Vector m_horizontalAxisDirection; // 0x68
+	Vector m_horizontalAxisDirection; // 0x58
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x78
+	CAnimInputDamping m_damping; // 0x68
 };
 
 // Aligment: 7
@@ -6063,8 +8126,8 @@ public:
 	int32_t m_maxValue; // 0x38
 };
 
-// Aligment: 5
-// Size: 64
+// Aligment: 4
+// Size: 56
 class CAnimNodeBase
 {
 public:
@@ -6076,45 +8139,42 @@ public:
 	// MPropertyHideField
 	AnimNodeID m_nNodeID; // 0x30
 	// MPropertyFriendlyName "Network Mode"
-	// MPropertyAttrStateCallback
 	AnimNodeNetworkMode m_networkMode; // 0x34
-	// MPropertyHideField
-	CUtlString m_sNote; // 0x38
 };
 
 // Aligment: 7
-// Size: 96
+// Size: 80
 class CTurnHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Turn to Face"
-	AnimValueSource m_facingTarget; // 0x48
+	AnimValueSource m_facingTarget; // 0x3c
 	// MPropertyFriendlyName "Turn Start Time"
-	float m_turnStartTime; // 0x4c
+	float m_turnStartTime; // 0x40
 	// MPropertyFriendlyName "Turn Duration"
-	float m_turnDuration; // 0x50
+	float m_turnDuration; // 0x44
 	// MPropertyFriendlyName "Match Child Duration"
-	bool m_bMatchChildDuration; // 0x54
+	bool m_bMatchChildDuration; // 0x48
 	// MPropertyFriendlyName "Use Manual Turn Offset"
-	bool m_bUseManualTurnOffset; // 0x55
+	bool m_bUseManualTurnOffset; // 0x49
 	// MPropertyFriendlyName "Manual Turn Offset"
-	float m_manualTurnOffset; // 0x58
+	float m_manualTurnOffset; // 0x4c
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CCycleControlAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Blend Source"
-	AnimValueSource m_valueSource; // 0x48
+	AnimValueSource m_valueSource; // 0x3c
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x40
 };
 
 // Aligment: 1
@@ -6150,16 +8210,16 @@ public:
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CSetFacingAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Facing Mode"
-	FacingMode m_facingMode; // 0x48
+	FacingMode m_facingMode; // 0x3c
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetChild; // 0x4c
+	bool m_bResetChild; // 0x40
 };
 
 // Aligment: 3
@@ -6172,6 +8232,22 @@ public:
 	CUtlVector< int32 > m_segmentIndexArray; // 0x8
 };
 
+// Aligment: 9
+// Size: 208
+class CModelConfigElement_AttachedModel : public CModelConfigElement
+{
+public:
+	CUtlString m_InstanceName; // 0x48
+	CUtlString m_EntityClass; // 0x50
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x58
+	Vector m_vOffset; // 0x60
+	QAngle m_aAngOffset; // 0x6c
+	CUtlString m_AttachmentName; // 0x78
+	ModelConfigAttachmentType_t m_AttachmentType; // 0x80
+	bool m_bUserSpecifiedColor; // 0x84
+	bool m_bUserSpecifiedMaterialGroup; // 0x85
+};
+
 // Aligment: 3
 // Size: 12
 struct FeFitInfluence_t
@@ -6262,18 +8338,19 @@ public:
 	float flRelaxationFactor; // 0x10
 };
 
-// Aligment: 6
-// Size: 24
+// Aligment: 7
+// Size: 28
 class CPhysSurfacePropertiesAudio
 {
 public:
-	float m_hardnessFactor; // 0x0
-	float m_roughnessFactor; // 0x4
-	float m_roughThreshold; // 0x8
-	float m_hardThreshold; // 0xc
+	float m_reflectivity; // 0x0
+	float m_hardnessFactor; // 0x4
+	float m_roughnessFactor; // 0x8
+	float m_roughThreshold; // 0xc
+	float m_hardThreshold; // 0x10
 	// MDefaultString
-	float m_hardVelocityThreshold; // 0x10
-	float m_flStaticImpactVolume; // 0x14
+	float m_hardVelocityThreshold; // 0x14
+	float m_flStaticImpactVolume; // 0x18
 };
 
 // Aligment: 0
@@ -6292,21 +8369,22 @@ public:
 	uint16[2] nChild; // 0x0
 };
 
-// Aligment: 10
-// Size: 160
+// Aligment: 11
+// Size: 184
 struct VPhysXBodyPart_t
 {
 public:
 	uint32_t m_nFlags; // 0x0
 	float m_flMass; // 0x4
 	VPhysics2ShapeDef_t m_rnShape; // 0x8
-	uint16_t m_nCollisionAttributeIndex; // 0x80
-	uint16_t m_nReserved; // 0x82
-	float m_flInertiaScale; // 0x84
-	float m_flLinearDamping; // 0x88
-	float m_flAngularDamping; // 0x8c
-	bool m_bOverrideMassCenter; // 0x90
-	Vector m_vMassCenterOverride; // 0x94
+	CUtlVector< uint8 > m_nSurfacepropertyIndices; // 0x80
+	uint16_t m_nCollisionAttributeIndex; // 0x98
+	uint16_t m_nReserved; // 0x9a
+	float m_flInertiaScale; // 0x9c
+	float m_flLinearDamping; // 0xa0
+	float m_flAngularDamping; // 0xa4
+	bool m_bOverrideMassCenter; // 0xa8
+	Vector m_vMassCenterOverride; // 0xac
 };
 
 // Aligment: 3
@@ -6337,26 +8415,32 @@ public:
 	float flAlpha; // 0x4
 };
 
-// Aligment: 2
-// Size: 64
+// Aligment: 1
+// Size: 80
+class CModelConfigElement_SetRenderColor : public CModelConfigElement
+{
+public:
+	Color m_Color; // 0x48
+};
+
+// Aligment: 1
+// Size: 44
 struct FeBuildTaperedCapsuleRigid_t : public FeTaperedCapsuleRigid_t
 {
 public:
-	int32_t m_nPriority; // 0x30
-	uint32_t m_nVertexMapHash; // 0x34
+	int32_t m_nPriority; // 0x28
 };
 
-// Aligment: 6
-// Size: 32
+// Aligment: 5
+// Size: 24
 struct FeSphereRigid_t
 {
 public:
-	fltx4 vSphere; // 0x0
-	float flStickiness; // 0x10
-	uint16_t nNode; // 0x14
-	uint16_t nCollisionMask; // 0x16
-	uint16_t nVertexMapIndex; // 0x18
-	uint16_t nFlags; // 0x1a
+	uint16_t nNode; // 0x0
+	uint16_t nCollisionMask; // 0x2
+	Vector vCenter; // 0x4
+	float flRadius; // 0x10
+	float flStickiness; // 0x14
 };
 
 // Aligment: 1
@@ -6378,6 +8462,17 @@ public:
 	fltx4 m_flYZ; // 0x50
 };
 
+// Aligment: 4
+// Size: 28
+struct VPhysXDiskMesh2_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	CResourceArray< uint8 > m_shape; // 0x4
+	float m_flSkinWidth; // 0xc
+	float m_flMaxVelocity; // 0x10
+	uint32[2] m_nReserved2; // 0x14
+};
+
 // Aligment: 1
 // Size: 24
 class CFootTrajectories
@@ -6398,17 +8493,6 @@ public:
 	uint16[6] nNode; // 0x1c
 };
 
-// Aligment: 4
-// Size: 8
-struct FeNodeWindBase_t
-{
-public:
-	uint16_t nNodeX0; // 0x0
-	uint16_t nNodeX1; // 0x2
-	uint16_t nNodeY0; // 0x4
-	uint16_t nNodeY1; // 0x6
-};
-
 // Aligment: 1
 // Size: 4
 struct FeSourceEdge_t
@@ -6495,8 +8579,8 @@ public:
 // <no members described>
 };
 
-// Aligment: 6
-// Size: 24
+// Aligment: 5
+// Size: 20
 class CPhysSurfacePropertiesPhysics
 {
 public:
@@ -6506,8 +8590,6 @@ public:
 	// MDefaultString
 	float m_thickness; // 0xc
 	float m_dampening; // 0x10
-	// MDefaultString
-	float m_bouncethreshold; // 0x14
 };
 
 // Aligment: 1
@@ -6529,7 +8611,7 @@ public:
 };
 
 // Aligment: 5
-// Size: 168
+// Size: 160
 class CBoneConstraintPoseSpaceMorph : public CBoneConstraintBase
 {
 public:
@@ -6648,7 +8730,7 @@ public:
 };
 
 // Aligment: 3
-// Size: 448
+// Size: 456
 class CRenderMesh
 {
 public:
@@ -6752,16 +8834,6 @@ public:
 	Vector2D v2; // 0x14
 };
 
-// Aligment: 3
-// Size: 40
-struct FeVertexMapBuild_t
-{
-public:
-	CUtlString m_VertexMapName; // 0x0
-	uint32_t m_nNameHash; // 0x8
-	CUtlVector< float32 > m_Weights; // 0x10
-};
-
 // Aligment: 7
 // Size: 32
 struct FeNodeBase_t
@@ -6837,15 +8909,17 @@ public:
 	Vector vOffset; // 0x4
 };
 
-// Aligment: 4
-// Size: 144
+// Aligment: 6
+// Size: 176
 class CMorphConstraint : public CBaseConstraint, CBoneConstraintBase
 {
 public:
-	CUtlString m_sTargetMorph; // 0x70
-	int32_t m_nSlaveChannel; // 0x78
-	float m_flMin; // 0x7c
-	float m_flMax; // 0x80
+	bool m_bCacheAttempted; // 0x70
+	bool m_bCacheOk; // 0x71
+	CUtlString m_sTargetMorph; // 0x78
+	int32_t m_nSlaveChannel; // 0x80
+	float m_flMin; // 0x84
+	float m_flMax; // 0x88
 };
 
 // Aligment: 10
@@ -6889,7 +8963,7 @@ public:
 	uint32_t m_nBindOffsetBytes; // 0x8
 };
 
-// Aligment: 8
+// Aligment: 6
 // Size: 80
 struct FeBoxRigid_t
 {
@@ -6898,19 +8972,17 @@ public:
 	uint16_t nCollisionMask; // 0x2
 	Vector vSize; // 0x4
 	float flStickiness; // 0x10
-	uint16_t nVertexMapIndex; // 0x14
-	uint16_t nFlags; // 0x16
-	float32[2] flReserved; // 0x18
+	float32[3] flReserved; // 0x14
 	matrix3x4a_t tmFrame; // 0x20
 };
 
 // Aligment: 2
-// Size: 12
-struct FeStiffHingeBuild_t
+// Size: 4
+struct VPhysXDiskShapeHeader_t
 {
 public:
-	float flMaxAngle; // 0x0
-	uint16[3] nNode; // 0x4
+	uint8_t m_nType; // 0x0
+	uint16_t m_nCollisionAttribute; // 0x2
 };
 
 // Aligment: 10
@@ -6961,6 +9033,15 @@ public:
 	CUtlString m_SourceFilename; // 0x28
 };
 
+// Aligment: 2
+// Size: 32
+struct VPhysXDiskCapsule_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	Vector[2] m_vEnds; // 0x4
+	float m_flRadius; // 0x1c
+};
+
 // Aligment: 6
 // Size: 80
 class CVrSkeletalInputSettings
@@ -6984,7 +9065,7 @@ public:
 };
 
 // Aligment: 98
-// Size: 1512
+// Size: 1408
 struct PhysFeModelDesc_t
 {
 public:
@@ -7005,87 +9086,87 @@ public:
 	uint16_t m_nQuadCount2; // 0x50
 	uint16_t m_nCollisionSphereInclusiveCount; // 0x52
 	uint16_t m_nTreeDepth; // 0x54
-	uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x56
-	uint16_t m_nRopeCount; // 0x58
-	CUtlVector< uint16 > m_Ropes; // 0x60
-	CUtlVector< FeNodeBase_t > m_NodeBases; // 0x78
-	CUtlVector< FeSimdNodeBase_t > m_SimdNodeBases; // 0x90
-	CUtlVector< FeQuad_t > m_Quads; // 0xa8
-	CUtlVector< FeSimdQuad_t > m_SimdQuads; // 0xc0
-	CUtlVector< FeSimdTri_t > m_SimdTris; // 0xd8
-	CUtlVector< FeSimdRodConstraint_t > m_SimdRods; // 0xf0
-	CUtlVector< CTransform > m_InitPose; // 0x108
-	CUtlVector< FeRodConstraint_t > m_Rods; // 0x120
-	CUtlVector< FeAxialEdgeBend_t > m_AxialEdges; // 0x138
-	CUtlVector< float32 > m_NodeInvMasses; // 0x150
-	CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x168
-	CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x180
-	CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x198
-	CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1b0
-	CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1c8
-	CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e0
-	CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x1f8
-	CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x210
-	CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x228
-	CUtlVector< float32 > m_LegacyStretchForce; // 0x240
-	CUtlVector< float32 > m_NodeCollisionRadii; // 0x258
-	CUtlVector< float32 > m_DynNodeFriction; // 0x270
-	CUtlVector< float32 > m_LocalRotation; // 0x288
-	CUtlVector< float32 > m_LocalForce; // 0x2a0
-	CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2b8
-	CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d0
-	CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2e8
-	CUtlVector< uint16 > m_WorldCollisionNodes; // 0x300
-	CUtlVector< uint16 > m_TreeParents; // 0x318
-	CUtlVector< uint16 > m_TreeCollisionMasks; // 0x330
-	CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x348
-	CUtlVector< uint16 > m_FreeNodes; // 0x360
-	CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x378
-	CUtlVector< FeFitWeight_t > m_FitWeights; // 0x390
-	CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3a8
-	CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3c0
-	CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3d8
-	CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x3f0
-	CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x408
-	CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x420
-	CUtlVector< uint16 > m_SourceElems; // 0x438
-	CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x450
-	CUtlVector< FeTri_t > m_Tris; // 0x468
-	uint16_t m_nTriCount1; // 0x480
-	uint16_t m_nTriCount2; // 0x482
-	uint8_t m_nReservedUint8; // 0x484
-	uint8_t m_nExtraPressureIterations; // 0x485
-	uint8_t m_nExtraGoalIterations; // 0x486
-	uint8_t m_nExtraIterations; // 0x487
-	CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x488
-	CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4a0
-	CUtlVector< uint32 > m_VertexSetNames; // 0x4b8
-	CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4d0
-	CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x4e8
-	CUtlVector< uint8 > m_MorphSetData; // 0x500
-	CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x518
-	CUtlVector< uint8 > m_VertexMapValues; // 0x530
-	CUtlVector< FeEffectDesc_t > m_Effects; // 0x548
-	CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x560
-	CUtlVector< uint16 > m_LockToGoal; // 0x578
-	CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x590
-	float m_flInternalPressure; // 0x5a8
-	float m_flDefaultTimeDilation; // 0x5ac
-	float m_flWindage; // 0x5b0
-	float m_flWindDrag; // 0x5b4
-	float m_flDefaultSurfaceStretch; // 0x5b8
-	float m_flDefaultThreadStretch; // 0x5bc
-	float m_flDefaultGravityScale; // 0x5c0
-	float m_flDefaultVelAirDrag; // 0x5c4
-	float m_flDefaultExpAirDrag; // 0x5c8
-	float m_flDefaultVelQuadAirDrag; // 0x5cc
-	float m_flDefaultExpQuadAirDrag; // 0x5d0
-	float m_flRodVelocitySmoothRate; // 0x5d4
-	float m_flQuadVelocitySmoothRate; // 0x5d8
-	float m_flAddWorldCollisionRadius; // 0x5dc
-	float m_flDefaultVolumetricSolveAmount; // 0x5e0
-	uint16_t m_nRodVelocitySmoothIterations; // 0x5e4
-	uint16_t m_nQuadVelocitySmoothIterations; // 0x5e6
+	uint16_t m_nFitMatrixCount1; // 0x56
+	uint16_t m_nFitMatrixCount2; // 0x58
+	uint16_t m_nSimdFitMatrixCount1; // 0x5a
+	uint16_t m_nSimdFitMatrixCount2; // 0x5c
+	uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x5e
+	uint16_t m_nRopeCount; // 0x60
+	CUtlVector< uint16 > m_Ropes; // 0x68
+	CUtlVector< FeNodeBase_t > m_NodeBases; // 0x80
+	CUtlVector< FeSimdNodeBase_t > m_SimdNodeBases; // 0x98
+	CUtlVector< FeQuad_t > m_Quads; // 0xb0
+	CUtlVector< FeSimdQuad_t > m_SimdQuads; // 0xc8
+	CUtlVector< FeSimdTri_t > m_SimdTris; // 0xe0
+	CUtlVector< FeSimdRodConstraint_t > m_SimdRods; // 0xf8
+	CUtlVector< CTransform > m_InitPose; // 0x110
+	CUtlVector< FeRodConstraint_t > m_Rods; // 0x128
+	CUtlVector< FeAxialEdgeBend_t > m_AxialEdges; // 0x140
+	CUtlVector< float32 > m_NodeInvMasses; // 0x158
+	CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x170
+	CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x188
+	CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x1a0
+	CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1b8
+	CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1d0
+	CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e8
+	CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x200
+	CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x218
+	CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x230
+	CUtlVector< float32 > m_LegacyStretchForce; // 0x248
+	CUtlVector< float32 > m_NodeCollisionRadii; // 0x260
+	CUtlVector< float32 > m_DynNodeFriction; // 0x278
+	CUtlVector< float32 > m_LocalRotation; // 0x290
+	CUtlVector< float32 > m_LocalForce; // 0x2a8
+	CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2c0
+	CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d8
+	CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2f0
+	CUtlVector< uint16 > m_WorldCollisionNodes; // 0x308
+	CUtlVector< uint16 > m_TreeParents; // 0x320
+	CUtlVector< uint16 > m_TreeCollisionMasks; // 0x338
+	CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x350
+	CUtlVector< uint16 > m_FreeNodes; // 0x368
+	CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x380
+	CUtlVector< FeSimdFitMatrices_t > m_SimdFitMatrices; // 0x398
+	CUtlVector< FeFitWeight_t > m_FitWeights; // 0x3b0
+	CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3c8
+	CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3e0
+	CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3f8
+	CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x410
+	CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x428
+	CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x440
+	CUtlVector< uint16 > m_SourceElems; // 0x458
+	CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x470
+	CUtlVector< FeTri_t > m_Tris; // 0x488
+	uint16_t m_nTriCount1; // 0x4a0
+	uint16_t m_nTriCount2; // 0x4a2
+	uint8_t m_nReservedUint8; // 0x4a4
+	uint8_t m_nExtraPressureIterations; // 0x4a5
+	uint8_t m_nExtraGoalIterations; // 0x4a6
+	uint8_t m_nExtraIterations; // 0x4a7
+	CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x4a8
+	CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4c0
+	CUtlVector< uint32 > m_VertexSetNames; // 0x4d8
+	CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4f0
+	CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x508
+	CUtlVector< uint8 > m_MorphSetData; // 0x520
+	float m_flInternalPressure; // 0x538
+	float m_flWindage; // 0x53c
+	float m_flWindDrag; // 0x540
+	float m_flDefaultSurfaceStretch; // 0x544
+	float m_flDefaultThreadStretch; // 0x548
+	float m_flDefaultGravityScale; // 0x54c
+	float m_flDefaultVelAirDrag; // 0x550
+	float m_flDefaultExpAirDrag; // 0x554
+	float m_flDefaultVelQuadAirDrag; // 0x558
+	float m_flDefaultExpQuadAirDrag; // 0x55c
+	float m_flDefaultVelRodAirDrag; // 0x560
+	float m_flDefaultExpRodAirDrag; // 0x564
+	float m_flRodVelocitySmoothRate; // 0x568
+	float m_flQuadVelocitySmoothRate; // 0x56c
+	float m_flAddWorldCollisionRadius; // 0x570
+	float m_flDefaultVolumetricSolveAmount; // 0x574
+	uint16_t m_nRodVelocitySmoothIterations; // 0x578
+	uint16_t m_nQuadVelocitySmoothIterations; // 0x57a
 };
 
 // Aligment: 4
@@ -7099,6 +9180,14 @@ public:
 	float flStickiness; // 0x14
 };
 
+// Aligment: 1
+// Size: 80
+class CModelConfigElement_SetMaterialGroup : public CModelConfigElement
+{
+public:
+	CUtlString m_MaterialGroupName; // 0x48
+};
+
 // Aligment: 5
 // Size: 12
 struct FeRigidColliderIndices_t
@@ -7148,6 +9237,15 @@ public:
 	uint16_t nReserved; // 0x16
 };
 
+// Aligment: 2
+// Size: 96
+class CModelConfigElement_Command : public CModelConfigElement
+{
+public:
+	CUtlString m_Command; // 0x48
+	KeyValues3 m_Args; // 0x50
+};
+
 // Aligment: 2
 // Size: 32
 class FourVectors2D
@@ -7169,8 +9267,8 @@ public:
 	float flNodeWeight0; // 0x10
 };
 
-// Aligment: 20
-// Size: 632
+// Aligment: 21
+// Size: 640
 struct PermModelData_t
 {
 public:
@@ -7193,18 +9291,8 @@ public:
 	CUtlVector< int16 > m_remappingTable; // 0x218
 	CUtlVector< uint16 > m_remappingTableStarts; // 0x230
 	CUtlVector< ModelBoneFlexDriver_t > m_boneFlexDrivers; // 0x248
-	CUtlVector< CUtlString > m_BodyGroupsHiddenInTools; // 0x260
-};
-
-// Aligment: 4
-// Size: 32
-struct FeEffectDesc_t
-{
-public:
-	CUtlString sName; // 0x0
-	uint32_t nNameHash; // 0x8
-	int32_t nType; // 0xc
-	KeyValues3 m_Params; // 0x10
+	CModelConfigList* m_pModelConfigList; // 0x260
+	CUtlVector< CUtlString > m_BodyGroupsHiddenInTools; // 0x268
 };
 
 // Aligment: 2
@@ -7283,7 +9371,15 @@ public:
 	fltx4[4] f4Weights; // 0xf0
 };
 
-// Aligment: 5
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_RandomColor : public CModelConfigElement
+{
+public:
+	CColorGradient m_Gradient; // 0x48
+};
+
+// Aligment: 6
 // Size: 64
 struct FeFitMatrix_t
 {
@@ -7292,7 +9388,8 @@ public:
 	Vector vCenter; // 0x20
 	uint16_t nEnd; // 0x2c
 	uint16_t nNode; // 0x2e
-	uint16_t nBeginDynamic; // 0x30
+	uint16_t nCtrl; // 0x30
+	uint16_t nBeginDynamic; // 0x32
 };
 
 // Aligment: 4
@@ -7306,6 +9403,15 @@ public:
 	uint32_t m_nTriangleOffset; // 0x1c
 };
 
+// Aligment: 2
+// Size: 88
+class CModelConfigElement_SetBodygroup : public CModelConfigElement
+{
+public:
+	CUtlString m_GroupName; // 0x48
+	int32_t m_nChoice; // 0x50
+};
+
 // Aligment: 4
 // Size: 12
 struct FeWorldCollisionParams_t
@@ -7318,7 +9424,7 @@ public:
 };
 
 // Aligment: 8
-// Size: 184
+// Size: 160
 class CPhysSurfaceProperties
 {
 public:
@@ -7429,17 +9535,16 @@ public:
 	float flRelaxationFactor; // 0x8
 };
 
-// Aligment: 6
-// Size: 48
+// Aligment: 5
+// Size: 40
 struct FeTaperedCapsuleRigid_t
 {
 public:
-	fltx4[2] vSphere; // 0x0
-	float flStickiness; // 0x20
-	uint16_t nNode; // 0x24
-	uint16_t nCollisionMask; // 0x26
-	uint16_t nVertexMapIndex; // 0x28
-	uint16_t nFlags; // 0x2a
+	uint16_t nNode; // 0x0
+	uint16_t nCollisionMask; // 0x2
+	Vector[2] vCenter; // 0x4
+	float32[2] flRadius; // 0x1c
+	float flStickiness; // 0x24
 };
 
 // Aligment: 1
@@ -7450,21 +9555,6 @@ public:
 	CUtlVector< CHitBoxSet > m_HitBoxSets; // 0x0
 };
 
-// Aligment: 8
-// Size: 32
-struct FeVertexMapDesc_t
-{
-public:
-	CUtlString sName; // 0x0
-	uint32_t nNameHash; // 0x8
-	uint32_t nFlags; // 0xc
-	uint16_t nVertexBase; // 0x10
-	uint16_t nVertexCount; // 0x12
-	uint32_t nMapOffset; // 0x14
-	uint32_t nNodeListOffset; // 0x18
-	uint16_t nNodeListCount; // 0x1c
-};
-
 // Aligment: 4
 // Size: 64
 struct PermModelExtPart_t
@@ -7493,7 +9583,7 @@ public:
 };
 
 // Aligment: 6
-// Size: 112
+// Size: 80
 class CConstraintTarget
 {
 public:
@@ -7527,6 +9617,14 @@ public:
 	VPhysXConstraintParams_t m_params; // 0x8
 };
 
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_RandomPick : public CModelConfigElement
+{
+public:
+	CUtlVector< CUtlString > m_Choices; // 0x48
+};
+
 // Aligment: 7
 // Size: 136
 class CFeMorphLayer
@@ -7589,25 +9687,32 @@ public:
 	float m_flLength; // 0x4
 };
 
-// Aligment: 14
-// Size: 112
+// Aligment: 12
+// Size: 120
 class CHitBox
 {
 public:
-	Vector m_vMinBounds; // 0x20
-	Vector m_vMaxBounds; // 0x2c
-	CUtlString m_name; // 0x38
-	CUtlString m_sSurfaceProperty; // 0x40
-	CUtlString m_sBoneName; // 0x48
-	float m_flShapeRadius; // 0x50
-	uint32_t m_nBoneNameHash; // 0x54
-	int32_t m_nGroupId; // 0x58
-	Color m_cRenderColor; // 0x5c
-	uint16_t m_nHitBoxIndex; // 0x60
-	uint8_t m_nShapeType; // 0x62
-	bool m_bTranslationOnly; // 0x64
-	bool m_bVisible; // 0x65
-	bool m_bSelected; // 0x66
+	CUtlString m_name; // 0x30
+	CUtlString m_sSurfaceProperty; // 0x38
+	CUtlString m_sBoneName; // 0x40
+	uint32_t m_nBoneNameHash; // 0x48
+	int32_t m_nGroupId; // 0x4c
+	Color m_cRenderColor; // 0x50
+	uint16_t m_nHitBoxIndex; // 0x54
+	Vector m_vMinBounds; // 0x58
+	Vector m_vMaxBounds; // 0x64
+	bool m_bTranslationOnly; // 0x71
+	bool m_bVisible; // 0x72
+	bool m_bSelected; // 0x73
+};
+
+// Aligment: 2
+// Size: 20
+struct VPhysXShapeCompoundHeader2_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	CResourceArray< CResourceArray< uint8 > > m_components; // 0x4
+	CResourceArray< uint8 > m_types; // 0xc
 };
 
 // Aligment: 2
@@ -7619,8 +9724,8 @@ public:
 	Vector m_vNormal; // 0xc
 };
 
-// Aligment: 13
-// Size: 192
+// Aligment: 12
+// Size: 208
 class CMaterialDrawDescriptor
 {
 public:
@@ -7634,10 +9739,9 @@ public:
 	float m_flUvDensity; // 0x1c
 	// MDefaultString
 	Vector m_vTintColor; // 0x24
-	int16_t m_CullDataIndex; // 0x32
-	int32_t m_nMeshID; // 0x34
-	CRenderBufferBinding m_indexBuffer; // 0xa0
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_material; // 0xb8
+	int8_t m_CullDataIndex; // 0x32
+	CRenderBufferBinding m_indexBuffer; // 0xb0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_material; // 0xc8
 };
 
 // Aligment: 2
@@ -7649,6 +9753,27 @@ public:
 	uint32_t m_nUpType; // 0x80
 };
 
+// Aligment: 6
+// Size: 192
+struct FeSimdFitMatrices_t
+{
+public:
+	FourVectors vCenter; // 0x0
+	uint16[4] nEnd; // 0x30
+	uint16[4] nCtrl; // 0x38
+	FourCovMatrices3 AqqInv; // 0x40
+	fltx4 flStretchMin; // 0xa0
+	fltx4 flStretchMax; // 0xb0
+};
+
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_UserPick : public CModelConfigElement
+{
+public:
+	CUtlVector< CUtlString > m_Choices; // 0x48
+};
+
 // Aligment: 4
 // Size: 56
 class CMorphBundleData
@@ -7763,6 +9888,25 @@ public:
 	CUtlString m_embeddedKeyvalues; // 0x130
 };
 
+// Aligment: 3
+// Size: 40
+class CModelConfig
+{
+public:
+	CUtlString m_ConfigName; // 0x0
+	CUtlVector< CModelConfigElement* > m_Elements; // 0x8
+	bool m_bTopLevel; // 0x20
+};
+
+// Aligment: 2
+// Size: 72
+class CModelConfigElement
+{
+public:
+	CUtlString m_ElementName; // 0x8
+	CUtlVector< CModelConfigElement* > m_NestedElements; // 0x10
+};
+
 // Aligment: 2
 // Size: 28
 struct RnCapsule_t
@@ -7838,15 +9982,6 @@ public:
 	bool m_bIgnoreRotation; // 0x84
 };
 
-// Aligment: 2
-// Size: 16
-struct FeProxyVertexMap_t
-{
-public:
-	CUtlString m_Name; // 0x0
-	float m_flWeight; // 0x8
-};
-
 // Aligment: 2
 // Size: 32
 class CMorphData
@@ -7874,6 +10009,16 @@ public:
 	int32[3] m_nIndex; // 0x0
 };
 
+// Aligment: 3
+// Size: 32
+class CModelConfigList
+{
+public:
+	bool m_bHideMaterialGroupInTools; // 0x0
+	bool m_bHideRenderColorInTools; // 0x1
+	CUtlVector< CModelConfig* > m_Configs; // 0x8
+};
+
 // Aligment: 3
 // Size: 48
 struct FeSimdAnimStrayRadius_t
@@ -7884,13 +10029,12 @@ public:
 	fltx4 flRelaxationFactor; // 0x20
 };
 
-// Aligment: 2
-// Size: 48
+// Aligment: 1
+// Size: 28
 struct FeBuildSphereRigid_t : public FeSphereRigid_t
 {
 public:
-	int32_t m_nPriority; // 0x20
-	uint32_t m_nVertexMapHash; // 0x24
+	int32_t m_nPriority; // 0x18
 };
 
 // Aligment: 2
@@ -7954,12 +10098,19 @@ public:
 	CUtlString m_keyValueText; // 0x50
 };
 
-// Aligment: 1
-// Size: 24
+// Aligment: 8
+// Size: 160
 struct VPhysXCollisionAttributes_t
 {
 public:
-	CUtlVector< CUtlString > m_PhysicsTagStrings; // 0x0
+	uint32_t m_CollisionGroup; // 0x0
+	CUtlVector< uint32 > m_InteractAs; // 0x8
+	CUtlVector< uint32 > m_InteractWith; // 0x20
+	CUtlVector< uint32 > m_InteractExclude; // 0x38
+	CUtlString m_CollisionGroupString; // 0x50
+	CUtlVector< CUtlString > m_InteractAsStrings; // 0x58
+	CUtlVector< CUtlString > m_InteractWithStrings; // 0x70
+	CUtlVector< CUtlString > m_InteractExcludeStrings; // 0x88
 };
 
 // Aligment: 3
@@ -7972,13 +10123,12 @@ public:
 	CFeJiggleBone m_jiggleBone; // 0x8
 };
 
-// Aligment: 2
+// Aligment: 1
 // Size: 96
 struct FeBuildBoxRigid_t : public FeBoxRigid_t
 {
 public:
 	int32_t m_nPriority; // 0x50
-	uint32_t m_nVertexMapHash; // 0x54
 };
 
 // Aligment: 0
@@ -8011,15 +10161,13 @@ public:
 	bool m_bAdditive; // 0x20
 };
 
-// Aligment: 4
-// Size: 16
+// Aligment: 2
+// Size: 8
 struct vmix_pitch_shift_desc_t
 {
 public:
 	int32_t m_nGrainSampleCount; // 0x0
 	float m_flPitchShift; // 0x4
-	int32_t m_nQuality; // 0x8
-	int32_t m_nProcType; // 0xc
 };
 
 // Aligment: 1
@@ -8182,23 +10330,6 @@ public:
 	CUtlVector< SosEditItemInfo_t > m_EditItems; // 0x0
 };
 
-// Aligment: 10
-// Size: 40
-struct vmix_vocoder_desc_t
-{
-public:
-	int32_t m_nBandCount; // 0x0
-	float m_flBandwidth; // 0x4
-	float m_fldBModGain; // 0x8
-	float m_flFreqRangeStart; // 0xc
-	float m_flFreqRangeEnd; // 0x10
-	float m_fldBUnvoicedGain; // 0x14
-	float m_flAttackTimeMS; // 0x18
-	float m_flReleaseTimeMS; // 0x1c
-	int32_t m_nDebugBand; // 0x20
-	bool m_bPeakMode; // 0x24
-};
-
 // Aligment: 1
 // Size: 128
 struct vmix_eq8_desc_t
@@ -8221,6 +10352,15 @@ public:
 	float m_flWidth; // 0x24
 };
 
+// Aligment: 2
+// Size: 8
+struct CPVSData::pvsmask_t
+{
+public:
+	uint32_t m_nOffset; // 0x0
+	uint32_t m_nMask; // 0x4
+};
+
 // Aligment: 1
 // Size: 24
 class CSSDSMsg_EndFrame
@@ -8238,6 +10378,44 @@ public:
 	CUtlString m_ViewName; // 0x10
 };
 
+// Aligment: 4
+// Size: 72
+class CPVSData
+{
+public:
+	CPVSData* m_pNext; // 0x0
+	uint16_t m_nPVSMasks; // 0x8
+	uint16_t m_nPVSFlags; // 0xa
+	CPVSData::pvsmask_t[7] m_masks; // 0xc
+};
+
+// Aligment: 18
+// Size: 176
+class CSceneObject
+{
+public:
+	ISceneObjectDesc* m_pDesc; // 0x10
+	CSceneObjectReference_t* m_pRefData; // 0x18
+	float m_flStartFadeDistanceSquared; // 0x20
+	float m_flFarCullDistanceSquared; // 0x24
+	uint16_t m_nObjectTypeFlags; // 0x28
+	uint16_t m_nGameRenderCounter; // 0x2a
+	uint8_t m_nMeshGroupMaskSmall; // 0x2f
+	bitfield:2 m_nDebugLevel; // 0x0
+	bitfield:2 m_nSizeCullBloat; // 0x0
+	bitfield:1 m_nBoundsType; // 0x0
+	uint8_t m_nID; // 0x31
+	int8_t m_nBoundsGroupIndex; // 0x32
+	uint8_t m_nObjectClass; // 0x33
+	matrix3x4a_t m_transform; // 0x40
+	CPVSData* m_pPVSData; // 0x70
+	uint64_t m_nOriginalRenderableFlags; // 0x88
+	uint64_t m_nRenderableFlags; // 0x90
+	CUtlStringToken m_nLayerMatchID; // 0xa4
+public:
+	static float32[4] &Get_s_flSizeCullBloatScale() { return *reinterpret_cast<float32[4]*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CSceneObject")->m_static_fiels[0]->m_instance); }
+};
+
 // Aligment: 3
 // Size: 48
 class CSSDSMsg_ViewTargetList
@@ -8256,6 +10434,17 @@ public:
 // <no members described>
 };
 
+// Aligment: 4
+// Size: 48
+struct CSceneObjectReference_t
+{
+public:
+	VectorAligned m_vecAABBMins; // 0x0
+	VectorAligned m_vecAABBMaxes; // 0x10
+	uint64_t m_nRenderableFlags; // 0x20
+	CSceneObject* m_pObject; // 0x28
+};
+
 // Aligment: 6
 // Size: 56
 class CSSDSMsg_LayerBase
@@ -8269,6 +10458,22 @@ public:
 	CUtlString m_displayText; // 0x30
 };
 
+// Aligment: 9
+// Size: 1136
+struct CSceneObjectExtraData_t
+{
+public:
+	uint64_t m_nCurrentMeshGroupMask; // 0x440
+	CUtlStringToken m_nLayerForceID; // 0x450
+	Vector m_vLightingOrigin; // 0x454
+	float m_flDepthSortBias; // 0x460
+	uint8[4] m_nVisibleToPlayer; // 0x464
+	uint16_t m_nAlphaFade; // 0x468
+	int16_t m_nViewProducerIndex; // 0x46a
+	bool m_bLightingOriginIsInWorldSpace; // 0x46c
+	int8_t m_nCurrentLOD; // 0x46d
+};
+
 // Aligment: 0
 // Size: 56
 class CSSDSMsg_PostLayer : public CSSDSMsg_LayerBase
@@ -8312,24 +10517,22 @@ public:
 	int32_t m_nFormat; // 0x2c
 };
 
-// Aligment: 13
-// Size: 216
+// Aligment: 11
+// Size: 152
 class CVoxelVisibility
 {
 public:
-	CUtlVector< uint32 > m_blockOffset; // 0x40
-	CUtlVector< voxel_vis_cluster_t > m_clusters; // 0x58
-	CUtlVector< uint16 > m_mergeClusters; // 0x70
-	CUtlVector< voxel_vis_mergelist_t > m_mergeLists; // 0x88
-	Vector m_vMinBounds; // 0xa0
-	Vector m_vMaxBounds; // 0xac
-	float m_flGridSize; // 0xb8
-	int32_t m_nNodeCount; // 0xbc
-	int32_t m_nRegionCount; // 0xc0
-	voxel_vis_cluster_t m_skyVisibilityCluster; // 0xc4
-	voxel_vis_compression_t m_nPVSCompression; // 0xcc
-	uint32_t m_nTreeSize; // 0xd0
-	uint32_t m_nPVSSizeCompressed; // 0xd4
+	CUtlVector< uint32 > m_blockOffset; // 0x30
+	CUtlVector< voxel_vis_cluster_t > m_clusters; // 0x48
+	Vector m_vMinBounds; // 0x60
+	Vector m_vMaxBounds; // 0x6c
+	float m_flGridSize; // 0x78
+	int32_t m_nNodeCount; // 0x7c
+	int32_t m_nRegionCount; // 0x80
+	voxel_vis_cluster_t m_skyVisibilityCluster; // 0x84
+	voxel_vis_compression_t m_nPVSCompression; // 0x8c
+	uint32_t m_nTreeSize; // 0x90
+	uint32_t m_nPVSSizeCompressed; // 0x94
 };
 
 // Aligment: 2
@@ -8369,29 +10572,14 @@ public:
 };
 
 // Aligment: 4
-// Size: 200
+// Size: 216
 struct World_t
 {
 public:
 	WorldBuilderParams_t m_builderParams; // 0x0
-	CUtlVector< NodeData_t > m_worldNodes; // 0x68
-	BakedLightingInfo_t m_worldLightingInfo; // 0x80
-	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_entityLumps; // 0xb0
-};
-
-// Aligment: 8
-// Size: 56
-struct AggregateMeshInfo_t
-{
-public:
-	Vector4D m_vTintColor; // 0x0
-	Vector[2] m_vWorldBounds; // 0x10
-	uint16_t m_nDrawDescriptorIndex; // 0x28
-	uint16_t m_nVisClusterMemberOffset; // 0x2a
-	uint8_t m_nVisClusterMemberCount; // 0x2c
-	uint8_t _pad; // 0x2d
-	int32_t m_nCubeMapPrecomputedHandshake; // 0x30
-	ObjectTypeFlags_t m_objectFlags; // 0x34
+	CUtlVector< NodeData_t > m_worldNodes; // 0x58
+	BakedLightingInfo_t m_worldLightingInfo; // 0x70
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_entityLumps; // 0xc0
 };
 
 // Aligment: 4
@@ -8413,25 +10601,20 @@ public:
 // <no members described>
 };
 
-// Aligment: 2
-// Size: 8
-struct voxel_vis_mergelist_t
-{
-public:
-	uint32_t m_nFirstCluster; // 0x0
-	uint32_t m_nClusterCount; // 0x4
-};
-
-// Aligment: 5
-// Size: 48
+// Aligment: 9
+// Size: 80
 struct BakedLightingInfo_t
 {
 public:
-	uint32_t m_nLightmapVersionNumber; // 0x0
-	uint32_t m_nLightmapGameVersionNumber; // 0x4
-	Vector2D m_vLightmapUvScale; // 0x8
-	bool m_bHasLightmaps; // 0x10
-	CUtlVector< CStrongHandle< InfoForResourceTypeCTextureBase > > m_lightMaps; // 0x18
+	CUtlVector< uint8 > m_PerVertexLightingDataPlainRGBM; // 0x0
+	uint32_t m_nPerVertexLightingDataPlainRGBMWidth; // 0x18
+	uint32_t m_nPerVertexLightingDataPlainRGBMHeight; // 0x1c
+	uint32_t m_nPerVertexLightingDataPlainRGBMDepth; // 0x20
+	uint32_t m_nLightmapVersionNumber; // 0x24
+	uint32_t m_nLightmapGameVersionNumber; // 0x28
+	Vector2D m_vLightmapUvScale; // 0x2c
+	bool m_bHasLightmaps; // 0x34
+	CUtlVector< CStrongHandle< InfoForResourceTypeCTextureBase > > m_lightMaps; // 0x38
 };
 
 // Aligment: 2
@@ -8466,7 +10649,7 @@ public:
 };
 
 // Aligment: 13
-// Size: 320
+// Size: 352
 struct WorldNode_t
 {
 public:
@@ -8474,7 +10657,7 @@ public:
 	CUtlVector< InfoOverlayData_t > m_infoOverlays; // 0x18
 	CUtlVector< uint16 > m_visClusterMembership; // 0x30
 	CUtlVector< AABB_t > m_boundsGroups; // 0x48
-	CUtlVector< AggregateSceneObject_t > m_aggregateSceneObjects; // 0x60
+	CUtlVector< BoneOverride_t > m_boneOverrides; // 0x60
 	CUtlVector< ExtraVertexStreamOverride_t > m_extraVertexStreamOverrides; // 0x78
 	CUtlVector< MaterialOverride_t > m_materialOverrides; // 0x90
 	CUtlVector< WorldNodeOnDiskBufferData_t > m_extraVertexStreams; // 0xa8
@@ -8485,21 +10668,20 @@ public:
 	BakedLightingInfo_t m_nodeLightingInfo; // 0x110
 };
 
-// Aligment: 6
-// Size: 80
+// Aligment: 5
+// Size: 72
 struct PermEntityLumpData_t
 {
 public:
 	CUtlString m_name; // 0x0
-	CUtlString m_hammerUniqueId; // 0x8
-	EntityLumpFlags_t m_flags; // 0x10
-	CUtlString m_manifestName; // 0x18
-	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_childLumps; // 0x20
-	CUtlVector< EntityKeyValueData_t > m_entityKeyValues; // 0x38
+	EntityLumpFlags_t m_flags; // 0x8
+	CUtlString m_manifestName; // 0x10
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_childLumps; // 0x18
+	CUtlVector< EntityKeyValueData_t > m_entityKeyValues; // 0x30
 };
 
-// Aligment: 21
-// Size: 104
+// Aligment: 19
+// Size: 84
 struct WorldBuilderParams_t
 {
 public:
@@ -8522,8 +10704,15 @@ public:
 	bool m_bWrapInAtlas; // 0x48
 	bool m_bBuildBakedLighting; // 0x49
 	Vector2D m_vLightmapUvScale; // 0x4c
-	uint64_t m_nCompileTimestamp; // 0x58
-	uint64_t m_nCompileFingerprint; // 0x60
+};
+
+// Aligment: 2
+// Size: 56
+struct BoneOverride_t : public BaseSceneObjectOverride_t
+{
+public:
+	CUtlVector< uint32 > m_boneHashes; // 0x8
+	CUtlVector< matrix3x4_t > m_boneTransforms; // 0x20
 };
 
 // Aligment: 0
@@ -8549,21 +10738,6 @@ public:
 	CUtlString m_worldNodePrefix; // 0x48
 };
 
-// Aligment: 8
-// Size: 96
-struct AggregateSceneObject_t
-{
-public:
-	Vector[2] m_vWorldBounds; // 0x0
-	ObjectTypeFlags_t m_allFlags; // 0x18
-	ObjectTypeFlags_t m_anyFlags; // 0x1c
-	int16_t m_nLayer; // 0x20
-	int16_t m_nBoundsGroupIndex; // 0x22
-	CUtlVector< AggregateMeshInfo_t > m_aggregateMeshes; // 0x28
-	CUtlVector< uint16 > m_visClusterMembership; // 0x40
-	CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x58
-};
-
 // Aligment: 4
 // Size: 32
 struct ExtraVertexStreamOverride_t : public BaseSceneObjectOverride_t
@@ -8575,8 +10749,8 @@ public:
 	CRenderBufferBinding m_extraBufferBinding; // 0x10
 };
 
-// Aligment: 16
-// Size: 144
+// Aligment: 17
+// Size: 168
 struct SceneObject_t
 {
 public:
@@ -8596,6 +10770,7 @@ public:
 	int16_t m_nBoundsGroupIndex; // 0x78
 	CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x80
 	CStrongHandle< InfoForResourceTypeCRenderMesh > m_renderable; // 0x88
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCTextureBase > > m_externalTextures; // 0x90
 };
 
 // Aligment: 0
@@ -8607,141 +10782,169 @@ public:
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_LerpEndCapScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
-	float m_flOutput; // 0x184
+	float m_flOutput; // 0x144
 	// MPropertyFriendlyName "lerp time"
 	// MDefaultString
-	float m_flLerpTime; // 0x188
+	float m_flLerpTime; // 0x148
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_CPOffsetToPercentageBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x180
+	float m_flInputMin; // 0x140
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x184
+	float m_flInputMax; // 0x144
 	// MPropertyFriendlyName "percentage bias"
 	// MDefaultString
-	float m_flInputBias; // 0x188
+	float m_flInputBias; // 0x148
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x18c
+	int32_t m_nStartCP; // 0x14c
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x190
+	int32_t m_nEndCP; // 0x150
 	// MPropertyFriendlyName "offset control point"
 	// MDefaultString
-	int32_t m_nOffsetCP; // 0x194
+	int32_t m_nOffsetCP; // 0x154
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOuputCP; // 0x198
+	int32_t m_nOuputCP; // 0x158
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x19c
+	int32_t m_nInputCP; // 0x15c
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a0
+	bool m_bRadialCheck; // 0x160
 	// MPropertyFriendlyName "treat offset as scale of total distance"
 	// MDefaultString
-	bool m_bScaleOffset; // 0x1a1
+	bool m_bScaleOffset; // 0x161
 	// MPropertyFriendlyName "offset amount"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffset; // 0x1a4
+	Vector m_vecOffset; // 0x164
+};
+
+// Aligment: 4
+// Size: 352
+class C_INIT_SequenceFromCP : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "kill unused"
+	// MDefaultString
+	bool m_bKillUnused; // 0x140
+	// MPropertyFriendlyName "offset propotional to radius"
+	// MDefaultString
+	bool m_bRadiusScale; // 0x141
+	// MPropertyFriendlyName "control point"
+	// MDefaultString
+	int32_t m_nCP; // 0x144
+	// MPropertyFriendlyName "per particle spatial offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffset; // 0x148
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelMeshGroupScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 2
-// Size: 1472
+// Size: 1152
 class C_INIT_InitVecCollection : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionVecInput m_InputValue; // 0x180
+	CParticleCollectionVecInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
 };
 
 // Aligment: 7
-// Size: 656
+// Size: 528
 class C_OP_RotateVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "rotation axis min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecRotAxisMin; // 0x184
+	Vector m_vecRotAxisMin; // 0x144
 	// MPropertyFriendlyName "rotation axis max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecRotAxisMax; // 0x190
+	Vector m_vecRotAxisMax; // 0x150
 	// MPropertyFriendlyName "rotation rate min"
 	// MDefaultString
-	float m_flRotRateMin; // 0x19c
+	float m_flRotRateMin; // 0x15c
 	// MPropertyFriendlyName "rotation rate max"
 	// MDefaultString
-	float m_flRotRateMax; // 0x1a0
+	float m_flRotRateMax; // 0x160
 	// MPropertyFriendlyName "normalize output"
 	// MDefaultString
-	bool m_bNormalize; // 0x1a4
+	bool m_bNormalize; // 0x164
 	// MPropertyFriendlyName "per particle scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flScale; // 0x1a8
+	CPerParticleFloatInput m_flScale; // 0x168
 };
 
 // Aligment: 8
-// Size: 464
+// Size: 400
 class C_OP_RampScalarLinear : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x188
+	float m_flStartTime_min; // 0x148
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x18c
+	float m_flStartTime_max; // 0x14c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1c0
+	ParticleAttributeIndex_t m_nField; // 0x180
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1c4
+	bool m_bProportionalOp; // 0x184
 };
 
 // Aligment: 2
-// Size: 240
+// Size: 176
 struct FloatInputMaterialVariable_t
 {
 public:
@@ -8754,70 +10957,70 @@ public:
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_CycleScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "destination scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDestField; // 0x180
+	ParticleAttributeIndex_t m_nDestField; // 0x140
 	// MPropertyFriendlyName "Value at start of cycle"
 	// MDefaultString
-	float m_flStartValue; // 0x184
+	float m_flStartValue; // 0x144
 	// MPropertyFriendlyName "Value at end of cycle"
 	// MDefaultString
-	float m_flEndValue; // 0x188
+	float m_flEndValue; // 0x148
 	// MPropertyFriendlyName "Cycle time"
 	// MDefaultString
-	float m_flCycleTime; // 0x18c
+	float m_flCycleTime; // 0x14c
 	// MPropertyFriendlyName "Do not repeat cycle"
 	// MDefaultString
-	bool m_bDoNotRepeatCycle; // 0x190
+	bool m_bDoNotRepeatCycle; // 0x150
 	// MPropertyFriendlyName "Synchronize particles"
 	// MDefaultString
-	bool m_bSynchronizeParticles; // 0x191
+	bool m_bSynchronizeParticles; // 0x151
 	// MPropertyFriendlyName "Scale Start/End Control Point"
 	// MDefaultString
-	int32_t m_nCPScale; // 0x194
+	int32_t m_nCPScale; // 0x154
 	// MPropertyFriendlyName "start scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPFieldMin; // 0x198
+	int32_t m_nCPFieldMin; // 0x158
 	// MPropertyFriendlyName "end scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPFieldMax; // 0x19c
+	int32_t m_nCPFieldMax; // 0x15c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a0
+	ParticleSetMethod_t m_nSetMethod; // 0x160
 };
 
 // Aligment: 5
-// Size: 896
+// Size: 704
 class C_OP_SetAttributeToScalarExpression : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	ScalarExpressionType_t m_nExpression; // 0x180
+	ScalarExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "input 1"
 	// MDefaultString
-	CPerParticleFloatInput m_flInput1; // 0x188
+	CPerParticleFloatInput m_flInput1; // 0x148
 	// MPropertyFriendlyName "input 2"
 	// MDefaultString
-	CPerParticleFloatInput m_flInput2; // 0x270
+	CPerParticleFloatInput m_flInput2; // 0x1f0
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x358
+	ParticleAttributeIndex_t m_nOutputField; // 0x298
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x35c
+	ParticleSetMethod_t m_nSetMethod; // 0x29c
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_WorldCollideConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
@@ -8825,247 +11028,260 @@ public:
 };
 
 // Aligment: 10
-// Size: 512
+// Size: 448
 class C_OP_RenderTreeShake : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "peak strength"
 	// MDefaultString
-	float m_flPeakStrength; // 0x1d0
+	float m_flPeakStrength; // 0x190
 	// MPropertyFriendlyName "peak strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nPeakStrengthFieldOverride; // 0x1d4
+	ParticleAttributeIndex_t m_nPeakStrengthFieldOverride; // 0x194
 	// MPropertyFriendlyName "radius"
 	// MDefaultString
-	float m_flRadius; // 0x1d8
+	float m_flRadius; // 0x198
 	// MPropertyFriendlyName "strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nRadiusFieldOverride; // 0x1dc
+	ParticleAttributeIndex_t m_nRadiusFieldOverride; // 0x19c
 	// MPropertyFriendlyName "shake duration after end"
 	// MDefaultString
-	float m_flShakeDuration; // 0x1e0
+	float m_flShakeDuration; // 0x1a0
 	// MPropertyFriendlyName "amount of time taken to smooth between different shake parameters"
 	// MDefaultString
-	float m_flTransitionTime; // 0x1e4
+	float m_flTransitionTime; // 0x1a4
 	// MPropertyFriendlyName "Twist amount (-1..1)"
 	// MDefaultString
-	float m_flTwistAmount; // 0x1e8
+	float m_flTwistAmount; // 0x1a8
 	// MPropertyFriendlyName "Radial Amount (-1..1)"
 	// MDefaultString
-	float m_flRadialAmount; // 0x1ec
+	float m_flRadialAmount; // 0x1ac
 	// MPropertyFriendlyName "Control Point Orientation Amount (-1..1)"
 	// MDefaultString
-	float m_flControlPointOrientationAmount; // 0x1f0
+	float m_flControlPointOrientationAmount; // 0x1b0
 	// MPropertyFriendlyName "Control Point for Orientation Amount"
 	// MDefaultString
-	int32_t m_nControlPointForLinearDirection; // 0x1f4
+	int32_t m_nControlPointForLinearDirection; // 0x1b4
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 688
 class C_OP_SetPerChildControlPoint : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nParticleIncrement; // 0x190
+	CParticleCollectionFloatInput m_nParticleIncrement; // 0x150
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x278
+	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1f8
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x360
+	bool m_bSetOrientation; // 0x2a0
 	// MPropertyFriendlyName "set number of children based on particle count"
 	// MDefaultString
-	bool m_bNumBasedOnParticleCount; // 0x361
+	bool m_bNumBasedOnParticleCount; // 0x2a1
 };
 
-// Aligment: 42
-// Size: 6528
+// Aligment: 39
+// Size: 2496
 class C_OP_RenderSprites : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "sequence id override"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSequenceOverride; // 0xca0
+	int32_t m_nSequenceOverride; // 0x360
 	// MPropertyFriendlyName "orientation type"
 	// MPropertyAttributeChoiceEnumName
 	// MDefaultString
-	int32_t m_nOrientationType; // 0xd88
+	int32_t m_nOrientationType; // 0x364
 	// MPropertyFriendlyName "orientation control point"
 	// MDefaultString
-	int32_t m_nOrientationControlPoint; // 0xd8c
-	// MPropertyFriendlyName "flip normal"
-	// MDefaultString
-	bool m_bFlipNormal; // 0xd90
+	int32_t m_nOrientationControlPoint; // 0x368
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xd94
+	float m_flMinSize; // 0x36c
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xd98
+	float m_flMaxSize; // 0x370
 	// MPropertyFriendlyName "Factor to map size adjustment to alpha"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flAlphaAdjustWithSizeAdjust; // 0xd9c
+	float m_flAlphaAdjustWithSizeAdjust; // 0x374
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flStartFadeSize; // 0xda0
+	CParticleCollectionFloatInput m_flStartFadeSize; // 0x378
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flEndFadeSize; // 0xe88
+	CParticleCollectionFloatInput m_flEndFadeSize; // 0x420
 	// MPropertyFriendlyName "start dot product value for fading as the particle normal becomes aligned with the view vector"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flStartFadeDot; // 0xf70
+	float m_flStartFadeDot; // 0x4c8
 	// MPropertyFriendlyName "end dot product value for fading as the particle normal becomes aligned with the view vector"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flEndFadeDot; // 0xf74
+	float m_flEndFadeDot; // 0x4cc
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0xf78
+	float m_flDepthBias; // 0x4d0
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureScaleU; // 0xf80
+	float m_flFinalTextureScaleU; // 0x4d4
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureScaleV; // 0x1068
+	float m_flFinalTextureScaleV; // 0x4d8
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureOffsetU; // 0x1150
+	float m_flFinalTextureOffsetU; // 0x4dc
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureOffsetV; // 0x1238
+	float m_flFinalTextureOffsetV; // 0x4e0
 	// MPropertyFriendlyName "X offset of center point"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flCenterXOffset; // 0x1320
+	float m_flCenterXOffset; // 0x4e4
 	// MPropertyFriendlyName "Y offset of center point"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flCenterYOffset; // 0x1324
+	float m_flCenterYOffset; // 0x4e8
 	// MPropertyFriendlyName "intraframe zoom amount for sequence 0"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flZoomAmount0; // 0x1328
+	float m_flZoomAmount0; // 0x4ec
 	// MPropertyFriendlyName "intraframe zoom amount for sequence 1"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flZoomAmount1; // 0x132c
+	float m_flZoomAmount1; // 0x4f0
 	// MPropertyFriendlyName "distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	bool m_bDistanceAlpha; // 0x1330
+	bool m_bDistanceAlpha; // 0x4f4
 	// MPropertyFriendlyName "use soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	bool m_bSoftEdges; // 0x1331
+	bool m_bSoftEdges; // 0x4f5
 	// MPropertyFriendlyName "start value for soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	float m_flEdgeSoftnessStart; // 0x1334
+	float m_flEdgeSoftnessStart; // 0x4f8
 	// MPropertyFriendlyName "end value for soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	float m_flEdgeSoftnessEnd; // 0x1338
+	float m_flEdgeSoftnessEnd; // 0x4fc
 	// MPropertyFriendlyName "enable particle outlining"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	bool m_bOutline; // 0x133c
+	bool m_bOutline; // 0x500
 	// MPropertyFriendlyName "outline color"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	Color m_OutlineColor; // 0x133d
+	Color m_OutlineColor; // 0x501
 	// MPropertyFriendlyName "outline alpha"
 	// MDefaultString
 	// MPropertyAttributeRange "0 255"
 	// MPropertyGroupName "Outlining"
-	int32_t m_nOutlineAlpha; // 0x1344
+	int32_t m_nOutlineAlpha; // 0x508
 	// MPropertyFriendlyName "outline start 0"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineStart0; // 0x1348
+	float m_flOutlineStart0; // 0x50c
 	// MPropertyFriendlyName "outline start 1"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineStart1; // 0x134c
+	float m_flOutlineStart1; // 0x510
 	// MPropertyFriendlyName "outline end 0"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineEnd0; // 0x1350
+	float m_flOutlineEnd0; // 0x514
 	// MPropertyFriendlyName "outline end 1"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineEnd1; // 0x1354
+	float m_flOutlineEnd1; // 0x518
 	// MPropertyFriendlyName "enable yaw for particles aligned to normals"
 	// MDefaultString
-	bool m_bUseYawWithNormalAligned; // 0x1358
+	bool m_bUseYawWithNormalAligned; // 0x51c
 	// MPropertyFriendlyName "Normal Mapping"
 	// MDefaultString
-	bool m_bNormalMap; // 0x1359
+	bool m_bNormalMap; // 0x51d
 	// MPropertyFriendlyName "Bump Strength"
 	// MDefaultString
-	float m_flBumpStrength; // 0x135c
+	float m_flBumpStrength; // 0x520
 	// MPropertyFriendlyName "Radius Scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0x1360
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x528
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x1448
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x5d0
 	// MPropertyFriendlyName "color blend"
 	// MPropertyColorWithNoAlpha
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1530
+	CParticleCollectionVecInput m_vecColorScale; // 0x678
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x1960
+	ParticleColorBlendType_t m_nColorBlendType; // 0x9a8
 	// MPropertyFriendlyName "normal texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hNormalTexture; // 0x1968
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hNormalTexture; // 0x9b0
 	// MPropertyFriendlyName "Sort Method"
 	// MPropertyAttributeChoiceEnumName
 	// MDefaultString
-	int32_t m_nSortMethod; // 0x1974
-	// MPropertyFriendlyName "Particle Shadows"
+	int32_t m_nSortMethod; // 0x9bc
+};
+
+// Aligment: 5
+// Size: 464
+class C_INIT_ModelCull : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	bool m_bParticleShadows; // 0x1978
-	// MPropertyFriendlyName "Shadow Density"
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "use only bounding box"
 	// MDefaultString
-	float m_flShadowDensity; // 0x197c
+	bool m_bBoundBox; // 0x144
+	// MPropertyFriendlyName "cull outside instead of inside"
+	// MDefaultString
+	bool m_bCullOutside; // 0x145
+	// MPropertyFriendlyName "use bones instead of hitboxes"
+	// MDefaultString
+	bool m_bUseBones; // 0x146
+	// MPropertyFriendlyName "hitbox set"
+	// MDefaultString
+	char[128] m_HitboxSetName; // 0x147
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ExternalWindForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to sample wind"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	Vector m_vecScale; // 0x184
+	Vector m_vecScale; // 0x144
 };
 
 // Aligment: 1
@@ -9079,7 +11295,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 416
+// Size: 352
 class C_OP_SpinYaw : public CGeneralSpin, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -9087,20 +11303,20 @@ public:
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_ParentVortices : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "amount of force"
 	// MDefaultString
-	float m_flForceScale; // 0x180
+	float m_flForceScale; // 0x140
 	// MPropertyFriendlyName "twist axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTwistAxis; // 0x184
+	Vector m_vecTwistAxis; // 0x144
 	// MPropertyFriendlyName "flip twist axis with yaw"
 	// MDefaultString
-	bool m_bFlipBasedOnYaw; // 0x190
+	bool m_bFlipBasedOnYaw; // 0x150
 };
 
 // Aligment: 6
@@ -9117,73 +11333,86 @@ public:
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	Vector m_vecOffset; // 0x184
+	Vector m_vecOffset; // 0x144
 	// MPropertyFriendlyName "offset in local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x190
+	bool m_bOffsetLocal; // 0x150
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapModelVolumetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInControlPointNumber; // 0x180
+	int32_t m_nInControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x184
+	int32_t m_nOutControlPointNumber; // 0x144
 	// MPropertyFriendlyName "input volume minimum in cubic units"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input volume maximum in cubic units"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
+};
+
+// Aligment: 2
+// Size: 496
+class C_INIT_QuantizeFloat : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "interval to snap to"
+	CPerParticleFloatInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 };
 
 // Aligment: 7
-// Size: 1328
+// Size: 1008
 class C_OP_RemapParticleCountToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nInputMin; // 0x188
+	CParticleCollectionFloatInput m_nInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nInputMax; // 0x270
+	CParticleCollectionFloatInput m_nInputMax; // 0x1f0
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMin; // 0x358
+	CParticleCollectionFloatInput m_flOutputMin; // 0x298
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMax; // 0x440
+	CParticleCollectionFloatInput m_flOutputMax; // 0x340
 	// MPropertyFriendlyName
 	// MDefaultString
-	bool m_bActiveRange; // 0x528
+	bool m_bActiveRange; // 0x3e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x52c
+	ParticleSetMethod_t m_nSetMethod; // 0x3ec
 };
 
 // Aligment: 0
@@ -9195,137 +11424,145 @@ public:
 };
 
 // Aligment: 7
-// Size: 448
+// Size: 384
 class C_OP_VectorNoise : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x184
+	Vector m_vecOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x190
+	Vector m_vecOutputMax; // 0x150
 	// MPropertyFriendlyName "noise coordinate scale"
 	// MDefaultString
-	fltx4 m_fl4NoiseScale; // 0x1a0
+	fltx4 m_fl4NoiseScale; // 0x160
 	// MPropertyFriendlyName "additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x1b0
+	bool m_bAdditive; // 0x170
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1b1
+	bool m_bOffset; // 0x171
 	// MPropertyFriendlyName "Noise animation time scale"
 	// MDefaultString
-	float m_flNoiseAnimationTimeScale; // 0x1b4
+	float m_flNoiseAnimationTimeScale; // 0x174
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_ForceControlPointStub : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_ControlPoint; // 0x180
+	int32_t m_ControlPoint; // 0x140
 };
 
 // Aligment: 6
-// Size: 656
+// Size: 528
 class C_INIT_PositionWarpScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "warp min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecWarpMin; // 0x180
+	Vector m_vecWarpMin; // 0x140
 	// MPropertyFriendlyName "warp max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecWarpMax; // 0x18c
+	Vector m_vecWarpMax; // 0x14c
 	// MPropertyFriendlyName "warp amount"
-	CPerParticleFloatInput m_InputValue; // 0x198
+	CPerParticleFloatInput m_InputValue; // 0x158
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x280
+	float m_flPrevPosScale; // 0x200
 	// MPropertyFriendlyName "warp scale control point number"
 	// MDefaultString
-	int32_t m_nScaleControlPointNumber; // 0x284
+	int32_t m_nScaleControlPointNumber; // 0x204
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x288
+	int32_t m_nControlPointNumber; // 0x208
 };
 
 // Aligment: 5
-// Size: 1328
+// Size: 1008
 class C_OP_RopeSpringConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "slack"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRestLength; // 0x180
+	CParticleCollectionFloatInput m_flRestLength; // 0x140
 	// MPropertyFriendlyName "minimum segment length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMinDistance; // 0x268
+	CParticleCollectionFloatInput m_flMinDistance; // 0x1e8
 	// MPropertyFriendlyName "maximum segment length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMaxDistance; // 0x350
+	CParticleCollectionFloatInput m_flMaxDistance; // 0x290
 	// MPropertyFriendlyName "scale factor for spring correction"
 	// MDefaultString
-	float m_flAdjustmentScale; // 0x438
+	float m_flAdjustmentScale; // 0x338
 	// MPropertyFriendlyName "manual resting spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInitialRestingLength; // 0x440
+	CParticleCollectionFloatInput m_flInitialRestingLength; // 0x340
 };
 
 // Aligment: 11
-// Size: 1344
+// Size: 1024
 class C_OP_CylindricalDistanceToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "cylinder inner radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMin; // 0x188
+	CPerParticleFloatInput m_flInputMin; // 0x148
 	// MPropertyFriendlyName "cylinder outer radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMax; // 0x270
+	CPerParticleFloatInput m_flInputMax; // 0x1f0
 	// MPropertyFriendlyName "cylinder inner output"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMin; // 0x358
+	CPerParticleFloatInput m_flOutputMin; // 0x298
 	// MPropertyFriendlyName "cylinder outer output"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMax; // 0x440
+	CPerParticleFloatInput m_flOutputMax; // 0x340
 	// MPropertyFriendlyName "cylinder top control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x528
+	int32_t m_nStartCP; // 0x3e8
 	// MPropertyFriendlyName "cylinder bottom control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x52c
+	int32_t m_nEndCP; // 0x3ec
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x530
+	ParticleSetMethod_t m_nSetMethod; // 0x3f0
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x534
+	bool m_bActiveRange; // 0x3f4
 	// MPropertyFriendlyName "output is additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x535
+	bool m_bAdditive; // 0x3f5
 	// MPropertyFriendlyName "apply radius to ends (capsule)"
 	// MDefaultString
-	bool m_bCapsule; // 0x536
+	bool m_bCapsule; // 0x3f6
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 400
+class C_INIT_RemapNamedModelMeshGroupToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 320
 class CParticleFunctionEmitter : public CParticleFunction
 {
 public:
@@ -9333,180 +11570,180 @@ public:
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_INIT_RemapInitialCPDirectionToRotation : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x188
+	float m_flOffsetRot; // 0x148
 	// MPropertyFriendlyName "control point axis"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
 	// MVectorIsSometimesCoordinate
-	int32_t m_nComponent; // 0x18c
+	int32_t m_nComponent; // 0x14c
 };
 
 // Aligment: 37
-// Size: 4016
+// Size: 3312
 class C_OP_RenderModels : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "activity override"
 	// MDefaultString
-	char[256] m_ActivityName; // 0x1d0
+	char[256] m_ActivityName; // 0x190
 	// MPropertyFriendlyName "model override economy loadout slot type"
 	// MDefaultString
-	char[256] m_EconSlotName; // 0x2d0
+	char[256] m_EconSlotName; // 0x290
 	// MPropertyFriendlyName "models"
-	CUtlVector< ModelReference_t > m_ModelList; // 0x3d0
+	CUtlVector< ModelReference_t > m_ModelList; // 0x390
 	// MPropertyFriendlyName "ignore normal"
 	// MDefaultString
-	bool m_bIgnoreNormal; // 0x3ec
+	bool m_bIgnoreNormal; // 0x3ac
 	// MPropertyFriendlyName "ignore radius"
 	// MDefaultString
-	bool m_bIgnoreRadius; // 0x3ed
+	bool m_bIgnoreRadius; // 0x3ad
 	// MPropertyFriendlyName "orient model z to normal"
 	// MDefaultString
-	bool m_bOrientZ; // 0x3ee
+	bool m_bOrientZ; // 0x3ae
 	// MPropertyFriendlyName "scale animation rate"
 	// MDefaultString
-	bool m_bScaleAnimationRate; // 0x3ef
+	bool m_bScaleAnimationRate; // 0x3af
 	// MPropertyFriendlyName "reset animation frame on stop"
 	// MDefaultString
-	bool m_bResetAnimOnStop; // 0x3f0
+	bool m_bResetAnimOnStop; // 0x3b0
 	// MPropertyFriendlyName "set animation frame manually"
 	// MDefaultString
-	bool m_bManualAnimFrame; // 0x3f1
+	bool m_bManualAnimFrame; // 0x3b1
 	// MPropertyFriendlyName "animation rate scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAnimationScaleField; // 0x3f4
+	ParticleAttributeIndex_t m_nAnimationScaleField; // 0x3b4
 	// MPropertyFriendlyName "skin number"
 	// MDefaultString
-	int32_t m_nSkin; // 0x3f8
+	int32_t m_nSkin; // 0x3b8
 	// MPropertyFriendlyName "bodygroup field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nBodyGroupField; // 0x3fc
+	ParticleAttributeIndex_t m_nBodyGroupField; // 0x3bc
 	// MPropertyFriendlyName "submodel field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSubModelField; // 0x400
+	ParticleAttributeIndex_t m_nSubModelField; // 0x3c0
 	// MPropertyFriendlyName "animation sequence field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAnimationField; // 0x404
+	ParticleAttributeIndex_t m_nAnimationField; // 0x3c4
 	// MPropertyFriendlyName "manual animation frame field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nManualFrameField; // 0x408
+	ParticleAttributeIndex_t m_nManualFrameField; // 0x3c8
 	// MPropertyFriendlyName "model LOD"
 	// MDefaultString
-	int32_t m_nLOD; // 0x40c
+	int32_t m_nLOD; // 0x3cc
 	// MPropertyFriendlyName "material override"
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x410
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x3d0
 	// MPropertyFriendlyName "override translucent materials"
 	// MDefaultString
-	bool m_bOverrideTranslucentMaterials; // 0x418
+	bool m_bOverrideTranslucentMaterials; // 0x3d8
 	// MPropertyFriendlyName "skin override CP"
 	// MDefaultString
-	int32_t m_nSkinCP; // 0x41c
+	int32_t m_nSkinCP; // 0x3dc
 	// MPropertyFriendlyName "model override CP"
 	// MDefaultString
-	int32_t m_nModelCP; // 0x420
+	int32_t m_nModelCP; // 0x3e0
 	// MPropertyFriendlyName "model scale CP"
 	// MDefaultString
-	int32_t m_nModelScaleCP; // 0x424
+	int32_t m_nModelScaleCP; // 0x3e4
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
-	float m_flAnimationRate; // 0x428
+	float m_flAnimationRate; // 0x3e8
 	// MPropertyFriendlyName "animated"
 	// MDefaultString
-	bool m_bAnimated; // 0x42c
+	bool m_bAnimated; // 0x3ec
 	// MPropertyFriendlyName "force looping animations"
 	// MDefaultString
-	bool m_bForceLoopingAnimation; // 0x42d
+	bool m_bForceLoopingAnimation; // 0x3ed
 	// MPropertyFriendlyName "forcedrawinterlevedwithsiblings"
 	// MDefaultString
-	bool m_bForceDrawInterlevedWithSiblings; // 0x42e
+	bool m_bForceDrawInterlevedWithSiblings; // 0x3ee
 	// MPropertyFriendlyName "Only Render in effects bloom pass"
 	// MDefaultString
-	bool m_bOnlyRenderInEffectsBloomPass; // 0x42f
+	bool m_bOnlyRenderInEffectsBloomPass; // 0x3ef
 	// MPropertyFriendlyName "model override original model only (ignore shapeshift/hex/etc)"
 	// MDefaultString
-	bool m_bOriginalModel; // 0x430
+	bool m_bOriginalModel; // 0x3f0
 	// MPropertyFriendlyName "suppress tinting of the model"
 	// MDefaultString
-	bool m_bSuppressTint; // 0x431
+	bool m_bSuppressTint; // 0x3f1
 	// MPropertyFriendlyName "use raw mesh group (ignore bodygroup field and use submodel field as raw meshgroup)"
 	// MDefaultString
-	bool m_bUseRawMeshGroup; // 0x432
+	bool m_bUseRawMeshGroup; // 0x3f2
 	// MPropertyFriendlyName "disable shadows"
 	// MDefaultString
-	bool m_bDisableShadows; // 0x433
+	bool m_bDisableShadows; // 0x3f3
 	// MPropertyFriendlyName "render attribute"
 	// MDefaultString
-	char[260] m_szRenderAttribute; // 0x434
+	char[260] m_szRenderAttribute; // 0x3f4
 	// MPropertyFriendlyName "material variables"
-	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x538
+	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x4f8
 	// MPropertyFriendlyName "Radius Scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0x550
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x510
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x638
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x5b8
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x720
+	CParticleCollectionVecInput m_vecColorScale; // 0x660
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0xb50
+	ParticleColorBlendType_t m_nColorBlendType; // 0x990
 	// MPropertyFriendlyName "model component scale"
 	// MDefaultString
-	CPerParticleVecInput m_vecComponentScale; // 0xb58
+	CPerParticleVecInput m_vecComponentScale; // 0x998
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapSpeed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x194
+	ParticleSetMethod_t m_nSetMethod; // 0x154
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
 	// MParticleAdvancedField
-	bool m_bIgnoreDelta; // 0x198
+	bool m_bIgnoreDelta; // 0x158
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionConstraint : public CParticleFunction
 {
 public:
@@ -9531,24 +11768,24 @@ public:
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_INIT_SetRigidAttachment : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "attribute to read from"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "attribute to cache to"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x18c
+	bool m_bLocalSpace; // 0x14c
 };
 
 // Aligment: 3
@@ -9562,38 +11799,38 @@ public:
 };
 
 // Aligment: 7
-// Size: 448
+// Size: 384
 class C_OP_ForceBasedOnDistanceToPlane : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min distance from plane"
 	// MDefaultString
-	float m_flMinDist; // 0x180
+	float m_flMinDist; // 0x140
 	// MPropertyFriendlyName "force at min distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecForceAtMinDist; // 0x184
+	Vector m_vecForceAtMinDist; // 0x144
 	// MPropertyFriendlyName "max distance from plane"
 	// MDefaultString
-	float m_flMaxDist; // 0x190
+	float m_flMaxDist; // 0x150
 	// MPropertyFriendlyName "force at max distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecForceAtMaxDist; // 0x194
+	Vector m_vecForceAtMaxDist; // 0x154
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPlaneNormal; // 0x1a0
+	Vector m_vecPlaneNormal; // 0x160
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x1ac
+	int32_t m_nControlPointNumber; // 0x16c
 	// MPropertyFriendlyName "exponent"
 	// MDefaultString
-	float m_flExponent; // 0x1b0
+	float m_flExponent; // 0x170
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_EndCapDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -9601,279 +11838,362 @@ public:
 };
 
 // Aligment: 12
-// Size: 432
+// Size: 368
 class C_OP_PercentageBetweenCPLerpCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x18c
+	int32_t m_nStartCP; // 0x14c
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x190
+	int32_t m_nEndCP; // 0x150
 	// MPropertyFriendlyName "output starting control point number"
 	// MDefaultString
-	int32_t m_nOutputStartCP; // 0x194
+	int32_t m_nOutputStartCP; // 0x154
 	// MPropertyFriendlyName "output starting control point field 0-2 X/Y/Z"
 	// MDefaultString
-	int32_t m_nOutputStartField; // 0x198
+	int32_t m_nOutputStartField; // 0x158
 	// MPropertyFriendlyName "output ending control point number"
 	// MDefaultString
-	int32_t m_nOutputEndCP; // 0x19c
+	int32_t m_nOutputEndCP; // 0x15c
 	// MPropertyFriendlyName "output ending control point field 0-2 X/Y/Z"
 	// MDefaultString
-	int32_t m_nOutputEndField; // 0x1a0
+	int32_t m_nOutputEndField; // 0x160
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a4
+	ParticleSetMethod_t m_nSetMethod; // 0x164
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a8
+	bool m_bActiveRange; // 0x168
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a9
+	bool m_bRadialCheck; // 0x169
 };
 
 // Aligment: 14
-// Size: 576
+// Size: 512
 class C_INIT_DistanceToCPInit : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x198
+	bool m_bLOS; // 0x158
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x199
+	char[128] m_CollisionGroupName; // 0x159
 	// MPropertyFriendlyName "Maximum Trace Length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x21c
+	float m_flMaxTraceLength; // 0x1dc
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x220
+	float m_flLOSScale; // 0x1e0
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x224
+	ParticleSetMethod_t m_nSetMethod; // 0x1e4
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x228
+	bool m_bActiveRange; // 0x1e8
 	// MPropertyFriendlyName "distance component scale"
 	// MDefaultString
-	Vector m_vecDistanceScale; // 0x22c
+	Vector m_vecDistanceScale; // 0x1ec
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x238
+	float m_flRemapBias; // 0x1f8
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_OP_EnableChildrenFromParentParticleCount : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first child to enable"
 	// MDefaultString
-	int32_t m_nFirstChild; // 0x184
+	int32_t m_nFirstChild; // 0x144
 	// MPropertyFriendlyName "max # of children to enable (-1 for max particle count)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x188
+	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x148
 };
 
 // Aligment: 3
-// Size: 480
+// Size: 416
 class C_OP_RenderFlattenGrass : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "flattening strength"
 	// MDefaultString
-	float m_flFlattenStrength; // 0x1d0
+	float m_flFlattenStrength; // 0x190
 	// MPropertyFriendlyName "strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nStrengthFieldOverride; // 0x1d4
+	ParticleAttributeIndex_t m_nStrengthFieldOverride; // 0x194
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d8
+	float m_flRadiusScale; // 0x198
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_MovementRigidAttachToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "scale control point number"
 	// MDefaultString
-	int32_t m_nScaleControlPoint; // 0x184
+	int32_t m_nScaleControlPoint; // 0x144
 	// MPropertyFriendlyName "scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nScaleCPField; // 0x188
+	int32_t m_nScaleCPField; // 0x148
 	// MPropertyFriendlyName "cache attribute to read from"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x18c
+	ParticleAttributeIndex_t m_nFieldInput; // 0x14c
 	// MPropertyFriendlyName "attribute to write to"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x190
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x150
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x194
+	bool m_bOffsetLocal; // 0x154
 };
 
 // Aligment: 9
-// Size: 432
+// Size: 368
 class C_INIT_ChaoticAttractor : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "pickover A parameter"
 	// MDefaultString
-	float m_flAParm; // 0x180
+	float m_flAParm; // 0x140
 	// MPropertyFriendlyName "pickover B parameter"
 	// MDefaultString
-	float m_flBParm; // 0x184
+	float m_flBParm; // 0x144
 	// MPropertyFriendlyName "pickover C parameter"
 	// MDefaultString
-	float m_flCParm; // 0x188
+	float m_flCParm; // 0x148
 	// MPropertyFriendlyName "pickover D parameter"
 	// MDefaultString
-	float m_flDParm; // 0x18c
+	float m_flDParm; // 0x14c
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x190
+	float m_flScale; // 0x150
 	// MPropertyFriendlyName "speed min"
 	// MDefaultString
-	float m_flSpeedMin; // 0x194
+	float m_flSpeedMin; // 0x154
 	// MPropertyFriendlyName "speed max"
 	// MDefaultString
-	float m_flSpeedMax; // 0x198
+	float m_flSpeedMax; // 0x158
 	// MPropertyFriendlyName "relative control point number"
 	// MDefaultString
-	int32_t m_nBaseCP; // 0x19c
+	int32_t m_nBaseCP; // 0x15c
 	// MPropertyFriendlyName "uniform speed"
 	// MDefaultString
-	bool m_bUniformSpeed; // 0x1a0
+	bool m_bUniformSpeed; // 0x160
 };
 
 // Aligment: 4
-// Size: 448
+// Size: 384
 class C_OP_RampScalarLinearSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x184
+	float m_flStartTime; // 0x144
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x188
+	float m_flEndTime; // 0x148
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_InheritFromParentParticles : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x190
+	int32_t m_nRandomSeed; // 0x150
+};
+
+// Aligment: 12
+// Size: 368
+class C_INIT_RemapParticleCountToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	int32_t m_nInputMin; // 0x144
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	int32_t m_nInputMax; // 0x148
+	// MPropertyFriendlyName "input scale control point"
+	// MDefaultString
+	int32_t m_nScaleControlPoint; // 0x14c
+	// MPropertyFriendlyName "input scale control point field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nScaleControlPointField; // 0x150
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x154
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x158
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
+	// MPropertyFriendlyName "only active within specified input range"
+	// MDefaultString
+	bool m_bActiveRange; // 0x160
+	// MPropertyFriendlyName "invert input from total particle count"
+	// MDefaultString
+	bool m_bInvert; // 0x161
+	// MPropertyFriendlyName "wrap input"
+	// MDefaultString
+	bool m_bWrap; // 0x162
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x164
+};
+
+// Aligment: 10
+// Size: 384
+class C_INIT_RandomColor : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "color1"
+	// MDefaultString
+	Color m_ColorMin; // 0x158
+	// MPropertyFriendlyName "color2"
+	// MDefaultString
+	Color m_ColorMax; // 0x15c
+	// MPropertyFriendlyName "tint clamp min"
+	// MDefaultString
+	Color m_TintMin; // 0x160
+	// MPropertyFriendlyName "tint clamp max"
+	// MDefaultString
+	Color m_TintMax; // 0x164
+	// MPropertyFriendlyName "tint perc"
+	// MDefaultString
+	float m_flTintPerc; // 0x168
+	// MPropertyFriendlyName "tint update movement threshold"
+	// MDefaultString
+	float m_flUpdateThreshold; // 0x16c
+	// MPropertyFriendlyName "tint control point"
+	// MDefaultString
+	int32_t m_nTintCP; // 0x170
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x174
+	// MPropertyFriendlyName "tint blend mode"
+	// MDefaultString
+	ParticleColorBlendMode_t m_nTintBlendMode; // 0x178
+	// MPropertyFriendlyName "light amplification amount"
+	// MDefaultString
+	float m_flLightAmplification; // 0x17c
 };
 
 // Aligment: 3
-// Size: 656
+// Size: 528
 class C_OP_LerpToOtherAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x180
+	CPerParticleFloatInput m_flInterpolation; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x268
+	ParticleAttributeIndex_t m_nFieldInput; // 0x1e8
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x26c
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x1ec
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_INIT_PointList : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "point list"
-	CUtlVector< PointDefinition_t > m_pointList; // 0x188
+	CUtlVector< PointDefinition_t > m_pointList; // 0x148
 	// MPropertyFriendlyName "space points along path"
 	// MDefaultString
-	bool m_bPlaceAlongPath; // 0x1a0
+	bool m_bPlaceAlongPath; // 0x160
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x1a1
+	bool m_bClosedLoop; // 0x161
 	// MPropertyFriendlyName "Numer of points along path"
 	// MDefaultString
-	int32_t m_nNumPointsAlongPath; // 0x1a4
+	int32_t m_nNumPointsAlongPath; // 0x164
 };
 
-// Aligment: 36
-// Size: 232
+// Aligment: 23
+// Size: 168
 class CParticleFloatInput
 {
 public:
@@ -9906,194 +12226,196 @@ public:
 	// MDefaultString
 	float m_flLOD3; // 0x38
 	// MDefaultString
-	float m_flNoiseOutputMin; // 0x3c
+	ParticleFloatInputMode_t m_nInputMode; // 0x3c
 	// MDefaultString
-	float m_flNoiseOutputMax; // 0x40
+	float m_flMultFactor; // 0x40
 	// MDefaultString
-	float m_flNoiseScale; // 0x44
+	float m_flInput0; // 0x44
 	// MDefaultString
-	Vector m_vecNoiseOffsetRate; // 0x48
+	float m_flInput1; // 0x48
 	// MDefaultString
-	float m_flNoiseOffset; // 0x54
+	float m_flOutput0; // 0x4c
 	// MDefaultString
-	int32_t m_nNoiseOctaves; // 0x58
+	float m_flOutput1; // 0x50
 	// MDefaultString
-	PFNoiseTurbulence_t m_nNoiseTurbulence; // 0x5c
+	ParticleFloatBiasType_t m_nBiasType; // 0x54
 	// MDefaultString
-	PFNoiseType_t m_nNoiseType; // 0x60
-	// MDefaultString
-	PFNoiseModifier_t m_nNoiseModifier; // 0x64
-	// MDefaultString
-	float m_flNoiseTurbulenceScale; // 0x68
-	// MDefaultString
-	float m_flNoiseTurbulenceMix; // 0x6c
-	// MDefaultString
-	float m_flNoiseImgPreviewScale; // 0x70
-	// MDefaultString
-	bool m_bNoiseImgPreviewLive; // 0x74
-	// MDefaultString
-	ParticleFloatInputMode_t m_nInputMode; // 0x7c
-	// MDefaultString
-	float m_flMultFactor; // 0x80
-	// MDefaultString
-	float m_flInput0; // 0x84
-	// MDefaultString
-	float m_flInput1; // 0x88
-	// MDefaultString
-	float m_flOutput0; // 0x8c
-	// MDefaultString
-	float m_flOutput1; // 0x90
-	// MDefaultString
-	ParticleFloatBiasType_t m_nBiasType; // 0x94
-	// MDefaultString
-	float m_flBiasParameter; // 0x98
-	CPiecewiseCurveSchemaWrapper m_Curve; // 0xa0
+	float m_flBiasParameter; // 0x58
+	CPiecewiseCurveSchemaWrapper m_Curve; // 0x60
 };
 
 // Aligment: 8
-// Size: 784
+// Size: 656
 class C_OP_MoveToHitbox : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "lifetime lerp start"
 	// MDefaultString
-	float m_flLifeTimeLerpStart; // 0x188
+	float m_flLifeTimeLerpStart; // 0x148
 	// MPropertyFriendlyName "lifetime lerp end"
 	// MDefaultString
-	float m_flLifeTimeLerpEnd; // 0x18c
+	float m_flLifeTimeLerpEnd; // 0x14c
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x190
+	float m_flPrevPosScale; // 0x150
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x194
+	char[128] m_HitboxSetName; // 0x154
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x214
+	bool m_bUseBones; // 0x1d4
 	// MPropertyFriendlyName "lerp type"
 	// MDefaultString
-	HitboxLerpType_t m_nLerpType; // 0x218
+	HitboxLerpType_t m_nLerpType; // 0x1d8
 	// MPropertyFriendlyName "Constant Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x220
+	CPerParticleFloatInput m_flInterpolation; // 0x1e0
 };
 
 // Aligment: 7
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelElementEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "input names"
-	CUtlVector< CUtlString > m_inNames; // 0x188
+	CUtlVector< CUtlString > m_inNames; // 0x148
 	// MPropertyFriendlyName "output names"
-	CUtlVector< CUtlString > m_outNames; // 0x1a0
+	CUtlVector< CUtlString > m_outNames; // 0x160
 	// MPropertyFriendlyName "fallback names when the input doesn't match"
-	CUtlVector< CUtlString > m_fallbackNames; // 0x1b8
+	CUtlVector< CUtlString > m_fallbackNames; // 0x178
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1d0
+	bool m_bModelFromRenderer; // 0x190
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldInput; // 0x194
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_CPVelocityForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flScale; // 0x188
+	CPerParticleFloatInput m_flScale; // 0x148
+};
+
+// Aligment: 7
+// Size: 352
+class C_INIT_CreateSpiralSphere : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "override CP (X/Y/Z *= radius/density/speed)"
+	// MDefaultString
+	int32_t m_nOverrideCP; // 0x144
+	// MPropertyFriendlyName "density"
+	// MDefaultString
+	int32_t m_nDensity; // 0x148
+	// MPropertyFriendlyName "initial radius"
+	// MDefaultString
+	float m_flInitialRadius; // 0x14c
+	// MPropertyFriendlyName "min initial speed"
+	// MDefaultString
+	float m_flInitialSpeedMin; // 0x150
+	// MPropertyFriendlyName "max initial speed"
+	// MDefaultString
+	float m_flInitialSpeedMax; // 0x154
+	// MPropertyFriendlyName "use particle count as density scale"
+	// MDefaultString
+	bool m_bUseParticleCount; // 0x158
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_LockPoints : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min column/particle index to affect"
 	// MDefaultString
-	int32_t m_nMinCol; // 0x180
+	int32_t m_nMinCol; // 0x140
 	// MPropertyFriendlyName "max column/particle index to affect"
 	// MDefaultString
-	int32_t m_nMaxCol; // 0x184
+	int32_t m_nMaxCol; // 0x144
 	// MPropertyFriendlyName "min row/particle index to affect"
 	// MDefaultString
-	int32_t m_nMinRow; // 0x188
+	int32_t m_nMinRow; // 0x148
 	// MPropertyFriendlyName "max row/particle index to affect"
 	// MDefaultString
-	int32_t m_nMaxRow; // 0x18c
+	int32_t m_nMaxRow; // 0x14c
 	// MPropertyFriendlyName "control point to lock to"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x190
+	int32_t m_nControlPoint; // 0x150
 	// MPropertyFriendlyName "amount of current position to preserve"
 	// MDefaultString
-	float m_flBlendValue; // 0x194
+	float m_flBlendValue; // 0x154
 };
 
 // Aligment: 4
-// Size: 640
+// Size: 512
 class C_INIT_CreateFromCPs : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x180
+	int32_t m_nIncrement; // 0x140
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nMinCP; // 0x184
+	int32_t m_nMinCP; // 0x144
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
 	// MParticleMinVersion
-	int32_t m_nMaxCP; // 0x188
+	int32_t m_nMaxCP; // 0x148
 	// MPropertyFriendlyName "dynamic control point count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nDynamicCPCount; // 0x190
+	CParticleCollectionFloatInput m_nDynamicCPCount; // 0x150
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 688
 class C_OP_PlanarConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "plane point"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_PointOnPlane; // 0x180
+	Vector m_PointOnPlane; // 0x140
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
-	Vector m_PlaneNormal; // 0x18c
+	Vector m_PlaneNormal; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "global origin"
 	// MDefaultString
-	bool m_bGlobalOrigin; // 0x19c
+	bool m_bGlobalOrigin; // 0x15c
 	// MPropertyFriendlyName "global normal"
 	// MDefaultString
-	bool m_bGlobalNormal; // 0x19d
+	bool m_bGlobalNormal; // 0x15d
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusScale; // 0x1a0
+	CPerParticleFloatInput m_flRadiusScale; // 0x160
 	// MPropertyFriendlyName "falloff distance from control point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x288
+	CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x208
 };
 
 // Aligment: 2
@@ -10110,407 +12432,546 @@ public:
 };
 
 // Aligment: 5
-// Size: 1088
+// Size: 832
 class C_OP_SelectivelyEnableChildren : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nChildGroupID; // 0x180
+	CParticleCollectionFloatInput m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first child to enable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstChild; // 0x268
+	CParticleCollectionFloatInput m_nFirstChild; // 0x1e8
 	// MPropertyFriendlyName "# of children to enable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x350
+	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x290
 	// MPropertyFriendlyName "play endcap when children are removed"
 	// MDefaultString
-	bool m_bPlayEndcapOnStop; // 0x438
+	bool m_bPlayEndcapOnStop; // 0x338
 	// MPropertyFriendlyName "destroy particles immediately when child is removed"
 	// MDefaultString
-	bool m_bDestroyImmediately; // 0x439
+	bool m_bDestroyImmediately; // 0x339
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionInitializer : public CParticleFunction
 {
 public:
 // <no members described>
 };
 
+// Aligment: 15
+// Size: 384
+class C_OP_NoiseEmitter : public CParticleFunctionEmitter, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "emission duration"
+	// MDefaultString
+	float m_flEmissionDuration; // 0x140
+	// MPropertyFriendlyName "emission start time"
+	// MDefaultString
+	float m_flStartTime; // 0x144
+	// MPropertyFriendlyName "scale emission to used control points"
+	// MDefaultString
+	// MParticleMaxVersion
+	float m_flEmissionScale; // 0x148
+	// MPropertyFriendlyName "emission count scale control point"
+	// MDefaultString
+	int32_t m_nScaleControlPoint; // 0x14c
+	// MPropertyFriendlyName "emission count scale control point field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nScaleControlPointField; // 0x150
+	// MPropertyFriendlyName "world noise scale control point"
+	// MDefaultString
+	int32_t m_nWorldNoisePoint; // 0x154
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x158
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x159
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x15c
+	// MPropertyFriendlyName "emission minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x160
+	// MPropertyFriendlyName "emission maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x164
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x168
+	// MPropertyFriendlyName "world spatial noise coordinate scale"
+	// MDefaultString
+	float m_flWorldNoiseScale; // 0x16c
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x170
+	// MPropertyFriendlyName "world time noise coordinate scale"
+	// MDefaultString
+	float m_flWorldTimeScale; // 0x17c
+};
+
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_INIT_InitialSequenceFromModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "current anim time output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
+};
+
+// Aligment: 12
+// Size: 400
+class C_INIT_RemapScalarToVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x148
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x14c
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecOutputMin; // 0x150
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecOutputMax; // 0x15c
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x168
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x16c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x170
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x174
+	// MPropertyFriendlyName "use local system"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x178
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x17c
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_PercentageBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x198
+	int32_t m_nEndCP; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a0
+	bool m_bActiveRange; // 0x160
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a1
+	bool m_bRadialCheck; // 0x161
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapNamedModelBodyPartToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_RadiusDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum radius"
 	// MDefaultString
-	float m_flMinRadius; // 0x180
+	float m_flMinRadius; // 0x140
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_SnapshotSkinToBones : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate normals"
 	// MDefaultString
-	bool m_bTransformNormals; // 0x180
+	bool m_bTransformNormals; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "lifetime fade start"
 	// MDefaultString
-	float m_flLifeTimeFadeStart; // 0x188
+	float m_flLifeTimeFadeStart; // 0x148
 	// MPropertyFriendlyName "lifetime fade end"
 	// MDefaultString
-	float m_flLifeTimeFadeEnd; // 0x18c
+	float m_flLifeTimeFadeEnd; // 0x14c
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x190
+	float m_flJumpThreshold; // 0x150
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x194
+	float m_flPrevPosScale; // 0x154
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_OP_SetCPOrientationToGroundNormal : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "interpolation rate"
 	// MDefaultString
-	float m_flInterpRate; // 0x180
+	float m_flInterpRate; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x184
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "CP movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x188
+	float m_flTolerance; // 0x148
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x18c
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x190
+	char[128] m_CollisionGroupName; // 0x150
 	// MPropertyFriendlyName "CP to trace from"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x210
+	int32_t m_nInputCP; // 0x1d0
 	// MPropertyFriendlyName "CP to set"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x214
+	int32_t m_nOutputCP; // 0x1d4
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x21c
+	bool m_bIncludeWater; // 0x1dc
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_TimeVaryingForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "time to start transition"
 	// MDefaultString
-	float m_flStartLerpTime; // 0x180
+	float m_flStartLerpTime; // 0x140
 	// MPropertyFriendlyName "starting force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_StartingForce; // 0x184
+	Vector m_StartingForce; // 0x144
 	// MPropertyFriendlyName "time to end transition"
 	// MDefaultString
-	float m_flEndLerpTime; // 0x190
+	float m_flEndLerpTime; // 0x150
 	// MPropertyFriendlyName "ending force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_EndingForce; // 0x194
+	Vector m_EndingForce; // 0x154
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointFieldToWater : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "source CP"
 	// MDefaultString
-	int32_t m_nSourceCP; // 0x180
+	int32_t m_nSourceCP; // 0x140
 	// MPropertyFriendlyName "dest CP"
 	// MDefaultString
-	int32_t m_nDestCP; // 0x184
+	int32_t m_nDestCP; // 0x144
 	// MPropertyFriendlyName "dest control point component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x188
+	int32_t m_nCPField; // 0x148
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_LerpVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutput; // 0x184
+	Vector m_vecOutput; // 0x144
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x190
+	float m_flStartTime; // 0x150
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x194
+	float m_flEndTime; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_INIT_InitialVelocityFromHitbox : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "velocity minimum"
 	// MDefaultString
-	float m_flVelocityMin; // 0x180
+	float m_flVelocityMin; // 0x140
 	// MPropertyFriendlyName "velocity maximum"
 	// MDefaultString
-	float m_flVelocityMax; // 0x184
+	float m_flVelocityMax; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x18c
+	char[128] m_HitboxSetName; // 0x14c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x20c
+	bool m_bUseBones; // 0x1cc
+};
+
+// Aligment: 1
+// Size: 336
+class C_INIT_RadiusFromCPObject : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point"
+	// MDefaultString
+	int32_t m_nControlPoint; // 0x140
+};
+
+// Aligment: 6
+// Size: 336
+class C_INIT_GlobalScale : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "scale amount"
+	// MDefaultString
+	float m_flScale; // 0x140
+	// MPropertyFriendlyName "scale control point number"
+	// MDefaultString
+	int32_t m_nScaleControlPointNumber; // 0x144
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x148
+	// MPropertyFriendlyName "scale radius"
+	// MDefaultString
+	bool m_bScaleRadius; // 0x14c
+	// MPropertyFriendlyName "scale position"
+	// MDefaultString
+	bool m_bScalePosition; // 0x14d
+	// MPropertyFriendlyName "scale velocity"
+	// MDefaultString
+	bool m_bScaleVelocity; // 0x14e
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_HSVShiftToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Target color control point number"
 	// MDefaultString
-	int32_t m_nColorCP; // 0x180
+	int32_t m_nColorCP; // 0x140
 	// MPropertyFriendlyName "Color Gem Enable control point number"
 	// MDefaultString
-	int32_t m_nColorGemEnableCP; // 0x184
+	int32_t m_nColorGemEnableCP; // 0x144
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "Default HSV Color"
 	// MDefaultString
-	Color m_DefaultHSVColor; // 0x18c
+	Color m_DefaultHSVColor; // 0x14c
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_RemapBoundingVolumetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "input volume minimum in cubic units"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "input volume maximum in cubic units"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 };
 
 // Aligment: 9
-// Size: 512
+// Size: 448
 class C_OP_RenderScreenShake : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration scale"
 	// MDefaultString
-	float m_flDurationScale; // 0x1d0
+	float m_flDurationScale; // 0x190
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d4
+	float m_flRadiusScale; // 0x194
 	// MPropertyFriendlyName "frequence scale"
 	// MDefaultString
-	float m_flFrequencyScale; // 0x1d8
+	float m_flFrequencyScale; // 0x198
 	// MPropertyFriendlyName "amplitude scale"
 	// MDefaultString
-	float m_flAmplitudeScale; // 0x1dc
+	float m_flAmplitudeScale; // 0x19c
 	// MPropertyFriendlyName "radius field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nRadiusField; // 0x1e0
+	ParticleAttributeIndex_t m_nRadiusField; // 0x1a0
 	// MPropertyFriendlyName "duration field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDurationField; // 0x1e4
+	ParticleAttributeIndex_t m_nDurationField; // 0x1a4
 	// MPropertyFriendlyName "frequency field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFrequencyField; // 0x1e8
+	ParticleAttributeIndex_t m_nFrequencyField; // 0x1a8
 	// MPropertyFriendlyName "amplitude field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAmplitudeField; // 0x1ec
+	ParticleAttributeIndex_t m_nAmplitudeField; // 0x1ac
 	// MPropertyFriendlyName "control point of shake recipient (-1 = global)"
 	// MDefaultString
-	int32_t m_nFilterCP; // 0x1f0
+	int32_t m_nFilterCP; // 0x1b0
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_FadeIn : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "fade in time min"
 	// MDefaultString
-	float m_flFadeInTimeMin; // 0x180
+	float m_flFadeInTimeMin; // 0x140
 	// MPropertyFriendlyName "fade in time max"
 	// MDefaultString
-	float m_flFadeInTimeMax; // 0x184
+	float m_flFadeInTimeMax; // 0x144
 	// MPropertyFriendlyName "fade in time exponent"
 	// MDefaultString
-	float m_flFadeInTimeExp; // 0x188
+	float m_flFadeInTimeExp; // 0x148
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x18c
+	bool m_bProportional; // 0x14c
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_SetSimulationRate : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "simulation timescale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flSimulationScale; // 0x180
+	CParticleCollectionFloatInput m_flSimulationScale; // 0x140
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_INIT_Orient2DRelToCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x188
+	float m_flRotOffset; // 0x148
 };
 
-// Aligment: 6
-// Size: 4080
+// Aligment: 4
+// Size: 368
 class C_OP_CurlNoiseForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "noise type"
+	// MPropertyFriendlyName "use curl"
 	// MDefaultString
-	ParticleDirectionNoiseType_t m_nNoiseType; // 0x180
+	bool m_useCurl; // 0x140
 	// MPropertyFriendlyName "noise frequency"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecNoiseFreq; // 0x188
+	Vector m_vecNoiseFreq; // 0x144
 	// MPropertyFriendlyName "noise amplitude"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecNoiseScale; // 0x5b8
+	Vector m_vecNoiseScale; // 0x150
 	// MPropertyFriendlyName "offset rate"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecOffsetRate; // 0x9e8
-	// MPropertyFriendlyName "worley seed"
-	// MDefaultString
-	CPerParticleFloatInput m_flWorleySeed; // 0xe18
-	// MPropertyFriendlyName "worley jitter"
-	// MDefaultString
-	CPerParticleFloatInput m_flWorleyJitter; // 0xf00
+	Vector m_vecOffsetRate; // 0x15c
 };
 
 // Aligment: 0
@@ -10522,308 +12983,307 @@ public:
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_RemapCPOrientationToRotations : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "offset pitch/yaw/roll"
 	// MDefaultString
-	Vector m_vecRotation; // 0x184
+	Vector m_vecRotation; // 0x144
 	// MPropertyFriendlyName "Use Quaternians Internally"
 	// MDefaultString
-	bool m_bUseQuat; // 0x190
+	bool m_bUseQuat; // 0x150
 	// MPropertyFriendlyName "Write normal instead of rotation"
 	// MDefaultString
-	bool m_bWriteNormal; // 0x191
+	bool m_bWriteNormal; // 0x151
 };
 
 // Aligment: 4
-// Size: 1696
+// Size: 352
 class C_OP_SetControlPointRotation : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CParticleCollectionVecInput m_vecRotAxis; // 0x180
+	Vector m_vecRotAxis; // 0x140
 	// MPropertyFriendlyName "rotation rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRotRate; // 0x5b0
+	float m_flRotRate; // 0x14c
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x150
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nLocalCP; // 0x69c
+	int32_t m_nLocalCP; // 0x154
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_RemapCPtoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nInputControlPoint; // 0x180
+	int32_t m_nInputControlPoint; // 0x140
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x184
+	int32_t m_nOutputControlPoint; // 0x144
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nInputField; // 0x188
+	int32_t m_nInputField; // 0x148
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x18c
+	int32_t m_nOutputField; // 0x14c
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x190
+	float m_flInputMin; // 0x150
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x194
+	float m_flInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x198
+	float m_flOutputMin; // 0x158
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x19c
+	float m_flOutputMax; // 0x15c
 	// MPropertyFriendlyName "use the derivative"
 	// MDefaultString
-	bool m_bDerivative; // 0x1a0
+	bool m_bDerivative; // 0x160
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	float m_flInterpRate; // 0x1a4
+	float m_flInterpRate; // 0x164
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_RemapDotProductToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first input control point"
 	// MDefaultString
-	int32_t m_nInputCP1; // 0x180
+	int32_t m_nInputCP1; // 0x140
 	// MPropertyFriendlyName "second input control point"
 	// MDefaultString
-	int32_t m_nInputCP2; // 0x184
+	int32_t m_nInputCP2; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "input minimum (-1 to 1)"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum (-1 to 1)"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "use particle velocity for first input"
 	// MDefaultString
-	bool m_bUseParticleVelocity; // 0x19c
+	bool m_bUseParticleVelocity; // 0x15c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a0
+	ParticleSetMethod_t m_nSetMethod; // 0x160
 	// MPropertyFriendlyName "only active within specified input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a4
+	bool m_bActiveRange; // 0x164
 	// MPropertyFriendlyName "use particle normal for first input"
 	// MDefaultString
-	bool m_bUseParticleNormal; // 0x1a5
+	bool m_bUseParticleNormal; // 0x165
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x184
+	int32_t m_nOutVectorField; // 0x144
 	// MPropertyFriendlyName "scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x188
+	ParticleAttributeIndex_t m_nField; // 0x148
 	// MPropertyFriendlyName "input volume minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input volume maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointToCenter : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number to set"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "center offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 };
 
 // Aligment: 15
-// Size: 4576
+// Size: 416
 class C_INIT_CreateWithinSphere : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "distance min"
 	// MDefaultString
-	CPerParticleFloatInput m_fRadiusMin; // 0x180
+	float m_fRadiusMin; // 0x140
 	// MPropertyFriendlyName "distance max"
 	// MDefaultString
-	CPerParticleFloatInput m_fRadiusMax; // 0x268
+	float m_fRadiusMax; // 0x144
 	// MPropertyFriendlyName "distance bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecDistanceBias; // 0x350
+	Vector m_vecDistanceBias; // 0x148
 	// MPropertyFriendlyName "distance bias absolute value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDistanceBiasAbs; // 0x780
+	Vector m_vecDistanceBiasAbs; // 0x154
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x78c
+	int32_t m_nControlPointNumber; // 0x160
+	// MPropertyFriendlyName "scale CP (distance/speed/local speed)"
+	// MDefaultString
+	int32_t m_nScaleCP; // 0x164
 	// MPropertyFriendlyName "speed min"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMin; // 0x790
+	float m_fSpeedMin; // 0x168
 	// MPropertyFriendlyName "speed max"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMax; // 0x878
+	float m_fSpeedMax; // 0x16c
 	// MPropertyFriendlyName "speed random exponent"
 	// MDefaultString
-	float m_fSpeedRandExp; // 0x960
+	float m_fSpeedRandExp; // 0x170
 	// MPropertyFriendlyName "bias in local system"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x964
+	bool m_bLocalCoords; // 0x174
 	// MPropertyFriendlyName "randomly distribute to highest supplied control point"
 	// MDefaultString
 	// MParticleMaxVersion
-	bool m_bUseHighestEndCP; // 0x966
+	bool m_bUseHighestEndCP; // 0x176
 	// MPropertyFriendlyName "randomly distribution growth time"
 	// MDefaultString
-	float m_flEndCPGrowthTime; // 0x968
+	float m_flEndCPGrowthTime; // 0x178
 	// MPropertyFriendlyName "speed in local coordinate system min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x970
+	Vector m_LocalCoordinateSystemSpeedMin; // 0x17c
 	// MPropertyFriendlyName "speed in local coordinate system max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xda0
+	Vector m_LocalCoordinateSystemSpeedMax; // 0x188
 	// MPropertyFriendlyName "Output vector"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x11d0
-	// MPropertyFriendlyName "Velocity vector"
-	// MDefaultString
-	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldVelocity; // 0x11d4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x194
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapControlPointOrientationToRotation : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x188
+	float m_flOffsetRot; // 0x148
 	// MPropertyFriendlyName "control point axis"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
 	// MVectorIsSometimesCoordinate
-	int32_t m_nComponent; // 0x18c
+	int32_t m_nComponent; // 0x14c
 };
 
 // Aligment: 13
-// Size: 2064
+// Size: 1616
 class C_OP_RenderStandardLight : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "light type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nLightType; // 0x1d0
+	int32_t m_nLightType; // 0x190
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1d8
+	CParticleCollectionVecInput m_vecColorScale; // 0x198
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x608
+	ParticleColorBlendType_t m_nColorBlendType; // 0x4c8
 	// MPropertyFriendlyName "intensity"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flIntensity; // 0x610
+	CParticleCollectionFloatInput m_flIntensity; // 0x4d0
 	// MPropertyFriendlyName "cast shadows"
 	// MDefaultString
-	bool m_bCastShadows; // 0x6f8
+	bool m_bCastShadows; // 0x578
 	// MPropertyFriendlyName "inner cone angle"
 	// MDefaultString
-	float m_flTheta; // 0x6fc
+	float m_flTheta; // 0x57c
 	// MPropertyFriendlyName "outer cone angle"
 	// MDefaultString
-	float m_flPhi; // 0x700
+	float m_flPhi; // 0x580
 	// MPropertyFriendlyName "light radius multiplier"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusMultiplier; // 0x708
+	CParticleCollectionFloatInput m_flRadiusMultiplier; // 0x588
 	// MPropertyFriendlyName "falloff linearity"
 	// MDefaultString
-	float m_flFalloffLinearity; // 0x7f0
+	float m_flFalloffLinearity; // 0x630
 	// MPropertyFriendlyName "render diffuse"
 	// MDefaultString
-	bool m_bRenderDiffuse; // 0x7f4
+	bool m_bRenderDiffuse; // 0x634
 	// MPropertyFriendlyName "render specular"
 	// MDefaultString
-	bool m_bRenderSpecular; // 0x7f5
+	bool m_bRenderSpecular; // 0x635
 	// MPropertyFriendlyName "light cookie string"
-	CUtlString m_lightCookie; // 0x7f8
+	CUtlString m_lightCookie; // 0x638
 	// MPropertyFriendlyName "light priority"
 	// MDefaultString
-	int32_t m_nPriority; // 0x800
+	int32_t m_nPriority; // 0x640
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_WindForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force to apply"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vForce; // 0x180
+	Vector m_vForce; // 0x140
 };
 
 // Aligment: 0
-// Size: 232
+// Size: 168
 class CParticleCollectionFloatInput : public CParticleFloatInput
 {
 public:
@@ -10839,117 +13299,146 @@ public:
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_INIT_RemapCPtoScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x19c
+	float m_flStartTime; // 0x15c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1a0
+	float m_flEndTime; // 0x160
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a4
+	ParticleSetMethod_t m_nSetMethod; // 0x164
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x1a8
+	float m_flRemapBias; // 0x168
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_ClampVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x184
+	Vector m_vecOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x190
+	Vector m_vecOutputMax; // 0x150
+};
+
+// Aligment: 7
+// Size: 400
+class C_INIT_RemapNamedModelElementToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
+	// MPropertyFriendlyName "names"
+	CUtlVector< CUtlString > m_names; // 0x148
+	// MPropertyFriendlyName "remap values for names"
+	CUtlVector< float32 > m_values; // 0x160
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x178
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x17c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x180
+	// MPropertyFriendlyName "model from renderer"
+	// MDefaultString
+	bool m_bModelFromRenderer; // 0x184
 };
 
 // Aligment: 4
-// Size: 464
+// Size: 400
 class C_OP_LockToSavedSequentialPath : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade time"
 	// MDefaultString
-	float m_flFadeStart; // 0x184
+	float m_flFadeStart; // 0x144
 	// MPropertyFriendlyName "end fade time"
 	// MDefaultString
-	float m_flFadeEnd; // 0x188
+	float m_flFadeEnd; // 0x148
 	// MPropertyFriendlyName "Use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x18c
-	CPathParameters m_PathParams; // 0x190
+	bool m_bCPPairs; // 0x14c
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class CGeneralSpin : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "spin rate degrees"
 	// MDefaultString
-	int32_t m_nSpinRateDegrees; // 0x180
+	int32_t m_nSpinRateDegrees; // 0x140
 	// MPropertyFriendlyName "spin rate min"
 	// MDefaultString
-	int32_t m_nSpinRateMinDegrees; // 0x184
+	int32_t m_nSpinRateMinDegrees; // 0x144
 	// MPropertyFriendlyName "spin stop time"
 	// MDefaultString
-	float m_fSpinRateStopTime; // 0x18c
+	float m_fSpinRateStopTime; // 0x14c
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_OP_StopAfterCPDuration : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration at which to stop"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flDuration; // 0x180
+	CParticleCollectionFloatInput m_flDuration; // 0x140
 	// MPropertyFriendlyName "destroy all particles immediately"
 	// MDefaultString
-	bool m_bDestroyImmediately; // 0x268
+	bool m_bDestroyImmediately; // 0x1e8
 	// MPropertyFriendlyName "play end cap effect"
 	// MDefaultString
-	bool m_bPlayEndCap; // 0x269
+	bool m_bPlayEndCap; // 0x1e9
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelBodyPartEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -10957,68 +13446,68 @@ public:
 };
 
 // Aligment: 7
-// Size: 480
+// Size: 416
 class C_OP_MaintainSequentialPath : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x180
+	float m_fMaxDistance; // 0x140
 	// MPropertyFriendlyName "particles to map from start to end"
 	// MDefaultString
-	float m_flNumToAssign; // 0x184
+	float m_flNumToAssign; // 0x144
 	// MPropertyFriendlyName "cohesion strength"
 	// MDefaultString
-	float m_flCohesionStrength; // 0x188
+	float m_flCohesionStrength; // 0x148
 	// MPropertyFriendlyName "control point movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x18c
+	float m_flTolerance; // 0x14c
 	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
 	// MDefaultString
-	bool m_bLoop; // 0x190
+	bool m_bLoop; // 0x150
 	// MPropertyFriendlyName "use existing particle count"
 	// MDefaultString
-	bool m_bUseParticleCount; // 0x191
-	CPathParameters m_PathParams; // 0x1a0
+	bool m_bUseParticleCount; // 0x151
+	CPathParameters m_PathParams; // 0x160
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointFromObjectScale : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nCPOutput; // 0x184
+	int32_t m_nCPOutput; // 0x144
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_ExternalGenericForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "strength"
 	// MDefaultString
-	float m_flStrength; // 0x180
+	float m_flStrength; // 0x140
 	// MPropertyFriendlyName "curl strength"
 	// MDefaultString
-	float m_flCurlStrength; // 0x184
+	float m_flCurlStrength; // 0x144
 	// MPropertyFriendlyName "linear strength"
 	// MDefaultString
-	float m_flLinearStrength; // 0x188
+	float m_flLinearStrength; // 0x148
 	// MPropertyFriendlyName "radial strength"
 	// MDefaultString
-	float m_flRadialStrength; // 0x18c
+	float m_flRadialStrength; // 0x14c
 	// MPropertyFriendlyName "rotation strength"
 	// MDefaultString
-	float m_flRotationStrength; // 0x190
+	float m_flRotationStrength; // 0x150
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelSequenceOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -11026,74 +13515,74 @@ public:
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_ScreenForceFromPlayerView : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Acceleration"
 	// MDefaultString
-	float m_flAccel; // 0x180
+	float m_flAccel; // 0x140
 };
 
 // Aligment: 10
-// Size: 464
+// Size: 400
 class C_OP_RampScalarSpline : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x188
+	float m_flStartTime_min; // 0x148
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x18c
+	float m_flStartTime_max; // 0x14c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "bias"
 	// MDefaultString
-	float m_flBias; // 0x198
+	float m_flBias; // 0x158
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1c0
+	ParticleAttributeIndex_t m_nField; // 0x180
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1c4
+	bool m_bProportionalOp; // 0x184
 	// MPropertyFriendlyName "ease out"
 	// MDefaultString
-	bool m_bEaseOut; // 0x1c5
+	bool m_bEaseOut; // 0x185
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_ColorInterpolate : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color fade"
 	// MDefaultString
-	Color m_ColorFade; // 0x180
+	Color m_ColorFade; // 0x140
 	// MPropertyFriendlyName "fade start time"
 	// MDefaultString
-	float m_flFadeStartTime; // 0x190
+	float m_flFadeStartTime; // 0x150
 	// MPropertyFriendlyName "fade end time"
 	// MDefaultString
-	float m_flFadeEndTime; // 0x194
+	float m_flFadeEndTime; // 0x154
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x158
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInOut; // 0x19c
+	bool m_bEaseInOut; // 0x15c
 };
 
 // Aligment: 1
@@ -11105,746 +13594,760 @@ public:
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_FadeAndKill : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade in time"
 	// MDefaultString
-	float m_flStartFadeInTime; // 0x180
+	float m_flStartFadeInTime; // 0x140
 	// MPropertyFriendlyName "end fade in time"
 	// MDefaultString
-	float m_flEndFadeInTime; // 0x184
+	float m_flEndFadeInTime; // 0x144
 	// MPropertyFriendlyName "start fade out time"
 	// MDefaultString
-	float m_flStartFadeOutTime; // 0x188
+	float m_flStartFadeOutTime; // 0x148
 	// MPropertyFriendlyName "end fade out time"
 	// MDefaultString
-	float m_flEndFadeOutTime; // 0x18c
+	float m_flEndFadeOutTime; // 0x14c
 	// MPropertyFriendlyName "start alpha"
 	// MDefaultString
-	float m_flStartAlpha; // 0x190
+	float m_flStartAlpha; // 0x150
 	// MPropertyFriendlyName "end alpha"
 	// MDefaultString
-	float m_flEndAlpha; // 0x194
+	float m_flEndAlpha; // 0x154
 	// MPropertyFriendlyName "force preserving particle order"
 	// MDefaultString
-	bool m_bForcePreserveParticleOrder; // 0x198
-};
-
-// Aligment: 7
-// Size: 416
-class C_OP_MaintainEmitter : public CParticleFunctionEmitter, CParticleFunction
-{
-public:
-	// MPropertyFriendlyName "Max Particles"
-	// MDefaultString
-	int32_t m_nParticlesToMaintain; // 0x180
-	// MPropertyFriendlyName "Emit Rate"
-	// MDefaultString
-	float m_flEmissionRate; // 0x184
-	// MPropertyFriendlyName "Start Time Offset"
-	// MDefaultString
-	float m_flStartTime; // 0x188
-	// MPropertyFriendlyName "maintain count scale control point"
-	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nScaleControlPoint; // 0x18c
-	// MPropertyFriendlyName "maintain count scale control point field"
-	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nScaleControlPointField; // 0x190
-	// MPropertyFriendlyName "control point with snapshot data"
-	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nSnapshotControlPoint; // 0x194
-	// MPropertyFriendlyName "group emission times for new particles"
-	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	bool m_bEmitInstantaneously; // 0x198
+	bool m_bForcePreserveParticleOrder; // 0x158
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
+class C_INIT_PositionOffsetToCP : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "creation control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumberStart; // 0x140
+	// MPropertyFriendlyName "offset control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumberEnd; // 0x144
+	// MPropertyFriendlyName "offset in local space 0/1"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x148
+};
+
+// Aligment: 7
+// Size: 352
+class C_OP_MaintainEmitter : public CParticleFunctionEmitter, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "count to maintain"
+	// MDefaultString
+	int32_t m_nParticlesToMaintain; // 0x140
+	// MPropertyFriendlyName "emission start time"
+	// MDefaultString
+	float m_flStartTime; // 0x144
+	// MPropertyFriendlyName "maintain count scale control point"
+	// MDefaultString
+	int32_t m_nScaleControlPoint; // 0x148
+	// MPropertyFriendlyName "maintain count scale control point field"
+	// MDefaultString
+	int32_t m_nScaleControlPointField; // 0x14c
+	// MPropertyFriendlyName "emission rate"
+	// MDefaultString
+	float m_flEmissionRate; // 0x150
+	// MPropertyFriendlyName "control point with snapshot data"
+	// MDefaultString
+	int32_t m_nSnapshotControlPoint; // 0x154
+	// MPropertyFriendlyName "group emission times for new particles"
+	// MDefaultString
+	bool m_bEmitInstantaneously; // 0x158
+};
+
+// Aligment: 3
+// Size: 336
 class C_INIT_VelocityFromNormal : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	float m_fSpeedMin; // 0x180
+	float m_fSpeedMin; // 0x140
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	float m_fSpeedMax; // 0x184
+	float m_fSpeedMax; // 0x144
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x188
+	bool m_bIgnoreDt; // 0x148
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_MaxVelocity : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "maximum velocity"
 	// MDefaultString
-	float m_flMaxVelocity; // 0x180
+	float m_flMaxVelocity; // 0x140
 	// MPropertyFriendlyName "override max velocity from this CP"
 	// MDefaultString
-	int32_t m_nOverrideCP; // 0x184
+	int32_t m_nOverrideCP; // 0x144
 	// MPropertyFriendlyName "override CP field"
 	// MDefaultString
-	int32_t m_nOverrideCPField; // 0x188
+	int32_t m_nOverrideCPField; // 0x148
 };
 
-// Aligment: 11
-// Size: 544
+// Aligment: 10
+// Size: 480
 class C_OP_RenderProjected : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "project on characters"
 	// MDefaultString
-	bool m_bProjectCharacter; // 0x1d0
+	bool m_bProjectCharacter; // 0x190
 	// MPropertyFriendlyName "project on world"
 	// MDefaultString
-	bool m_bProjectWorld; // 0x1d1
+	bool m_bProjectWorld; // 0x191
 	// MPropertyFriendlyName "project on water"
 	// MDefaultString
-	bool m_bProjectWater; // 0x1d2
+	bool m_bProjectWater; // 0x192
 	// MPropertyFriendlyName "flip horizontal"
 	// MDefaultString
-	bool m_bFlipHorizontal; // 0x1d3
+	bool m_bFlipHorizontal; // 0x193
 	// MPropertyFriendlyName "enable projected depth controls"
 	// MDefaultString
-	bool m_bEnableProjectedDepthControls; // 0x1d4
+	bool m_bEnableProjectedDepthControls; // 0x194
 	// MPropertyFriendlyName "min projection depth"
 	// MDefaultString
-	float m_flMinProjectionDepth; // 0x1d8
+	float m_flMinProjectionDepth; // 0x198
 	// MPropertyFriendlyName "max projection depth"
 	// MDefaultString
-	float m_flMaxProjectionDepth; // 0x1dc
+	float m_flMaxProjectionDepth; // 0x19c
 	// MPropertyFriendlyName "material"
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
 	// MDefaultString
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hProjectedMaterial; // 0x1e0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hProjectedMaterial; // 0x1a0
 	// MPropertyFriendlyName "sheet animation time scale"
 	// MDefaultString
-	float m_flAnimationTimeScale; // 0x1e8
-	// MPropertyFriendlyName "orient to normal"
-	// MDefaultString
-	bool m_bOrientToNormal; // 0x1ec
+	float m_flAnimationTimeScale; // 0x1a8
 	// MPropertyFriendlyName "material variables"
-	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1f0
+	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1b0
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelMeshGroup : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 3
-// Size: 1696
+// Size: 1312
 class C_OP_PerParticleForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flForceScale; // 0x180
+	CPerParticleFloatInput m_flForceScale; // 0x140
 	// MPropertyFriendlyName "force to apply"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vForce; // 0x268
+	CPerParticleVecInput m_vForce; // 0x1e8
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x518
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_InheritFromPeerSystem : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "read field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "written field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "particle neighbor increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "group id"
 	// MDefaultString
-	int32_t m_nGroupID; // 0x18c
+	int32_t m_nGroupID; // 0x14c
 };
 
 // Aligment: 11
-// Size: 560
+// Size: 496
 class C_INIT_CreateOnModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "force to be inside model"
 	// MDefaultString
-	int32_t m_nForceInModel; // 0x184
+	int32_t m_nForceInModel; // 0x144
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x188
+	int32_t m_nDesiredHitbox; // 0x148
 	// MPropertyFriendlyName "Control Point Providing Hitbox index"
 	// MDefaultString
-	int32_t m_nHitboxValueFromControlPointIndex; // 0x18c
+	int32_t m_nHitboxValueFromControlPointIndex; // 0x14c
 	// MPropertyFriendlyName "hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x190
+	float m_flHitBoxScale; // 0x150
 	// MPropertyFriendlyName "inherited velocity scale"
 	// MDefaultString
-	float m_flBoneVelocity; // 0x194
+	float m_flBoneVelocity; // 0x154
 	// MPropertyFriendlyName "maximum inherited velocity"
 	// MDefaultString
-	float m_flMaxBoneVelocity; // 0x198
+	float m_flMaxBoneVelocity; // 0x158
 	// MPropertyFriendlyName "direction bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDirectionBias; // 0x19c
+	Vector m_vecDirectionBias; // 0x15c
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x1a8
+	char[128] m_HitboxSetName; // 0x168
 	// MPropertyFriendlyName "bias in local space"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x228
+	bool m_bLocalCoords; // 0x1e8
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x229
+	bool m_bUseBones; // 0x1e9
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_INIT_InitFloat : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Value"
-	CPerParticleFloatInput m_InputValue; // 0x180
-	// MPropertyFriendlyName "Target"
+	// MPropertyFriendlyName "value"
+	CPerParticleFloatInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
-	// MPropertyFriendlyName "Set Method"
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
+	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 };
 
 // Aligment: 4
-// Size: 1696
+// Size: 512
 class C_OP_MovementRotateParticleAroundAxis : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CParticleCollectionVecInput m_vecRotAxis; // 0x180
+	Vector m_vecRotAxis; // 0x140
 	// MPropertyFriendlyName "rotation rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRotRate; // 0x5b0
+	CParticleCollectionFloatInput m_flRotRate; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x1f8
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x69c
+	bool m_bLocalSpace; // 0x1fc
 };
 
 // Aligment: 13
-// Size: 560
+// Size: 496
 class C_OP_DistanceToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x198
+	bool m_bLOS; // 0x158
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x199
+	char[128] m_CollisionGroupName; // 0x159
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x21c
+	float m_flMaxTraceLength; // 0x1dc
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x220
+	float m_flLOSScale; // 0x1e0
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x224
+	ParticleSetMethod_t m_nSetMethod; // 0x1e4
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x228
+	bool m_bActiveRange; // 0x1e8
 	// MPropertyFriendlyName "output is additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x229
+	bool m_bAdditive; // 0x1e9
 };
 
 // Aligment: 12
-// Size: 464
+// Size: 400
 class C_OP_SetControlPointPositions : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "inherit CP orientation"
 	// MDefaultString
-	bool m_bOrient; // 0x181
+	bool m_bOrient; // 0x141
 	// MPropertyFriendlyName "only set position once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x182
+	bool m_bSetOnce; // 0x142
 	// MPropertyFriendlyName "first control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "second control point number"
 	// MDefaultString
-	int32_t m_nCP2; // 0x188
+	int32_t m_nCP2; // 0x148
 	// MPropertyFriendlyName "third control point number"
 	// MDefaultString
-	int32_t m_nCP3; // 0x18c
+	int32_t m_nCP3; // 0x14c
 	// MPropertyFriendlyName "fourth control point number"
 	// MDefaultString
-	int32_t m_nCP4; // 0x190
+	int32_t m_nCP4; // 0x150
 	// MPropertyFriendlyName "first control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x194
+	Vector m_vecCP1Pos; // 0x154
 	// MPropertyFriendlyName "second control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP2Pos; // 0x1a0
+	Vector m_vecCP2Pos; // 0x160
 	// MPropertyFriendlyName "third control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP3Pos; // 0x1ac
+	Vector m_vecCP3Pos; // 0x16c
 	// MPropertyFriendlyName "fourth control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP4Pos; // 0x1b8
+	Vector m_vecCP4Pos; // 0x178
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x1c4
+	int32_t m_nHeadLocation; // 0x184
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_OP_ConstrainDistanceToUserSpecifiedPath : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_flMaxDistance; // 0x184
+	float m_flMaxDistance; // 0x144
 	// MPropertyFriendlyName "Time scale"
 	// MDefaultString
-	float m_flTimeScale; // 0x188
+	float m_flTimeScale; // 0x148
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bLoopedPath; // 0x18c
+	bool m_bLoopedPath; // 0x14c
 	// MPropertyFriendlyName "path points"
-	CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x190
+	CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x150
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_INIT_CreateInEpitrochoid : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first dimension 0-2 (-1 disables)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent1; // 0x180
+	int32_t m_nComponent1; // 0x140
 	// MPropertyFriendlyName "second dimension 0-2 (-1 disables)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent2; // 0x184
+	int32_t m_nComponent2; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "scale from conrol point (radius 1/radius 2/offset)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x18c
+	int32_t m_nScaleCP; // 0x14c
 	// MPropertyFriendlyName "particle density"
 	// MDefaultString
-	float m_flParticleDensity; // 0x190
+	float m_flParticleDensity; // 0x150
 	// MPropertyFriendlyName "point offset"
 	// MDefaultString
-	float m_flOffset; // 0x194
+	float m_flOffset; // 0x154
 	// MPropertyFriendlyName "radius 1"
 	// MDefaultString
-	float m_flRadius1; // 0x198
+	float m_flRadius1; // 0x158
 	// MPropertyFriendlyName "radius 2"
 	// MDefaultString
-	float m_flRadius2; // 0x19c
+	float m_flRadius2; // 0x15c
 	// MPropertyFriendlyName "use particle count instead of creation time"
 	// MDefaultString
-	bool m_bUseCount; // 0x1a0
+	bool m_bUseCount; // 0x160
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bUseLocalCoords; // 0x1a1
+	bool m_bUseLocalCoords; // 0x161
 	// MPropertyFriendlyName "offset from existing position"
 	// MDefaultString
-	bool m_bOffsetExistingPos; // 0x1a2
+	bool m_bOffsetExistingPos; // 0x162
 };
 
 // Aligment: 5
-// Size: 1104
+// Size: 848
 class C_INIT_CreateParticleImpulse : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "radius"
-	CPerParticleFloatInput m_InputRadius; // 0x180
+	CPerParticleFloatInput m_InputRadius; // 0x140
 	// MPropertyFriendlyName "magnitude"
-	CPerParticleFloatInput m_InputMagnitude; // 0x268
+	CPerParticleFloatInput m_InputMagnitude; // 0x1e8
 	// MPropertyFriendlyName "force falloff function"
 	// MDefaultString
-	ParticleFalloffFunction_t m_nFalloffFunction; // 0x350
+	ParticleFalloffFunction_t m_nFalloffFunction; // 0x290
 	// MPropertyFriendlyName "exponential falloff exponent"
 	// MDefaultString
-	CPerParticleFloatInput m_InputFalloffExp; // 0x358
+	CPerParticleFloatInput m_InputFalloffExp; // 0x298
 	// MPropertyFriendlyName "impulse type"
 	// MDefaultString
-	ParticleImpulseType_t m_nImpulseType; // 0x440
+	ParticleImpulseType_t m_nImpulseType; // 0x340
 };
 
 // Aligment: 13
-// Size: 464
+// Size: 400
 class C_OP_RemapCPtoVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x188
+	int32_t m_nLocalSpaceCP; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMin; // 0x18c
+	Vector m_vInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMax; // 0x198
+	Vector m_vInputMax; // 0x158
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMin; // 0x1a4
+	Vector m_vOutputMin; // 0x164
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMax; // 0x1b0
+	Vector m_vOutputMax; // 0x170
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x1bc
+	float m_flStartTime; // 0x17c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1c0
+	float m_flEndTime; // 0x180
 	// MPropertyFriendlyName "interpolation scale"
 	// MDefaultString
-	float m_flInterpRate; // 0x1c4
+	float m_flInterpRate; // 0x184
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1c8
+	ParticleSetMethod_t m_nSetMethod; // 0x188
 	// MPropertyFriendlyName "offset position"
 	// MDefaultString
-	bool m_bOffset; // 0x1cc
+	bool m_bOffset; // 0x18c
 	// MPropertyFriendlyName "accelerate position"
 	// MDefaultString
-	bool m_bAccelerate; // 0x1cd
+	bool m_bAccelerate; // 0x18d
 };
 
-// Aligment: 11
-// Size: 2416
+// Aligment: 10
+// Size: 864
 class C_OP_PinParticleToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecOffset; // 0x188
+	Vector m_vecOffset; // 0x144
 	// MPropertyFriendlyName "offset in local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x5b8
+	bool m_bOffsetLocal; // 0x150
 	// MPropertyFriendlyName "particle to use"
 	// MDefaultString
-	ParticleSelection_t m_nParticleSelection; // 0x5bc
+	ParticleSelection_t m_nParticleSelection; // 0x154
 	// MPropertyFriendlyName "particle number"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nParticleNumber; // 0x5c0
+	CParticleCollectionFloatInput m_nParticleNumber; // 0x158
 	// MPropertyFriendlyName "pin break type"
 	// MDefaultString
-	ParticlePinDistance_t m_nPinBreakType; // 0x6a8
+	ParticlePinDistance_t m_nPinBreakType; // 0x200
 	// MPropertyFriendlyName "break length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flBreakDistance; // 0x6b0
+	CParticleCollectionFloatInput m_flBreakDistance; // 0x208
 	// MPropertyFriendlyName "break speed"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flBreakSpeed; // 0x798
-	// MPropertyFriendlyName "break age"
-	// MDefaultString
-	CParticleCollectionFloatInput m_flAge; // 0x880
+	CParticleCollectionFloatInput m_flBreakSpeed; // 0x2b0
 	// MPropertyFriendlyName "break comparison control point 1"
 	// MDefaultString
-	int32_t m_nBreakControlPointNumber; // 0x968
+	int32_t m_nBreakControlPointNumber; // 0x358
 	// MPropertyFriendlyName "break comparison control point 2"
 	// MDefaultString
-	int32_t m_nBreakControlPointNumber2; // 0x96c
+	int32_t m_nBreakControlPointNumber2; // 0x35c
 };
 
 // Aligment: 9
-// Size: 448
+// Size: 384
 class C_OP_DriveCPFromGlobalSoundFloat : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x180
+	int32_t m_nOutputControlPoint; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x184
+	int32_t m_nOutputField; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "sound stack name"
-	CUtlString m_StackName; // 0x198
+	CUtlString m_StackName; // 0x158
 	// MPropertyFriendlyName "sound operator name"
-	CUtlString m_OperatorName; // 0x1a0
+	CUtlString m_OperatorName; // 0x160
 	// MPropertyFriendlyName "sound field name"
-	CUtlString m_FieldName; // 0x1a8
+	CUtlString m_FieldName; // 0x168
 };
 
 // Aligment: 7
-// Size: 432
+// Size: 368
 class C_OP_RemapDirectionToCPToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x18c
+	float m_flOffsetRot; // 0x14c
 	// MPropertyFriendlyName "offset axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetAxis; // 0x190
+	Vector m_vecOffsetAxis; // 0x150
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x19c
+	bool m_bNormalize; // 0x15c
 	// MPropertyFriendlyName "strength field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldStrength; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldStrength; // 0x160
 };
 
 // Aligment: 5
-// Size: 640
+// Size: 512
 class C_OP_SetChildControlPoints : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x190
+	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x150
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x278
+	bool m_bSetOrientation; // 0x1f8
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_NormalAlignToCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_PositionOffset : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_OffsetMin; // 0x180
+	Vector m_OffsetMin; // 0x140
 	// MPropertyFriendlyName "offset max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_OffsetMax; // 0x18c
+	Vector m_OffsetMax; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "offset in local space 0/1"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x19c
+	bool m_bLocalCoords; // 0x15c
 	// MPropertyFriendlyName "offset proportional to radius 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x19d
+	bool m_bProportional; // 0x15d
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_INIT_InheritVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x184
+	float m_flVelocityScale; // 0x144
 };
 
 // Aligment: 17
-// Size: 2000
+// Size: 1552
 class C_OP_RenderCables : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1d0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x190
 	// MPropertyFriendlyName "texture repetition mode"
 	// MDefaultString
-	TextureRepetitionMode_t m_nTextureRepetitionMode; // 0x1d8
+	TextureRepetitionMode_t m_nTextureRepetitionMode; // 0x198
 	// MPropertyFriendlyName "texture repetitions"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0x1e0
+	CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0x1a0
 	// MPropertyFriendlyName "texture repetitions around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0x2c8
+	CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0x248
 	// MPropertyFriendlyName "color map offset along path"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flColorMapOffsetV; // 0x3b0
+	CParticleCollectionFloatInput m_flColorMapOffsetV; // 0x2f0
 	// MPropertyFriendlyName "color map offset around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flColorMapOffsetU; // 0x498
+	CParticleCollectionFloatInput m_flColorMapOffsetU; // 0x398
 	// MPropertyFriendlyName "normal map offset along path"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x580
+	CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x440
 	// MPropertyFriendlyName "normal map offset around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x668
+	CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x4e8
 	// MPropertyFriendlyName "draw caps at each end of the cable"
 	// MDefaultString
-	bool m_bDrawCableCaps; // 0x750
+	bool m_bDrawCableCaps; // 0x590
 	// MPropertyFriendlyName "cable end cap shape factor"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	float m_flCapRoundness; // 0x754
+	float m_flCapRoundness; // 0x594
 	// MPropertyFriendlyName "cable end cap offset amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	float m_flCapOffsetAmount; // 0x758
+	float m_flCapOffsetAmount; // 0x598
 	// MPropertyFriendlyName "tessellation scale factor"
 	// MDefaultString
-	float m_flTessScale; // 0x75c
+	float m_flTessScale; // 0x59c
 	// MPropertyFriendlyName "minimum steps between particles"
 	// MDefaultString
-	int32_t m_nMinTesselation; // 0x760
+	int32_t m_nMinTesselation; // 0x5a0
 	// MPropertyFriendlyName "maximum steps between particles"
 	// MDefaultString
-	int32_t m_nMaxTesselation; // 0x764
+	int32_t m_nMaxTesselation; // 0x5a4
 	// MPropertyFriendlyName "roundness factor"
 	// MDefaultString
-	int32_t m_nRoundness; // 0x768
+	int32_t m_nRoundness; // 0x5a8
 	// MPropertyFriendlyName "material float variables"
-	CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x770
+	CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x5b0
 	// MPropertyFriendlyName "material vector variables"
-	CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x7a0
+	CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x5e0
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_INIT_InitFromCPSnapshot : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x184
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x144
 	// MPropertyFriendlyName "field to write"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x188
+	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x148
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x18c
+	int32_t m_nLocalSpaceCP; // 0x14c
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x190
+	bool m_bRandom; // 0x150
 	// MPropertyFriendlyName "reverse order"
 	// MDefaultString
-	bool m_bReverse; // 0x191
+	bool m_bReverse; // 0x151
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x194
+	int32_t m_nRandomSeed; // 0x154
 	// MPropertyFriendlyName "local space angles"
 	// MDefaultString
-	bool m_bLocalSpaceAngles; // 0x198
+	bool m_bLocalSpaceAngles; // 0x158
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelSequenceEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -11852,399 +14355,407 @@ public:
 };
 
 // Aligment: 9
-// Size: 416
+// Size: 352
 class C_OP_DifferencePreviousParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "difference minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "difference maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 	// MPropertyFriendlyName "only active within specified difference"
 	// MDefaultString
-	bool m_bActiveRange; // 0x19c
+	bool m_bActiveRange; // 0x15c
 	// MPropertyFriendlyName "also set ouput to previous particle"
 	// MDefaultString
-	bool m_bSetPreviousParticle; // 0x19d
+	bool m_bSetPreviousParticle; // 0x15d
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToHMD : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 	// MPropertyFriendlyName "use hmd orientation"
 	// MDefaultString
-	bool m_bOrientToHMD; // 0x190
+	bool m_bOrientToHMD; // 0x150
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_ClampScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 };
 
 // Aligment: 12
-// Size: 560
+// Size: 496
 class C_INIT_InitialRepulsionVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x180
+	char[128] m_CollisionGroupName; // 0x140
 	// MPropertyFriendlyName "minimum velocity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOutputMin; // 0x200
+	Vector m_vecOutputMin; // 0x1c0
 	// MPropertyFriendlyName "maximum velocity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOutputMax; // 0x20c
+	Vector m_vecOutputMax; // 0x1cc
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x218
+	int32_t m_nControlPointNumber; // 0x1d8
 	// MPropertyFriendlyName "per particle world collision tests"
 	// MDefaultString
-	bool m_bPerParticle; // 0x21c
+	bool m_bPerParticle; // 0x1dc
 	// MPropertyFriendlyName "offset instead of accelerate"
 	// MDefaultString
-	bool m_bTranslate; // 0x21d
+	bool m_bTranslate; // 0x1dd
 	// MPropertyFriendlyName "offset proportional to radius 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x21e
+	bool m_bProportional; // 0x1de
 	// MPropertyFriendlyName "trace length"
 	// MDefaultString
-	float m_flTraceLength; // 0x220
+	float m_flTraceLength; // 0x1e0
 	// MPropertyFriendlyName "use radius for per particle trace length"
 	// MDefaultString
-	bool m_bPerParticleTR; // 0x224
+	bool m_bPerParticleTR; // 0x1e4
 	// MPropertyFriendlyName "inherit from parent"
 	// MDefaultString
-	bool m_bInherit; // 0x225
+	bool m_bInherit; // 0x1e5
 	// MPropertyFriendlyName "control points to broadcast to children (n + 1)"
 	// MDefaultString
-	int32_t m_nChildCP; // 0x228
+	int32_t m_nChildCP; // 0x1e8
 	// MPropertyFriendlyName "child group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x22c
+	int32_t m_nChildGroupID; // 0x1ec
 };
 
 // Aligment: 4
-// Size: 640
+// Size: 512
 class C_OP_LerpScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutput; // 0x188
+	CPerParticleFloatInput m_flOutput; // 0x148
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x270
+	float m_flStartTime; // 0x1f0
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x274
+	float m_flEndTime; // 0x1f4
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_MovementMoveAlongSkinnedCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x184
+	int32_t m_nSnapshotControlPointNumber; // 0x144
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x188
+	bool m_bSetNormal; // 0x148
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x190
+	CPerParticleFloatInput m_flInterpolation; // 0x150
 	// MPropertyFriendlyName "Snapshot Index T Value"
 	// MDefaultString
-	CPerParticleFloatInput m_flTValue; // 0x278
+	CPerParticleFloatInput m_flTValue; // 0x1f8
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_INIT_SetHitboxToModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "force to be inside model"
 	// MDefaultString
-	int32_t m_nForceInModel; // 0x184
+	int32_t m_nForceInModel; // 0x144
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x188
+	int32_t m_nDesiredHitbox; // 0x148
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x18c
+	float m_flHitBoxScale; // 0x14c
 	// MPropertyFriendlyName "direction bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDirectionBias; // 0x190
+	Vector m_vecDirectionBias; // 0x150
 	// MPropertyFriendlyName "maintain existing hitbox"
 	// MDefaultString
-	bool m_bMaintainHitbox; // 0x19c
+	bool m_bMaintainHitbox; // 0x15c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x19d
+	bool m_bUseBones; // 0x15d
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x19e
+	char[128] m_HitboxSetName; // 0x15e
 };
 
 // Aligment: 3
-// Size: 1472
+// Size: 1152
 class C_INIT_InitVec : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Value"
-	CPerParticleVecInput m_InputValue; // 0x180
-	// MPropertyFriendlyName "Target"
+	// MPropertyFriendlyName "value"
+	CPerParticleVecInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
-	// MPropertyFriendlyName "Set Method"
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
+	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5b4
+	ParticleSetMethod_t m_nSetMethod; // 0x474
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_AlphaDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum alpha"
 	// MDefaultString
-	float m_flMinAlpha; // 0x180
+	float m_flMinAlpha; // 0x140
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_SequenceFromModel : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "current anim time output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
 };
 
 // Aligment: 3
-// Size: 1088
+// Size: 832
 class C_OP_ColorAdjustHSL : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "hue adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flHueAdjust; // 0x180
+	CPerParticleFloatInput m_flHueAdjust; // 0x140
 	// MPropertyFriendlyName "saturation adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flSaturationAdjust; // 0x268
+	CPerParticleFloatInput m_flSaturationAdjust; // 0x1e8
 	// MPropertyFriendlyName "lightness adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flLightnessAdjust; // 0x350
+	CPerParticleFloatInput m_flLightnessAdjust; // 0x290
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_FadeAndKillForTracers : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade in time"
 	// MDefaultString
-	float m_flStartFadeInTime; // 0x180
+	float m_flStartFadeInTime; // 0x140
 	// MPropertyFriendlyName "end fade in time"
 	// MDefaultString
-	float m_flEndFadeInTime; // 0x184
+	float m_flEndFadeInTime; // 0x144
 	// MPropertyFriendlyName "start fade out time"
 	// MDefaultString
-	float m_flStartFadeOutTime; // 0x188
+	float m_flStartFadeOutTime; // 0x148
 	// MPropertyFriendlyName "end fade out time"
 	// MDefaultString
-	float m_flEndFadeOutTime; // 0x18c
+	float m_flEndFadeOutTime; // 0x14c
 	// MPropertyFriendlyName "start alpha"
 	// MDefaultString
-	float m_flStartAlpha; // 0x190
+	float m_flStartAlpha; // 0x150
 	// MPropertyFriendlyName "end alpha"
 	// MDefaultString
-	float m_flEndAlpha; // 0x194
+	float m_flEndAlpha; // 0x154
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_OP_Noise : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 	// MPropertyFriendlyName "noise coordinate scale"
 	// MDefaultString
-	fltx4 m_fl4NoiseScale; // 0x190
+	fltx4 m_fl4NoiseScale; // 0x150
 	// MPropertyFriendlyName "additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x1a0
+	bool m_bAdditive; // 0x160
 	// MPropertyFriendlyName "Noise animation time scale"
 	// MDefaultString
-	float m_flNoiseAnimationTimeScale; // 0x1a4
+	float m_flNoiseAnimationTimeScale; // 0x164
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_LagCompensation : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "desired velocity CP"
 	// MDefaultString
-	int32_t m_nDesiredVelocityCP; // 0x180
+	int32_t m_nDesiredVelocityCP; // 0x140
 	// MPropertyFriendlyName "latency CP"
 	// MDefaultString
-	int32_t m_nLatencyCP; // 0x184
+	int32_t m_nLatencyCP; // 0x144
 	// MPropertyFriendlyName "latency CP field"
 	// MDefaultString
-	int32_t m_nLatencyCPField; // 0x188
+	int32_t m_nLatencyCPField; // 0x148
 	// MPropertyFriendlyName "desired velocity CP field override(for speed only)"
 	// MDefaultString
-	int32_t m_nDesiredVelocityCPField; // 0x18c
+	int32_t m_nDesiredVelocityCPField; // 0x14c
 };
 
 // Aligment: 17
-// Size: 448
+// Size: 384
 class C_INIT_InitSkinnedPositionFromCPSnapshot : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x180
+	int32_t m_nSnapshotControlPointNumber; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x188
+	bool m_bRandom; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "prepare for rigid lock"
 	// MDefaultString
-	bool m_bRigid; // 0x190
+	bool m_bRigid; // 0x150
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x191
+	bool m_bSetNormal; // 0x151
 	// MPropertyFriendlyName "normal velocity ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x192
+	bool m_bIgnoreDt; // 0x152
 	// MPropertyFriendlyName "normal velocity min"
 	// MDefaultString
-	float m_flMinNormalVelocity; // 0x194
+	float m_flMinNormalVelocity; // 0x154
 	// MPropertyFriendlyName "normal velocity max"
 	// MDefaultString
-	float m_flMaxNormalVelocity; // 0x198
+	float m_flMaxNormalVelocity; // 0x158
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	float m_flIncrement; // 0x19c
+	float m_flIncrement; // 0x15c
 	// MPropertyFriendlyName "Full Loop Increment Amount"
 	// MDefaultString
-	int32_t m_nFullLoopIncrement; // 0x1a0
+	int32_t m_nFullLoopIncrement; // 0x160
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	int32_t m_nSnapShotStartPoint; // 0x1a4
+	int32_t m_nSnapShotStartPoint; // 0x164
 	// MPropertyFriendlyName "inherited bone velocity"
 	// MDefaultString
-	float m_flBoneVelocity; // 0x1a8
+	float m_flBoneVelocity; // 0x168
 	// MPropertyFriendlyName "max inherited bone velocity"
 	// MDefaultString
-	float m_flBoneVelocityMax; // 0x1ac
+	float m_flBoneVelocityMax; // 0x16c
 	// MPropertyFriendlyName "Set Color"
 	// MDefaultString
-	bool m_bCopyColor; // 0x1b0
+	bool m_bCopyColor; // 0x170
 	// MPropertyFriendlyName "Set Alpha"
 	// MDefaultString
-	bool m_bCopyAlpha; // 0x1b1
+	bool m_bCopyAlpha; // 0x171
 	// MPropertyFriendlyName "Set Radius"
 	// MDefaultString
-	bool m_bCopyRadius; // 0x1b2
+	bool m_bCopyRadius; // 0x172
 };
 
 // Aligment: 0
-// Size: 232
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelBodyPartScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 168
 class CPerParticleFloatInput : public CParticleFloatInput
 {
 public:
@@ -12252,16 +14763,16 @@ public:
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ConnectParentParticleToNearest : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x180
+	int32_t m_nFirstControlPoint; // 0x140
 	// MPropertyFriendlyName "Second Control point to set"
 	// MDefaultString
-	int32_t m_nSecondControlPoint; // 0x184
+	int32_t m_nSecondControlPoint; // 0x144
 };
 
 // Aligment: 1
@@ -12272,6 +14783,14 @@ public:
 	int32_t unused; // 0x0
 };
 
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelBodyPart : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 8
 class IParticleEffect
@@ -12281,65 +14800,62 @@ public:
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_CreateFromParentParticles : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "inherited velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x180
+	float m_flVelocityScale; // 0x140
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	float m_flIncrement; // 0x184
+	float m_flIncrement; // 0x144
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x188
+	bool m_bRandomDistribution; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "sub frame interpolation"
 	// MDefaultString
-	bool m_bSubFrame; // 0x190
+	bool m_bSubFrame; // 0x150
 };
 
-// Aligment: 4
-// Size: 1696
+// Aligment: 3
+// Size: 1312
 class C_OP_SetVec : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleVecInput m_InputValue; // 0x180
+	CPerParticleVecInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
-	// MPropertyFriendlyName "set value method"
-	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5b4
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_Lerp; // 0x5b8
+	CPerParticleFloatInput m_Lerp; // 0x478
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_MovementMaintainOffset : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "desired offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffset; // 0x180
+	Vector m_vecOffset; // 0x140
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nCP; // 0x18c
+	int32_t m_nCP; // 0x14c
 	// MPropertyFriendlyName "scale by radius"
 	// MDefaultString
-	bool m_bRadiusScale; // 0x190
+	bool m_bRadiusScale; // 0x150
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelBodyPartOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -12347,130 +14863,188 @@ public:
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_OP_LockToBone : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control_point_number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "lifetime fade start"
 	// MDefaultString
-	float m_flLifeTimeFadeStart; // 0x184
+	float m_flLifeTimeFadeStart; // 0x144
 	// MPropertyFriendlyName "lifetime fade end"
 	// MDefaultString
-	float m_flLifeTimeFadeEnd; // 0x188
+	float m_flLifeTimeFadeEnd; // 0x148
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x18c
+	float m_flJumpThreshold; // 0x14c
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x190
+	float m_flPrevPosScale; // 0x150
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x194
+	char[128] m_HitboxSetName; // 0x154
 	// MPropertyFriendlyName "rigid lock"
 	// MDefaultString
-	bool m_bRigid; // 0x214
+	bool m_bRigid; // 0x1d4
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x215
+	bool m_bUseBones; // 0x1d5
 };
 
 // Aligment: 11
-// Size: 480
+// Size: 416
 class C_OP_CalculateVectorAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start value"
 	// MDefaultString
-	Vector m_vStartValue; // 0x180
+	Vector m_vStartValue; // 0x140
 	// MPropertyFriendlyName "input field 1"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput1; // 0x18c
+	ParticleAttributeIndex_t m_nFieldInput1; // 0x14c
 	// MPropertyFriendlyName "input scale 1"
 	// MDefaultString
-	float m_flInputScale1; // 0x190
+	float m_flInputScale1; // 0x150
 	// MPropertyFriendlyName "input field 2"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput2; // 0x194
+	ParticleAttributeIndex_t m_nFieldInput2; // 0x154
 	// MPropertyFriendlyName "input scale 2"
 	// MDefaultString
-	float m_flInputScale2; // 0x198
+	float m_flInputScale2; // 0x158
 	// MPropertyFriendlyName "control point input 1"
-	ControlPointReference_t m_nControlPointInput1; // 0x19c
+	ControlPointReference_t m_nControlPointInput1; // 0x15c
 	// MPropertyFriendlyName "control point scale 1"
 	// MDefaultString
-	float m_flControlPointScale1; // 0x1b0
+	float m_flControlPointScale1; // 0x170
 	// MPropertyFriendlyName "control point input 2"
-	ControlPointReference_t m_nControlPointInput2; // 0x1b4
+	ControlPointReference_t m_nControlPointInput2; // 0x174
 	// MPropertyFriendlyName "control point scale 2"
 	// MDefaultString
-	float m_flControlPointScale2; // 0x1c8
+	float m_flControlPointScale2; // 0x188
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1cc
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x18c
 	// MPropertyFriendlyName "final per component scale"
 	// MDefaultString
-	Vector m_vFinalOutputScale; // 0x1d0
+	Vector m_vFinalOutputScale; // 0x190
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapCPOrientationToYaw : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x188
+	float m_flRotOffset; // 0x148
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x18c
+	float m_flSpinStrength; // 0x14c
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_DampenToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "falloff range"
 	// MDefaultString
-	float m_flRange; // 0x184
+	float m_flRange; // 0x144
 	// MPropertyFriendlyName "dampen scale"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
+};
+
+// Aligment: 6
+// Size: 368
+class CGeneralRandomRotation : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "yaw offset min"
+	// MDefaultString
+	float m_flDegreesMin; // 0x140
+	// MPropertyFriendlyName "yaw offset max"
+	// MDefaultString
+	float m_flDegreesMax; // 0x144
+	// MPropertyFriendlyName "yaw initial"
+	// MDefaultString
+	float m_flDegrees; // 0x148
+	// MPropertyFriendlyName "rotation field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_rotation"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+	// MPropertyFriendlyName "yaw random exponent"
+	// MDefaultString
+	float m_flRotationRandExponent; // 0x15c
+	// MPropertyFriendlyName "randomly flip direction"
+	// MDefaultString
+	bool m_bRandomlyFlipDirection; // 0x160
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVectorComponentToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Input Vector"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "Output Scalar"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "Vector Component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent; // 0x188
+	int32_t m_nComponent; // 0x148
+};
+
+// Aligment: 8
+// Size: 368
+class C_INIT_AgeNoise : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x140
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x141
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x144
+	// MPropertyFriendlyName "start age minimum"
+	// MDefaultString
+	float m_flAgeMin; // 0x148
+	// MPropertyFriendlyName "start age maximum"
+	// MDefaultString
+	float m_flAgeMax; // 0x14c
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x150
+	// MPropertyFriendlyName "spatial noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScaleLoc; // 0x154
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x158
 };
 
 // Aligment: 3
@@ -12490,316 +15064,354 @@ public:
 };
 
 // Aligment: 4
-// Size: 896
+// Size: 704
 class C_OP_SetFloatCollection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionFloatInput m_InputValue; // 0x180
+	CParticleCollectionFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_Lerp; // 0x270
+	CParticleCollectionFloatInput m_Lerp; // 0x1f0
+};
+
+// Aligment: 2
+// Size: 336
+class C_INIT_RandomSecondSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "sequence min"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 2 )"
+	int32_t m_nSequenceMin; // 0x140
+	// MPropertyFriendlyName "sequence max"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 2 )"
+	int32_t m_nSequenceMax; // 0x144
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_InheritFromParentParticlesV2 : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
 	// MPropertyFriendlyName "behavior if parent particle dies"
 	// MDefaultString
-	MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x190
+	MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x150
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomRotationSpeed : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 4
-// Size: 2544
+// Size: 1968
 class C_OP_RemapCrossProductOfTwoVectorsToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input vector 1"
-	CPerParticleVecInput m_InputVec1; // 0x180
+	CPerParticleVecInput m_InputVec1; // 0x140
 	// MPropertyFriendlyName "input vector 2"
-	CPerParticleVecInput m_InputVec2; // 0x5b0
+	CPerParticleVecInput m_InputVec2; // 0x470
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x9e0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x7a0
 	// MPropertyFriendlyName "normalize output"
 	// MDefaultString
-	bool m_bNormalize; // 0x9e4
+	bool m_bNormalize; // 0x7a4
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPOrientationToDirection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInputControlPoint; // 0x180
+	int32_t m_nInputControlPoint; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x184
+	int32_t m_nOutputControlPoint; // 0x144
 };
 
-// Aligment: 15
-// Size: 800
+// Aligment: 14
+// Size: 496
 class C_OP_MovementPlaceOnGround : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x180
+	float m_flOffset; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x268
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "CP movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x26c
+	float m_flTolerance; // 0x148
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x270
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "interpolation rate"
 	// MDefaultString
-	float m_flLerpRate; // 0x274
+	float m_flLerpRate; // 0x150
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x278
+	char[128] m_CollisionGroupName; // 0x154
 	// MPropertyFriendlyName "reference CP 1"
 	// MDefaultString
-	int32_t m_nRefCP1; // 0x2f8
+	int32_t m_nRefCP1; // 0x1d4
 	// MPropertyFriendlyName "reference CP 2"
 	// MDefaultString
-	int32_t m_nRefCP2; // 0x2fc
+	int32_t m_nRefCP2; // 0x1d8
 	// MPropertyFriendlyName "interploation distance tolerance cp"
 	// MDefaultString
-	int32_t m_nLerpCP; // 0x300
+	int32_t m_nLerpCP; // 0x1dc
 	// MPropertyFriendlyName "kill on no collision"
 	// MDefaultString
-	bool m_bKill; // 0x308
+	bool m_bKill; // 0x1e4
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x309
+	bool m_bIncludeWater; // 0x1e5
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x30c
+	bool m_bSetNormal; // 0x1e8
 	// MPropertyFriendlyName "treat offset as scalar of particle radius"
 	// MDefaultString
-	bool m_bScaleOffset; // 0x30d
-	// MPropertyFriendlyName "preserve initial Z-offset relative to cp"
-	// MDefaultString
-	int32_t m_nPreserveOffsetCP; // 0x310
+	bool m_bScaleOffset; // 0x1e9
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x314
+	int32_t m_nIgnoreCP; // 0x1ec
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_OP_LockToPointList : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "point list"
-	CUtlVector< PointDefinition_t > m_pointList; // 0x188
+	CUtlVector< PointDefinition_t > m_pointList; // 0x148
 	// MPropertyFriendlyName "space points along path"
 	// MDefaultString
-	bool m_bPlaceAlongPath; // 0x1a0
+	bool m_bPlaceAlongPath; // 0x160
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x1a1
+	bool m_bClosedLoop; // 0x161
 	// MPropertyFriendlyName "Numer of points along path"
 	// MDefaultString
-	int32_t m_nNumPointsAlongPath; // 0x1a4
+	int32_t m_nNumPointsAlongPath; // 0x164
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPOrientationToPointAtCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "CP to point towards"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x180
+	int32_t m_nInputCP; // 0x140
 	// MPropertyFriendlyName "CP to set"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_VelocityDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum velocity"
 	// MDefaultString
-	float m_flMinVelocity; // 0x180
+	float m_flMinVelocity; // 0x140
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_LerpEndCapVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutput; // 0x184
+	Vector m_vecOutput; // 0x144
 	// MPropertyFriendlyName "lerp time"
 	// MDefaultString
-	float m_flLerpTime; // 0x190
+	float m_flLerpTime; // 0x150
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomRotation : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 4
-// Size: 864
+// Size: 672
 class C_OP_LerpToInitialPosition : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x188
+	CPerParticleFloatInput m_flInterpolation; // 0x148
 	// MPropertyFriendlyName "position cache attribute"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nCacheField; // 0x270
+	ParticleAttributeIndex_t m_nCacheField; // 0x1f0
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flScale; // 0x278
+	CParticleCollectionFloatInput m_flScale; // 0x1f8
 };
 
 // Aligment: 2
-// Size: 480
+// Size: 416
 class C_OP_RenderText : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "outline color"
 	// MDefaultString
-	Color m_OutlineColor; // 0x1d0
+	Color m_OutlineColor; // 0x190
 	// MPropertyFriendlyName "default text"
-	CUtlString m_DefaultText; // 0x1d8
+	CUtlString m_DefaultText; // 0x198
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_INIT_RemapCPOrientationToRotations : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "offset pitch/yaw/roll"
 	// MDefaultString
-	Vector m_vecRotation; // 0x184
+	Vector m_vecRotation; // 0x144
 	// MPropertyFriendlyName "Use Quaternians Internally"
 	// MDefaultString
-	bool m_bUseQuat; // 0x190
+	bool m_bUseQuat; // 0x150
 	// MPropertyFriendlyName "Write normal instead of rotation"
 	// MDefaultString
-	bool m_bWriteNormal; // 0x191
+	bool m_bWriteNormal; // 0x151
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_ReadFromNeighboringParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "read field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "written field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	CPerParticleFloatInput m_DistanceCheck; // 0x190
+	CPerParticleFloatInput m_DistanceCheck; // 0x150
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x278
+	CPerParticleFloatInput m_flInterpolation; // 0x1f8
+};
+
+// Aligment: 1
+// Size: 336
+class C_INIT_RandomYawFlip : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "flip percentage"
+	// MDefaultString
+	float m_flPercent; // 0x140
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_Cull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "cull percentage"
 	// MDefaultString
-	float m_flCullPerc; // 0x180
+	float m_flCullPerc; // 0x140
 	// MPropertyFriendlyName "cull start time"
 	// MDefaultString
-	float m_flCullStart; // 0x184
+	float m_flCullStart; // 0x144
 	// MPropertyFriendlyName "cull end time"
 	// MDefaultString
-	float m_flCullEnd; // 0x188
+	float m_flCullEnd; // 0x148
 	// MPropertyFriendlyName "cull time exponent"
 	// MDefaultString
-	float m_flCullExp; // 0x18c
+	float m_flCullExp; // 0x14c
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_NormalLock : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 };
 
 // Aligment: 4
-// Size: 464
+// Size: 400
 class C_OP_LockToSavedSequentialPathV2 : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade time"
 	// MDefaultString
-	float m_flFadeStart; // 0x180
+	float m_flFadeStart; // 0x140
 	// MPropertyFriendlyName "end fade time"
 	// MDefaultString
-	float m_flFadeEnd; // 0x184
+	float m_flFadeEnd; // 0x144
 	// MPropertyFriendlyName "Use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x188
-	CPathParameters m_PathParams; // 0x190
+	bool m_bCPPairs; // 0x148
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 2
-// Size: 1080
+// Size: 824
 struct VecInputMaterialVariable_t
 {
 public:
@@ -12812,60 +15424,60 @@ public:
 };
 
 // Aligment: 6
-// Size: 480
+// Size: 416
 class C_INIT_CreateSequentialPathV2 : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Max Distance From Path"
+	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x180
-	// MPropertyFriendlyName "Paticles Along Path"
+	float m_fMaxDistance; // 0x140
+	// MPropertyFriendlyName "particles to map from start to end"
 	// MDefaultString
-	float m_flNumToAssign; // 0x184
-	// MPropertyFriendlyName "Loop"
+	float m_flNumToAssign; // 0x144
+	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
 	// MDefaultString
-	bool m_bLoop; // 0x188
+	bool m_bLoop; // 0x148
 	// MPropertyFriendlyName "use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x189
+	bool m_bCPPairs; // 0x149
 	// MPropertyFriendlyName "save offset"
 	// MDefaultString
-	bool m_bSaveOffset; // 0x18a
-	CPathParameters m_PathParams; // 0x190
+	bool m_bSaveOffset; // 0x14a
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapVisibilityScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x198
+	float m_flRadiusScale; // 0x158
 };
 
 // Aligment: 0
-// Size: 464
+// Size: 400
 class C_OP_RenderClothForce : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
@@ -12873,485 +15485,558 @@ public:
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RestartAfterDuration : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum restart time"
 	// MDefaultString
-	float m_flDurationMin; // 0x180
+	float m_flDurationMin; // 0x140
 	// MPropertyFriendlyName "maximum restart time"
 	// MDefaultString
-	float m_flDurationMax; // 0x184
+	float m_flDurationMax; // 0x144
 	// MPropertyFriendlyName "control point to scale duration"
 	// MDefaultString
-	int32_t m_nCP; // 0x188
+	int32_t m_nCP; // 0x148
 	// MPropertyFriendlyName "control point field X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x18c
+	int32_t m_nCPField; // 0x14c
 	// MPropertyFriendlyName "child group ID"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x190
+	int32_t m_nChildGroupID; // 0x150
 	// MPropertyFriendlyName "only restart children"
 	// MDefaultString
-	bool m_bOnlyChildren; // 0x194
+	bool m_bOnlyChildren; // 0x154
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_INIT_CreateOnModelAtHeight : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x180
+	bool m_bUseBones; // 0x140
 	// MPropertyFriendlyName "force creation height to desired height"
 	// MDefaultString
-	bool m_bForceZ; // 0x181
+	bool m_bForceZ; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "height override control point number"
 	// MDefaultString
-	int32_t m_nHeightCP; // 0x188
+	int32_t m_nHeightCP; // 0x148
 	// MPropertyFriendlyName "desired height is relative to water"
 	// MDefaultString
-	bool m_bUseWaterHeight; // 0x18c
+	bool m_bUseWaterHeight; // 0x14c
 	// MPropertyFriendlyName "relative desired height"
 	// MDefaultString
-	float m_flDesiredHeight; // 0x190
+	float m_flDesiredHeight; // 0x150
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x194
+	float m_flHitBoxScale; // 0x154
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x198
+	char[128] m_HitboxSetName; // 0x158
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
+class C_INIT_RandomAlphaWindowThreshold : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "exponent"
+	// MDefaultString
+	float m_flExponent; // 0x148
+};
+
+// Aligment: 3
+// Size: 336
 class C_OP_VelocityMatchingForce : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "direction matching strength"
 	// MDefaultString
-	float m_flDirScale; // 0x180
+	float m_flDirScale; // 0x140
 	// MPropertyFriendlyName "speed matching strength"
 	// MDefaultString
-	float m_flSpdScale; // 0x184
+	float m_flSpdScale; // 0x144
 	// MPropertyFriendlyName "control point to broadcast speed and direction to"
 	// MDefaultString
-	int32_t m_nCPBroadcast; // 0x188
+	int32_t m_nCPBroadcast; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_RampCPLinearRandom : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	Vector m_vecRateMin; // 0x184
+	Vector m_vecRateMin; // 0x144
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	Vector m_vecRateMax; // 0x190
+	Vector m_vecRateMax; // 0x150
 };
 
 // Aligment: 10
-// Size: 1792
+// Size: 1344
 class C_INIT_CreateOnGrid : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "X Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nXCount; // 0x180
+	CParticleCollectionFloatInput m_nXCount; // 0x140
 	// MPropertyFriendlyName "Y Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nYCount; // 0x268
+	CParticleCollectionFloatInput m_nYCount; // 0x1e8
 	// MPropertyFriendlyName "Z Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nZCount; // 0x350
+	CParticleCollectionFloatInput m_nZCount; // 0x290
 	// MPropertyFriendlyName "X Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nXSpacing; // 0x438
+	CParticleCollectionFloatInput m_nXSpacing; // 0x338
 	// MPropertyFriendlyName "Y Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nYSpacing; // 0x520
+	CParticleCollectionFloatInput m_nYSpacing; // 0x3e0
 	// MPropertyFriendlyName "Z Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nZSpacing; // 0x608
+	CParticleCollectionFloatInput m_nZSpacing; // 0x488
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x6f0
+	int32_t m_nControlPointNumber; // 0x530
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x6f4
+	bool m_bLocalSpace; // 0x534
 	// MPropertyFriendlyName "center around control point"
 	// MDefaultString
-	bool m_bCenter; // 0x6f5
+	bool m_bCenter; // 0x535
 	// MPropertyFriendlyName "hollow"
 	// MDefaultString
-	bool m_bHollow; // 0x6f6
+	bool m_bHollow; // 0x536
 };
 
 // Aligment: 1
-// Size: 480
+// Size: 416
 class C_OP_RenderPoints : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1d0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x190
+};
+
+// Aligment: 7
+// Size: 384
+class C_INIT_ColorLitPerParticle : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "color1"
+	// MDefaultString
+	Color m_ColorMin; // 0x158
+	// MPropertyFriendlyName "color2"
+	// MDefaultString
+	Color m_ColorMax; // 0x15c
+	// MPropertyFriendlyName "tint clamp min"
+	// MDefaultString
+	Color m_TintMin; // 0x160
+	// MPropertyFriendlyName "tint clamp max"
+	// MDefaultString
+	Color m_TintMax; // 0x164
+	// MPropertyFriendlyName "light bias"
+	// MDefaultString
+	float m_flTintPerc; // 0x168
+	// MPropertyFriendlyName "tint blend mode"
+	// MDefaultString
+	ParticleColorBlendMode_t m_nTintBlendMode; // 0x16c
+	// MPropertyFriendlyName "light amplification amount"
+	// MDefaultString
+	float m_flLightAmplification; // 0x170
 };
 
 // Aligment: 1
-// Size: 6544
+// Size: 2512
 class C_OP_RenderFogSprites : public C_OP_RenderSprites, CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1980
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x9c0
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_DecayClampCount : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Maximum Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nCount; // 0x180
+	CParticleCollectionFloatInput m_nCount; // 0x140
 };
 
 // Aligment: 7
-// Size: 512
+// Size: 448
 class C_OP_RenderLights : public C_OP_RenderPoints, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
-	float m_flAnimationRate; // 0x1e0
+	float m_flAnimationRate; // 0x1a0
 	// MPropertyFriendlyName "animation type"
 	// MDefaultString
-	AnimationType_t m_nAnimationType; // 0x1e4
+	AnimationType_t m_nAnimationType; // 0x1a4
 	// MPropertyFriendlyName "set animation value in FPS"
 	// MDefaultString
-	bool m_bAnimateInFPS; // 0x1e8
+	bool m_bAnimateInFPS; // 0x1a8
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
-	float m_flMinSize; // 0x1ec
+	float m_flMinSize; // 0x1ac
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
-	float m_flMaxSize; // 0x1f0
+	float m_flMaxSize; // 0x1b0
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
-	float m_flStartFadeSize; // 0x1f4
+	float m_flStartFadeSize; // 0x1b4
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
-	float m_flEndFadeSize; // 0x1f8
+	float m_flEndFadeSize; // 0x1b8
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapNamedModelSequenceToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 6
-// Size: 448
+// Size: 384
 class C_OP_ColorInterpolateRandom : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color fade min"
 	// MDefaultString
-	Color m_ColorFadeMin; // 0x180
+	Color m_ColorFadeMin; // 0x140
 	// MPropertyFriendlyName "color fade max"
 	// MDefaultString
-	Color m_ColorFadeMax; // 0x19c
+	Color m_ColorFadeMax; // 0x15c
 	// MPropertyFriendlyName "fade start time"
 	// MDefaultString
-	float m_flFadeStartTime; // 0x1ac
+	float m_flFadeStartTime; // 0x16c
 	// MPropertyFriendlyName "fade end time"
 	// MDefaultString
-	float m_flFadeEndTime; // 0x1b0
+	float m_flFadeEndTime; // 0x170
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x174
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInOut; // 0x1b8
+	bool m_bEaseInOut; // 0x178
 };
 
 // Aligment: 7
-// Size: 656
+// Size: 592
 class C_OP_SetControlPointsToModelParticles : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x180
+	char[128] m_HitboxSetName; // 0x140
 	// MPropertyFriendlyName "attachment to follow"
 	// MDefaultString
-	char[128] m_AttachmentName; // 0x200
+	char[128] m_AttachmentName; // 0x1c0
 	// MPropertyFriendlyName "First control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x280
+	int32_t m_nFirstControlPoint; // 0x240
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x284
+	int32_t m_nNumControlPoints; // 0x244
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x288
+	int32_t m_nFirstSourcePoint; // 0x248
 	// MPropertyFriendlyName "use skinning instead of hitboxes"
 	// MDefaultString
-	bool m_bSkin; // 0x28c
+	bool m_bSkin; // 0x24c
 	// MPropertyFriendlyName "follow attachment"
 	// MDefaultString
-	bool m_bAttachment; // 0x28d
+	bool m_bAttachment; // 0x24d
+};
+
+// Aligment: 5
+// Size: 432
+class C_INIT_CreateAlongPath : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "maximum distance"
+	// MDefaultString
+	float m_fMaxDistance; // 0x140
+	CPathParameters m_PathParams; // 0x150
+	// MPropertyFriendlyName "randomly select sequential CP pairs between start and end points"
+	// MDefaultString
+	bool m_bUseRandomCPs; // 0x190
+	// MPropertyFriendlyName "Offset from control point for path end"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vEndOffset; // 0x194
+	// MPropertyFriendlyName "save offset"
+	// MDefaultString
+	bool m_bSaveOffset; // 0x1a0
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_DistanceCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPointOffset; // 0x184
+	Vector m_vecPointOffset; // 0x144
 	// MPropertyFriendlyName "cull distance"
 	// MDefaultString
-	float m_flDistance; // 0x190
+	float m_flDistance; // 0x150
 	// MPropertyFriendlyName "cull inside instead of outside"
 	// MDefaultString
-	bool m_bCullInside; // 0x194
+	bool m_bCullInside; // 0x154
 };
 
 // Aligment: 8
-// Size: 480
+// Size: 416
 class C_OP_ConstrainDistanceToPath : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_flMaxDistance0; // 0x184
+	float m_flMaxDistance0; // 0x144
 	// MPropertyFriendlyName "maximum distance middle"
 	// MDefaultString
-	float m_flMaxDistanceMid; // 0x188
+	float m_flMaxDistanceMid; // 0x148
 	// MPropertyFriendlyName "maximum distance end"
 	// MDefaultString
-	float m_flMaxDistance1; // 0x18c
-	CPathParameters m_PathParameters; // 0x190
+	float m_flMaxDistance1; // 0x14c
+	CPathParameters m_PathParameters; // 0x150
 	// MPropertyFriendlyName "travel time"
 	// MDefaultString
-	float m_flTravelTime; // 0x1d0
+	float m_flTravelTime; // 0x190
 	// MPropertyFriendlyName "travel time scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldScale; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldScale; // 0x194
 	// MPropertyFriendlyName "manual time placement field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nManualTField; // 0x1d8
+	ParticleAttributeIndex_t m_nManualTField; // 0x198
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToHand : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "hand"
 	// MDefaultString
-	int32_t m_nHand; // 0x184
+	int32_t m_nHand; // 0x144
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x188
+	Vector m_vecCP1Pos; // 0x148
 	// MPropertyFriendlyName "use hand orientation"
 	// MDefaultString
-	bool m_bOrientToHand; // 0x194
+	bool m_bOrientToHand; // 0x154
 };
 
 // Aligment: 12
-// Size: 560
+// Size: 496
 class C_OP_DistanceBetweenCPsToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x180
+	int32_t m_nStartCP; // 0x140
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x184
+	int32_t m_nEndCP; // 0x144
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "output control point field"
 	// MDefaultString
-	int32_t m_nOutputCPField; // 0x18c
+	int32_t m_nOutputCPField; // 0x14c
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x190
+	float m_flInputMin; // 0x150
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x194
+	float m_flInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x198
+	float m_flOutputMin; // 0x158
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x19c
+	float m_flOutputMax; // 0x15c
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x1a0
+	float m_flMaxTraceLength; // 0x160
 	// MPropertyFriendlyName "LOS Failure Scale"
 	// MDefaultString
-	float m_flLOSScale; // 0x1a4
+	float m_flLOSScale; // 0x164
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x1a8
+	bool m_bLOS; // 0x168
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a9
+	char[128] m_CollisionGroupName; // 0x169
 };
 
 // Aligment: 10
-// Size: 880
+// Size: 688
 class C_OP_SetFromCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x184
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x144
 	// MPropertyFriendlyName "field to write"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x188
+	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x148
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x18c
+	int32_t m_nLocalSpaceCP; // 0x14c
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x190
+	bool m_bRandom; // 0x150
 	// MPropertyFriendlyName "reverse order"
 	// MDefaultString
-	bool m_bReverse; // 0x191
+	bool m_bReverse; // 0x151
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x194
+	int32_t m_nRandomSeed; // 0x154
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x198
+	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x158
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x280
+	CPerParticleFloatInput m_flInterpolation; // 0x200
 	// MPropertyFriendlyName "Sub-Sample Between Input Points"
 	// MDefaultString
-	bool m_bSubSample; // 0x368
+	bool m_bSubSample; // 0x2a8
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVectortoCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "particle number to read"
 	// MDefaultString
-	int32_t m_nParticleNumber; // 0x188
+	int32_t m_nParticleNumber; // 0x148
 };
 
 // Aligment: 3
-// Size: 432
+// Size: 368
 class C_OP_RemapDistanceToLineSegmentToScalar : public C_OP_RemapDistanceToLineSegmentBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x160
 	// MPropertyFriendlyName "output value at min distance"
 	// MDefaultString
-	float m_flMinOutputValue; // 0x1a4
+	float m_flMinOutputValue; // 0x164
 	// MPropertyFriendlyName "output value at max distance"
 	// MDefaultString
-	float m_flMaxOutputValue; // 0x1a8
+	float m_flMaxOutputValue; // 0x168
 };
 
 // Aligment: 4
-// Size: 896
+// Size: 704
 class C_OP_SetFloat : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleFloatInput m_InputValue; // 0x180
+	CPerParticleFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_Lerp; // 0x270
+	CPerParticleFloatInput m_Lerp; // 0x1f0
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_OP_ModelCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "use only bounding box"
 	// MDefaultString
-	bool m_bBoundBox; // 0x184
+	bool m_bBoundBox; // 0x144
 	// MPropertyFriendlyName "cull outside instead of inside"
 	// MDefaultString
-	bool m_bCullOutside; // 0x185
+	bool m_bCullOutside; // 0x145
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x186
+	bool m_bUseBones; // 0x146
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x187
+	char[128] m_HitboxSetName; // 0x147
 };
 
 // Aligment: 3
-// Size: 1472
+// Size: 1152
 class C_OP_LocalAccelerationForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "scale control point"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x184
+	int32_t m_nScaleCP; // 0x144
 	// MPropertyFriendlyName "local space acceleration"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecAccel; // 0x188
+	CParticleCollectionVecInput m_vecAccel; // 0x148
 };
 
 // Aligment: 15
@@ -13380,220 +16065,265 @@ public:
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapParticleCountOnScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	int32_t m_nInputMin; // 0x184
+	int32_t m_nInputMin; // 0x144
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	int32_t m_nInputMax; // 0x188
+	int32_t m_nInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "count back from last particle"
 	// MDefaultString
-	bool m_bBackwards; // 0x194
+	bool m_bBackwards; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 };
 
 // Aligment: 2
-// Size: 416
+// Size: 352
 class C_OP_RandomForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_MinForce; // 0x180
+	Vector m_MinForce; // 0x140
 	// MPropertyFriendlyName "max force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_MaxForce; // 0x18c
+	Vector m_MaxForce; // 0x14c
 };
 
 // Aligment: 7
-// Size: 528
+// Size: 464
 class C_OP_RenderStatusEffect : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureColorWarp; // 0x1d0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureColorWarp; // 0x190
 	// MPropertyFriendlyName "detail 2 texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDetail2; // 0x1d8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDetail2; // 0x198
 	// MPropertyFriendlyName "diffuse warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDiffuseWarp; // 0x1e0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDiffuseWarp; // 0x1a0
 	// MPropertyFriendlyName "fresnel color warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelColorWarp; // 0x1e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelColorWarp; // 0x1a8
 	// MPropertyFriendlyName "fresnel warp texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelWarp; // 0x1f0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelWarp; // 0x1b0
 	// MPropertyFriendlyName "specular warp texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureSpecularWarp; // 0x1f8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureSpecularWarp; // 0x1b8
 	// MPropertyFriendlyName "environment map texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureEnvMap; // 0x200
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureEnvMap; // 0x1c0
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_RemapInitialVisibilityScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
 // Aligment: 5
-// Size: 448
+// Size: 368
+class C_INIT_AddVectorToVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "component scale factor"
+	// MDefaultString
+	Vector m_vecScale; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x150
+	// MPropertyFriendlyName "random offset min"
+	// MDefaultString
+	Vector m_vOffsetMin; // 0x154
+	// MPropertyFriendlyName "random offset max"
+	// MDefaultString
+	Vector m_vOffsetMax; // 0x160
+};
+
+// Aligment: 5
+// Size: 384
 class C_OP_RampScalarSplineSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x184
+	float m_flStartTime; // 0x144
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x188
+	float m_flEndTime; // 0x148
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 	// MPropertyFriendlyName "ease out"
 	// MDefaultString
-	bool m_bEaseOut; // 0x1b4
+	bool m_bEaseOut; // 0x174
+};
+
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "sequence min"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 1 )"
+	int32_t m_nSequenceMin; // 0x140
+	// MPropertyFriendlyName "sequence max"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 1 )"
+	int32_t m_nSequenceMax; // 0x144
+	// MPropertyFriendlyName "shuffle"
+	// MDefaultString
+	bool m_bShuffle; // 0x148
+	// MPropertyFriendlyName "linear"
+	// MDefaultString
+	bool m_bLinear; // 0x149
 };
 
 // Aligment: 6
-// Size: 464
+// Size: 400
 class C_OP_FadeOut : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "fade out time min"
 	// MDefaultString
-	float m_flFadeOutTimeMin; // 0x180
+	float m_flFadeOutTimeMin; // 0x140
 	// MPropertyFriendlyName "fade out time max"
 	// MDefaultString
-	float m_flFadeOutTimeMax; // 0x184
+	float m_flFadeOutTimeMax; // 0x144
 	// MPropertyFriendlyName "fade out time exponent"
 	// MDefaultString
-	float m_flFadeOutTimeExp; // 0x188
+	float m_flFadeOutTimeExp; // 0x148
 	// MPropertyFriendlyName "fade bias"
 	// MDefaultString
-	float m_flFadeBias; // 0x18c
+	float m_flFadeBias; // 0x14c
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x1c0
+	bool m_bProportional; // 0x180
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInAndOut; // 0x1c1
+	bool m_bEaseInAndOut; // 0x181
 };
 
 // Aligment: 13
-// Size: 432
+// Size: 368
 class C_OP_OscillateScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "oscillation rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "oscillation frequency min"
 	// MDefaultString
-	float m_FrequencyMin; // 0x188
+	float m_FrequencyMin; // 0x148
 	// MPropertyFriendlyName "oscillation frequency max"
 	// MDefaultString
-	float m_FrequencyMax; // 0x18c
+	float m_FrequencyMax; // 0x14c
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x190
+	ParticleAttributeIndex_t m_nField; // 0x150
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x194
+	bool m_bProportional; // 0x154
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x195
+	bool m_bProportionalOp; // 0x155
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x198
+	float m_flStartTime_min; // 0x158
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x19c
+	float m_flStartTime_max; // 0x15c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x1a0
+	float m_flEndTime_min; // 0x160
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x1a4
+	float m_flEndTime_max; // 0x164
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x1a8
+	float m_flOscMult; // 0x168
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1ac
+	float m_flOscAdd; // 0x16c
 };
 
 // Aligment: 5
-// Size: 496
+// Size: 432
 class C_OP_RenderBlobs : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "cube width"
 	// MDefaultString
-	float m_cubeWidth; // 0x1d0
+	float m_cubeWidth; // 0x190
 	// MPropertyFriendlyName "cutoff radius"
 	// MDefaultString
-	float m_cutoffRadius; // 0x1d4
+	float m_cutoffRadius; // 0x194
 	// MPropertyFriendlyName "render radius"
 	// MDefaultString
-	float m_renderRadius; // 0x1d8
+	float m_renderRadius; // 0x198
 	// MPropertyFriendlyName "scale CP (cube width/cutoff/render = x/y/z)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x1dc
+	int32_t m_nScaleCP; // 0x19c
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1e0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1a0
 };
 
 // Aligment: 0
-// Size: 1072
+// Size: 816
 class CParticleCollectionVecInput : public CParticleVecInput
 {
 public:
@@ -13601,304 +16331,321 @@ public:
 };
 
 // Aligment: 22
-// Size: 1520
+// Size: 1200
 class C_OP_WorldTraceConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point for fast collision tests"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "control point offset for fast collisions"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCpOffset; // 0x184
+	Vector m_vecCpOffset; // 0x144
 	// MPropertyFriendlyName "collision mode"
 	// MDefaultString
-	ParticleCollisionMode_t m_nCollisionMode; // 0x190
+	ParticleCollisionMode_t m_nCollisionMode; // 0x150
 	// MPropertyFriendlyName "minimum detail collision mode"
 	// MDefaultString
-	ParticleCollisionMode_t m_nCollisionModeMin; // 0x194
+	ParticleCollisionMode_t m_nCollisionModeMin; // 0x154
 	// MPropertyFriendlyName "amount of bounce"
 	// MDefaultString
-	CPerParticleFloatInput m_flBounceAmount; // 0x198
+	CPerParticleFloatInput m_flBounceAmount; // 0x158
 	// MPropertyFriendlyName "amount of slide"
 	// MDefaultString
-	CPerParticleFloatInput m_flSlideAmount; // 0x280
+	CPerParticleFloatInput m_flSlideAmount; // 0x200
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x368
+	float m_flRadiusScale; // 0x2a8
 	// MPropertyFriendlyName "Random Direction scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRandomDirScale; // 0x370
+	CPerParticleFloatInput m_flRandomDirScale; // 0x2b0
 	// MPropertyFriendlyName "control point movement distance tolerance"
 	// MDefaultString
-	float m_flCpMovementTolerance; // 0x458
+	float m_flCpMovementTolerance; // 0x358
 	// MPropertyFriendlyName "trace accuracy tolerance"
 	// MDefaultString
-	float m_flTraceTolerance; // 0x45c
+	float m_flTraceTolerance; // 0x35c
 	// MPropertyFriendlyName "minimum speed to kill on collision"
 	// MDefaultString
-	float m_flMinSpeed; // 0x460
+	float m_flMinSpeed; // 0x360
 	// MPropertyFriendlyName "Add Decay to Bounce"
 	// MDefaultString
-	bool m_bDecayBounce; // 0x464
+	bool m_bDecayBounce; // 0x364
 	// MPropertyFriendlyName "kill particle on collision"
 	// MDefaultString
-	bool m_bKillonContact; // 0x465
+	bool m_bKillonContact; // 0x365
 	// MPropertyFriendlyName "Confirm Collision Speed Threshold"
 	// MDefaultString
-	float m_flCollisionConfirmationSpeed; // 0x468
+	float m_flCollisionConfirmationSpeed; // 0x368
 	// MPropertyFriendlyName "Set Normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x46c
+	bool m_bSetNormal; // 0x36c
 	// MPropertyFriendlyName "Stick On Collision Cache Field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x470
+	ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x370
 	// MPropertyFriendlyName "Speed to stop when sticking"
 	// MDefaultString
-	CPerParticleFloatInput m_flStopSpeed; // 0x478
+	CPerParticleFloatInput m_flStopSpeed; // 0x378
 	// MPropertyFriendlyName "Entity Hitbox Cache Field (Requires Stick on Collision)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nEntityStickDataField; // 0x560
+	ParticleAttributeIndex_t m_nEntityStickDataField; // 0x420
 	// MPropertyFriendlyName "World Only"
 	// MDefaultString
-	bool m_bWorldOnly; // 0x564
+	bool m_bWorldOnly; // 0x424
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x568
+	int32_t m_nIgnoreCP; // 0x428
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x56c
+	char[128] m_CollisionGroupName; // 0x42c
 	// MPropertyFriendlyName "brush only"
 	// MDefaultString
-	bool m_bBrushOnly; // 0x5ec
+	bool m_bBrushOnly; // 0x4ac
 };
 
-// Aligment: 11
-// Size: 784
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "exponent"
+	// MDefaultString
+	float m_flExponent; // 0x148
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+};
+
+// Aligment: 10
+// Size: 480
 class C_INIT_PositionPlaceOnGround : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x180
+	float m_flOffset; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x268
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x26c
+	char[128] m_CollisionGroupName; // 0x148
 	// MPropertyFriendlyName "kill on no collision"
 	// MDefaultString
-	bool m_bKill; // 0x2f0
+	bool m_bKill; // 0x1cc
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x2f1
+	bool m_bIncludeWater; // 0x1cd
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x2f2
+	bool m_bSetNormal; // 0x1ce
 	// MPropertyFriendlyName "set Previous XYZ only"
 	// MDefaultString
-	bool m_bSetPXYZOnly; // 0x2f3
+	bool m_bSetPXYZOnly; // 0x1cf
 	// MPropertyFriendlyName "Trace along particle normal"
 	// MDefaultString
-	bool m_bTraceAlongNormal; // 0x2f4
+	bool m_bTraceAlongNormal; // 0x1d0
 	// MPropertyFriendlyName "offset final position by this fraction of the particle radius"
 	// MDefaultString
-	float m_flOffsetByRadiusFactor; // 0x2f8
-	// MPropertyFriendlyName "preserve initial Z-offset relative to cp"
-	// MDefaultString
-	int32_t m_nPreserveOffsetCP; // 0x2fc
+	float m_flOffsetByRadiusFactor; // 0x1d4
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x300
+	int32_t m_nIgnoreCP; // 0x1d8
 };
 
 // Aligment: 33
-// Size: 1584
+// Size: 1504
 class C_OP_ControlpointLight : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "initial color bias"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "light 1 control point"
 	// MDefaultString
-	int32_t m_nControlPoint1; // 0x5a8
+	int32_t m_nControlPoint1; // 0x554
 	// MPropertyFriendlyName "light 2 control point"
 	// MDefaultString
-	int32_t m_nControlPoint2; // 0x5ac
+	int32_t m_nControlPoint2; // 0x558
 	// MPropertyFriendlyName "light 3 control point"
 	// MDefaultString
-	int32_t m_nControlPoint3; // 0x5b0
+	int32_t m_nControlPoint3; // 0x55c
 	// MPropertyFriendlyName "light 4 control point"
 	// MDefaultString
-	int32_t m_nControlPoint4; // 0x5b4
+	int32_t m_nControlPoint4; // 0x560
 	// MPropertyFriendlyName "light 1 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset1; // 0x5b8
+	Vector m_vecCPOffset1; // 0x564
 	// MPropertyFriendlyName "light 2 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset2; // 0x5c4
+	Vector m_vecCPOffset2; // 0x570
 	// MPropertyFriendlyName "light 3 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset3; // 0x5d0
+	Vector m_vecCPOffset3; // 0x57c
 	// MPropertyFriendlyName "light 4 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset4; // 0x5dc
+	Vector m_vecCPOffset4; // 0x588
 	// MPropertyFriendlyName "light 1 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist1; // 0x5e8
+	float m_LightFiftyDist1; // 0x594
 	// MPropertyFriendlyName "light 1 0% distance"
 	// MDefaultString
-	float m_LightZeroDist1; // 0x5ec
+	float m_LightZeroDist1; // 0x598
 	// MPropertyFriendlyName "light 2 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist2; // 0x5f0
+	float m_LightFiftyDist2; // 0x59c
 	// MPropertyFriendlyName "light 2 0% distance"
 	// MDefaultString
-	float m_LightZeroDist2; // 0x5f4
+	float m_LightZeroDist2; // 0x5a0
 	// MPropertyFriendlyName "light 3 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist3; // 0x5f8
+	float m_LightFiftyDist3; // 0x5a4
 	// MPropertyFriendlyName "light 3 0% distance"
 	// MDefaultString
-	float m_LightZeroDist3; // 0x5fc
+	float m_LightZeroDist3; // 0x5a8
 	// MPropertyFriendlyName "light 4 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist4; // 0x600
+	float m_LightFiftyDist4; // 0x5ac
 	// MPropertyFriendlyName "light 4 0% distance"
 	// MDefaultString
-	float m_LightZeroDist4; // 0x604
+	float m_LightZeroDist4; // 0x5b0
 	// MPropertyFriendlyName "light 1 color"
 	// MDefaultString
-	Color m_LightColor1; // 0x608
+	Color m_LightColor1; // 0x5b4
 	// MPropertyFriendlyName "light 2 color"
 	// MDefaultString
-	Color m_LightColor2; // 0x60c
+	Color m_LightColor2; // 0x5b8
 	// MPropertyFriendlyName "light 3 color"
 	// MDefaultString
-	Color m_LightColor3; // 0x610
+	Color m_LightColor3; // 0x5bc
 	// MPropertyFriendlyName "light 4 color"
 	// MDefaultString
-	Color m_LightColor4; // 0x614
+	Color m_LightColor4; // 0x5c0
 	// MPropertyFriendlyName "light 1 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType1; // 0x618
+	bool m_bLightType1; // 0x5c4
 	// MPropertyFriendlyName "light 2 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType2; // 0x619
+	bool m_bLightType2; // 0x5c5
 	// MPropertyFriendlyName "light 3 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType3; // 0x61a
+	bool m_bLightType3; // 0x5c6
 	// MPropertyFriendlyName "light 4 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType4; // 0x61b
+	bool m_bLightType4; // 0x5c7
 	// MPropertyFriendlyName "light 1 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic1; // 0x61c
+	bool m_bLightDynamic1; // 0x5c8
 	// MPropertyFriendlyName "light 2 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic2; // 0x61d
+	bool m_bLightDynamic2; // 0x5c9
 	// MPropertyFriendlyName "light 3 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic3; // 0x61e
+	bool m_bLightDynamic3; // 0x5ca
 	// MPropertyFriendlyName "light 4 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic4; // 0x61f
+	bool m_bLightDynamic4; // 0x5cb
 	// MPropertyFriendlyName "compute normals from control points"
 	// MDefaultString
-	bool m_bUseNormal; // 0x620
+	bool m_bUseNormal; // 0x5cc
 	// MPropertyFriendlyName "half-lambert normals"
 	// MDefaultString
-	bool m_bUseHLambert; // 0x621
+	bool m_bUseHLambert; // 0x5cd
 	// MPropertyFriendlyName "clamp minimum light value to initial color"
 	// MDefaultString
-	bool m_bClampLowerRange; // 0x626
+	bool m_bClampLowerRange; // 0x5d2
 	// MPropertyFriendlyName "clamp maximum light value to initial color"
 	// MDefaultString
-	bool m_bClampUpperRange; // 0x627
+	bool m_bClampUpperRange; // 0x5d3
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_ChooseRandomChildrenInGroup : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "Number of Children to Use"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNumberOfChildren; // 0x188
+	CParticleCollectionFloatInput m_flNumberOfChildren; // 0x148
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_INIT_CreateWithinBox : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecMin; // 0x180
+	Vector m_vecMin; // 0x140
 	// MPropertyFriendlyName "max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecMax; // 0x18c
+	Vector m_vecMax; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x19c
+	bool m_bLocalSpace; // 0x15c
 	// MPropertyFriendlyName "scale CP (.x= distance)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x1a0
+	int32_t m_nScaleCP; // 0x160
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_UpdateLightSource : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color tint"
 	// MDefaultString
-	Color m_vColorTint; // 0x180
+	Color m_vColorTint; // 0x140
 	// MPropertyFriendlyName "amount to multiply light brightness by"
 	// MDefaultString
-	float m_flBrightnessScale; // 0x184
+	float m_flBrightnessScale; // 0x144
 	// MPropertyFriendlyName "amount to multiply particle system radius by to get light radius"
 	// MDefaultString
-	float m_flRadiusScale; // 0x188
+	float m_flRadiusScale; // 0x148
 	// MPropertyFriendlyName "minimum radius for created lights"
 	// MDefaultString
-	float m_flMinimumLightingRadius; // 0x18c
+	float m_flMinimumLightingRadius; // 0x14c
 	// MPropertyFriendlyName "maximum radius for created lights"
 	// MDefaultString
-	float m_flMaximumLightingRadius; // 0x190
+	float m_flMaximumLightingRadius; // 0x150
 	// MPropertyFriendlyName "amount of damping of changes"
 	// MDefaultString
-	float m_flPositionDampingConstant; // 0x194
+	float m_flPositionDampingConstant; // 0x154
 };
 
 // Aligment: 2
-// Size: 480
+// Size: 416
 class C_OP_RenderScreenVelocityRotate : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate rate(dps)"
 	// MDefaultString
-	float m_flRotateRateDegrees; // 0x1d0
+	float m_flRotateRateDegrees; // 0x190
 	// MPropertyFriendlyName "forward angle"
 	// MDefaultString
-	float m_flForwardDegrees; // 0x1d4
+	float m_flForwardDegrees; // 0x194
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelMeshGroupEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -13914,19 +16661,19 @@ public:
 	// MDefaultString
 	// MPropertySuppressField
 	int32_t m_nBehaviorVersion; // 0x8
-	// MPropertySuppressField
+	// MPropertyFriendlyName "pre emission operators"
 	CUtlVector< CParticleFunctionPreEmission* > m_PreEmissionOperators; // 0x10
-	// MPropertySuppressField
+	// MPropertyFriendlyName "emitters"
 	CUtlVector< CParticleFunctionEmitter* > m_Emitters; // 0x28
-	// MPropertySuppressField
+	// MPropertyFriendlyName "initializers"
 	CUtlVector< CParticleFunctionInitializer* > m_Initializers; // 0x40
-	// MPropertySuppressField
+	// MPropertyFriendlyName "operators"
 	CUtlVector< CParticleFunctionOperator* > m_Operators; // 0x58
-	// MPropertySuppressField
+	// MPropertyFriendlyName "forces"
 	CUtlVector< CParticleFunctionForce* > m_ForceGenerators; // 0x70
-	// MPropertySuppressField
+	// MPropertyFriendlyName "constraints"
 	CUtlVector< CParticleFunctionConstraint* > m_Constraints; // 0x88
-	// MPropertySuppressField
+	// MPropertyFriendlyName "renderers"
 	CUtlVector< CParticleFunctionRenderer* > m_Renderers; // 0xa0
 	// MPropertySuppressField
 	CUtlVector< ParticleChildrenInfo_t > m_Children; // 0xb8
@@ -14060,6 +16807,7 @@ public:
 	bool m_bViewModelEffect; // 0x298
 	// MPropertyFriendlyName "screen space effect"
 	// MDefaultString
+	// MParticleAdvancedField
 	bool m_bScreenSpaceEffect; // 0x299
 	CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x2b0
 	// MPropertyFriendlyName "time to sleep when not drawn"
@@ -14114,115 +16862,123 @@ public:
 };
 
 // Aligment: 3
-// Size: 464
+// Size: 400
 class CParticleFunctionRenderer : public CParticleFunction
 {
 public:
 	// MParticleAdvancedField
-	CParticleVisibilityInputs VisibilityInputs; // 0x180
+	CParticleVisibilityInputs VisibilityInputs; // 0x140
 	// MPropertyFriendlyName "I cannot be refracted through refracting objects like water"
 	// MDefaultString
 	// MPropertyGroupName "Rendering filter"
-	bool m_bCannotBeRefracted; // 0x1c4
+	bool m_bCannotBeRefracted; // 0x184
 	// MPropertyFriendlyName "Skip rendering on mobile"
 	// MDefaultString
 	// MPropertyGroupName "Rendering filter"
-	bool m_bSkipRenderingOnMobile; // 0x1c5
+	bool m_bSkipRenderingOnMobile; // 0x185
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_RemapCPtoScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x19c
+	float m_flStartTime; // 0x15c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1a0
+	float m_flEndTime; // 0x160
 	// MPropertyFriendlyName "interpolation scale"
 	// MDefaultString
-	float m_flInterpRate; // 0x1a4
+	float m_flInterpRate; // 0x164
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a8
+	ParticleSetMethod_t m_nSetMethod; // 0x168
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetSingleControlPointPosition : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "only set position once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x181
+	bool m_bSetOnce; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "control point location"
 	// MDefaultString
-	Vector m_vecCP1Pos; // 0x188
+	Vector m_vecCP1Pos; // 0x148
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x194
+	int32_t m_nHeadLocation; // 0x154
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SnapshotRigidSkinToBones : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate normals"
 	// MDefaultString
-	bool m_bTransformNormals; // 0x180
+	bool m_bTransformNormals; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomYaw : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPtoVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionOperator : public CParticleFunction
 {
 public:
@@ -14230,54 +16986,54 @@ public:
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapControlPointDirectionToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 };
 
 // Aligment: 8
-// Size: 896
+// Size: 704
 class C_OP_SetRandomControlPointPosition : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "inherit CP orientation"
 	// MDefaultString
-	bool m_bOrient; // 0x181
+	bool m_bOrient; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x188
+	int32_t m_nHeadLocation; // 0x148
 	// MPropertyFriendlyName "re-randomize rate (-1 for once only)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flReRandomRate; // 0x190
+	CParticleCollectionFloatInput m_flReRandomRate; // 0x150
 	// MPropertyFriendlyName "control point min"
 	// MDefaultString
-	Vector m_vecCPMinPos; // 0x278
+	Vector m_vecCPMinPos; // 0x1f8
 	// MPropertyFriendlyName "control point max"
 	// MDefaultString
-	Vector m_vecCPMaxPos; // 0x284
+	Vector m_vecCPMaxPos; // 0x204
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInterpolation; // 0x290
+	CParticleCollectionFloatInput m_flInterpolation; // 0x210
 };
 
-// Aligment: 23
+// Aligment: 25
 // Size: 184
 class CNewParticleEffect : public IParticleEffect
 {
@@ -14297,559 +17053,558 @@ public:
 	bitfield:1 m_bForceNoDraw; // 0x0
 	bitfield:1 m_bDisableAggregation; // 0x0
 	bitfield:1 m_bShouldSimulateDuringGamePaused; // 0x0
+	bitfield:1 m_bShouldCheckFoW; // 0x0
 	Vector m_vSortOrigin; // 0x40
 	float m_flScale; // 0x4c
 	PARTICLE_EHANDLE__* m_hOwner; // 0x50
 	CParticleProperty* m_pOwningParticleProperty; // 0x58
 	Vector m_LastMin; // 0x70
 	Vector m_LastMax; // 0x7c
-	Vector m_vecAggregationCenter; // 0x88
+	CSplitScreenSlot m_nSplitScreenUser; // 0x88
+	Vector m_vecAggregationCenter; // 0x8c
 	int32_t m_RefCount; // 0xb0
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_EndCapTimedFreeze : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "freeze time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flFreezeTime; // 0x180
+	CParticleCollectionFloatInput m_flFreezeTime; // 0x140
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToPlayer : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 	// MPropertyFriendlyName "use eye orientation"
 	// MDefaultString
-	bool m_bOrientToEyes; // 0x190
+	bool m_bOrientToEyes; // 0x150
 };
 
 // Aligment: 9
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelElementOnceTimed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "input names"
-	CUtlVector< CUtlString > m_inNames; // 0x188
+	CUtlVector< CUtlString > m_inNames; // 0x148
 	// MPropertyFriendlyName "output names"
-	CUtlVector< CUtlString > m_outNames; // 0x1a0
+	CUtlVector< CUtlString > m_outNames; // 0x160
 	// MPropertyFriendlyName "fallback names when the input doesn't match"
-	CUtlVector< CUtlString > m_fallbackNames; // 0x1b8
+	CUtlVector< CUtlString > m_fallbackNames; // 0x178
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1d0
+	bool m_bModelFromRenderer; // 0x190
 	// MPropertyFriendlyName "remap time proportional"
 	// MDefaultString
-	bool m_bProportional; // 0x1d1
+	bool m_bProportional; // 0x191
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldInput; // 0x194
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
 	// MPropertyFriendlyName "remap time"
 	// MDefaultString
-	float m_flRemapTime; // 0x1dc
+	float m_flRemapTime; // 0x19c
 };
 
 // Aligment: 8
-// Size: 448
+// Size: 384
 class C_OP_TurbulenceForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "noise scale 0"
 	// MDefaultString
-	float m_flNoiseCoordScale0; // 0x180
+	float m_flNoiseCoordScale0; // 0x140
 	// MPropertyFriendlyName "noise scale 1"
 	// MDefaultString
-	float m_flNoiseCoordScale1; // 0x184
+	float m_flNoiseCoordScale1; // 0x144
 	// MPropertyFriendlyName "noise scale 2"
 	// MDefaultString
-	float m_flNoiseCoordScale2; // 0x188
+	float m_flNoiseCoordScale2; // 0x148
 	// MPropertyFriendlyName "noise scale 3"
 	// MDefaultString
-	float m_flNoiseCoordScale3; // 0x18c
+	float m_flNoiseCoordScale3; // 0x14c
 	// MPropertyFriendlyName "noise amount 0"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount0; // 0x190
+	Vector m_vecNoiseAmount0; // 0x150
 	// MPropertyFriendlyName "noise amount 1"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount1; // 0x19c
+	Vector m_vecNoiseAmount1; // 0x15c
 	// MPropertyFriendlyName "noise amount 2"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount2; // 0x1a8
+	Vector m_vecNoiseAmount2; // 0x168
 	// MPropertyFriendlyName "noise amount 3"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount3; // 0x1b4
+	Vector m_vecNoiseAmount3; // 0x174
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_ReinitializeScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 };
 
 // Aligment: 6
-// Size: 464
+// Size: 400
 class C_OP_InterpolateRadius : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x180
+	float m_flStartTime; // 0x140
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x184
+	float m_flEndTime; // 0x144
 	// MPropertyFriendlyName "radius start scale"
 	// MDefaultString
-	float m_flStartScale; // 0x188
+	float m_flStartScale; // 0x148
 	// MPropertyFriendlyName "radius end scale"
 	// MDefaultString
-	float m_flEndScale; // 0x18c
+	float m_flEndScale; // 0x14c
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInAndOut; // 0x190
+	bool m_bEaseInAndOut; // 0x150
 	// MPropertyFriendlyName "scale bias"
 	// MDefaultString
-	float m_flBias; // 0x194
+	float m_flBias; // 0x154
 };
 
 // Aligment: 8
-// Size: 560
+// Size: 496
 class C_OP_SetControlPointToImpactPoint : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nCPOut; // 0x180
+	int32_t m_nCPOut; // 0x140
 	// MPropertyFriendlyName "control point to trace from"
 	// MDefaultString
-	int32_t m_nCPIn; // 0x184
+	int32_t m_nCPIn; // 0x144
 	// MPropertyFriendlyName "trace update rate"
 	// MDefaultString
-	float m_flUpdateRate; // 0x188
+	float m_flUpdateRate; // 0x148
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flTraceLength; // 0x18c
+	float m_flTraceLength; // 0x14c
 	// MPropertyFriendlyName "offset end point amount"
 	// MDefaultString
-	float m_flOffset; // 0x190
+	float m_flOffset; // 0x150
 	// MPropertyFriendlyName "trace direction override"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTraceDir; // 0x194
+	Vector m_vecTraceDir; // 0x154
 	// MPropertyFriendlyName "trace collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a0
+	char[128] m_CollisionGroupName; // 0x160
 	// MPropertyFriendlyName "set to trace endpoint if no collision"
 	// MDefaultString
-	bool m_bSetToEndpoint; // 0x220
+	bool m_bSetToEndpoint; // 0x1e0
 };
 
 // Aligment: 4
-// Size: 720
+// Size: 592
 class C_OP_RenderVRHapticEvent : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "haptic hand"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nHand; // 0x1d0
+	int32_t m_nHand; // 0x190
 	// MPropertyFriendlyName "hand control point number"
 	// MDefaultString
-	int32_t m_nOutputHandCP; // 0x1d4
+	int32_t m_nOutputHandCP; // 0x194
 	// MPropertyFriendlyName "cp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x1d8
+	int32_t m_nOutputField; // 0x198
 	// MPropertyFriendlyName "amplitude"
 	// MDefaultString
-	CPerParticleFloatInput m_flAmplitude; // 0x1e0
+	CPerParticleFloatInput m_flAmplitude; // 0x1a0
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_PositionLock : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "start fadeout min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x184
+	float m_flStartTime_min; // 0x144
 	// MPropertyFriendlyName "start fadeout max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x188
+	float m_flStartTime_max; // 0x148
 	// MPropertyFriendlyName "start fadeout exponent"
 	// MDefaultString
-	float m_flStartTime_exp; // 0x18c
+	float m_flStartTime_exp; // 0x14c
 	// MPropertyFriendlyName "end fadeout min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end fadeout max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "end fadeout exponent"
 	// MDefaultString
-	float m_flEndTime_exp; // 0x198
+	float m_flEndTime_exp; // 0x158
 	// MPropertyFriendlyName "distance fade range"
 	// MDefaultString
-	float m_flRange; // 0x19c
+	float m_flRange; // 0x15c
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x1a0
+	float m_flJumpThreshold; // 0x160
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x1a4
+	float m_flPrevPosScale; // 0x164
 	// MPropertyFriendlyName "lock rotation"
 	// MDefaultString
-	bool m_bLockRot; // 0x1a8
+	bool m_bLockRot; // 0x168
 };
 
 // Aligment: 14
-// Size: 464
+// Size: 400
 class C_OP_OscillateVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate min"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_RateMin; // 0x180
+	Vector m_RateMin; // 0x140
 	// MPropertyFriendlyName "oscillation rate max"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_RateMax; // 0x18c
+	Vector m_RateMax; // 0x14c
 	// MPropertyFriendlyName "oscillation frequency min"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_FrequencyMin; // 0x198
+	Vector m_FrequencyMin; // 0x158
 	// MPropertyFriendlyName "oscillation frequency max"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_FrequencyMax; // 0x1a4
+	Vector m_FrequencyMax; // 0x164
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x1b4
+	bool m_bProportional; // 0x174
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1b5
+	bool m_bProportionalOp; // 0x175
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1b6
+	bool m_bOffset; // 0x176
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x1b8
+	float m_flStartTime_min; // 0x178
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x1bc
+	float m_flStartTime_max; // 0x17c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x1c0
+	float m_flEndTime_min; // 0x180
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x1c4
+	float m_flEndTime_max; // 0x184
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x1c8
+	float m_flOscMult; // 0x188
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1cc
+	float m_flOscAdd; // 0x18c
 };
 
 // Aligment: 9
-// Size: 1344
+// Size: 1024
 class C_OP_MovementSkinnedPositionFromCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x180
+	int32_t m_nSnapshotControlPointNumber; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x188
+	bool m_bRandom; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x190
+	bool m_bSetNormal; // 0x150
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flIncrement; // 0x198
+	CParticleCollectionFloatInput m_flIncrement; // 0x158
 	// MPropertyFriendlyName "Full Loop Increment Amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x280
+	CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x200
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x368
+	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x2a8
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x450
+	CPerParticleFloatInput m_flInterpolation; // 0x350
 };
 
 // Aligment: 8
-// Size: 656
+// Size: 528
 class C_OP_SetControlPointOrientation : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set orientation in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "randomize"
 	// MDefaultString
-	bool m_bRandomize; // 0x182
+	bool m_bRandomize; // 0x142
 	// MPropertyFriendlyName "only set orientation once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x183
+	bool m_bSetOnce; // 0x143
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x184
+	int32_t m_nCP; // 0x144
 	// MPropertyFriendlyName "control point to offset orientation from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x188
+	int32_t m_nHeadLocation; // 0x148
 	// MPropertyFriendlyName "pitch yaw roll"
 	// MDefaultString
-	QAngle m_vecRotation; // 0x18c
+	QAngle m_vecRotation; // 0x14c
 	// MPropertyFriendlyName "pitch yaw roll max"
 	// MDefaultString
-	QAngle m_vecRotationB; // 0x198
+	QAngle m_vecRotationB; // 0x158
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInterpolation; // 0x1a8
+	CParticleCollectionFloatInput m_flInterpolation; // 0x168
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_VelocityFromCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "comparison control point number"
 	// MDefaultString
-	int32_t m_nControlPointCompare; // 0x184
+	int32_t m_nControlPointCompare; // 0x144
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nControlPointLocal; // 0x188
+	int32_t m_nControlPointLocal; // 0x148
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x18c
+	float m_flVelocityScale; // 0x14c
 	// MPropertyFriendlyName "direction only"
 	// MDefaultString
-	bool m_bDirectionOnly; // 0x190
+	bool m_bDirectionOnly; // 0x150
 };
 
 // Aligment: 16
-// Size: 5280
+// Size: 2400
 class CBaseTrailRenderer : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "orientation type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nOrientationType; // 0xca0
+	int32_t m_nOrientationType; // 0x360
 	// MPropertyFriendlyName "orientation control point"
 	// MDefaultString
-	int32_t m_nOrientationControlPoint; // 0xca4
+	int32_t m_nOrientationControlPoint; // 0x364
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xca8
+	float m_flMinSize; // 0x368
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xcac
+	float m_flMaxSize; // 0x36c
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flStartFadeSize; // 0xcb0
+	CParticleCollectionFloatInput m_flStartFadeSize; // 0x370
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flEndFadeSize; // 0xd98
+	CParticleCollectionFloatInput m_flEndFadeSize; // 0x418
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0xe80
+	float m_flDepthBias; // 0x4c0
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0xe88
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x4c8
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0xf70
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x570
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1058
+	CParticleCollectionVecInput m_vecColorScale; // 0x618
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x1488
+	ParticleColorBlendType_t m_nColorBlendType; // 0x948
 	// MPropertyFriendlyName "Clamp Non-Sheet texture V coords"
 	// MDefaultString
-	bool m_bClampV; // 0x148c
+	bool m_bClampV; // 0x94c
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
-	float m_flFinalTextureScaleU; // 0x1490
+	float m_flFinalTextureScaleU; // 0x950
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
-	float m_flFinalTextureScaleV; // 0x1494
+	float m_flFinalTextureScaleV; // 0x954
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
-	float m_flFinalTextureOffsetU; // 0x1498
+	float m_flFinalTextureOffsetU; // 0x958
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
-	float m_flFinalTextureOffsetV; // 0x149c
+	float m_flFinalTextureOffsetV; // 0x95c
 };
 
 // Aligment: 10
-// Size: 448
+// Size: 384
 class C_OP_PercentageBetweenCPsVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x18c
+	Vector m_vecOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x198
+	Vector m_vecOutputMax; // 0x158
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x1a4
+	int32_t m_nStartCP; // 0x164
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x1a8
+	int32_t m_nEndCP; // 0x168
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1ac
+	ParticleSetMethod_t m_nSetMethod; // 0x16c
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1b0
+	bool m_bActiveRange; // 0x170
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1b1
+	bool m_bRadialCheck; // 0x171
 };
 
 // Aligment: 7
-// Size: 560
+// Size: 496
 class C_INIT_LifespanFromVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "bias distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecComponentScale; // 0x180
+	Vector m_vecComponentScale; // 0x140
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x18c
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x190
+	float m_flMaxTraceLength; // 0x150
 	// MPropertyFriendlyName "trace recycle tolerance"
 	// MDefaultString
-	float m_flTraceTolerance; // 0x194
+	float m_flTraceTolerance; // 0x154
 	// MPropertyFriendlyName "maximum points to cache"
 	// MDefaultString
-	int32_t m_nMaxPlanes; // 0x198
+	int32_t m_nMaxPlanes; // 0x158
 	// MPropertyFriendlyName "trace collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a0
+	char[128] m_CollisionGroupName; // 0x160
 	// MPropertyFriendlyName "collide with water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x224
+	bool m_bIncludeWater; // 0x1e4
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ConstrainLineLength : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum length"
 	// MDefaultString
-	float m_flMinDistance; // 0x180
+	float m_flMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum length"
 	// MDefaultString
-	float m_flMaxDistance; // 0x184
+	float m_flMaxDistance; // 0x144
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_InstantaneousEmitter : public CParticleFunctionEmitter, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Emit Count"
+	// MPropertyFriendlyName "num to emit"
 	// MDefaultString
 	// MPropertyAttributeRange "1 1000"
-	CParticleCollectionFloatInput m_nParticlesToEmit; // 0x180
-	// MPropertyFriendlyName "Start Time Offset"
+	CParticleCollectionFloatInput m_nParticlesToEmit; // 0x140
+	// MPropertyFriendlyName "emission start time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flStartTime; // 0x268
+	CParticleCollectionFloatInput m_flStartTime; // 0x1e8
 	// MPropertyFriendlyName "emission scale from killed parent particles"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	float m_flInitFromKilledParentParticles; // 0x350
+	float m_flInitFromKilledParentParticles; // 0x290
 	// MPropertyFriendlyName "maximum emission per frame"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nMaxEmittedPerFrame; // 0x354
+	int32_t m_nMaxEmittedPerFrame; // 0x294
 	// MPropertyFriendlyName "control point with snapshot data"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nSnapshotControlPoint; // 0x358
+	int32_t m_nSnapshotControlPoint; // 0x298
 };
 
 // Aligment: 18
-// Size: 1072
+// Size: 816
 class CParticleVecInput
 {
 public:
@@ -14872,81 +17627,144 @@ public:
 	// MDefaultString
 	Vector m_vCPRelativeDir; // 0x40
 	CParticleFloatInput m_FloatComponentX; // 0x50
-	CParticleFloatInput m_FloatComponentY; // 0x138
-	CParticleFloatInput m_FloatComponentZ; // 0x220
-	CParticleFloatInput m_FloatInterp; // 0x308
+	CParticleFloatInput m_FloatComponentY; // 0xf8
+	CParticleFloatInput m_FloatComponentZ; // 0x1a0
+	CParticleFloatInput m_FloatInterp; // 0x248
 	// MDefaultString
-	float m_flInterpInput0; // 0x3f0
+	float m_flInterpInput0; // 0x2f0
 	// MDefaultString
-	float m_flInterpInput1; // 0x3f4
+	float m_flInterpInput1; // 0x2f4
 	// MDefaultString
-	Vector m_vInterpOutput0; // 0x3f8
+	Vector m_vInterpOutput0; // 0x2f8
 	// MDefaultString
-	Vector m_vInterpOutput1; // 0x404
-	CColorGradient m_Gradient; // 0x410
+	Vector m_vInterpOutput1; // 0x304
+	CColorGradient m_Gradient; // 0x310
 };
 
 // Aligment: 0
-// Size: 416
+// Size: 352
 class C_OP_Spin : public CGeneralSpin, CParticleFunctionOperator, CParticleFunction
 {
 public:
 // <no members described>
 };
 
+// Aligment: 10
+// Size: 368
+class C_INIT_CreationNoise : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x144
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x145
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x148
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x14c
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x150
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x154
+	// MPropertyFriendlyName "spatial noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScaleLoc; // 0x158
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x15c
+	// MPropertyFriendlyName "world time noise coordinate scale"
+	// MDefaultString
+	float m_flWorldTimeScale; // 0x168
+};
+
 // Aligment: 8
-// Size: 528
+// Size: 464
 class C_OP_RenderAsModels : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "models"
-	CUtlVector< ModelReference_t > m_ModelList; // 0x1d0
+	CUtlVector< ModelReference_t > m_ModelList; // 0x190
 	// MPropertyFriendlyName "scale factor for radius"
 	// MDefaultString
-	float m_flModelScale; // 0x1ec
+	float m_flModelScale; // 0x1ac
 	// MPropertyFriendlyName "scale model to match particle size"
 	// MDefaultString
-	bool m_bFitToModelSize; // 0x1f0
+	bool m_bFitToModelSize; // 0x1b0
 	// MPropertyFriendlyName "non-uniform scaling"
 	// MDefaultString
-	bool m_bNonUniformScaling; // 0x1f1
+	bool m_bNonUniformScaling; // 0x1b1
 	// MPropertyFriendlyName "X axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nXAxisScalingAttribute; // 0x1f4
+	ParticleAttributeIndex_t m_nXAxisScalingAttribute; // 0x1b4
 	// MPropertyFriendlyName "Y axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nYAxisScalingAttribute; // 0x1f8
+	ParticleAttributeIndex_t m_nYAxisScalingAttribute; // 0x1b8
 	// MPropertyFriendlyName "Z axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nZAxisScalingAttribute; // 0x1fc
+	ParticleAttributeIndex_t m_nZAxisScalingAttribute; // 0x1bc
 	// MPropertyFriendlyName "model size cull bloat"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_size_cull_bloat"
-	int32_t m_nSizeCullBloat; // 0x200
+	int32_t m_nSizeCullBloat; // 0x1c0
 };
 
 // Aligment: 3
-// Size: 448
+// Size: 384
 class C_OP_RemapDistanceToLineSegmentToVector : public C_OP_RemapDistanceToLineSegmentBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x160
 	// MPropertyFriendlyName "output value at min distance"
 	// MDefaultString
-	Vector m_vMinOutputValue; // 0x1a4
+	Vector m_vMinOutputValue; // 0x164
 	// MPropertyFriendlyName "output value at max distance"
 	// MDefaultString
-	Vector m_vMaxOutputValue; // 0x1b0
+	Vector m_vMaxOutputValue; // 0x170
+};
+
+// Aligment: 5
+// Size: 352
+class C_INIT_NormalOffset : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "offset min"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_OffsetMin; // 0x140
+	// MPropertyFriendlyName "offset max"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_OffsetMax; // 0x14c
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x158
+	// MPropertyFriendlyName "offset in local space 0/1"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x15c
+	// MPropertyFriendlyName "normalize output 0/1"
+	// MDefaultString
+	bool m_bNormalize; // 0x15d
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_SpinUpdate : public CSpinUpdateBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -14954,48 +17772,48 @@ public:
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_INIT_CreateFromPlaneCache : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "local offset min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetMin; // 0x180
+	Vector m_vecOffsetMin; // 0x140
 	// MPropertyFriendlyName "local offset max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetMax; // 0x18c
+	Vector m_vecOffsetMax; // 0x14c
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bUseNormal; // 0x199
+	bool m_bUseNormal; // 0x159
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
 // Aligment: 8
@@ -15033,69 +17851,91 @@ public:
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_INIT_InitFloatCollection : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionFloatInput m_InputValue; // 0x180
+	CParticleCollectionFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_PlayEndCapWhenFinished : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "play when emission ends"
 	// MDefaultString
-	bool m_bFireOnEmissionEnd; // 0x180
+	bool m_bFireOnEmissionEnd; // 0x140
 	// MPropertyFriendlyName "wait for children to finish"
 	// MDefaultString
-	bool m_bIncludeChildren; // 0x181
+	bool m_bIncludeChildren; // 0x141
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_MovementLoopInsideSphere : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flDistance; // 0x184
+	float m_flDistance; // 0x144
 	// MPropertyFriendlyName "component scale"
 	// MDefaultString
-	Vector m_vecScale; // 0x188
+	Vector m_vecScale; // 0x148
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_InheritFromParentParticles : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
+};
+
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomVectorComponent : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
+	// MPropertyFriendlyName "component 0/1/2 X/Y/Z"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	// MVectorIsSometimesCoordinate
+	int32_t m_nComponent; // 0x14c
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionForce : public CParticleFunction
 {
 public:
@@ -15103,156 +17943,234 @@ public:
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_INIT_RemapInitialDirectionToCPToVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x18c
+	float m_flOffsetRot; // 0x14c
 	// MPropertyFriendlyName "offset axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetAxis; // 0x190
+	Vector m_vecOffsetAxis; // 0x150
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x19c
+	bool m_bNormalize; // 0x15c
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_SetControlPointFieldToScalarExpression : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	ScalarExpressionType_t m_nExpression; // 0x180
+	ScalarExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 	// MPropertyFriendlyName "output component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x188
+	int32_t m_nOutVectorField; // 0x148
 	// MPropertyFriendlyName "input 1"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInput1; // 0x190
+	CParticleCollectionFloatInput m_flInput1; // 0x150
 	// MPropertyFriendlyName "input 2"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInput2; // 0x278
+	CParticleCollectionFloatInput m_flInput2; // 0x1f8
+};
+
+// Aligment: 10
+// Size: 384
+class C_INIT_PositionWarp : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "warp min"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecWarpMin; // 0x140
+	// MPropertyFriendlyName "warp max"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecWarpMax; // 0x14c
+	// MPropertyFriendlyName "warp scale control point number"
+	// MDefaultString
+	int32_t m_nScaleControlPointNumber; // 0x158
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x15c
+	// MPropertyFriendlyName "radius scale component"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nRadiusComponent; // 0x160
+	// MPropertyFriendlyName "warp transition time (treats min/max as start/end sizes)"
+	// MDefaultString
+	float m_flWarpTime; // 0x164
+	// MPropertyFriendlyName "warp transition start time"
+	// MDefaultString
+	float m_flWarpStartTime; // 0x168
+	// MPropertyFriendlyName "previous position sacale"
+	// MDefaultString
+	float m_flPrevPosScale; // 0x16c
+	// MPropertyFriendlyName "reverse warp (0/1)"
+	// MDefaultString
+	bool m_bInvertWarp; // 0x170
+	// MPropertyFriendlyName "use particle count instead of time"
+	// MDefaultString
+	bool m_bUseCount; // 0x171
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_RemapQAnglesToRotation : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
+};
+
+// Aligment: 10
+// Size: 368
+class C_INIT_RemapSpeedToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "control point number (ignored if per particle)"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x144
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x148
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x14c
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x150
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x154
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x158
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x15c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x160
+	// MPropertyFriendlyName "per particle"
+	// MDefaultString
+	bool m_bPerParticle; // 0x164
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_INIT_MakeShapes : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min size"
 	// MDefaultString
-	float m_flMinSize; // 0x180
+	float m_flMinSize; // 0x140
 	// MPropertyFriendlyName "max size"
 	// MDefaultString
-	float m_flMaxSize; // 0x184
+	float m_flMaxSize; // 0x144
 };
 
 // Aligment: 8
-// Size: 432
+// Size: 368
 class C_OP_RemapCPVisibilityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x180
+	ParticleSetMethod_t m_nSetMethod; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x184
+	int32_t m_nControlPoint; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "CP visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "CP visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	Vector m_vecOutputMin; // 0x194
+	Vector m_vecOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	Vector m_vecOutputMax; // 0x1a0
+	Vector m_vecOutputMax; // 0x160
 	// MPropertyFriendlyName "visibility radius"
 	// MDefaultString
-	float m_flRadius; // 0x1ac
+	float m_flRadius; // 0x16c
 };
 
 // Aligment: 12
-// Size: 1472
+// Size: 1152
 class C_OP_DistanceBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x184
+	int32_t m_nStartCP; // 0x144
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x188
+	int32_t m_nEndCP; // 0x148
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMin; // 0x190
+	CPerParticleFloatInput m_flInputMin; // 0x150
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMax; // 0x278
+	CPerParticleFloatInput m_flInputMax; // 0x1f8
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMin; // 0x360
+	CPerParticleFloatInput m_flOutputMin; // 0x2a0
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMax; // 0x448
+	CPerParticleFloatInput m_flOutputMax; // 0x348
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x530
+	float m_flMaxTraceLength; // 0x3f0
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x534
+	float m_flLOSScale; // 0x3f4
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x538
+	char[128] m_CollisionGroupName; // 0x3f8
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x5b8
+	bool m_bLOS; // 0x478
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5bc
+	ParticleSetMethod_t m_nSetMethod; // 0x47c
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelMeshGroupOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -15260,20 +18178,20 @@ public:
 };
 
 // Aligment: 4
-// Size: 2544
+// Size: 1968
 class C_OP_SetControlPointToVectorExpression : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	VectorExpressionType_t m_nExpression; // 0x180
+	VectorExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 	// MPropertyFriendlyName "input 1"
-	CParticleCollectionVecInput m_vInput1; // 0x188
+	CParticleCollectionVecInput m_vInput1; // 0x148
 	// MPropertyFriendlyName "input 2"
-	CParticleCollectionVecInput m_vInput2; // 0x5b8
+	CParticleCollectionVecInput m_vInput2; // 0x478
 };
 
 // Aligment: 3
@@ -15293,45 +18211,72 @@ public:
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_Orient2DRelToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x180
+	float m_flRotOffset; // 0x140
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x184
+	float m_flSpinStrength; // 0x144
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x188
+	int32_t m_nCP; // 0x148
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x18c
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+};
+
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomRadius : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "radius min"
+	// MDefaultString
+	// MPropertyAttributeRange "biased 0 500"
+	float m_flRadiusMin; // 0x140
+	// MPropertyFriendlyName "radius max"
+	// MDefaultString
+	// MPropertyAttributeRange "biased 0 500"
+	float m_flRadiusMax; // 0x144
+	// MPropertyFriendlyName "radius random exponent"
+	// MDefaultString
+	// MPropertyAttributeRange "-2 2"
+	float m_flRadiusRandExponent; // 0x148
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_VelocityRadialRandom : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	float m_fSpeedMin; // 0x184
+	float m_fSpeedMin; // 0x144
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	float m_fSpeedMax; // 0x188
+	float m_fSpeedMax; // 0x148
 	// MPropertyFriendlyName "local space scale"
 	// MDefaultString
-	Vector m_vecLocalCoordinateSystemSpeedScale; // 0x18c
+	Vector m_vecLocalCoordinateSystemSpeedScale; // 0x14c
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDelta; // 0x199
+	bool m_bIgnoreDelta; // 0x159
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelSequenceScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 0
@@ -15342,253 +18287,284 @@ public:
 // <no members described>
 };
 
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomLifeTime : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "lifetime min"
+	// MDefaultString
+	// MPropertyAttributeRange "0 20"
+	float m_fLifetimeMin; // 0x140
+	// MPropertyFriendlyName "lifetime max"
+	// MDefaultString
+	// MPropertyAttributeRange "0 20"
+	float m_fLifetimeMax; // 0x144
+	// MPropertyFriendlyName "lifetime random exponent"
+	// MDefaultString
+	float m_fLifetimeRandExponent; // 0x148
+};
+
 // Aligment: 7
-// Size: 896
+// Size: 704
 class C_OP_AttractToControlPoint : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "component scale"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecComponentScale; // 0x180
+	Vector m_vecComponentScale; // 0x140
 	// MPropertyFriendlyName "amount of force (or Max Force)"
 	// MDefaultString
-	CPerParticleFloatInput m_fForceAmount; // 0x190
+	CPerParticleFloatInput m_fForceAmount; // 0x150
 	// MPropertyFriendlyName "falloff power"
 	// MDefaultString
-	float m_fFalloffPower; // 0x278
+	float m_fFalloffPower; // 0x1f8
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x27c
+	int32_t m_nControlPointNumber; // 0x1fc
 	// MPropertyFriendlyName "scale in local space"
 	// MDefaultString
-	bool m_bScaleLocal; // 0x280
+	bool m_bScaleLocal; // 0x200
 	// MPropertyFriendlyName "Min Pullforce"
 	// MDefaultString
-	CPerParticleFloatInput m_fForceAmountMin; // 0x288
+	CPerParticleFloatInput m_fForceAmountMin; // 0x208
 	// MPropertyFriendlyName "Apply Min Pullforce"
 	// MDefaultString
-	bool m_bApplyMinForce; // 0x370
+	bool m_bApplyMinForce; // 0x2b0
 };
 
 // Aligment: 14
-// Size: 432
+// Size: 368
 class C_INIT_CreatePhyllotaxis : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "scale size multiplier from CP"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x184
+	int32_t m_nScaleCP; // 0x144
 	// MPropertyFriendlyName "scale CP component 0/1/2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent; // 0x188
+	int32_t m_nComponent; // 0x148
 	// MPropertyFriendlyName "center core radius"
 	// MDefaultString
-	float m_fRadCentCore; // 0x18c
+	float m_fRadCentCore; // 0x14c
 	// MPropertyFriendlyName "radius multiplier"
 	// MDefaultString
-	float m_fRadPerPoint; // 0x190
+	float m_fRadPerPoint; // 0x150
 	// MPropertyFriendlyName "radius max (-1 procedural growth)"
 	// MDefaultString
-	float m_fRadPerPointTo; // 0x194
+	float m_fRadPerPointTo; // 0x154
 	// MPropertyFriendlyName "golden angle (is 137.508)"
 	// MDefaultString
-	float m_fpointAngle; // 0x198
+	float m_fpointAngle; // 0x158
 	// MPropertyFriendlyName "overall size multiplier (-1 count based distribution)"
 	// MDefaultString
-	float m_fsizeOverall; // 0x19c
+	float m_fsizeOverall; // 0x15c
 	// MPropertyFriendlyName "radius bias"
 	// MDefaultString
-	float m_fRadBias; // 0x1a0
+	float m_fRadBias; // 0x160
 	// MPropertyFriendlyName "radius min "
 	// MDefaultString
-	float m_fMinRad; // 0x1a4
+	float m_fMinRad; // 0x164
 	// MPropertyFriendlyName "Distribution Bias"
 	// MPropertyFriendlyName "distribution bias"
 	// MDefaultString
-	float m_fDistBias; // 0x1a8
+	float m_fDistBias; // 0x168
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bUseLocalCoords; // 0x1ac
+	bool m_bUseLocalCoords; // 0x16c
 	// MPropertyFriendlyName "use continuous emission"
 	// MDefaultString
-	bool m_bUseWithContEmit; // 0x1ad
+	bool m_bUseWithContEmit; // 0x16d
 	// MPropertyFriendlyName "scale radius from initial value"
 	// MDefaultString
-	bool m_bUseOrigRadius; // 0x1ae
+	bool m_bUseOrigRadius; // 0x16e
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_BoxConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min coords"
 	// MDefaultString
-	Vector m_vecMin; // 0x180
+	Vector m_vecMin; // 0x140
 	// MPropertyFriendlyName "max coords"
 	// MDefaultString
-	Vector m_vecMax; // 0x18c
+	Vector m_vecMax; // 0x14c
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x198
+	int32_t m_nCP; // 0x158
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x19c
+	bool m_bLocalSpace; // 0x15c
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetParentControlPointsToChildCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nChildControlPoint; // 0x184
+	int32_t m_nChildControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first parent control point to set from"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x18c
+	int32_t m_nFirstSourcePoint; // 0x14c
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x190
+	bool m_bSetOrientation; // 0x150
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_SetPerChildControlPointFromAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nParticleIncrement; // 0x18c
+	int32_t m_nParticleIncrement; // 0x14c
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x190
+	int32_t m_nFirstSourcePoint; // 0x150
 	// MPropertyFriendlyName "set number of children based on particle count"
 	// MDefaultString
-	bool m_bNumBasedOnParticleCount; // 0x194
+	bool m_bNumBasedOnParticleCount; // 0x154
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x198
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x158
 	// MPropertyFriendlyName "control point field for scalars"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x19c
+	int32_t m_nCPField; // 0x15c
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_INIT_OffsetVectorToVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "output offset minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x188
+	Vector m_vecOutputMin; // 0x148
 	// MPropertyFriendlyName "output offset maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x194
+	Vector m_vecOutputMax; // 0x154
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_GlobalLight : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "initial color bias"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "clamp minimum light value to initial color"
 	// MDefaultString
-	bool m_bClampLowerRange; // 0x184
+	bool m_bClampLowerRange; // 0x144
 	// MPropertyFriendlyName "clamp maximum light value to initial color"
 	// MDefaultString
-	bool m_bClampUpperRange; // 0x185
+	bool m_bClampUpperRange; // 0x145
 };
 
 // Aligment: 16
-// Size: 384
+// Size: 320
 class CParticleFunction
 {
 public:
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator start fadein"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpStartFadeInTime; // 0x8
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator end fadein"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpEndFadeInTime; // 0xc
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator start fadeout"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpStartFadeOutTime; // 0x10
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator end fadeout"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpEndFadeOutTime; // 0x14
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator fade oscillate"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpFadeOscillatePeriod; // 0x18
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "normalize fade times to endcap"
 	// MDefaultString
+	// MParticleAdvancedField
 	bool m_bNormalizeToStopTime; // 0x1c
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset min"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeOffsetMin; // 0x20
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset max"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeOffsetMax; // 0x24
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset seed"
 	// MDefaultString
+	// MParticleAdvancedField
 	int32_t m_nOpTimeOffsetSeed; // 0x28
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale seed"
 	// MDefaultString
+	// MParticleAdvancedField
 	int32_t m_nOpTimeScaleSeed; // 0x2c
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale min"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeScaleMin; // 0x30
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale max"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeScaleMax; // 0x34
-	// MPropertySuppressField
+	// MPropertySortPriority "2147483647"
+	// MPropertyFriendlyName "disable"
 	// MDefaultString
 	bool m_bDisableOperator; // 0x39
 	// MPropertyFriendlyName "operator end cap state"
@@ -15597,15 +18573,16 @@ public:
 	// MPropertyGroupName "Strength Modifiers"
 	// MPropertyFriendlyName "operator strength"
 	// MDefaultString
+	// MParticleAdvancedField
 	CParticleCollectionFloatInput m_flOpStrength; // 0x40
-	// MPropertyFriendlyName "Notes"
+	// MPropertyFriendlyName "operator help and notes"
 	// MDefaultString
 	// MParticleHelpField
-	CUtlString m_Notes; // 0x128
+	CUtlString m_Notes; // 0xe8
 };
 
 // Aligment: 0
-// Size: 464
+// Size: 400
 class C_OP_Callback : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
@@ -15613,599 +18590,736 @@ public:
 };
 
 // Aligment: 1
-// Size: 528
+// Size: 464
 class C_INIT_InitFromParentKilled : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "field to init"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToCopy; // 0x180
+	ParticleAttributeIndex_t m_nAttributeToCopy; // 0x140
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_INIT_RandomNamedModelElement : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "names"
-	CUtlVector< CUtlString > m_names; // 0x188
+	CUtlVector< CUtlString > m_names; // 0x148
 	// MPropertyFriendlyName "shuffle"
 	// MDefaultString
-	bool m_bShuffle; // 0x1a0
+	bool m_bShuffle; // 0x160
 	// MPropertyFriendlyName "linear"
 	// MDefaultString
-	bool m_bLinear; // 0x1a1
+	bool m_bLinear; // 0x161
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1a2
+	bool m_bModelFromRenderer; // 0x162
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x164
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_BasicMovement : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "gravity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_Gravity; // 0x180
+	Vector m_Gravity; // 0x140
 	// MPropertyFriendlyName "drag"
 	// MDefaultString
 	// MPropertyAttributeRange "-1 1"
-	float m_fDrag; // 0x18c
+	float m_fDrag; // 0x14c
 	// MPropertyFriendlyName "max constraint passes"
 	// MDefaultString
-	int32_t m_nMaxConstraintPasses; // 0x190
+	int32_t m_nMaxConstraintPasses; // 0x150
 };
 
 // Aligment: 2
-// Size: 656
+// Size: 528
 class C_OP_QuantizeFloat : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleFloatInput m_InputValue; // 0x180
+	CPerParticleFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
+};
+
+// Aligment: 11
+// Size: 368
+class C_INIT_RemapScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x148
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x14c
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x150
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x154
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x158
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x15c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x160
+	// MPropertyFriendlyName "only active within specified input range"
+	// MDefaultString
+	bool m_bActiveRange; // 0x164
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x168
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 352
 class C_INIT_MoveBetweenPoints : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Min Speed"
+	// MPropertyFriendlyName "minimum speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flSpeedMin; // 0x180
-	// MPropertyFriendlyName "Max Speed"
+	float m_flSpeedMin; // 0x140
+	// MPropertyFriendlyName "maximum speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flSpeedMax; // 0x268
-	// MPropertyFriendlyName "Spread"
+	float m_flSpeedMax; // 0x144
+	// MPropertyFriendlyName "end spread"
 	// MDefaultString
-	float m_flEndSpread; // 0x350
-	// MPropertyFriendlyName "Start Offset"
+	float m_flEndSpread; // 0x148
+	// MPropertyFriendlyName "start offset"
 	// MDefaultString
-	float m_flStartOffset; // 0x354
-	// MPropertyFriendlyName "End Offset"
+	float m_flStartOffset; // 0x14c
+	// MPropertyFriendlyName "end offset"
 	// MDefaultString
-	float m_flEndOffset; // 0x358
-	// MPropertyFriendlyName "Target Control Point"
+	float m_flEndOffset; // 0x150
+	// MPropertyFriendlyName "end control point"
 	// MDefaultString
-	int32_t m_nEndControlPointNumber; // 0x35c
-	// MPropertyFriendlyName "Bias Lifetime by Trail Length"
+	int32_t m_nEndControlPointNumber; // 0x154
+	// MPropertyFriendlyName "bias lifetime by trail length"
 	// MDefaultString
-	bool m_bTrailBias; // 0x360
+	bool m_bTrailBias; // 0x158
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_SequenceLifeTime : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "frames per second"
 	// MDefaultString
-	float m_flFramerate; // 0x180
+	float m_flFramerate; // 0x140
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_OP_OscillateVectorSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_Rate; // 0x180
+	Vector m_Rate; // 0x140
 	// MPropertyFriendlyName "oscillation frequency"
 	// MDefaultString
-	Vector m_Frequency; // 0x18c
+	Vector m_Frequency; // 0x14c
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nField; // 0x198
+	ParticleAttributeIndex_t m_nField; // 0x158
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x19c
+	float m_flOscMult; // 0x15c
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1a0
+	float m_flOscAdd; // 0x160
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1a4
+	bool m_bOffset; // 0x164
 };
 
 // Aligment: 6
-// Size: 1104
+// Size: 848
 class C_OP_ContinuousEmitter : public CParticleFunctionEmitter, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Duration Limit"
+	// MPropertyFriendlyName "emission duration"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flEmissionDuration; // 0x180
-	// MPropertyFriendlyName "Start Time Offset"
+	CParticleCollectionFloatInput m_flEmissionDuration; // 0x140
+	// MPropertyFriendlyName "emission start time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flStartTime; // 0x268
-	// MPropertyFriendlyName "Emit Rate"
+	CParticleCollectionFloatInput m_flStartTime; // 0x1e8
+	// MPropertyFriendlyName "emission rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flEmitRate; // 0x350
+	CParticleCollectionFloatInput m_flEmitRate; // 0x290
 	// MPropertyFriendlyName "scale emission to used control points"
 	// MDefaultString
 	// MParticleMaxVersion
-	// MPropertyGroupName "Advanced"
-	float m_flEmissionScale; // 0x438
+	float m_flEmissionScale; // 0x338
 	// MPropertyFriendlyName "scale emission by parent particle count"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	float m_flScalePerParentParticle; // 0x43c
+	float m_flScalePerParentParticle; // 0x33c
 	// MPropertyFriendlyName "emit particles for killed parent particles"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	bool m_bInitFromKilledParentParticles; // 0x440
+	bool m_bInitFromKilledParentParticles; // 0x340
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_RemapDistanceToLineSegmentBase : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point 0"
 	// MDefaultString
-	int32_t m_nCP0; // 0x180
+	int32_t m_nCP0; // 0x140
 	// MPropertyFriendlyName "control point 1"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "min distance value"
 	// MDefaultString
-	float m_flMinInputValue; // 0x188
+	float m_flMinInputValue; // 0x148
 	// MPropertyFriendlyName "max distance value"
 	// MDefaultString
-	float m_flMaxInputValue; // 0x18c
+	float m_flMaxInputValue; // 0x14c
 	// MPropertyFriendlyName "use distance to an infinite line instead of a finite line segment"
 	// MDefaultString
-	bool m_bInfiniteLine; // 0x190
+	bool m_bInfiniteLine; // 0x150
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_EndCapTimedDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "decay time"
 	// MDefaultString
-	float m_flDecayTime; // 0x180
+	float m_flDecayTime; // 0x140
+};
+
+// Aligment: 6
+// Size: 400
+class C_INIT_CreateSequentialPath : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "maximum distance"
+	// MDefaultString
+	float m_fMaxDistance; // 0x140
+	// MPropertyFriendlyName "particles to map from start to end"
+	// MDefaultString
+	float m_flNumToAssign; // 0x144
+	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
+	// MDefaultString
+	bool m_bLoop; // 0x148
+	// MPropertyFriendlyName "use sequential CP pairs between start and end point"
+	// MDefaultString
+	bool m_bCPPairs; // 0x149
+	// MPropertyFriendlyName "save offset"
+	// MDefaultString
+	bool m_bSaveOffset; // 0x14a
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_DecayOffscreen : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Offscreen Time Before Decay"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOffscreenTime; // 0x180
+	CParticleCollectionFloatInput m_flOffscreenTime; // 0x140
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapCPVisibilityToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x180
+	ParticleSetMethod_t m_nSetMethod; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x184
+	int32_t m_nControlPoint; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "CP visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "CP visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "visibility radius"
 	// MDefaultString
-	float m_flRadius; // 0x19c
+	float m_flRadius; // 0x15c
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
-// Aligment: 11
-// Size: 2256
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomTrailLength : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "length min"
+	// MDefaultString
+	float m_flMinLength; // 0x140
+	// MPropertyFriendlyName "length max"
+	// MDefaultString
+	float m_flMaxLength; // 0x144
+	// MPropertyFriendlyName "length random exponent"
+	// MDefaultString
+	float m_flLengthRandExponent; // 0x148
+};
+
+// Aligment: 13
+// Size: 368
 class C_INIT_RingWave : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "override CP (X/Y/Z *= radius/thickness/speed)"
+	// MDefaultString
+	int32_t m_nOverrideCP; // 0x144
+	// MPropertyFriendlyName "override CP 2 (X/Y/Z *= pitch/yaw/roll)"
+	// MDefaultString
+	int32_t m_nOverrideCP2; // 0x148
 	// MPropertyFriendlyName "even distribution count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flParticlesPerOrbit; // 0x188
+	float m_flParticlesPerOrbit; // 0x14c
 	// MPropertyFriendlyName "initial radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialRadius; // 0x270
+	float m_flInitialRadius; // 0x150
 	// MPropertyFriendlyName "thickness"
 	// MDefaultString
-	CPerParticleFloatInput m_flThickness; // 0x358
+	float m_flThickness; // 0x154
 	// MPropertyFriendlyName "min initial speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialSpeedMin; // 0x440
+	float m_flInitialSpeedMin; // 0x158
 	// MPropertyFriendlyName "max initial speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialSpeedMax; // 0x528
+	float m_flInitialSpeedMax; // 0x15c
 	// MPropertyFriendlyName "roll"
 	// MDefaultString
-	CPerParticleFloatInput m_flRoll; // 0x610
+	float m_flRoll; // 0x160
 	// MPropertyFriendlyName "pitch"
 	// MDefaultString
-	CPerParticleFloatInput m_flPitch; // 0x6f8
+	float m_flPitch; // 0x164
 	// MPropertyFriendlyName "yaw"
 	// MDefaultString
-	CPerParticleFloatInput m_flYaw; // 0x7e0
+	float m_flYaw; // 0x168
 	// MPropertyFriendlyName "even distribution"
 	// MDefaultString
-	bool m_bEvenDistribution; // 0x8c8
+	bool m_bEvenDistribution; // 0x16c
 	// MPropertyFriendlyName "XY velocity only"
 	// MDefaultString
-	bool m_bXYVelocityOnly; // 0x8c9
+	bool m_bXYVelocityOnly; // 0x16d
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_INIT_SetHitboxToClosest : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x184
+	int32_t m_nDesiredHitbox; // 0x144
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x188
+	float m_flHitBoxScale; // 0x148
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x18c
+	char[128] m_HitboxSetName; // 0x14c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x20c
+	bool m_bUseBones; // 0x1cc
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVelocityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x188
+	bool m_bNormalize; // 0x148
 };
 
 // Aligment: 4
-// Size: 480
+// Size: 416
 class C_OP_RenderTonemapController : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "tonemap level scale"
 	// MDefaultString
-	float m_flTonemapLevel; // 0x1d0
+	float m_flTonemapLevel; // 0x190
 	// MPropertyFriendlyName "tonemap weight scale"
 	// MDefaultString
-	float m_flTonemapWeight; // 0x1d4
+	float m_flTonemapWeight; // 0x194
 	// MPropertyFriendlyName "tonemap level"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nTonemapLevelField; // 0x1d8
+	ParticleAttributeIndex_t m_nTonemapLevelField; // 0x198
 	// MPropertyFriendlyName "tonemap weight"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nTonemapWeightField; // 0x1dc
+	ParticleAttributeIndex_t m_nTonemapWeightField; // 0x19c
 };
 
 // Aligment: 4
-// Size: 1088
+// Size: 832
 class C_OP_RepeatedTriggerChildGroup : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "Within-Cluster Refire Time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterRefireTime; // 0x188
+	CParticleCollectionFloatInput m_flClusterRefireTime; // 0x148
 	// MPropertyFriendlyName "Within-Cluster Fire Count Before Cooldown"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterSize; // 0x270
+	CParticleCollectionFloatInput m_flClusterSize; // 0x1f0
 	// MPropertyFriendlyName "Cluster Cooldown Time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterCooldown; // 0x358
+	CParticleCollectionFloatInput m_flClusterCooldown; // 0x298
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_FadeInSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "proportional fade in time"
 	// MDefaultString
-	float m_flFadeInTime; // 0x180
+	float m_flFadeInTime; // 0x140
 	// MPropertyFriendlyName "alpha field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_alpha"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_NormalizeVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
+};
+
+// Aligment: 4
+// Size: 352
+class C_INIT_RandomAlpha : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "alpha field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_alpha"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "alpha min"
+	// MDefaultString
+	// MPropertyAttributeRange "0 255"
+	int32_t m_nAlphaMin; // 0x144
+	// MPropertyFriendlyName "alpha max"
+	// MDefaultString
+	// MPropertyAttributeRange "0 255"
+	int32_t m_nAlphaMax; // 0x148
+	// MPropertyFriendlyName "alpha random exponent"
+	// MDefaultString
+	float m_flAlphaRandExponent; // 0x154
 };
 
 // Aligment: 5
-// Size: 624
+// Size: 496
 class C_OP_ExternalGameImpulseForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flForceScale; // 0x180
+	CPerParticleFloatInput m_flForceScale; // 0x140
 	// MPropertyFriendlyName "rope shake"
 	// MDefaultString
-	bool m_bRopes; // 0x268
+	bool m_bRopes; // 0x1e8
 	// MPropertyFriendlyName "limit rope impulses to Z"
 	// MDefaultString
-	bool m_bRopesZOnly; // 0x269
+	bool m_bRopesZOnly; // 0x1e9
 	// MPropertyFriendlyName "explosions"
 	// MDefaultString
-	bool m_bExplosions; // 0x26a
+	bool m_bExplosions; // 0x1ea
 	// MPropertyFriendlyName "particle systems"
 	// MDefaultString
-	bool m_bParticles; // 0x26b
+	bool m_bParticles; // 0x1eb
 };
 
 // Aligment: 0
-// Size: 1072
+// Size: 816
 class CPerParticleVecInput : public CParticleVecInput
 {
 public:
 // <no members described>
 };
 
+// Aligment: 2
+// Size: 592
+class C_INIT_RandomModelSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "activity"
+	// MDefaultString
+	char[256] m_ActivityName; // 0x140
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x240
+};
+
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_DecayMaintainCount : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "count to maintain"
 	// MDefaultString
-	int32_t m_nParticlesToMaintain; // 0x180
+	int32_t m_nParticlesToMaintain; // 0x140
 	// MPropertyFriendlyName "maintain count scale control point"
 	// MDefaultString
-	int32_t m_nScaleControlPoint; // 0x184
+	int32_t m_nScaleControlPoint; // 0x144
 	// MPropertyFriendlyName "maintain count scale control point field"
 	// MDefaultString
-	int32_t m_nScaleControlPointField; // 0x188
+	int32_t m_nScaleControlPointField; // 0x148
 	// MPropertyFriendlyName "decay delay"
 	// MDefaultString
-	float m_flDecayDelay; // 0x18c
+	float m_flDecayDelay; // 0x14c
 };
 
 // Aligment: 3
-// Size: 544
+// Size: 480
 class C_OP_SetControlPointPositionToTimeOfDayValue : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "time-of-day parameter"
 	// MDefaultString
-	char[128] m_pszTimeOfDayParameter; // 0x184
+	char[128] m_pszTimeOfDayParameter; // 0x144
 	// MPropertyFriendlyName "default value"
 	// MDefaultString
-	Vector m_vecDefaultValue; // 0x204
+	Vector m_vecDefaultValue; // 0x1c4
 };
 
 // Aligment: 19
-// Size: 8416
+// Size: 4768
 class C_OP_RenderTrails : public CBaseTrailRenderer, CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "enable fading and clamping"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	bool m_bEnableFadingAndClamping; // 0x14a0
+	bool m_bEnableFadingAndClamping; // 0x960
 	// MPropertyFriendlyName "max length"
 	// MDefaultString
-	float m_flMaxLength; // 0x14a4
+	float m_flMaxLength; // 0x964
 	// MPropertyFriendlyName "min length"
 	// MDefaultString
-	float m_flMinLength; // 0x14a8
+	float m_flMinLength; // 0x968
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDT; // 0x14ac
+	bool m_bIgnoreDT; // 0x96c
 	// MPropertyFriendlyName "constrain radius to no more than this times the length"
 	// MDefaultString
-	float m_flConstrainRadiusToLengthRatio; // 0x14b0
+	float m_flConstrainRadiusToLengthRatio; // 0x970
 	// MPropertyFriendlyName "amount to scale trail length by"
 	// MDefaultString
-	float m_flLengthScale; // 0x14b4
+	float m_flLengthScale; // 0x974
 	// MPropertyFriendlyName "how long before a trail grows to its full length"
 	// MDefaultString
-	float m_flLengthFadeInTime; // 0x14b8
+	float m_flLengthFadeInTime; // 0x978
 	// MPropertyFriendlyName "head taper scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusHeadTaper; // 0x14c0
+	CPerParticleFloatInput m_flRadiusHeadTaper; // 0x980
 	// MPropertyFriendlyName "head color scale"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecHeadColorScale; // 0x15a8
+	CParticleCollectionVecInput m_vecHeadColorScale; // 0xa28
 	// MPropertyFriendlyName "head alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flHeadAlphaScale; // 0x19d8
+	CParticleCollectionFloatInput m_flHeadAlphaScale; // 0xd58
 	// MPropertyFriendlyName "tail taper scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusTaper; // 0x1ac0
+	CPerParticleFloatInput m_flRadiusTaper; // 0xe00
 	// MPropertyFriendlyName "tail color scale"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecTailColorScale; // 0x1ba8
+	CParticleCollectionVecInput m_vecTailColorScale; // 0xea8
 	// MPropertyFriendlyName "tail alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTailAlphaScale; // 0x1fd8
+	CParticleCollectionFloatInput m_flTailAlphaScale; // 0x11d8
 	// MPropertyFriendlyName "texture UV horizontal Scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nHorizCropField; // 0x20c0
+	ParticleAttributeIndex_t m_nHorizCropField; // 0x1280
 	// MPropertyFriendlyName "texture UV vertical Scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nVertCropField; // 0x20c4
+	ParticleAttributeIndex_t m_nVertCropField; // 0x1284
 	// MPropertyFriendlyName "Trail forward shift (fraction)"
 	// MDefaultString
-	float m_flForwardShift; // 0x20c8
+	float m_flForwardShift; // 0x1288
 	// MPropertyFriendlyName "Flip U or V texcoords if pitch or yaw go over PI"
 	// MDefaultString
-	bool m_bFlipUVBasedOnPitchYaw; // 0x20cc
+	bool m_bFlipUVBasedOnPitchYaw; // 0x128c
 	// MPropertyFriendlyName "Anchor point source"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nPrevPntSource; // 0x20d0
+	ParticleAttributeIndex_t m_nPrevPntSource; // 0x1290
 	// MPropertyFriendlyName "Use particle system topology"
 	// MDefaultString
-	bool m_bUseTopology; // 0x20d4
+	bool m_bUseTopology; // 0x1294
+};
+
+// Aligment: 4
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelElementScalar : public C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x170
+	// MPropertyFriendlyName "output min name"
+	CUtlString m_outputMinName; // 0x178
+	// MPropertyFriendlyName "output max name"
+	CUtlString m_outputMaxName; // 0x180
+	// MPropertyFriendlyName "model from renderer"
+	// MDefaultString
+	bool m_bModelFromRenderer; // 0x188
 };
 
 // Aligment: 8
-// Size: 1328
+// Size: 1008
 class C_OP_RemapDotProductToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first input control point"
 	// MDefaultString
-	int32_t m_nInputCP1; // 0x180
+	int32_t m_nInputCP1; // 0x140
 	// MPropertyFriendlyName "second input control point"
 	// MDefaultString
-	int32_t m_nInputCP2; // 0x184
+	int32_t m_nInputCP2; // 0x144
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "output component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x18c
+	int32_t m_nOutVectorField; // 0x14c
 	// MPropertyFriendlyName "input minimum (-1 to 1)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInputMin; // 0x190
+	CParticleCollectionFloatInput m_flInputMin; // 0x150
 	// MPropertyFriendlyName "input maximum (-1 to 1)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInputMax; // 0x278
+	CParticleCollectionFloatInput m_flInputMax; // 0x1f8
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMin; // 0x360
+	CParticleCollectionFloatInput m_flOutputMin; // 0x2a0
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMax; // 0x448
+	CParticleCollectionFloatInput m_flOutputMax; // 0x348
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_OrientTo2dDirection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x180
+	float m_flRotOffset; // 0x140
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x184
+	float m_flSpinStrength; // 0x144
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CSpinUpdateBase : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -16213,410 +19327,417 @@ public:
 };
 
 // Aligment: 50
-// Size: 3232
+// Size: 864
 class CBaseRendererSource2 : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
 	// MPropertyAttributeRange "0 5"
-	float m_flAnimationRate; // 0x1d0
+	float m_flAnimationRate; // 0x190
 	// MPropertyFriendlyName "animation type"
 	// MDefaultString
-	AnimationType_t m_nAnimationType; // 0x1d4
+	AnimationType_t m_nAnimationType; // 0x194
 	// MPropertyFriendlyName "set animation value in FPS"
 	// MDefaultString
-	bool m_bAnimateInFPS; // 0x1d8
+	bool m_bAnimateInFPS; // 0x198
 	// MPropertyFriendlyName "light per vertex"
 	// MDefaultString
-	bool m_bPerVertexLighting; // 0x1d9
+	bool m_bPerVertexLighting; // 0x199
 	// MPropertyFriendlyName "self illum amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	CParticleCollectionFloatInput m_flSelfIllumAmount; // 0x1e0
+	float m_flSelfIllumAmount; // 0x19c
 	// MPropertyFriendlyName "diffuse lighting amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
-	CParticleCollectionFloatInput m_flDiffuseAmount; // 0x2c8
+	float m_flDiffuseAmount; // 0x1a0
 	// MPropertyFriendlyName "diffuse lighting origin Control Point"
 	// MDefaultString
-	int32_t m_nLightingControlPoint; // 0x3b0
+	int32_t m_nLightingControlPoint; // 0x1a4
 	// MPropertyFriendlyName "self illum per-particle"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x3b4
-	// MPropertyFriendlyName "desaturation amount"
-	// MDefaultString
-	// MPropertyAttributeRange "0 1"
-	CParticleCollectionFloatInput m_flDesaturation; // 0x3b8
+	ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x1a8
 	// MPropertyFriendlyName "source alpha value to map to alpha of zero"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flSourceAlphaValueToMapToZero; // 0x4a0
+	float m_flSourceAlphaValueToMapToZero; // 0x1ac
 	// MPropertyFriendlyName "source alpha value to map to alpha of 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flSourceAlphaValueToMapToOne; // 0x588
+	float m_flSourceAlphaValueToMapToOne; // 0x1b0
 	// MPropertyFriendlyName "Gamma-correct vertex colors"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bGammaCorrectVertexColors; // 0x670
+	bool m_bGammaCorrectVertexColors; // 0x1b4
 	// MPropertyFriendlyName "Saturate color pre alphablend"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bSaturateColorPreAlphaBlend; // 0x671
+	bool m_bSaturateColorPreAlphaBlend; // 0x1b5
 	// MPropertyFriendlyName "dual sequence combine mode"
 	// MDefaultString
 	// MPropertyGroupName "Dual sequence controls"
-	SequenceCombineMode_t m_nSequenceCombineMode; // 0x674
+	SequenceCombineMode_t m_nSequenceCombineMode; // 0x1b8
 	// MPropertyFriendlyName "second sequence animation rate"
 	// MDefaultString
 	// MPropertyAttributeRange "0 5"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flAnimationRate2; // 0x678
+	float m_flAnimationRate2; // 0x1bc
 	// MPropertyFriendlyName "RGB blend weight for sequence 0"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence0RGBWeight; // 0x67c
+	float m_flSequence0RGBWeight; // 0x1c0
 	// MPropertyFriendlyName "alpha blend weight for sequence 0"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence0AlphaWeight; // 0x680
+	float m_flSequence0AlphaWeight; // 0x1c4
 	// MPropertyFriendlyName "RGB blend weight for sequence 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence1RGBWeight; // 0x684
+	float m_flSequence1RGBWeight; // 0x1c8
 	// MPropertyFriendlyName "alpha blend weight for sequence 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence1AlphaWeight; // 0x688
+	float m_flSequence1AlphaWeight; // 0x1cc
 	// MPropertyFriendlyName "add self amount for combined additive and alpha blended"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flAddSelfAmount; // 0x690
+	float m_flAddSelfAmount; // 0x1d0
 	// MPropertyFriendlyName "use additive blending"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bAdditive; // 0x778
+	bool m_bAdditive; // 0x1d4
 	// MPropertyFriendlyName "Additive alpha - write alpha during additive"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bAdditiveAlpha; // 0x779
+	bool m_bAdditiveAlpha; // 0x1d5
 	// MPropertyFriendlyName "Mod2x blend mode"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bMod2X; // 0x77a
+	bool m_bMod2X; // 0x1d6
 	// MPropertyFriendlyName "'Lighten blend mode"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bLightenMode; // 0x77b
+	bool m_bLightenMode; // 0x1d7
 	// MPropertyFriendlyName "use max-luminance blending for sequence 0"
 	// MDefaultString
-	bool m_bMaxLuminanceBlendingSequence0; // 0x77c
+	bool m_bMaxLuminanceBlendingSequence0; // 0x1d8
 	// MPropertyFriendlyName "use max-luminance blending for sequence 1"
 	// MDefaultString
-	bool m_bMaxLuminanceBlendingSequence1; // 0x77d
+	bool m_bMaxLuminanceBlendingSequence1; // 0x1d9
 	// MPropertyFriendlyName "refract background"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	bool m_bRefract; // 0x77e
+	bool m_bRefract; // 0x1da
 	// MPropertyFriendlyName "refract amount"
 	// MDefaultString
 	// MPropertyAttributeRange "-2 2"
 	// MPropertyGroupName "Refraction"
-	CParticleCollectionFloatInput m_flRefractAmount; // 0x780
+	float m_flRefractAmount; // 0x1dc
 	// MPropertyFriendlyName "refract blur radius"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	int32_t m_nRefractBlurRadius; // 0x868
+	int32_t m_nRefractBlurRadius; // 0x1e0
 	// MPropertyFriendlyName "refract blur type"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	BlurFilterType_t m_nRefractBlurType; // 0x86c
+	BlurFilterType_t m_nRefractBlurType; // 0x1e4
 	// MPropertyFriendlyName "Only Render in effects bloom pass"
 	// MDefaultString
-	bool m_bOnlyRenderInEffectsBloomPass; // 0x870
+	bool m_bOnlyRenderInEffectsBloomPass; // 0x1e8
 	// MPropertyFriendlyName "stencil test ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	char[128] m_stencilTestID; // 0x871
+	char[128] m_stencilTestID; // 0x1e9
 	// MPropertyFriendlyName "only write where stencil is NOT stencil test ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bStencilTestExclude; // 0x8f1
+	bool m_bStencilTestExclude; // 0x269
 	// MPropertyFriendlyName "stencil write ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	char[128] m_stencilWriteID; // 0x8f2
+	char[128] m_stencilWriteID; // 0x26a
 	// MPropertyFriendlyName "write stencil on z-buffer test success"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bWriteStencilOnDepthPass; // 0x972
+	bool m_bWriteStencilOnDepthPass; // 0x2ea
 	// MPropertyFriendlyName "write stencil on z-buffer test failure"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bWriteStencilOnDepthFail; // 0x973
+	bool m_bWriteStencilOnDepthFail; // 0x2eb
 	// MPropertyFriendlyName "reverse z-buffer test"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	bool m_bReverseZBuffering; // 0x974
+	bool m_bReverseZBuffering; // 0x2ec
 	// MPropertyFriendlyName "disable z-buffer test"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	bool m_bDisableZBuffering; // 0x975
+	bool m_bDisableZBuffering; // 0x2ed
 	// MPropertyFriendlyName "Depth feathering mode"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x978
+	ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x2f0
 	// MPropertyFriendlyName "particle feathering closest distance to surface"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	CParticleCollectionFloatInput m_flFeatheringMinDist; // 0x980
+	float m_flFeatheringMinDist; // 0x2f4
 	// MPropertyFriendlyName "particle feathering farthest distance to surface"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	CParticleCollectionFloatInput m_flFeatheringMaxDist; // 0xa68
+	float m_flFeatheringMaxDist; // 0x2f8
 	// MPropertyFriendlyName "overbright factor"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flOverbrightFactor; // 0xb50
+	float m_flOverbrightFactor; // 0x2fc
 	// MPropertyFriendlyName "Apply fog of war to color"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bTintByFOW; // 0xc38
+	bool m_bTintByFOW; // 0x300
 	// MPropertyFriendlyName "Apply fog to particle"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bFogParticles; // 0xc39
+	bool m_bFogParticles; // 0x301
 	// MPropertyFriendlyName "Apply global light to color"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bTintByGlobalLight; // 0xc3a
+	bool m_bTintByGlobalLight; // 0x302
 	// MPropertyFriendlyName "texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
 	// MDefaultString
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0xc40
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x308
 	// MPropertyFriendlyName "Apply motion vectors"
 	// MDefaultString
 	// MPropertyGroupName "Motion vectors"
-	bool m_bMotionVectors; // 0xc48
+	bool m_bMotionVectors; // 0x310
 	// MPropertyFriendlyName "motion vectors texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
 	// MPropertyGroupName "Motion vectors"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hMotionVectorsTexture; // 0xc50
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hMotionVectorsTexture; // 0x318
 	// MPropertyFriendlyName "blend sequence 0 animation frames"
 	// MDefaultString
-	bool m_bBlendFramesSeq0; // 0xc58
+	bool m_bBlendFramesSeq0; // 0x320
+	// MPropertyFriendlyName "right eye first seq offset"
+	// MDefaultString
+	int32_t m_nFirstSequenceOffsetForRightEye; // 0x324
 	// MPropertyFriendlyName "HSV Shift Control Point"
 	// MDefaultString
-	int32_t m_nHSVShiftControlPoint; // 0xc5c
+	int32_t m_nHSVShiftControlPoint; // 0x328
 };
 
 // Aligment: 13
-// Size: 480
+// Size: 416
 class C_INIT_RemapCPtoVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMin; // 0x188
+	Vector m_vInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMax; // 0x194
+	Vector m_vInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMin; // 0x1a0
+	Vector m_vOutputMin; // 0x160
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMax; // 0x1ac
+	Vector m_vOutputMax; // 0x16c
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x1b8
+	float m_flStartTime; // 0x178
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1bc
+	float m_flEndTime; // 0x17c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1c0
+	ParticleSetMethod_t m_nSetMethod; // 0x180
 	// MPropertyFriendlyName "offset position"
 	// MDefaultString
-	bool m_bOffset; // 0x1c4
+	bool m_bOffset; // 0x184
 	// MPropertyFriendlyName "accelerate position"
 	// MDefaultString
-	bool m_bAccelerate; // 0x1c5
+	bool m_bAccelerate; // 0x185
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x1c8
+	int32_t m_nLocalSpaceCP; // 0x188
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x1cc
+	float m_flRemapBias; // 0x18c
 };
 
 // Aligment: 11
-// Size: 448
+// Size: 384
 class C_OP_TeleportBeam : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Position Control Point"
 	// MDefaultString
-	int32_t m_nCPPosition; // 0x180
+	int32_t m_nCPPosition; // 0x140
 	// MPropertyFriendlyName "Velocity Control Point"
 	// MDefaultString
-	int32_t m_nCPVelocity; // 0x184
+	int32_t m_nCPVelocity; // 0x144
 	// MPropertyFriendlyName "Misc Control Point"
 	// MDefaultString
-	int32_t m_nCPMisc; // 0x188
+	int32_t m_nCPMisc; // 0x148
 	// MPropertyFriendlyName "Color Control Point"
 	// MDefaultString
-	int32_t m_nCPColor; // 0x18c
+	int32_t m_nCPColor; // 0x14c
 	// MPropertyFriendlyName "Invalid Color Control Point"
 	// MDefaultString
-	int32_t m_nCPInvalidColor; // 0x190
+	int32_t m_nCPInvalidColor; // 0x150
 	// MPropertyFriendlyName "Extra Arc Data Point"
 	// MDefaultString
-	int32_t m_nCPExtraArcData; // 0x194
+	int32_t m_nCPExtraArcData; // 0x154
 	// MPropertyFriendlyName "Gravity"
 	// MDefaultString
-	Vector m_vGravity; // 0x198
+	Vector m_vGravity; // 0x158
 	// MPropertyFriendlyName "Arc Duration Maximum"
 	// MDefaultString
-	float m_flArcMaxDuration; // 0x1a4
+	float m_flArcMaxDuration; // 0x164
 	// MPropertyFriendlyName "Segment Break"
 	// MDefaultString
-	float m_flSegmentBreak; // 0x1a8
+	float m_flSegmentBreak; // 0x168
 	// MPropertyFriendlyName "Arc Speed"
 	// MDefaultString
-	float m_flArcSpeed; // 0x1ac
+	float m_flArcSpeed; // 0x16c
 	// MPropertyFriendlyName "Alpha"
 	// MDefaultString
-	float m_flAlpha; // 0x1b0
+	float m_flAlpha; // 0x170
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_TwistAroundAxis : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "amount of force"
 	// MDefaultString
-	float m_fForceAmount; // 0x180
+	float m_fForceAmount; // 0x140
 	// MPropertyFriendlyName "twist axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_TwistAxis; // 0x184
+	Vector m_TwistAxis; // 0x144
 	// MPropertyFriendlyName "object local space axis 0/1"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x190
+	bool m_bLocalSpace; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x194
+	int32_t m_nControlPointNumber; // 0x154
 };
 
 // Aligment: 6
-// Size: 3008
+// Size: 2304
 class C_INIT_VelocityRandom : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMin; // 0x188
+	CPerParticleFloatInput m_fSpeedMin; // 0x148
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMax; // 0x270
+	CPerParticleFloatInput m_fSpeedMax; // 0x1f0
 	// MPropertyFriendlyName "speed in local coordinate system min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x358
+	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x298
 	// MPropertyFriendlyName "speed in local coordinate system max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x788
+	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x5c8
 	// MPropertyFriendlyName "Ignore delta time (RenderTrails)"
 	// MDefaultString
-	bool m_bIgnoreDT; // 0xbb8
+	bool m_bIgnoreDT; // 0x8f8
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_PlaneCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point for point on plane"
 	// MDefaultString
-	int32_t m_nPlaneControlPoint; // 0x180
+	int32_t m_nPlaneControlPoint; // 0x140
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPlaneDirection; // 0x184
+	Vector m_vecPlaneDirection; // 0x144
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x190
+	bool m_bLocalSpace; // 0x150
 	// MPropertyFriendlyName "cull plane offset"
 	// MDefaultString
-	float m_flPlaneOffset; // 0x194
+	float m_flPlaneOffset; // 0x154
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelSequence : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_RemapCPtoVelocity : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapScalarOnceTimed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "remap time proportional"
 	// MDefaultString
-	bool m_bProportional; // 0x180
+	bool m_bProportional; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "remap time"
 	// MDefaultString
-	float m_flRemapTime; // 0x19c
+	float m_flRemapTime; // 0x15c
 };
 
 // Aligment: 5
@@ -16624,7 +19745,6 @@ public:
 struct ParticleChildrenInfo_t
 {
 public:
-	// MPropertySuppressField
 	// MDefaultString
 	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_ChildRef; // 0x0
 	// MPropertyFriendlyName "delay"
@@ -16633,7 +19753,7 @@ public:
 	// MPropertyFriendlyName "end cap effect"
 	// MDefaultString
 	bool m_bEndCap; // 0xe
-	// MPropertySuppressField
+	// MPropertyFriendlyName "disable child"
 	// MDefaultString
 	bool m_bDisableChild; // 0xf
 	// MPropertyFriendlyName "disable at detail levels below"
@@ -16642,122 +19762,202 @@ public:
 };
 
 // Aligment: 11
-// Size: 4336
+// Size: 3312
 class C_INIT_InitialVelocityNoise : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "absolute value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecAbsVal; // 0x180
+	Vector m_vecAbsVal; // 0x140
 	// MPropertyFriendlyName "invert abs value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecAbsValInv; // 0x18c
+	Vector m_vecAbsValInv; // 0x14c
 	// MPropertyFriendlyName "spatial coordinate offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecOffsetLoc; // 0x198
+	CPerParticleVecInput m_vecOffsetLoc; // 0x158
 	// MPropertyFriendlyName "time coordinate offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x5c8
+	CPerParticleFloatInput m_flOffset; // 0x488
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CPerParticleVecInput m_vecOutputMin; // 0x6b0
+	CPerParticleVecInput m_vecOutputMin; // 0x530
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CPerParticleVecInput m_vecOutputMax; // 0xae0
+	CPerParticleVecInput m_vecOutputMax; // 0x860
 	// MPropertyFriendlyName "time noise coordinate scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flNoiseScale; // 0xf10
+	CPerParticleFloatInput m_flNoiseScale; // 0xb90
 	// MPropertyFriendlyName "spatial noise coordinate scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flNoiseScaleLoc; // 0xff8
+	CPerParticleFloatInput m_flNoiseScaleLoc; // 0xc38
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x10e0
+	int32_t m_nControlPointNumber; // 0xce0
 	// MPropertyFriendlyName "apply velocity in local space (0/1)"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x10e4
+	bool m_bLocalSpace; // 0xce4
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x10e5
+	bool m_bIgnoreDt; // 0xce5
+};
+
+// Aligment: 3
+// Size: 352
+class C_INIT_RandomVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecMax; // 0x14c
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x158
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_ConstrainDistance : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x184
+	float m_fMaxDistance; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "distance scale control point (X/Y = Min/Max)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x18c
+	int32_t m_nScaleCP; // 0x14c
 	// MPropertyFriendlyName "offset of center"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_CenterOffset; // 0x190
+	Vector m_CenterOffset; // 0x150
 	// MPropertyFriendlyName "global center point"
 	// MDefaultString
-	bool m_bGlobalCenter; // 0x19c
+	bool m_bGlobalCenter; // 0x15c
 };
 
 // Aligment: 6
-// Size: 544
+// Size: 480
 class C_INIT_RtEnvCull : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "test direction"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTestDir; // 0x180
+	Vector m_vecTestDir; // 0x140
 	// MPropertyFriendlyName "cull normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTestNormal; // 0x18c
+	Vector m_vecTestNormal; // 0x14c
 	// MPropertyFriendlyName "use velocity for test direction"
 	// MDefaultString
-	bool m_bUseVelocity; // 0x198
+	bool m_bUseVelocity; // 0x158
 	// MPropertyFriendlyName "cull on miss"
 	// MDefaultString
-	bool m_bCullOnMiss; // 0x199
+	bool m_bCullOnMiss; // 0x159
 	// MPropertyFriendlyName "velocity test adjust lifespan"
 	// MDefaultString
-	bool m_bLifeAdjust; // 0x19a
+	bool m_bLifeAdjust; // 0x15a
 	// MPropertyFriendlyName "ray trace environment name"
 	// MDefaultString
-	char[128] m_RtEnvName; // 0x19b
+	char[128] m_RtEnvName; // 0x15b
+};
+
+// Aligment: 18
+// Size: 416
+class C_INIT_StatusEffect : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "D_DETAIL_2"
+	// MDefaultString
+	Detail2Combo_t m_nDetail2Combo; // 0x140
+	// MPropertyFriendlyName "$DETAIL2ROTATION"
+	// MDefaultString
+	float m_flDetail2Rotation; // 0x144
+	// MPropertyFriendlyName "$DETAIL2SCALE"
+	// MDefaultString
+	float m_flDetail2Scale; // 0x148
+	// MPropertyFriendlyName "$DETAIL2BLENDFACTOR"
+	// MDefaultString
+	float m_flDetail2BlendFactor; // 0x14c
+	// MPropertyFriendlyName "$COLORWARPINTENSITY"
+	// MDefaultString
+	float m_flColorWarpIntensity; // 0x150
+	// MPropertyFriendlyName "$DIFFUSEWARPBLENDTOFULL"
+	// MDefaultString
+	float m_flDiffuseWarpBlendToFull; // 0x154
+	// MPropertyFriendlyName "$ENVMAPINTENSITY"
+	// MDefaultString
+	float m_flEnvMapIntensity; // 0x158
+	// MPropertyFriendlyName "$AMBIENTSCALE"
+	// MDefaultString
+	float m_flAmbientScale; // 0x15c
+	// MPropertyFriendlyName "$SPECULARCOLOR"
+	// MDefaultString
+	Color m_specularColor; // 0x160
+	// MPropertyFriendlyName "$SPECULARSCALE"
+	// MDefaultString
+	float m_flSpecularScale; // 0x164
+	// MPropertyFriendlyName "$SPECULAREXPONENT"
+	// MDefaultString
+	float m_flSpecularExponent; // 0x168
+	// MPropertyFriendlyName "$SPECULAREXPONENTBLENDTOFULL"
+	// MDefaultString
+	float m_flSpecularExponentBlendToFull; // 0x16c
+	// MPropertyFriendlyName "$SPECULARBLENDTOFULL"
+	// MDefaultString
+	float m_flSpecularBlendToFull; // 0x170
+	// MPropertyFriendlyName "$RIMLIGHTCOLOR"
+	// MDefaultString
+	Color m_rimLightColor; // 0x174
+	// MPropertyFriendlyName "$RIMLIGHTSCALE"
+	// MDefaultString
+	float m_flRimLightScale; // 0x178
+	// MPropertyFriendlyName "$REFLECTIONSTINTBYBASEBLENDTONONE"
+	// MDefaultString
+	float m_flReflectionsTintByBaseBlendToNone; // 0x17c
+	// MPropertyFriendlyName "$METALNESSBLENDTOFULL"
+	// MDefaultString
+	float m_flMetalnessBlendToFull; // 0x180
+	// MPropertyFriendlyName "$SELFILLUMBLENDTOFULL"
+	// MDefaultString
+	float m_flSelfIllumBlendToFull; // 0x184
 };
 
 // Aligment: 5
-// Size: 448
+// Size: 384
 class C_OP_OscillateScalarSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "oscillation frequency"
 	// MDefaultString
-	float m_Frequency; // 0x184
+	float m_Frequency; // 0x144
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x188
+	ParticleAttributeIndex_t m_nField; // 0x148
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x18c
+	float m_flOscMult; // 0x14c
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x190
+	float m_flOscAdd; // 0x150
 };
 
 // Aligment: 2
@@ -16770,59 +19970,59 @@ public:
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_PointVectorAtNextParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x188
+	CPerParticleFloatInput m_flInterpolation; // 0x148
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapCPVelocityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x18c
+	bool m_bNormalize; // 0x14c
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointsToParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x18c
+	int32_t m_nFirstSourcePoint; // 0x14c
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x190
+	bool m_bSetOrientation; // 0x150
 };
 
 // Aligment: 18
@@ -16905,213 +20105,213 @@ public:
 };
 
 // Aligment: 12
-// Size: 768
+// Size: 704
 class C_OP_RenderSound : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration scale"
 	// MDefaultString
-	float m_flDurationScale; // 0x1d0
+	float m_flDurationScale; // 0x190
 	// MPropertyFriendlyName "decibel level scale"
 	// MDefaultString
-	float m_flSndLvlScale; // 0x1d4
+	float m_flSndLvlScale; // 0x194
 	// MPropertyFriendlyName "pitch scale"
 	// MDefaultString
-	float m_flPitchScale; // 0x1d8
+	float m_flPitchScale; // 0x198
 	// MPropertyFriendlyName "volume scale"
 	// MDefaultString
-	float m_flVolumeScale; // 0x1dc
+	float m_flVolumeScale; // 0x19c
 	// MPropertyFriendlyName "decibel level field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSndLvlField; // 0x1e0
+	ParticleAttributeIndex_t m_nSndLvlField; // 0x1a0
 	// MPropertyFriendlyName "duration field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDurationField; // 0x1e4
+	ParticleAttributeIndex_t m_nDurationField; // 0x1a4
 	// MPropertyFriendlyName "pitch field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nPitchField; // 0x1e8
+	ParticleAttributeIndex_t m_nPitchField; // 0x1a8
 	// MPropertyFriendlyName "volume field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nVolumeField; // 0x1ec
+	ParticleAttributeIndex_t m_nVolumeField; // 0x1ac
 	// MPropertyFriendlyName "sound channel"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "sound_channel"
-	int32_t m_nChannel; // 0x1f0
+	int32_t m_nChannel; // 0x1b0
 	// MPropertyFriendlyName "sound control point number"
 	// MDefaultString
-	int32_t m_nCPReference; // 0x1f4
+	int32_t m_nCPReference; // 0x1b4
 	// MPropertyFriendlyName "sound"
 	// MDefaultString
 	// MPropertyAttributeEditor "SoundPicker()"
-	char[256] m_pszSoundName; // 0x1f8
+	char[256] m_pszSoundName; // 0x1b8
 	// MPropertyFriendlyName "suppress stop event"
-	bool m_bSuppressStopSoundEvent; // 0x2f8
+	bool m_bSuppressStopSoundEvent; // 0x2b8
 };
 
 // Aligment: 37
-// Size: 5600
+// Size: 2160
 class C_OP_RenderRopes : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "enable fading and clamping"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	bool m_bEnableFadingAndClamping; // 0xca0
+	bool m_bEnableFadingAndClamping; // 0x360
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xca4
+	float m_flMinSize; // 0x364
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xca8
+	float m_flMaxSize; // 0x368
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flStartFadeSize; // 0xcac
+	float m_flStartFadeSize; // 0x36c
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flEndFadeSize; // 0xcb0
+	float m_flEndFadeSize; // 0x370
 	// MPropertyFriendlyName "amount to taper the width of the trail end by"
 	// MDefaultString
-	float m_flRadiusTaper; // 0xcb4
+	float m_flRadiusTaper; // 0x374
 	// MPropertyFriendlyName "minium number of quads per render segment"
 	// MDefaultString
-	int32_t m_nMinTesselation; // 0xcb8
+	int32_t m_nMinTesselation; // 0x378
 	// MPropertyFriendlyName "maximum number of quads per render segment"
 	// MDefaultString
-	int32_t m_nMaxTesselation; // 0xcbc
+	int32_t m_nMaxTesselation; // 0x37c
 	// MPropertyFriendlyName "tesselation resolution scale factor"
 	// MDefaultString
-	float m_flTessScale; // 0xcc0
+	float m_flTessScale; // 0x380
 	// MPropertyFriendlyName "texture V World Size"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVWorldSize; // 0xcc8
+	float m_flTextureVWorldSize; // 0x384
 	// MPropertyFriendlyName "texture V Scroll Rate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVScrollRate; // 0xdb0
+	float m_flTextureVScrollRate; // 0x388
 	// MPropertyFriendlyName "texture V Offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVOffset; // 0xe98
+	float m_flTextureVOffset; // 0x38c
 	// MPropertyFriendlyName "texture V Params CP"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nTextureVParamsCP; // 0xf80
+	int32_t m_nTextureVParamsCP; // 0x390
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureScaleU; // 0xf84
+	float m_flFinalTextureScaleU; // 0x394
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureScaleV; // 0xf88
+	float m_flFinalTextureScaleV; // 0x398
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureOffsetU; // 0xf8c
+	float m_flFinalTextureOffsetU; // 0x39c
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureOffsetV; // 0xf90
+	float m_flFinalTextureOffsetV; // 0x3a0
 	// MPropertyFriendlyName "Clamp Non-Sheet texture V coords"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	bool m_bClampV; // 0xf94
+	bool m_bClampV; // 0x3a4
 	// MPropertyFriendlyName "scale CP start"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nScaleCP1; // 0xf98
+	int32_t m_nScaleCP1; // 0x3a8
 	// MPropertyFriendlyName "scale CP end"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nScaleCP2; // 0xf9c
+	int32_t m_nScaleCP2; // 0x3ac
 	// MPropertyFriendlyName "scale V world size by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVSizeByControlPointDistance; // 0xfa0
+	float m_flScaleVSizeByControlPointDistance; // 0x3b0
 	// MPropertyFriendlyName "scale V scroll rate by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVScrollByControlPointDistance; // 0xfa4
+	float m_flScaleVScrollByControlPointDistance; // 0x3b4
 	// MPropertyFriendlyName "scale V offset by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVOffsetByControlPointDistance; // 0xfa8
+	float m_flScaleVOffsetByControlPointDistance; // 0x3b8
 	// MPropertyFriendlyName "Use scalar attribute for texture coordinate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	bool m_bUseScalarForTextureCoordinate; // 0xfad
+	bool m_bUseScalarForTextureCoordinate; // 0x3bd
 	// MPropertyFriendlyName "scalar to use for texture coordinate"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
 	// MPropertyGroupName "Texture Coordinates"
-	ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0xfb0
+	ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x3c0
 	// MPropertyFriendlyName "scale value to map attribute to texture coordinate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScalarAttributeTextureCoordScale; // 0xfb4
+	float m_flScalarAttributeTextureCoordScale; // 0x3c4
 	// MPropertyFriendlyName "orientation_type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nOrientationType; // 0xfb8
+	int32_t m_nOrientationType; // 0x3c8
 	// MPropertyFriendlyName "attribute to use for normal"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0xfbc
+	ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x3cc
 	// MPropertyFriendlyName "draw as opaque"
 	// MDefaultString
-	bool m_bDrawAsOpaque; // 0xfc0
+	bool m_bDrawAsOpaque; // 0x3d0
 	// MPropertyFriendlyName "generate normals for cylinder"
 	// MDefaultString
-	bool m_bGenerateNormals; // 0xfc1
+	bool m_bGenerateNormals; // 0x3d1
 	// MPropertyFriendlyName "reverse point order"
 	// MDefaultString
-	bool m_bReverseOrder; // 0xfc2
+	bool m_bReverseOrder; // 0x3d2
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0xfc8
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x3d8
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x10b0
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x480
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1198
+	CParticleCollectionVecInput m_vecColorScale; // 0x528
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x15c8
+	ParticleColorBlendType_t m_nColorBlendType; // 0x858
 	// MPropertyFriendlyName "Closed loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x15cc
+	bool m_bClosedLoop; // 0x85c
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0x15d0
+	float m_flDepthBias; // 0x860
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_FadeOutSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "proportional fade out time"
 	// MDefaultString
-	float m_flFadeOutTime; // 0x180
+	float m_flFadeOutTime; // 0x140
 	// MPropertyFriendlyName "alpha field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_alpha"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionPreEmission : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -17128,100 +20328,117 @@ public:
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapSpeedtoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInControlPointNumber; // 0x180
+	int32_t m_nInControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x184
+	int32_t m_nOutControlPointNumber; // 0x144
 	// MPropertyFriendlyName "Output field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "use delta of velocity instead of constant speed"
 	// MDefaultString
-	bool m_bUseDeltaV; // 0x19c
+	bool m_bUseDeltaV; // 0x15c
 };
 
-// Aligment: 15
-// Size: 1600
+// Aligment: 14
+// Size: 1280
 class C_OP_RenderDeferredLight : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "projected texture use alpha test window"
 	// MDefaultString
-	bool m_bUseAlphaTestWindow; // 0x1d0
+	bool m_bUseAlphaTestWindow; // 0x190
 	// MPropertyFriendlyName "projected texture light"
 	// MDefaultString
-	bool m_bUseTexture; // 0x1d1
+	bool m_bUseTexture; // 0x191
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d4
+	float m_flRadiusScale; // 0x194
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	float m_flAlphaScale; // 0x1d8
+	float m_flAlphaScale; // 0x198
 	// MPropertyFriendlyName "spotlight distance"
 	// MDefaultString
-	float m_flLightDistance; // 0x1dc
+	float m_flLightDistance; // 0x19c
 	// MPropertyFriendlyName "light start falloff"
 	// MDefaultString
-	float m_flStartFalloff; // 0x1e0
+	float m_flStartFalloff; // 0x1a0
 	// MPropertyFriendlyName "spotlight distance falloff"
 	// MDefaultString
-	float m_flDistanceFalloff; // 0x1e4
+	float m_flDistanceFalloff; // 0x1a4
 	// MPropertyFriendlyName "spotlight FoV"
 	// MDefaultString
-	float m_flSpotFoV; // 0x1e8
+	float m_flSpotFoV; // 0x1a8
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1f0
+	CParticleCollectionVecInput m_vecColorScale; // 0x1b0
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x620
+	ParticleColorBlendType_t m_nColorBlendType; // 0x4e0
 	// MPropertyFriendlyName "projected texture alpha test point scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x624
+	ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x4e4
 	// MPropertyFriendlyName "projected texture alpha test range scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x628
+	ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x4e8
 	// MPropertyFriendlyName "projected texture alpha test sharpness scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x62c
+	ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x4ec
 	// MPropertyFriendlyName "texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x630
-	// MPropertyFriendlyName "HSV Shift Control Point"
-	// MDefaultString
-	int32_t m_nHSVShiftControlPoint; // 0x638
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x4f0
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_Decay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Reduce rope popping on decay"
 	// MDefaultString
-	bool m_bRopeDecay; // 0x180
+	bool m_bRopeDecay; // 0x140
+};
+
+// Aligment: 1
+// Size: 20
+class TierChancePerHeroRank
+{
+public:
+	float32[5] flHeroTierChance; // 0x0
+};
+
+// Aligment: 5
+// Size: 20
+struct Relationship_t
+{
+public:
+	CHandle< CBaseEntity > entity; // 0x0
+	Class_T classType; // 0x4
+	int32_t faction; // 0x8
+	Disposition_t disposition; // 0xc
+	int32_t priority; // 0x10
 };
 
 // Aligment: 2
@@ -17233,6 +20450,29 @@ public:
 	float m_flRadius; // 0x84
 };
 
+// Aligment: 4
+// Size: 40
+class CDACShopUnitState
+{
+public:
+	ConstDACUnitDefPtrAlias m_pUnitDef; // 0x0
+	int32_t m_nGoldCost; // 0x8
+	int32_t m_nScore; // 0xc
+	CUtlVectorFixed< EUnitKeyword > m_vecKeywords; // 0x10
+};
+
+// Aligment: 5
+// Size: 176
+class CDAC_GM_Streetfight : public CDAC_GM_Turbo, CDAC_GM_Normal, CDACGameMode
+{
+public:
+	UnderlordID_t m_unUnderlord; // 0x98
+	PlayerSlot_t m_unPlayerSlot; // 0x99
+	PlayerSlot_t m_unBotSlot; // 0x9a
+	DACStreetfightID_t m_unStreetfightID; // 0x9c
+	uint32_t m_unPrestigeLevel; // 0xa0
+};
+
 // Aligment: 0
 // Size: 160
 class CNavVolumeAll : public CNavVolumeVector, CNavVolume
@@ -17296,6 +20536,34 @@ public:
 	float fxTime; // 0x20
 };
 
+// Aligment: 0
+// Size: 8
+class IRagdoll
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 44
+class CDACTurboShopOfferingState
+{
+public:
+	CUtlVectorFixed< EUnitKeyword > m_vecKeywords; // 0x0
+	CUtlVectorFixed< int32 > m_vecUnits; // 0x14
+};
+
+// Aligment: 4
+// Size: 48
+class CDAC_GM_Sandbox : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x10
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	CDACPlayerState* m_pEnemyPlayer; // 0x28
+};
+
 // Aligment: 14
 // Size: 64
 struct fogplayerparams_t
@@ -17321,7 +20589,7 @@ public:
 };
 
 // Aligment: 6
-// Size: 144
+// Size: 136
 struct sky3dparams_t
 {
 public:
@@ -17344,7 +20612,7 @@ public:
 	fogparams_t fog; // 0x20
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlStringToken m_nWorldGroupID; // 0x88
+	CUtlStringToken m_nWorldGroupID; // 0x80
 };
 
 // Aligment: 5
@@ -17359,6 +20627,14 @@ public:
 	CBaseAnimatingController* m_pOwner; // 0x1d0
 };
 
+// Aligment: 0
+// Size: 100
+struct dynpitchvol_t : public dynpitchvol_base_t
+{
+public:
+// <no members described>
+};
+
 // Aligment: 2
 // Size: 192
 class CNavVolumeBreadthFirstSearch : public CNavVolumeCalculatedVector, CNavVolume
@@ -17369,13 +20645,84 @@ public:
 };
 
 // Aligment: 0
-// Size: 40
-class CJiggleBones
+// Size: 8
+class IDamageHandler
 {
 public:
 // <no members described>
 };
 
+// Aligment: 42
+// Size: 144
+class CDAC_AttackRecord
+{
+public:
+	CHandle< CBaseEntity > m_hSource; // 0x8
+	CHandle< CBaseEntity > m_hInflictor; // 0xc
+	CHandle< CBaseEntity > m_hTarget; // 0x10
+	CHandle< CBaseEntity > m_hProjectileSource; // 0x14
+	float m_flDamage; // 0x18
+	float m_flOriginalDamage; // 0x1c
+	float m_flDamagePhysical; // 0x20
+	float m_flDamagePhysical_IllusionDisplay; // 0x24
+	float m_flDamageMagical; // 0x28
+	float m_flDamageComposite; // 0x2c
+	float m_flDamagePure; // 0x30
+	int16_t m_iRecord; // 0x34
+	int32_t m_iDamageCategory; // 0x38
+	int32_t m_iFailType; // 0x3c
+	int32_t m_iDamageType; // 0x40
+	int32_t m_iFlags; // 0x44
+	bitfield:1 m_bAttack; // 0x0
+	bitfield:1 m_bRangedAttack; // 0x0
+	bitfield:1 m_bDirectionalRangedAttack; // 0x0
+	bitfield:1 m_bFakeAttack; // 0x0
+	bitfield:1 m_bNeverMiss; // 0x0
+	bitfield:1 m_bLethalAttack; // 0x0
+	bitfield:1 m_bTriggeredAttack; // 0x0
+	bitfield:1 m_bNoCooldown; // 0x0
+	bitfield:1 m_bProcessProcs; // 0x0
+	bitfield:1 m_bUseProjectile; // 0x0
+	bitfield:1 m_bUseCastAttackOrb; // 0x0
+	bitfield:1 m_bAutoCastAttack; // 0x0
+	bitfield:1 m_bIgnoreArmor; // 0x0
+	bitfield:1 m_bIgnoreObstructions; // 0x0
+	bitfield:1 m_bSuppressDamageSounds; // 0x0
+	bitfield:1 m_bTriggerSavageAlliance; // 0x0
+	int32_t m_nBashSource; // 0x4c
+	float m_flAttackHeight; // 0x50
+	float m_flCriticalBonus; // 0x54
+	float m_flCriticalDamage; // 0x58
+	float m_flCriticalDisplay; // 0x5c
+	int32_t m_iProjectileSpeed; // 0x60
+	Vector m_vForceDirectionOverride; // 0x64
+	Vector m_vTargetLoc; // 0x70
+	Vector m_vBlockLoc; // 0x7c
+	int32_t m_nGlobalMeterEntity; // 0x88
+};
+
+// Aligment: 5
+// Size: 592
+class CResponseQueue::CDeferredResponse
+{
+public:
+	CResponseCriteriaSet m_contexts; // 0x10
+	float m_fDispatchTime; // 0x48
+	CHandle< CBaseEntity > m_hIssuer; // 0x4c
+	CRR_Response m_response; // 0x58
+	bool m_bResponseValid; // 0x248
+};
+
+// Aligment: 3
+// Size: 48
+class CDAC_NPC_Incident
+{
+public:
+	float m_flStartTime; // 0xc
+	float m_flFinishTime; // 0x10
+	float m_flMagnitude; // 0x28
+};
+
 // Aligment: 1
 // Size: 80
 class CNetworkedIKContext
@@ -17406,8 +20753,16 @@ public:
 	bool isActive; // 0x14
 };
 
-// Aligment: 4
-// Size: 224
+// Aligment: 0
+// Size: 144
+class CSingleplayRules : public CGameRules
+{
+public:
+// <no members described>
+};
+
+// Aligment: 28
+// Size: 552
 class CPlayerLocalData
 {
 public:
@@ -17420,9 +20775,261 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	uint8[24] m_chAreaPortalBits; // 0x38
+	int32_t m_nStepside; // 0x50
+	int32_t m_nOldButtons; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	sky3dparams_t m_skybox3d; // 0x50
+	// MNetworkBitCount "12"
+	uint32_t m_iHideHUD; // 0x58
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFOVRate; // 0x5c
+	Vector m_vecOverViewpoint; // 0x60
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucked; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucking; // 0x6d
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInDuckJump; // 0x6e
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkPriority "64"
+	uint32_t m_nDuckTimeMsecs; // 0x70
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nDuckJumpTimeMsecs; // 0x74
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nJumpTimeMsecs; // 0x78
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	// MNetworkMinValue "-4096"
+	// MNetworkMaxValue "4096"
+	float m_flFallVelocity; // 0x7c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngle; // 0x88
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngleVel; // 0x94
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDrawViewmodel; // 0xa0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWearingSuit; // 0xa1
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoisoned; // 0xa2
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	// MNetworkEncodeFlags
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "128"
+	float m_flStepSize; // 0xa4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowAutoMovement; // 0xa8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bSlowMovement; // 0xa9
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAutoAimTarget; // 0xaa
+	// MNetworkEnable
+	// MNetworkEnable
+	sky3dparams_t m_skybox3d; // 0xb0
+	// MNetworkEnable
+	// MNetworkEnable
+	audioparams_t m_audio; // 0x138
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CPostProcessingVolume > > m_PostProcessingVolumes; // 0x1b0
+	fogparams_t m_fog; // 0x1c8
+};
+
+// Aligment: 11
+// Size: 224
+class CInteractionManager
+{
+public:
+	interactions_t m_nActiveInteraction; // 0x8
+	matrix3x4_t m_matHoldTransform; // 0xc
+	CHandle< CBaseAnimating > m_hSelf; // 0x3c
+	CHandle< CBasePlayer > m_hPlayer; // 0x40
+	CHandle< CBaseAnimating > m_hInteractionTarget; // 0x44
+	matrix3x4_t m_mInteractionTransformInit; // 0x48
+	matrix3x4_t m_mInteractionTransformTarget; // 0x78
+	float m_flInteractionLerp; // 0xa8
+	bool m_bAllInteractionsDisabled; // 0xac
+	CUtlVector< prevent_interaction_t > m_vecPreventionEntities; // 0xb0
+	CUtlVector< interactions_data_t > m_vecHandInteractions; // 0xc8
+};
+
+// Aligment: 17
+// Size: 112
+struct interactions_data_t
+{
+public:
+	interactions_t m_iInteractionType; // 0x8
+	CUtlSymbolLarge m_pszSelfClassname; // 0x10
+	CUtlSymbolLarge m_pszOtherClassname; // 0x18
+	CUtlSymbolLarge m_pszSelfAttachmentStart; // 0x20
+	CUtlSymbolLarge m_pszSelfAttachmentStartAlternate; // 0x28
+	CUtlSymbolLarge m_pszSelfAttachmentAdvance; // 0x30
+	CUtlSymbolLarge m_pszSelfAttachmentRetreat; // 0x38
+	bool m_bSelfMustBeHeld; // 0x40
+	bool m_bReleaseSelfOnSuccess; // 0x41
+	CUtlSymbolLarge m_pszOtherAttachmentStart; // 0x48
+	CUtlSymbolLarge m_pszOtherAttachmentStartAlternate; // 0x50
+	CUtlSymbolLarge m_pszOtherAttachmentAdvance; // 0x58
+	CUtlSymbolLarge m_pszOtherAttachmentRetreat; // 0x60
+	bool m_bOtherMustBeHeld; // 0x68
+	bool m_bReleaseOtherOnSuccess; // 0x69
+	bool m_bIsInteractionsDisabled; // 0x6a
+	bool m_bIsSelfInteractionRequirementMet; // 0x6b
+};
+
+// Aligment: 7
+// Size: 104
+class CAttributeManager
+{
+public:
+	CUtlVector< CHandle< CBaseEntity > > m_Providers; // 0x8
+	CUtlVector< CHandle< CBaseEntity > > m_Receivers; // 0x20
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iReapplyProvisionParity; // 0x38
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hOuter; // 0x3c
+	bool m_bPreventLoopback; // 0x40
+	// MNetworkEnable
+	// MNetworkEnable
+	attributeprovidertypes_t m_ProviderType; // 0x44
+	CUtlVector< CAttributeManager::cached_attribute_float_t > m_CachedResults; // 0x48
+};
+
+// Aligment: 54
+// Size: 1384
+class CDACPlayerState
+{
+public:
+	PlayerSlot_t m_unPlayerSlot; // 0x0
+	EDACLobbyTeam m_eLobbyTeam; // 0x4
+	DACBoardBuddyState m_boardBuddyState; // 0x8
+	int32_t m_nGold; // 0x58
+	bool m_bShopLocked; // 0x5c
+	bool m_bBoughtTurboBucketThisGame; // 0x5d
+	bool m_bUsedTurboBucketReroll; // 0x5e
+	bool m_bUsedItemRerollThisRound; // 0x5f
+	float m_flBrawnyKills; // 0x60
+	float m_flBrawnyKillsQueued; // 0x64
+	bool m_bPlayerAbandoned; // 0x68
+	bool m_bKickedForDisconnection; // 0x69
+	bool m_bFreeFirstReroll; // 0x6a
+	int32_t m_nRerollCost; // 0x6c
+	CUtlVector< CDACUnitState* > m_vecUnits; // 0x70
+	CUtlVectorFixed< CDACShopUnitState > m_vecShopUnits; // 0x88
+	CUtlVectorFixed< CDACTurboShopOfferingState > m_vecTurboBuckets; // 0x158
+	int32_t m_nPartyIndex; // 0x1e0
+	int32_t m_nDevNextCombatTakeDamage; // 0x1e4
+	bool m_bHumanPlayer; // 0x1e8
+	IDACPlayerBot* m_pPlayerBot; // 0x1f0
+	bool m_bIgnoreUnitCombinesOnBoard; // 0x1f8
+	int32_t m_nUnitLimitBonus; // 0x1fc
+	int32_t m_nShopCostDelta; // 0x200
+	uint32_t m_unGoldSpentInRerollsThisRound; // 0x204
+	uint32_t m_unGoldSpentInLevelsThisRound; // 0x208
+	uint32_t m_unGoldSpentInUnitsThisRound; // 0x20c
+	uint32_t m_unRerollsThisRound; // 0x210
+	uint32_t m_unDamageToUnitsThisRound; // 0x214
+	uint32_t m_unDamageToPlayersThisRound; // 0x218
+	uint32_t m_unShopGenerationID; // 0x21c
+	CUtlVector< DACItemChoiceReward > m_vecItemChoiceRewards; // 0x220
+	CUtlVectorFixed< int32 > m_vecCurrentRewardTiers; // 0x238
+	CUtlVector< item_definition_index_t > m_vecTalentsAvailable; // 0x250
+	CUtlVector< item_definition_index_t > m_vecTalentsSelected; // 0x268
+	CUtlVector< CDAC_Talent* > m_vecTalents; // 0x280
+	uint32_t m_unUnderlordBuildId; // 0x298
+	CDACHashMapLarge< PlayerSlot_t, DACWinLossRecord > m_mapPlayerSlotToWinLossRecord; // 0x2a0
+	int32_t m_nFinalPlace; // 0x364
+	bool m_bSentPostMatchStats; // 0x368
+	bool m_bQueuedKillForLeftLobby; // 0x369
+	bool m_bCanSelectUnderlord; // 0x36a
+	CUtlVectorFixed< CDACUnderlordPickerOfferingState > m_vecUnderlordOfferings; // 0x36c
+	DACUnderdlordLoadout m_underlordLoadout; // 0x390
+	uint32_t m_unGoldQueued; // 0x440
+	int32_t m_nMMRChangeOverallMin; // 0x500
+	int32_t m_nMMRChangeOverallMax; // 0x504
+	int32_t m_nMMRChangeCurrentMin; // 0x508
+	int32_t m_nMMRChangeCurrentMax; // 0x50c
+	int32_t m_nTeamMMRChangeOverallMin; // 0x510
+	int32_t m_nTeamMMRChangeOverallMax; // 0x514
+	int32_t m_nTeamMMRChangeCurrentMin; // 0x518
+	int32_t m_nTeamMMRChangeCurrentMax; // 0x51c
+	int32_t m_nRollsThisTurn; // 0x520
+};
+
+// Aligment: 3
+// Size: 32
+class sGlaiveInfo
+{
+public:
+	int32_t iAttackIndex; // 0x0
+	int32_t iBounceCount; // 0x4
+	CUtlVector< CHandle< CBaseEntity > > hAlreadyHitList; // 0x8
+};
+
+// Aligment: 6
+// Size: 12
+class CDAC_BuffParticle
+{
+public:
+	ParticleIndex_t m_iIndex; // 0x0
+	int32_t m_iPriority; // 0x4
+	bool m_bDestroyImmediatly; // 0x8
+	bool m_bStatusEffect; // 0x9
+	bool m_bHeroEffect; // 0xa
+	bool m_bOverheadEffectOffset; // 0xb
+};
+
+// Aligment: 4
+// Size: 40
+class CDAC_ML_Bot : public IDACPlayerBot
+{
+public:
+	PlayerSlot_t m_unPlayerSlot; // 0x10
+	UnderlordID_t m_unUnderlord; // 0x11
+	CUtlString m_strPersonaName; // 0x18
+	bool m_bPreviousVersion; // 0x20
+};
+
+// Aligment: 1
+// Size: 1
+struct UnderlordID_t
+{
+public:
+	uint8_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 120
+class CAI_ExpresserWithFollowup : public CAI_Expresser
+{
+public:
+	ResponseFollowup* m_pPostponedFollowup; // 0x68
 };
 
 // Aligment: 1
@@ -17433,24 +21040,112 @@ public:
 	int32_t m_Data; // 0x0
 };
 
-// Aligment: 19
-// Size: 1160
+// Aligment: 2
+// Size: 8
+struct DACBoardPosition_t
+{
+public:
+	int32_t x; // 0x0
+	int32_t y; // 0x4
+};
+
+// Aligment: 58
+// Size: 680
+class CDAC_PB_Bot2 : public IDACPlayerBot
+{
+public:
+	PlayerSlot_t m_unPlayerSlot; // 0x10
+	CUtlString m_strPersonaName; // 0x18
+	bool m_bCanAdjustPersonality; // 0x20
+	bool m_bAllowBuySell; // 0x21
+	bool m_bAllowUnderlord; // 0x22
+	int32_t m_nRoundNumber; // 0x24
+	int32_t m_nLastPersonalityConsideredRound; // 0x28
+	float m_flBoardNoiseMagnitude; // 0x2c
+	float m_flBoardHorizontalPreference; // 0x30
+	float m_flBoardVerticalPreference; // 0x34
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Melee; // 0x38
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Ranged; // 0x50
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Assassin; // 0x68
+	CUtlVector< CDACUnitState* > m_vecKnights; // 0xd8
+	bool[56] m_bUnitKeywords; // 0xf0
+	int32_t m_nLowestPowerLevel; // 0x128
+	int32_t m_nPowerLevelTotal; // 0x12c
+	int32_t m_nBoardUnits; // 0x130
+	int32_t m_nBenchUnits; // 0x134
+	int32_t m_nFallbacksDesired; // 0x138
+	int32_t m_nMaxUnitCapToBuyFor; // 0x13c
+	bool[4][8] m_bSetBoardOccupied; // 0x140
+	CDACUnitState* m_pLowestPLUnit; // 0x160
+	CUtlVector< int32 > m_vecBoardUnits; // 0x168
+	CUtlVector< int32 > m_vecBenchUnits; // 0x180
+	CUtlVector< int32 > m_vecGoingToL3; // 0x198
+	bool m_bNeedsReposition; // 0x1b0
+	bool m_bNeedsItemAssign; // 0x1b1
+	bool m_bNeedsUnitRemap; // 0x1b2
+	bool m_bAllowCombines; // 0x1b3
+	bool m_bAllowLevel3; // 0x1b4
+	bool m_bFollowBoughtSynergies; // 0x1b5
+	bool m_bSellOld; // 0x1b6
+	bool m_bKeepCombineds; // 0x1b7
+	int32_t m_nMaxLevelToBuy; // 0x1b8
+	int32_t m_nMaxTier; // 0x1bc
+	bool m_bAllowRerolls; // 0x1c0
+	bool m_bCareAboutDupes; // 0x1c1
+	bool m_bPersonality; // 0x1c2
+	int32_t m_nMaxTierForLevel3; // 0x1c4
+	int32_t m_nMaxGoingToLevel3; // 0x1c8
+	UnderlordID_t m_unUnderlord; // 0x1cc
+	CUtlVector< EUnitKeyword > m_vecKeywords; // 0x1d0
+	CUtlVector< int32 > m_vecUnitIDs; // 0x1e8
+	CUtlVector< CUtlString > m_vecTalents; // 0x200
+	int32_t m_nPersonality; // 0x218
+	CUtlVector< CUtlPair< DACAbilityID_t, float32 > > m_vecItemOffsets; // 0x220
+	int32_t m_nUnitsBoughtThisRound; // 0x238
+	int32_t m_nUnitsCombinedThisRound; // 0x23c
+	int32_t m_nRoundsSinceBoughtUnit; // 0x240
+	bool m_bSentGG; // 0x244
+	int32_t m_nLastHealth; // 0x248
+	bool m_bSentDuosRequest; // 0x24c
+	CUtlVector< int32 > m_vecTeammateRequestedUnits; // 0x250
+	CUtlVector< int32 > m_vecOurRequestedUnits; // 0x268
+	CUtlVector< EUnitKeyword > m_vecTeammateRequestedKeywords; // 0x280
+	double m_flLastThanks; // 0x298
+	int32_t m_nCheatCounter; // 0x2a0
+public:
+	static int32_t &Get_sm_nLastPersonality1() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CDAC_PB_Bot2")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_sm_nLastPersonality2() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CDAC_PB_Bot2")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 6
+// Size: 88
+class CDAC_GM_TechPrototypeA : public CDACGameMode
+{
+public:
+	int32_t m_nRoundsRemaining; // 0x10
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x14
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	IDACPlayerBot* m_pEnemyBot; // 0x28
+	CDACPlayerState* m_pEnemyPlayer; // 0x30
+};
+
+// Aligment: 17
+// Size: 824
 class CBaseAnimatingController : public CSkeletonAnimationController
 {
 public:
 	// MNetworkEnable
 	// MNetworkChangeCallback "baseAnimBaseLayerChanged"
 	CNetworkedSequenceOperation m_baseLayer; // 0x18
-	// MNetworkEnable
-	CAnimGraphNetworkedVariables m_animGraphNetworkedVars; // 0x58
 	// MNetworkDisable
-	bool m_bSequenceFinished; // 0x190
+	bool m_bSequenceFinished; // 0x58
 	// MNetworkDisable
-	float m_flGroundSpeed; // 0x194
+	float m_flGroundSpeed; // 0x5c
 	// MNetworkDisable
-	float m_flLastEventCycle; // 0x198
+	float m_flLastEventCycle; // 0x60
 	// MNetworkDisable
-	float m_flLastEventAnimTime; // 0x19c
+	float m_flLastEventAnimTime; // 0x64
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "-4"
@@ -17458,47 +21153,43 @@ public:
 	// MNetworkEncodeFlags
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "playbackRateChanged"
-	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x1a0
+	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x68
 	// MNetworkDisable
-	float m_flPrevAnimTime; // 0x1b8
+	float m_flPrevAnimTime; // 0x80
 	// MNetworkEnable
 	// MNetworkBitCount "11"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkUserGroup "m_flPoseParameter"
 	// MNetworkChangeCallback "poseParametersChanged"
-	float32[24] m_flPoseParameter; // 0x1bc
+	float32[24] m_flPoseParameter; // 0x84
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "clientSideAnimationChanged"
-	bool m_bClientSideAnimation; // 0x21c
+	bool m_bClientSideAnimation; // 0xe4
 	// MNetworkDisable
-	bool m_bNetworkedAnimationInputsChanged; // 0x21d
+	bool m_bNetworkedAnimationInputsChanged; // 0xe5
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "clientSideAnimCycleReset"
-	int32_t m_nNewSequenceParity; // 0x220
+	int32_t m_nNewSequenceParity; // 0xe8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	int32_t m_nResetEventsParity; // 0x224
+	int32_t m_nResetEventsParity; // 0xec
 	// MNetworkDisable
-	float m_flIKGroundContactTime; // 0x228
+	float m_flIKGroundContactTime; // 0xf0
 	// MNetworkDisable
-	float m_flIKGroundMinHeight; // 0x22c
+	float m_flIKGroundMinHeight; // 0xf4
 	// MNetworkDisable
-	float m_flIKGroundMaxHeight; // 0x230
+	float m_flIKGroundMaxHeight; // 0xf8
 	// MNetworkDisable
-	float m_flIkZAdjustAmount; // 0x234
+	float m_flIkZAdjustAmount; // 0xfc
 	// MNetworkDisable
-	CSequenceTransitioner2 m_SequenceTransitioner; // 0x260
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "overrideAnimGraphChanged"
-	CStrongHandle< InfoForResourceTypeIAnimationGraph > m_hOverrideGraph; // 0x470
+	CSequenceTransitioner2 m_SequenceTransitioner; // 0x128
 };
 
 // Aligment: 0
@@ -17509,6 +21200,22 @@ public:
 // <no members described>
 };
 
+// Aligment: 1
+// Size: 128
+class CMultiplayer_Expresser : public CAI_ExpresserWithFollowup, CAI_Expresser
+{
+public:
+	bool m_bAllowMultipleScenes; // 0x78
+};
+
+// Aligment: 0
+// Size: 8
+class IEconItemInterface
+{
+public:
+// <no members described>
+};
+
 // Aligment: 15
 // Size: 176
 class CAnimationLayer
@@ -17562,6 +21269,50 @@ public:
 	float m_flLastAccess; // 0xa4
 };
 
+// Aligment: 5
+// Size: 52
+struct HandHistoryInfo_t
+{
+public:
+	Vector m_vVelocity; // 0x0
+	Vector m_vFilteredVelocity; // 0xc
+	Vector m_vFilteredThrowVel; // 0x18
+	Vector m_vPosition; // 0x24
+	float m_flSampleTime; // 0x30
+};
+
+// Aligment: 9
+// Size: 88
+class sSpiritInfo
+{
+public:
+	Vector vPosition; // 0x0
+	Vector vDirection; // 0xc
+	QAngle qAngles; // 0x18
+	Vector vVelocity; // 0x24
+	Vector vTargetLoc; // 0x30
+	CDAC_NPC* pTarget; // 0x40
+	bool bHit; // 0x48
+	int32_t nHealAmount; // 0x4c
+	CDAC_NPC* pSpirit; // 0x50
+};
+
+// Aligment: 1
+// Size: 1
+struct HeroPersona_t
+{
+public:
+	int8_t m_Data; // 0x0
+};
+
+// Aligment: 0
+// Size: 16
+class IDACPlayerBot
+{
+public:
+// <no members described>
+};
+
 // Aligment: 2
 // Size: 24
 class Extent
@@ -17571,6 +21322,19 @@ public:
 	Vector hi; // 0xc
 };
 
+// Aligment: 6
+// Size: 128
+class CDAC_GM_Puzzle : public CDACGameMode
+{
+public:
+	bool m_bUnclaimedChallenge; // 0x10
+	ConstDACPuzzleDefPtrAlias m_pPuzzleDef; // 0x20
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x28
+	CDACPlayerState* m_pHumanPlayer; // 0x30
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x38
+	CDACPlayerState* m_pEnemyPlayer; // 0x40
+};
+
 // Aligment: 2
 // Size: 12
 class CRandSimTimer : public CSimpleSimTimer
@@ -17580,8 +21344,94 @@ public:
 	float m_maxInterval; // 0x8
 };
 
-// Aligment: 24
-// Size: 104
+// Aligment: 26
+// Size: 152
+class CTakeDamageInfo
+{
+public:
+	Vector m_vecDamageForce; // 0x8
+	Vector m_vecDamagePosition; // 0x14
+	Vector m_vecReportedPosition; // 0x20
+	Vector m_vecDamageDirection; // 0x2c
+	CHandle< CBaseEntity > m_hInflictor; // 0x38
+	CHandle< CBaseEntity > m_hAttacker; // 0x3c
+	CHandle< CBaseEntity > m_hWeapon; // 0x40
+	float m_flDamage; // 0x44
+	float m_flMaxDamage; // 0x48
+	float m_flBaseDamage; // 0x4c
+	int32_t m_bitsDamageType; // 0x50
+	int32_t m_iDamageCustom; // 0x54
+	int32_t m_iAmmoType; // 0x58
+	float m_flRadius; // 0x5c
+	float m_flOriginalDamage; // 0x68
+	int32_t m_nDamageTaken; // 0x6c
+	int16_t m_iRecord; // 0x70
+	float m_flStabilityDamage; // 0x74
+	int32_t m_bitsDotaDamageType; // 0x78
+	int32_t m_nDotaDamageCategory; // 0x7c
+	float m_flCombatLogCreditFactor; // 0x80
+	int32_t m_nDACGlobalMeterEntity; // 0x84
+	bool m_bAllowFriendlyFire; // 0x88
+	bool m_bCanBeBlocked; // 0x89
+	bool m_bCanHeadshot; // 0x8a
+	HSCRIPT m_hScriptInstance; // 0x90
+};
+
+// Aligment: 4
+// Size: 64
+class CConstantForceController
+{
+public:
+	Vector m_linear; // 0xc
+	Vector m_angular; // 0x18
+	Vector m_linearSave; // 0x24
+	Vector m_angularSave; // 0x30
+};
+
+// Aligment: 2
+// Size: 8
+class DACItemChoiceReward_Choice
+{
+public:
+	DACAbilityID_t m_unItemID; // 0x0
+	bool m_bAvailable; // 0x4
+};
+
+// Aligment: 1
+// Size: 4
+struct DACPuzzleID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 10
+// Size: 496
+class CRR_Response
+{
+public:
+	uint8_t m_Type; // 0x0
+	char[192] m_szResponseName; // 0x1
+	char[128] m_szMatchingRule; // 0xc1
+	ResponseParams m_Params; // 0x150
+	float m_fMatchScore; // 0x170
+	char* m_szSpeakerContext; // 0x178
+	char* m_szWorldContext; // 0x180
+	ResponseFollowup m_Followup; // 0x188
+	CUtlVector< CUtlSymbol > m_pchCriteriaNames; // 0x1c0
+	CUtlVector< char* > m_pchCriteriaValues; // 0x1d8
+};
+
+// Aligment: 1
+// Size: 4
+struct DACAbilityID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 22
+// Size: 96
 struct fogparams_t
 {
 public:
@@ -17652,22 +21502,26 @@ public:
 	float duration; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "FogController"
-	float blendtobackground; // 0x58
+	bool enable; // 0x58
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "FogController"
-	float scattering; // 0x5c
+	bool blend; // 0x59
 	// MNetworkEnable
 	// MNetworkEnable
-	bool enable; // 0x60
-	// MNetworkEnable
-	// MNetworkEnable
-	bool blend; // 0x61
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bNoReflectionFog; // 0x62
-	bool m_bPadding; // 0x63
+	bool m_bNoReflectionFog; // 0x5a
+	bool m_bPadding; // 0x5b
+};
+
+// Aligment: 5
+// Size: 184
+class CRecipientFilter : public IRecipientFilter
+{
+public:
+	NetChannelBufType_t m_nBufType; // 0x8
+	bool m_bInitMessage; // 0xc
+	CUtlVector< CEntityIndex > m_Recipients; // 0x10
+	bool m_bUsingPredictionRules; // 0xb0
+	bool m_bIgnorePredictionCull; // 0xb1
 };
 
 // Aligment: 8
@@ -17696,6 +21550,48 @@ public:
 	int8_t m_nClothUpdateFlags; // 0x22d
 };
 
+// Aligment: 1
+// Size: 8
+struct DACLobbyID_t
+{
+public:
+	uint64_t m_Data; // 0x0
+};
+
+// Aligment: 13
+// Size: 152
+class CDACGameConstants
+{
+public:
+	CMsgGameModeSettings m_msgGameModeSettings; // 0x0
+	CUtlVector< int32 > m_vecPlayerExperienceTable; // 0x28
+	CUtlVector< TierChancePerHeroRank > m_vecUnitTierOddsTable; // 0x40
+	int32_t m_nExperiencePurchaseGoldCost; // 0x58
+	int32_t m_nExperiencePurchaseAmount; // 0x5c
+	int32_t m_nMaxInterestGoldAmount; // 0x60
+	int32_t m_nInterestGoldDivisor; // 0x64
+	bool m_bDoesWinMatterForItemRewards; // 0x68
+	bool m_bHasNeutralRounds; // 0x69
+	CUtlVector< int32 > m_vecLootRoundNumbers; // 0x70
+	int32_t m_nUnderlordSelectionRound; // 0x88
+	float m_flKillMultiplier; // 0x8c
+	uint32_t m_unPresitgeLevel; // 0x90
+};
+
+// Aligment: 2
+// Size: 24
+class CEconItemAttribute
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	uint16_t m_iAttributeDefinitionIndex; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkAlias "m_iRawValue32"
+	float m_flValue; // 0x14
+};
+
 // Aligment: 1
 // Size: 8
 class CSimTimer : public CSimpleSimTimer
@@ -17704,15 +21600,90 @@ public:
 	float m_interval; // 0x4
 };
 
+// Aligment: 4
+// Size: 32
+class CMotorController
+{
+public:
+	float m_speed; // 0x8
+	float m_maxTorque; // 0xc
+	Vector m_axis; // 0x10
+	float m_inertiaFactor; // 0x1c
+};
+
+// Aligment: 4
+// Size: 56
+struct ragdoll_t
+{
+public:
+	CUtlVector< ragdollelement_t > list; // 0x0
+	CUtlVector< int32 > boneIndex; // 0x18
+	bool allowStretch; // 0x30
+	bool unused; // 0x31
+};
+
+// Aligment: 0
+// Size: 8
+class IHasAttributes
+{
+public:
+// <no members described>
+};
+
 // Aligment: 2
 // Size: 40
-class CCopyRecipientFilter
+class CCopyRecipientFilter : public IRecipientFilter
 {
 public:
 	int32_t m_Flags; // 0x8
 	CUtlVector< CEntityIndex > m_Recipients; // 0x10
 };
 
+// Aligment: 0
+// Size: 8
+class IPhysicsPlayerController
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 8
+class CDACUnderlordPickerOfferingState
+{
+public:
+	UnderlordID_t m_unUnderlordID; // 0x0
+	uint32_t m_unBuildID; // 0x4
+};
+
+// Aligment: 10
+// Size: 64
+struct locksound_t
+{
+public:
+	CUtlSymbolLarge sLockedSound; // 0x8
+	CUtlSymbolLarge sLockedSentence; // 0x10
+	CUtlSymbolLarge sUnlockedSound; // 0x18
+	CUtlSymbolLarge sUnlockedSentence; // 0x20
+	int32_t iLockedSentence; // 0x28
+	int32_t iUnlockedSentence; // 0x2c
+	float flwaitSound; // 0x30
+	float flwaitSentence; // 0x34
+	uint8_t bEOFLocked; // 0x38
+	uint8_t bEOFUnlocked; // 0x39
+};
+
+// Aligment: 4
+// Size: 104
+class CDAC_Talent
+{
+public:
+	PlayerSlot_t m_nPlayerSlot; // 0x48
+	int32_t m_nTeam; // 0x4c
+	bool m_bForceActive; // 0x50
+	item_definition_index_t m_uItemDef; // 0x54
+};
+
 // Aligment: 8
 // Size: 40
 struct TonemapParameters_t
@@ -17736,12 +21707,22 @@ public:
 	float m_flAccelerateExposureDown; // 0x24
 };
 
+// Aligment: 2
+// Size: 16
+class CDACGameMode
+{
+public:
+	int32_t m_nGameModeStateUpdateNumber; // 0x8
+	bool m_bGameModeForceRewards; // 0xc
+};
+
 // Aligment: 8
-// Size: 96
+// Size: 72
 class CGlowProperty
 {
 public:
 	Vector m_fGlowColor; // 0x8
+	int32_t m_iGlowTeam; // 0x14
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnGlowTypeChanged"
@@ -17755,14 +21736,19 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnGlowColorChanged"
-	Vector m_glowColorOverride; // 0x3c
+	Color m_glowColorOverride; // 0x3c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bFlashing; // 0x48
-	// MNetworkEnable
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x50
-	bool m_bGlowing; // 0x58
+	bool m_bFlashing; // 0x40
+	bool m_bGlowing; // 0x41
+};
+
+// Aligment: 1
+// Size: 32
+class CDACPlayerLinkableComponent
+{
+public:
+	CUtlVector< PlayerSlot_t > m_vecParentPlayerSlots; // 0x8
 };
 
 // Aligment: 13
@@ -17860,7 +21846,15 @@ public:
 };
 
 // Aligment: 1
-// Size: 1240
+// Size: 24
+class CPlayerInfo : public IBotController
+{
+public:
+	CBasePlayer* m_pParent; // 0x10
+};
+
+// Aligment: 1
+// Size: 904
 class CBaseAnimatingOverlayController : public CBaseAnimatingController, CSkeletonAnimationController
 {
 public:
@@ -17868,70 +21862,80 @@ public:
 	// MNetworkEnable
 	// MNetworkUserGroup "overlay_vars"
 	// MNetworkChangeCallback "OnOverlaysChanged2"
-	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x488
+	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x338
 };
 
-// Aligment: 3
-// Size: 24
+// Aligment: 4
+// Size: 32
 struct thinkfunc_t
 {
 public:
-	CUtlStringToken m_nContext; // 0x8
-	int32_t m_nNextThinkTick; // 0xc
-	int32_t m_nLastThinkTick; // 0x10
+	HSCRIPT m_hFn; // 0x8
+	CUtlStringToken m_nContext; // 0x10
+	int32_t m_nNextThinkTick; // 0x14
+	int32_t m_nLastThinkTick; // 0x18
 };
 
-// Aligment: 14
-// Size: 1088
+// Aligment: 11
+// Size: 1216
 class CSkeletonInstance : public CGameSceneNode
 {
 public:
 	// MNetworkEnable
-	CModelState m_modelState; // 0x100
+	CModelState m_modelState; // 0x170
 	// MNetworkEnable
 	// MNetworkChangeCallback "skeletonRenderingEnableChanged"
-	bool m_bIsRenderingEnabled; // 0x340
+	bool m_bIsRenderingEnabled; // 0x3b0
 	// MNetworkEnable
-	bool m_bIsAnimationEnabled; // 0x341
-	// MNetworkEnable
-	bool m_bUseParentRenderBounds; // 0x342
-	// MNetworkDisable
-	bool m_bEnableIK; // 0x343
+	bool m_bIsAnimationEnabled; // 0x3b1
 	// MNetworkDisable
 	bitfield:1 m_bDisableSolidCollisionsForHierarchy; // 0x0
 	// MNetworkDisable
 	bitfield:1 m_bDirtyMotionType; // 0x0
 	// MNetworkDisable
 	bitfield:1 m_bIsGeneratingLatchedParentSpaceState; // 0x0
+	// MNetworkDisable
+	bool m_bEnableIK; // 0x3b3
 	// MNetworkEnable
 	// MNetworkChangeCallback "skeletonMaterialGroupChanged"
-	CUtlStringToken m_materialGroup; // 0x348
+	CUtlStringToken m_materialGroup; // 0x3b4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "2"
-	uint8_t m_nHitboxSet; // 0x34c
+	uint8_t m_nHitboxSet; // 0x3b8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flIkMasterBlendValueCache; // 0x398
+	float m_flIkMasterBlendValueCache; // 0x408
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonRagdollPositionChanged"
-	CUtlVector< CTransform > m_RagdollTransforms; // 0x3f0
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonRagdollPositionChanged"
-	CUtlVector< CTransform > m_BoneOverrides; // 0x408
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< float32 > m_FlexOverrides; // 0x420
+	CNetworkedIKContext m_NetworkedIKContext; // 0x410
 };
 
-// Aligment: 0
-// Size: 8
+// Aligment: 3
+// Size: 48
+class CHintMessageQueue
+{
+public:
+	float m_tmMessageEnd; // 0x8
+	CUtlVector< CHintMessage* > m_messages; // 0x10
+	CBasePlayer* m_pPlayer; // 0x28
+};
+
+// Aligment: 2
+// Size: 144
 class CGameRules
 {
 public:
-// <no members described>
+	char[128] m_szQuestName; // 0x8
+	int32_t m_nQuestPhase; // 0x88
+};
+
+// Aligment: 1
+// Size: 16
+struct magnetted_objects_t
+{
+public:
+	CHandle< CBaseEntity > hEntity; // 0x8
 };
 
 // Aligment: 3
@@ -18020,6 +22024,22 @@ public:
 	CNetworkedQuantizedFloat m_vecZ; // 0x50
 };
 
+// Aligment: 3
+// Size: 280
+class CTimeOfDayDynamicValues
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUsed; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	float32[16] m_Floats; // 0x14
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector[16] m_Vectors; // 0x54
+};
+
 // Aligment: 1
 // Size: 56
 struct CBaseAnimatingEasings_t
@@ -18041,6 +22061,24 @@ public:
 	float m_flInterpolatedTime; // 0x20
 };
 
+// Aligment: 3
+// Size: 40
+struct ragdollelement_t
+{
+public:
+	Vector originParentSpace; // 0x0
+	int32_t parentIndex; // 0x20
+	float m_flRadius; // 0x24
+};
+
+// Aligment: 0
+// Size: 8
+class IPlayerInfo
+{
+public:
+// <no members described>
+};
+
 // Aligment: 1
 // Size: 16
 class IntervalTimer
@@ -18051,6 +22089,15 @@ public:
 	float m_timestamp; // 0x8
 };
 
+// Aligment: 2
+// Size: 504
+struct ConceptHistory_t
+{
+public:
+	float timeSpoken; // 0x0
+	CRR_Response m_response; // 0x8
+};
+
 // Aligment: 2
 // Size: 8
 struct CEnvWindShared::WindAveEvent_t
@@ -18060,17 +22107,30 @@ public:
 	float m_flAveWindSpeed; // 0x4
 };
 
-// Aligment: 6
-// Size: 48
+// Aligment: 4
+// Size: 56
+class CDACPlayerWinsLosses : public CDACPlayerLinkableComponent
+{
+public:
+	int32_t m_nWins; // 0x20
+	int32_t m_nLosses; // 0x24
+	int32_t m_nWinStreak; // 0x28
+	int32_t m_nLossStreak; // 0x2c
+};
+
+// Aligment: 8
+// Size: 56
 class CPlayerState
 {
 public:
 	bool deadflag; // 0x8
-	CUtlSymbolLarge netname; // 0x10
-	int32_t fixangle; // 0x18
-	QAngle anglechange; // 0x1c
-	int32_t frags; // 0x28
-	int32_t deaths; // 0x2c
+	bool hltv; // 0x9
+	QAngle v_angle; // 0xc
+	CUtlSymbolLarge netname; // 0x18
+	int32_t fixangle; // 0x20
+	QAngle anglechange; // 0x24
+	int32_t frags; // 0x30
+	int32_t deaths; // 0x34
 };
 
 // Aligment: 2
@@ -18082,77 +22142,64 @@ public:
 	float m_maxInterval; // 0x14
 };
 
-// Aligment: 2
-// Size: 48
-class DataTable
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< uint32 > m_EntityTags; // 0x10
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bPredictable; // 0x28
-};
-
-// Aligment: 31
-// Size: 240
+// Aligment: 32
+// Size: 352
 class CGameSceneNode
 {
 public:
 	// MNetworkDisable
-	CTransform m_nodeToWorld; // 0x10
+	matrix3x4a_t m_mNodeToWorld; // 0x10
 	// MNetworkDisable
-	CEntityInstance* m_pOwner; // 0x30
+	CEntityInstance* m_pOwner; // 0x40
 	// MNetworkDisable
-	CGameSceneNode* m_pParent; // 0x38
+	CGameSceneNode* m_pParent; // 0x48
 	// MNetworkDisable
-	CGameSceneNode* m_pChild; // 0x40
+	CGameSceneNode* m_pChild; // 0x50
 	// MNetworkDisable
-	CGameSceneNode* m_pNextSibling; // 0x48
+	CGameSceneNode* m_pNextSibling; // 0x58
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkSerializer "gameSceneNode"
 	// MNetworkChangeCallback "gameSceneNodeHierarchyParentChanged"
 	// MNetworkPriority "64"
 	// MNetworkVarEmbeddedFieldOffsetDelta "8"
-	CGameSceneNodeHandle m_hParent; // 0x68
+	CGameSceneNodeHandle m_hParent; // 0x78
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkBitCount "32"
 	// MNetworkPriority "64"
 	// MNetworkUserGroup "Origin"
 	// MNetworkChangeCallback "gameSceneNodeLocalOriginChanged"
-	Vector m_vecOrigin; // 0x78
+	CNetworkOriginCellCoordQuantizedVector m_vecOrigin; // 0x88
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkEncoder
-	// MNetworkBitCount "32"
 	// MNetworkPriority "64"
+	// MNetworkSerializer "gameSceneNodeStepSimulationAnglesSerializer"
 	// MNetworkChangeCallback "gameSceneNodeLocalAnglesChanged"
-	QAngle m_angRotation; // 0x84
+	QAngle m_angRotation; // 0xf8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "gameSceneNodeLocalScaleChanged"
 	// MNetworkPriority "64"
-	float m_flScale; // 0x90
+	float m_flScale; // 0x104
 	// MNetworkDisable
-	Vector m_vecAbsOrigin; // 0x94
+	Vector m_vecAbsOrigin; // 0x108
 	// MNetworkDisable
-	QAngle m_angAbsRotation; // 0xa0
+	QAngle m_angAbsRotation; // 0x114
 	// MNetworkDisable
-	float m_flAbsScale; // 0xac
+	float m_flAbsScale; // 0x120
 	// MNetworkDisable
-	int16_t m_nParentAttachmentOrBone; // 0xb0
+	int16_t m_nParentAttachmentOrBone; // 0x124
 	// MNetworkDisable
-	bool m_bDebugAbsOriginChanges; // 0xb2
+	bool m_bDebugAbsOriginChanges; // 0x126
 	// MNetworkDisable
-	bool m_bDormant; // 0xb3
+	bool m_bDormant; // 0x127
 	// MNetworkDisable
-	bool m_bForceParentToBeNetworked; // 0xb4
+	bool m_bForceParentToBeNetworked; // 0x128
 	// MNetworkDisable
 	bitfield:1 m_bDirtyHierarchy; // 0x0
 	// MNetworkDisable
+	bitfield:1 m_bDirtyBoneMergeInfo; // 0x0
+	// MNetworkDisable
 	bitfield:1 m_bNetworkedPositionChanged; // 0x0
 	// MNetworkDisable
 	bitfield:1 m_bNetworkedAnglesChanged; // 0x0
@@ -18167,22 +22214,107 @@ public:
 	// MNetworkDisable
 	bitfield:1 m_bDirtyBoneMergeBoneToRoot; // 0x0
 	// MNetworkDisable
-	uint8_t m_nHierarchicalDepth; // 0xb7
+	uint8_t m_nHierarchicalDepth; // 0x12b
 	// MNetworkDisable
-	uint8_t m_nHierarchyType; // 0xb8
+	uint8_t m_nHierarchyType; // 0x12c
 	// MNetworkDisable
-	uint8_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount; // 0xb9
+	uint8_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount; // 0x12d
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlStringToken m_name; // 0xbc
+	CUtlStringToken m_name; // 0x130
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "gameSceneNodeHierarchyAttachmentChanged"
-	CUtlStringToken m_hierarchyAttachName; // 0xd8
+	CUtlStringToken m_hierarchyAttachName; // 0x148
 	// MNetworkDisable
-	float m_flZOffset; // 0xdc
+	float m_flZOffset; // 0x14c
 	// MNetworkDisable
-	Vector m_vRenderOrigin; // 0xe0
+	Vector m_vRenderOrigin; // 0x150
+};
+
+// Aligment: 33
+// Size: 2112
+class CDAC_Modifier
+{
+public:
+	CUtlSymbolLarge m_class; // 0x20
+	CUtlStringToken m_classToken; // 0x28
+	CUtlSymbolLarge m_szModifierAura; // 0x30
+	int32_t m_iIndex; // 0x40
+	float m_flCreationTime; // 0x44
+	int32_t m_iCreationFrame; // 0x48
+	float m_flLastAppliedTime; // 0x4c
+	float m_flDuration; // 0x50
+	float m_flDieTime; // 0x54
+	CHandle< CBaseEntity > m_hCaster; // 0x58
+	CHandle< CBaseEntity > m_hAbility; // 0x5c
+	CHandle< CBaseEntity > m_hParent; // 0x60
+	CHandle< CBaseEntity > m_hAuraOwner; // 0x64
+	int32_t m_iStackCount; // 0x68
+	int16_t m_iAuraSearchTeam; // 0x6c
+	int16_t m_iAuraSearchType; // 0x6e
+	int32_t m_iAuraSearchFlags; // 0x70
+	int32_t m_iAuraRadius; // 0x74
+	int32_t m_iTeam; // 0x78
+	int32_t m_iAttributes; // 0x7c
+	int32_t m_iSynergyLevel; // 0x80
+	int32_t m_iSynergyKeyword; // 0x84
+	// MFieldVerificationName
+	int16_t m_iPaddingToMakeSchemaHappy2; // 0x88
+	bitfield:1 m_bIsAura; // 0x0
+	bitfield:1 m_bIsAuraActiveOnDeath; // 0x0
+	bitfield:1 m_bMarkedForDeletion; // 0x0
+	bitfield:1 m_bAuraIsHeal; // 0x0
+	bitfield:1 m_bProvidedByAura; // 0x0
+	bool m_bPurgedDestroy; // 0x8b
+	float m_flPreviousTick; // 0x8c
+	float m_flThinkInterval; // 0x90
+	float m_flThinkTimeAccumulator; // 0x94
+	CUtlVector< CDAC_BuffParticle > m_iParticles; // 0x98
+};
+
+// Aligment: 2
+// Size: 16
+struct prevent_interaction_t
+{
+public:
+	CHandle< CBaseEntity > m_hEntity; // 0x8
+	float m_flUntilTime; // 0xc
+};
+
+// Aligment: 28
+// Size: 192
+class CBaseAchievement
+{
+public:
+	char* m_pszName; // 0x18
+	int32_t m_iAchievementID; // 0x20
+	int32_t m_iFlags; // 0x24
+	int32_t m_iGoal; // 0x28
+	int32_t m_iProgressMsgIncrement; // 0x2c
+	int32_t m_iProgressMsgMinimum; // 0x30
+	int32_t m_iPointValue; // 0x34
+	bool m_bHideUntilAchieved; // 0x38
+	bool m_bStoreProgressInSteam; // 0x39
+	char* m_pInflictorClassNameFilter; // 0x40
+	char* m_pInflictorEntityNameFilter; // 0x48
+	char* m_pVictimClassNameFilter; // 0x50
+	char* m_pAttackerClassNameFilter; // 0x58
+	char* m_pMapNameFilter; // 0x60
+	char* m_pGameDirFilter; // 0x68
+	char** m_pszComponentNames; // 0x70
+	char** m_pszComponentDisplayNames; // 0x78
+	int32_t m_iNumComponents; // 0x80
+	char* m_pszComponentPrefix; // 0x88
+	int32_t m_iComponentPrefixLen; // 0x90
+	bool m_bAchieved; // 0x94
+	int32_t m_iCount; // 0x98
+	int32_t m_iProgressShown; // 0x9c
+	uint64_t m_iComponentBits; // 0xa0
+	int32_t m_nUserSlot; // 0xb0
+	int32_t m_iDisplayOrder; // 0xb4
+	bool m_bShowOnHUD; // 0xb8
+	int32_t m_iAssetAwardID; // 0xbc
 };
 
 // Aligment: 31
@@ -18259,6 +22391,22 @@ public:
 	CEntityIndex m_iEntIndex; // 0xe0
 };
 
+// Aligment: 9
+// Size: 9
+struct AIHullFlags_t
+{
+public:
+	bool m_bHull_Human; // 0x0
+	bool m_bHull_SmallCentered; // 0x1
+	bool m_bHull_WideHuman; // 0x2
+	bool m_bHull_Tiny; // 0x3
+	bool m_bHull_Medium; // 0x4
+	bool m_bHull_TinyCentered; // 0x5
+	bool m_bHull_Large; // 0x6
+	bool m_bHull_LargeCentered; // 0x7
+	bool m_bHull_MediumTall; // 0x8
+};
+
 // Aligment: 0
 // Size: 1
 class CPhysicsComponent
@@ -18267,6 +22415,19 @@ public:
 // <no members described>
 };
 
+// Aligment: 6
+// Size: 808
+class CDAC_GM_Duos : public CDAC_GM_Normal, CDACGameMode
+{
+public:
+	CDACHashMapLarge< EDACLobbyTeam, CUtlPair< CDACPlayerState*, CDACPlayerState* > > m_mapLobbyTeamToPlayerStatePair; // 0x98
+	CDACHashMapLarge< EDACLobbyTeam, CUtlPair< PlayerSlot_t, PlayerSlot_t > > m_mapLobbyTeamToPlayerSlotPair; // 0xf0
+	CDACHashMapLarge< PlayerSlot_t, EDACLobbyTeam > m_mapPlayerSlotToLobbyTeam; // 0x148
+	CUtlVector< CUtlPair< EDACLobbyTeam, EDACLobbyTeam > > m_vecLastCombatPairings; // 0x218
+	CUtlVector< CUtlPair< EDACLobbyTeam, EDACLobbyTeam > > m_vecSecondLastCombatPairings; // 0x230
+	CDACHashMapLarge< CUtlPair< EDACLobbyTeam, EDACLobbyTeam >, EDACLobbyTeam > m_mapCombatPairingToLastHomeTeam; // 0x2a0
+};
+
 // Aligment: 1
 // Size: 320
 class CNetworkTransmitComponent
@@ -18291,6 +22452,114 @@ public:
 	CUtlStringToken m_name; // 0xc
 };
 
+// Aligment: 8
+// Size: 49
+class ResponseFollowup
+{
+public:
+	char* followup_concept; // 0x0
+	char* followup_contexts; // 0x8
+	float followup_delay; // 0x10
+	char* followup_target; // 0x14
+	char* followup_entityiotarget; // 0x1c
+	char* followup_entityioinput; // 0x24
+	float followup_entityiodelay; // 0x2c
+	bool bFired; // 0x30
+};
+
+// Aligment: 14
+// Size: 128
+class CCommentarySystem
+{
+public:
+	int32_t m_afPlayersLastButtons; // 0x14
+	int32_t m_iCommentaryNodeCount; // 0x18
+	bool m_bCommentaryConvarsChanging; // 0x1c
+	int32_t m_iClearPressedButtons; // 0x20
+	bool m_bCommentaryEnabledMidGame; // 0x24
+	float m_flNextTeleportTime; // 0x28
+	int32_t m_iTeleportStage; // 0x2c
+	bool m_bCheatState; // 0x30
+	bool m_bIsFirstSpawnGroupToLoad; // 0x31
+	KeyValues* m_pkvSavedModifications; // 0x38
+	CUtlVector< CHandle< CBaseEntity > > m_hSpawnedEntities; // 0x58
+	CHandle< CPointCommentaryNode > m_hCurrentNode; // 0x70
+	CHandle< CPointCommentaryNode > m_hActiveCommentaryNode; // 0x74
+	CHandle< CPointCommentaryNode > m_hLastCommentaryNode; // 0x78
+};
+
+// Aligment: 0
+// Size: 16
+class CDAC_PB_Empty : public IDACPlayerBot
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 8
+class DACUnderdlordLoadout
+{
+public:
+	UnderlordID_t m_Underlord; // 0x0
+	int32_t m_nBuildIndex; // 0x4
+};
+
+// Aligment: 2
+// Size: 24
+class DACBoardBuddyState
+{
+public:
+	Vector m_vPos; // 0x0
+	QAngle m_aAngle; // 0xc
+};
+
+// Aligment: 2
+// Size: 16
+class CAI_MoveMonitor
+{
+public:
+	Vector m_vMark; // 0x0
+	float m_flMarkTolerance; // 0xc
+};
+
+// Aligment: 3
+// Size: 20
+class VelocitySampler
+{
+public:
+	Vector m_prevSample; // 0x0
+	float m_fPrevSampleTime; // 0xc
+	float m_fIdealSampleRate; // 0x10
+};
+
+// Aligment: 1
+// Size: 24
+class CPhysicsShake
+{
+public:
+	Vector m_force; // 0x8
+};
+
+// Aligment: 1
+// Size: 144
+class CDACPlayerItemSlots : public CDACPlayerLinkableComponent
+{
+public:
+	CUtlVector< DACItemSlot > m_vecItemSlots; // 0x20
+};
+
+// Aligment: 1
+// Size: 200
+class CMultiplayRules : public CGameRules
+{
+public:
+	float m_flIntermissionEndTime; // 0xa8
+public:
+	static int32_t &Get_m_nMapCycleTimeStamp() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CMultiplayRules")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_m_nMapCycleindex() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CMultiplayRules")->m_static_fiels[1]->m_instance); }
+};
+
 // Aligment: 1
 // Size: 160
 class CNavVolumeVector : public CNavVolume
@@ -18299,6 +22568,28 @@ public:
 	bool m_bHasBeenPreFiltered; // 0x80
 };
 
+// Aligment: 4
+// Size: 120
+struct audioparams_t
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector[8] localSound; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	int32_t soundscapeIndex; // 0x68
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint8_t localBits; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t soundscapeEntityListIndex; // 0x70
+};
+
 // Aligment: 1
 // Size: 16
 class CStopwatchBase : public CSimpleSimTimer
@@ -18307,6 +22598,38 @@ public:
 	bool m_fIsRunning; // 0xc
 };
 
+// Aligment: 25
+// Size: 100
+struct dynpitchvol_base_t
+{
+public:
+	int32_t preset; // 0x0
+	int32_t pitchrun; // 0x4
+	int32_t pitchstart; // 0x8
+	int32_t spinup; // 0xc
+	int32_t spindown; // 0x10
+	int32_t volrun; // 0x14
+	int32_t volstart; // 0x18
+	int32_t fadein; // 0x1c
+	int32_t fadeout; // 0x20
+	int32_t lfotype; // 0x24
+	int32_t lforate; // 0x28
+	int32_t lfomodpitch; // 0x2c
+	int32_t lfomodvol; // 0x30
+	int32_t cspinup; // 0x34
+	int32_t cspincount; // 0x38
+	int32_t pitch; // 0x3c
+	int32_t spinupsav; // 0x40
+	int32_t spindownsav; // 0x44
+	int32_t pitchfrac; // 0x48
+	int32_t vol; // 0x4c
+	int32_t fadeinsav; // 0x50
+	int32_t fadeoutsav; // 0x54
+	int32_t volfrac; // 0x58
+	int32_t lfofrac; // 0x5c
+	int32_t lfomult; // 0x60
+};
+
 // Aligment: 4
 // Size: 16
 class CSoundEnvelope
@@ -18318,21 +22641,29 @@ public:
 	bool m_forceupdate; // 0xc
 };
 
-// Aligment: 10
-// Size: 96
-class JiggleData
+// Aligment: 1
+// Size: 320
+class CAttributeContainer : public CAttributeManager
 {
 public:
-	int32_t bone; // 0x0
-	int32_t id; // 0x4
-	float lastUpdate; // 0x8
-	Vector basePos; // 0xc
-	Vector baseLastPos; // 0x18
-	Vector baseVel; // 0x24
-	Vector baseAccel; // 0x30
-	Vector tipPos; // 0x3c
-	Vector tipVel; // 0x48
-	Vector tipAccel; // 0x54
+	// MNetworkEnable
+	// MNetworkEnable
+	CEconItemView m_Item; // 0x68
+};
+
+// Aligment: 8
+// Size: 136
+class ConstraintSoundInfo
+{
+public:
+	VelocitySampler m_vSampler; // 0x8
+	SimpleConstraintSoundProfile m_soundProfile; // 0x20
+	Vector m_forwardAxis; // 0x40
+	CUtlSymbolLarge m_iszTravelSoundFwd; // 0x50
+	CUtlSymbolLarge m_iszTravelSoundBack; // 0x58
+	CUtlSymbolLarge[3] m_iszReversalSounds; // 0x68
+	bool m_bPlayTravelSound; // 0x80
+	bool m_bPlayReversalSound; // 0x81
 };
 
 // Aligment: 7
@@ -18349,6 +22680,15 @@ public:
 	float m_flFadeOutDuration; // 0x5c
 };
 
+// Aligment: 2
+// Size: 200
+class CFailableAchievement : public CBaseAchievement
+{
+public:
+	bool m_bActivated; // 0xc0
+	bool m_bFailed; // 0xc1
+};
+
 // Aligment: 2
 // Size: 8
 struct CEnvWindShared::WindVariationEvent_t
@@ -18358,6 +22698,17 @@ public:
 	float m_flWindSpeedVariation; // 0x4
 };
 
+// Aligment: 4
+// Size: 32
+class ResponseParams
+{
+public:
+	int16_t odds; // 0x10
+	int16_t flags; // 0x12
+	uint8_t soundlevel; // 0x14
+	ResponseFollowup* m_pFollowup; // 0x18
+};
+
 // Aligment: 1
 // Size: 24
 class CStopwatch : public CStopwatchBase, CSimpleSimTimer
@@ -18366,15 +22717,58 @@ public:
 	float m_interval; // 0x10
 };
 
-// Aligment: 2
-// Size: 48
-class NetField
+// Aligment: 0
+// Size: 152
+class CDAC_GM_Turbo : public CDAC_GM_Normal, CDACGameMode
 {
 public:
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnDataBlockChanged"
-	CUtlBinaryBlock ByteData; // 0x10
-	bool Dirty; // 0x28
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 40
+class CDACPlayerLevel : public CDACPlayerLinkableComponent
+{
+public:
+	int32_t m_nLevel; // 0x20
+	int32_t m_nTotalExperience; // 0x24
+};
+
+// Aligment: 9
+// Size: 104
+class CAI_Expresser
+{
+public:
+	float m_flStopTalkTime; // 0x40
+	float m_flStopTalkTimeWithoutDelay; // 0x44
+	float m_flBlockedTalkTime; // 0x48
+	int32_t m_voicePitch; // 0x4c
+	float m_flLastTimeAcceptedSpeak; // 0x50
+	bool m_bAllowSpeakingInterrupts; // 0x54
+	bool m_bConsiderSceneInvolvementAsSpeech; // 0x55
+	int32_t m_nLastSpokenPriority; // 0x58
+	CBaseFlex* m_pOuter; // 0x60
+};
+
+// Aligment: 5
+// Size: 152
+class CDAC_GM_Normal : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_nLastOddPlayerSlot; // 0x10
+	CDACHashMapLarge< PlayerSlot_t, PlayerSlot_t > m_mapPlayerSlotToPreviousPlayerOpponentSlot; // 0x30
+	int32_t m_nNextFinalPlace; // 0x88
+	uint32_t m_rtGameStartTime; // 0x8c
+	bool m_bRoundIsNeutralFight; // 0x90
+};
+
+// Aligment: 2
+// Size: 56
+class CResponseCriteriaSet
+{
+public:
+	int32_t m_nNumPrefixedContexts; // 0x30
+	bool m_bOverrideOnAppend; // 0x34
 };
 
 // Aligment: 0
@@ -18385,6 +22779,47 @@ public:
 // <no members described>
 };
 
+// Aligment: 17
+// Size: 216
+class CEconItemView : public IEconItemInterface
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	item_definition_index_t m_iItemDefinitionIndex; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iEntityQuality; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iEntityLevel; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	itemid_t m_iItemID; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iAccountID; // 0x20
+	// MNetworkEnable
+	uint32_t m_iInventoryPosition; // 0x24
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	style_index_t m_nOverrideStyle; // 0x31
+	bool m_bIsStoreItem; // 0x32
+	bool m_bIsTradeItem; // 0x33
+	bool m_bHasComputedAttachedParticles; // 0x34
+	bool m_bHasAttachedParticles; // 0x35
+	int32_t m_iEntityQuantity; // 0x38
+	uint8_t m_unClientFlags; // 0x3c
+	eEconItemOrigin m_unOverrideOrigin; // 0x40
+	char* m_pszGrayedOutReason; // 0x50
+	// MNetworkEnable
+	// MNetworkEnable
+	CAttributeList m_AttributeList; // 0x58
+};
+
 // Aligment: 1
 // Size: 16
 class CSkeletonAnimationController
@@ -18395,13 +22830,32 @@ public:
 };
 
 // Aligment: 1
-// Size: 32
-class CSBox_Gamerules : public CGameRules
+// Size: 2
+struct DACEquipSubSlot_t
 {
 public:
-	// MNetworkDisable
-	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x8
+	uint16_t m_Data; // 0x0
+};
+
+// Aligment: 2
+// Size: 136
+class CTimeOfDayDynamicKeys
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken[16] m_FloatIDs; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken[16] m_VectorIDs; // 0x48
+};
+
+// Aligment: 0
+// Size: 8
+class IBotController
+{
+public:
+// <no members described>
 };
 
 // Aligment: 1
@@ -18412,6 +22866,24 @@ public:
 	float m_flRadiusInner; // 0x88
 };
 
+// Aligment: 3
+// Size: 48
+class CDACPlayerHealth : public CDACPlayerLinkableComponent
+{
+public:
+	int32_t m_nHealth; // 0x20
+	int32_t m_nHealableDamage; // 0x24
+	int32_t m_nMaximumHealth; // 0x28
+};
+
+// Aligment: 1
+// Size: 1
+struct PlayerSlot_t
+{
+public:
+	uint8_t m_Data; // 0x0
+};
+
 // Aligment: 3
 // Size: 24
 struct ResponseContext_t
@@ -18422,6 +22894,83 @@ public:
 	float m_fExpirationTime; // 0x10
 };
 
+// Aligment: 2
+// Size: 16
+class DACItemSlot
+{
+public:
+	ConstDACItemDefPtrAlias m_pItemDef; // 0x0
+	int32_t m_nAssignedUnitEntIndex; // 0x8
+};
+
+// Aligment: 3
+// Size: 12
+class DACWinLossRecord
+{
+public:
+	int32_t m_nWins; // 0x0
+	int32_t m_nLosses; // 0x4
+	int32_t m_nDraws; // 0x8
+};
+
+// Aligment: 41
+// Size: 176
+class CModifierParams
+{
+public:
+	float fDamage; // 0x4
+	float fOriginalDamage; // 0x8
+	int32_t nActivity; // 0xc
+	bool bTooltip; // 0x10
+	bool bIsKillingBlow; // 0x11
+	int32_t nTooltipParam; // 0x14
+	bool bIgnoreInvis; // 0x18
+	bool bNoCooldown; // 0x19
+	bool bIgnoreArmor; // 0x1a
+	bool bReincarnate; // 0x1b
+	bool bDoNotConsume; // 0x1c
+	float fDistance; // 0x20
+	float fGain; // 0x24
+	float fAttackTimeRemaining; // 0x28
+	int32_t m_nIssuerPlayerIndex; // 0x2c
+	CHandle< CBaseEntity > inflictor; // 0x30
+	int32_t nDamageType; // 0x34
+	int32_t nDamageflags; // 0x38
+	int32_t nDamageCategory; // 0x3c
+	int32_t iFailType; // 0x40
+	int16_t iRecord; // 0x44
+	int32_t nCost; // 0x48
+	int32_t nOrdertype; // 0x4c
+	Vector vOldLoc; // 0x50
+	Vector vNewLoc; // 0x5c
+	bool bCraniumBasherTested; // 0x68
+	bool bMKBTested; // 0x69
+	bool bHeartRegenApplied; // 0x6a
+	bool bDiffusalApplied; // 0x6b
+	bool bChainLightningConsidered; // 0x6c
+	bool bSuppressDamage; // 0x6d
+	bool bRangedAttack; // 0x6e
+	bool bProcessProcs; // 0x6f
+	bool bProjectileIsFromIllusion; // 0x70
+	int32_t nPlayerids_stick; // 0x74
+	int32_t nPreviousPower; // 0x78
+	int32_t nCurrentPower; // 0x7c
+	CUtlVector< EUnitKeyword > vecKeywords; // 0x80
+	CHandle< CBaseEntity > hattacker; // 0x98
+	CHandle< CBaseEntity > htarget; // 0x9c
+	CHandle< CBaseEntity > hunit; // 0xa0
+public:
+	static CModifierParams &Get_s_Default() { return *reinterpret_cast<CModifierParams*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CModifierParams")->m_static_fiels[0]->m_instance); }
+};
+
+// Aligment: 1
+// Size: 8
+struct MatchID_t
+{
+public:
+	uint64_t m_Data; // 0x0
+};
+
 // Aligment: 20
 // Size: 112
 class CEffectData
@@ -18489,7 +23038,7 @@ public:
 	uint8_t m_fFlags; // 0x61
 	// MNetworkEnable
 	// MNetworkEnable
-	AttachmentHandle_t m_nAttachmentIndex; // 0x62
+	int8_t m_nAttachmentIndex; // 0x62
 	// MNetworkEnable
 	// MNetworkEnable
 	CUtlStringToken m_nAttachmentName; // 0x64
@@ -18501,6 +23050,17 @@ public:
 	uint8_t m_nExplosionType; // 0x6a
 };
 
+// Aligment: 4
+// Size: 72
+class CDAC_GM_Tutorial : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x10
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	CDACPlayerState* m_pEnemyPlayer; // 0x28
+};
+
 // Aligment: 3
 // Size: 96
 class CNetworkViewOffsetVector
@@ -18526,8 +23086,42 @@ public:
 	CNetworkedQuantizedFloat m_vecZ; // 0x48
 };
 
-// Aligment: 21
-// Size: 240
+// Aligment: 0
+// Size: 152
+class CDAC_GM_Classic : public CDAC_GM_Normal, CDACGameMode
+{
+public:
+// <no members described>
+};
+
+// Aligment: 19
+// Size: 80
+class CDACUnitState
+{
+public:
+	int32_t m_nEntIndex; // 0x0
+	DACBoardPosition_t m_Position; // 0x4
+	int32_t m_nRank; // 0xc
+	float m_flHealth; // 0x10
+	float m_flMana; // 0x14
+	int32_t m_nUnitsConsumed; // 0x18
+	int32_t m_nGoldConsumed; // 0x1c
+	float m_flKills; // 0x20
+	uint32_t m_unKillStreak; // 0x24
+	uint32_t m_unDuelBonusDamage; // 0x28
+	int32_t m_nUnitCapCost; // 0x2c
+	bool m_bIsPlaceableItem; // 0x30
+	bool m_bBotIgnore; // 0x31
+	bool m_bCanMoveToBench; // 0x32
+	bool m_bCanBeSold; // 0x33
+	float m_flScoreForAutoPosition; // 0x34
+	bool m_bRecommendedForPlacement; // 0x38
+	float m_flTimePlaced; // 0x3c
+	ConstDACUnitDefPtrAlias m_pUnitDef; // 0x40
+};
+
+// Aligment: 20
+// Size: 232
 struct handposepair_t
 {
 public:
@@ -18538,20 +23132,29 @@ public:
 	float32[5] m_flHandPoseParams; // 0xa8
 	CUtlSymbolLarge m_poseSequenceName; // 0xc0
 	int32_t m_nUseRange; // 0xc8
-	int32_t m_iBone; // 0xcc
-	float m_flUseAnglesRange; // 0xd0
-	float m_flPivotMin; // 0xd4
-	float m_flPivotMax; // 0xd8
-	float m_flRotateMin; // 0xdc
-	float m_flRotateMax; // 0xe0
-	bool m_bHasExtent; // 0xe4
-	bool m_bHasRotation; // 0xe5
-	bool m_bAllowFlip; // 0xe6
-	bool m_bConformFingers; // 0xe7
-	bool m_bSqueezable; // 0xe8
-	bool m_bSqueezeTarget; // 0xe9
-	bool m_bGlobal; // 0xea
-	bool m_bHandPoseEntityData; // 0xeb
+	float m_flUseAnglesRange; // 0xcc
+	float m_flPivotMin; // 0xd0
+	float m_flPivotMax; // 0xd4
+	float m_flRotateMin; // 0xd8
+	float m_flRotateMax; // 0xdc
+	bool m_bHasExtent; // 0xe0
+	bool m_bHasRotation; // 0xe1
+	bool m_bAllowFlip; // 0xe2
+	bool m_bConformFingers; // 0xe3
+	bool m_bSqueezable; // 0xe4
+	bool m_bSqueezeTarget; // 0xe5
+	bool m_bGlobal; // 0xe6
+	bool m_bHandPoseEntityData; // 0xe7
+};
+
+// Aligment: 3
+// Size: 24
+struct CAttributeManager::cached_attribute_float_t
+{
+public:
+	float flIn; // 0x0
+	CUtlSymbolLarge iAttribHook; // 0x8
+	float flOut; // 0x10
 };
 
 // Aligment: 2
@@ -18602,6 +23205,44 @@ public:
 	bool m_bStopped; // 0x220
 };
 
+// Aligment: 1
+// Size: 49184
+class CDAC_NPC_History
+{
+public:
+	CUtlVectorFixedGrowable< CDAC_NPC_Incident > m_vecIncidents; // 0x8
+};
+
+// Aligment: 2
+// Size: 32
+class DACItemChoiceReward
+{
+public:
+	int32_t m_nRewardID; // 0x0
+	CUtlVector< DACItemChoiceReward_Choice > m_vecChoices; // 0x8
+};
+
+// Aligment: 7
+// Size: 40
+struct VPhysicsCollisionAttribute_t
+{
+public:
+	// MNetworkEnable
+	uint64_t m_nInteractsAs; // 0x8
+	// MNetworkEnable
+	uint64_t m_nInteractsWith; // 0x10
+	// MNetworkEnable
+	uint64_t m_nInteractsExclude; // 0x18
+	// MNetworkEnable
+	uint32_t m_nEntityId; // 0x20
+	// MNetworkEnable
+	uint16_t m_nHierarchyId; // 0x24
+	// MNetworkEnable
+	uint8_t m_nCollisionGroup; // 0x26
+	// MNetworkEnable
+	uint8_t m_nCollisionFunctionMask; // 0x27
+};
+
 // Aligment: 4
 // Size: 16
 struct constraint_axislimit_t
@@ -18621,63 +23262,187 @@ public:
 	float m_next; // 0x0
 };
 
-// Aligment: 16
-// Size: 216
+// Aligment: 3
+// Size: 32
+class SimpleConstraintSoundProfile
+{
+public:
+	SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t eKeypoints; // 0x8
+	float32[2] m_keyPoints; // 0xc
+	float32[3] m_reversalSoundThresholds; // 0x14
+};
+
+// Aligment: 6
+// Size: 52
+struct lerpdata_t
+{
+public:
+	CHandle< CBaseEntity > m_hEnt; // 0x0
+	MoveType_t m_MoveType; // 0x4
+	float m_flStartTime; // 0x8
+	Vector m_vecStartOrigin; // 0xc
+	Quaternion m_qStartRot; // 0x18
+	ParticleIndex_t m_nFXIndex; // 0x28
+};
+
+// Aligment: 1
+// Size: 112
+class CResponseQueue
+{
+public:
+	CUtlVector< CAI_Expresser* > m_ExpresserTargets; // 0x58
+};
+
+// Aligment: 12
+// Size: 52
+class CSound
+{
+public:
+	CHandle< CBaseEntity > m_hOwner; // 0x0
+	CHandle< CBaseEntity > m_hTarget; // 0x4
+	int32_t m_iVolume; // 0x8
+	float m_flOcclusionScale; // 0xc
+	int32_t m_iType; // 0x10
+	int32_t m_iNextAudible; // 0x14
+	float m_flExpireTime; // 0x18
+	int16_t m_iNext; // 0x1c
+	bool m_bNoExpirationTime; // 0x1e
+	int32_t m_ownerChannelIndex; // 0x20
+	Vector m_vecOrigin; // 0x24
+	bool m_bHasOwner; // 0x30
+};
+
+// Aligment: 1
+// Size: 4
+struct DACStreetfightID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 9
+// Size: 128
+class CRagdoll : public IRagdoll
+{
+public:
+	ragdoll_t m_ragdoll; // 0x8
+	Vector m_mins; // 0x40
+	Vector m_maxs; // 0x4c
+	Vector m_origin; // 0x58
+	float m_lastUpdate; // 0x64
+	bool m_allAsleep; // 0x68
+	Vector m_vecLastOrigin; // 0x6c
+	float m_flLastOriginChangeTime; // 0x78
+	float m_flAwakeTime; // 0x7c
+public:
+	static uint32_t &Get_s_globalCount() { return *reinterpret_cast<uint32_t*>(interfaces::g_schema->FindTypeScopeForModule("!GlobalTypes")->FindDeclaredClass("CRagdoll")->m_static_fiels[0]->m_instance); }
+};
+
+// Aligment: 3
+// Size: 48
+class CHintMessage
+{
+public:
+	char* m_hintString; // 0x8
+	CUtlVector< char* > m_args; // 0x10
+	float m_duration; // 0x28
+};
+
+// Aligment: 17
+// Size: 168
 class CCollisionProperty
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "OnUpdateOBB"
-	Vector m_vecMins; // 0x10
+	// MNetworkChangeCallback "CollisionAttributeChanged"
+	VPhysicsCollisionAttribute_t m_collisionAttribute; // 0x10
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnUpdateOBB"
-	Vector m_vecMaxs; // 0x1c
+	Vector m_vecMins; // 0x38
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnUpdateOBB"
+	Vector m_vecMaxs; // 0x44
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "2"
 	// MNetworkChangeCallback "OnUpdateSolidFlags"
-	uint8_t m_usSolidFlags; // 0x28
+	uint8_t m_usSolidFlags; // 0x52
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnUpdateSolidType"
-	SolidType_t m_nSolidType; // 0x29
+	SolidType_t m_nSolidType; // 0x53
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	uint8_t m_triggerBloat; // 0x2a
+	uint8_t m_triggerBloat; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	SurroundingBoundsType_t m_nSurroundType; // 0x2b
+	SurroundingBoundsType_t m_nSurroundType; // 0x55
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bHitboxEnabled; // 0x2c
-	float m_flRadius; // 0x30
+	// MNetworkBitCount "6"
+	uint8_t m_CollisionGroup; // 0x56
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bHitboxEnabled; // 0x57
+	float m_flRadius; // 0x58
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	Vector m_vecSpecifiedSurroundingMins; // 0x34
+	Vector m_vecSpecifiedSurroundingMins; // 0x5c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	Vector m_vecSpecifiedSurroundingMaxs; // 0x40
-	Vector m_vecSurroundingMaxs; // 0x4c
-	Vector m_vecSurroundingMins; // 0x58
+	Vector m_vecSpecifiedSurroundingMaxs; // 0x68
+	Vector m_vecSurroundingMaxs; // 0x74
+	Vector m_vecSurroundingMins; // 0x80
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vCapsuleCenter1; // 0x64
+	Vector m_vCapsuleCenter1; // 0x8c
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vCapsuleCenter2; // 0x70
+	Vector m_vCapsuleCenter2; // 0x98
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flCapsuleRadius; // 0x7c
+	float m_flCapsuleRadius; // 0xa4
+};
+
+// Aligment: 2
+// Size: 88
+class CAttributeList
+{
+public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "CollisionAttributeChanged"
-	uint8_t m_nCollisionFunctionMask; // 0x80
+	// MNetworkTypeAlias "CUtlVector< CEconItemAttribute >"
+	CUtlVector< CEconItemAttribute > m_Attributes; // 0x8
+	CAttributeManager* m_pManager; // 0x50
+};
+
+// Aligment: 15
+// Size: 224
+class CVRHandAttachmentInput
+{
+public:
+	uint64_t m_nButtons; // 0x0
+	uint64_t m_afButtonPressed; // 0x8
+	uint64_t m_afButtonReleased; // 0x10
+	float m_flTriggerAnalogValue; // 0x18
+	float m_flGripAnalogValue; // 0x1c
+	float m_flFinger0; // 0x20
+	float m_flFinger1; // 0x24
+	float m_flFinger2; // 0x28
+	float m_flFinger3; // 0x2c
+	float m_flFinger4; // 0x30
+	float m_flTrackpadAnalogValueX; // 0x34
+	float m_flTrackpadAnalogValueY; // 0x38
+	float m_flJoystickAnalogValueX; // 0x3c
+	float m_flJoystickAnalogValueY; // 0x40
+	CPropVRHand* m_pHand; // 0xd8
 };
 
 // Aligment: 1
@@ -18688,6 +23453,179 @@ public:
 	int16_t m_Value; // 0x0
 };
 
+// Aligment: 0
+// Size: 40
+class CJiggleBones
+{
+public:
+// <no members described>
+};
+
+// Aligment: 107
+// Size: 1016
+class CLightInfoBase
+{
+public:
+	Vector2D m_origin2D; // 0x10
+	Color[2] m_Color; // 0x18
+	float32[2] m_LightScale; // 0x20
+	Color[2] m_HeroColor; // 0x28
+	float32[2] m_HeroLightScale; // 0x30
+	Color[2] m_AOGradientBottomColor; // 0x38
+	bool m_bEnableRainFx; // 0x40
+	float m_flRainInnerRadius; // 0x44
+	float m_flRainOuterRadius; // 0x48
+	float m_flRainInnerAmount; // 0x4c
+	Color[2] m_AmbientColor; // 0x50
+	float32[2] m_AmbientScale; // 0x58
+	Color[2] m_ShadowColor; // 0x60
+	Color[2] m_ShadowSecondaryColor; // 0x68
+	float32[2] m_ShadowScale; // 0x70
+	float32[2] m_ShadowGroundScale; // 0x78
+	Color[2] m_SpecularColor; // 0x80
+	float32[2] m_flSpecularPower; // 0x88
+	float32[2] m_flSpecularIndependence; // 0x90
+	Vector[2] m_SpecularDirection; // 0x98
+	Vector[2] m_InspectorSpecularDirection; // 0xb0
+	Vector[2] m_LightDirection; // 0xc8
+	Vector[2] m_AmbientDirection; // 0xe0
+	Color[2] m_FogColor; // 0xf8
+	float32[2] m_FogStart; // 0x100
+	float32[2] m_FogEnd; // 0x108
+	float32[2] m_HeightFogValue; // 0x110
+	Color[2] m_HeightFogColor; // 0x118
+	float32[2] m_FoWDarkness; // 0x120
+	float32[2] m_FoWColorR; // 0x128
+	float32[2] m_FoWColorG; // 0x130
+	float32[2] m_FoWColorB; // 0x138
+	Color[2] m_InspectorViewFogColor; // 0x140
+	QAngle m_windAngle; // 0x148
+	float32[2] m_flWindAmount; // 0x154
+	float m_flMinWind; // 0x15c
+	float m_flMaxWind; // 0x160
+	float m_flMinGust; // 0x164
+	float m_flMaxGust; // 0x168
+	float m_flMinGustDelay; // 0x16c
+	float m_flMaxGustDelay; // 0x170
+	float m_flGustDuration; // 0x174
+	float m_flGustDirChange; // 0x178
+	QAngle[2] m_skyboxAngle; // 0x17c
+	CStrongHandle< InfoForResourceTypeIMaterial2 >[2] m_hSkyboxMaterial; // 0x198
+	Color[2] m_vSkyboxTintColor; // 0x1a8
+	uint8_t m_nSkyboxFogType; // 0x1b0
+	float m_flSkyboxAngularFogMaxEnd; // 0x1b4
+	float m_flSkyboxAngularFogMaxStart; // 0x1b8
+	float m_flSkyboxAngularFogMinStart; // 0x1bc
+	float m_flSkyboxAngularFogMinEnd; // 0x1c0
+	Vector4D m_vAngularParams; // 0x1c4
+	Color[2] m_vHeightFogColor; // 0x1d4
+	float m_flFogMaxZ; // 0x1dc
+	float32[2] m_flFogDensity; // 0x1e0
+	float m_flFogFalloff; // 0x1e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTexture0; // 0x1f0
+	float m_flFogLayer0Rotation; // 0x1f8
+	float m_flFogLayer0Scale; // 0x1fc
+	float32[2] m_flFoglayer0ScrollU; // 0x200
+	float32[2] m_flFoglayer0ScrollV; // 0x208
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTexture1; // 0x210
+	float m_flFogLayer1Rotation; // 0x218
+	float m_flFogLayer1Scale; // 0x21c
+	float32[2] m_flFoglayer1ScrollU; // 0x220
+	float32[2] m_flFoglayer1ScrollV; // 0x228
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTextureOpacity; // 0x230
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hWaterFlowMapTexture; // 0x238
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogFlowMapTexture; // 0x240
+	float m_flFogExclusionInnerRadius; // 0x248
+	float m_flFogExclusionHeightBias; // 0x24c
+	float m_flCausticSpeedScale; // 0x254
+	float m_flCausticAmplitudeScale; // 0x258
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hColorWarp; // 0x260
+	float m_flColorWarpBlendToFull; // 0x268
+	float m_fInnerRadius; // 0x26c
+	float m_fOuterRadius; // 0x270
+	float m_flLightning_specular_pow_scale_min; // 0x274
+	float m_flLightning_specular_pow_scale_max; // 0x278
+	Color m_lightningColor; // 0x27c
+	float m_flLightningIntensityMin; // 0x280
+	float m_flLightningIntensityMax; // 0x284
+	float m_flLightningElevation; // 0x288
+	float m_flLightningSpecularIntensity; // 0x28c
+	float m_flFarZOverride; // 0x290
+	float m_flAmbientShadowAmount; // 0x294
+	int32_t m_nWeatherType; // 0x298
+	CUtlString m_WeatherEffect; // 0x2a0
+	float m_flLightning_period_min; // 0x2a8
+	float m_flLightning_period_max; // 0x2ac
+	float m_flLightning_duration_min; // 0x2b0
+	float m_flLightning_duration_max; // 0x2b4
+	float m_flLightning_fluctuation_min; // 0x2b8
+	float m_flLightning_fluctuation_max; // 0x2bc
+	char[260] m_pszLightningSound; // 0x2c0
+	float m_flNextLightningStartTime; // 0x3c4
+	float m_flNextLightningEndTime; // 0x3c8
+	float m_flLightningFluctuationTimeStart; // 0x3cc
+	float m_flLightningFluctuationTimeEnd; // 0x3d0
+	float m_flLightningNumFluctuations; // 0x3d4
+	float m_flNextLightningSoundTime; // 0x3d8
+	bool m_bPlayLightingSound; // 0x3dc
+	float m_flLightningEventMagnitude; // 0x3e0
+	float m_flLightningScale; // 0x3e4
+	float m_flLightningFluctuation; // 0x3e8
+	float m_flLightningAngle; // 0x3ec
+	float m_flLightningEventPercentage; // 0x3f0
+};
+
+// Aligment: 3
+// Size: 48
+class C_CHintMessageQueue
+{
+public:
+	float m_tmMessageEnd; // 0x8
+	CUtlVector< CHintMessage* > m_messages; // 0x10
+	C_BasePlayer* m_pPlayer; // 0x28
+};
+
+// Aligment: 17
+// Size: 216
+class C_EconItemView : public IEconItemInterface
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	item_definition_index_t m_iItemDefinitionIndex; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iEntityQuality; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iEntityLevel; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	itemid_t m_iItemID; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iAccountID; // 0x20
+	// MNetworkEnable
+	uint32_t m_iInventoryPosition; // 0x24
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	style_index_t m_nOverrideStyle; // 0x31
+	bool m_bIsStoreItem; // 0x32
+	bool m_bIsTradeItem; // 0x33
+	bool m_bHasComputedAttachedParticles; // 0x34
+	bool m_bHasAttachedParticles; // 0x35
+	int32_t m_iEntityQuantity; // 0x38
+	uint8_t m_unClientFlags; // 0x3c
+	eEconItemOrigin m_unOverrideOrigin; // 0x40
+	char* m_pszGrayedOutReason; // 0x50
+	// MNetworkEnable
+	// MNetworkEnable
+	CAttributeList m_AttributeList; // 0x58
+};
+
 // Aligment: 0
 // Size: 8
 class IClientAlphaProperty
@@ -18696,7 +23634,66 @@ public:
 // <no members described>
 };
 
-// Aligment: 13
+// Aligment: 52
+// Size: 1368
+class CGlobalLightBase
+{
+public:
+	bool m_bSpotLight; // 0x10
+	Vector m_SpotLightOrigin; // 0x14
+	QAngle m_SpotLightAngles; // 0x20
+	Vector m_ShadowDirection; // 0x2c
+	Vector m_AmbientDirection; // 0x38
+	Vector m_SpecularDirection; // 0x44
+	Vector m_InspectorSpecularDirection; // 0x50
+	float m_flSpecularPower; // 0x5c
+	float m_flSpecularIndependence; // 0x60
+	Color m_SpecularColor; // 0x64
+	bool m_bStartDisabled; // 0x68
+	bool m_bEnabled; // 0x69
+	Color m_LightColor; // 0x6a
+	Color m_HeroLightColor; // 0x6e
+	Color m_AOGradientBottomColor; // 0x72
+	bool m_bEnableRainFx; // 0x76
+	Color m_AmbientColor1; // 0x77
+	Color m_AmbientColor2; // 0x7b
+	Color m_AmbientColor3; // 0x7f
+	float m_flSunDistance; // 0x84
+	float m_flFOV; // 0x88
+	float m_flNearZ; // 0x8c
+	float m_flFarZ; // 0x90
+	bool m_bEnableShadows; // 0x94
+	bool m_bOldEnableShadows; // 0x95
+	bool m_bBackgroundClearNotRequired; // 0x96
+	float m_flCloudScale; // 0x98
+	float m_flCloud1Speed; // 0x9c
+	float m_flCloud1Direction; // 0xa0
+	float m_flCloud2Speed; // 0xa4
+	float m_flCloud2Direction; // 0xa8
+	float m_flAmbientScale1; // 0xac
+	float m_flAmbientScale2; // 0xb0
+	float m_flGroundScale; // 0xb4
+	float m_flLightScale; // 0xb8
+	float m_flHeroLightScale; // 0xbc
+	float m_flRainInnerRadius; // 0xc0
+	float m_flRainOuterRadius; // 0xc4
+	float m_flRainInnerAmount; // 0xc8
+	float m_flFoWDarkness; // 0xcc
+	bool m_bEnableSeparateSkyboxFog; // 0xd0
+	Vector m_vFowColor; // 0xd4
+	Vector m_ViewOrigin; // 0xe0
+	QAngle m_ViewAngles; // 0xec
+	float m_flViewFoV; // 0xf8
+	Vector[8] m_WorldPoints; // 0xfc
+	Vector2D m_vFogOffsetLayer0; // 0x4e8
+	Vector2D m_vFogOffsetLayer1; // 0x4f0
+	CHandle< C_BaseEntity > m_hEnvWind; // 0x4f8
+	CHandle< C_BaseEntity > m_hEnvSky; // 0x4fc
+	float m_fSmoothedAmount; // 0x500
+	float m_fSlowSmoothedAmount; // 0x504
+};
+
+// Aligment: 14
 // Size: 48
 class CClientAlphaProperty : public IClientAlphaProperty
 {
@@ -18705,7 +23702,8 @@ public:
 	uint8_t m_nRenderMode; // 0x11
 	bitfield:1 m_bAlphaOverride; // 0x0
 	bitfield:1 m_bShadowAlphaOverride; // 0x0
-	bitfield:6 m_nReserved; // 0x0
+	bitfield:1 m_nDistanceFadeMode; // 0x0
+	bitfield:4 m_nReserved; // 0x0
 	uint8_t m_nAlpha; // 0x13
 	uint16_t m_nDesyncOffset; // 0x14
 	uint16_t m_nReserved2; // 0x16
@@ -18716,12 +23714,57 @@ public:
 	float m_flRenderFxDuration; // 0x24
 };
 
-// Aligment: 1
-// Size: 16
+// Aligment: 3
+// Size: 24
 class C_PlayerState
 {
 public:
 	bool deadflag; // 0x8
+	bool hltv; // 0x9
+	QAngle v_angle; // 0xc
+};
+
+// Aligment: 9
+// Size: 400
+class CDeferredLightBase
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	Color m_LightColor; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flIntensity; // 0x14
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flLightSize; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flSpotFoV; // 0x1c
+	// MNetworkEnable
+	// MNetworkEnable
+	QAngle m_vLightDirection; // 0x20
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartFalloff; // 0x2c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDistanceFalloff; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_nFlags; // 0x34
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_ProjectedTextureName; // 0x38
+};
+
+// Aligment: 0
+// Size: 8
+class C_SingleplayRules : public C_GameRules
+{
+public:
+// <no members described>
 };
 
 // Aligment: 3
@@ -18758,8 +23801,30 @@ public:
 	float m_flNewFarZ; // 0x3c
 };
 
+// Aligment: 2
+// Size: 24
+class C_EconItemAttribute
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	uint16_t m_iAttributeDefinitionIndex; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkAlias "m_iRawValue32"
+	float m_flValue; // 0x14
+};
+
+// Aligment: 0
+// Size: 776
+class CHeadlightEffect : public CFlashlightEffect
+{
+public:
+// <no members described>
+};
+
 // Aligment: 1
-// Size: 3824
+// Size: 1208
 class C_BaseAnimatingOverlayController : public C_BaseAnimatingController, CSkeletonAnimationController
 {
 public:
@@ -18767,16 +23832,16 @@ public:
 	// MNetworkEnable
 	// MNetworkUserGroup "overlay_vars"
 	// MNetworkChangeCallback "OnOverlaysChanged2"
-	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0xe88
+	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x450
 };
 
 // Aligment: 2
-// Size: 1584
+// Size: 856
 class C_CommandContext
 {
 public:
 	bool needsprocessing; // 0x0
-	int32_t command_number; // 0x628
+	int32_t command_number; // 0x350
 };
 
 // Aligment: 30
@@ -18896,13 +23961,11 @@ public:
 };
 
 // Aligment: 1
-// Size: 32
-class C_SBox_Gamerules : public C_GameRules
+// Size: 24
+struct GCConsumedIDs_t
 {
 public:
-	// MNetworkDisable
-	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x8
+	CUtlVector< item_definition_index_t > m_vecIDs; // 0x0
 };
 
 // Aligment: 4
@@ -18916,6 +23979,28 @@ public:
 	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x18
 };
 
+// Aligment: 15
+// Size: 776
+class CFlashlightEffect
+{
+public:
+	bool m_bIsOn; // 0x8
+	bool m_bMuzzleFlashEnabled; // 0x18
+	float m_flMuzzleFlashBrightness; // 0x1c
+	Quaternion m_quatMuzzleFlashOrientation; // 0x20
+	Vector m_vecMuzzleFlashOrigin; // 0x30
+	float m_flDT; // 0x3c
+	float m_flFov; // 0x40
+	float m_flFarZ; // 0x44
+	float m_flLinearAtten; // 0x48
+	bool m_bCastsShadows; // 0x4c
+	float m_flCurrentPullBackDist; // 0x50
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_FlashlightTexture; // 0x58
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_MuzzleFlashTexture; // 0x60
+	CWeakHandle< InfoForResourceTypeCTextureBase > m_hCurrentFlashlightTexture; // 0x68
+	char[64] m_textureName; // 0x70
+};
+
 // Aligment: 2
 // Size: 8
 class TimedEvent
@@ -18937,24 +24022,51 @@ public:
 	C_BaseAnimatingController* m_pOwner; // 0x1d0
 };
 
-// Aligment: 23
-// Size: 3720
+// Aligment: 5
+// Size: 20
+class CInterpolatedValue
+{
+public:
+	float m_flStartTime; // 0x0
+	float m_flEndTime; // 0x4
+	float m_flStartValue; // 0x8
+	float m_flEndValue; // 0xc
+	int32_t m_nInterpType; // 0x10
+};
+
+// Aligment: 10
+// Size: 96
+class JiggleData
+{
+public:
+	int32_t bone; // 0x0
+	int32_t id; // 0x4
+	float lastUpdate; // 0x8
+	Vector basePos; // 0xc
+	Vector baseLastPos; // 0x18
+	Vector baseVel; // 0x24
+	Vector baseAccel; // 0x30
+	Vector tipPos; // 0x3c
+	Vector tipVel; // 0x48
+	Vector tipAccel; // 0x54
+};
+
+// Aligment: 21
+// Size: 1104
 class C_BaseAnimatingController : public CSkeletonAnimationController
 {
 public:
 	// MNetworkEnable
 	// MNetworkChangeCallback "baseAnimBaseLayerChanged"
 	CNetworkedSequenceOperation m_baseLayer; // 0x18
-	// MNetworkEnable
-	CAnimGraphNetworkedVariables m_animGraphNetworkedVars; // 0x58
 	// MNetworkDisable
-	bool m_bSequenceFinished; // 0xa78
+	bool m_bSequenceFinished; // 0x58
 	// MNetworkDisable
-	float m_flGroundSpeed; // 0xa7c
+	float m_flGroundSpeed; // 0x5c
 	// MNetworkDisable
-	float m_flLastEventCycle; // 0xa80
+	float m_flLastEventCycle; // 0x60
 	// MNetworkDisable
-	float m_flLastEventAnimTime; // 0xa84
+	float m_flLastEventAnimTime; // 0x64
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "-4"
@@ -18962,59 +24074,55 @@ public:
 	// MNetworkEncodeFlags
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "playbackRateChanged"
-	CNetworkedQuantizedFloat m_flPlaybackRate; // 0xa88
+	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x68
 	// MNetworkDisable
-	float m_flPrevAnimTime; // 0xaa0
+	float m_flPrevAnimTime; // 0x80
 	// MNetworkEnable
 	// MNetworkBitCount "11"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkUserGroup "m_flPoseParameter"
 	// MNetworkChangeCallback "poseParametersChanged"
-	float32[24] m_flPoseParameter; // 0xaa4
+	float32[24] m_flPoseParameter; // 0x84
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "clientSideAnimationChanged"
-	bool m_bClientSideAnimation; // 0xb04
+	bool m_bClientSideAnimation; // 0xe4
 	// MNetworkDisable
-	bool m_bNetworkedAnimationInputsChanged; // 0xb05
+	bool m_bNetworkedAnimationInputsChanged; // 0xe5
 	// MNetworkDisable
-	uint8_t m_nPrevNewSequenceParity; // 0xb06
+	uint8_t m_nPrevNewSequenceParity; // 0xe6
 	// MNetworkDisable
-	uint8_t m_nPrevResetEventsParity; // 0xb07
+	uint8_t m_nPrevResetEventsParity; // 0xe7
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "clientSideAnimCycleReset"
-	int32_t m_nNewSequenceParity; // 0xb08
+	int32_t m_nNewSequenceParity; // 0xe8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	int32_t m_nResetEventsParity; // 0xb0c
+	int32_t m_nResetEventsParity; // 0xec
 	// MNetworkDisable
-	float m_flIKGroundContactTime; // 0xb10
+	float m_flIKGroundContactTime; // 0xf0
 	// MNetworkDisable
-	float m_flIKGroundMinHeight; // 0xb14
+	float m_flIKGroundMinHeight; // 0xf4
 	// MNetworkDisable
-	float m_flIKGroundMaxHeight; // 0xb18
+	float m_flIKGroundMaxHeight; // 0xf8
 	// MNetworkDisable
-	float m_flIkZAdjustAmount; // 0xb1c
+	float m_flIkZAdjustAmount; // 0xfc
 	// MNetworkDisable
-	C_CSequenceTransitioner2 m_SequenceTransitioner; // 0xb48
+	C_CSequenceTransitioner2 m_SequenceTransitioner; // 0x128
 	// MNetworkDisable
-	HSequence m_hLastAnimEventSequence; // 0xdc0
+	HSequence m_hLastAnimEventSequence; // 0x3a0
 	// MNetworkDisable
-	uint32_t m_ClientSideAnimationListHandle; // 0xdc4
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "overrideAnimGraphChanged"
-	CStrongHandle< InfoForResourceTypeIAnimationGraph > m_hOverrideGraph; // 0xe70
+	uint32_t m_ClientSideAnimationListHandle; // 0x3a4
 };
 
-// Aligment: 4
-// Size: 224
+// Aligment: 29
+// Size: 488
 class C_PlayerLocalData
 {
 public:
@@ -19027,9 +24135,87 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	uint8[24] m_chAreaPortalBits; // 0x38
+	int32_t m_nStepside; // 0x50
+	int32_t m_nOldButtons; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	sky3dparams_t m_skybox3d; // 0x50
+	float m_flFOVRate; // 0x58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	uint32_t m_iHideHUD; // 0x5c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkPriority "64"
+	uint32_t m_nDuckTimeMsecs; // 0x60
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nDuckJumpTimeMsecs; // 0x64
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nJumpTimeMsecs; // 0x68
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	// MNetworkMinValue "-4096"
+	// MNetworkMaxValue "4096"
+	float m_flFallVelocity; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	// MNetworkEncodeFlags
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "128"
+	float m_flStepSize; // 0x70
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngle; // 0x78
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngleVel; // 0x90
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucked; // 0xa8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucking; // 0xa9
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInDuckJump; // 0xaa
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDrawViewmodel; // 0xab
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWearingSuit; // 0xac
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoisoned; // 0xad
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowAutoMovement; // 0xae
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bSlowMovement; // 0xaf
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAutoAimTarget; // 0xb0
+	// MNetworkEnable
+	// MNetworkEnable
+	sky3dparams_t m_skybox3d; // 0xb8
+	// MNetworkEnable
+	// MNetworkEnable
+	audioparams_t m_audio; // 0x140
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< C_PostProcessingVolume > > m_PostProcessingVolumes; // 0x1b8
+	bool m_bInLanding; // 0x1d4
+	float m_flLandingTime; // 0x1d8
+	Vector m_vecClientBaseVelocity; // 0x1dc
 };
 
 // Aligment: 15
@@ -19136,7 +24322,7 @@ public:
 };
 
 // Aligment: 10
-// Size: 160
+// Size: 152
 class CDecalInfo
 {
 public:
@@ -19149,7 +24335,7 @@ public:
 	int32_t m_nBoneIndex; // 0x18
 	CDecalInfo* m_pNext; // 0x28
 	CDecalInfo* m_pPrev; // 0x30
-	uint64_t m_nDecalMaterialIndex; // 0x98
+	int32_t m_nDecalMaterialIndex; // 0x90
 };
 
 // Aligment: 1
@@ -19182,3 +24368,11 @@ public:
 	float m_flWindSpeedVariation; // 0x4
 };
 
+// Aligment: 0
+// Size: 32
+class C_MultiplayRules : public C_GameRules
+{
+public:
+// <no members described>
+};
+
diff --git a/sdk/animationsystem.hpp b/sdk/animationsystem.hpp
index f812323a..e5544511 100644
--- a/sdk/animationsystem.hpp
+++ b/sdk/animationsystem.hpp
@@ -4,8 +4,8 @@
 
 ///////////////////////////////////////////
 // Binary: animationsystem.dll
-// Class Count: 192
-// Enum Count: 47
+// Class Count: 175
+// Enum Count: 44
 ///////////////////////////////////////////
 
 // Aligment: 4
@@ -67,7 +67,7 @@ enum class SeqPoseSetting_t : uint32_t
 };
 
 // Aligment: 1
-// Size: 69
+// Size: 67
 enum class fieldtype_t : uint8_t
 {
 	FIELD_VOID = 0,
@@ -113,32 +113,30 @@ enum class fieldtype_t : uint8_t
 	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_VECTOR = 40,
 	FIELD_HMATERIAL = 41,
 	FIELD_HMODEL = 42,
-	FIELD_HANIMATIONGRAPH = 43,
-	FIELD_NETWORK_QUANTIZED_VECTOR = 44,
-	FIELD_NETWORK_QUANTIZED_FLOAT = 45,
-	FIELD_DIRECTION_VECTOR_WORLDSPACE = 46,
-	FIELD_QANGLE_WORLDSPACE = 47,
-	FIELD_QUATERNION_WORLDSPACE = 48,
-	FIELD_HSCRIPT_LIGHTBINDING = 49,
-	FIELD_V8_VALUE = 50,
-	FIELD_V8_OBJECT = 51,
-	FIELD_V8_ARRAY = 52,
-	FIELD_V8_CALLBACK_INFO = 53,
-	FIELD_UTLSTRING = 54,
-	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_POSITION_VECTOR = 55,
-	FIELD_HRENDERTEXTURE = 56,
-	FIELD_HPARTICLESYSTEMDEFINITION = 57,
-	FIELD_UINT8 = 58,
-	FIELD_UINT16 = 59,
-	FIELD_CTRANSFORM = 60,
-	FIELD_CTRANSFORM_WORLDSPACE = 61,
-	FIELD_HPOSTPROCESSING = 62,
-	FIELD_MATRIX3X4 = 63,
-	FIELD_SHIM = 64,
-	FIELD_CMOTIONTRANSFORM = 65,
-	FIELD_CMOTIONTRANSFORM_WORLDSPACE = 66,
-	FIELD_ATTACHMENT_HANDLE = 67,
-	FIELD_TYPECOUNT = 68,
+	FIELD_NETWORK_QUANTIZED_VECTOR = 43,
+	FIELD_NETWORK_QUANTIZED_FLOAT = 44,
+	FIELD_DIRECTION_VECTOR_WORLDSPACE = 45,
+	FIELD_QANGLE_WORLDSPACE = 46,
+	FIELD_QUATERNION_WORLDSPACE = 47,
+	FIELD_HSCRIPT_LIGHTBINDING = 48,
+	FIELD_V8_VALUE = 49,
+	FIELD_V8_OBJECT = 50,
+	FIELD_V8_ARRAY = 51,
+	FIELD_V8_CALLBACK_INFO = 52,
+	FIELD_UTLSTRING = 53,
+	FIELD_NETWORK_ORIGIN_CELL_QUANTIZED_POSITION_VECTOR = 54,
+	FIELD_HRENDERTEXTURE = 55,
+	FIELD_HPARTICLESYSTEMDEFINITION = 56,
+	FIELD_UINT8 = 57,
+	FIELD_UINT16 = 58,
+	FIELD_CTRANSFORM = 59,
+	FIELD_CTRANSFORM_WORLDSPACE = 60,
+	FIELD_HPOSTPROCESSING = 61,
+	FIELD_MATRIX3X4 = 62,
+	FIELD_SHIM = 63,
+	FIELD_CMOTIONTRANSFORM = 64,
+	FIELD_CMOTIONTRANSFORM_WORLDSPACE = 65,
+	FIELD_TYPECOUNT = 66,
 };
 
 // Aligment: 4
@@ -171,16 +169,6 @@ enum class AnimParamButton_t : uint32_t
 	ANIMPARAM_BUTTON_RTRIGGER = 0xc,
 };
 
-// Aligment: 4
-// Size: 4
-enum class BoneTransformSpace_t : uint32_t
-{
-	BoneTransformSpace_Invalid = 0xffffffffffffffff,
-	BoneTransformSpace_Parent = 0x0,
-	BoneTransformSpace_Model = 0x1,
-	BoneTransformSpace_World = 0x2,
-};
-
 // Aligment: 4
 // Size: 3
 enum class AnimNodeNetworkMode : uint32_t
@@ -190,14 +178,6 @@ enum class AnimNodeNetworkMode : uint32_t
 	ClientPredicted = 0x2,
 };
 
-// Aligment: 4
-// Size: 2
-enum class SolveIKChainAnimNodeSettingSource : uint32_t
-{
-	SOLVEIKCHAINANIMNODESETTINGSOURCE_Default = 0x0,
-	SOLVEIKCHAINANIMNODESETTINGSOURCE_Override = 0x1,
-};
-
 // Aligment: 4
 // Size: 3
 enum class FootstepLandedFootSoundType_t : uint32_t
@@ -243,14 +223,6 @@ enum class AnimVrFingerSplay_t : uint32_t
 	AnimVrFingerSplay_Ring_Pinky = 0x3,
 };
 
-// Aligment: 4
-// Size: 2
-enum class AnimVrBoneTransformSource_t : uint32_t
-{
-	AnimVrBoneTransformSource_LiveStream = 0x0,
-	AnimVrBoneTransformSource_GripLimit = 0x1,
-};
-
 // Aligment: 4
 // Size: 6
 enum class IKSolverType : uint32_t
@@ -282,7 +254,7 @@ enum class IKTargetCoordinateSystem : uint32_t
 };
 
 // Aligment: 4
-// Size: 36
+// Size: 35
 enum class AnimValueSource : uint32_t
 {
 	MoveHeading = 0x0,
@@ -290,41 +262,40 @@ enum class AnimValueSource : uint32_t
 	ForwardSpeed = 0x2,
 	StrafeSpeed = 0x3,
 	FacingHeading = 0x4,
-	ManualFacingHeading = 0x5,
-	LookHeading = 0x6,
-	LookPitch = 0x7,
-	Parameter = 0x8,
-	WayPointHeading = 0x9,
-	WayPointDistance = 0xa,
-	BoundaryRadius = 0xb,
-	TargetMoveHeading = 0xc,
-	TargetMoveSpeed = 0xd,
-	AccelerationHeading = 0xe,
-	AccelerationSpeed = 0xf,
-	SlopeHeading = 0x10,
-	SlopeAngle = 0x11,
-	SlopePitch = 0x12,
-	SlopeYaw = 0x13,
-	GoalDistance = 0x14,
-	AccelerationLeftRight = 0x15,
-	AccelerationFrontBack = 0x16,
-	RootMotionSpeed = 0x17,
-	RootMotionTurnSpeed = 0x18,
-	MoveHeadingRelativeToLookHeading = 0x19,
-	MaxMoveSpeed = 0x1a,
-	FingerCurl_Thumb = 0x1b,
-	FingerCurl_Index = 0x1c,
-	FingerCurl_Middle = 0x1d,
-	FingerCurl_Ring = 0x1e,
-	FingerCurl_Pinky = 0x1f,
-	FingerSplay_Thumb_Index = 0x20,
-	FingerSplay_Index_Middle = 0x21,
-	FingerSplay_Middle_Ring = 0x22,
-	FingerSplay_Ring_Pinky = 0x23,
+	LookHeading = 0x5,
+	LookPitch = 0x6,
+	Parameter = 0x7,
+	WayPointHeading = 0x8,
+	WayPointDistance = 0x9,
+	BoundaryRadius = 0xa,
+	TargetMoveHeading = 0xb,
+	TargetMoveSpeed = 0xc,
+	AccelerationHeading = 0xd,
+	AccelerationSpeed = 0xe,
+	SlopeHeading = 0xf,
+	SlopeAngle = 0x10,
+	SlopePitch = 0x11,
+	SlopeYaw = 0x12,
+	GoalDistance = 0x13,
+	AccelerationLeftRight = 0x14,
+	AccelerationFrontBack = 0x15,
+	RootMotionSpeed = 0x16,
+	RootMotionTurnSpeed = 0x17,
+	MoveHeadingRelativeToLookHeading = 0x18,
+	MaxMoveSpeed = 0x19,
+	FingerCurl_Thumb = 0x1a,
+	FingerCurl_Index = 0x1b,
+	FingerCurl_Middle = 0x1c,
+	FingerCurl_Ring = 0x1d,
+	FingerCurl_Pinky = 0x1e,
+	FingerSplay_Thumb_Index = 0x1f,
+	FingerSplay_Index_Middle = 0x20,
+	FingerSplay_Middle_Ring = 0x21,
+	FingerSplay_Ring_Pinky = 0x22,
 };
 
 // Aligment: 4
-// Size: 13
+// Size: 14
 enum class AnimVectorSource : uint32_t
 {
 	MoveDirection = 0x0,
@@ -332,14 +303,15 @@ enum class AnimVectorSource : uint32_t
 	LookDirection = 0x2,
 	VectorParameter = 0x3,
 	WayPointDirection = 0x4,
-	Acceleration = 0x5,
-	SlopeNormal = 0x6,
-	SlopeNormal_WorldSpace = 0x7,
-	LookTarget = 0x8,
-	LookTarget_WorldSpace = 0x9,
-	WayPointPosition = 0xa,
-	GoalPosition = 0xb,
-	RootMotionVelocity = 0xc,
+	TargetMoveDirection = 0x5,
+	Acceleration = 0x6,
+	SlopeNormal = 0x7,
+	SlopeNormal_WorldSpace = 0x8,
+	LookTarget = 0x9,
+	LookTarget_WorldSpace = 0xa,
+	WayPointPosition = 0xb,
+	GoalPosition = 0xc,
+	RootMotionVelocity = 0xd,
 };
 
 // Aligment: 4
@@ -435,6 +407,14 @@ enum class CGroundIKSolveAnimNode::DebugSkeletonBoneType_t : uint32_t
 	CGroundIKSolveAnimNode::FLAG_ALL_BONE_FLAGS = 0xffffff,
 };
 
+// Aligment: 4
+// Size: 2
+enum class SolveIKChainAnimNodeSettingSource : uint32_t
+{
+	SOLVEIKCHAINANIMNODESETTINGSOURCE_Default = 0x0,
+	SOLVEIKCHAINANIMNODESETTINGSOURCE_Override = 0x1,
+};
+
 // Aligment: 4
 // Size: 2
 enum class SelectionSource_t : uint32_t
@@ -581,14 +561,6 @@ enum class FootLockSubVisualization : uint32_t
 	FOOTLOCKSUBVISUALIZATION_IKSolve = 0x1,
 };
 
-// Aligment: 4
-// Size: 2
-enum class StepPhase : uint32_t
-{
-	StepPhase_OnGround = 0x0,
-	StepPhase_InAir = 0x1,
-};
-
 // Aligment: 4
 // Size: 2
 enum class FinishedConditionOption : uint32_t
@@ -823,8 +795,8 @@ public:
 	CAnimEncodeDifference m_usageDifferences; // 0x30
 };
 
-// Aligment: 6
-// Size: 6
+// Aligment: 5
+// Size: 5
 class CAnimDesc_Flag
 {
 public:
@@ -833,7 +805,6 @@ public:
 	bool m_bHidden; // 0x2
 	bool m_bDelta; // 0x3
 	bool m_bLegacyWorldspace; // 0x4
-	bool m_bModelDoc; // 0x5
 };
 
 // Aligment: 2
@@ -1078,8 +1049,8 @@ public:
 	bool m_bCalculatePoseParameters; // 0x64
 };
 
-// Aligment: 11
-// Size: 11
+// Aligment: 10
+// Size: 10
 class CSeqSeqDescFlag
 {
 public:
@@ -1093,7 +1064,6 @@ public:
 	bool m_bLegacyWorldspace; // 0x7
 	bool m_bLegacyCyclepose; // 0x8
 	bool m_bLegacyRealtime; // 0x9
-	bool m_bModelDoc; // 0xa
 };
 
 // Aligment: 2
@@ -1308,14 +1278,6 @@ public:
 	uint32_t m_id; // 0x0
 };
 
-// Aligment: 1
-// Size: 4
-class AnimOutputID
-{
-public:
-	uint32_t m_id; // 0x0
-};
-
 // Aligment: 1
 // Size: 4
 class AnimStateID
@@ -1393,46 +1355,26 @@ public:
 	IKTargetCoordinateSystem m_TargetCoordSystem; // 0x1c
 };
 
-// Aligment: 2
-// Size: 16
-class CBoneMergeModel
-{
-public:
-	// MPropertyHideField
-	CUtlString m_name; // 0x0
-	// MPropertyHideField
-	bool m_bEnabled; // 0x8
-};
-
-// Aligment: 8
-// Size: 144
+// Aligment: 7
+// Size: 256
 class CAnimationGraph
 {
 public:
-	CSmartPtr< CAnimNodeManager > m_nodeManager; // 0x8
-	CSmartPtr< CAnimParameterList > m_pParameterList; // 0x10
-	CSmartPtr< CAnimTagManager > m_pTagManager; // 0x18
-	CSmartPtr< CAnimMovementManager > m_pMovementManager; // 0x20
-	CSmartPtr< CAnimGraphSettingsManager > m_pSettingsManager; // 0x28
-	CSmartPtr< CActivityValueList > m_pActivityValuesList; // 0x40
-	CUtlVector< CUtlString > m_previewModels; // 0x48
-	CUtlVector< CBoneMergeModel > m_boneMergeModels; // 0x60
+	CSmartPtr< CAnimParameterList > m_pParameterList; // 0x28
+	CSmartPtr< CAnimTagManager > m_pTagManager; // 0x30
+	CSmartPtr< CAnimMovementManager > m_pMovementManager; // 0x38
+	CSmartPtr< CAnimGraphSettingsManager > m_pSettingsManager; // 0x40
+	CSmartPtr< CActivityValueList > m_pActivityValuesList; // 0x48
+	AnimNodeID m_rootNodeID; // 0x50
+	CUtlString m_filePath; // 0x58
 };
 
 // Aligment: 1
-// Size: 72
-class CAnimationSubGraph
-{
-public:
-	CSmartPtr< CAnimNodeManager > m_nodeManager; // 0x8
-};
-
-// Aligment: 1
-// Size: 48
+// Size: 200
 class CAnimParameterList
 {
 public:
-	CUtlVector< CSmartPtr< CAnimParameterBase > > m_Parameters; // 0x18
+	CUtlVector< CSmartPtr< CAnimParameterBase > > m_Parameters; // 0xb0
 };
 
 // Aligment: 2
@@ -1469,14 +1411,6 @@ public:
 	CUtlVector< CAnimNodeBase* > m_nodes; // 0x10
 };
 
-// Aligment: 0
-// Size: 104
-class CAnimNodeManager
-{
-public:
-// <no members described>
-};
-
 // Aligment: 1
 // Size: 40
 class CAnimStateList
@@ -1516,59 +1450,29 @@ public:
 // <no members described>
 };
 
-// Aligment: 1
-// Size: 40
+// Aligment: 0
+// Size: 32
 class CAnimGraphGeneralSettings : public CAnimGraphSettingsGroup
 {
 public:
-	// MPropertyFriendlyName "Grid Snapping"
-	int32_t m_iGridSnap; // 0x20
+// <no members described>
 };
 
-// Aligment: 2
+// Aligment: 1
 // Size: 40
 class CAnimGraphNetworkSettings : public CAnimGraphSettingsGroup
 {
 public:
-	// MPropertyFriendlyName "Enable Networking"
+	// MPropertyFriendlyName "Enable Networking "
 	bool m_bNetworkingEnabled; // 0x20
-	// MPropertyFriendlyName "Default Network Mode"
-	AnimNodeNetworkMode m_defaultNetworkMode; // 0x24
-};
-
-// Aligment: 4
-// Size: 48
-class CClipProperties
-{
-public:
-	// MPropertyFriendlyName "Name"
-	// MPropertyAttrStateCallback
-	CUtlString m_name; // 0x18
-	// MPropertyFriendlyName "Frame Count"
-	// MPropertyAttrStateCallback
-	int32_t m_frames; // 0x20
-	// MPropertyFriendlyName "Frame Rate"
-	// MPropertyAttrStateCallback
-	float m_flFrameRate; // 0x24
-	// MPropertyFriendlyName "Duration"
-	// MPropertyAttrStateCallback
-	float m_flDuration; // 0x28
 };
 
 // Aligment: 1
-// Size: 48
-class CAnimClipPropertiesManager
-{
-public:
-	CUtlVector< CSmartPtr< CClipProperties > > m_Clips; // 0x18
-};
-
-// Aligment: 1
-// Size: 32
+// Size: 184
 class CAnimMotorList
 {
 public:
-	CUtlVector< CSmartPtr< CAnimMotorBase > > m_motors; // 0x8
+	CUtlVector< CSmartPtr< CBaseAnimMotor > > m_motors; // 0x8
 };
 
 // Aligment: 1
@@ -1581,7 +1485,7 @@ public:
 
 // Aligment: 2
 // Size: 40
-class CAnimMotorBase
+class CBaseAnimMotor
 {
 public:
 	// MPropertyFriendlyName "Name"
@@ -1593,7 +1497,7 @@ public:
 
 // Aligment: 2
 // Size: 72
-class CPathAnimMotorBase : public CAnimMotorBase
+class CBasePathAnimMotor : public CBaseAnimMotor
 {
 public:
 	// MPropertyFriendlyName "Facing Damping"
@@ -1606,7 +1510,7 @@ public:
 
 // Aligment: 0
 // Size: 72
-class CPathAnimMotor : public CPathAnimMotorBase, CAnimMotorBase
+class CPathAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
 // <no members described>
@@ -1614,7 +1518,7 @@ public:
 
 // Aligment: 6
 // Size: 96
-class CDampedPathAnimMotor : public CPathAnimMotorBase, CAnimMotorBase
+class CDampedPathAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
 	// MPropertyFriendlyName "Anticipation Time"
@@ -1637,26 +1541,27 @@ public:
 };
 
 // Aligment: 6
-// Size: 88
-class CPlayerInputAnimMotor : public CAnimMotorBase
+// Size: 96
+class CPlayerInputAnimMotor : public CBasePathAnimMotor, CBaseAnimMotor
 {
 public:
-	// MPropertyFriendlyName "Sample Times"
-	CUtlVector< float32 > m_sampleTimes; // 0x28
-	// MPropertyFriendlyName "Use Acceleration"
-	// MPropertyAttrChangeCallback
-	bool m_bUseAcceleraion; // 0x40
-	// MPropertyFriendlyName "Spring Constant"
-	// MPropertyAttrStateCallback
-	float m_flSpringConstant; // 0x44
-	// MPropertyFriendlyName "Anticipation Distance"
-	float m_flAnticipationDistance; // 0x48
+	// MPropertyFriendlyName "Anticipation Time"
+	float m_flAnticipationTime; // 0x48
 	// MPropertyFriendlyName "Anticipation Position Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
 	AnimParamID m_anticipationPosParam; // 0x4c
 	// MPropertyFriendlyName "Anticipation Heading Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	AnimParamID m_anticipationHeadingParam; // 0x50
+	// MPropertyFriendlyName "Spring Constant"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flSpringConstant; // 0x54
+	// MPropertyFriendlyName "Min Tension"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flMinSpringTension; // 0x58
+	// MPropertyFriendlyName "Max Tension"
+	// MPropertyGroupName "+Stopping:Arrival Damping"
+	float m_flMaxSpringTension; // 0x5c
 };
 
 // Aligment: 7
@@ -1740,30 +1645,8 @@ public:
 	bool m_bInterpolate; // 0x3c
 };
 
-// Aligment: 2
-// Size: 72
-class CQuaternionAnimParameter : public CAnimParameterBase
-{
-public:
-	// MPropertyFriendlyName "Default Value"
-	Quaternion m_defaultValue; // 0x30
-	// MPropertyFriendlyName "Interpolate"
-	bool m_bInterpolate; // 0x40
-};
-
-// Aligment: 2
-// Size: 8
-class CNodeConnection
-{
-public:
-	// MPropertySuppressField
-	AnimNodeID m_nodeID; // 0x0
-	// MPropertySuppressField
-	AnimOutputID m_outputID; // 0x4
-};
-
-// Aligment: 5
-// Size: 64
+// Aligment: 4
+// Size: 56
 class CAnimNodeBase
 {
 public:
@@ -1775,26 +1658,23 @@ public:
 	// MPropertyHideField
 	AnimNodeID m_nNodeID; // 0x30
 	// MPropertyFriendlyName "Network Mode"
-	// MPropertyAttrStateCallback
 	AnimNodeNetworkMode m_networkMode; // 0x34
-	// MPropertyHideField
-	CUtlString m_sNote; // 0x38
 };
 
 // Aligment: 4
-// Size: 120
+// Size: 104
 class CSequenceAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x50
+	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x40
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x68
+	CUtlString m_sequenceName; // 0x58
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x70
+	float m_playbackSpeed; // 0x60
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x74
+	bool m_bLoop; // 0x64
 };
 
 // Aligment: 3
@@ -1803,7 +1683,7 @@ class CBlendNodeChild
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x0
+	AnimNodeID m_nodeID; // 0x0
 	// MPropertyFriendlyName "Name"
 	CUtlString m_name; // 0x8
 	// MPropertyFriendlyName "Blend Value"
@@ -1811,54 +1691,52 @@ public:
 };
 
 // Aligment: 9
-// Size: 136
+// Size: 128
 class CBlendAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Blend Items"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CBlendNodeChild > m_children; // 0x48
+	CUtlVector< CBlendNodeChild > m_children; // 0x40
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendValueSource; // 0x60
+	AnimValueSource m_blendValueSource; // 0x58
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x64
+	AnimParamID m_param; // 0x5c
 	// MPropertyFriendlyName "Blend Key Values"
-	BlendKeyType m_blendKeyType; // 0x68
+	BlendKeyType m_blendKeyType; // 0x60
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x6c
+	bool m_bLockBlendOnReset; // 0x64
 	// MPropertyFriendlyName "Sync Cycles"
-	bool m_bSyncCycles; // 0x6d
+	bool m_bSyncCycles; // 0x65
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x6e
+	bool m_bLoop; // 0x66
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x6f
+	bool m_bLockWhenWaning; // 0x67
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x70
+	CAnimInputDamping m_damping; // 0x68
 };
 
-// Aligment: 3
-// Size: 112
+// Aligment: 2
+// Size: 104
 class CStateMachineAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimState > > m_states; // 0x50
+	CUtlVector< CSmartPtr< CAnimState > > m_states; // 0x48
 	// MPropertyFriendlyName "Block Tags from Waning States"
-	bool m_bBlockWaningTags; // 0x68
-	// MPropertyFriendlyName "Lock State when Waning"
-	bool m_bLockStateWhenWaning; // 0x69
+	bool m_bBlockWaningTags; // 0x60
 };
 
 // Aligment: 1
-// Size: 72
+// Size: 64
 class CRootAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 };
 
 // Aligment: 4
@@ -1867,7 +1745,7 @@ class CChoiceNodeChild
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x0
+	AnimNodeID m_nodeID; // 0x0
 	// MPropertyFriendlyName "Name"
 	CUtlString m_name; // 0x8
 	// MPropertyFriendlyName "Weight"
@@ -1876,441 +1754,427 @@ public:
 	float m_blendTime; // 0x14
 };
 
-// Aligment: 9
-// Size: 120
+// Aligment: 7
+// Size: 112
 class CChoiceAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Options"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CChoiceNodeChild > m_children; // 0x48
+	CUtlVector< CChoiceNodeChild > m_children; // 0x40
 	// MPropertyHideField
-	int32_t m_seed; // 0x60
+	int32_t m_seed; // 0x58
 	// MPropertyFriendlyName "Method"
-	ChoiceMethod m_choiceMethod; // 0x64
+	ChoiceMethod m_choiceMethod; // 0x5c
 	// MPropertyFriendlyName "Change Selection"
-	ChoiceChangeMethod m_choiceChangeMethod; // 0x68
+	ChoiceChangeMethod m_choiceChangeMethod; // 0x60
 	// MPropertyGroupName "Blending"
 	// MPropertyFriendlyName "Blend Method"
 	// MPropertyAttrChangeCallback
-	ChoiceBlendMethod m_blendMethod; // 0x6c
+	ChoiceBlendMethod m_blendMethod; // 0x64
 	// MPropertyGroupName "Blending"
 	// MPropertyFriendlyName "Blend Duration"
 	// MPropertyAttrStateCallback
-	float m_blendTime; // 0x70
-	// MPropertyGroupName "Blending"
-	// MPropertyFriendlyName "Cross Fade"
-	bool m_bCrossFade; // 0x74
+	float m_blendTime; // 0x68
 	// MPropertyFriendlyName "Reset On Selection"
-	// MPropertyAttrChangeCallback
-	bool m_bResetChosen; // 0x75
-	// MPropertyFriendlyName "Don't Reset Same Selection"
-	// MPropertyAttrStateCallback
-	bool m_bDontResetSameSelection; // 0x76
+	bool m_bResetChosen; // 0x6c
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CCycleControlAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Blend Source"
-	AnimValueSource m_valueSource; // 0x48
+	AnimValueSource m_valueSource; // 0x3c
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x40
 };
 
 // Aligment: 8
-// Size: 96
+// Size: 80
 class CAddAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_baseInput; // 0x40
+	AnimNodeID m_baseChildID; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_additiveInput; // 0x48
+	AnimNodeID m_additiveChildID; // 0x3c
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x50
+	BinaryNodeTiming m_timingBehavior; // 0x40
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x54
+	float m_flTimingBlend; // 0x44
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x58
+	BinaryNodeChildOption m_footMotionTiming; // 0x48
 	// MPropertyFriendlyName "Reset Base Child"
-	bool m_bResetBase; // 0x5c
+	bool m_bResetBase; // 0x4c
 	// MPropertyFriendlyName "Reset Additive Child"
-	bool m_bResetAdditive; // 0x5d
+	bool m_bResetAdditive; // 0x4d
 	// MPropertyFriendlyName "Treat Translation Separately"
-	bool m_bApplyChannelsSeparately; // 0x5e
+	bool m_bApplyChannelsSeparately; // 0x4e
 };
 
 // Aligment: 8
-// Size: 96
+// Size: 80
 class CSubtractAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_baseInputConnection; // 0x40
+	AnimNodeID m_baseChildID; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_subtractInputConnection; // 0x48
+	AnimNodeID m_subtractChildID; // 0x3c
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x50
+	BinaryNodeTiming m_timingBehavior; // 0x40
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x54
+	float m_flTimingBlend; // 0x44
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x58
+	BinaryNodeChildOption m_footMotionTiming; // 0x48
 	// MPropertyFriendlyName "Reset Base Child"
-	bool m_bResetBase; // 0x5c
+	bool m_bResetBase; // 0x4c
 	// MPropertyFriendlyName "Reset Subtracted Child"
-	bool m_bResetSubtract; // 0x5d
+	bool m_bResetSubtract; // 0x4d
 	// MPropertyFriendlyName "Treat Translation Separately"
-	bool m_bApplyChannelsSeparately; // 0x5e
+	bool m_bApplyChannelsSeparately; // 0x4e
 };
 
 // Aligment: 8
-// Size: 112
+// Size: 96
 class CMoverAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Generate Movement"
-	bool m_bApplyMovement; // 0x48
+	bool m_bApplyMovement; // 0x3c
 	// MPropertyFriendlyName "Orient Movement"
-	bool m_bOrientMovement; // 0x49
+	bool m_bOrientMovement; // 0x3d
 	// MPropertyFriendlyName "Additive"
-	bool m_bAdditive; // 0x4a
+	bool m_bAdditive; // 0x3e
 	// MPropertyFriendlyName "Turn to Face"
-	bool m_bTurnToFace; // 0x4b
+	bool m_bTurnToFace; // 0x3f
 	// MPropertyFriendlyName "Turn to Face Offset"
 	// MPropertyAttributeRange "-180 180"
-	float m_flTurnToFaceOffset; // 0x4c
+	float m_flTurnToFaceOffset; // 0x40
 	// MPropertyFriendlyName "Face Direction"
-	AnimValueSource m_facingTarget; // 0x50
+	AnimValueSource m_facingTarget; // 0x44
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x48
 };
 
 // Aligment: 2
-// Size: 80
+// Size: 64
 class CSlowDownOnSlopesAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Slow Down Strength"
 	// MPropertyAttributeRange "0.1 2"
-	float m_flSlowDownStrength; // 0x48
+	float m_flSlowDownStrength; // 0x3c
 };
 
 // Aligment: 7
-// Size: 96
+// Size: 80
 class CTurnHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Turn to Face"
-	AnimValueSource m_facingTarget; // 0x48
+	AnimValueSource m_facingTarget; // 0x3c
 	// MPropertyFriendlyName "Turn Start Time"
-	float m_turnStartTime; // 0x4c
+	float m_turnStartTime; // 0x40
 	// MPropertyFriendlyName "Turn Duration"
-	float m_turnDuration; // 0x50
+	float m_turnDuration; // 0x44
 	// MPropertyFriendlyName "Match Child Duration"
-	bool m_bMatchChildDuration; // 0x54
+	bool m_bMatchChildDuration; // 0x48
 	// MPropertyFriendlyName "Use Manual Turn Offset"
-	bool m_bUseManualTurnOffset; // 0x55
+	bool m_bUseManualTurnOffset; // 0x49
 	// MPropertyFriendlyName "Manual Turn Offset"
-	float m_manualTurnOffset; // 0x58
+	float m_manualTurnOffset; // 0x4c
 };
 
-// Aligment: 12
-// Size: 160
+// Aligment: 11
+// Size: 144
 class CAimMatrixAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x48
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x50
+	CUtlString m_sequenceName; // 0x40
 	// MPropertyFriendlyName "Angle Increment"
-	float m_fAngleIncrement; // 0x58
-	// MPropertyFriendlyName "Can Look Straight Down"
-	bool m_bCanLookStraightDown; // 0x5c
+	float m_fAngleIncrement; // 0x48
 	// MPropertyFriendlyName "Target"
-	AnimVectorSource m_target; // 0x60
+	AnimVectorSource m_target; // 0x4c
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x64
+	AnimParamID m_param; // 0x50
 	// MPropertyFriendlyName "Aim Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x68
+	CUtlString m_attachmentName; // 0x58
 	// MPropertyFriendlyName "Blend Mode"
-	AimMatrixBlendMode m_blendMode; // 0x70
+	AimMatrixBlendMode m_blendMode; // 0x60
 	// MPropertyFriendlyName "Bone Mask"
 	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_boneMaskName; // 0x78
+	CUtlString m_boneMaskName; // 0x68
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0x80
+	bool m_bResetBase; // 0x70
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x81
+	bool m_bLockWhenWaning; // 0x71
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x88
+	CAnimInputDamping m_damping; // 0x78
 };
 
 // Aligment: 2
-// Size: 80
+// Size: 64
 class CSpeedScaleAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_param; // 0x48
+	AnimParamID m_param; // 0x3c
 };
 
 // Aligment: 7
-// Size: 112
+// Size: 104
 class CDirectionalBlendAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence Names Prefix"
-	CUtlString m_animNamePrefix; // 0x40
+	CUtlString m_animNamePrefix; // 0x38
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendValueSource; // 0x48
+	AnimValueSource m_blendValueSource; // 0x40
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x44
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x50
+	bool m_bLoop; // 0x48
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x51
+	bool m_bLockBlendOnReset; // 0x49
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x54
+	float m_playbackSpeed; // 0x4c
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x50
 };
 
 // Aligment: 6
-// Size: 88
+// Size: 72
 class CWayPointHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Start Cycle"
 	// MPropertyAttributeRange "0 1"
-	float m_flStartCycle; // 0x48
+	float m_flStartCycle; // 0x3c
 	// MPropertyFriendlyName "End Cycle"
 	// MPropertyAttributeRange "0 1"
-	float m_flEndCycle; // 0x4c
+	float m_flEndCycle; // 0x40
 	// MPropertyFriendlyName "Only align to Goals"
-	bool m_bOnlyGoals; // 0x50
+	bool m_bOnlyGoals; // 0x44
 	// MPropertyFriendlyName "Prevent Overshoot"
-	bool m_bPreventOvershoot; // 0x51
+	bool m_bPreventOvershoot; // 0x45
 	// MPropertyFriendlyName "Prevent Undershoot"
-	bool m_bPreventUndershoot; // 0x52
+	bool m_bPreventUndershoot; // 0x46
 };
 
 // Aligment: 13
-// Size: 128
+// Size: 112
 class CBoneMaskAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Bone Mask"
 	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_weightListName; // 0x40
+	CUtlString m_weightListName; // 0x38
 	// MPropertyHideField
-	CNodeConnection m_inputConnection1; // 0x48
+	AnimNodeID m_child1ID; // 0x40
 	// MPropertyHideField
-	CNodeConnection m_inputConnection2; // 0x50
+	AnimNodeID m_child2ID; // 0x44
 	// MPropertyFriendlyName "Blend Space"
-	BoneMaskBlendSpace m_blendSpace; // 0x58
+	BoneMaskBlendSpace m_blendSpace; // 0x48
 	// MPropertyFriendlyName "Use Blend Source"
 	// MPropertyAttrChangeCallback
-	bool m_bUseBlendScale; // 0x5c
+	bool m_bUseBlendScale; // 0x4c
 	// MPropertyFriendlyName "Blend Source"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimValueSource m_blendValueSource; // 0x60
+	AnimValueSource m_blendValueSource; // 0x50
 	// MPropertyFriendlyName "Blend Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_blendParameter; // 0x64
+	AnimParamID m_blendParameter; // 0x54
 	// MPropertyFriendlyName "Timing Control"
 	// MPropertyAttrChangeCallback
-	BinaryNodeTiming m_timingBehavior; // 0x68
+	BinaryNodeTiming m_timingBehavior; // 0x58
 	// MPropertyFriendlyName "Timing Blend"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTimingBlend; // 0x6c
+	float m_flTimingBlend; // 0x5c
 	// MPropertyFriendlyName "Root Motion Blend"
 	// MPropertyAttributeRange "0 1"
-	float m_flRootMotionBlend; // 0x70
+	float m_flRootMotionBlend; // 0x60
 	// MPropertyFriendlyName "Foot Motion Timing"
-	BinaryNodeChildOption m_footMotionTiming; // 0x74
+	BinaryNodeChildOption m_footMotionTiming; // 0x64
 	// MPropertyFriendlyName "Reset Child1"
-	bool m_bResetChild1; // 0x78
+	bool m_bResetChild1; // 0x68
 	// MPropertyFriendlyName "Reset Child2"
-	bool m_bResetChild2; // 0x79
+	bool m_bResetChild2; // 0x69
 };
 
 // Aligment: 1
-// Size: 72
+// Size: 64
 class CChoreoAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 64
 class CDirectPlaybackAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Finish Early"
-	bool m_bFinishEarly; // 0x48
+	bool m_bFinishEarly; // 0x3c
 	// MPropertyFriendlyName "Reset Child On Finish"
-	bool m_bResetOnFinish; // 0x49
+	bool m_bResetOnFinish; // 0x3d
 };
 
 // Aligment: 7
-// Size: 144
+// Size: 128
 class CLeanMatrixAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x48
+	CUtlString m_sequenceName; // 0x38
 	// MPropertyFriendlyName "Max Value"
-	float m_flMaxValue; // 0x50
+	float m_flMaxValue; // 0x40
 	// MPropertyFriendlyName "Blend Source"
-	AnimVectorSource m_blendSource; // 0x54
+	AnimVectorSource m_blendSource; // 0x44
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x58
+	AnimParamID m_param; // 0x48
 	// MPropertyFriendlyName "Vertical Axis"
-	Vector m_verticalAxisDirection; // 0x5c
+	Vector m_verticalAxisDirection; // 0x4c
 	// MPropertyFriendlyName "Horizontal Axis"
-	Vector m_horizontalAxisDirection; // 0x68
+	Vector m_horizontalAxisDirection; // 0x58
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x78
+	CAnimInputDamping m_damping; // 0x68
 };
 
-// Aligment: 10
-// Size: 136
+// Aligment: 9
+// Size: 120
 class CTwoBoneIKAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "IK Chain"
 	// MPropertyAttributeChoiceName "IKChain"
-	CUtlString m_ikChainName; // 0x48
+	CUtlString m_ikChainName; // 0x40
 	// MPropertyGroupName "End Effector"
 	// MPropertyFriendlyName "End Effector Type"
 	// MPropertyAttrChangeCallback
-	IkEndEffectorType m_endEffectorType; // 0x50
+	IkEndEffectorType m_endEffectorType; // 0x48
 	// MPropertyGroupName "End Effector"
 	// MPropertyFriendlyName "Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
 	// MPropertyAttrStateCallback
-	CUtlString m_endEffectorAttachmentName; // 0x58
+	CUtlString m_endEffectorAttachmentName; // 0x50
 	// MPropertyGroupName "Target"
 	// MPropertyFriendlyName "Target Type"
 	// MPropertyAttrChangeCallback
-	IkTargetType m_targetType; // 0x60
+	IkTargetType m_targetType; // 0x58
 	// MPropertyGroupName "Target"
 	// MPropertyFriendlyName "Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
 	// MPropertyAttrStateCallback
-	CUtlString m_attachmentName; // 0x68
+	CUtlString m_attachmentName; // 0x60
 	// MPropertyGroupName "Target"
 	// MPropertyFriendlyName "Bone"
 	// MPropertyAttributeChoiceName "Bone"
 	// MPropertyAttrStateCallback
-	CUtlString m_targetBoneName; // 0x70
+	CUtlString m_targetBoneName; // 0x68
 	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Position Parameter"
+	// MPropertyFriendlyName "Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_targetParam; // 0x78
+	AnimParamID m_targetParam; // 0x70
 	// MPropertyGroupName "Target"
 	// MPropertyFriendlyName "Match Target Orientation"
-	// MPropertyAttrChangeCallback
-	bool m_bMatchTargetOrientation; // 0x7c
-	// MPropertyGroupName "Target"
-	// MPropertyFriendlyName "Rotation Parameter"
-	// MPropertyAttributeChoiceName "QuaternionParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_rotationParam; // 0x80
+	bool m_bMatchTargetOrientation; // 0x74
 };
 
 // Aligment: 16
-// Size: 176
+// Size: 168
 class CGroundIKSolveAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "IK Chains"
 	// MPropertyAttributeChoiceName "IKChainOld"
-	CUtlVector< CUtlString > m_IkChains; // 0x48
+	CUtlVector< CUtlString > m_IkChains; // 0x40
 	// MPropertyFriendlyName "Tilt Source"
 	// MPropertyAttributeChoiceEnumName
-	GroundIKTiltSource_t m_TiltSource; // 0x60
+	GroundIKTiltSource_t m_TiltSource; // 0x58
 	// MPropertyFriendlyName "Override Tilt Root"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_OverrideTiltRoot; // 0x68
+	CUtlString m_OverrideTiltRoot; // 0x60
 	// MPropertyFriendlyName "Tilt Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_TiltAttachment; // 0x70
+	CUtlString m_TiltAttachment; // 0x68
 	// MPropertyFriendlyName "Override Tilt Spring Strength"
-	float m_flOverrideTiltSpringStrength; // 0x78
+	float m_flOverrideTiltSpringStrength; // 0x70
 	// MPropertyFriendlyName "Apply Locks"
-	bool m_bApplyLocks; // 0x7c
+	bool m_bApplyLocks; // 0x74
 	// MPropertyFriendlyName "Enabled"
-	bool m_bEnabled; // 0x7d
+	bool m_bEnabled; // 0x75
 	// MPropertyFriendlyName "Target Blend Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_TargetBlendParameter; // 0x80
+	AnimParamID m_TargetBlendParameter; // 0x78
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Bone Types to Draw"
 	// MPropertyAttributeChoiceEnumName
-	CUtlVector< CGroundIKSolveAnimNode::DebugSkeletonBoneType_t > m_DebugDrawBoneTypes; // 0x88
+	CUtlVector< CGroundIKSolveAnimNode::DebugSkeletonBoneType_t > m_DebugDrawBoneTypes; // 0x80
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw Lock Values"
-	bool m_bDebugDrawLockValues; // 0xa0
+	bool m_bDebugDrawLockValues; // 0x98
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Lock Values Color"
-	Color m_DebugDrawLockValuesColor; // 0xa1
+	Color m_DebugDrawLockValuesColor; // 0x99
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw Before"
-	bool m_bDebugDrawBefore; // 0xa5
+	bool m_bDebugDrawBefore; // 0x9d
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Before IK Color"
-	Color m_DebugDrawBeforeColor; // 0xa6
+	Color m_DebugDrawBeforeColor; // 0x9e
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug Draw After"
-	bool m_bDebugDrawAfter; // 0xaa
+	bool m_bDebugDrawAfter; // 0xa2
 	// MPropertyGroupName "Debug"
 	// MPropertyFriendlyName "Debug After IK Color"
-	Color m_DebugDrawAfterColor; // 0xab
+	Color m_DebugDrawAfterColor; // 0xa3
 };
 
 // Aligment: 8
@@ -2349,268 +2213,263 @@ public:
 };
 
 // Aligment: 2
-// Size: 104
+// Size: 88
 class CSolveIKChainAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x48
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "IK Chains"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CSolveIKChainAnimNodeChainData > m_IkChains; // 0x50
+	CUtlVector< CSolveIKChainAnimNodeChainData > m_IkChains; // 0x40
 };
 
 // Aligment: 14
-// Size: 152
+// Size: 136
 class CLookAtAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Target"
-	AnimVectorSource m_target; // 0x48
+	AnimVectorSource m_target; // 0x3c
 	// MPropertyFriendlyName "Target Parameter"
 	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_param; // 0x4c
+	AnimParamID m_param; // 0x40
 	// MPropertyFriendlyName "Weight Parameter"
 	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_weightParam; // 0x50
+	AnimParamID m_weightParam; // 0x44
 	// MPropertyFriendlyName "LookAt Chain"
 	// MPropertyAttributeChoiceName "LookAtChain"
-	CUtlString m_lookatChainName; // 0x58
+	CUtlString m_lookatChainName; // 0x48
 	// MPropertyFriendlyName "Aim Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x60
+	CUtlString m_attachmentName; // 0x50
 	// MPropertyFriendlyName "Yaw Limit"
 	// MPropertyAttributeRange "0 180"
-	float m_flYawLimit; // 0x68
+	float m_flYawLimit; // 0x58
 	// MPropertyFriendlyName "Pitch Limit"
 	// MPropertyAttributeRange "0 180"
-	float m_flPitchLimit; // 0x6c
+	float m_flPitchLimit; // 0x5c
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0x70
+	bool m_bResetBase; // 0x60
 	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x71
+	bool m_bLockWhenWaning; // 0x61
 	// MPropertyFriendlyName "Use Hysteresis"
 	// MPropertyGroupName "Hysteresis"
-	bool m_bUseHysteresis; // 0x72
+	bool m_bUseHysteresis; // 0x62
 	// MPropertyFriendlyName "Inner Angle"
 	// MPropertyGroupName "Hysteresis"
-	float m_flHysteresisInnerAngle; // 0x74
+	float m_flHysteresisInnerAngle; // 0x64
 	// MPropertyFriendlyName "Outer Angle"
 	// MPropertyGroupName "Hysteresis"
-	float m_flHysteresisOuterAngle; // 0x78
+	float m_flHysteresisOuterAngle; // 0x68
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x80
+	CAnimInputDamping m_damping; // 0x70
 };
 
 // Aligment: 4
-// Size: 120
+// Size: 112
 class CNeuralNetAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Weights File"
-	CUtlString m_weightsFile; // 0x40
+	CUtlString m_weightsFile; // 0x38
 	// MPropertyFriendlyName "Test Input File"
-	CUtlString m_testInputFile; // 0x48
+	CUtlString m_testInputFile; // 0x40
 	// MPropertyFriendlyName "Bone Map File"
-	CUtlString m_boneMapFile; // 0x50
+	CUtlString m_boneMapFile; // 0x48
 	// MPropertyFriendlyName "Sensor Range File"
-	CUtlString m_sensorRangeFile; // 0x58
+	CUtlString m_sensorRangeFile; // 0x50
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CPathHelperAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Stopping Radius"
-	float m_flStoppingRadius; // 0x48
+	float m_flStoppingRadius; // 0x3c
 	// MPropertyFriendlyName "Stopping Min Speed Scale"
-	float m_flStoppingSpeedScale; // 0x4c
+	float m_flStoppingSpeedScale; // 0x40
 };
 
 // Aligment: 5
-// Size: 96
+// Size: 88
 class CFollowAttachmentAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Bone"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_boneName; // 0x48
+	CUtlString m_boneName; // 0x40
 	// MPropertyFriendlyName "Target Attachment"
 	// MPropertyAttributeChoiceName "Attachment"
-	CUtlString m_attachmentName; // 0x50
+	CUtlString m_attachmentName; // 0x48
 	// MPropertyFriendlyName "Match Translation"
-	bool m_bMatchTranslation; // 0x58
+	bool m_bMatchTranslation; // 0x50
 	// MPropertyFriendlyName "Match Rotation"
-	bool m_bMatchRotation; // 0x59
-};
-
-// Aligment: 4
-// Size: 80
-class CSkeletalInputAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyFriendlyName "Data Source"
-	// MPropertyAttrChangeCallback
-	AnimVrBoneTransformSource_t m_transformSource; // 0x40
-	// MPropertyFriendlyName "Motion Range"
-	// MPropertyAttrStateCallback
-	AnimVRHandMotionRange_t m_motionRange; // 0x44
-	// MPropertyFriendlyName "Enable IK"
-	// MPropertyGroupName "+Retargetting"
-	bool m_bEnableIK; // 0x48
-	// MPropertyFriendlyName "Enable Collision"
-	// MPropertyGroupName "+Retargetting"
-	bool m_bEnableCollision; // 0x49
-};
-
-// Aligment: 10
-// Size: 160
-class CSelectorAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertySuppressField
-	CUtlVector< CNodeConnection > m_children; // 0x48
-	// MPropertySuppressField
-	CUtlVector< AnimTagID > m_tags; // 0x60
-	// MPropertyFriendlyName "Selection Source"
-	// MPropertyAttrChangeCallback
-	SelectionSource_t m_selectionSource; // 0x78
-	// MPropertyFriendlyName "Bool Parameter"
-	// MPropertyAttributeChoiceName "BoolParameter"
-	// MPropertyAttrChangeCallback
-	// MPropertyAttrStateCallback
-	AnimParamID m_boolParamID; // 0x7c
-	// MPropertyFriendlyName "Enum Parameter"
-	// MPropertyAttributeChoiceName "EnumParameter"
-	// MPropertyAttrChangeCallback
-	// MPropertyAttrStateCallback
-	AnimParamID m_enumParamID; // 0x80
-	// MPropertyFriendlyName "Blend Duration"
-	float m_blendDuration; // 0x84
-	// MPropertyFriendlyName "Tag Behavior"
-	SelectorTagBehavior_t m_tagBehavior; // 0x88
-	// MPropertyFriendlyName "Reset On Change"
-	bool m_bResetOnChange; // 0x8c
-	// MPropertyFriendlyName "Start new option at same cycle"
-	bool m_bSyncCyclesOnChange; // 0x8d
-	// MPropertySuppressField
-	CBlendCurve m_blendCurve; // 0x90
-};
-
-// Aligment: 24
-// Size: 176
-class CHitReactAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
-	// MPropertyFriendlyName "Minimum Delay Between Hits"
-	float m_flMinDelayBetweenHits; // 0x48
-	// MPropertyFriendlyName "Trigger Parameter"
-	// MPropertyAttributeChoiceName "BoolParameter"
-	AnimParamID m_triggerParam; // 0x4c
-	// MPropertyFriendlyName "Hit Bone Parameter"
-	// MPropertyAttributeChoiceName "IntParameter"
-	AnimParamID m_hitBoneParam; // 0x50
-	// MPropertyFriendlyName "Hit Offset Parameter"
-	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_hitOffsetParam; // 0x54
-	// MPropertyFriendlyName "Hit Direction Parameter"
-	// MPropertyAttributeChoiceName "VectorParameter"
-	AnimParamID m_hitDirectionParam; // 0x58
-	// MPropertyFriendlyName "Hit Strength Parameter"
-	// MPropertyAttributeChoiceName "FloatParameter"
-	AnimParamID m_hitStrengthParam; // 0x5c
-	// MPropertyFriendlyName "Bone Weights"
-	// MPropertyAttributeChoiceName "BoneMask"
-	CUtlString m_weightListName; // 0x60
-	// MPropertyFriendlyName "Hip Bone"
-	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_hipBoneName; // 0x68
-	// MPropertyFriendlyName "Hip Translation Scale"
-	float m_flHipBoneTranslationScale; // 0x70
-	// MPropertyFriendlyName "Number of bone effected"
-	int32_t m_nEffectedBoneCount; // 0x74
-	// MPropertyFriendlyName "Max Impact Force"
-	float m_flMaxImpactForce; // 0x78
-	// MPropertyFriendlyName "Min Impact Force"
-	float m_flMinImpactForce; // 0x7c
-	// MPropertyFriendlyName "Whip Impact Scale"
-	float m_flWhipImpactScale; // 0x80
-	// MPropertyFriendlyName "Counter Rotation Scale"
-	float m_flCounterRotationScale; // 0x84
-	// MPropertyFriendlyName "Distance Fade Scale"
-	float m_flDistanceFadeScale; // 0x88
-	// MPropertyFriendlyName "Propagation Scale"
-	float m_flPropagationScale; // 0x8c
-	// MPropertyFriendlyName "Whip Delay Time"
-	float m_flWhipDelay; // 0x90
-	// MPropertyFriendlyName "Spring Strength"
-	float m_flSpringStrength; // 0x94
-	// MPropertyFriendlyName "Whip Spring Strength"
-	float m_flWhipSpringStrength; // 0x98
-	// MPropertyFriendlyName "Hip Dip Spring Strength"
-	float m_flHipDipSpringStrength; // 0x9c
-	// MPropertyFriendlyName "Hip Dip Scale"
-	float m_flHipDipImpactScale; // 0xa0
-	// MPropertyFriendlyName "Hip Dip Delay Time"
-	float m_flHipDipDelay; // 0xa4
-	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetBase; // 0xa8
+	bool m_bMatchRotation; // 0x51
 };
 
 // Aligment: 3
 // Size: 64
-class CBlend2DItem
+class CSkeletalInputAnimNode : public CAnimNodeBase
 {
 public:
-	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x10
-	// MPropertyFriendlyName "Sequence"
-	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x28
-	// MPropertyFriendlyName "Blend Value"
-	Vector2D m_blendValue; // 0x30
+	// MPropertyFriendlyName "Motion Range"
+	AnimVRHandMotionRange_t m_motionRange; // 0x38
+	// MPropertyFriendlyName "Enable IK"
+	// MPropertyGroupName "+Retargetting"
+	bool m_bEnableIK; // 0x3c
+	// MPropertyFriendlyName "Enable Collision"
+	// MPropertyGroupName "+Retargetting"
+	bool m_bEnableCollision; // 0x3d
 };
 
 // Aligment: 10
 // Size: 152
-class CBlend2DAnimNode : public CAnimNodeBase
+class CSelectorAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CBlend2DItem > m_items; // 0x50
-	// MPropertyFriendlyName "Horizontal Axis"
+	CUtlVector< AnimNodeID > m_children; // 0x40
+	// MPropertySuppressField
+	CUtlVector< AnimTagID > m_tags; // 0x58
+	// MPropertyFriendlyName "Selection Source"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendSourceX; // 0x68
-	// MPropertyFriendlyName "Horizontal Parameter"
-	// MPropertyAttributeChoiceName "FloatParameter"
-	// MPropertyAttrStateCallback
-	AnimParamID m_paramX; // 0x6c
-	// MPropertyFriendlyName "Vertical Axis"
+	SelectionSource_t m_selectionSource; // 0x70
+	// MPropertyFriendlyName "Bool Parameter"
+	// MPropertyAttributeChoiceName "BoolParameter"
 	// MPropertyAttrChangeCallback
-	AnimValueSource m_blendSourceY; // 0x70
-	// MPropertyFriendlyName "Vertical Parameter"
-	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_paramY; // 0x74
+	AnimParamID m_boolParamID; // 0x74
+	// MPropertyFriendlyName "Enum Parameter"
+	// MPropertyAttributeChoiceName "EnumParameter"
+	// MPropertyAttrChangeCallback
+	// MPropertyAttrStateCallback
+	AnimParamID m_enumParamID; // 0x78
+	// MPropertyFriendlyName "Blend Duration"
+	float m_blendDuration; // 0x7c
+	// MPropertyFriendlyName "Tag Behavior"
+	SelectorTagBehavior_t m_tagBehavior; // 0x80
+	// MPropertyFriendlyName "Reset On Change"
+	bool m_bResetOnChange; // 0x84
+	// MPropertyFriendlyName "Start new option at same cycle"
+	bool m_bSyncCyclesOnChange; // 0x85
+	// MPropertySuppressField
+	CBlendCurve m_blendCurve; // 0x88
+};
+
+// Aligment: 24
+// Size: 168
+class CHitReactAnimNode : public CAnimNodeBase
+{
+public:
+	// MPropertyHideField
+	AnimNodeID m_childID; // 0x38
+	// MPropertyFriendlyName "Minimum Delay Between Hits"
+	float m_flMinDelayBetweenHits; // 0x3c
+	// MPropertyFriendlyName "Trigger Parameter"
+	// MPropertyAttributeChoiceName "BoolParameter"
+	AnimParamID m_triggerParam; // 0x40
+	// MPropertyFriendlyName "Hit Bone Parameter"
+	// MPropertyAttributeChoiceName "IntParameter"
+	AnimParamID m_hitBoneParam; // 0x44
+	// MPropertyFriendlyName "Hit Offset Parameter"
+	// MPropertyAttributeChoiceName "VectorParameter"
+	AnimParamID m_hitOffsetParam; // 0x48
+	// MPropertyFriendlyName "Hit Direction Parameter"
+	// MPropertyAttributeChoiceName "VectorParameter"
+	AnimParamID m_hitDirectionParam; // 0x4c
+	// MPropertyFriendlyName "Hit Strength Parameter"
+	// MPropertyAttributeChoiceName "FloatParameter"
+	AnimParamID m_hitStrengthParam; // 0x50
+	// MPropertyFriendlyName "Bone Weights"
+	// MPropertyAttributeChoiceName "BoneMask"
+	CUtlString m_weightListName; // 0x58
+	// MPropertyFriendlyName "Hip Bone"
+	// MPropertyAttributeChoiceName "Bone"
+	CUtlString m_hipBoneName; // 0x60
+	// MPropertyFriendlyName "Hip Translation Scale"
+	float m_flHipBoneTranslationScale; // 0x68
+	// MPropertyFriendlyName "Number of bone effected"
+	int32_t m_nEffectedBoneCount; // 0x6c
+	// MPropertyFriendlyName "Max Impact Force"
+	float m_flMaxImpactForce; // 0x70
+	// MPropertyFriendlyName "Min Impact Force"
+	float m_flMinImpactForce; // 0x74
+	// MPropertyFriendlyName "Whip Impact Scale"
+	float m_flWhipImpactScale; // 0x78
+	// MPropertyFriendlyName "Counter Rotation Scale"
+	float m_flCounterRotationScale; // 0x7c
+	// MPropertyFriendlyName "Distance Fade Scale"
+	float m_flDistanceFadeScale; // 0x80
+	// MPropertyFriendlyName "Propagation Scale"
+	float m_flPropagationScale; // 0x84
+	// MPropertyFriendlyName "Whip Delay Time"
+	float m_flWhipDelay; // 0x88
+	// MPropertyFriendlyName "Spring Strength"
+	float m_flSpringStrength; // 0x8c
+	// MPropertyFriendlyName "Whip Spring Strength"
+	float m_flWhipSpringStrength; // 0x90
+	// MPropertyFriendlyName "Hip Dip Spring Strength"
+	float m_flHipDipSpringStrength; // 0x94
+	// MPropertyFriendlyName "Hip Dip Scale"
+	float m_flHipDipImpactScale; // 0x98
+	// MPropertyFriendlyName "Hip Dip Delay Time"
+	float m_flHipDipDelay; // 0x9c
+	// MPropertyFriendlyName "Reset Child"
+	bool m_bResetBase; // 0xa0
+};
+
+// Aligment: 2
+// Size: 16
+class CBlend2DItem
+{
+public:
+	// MPropertyFriendlyName "Sequence"
+	// MPropertyAttributeChoiceName "Sequence"
+	CUtlString m_sequenceName; // 0x0
+	// MPropertyFriendlyName "Blend Value"
+	Vector2D m_blendValue; // 0x8
+};
+
+// Aligment: 10
+// Size: 136
+class CBlend2DAnimNode : public CAnimNodeBase
+{
+public:
+	// MPropertyFriendlyName "Blend Items"
+	// MPropertyAutoExpandGroup
+	CUtlVector< CBlend2DItem > m_items; // 0x38
+	// MPropertyFriendlyName "Blend Source"
+	// MPropertyGroupName "Horizontal Axis"
+	AnimValueSource m_blendSourceX; // 0x50
+	// MPropertyFriendlyName "Parameter"
+	// MPropertyAttributeChoiceName "FloatParameter"
+	// MPropertyGroupName "Horizontal Axis"
+	AnimParamID m_paramX; // 0x54
+	// MPropertyFriendlyName "Blend Source"
+	// MPropertyGroupName "Vertical Axis"
+	AnimValueSource m_blendSourceY; // 0x58
+	// MPropertyFriendlyName "Parameter"
+	// MPropertyAttributeChoiceName "FloatParameter"
+	// MPropertyGroupName "Vertical Axis"
+	AnimParamID m_paramY; // 0x5c
+	// MPropertyFriendlyName "Blend Mode"
+	Blend2DMode m_eBlendNode; // 0x60
 	// MPropertyFriendlyName "Loop"
-	bool m_bLoop; // 0x78
+	bool m_bLoop; // 0x64
 	// MPropertyFriendlyName "Lock Blend on Reset"
-	bool m_bLockBlendOnReset; // 0x79
-	// MPropertyFriendlyName "Lock Blend When Waning"
-	bool m_bLockWhenWaning; // 0x7a
+	bool m_bLockBlendOnReset; // 0x65
 	// MPropertyFriendlyName "Playback Speed"
-	float m_playbackSpeed; // 0x7c
+	float m_playbackSpeed; // 0x68
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x80
+	CAnimInputDamping m_damping; // 0x70
 };
 
 // Aligment: 7
@@ -2641,312 +2500,291 @@ public:
 	AnimTagID m_footstepLandedTag; // 0x24
 };
 
-// Aligment: 36
-// Size: 296
+// Aligment: 31
+// Size: 248
 class CFootLockAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Feet"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CFootLockItem > m_items; // 0x48
+	CUtlVector< CFootLockItem > m_items; // 0x40
 	// MPropertyFriendlyName "Hip Bone"
 	// MPropertyAttributeChoiceName "Bone"
-	CUtlString m_hipBoneName; // 0x60
+	CUtlString m_hipBoneName; // 0x58
 	// MPropertyFriendlyName "Blend Time"
-	float m_flBlendTime; // 0x68
+	float m_flBlendTime; // 0x60
 	// MPropertyFriendlyName "Apply Foot Rotation Limits"
-	bool m_bApplyFootRotationLimits; // 0x6c
+	bool m_bApplyFootRotationLimits; // 0x64
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetChild; // 0x6d
+	bool m_bResetChild; // 0x65
 	// MPropertyFriendlyName "IK Solver Type"
 	// MPropertyGroupName "IK"
 	// MPropertyAttrChangeCallback
-	IKSolverType m_ikSolverType; // 0x70
+	IKSolverType m_ikSolverType; // 0x68
 	// MPropertyFriendlyName "Always use fallback hinge"
 	// MPropertyGroupName "IK"
 	// MPropertyAttrStateCallback
-	bool m_bAlwaysUseFallbackHinge; // 0x74
+	bool m_bAlwaysUseFallbackHinge; // 0x6c
 	// MPropertyFriendlyName "Curve Foot Paths"
 	// MPropertyGroupName "Curve Paths"
 	// MPropertyAttributeRange "0 1"
-	float m_flStrideCurveScale; // 0x78
+	float m_flStrideCurveScale; // 0x70
 	// MPropertyFriendlyName "Curve Paths Limit"
 	// MPropertyGroupName "Curve Paths"
 	// MPropertyAttributeRange "0 1"
-	float m_flStrideCurveLimitScale; // 0x7c
+	float m_flStrideCurveLimitScale; // 0x74
 	// MPropertyFriendlyName "Enable Vertical Curved Paths"
 	// MPropertyGroupName "Curve Paths"
-	bool m_bEnableVerticalCurvedPaths; // 0x80
+	bool m_bEnableVerticalCurvedPaths; // 0x78
 	// MPropertyFriendlyName "Modulate Step Height"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrChangeCallback
-	bool m_bModulateStepHeight; // 0x81
+	bool m_bModulateStepHeight; // 0x79
 	// MPropertyFriendlyName "Height Increase Scale"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrStateCallback
-	float m_flStepHeightIncreaseScale; // 0x84
+	float m_flStepHeightIncreaseScale; // 0x7c
 	// MPropertyFriendlyName "Height Decrease Scale"
 	// MPropertyGroupName "Step Height"
 	// MPropertyAttrStateCallback
-	float m_flStepHeightDecreaseScale; // 0x88
+	float m_flStepHeightDecreaseScale; // 0x80
 	// MPropertyFriendlyName "Enable Hip Shift"
 	// MPropertyGroupName "Hip Shift"
-	bool m_bEnableHipShift; // 0x8c
+	bool m_bEnableHipShift; // 0x84
 	// MPropertyFriendlyName "Hip Shift Scale"
 	// MPropertyGroupName "Hip Shift"
 	// MPropertyAttributeRange "0 1"
-	float m_flHipShiftScale; // 0x90
+	float m_flHipShiftScale; // 0x88
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Hip Shift"
-	CAnimInputDamping m_hipShiftDamping; // 0x98
+	CAnimInputDamping m_hipShiftDamping; // 0x90
 	// MPropertyFriendlyName "Apply Tilt"
 	// MPropertyGroupName "Tilt"
-	bool m_bApplyTilt; // 0xb0
+	bool m_bApplyTilt; // 0xa8
 	// MPropertyFriendlyName "Tilt Plane Pitch Spring Strength"
 	// MPropertyGroupName "Tilt"
-	float m_flTiltPlanePitchSpringStrength; // 0xb4
+	float m_flTiltPlanePitchSpringStrength; // 0xac
 	// MPropertyFriendlyName "Tilt Plane Roll Spring Strength"
 	// MPropertyGroupName "Tilt"
-	float m_flTiltPlaneRollSpringStrength; // 0xb8
+	float m_flTiltPlaneRollSpringStrength; // 0xb0
 	// MPropertyFriendlyName "Enable Lock Breaking"
 	// MPropertyGroupName "Lock Breaking"
-	bool m_bEnableLockBreaking; // 0xbc
-	// MPropertyFriendlyName "Tolerance"
-	// MPropertyGroupName "Lock Breaking"
-	float m_flLockBreakTolerance; // 0xc0
+	bool m_bEnableLockBreaking; // 0xb4
 	// MPropertyFriendlyName "Blend Time"
 	// MPropertyGroupName "Lock Breaking"
-	float m_flLockBreakBlendTime; // 0xc4
+	float m_flLockBreakBlendTime; // 0xb8
 	// MPropertyFriendlyName "Enable Stretching"
 	// MPropertyGroupName "Stretch"
-	bool m_bEnableStretching; // 0xc8
+	bool m_bEnableStretching; // 0xbc
 	// MPropertyFriendlyName "Max Stretch Amount"
 	// MPropertyGroupName "Stretch"
-	float m_flMaxStretchAmount; // 0xcc
+	float m_flMaxStretchAmount; // 0xc0
 	// MPropertyFriendlyName "Extension Scale"
 	// MPropertyGroupName "Stretch"
 	// MPropertyAttributeRange "0 1"
-	float m_flStretchExtensionScale; // 0xd0
+	float m_flStretchExtensionScale; // 0xc4
 	// MPropertyFriendlyName "Enable Ground Tracing"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrChangeCallback
-	bool m_bEnableGroundTracing; // 0xd4
+	bool m_bEnableGroundTracing; // 0xc8
 	// MPropertyFriendlyName "Angle Traces with Slope"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flTraceAngleBlend; // 0xd8
+	float m_flTraceAngleBlend; // 0xcc
 	// MPropertyFriendlyName "Apply Hip Drop"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	bool m_bApplyHipDrop; // 0xdc
+	bool m_bApplyHipDrop; // 0xd0
 	// MPropertyFriendlyName "Max Foot Lift"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	float m_flMaxFootHeight; // 0xe0
+	float m_flMaxFootHeight; // 0xd4
 	// MPropertyFriendlyName "Leg Extension Scale"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	float m_flExtensionScale; // 0xe4
+	float m_flExtensionScale; // 0xd8
 	// MPropertyFriendlyName "Hip Damping"
 	// MPropertyGroupName "Ground IK"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_hipDampingSettings; // 0xe8
-	// MPropertyFriendlyName "Enable Root Height Damping"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrChangeCallback
-	bool m_bEnableRootHeightDamping; // 0x100
-	// MPropertyFriendlyName "Damping Settings"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	CAnimInputDamping m_rootHeightDamping; // 0x108
-	// MPropertyFriendlyName "Max Offset"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	float m_flMaxRootHeightOffset; // 0x120
-	// MPropertyFriendlyName "Min Offset"
-	// MPropertyGroupName "Root Height Damping"
-	// MPropertyAttrStateCallback
-	float m_flMinRootHeightOffset; // 0x124
+	CAnimInputDamping m_hipDampingSettings; // 0xe0
 };
 
-// Aligment: 14
-// Size: 136
+// Aligment: 13
+// Size: 128
 class CFollowPathAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Blend Out Time"
-	float m_flBlendOutTime; // 0x48
+	float m_flBlendOutTime; // 0x3c
 	// MPropertyFriendlyName "Block Non-Path Movement"
-	bool m_bBlockNonPathMovement; // 0x4c
-	// MPropertyFriendlyName "Stop Feet at Goal"
-	bool m_bStopFeetAtGoal; // 0x4d
+	bool m_bBlockNonPathMovement; // 0x40
 	// MPropertyFriendlyName "Enable Speed Scaling"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttrChangeCallback
-	bool m_bScaleSpeed; // 0x4e
+	bool m_bScaleSpeed; // 0x41
 	// MPropertyFriendlyName "Scale"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 1"
 	// MPropertyAttrStateCallback
-	float m_flScale; // 0x50
+	float m_flScale; // 0x44
 	// MPropertyFriendlyName "Min Angle"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 180"
 	// MPropertyAttrStateCallback
-	float m_flMinAngle; // 0x54
+	float m_flMinAngle; // 0x48
 	// MPropertyFriendlyName "Max Angle"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttributeRange "0 180"
 	// MPropertyAttrStateCallback
-	float m_flMaxAngle; // 0x58
+	float m_flMaxAngle; // 0x4c
 	// MPropertyFriendlyName "Blend Time"
 	// MPropertyGroupName "Speed Scaling"
 	// MPropertyAttrStateCallback
-	float m_flSpeedScaleBlending; // 0x5c
+	float m_flSpeedScaleBlending; // 0x50
 	// MPropertyFriendlyName "Enable Turn to Face"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrChangeCallback
-	bool m_bTurnToFace; // 0x60
+	bool m_bTurnToFace; // 0x54
 	// MPropertyFriendlyName "Target"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrChangeCallback
 	// MPropertyAttrStateCallback
-	AnimValueSource m_facingTarget; // 0x64
+	AnimValueSource m_facingTarget; // 0x58
 	// MPropertyFriendlyName "Parameter"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttributeChoiceName "FloatParameter"
 	// MPropertyAttrStateCallback
-	AnimParamID m_param; // 0x68
+	AnimParamID m_param; // 0x5c
 	// MPropertyFriendlyName "Offset"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttributeRange "-180 180"
 	// MPropertyAttrStateCallback
-	float m_flTurnToFaceOffset; // 0x6c
+	float m_flTurnToFaceOffset; // 0x60
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Turn to Face"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_damping; // 0x70
+	CAnimInputDamping m_damping; // 0x68
 };
 
 // Aligment: 24
-// Size: 232
+// Size: 216
 class CMotionMatchingAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CMotionClipGroup > > m_clipGroups; // 0x50
+	CUtlVector< CSmartPtr< CMotionClipGroup > > m_clipGroups; // 0x40
 	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CMotionMetricBase > > m_metrics; // 0x68
+	CUtlVector< CSmartPtr< CMotionMetricBase > > m_metrics; // 0x58
 	// MPropertySuppressField
-	CBlendCurve m_blendCurve; // 0x80
+	CBlendCurve m_blendCurve; // 0x70
 	// MPropertyFriendlyName "Prediction Time"
-	float m_flPredictionTime; // 0x90
+	float m_flPredictionTime; // 0x80
 	// MPropertyFriendlyName "Sampling Method"
 	// MPropertyAttrChangeCallback
-	MotionSamplingMethod m_samplingMethod; // 0x94
+	MotionSamplingMethod m_samplingMethod; // 0x84
 	// MPropertyFriendlyName "Sample Rate"
 	// MPropertyAttrStateCallback
-	float m_flSampleRate; // 0x98
+	float m_flSampleRate; // 0x88
 	// MPropertyFriendlyName "Search at fixed interval"
 	// MPropertyGroupName "Search Triggers"
 	// MPropertyAttrChangeCallback
-	bool m_bSearchAtInterval; // 0x9c
+	bool m_bSearchAtInterval; // 0x8c
 	// MPropertyFriendlyName "Search Interval"
 	// MPropertyGroupName "Search Triggers"
 	// MPropertyAttrStateCallback
-	float m_flSearchInterval; // 0xa0
+	float m_flSearchInterval; // 0x90
 	// MPropertyFriendlyName "Search on Steps"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchOnSteps; // 0xa4
+	bool m_bSearchOnSteps; // 0x94
 	// MPropertyFriendlyName "Search when tags change"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bForceSearchWhenTagsChange; // 0xa5
+	bool m_bForceSearchWhenTagsChange; // 0x95
 	// MPropertyFriendlyName "Search when clip ends"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchWhenClipEnds; // 0xa6
+	bool m_bSearchWhenClipEnds; // 0x96
 	// MPropertyFriendlyName "Search when goal changes"
 	// MPropertyGroupName "Search Triggers"
-	bool m_bSearchWhenGoalChanges; // 0xa7
+	bool m_bSearchWhenGoalChanges; // 0x97
 	// MPropertyFriendlyName "Blend Time"
-	float m_flBlendTime; // 0xa8
+	float m_flBlendTime; // 0x98
 	// MPropertyFriendlyName "Selection Threshold"
-	float m_flSelectionThreshold; // 0xac
+	float m_flSelectionThreshold; // 0x9c
 	// MPropertyFriendlyName "Lock Clip When Waning"
-	bool m_bLockClipWhenWaning; // 0xb0
+	bool m_bLockClipWhenWaning; // 0xa0
 	// MPropertyFriendlyName "Enable Goal Assist"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrChangeCallback
-	bool m_bGoalAssist; // 0xb1
+	bool m_bGoalAssist; // 0xa1
 	// MPropertyFriendlyName "Goal Assist Distance"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrStateCallback
-	float m_flGoalAssistDistance; // 0xb4
+	float m_flGoalAssistDistance; // 0xa4
 	// MPropertyFriendlyName "Goal Assist Tolerance"
 	// MPropertyGroupName "Goal Assist"
 	// MPropertyAttrStateCallback
-	float m_flGoalAssistTolerance; // 0xb8
+	float m_flGoalAssistTolerance; // 0xa8
 	// MPropertyFriendlyName "Enable Distance Scaling"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrChangeCallback
-	bool m_bEnableDistanceScaling; // 0xbc
+	bool m_bEnableDistanceScaling; // 0xac
 	// MPropertyFriendlyName "Outer Stopping Radius"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_OuterRadius; // 0xc0
+	float m_flDistanceScale_OuterRadius; // 0xb0
 	// MPropertyFriendlyName "Inner Stopping Radius"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_InnerRadius; // 0xc4
+	float m_flDistanceScale_InnerRadius; // 0xb4
 	// MPropertyFriendlyName "Maximum Speed Scale"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_MaxScale; // 0xc8
+	float m_flDistanceScale_MaxScale; // 0xb8
 	// MPropertyFriendlyName "Minimum Speed Scale"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	float m_flDistanceScale_MinScale; // 0xcc
+	float m_flDistanceScale_MinScale; // 0xbc
 	// MPropertyFriendlyName "Damping"
 	// MPropertyGroupName "Distance Scaling"
 	// MPropertyAttrStateCallback
-	CAnimInputDamping m_distanceScale_Damping; // 0xd0
+	CAnimInputDamping m_distanceScale_Damping; // 0xc0
 };
 
 // Aligment: 3
-// Size: 80
+// Size: 72
 class CSetFacingAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Facing Mode"
-	FacingMode m_facingMode; // 0x48
+	FacingMode m_facingMode; // 0x3c
 	// MPropertyFriendlyName "Reset Child"
-	bool m_bResetChild; // 0x4c
+	bool m_bResetChild; // 0x40
 };
 
 // Aligment: 6
-// Size: 112
+// Size: 104
 class CStopAtGoalAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Outer Stopping Radius"
-	float m_flOuterRadius; // 0x48
+	float m_flOuterRadius; // 0x3c
 	// MPropertyFriendlyName "Inner Stopping Radius"
-	float m_flInnerRadius; // 0x4c
+	float m_flInnerRadius; // 0x40
 	// MPropertyFriendlyName "Maximum Speed Scale"
-	float m_flMaxScale; // 0x50
+	float m_flMaxScale; // 0x44
 	// MPropertyFriendlyName "Minimum Speed Scale"
-	float m_flMinScale; // 0x54
+	float m_flMinScale; // 0x48
 	// MPropertyFriendlyName "Damping"
-	CAnimInputDamping m_damping; // 0x58
+	CAnimInputDamping m_damping; // 0x50
 };
 
 // Aligment: 7
@@ -2975,145 +2813,31 @@ public:
 };
 
 // Aligment: 2
-// Size: 96
+// Size: 88
 class CJiggleBoneAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
+	AnimNodeID m_childID; // 0x38
 	// MPropertyFriendlyName "Jiggle Bones"
 	// MPropertyAutoExpandGroup
-	CUtlVector< CJiggleBoneItem > m_items; // 0x48
+	CUtlVector< CJiggleBoneItem > m_items; // 0x40
 };
 
-// Aligment: 3
-// Size: 120
+// Aligment: 2
+// Size: 72
 class CSingleFrameAnimNode : public CAnimNodeBase
 {
 public:
 	// MPropertyFriendlyName "Sequence"
 	// MPropertyAttributeChoiceName "Sequence"
-	CUtlString m_sequenceName; // 0x50
+	CUtlString m_sequenceName; // 0x38
 	// MPropertyFriendlyName "Frame"
-	int32_t m_nFrameIndex; // 0x58
-	// MPropertySuppressField
-	CUtlVector< CSmartPtr< CAnimTagSpan > > m_tagSpans; // 0x60
+	int32_t m_nFrameIndex; // 0x40
 };
 
-// Aligment: 3
-// Size: 96
-class CCommentAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertySuppressField
-	CUtlString m_commentText; // 0x48
-	// MPropertySuppressField
-	Vector2D m_size; // 0x50
-	// MPropertyFriendlyName "Color"
-	// MPropertyColorWithNoAlpha
-	Color m_color; // 0x58
-};
-
-// Aligment: 0
-// Size: 64
-class CInputStreamAnimNode : public CAnimNodeBase
-{
-public:
-// <no members described>
-};
-
-// Aligment: 3
-// Size: 40
-class CFootStepTriggerItem
-{
-public:
-	// MPropertyFriendlyName "Foot"
-	// MPropertyAttributeChoiceName "Foot"
-	CUtlString m_footName; // 0x0
-	// MPropertyFriendlyName "Trigger Phase"
-	StepPhase m_triggerPhase; // 0x8
-	// MPropertyFriendlyName "Tags"
-	// MPropertyAttributeChoiceName "Tag"
-	CUtlVector< AnimTagID > m_tags; // 0x10
-};
-
-// Aligment: 3
-// Size: 104
-class CFootStepTriggerAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x40
-	// MPropertyFriendlyName "Tolerance"
-	float m_flTolerance; // 0x48
-	// MPropertyFriendlyName "Feet"
-	// MPropertyAutoExpandGroup
-	CUtlVector< CFootStepTriggerItem > m_items; // 0x50
-};
-
-// Aligment: 3
-// Size: 24
-class CConnectionProxyItem
-{
-public:
-	// MPropertyFriendlyName "Name"
-	CUtlString m_name; // 0x0
-	// MPropertyHideField
-	AnimOutputID m_outputID; // 0x8
-	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0xc
-};
-
-// Aligment: 2
-// Size: 128
-class CGroupAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	AnimNodeID m_inputNodeID; // 0x48
-	// MPropertyHideField
-	AnimNodeID m_outputNodeID; // 0x4c
-};
-
-// Aligment: 1
-// Size: 88
-class CGroupInputAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyFriendlyName "External Connections"
-	// MPropertyAutoExpandGroup
-	// MPropertyAttrStateCallback
-	CUtlVector< CConnectionProxyItem > m_proxyItems; // 0x40
-};
-
-// Aligment: 1
-// Size: 88
-class CGroupOutputAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyFriendlyName "External Connections"
-	// MPropertyAutoExpandGroup
-	// MPropertyAttrStateCallback
-	CUtlVector< CConnectionProxyItem > m_proxyItems; // 0x40
-};
-
-// Aligment: 3
-// Size: 152
-class CSubGraphAnimNode : public CAnimNodeBase
-{
-public:
-	// MPropertyHideField
-	AnimNodeID m_inputNodeID; // 0x48
-	// MPropertyHideField
-	AnimNodeID m_outputNodeID; // 0x4c
-	// MPropertyAttributeEditor "AssetBrowse( vsubgrph )"
-	// MPropertyFriendlyName "SubGraph File"
-	// MPropertyAttrChangeCallback
-	CUtlString m_subGraphFilename; // 0x70
-};
-
-// Aligment: 12
-// Size: 144
+// Aligment: 11
+// Size: 136
 class CAnimState
 {
 public:
@@ -3127,21 +2851,19 @@ public:
 	// MPropertySortPriority "100"
 	CUtlString m_name; // 0x68
 	// MPropertyHideField
-	CNodeConnection m_inputConnection; // 0x70
+	AnimNodeID m_childNodeID; // 0x70
 	// MPropertyHideField
-	AnimStateID m_stateID; // 0x78
+	AnimStateID m_stateID; // 0x74
 	// MPropertyHideField
-	Vector2D m_position; // 0x7c
+	Vector2D m_position; // 0x78
 	// MPropertyFriendlyName "Start State"
-	bool m_bIsStartState; // 0x84
+	bool m_bIsStartState; // 0x80
 	// MPropertyFriendlyName "End State"
-	bool m_bIsEndtState; // 0x85
+	bool m_bIsEndtState; // 0x81
 	// MPropertyFriendlyName "Passthrough"
-	bool m_bIsPassthrough; // 0x86
+	bool m_bIsPassthrough; // 0x82
 	// MPropertyFriendlyName "Exclusive Root Motion"
-	bool m_bIsRootMotionExclusive; // 0x87
-	// MPropertyFriendlyName "Always Evaluate"
-	bool m_bAlwaysEvaluate; // 0x88
+	bool m_bIsRootMotionExclusive; // 0x83
 };
 
 // Aligment: 9
@@ -3178,7 +2900,7 @@ public:
 };
 
 // Aligment: 2
-// Size: 72
+// Size: 64
 class CParameterAnimCondition : public CAnimStateConditionBase
 {
 public:
@@ -3316,16 +3038,16 @@ public:
 };
 
 // Aligment: 2
-// Size: 72
+// Size: 224
 class CAnimMovementManager
 {
 public:
 	CAnimMotorList m_MotorList; // 0x18
-	CAnimMovementSettings m_MovementSettings; // 0x38
+	CAnimMovementSettings m_MovementSettings; // 0xd0
 };
 
 // Aligment: 1
-// Size: 48
+// Size: 200
 class CAnimTagManager
 {
 public:
@@ -3681,14 +3403,15 @@ public:
 	bool m_bIgnoreSlope; // 0x40
 };
 
-// Aligment: 3
-// Size: 96
+// Aligment: 4
+// Size: 112
 class CAnimReplayFrame
 {
 public:
 	CUtlBinaryBlock m_instanceData; // 0x10
-	CTransform m_localToWorldTransform; // 0x30
-	float m_timeStamp; // 0x50
+	CUtlBinaryBlock m_poseRecipeInstanceData; // 0x28
+	CTransform m_localToWorldTransform; // 0x40
+	float m_timeStamp; // 0x60
 };
 
 // Aligment: 5
diff --git a/sdk/client.hpp b/sdk/client.hpp
index b1fde247..bde82ae1 100644
--- a/sdk/client.hpp
+++ b/sdk/client.hpp
@@ -4,10 +4,36 @@
 
 ///////////////////////////////////////////
 // Binary: client.dll
-// Class Count: 106
-// Enum Count: 1
+// Class Count: 210
+// Enum Count: 3
 ///////////////////////////////////////////
 
+// Aligment: 4
+// Size: 9
+enum class NPC_STATE : uint32_t
+{
+	NPC_STATE_INVALID = 0xffffffffffffffff,
+	NPC_STATE_NONE = 0x0,
+	NPC_STATE_IDLE = 0x1,
+	NPC_STATE_ALERT = 0x2,
+	NPC_STATE_COMBAT = 0x3,
+	NPC_STATE_SCRIPT = 0x4,
+	NPC_STATE_PLAYDEAD = 0x5,
+	NPC_STATE_PRONE = 0x6,
+	NPC_STATE_DEAD = 0x7,
+};
+
+// Aligment: 4
+// Size: 5
+enum class C_BaseCombatCharacter::WaterWakeMode_t : uint32_t
+{
+	C_BaseCombatCharacter::WATER_WAKE_NONE = 0x0,
+	C_BaseCombatCharacter::WATER_WAKE_IDLE = 0x1,
+	C_BaseCombatCharacter::WATER_WAKE_WALKING = 0x2,
+	C_BaseCombatCharacter::WATER_WAKE_RUNNING = 0x3,
+	C_BaseCombatCharacter::WATER_WAKE_WATER_OVERHEAD = 0x4,
+};
+
 // Aligment: 4
 // Size: 13
 enum class PostProcessParameterNames_t : uint32_t
@@ -27,12 +53,23 @@ enum class PostProcessParameterNames_t : uint32_t
 	POST_PROCESS_PARAMETER_COUNT = 0xc,
 };
 
-// Aligment: 1
-// Size: 16
-class C_PlayerState
+// Aligment: 4
+// Size: 72
+struct ActiveModelConfig_t
 {
 public:
-	bool deadflag; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	ModelConfigHandle_t m_Handle; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_Name; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< C_BaseModelEntity > > m_AssociatedEntities; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CUtlSymbolLarge > m_AssociatedEntityNames; // 0x30
 };
 
 // Aligment: 6
@@ -62,7 +99,7 @@ public:
 };
 
 // Aligment: 19
-// Size: 2584
+// Size: 3008
 class CAnimGraphNetworkedVariables
 {
 public:
@@ -147,7 +184,7 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkUserGroup "animationgraph"
-	float m_flLastTeleportTime; // 0xa0c
+	float m_flLastTeleportTime; // 0xbb4
 };
 
 // Aligment: 5
@@ -163,12 +200,12 @@ public:
 };
 
 // Aligment: 2
-// Size: 1584
+// Size: 856
 class C_CommandContext
 {
 public:
 	bool needsprocessing; // 0x0
-	int32_t command_number; // 0x628
+	int32_t command_number; // 0x350
 };
 
 // Aligment: 30
@@ -279,8 +316,8 @@ public:
 	static float &Get_m_flVisibleBBoxMinHeight() { return *reinterpret_cast<float*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CProjectedTextureBase")->m_static_fiels[0]->m_instance); }
 };
 
-// Aligment: 4
-// Size: 224
+// Aligment: 29
+// Size: 488
 class C_PlayerLocalData
 {
 public:
@@ -293,9 +330,105 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	uint8[24] m_chAreaPortalBits; // 0x38
+	int32_t m_nStepside; // 0x50
+	int32_t m_nOldButtons; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	sky3dparams_t m_skybox3d; // 0x50
+	float m_flFOVRate; // 0x58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	uint32_t m_iHideHUD; // 0x5c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkPriority "64"
+	uint32_t m_nDuckTimeMsecs; // 0x60
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nDuckJumpTimeMsecs; // 0x64
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nJumpTimeMsecs; // 0x68
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	// MNetworkMinValue "-4096"
+	// MNetworkMaxValue "4096"
+	float m_flFallVelocity; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	// MNetworkEncodeFlags
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "128"
+	float m_flStepSize; // 0x70
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngle; // 0x78
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngleVel; // 0x90
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucked; // 0xa8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucking; // 0xa9
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInDuckJump; // 0xaa
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDrawViewmodel; // 0xab
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWearingSuit; // 0xac
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoisoned; // 0xad
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowAutoMovement; // 0xae
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bSlowMovement; // 0xaf
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAutoAimTarget; // 0xb0
+	// MNetworkEnable
+	// MNetworkEnable
+	sky3dparams_t m_skybox3d; // 0xb8
+	// MNetworkEnable
+	// MNetworkEnable
+	audioparams_t m_audio; // 0x140
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< C_PostProcessingVolume > > m_PostProcessingVolumes; // 0x1b8
+	bool m_bInLanding; // 0x1d4
+	float m_flLandingTime; // 0x1d8
+	Vector m_vecClientBaseVelocity; // 0x1dc
+};
+
+// Aligment: 1
+// Size: 56
+struct PostProcessParameters_t
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float32[12] m_flParameters; // 0x8
+};
+
+// Aligment: 1
+// Size: 16
+class C_RopeKeyframe::CPhysicsDelegate
+{
+public:
+	C_RopeKeyframe* m_pKeyframe; // 0x8
 };
 
 // Aligment: 1
@@ -306,6 +439,48 @@ public:
 	float starttime; // 0x0
 };
 
+// Aligment: 15
+// Size: 776
+class CFlashlightEffect
+{
+public:
+	bool m_bIsOn; // 0x8
+	bool m_bMuzzleFlashEnabled; // 0x18
+	float m_flMuzzleFlashBrightness; // 0x1c
+	Quaternion m_quatMuzzleFlashOrientation; // 0x20
+	Vector m_vecMuzzleFlashOrigin; // 0x30
+	float m_flDT; // 0x3c
+	float m_flFov; // 0x40
+	float m_flFarZ; // 0x44
+	float m_flLinearAtten; // 0x48
+	bool m_bCastsShadows; // 0x4c
+	float m_flCurrentPullBackDist; // 0x50
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_FlashlightTexture; // 0x58
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_MuzzleFlashTexture; // 0x60
+	CWeakHandle< InfoForResourceTypeCTextureBase > m_hCurrentFlashlightTexture; // 0x68
+	char[64] m_textureName; // 0x70
+};
+
+// Aligment: 0
+// Size: 776
+class CHeadlightEffect : public CFlashlightEffect
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 20
+class CInterpolatedValue
+{
+public:
+	float m_flStartTime; // 0x0
+	float m_flEndTime; // 0x4
+	float m_flStartValue; // 0x8
+	float m_flEndValue; // 0xc
+	int32_t m_nInterpType; // 0x10
+};
+
 // Aligment: 4
 // Size: 32
 class CGlowSprite
@@ -339,24 +514,6 @@ public:
 	int32_t m_queryHandle; // 0xc8
 };
 
-// Aligment: 0
-// Size: 8
-class IClientAlphaProperty
-{
-public:
-// <no members described>
-};
-
-// Aligment: 1
-// Size: 56
-struct PostProcessParameters_t
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	float32[12] m_flParameters; // 0x8
-};
-
 // Aligment: 2
 // Size: 8
 class TimedEvent
@@ -376,8 +533,51 @@ public:
 	int32_t m_iFlags; // 0x18
 };
 
+// Aligment: 0
+// Size: 8
+class IClientAlphaProperty
+{
+public:
+// <no members described>
+};
+
 // Aligment: 10
-// Size: 160
+// Size: 96
+class JiggleData
+{
+public:
+	int32_t bone; // 0x0
+	int32_t id; // 0x4
+	float lastUpdate; // 0x8
+	Vector basePos; // 0xc
+	Vector baseLastPos; // 0x18
+	Vector baseVel; // 0x24
+	Vector baseAccel; // 0x30
+	Vector tipPos; // 0x3c
+	Vector tipVel; // 0x48
+	Vector tipAccel; // 0x54
+};
+
+// Aligment: 0
+// Size: 40
+class CJiggleBones
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 24
+class C_PlayerState
+{
+public:
+	bool deadflag; // 0x8
+	bool hltv; // 0x9
+	QAngle v_angle; // 0xc
+};
+
+// Aligment: 10
+// Size: 152
 class CDecalInfo
 {
 public:
@@ -390,7 +590,7 @@ public:
 	int32_t m_nBoneIndex; // 0x18
 	CDecalInfo* m_pNext; // 0x28
 	CDecalInfo* m_pPrev; // 0x30
-	uint64_t m_nDecalMaterialIndex; // 0x98
+	int32_t m_nDecalMaterialIndex; // 0x90
 };
 
 // Aligment: 2
@@ -491,6 +691,24 @@ public:
 // <no members described>
 };
 
+// Aligment: 3
+// Size: 48
+class C_CHintMessageQueue
+{
+public:
+	float m_tmMessageEnd; // 0x8
+	CUtlVector< CHintMessage* > m_messages; // 0x10
+	C_BasePlayer* m_pPlayer; // 0x28
+};
+
+// Aligment: 0
+// Size: 32
+class C_MultiplayRules : public C_GameRules
+{
+public:
+// <no members described>
+};
+
 // Aligment: 14
 // Size: 64
 struct C_fogplayerparams_t
@@ -538,54 +756,314 @@ public:
 	C_BaseAnimatingController* m_pOwner; // 0x1d0
 };
 
-// Aligment: 1
-// Size: 32
-class C_SBox_Gamerules : public C_GameRules
+// Aligment: 0
+// Size: 8
+class C_SingleplayRules : public C_GameRules
 {
 public:
-	// MNetworkDisable
-	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x8
+// <no members described>
 };
 
 // Aligment: 2
-// Size: 40
-class CEntityInstance : public IHandleEntity
+// Size: 24
+class C_EconItemAttribute
 {
 public:
 	// MNetworkEnable
-	// MNetworkPriority "112"
-	CEntityIdentity* m_pEntity; // 0x8
+	// MNetworkEnable
+	uint16_t m_iAttributeDefinitionIndex; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkAlias "m_iRawValue32"
+	float m_flValue; // 0x14
+};
+
+// Aligment: 3
+// Size: 12
+struct C_EconEntity::AttachedParticleInfo_t
+{
+public:
+	ParticleIndex_t m_nAttachedParticleIndex; // 0x0
+	CUtlStringToken m_customType; // 0x4
+	bool m_bShouldDestroyImmediately; // 0x8
+};
+
+// Aligment: 1
+// Size: 16
+struct C_EconEntity::AttachedModelData_t
+{
+public:
+	int32_t m_iModelDisplayFlags; // 0x8
+};
+
+// Aligment: 52
+// Size: 1368
+class CGlobalLightBase
+{
+public:
+	bool m_bSpotLight; // 0x10
+	Vector m_SpotLightOrigin; // 0x14
+	QAngle m_SpotLightAngles; // 0x20
+	Vector m_ShadowDirection; // 0x2c
+	Vector m_AmbientDirection; // 0x38
+	Vector m_SpecularDirection; // 0x44
+	Vector m_InspectorSpecularDirection; // 0x50
+	float m_flSpecularPower; // 0x5c
+	float m_flSpecularIndependence; // 0x60
+	Color m_SpecularColor; // 0x64
+	bool m_bStartDisabled; // 0x68
+	bool m_bEnabled; // 0x69
+	Color m_LightColor; // 0x6a
+	Color m_HeroLightColor; // 0x6e
+	Color m_AOGradientBottomColor; // 0x72
+	bool m_bEnableRainFx; // 0x76
+	Color m_AmbientColor1; // 0x77
+	Color m_AmbientColor2; // 0x7b
+	Color m_AmbientColor3; // 0x7f
+	float m_flSunDistance; // 0x84
+	float m_flFOV; // 0x88
+	float m_flNearZ; // 0x8c
+	float m_flFarZ; // 0x90
+	bool m_bEnableShadows; // 0x94
+	bool m_bOldEnableShadows; // 0x95
+	bool m_bBackgroundClearNotRequired; // 0x96
+	float m_flCloudScale; // 0x98
+	float m_flCloud1Speed; // 0x9c
+	float m_flCloud1Direction; // 0xa0
+	float m_flCloud2Speed; // 0xa4
+	float m_flCloud2Direction; // 0xa8
+	float m_flAmbientScale1; // 0xac
+	float m_flAmbientScale2; // 0xb0
+	float m_flGroundScale; // 0xb4
+	float m_flLightScale; // 0xb8
+	float m_flHeroLightScale; // 0xbc
+	float m_flRainInnerRadius; // 0xc0
+	float m_flRainOuterRadius; // 0xc4
+	float m_flRainInnerAmount; // 0xc8
+	float m_flFoWDarkness; // 0xcc
+	bool m_bEnableSeparateSkyboxFog; // 0xd0
+	Vector m_vFowColor; // 0xd4
+	Vector m_ViewOrigin; // 0xe0
+	QAngle m_ViewAngles; // 0xec
+	float m_flViewFoV; // 0xf8
+	Vector[8] m_WorldPoints; // 0xfc
+	Vector2D m_vFogOffsetLayer0; // 0x4e8
+	Vector2D m_vFogOffsetLayer1; // 0x4f0
+	CHandle< C_BaseEntity > m_hEnvWind; // 0x4f8
+	CHandle< C_BaseEntity > m_hEnvSky; // 0x4fc
+	float m_fSmoothedAmount; // 0x500
+	float m_fSlowSmoothedAmount; // 0x504
+};
+
+// Aligment: 9
+// Size: 400
+class CDeferredLightBase
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	Color m_LightColor; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flIntensity; // 0x14
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flLightSize; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flSpotFoV; // 0x1c
+	// MNetworkEnable
+	// MNetworkEnable
+	QAngle m_vLightDirection; // 0x20
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartFalloff; // 0x2c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDistanceFalloff; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_nFlags; // 0x34
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_ProjectedTextureName; // 0x38
+};
+
+// Aligment: 107
+// Size: 1016
+class CLightInfoBase
+{
+public:
+	Vector2D m_origin2D; // 0x10
+	Color[2] m_Color; // 0x18
+	float32[2] m_LightScale; // 0x20
+	Color[2] m_HeroColor; // 0x28
+	float32[2] m_HeroLightScale; // 0x30
+	Color[2] m_AOGradientBottomColor; // 0x38
+	bool m_bEnableRainFx; // 0x40
+	float m_flRainInnerRadius; // 0x44
+	float m_flRainOuterRadius; // 0x48
+	float m_flRainInnerAmount; // 0x4c
+	Color[2] m_AmbientColor; // 0x50
+	float32[2] m_AmbientScale; // 0x58
+	Color[2] m_ShadowColor; // 0x60
+	Color[2] m_ShadowSecondaryColor; // 0x68
+	float32[2] m_ShadowScale; // 0x70
+	float32[2] m_ShadowGroundScale; // 0x78
+	Color[2] m_SpecularColor; // 0x80
+	float32[2] m_flSpecularPower; // 0x88
+	float32[2] m_flSpecularIndependence; // 0x90
+	Vector[2] m_SpecularDirection; // 0x98
+	Vector[2] m_InspectorSpecularDirection; // 0xb0
+	Vector[2] m_LightDirection; // 0xc8
+	Vector[2] m_AmbientDirection; // 0xe0
+	Color[2] m_FogColor; // 0xf8
+	float32[2] m_FogStart; // 0x100
+	float32[2] m_FogEnd; // 0x108
+	float32[2] m_HeightFogValue; // 0x110
+	Color[2] m_HeightFogColor; // 0x118
+	float32[2] m_FoWDarkness; // 0x120
+	float32[2] m_FoWColorR; // 0x128
+	float32[2] m_FoWColorG; // 0x130
+	float32[2] m_FoWColorB; // 0x138
+	Color[2] m_InspectorViewFogColor; // 0x140
+	QAngle m_windAngle; // 0x148
+	float32[2] m_flWindAmount; // 0x154
+	float m_flMinWind; // 0x15c
+	float m_flMaxWind; // 0x160
+	float m_flMinGust; // 0x164
+	float m_flMaxGust; // 0x168
+	float m_flMinGustDelay; // 0x16c
+	float m_flMaxGustDelay; // 0x170
+	float m_flGustDuration; // 0x174
+	float m_flGustDirChange; // 0x178
+	QAngle[2] m_skyboxAngle; // 0x17c
+	CStrongHandle< InfoForResourceTypeIMaterial2 >[2] m_hSkyboxMaterial; // 0x198
+	Color[2] m_vSkyboxTintColor; // 0x1a8
+	uint8_t m_nSkyboxFogType; // 0x1b0
+	float m_flSkyboxAngularFogMaxEnd; // 0x1b4
+	float m_flSkyboxAngularFogMaxStart; // 0x1b8
+	float m_flSkyboxAngularFogMinStart; // 0x1bc
+	float m_flSkyboxAngularFogMinEnd; // 0x1c0
+	Vector4D m_vAngularParams; // 0x1c4
+	Color[2] m_vHeightFogColor; // 0x1d4
+	float m_flFogMaxZ; // 0x1dc
+	float32[2] m_flFogDensity; // 0x1e0
+	float m_flFogFalloff; // 0x1e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTexture0; // 0x1f0
+	float m_flFogLayer0Rotation; // 0x1f8
+	float m_flFogLayer0Scale; // 0x1fc
+	float32[2] m_flFoglayer0ScrollU; // 0x200
+	float32[2] m_flFoglayer0ScrollV; // 0x208
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTexture1; // 0x210
+	float m_flFogLayer1Rotation; // 0x218
+	float m_flFogLayer1Scale; // 0x21c
+	float32[2] m_flFoglayer1ScrollU; // 0x220
+	float32[2] m_flFoglayer1ScrollV; // 0x228
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogTextureOpacity; // 0x230
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hWaterFlowMapTexture; // 0x238
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogFlowMapTexture; // 0x240
+	float m_flFogExclusionInnerRadius; // 0x248
+	float m_flFogExclusionHeightBias; // 0x24c
+	float m_flCausticSpeedScale; // 0x254
+	float m_flCausticAmplitudeScale; // 0x258
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hColorWarp; // 0x260
+	float m_flColorWarpBlendToFull; // 0x268
+	float m_fInnerRadius; // 0x26c
+	float m_fOuterRadius; // 0x270
+	float m_flLightning_specular_pow_scale_min; // 0x274
+	float m_flLightning_specular_pow_scale_max; // 0x278
+	Color m_lightningColor; // 0x27c
+	float m_flLightningIntensityMin; // 0x280
+	float m_flLightningIntensityMax; // 0x284
+	float m_flLightningElevation; // 0x288
+	float m_flLightningSpecularIntensity; // 0x28c
+	float m_flFarZOverride; // 0x290
+	float m_flAmbientShadowAmount; // 0x294
+	int32_t m_nWeatherType; // 0x298
+	CUtlString m_WeatherEffect; // 0x2a0
+	float m_flLightning_period_min; // 0x2a8
+	float m_flLightning_period_max; // 0x2ac
+	float m_flLightning_duration_min; // 0x2b0
+	float m_flLightning_duration_max; // 0x2b4
+	float m_flLightning_fluctuation_min; // 0x2b8
+	float m_flLightning_fluctuation_max; // 0x2bc
+	char[260] m_pszLightningSound; // 0x2c0
+	float m_flNextLightningStartTime; // 0x3c4
+	float m_flNextLightningEndTime; // 0x3c8
+	float m_flLightningFluctuationTimeStart; // 0x3cc
+	float m_flLightningFluctuationTimeEnd; // 0x3d0
+	float m_flLightningNumFluctuations; // 0x3d4
+	float m_flNextLightningSoundTime; // 0x3d8
+	bool m_bPlayLightingSound; // 0x3dc
+	float m_flLightningEventMagnitude; // 0x3e0
+	float m_flLightningScale; // 0x3e4
+	float m_flLightningFluctuation; // 0x3e8
+	float m_flLightningAngle; // 0x3ec
+	float m_flLightningEventPercentage; // 0x3f0
+};
+
+// Aligment: 1
+// Size: 24
+struct GCConsumedIDs_t
+{
+public:
+	CUtlVector< item_definition_index_t > m_vecIDs; // 0x0
+};
+
+// Aligment: 4
+// Size: 56
+class CEntityInstance : public IHandleEntity
+{
+public:
 	// MNetworkDisable
-	CUtlStringToken m_worldGroupId; // 0x10
+	CUtlSymbolLarge m_iszPrivateVScripts; // 0x8
+	// MNetworkEnable
+	// MNetworkPriority "112"
+	CEntityIdentity* m_pEntity; // 0x10
+	// MNetworkDisable
+	CUtlStringToken m_worldGroupId; // 0x20
+	// MNetworkEnable
+	// MNetworkDisable
+	CScriptComponent* m_CScriptComponent; // 0x30
+};
+
+// Aligment: 1
+// Size: 56
+class CScriptComponent : public CEntityComponent
+{
+public:
+	CUtlSymbolLarge m_scriptClassName; // 0x30
+public:
+	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 0
-// Size: 40
+// Size: 56
 class C_GameEntity : public CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 23
-// Size: 3720
+// Aligment: 21
+// Size: 1104
 class C_BaseAnimatingController : public CSkeletonAnimationController
 {
 public:
 	// MNetworkEnable
 	// MNetworkChangeCallback "baseAnimBaseLayerChanged"
 	CNetworkedSequenceOperation m_baseLayer; // 0x18
-	// MNetworkEnable
-	CAnimGraphNetworkedVariables m_animGraphNetworkedVars; // 0x58
 	// MNetworkDisable
-	bool m_bSequenceFinished; // 0xa78
+	bool m_bSequenceFinished; // 0x58
 	// MNetworkDisable
-	float m_flGroundSpeed; // 0xa7c
+	float m_flGroundSpeed; // 0x5c
 	// MNetworkDisable
-	float m_flLastEventCycle; // 0xa80
+	float m_flLastEventCycle; // 0x60
 	// MNetworkDisable
-	float m_flLastEventAnimTime; // 0xa84
+	float m_flLastEventAnimTime; // 0x64
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "-4"
@@ -593,59 +1071,55 @@ public:
 	// MNetworkEncodeFlags
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "playbackRateChanged"
-	CNetworkedQuantizedFloat m_flPlaybackRate; // 0xa88
+	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x68
 	// MNetworkDisable
-	float m_flPrevAnimTime; // 0xaa0
+	float m_flPrevAnimTime; // 0x80
 	// MNetworkEnable
 	// MNetworkBitCount "11"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkUserGroup "m_flPoseParameter"
 	// MNetworkChangeCallback "poseParametersChanged"
-	float32[24] m_flPoseParameter; // 0xaa4
+	float32[24] m_flPoseParameter; // 0x84
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "clientSideAnimationChanged"
-	bool m_bClientSideAnimation; // 0xb04
+	bool m_bClientSideAnimation; // 0xe4
 	// MNetworkDisable
-	bool m_bNetworkedAnimationInputsChanged; // 0xb05
+	bool m_bNetworkedAnimationInputsChanged; // 0xe5
 	// MNetworkDisable
-	uint8_t m_nPrevNewSequenceParity; // 0xb06
+	uint8_t m_nPrevNewSequenceParity; // 0xe6
 	// MNetworkDisable
-	uint8_t m_nPrevResetEventsParity; // 0xb07
+	uint8_t m_nPrevResetEventsParity; // 0xe7
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "clientSideAnimCycleReset"
-	int32_t m_nNewSequenceParity; // 0xb08
+	int32_t m_nNewSequenceParity; // 0xe8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	int32_t m_nResetEventsParity; // 0xb0c
+	int32_t m_nResetEventsParity; // 0xec
 	// MNetworkDisable
-	float m_flIKGroundContactTime; // 0xb10
+	float m_flIKGroundContactTime; // 0xf0
 	// MNetworkDisable
-	float m_flIKGroundMinHeight; // 0xb14
+	float m_flIKGroundMinHeight; // 0xf4
 	// MNetworkDisable
-	float m_flIKGroundMaxHeight; // 0xb18
+	float m_flIKGroundMaxHeight; // 0xf8
 	// MNetworkDisable
-	float m_flIkZAdjustAmount; // 0xb1c
+	float m_flIkZAdjustAmount; // 0xfc
 	// MNetworkDisable
-	C_CSequenceTransitioner2 m_SequenceTransitioner; // 0xb48
+	C_CSequenceTransitioner2 m_SequenceTransitioner; // 0x128
 	// MNetworkDisable
-	HSequence m_hLastAnimEventSequence; // 0xdc0
+	HSequence m_hLastAnimEventSequence; // 0x3a0
 	// MNetworkDisable
-	uint32_t m_ClientSideAnimationListHandle; // 0xdc4
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "overrideAnimGraphChanged"
-	CStrongHandle< InfoForResourceTypeIAnimationGraph > m_hOverrideGraph; // 0xe70
+	uint32_t m_ClientSideAnimationListHandle; // 0x3a4
 };
 
 // Aligment: 1
-// Size: 3824
+// Size: 1208
 class C_BaseAnimatingOverlayController : public C_BaseAnimatingController, CSkeletonAnimationController
 {
 public:
@@ -653,7 +1127,7 @@ public:
 	// MNetworkEnable
 	// MNetworkUserGroup "overlay_vars"
 	// MNetworkChangeCallback "OnOverlaysChanged2"
-	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0xe88
+	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x450
 };
 
 // Aligment: 2
@@ -672,7 +1146,7 @@ public:
 };
 
 // Aligment: 2
-// Size: 336
+// Size: 448
 class CBodyComponentPoint : public CBodyComponent, CEntityComponent
 {
 public:
@@ -680,14 +1154,14 @@ public:
 	CGameSceneNode m_sceneNode; // 0x40
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x130
+	CNetworkVarChainer __m_pChainEntity; // 0x1a0
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 1184
+// Size: 1312
 class CBodyComponentSkeletonInstance : public CBodyComponent, CEntityComponent
 {
 public:
@@ -695,7 +1169,7 @@ public:
 	CSkeletonInstance m_skeletonInstance; // 0x40
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x480
+	CNetworkVarChainer __m_pChainEntity; // 0x500
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fiels[1]->m_instance); }
@@ -709,8 +1183,8 @@ public:
 // <no members described>
 };
 
-// Aligment: 58
-// Size: 392
+// Aligment: 60
+// Size: 400
 class CLightComponent : public CEntityComponent
 {
 public:
@@ -749,151 +1223,160 @@ public:
 	float m_flPhi; // 0x9c
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_lightCookie; // 0xa0
+	CUtlStringToken m_lightCookie; // 0xa0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nCascades; // 0xa8
+	int32_t m_nCascades; // 0xa4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	int32_t m_nCastShadows; // 0xac
+	int32_t m_nCastShadows; // 0xa8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowWidth; // 0xb0
+	int32_t m_nShadowWidth; // 0xac
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowHeight; // 0xb4
+	int32_t m_nShadowHeight; // 0xb0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderDiffuse; // 0xb8
+	bool m_bRenderDiffuse; // 0xb4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nRenderSpecular; // 0xbc
+	int32_t m_nRenderSpecular; // 0xb8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderTransmissive; // 0xc0
+	bool m_bRenderTransmissive; // 0xbc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	float m_flOrthoLightWidth; // 0xc4
+	float m_flOrthoLightWidth; // 0xc0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	float m_flOrthoLightHeight; // 0xc8
+	float m_flOrthoLightHeight; // 0xc4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance0; // 0xcc
+	int32_t m_nStyle; // 0xc8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance1; // 0xd0
+	CUtlString m_Pattern; // 0xd0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance2; // 0xd4
+	float m_flShadowCascadeDistance0; // 0xd8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance3; // 0xd8
+	float m_flShadowCascadeDistance1; // 0xdc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution0; // 0xdc
+	float m_flShadowCascadeDistance2; // 0xe0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution1; // 0xe0
+	float m_flShadowCascadeDistance3; // 0xe4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution2; // 0xe4
+	int32_t m_nShadowCascadeResolution0; // 0xe8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution3; // 0xe8
+	int32_t m_nShadowCascadeResolution1; // 0xec
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nBakeLightIndex; // 0xec
+	int32_t m_nShadowCascadeResolution2; // 0xf0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flBakeLightIndexScale; // 0xf0
+	int32_t m_nShadowCascadeResolution3; // 0xf4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bUsesIndexedBakedLighting; // 0xf4
+	int32_t m_nBakeLightIndex; // 0xf8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderToCubemaps; // 0xf5
+	float m_flBakeLightIndexScale; // 0xfc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nPriority; // 0xf8
+	bool m_bUsesIndexedBakedLighting; // 0x100
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	CUtlSymbolLarge m_LightGroups; // 0x100
-	// MNetworkEnable
-	int32_t m_nDirectLight; // 0x108
-	// MNetworkEnable
-	int32_t m_nIndirectLight; // 0x10c
+	bool m_bRenderToCubemaps; // 0x101
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flFadeMinDist; // 0x110
+	int32_t m_nPriority; // 0x104
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flFadeMaxDist; // 0x114
+	CUtlSymbolLarge m_LightGroups; // 0x108
+	// MNetworkEnable
+	int32_t m_nDirectLight; // 0x110
+	// MNetworkEnable
+	int32_t m_nIndirectLight; // 0x114
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowFadeMinDist; // 0x118
+	float m_flFadeMinDist; // 0x118
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowFadeMaxDist; // 0x11c
+	float m_flFadeMaxDist; // 0x11c
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bEnabled; // 0x120
+	float m_flShadowFadeMinDist; // 0x120
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bFlicker; // 0x121
+	float m_flShadowFadeMaxDist; // 0x124
 	// MNetworkEnable
-	Vector m_vPrecomputedBoundsMins; // 0x124
+	// MNetworkChangeCallback "LightRenderingChanged"
+	bool m_bEnabled; // 0x128
 	// MNetworkEnable
-	Vector m_vPrecomputedBoundsMaxs; // 0x130
+	// MNetworkChangeCallback "LightRenderingChanged"
+	bool m_bFlicker; // 0x129
 	// MNetworkEnable
-	float m_flPrecomputedMaxRange; // 0x13c
+	Vector m_vPrecomputedBoundsMins; // 0x12c
 	// MNetworkEnable
-	Vector m_vPrecomputePosition; // 0x140
+	Vector m_vPrecomputedBoundsMaxs; // 0x138
 	// MNetworkEnable
-	Vector m_vPrecomputeDirection; // 0x14c
+	float m_flPrecomputedMaxRange; // 0x144
 	// MNetworkEnable
-	Vector m_vPrecomputeUp; // 0x158
+	Vector m_vPrecomputePosition; // 0x148
 	// MNetworkEnable
-	int32_t m_nFogLightingMode; // 0x164
+	Vector m_vPrecomputeDirection; // 0x154
 	// MNetworkEnable
-	float m_flFogContributionStength; // 0x168
+	Vector m_vPrecomputeUp; // 0x160
 	// MNetworkEnable
-	float m_flNearClipPlane; // 0x16c
+	int32_t m_nFogLightingMode; // 0x16c
 	// MNetworkEnable
-	Color m_SkyColor; // 0x170
+	float m_flFogContributionStength; // 0x170
 	// MNetworkEnable
-	float m_flSkyIntensity; // 0x174
+	float m_flNearClipPlane; // 0x174
 	// MNetworkEnable
-	bool m_bLowerHemisphereIsBlack; // 0x178
+	Color m_SkyColor; // 0x178
 	// MNetworkEnable
-	Color m_SkyAmbientBounce; // 0x179
-	bool m_bMixedShadows; // 0x184
-	bool m_bFadeMixedShadows; // 0x185
+	float m_flSkyIntensity; // 0x17c
+	// MNetworkEnable
+	bool m_bLowerHemisphereIsBlack; // 0x180
+	// MNetworkEnable
+	Color m_SkyAmbientBounce; // 0x181
+	// MNetworkEnable
+	// MNetworkChangeCallback "MixedShadowsChanged"
+	bool m_bMixedShadows; // 0x185
+	// MNetworkEnable
+	// MNetworkChangeCallback "LightRenderingChanged"
+	float m_flLightStyleStartTime; // 0x188
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CLightComponent")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CLightComponent")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 6
-// Size: 176
+// Aligment: 5
+// Size: 168
 class CRenderComponent : public CEntityComponent
 {
 public:
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
 	CNetworkVarChainer __m_pChainEntity; // 0x10
-	bool m_bClientAllowDraw; // 0x28
-	bool m_bLastRenderState; // 0x29
-	uint32_t m_nSplitscreenFlags; // 0x48
-	bool m_bEnableRendering; // 0x58
-	bool m_bInterpolationReadyToDraw; // 0xa8
+	bool m_bIsRenderingWithViewModels; // 0x40
+	uint32_t m_nSplitscreenFlags; // 0x44
+	bool m_bEnableRendering; // 0x50
+	bool m_bInterpolationReadyToDraw; // 0xa0
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CRenderComponent")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CRenderComponent")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 71
-// Size: 1280
+// Aligment: 85
+// Size: 1240
 class C_BaseEntity : public C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -902,8 +1385,8 @@ public:
 	// MNetworkAlias "CBodyComponent"
 	// MNetworkTypeAlias "CBodyComponent"
 	// MNetworkPriority "96"
-	CBodyComponent* m_CBodyComponent; // 0x38
-	CNetworkTransmitComponent m_NetworkTransmitComponent; // 0x40
+	CBodyComponent* m_CBodyComponent; // 0x48
+	CNetworkTransmitComponent m_NetworkTransmitComponent; // 0x50
 	CUtlString m_sPredictionCopyComment; // 0x268
 	int32_t m_nLastThinkTick; // 0x280
 	CGameSceneNode* m_pGameSceneNode; // 0x288
@@ -911,80 +1394,129 @@ public:
 	CCollisionProperty* m_pCollision; // 0x298
 	// MNetworkEnable
 	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	int32_t m_iMaxHealth; // 0x2a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "ClampHealth"
+	// MNetworkUserGroup "Player"
+	// MNetworkPriority "64"
+	int32_t m_iHealth; // 0x2a4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	// MNetworkUserGroup "Player"
+	// MNetworkPriority "64"
+	uint8_t m_lifeState; // 0x2a8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	DamageOptions_t m_takedamage; // 0x2a9
+	// MNetworkEnable
+	// MNetworkEnable
 	// MNetworkBitCount "2"
 	// MNetworkChangeCallback "OnInterpolationFrameChanged"
-	uint8_t m_ubInterpolationFrame; // 0x2a0
-	int32_t m_nNoInterpolationTick; // 0x2a4
-	float m_flProxyRandomValue; // 0x2a8
-	int32_t m_iEFlags; // 0x2ac
-	uint8_t m_nWaterType; // 0x2b0
-	bool m_bInterpolateEvenWithNoModel; // 0x2b1
-	int32_t m_nSimulationTick; // 0x2b4
-	int32_t m_iCurrentThinkContext; // 0x2b8
-	CUtlVector< thinkfunc_t > m_aThinkFunctions; // 0x2c0
+	uint8_t m_ubInterpolationFrame; // 0x2aa
+	CHandle< C_BaseEntity > m_hSceneObjectController; // 0x2ac
+	int32_t m_nNoInterpolationTick; // 0x2b0
+	float m_flProxyRandomValue; // 0x2b4
+	int32_t m_iEFlags; // 0x2b8
+	uint8_t m_nWaterType; // 0x2bc
+	bool m_bInterpolateEvenWithNoModel; // 0x2bd
+	bool m_bPredictionEligible; // 0x2be
+	int32_t m_nSimulationTick; // 0x2c0
+	int32_t m_iCurrentThinkContext; // 0x2c4
+	CUtlVector< thinkfunc_t > m_aThinkFunctions; // 0x2c8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "0"
 	// MNetworkSerializer "animTimeSerializer"
 	// MNetworkSendProxyRecipientsFilter
 	// MNetworkChangeCallback "OnAnimTimeChanged"
-	float m_flAnimTime; // 0x2d8
+	float m_flAnimTime; // 0x2e0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "1"
 	// MNetworkSerializer "simulationTimeSerializer"
 	// MNetworkChangeCallback "OnSimulationTimeChanged"
-	float m_flSimulationTime; // 0x2dc
-	bool m_bHasSuccessfullyInterpolated; // 0x2e0
-	bool m_bHasAddedVarsToInterpolation; // 0x2e1
-	bool m_bRenderEvenWhenNotSuccessfullyInterpolated; // 0x2e2
-	int32[2] m_nInterpolationLatchDirtyFlags; // 0x2e4
-	uint16[9] m_ListEntry; // 0x2ec
+	float m_flSimulationTime; // 0x2e4
+	uint8_t m_nSceneObjectOverrideFlags; // 0x2e8
+	bool m_bHasSuccessfullyInterpolated; // 0x2e9
+	bool m_bHasAddedVarsToInterpolation; // 0x2ea
+	bool m_bRenderEvenWhenNotSuccessfullyInterpolated; // 0x2eb
+	int32[2] m_nInterpolationLatchDirtyFlags; // 0x2ec
+	uint16[10] m_ListEntry; // 0x2f4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flCreateTime; // 0x300
-	float m_flSpeed; // 0x304
-	int16_t m_EntClientFlags; // 0x308
+	float m_flCreateTime; // 0x308
+	float m_flSpeed; // 0x30c
+	int16_t m_EntClientFlags; // 0x310
 	// MNetworkEnable
 	// MNetworkEnable
-	uint32_t m_spawnflags; // 0x30c
+	bool m_bClientSideRagdoll; // 0x312
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "6"
+	// MNetworkChangeCallback "OnNetVarTeamNumChanged"
+	uint8_t m_iTeamNum; // 0x313
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_spawnflags; // 0x314
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkUserGroup "LocalPlayerExclusive"
-	int32_t m_nNextThinkTick; // 0x310
+	int32_t m_nNextThinkTick; // 0x318
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "10"
 	// MNetworkPriority "64"
 	// MNetworkSerializer "CropFlagsToPlayerFlagBitsLength"
-	uint32_t m_fFlags; // 0x314
+	// MNetworkUserGroup "Player"
+	uint32_t m_fFlags; // 0x31c
 	// MNetworkEnable
-	Vector m_vecAbsVelocity; // 0x318
+	Vector m_vecAbsVelocity; // 0x320
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkBitCount "32"
+	// MNetworkUserGroup "LocalPlayerExclusive"
 	// MNetworkChangeCallback "OnLocalVelocityChanged"
 	// MNetworkPriority "64"
-	Vector m_vecVelocity; // 0x324
+	CNetworkVelocityVector m_vecVelocity; // 0x330
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vecBaseVelocity; // 0x330
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	Vector m_vecBaseVelocity; // 0x398
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hEffectEntity; // 0x33c
+	CHandle< C_BaseEntity > m_hEffectEntity; // 0x3a4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "64"
-	CHandle< C_BaseEntity > m_hOwnerEntity; // 0x340
+	CHandle< C_BaseEntity > m_hOwnerEntity; // 0x3a8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkBitCount "13"
+	MoveCollide_t m_MoveCollide; // 0x3ac
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnMoveTypeChanged"
+	MoveType_t m_MoveType; // 0x3ad
+	// MNetworkEnable
+	// MNetworkEnable
+	gender_t m_Gender; // 0x3ae
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	// MNetworkUserGroup "Player"
+	uint8_t m_nWaterLevel; // 0x3af
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
 	// MNetworkChangeCallback "OnEffectsChanged"
-	uint32_t m_fEffects; // 0x344
+	uint32_t m_fEffects; // 0x3b0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "64"
-	CHandle< C_BaseEntity > m_hGroundEntity; // 0x348
+	// MNetworkUserGroup "Player"
+	CHandle< C_BaseEntity > m_hGroundEntity; // 0x3b4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
@@ -992,189 +1524,290 @@ public:
 	// MNetworkMaxValue "4"
 	// MNetworkEncodeFlags
 	// MNetworkUserGroup "LocalPlayerExclusive"
-	float m_flFriction; // 0x34c
+	float m_flFriction; // 0x3b8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkEncoder
-	float m_flElasticity; // 0x350
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	float m_flGravityScale; // 0x354
+	float m_flElasticity; // 0x3bc
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnInterpolationAmountChanged"
-	bool m_bSimulatedEveryTick; // 0x358
+	bool m_bSimulatedEveryTick; // 0x3c0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnInterpolationAmountChanged"
-	bool m_bAnimatedEveryTick; // 0x359
+	bool m_bAnimatedEveryTick; // 0x3c1
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNavIgnoreUntilTime; // 0x35c
+	// MNetworkBitCount "2"
+	uint8_t m_nMinCPULevel; // 0x3c2
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkBitCount "8"
-	uint8_t m_iTextureFrameIndex; // 0x360
-	uint8_t m_ShadowBits; // 0x361
-	float m_flFirstReceivedTime; // 0x364
-	float m_flLastMessageTime; // 0x368
-	uint16_t m_hThink; // 0x36c
-	uint8_t m_fBBoxVisFlags; // 0x378
-	bool m_bIsValidIKAttachment; // 0x379
-	bool m_bPredictable; // 0x37a
-	CHandle< C_BaseEntity > m_hOldMoveParent; // 0x37c
-	CParticleProperty m_Particles; // 0x380
-	int32_t m_nAnimGraphNetVarCreationCommandNumber; // 0x3b0
-	QAngle m_vecAngVelocity; // 0x3b4
-	int32_t m_DataChangeEventRef; // 0x3c0
-	CUtlVector< CEntityHandle > m_dependencies; // 0x3c8
-	int32_t m_nCreationTick; // 0x3e0
-	bool m_bAnimTimeChanged; // 0x3f9
-	bool m_bSimulationTimeChanged; // 0x3fa
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bHasDynamicPhysics; // 0x3fb
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnSbEntityNameChanged"
-	CUtlString m_EntityName; // 0x400
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "64"
-	Vector m_EyePosOffset; // 0x408
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "64"
-	Quaternion m_EyeRotOffset; // 0x414
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "64"
-	float m_fHealth; // 0x424
+	// MNetworkBitCount "2"
+	uint8_t m_nMaxCPULevel; // 0x3c3
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
-	// MNetworkPriority "64"
-	uint8_t m_lifeState; // 0x428
+	uint8_t m_nMinGPULevel; // 0x3c4
 	// MNetworkEnable
 	// MNetworkEnable
-	uint8_t m_WaterLevel; // 0x429
+	// MNetworkBitCount "3"
+	uint8_t m_nMaxGPULevel; // 0x3c5
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_WaterEntity; // 0x42c
+	float m_flNavIgnoreUntilTime; // 0x3c8
 	// MNetworkEnable
 	// MNetworkEnable
-	DataTable m_NetData; // 0x438
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_netHash; // 0x468
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< NetField > m_netData; // 0x470
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< NetField > m_netDataLocal; // 0x4b8
+	// MNetworkBitCount "8"
+	uint8_t m_iTextureFrameIndex; // 0x3cc
+	CBitVec< 1 > m_ShadowBits; // 0x3d0
+	float m_flFirstReceivedTime; // 0x3d4
+	float m_flLastMessageTime; // 0x3d8
+	uint16_t m_hThink; // 0x3dc
+	uint8_t m_fBBoxVisFlags; // 0x3e8
+	bool m_bIsValidIKAttachment; // 0x3e9
+	bool m_bPredictable; // 0x3ea
+	bool m_bRenderWithViewModels; // 0x3eb
+	CSplitScreenSlot m_nSplitUserPlayerPredictionSlot; // 0x3ec
+	CHandle< C_BaseEntity > m_hOldMoveParent; // 0x3f0
+	CParticleProperty m_Particles; // 0x3f8
+	CUtlVector< float32 > m_vecPredictedScriptFloats; // 0x420
+	CUtlVector< int32 > m_vecPredictedScriptFloatIDs; // 0x438
+	int32_t m_nNextScriptVarRecordID; // 0x468
+	int32_t m_nAnimGraphNetVarCreationCommandNumber; // 0x478
+	QAngle m_vecAngVelocity; // 0x47c
+	float m_flGroundChangeTime; // 0x488
+	float m_flGravity; // 0x48c
+	int32_t m_DataChangeEventRef; // 0x490
+	CUtlVector< CEntityHandle > m_dependencies; // 0x498
+	int32_t m_nCreationTick; // 0x4b0
+	bool m_bIsDACNPC; // 0x4c8
+	bool m_bIsNPC; // 0x4c9
+	bool m_bAnimTimeChanged; // 0x4ca
+	bool m_bSimulationTimeChanged; // 0x4cb
+	bool m_bIsBlurred; // 0x4cc
 public:
-	static bool &Get_sm_bDatadescValidating() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[0]->m_instance); }
-	static bool &Get_sm_bAccurateTriggerBboxChecks() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[1]->m_instance); }
-	static bool &Get_sm_bDisableTouchFuncs() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[2]->m_instance); }
-	static bool &Get_m_bAllowPrecache() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[3]->m_instance); }
-	static LatchDirtyPermission_t &Get_s_nLatchPermissions() { return *reinterpret_cast<LatchDirtyPermission_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[4]->m_instance); }
-	static int32_t &Get_m_nPredictionRandomSeed() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[5]->m_instance); }
-	static C_BasePlayer* &Get_m_pPredictionPlayer() { return *reinterpret_cast<C_BasePlayer**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[6]->m_instance); }
-	static bool &Get_s_bAbsQueriesValid() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[7]->m_instance); }
-	static bool &Get_s_bAbsRecomputationEnabled() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[8]->m_instance); }
-	static bool &Get_s_bComputingInterpolatedValues() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[9]->m_instance); }
-	static bool &Get_s_bPreventingSetAnimRunAnimEvents() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[10]->m_instance); }
-	static CUtlVector< C_BaseEntity* > &Get_gm_UsableObjects() { return *reinterpret_cast<CUtlVector< C_BaseEntity* >*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[11]->m_instance); }
+	static bool &Get_sm_bAccurateTriggerBboxChecks() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[0]->m_instance); }
+	static bool &Get_sm_bDisableTouchFuncs() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[1]->m_instance); }
+	static bool &Get_m_bAllowPrecache() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[2]->m_instance); }
+	static LatchDirtyPermission_t &Get_s_nLatchPermissions() { return *reinterpret_cast<LatchDirtyPermission_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[3]->m_instance); }
+	static int32_t &Get_m_nPredictionRandomSeed() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[4]->m_instance); }
+	static C_BasePlayer* &Get_m_pPredictionPlayer() { return *reinterpret_cast<C_BasePlayer**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[5]->m_instance); }
+	static bool &Get_s_bAbsQueriesValid() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[6]->m_instance); }
+	static bool &Get_s_bAbsRecomputationEnabled() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[7]->m_instance); }
+	static bool &Get_s_bComputingInterpolatedValues() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[8]->m_instance); }
+	static bool &Get_s_bPreventingSetAnimRunAnimEvents() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[9]->m_instance); }
+	static CUtlVector< C_BaseEntity* > &Get_gm_UsableObjects() { return *reinterpret_cast<CUtlVector< C_BaseEntity* >*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BaseEntity")->m_static_fiels[10]->m_instance); }
 };
 
 // Aligment: 0
-// Size: 1280
+// Size: 1240
 class CLogicalEntity : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 29
-// Size: 3496
-class C_BasePlayer : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Aligment: 18
+// Size: 1576
+class C_ColorCorrection : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	fogparams_t m_CurrentFog; // 0x508
-	CHandle< C_FogController > m_hOldFogController; // 0x570
-	bool[5] m_bOverrideFogColor; // 0x574
-	Color[5] m_OverrideFogColor; // 0x579
-	bool[5] m_bOverrideFogStartEnd; // 0x58d
-	float32[5] m_fOverrideFogStart; // 0x594
-	float32[5] m_fOverrideFogEnd; // 0x5a8
+	Vector m_vecOrigin; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkTypeAlias "CPlayerLocalData"
-	// MNetworkSendProxyRecipientsFilter
-	C_PlayerLocalData m_Local; // 0x5c0
-	C_PlayerState m_pl; // 0x6a0
-	uint64_t m_afButtonLast; // 0x6b0
-	uint64_t m_afButtonPressed; // 0x6b8
-	uint64_t m_afButtonReleased; // 0x6c0
-	uint64_t m_nButtons; // 0x6c8
-	uint64_t m_afButtonDisabled; // 0x6d0
-	uint64_t m_afButtonForced; // 0x6d8
+	float m_MinFalloff; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "Player"
-	CHandle< C_BaseEntity > m_hViewEntity; // 0x6e8
+	float m_MaxFalloff; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkPriority "1"
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	uint32_t m_nTickBase; // 0x6ec
-	int32_t m_nFinalPredictedTick; // 0x6f0
-	C_CommandContext m_CommandContext; // 0x6f8
-	Vector m_vecPredictionError; // 0xd28
-	float m_flPredictionErrorTime; // 0xd34
-	bool m_bIsLocalPlayer; // 0xd38
-	Vector m_vOldOrigin; // 0xd3c
-	float m_flOldSimulationTime; // 0xd48
+	float m_flFadeInDuration; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkTypeAlias "fogplayerparams_t"
-	C_fogplayerparams_t m_PlayerFog; // 0xd50
+	float m_flFadeOutDuration; // 0x4f0
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	uint64_t m_nUnHoldableButtons; // 0xd90
+	float m_flMaxWeight; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_Ping; // 0xd98
+	float m_flCurWeight; // 0x4f8
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_PacketLoss; // 0xd9c
+	char[260] m_netlookupFilename; // 0x4fc
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_Pawn; // 0xda0
+	bool m_bEnabled; // 0x600
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x601
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bClientSide; // 0x602
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExclusive; // 0x603
+	bool[1] m_bEnabledOnClient; // 0x604
+	float32[1] m_flCurWeightOnClient; // 0x608
+	bool[1] m_bFadingIn; // 0x60c
+	float32[1] m_flFadeStartWeight; // 0x610
+	float32[1] m_flFadeStartTime; // 0x614
+	float32[1] m_flFadeDuration; // 0x618
 };
 
 // Aligment: 1
-// Size: 1856
+// Size: 1816
 class C_EnvWindClientside : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkDisable
-	C_CEnvWindShared m_EnvWindShared; // 0x500
+	C_CEnvWindShared m_EnvWindShared; // 0x4d8
+};
+
+// Aligment: 3
+// Size: 1288
+class C_EntityFlame : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hEntAttached; // 0x4d8
+	CHandle< C_BaseEntity > m_hOldAttached; // 0x500
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bCheapEffect; // 0x504
+};
+
+// Aligment: 10
+// Size: 1280
+class C_PostProcessController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fLocalContrastStrength; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fLocalContrastEdgeStrength; // 0x4dc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteStart; // 0x4e0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteEnd; // 0x4e4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteBlurStrength; // 0x4e8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeToBlackStrength; // 0x4ec
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fGrainStrength; // 0x4f0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fTopVignetteStrength; // 0x4f4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeTime; // 0x4f8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x4fc
+};
+
+// Aligment: 11
+// Size: 2456
+class C_PlayerResource : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge[34] m_szName; // 0x4f0
+	Color[32] m_Colors; // 0x600
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32[34] m_iPing; // 0x680
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	int32[34] m_iScore; // 0x708
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	int32[34] m_iDeaths; // 0x790
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnConnectedFlagsChanged"
+	bool[34] m_bConnected; // 0x818
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	int32[34] m_iTeam; // 0x83c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool[34] m_bAlive; // 0x8c4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32[34] m_iHealth; // 0x8e8
+	bool[34] m_bIsFakePlayer; // 0x970
+	int32_t m_nEventPlayerInfo; // 0x994
+};
+
+// Aligment: 4
+// Size: 1392
+class C_SkyCamera : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	sky3dparams_t m_skyboxData; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_skyboxSlotToken; // 0x560
+	bool m_bUseAngles; // 0x564
+	C_SkyCamera* m_pNext; // 0x568
 };
 
 // Aligment: 0
-// Size: 1304
+// Size: 1264
 class C_TintController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 13
+// Aligment: 7
+// Size: 1416
+class C_Team : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< C_BasePlayer > > m_aPlayers; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iScore; // 0x4f0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iRoundsWon; // 0x4f4
+	// MNetworkEnable
+	// MNetworkEnable
+	char[129] m_szTeamname; // 0x4f8
+	int32_t m_iDeaths; // 0x57c
+	int32_t m_iPing; // 0x580
+	int32_t m_iPacketloss; // 0x584
+};
+
+// Aligment: 0
+// Size: 1240
+class C_TriggerCamera : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 14
 // Size: 48
 class CClientAlphaProperty : public IClientAlphaProperty
 {
@@ -1183,7 +1816,8 @@ public:
 	uint8_t m_nRenderMode; // 0x11
 	bitfield:1 m_bAlphaOverride; // 0x0
 	bitfield:1 m_bShadowAlphaOverride; // 0x0
-	bitfield:6 m_nReserved; // 0x0
+	bitfield:1 m_nDistanceFadeMode; // 0x0
+	bitfield:4 m_nReserved; // 0x0
 	uint8_t m_nAlpha; // 0x13
 	uint16_t m_nDesyncOffset; // 0x14
 	uint16_t m_nReserved2; // 0x16
@@ -1194,195 +1828,222 @@ public:
 	float m_flRenderFxDuration; // 0x24
 };
 
-// Aligment: 4
-// Size: 1440
-class C_SkyCamera : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	sky3dparams_t m_skyboxData; // 0x500
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlStringToken m_skyboxSlotToken; // 0x590
-	bool m_bUseAngles; // 0x594
-	C_SkyCamera* m_pNext; // 0x598
-};
-
 // Aligment: 5
-// Size: 1336
+// Size: 1296
 class CViewAngleAnimation : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flAnimStartTime; // 0x500
-	bool m_bFinished; // 0x504
-	CUtlVector< CViewAngleKeyFrame* > m_KeyFrames; // 0x508
-	QAngle m_vecBaseAngles; // 0x520
-	int32_t m_iFlags; // 0x52c
+	float m_flAnimStartTime; // 0x4d8
+	bool m_bFinished; // 0x4dc
+	CUtlVector< CViewAngleKeyFrame* > m_KeyFrames; // 0x4e0
+	QAngle m_vecBaseAngles; // 0x4f8
+	int32_t m_iFlags; // 0x504
 };
 
 // Aligment: 2
-// Size: 1288
+// Size: 1248
 class C_EnvDetailController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeStartDist; // 0x500
+	float m_flFadeStartDist; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeEndDist; // 0x504
+	float m_flFadeEndDist; // 0x4dc
 };
 
 // Aligment: 0
-// Size: 1280
+// Size: 1240
 class C_GameRulesProxy : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 15
+// Size: 1328
+class C_PoseController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoseValueParity; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	float m_fPoseValue; // 0x4dc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "10"
+	float m_fInterpolationDuration; // 0x4e0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInterpolationWrap; // 0x4e4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-10"
+	// MNetworkMaxValue "10"
+	float m_fCycleFrequency; // 0x4e8
+	// MNetworkEnable
+	// MNetworkEnable
+	PoseController_FModType_t m_nFModType; // 0x4ec
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-1"
+	// MNetworkMaxValue "1"
+	float m_fFModTimeOffset; // 0x4f0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-10"
+	// MNetworkMaxValue "10"
+	float m_fFModRate; // 0x4f4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "10"
+	float m_fFModAmplitude; // 0x4f8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity >[4] m_hProps; // 0x4fc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8[4] m_chPoseIndex; // 0x50c
+	bool m_bOldPoseValueParity; // 0x510
+	float m_fCurrentPoseValue; // 0x514
+	float m_fCurrentFMod; // 0x518
+	CInterpolatedValue m_PoseTransitionValue; // 0x51c
+};
+
+// Aligment: 17
+// Size: 216
+class C_EconItemView : public IEconItemInterface
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	item_definition_index_t m_iItemDefinitionIndex; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iEntityQuality; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iEntityLevel; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	itemid_t m_iItemID; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iAccountID; // 0x20
+	// MNetworkEnable
+	uint32_t m_iInventoryPosition; // 0x24
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	style_index_t m_nOverrideStyle; // 0x31
+	bool m_bIsStoreItem; // 0x32
+	bool m_bIsTradeItem; // 0x33
+	bool m_bHasComputedAttachedParticles; // 0x34
+	bool m_bHasAttachedParticles; // 0x35
+	int32_t m_iEntityQuantity; // 0x38
+	uint8_t m_unClientFlags; // 0x3c
+	eEconItemOrigin m_unOverrideOrigin; // 0x40
+	char* m_pszGrayedOutReason; // 0x50
+	// MNetworkEnable
+	// MNetworkEnable
+	CAttributeList m_AttributeList; // 0x58
+};
+
 // Aligment: 1
-// Size: 1288
-class C_SBox_GamerulesProxy : public C_GameRulesProxy, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 1248
+class C_DACGameRulesProxy : public C_GameRulesProxy, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkTypeAlias "CSBox_Gamerules*"
 	// MNetworkPriority "64"
-	C_SBox_Gamerules* m_pGameRules; // 0x500
+	C_SingleplayRules* m_pGameRules; // 0x4d8
 };
 
 // Aligment: 0
-// Size: 3496
-class C_SBox_Player : public C_BasePlayer, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 1240
+class C_DacShadowmapBoundary : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 1
+// Size: 2648
+class C_GlobalLight : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	uint16_t m_WindClothForceHandle; // 0xa30
+public:
+	static C_GlobalLight*[5] &Get_sm_pGlobalLight() { return *reinterpret_cast<C_GlobalLight*[5]*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fiels[0]->m_instance); }
+	static CUtlStringToken[5] &Get_sm_pSkyboxSlots() { return *reinterpret_cast<CUtlStringToken[5]*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fiels[1]->m_instance); }
+	static CUtlVector< C_GlobalLight* > &Get_sm_nonPrimaryGlobalLights() { return *reinterpret_cast<CUtlVector< C_GlobalLight* >*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_GlobalLight")->m_static_fiels[2]->m_instance); }
+};
+
 // Aligment: 0
-// Size: 1280
-class C_PointEntity : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 2256
+class C_DOTA_LightInfo : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 5
-// Size: 1304
-class C_EnvClock : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hHourHand; // 0x500
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hMinuteHand; // 0x504
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hSecondHand; // 0x508
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flStartGameTime; // 0x50c
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flStartClockSeconds; // 0x510
-};
-
-// Aligment: 18
-// Size: 5688
-class C_EnvCombinedLightProbeVolume : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	// MNetworkChangeCallback "StateChanged"
-	Color m_Color; // 0x15b0
-	// MNetworkEnable
-	// MNetworkChangeCallback "StateChanged"
-	float m_flBrightness; // 0x15b4
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x15b8
-	// MNetworkEnable
-	bool m_bCustomCubemapTexture; // 0x15c0
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x15c8
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x15d0
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x15d8
-	// MNetworkEnable
-	Vector m_vBoxMins; // 0x15e0
-	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x15ec
-	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x15f8
-	// MNetworkEnable
-	bool m_bMoveable; // 0x1600
-	// MNetworkEnable
-	int32_t m_nHandshake; // 0x1604
-	// MNetworkEnable
-	int32_t m_nEnvCubeMapArrayIndex; // 0x1608
-	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x160c
-	// MNetworkEnable
-	int32_t m_nHmdBrightnessLevel; // 0x1610
-	// MNetworkEnable
-	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x1614
-	// MNetworkEnable
-	bool m_bStartDisabled; // 0x1618
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x1631
-};
-
-// Aligment: 18
-// Size: 1616
+// Aligment: 15
+// Size: 1560
 class C_EnvCubemap : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x5e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x5b8
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hDepthmapTexture; // 0x5f0
+	bool m_bCustomCubemapTexture; // 0x5c0
 	// MNetworkEnable
-	bool m_bCustomCubemapTexture; // 0x5f8
+	float m_flInfluenceRadius; // 0x5c4
 	// MNetworkEnable
-	float m_flInfluenceRadius; // 0x5fc
+	Vector m_vBoxProjectMins; // 0x5c8
 	// MNetworkEnable
-	Vector m_vBoxProjectMins; // 0x600
+	Vector m_vBoxProjectMaxs; // 0x5d4
 	// MNetworkEnable
-	Vector m_vBoxProjectMaxs; // 0x60c
+	CUtlSymbolLarge m_LightGroups; // 0x5e0
 	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x618
+	bool m_bMoveable; // 0x5e8
 	// MNetworkEnable
-	bool m_bMoveable; // 0x620
+	int32_t m_nHandshake; // 0x5ec
 	// MNetworkEnable
-	int32_t m_nHandshake; // 0x624
+	int32_t m_nEnvCubeMapArrayIndex; // 0x5f0
 	// MNetworkEnable
-	int32_t m_nEnvCubeMapArrayIndex; // 0x628
+	int32_t m_nIndoorOutdoorLevel; // 0x5f4
 	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x62c
+	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x5f8
 	// MNetworkEnable
-	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x630
+	float m_flEdgeFadeDist; // 0x5fc
 	// MNetworkEnable
-	float m_flEdgeFadeDist; // 0x634
+	bool m_bStartDisabled; // 0x600
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x638
-	// MNetworkEnable
-	bool m_bDefaultEnvMap; // 0x639
-	// MNetworkEnable
-	bool m_bRenderDepthMap; // 0x63a
-	// MNetworkEnable
-	bool m_bAlwaysCheckDepth; // 0x63b
+	bool m_bDefaultEnvMap; // 0x601
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnabled; // 0x648
+	bool m_bEnabled; // 0x610
 };
 
 // Aligment: 0
-// Size: 1616
+// Size: 1560
 class C_EnvCubemapBox : public C_EnvCubemap, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -1390,420 +2051,504 @@ public:
 };
 
 // Aligment: 11
-// Size: 1328
+// Size: 1288
 class C_EnvCubemapFog : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEndDistance; // 0x500
+	float m_flEndDistance; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDistance; // 0x504
+	float m_flStartDistance; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogFalloffExponent; // 0x508
+	float m_flFogFalloffExponent; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightWidth; // 0x50c
+	float m_flFogHeightWidth; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightStart; // 0x510
+	float m_flFogHeightStart; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightExponent; // 0x514
+	float m_flFogHeightExponent; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flLODBias; // 0x518
+	float m_flLODBias; // 0x4f0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x51c
+	bool m_bActive; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x51d
+	bool m_bStartDisabled; // 0x4f5
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogCubemapTexture; // 0x520
-	bool m_bFirstTime; // 0x528
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogCubemapTexture; // 0x4f8
+	bool m_bFirstTime; // 0x500
 };
 
 // Aligment: 12
-// Size: 5416
+// Size: 5368
 class C_EnvLightProbeVolume : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x14c8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1498
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x14d0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x14a0
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x14d8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x14a8
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x14e0
+	Vector m_vBoxMins; // 0x14b0
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x14ec
+	Vector m_vBoxMaxs; // 0x14bc
 	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x14f8
+	CUtlSymbolLarge m_LightGroups; // 0x14c8
 	// MNetworkEnable
-	bool m_bMoveable; // 0x1500
+	bool m_bMoveable; // 0x14d0
 	// MNetworkEnable
-	int32_t m_nHandshake; // 0x1504
+	int32_t m_nHandshake; // 0x14d4
 	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x1508
+	int32_t m_nIndoorOutdoorLevel; // 0x14d8
 	// MNetworkEnable
-	int32_t m_nHmdBrightnessLevel; // 0x150c
+	int32_t m_nHmdBrightnessLevel; // 0x14dc
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x1510
+	bool m_bStartDisabled; // 0x14e0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnabled; // 0x1521
+	bool m_bEnabled; // 0x14f1
 };
 
-// Aligment: 10
-// Size: 1384
-class C_SphericalVignette : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Aligment: 18
+// Size: 5632
+class C_EnvCombinedLightProbeVolume : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkChangeCallback "StateChanged"
+	Color m_Color; // 0x1578
+	// MNetworkEnable
+	// MNetworkChangeCallback "StateChanged"
+	float m_flBrightness; // 0x157c
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x1580
+	// MNetworkEnable
+	bool m_bCustomCubemapTexture; // 0x1588
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1590
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x1598
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x15a0
+	// MNetworkEnable
+	Vector m_vBoxMins; // 0x15a8
+	// MNetworkEnable
+	Vector m_vBoxMaxs; // 0x15b4
+	// MNetworkEnable
+	CUtlSymbolLarge m_LightGroups; // 0x15c0
+	// MNetworkEnable
+	bool m_bMoveable; // 0x15c8
+	// MNetworkEnable
+	int32_t m_nHandshake; // 0x15cc
+	// MNetworkEnable
+	int32_t m_nEnvCubeMapArrayIndex; // 0x15d0
+	// MNetworkEnable
+	int32_t m_nIndoorOutdoorLevel; // 0x15d4
+	// MNetworkEnable
+	int32_t m_nHmdBrightnessLevel; // 0x15d8
+	// MNetworkEnable
+	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x15dc
+	// MNetworkEnable
+	bool m_bStartDisabled; // 0x15e0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x15f9
+};
+
+// Aligment: 15
+// Size: 8224
+class C_EnvTimeOfDay2 : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnSunrise; // 0x4d8
+	CEntityIOOutput m_OnSunset; // 0x500
+	CEntityIOOutput m_OnDayBegin; // 0x528
+	CEntityIOOutput m_OnDayEnd; // 0x550
+	CEntityIOOutput m_OnNightBegin; // 0x578
+	CEntityIOOutput m_OnNightEnd; // 0x5a0
+	CEntityIOOutput m_OnDuskBegin; // 0x5c8
+	CEntityIOOutput m_OnDuskEnd; // 0x5f0
+	CEntityIOOutput m_OnDawnBegin; // 0x618
+	CEntityIOOutput m_OnDawnEnd; // 0x640
+	CEntityIOOutput m_OnMidDay; // 0x668
+	CEntityIOOutput m_OnMidNight; // 0x690
+	// MNetworkEnable
+	// MNetworkEnable
+	CTimeOfDayDynamicKeys m_DynamicKeys; // 0x6b8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CTimeOfDayDynamicValues > m_DynamicValues; // 0x740
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTimeLastUpdate; // 0x1150
+public:
+	static C_EnvTimeOfDay2* &Get_sm_pTimeOfDay() { return *reinterpret_cast<C_EnvTimeOfDay2**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_EnvTimeOfDay2")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_s_kDynamicValuesArraySize() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_EnvTimeOfDay2")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 7
+// Size: 1272
+class C_TonemapController2 : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteStartDistance; // 0x500
+	float m_flAutoExposureMin; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteEndDistance; // 0x504
+	float m_flAutoExposureMax; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flFarZ; // 0x508
+	float m_flTonemapPercentTarget; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteMaxOpacity; // 0x50c
+	float m_flTonemapPercentBrightPixels; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteFalloffExponent; // 0x510
+	float m_flTonemapMinAvgLum; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	Color m_vignetteColor; // 0x514
+	float m_flRate; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteStrength; // 0x518
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flFadeTime; // 0x51c
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bStartDisabled; // 0x520
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bIsEnabled; // 0x521
-public:
-	static C_SphericalVignette* &Get_sm_pSphericalVignette() { return *reinterpret_cast<C_SphericalVignette**>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_SphericalVignette")->m_static_fiels[0]->m_instance); }
+	float m_flAccelerateExposureDown; // 0x4f0
 };
 
 // Aligment: 28
-// Size: 1408
+// Size: 1368
 class C_EnvVolumetricFogController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flScattering; // 0x500
+	float m_flScattering; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flAnisotropy; // 0x504
+	float m_flAnisotropy; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeSpeed; // 0x508
+	float m_flFadeSpeed; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDrawDistance; // 0x50c
+	float m_flDrawDistance; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeInStart; // 0x510
+	float m_flFadeInStart; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeInEnd; // 0x514
+	float m_flFadeInEnd; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flIndirectStrength; // 0x518
+	float m_flIndirectStrength; // 0x4f0
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimX; // 0x51c
+	int32_t m_nIndirectTextureDimX; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimY; // 0x520
+	int32_t m_nIndirectTextureDimY; // 0x4f8
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimZ; // 0x524
+	int32_t m_nIndirectTextureDimZ; // 0x4fc
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x528
+	Vector m_vBoxMins; // 0x500
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x534
+	Vector m_vBoxMaxs; // 0x50c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x540
+	bool m_bActive; // 0x518
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartAnisoTime; // 0x544
+	float m_flStartAnisoTime; // 0x51c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartScatterTime; // 0x548
+	float m_flStartScatterTime; // 0x520
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDrawDistanceTime; // 0x54c
+	float m_flStartDrawDistanceTime; // 0x524
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartAnisotropy; // 0x550
+	float m_flStartAnisotropy; // 0x528
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartScattering; // 0x554
+	float m_flStartScattering; // 0x52c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDrawDistance; // 0x558
+	float m_flStartDrawDistance; // 0x530
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultAnisotropy; // 0x55c
+	float m_flDefaultAnisotropy; // 0x534
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultScattering; // 0x560
+	float m_flDefaultScattering; // 0x538
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultDrawDistance; // 0x564
+	float m_flDefaultDrawDistance; // 0x53c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x568
+	bool m_bStartDisabled; // 0x540
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnableIndirect; // 0x569
+	bool m_bEnableIndirect; // 0x541
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bIsMaster; // 0x56a
+	bool m_bIsMaster; // 0x542
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogIndirectTexture; // 0x570
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogIndirectTexture; // 0x548
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nForceRefreshCount; // 0x578
-	bool m_bFirstTime; // 0x57c
+	int32_t m_nForceRefreshCount; // 0x550
+	bool m_bFirstTime; // 0x554
 };
 
 // Aligment: 7
-// Size: 1328
+// Size: 1288
 class C_EnvVolumetricFogVolume : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x500
+	bool m_bActive; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x504
+	Vector m_vBoxMins; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x510
+	Vector m_vBoxMaxs; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x51c
+	bool m_bStartDisabled; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStrength; // 0x520
+	float m_flStrength; // 0x4f8
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nFalloffShape; // 0x524
+	int32_t m_nFalloffShape; // 0x4fc
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFalloffExponent; // 0x528
+	float m_flFalloffExponent; // 0x500
 };
 
 // Aligment: 3
-// Size: 1392
+// Size: 1344
 class C_FogController : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	fogparams_t m_fog; // 0x500
-	bool m_bUseAngles; // 0x568
-	int32_t m_iChangedVariables; // 0x56c
+	fogparams_t m_fog; // 0x4d8
+	bool m_bUseAngles; // 0x538
+	int32_t m_iChangedVariables; // 0x53c
 };
 
 // Aligment: 0
-// Size: 1280
-class CInfoTarget : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 1240
+class C_PointEntity : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 0
-// Size: 1280
-class CInfoParticleTarget : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-// <no members described>
-};
-
-// Aligment: 3
-// Size: 1304
-class C_InfoVisibilityBox : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_nMode; // 0x504
-	// MNetworkEnable
-	// MNetworkEnable
-	Vector m_vBoxSize; // 0x508
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x514
-};
-
-// Aligment: 8
+// Aligment: 28
 // Size: 1352
-class CInfoWorldLayer : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CEntityIOOutput m_pOutputOnEntitiesSpawned; // 0x500
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlSymbolLarge m_worldName; // 0x528
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlSymbolLarge m_layerName; // 0x530
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bWorldLayerVisible; // 0x538
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEntitiesSpawned; // 0x539
-	bool m_bCreateAsChildSpawnGroup; // 0x53a
-	uint32_t m_hLayerSpawnGroup; // 0x53c
-	bool m_bWorldLayerActuallyVisible; // 0x540
-};
-
-// Aligment: 24
-// Size: 1376
 class C_PointCamera : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_FOV; // 0x500
+	float m_FOV; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_Resolution; // 0x504
+	float m_Resolution; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bFogEnable; // 0x508
+	bool m_bFogEnable; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	Color m_FogColor; // 0x509
+	Color m_FogColor; // 0x4e1
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogStart; // 0x510
+	float m_flFogStart; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogEnd; // 0x514
+	float m_flFogEnd; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogMaxDensity; // 0x518
+	float m_flFogMaxDensity; // 0x4f0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x51c
+	bool m_bActive; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseScreenAspectRatio; // 0x51d
+	bool m_bUseScreenAspectRatio; // 0x4f5
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flAspectRatio; // 0x520
+	float m_flAspectRatio; // 0x4f8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bNoSky; // 0x524
+	bool m_bNoSky; // 0x4fc
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fBrightness; // 0x528
+	float m_fBrightness; // 0x500
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flZFar; // 0x52c
+	float m_flZFar; // 0x504
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flZNear; // 0x530
+	float m_flZNear; // 0x508
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDofEnabled; // 0x534
+	float m_flOverrideShadowFarZ; // 0x50c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofNearBlurry; // 0x538
+	bool m_bDofEnabled; // 0x510
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofNearCrisp; // 0x53c
+	float m_flDofNearBlurry; // 0x514
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofFarCrisp; // 0x540
+	float m_flDofNearCrisp; // 0x518
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofFarBlurry; // 0x544
+	float m_flDofFarCrisp; // 0x51c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofTiltToGround; // 0x548
-	float m_TargetFOV; // 0x54c
-	float m_DegreesPerSecond; // 0x550
-	bool m_bIsOn; // 0x554
-	C_PointCamera* m_pNext; // 0x558
+	float m_flDofFarBlurry; // 0x520
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDofTiltToGround; // 0x524
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flScreenWindowScale; // 0x528
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFogStartMultiplier; // 0x52c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFogEndMultiplier; // 0x530
+	float m_TargetFOV; // 0x534
+	float m_DegreesPerSecond; // 0x538
+	bool m_bIsOn; // 0x53c
+	C_PointCamera* m_pNext; // 0x540
+};
+
+// Aligment: 5
+// Size: 1264
+class C_EnvClock : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hHourHand; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hMinuteHand; // 0x4dc
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hSecondHand; // 0x4e0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartGameTime; // 0x4e4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartClockSeconds; // 0x4e8
+};
+
+// Aligment: 8
+// Size: 1312
+class CInfoWorldLayer : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_pOutputOnEntitiesSpawned; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_worldName; // 0x500
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_layerName; // 0x508
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWorldLayerVisible; // 0x510
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEntitiesSpawned; // 0x511
+	bool m_bCreateAsChildSpawnGroup; // 0x512
+	uint32_t m_hLayerSpawnGroup; // 0x514
+	bool m_bWorldLayerActuallyVisible; // 0x518
+};
+
+// Aligment: 3
+// Size: 1264
+class C_InfoVisibilityBox : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nMode; // 0x4dc
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vBoxSize; // 0x4e0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x4ec
 };
 
 // Aligment: 2
-// Size: 4928
+// Size: 2448
 class C_BodyComponentBaseAnimating : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkEnable
-	C_BaseAnimatingController m_animationController; // 0x4a0
+	C_BaseAnimatingController m_animationController; // 0x520
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x1328
+	CNetworkVarChainer __m_pChainEntity; // 0x970
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BodyComponentBaseAnimating")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BodyComponentBaseAnimating")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 5040
+// Size: 2544
 class C_BodyComponentBaseAnimatingOverlay : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkEnable
-	C_BaseAnimatingOverlayController m_animationController; // 0x4a0
+	C_BaseAnimatingOverlayController m_animationController; // 0x520
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x1390
+	CNetworkVarChainer __m_pChainEntity; // 0x9d8
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BodyComponentBaseAnimatingOverlay")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("C_BodyComponentBaseAnimatingOverlay")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 1
-// Size: 1216
+// Size: 1344
 class CBodyComponentBaseModelEntity : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x4a0
+	CNetworkVarChainer __m_pChainEntity; // 0x520
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 25
-// Size: 1896
+// Aligment: 27
+// Size: 1768
 class C_BaseModelEntity : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -1811,48 +2556,72 @@ public:
 	// MNetworkUserGroup "CRenderComponent"
 	// MNetworkAlias "CRenderComponent"
 	// MNetworkTypeAlias "CRenderComponent"
-	CRenderComponent* m_CRenderComponent; // 0x500
-	int32_t m_iViewerID; // 0x508
+	CRenderComponent* m_CRenderComponent; // 0x4d8
+	int32_t m_nLastAddDecal; // 0x4e0
+	int32_t m_nDecalsAdded; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnRenderModeChanged"
-	RenderMode_t m_nRenderMode; // 0x50c
+	RenderMode_t m_nRenderMode; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	RenderFx_t m_nRenderFX; // 0x50d
-	bool m_bAllowFadeInView; // 0x50e
+	RenderFx_t m_nRenderFX; // 0x4e9
+	bool m_bAllowFadeInView; // 0x4ea
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnColorChanged"
-	Color m_clrRender; // 0x50f
+	Color m_clrRender; // 0x4eb
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnRenderAttributesChanged"
+	CUtlStringToken[4] m_RenderAttributeIDs; // 0x4f0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnRenderAttributesChanged"
+	Vector4D[4] m_RenderAttributeValues; // 0x500
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnLightGroupChanged"
-	CUtlStringToken m_LightGroup; // 0x514
+	CUtlStringToken m_LightGroup; // 0x540
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bRenderToCubemaps; // 0x518
+	bool m_bRenderToCubemaps; // 0x544
 	// MNetworkEnable
 	// MNetworkEnable
-	CCollisionProperty m_Collision; // 0x520
+	CCollisionProperty m_Collision; // 0x548
 	// MNetworkEnable
 	// MNetworkEnable
-	CGlowProperty m_Glow; // 0x5f8
+	CGlowProperty m_Glow; // 0x5f0
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flGlowBackfaceMult; // 0x658
+	float m_flGlowBackfaceMult; // 0x638
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fadeMinDist; // 0x65c
+	float m_fadeMinDist; // 0x63c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fadeMaxDist; // 0x660
+	float m_fadeMaxDist; // 0x640
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeScale; // 0x664
+	float m_flFadeScale; // 0x644
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flShadowStrength; // 0x668
+	float m_flShadowStrength; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nAddDecal; // 0x64c
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDecalPosition; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDecalForwardAxis; // 0x65c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDecalHealBloodRate; // 0x668
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDecalHealHeightRate; // 0x66c
 	// MNetworkEnable
 	// MNetworkPriority "64"
 	// MNetworkUserGroup "Player"
@@ -1861,26 +2630,10 @@ public:
 	CClientAlphaProperty* m_pClientAlphaProperty; // 0x6d8
 	Color m_ClientOverrideTint; // 0x6e0
 	bool m_bUseClientOverrideTint; // 0x6e4
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnLightingOriginChanged"
-	Vector m_vLightingOrigin; // 0x720
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnLightingOriginChanged"
-	bool m_bFixupLightingOriginToPlayerSide; // 0x72c
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< CUtlStringToken > m_MaterialReplaceAttribute; // 0x730
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< CStrongHandle< InfoForResourceTypeIMaterial2 > > m_MaterialReplaceMaterial; // 0x748
-	int32_t m_materialCountHash; // 0x760
-	CUtlStringToken m_sceneLayerID; // 0x764
 };
 
 // Aligment: 0
-// Size: 1896
+// Size: 1768
 class CServerOnlyModelEntity : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -1888,7 +2641,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1896
+// Size: 1768
 class C_ModelPointEntity : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -1896,327 +2649,480 @@ public:
 };
 
 // Aligment: 7
-// Size: 1368
+// Size: 1328
 class CLogicRelay : public CLogicalEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnTrigger; // 0x500
-	CEntityIOOutput m_OnSpawn; // 0x528
-	bool m_bDisabled; // 0x550
-	bool m_bWaitForRefire; // 0x551
-	bool m_bTriggerOnce; // 0x552
-	bool m_bFastRetrigger; // 0x553
-	bool m_bPassthoughCaller; // 0x554
+	CEntityIOOutput m_OnTrigger; // 0x4d8
+	CEntityIOOutput m_OnSpawn; // 0x500
+	bool m_bDisabled; // 0x528
+	bool m_bWaitForRefire; // 0x529
+	bool m_bTriggerOnce; // 0x52a
+	bool m_bFastRetrigger; // 0x52b
+	bool m_bPassthoughCaller; // 0x52c
+};
+
+// Aligment: 13
+// Size: 2936
+class C_ParticleSystem : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_szSnapshotFileName; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bActive; // 0x7ec
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	int32_t m_nStopType; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x7f8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x800
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector[4] m_vServerControlPoints; // 0x804
+	// MNetworkEnable
+	// MNetworkEnable
+	uint8[4] m_iServerControlPointAssignments; // 0x834
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity >[64] m_hControlPointEnts; // 0x838
+	bool m_bNoSave; // 0x938
+	bool m_bStartActive; // 0x939
+	CUtlSymbolLarge m_iszEffectName; // 0x940
+	CUtlSymbolLarge[64] m_iszControlPointNames; // 0x948
+	bool m_bOldActive; // 0xb68
 };
 
 // Aligment: 16
-// Size: 1544
+// Size: 1504
 class C_PathParticleRope : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bStartActive; // 0x500
-	float m_flMaxSimulationTime; // 0x504
-	CUtlSymbolLarge m_iszEffectName; // 0x508
-	CUtlVector< CUtlSymbolLarge > m_PathNodes_Name; // 0x510
+	bool m_bStartActive; // 0x4d8
+	float m_flMaxSimulationTime; // 0x4dc
+	CUtlSymbolLarge m_iszEffectName; // 0x4e0
+	CUtlVector< CUtlSymbolLarge > m_PathNodes_Name; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flParticleSpacing; // 0x528
+	float m_flParticleSpacing; // 0x500
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	float m_flSlack; // 0x52c
+	float m_flSlack; // 0x504
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	float m_flRadius; // 0x530
+	float m_flRadius; // 0x508
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	Color m_ColorTint; // 0x534
+	Color m_ColorTint; // 0x50c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "effectStateChanged"
 	// MNetworkBitCount "3"
-	int32_t m_nEffectState; // 0x538
+	int32_t m_nEffectState; // 0x510
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x540
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x518
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_Position; // 0x548
+	CUtlVector< Vector > m_PathNodes_Position; // 0x520
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_TangentIn; // 0x560
+	CUtlVector< Vector > m_PathNodes_TangentIn; // 0x538
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_TangentOut; // 0x578
+	CUtlVector< Vector > m_PathNodes_TangentOut; // 0x550
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_Color; // 0x590
+	CUtlVector< Vector > m_PathNodes_Color; // 0x568
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "pinStateChanged"
-	CUtlVector< bool > m_PathNodes_PinEnabled; // 0x5a8
+	CUtlVector< bool > m_PathNodes_PinEnabled; // 0x580
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< float32 > m_PathNodes_RadiusScale; // 0x5c0
+	CUtlVector< float32 > m_PathNodes_RadiusScale; // 0x598
 };
 
 // Aligment: 5
-// Size: 1304
+// Size: 1264
 class CInfoDynamicShadowHint : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bDisabled; // 0x500
-	float m_flRange; // 0x504
-	int32_t m_nImportance; // 0x508
-	int32_t m_nLightChoice; // 0x50c
-	CHandle< C_BaseEntity > m_hLight; // 0x510
+	bool m_bDisabled; // 0x4d8
+	float m_flRange; // 0x4dc
+	int32_t m_nImportance; // 0x4e0
+	int32_t m_nLightChoice; // 0x4e4
+	CHandle< C_BaseEntity > m_hLight; // 0x4e8
 public:
 	static CUtlVector< CInfoDynamicShadowHint* > &Get_m_AllHints() { return *reinterpret_cast<CUtlVector< CInfoDynamicShadowHint* >*>(interfaces::g_schema->FindTypeScopeForModule("client.dll")->FindDeclaredClass("CInfoDynamicShadowHint")->m_static_fiels[0]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 1328
+// Size: 1288
 class CInfoDynamicShadowHintBox : public CInfoDynamicShadowHint, C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_vBoxMins; // 0x518
-	Vector m_vBoxMaxs; // 0x524
+	Vector m_vBoxMins; // 0x4f0
+	Vector m_vBoxMaxs; // 0x4fc
 };
 
 // Aligment: 7
-// Size: 1936
+// Size: 1808
 class C_DynamicLight : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "4"
-	uint8_t m_Flags; // 0x768
+	uint8_t m_Flags; // 0x6e8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "4"
-	uint8_t m_LightStyle; // 0x769
+	uint8_t m_LightStyle; // 0x6e9
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_Radius; // 0x76c
+	float m_Radius; // 0x6ec
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	int32_t m_Exponent; // 0x770
+	int32_t m_Exponent; // 0x6f0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "360"
-	float m_InnerAngle; // 0x774
+	float m_InnerAngle; // 0x6f4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "360"
-	float m_OuterAngle; // 0x778
+	float m_OuterAngle; // 0x6f8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_SpotRadius; // 0x77c
+	float m_SpotRadius; // 0x6fc
+};
+
+// Aligment: 9
+// Size: 1384
+class C_EnvScreenOverlay : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge[10] m_iszOverlayNames; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-1"
+	// MNetworkMaxValue "63"
+	float32[10] m_flOverlayTimes; // 0x528
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x550
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int32_t m_iDesiredOverlay; // 0x554
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsActive; // 0x558
+	bool m_bWasActive; // 0x559
+	int32_t m_iCachedDesiredOverlay; // 0x55c
+	int32_t m_iCurrentOverlay; // 0x560
+	float m_flCurrentOverlayTime; // 0x564
+};
+
+// Aligment: 2
+// Size: 1248
+class C_EnvScreenEffect : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDuration; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	ScreenEffectType_t m_nType; // 0x4dc
+};
+
+// Aligment: 7
+// Size: 1272
+class C_EnvDOFController : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDOFEnabled; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flNearBlurDepth; // 0x4dc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flNearFocusDepth; // 0x4e0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFarFocusDepth; // 0x4e4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFarBlurDepth; // 0x4e8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flNearBlurRadius; // 0x4ec
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFarBlurRadius; // 0x4f0
 };
 
 // Aligment: 4
-// Size: 1920
+// Size: 1792
 class C_FuncAreaPortalWindow : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeStartDist; // 0x768
+	float m_flFadeStartDist; // 0x6e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeDist; // 0x76c
+	float m_flFadeDist; // 0x6ec
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flTranslucencyLimit; // 0x770
+	float m_flTranslucencyLimit; // 0x6f0
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCModel > m_iBackgroundModelIndex; // 0x778
+	CStrongHandle< InfoForResourceTypeCModel > m_iBackgroundModelIndex; // 0x6f8
+};
+
+// Aligment: 2
+// Size: 1776
+class C_Func_LOD : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nDisappearMinDist; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nDisappearMaxDist; // 0x6ec
+};
+
+// Aligment: 15
+// Size: 2064
+class C_MaterialModifyControl : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialName; // 0x4d8
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialVar; // 0x5d7
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialVarValue; // 0x6d6
+	bool m_bHasNewAnimationCommands; // 0x7e0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iFrameStart; // 0x7e4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iFrameEnd; // 0x7e8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWrap; // 0x7ec
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFramerate; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bNewAnimCommandsSemaphore; // 0x7f4
+	bool m_bOldAnimCommandsSemaphore; // 0x7f5
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpStartValue; // 0x7f8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpEndValue; // 0x7fc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpTransitionTime; // 0x800
+	float m_flAnimationStartTime; // 0x804
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	MaterialModifyMode_t m_nModifyMode; // 0x808
+};
+
+// Aligment: 1
+// Size: 1248
+class C_RagdollManager : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "6"
+	int8_t m_iCurrentMaxRagdollCount; // 0x4d8
 };
 
 // Aligment: 5
-// Size: 1304
+// Size: 1264
 class C_ShadowControl : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_shadowDirection; // 0x500
+	Vector m_shadowDirection; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	Color m_shadowColor; // 0x50c
+	Color m_shadowColor; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flShadowMaxDist; // 0x510
+	float m_flShadowMaxDist; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisableShadows; // 0x514
+	bool m_bDisableShadows; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnableLocalLightShadows; // 0x515
+	bool m_bEnableLocalLightShadows; // 0x4ed
 };
 
 // Aligment: 4
-// Size: 1296
+// Size: 1256
 class C_PointHMDAnchor : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisabled; // 0x500
+	bool m_bDisabled; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEnableTime; // 0x504
+	float m_flEnableTime; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	int32_t m_nPlayerIndex; // 0x508
-	int32_t m_nLastSimulateFrame; // 0x50c
+	int32_t m_nPlayerIndex; // 0x4e0
+	int32_t m_nLastSimulateFrame; // 0x4e4
 };
 
 // Aligment: 0
-// Size: 1296
+// Size: 1256
 class C_PointHMDAnchorOverride : public C_PointHMDAnchor, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 25
-// Size: 1400
+// Aligment: 3
+// Size: 1256
+class CHapticRelay : public CLogicalEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flFrequency; // 0x4d8
+	float m_flAmplitude; // 0x4dc
+	float m_flDuration; // 0x4e0
+};
+
+// Aligment: 26
+// Size: 1368
 class C_PointValueRemapper : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisabled; // 0x500
-	bool m_bDisabledOld; // 0x501
+	bool m_bDisabled; // 0x4d8
+	bool m_bDisabledOld; // 0x4d9
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUpdateOnClient; // 0x502
+	bool m_bUpdateOnClient; // 0x4da
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperInputType_t m_nInputType; // 0x504
+	ValueRemapperInputType_t m_nInputType; // 0x4dc
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hRemapLineStart; // 0x508
+	CHandle< C_BaseEntity > m_hRemapLineStart; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hRemapLineEnd; // 0x50c
+	CHandle< C_BaseEntity > m_hRemapLineEnd; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flMaximumChangePerSecond; // 0x510
+	float m_flMaximumChangePerSecond; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDisengageDistance; // 0x514
+	float m_flDisengageDistance; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEngageDistance; // 0x518
+	float m_flEngageDistance; // 0x4f0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bRequiresUseKey; // 0x51c
+	bool m_bRequiresUseKey; // 0x4f4
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperOutputType_t m_nOutputType; // 0x520
+	ValueRemapperOutputType_t m_nOutputType; // 0x4f8
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< CHandle< C_BaseEntity > > m_hOutputEntities; // 0x528
+	CUtlVector< CHandle< C_BaseEntity > > m_hOutputEntities; // 0x500
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperHapticsType_t m_nHapticsType; // 0x540
+	ValueRemapperHapticsType_t m_nHapticsType; // 0x518
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperMomentumType_t m_nMomentumType; // 0x544
+	ValueRemapperMomentumType_t m_nMomentumType; // 0x51c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flMomentumModifier; // 0x548
+	float m_flMomentumModifier; // 0x520
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flSnapValue; // 0x54c
-	float m_flCurrentMomentum; // 0x550
+	float m_flSnapValue; // 0x524
+	float m_flCurrentMomentum; // 0x528
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperRatchetType_t m_nRatchetType; // 0x554
-	float m_flRatchetOffset; // 0x558
+	ValueRemapperRatchetType_t m_nRatchetType; // 0x52c
+	float m_flRatchetOffset; // 0x530
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flInputOffset; // 0x55c
-	bool m_bEngaged; // 0x560
-	bool m_bFirstUpdate; // 0x561
-	float m_flPreviousValue; // 0x564
-	float m_flPreviousUpdateTickTime; // 0x568
-	Vector m_vecPreviousTestPoint; // 0x56c
-};
-
-// Aligment: 12
-// Size: 2528
-class C_PointWorldText : public C_ModelPointEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	bool m_bForceRecreateNextUpdate; // 0x770
-	// MNetworkEnable
-	// MNetworkEnable
-	char[512] m_messageText; // 0x780
-	// MNetworkEnable
-	// MNetworkEnable
-	char[64] m_FontName; // 0x980
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x9c0
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bFullbright; // 0x9c1
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flWorldUnitsPerPx; // 0x9c4
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flFontSize; // 0x9c8
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flDepthOffset; // 0x9cc
-	// MNetworkEnable
-	// MNetworkEnable
-	Color m_Color; // 0x9d0
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextJustifyHorizontal_t m_nJustifyHorizontal; // 0x9d4
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextJustifyVertical_t m_nJustifyVertical; // 0x9d8
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextReorientMode_t m_nReorientMode; // 0x9dc
+	float m_flInputOffset; // 0x534
+	eLiteralHandType m_nLiteralHand; // 0x538
+	bool m_bEngaged; // 0x53c
+	bool m_bFirstUpdate; // 0x53d
+	float m_flPreviousValue; // 0x540
+	float m_flPreviousUpdateTickTime; // 0x544
+	Vector m_vecPreviousTestPoint; // 0x548
 };
 
 // Aligment: 4
-// Size: 1312
+// Size: 1272
 class C_SoundOpvarSetPointEntity : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszStackName; // 0x500
+	CUtlSymbolLarge m_iszStackName; // 0x4d8
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszOperatorName; // 0x508
+	CUtlSymbolLarge m_iszOperatorName; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszOpvarName; // 0x510
+	CUtlSymbolLarge m_iszOpvarName; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_iOpvarIndex; // 0x518
+	int32_t m_iOpvarIndex; // 0x4f0
 };
 
 // Aligment: 0
-// Size: 1312
+// Size: 1272
 class C_SoundOpvarSetAABBEntity : public C_SoundOpvarSetPointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2224,33 +3130,103 @@ public:
 };
 
 // Aligment: 0
-// Size: 1312
+// Size: 1272
 class C_SoundOpvarSetOBBEntity : public C_SoundOpvarSetAABBEntity, C_SoundOpvarSetPointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 12
+// Size: 2400
+class C_PointWorldText : public C_ModelPointEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bForceRecreateNextUpdate; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	char[512] m_messageText; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	char[64] m_FontName; // 0x900
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x940
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bFullbright; // 0x941
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flWorldUnitsPerPx; // 0x944
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFontSize; // 0x948
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDepthOffset; // 0x94c
+	// MNetworkEnable
+	// MNetworkEnable
+	Color m_Color; // 0x950
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextJustifyHorizontal_t m_nJustifyHorizontal; // 0x954
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextJustifyVertical_t m_nJustifyVertical; // 0x958
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextReorientMode_t m_nReorientMode; // 0x95c
+};
+
 // Aligment: 1
-// Size: 1856
+// Size: 1816
 class C_EnvWind : public C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	C_CEnvWindShared m_EnvWindShared; // 0x500
+	C_CEnvWindShared m_EnvWindShared; // 0x4d8
 };
 
 // Aligment: 0
-// Size: 1896
+// Size: 1768
 class C_BaseToggle : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 3
+// Size: 1784
+class C_BaseButton : public C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseModelEntity > m_glowEntity; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_usable; // 0x6ec
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_szDisplayText; // 0x6f0
+};
+
+// Aligment: 2
+// Size: 1800
+class C_ButtonTimed : public C_BaseButton, C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_sUseString; // 0x6f8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_sUseSubString; // 0x700
+};
+
 // Aligment: 0
-// Size: 1896
+// Size: 1768
 class C_PrecipitationBlocker : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2258,27 +3234,69 @@ public:
 };
 
 // Aligment: 11
-// Size: 2056
-class C_Precipitation : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 1928
+class CClient_Precipitation : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	PrecipitationType_t m_nPrecipType; // 0x768
-	float m_flDensity; // 0x76c
-	float m_flParticleInnerDist; // 0x778
-	char* m_pParticleInnerNearDef; // 0x780
-	char* m_pParticleInnerFarDef; // 0x788
-	char* m_pParticleOuterDef; // 0x790
-	TimedEvent m_tParticlePrecipTraceTimer; // 0x7f8
-	bool m_bActiveParticlePrecipEmitter; // 0x800
-	bool m_bParticlePrecipInitialized; // 0x801
-	bool m_bHasSimulatedSinceLastSceneObjectUpdate; // 0x802
-	int32_t m_nAvailableSheetSequencesMaxIndex; // 0x804
+	PrecipitationType_t m_nPrecipType; // 0x6e8
+	float m_flDensity; // 0x6ec
+	float m_flParticleInnerDist; // 0x6f8
+	char* m_pParticleInnerNearDef; // 0x700
+	char* m_pParticleInnerFarDef; // 0x708
+	char* m_pParticleOuterDef; // 0x710
+	TimedEvent[1] m_tParticlePrecipTraceTimer; // 0x778
+	bool[1] m_bActiveParticlePrecipEmitter; // 0x780
+	bool m_bParticlePrecipInitialized; // 0x781
+	bool m_bHasSimulatedSinceLastSceneObjectUpdate; // 0x782
+	int32_t m_nAvailableSheetSequencesMaxIndex; // 0x784
+};
+
+// Aligment: 13
+// Size: 1840
+class C_EntityDissolve : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeInStart; // 0x6f4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeInLength; // 0x6f8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutModelStart; // 0x6fc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutModelLength; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutStart; // 0x704
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutLength; // 0x708
+	float m_flNextSparkTime; // 0x70c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	EntityDisolveType_t m_nDissolveType; // 0x710
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDissolverOrigin; // 0x714
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_nMagnitude; // 0x720
+	bool m_bCoreExplode; // 0x724
+	bool m_bLinkedToServerEnt; // 0x725
 };
 
 // Aligment: 0
-// Size: 2392
+// Size: 2264
 class C_EnvProjectedTexture : public C_ModelPointEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2286,129 +3304,696 @@ public:
 };
 
 // Aligment: 0
-// Size: 1896
+// Size: 1768
+class C_FuncBrush : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1800
+class C_FuncCombineBarrier : public C_FuncBrush, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nAmbientEffect; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_EffectName; // 0x6f8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_eBarrierState; // 0x700
+};
+
+// Aligment: 3
+// Size: 1792
+class C_FuncElectrifiedVolume : public C_FuncBrush, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nAmbientEffect; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_EffectName; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bState; // 0x6f8
+};
+
+// Aligment: 0
+// Size: 1768
 class C_FuncOccluder : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1768
+class C_FuncRotating : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1768
+class C_Breakable : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1768
+class C_PhysBox : public C_Breakable, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 41
+// Size: 2768
+class C_RopeKeyframe : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CBitVec< 10 > m_LinksTouchingSomething; // 0x6e8
+	int32_t m_nLinksTouchingSomething; // 0x6ec
+	bool m_bApplyWind; // 0x6f0
+	int32_t m_fPrevLockedPoints; // 0x6f4
+	int32_t m_iForcePointMoveCounter; // 0x6f8
+	bool[2] m_bPrevEndPointPos; // 0x6fc
+	Vector[2] m_vPrevEndPointPos; // 0x700
+	float m_flCurScroll; // 0x718
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flScrollSpeed; // 0x71c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint16_t m_RopeFlags; // 0x720
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_iRopeMaterialModelIndex; // 0x728
+	Vector[10] m_LightValues; // 0x9a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_nSegments; // 0xa18
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hStartPoint; // 0xa1c
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hEndPoint; // 0xa20
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int16_t m_iStartAttachment; // 0xa24
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int16_t m_iEndAttachment; // 0xa26
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_Subdiv; // 0xa28
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	// MNetworkChangeCallback "RecomputeSprings"
+	int16_t m_RopeLength; // 0xa2a
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	// MNetworkChangeCallback "RecomputeSprings"
+	int16_t m_Slack; // 0xa2c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0.1"
+	// MNetworkMaxValue "10"
+	float m_TextureScale; // 0xa30
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_fLockedPoints; // 0xa34
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint8_t m_nChangeCount; // 0xa35
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Width; // 0xa38
+	C_RopeKeyframe::CPhysicsDelegate m_PhysicsDelegate; // 0xa40
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0xa50
+	int32_t m_TextureHeight; // 0xa58
+	Vector m_vecImpulse; // 0xa5c
+	Vector m_vecPreviousImpulse; // 0xa68
+	float m_flCurrentGustTimer; // 0xa74
+	float m_flCurrentGustLifetime; // 0xa78
+	float m_flTimeToNextGust; // 0xa7c
+	Vector m_vWindDir; // 0xa80
+	Vector m_vColorMod; // 0xa8c
+	Vector[2] m_vCachedEndPointAttachmentPos; // 0xa98
+	QAngle[2] m_vCachedEndPointAttachmentAngle; // 0xab0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bConstrainBetweenEndpoints; // 0xac8
+	bitfield:1 m_bEndPointAttachmentPositionsDirty; // 0x0
+	bitfield:1 m_bEndPointAttachmentAnglesDirty; // 0x0
+	bitfield:1 m_bNewDataThisFrame; // 0x0
+	bitfield:1 m_bPhysicsInitted; // 0x0
+};
+
 // Aligment: 12
-// Size: 1376
+// Size: 1336
 class C_SceneEntity : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bIsPlayingBack; // 0x508
+	bool m_bIsPlayingBack; // 0x4e0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bPaused; // 0x509
+	bool m_bPaused; // 0x4e1
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bMultiplayer; // 0x50a
+	bool m_bMultiplayer; // 0x4e2
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAutogenerated; // 0x50b
+	bool m_bAutogenerated; // 0x4e3
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnResetClientTime"
-	float m_flForceClientTime; // 0x50c
+	float m_flForceClientTime; // 0x4e4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "64"
-	uint16_t m_nSceneStringIndex; // 0x510
-	bool m_bClientOnly; // 0x512
-	CHandle< C_BaseFlex > m_hOwner; // 0x514
+	uint16_t m_nSceneStringIndex; // 0x4e8
+	bool m_bClientOnly; // 0x4ea
+	CHandle< C_BaseFlex > m_hOwner; // 0x4ec
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "64"
-	CUtlVector< CHandle< C_BaseFlex > > m_hActorList; // 0x518
-	bool m_bWasPlaying; // 0x530
-	CUtlVector< C_SceneEntity::QueuedEvents_t > m_QueuedEvents; // 0x540
-	float m_flCurrentTime; // 0x558
+	CUtlVector< CHandle< C_BaseFlex > > m_hActorList; // 0x4f0
+	bool m_bWasPlaying; // 0x508
+	CUtlVector< C_SceneEntity::QueuedEvents_t > m_QueuedEvents; // 0x518
+	float m_flCurrentTime; // 0x530
 };
 
-// Aligment: 24
-// Size: 2200
-class C_Sprite : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Aligment: 2
+// Size: 1776
+class C_BaseTrigger : public C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSpriteMaterial; // 0x780
+	bool m_bDisabled; // 0x6e8
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< C_BaseEntity > m_hAttachedToEntity; // 0x788
+	bool m_bClientSidePredicted; // 0x6e9
+};
+
+// Aligment: 0
+// Size: 1768
+class C_TriggerVolume : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1776
+class C_TriggerLerpObject : public C_BaseTrigger, C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 24
+// Size: 1960
+class C_Beam : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkBitCount "8"
-	AttachmentHandle_t m_nAttachment; // 0x78c
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "-25"
+	// MNetworkMaxValue "25"
+	// MNetworkEncodeFlags
+	float m_flFrameRate; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHDRColorScale; // 0x6ec
+	float m_flFireTime; // 0x6f0
+	float m_flDamage; // 0x6f4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8_t m_nNumBeamEnts; // 0x6f8
+	int32_t m_queryHandleHalo; // 0x6fc
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hBaseMaterial; // 0x720
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_nHaloIndex; // 0x728
+	// MNetworkEnable
+	// MNetworkEnable
+	BeamType_t m_nBeamType; // 0x730
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	uint32_t m_nBeamFlags; // 0x734
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity >[10] m_hAttachEntity; // 0x738
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8[10] m_nAttachIndex; // 0x760
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "102.3"
+	// MNetworkEncodeFlags
+	float m_fWidth; // 0x76c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "102.3"
+	// MNetworkEncodeFlags
+	float m_fEndWidth; // 0x770
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeLength; // 0x774
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fHaloScale; // 0x778
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "0"
-	// MNetworkMaxValue "60"
+	// MNetworkMaxValue "64"
 	// MNetworkEncodeFlags
-	float m_flSpriteFramerate; // 0x790
+	float m_fAmplitude; // 0x77c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "256"
+	// MNetworkEncodeFlags
+	float m_fStartFrame; // 0x780
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "100"
+	float m_fSpeed; // 0x784
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "20"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "256"
 	// MNetworkEncodeFlags
-	float m_flFrame; // 0x794
-	float m_flDieTime; // 0x798
+	// MNetworkPriority "64"
+	float m_flFrame; // 0x788
+	// MNetworkEnable
+	// MNetworkEnable
+	BeamClipStyle_t m_nClipStyle; // 0x78c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bTurnedOff; // 0x790
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_vecEndPos; // 0x794
+	CHandle< C_BaseEntity > m_hEndEntity; // 0x7a0
+};
+
+// Aligment: 24
+// Size: 2072
+class C_Sprite : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSpriteMaterial; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hAttachedToEntity; // 0x708
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	uint32_t m_nBrightness; // 0x7a8
+	int32_t m_nAttachment; // 0x70c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flBrightnessDuration; // 0x7ac
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "60"
+	// MNetworkEncodeFlags
+	float m_flSpriteFramerate; // 0x710
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "20"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "256"
+	// MNetworkEncodeFlags
+	float m_flFrame; // 0x714
+	float m_flDieTime; // 0x718
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_nBrightness; // 0x728
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flBrightnessDuration; // 0x72c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnSpriteScaleChanged"
-	float m_flSpriteScale; // 0x7b0
+	float m_flSpriteScale; // 0x730
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flScaleDuration; // 0x7b4
+	float m_flScaleDuration; // 0x734
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bWorldSpaceScale; // 0x7b8
+	bool m_bWorldSpaceScale; // 0x738
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "6"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "64"
 	// MNetworkEncodeFlags
-	float m_flGlowProxySize; // 0x7bc
+	float m_flGlowProxySize; // 0x73c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flHDRColorScale; // 0x7c0
-	float m_flLastTime; // 0x7c4
-	float m_flMaxFrame; // 0x7c8
-	float m_flStartScale; // 0x7cc
-	float m_flDestScale; // 0x7d0
-	float m_flScaleTimeStart; // 0x7d4
-	int32_t m_nStartBrightness; // 0x7d8
-	int32_t m_nDestBrightness; // 0x7dc
-	float m_flBrightnessTimeStart; // 0x7e0
-	CWeakHandle< InfoForResourceTypeIMaterial2 > m_hOldSpriteMaterial; // 0x7e8
-	int32_t m_nSpriteWidth; // 0x890
-	int32_t m_nSpriteHeight; // 0x894
+	float m_flHDRColorScale; // 0x740
+	float m_flLastTime; // 0x744
+	float m_flMaxFrame; // 0x748
+	float m_flStartScale; // 0x74c
+	float m_flDestScale; // 0x750
+	float m_flScaleTimeStart; // 0x754
+	int32_t m_nStartBrightness; // 0x758
+	int32_t m_nDestBrightness; // 0x75c
+	float m_flBrightnessTimeStart; // 0x760
+	CWeakHandle< InfoForResourceTypeIMaterial2 > m_hOldSpriteMaterial; // 0x768
+	int32_t m_nSpriteWidth; // 0x810
+	int32_t m_nSpriteHeight; // 0x814
 };
 
 // Aligment: 0
-// Size: 2200
+// Size: 2072
 class C_SpriteOriented : public C_Sprite, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 4
+// Size: 1824
+class C_BaseClientUIEntity : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_DialogXMLName; // 0x6f8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_PanelClassName; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_PanelID; // 0x708
+};
+
+// Aligment: 28
+// Size: 2344
+class C_PointClientUIWorldPanel : public C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bForceRecreateNextUpdate; // 0x728
+	bool m_bMoveViewToPlayerNextThink; // 0x729
+	bool m_bCheckCSSClasses; // 0x72a
+	matrix3x4_t m_matAnchorDelta; // 0x72c
+	CPointOffScreenIndicatorUi* m_pOffScreenIndicator; // 0x8c8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIgnoreInput; // 0x8d0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bLit; // 0x8d1
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bFollowPlayerAcrossTeleport; // 0x8d2
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flWidth; // 0x8d4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHeight; // 0x8d8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDPI; // 0x8dc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flInteractDistance; // 0x8e0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDepthOffset; // 0x8e4
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOwnerContext; // 0x8e8
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unHorizontalAlign; // 0x8ec
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unVerticalAlign; // 0x8f0
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOrientation; // 0x8f4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowInteractionFromAllSceneWorlds; // 0x8f8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CUtlSymbolLarge > m_vecCSSClasses; // 0x900
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bOpaque; // 0x918
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bNoDepth; // 0x919
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bRenderBackface; // 0x91a
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseOffScreenIndicator; // 0x91b
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExcludeFromSaveGames; // 0x91c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bGrabbable; // 0x91d
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bOnlyRenderToTexture; // 0x91e
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDisableMipGen; // 0x91f
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nExplicitImageLayout; // 0x920
+};
+
+// Aligment: 4
+// Size: 2360
+class CPointOffScreenIndicatorUi : public C_PointClientUIWorldPanel, C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bBeenEnabled; // 0x928
+	bool m_bHide; // 0x929
+	float m_flSeenTargetTime; // 0x92c
+	C_PointClientUIWorldPanel* m_pTargetPanel; // 0x930
+};
+
 // Aligment: 1
-// Size: 1904
+// Size: 2856
+class C_PointClientUIWorldTextPanel : public C_PointClientUIWorldPanel, C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[512] m_messageText; // 0x928
+};
+
+// Aligment: 13
+// Size: 2496
+class C_PointHintUi : public C_PointClientUIWorldPanel, C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_pszLessonName; // 0x958
+	CUtlSymbolLarge m_pszCaption; // 0x960
+	Vector m_vOffset; // 0x968
+	WorldTextAttachmentType_t m_attachType; // 0x974
+	CHandle< C_BaseEntity > m_hIconTarget; // 0x978
+	CUtlSymbolLarge m_szTargetAttachmentName; // 0x980
+	CUtlSymbolLarge m_pszCustomLayoutFile; // 0x988
+	int32_t m_nTrackedDeviceIndex; // 0x990
+	CHandle< C_PropVRHand > m_hHighlightHand; // 0x994
+	CUtlSymbolLarge m_pszHighlightControllerComponent; // 0x998
+	Vector m_vecLocalHighlightPoint; // 0x9a0
+	CUtlSymbolLarge m_pszHighlightOtherEntityName; // 0x9b0
+	bool m_bUseOffScreenIndicator; // 0x9b8
+};
+
+// Aligment: 13
+// Size: 2272
+class C_PointClientUIHUD : public C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bCheckCSSClasses; // 0x728
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIgnoreInput; // 0x898
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flWidth; // 0x89c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHeight; // 0x8a0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDPI; // 0x8a4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flInteractDistance; // 0x8a8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDepthOffset; // 0x8ac
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOwnerContext; // 0x8b0
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unHorizontalAlign; // 0x8b4
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unVerticalAlign; // 0x8b8
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOrientation; // 0x8bc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowInteractionFromAllSceneWorlds; // 0x8c0
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CUtlSymbolLarge > m_vecCSSClasses; // 0x8c8
+};
+
+// Aligment: 2
+// Size: 1832
+class C_PointClientUIDialog : public C_BaseClientUIEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnDialogActivatorChanged"
+	CHandle< C_BaseEntity > m_hActivator; // 0x720
+	bool m_bStartEnabled; // 0x724
+};
+
+// Aligment: 10
+// Size: 1864
+class CDACWorldParticleSystem : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nType; // 0x708
+	CUtlSymbolLarge m_szEffectName; // 0x710
+	CUtlSymbolLarge m_szTargetName; // 0x718
+	CUtlSymbolLarge m_szControlPoint; // 0x720
+	HSequence m_hOverrideSequence; // 0x728
+	CStrongHandle< InfoForResourceTypeCModel > m_hOverrideModel; // 0x730
+	Vector m_vModelScale; // 0x738
+	bool m_bDayTime; // 0x744
+	bool m_bNightTime; // 0x745
+	bool m_bShowInFow; // 0x746
+};
+
+// Aligment: 0
+// Size: 2208
+class C_EnvDeferredLight : public C_ModelPointEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2208
+class C_EnvDeferredLightClientOnly : public C_EnvDeferredLight, C_ModelPointEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 9
+// Size: 1840
+class C_EnvSky : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterial; // 0x6e8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	bool m_bStartDisabled; // 0x6f0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	Color m_vTintColor; // 0x6f1
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	int32_t m_nFogType; // 0x6f8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMinStart; // 0x6fc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMinEnd; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMaxStart; // 0x704
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMaxEnd; // 0x708
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	bool m_bEnabled; // 0x70c
+};
+
+// Aligment: 0
+// Size: 1272
+class C_TonemapController2Alias_env_tonemap_controller2 : public C_TonemapController2, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1776
 class C_LightEntity : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2416,11 +4001,11 @@ public:
 	// MNetworkUserGroup "CLightComponent"
 	// MNetworkAlias "CLightComponent"
 	// MNetworkTypeAlias "CLightComponent"
-	CLightComponent* m_CLightComponent; // 0x768
+	CLightComponent* m_CLightComponent; // 0x6e8
 };
 
 // Aligment: 0
-// Size: 1904
+// Size: 1776
 class C_LightSpotEntity : public C_LightEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2428,7 +4013,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1904
+// Size: 1776
 class C_LightOrthoEntity : public C_LightEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2436,7 +4021,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1904
+// Size: 1776
 class C_LightDirectionalEntity : public C_LightEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2444,7 +4029,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1904
+// Size: 1776
 class C_LightEnvironmentEntity : public C_LightDirectionalEntity, C_LightEntity, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2452,15 +4037,71 @@ public:
 };
 
 // Aligment: 0
-// Size: 1896
-class C_World : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 1240
+class CInfoTarget : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1240
+class CInfoParticleTarget : public C_PointEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
 // Aligment: 11
-// Size: 2312
+// Size: 1840
+class C_PostProcessingVolume : public C_BaseTrigger, C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostSettings; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeDuration; // 0x708
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMinLogExposure; // 0x70c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMaxLogExposure; // 0x710
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMinExposure; // 0x714
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMaxExposure; // 0x718
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureCompensation; // 0x71c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureFadeSpeedUp; // 0x720
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureFadeSpeedDown; // 0x724
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x728
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExposureControl; // 0x729
+};
+
+// Aligment: 0
+// Size: 1768
+class C_World : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 15
+// Size: 2200
 class C_BaseAnimating : public C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2468,113 +4109,425 @@ public:
 	// MNetworkUserGroup "CHitboxComponent"
 	// MNetworkAlias "CHitboxComponent"
 	// MNetworkTypeAlias "CHitboxComponent"
-	CHitboxComponent m_CHitboxComponent; // 0x768
-	CUtlVector< handposepair_t > m_HandPoses; // 0x780
+	CHitboxComponent m_CHitboxComponent; // 0x6e8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bShouldAnimateDuringGameplayPause; // 0x798
+	Vector m_vecForce; // 0x700
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAnimGraphUpdateEnabled; // 0x799
+	// MNetworkBitCount "8"
+	int32_t m_nForceBone; // 0x70c
+	CUtlVector< handposepair_t > m_HandPoses; // 0x710
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bShouldAnimateDuringGameplayPause; // 0x729
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAnimGraphUpdateEnabled; // 0x72a
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	uint8_t m_nMuzzleFlashParity; // 0x79a
-	bool m_bIsStaticProp; // 0x79b
-	uint8_t m_nOldMuzzleFlashParity; // 0x79c
-	AttachmentHandle_t m_iEjectBrassAttachment; // 0x7c8
-	bool m_bSuppressAnimEventSounds; // 0x7d8
+	uint8_t m_nMuzzleFlashParity; // 0x72b
+	C_BaseAnimating* m_pClientsideRagdoll; // 0x730
+	bool m_bInitModelEffects; // 0x738
+	bool m_builtRagdoll; // 0x739
+	bool m_bIsStaticProp; // 0x73a
+	uint8_t m_nOldMuzzleFlashParity; // 0x73b
+	int32_t m_iEjectBrassAttachment; // 0x798
+	bool m_bSuppressAnimEventSounds; // 0x79c
 	// MNetworkEnable
 	// MNetworkEnable
-	CBaseAnimatingEasings_t m_Easings; // 0x8a8
-	bool m_bShouldUseAnimGraph; // 0x8e0
+	CBaseAnimatingEasings_t m_Easings; // 0x860
 };
 
 // Aligment: 0
-// Size: 2312
+// Size: 2200
 class C_BaseAnimatingOverlay : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 32
-// Size: 2616
-class C_DynamicProp : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Aligment: 4
+// Size: 2264
+class CBaseProp : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_pOutputAnimBegun; // 0x908
-	CEntityIOOutput m_pOutputAnimOver; // 0x930
-	CEntityIOOutput m_pOutputAnimLoopCycleOver; // 0x958
-	CEntityIOOutput m_OnAnimReachedStart; // 0x980
-	CEntityIOOutput m_OnAnimReachedEnd; // 0x9a8
-	CUtlSymbolLarge m_iszDefaultAnim; // 0x9d0
-	CUtlSymbolLarge m_iszInitialAnim; // 0x9d8
-	HSequence m_hGoalSequence; // 0x9e0
-	int32_t m_iTransitionDirection; // 0x9e4
-	bool m_bAnimateOnServer; // 0x9e8
-	bool m_bRandomizeCycle; // 0x9e9
-	bool m_bHoldAnimation; // 0x9ea
-	bool m_bIsHoldingAnimation; // 0x9eb
-	bool m_bRandomAnimator; // 0x9ec
-	float m_flNextRandAnim; // 0x9f0
-	float m_flMinRandAnimDuration; // 0x9f4
-	float m_flMaxRandAnimDuration; // 0x9f8
-	HSequence m_hPendingSequence; // 0x9fc
-	bool m_bStartDisabled; // 0xa00
-	bool m_bUpdateAttachedChildren; // 0xa01
-	bool m_bFiredStartEndOutput; // 0xa02
+	bool m_bModelOverrodeBlockLOS; // 0x898
+	int32_t m_iShapeType; // 0x89c
+	bool m_bConformToCollisionBounds; // 0x8a0
+	matrix3x4_t m_mPreferredCatchTransform; // 0x8a4
+};
+
+// Aligment: 30
+// Size: 2536
+class C_BreakableProp : public CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnBreak; // 0x8e0
+	CEntityOutputTemplate< float32 > m_OnHealthChanged; // 0x908
+	CEntityIOOutput m_OnTakeDamage; // 0x930
+	float m_impactEnergyScale; // 0x958
+	int32_t m_iMinHealthDmg; // 0x95c
+	float m_flPressureDelay; // 0x960
+	CHandle< C_BaseEntity > m_hBreaker; // 0x964
+	PerformanceMode_t m_PerformanceMode; // 0x968
+	float m_flDmgModBullet; // 0x96c
+	float m_flDmgModClub; // 0x970
+	float m_flDmgModExplosive; // 0x974
+	float m_flDmgModFire; // 0x978
+	CUtlSymbolLarge m_iszPhysicsDamageTableName; // 0x980
+	CUtlSymbolLarge m_iszBasePropData; // 0x988
+	int32_t m_iInteractions; // 0x990
+	float m_flPreventDamageBeforeTime; // 0x994
+	bool m_bHasBreakPiecesOrCommands; // 0x998
+	float m_explodeDamage; // 0x99c
+	float m_explodeRadius; // 0x9a0
+	float m_explosionDelay; // 0x9a8
+	CUtlSymbolLarge m_explosionBuildupSound; // 0x9b0
+	CUtlSymbolLarge m_explosionCustomEffect; // 0x9b8
+	CUtlSymbolLarge m_explosionCustomSound; // 0x9c0
+	CHandle< C_BasePlayer > m_hPhysicsAttacker; // 0x9c8
+	float m_flLastPhysicsInfluenceTime; // 0x9cc
+	float m_flDefaultFadeScale; // 0x9d0
+	CHandle< C_BaseEntity > m_hLastAttacker; // 0x9d4
+	CHandle< C_BaseEntity > m_hFlareEnt; // 0x9d8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseHitboxesForRenderBox; // 0xa03
+	bool m_noGhostCollision; // 0x9dc
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseAnimGraph; // 0xa04
-	bool m_bCreateNonSolid; // 0xa05
-	bool m_bIsOverrideProp; // 0xa06
-	int32_t m_iInitialGlowState; // 0xa08
-	int32_t m_nGlowRange; // 0xa0c
-	int32_t m_nGlowRangeMin; // 0xa10
-	Color m_glowColor; // 0xa14
-	int32_t m_iCachedFrameCount; // 0xa18
-	Vector m_vecCachedRenderMins; // 0xa1c
-	Vector m_vecCachedRenderMaxs; // 0xa28
+	float m_flClothScale; // 0x9e0
+};
+
+// Aligment: 33
+// Size: 2840
+class C_DynamicProp : public C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_pOutputAnimBegun; // 0x9e8
+	CEntityIOOutput m_pOutputAnimOver; // 0xa10
+	CEntityIOOutput m_pOutputAnimLoopCycleOver; // 0xa38
+	CEntityIOOutput m_OnAnimReachedStart; // 0xa60
+	CEntityIOOutput m_OnAnimReachedEnd; // 0xa88
+	CUtlSymbolLarge m_iszDefaultAnim; // 0xab0
+	CUtlSymbolLarge m_iszInitialAnim; // 0xab8
+	HSequence m_hGoalSequence; // 0xac0
+	int32_t m_iTransitionDirection; // 0xac4
+	bool m_bAnimateOnServer; // 0xac8
+	bool m_bRandomizeCycle; // 0xac9
+	bool m_bHoldAnimation; // 0xaca
+	bool m_bIsHoldingAnimation; // 0xacb
+	bool m_bRandomAnimator; // 0xacc
+	float m_flNextRandAnim; // 0xad0
+	float m_flMinRandAnimDuration; // 0xad4
+	float m_flMaxRandAnimDuration; // 0xad8
+	HSequence m_hPendingSequence; // 0xadc
+	bool m_bStartDisabled; // 0xae0
+	bool m_bUpdateAttachedChildren; // 0xae1
+	bool m_bScriptedMovement; // 0xae2
+	bool m_bFiredStartEndOutput; // 0xae3
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseHitboxesForRenderBox; // 0xae4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseAnimGraph; // 0xae5
+	bool m_bCreateNonSolid; // 0xae6
+	bool m_bIsOverrideProp; // 0xae7
+	int32_t m_iInitialGlowState; // 0xae8
+	int32_t m_nGlowRange; // 0xaec
+	int32_t m_nGlowRangeMin; // 0xaf0
+	Color m_glowColor; // 0xaf4
+	int32_t m_iCachedFrameCount; // 0xaf8
+	Vector m_vecCachedRenderMins; // 0xafc
+	Vector m_vecCachedRenderMaxs; // 0xb08
 };
 
 // Aligment: 0
-// Size: 2616
-class C_DynamicPropAlias_dynamic_prop : public C_DynamicProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 2840
+class C_DynamicPropAlias_dynamic_prop : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
 // Aligment: 0
-// Size: 2616
-class C_DynamicPropAlias_prop_dynamic_override : public C_DynamicProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 2840
+class C_DynamicPropAlias_prop_dynamic_override : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 9
+// Size: 2080
+class C_ColorCorrectionVolume : public C_BaseTrigger, C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_LastEnterWeight; // 0x6f0
+	float m_LastEnterTime; // 0x6f4
+	float m_LastExitWeight; // 0x6f8
+	float m_LastExitTime; // 0x6fc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x700
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_MaxWeight; // 0x704
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_FadeDuration; // 0x708
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Weight; // 0x70c
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_lookupFilename; // 0x710
+};
+
+// Aligment: 18
+// Size: 2448
+class C_PropVRTrackedObject : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	matrix3x4_t m_mClientTransform; // 0x8b0
+	Vector m_vClientScale; // 0x8e0
+	CUtlVector< matrix3x4a_t > m_vecRenderModelComponentTransforms; // 0x8f0
+	// MNetworkEnable
+	bool m_bIsTracking; // 0x908
+	// MNetworkEnable
+	Vector m_vTrackedPosition; // 0x90c
+	// MNetworkEnable
+	QAngle m_qTrackedAngles; // 0x918
+	// MNetworkEnable
+	Vector m_vPhysicallyConstrainedPosition; // 0x924
+	// MNetworkEnable
+	QAngle m_qPhysicallyConstrainedAngles; // 0x930
+	// MNetworkEnable
+	Vector m_vWeldTransformPosition; // 0x93c
+	// MNetworkEnable
+	QAngle m_qWeldTransformAngles; // 0x948
+	// MNetworkEnable
+	bool m_bClientIsAuthoritativeForTransform; // 0x954
+	// MNetworkEnable
+	bool m_bIsInContact; // 0x955
+	// MNetworkEnable
+	bool m_bIsInContactTeleportClip; // 0x956
+	// MNetworkEnable
+	Vector m_vTeleportClipPos; // 0x958
+	// MNetworkEnable
+	bool m_bIsInContactSolidPostTeleportClip; // 0x964
+	// MNetworkEnable
+	Vector m_vSolidPostTeleportClipPos; // 0x968
+	// MNetworkEnable
+	Vector m_vLocalPosition; // 0x974
+	// MNetworkEnable
+	QAngle m_qLocalAngles; // 0x980
+};
+
+// Aligment: 6
+// Size: 2496
+class C_PropHMDAvatar : public C_PropVRTrackedObject, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	int32[2] m_hLiteralControllerSlots; // 0x990
+	// MNetworkEnable
+	// MNetworkEnable
+	int32[2] m_hLogicalControllerSlots; // 0x998
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PropVRHand >[4] m_hVRControllers; // 0x9a0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PointWorldText > m_hCloseCaption; // 0x9b0
+	bool m_bLocalHMDPoseValid; // 0x9b4
+	float m_flLastZPos; // 0x9b8
+};
+
+// Aligment: 42
+// Size: 4168
+class C_PropVRHand : public C_PropVRTrackedObject, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseVRHandAttachment > m_hActiveHandAttachment; // 0x9d0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PropHMDAvatar > m_hHMDAvatar; // 0x9d4
+	// MNetworkEnable
+	bool m_bVrSkeletonActive; // 0x9d8
+	// MNetworkEnable
+	int32_t m_nVrBoneCount; // 0x9dc
+	// MNetworkEnable
+	uint32_t m_unVrCompressedBoneTransformsSize; // 0x9e0
+	// MNetworkEnable
+	// MNetworkSendProxyRecipientsFilter
+	uint8[64] m_vrCompressedBoneTransforms; // 0x9e4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CBaseVRHandAttachmentHandle"
+	CUtlVector< CHandle< C_BaseVRHandAttachment > > m_hAttachments; // 0xe08
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0xe20
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsInView; // 0xe21
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nHandID; // 0xe24
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTriggerAnalogValue; // 0xe28
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flGripAnalogValue; // 0xe2c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger0; // 0xe30
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger1; // 0xe34
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger2; // 0xe38
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger3; // 0xe3c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger4; // 0xe40
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay0; // 0xe44
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay1; // 0xe48
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay2; // 0xe4c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay3; // 0xe50
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTrackpadAnalogValueX; // 0xe54
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTrackpadAnalogValueY; // 0xe58
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flJoystickAnalogValueX; // 0xe5c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flJoystickAnalogValueY; // 0xe60
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bCanPerformUse; // 0xe64
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bTipTransformInitialized; // 0xe65
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_localTipOrigin; // 0xe68
+	// MNetworkEnable
+	// MNetworkEnable
+	QAngle m_localTipAngles; // 0xe74
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHapticPulseTime; // 0xe80
+	// MNetworkEnable
+	// MNetworkEnable
+	int16_t m_nHapticPulseInterval; // 0xe84
+	CInteractionManager m_InteractionMgr; // 0xe88
+	matrix3x4_t m_matUseTransform; // 0xf68
+	uint8_t m_nAttachUseIndex; // 0xf98
+	matrix3x4_t m_matHoldTransform; // 0xf9c
+	uint8_t m_nAttachHoldIndex; // 0xfcc
+	matrix3x4_t m_matHoverTransform; // 0xfd0
+	uint8_t m_nAttachHoverIndex; // 0x1000
+	uint8_t m_nAttachOriginIndex; // 0x1001
+	// MNetworkEnable
+	// MNetworkEnable
+	eLiteralHandType m_LiteralHandType; // 0x1004
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAttachedToTrackedBody; // 0x1038
+	bool m_bWaitingToAttach; // 0x1039
+};
+
+// Aligment: 6
+// Size: 2304
+class C_BaseVRHandAttachment : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< C_PropVRHand > m_hOldAttachedHand; // 0x898
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterialOverride; // 0x8a0
+	CEntityIOOutput m_OnAttachedToHand; // 0x8a8
+	CEntityIOOutput m_OnDetachedFromHand; // 0x8d0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PropVRHand > m_hAttachedHand; // 0x8f8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsAttached; // 0x8fc
+};
+
 // Aligment: 0
-// Size: 2616
-class C_DynamicPropAlias_cable_dynamic : public C_DynamicProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+// Size: 2304
+class C_VRHandModelOverride : public C_BaseVRHandAttachment, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 16
+// Size: 2368
+class C_ClientRagdoll : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bFadeOut; // 0x898
+	bool m_bImportant; // 0x899
+	float m_flEffectTime; // 0x89c
+	float m_gibDespawnTime; // 0x8a0
+	int32_t m_iCurrentFriction; // 0x8a4
+	int32_t m_iMinFriction; // 0x8a8
+	int32_t m_iMaxFriction; // 0x8ac
+	int32_t m_iFrictionAnimState; // 0x8b0
+	bool m_bReleaseRagdoll; // 0x8b4
+	int32_t m_iEyeAttachment; // 0x8b8
+	bool m_bFadingOut; // 0x8bc
+	float32[10] m_flScaleEnd; // 0x8c0
+	float32[10] m_flScaleTimeStart; // 0x8e8
+	float32[10] m_flScaleTimeEnd; // 0x910
+	bool m_bForceShadowCastType; // 0x938
+	ShadowType_t m_forcedShadowCastType; // 0x93c
+};
+
+// Aligment: 1
+// Size: 1776
+class C_BaseDoor : public C_BaseToggle, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsUsable; // 0x6e8
+};
+
 // Aligment: 25
-// Size: 2752
+// Size: 2648
 class C_BaseFlex : public C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEncoder
 	// MNetworkChangeCallback "OnViewTargetChanged"
-	Vector m_viewtarget; // 0x910
+	Vector m_viewtarget; // 0x8a0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkTypeAlias "CUtlVector< float32 >"
@@ -2583,73 +4536,1032 @@ public:
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkEncodeFlags
-	CUtlVector< float32 > m_flexWeight; // 0x928
+	CUtlVector< float32 > m_flexWeight; // 0x8b8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_blinktoggle; // 0x940
-	int32_t m_nLastFlexUpdateFrameCount; // 0x9a8
-	Vector m_CachedViewTarget; // 0x9ac
-	int32_t m_iBlink; // 0x9c0
-	float m_blinktime; // 0x9c4
-	bool m_prevblinktoggle; // 0x9c8
-	int32_t m_iBlinkSlider; // 0x9cc
-	int32_t m_iJawOpen; // 0x9d0
-	float m_flJawOpenAmount; // 0x9d4
-	float m_flBlinkAmount; // 0x9d8
-	AttachmentHandle_t m_iMouthAttachment; // 0x9dc
-	AttachmentHandle_t m_iEyeAttachment; // 0x9dd
-	bool m_bResetFlexWeightsOnModelChange; // 0x9de
-	int32_t m_iEyeLidUpDownPP; // 0x9f8
-	int32_t m_iEyeLidLeftRightPP; // 0x9fc
-	float m_flMinEyeUpDown; // 0xa00
-	float m_flMaxEyeUpDown; // 0xa04
-	float m_flMinEyeLeftRight; // 0xa08
-	float m_flMaxEyeLeftRight; // 0xa0c
-	int32_t m_nEyeOcclusionRendererBone; // 0xa10
-	matrix3x4_t m_mEyeOcclusionRendererCameraToBoneTransform; // 0xa14
-	Vector m_vEyeOcclusionRendererHalfExtent; // 0xa44
-	C_BaseFlex::Emphasized_Phoneme[3] m_PhonemeClasses; // 0xa60
+	bool m_blinktoggle; // 0x8d0
+	int32_t m_nLastFlexUpdateFrameCount; // 0x938
+	Vector m_CachedViewTarget; // 0x93c
+	int32_t m_iBlink; // 0x950
+	float m_blinktime; // 0x954
+	bool m_prevblinktoggle; // 0x958
+	int32_t m_iBlinkSlider; // 0x95c
+	int32_t m_iJawOpen; // 0x960
+	float m_flJawOpenAmount; // 0x964
+	float m_flBlinkAmount; // 0x968
+	int32_t m_iMouthAttachment; // 0x96c
+	int32_t m_iEyeAttachment; // 0x970
+	bool m_bResetFlexWeightsOnModelChange; // 0x974
+	int32_t m_iEyeLidUpDownPP; // 0x990
+	int32_t m_iEyeLidLeftRightPP; // 0x994
+	float m_flMinEyeUpDown; // 0x998
+	float m_flMaxEyeUpDown; // 0x99c
+	float m_flMinEyeLeftRight; // 0x9a0
+	float m_flMaxEyeLeftRight; // 0x9a4
+	int32_t m_nEyeOcclusionRendererBone; // 0x9a8
+	matrix3x4_t m_mEyeOcclusionRendererCameraToBoneTransform; // 0x9ac
+	Vector m_vEyeOcclusionRendererHalfExtent; // 0x9dc
+	C_BaseFlex::Emphasized_Phoneme[3] m_PhonemeClasses; // 0x9f8
 };
 
-// Aligment: 9
-// Size: 10992
+// Aligment: 11
+// Size: 10904
 class C_FlexCycler : public C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flextime; // 0xac0
-	float32[2048] m_flextarget; // 0xac8
-	float m_blinktime; // 0x2ac8
-	float m_looktime; // 0x2acc
-	Vector m_lookTarget; // 0x2ad0
-	float m_speaktime; // 0x2adc
-	int32_t m_istalking; // 0x2ae0
-	int32_t m_phoneme; // 0x2ae4
-	HSequence m_hCurrLayerSequence; // 0x2ae8
+	float m_flextime; // 0xa58
+	float32[2048] m_flextarget; // 0xa60
+	float m_blinktime; // 0x2a60
+	float m_looktime; // 0x2a64
+	Vector m_lookTarget; // 0x2a68
+	float m_speaktime; // 0x2a74
+	int32_t m_istalking; // 0x2a78
+	int32_t m_phoneme; // 0x2a7c
+	HSequence m_hCurrLayerSequence; // 0x2a80
+	CUtlSymbolLarge m_iszSentence; // 0x2a88
+	int32_t m_sentence; // 0x2a90
 };
 
 // Aligment: 9
-// Size: 11056
+// Size: 10968
 class C_GenericFlexCycler : public C_FlexCycler, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nTestMode; // 0x2af0
-	int32_t m_nTestIndex; // 0x2af4
-	CUtlSymbolLarge m_poseParameterName; // 0x2af8
-	bool m_bDoClientSideAnimation; // 0x2b00
-	CUtlSymbolLarge[2] m_layerSequence; // 0x2b08
-	int32[2] m_nLayerIndex; // 0x2b18
-	HSequence[2] m_hBaseSequence; // 0x2b20
-	int32_t m_nBoneOverrideIndex; // 0x2b28
-	float m_flLastSimTime; // 0x2b2c
+	int32_t m_nTestMode; // 0x2a98
+	int32_t m_nTestIndex; // 0x2a9c
+	CUtlSymbolLarge m_poseParameterName; // 0x2aa0
+	bool m_bDoClientSideAnimation; // 0x2aa8
+	CUtlSymbolLarge[2] m_layerSequence; // 0x2ab0
+	int32[2] m_nLayerIndex; // 0x2ac0
+	HSequence[2] m_hBaseSequence; // 0x2ac8
+	int32_t m_nBoneOverrideIndex; // 0x2ad0
+	float m_flLastSimTime; // 0x2ad4
+};
+
+// Aligment: 2
+// Size: 2208
+class C_CombatWeaponClone : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< C_BaseCombatWeapon > m_hWeaponParent; // 0x898
+	int32_t m_nLastUpdatedWorldModelClone; // 0x89c
+};
+
+// Aligment: 2
+// Size: 2544
+class C_PhysicsProp : public C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAwake; // 0x9e8
+	uint32_t m_spawnflags; // 0x9ec
+};
+
+// Aligment: 1
+// Size: 2848
+class C_DynamicPropClientside : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bNoInterpolate; // 0xb18
+};
+
+// Aligment: 7
+// Size: 2912
+class C_BasePropDoor : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	DoorState_t m_eDoorState; // 0xb30
+	bool m_modelChanged; // 0xb34
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bLocked; // 0xb35
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_closedPosition; // 0xb38
+	// MNetworkEnable
+	// MNetworkEnable
+	QAngle m_closedAngles; // 0xb44
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BasePropDoor > m_hMaster; // 0xb50
+	Vector m_vWhereToSetLightingOrigin; // 0xb54
+};
+
+// Aligment: 13
+// Size: 2600
+class C_PhysPropClientside : public C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flTouchDelta; // 0x9e8
+	float m_fDeathTime; // 0x9ec
+	float m_impactEnergyScale; // 0x9f0
+	uint32_t m_spawnflags; // 0x9f4
+	float m_inertiaScale; // 0x9f8
+	float m_flDmgModBullet; // 0x9fc
+	float m_flDmgModClub; // 0xa00
+	float m_flDmgModExplosive; // 0xa04
+	float m_flDmgModFire; // 0xa08
+	CUtlSymbolLarge m_iszPhysicsDamageTableName; // 0xa10
+	CUtlSymbolLarge m_iszBasePropData; // 0xa18
+	int32_t m_iInteractions; // 0xa20
+	bool m_bHasBreakPiecesOrCommands; // 0xa24
+};
+
+// Aligment: 8
+// Size: 2320
+class C_ServerRagdoll : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CUtlVector< Vector >"
+	// MNetworkEncoder
+	// MNetworkChangeCallback "ragAnglesChanged"
+	CUtlVector< Vector > m_ragPos; // 0x8a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CUtlVector< QAngle >"
+	// MNetworkEncoder
+	// MNetworkBitCount "13"
+	// MNetworkChangeCallback "ragAnglesChanged"
+	CUtlVector< QAngle > m_ragAngles; // 0x8b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	// MNetworkEncodeFlags
+	float m_flBlendWeight; // 0x8d0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hRagdollSource; // 0x8d4
+	int32_t m_iEyeAttachment; // 0x8d8
+	float m_flBlendWeightCurrent; // 0x8dc
+	CUtlVector< int32 > m_parentPhysicsBoneIndices; // 0x8e0
+	CUtlVector< int32 > m_worldSpaceBoneComputationOrder; // 0x8f8
+};
+
+// Aligment: 25
+// Size: 2392
+class C_LocalTempEntity : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t flags; // 0x8b0
+	float die; // 0x8b4
+	float m_flFrameMax; // 0x8b8
+	float x; // 0x8bc
+	float y; // 0x8c0
+	float fadeSpeed; // 0x8c4
+	float bounceFactor; // 0x8c8
+	int32_t hitSound; // 0x8cc
+	int32_t priority; // 0x8d0
+	Vector tentOffset; // 0x8d4
+	QAngle m_vecTempEntAngVelocity; // 0x8e0
+	int32_t tempent_renderamt; // 0x8ec
+	Vector m_vecNormal; // 0x8f0
+	float m_flSpriteScale; // 0x8fc
+	int32_t m_nFlickerFrame; // 0x900
+	float m_flFrameRate; // 0x904
+	float m_flFrame; // 0x908
+	char* m_pszImpactEffect; // 0x910
+	char* m_pszParticleEffect; // 0x918
+	bool m_bParticleCollision; // 0x920
+	int32_t m_iLastCollisionFrame; // 0x924
+	Vector m_vLastCollisionOrigin; // 0x928
+	Vector m_vecTempEntVelocity; // 0x934
+	Vector m_vecPrevAbsOrigin; // 0x940
+	Vector m_vecTempEntAcceleration; // 0x94c
+};
+
+// Aligment: 49
+// Size: 2432
+class C_BaseCombatWeapon : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseCombatCharacter > m_hOwner; // 0x8a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "1"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	uint32_t m_nViewModelIndex; // 0x8a4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flNextPrimaryAttack; // 0x8a8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flNextSecondaryAttack; // 0x8ac
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_nQueuedAttack; // 0x8b0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flTimeAttackQueued; // 0x8b4
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_iViewModelIndex; // 0x8b8
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_iWorldModelIndex; // 0x8c0
+	// MNetworkEnable
+	// MNetworkEnable
+	WeaponState_t m_iState; // 0x8c8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iPrimaryAmmoType; // 0x8cc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iSecondaryAmmoType; // 0x8d0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "minusone"
+	// MNetworkPriority "64"
+	int32_t m_iClip1; // 0x8d4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "minusone"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iClip2; // 0x8d8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	bool m_bOnlyPump; // 0x8dc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	// MNetworkPriority "64"
+	float m_flTimeWeaponIdle; // 0x8e0
+	float m_flNextEmptySoundTime; // 0x8e4
+	float m_fMinRange1; // 0x8e8
+	float m_fMinRange2; // 0x8ec
+	float m_fMaxRange1; // 0x8f0
+	float m_fMaxRange2; // 0x8f4
+	float m_fFireDuration; // 0x8f8
+	float m_fMinAdvanceToRange1; // 0x8fc
+	int32_t m_Activity; // 0x900
+	int32_t m_iPrimaryAmmoCount; // 0x904
+	int32_t m_iSecondaryAmmoCount; // 0x908
+	CUtlSymbolLarge m_iszName; // 0x910
+	bool m_bRemoveable; // 0x918
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInReload; // 0x919
+	bool m_bFireOnEmpty; // 0x91a
+	bool m_bFiresUnderwater; // 0x91b
+	bool m_bAltFiresUnderwater; // 0x91c
+	bool m_bReloadsSingly; // 0x91d
+	HSequence m_hIdealSequence; // 0x920
+	int32_t m_IdealActivity; // 0x924
+	int32_t m_iSubType; // 0x928
+	float m_flUnlockTime; // 0x92c
+	CHandle< C_BaseEntity > m_hLocker; // 0x930
+	int32_t m_nTracerAttachmentIndex; // 0x934
+	int32_t m_iAltFireHudHintCount; // 0x948
+	int32_t m_iReloadHudHintCount; // 0x94c
+	bool m_bAltFireHudHintDisplayed; // 0x950
+	bool m_bReloadHudHintDisplayed; // 0x951
+	float m_flHudHintPollTime; // 0x954
+	float m_flHudHintMinDisplayTime; // 0x958
+	bool m_bJustRestored; // 0x95c
+	int16_t m_nLastNetworkedModelIndex; // 0x95e
+	int16_t m_nPreDataChangedModelIndex; // 0x960
+	C_CombatWeaponClone* m_pWorldModelClone; // 0x968
+	WeaponState_t m_iOldState; // 0x978
+};
+
+// Aligment: 1
+// Size: 2208
+class C_ViewmodelWeapon : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	char* m_worldModel; // 0x898
+};
+
+// Aligment: 20
+// Size: 2344
+class C_BaseViewModel : public C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecLastFacing; // 0x8a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "1"
+	uint32_t m_nViewModelIndex; // 0x8ac
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	uint32_t m_nAnimationParity; // 0x8b0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "13"
+	HSequence m_hLayerSequence; // 0x8b4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	uint32_t m_nLayer; // 0x8b8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flAnimationStartTime; // 0x8bc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnWeaponChanged"
+	CHandle< C_BaseCombatWeapon > m_hWeapon; // 0x8c0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hOwner; // 0x8c4
+	int32_t m_Activity; // 0x8c8
+	CUtlSymbolLarge m_sVMName; // 0x8d0
+	CUtlSymbolLarge m_sAnimationPrefix; // 0x8d8
+	CHandle< C_ViewmodelWeapon > m_hWeaponModel; // 0x8e0
+	int32_t m_iCameraAttachment; // 0x8e4
+	QAngle m_vecLastCameraAngles; // 0x8e8
+	float m_previousElapsedDuration; // 0x8f4
+	float m_previousCycle; // 0x8f8
+	int32_t m_nOldAnimationParity; // 0x8fc
+	HSequence m_hOldLayerSequence; // 0x900
+	int32_t m_oldLayer; // 0x904
+	float m_oldLayerStartTime; // 0x908
 };
 
 // Aligment: 0
-// Size: 11056
+// Size: 2200
+class C_PointHintUIButtonHighlightModel : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 2320
+class C_PointHintUIHighlightModel : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlVector< matrix3x4a_t > m_vecRenderModelComponentTransforms; // 0x8b0
+	int32_t m_nTrackedDeviceIndex; // 0x8c8
+	CHandle< C_PropVRHand > m_hHighlightHand; // 0x8cc
+	matrix3x4_t m_matLocalHighlight; // 0x8d8
+	bool m_bVisible; // 0x908
+};
+
+// Aligment: 12
+// Size: 3056
+class C_EconEntity : public C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	CAttributeContainer m_AttributeManager; // 0xa60
+	bool m_bClientside; // 0xba0
+	EconEntityParticleDisableMode_t m_nDisableMode; // 0xba4
+	bool m_bParticleSystemsCreated; // 0xba8
+	bool m_bForceDestroyAttachedParticlesImmediately; // 0xba9
+	CUtlVector< C_EconEntity::AttachedParticleInfo_t > m_vecAttachedParticles; // 0xbb0
+	CHandle< C_BaseAnimating > m_hViewmodelAttachment; // 0xbc8
+	int32_t m_iOldTeam; // 0xbcc
+	bool m_bAttachmentDirty; // 0xbd0
+	style_index_t m_iOldStyle; // 0xbd1
+	CHandle< C_BaseEntity > m_hOldProvidee; // 0xbd4
+	CUtlVector< C_EconEntity::AttachedModelData_t > m_vecAttachedModels; // 0xbd8
+};
+
+// Aligment: 0
+// Size: 3056
+class C_BaseAttributableItem : public C_EconEntity, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 3064
+class C_EconWearable : public C_EconEntity, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 3064
+class C_TFWearableItem : public C_EconWearable, C_EconEntity, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 81
+// Size: 3608
+class C_DAC_NPC : public C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nServerEntIndex; // 0x898
+	PlayerSlot_t m_unOwnerPlayerSlot; // 0x89c
+	bool m_bSimulatedFirstSnapshot; // 0x8a8
+	bool m_bIsSetupSnapshot; // 0x960
+	bool m_bIsOnBench; // 0x961
+	bool m_bIsShopUnit; // 0x962
+	bool m_bOverPopulation; // 0x963
+	bool m_bUnderPopulation; // 0x964
+	bool m_bUnitKeywordHighlight; // 0x965
+	float m_flDeathStateChangeTime; // 0x968
+	bool m_bSuppressPostCombatCelebration; // 0x978
+	int32_t m_nHealth; // 0x97c
+	int32_t m_nArmor; // 0x980
+	int32_t m_nDPS; // 0x984
+	int32_t m_nDamageBonus; // 0x988
+	int32_t m_nDamageMin; // 0x98c
+	int32_t m_nDamageMax; // 0x990
+	int32_t m_nRangeBonus; // 0x994
+	float m_flAttacksPerSecond; // 0x998
+	int32_t m_nMana; // 0x99c
+	int32_t m_nMaxMana; // 0x9a0
+	int32_t m_nRank; // 0x9a4
+	float m_flKillCount; // 0x9a8
+	int32_t m_nKillStreak; // 0x9ac
+	int32_t m_nUnderlordPower; // 0x9b0
+	int32_t m_nDuelBonusDamage; // 0x9b4
+	int32_t m_nLastForcedUnderlordSlotNum; // 0x9b8
+	float m_flBaseUnitModelScale; // 0x9bc
+	float m_flItemScaling; // 0x9c0
+	float m_flCooldownMultiplier; // 0x9c4
+	bool m_bPlayPlacedOnBoardAnim; // 0x9c8
+	bool m_bPlaySpawnAnim; // 0x9c9
+	bool m_bPlayTeleportIn; // 0x9ca
+	float m_flZOffset; // 0x9cc
+	float m_flLastAttackEndTime; // 0x9d0
+	float m_flPreviousLastAttackEndTime; // 0x9d4
+	float m_flLastAttackSpeed; // 0x9d8
+	float m_flCooldownRatio; // 0x9fc
+	Vector m_vecSnapshotPosition; // 0xa70
+	QAngle m_angSnapshotAngles; // 0xa7c
+	Vector m_vecStartingPosition; // 0xa88
+	float m_flDesiredModelScale; // 0xa94
+	CUtlVectorFixedGrowable< CUtlString > m_vecAttachmentNames; // 0xa98
+	int32_t m_nAttackLayer; // 0xaf0
+	int32_t m_nAttackActivity; // 0xaf4
+	int32_t m_nModifierLayer; // 0xaf8
+	int32_t m_nAbilityLayer; // 0xafc
+	bool m_bDragging; // 0xb00
+	bool m_bIsDraggingInWorldspace; // 0xb01
+	Vector m_vecDragPosition; // 0xb04
+	QAngle m_angDragAngles; // 0xb10
+	bool m_bOverridePosition; // 0xb1c
+	bool m_bOverrideBench; // 0xb1d
+	bool m_bRestorePosition; // 0xb1e
+	bool m_bSelected; // 0xb1f
+	bool m_bIsSummoned; // 0xb20
+	bool m_bForceUseBigHealthbar; // 0xb21
+	int32_t m_nSummonOwnerEntIndex; // 0xb24
+	bool m_bClientCanBeSold; // 0xb28
+	bool m_bClientCanMoveToBench; // 0xb29
+	bool m_bClientRecommendedForPopcap; // 0xb2a
+	uint64_t m_uPredictedSequenceNumber; // 0xb30
+	Vector m_vPredictedPosition; // 0xb38
+	QAngle m_angPredictedAngles; // 0xb44
+	bool m_bPredictHidden; // 0xb50
+	bool m_bNoInterp; // 0xb51
+	bool m_bShowManaBar; // 0xb52
+	bool m_bInvisibleUntilFirstUpdate; // 0xb53
+	bool m_bIsModifierRenderOutlineOnly; // 0xb54
+	int32_t m_nLastCheerRound; // 0xb58
+	bool m_bUseUnitScaleFactor; // 0xb5c
+	UnitStatusLabel m_eStatusLabel; // 0xb60
+	CUtlVector< UnitStatusLabel > m_vecAllStatusLabels; // 0xb68
+	ParticleIndex_t m_nStatusEffectIndex; // 0xb80
+	DACAbilityID_t m_unEquippedItem; // 0xd30
+	bool m_bForceShowRank; // 0xd50
+	float m_flHealthBarBaseOffset; // 0xd54
+	CHandle< C_DynamicPropClientside > m_hatProp; // 0xd70
+	CountdownTimer m_dragScaleBump; // 0xe00
+	int32_t m_nSellValue; // 0xe10
+	DACAbilityID_t m_itemOverride; // 0xe14
+};
+
+// Aligment: 6
+// Size: 3120
+class C_DAC_Wearable : public C_EconWearable, C_EconEntity, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bOwnerModelChanged; // 0xbf8
+	bool m_bIsGeneratingEconItem; // 0xbf9
+	bool m_bIsItemVisibleOnGeneratedEntity; // 0xbfa
+	float m_fZDelta; // 0xbfc
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeIMaterial2 > > m_combinerMaterialOverrideList; // 0xc00
+	int32_t m_nOwnerRank; // 0xc28
+};
+
+// Aligment: 2
+// Size: 3248
+class C_DAC_Banner : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDirty; // 0xb18
+	uint32_t m_unTeamID; // 0xb1c
+};
+
+// Aligment: 9
+// Size: 2776
+class C_DAC_Underlord : public C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	uint32_t m_unTeamID; // 0xa58
+	int32_t m_nLastForcedUnderlordSlotNum; // 0xa5c
+	UnderlordID_t m_unForcedUnderlord; // 0xa60
+	UnderlordID_t m_unUnderlord; // 0xa62
+	int32_t m_nIdleActivity; // 0xa64
+	HSequence m_hIdleSequence; // 0xa68
+	CHandle< C_SceneEntity > m_hScene; // 0xa6c
+	CUtlString m_sQueuedScene; // 0xa70
+	bool m_bOutfitUpdateQueued; // 0xad0
+};
+
+// Aligment: 1
+// Size: 2864
+class C_DAC_ChallengeMapClaim : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszClaimName; // 0xb18
+};
+
+// Aligment: 1
+// Size: 2912
+class C_DAC_ChallengeMapChallenge : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bPrestige; // 0xb40
+};
+
+// Aligment: 9
+// Size: 2304
+class C_DAC_Reward_Preview : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< C_SceneEntity > m_hScene; // 0x898
+	item_definition_index_t m_nDacItemIndex; // 0x89c
+	int32_t m_IdleActivity; // 0x8ac
+	int32_t m_nClickerStartHealth; // 0x8b0
+	int32_t m_nClickerHealth; // 0x8b4
+	Vector m_vMinsForFraming; // 0x8e0
+	Vector m_vMaxsForFraming; // 0x8ec
+	float m_flRespawnParticleDelay; // 0x8f8
+	bool m_bMute; // 0x8fc
+};
+
+// Aligment: 4
+// Size: 2888
+class C_DACBoardBuddy : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vDesiredPos; // 0xb28
+	float m_flLastUpdateTime; // 0xb34
+	CUtlString m_szModelName; // 0xb38
+	bool m_bUpdateModel; // 0xb40
+};
+
+// Aligment: 2
+// Size: 3016
+class C_DACMapProp : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nPropSize; // 0xba0
+	int32_t m_nPropSlot; // 0xba4
+};
+
+// Aligment: 19
+// Size: 2944
+class C_DevtestHierarchy : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vRotationAxis; // 0xb18
+	float m_flRotationSpeed; // 0xb24
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nTestMode; // 0xb28
+	CHandle< C_BaseEntity > m_hChild; // 0xb2c
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_attachName; // 0xb30
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDynamicAttachOffset; // 0xb34
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nDynamicResetCount; // 0xb40
+	int32_t m_nDynamicDetachCount; // 0xb44
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bChildIsDynamic; // 0xb48
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bCreateChildSideChild; // 0xb49
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_alternateAttachName; // 0xb4c
+	CHandle< C_BaseEntity > m_hAlternateParent; // 0xb50
+	CStrongHandle< InfoForResourceTypeCModel > m_hAlternateModel; // 0xb58
+	CStrongHandle< InfoForResourceTypeCModel > m_hOriginalModel; // 0xb60
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_hClientSideChildModel; // 0xb68
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flEntityStartTime; // 0xb70
+	int32_t m_nTestIndex; // 0xb74
+	HierarchyType_t m_nCurrType; // 0xb78
+	int32_t m_nCurrentModel; // 0xb7c
+};
+
+// Aligment: 0
+// Size: 2840
+class C_DevtestHierarchyChild : public C_DynamicProp, C_BreakableProp, CBaseProp, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2200
+class C_DevtestHierarchy2 : public C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 10968
 class C_GenericFlexCyclerAlias_cycler : public C_GenericFlexCycler, C_FlexCycler, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 7
+// Size: 2376
+class C_ServerRagdollAttached : public C_ServerRagdoll, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_boneIndexAttached; // 0x910
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_ragdollAttachedObjectIndex; // 0x914
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_attachmentPointBoneSpace; // 0x918
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_attachmentPointRagdollSpace; // 0x924
+	Vector m_vecOffset; // 0x930
+	float m_parentTime; // 0x93c
+	bool m_bHasParent; // 0x940
+};
+
+// Aligment: 13
+// Size: 2984
+class C_BaseCombatCharacter : public C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSendProxyRecipientsFilter
+	float m_flNextAttack; // 0xa58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	// MNetworkChangeCallback "OnAmmoChanged"
+	uint32[32] m_iAmmo; // 0xa5c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnWeaponsChanged"
+	CUtlVector< CHandle< C_BaseCombatWeapon > > m_hMyWeapons; // 0xae0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseCombatWeapon > m_hActiveWeapon; // 0xaf8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnWearablesChanged"
+	CUtlVector< CHandle< C_EconWearable > > m_hMyWearables; // 0xb00
+	int32_t m_bloodColor; // 0xb18
+	int32_t m_leftFootAttachment; // 0xb1c
+	int32_t m_rightFootAttachment; // 0xb20
+	C_BaseCombatCharacter::WaterWakeMode_t m_nWaterWakeMode; // 0xb24
+	float m_flWaterWorldZ; // 0xb28
+	float m_flWaterNextTraceTime; // 0xb2c
+	// MNetworkEnable
+	float m_flFieldOfView; // 0xb30
+	CountdownTimer m_footstepTimer; // 0xb38
+};
+
+// Aligment: 114
+// Size: 5288
+class C_BasePlayer : public C_BaseCombatCharacter, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecFlashlightOrigin; // 0xbb0
+	Vector m_vecFlashlightForward; // 0xbbc
+	Vector m_vecFlashlightUp; // 0xbc8
+	Vector m_vecFlashlightRight; // 0xbd4
+	bool m_bBehindLocalPlayer; // 0xbe0
+	int32_t m_nBehindLocalPlayerFrame; // 0xbe4
+	fogparams_t m_CurrentFog; // 0xbe8
+	CHandle< C_FogController > m_hOldFogController; // 0xc48
+	bool[5] m_bOverrideFogColor; // 0xc4c
+	Color[5] m_OverrideFogColor; // 0xc51
+	bool[5] m_bOverrideFogStartEnd; // 0xc65
+	float32[5] m_fOverrideFogStart; // 0xc6c
+	float32[5] m_fOverrideFogEnd; // 0xc80
+	int32_t m_StuckLast; // 0xc94
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CPlayerLocalData"
+	// MNetworkSendProxyRecipientsFilter
+	C_PlayerLocalData m_Local; // 0xc98
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< C_BaseEntity > m_hTonemapController; // 0xe80
+	C_PlayerState m_pl; // 0xe88
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iFOV; // 0xea0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iFOVStart; // 0xea4
+	uint64_t m_afButtonLast; // 0xea8
+	uint64_t m_afButtonPressed; // 0xeb0
+	uint64_t m_afButtonReleased; // 0xeb8
+	uint64_t m_nButtons; // 0xec0
+	float m_surfaceFriction; // 0xec8
+	int32_t m_nImpulse; // 0xecc
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_ladderSurfaceProps; // 0xed0
+	int32_t m_flPhysics; // 0xed4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFOVTime; // 0xed8
+	float m_flWaterJumpTime; // 0xedc
+	float m_flSwimSoundTime; // 0xee0
+	float m_flStepSoundTime; // 0xee4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_vecLadderNormal; // 0xee8
+	char[32] m_szAnimExtension; // 0xef4
+	int32_t m_nOldTickBase; // 0xf14
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	int32_t m_iBonusProgress; // 0xf18
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	int32_t m_iBonusChallenge; // 0xf1c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "2048"
+	// MNetworkEncodeFlags
+	float m_flMaxspeed; // 0xf20
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hZoomOwner; // 0xf24
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< C_BaseEntity > m_hVehicle; // 0xf28
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< C_BaseCombatWeapon > m_hLastWeapon; // 0xf2c
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseViewModel >[2] m_hViewModel; // 0xf30
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PropHMDAvatar > m_hPropHMDAvatar; // 0xf38
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PointHMDAnchor > m_hPointHMDAnchor; // 0xf3c
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_VRControllerType; // 0xf40
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	bool m_fOnTarget; // 0xf44
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iDefaultFOV; // 0xf48
+	uint64_t m_afButtonDisabled; // 0xf50
+	uint64_t m_afButtonForced; // 0xf58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< C_BaseEntity > m_hViewEntity; // 0xf68
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< C_BaseEntity > m_hConstraintEntity; // 0xf6c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	Vector m_vecConstraintCenter; // 0xf70
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintRadius; // 0xf7c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintWidth; // 0xf80
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintSpeedFactor; // 0xf84
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	bool m_bConstraintPastRadius; // 0xf88
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	// MNetworkChangeCallback "OnObserverModeChanged"
+	uint8_t m_iObserverMode; // 0xf89
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnObserverTargetChanged"
+	CHandle< C_BaseEntity > m_hObserverTarget; // 0xf8c
+	float m_flObserverChaseDistance; // 0xf90
+	Vector m_vecFreezeFrameStart; // 0xf94
+	float m_flFreezeFrameStartTime; // 0xfa0
+	float m_flFreezeFrameDistance; // 0xfa4
+	bool m_bStartedFreezeFraming; // 0xfa8
+	bool m_bFinishedFreezeFraming; // 0xfa9
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flDeathTime; // 0xfac
+	CHandle< C_BaseEntity > m_hOldVehicle; // 0xfb0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< C_BaseEntity > m_hUseEntity; // 0xfb4
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hHeldEntity; // 0xfb8
+	Vector m_vecWaterJumpVel; // 0xfbc
+	QAngle m_vecOldViewAngles; // 0xfc8
+	QAngle m_angDemoViewAngles; // 0xfd8
+	bool m_bWasFrozen; // 0xff0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "1"
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	uint32_t m_nTickBase; // 0xff4
+	int32_t m_nFinalPredictedTick; // 0xff8
+	bool[1] m_bFlashlightEnabled; // 0xffc
+	float m_flOldPlayerZ; // 0x1000
+	float m_flOldPlayerViewOffsetZ; // 0x1004
+	Vector m_vecVehicleViewOrigin; // 0x1008
+	QAngle m_vecVehicleViewAngles; // 0x1014
+	float m_flVehicleViewFOV; // 0x1020
+	int32_t m_nVehicleViewSavedFrame; // 0x1024
+	C_CommandContext m_CommandContext; // 0x1028
+	float m_flWaterSurfaceZ; // 0x1380
+	bool m_bResampleWaterSurface; // 0x1384
+	TimedEvent m_tWaterParticleTimer; // 0x1388
+	bool m_bPlayerUnderwater; // 0x1390
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_ArmorValue; // 0x1394
+	float m_flNextAvoidanceTime; // 0x1398
+	float m_flAvoidanceRight; // 0x139c
+	float m_flAvoidanceForward; // 0x13a0
+	float m_flAvoidanceDotForward; // 0x13a4
+	float m_flAvoidanceDotRight; // 0x13a8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flLaggedMovementValue; // 0x13ac
+	Vector m_vecPredictionError; // 0x13b0
+	float m_flPredictionErrorTime; // 0x13bc
+	Vector m_vecPreviouslyPredictedOrigin; // 0x13c0
+	// MNetworkEnable
+	// MNetworkEnable
+	char[18] m_szLastPlaceName; // 0x13cc
+	CUtlStringToken m_surfaceProps; // 0x13e0
+	char m_chTextureType; // 0x13f0
+	bool m_bSentFreezeFrame; // 0x13f1
+	float m_flFreezeZOffset; // 0x13f4
+	CUtlVector< CHandle< C_BasePlayer > > m_hSplitScreenPlayers; // 0x13f8
+	CSplitScreenSlot m_nSplitScreenSlot; // 0x1410
+	CHandle< C_BasePlayer > m_hSplitOwner; // 0x1414
+	bool m_bIsLocalPlayer; // 0x1418
+	Vector m_movementCollisionNormal; // 0x141c
+	Vector m_groundNormal; // 0x1428
+	Vector m_vOldOrigin; // 0x1434
+	float m_flOldSimulationTime; // 0x1440
+	CHandle< C_BaseCombatCharacter > m_stuckCharacter; // 0x1444
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_PostProcessController > m_hPostProcessCtrl; // 0x1448
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_ColorCorrection > m_hColorCorrectionCtrl; // 0x144c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "fogplayerparams_t"
+	C_fogplayerparams_t m_PlayerFog; // 0x1450
+	Vector m_vecElevatorFixup; // 0x1490
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	uint64_t m_nUnHoldableButtons; // 0x14a0
+};
+
+// Aligment: 0
+// Size: 2984
+class C_NetTestBaseCombatCharacter : public C_BaseCombatCharacter, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 18
+// Size: 3088
+class C_AI_BaseNPC : public C_BaseCombatCharacter, C_BaseFlex, C_BaseAnimatingOverlay, C_BaseAnimating, C_BaseModelEntity, C_BaseEntity, C_GameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flTempRagdollTransitionTime; // 0xba8
+	CUtlVector< matrix3x4a_t > m_RagdollTransform; // 0xbb0
+	CUtlVector< matrix3x4a_t > m_TransitionTransform; // 0xbc8
+	// MNetworkEnable
+	// MNetworkEnable
+	NPC_STATE m_NPCState; // 0xbe0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTimePingEffect; // 0xbe4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "13"
+	HSequence m_iDeathPose; // 0xbe8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int32_t m_iDeathFrame; // 0xbec
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iSpeedModRadius; // 0xbf0
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iSpeedModSpeed; // 0xbf4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPerformAvoidance; // 0xbf8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsMoving; // 0xbf9
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStunUntilTime; // 0xbfc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bFadeCorpse; // 0xc00
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bSpeedModActive; // 0xc01
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bImportantRagdoll; // 0xc02
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< C_BaseEntity > m_hServerRagdoll; // 0xc04
+	uint8_t m_nFootstepType; // 0xc08
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoweredRagdoll; // 0xc09
+};
+
diff --git a/sdk/engine2.hpp b/sdk/engine2.hpp
index 4133f83c..04c5cb3f 100644
--- a/sdk/engine2.hpp
+++ b/sdk/engine2.hpp
@@ -4,10 +4,24 @@
 
 ///////////////////////////////////////////
 // Binary: engine2.dll
-// Class Count: 48
-// Enum Count: 2
+// Class Count: 50
+// Enum Count: 3
 ///////////////////////////////////////////
 
+// Aligment: 4
+// Size: 8
+enum class SignonState_t : uint32_t
+{
+	SIGNONSTATE_NONE = 0x0,
+	SIGNONSTATE_CHALLENGE = 0x1,
+	SIGNONSTATE_CONNECTED = 0x2,
+	SIGNONSTATE_NEW = 0x3,
+	SIGNONSTATE_PRESPAWN = 0x4,
+	SIGNONSTATE_SPAWN = 0x5,
+	SIGNONSTATE_FULL = 0x6,
+	SIGNONSTATE_CHANGELEVEL = 0x7,
+};
+
 // Aligment: 4
 // Size: 3
 enum class EntityDormancyType_t : uint32_t
@@ -59,12 +73,12 @@ public:
 	float m_flFrameTime; // 0x0
 };
 
-// Aligment: 0
-// Size: 1
+// Aligment: 1
+// Size: 4
 struct EventProfileStorageAvailable_t
 {
 public:
-// <no members described>
+	int32_t m_nSplitScreenSlot; // 0x0
 };
 
 // Aligment: 0
@@ -120,8 +134,8 @@ public:
 	float m_flFrameTime; // 0x2c
 };
 
-// Aligment: 5
-// Size: 72
+// Aligment: 4
+// Size: 64
 struct EventClientPreOutput_t
 {
 public:
@@ -129,7 +143,6 @@ public:
 	double m_flRenderTime; // 0x28
 	double m_flRenderFrameTime; // 0x30
 	double m_flRenderFrameTimeUnbounded; // 0x38
-	bool m_bRenderOnly; // 0x40
 };
 
 // Aligment: 1
@@ -140,7 +153,7 @@ public:
 	bool m_bThreadsActive; // 0x0
 };
 
-// Aligment: 5
+// Aligment: 4
 // Size: 56
 struct EventClientOutput_t
 {
@@ -149,11 +162,10 @@ public:
 	float m_flRenderTime; // 0x28
 	float m_flRealTime; // 0x2c
 	float m_flRenderFrameTimeUnbounded; // 0x30
-	bool m_bRenderOnly; // 0x34
 };
 
-// Aligment: 5
-// Size: 64
+// Aligment: 4
+// Size: 56
 struct EventClientPostOutput_t
 {
 public:
@@ -161,7 +173,6 @@ public:
 	double m_flRenderTime; // 0x28
 	float m_flRenderFrameTime; // 0x30
 	float m_flRenderFrameTimeUnbounded; // 0x34
-	bool m_bRenderOnly; // 0x38
 };
 
 // Aligment: 3
@@ -194,26 +205,24 @@ public:
 	bool m_bLastTick; // 0x29
 };
 
-// Aligment: 4
+// Aligment: 3
 // Size: 64
 struct EventAdvanceTick_t : public EventSimulate_t
 {
 public:
 	int32_t m_nCurrentTick; // 0x30
-	int32_t m_nCurrentTickThisFrame; // 0x34
-	int32_t m_nTotalTicksThisFrame; // 0x38
-	int32_t m_nTotalTicks; // 0x3c
+	int32_t m_nTotalTicksThisFrame; // 0x34
+	int32_t m_nTotalTicks; // 0x38
 };
 
-// Aligment: 4
+// Aligment: 3
 // Size: 64
 struct EventPostAdvanceTick_t : public EventSimulate_t
 {
 public:
 	int32_t m_nCurrentTick; // 0x30
-	int32_t m_nCurrentTickThisFrame; // 0x34
-	int32_t m_nTotalTicksThisFrame; // 0x38
-	int32_t m_nTotalTicks; // 0x3c
+	int32_t m_nTotalTicksThisFrame; // 0x34
+	int32_t m_nTotalTicks; // 0x38
 };
 
 // Aligment: 0
@@ -360,6 +369,14 @@ public:
 	int32_t m_nDummy0; // 0x0
 };
 
+// Aligment: 0
+// Size: 8
+class IRecipientFilter
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 8
 class IHandleEntity
@@ -395,7 +412,7 @@ public:
 };
 
 // Aligment: 8
-// Size: 112
+// Size: 120
 struct EntComponentInfo_t
 {
 public:
@@ -406,7 +423,7 @@ public:
 	char* m_pNetworkDataReferencedPtrPropDescription; // 0x28
 	int32_t m_nRuntimeIndex; // 0x30
 	uint32_t m_nFlags; // 0x34
-	CEntityComponentHelper* m_pBaseClassComponentHelper; // 0x68
+	CEntityComponentHelper* m_pBaseClassComponentHelper; // 0x70
 };
 
 // Aligment: 0
@@ -437,7 +454,7 @@ public:
 };
 
 // Aligment: 11
-// Size: 112
+// Size: 120
 class CEntityIdentity
 {
 public:
@@ -446,16 +463,16 @@ public:
 	int32_t m_nameStringableIndex; // 0x14
 	CUtlSymbolLarge m_name; // 0x18
 	CUtlSymbolLarge m_designerName; // 0x20
-	uint32_t m_flags; // 0x28
-	uint32_t m_fDataObjectTypes; // 0x30
+	uint32_t m_flags; // 0x30
+	uint32_t m_fDataObjectTypes; // 0x38
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	ChangeAccessorFieldPathIndex_t m_PathIndex; // 0x34
-	CEntityIdentity* m_pPrev; // 0x48
-	CEntityIdentity* m_pNext; // 0x50
-	CEntityIdentity* m_pPrevByClass; // 0x58
-	CEntityIdentity* m_pNextByClass; // 0x60
-	V_uuid_t* m_pId; // 0x68
+	ChangeAccessorFieldPathIndex_t m_PathIndex; // 0x3c
+	CEntityIdentity* m_pPrev; // 0x50
+	CEntityIdentity* m_pNext; // 0x58
+	CEntityIdentity* m_pPrevByClass; // 0x60
+	CEntityIdentity* m_pNextByClass; // 0x68
+	V_uuid_t* m_pId; // 0x70
 };
 
 // Aligment: 0
@@ -466,16 +483,21 @@ public:
 // <no members described>
 };
 
-// Aligment: 2
-// Size: 40
+// Aligment: 4
+// Size: 56
 class CEntityInstance : public IHandleEntity
 {
 public:
+	// MNetworkDisable
+	CUtlSymbolLarge m_iszPrivateVScripts; // 0x8
 	// MNetworkEnable
 	// MNetworkPriority "112"
-	CEntityIdentity* m_pEntity; // 0x8
+	CEntityIdentity* m_pEntity; // 0x10
 	// MNetworkDisable
-	CUtlStringToken m_worldGroupId; // 0x10
+	CUtlStringToken m_worldGroupId; // 0x20
+	// MNetworkEnable
+	// MNetworkDisable
+	CScriptComponent* m_CScriptComponent; // 0x30
 };
 
 // Aligment: 1
@@ -486,3 +508,14 @@ public:
 	CVariantBase< CVariantDefaultAllocator > m_Value; // 0x18
 };
 
+// Aligment: 1
+// Size: 56
+class CScriptComponent : public CEntityComponent
+{
+public:
+	CUtlSymbolLarge m_scriptClassName; // 0x30
+public:
+	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("engine2.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("engine2.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[1]->m_instance); }
+};
+
diff --git a/sdk/materialsystem2.hpp b/sdk/materialsystem2.hpp
index 185d1e43..22fc65f3 100644
--- a/sdk/materialsystem2.hpp
+++ b/sdk/materialsystem2.hpp
@@ -4,7 +4,7 @@
 
 ///////////////////////////////////////////
 // Binary: materialsystem2.dll
-// Class Count: 13
+// Class Count: 12
 // Enum Count: 5
 ///////////////////////////////////////////
 
@@ -177,20 +177,8 @@ public:
 	Vector m_vColorTint; // 0x18
 };
 
-// Aligment: 5
-// Size: 20
-struct PostProcessingLocalContrastParameters_t
-{
-public:
-	float m_flLocalContrastStrength; // 0x0
-	float m_flLocalContrastEdgeStrength; // 0x4
-	float m_flLocalContrastVignetteStart; // 0x8
-	float m_flLocalContrastVignetteEnd; // 0xc
-	float m_flLocalContrastVignetteBlur; // 0x10
-};
-
-// Aligment: 10
-// Size: 248
+// Aligment: 8
+// Size: 224
 struct PostProcessingResource_t
 {
 public:
@@ -200,9 +188,7 @@ public:
 	PostProcessingBloomParameters_t m_bloomParams; // 0x28
 	bool m_bHasVignetteParams; // 0x98
 	PostProcessingVignetteParameters_t m_vignetteParams; // 0x9c
-	bool m_bHasLocalContrastParams; // 0xc0
-	PostProcessingLocalContrastParameters_t m_localConstrastParams; // 0xc4
-	int32_t m_nColorCorrectionVolumeDim; // 0xd8
-	CUtlBinaryBlock m_colorCorrectionVolumeData; // 0xe0
+	int32_t m_nColorCorrectionVolumeDim; // 0xc0
+	CUtlBinaryBlock m_colorCorrectionVolumeData; // 0xc8
 };
 
diff --git a/sdk/particles.hpp b/sdk/particles.hpp
index bb72564a..e9eca029 100644
--- a/sdk/particles.hpp
+++ b/sdk/particles.hpp
@@ -4,12 +4,25 @@
 
 ///////////////////////////////////////////
 // Binary: particles.dll
-// Class Count: 330
-// Enum Count: 38
+// Class Count: 379
+// Enum Count: 32
 ///////////////////////////////////////////
 
 // Aligment: 4
-// Size: 18
+// Size: 7
+enum class Detail2Combo_t : uint32_t
+{
+	DETAIL_2_COMBO_UNINITIALIZED = 0xffffffffffffffff,
+	DETAIL_2_COMBO_OFF = 0x0,
+	DETAIL_2_COMBO_ADD = 0x1,
+	DETAIL_2_COMBO_ADD_SELF_ILLUM = 0x2,
+	DETAIL_2_COMBO_MOD2X = 0x3,
+	DETAIL_2_COMBO_MUL = 0x4,
+	DETAIL_2_COMBO_CROSSFADE = 0x5,
+};
+
+// Aligment: 4
+// Size: 17
 enum class ParticleAttachment_t : uint32_t
 {
 	PATTACH_INVALID = 0xffffffffffffffff,
@@ -27,9 +40,8 @@ enum class ParticleAttachment_t : uint32_t
 	PATTACH_MAIN_VIEW = 0xb,
 	PATTACH_WATERWAKE = 0xc,
 	PATTACH_CENTER_FOLLOW = 0xd,
-	PATTACH_BONE = 0xe,
-	PATTACH_BONEFOLLOW = 0xf,
-	MAX_PATTACH_TYPES = 0x10,
+	PATTACH_CUSTOM_GAME_STATE_1 = 0xe,
+	MAX_PATTACH_TYPES = 0xf,
 };
 
 // Aligment: 4
@@ -62,19 +74,6 @@ enum class AnimationType_t : uint32_t
 	ANIMATION_TYPE_MANUAL_FRAMES = 0x2,
 };
 
-// Aligment: 4
-// Size: 7
-enum class PFuncVisualizationType_t : uint32_t
-{
-	PFUNC_VISUALIZATION_SPHERE_WIREFRAME = 0x0,
-	PFUNC_VISUALIZATION_SPHERE_SOLID = 0x1,
-	PFUNC_VISUALIZATION_BOX = 0x2,
-	PFUNC_VISUALIZATION_RING = 0x3,
-	PFUNC_VISUALIZATION_PLANE = 0x4,
-	PFUNC_VISUALIZATION_LINE = 0x5,
-	PFUNC_VISUALIZATION_CYLINDER = 0x6,
-};
-
 // Aligment: 4
 // Size: 13
 enum class SequenceCombineMode_t : uint32_t
@@ -146,29 +145,6 @@ enum class ParticleColorBlendMode_t : uint32_t
 	PARTICLEBLEND_MULTIPLY = 0x4,
 };
 
-// Aligment: 4
-// Size: 7
-enum class Detail2Combo_t : uint32_t
-{
-	DETAIL_2_COMBO_UNINITIALIZED = 0xffffffffffffffff,
-	DETAIL_2_COMBO_OFF = 0x0,
-	DETAIL_2_COMBO_ADD = 0x1,
-	DETAIL_2_COMBO_ADD_SELF_ILLUM = 0x2,
-	DETAIL_2_COMBO_MOD2X = 0x3,
-	DETAIL_2_COMBO_MUL = 0x4,
-	DETAIL_2_COMBO_CROSSFADE = 0x5,
-};
-
-// Aligment: 4
-// Size: 4
-enum class DetailCombo_t : uint32_t
-{
-	DETAIL_COMBO_OFF = 0x0,
-	DETAIL_COMBO_ADD = 0x1,
-	DETAIL_COMBO_ADD_SELF_ILLUM = 0x2,
-	DETAIL_COMBO_MOD2X = 0x3,
-};
-
 // Aligment: 4
 // Size: 8
 enum class ScalarExpressionType_t : uint32_t
@@ -225,7 +201,7 @@ enum class ParticleSelection_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 11
+// Size: 10
 enum class ParticlePinDistance_t : uint32_t
 {
 	PARTICLE_PIN_DISTANCE_NONE = 0xffffffffffffffff,
@@ -238,7 +214,6 @@ enum class ParticlePinDistance_t : uint32_t
 	PARTICLE_PIN_DISTANCE_CP_PAIR_EITHER = 0x7,
 	PARTICLE_PIN_DISTANCE_CP_PAIR_BOTH = 0x8,
 	PARTICLE_PIN_SPEED = 0x9,
-	PARTICLE_PIN_COLLECTION_AGE = 0xa,
 };
 
 // Aligment: 4
@@ -266,15 +241,6 @@ enum class ParticleSetMethod_t : uint32_t
 	PARTICLE_SET_ADD_TO_CURRENT_VALUE = 0x4,
 };
 
-// Aligment: 4
-// Size: 3
-enum class ParticleDirectionNoiseType_t : uint32_t
-{
-	PARTICLE_DIR_NOISE_PERLIN = 0x0,
-	PARTICLE_DIR_NOISE_CURL = 0x1,
-	PARTICLE_DIR_NOISE_WORLEY_BASIC = 0x2,
-};
-
 // Aligment: 4
 // Size: 6
 enum class ParticleOrientationChoiceList_t : uint32_t
@@ -340,7 +306,7 @@ enum class TextureRepetitionMode_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 18
+// Size: 17
 enum class ParticleFloatType_t : uint32_t
 {
 	PF_TYPE_INVALID = 0xffffffffffffffff,
@@ -352,15 +318,14 @@ enum class ParticleFloatType_t : uint32_t
 	PF_TYPE_CONTROL_POINT_COMPONENT = 0x5,
 	PF_TYPE_CONTROL_POINT_CHANGE_AGE = 0x6,
 	PF_TYPE_PARTICLE_DETAIL_LEVEL = 0x7,
-	PF_TYPE_PARTICLE_NOISE = 0x8,
-	PF_TYPE_PARTICLE_AGE = 0x9,
-	PF_TYPE_PARTICLE_AGE_NORMALIZED = 0xa,
-	PF_TYPE_PARTICLE_FLOAT = 0xb,
-	PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0xc,
-	PF_TYPE_PARTICLE_SPEED = 0xd,
-	PF_TYPE_PARTICLE_NUMBER = 0xe,
-	PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0xf,
-	PF_TYPE_COUNT = 0x10,
+	PF_TYPE_PARTICLE_AGE = 0x8,
+	PF_TYPE_PARTICLE_AGE_NORMALIZED = 0x9,
+	PF_TYPE_PARTICLE_FLOAT = 0xa,
+	PF_TYPE_PARTICLE_VECTOR_COMPONENT = 0xb,
+	PF_TYPE_PARTICLE_SPEED = 0xc,
+	PF_TYPE_PARTICLE_NUMBER = 0xd,
+	PF_TYPE_PARTICLE_NUMBER_NORMALIZED = 0xe,
+	PF_TYPE_COUNT = 0xf,
 };
 
 // Aligment: 4
@@ -374,38 +339,6 @@ enum class ParticleFloatBiasType_t : uint32_t
 	PF_BIAS_TYPE_COUNT = 0x3,
 };
 
-// Aligment: 4
-// Size: 4
-enum class PFNoiseType_t : uint32_t
-{
-	PF_NOISE_TYPE_PERLIN = 0x0,
-	PF_NOISE_TYPE_SIMPLEX = 0x1,
-	PF_NOISE_TYPE_WORLEY = 0x2,
-	PF_NOISE_TYPE_CURL = 0x3,
-};
-
-// Aligment: 4
-// Size: 4
-enum class PFNoiseModifier_t : uint32_t
-{
-	PF_NOISE_MODIFIER_NONE = 0x0,
-	PF_NOISE_MODIFIER_LINES = 0x1,
-	PF_NOISE_MODIFIER_CLUMPS = 0x2,
-	PF_NOISE_MODIFIER_RINGS = 0x3,
-};
-
-// Aligment: 4
-// Size: 6
-enum class PFNoiseTurbulence_t : uint32_t
-{
-	PF_NOISE_TURB_NONE = 0x0,
-	PF_NOISE_TURB_HIGHLIGHT = 0x1,
-	PF_NOISE_TURB_FEEDBACK = 0x2,
-	PF_NOISE_TURB_LOOPY = 0x3,
-	PF_NOISE_TURB_CONTRAST = 0x4,
-	PF_NOISE_TURB_ALTERNATE = 0x5,
-};
-
 // Aligment: 4
 // Size: 4
 enum class ParticleFloatRandomMode_t : uint32_t
@@ -673,7 +606,6 @@ public:
 struct ParticleChildrenInfo_t
 {
 public:
-	// MPropertySuppressField
 	// MDefaultString
 	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_ChildRef; // 0x0
 	// MPropertyFriendlyName "delay"
@@ -682,7 +614,7 @@ public:
 	// MPropertyFriendlyName "end cap effect"
 	// MDefaultString
 	bool m_bEndCap; // 0xe
-	// MPropertySuppressField
+	// MPropertyFriendlyName "disable child"
 	// MDefaultString
 	bool m_bDisableChild; // 0xf
 	// MPropertyFriendlyName "disable at detail levels below"
@@ -763,19 +695,19 @@ public:
 	// MDefaultString
 	// MPropertySuppressField
 	int32_t m_nBehaviorVersion; // 0x8
-	// MPropertySuppressField
+	// MPropertyFriendlyName "pre emission operators"
 	CUtlVector< CParticleFunctionPreEmission* > m_PreEmissionOperators; // 0x10
-	// MPropertySuppressField
+	// MPropertyFriendlyName "emitters"
 	CUtlVector< CParticleFunctionEmitter* > m_Emitters; // 0x28
-	// MPropertySuppressField
+	// MPropertyFriendlyName "initializers"
 	CUtlVector< CParticleFunctionInitializer* > m_Initializers; // 0x40
-	// MPropertySuppressField
+	// MPropertyFriendlyName "operators"
 	CUtlVector< CParticleFunctionOperator* > m_Operators; // 0x58
-	// MPropertySuppressField
+	// MPropertyFriendlyName "forces"
 	CUtlVector< CParticleFunctionForce* > m_ForceGenerators; // 0x70
-	// MPropertySuppressField
+	// MPropertyFriendlyName "constraints"
 	CUtlVector< CParticleFunctionConstraint* > m_Constraints; // 0x88
-	// MPropertySuppressField
+	// MPropertyFriendlyName "renderers"
 	CUtlVector< CParticleFunctionRenderer* > m_Renderers; // 0xa0
 	// MPropertySuppressField
 	CUtlVector< ParticleChildrenInfo_t > m_Children; // 0xb8
@@ -909,6 +841,7 @@ public:
 	bool m_bViewModelEffect; // 0x298
 	// MPropertyFriendlyName "screen space effect"
 	// MDefaultString
+	// MParticleAdvancedField
 	bool m_bScreenSpaceEffect; // 0x299
 	CUtlVector< ParticleControlPointConfiguration_t > m_controlPointConfigurations; // 0x2b0
 	// MPropertyFriendlyName "time to sleep when not drawn"
@@ -963,59 +896,72 @@ public:
 };
 
 // Aligment: 16
-// Size: 384
+// Size: 320
 class CParticleFunction
 {
 public:
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator start fadein"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpStartFadeInTime; // 0x8
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator end fadein"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpEndFadeInTime; // 0xc
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator start fadeout"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpStartFadeOutTime; // 0x10
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator end fadeout"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpEndFadeOutTime; // 0x14
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "operator fade oscillate"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpFadeOscillatePeriod; // 0x18
 	// MPropertyGroupName "Operator Fade"
 	// MPropertyFriendlyName "normalize fade times to endcap"
 	// MDefaultString
+	// MParticleAdvancedField
 	bool m_bNormalizeToStopTime; // 0x1c
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset min"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeOffsetMin; // 0x20
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset max"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeOffsetMax; // 0x24
 	// MPropertyGroupName "Time Offset"
 	// MPropertyFriendlyName "operator time offset seed"
 	// MDefaultString
+	// MParticleAdvancedField
 	int32_t m_nOpTimeOffsetSeed; // 0x28
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale seed"
 	// MDefaultString
+	// MParticleAdvancedField
 	int32_t m_nOpTimeScaleSeed; // 0x2c
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale min"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeScaleMin; // 0x30
 	// MPropertyGroupName "Timescale Modifiers"
 	// MPropertyFriendlyName "operator time scale max"
 	// MDefaultString
+	// MParticleAdvancedField
 	float m_flOpTimeScaleMax; // 0x34
-	// MPropertySuppressField
+	// MPropertySortPriority "2147483647"
+	// MPropertyFriendlyName "disable"
 	// MDefaultString
 	bool m_bDisableOperator; // 0x39
 	// MPropertyFriendlyName "operator end cap state"
@@ -1024,15 +970,16 @@ public:
 	// MPropertyGroupName "Strength Modifiers"
 	// MPropertyFriendlyName "operator strength"
 	// MDefaultString
+	// MParticleAdvancedField
 	CParticleCollectionFloatInput m_flOpStrength; // 0x40
-	// MPropertyFriendlyName "Notes"
+	// MPropertyFriendlyName "operator help and notes"
 	// MDefaultString
 	// MParticleHelpField
-	CUtlString m_Notes; // 0x128
+	CUtlString m_Notes; // 0xe8
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionInitializer : public CParticleFunction
 {
 public:
@@ -1040,7 +987,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionEmitter : public CParticleFunction
 {
 public:
@@ -1048,7 +995,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionConstraint : public CParticleFunction
 {
 public:
@@ -1056,7 +1003,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionForce : public CParticleFunction
 {
 public:
@@ -1064,7 +1011,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionOperator : public CParticleFunction
 {
 public:
@@ -1072,7 +1019,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CParticleFunctionPreEmission : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -1080,394 +1027,384 @@ public:
 };
 
 // Aligment: 3
-// Size: 464
+// Size: 400
 class CParticleFunctionRenderer : public CParticleFunction
 {
 public:
 	// MParticleAdvancedField
-	CParticleVisibilityInputs VisibilityInputs; // 0x180
+	CParticleVisibilityInputs VisibilityInputs; // 0x140
 	// MPropertyFriendlyName "I cannot be refracted through refracting objects like water"
 	// MDefaultString
 	// MPropertyGroupName "Rendering filter"
-	bool m_bCannotBeRefracted; // 0x1c4
+	bool m_bCannotBeRefracted; // 0x184
 	// MPropertyFriendlyName "Skip rendering on mobile"
 	// MDefaultString
 	// MPropertyGroupName "Rendering filter"
-	bool m_bSkipRenderingOnMobile; // 0x1c5
+	bool m_bSkipRenderingOnMobile; // 0x185
 };
 
 // Aligment: 50
-// Size: 3232
+// Size: 864
 class CBaseRendererSource2 : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
 	// MPropertyAttributeRange "0 5"
-	float m_flAnimationRate; // 0x1d0
+	float m_flAnimationRate; // 0x190
 	// MPropertyFriendlyName "animation type"
 	// MDefaultString
-	AnimationType_t m_nAnimationType; // 0x1d4
+	AnimationType_t m_nAnimationType; // 0x194
 	// MPropertyFriendlyName "set animation value in FPS"
 	// MDefaultString
-	bool m_bAnimateInFPS; // 0x1d8
+	bool m_bAnimateInFPS; // 0x198
 	// MPropertyFriendlyName "light per vertex"
 	// MDefaultString
-	bool m_bPerVertexLighting; // 0x1d9
+	bool m_bPerVertexLighting; // 0x199
 	// MPropertyFriendlyName "self illum amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	CParticleCollectionFloatInput m_flSelfIllumAmount; // 0x1e0
+	float m_flSelfIllumAmount; // 0x19c
 	// MPropertyFriendlyName "diffuse lighting amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
-	CParticleCollectionFloatInput m_flDiffuseAmount; // 0x2c8
+	float m_flDiffuseAmount; // 0x1a0
 	// MPropertyFriendlyName "diffuse lighting origin Control Point"
 	// MDefaultString
-	int32_t m_nLightingControlPoint; // 0x3b0
+	int32_t m_nLightingControlPoint; // 0x1a4
 	// MPropertyFriendlyName "self illum per-particle"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x3b4
-	// MPropertyFriendlyName "desaturation amount"
-	// MDefaultString
-	// MPropertyAttributeRange "0 1"
-	CParticleCollectionFloatInput m_flDesaturation; // 0x3b8
+	ParticleAttributeIndex_t m_nSelfIllumPerParticle; // 0x1a8
 	// MPropertyFriendlyName "source alpha value to map to alpha of zero"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flSourceAlphaValueToMapToZero; // 0x4a0
+	float m_flSourceAlphaValueToMapToZero; // 0x1ac
 	// MPropertyFriendlyName "source alpha value to map to alpha of 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flSourceAlphaValueToMapToOne; // 0x588
+	float m_flSourceAlphaValueToMapToOne; // 0x1b0
 	// MPropertyFriendlyName "Gamma-correct vertex colors"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bGammaCorrectVertexColors; // 0x670
+	bool m_bGammaCorrectVertexColors; // 0x1b4
 	// MPropertyFriendlyName "Saturate color pre alphablend"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bSaturateColorPreAlphaBlend; // 0x671
+	bool m_bSaturateColorPreAlphaBlend; // 0x1b5
 	// MPropertyFriendlyName "dual sequence combine mode"
 	// MDefaultString
 	// MPropertyGroupName "Dual sequence controls"
-	SequenceCombineMode_t m_nSequenceCombineMode; // 0x674
+	SequenceCombineMode_t m_nSequenceCombineMode; // 0x1b8
 	// MPropertyFriendlyName "second sequence animation rate"
 	// MDefaultString
 	// MPropertyAttributeRange "0 5"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flAnimationRate2; // 0x678
+	float m_flAnimationRate2; // 0x1bc
 	// MPropertyFriendlyName "RGB blend weight for sequence 0"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence0RGBWeight; // 0x67c
+	float m_flSequence0RGBWeight; // 0x1c0
 	// MPropertyFriendlyName "alpha blend weight for sequence 0"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence0AlphaWeight; // 0x680
+	float m_flSequence0AlphaWeight; // 0x1c4
 	// MPropertyFriendlyName "RGB blend weight for sequence 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence1RGBWeight; // 0x684
+	float m_flSequence1RGBWeight; // 0x1c8
 	// MPropertyFriendlyName "alpha blend weight for sequence 1"
 	// MDefaultString
 	// MPropertyAttributeRange "0 1"
 	// MPropertyGroupName "Dual sequence controls"
-	float m_flSequence1AlphaWeight; // 0x688
+	float m_flSequence1AlphaWeight; // 0x1cc
 	// MPropertyFriendlyName "add self amount for combined additive and alpha blended"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flAddSelfAmount; // 0x690
+	float m_flAddSelfAmount; // 0x1d0
 	// MPropertyFriendlyName "use additive blending"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bAdditive; // 0x778
+	bool m_bAdditive; // 0x1d4
 	// MPropertyFriendlyName "Additive alpha - write alpha during additive"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bAdditiveAlpha; // 0x779
+	bool m_bAdditiveAlpha; // 0x1d5
 	// MPropertyFriendlyName "Mod2x blend mode"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bMod2X; // 0x77a
+	bool m_bMod2X; // 0x1d6
 	// MPropertyFriendlyName "'Lighten blend mode"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bLightenMode; // 0x77b
+	bool m_bLightenMode; // 0x1d7
 	// MPropertyFriendlyName "use max-luminance blending for sequence 0"
 	// MDefaultString
-	bool m_bMaxLuminanceBlendingSequence0; // 0x77c
+	bool m_bMaxLuminanceBlendingSequence0; // 0x1d8
 	// MPropertyFriendlyName "use max-luminance blending for sequence 1"
 	// MDefaultString
-	bool m_bMaxLuminanceBlendingSequence1; // 0x77d
+	bool m_bMaxLuminanceBlendingSequence1; // 0x1d9
 	// MPropertyFriendlyName "refract background"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	bool m_bRefract; // 0x77e
+	bool m_bRefract; // 0x1da
 	// MPropertyFriendlyName "refract amount"
 	// MDefaultString
 	// MPropertyAttributeRange "-2 2"
 	// MPropertyGroupName "Refraction"
-	CParticleCollectionFloatInput m_flRefractAmount; // 0x780
+	float m_flRefractAmount; // 0x1dc
 	// MPropertyFriendlyName "refract blur radius"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	int32_t m_nRefractBlurRadius; // 0x868
+	int32_t m_nRefractBlurRadius; // 0x1e0
 	// MPropertyFriendlyName "refract blur type"
 	// MDefaultString
 	// MPropertyGroupName "Refraction"
-	BlurFilterType_t m_nRefractBlurType; // 0x86c
+	BlurFilterType_t m_nRefractBlurType; // 0x1e4
 	// MPropertyFriendlyName "Only Render in effects bloom pass"
 	// MDefaultString
-	bool m_bOnlyRenderInEffectsBloomPass; // 0x870
+	bool m_bOnlyRenderInEffectsBloomPass; // 0x1e8
 	// MPropertyFriendlyName "stencil test ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	char[128] m_stencilTestID; // 0x871
+	char[128] m_stencilTestID; // 0x1e9
 	// MPropertyFriendlyName "only write where stencil is NOT stencil test ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bStencilTestExclude; // 0x8f1
+	bool m_bStencilTestExclude; // 0x269
 	// MPropertyFriendlyName "stencil write ID"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	char[128] m_stencilWriteID; // 0x8f2
+	char[128] m_stencilWriteID; // 0x26a
 	// MPropertyFriendlyName "write stencil on z-buffer test success"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bWriteStencilOnDepthPass; // 0x972
+	bool m_bWriteStencilOnDepthPass; // 0x2ea
 	// MPropertyFriendlyName "write stencil on z-buffer test failure"
 	// MDefaultString
 	// MPropertyGroupName "Stencil"
-	bool m_bWriteStencilOnDepthFail; // 0x973
+	bool m_bWriteStencilOnDepthFail; // 0x2eb
 	// MPropertyFriendlyName "reverse z-buffer test"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	bool m_bReverseZBuffering; // 0x974
+	bool m_bReverseZBuffering; // 0x2ec
 	// MPropertyFriendlyName "disable z-buffer test"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	bool m_bDisableZBuffering; // 0x975
+	bool m_bDisableZBuffering; // 0x2ed
 	// MPropertyFriendlyName "Depth feathering mode"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x978
+	ParticleDepthFeatheringMode_t m_nFeatheringMode; // 0x2f0
 	// MPropertyFriendlyName "particle feathering closest distance to surface"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	CParticleCollectionFloatInput m_flFeatheringMinDist; // 0x980
+	float m_flFeatheringMinDist; // 0x2f4
 	// MPropertyFriendlyName "particle feathering farthest distance to surface"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	CParticleCollectionFloatInput m_flFeatheringMaxDist; // 0xa68
+	float m_flFeatheringMaxDist; // 0x2f8
 	// MPropertyFriendlyName "overbright factor"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	CParticleCollectionFloatInput m_flOverbrightFactor; // 0xb50
+	float m_flOverbrightFactor; // 0x2fc
 	// MPropertyFriendlyName "Apply fog of war to color"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bTintByFOW; // 0xc38
+	bool m_bTintByFOW; // 0x300
 	// MPropertyFriendlyName "Apply fog to particle"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bFogParticles; // 0xc39
+	bool m_bFogParticles; // 0x301
 	// MPropertyFriendlyName "Apply global light to color"
 	// MDefaultString
 	// MPropertyGroupName "Color and alpha adjustments"
-	bool m_bTintByGlobalLight; // 0xc3a
+	bool m_bTintByGlobalLight; // 0x302
 	// MPropertyFriendlyName "texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
 	// MDefaultString
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0xc40
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x308
 	// MPropertyFriendlyName "Apply motion vectors"
 	// MDefaultString
 	// MPropertyGroupName "Motion vectors"
-	bool m_bMotionVectors; // 0xc48
+	bool m_bMotionVectors; // 0x310
 	// MPropertyFriendlyName "motion vectors texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
 	// MPropertyGroupName "Motion vectors"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hMotionVectorsTexture; // 0xc50
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hMotionVectorsTexture; // 0x318
 	// MPropertyFriendlyName "blend sequence 0 animation frames"
 	// MDefaultString
-	bool m_bBlendFramesSeq0; // 0xc58
+	bool m_bBlendFramesSeq0; // 0x320
+	// MPropertyFriendlyName "right eye first seq offset"
+	// MDefaultString
+	int32_t m_nFirstSequenceOffsetForRightEye; // 0x324
 	// MPropertyFriendlyName "HSV Shift Control Point"
 	// MDefaultString
-	int32_t m_nHSVShiftControlPoint; // 0xc5c
+	int32_t m_nHSVShiftControlPoint; // 0x328
 };
 
-// Aligment: 42
-// Size: 6528
+// Aligment: 39
+// Size: 2496
 class C_OP_RenderSprites : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "sequence id override"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSequenceOverride; // 0xca0
+	int32_t m_nSequenceOverride; // 0x360
 	// MPropertyFriendlyName "orientation type"
 	// MPropertyAttributeChoiceEnumName
 	// MDefaultString
-	int32_t m_nOrientationType; // 0xd88
+	int32_t m_nOrientationType; // 0x364
 	// MPropertyFriendlyName "orientation control point"
 	// MDefaultString
-	int32_t m_nOrientationControlPoint; // 0xd8c
-	// MPropertyFriendlyName "flip normal"
-	// MDefaultString
-	bool m_bFlipNormal; // 0xd90
+	int32_t m_nOrientationControlPoint; // 0x368
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xd94
+	float m_flMinSize; // 0x36c
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xd98
+	float m_flMaxSize; // 0x370
 	// MPropertyFriendlyName "Factor to map size adjustment to alpha"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flAlphaAdjustWithSizeAdjust; // 0xd9c
+	float m_flAlphaAdjustWithSizeAdjust; // 0x374
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flStartFadeSize; // 0xda0
+	CParticleCollectionFloatInput m_flStartFadeSize; // 0x378
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flEndFadeSize; // 0xe88
+	CParticleCollectionFloatInput m_flEndFadeSize; // 0x420
 	// MPropertyFriendlyName "start dot product value for fading as the particle normal becomes aligned with the view vector"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flStartFadeDot; // 0xf70
+	float m_flStartFadeDot; // 0x4c8
 	// MPropertyFriendlyName "end dot product value for fading as the particle normal becomes aligned with the view vector"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flEndFadeDot; // 0xf74
+	float m_flEndFadeDot; // 0x4cc
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0xf78
+	float m_flDepthBias; // 0x4d0
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureScaleU; // 0xf80
+	float m_flFinalTextureScaleU; // 0x4d4
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureScaleV; // 0x1068
+	float m_flFinalTextureScaleV; // 0x4d8
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureOffsetU; // 0x1150
+	float m_flFinalTextureOffsetU; // 0x4dc
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	CParticleCollectionFloatInput m_flFinalTextureOffsetV; // 0x1238
+	float m_flFinalTextureOffsetV; // 0x4e0
 	// MPropertyFriendlyName "X offset of center point"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flCenterXOffset; // 0x1320
+	float m_flCenterXOffset; // 0x4e4
 	// MPropertyFriendlyName "Y offset of center point"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flCenterYOffset; // 0x1324
+	float m_flCenterYOffset; // 0x4e8
 	// MPropertyFriendlyName "intraframe zoom amount for sequence 0"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flZoomAmount0; // 0x1328
+	float m_flZoomAmount0; // 0x4ec
 	// MPropertyFriendlyName "intraframe zoom amount for sequence 1"
 	// MDefaultString
 	// MPropertyGroupName "Texture UV control"
-	float m_flZoomAmount1; // 0x132c
+	float m_flZoomAmount1; // 0x4f0
 	// MPropertyFriendlyName "distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	bool m_bDistanceAlpha; // 0x1330
+	bool m_bDistanceAlpha; // 0x4f4
 	// MPropertyFriendlyName "use soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	bool m_bSoftEdges; // 0x1331
+	bool m_bSoftEdges; // 0x4f5
 	// MPropertyFriendlyName "start value for soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	float m_flEdgeSoftnessStart; // 0x1334
+	float m_flEdgeSoftnessStart; // 0x4f8
 	// MPropertyFriendlyName "end value for soft edges for distance alpha"
 	// MDefaultString
 	// MPropertyGroupName "Distance to alpha coding"
-	float m_flEdgeSoftnessEnd; // 0x1338
+	float m_flEdgeSoftnessEnd; // 0x4fc
 	// MPropertyFriendlyName "enable particle outlining"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	bool m_bOutline; // 0x133c
+	bool m_bOutline; // 0x500
 	// MPropertyFriendlyName "outline color"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	Color m_OutlineColor; // 0x133d
+	Color m_OutlineColor; // 0x501
 	// MPropertyFriendlyName "outline alpha"
 	// MDefaultString
 	// MPropertyAttributeRange "0 255"
 	// MPropertyGroupName "Outlining"
-	int32_t m_nOutlineAlpha; // 0x1344
+	int32_t m_nOutlineAlpha; // 0x508
 	// MPropertyFriendlyName "outline start 0"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineStart0; // 0x1348
+	float m_flOutlineStart0; // 0x50c
 	// MPropertyFriendlyName "outline start 1"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineStart1; // 0x134c
+	float m_flOutlineStart1; // 0x510
 	// MPropertyFriendlyName "outline end 0"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineEnd0; // 0x1350
+	float m_flOutlineEnd0; // 0x514
 	// MPropertyFriendlyName "outline end 1"
 	// MDefaultString
 	// MPropertyGroupName "Outlining"
-	float m_flOutlineEnd1; // 0x1354
+	float m_flOutlineEnd1; // 0x518
 	// MPropertyFriendlyName "enable yaw for particles aligned to normals"
 	// MDefaultString
-	bool m_bUseYawWithNormalAligned; // 0x1358
+	bool m_bUseYawWithNormalAligned; // 0x51c
 	// MPropertyFriendlyName "Normal Mapping"
 	// MDefaultString
-	bool m_bNormalMap; // 0x1359
+	bool m_bNormalMap; // 0x51d
 	// MPropertyFriendlyName "Bump Strength"
 	// MDefaultString
-	float m_flBumpStrength; // 0x135c
+	float m_flBumpStrength; // 0x520
 	// MPropertyFriendlyName "Radius Scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0x1360
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x528
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x1448
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x5d0
 	// MPropertyFriendlyName "color blend"
 	// MPropertyColorWithNoAlpha
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1530
+	CParticleCollectionVecInput m_vecColorScale; // 0x678
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x1960
+	ParticleColorBlendType_t m_nColorBlendType; // 0x9a8
 	// MPropertyFriendlyName "normal texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hNormalTexture; // 0x1968
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hNormalTexture; // 0x9b0
 	// MPropertyFriendlyName "Sort Method"
 	// MPropertyAttributeChoiceEnumName
 	// MDefaultString
-	int32_t m_nSortMethod; // 0x1974
-	// MPropertyFriendlyName "Particle Shadows"
-	// MDefaultString
-	bool m_bParticleShadows; // 0x1978
-	// MPropertyFriendlyName "Shadow Density"
-	// MDefaultString
-	float m_flShadowDensity; // 0x197c
+	int32_t m_nSortMethod; // 0x9bc
 };
 
 // Aligment: 2
-// Size: 240
+// Size: 176
 struct FloatInputMaterialVariable_t
 {
 public:
@@ -1480,7 +1417,7 @@ public:
 };
 
 // Aligment: 2
-// Size: 1080
+// Size: 824
 struct VecInputMaterialVariable_t
 {
 public:
@@ -1493,62 +1430,62 @@ public:
 };
 
 // Aligment: 17
-// Size: 2000
+// Size: 1552
 class C_OP_RenderCables : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1d0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x190
 	// MPropertyFriendlyName "texture repetition mode"
 	// MDefaultString
-	TextureRepetitionMode_t m_nTextureRepetitionMode; // 0x1d8
+	TextureRepetitionMode_t m_nTextureRepetitionMode; // 0x198
 	// MPropertyFriendlyName "texture repetitions"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0x1e0
+	CParticleCollectionFloatInput m_flTextureRepeatsPerSegment; // 0x1a0
 	// MPropertyFriendlyName "texture repetitions around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0x2c8
+	CParticleCollectionFloatInput m_flTextureRepeatsCircumference; // 0x248
 	// MPropertyFriendlyName "color map offset along path"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flColorMapOffsetV; // 0x3b0
+	CParticleCollectionFloatInput m_flColorMapOffsetV; // 0x2f0
 	// MPropertyFriendlyName "color map offset around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flColorMapOffsetU; // 0x498
+	CParticleCollectionFloatInput m_flColorMapOffsetU; // 0x398
 	// MPropertyFriendlyName "normal map offset along path"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x580
+	CParticleCollectionFloatInput m_flNormalMapOffsetV; // 0x440
 	// MPropertyFriendlyName "normal map offset around cable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x668
+	CParticleCollectionFloatInput m_flNormalMapOffsetU; // 0x4e8
 	// MPropertyFriendlyName "draw caps at each end of the cable"
 	// MDefaultString
-	bool m_bDrawCableCaps; // 0x750
+	bool m_bDrawCableCaps; // 0x590
 	// MPropertyFriendlyName "cable end cap shape factor"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	float m_flCapRoundness; // 0x754
+	float m_flCapRoundness; // 0x594
 	// MPropertyFriendlyName "cable end cap offset amount"
 	// MDefaultString
 	// MPropertyAttributeRange "0 2"
-	float m_flCapOffsetAmount; // 0x758
+	float m_flCapOffsetAmount; // 0x598
 	// MPropertyFriendlyName "tessellation scale factor"
 	// MDefaultString
-	float m_flTessScale; // 0x75c
+	float m_flTessScale; // 0x59c
 	// MPropertyFriendlyName "minimum steps between particles"
 	// MDefaultString
-	int32_t m_nMinTesselation; // 0x760
+	int32_t m_nMinTesselation; // 0x5a0
 	// MPropertyFriendlyName "maximum steps between particles"
 	// MDefaultString
-	int32_t m_nMaxTesselation; // 0x764
+	int32_t m_nMaxTesselation; // 0x5a4
 	// MPropertyFriendlyName "roundness factor"
 	// MDefaultString
-	int32_t m_nRoundness; // 0x768
+	int32_t m_nRoundness; // 0x5a8
 	// MPropertyFriendlyName "material float variables"
-	CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x770
+	CUtlVector< FloatInputMaterialVariable_t > m_MaterialFloatVars; // 0x5b0
 	// MPropertyFriendlyName "material vector variables"
-	CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x7a0
+	CUtlVector< VecInputMaterialVariable_t > m_MaterialVecVars; // 0x5e0
 };
 
 // Aligment: 0
@@ -1559,8 +1496,8 @@ public:
 // <no members described>
 };
 
-// Aligment: 36
-// Size: 232
+// Aligment: 23
+// Size: 168
 class CParticleFloatInput
 {
 public:
@@ -1593,52 +1530,26 @@ public:
 	// MDefaultString
 	float m_flLOD3; // 0x38
 	// MDefaultString
-	float m_flNoiseOutputMin; // 0x3c
+	ParticleFloatInputMode_t m_nInputMode; // 0x3c
 	// MDefaultString
-	float m_flNoiseOutputMax; // 0x40
+	float m_flMultFactor; // 0x40
 	// MDefaultString
-	float m_flNoiseScale; // 0x44
+	float m_flInput0; // 0x44
 	// MDefaultString
-	Vector m_vecNoiseOffsetRate; // 0x48
+	float m_flInput1; // 0x48
 	// MDefaultString
-	float m_flNoiseOffset; // 0x54
+	float m_flOutput0; // 0x4c
 	// MDefaultString
-	int32_t m_nNoiseOctaves; // 0x58
+	float m_flOutput1; // 0x50
 	// MDefaultString
-	PFNoiseTurbulence_t m_nNoiseTurbulence; // 0x5c
+	ParticleFloatBiasType_t m_nBiasType; // 0x54
 	// MDefaultString
-	PFNoiseType_t m_nNoiseType; // 0x60
-	// MDefaultString
-	PFNoiseModifier_t m_nNoiseModifier; // 0x64
-	// MDefaultString
-	float m_flNoiseTurbulenceScale; // 0x68
-	// MDefaultString
-	float m_flNoiseTurbulenceMix; // 0x6c
-	// MDefaultString
-	float m_flNoiseImgPreviewScale; // 0x70
-	// MDefaultString
-	bool m_bNoiseImgPreviewLive; // 0x74
-	// MDefaultString
-	ParticleFloatInputMode_t m_nInputMode; // 0x7c
-	// MDefaultString
-	float m_flMultFactor; // 0x80
-	// MDefaultString
-	float m_flInput0; // 0x84
-	// MDefaultString
-	float m_flInput1; // 0x88
-	// MDefaultString
-	float m_flOutput0; // 0x8c
-	// MDefaultString
-	float m_flOutput1; // 0x90
-	// MDefaultString
-	ParticleFloatBiasType_t m_nBiasType; // 0x94
-	// MDefaultString
-	float m_flBiasParameter; // 0x98
-	CPiecewiseCurveSchemaWrapper m_Curve; // 0xa0
+	float m_flBiasParameter; // 0x58
+	CPiecewiseCurveSchemaWrapper m_Curve; // 0x60
 };
 
 // Aligment: 0
-// Size: 232
+// Size: 168
 class CPerParticleFloatInput : public CParticleFloatInput
 {
 public:
@@ -1646,7 +1557,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 232
+// Size: 168
 class CParticleCollectionFloatInput : public CParticleFloatInput
 {
 public:
@@ -1654,7 +1565,7 @@ public:
 };
 
 // Aligment: 18
-// Size: 1072
+// Size: 816
 class CParticleVecInput
 {
 public:
@@ -1677,22 +1588,22 @@ public:
 	// MDefaultString
 	Vector m_vCPRelativeDir; // 0x40
 	CParticleFloatInput m_FloatComponentX; // 0x50
-	CParticleFloatInput m_FloatComponentY; // 0x138
-	CParticleFloatInput m_FloatComponentZ; // 0x220
-	CParticleFloatInput m_FloatInterp; // 0x308
+	CParticleFloatInput m_FloatComponentY; // 0xf8
+	CParticleFloatInput m_FloatComponentZ; // 0x1a0
+	CParticleFloatInput m_FloatInterp; // 0x248
 	// MDefaultString
-	float m_flInterpInput0; // 0x3f0
+	float m_flInterpInput0; // 0x2f0
 	// MDefaultString
-	float m_flInterpInput1; // 0x3f4
+	float m_flInterpInput1; // 0x2f4
 	// MDefaultString
-	Vector m_vInterpOutput0; // 0x3f8
+	Vector m_vInterpOutput0; // 0x2f8
 	// MDefaultString
-	Vector m_vInterpOutput1; // 0x404
-	CColorGradient m_Gradient; // 0x410
+	Vector m_vInterpOutput1; // 0x304
+	CColorGradient m_Gradient; // 0x310
 };
 
 // Aligment: 0
-// Size: 1072
+// Size: 816
 class CPerParticleVecInput : public CParticleVecInput
 {
 public:
@@ -1700,7 +1611,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1072
+// Size: 816
 class CParticleCollectionVecInput : public CParticleVecInput
 {
 public:
@@ -1739,7 +1650,7 @@ public:
 // <no members described>
 };
 
-// Aligment: 23
+// Aligment: 25
 // Size: 184
 class CNewParticleEffect : public IParticleEffect
 {
@@ -1759,125 +1670,127 @@ public:
 	bitfield:1 m_bForceNoDraw; // 0x0
 	bitfield:1 m_bDisableAggregation; // 0x0
 	bitfield:1 m_bShouldSimulateDuringGamePaused; // 0x0
+	bitfield:1 m_bShouldCheckFoW; // 0x0
 	Vector m_vSortOrigin; // 0x40
 	float m_flScale; // 0x4c
 	PARTICLE_EHANDLE__* m_hOwner; // 0x50
 	CParticleProperty* m_pOwningParticleProperty; // 0x58
 	Vector m_LastMin; // 0x70
 	Vector m_LastMax; // 0x7c
-	Vector m_vecAggregationCenter; // 0x88
+	CSplitScreenSlot m_nSplitScreenUser; // 0x88
+	Vector m_vecAggregationCenter; // 0x8c
 	int32_t m_RefCount; // 0xb0
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_ConstrainDistance : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x184
+	float m_fMaxDistance; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "distance scale control point (X/Y = Min/Max)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x18c
+	int32_t m_nScaleCP; // 0x14c
 	// MPropertyFriendlyName "offset of center"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_CenterOffset; // 0x190
+	Vector m_CenterOffset; // 0x150
 	// MPropertyFriendlyName "global center point"
 	// MDefaultString
-	bool m_bGlobalCenter; // 0x19c
+	bool m_bGlobalCenter; // 0x15c
 };
 
 // Aligment: 8
-// Size: 480
+// Size: 416
 class C_OP_ConstrainDistanceToPath : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_flMaxDistance0; // 0x184
+	float m_flMaxDistance0; // 0x144
 	// MPropertyFriendlyName "maximum distance middle"
 	// MDefaultString
-	float m_flMaxDistanceMid; // 0x188
+	float m_flMaxDistanceMid; // 0x148
 	// MPropertyFriendlyName "maximum distance end"
 	// MDefaultString
-	float m_flMaxDistance1; // 0x18c
-	CPathParameters m_PathParameters; // 0x190
+	float m_flMaxDistance1; // 0x14c
+	CPathParameters m_PathParameters; // 0x150
 	// MPropertyFriendlyName "travel time"
 	// MDefaultString
-	float m_flTravelTime; // 0x1d0
+	float m_flTravelTime; // 0x190
 	// MPropertyFriendlyName "travel time scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldScale; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldScale; // 0x194
 	// MPropertyFriendlyName "manual time placement field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nManualTField; // 0x1d8
+	ParticleAttributeIndex_t m_nManualTField; // 0x198
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_OP_ConstrainDistanceToUserSpecifiedPath : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum distance"
 	// MDefaultString
-	float m_fMinDistance; // 0x180
+	float m_fMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_flMaxDistance; // 0x184
+	float m_flMaxDistance; // 0x144
 	// MPropertyFriendlyName "Time scale"
 	// MDefaultString
-	float m_flTimeScale; // 0x188
+	float m_flTimeScale; // 0x148
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bLoopedPath; // 0x18c
+	bool m_bLoopedPath; // 0x14c
 	// MPropertyFriendlyName "path points"
-	CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x190
+	CUtlVector< PointDefinitionWithTimeValues_t > m_pointList; // 0x150
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 688
 class C_OP_PlanarConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "plane point"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_PointOnPlane; // 0x180
+	Vector m_PointOnPlane; // 0x140
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
-	Vector m_PlaneNormal; // 0x18c
+	Vector m_PlaneNormal; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "global origin"
 	// MDefaultString
-	bool m_bGlobalOrigin; // 0x19c
+	bool m_bGlobalOrigin; // 0x15c
 	// MPropertyFriendlyName "global normal"
 	// MDefaultString
-	bool m_bGlobalNormal; // 0x19d
+	bool m_bGlobalNormal; // 0x15d
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusScale; // 0x1a0
+	CPerParticleFloatInput m_flRadiusScale; // 0x160
 	// MPropertyFriendlyName "falloff distance from control point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x288
+	CParticleCollectionFloatInput m_flMaximumDistanceToCP; // 0x208
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_WorldCollideConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
@@ -1885,3036 +1798,4093 @@ public:
 };
 
 // Aligment: 22
-// Size: 1520
+// Size: 1200
 class C_OP_WorldTraceConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point for fast collision tests"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "control point offset for fast collisions"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCpOffset; // 0x184
+	Vector m_vecCpOffset; // 0x144
 	// MPropertyFriendlyName "collision mode"
 	// MDefaultString
-	ParticleCollisionMode_t m_nCollisionMode; // 0x190
+	ParticleCollisionMode_t m_nCollisionMode; // 0x150
 	// MPropertyFriendlyName "minimum detail collision mode"
 	// MDefaultString
-	ParticleCollisionMode_t m_nCollisionModeMin; // 0x194
+	ParticleCollisionMode_t m_nCollisionModeMin; // 0x154
 	// MPropertyFriendlyName "amount of bounce"
 	// MDefaultString
-	CPerParticleFloatInput m_flBounceAmount; // 0x198
+	CPerParticleFloatInput m_flBounceAmount; // 0x158
 	// MPropertyFriendlyName "amount of slide"
 	// MDefaultString
-	CPerParticleFloatInput m_flSlideAmount; // 0x280
+	CPerParticleFloatInput m_flSlideAmount; // 0x200
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x368
+	float m_flRadiusScale; // 0x2a8
 	// MPropertyFriendlyName "Random Direction scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRandomDirScale; // 0x370
+	CPerParticleFloatInput m_flRandomDirScale; // 0x2b0
 	// MPropertyFriendlyName "control point movement distance tolerance"
 	// MDefaultString
-	float m_flCpMovementTolerance; // 0x458
+	float m_flCpMovementTolerance; // 0x358
 	// MPropertyFriendlyName "trace accuracy tolerance"
 	// MDefaultString
-	float m_flTraceTolerance; // 0x45c
+	float m_flTraceTolerance; // 0x35c
 	// MPropertyFriendlyName "minimum speed to kill on collision"
 	// MDefaultString
-	float m_flMinSpeed; // 0x460
+	float m_flMinSpeed; // 0x360
 	// MPropertyFriendlyName "Add Decay to Bounce"
 	// MDefaultString
-	bool m_bDecayBounce; // 0x464
+	bool m_bDecayBounce; // 0x364
 	// MPropertyFriendlyName "kill particle on collision"
 	// MDefaultString
-	bool m_bKillonContact; // 0x465
+	bool m_bKillonContact; // 0x365
 	// MPropertyFriendlyName "Confirm Collision Speed Threshold"
 	// MDefaultString
-	float m_flCollisionConfirmationSpeed; // 0x468
+	float m_flCollisionConfirmationSpeed; // 0x368
 	// MPropertyFriendlyName "Set Normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x46c
+	bool m_bSetNormal; // 0x36c
 	// MPropertyFriendlyName "Stick On Collision Cache Field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x470
+	ParticleAttributeIndex_t m_nStickOnCollisionField; // 0x370
 	// MPropertyFriendlyName "Speed to stop when sticking"
 	// MDefaultString
-	CPerParticleFloatInput m_flStopSpeed; // 0x478
+	CPerParticleFloatInput m_flStopSpeed; // 0x378
 	// MPropertyFriendlyName "Entity Hitbox Cache Field (Requires Stick on Collision)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nEntityStickDataField; // 0x560
+	ParticleAttributeIndex_t m_nEntityStickDataField; // 0x420
 	// MPropertyFriendlyName "World Only"
 	// MDefaultString
-	bool m_bWorldOnly; // 0x564
+	bool m_bWorldOnly; // 0x424
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x568
+	int32_t m_nIgnoreCP; // 0x428
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x56c
+	char[128] m_CollisionGroupName; // 0x42c
 	// MPropertyFriendlyName "brush only"
 	// MDefaultString
-	bool m_bBrushOnly; // 0x5ec
+	bool m_bBrushOnly; // 0x4ac
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_BoxConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min coords"
 	// MDefaultString
-	Vector m_vecMin; // 0x180
+	Vector m_vecMin; // 0x140
 	// MPropertyFriendlyName "max coords"
 	// MDefaultString
-	Vector m_vecMax; // 0x18c
+	Vector m_vecMax; // 0x14c
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x198
+	int32_t m_nCP; // 0x158
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x19c
+	bool m_bLocalSpace; // 0x15c
 };
 
 // Aligment: 5
-// Size: 1328
+// Size: 1008
 class C_OP_RopeSpringConstraint : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "slack"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRestLength; // 0x180
+	CParticleCollectionFloatInput m_flRestLength; // 0x140
 	// MPropertyFriendlyName "minimum segment length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMinDistance; // 0x268
+	CParticleCollectionFloatInput m_flMinDistance; // 0x1e8
 	// MPropertyFriendlyName "maximum segment length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flMaxDistance; // 0x350
+	CParticleCollectionFloatInput m_flMaxDistance; // 0x290
 	// MPropertyFriendlyName "scale factor for spring correction"
 	// MDefaultString
-	float m_flAdjustmentScale; // 0x438
+	float m_flAdjustmentScale; // 0x338
 	// MPropertyFriendlyName "manual resting spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInitialRestingLength; // 0x440
+	CParticleCollectionFloatInput m_flInitialRestingLength; // 0x340
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ConstrainLineLength : public CParticleFunctionConstraint, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum length"
 	// MDefaultString
-	float m_flMinDistance; // 0x180
+	float m_flMinDistance; // 0x140
 	// MPropertyFriendlyName "maximum length"
 	// MDefaultString
-	float m_flMaxDistance; // 0x184
+	float m_flMaxDistance; // 0x144
 };
 
-// Aligment: 11
-// Size: 2256
+// Aligment: 13
+// Size: 368
 class C_INIT_RingWave : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "override CP (X/Y/Z *= radius/thickness/speed)"
+	// MDefaultString
+	int32_t m_nOverrideCP; // 0x144
+	// MPropertyFriendlyName "override CP 2 (X/Y/Z *= pitch/yaw/roll)"
+	// MDefaultString
+	int32_t m_nOverrideCP2; // 0x148
 	// MPropertyFriendlyName "even distribution count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flParticlesPerOrbit; // 0x188
+	float m_flParticlesPerOrbit; // 0x14c
 	// MPropertyFriendlyName "initial radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialRadius; // 0x270
+	float m_flInitialRadius; // 0x150
 	// MPropertyFriendlyName "thickness"
 	// MDefaultString
-	CPerParticleFloatInput m_flThickness; // 0x358
+	float m_flThickness; // 0x154
 	// MPropertyFriendlyName "min initial speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialSpeedMin; // 0x440
+	float m_flInitialSpeedMin; // 0x158
 	// MPropertyFriendlyName "max initial speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flInitialSpeedMax; // 0x528
+	float m_flInitialSpeedMax; // 0x15c
 	// MPropertyFriendlyName "roll"
 	// MDefaultString
-	CPerParticleFloatInput m_flRoll; // 0x610
+	float m_flRoll; // 0x160
 	// MPropertyFriendlyName "pitch"
 	// MDefaultString
-	CPerParticleFloatInput m_flPitch; // 0x6f8
+	float m_flPitch; // 0x164
 	// MPropertyFriendlyName "yaw"
 	// MDefaultString
-	CPerParticleFloatInput m_flYaw; // 0x7e0
+	float m_flYaw; // 0x168
 	// MPropertyFriendlyName "even distribution"
 	// MDefaultString
-	bool m_bEvenDistribution; // 0x8c8
+	bool m_bEvenDistribution; // 0x16c
 	// MPropertyFriendlyName "XY velocity only"
 	// MDefaultString
-	bool m_bXYVelocityOnly; // 0x8c9
+	bool m_bXYVelocityOnly; // 0x16d
+};
+
+// Aligment: 7
+// Size: 352
+class C_INIT_CreateSpiralSphere : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "override CP (X/Y/Z *= radius/density/speed)"
+	// MDefaultString
+	int32_t m_nOverrideCP; // 0x144
+	// MPropertyFriendlyName "density"
+	// MDefaultString
+	int32_t m_nDensity; // 0x148
+	// MPropertyFriendlyName "initial radius"
+	// MDefaultString
+	float m_flInitialRadius; // 0x14c
+	// MPropertyFriendlyName "min initial speed"
+	// MDefaultString
+	float m_flInitialSpeedMin; // 0x150
+	// MPropertyFriendlyName "max initial speed"
+	// MDefaultString
+	float m_flInitialSpeedMax; // 0x154
+	// MPropertyFriendlyName "use particle count as density scale"
+	// MDefaultString
+	bool m_bUseParticleCount; // 0x158
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_INIT_CreateInEpitrochoid : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first dimension 0-2 (-1 disables)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent1; // 0x180
+	int32_t m_nComponent1; // 0x140
 	// MPropertyFriendlyName "second dimension 0-2 (-1 disables)"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent2; // 0x184
+	int32_t m_nComponent2; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "scale from conrol point (radius 1/radius 2/offset)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x18c
+	int32_t m_nScaleCP; // 0x14c
 	// MPropertyFriendlyName "particle density"
 	// MDefaultString
-	float m_flParticleDensity; // 0x190
+	float m_flParticleDensity; // 0x150
 	// MPropertyFriendlyName "point offset"
 	// MDefaultString
-	float m_flOffset; // 0x194
+	float m_flOffset; // 0x154
 	// MPropertyFriendlyName "radius 1"
 	// MDefaultString
-	float m_flRadius1; // 0x198
+	float m_flRadius1; // 0x158
 	// MPropertyFriendlyName "radius 2"
 	// MDefaultString
-	float m_flRadius2; // 0x19c
+	float m_flRadius2; // 0x15c
 	// MPropertyFriendlyName "use particle count instead of creation time"
 	// MDefaultString
-	bool m_bUseCount; // 0x1a0
+	bool m_bUseCount; // 0x160
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bUseLocalCoords; // 0x1a1
+	bool m_bUseLocalCoords; // 0x161
 	// MPropertyFriendlyName "offset from existing position"
 	// MDefaultString
-	bool m_bOffsetExistingPos; // 0x1a2
+	bool m_bOffsetExistingPos; // 0x162
 };
 
 // Aligment: 14
-// Size: 432
+// Size: 368
 class C_INIT_CreatePhyllotaxis : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "scale size multiplier from CP"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x184
+	int32_t m_nScaleCP; // 0x144
 	// MPropertyFriendlyName "scale CP component 0/1/2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent; // 0x188
+	int32_t m_nComponent; // 0x148
 	// MPropertyFriendlyName "center core radius"
 	// MDefaultString
-	float m_fRadCentCore; // 0x18c
+	float m_fRadCentCore; // 0x14c
 	// MPropertyFriendlyName "radius multiplier"
 	// MDefaultString
-	float m_fRadPerPoint; // 0x190
+	float m_fRadPerPoint; // 0x150
 	// MPropertyFriendlyName "radius max (-1 procedural growth)"
 	// MDefaultString
-	float m_fRadPerPointTo; // 0x194
+	float m_fRadPerPointTo; // 0x154
 	// MPropertyFriendlyName "golden angle (is 137.508)"
 	// MDefaultString
-	float m_fpointAngle; // 0x198
+	float m_fpointAngle; // 0x158
 	// MPropertyFriendlyName "overall size multiplier (-1 count based distribution)"
 	// MDefaultString
-	float m_fsizeOverall; // 0x19c
+	float m_fsizeOverall; // 0x15c
 	// MPropertyFriendlyName "radius bias"
 	// MDefaultString
-	float m_fRadBias; // 0x1a0
+	float m_fRadBias; // 0x160
 	// MPropertyFriendlyName "radius min "
 	// MDefaultString
-	float m_fMinRad; // 0x1a4
+	float m_fMinRad; // 0x164
 	// MPropertyFriendlyName "Distribution Bias"
 	// MPropertyFriendlyName "distribution bias"
 	// MDefaultString
-	float m_fDistBias; // 0x1a8
+	float m_fDistBias; // 0x168
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bUseLocalCoords; // 0x1ac
+	bool m_bUseLocalCoords; // 0x16c
 	// MPropertyFriendlyName "use continuous emission"
 	// MDefaultString
-	bool m_bUseWithContEmit; // 0x1ad
+	bool m_bUseWithContEmit; // 0x16d
 	// MPropertyFriendlyName "scale radius from initial value"
 	// MDefaultString
-	bool m_bUseOrigRadius; // 0x1ae
+	bool m_bUseOrigRadius; // 0x16e
 };
 
 // Aligment: 11
-// Size: 560
+// Size: 496
 class C_INIT_CreateOnModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "force to be inside model"
 	// MDefaultString
-	int32_t m_nForceInModel; // 0x184
+	int32_t m_nForceInModel; // 0x144
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x188
+	int32_t m_nDesiredHitbox; // 0x148
 	// MPropertyFriendlyName "Control Point Providing Hitbox index"
 	// MDefaultString
-	int32_t m_nHitboxValueFromControlPointIndex; // 0x18c
+	int32_t m_nHitboxValueFromControlPointIndex; // 0x14c
 	// MPropertyFriendlyName "hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x190
+	float m_flHitBoxScale; // 0x150
 	// MPropertyFriendlyName "inherited velocity scale"
 	// MDefaultString
-	float m_flBoneVelocity; // 0x194
+	float m_flBoneVelocity; // 0x154
 	// MPropertyFriendlyName "maximum inherited velocity"
 	// MDefaultString
-	float m_flMaxBoneVelocity; // 0x198
+	float m_flMaxBoneVelocity; // 0x158
 	// MPropertyFriendlyName "direction bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDirectionBias; // 0x19c
+	Vector m_vecDirectionBias; // 0x15c
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x1a8
+	char[128] m_HitboxSetName; // 0x168
 	// MPropertyFriendlyName "bias in local space"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x228
+	bool m_bLocalCoords; // 0x1e8
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x229
+	bool m_bUseBones; // 0x1e9
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_INIT_CreateOnModelAtHeight : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x180
+	bool m_bUseBones; // 0x140
 	// MPropertyFriendlyName "force creation height to desired height"
 	// MDefaultString
-	bool m_bForceZ; // 0x181
+	bool m_bForceZ; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "height override control point number"
 	// MDefaultString
-	int32_t m_nHeightCP; // 0x188
+	int32_t m_nHeightCP; // 0x148
 	// MPropertyFriendlyName "desired height is relative to water"
 	// MDefaultString
-	bool m_bUseWaterHeight; // 0x18c
+	bool m_bUseWaterHeight; // 0x14c
 	// MPropertyFriendlyName "relative desired height"
 	// MDefaultString
-	float m_flDesiredHeight; // 0x190
+	float m_flDesiredHeight; // 0x150
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x194
+	float m_flHitBoxScale; // 0x154
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x198
+	char[128] m_HitboxSetName; // 0x158
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_INIT_SetHitboxToClosest : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x184
+	int32_t m_nDesiredHitbox; // 0x144
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x188
+	float m_flHitBoxScale; // 0x148
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x18c
+	char[128] m_HitboxSetName; // 0x14c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x20c
+	bool m_bUseBones; // 0x1cc
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_INIT_SetHitboxToModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "force to be inside model"
 	// MDefaultString
-	int32_t m_nForceInModel; // 0x184
+	int32_t m_nForceInModel; // 0x144
 	// MPropertyFriendlyName "desired hitbox"
 	// MDefaultString
-	int32_t m_nDesiredHitbox; // 0x188
+	int32_t m_nDesiredHitbox; // 0x148
 	// MPropertyFriendlyName "model hitbox scale"
 	// MDefaultString
-	float m_flHitBoxScale; // 0x18c
+	float m_flHitBoxScale; // 0x14c
 	// MPropertyFriendlyName "direction bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDirectionBias; // 0x190
+	Vector m_vecDirectionBias; // 0x150
 	// MPropertyFriendlyName "maintain existing hitbox"
 	// MDefaultString
-	bool m_bMaintainHitbox; // 0x19c
+	bool m_bMaintainHitbox; // 0x15c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x19d
+	bool m_bUseBones; // 0x15d
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x19e
+	char[128] m_HitboxSetName; // 0x15e
 };
 
 // Aligment: 15
-// Size: 4576
+// Size: 416
 class C_INIT_CreateWithinSphere : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "distance min"
 	// MDefaultString
-	CPerParticleFloatInput m_fRadiusMin; // 0x180
+	float m_fRadiusMin; // 0x140
 	// MPropertyFriendlyName "distance max"
 	// MDefaultString
-	CPerParticleFloatInput m_fRadiusMax; // 0x268
+	float m_fRadiusMax; // 0x144
 	// MPropertyFriendlyName "distance bias"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecDistanceBias; // 0x350
+	Vector m_vecDistanceBias; // 0x148
 	// MPropertyFriendlyName "distance bias absolute value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecDistanceBiasAbs; // 0x780
+	Vector m_vecDistanceBiasAbs; // 0x154
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x78c
+	int32_t m_nControlPointNumber; // 0x160
+	// MPropertyFriendlyName "scale CP (distance/speed/local speed)"
+	// MDefaultString
+	int32_t m_nScaleCP; // 0x164
 	// MPropertyFriendlyName "speed min"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMin; // 0x790
+	float m_fSpeedMin; // 0x168
 	// MPropertyFriendlyName "speed max"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMax; // 0x878
+	float m_fSpeedMax; // 0x16c
 	// MPropertyFriendlyName "speed random exponent"
 	// MDefaultString
-	float m_fSpeedRandExp; // 0x960
+	float m_fSpeedRandExp; // 0x170
 	// MPropertyFriendlyName "bias in local system"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x964
+	bool m_bLocalCoords; // 0x174
 	// MPropertyFriendlyName "randomly distribute to highest supplied control point"
 	// MDefaultString
 	// MParticleMaxVersion
-	bool m_bUseHighestEndCP; // 0x966
+	bool m_bUseHighestEndCP; // 0x176
 	// MPropertyFriendlyName "randomly distribution growth time"
 	// MDefaultString
-	float m_flEndCPGrowthTime; // 0x968
+	float m_flEndCPGrowthTime; // 0x178
 	// MPropertyFriendlyName "speed in local coordinate system min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x970
+	Vector m_LocalCoordinateSystemSpeedMin; // 0x17c
 	// MPropertyFriendlyName "speed in local coordinate system max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0xda0
+	Vector m_LocalCoordinateSystemSpeedMax; // 0x188
 	// MPropertyFriendlyName "Output vector"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x11d0
-	// MPropertyFriendlyName "Velocity vector"
-	// MDefaultString
-	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldVelocity; // 0x11d4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x194
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_INIT_CreateWithinBox : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecMin; // 0x180
+	Vector m_vecMin; // 0x140
 	// MPropertyFriendlyName "max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecMax; // 0x18c
+	Vector m_vecMax; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x19c
+	bool m_bLocalSpace; // 0x15c
 	// MPropertyFriendlyName "scale CP (.x= distance)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x1a0
+	int32_t m_nScaleCP; // 0x160
 };
 
 // Aligment: 10
-// Size: 1792
+// Size: 1344
 class C_INIT_CreateOnGrid : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "X Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nXCount; // 0x180
+	CParticleCollectionFloatInput m_nXCount; // 0x140
 	// MPropertyFriendlyName "Y Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nYCount; // 0x268
+	CParticleCollectionFloatInput m_nYCount; // 0x1e8
 	// MPropertyFriendlyName "Z Dimension Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nZCount; // 0x350
+	CParticleCollectionFloatInput m_nZCount; // 0x290
 	// MPropertyFriendlyName "X Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nXSpacing; // 0x438
+	CParticleCollectionFloatInput m_nXSpacing; // 0x338
 	// MPropertyFriendlyName "Y Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nYSpacing; // 0x520
+	CParticleCollectionFloatInput m_nYSpacing; // 0x3e0
 	// MPropertyFriendlyName "Z Dimension Spacing"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nZSpacing; // 0x608
+	CParticleCollectionFloatInput m_nZSpacing; // 0x488
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x6f0
+	int32_t m_nControlPointNumber; // 0x530
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x6f4
+	bool m_bLocalSpace; // 0x534
 	// MPropertyFriendlyName "center around control point"
 	// MDefaultString
-	bool m_bCenter; // 0x6f5
+	bool m_bCenter; // 0x535
 	// MPropertyFriendlyName "hollow"
 	// MDefaultString
-	bool m_bHollow; // 0x6f6
+	bool m_bHollow; // 0x536
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_PositionOffset : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_OffsetMin; // 0x180
+	Vector m_OffsetMin; // 0x140
 	// MPropertyFriendlyName "offset max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_OffsetMax; // 0x18c
+	Vector m_OffsetMax; // 0x14c
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x198
+	int32_t m_nControlPointNumber; // 0x158
 	// MPropertyFriendlyName "offset in local space 0/1"
 	// MDefaultString
-	bool m_bLocalCoords; // 0x19c
+	bool m_bLocalCoords; // 0x15c
 	// MPropertyFriendlyName "offset proportional to radius 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x19d
+	bool m_bProportional; // 0x15d
 };
 
-// Aligment: 11
-// Size: 784
+// Aligment: 3
+// Size: 336
+class C_INIT_PositionOffsetToCP : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "creation control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumberStart; // 0x140
+	// MPropertyFriendlyName "offset control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumberEnd; // 0x144
+	// MPropertyFriendlyName "offset in local space 0/1"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x148
+};
+
+// Aligment: 10
+// Size: 480
 class C_INIT_PositionPlaceOnGround : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x180
+	float m_flOffset; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x268
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x26c
+	char[128] m_CollisionGroupName; // 0x148
 	// MPropertyFriendlyName "kill on no collision"
 	// MDefaultString
-	bool m_bKill; // 0x2f0
+	bool m_bKill; // 0x1cc
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x2f1
+	bool m_bIncludeWater; // 0x1cd
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x2f2
+	bool m_bSetNormal; // 0x1ce
 	// MPropertyFriendlyName "set Previous XYZ only"
 	// MDefaultString
-	bool m_bSetPXYZOnly; // 0x2f3
+	bool m_bSetPXYZOnly; // 0x1cf
 	// MPropertyFriendlyName "Trace along particle normal"
 	// MDefaultString
-	bool m_bTraceAlongNormal; // 0x2f4
+	bool m_bTraceAlongNormal; // 0x1d0
 	// MPropertyFriendlyName "offset final position by this fraction of the particle radius"
 	// MDefaultString
-	float m_flOffsetByRadiusFactor; // 0x2f8
-	// MPropertyFriendlyName "preserve initial Z-offset relative to cp"
-	// MDefaultString
-	int32_t m_nPreserveOffsetCP; // 0x2fc
+	float m_flOffsetByRadiusFactor; // 0x1d4
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x300
+	int32_t m_nIgnoreCP; // 0x1d8
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_INIT_VelocityFromNormal : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	float m_fSpeedMin; // 0x180
+	float m_fSpeedMin; // 0x140
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	float m_fSpeedMax; // 0x184
+	float m_fSpeedMax; // 0x144
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x188
+	bool m_bIgnoreDt; // 0x148
 };
 
 // Aligment: 6
-// Size: 3008
+// Size: 2304
 class C_INIT_VelocityRandom : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMin; // 0x188
+	CPerParticleFloatInput m_fSpeedMin; // 0x148
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	CPerParticleFloatInput m_fSpeedMax; // 0x270
+	CPerParticleFloatInput m_fSpeedMax; // 0x1f0
 	// MPropertyFriendlyName "speed in local coordinate system min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x358
+	CPerParticleVecInput m_LocalCoordinateSystemSpeedMin; // 0x298
 	// MPropertyFriendlyName "speed in local coordinate system max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x788
+	CPerParticleVecInput m_LocalCoordinateSystemSpeedMax; // 0x5c8
 	// MPropertyFriendlyName "Ignore delta time (RenderTrails)"
 	// MDefaultString
-	bool m_bIgnoreDT; // 0xbb8
+	bool m_bIgnoreDT; // 0x8f8
 };
 
 // Aligment: 11
-// Size: 4336
+// Size: 3312
 class C_INIT_InitialVelocityNoise : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "absolute value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecAbsVal; // 0x180
+	Vector m_vecAbsVal; // 0x140
 	// MPropertyFriendlyName "invert abs value"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecAbsValInv; // 0x18c
+	Vector m_vecAbsValInv; // 0x14c
 	// MPropertyFriendlyName "spatial coordinate offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecOffsetLoc; // 0x198
+	CPerParticleVecInput m_vecOffsetLoc; // 0x158
 	// MPropertyFriendlyName "time coordinate offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x5c8
+	CPerParticleFloatInput m_flOffset; // 0x488
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CPerParticleVecInput m_vecOutputMin; // 0x6b0
+	CPerParticleVecInput m_vecOutputMin; // 0x530
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CPerParticleVecInput m_vecOutputMax; // 0xae0
+	CPerParticleVecInput m_vecOutputMax; // 0x860
 	// MPropertyFriendlyName "time noise coordinate scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flNoiseScale; // 0xf10
+	CPerParticleFloatInput m_flNoiseScale; // 0xb90
 	// MPropertyFriendlyName "spatial noise coordinate scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flNoiseScaleLoc; // 0xff8
+	CPerParticleFloatInput m_flNoiseScaleLoc; // 0xc38
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x10e0
+	int32_t m_nControlPointNumber; // 0xce0
 	// MPropertyFriendlyName "apply velocity in local space (0/1)"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x10e4
+	bool m_bLocalSpace; // 0xce4
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x10e5
+	bool m_bIgnoreDt; // 0xce5
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_INIT_InitialVelocityFromHitbox : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "velocity minimum"
 	// MDefaultString
-	float m_flVelocityMin; // 0x180
+	float m_flVelocityMin; // 0x140
 	// MPropertyFriendlyName "velocity maximum"
 	// MDefaultString
-	float m_flVelocityMax; // 0x184
+	float m_flVelocityMax; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x18c
+	char[128] m_HitboxSetName; // 0x14c
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x20c
+	bool m_bUseBones; // 0x1cc
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_VelocityRadialRandom : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "random speed min"
 	// MDefaultString
-	float m_fSpeedMin; // 0x184
+	float m_fSpeedMin; // 0x144
 	// MPropertyFriendlyName "random speed max"
 	// MDefaultString
-	float m_fSpeedMax; // 0x188
+	float m_fSpeedMax; // 0x148
 	// MPropertyFriendlyName "local space scale"
 	// MDefaultString
-	Vector m_vecLocalCoordinateSystemSpeedScale; // 0x18c
+	Vector m_vecLocalCoordinateSystemSpeedScale; // 0x14c
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDelta; // 0x199
+	bool m_bIgnoreDelta; // 0x159
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
+class C_INIT_RandomLifeTime : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "lifetime min"
+	// MDefaultString
+	// MPropertyAttributeRange "0 20"
+	float m_fLifetimeMin; // 0x140
+	// MPropertyFriendlyName "lifetime max"
+	// MDefaultString
+	// MPropertyAttributeRange "0 20"
+	float m_fLifetimeMax; // 0x144
+	// MPropertyFriendlyName "lifetime random exponent"
+	// MDefaultString
+	float m_fLifetimeRandExponent; // 0x148
+};
+
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "exponent"
+	// MDefaultString
+	float m_flExponent; // 0x148
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+};
+
+// Aligment: 3
+// Size: 352
+class C_INIT_RandomVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecMax; // 0x14c
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x158
+};
+
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomVectorComponent : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
+	// MPropertyFriendlyName "component 0/1/2 X/Y/Z"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	// MVectorIsSometimesCoordinate
+	int32_t m_nComponent; // 0x14c
+};
+
+// Aligment: 5
+// Size: 368
+class C_INIT_AddVectorToVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "component scale factor"
+	// MDefaultString
+	Vector m_vecScale; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x150
+	// MPropertyFriendlyName "random offset min"
+	// MDefaultString
+	Vector m_vOffsetMin; // 0x154
+	// MPropertyFriendlyName "random offset max"
+	// MDefaultString
+	Vector m_vOffsetMax; // 0x160
+};
+
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomAlphaWindowThreshold : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "min"
+	// MDefaultString
+	float m_flMin; // 0x140
+	// MPropertyFriendlyName "max"
+	// MDefaultString
+	float m_flMax; // 0x144
+	// MPropertyFriendlyName "exponent"
+	// MDefaultString
+	float m_flExponent; // 0x148
+};
+
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomRadius : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "radius min"
+	// MDefaultString
+	// MPropertyAttributeRange "biased 0 500"
+	float m_flRadiusMin; // 0x140
+	// MPropertyFriendlyName "radius max"
+	// MDefaultString
+	// MPropertyAttributeRange "biased 0 500"
+	float m_flRadiusMax; // 0x144
+	// MPropertyFriendlyName "radius random exponent"
+	// MDefaultString
+	// MPropertyAttributeRange "-2 2"
+	float m_flRadiusRandExponent; // 0x148
+};
+
+// Aligment: 4
+// Size: 352
+class C_INIT_RandomAlpha : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "alpha field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_alpha"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "alpha min"
+	// MDefaultString
+	// MPropertyAttributeRange "0 255"
+	int32_t m_nAlphaMin; // 0x144
+	// MPropertyFriendlyName "alpha max"
+	// MDefaultString
+	// MPropertyAttributeRange "0 255"
+	int32_t m_nAlphaMax; // 0x148
+	// MPropertyFriendlyName "alpha random exponent"
+	// MDefaultString
+	float m_flAlphaRandExponent; // 0x154
+};
+
+// Aligment: 6
+// Size: 368
+class CGeneralRandomRotation : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "yaw offset min"
+	// MDefaultString
+	float m_flDegreesMin; // 0x140
+	// MPropertyFriendlyName "yaw offset max"
+	// MDefaultString
+	float m_flDegreesMax; // 0x144
+	// MPropertyFriendlyName "yaw initial"
+	// MDefaultString
+	float m_flDegrees; // 0x148
+	// MPropertyFriendlyName "rotation field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_rotation"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
+	// MPropertyFriendlyName "yaw random exponent"
+	// MDefaultString
+	float m_flRotationRandExponent; // 0x15c
+	// MPropertyFriendlyName "randomly flip direction"
+	// MDefaultString
+	bool m_bRandomlyFlipDirection; // 0x160
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomRotation : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 336
 class C_INIT_Orient2DRelToCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x188
+	float m_flRotOffset; // 0x148
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomRotationSpeed : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomYaw : public CGeneralRandomRotation, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 10
+// Size: 384
+class C_INIT_RandomColor : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "color1"
+	// MDefaultString
+	Color m_ColorMin; // 0x158
+	// MPropertyFriendlyName "color2"
+	// MDefaultString
+	Color m_ColorMax; // 0x15c
+	// MPropertyFriendlyName "tint clamp min"
+	// MDefaultString
+	Color m_TintMin; // 0x160
+	// MPropertyFriendlyName "tint clamp max"
+	// MDefaultString
+	Color m_TintMax; // 0x164
+	// MPropertyFriendlyName "tint perc"
+	// MDefaultString
+	float m_flTintPerc; // 0x168
+	// MPropertyFriendlyName "tint update movement threshold"
+	// MDefaultString
+	float m_flUpdateThreshold; // 0x16c
+	// MPropertyFriendlyName "tint control point"
+	// MDefaultString
+	int32_t m_nTintCP; // 0x170
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x174
+	// MPropertyFriendlyName "tint blend mode"
+	// MDefaultString
+	ParticleColorBlendMode_t m_nTintBlendMode; // 0x178
+	// MPropertyFriendlyName "light amplification amount"
+	// MDefaultString
+	float m_flLightAmplification; // 0x17c
+};
+
+// Aligment: 7
+// Size: 384
+class C_INIT_ColorLitPerParticle : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "color1"
+	// MDefaultString
+	Color m_ColorMin; // 0x158
+	// MPropertyFriendlyName "color2"
+	// MDefaultString
+	Color m_ColorMax; // 0x15c
+	// MPropertyFriendlyName "tint clamp min"
+	// MDefaultString
+	Color m_TintMin; // 0x160
+	// MPropertyFriendlyName "tint clamp max"
+	// MDefaultString
+	Color m_TintMax; // 0x164
+	// MPropertyFriendlyName "light bias"
+	// MDefaultString
+	float m_flTintPerc; // 0x168
+	// MPropertyFriendlyName "tint blend mode"
+	// MDefaultString
+	ParticleColorBlendMode_t m_nTintBlendMode; // 0x16c
+	// MPropertyFriendlyName "light amplification amount"
+	// MDefaultString
+	float m_flLightAmplification; // 0x170
+};
+
+// Aligment: 3
+// Size: 336
+class C_INIT_RandomTrailLength : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "length min"
+	// MDefaultString
+	float m_flMinLength; // 0x140
+	// MPropertyFriendlyName "length max"
+	// MDefaultString
+	float m_flMaxLength; // 0x144
+	// MPropertyFriendlyName "length random exponent"
+	// MDefaultString
+	float m_flLengthRandExponent; // 0x148
+};
+
+// Aligment: 4
+// Size: 336
+class C_INIT_RandomSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "sequence min"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 1 )"
+	int32_t m_nSequenceMin; // 0x140
+	// MPropertyFriendlyName "sequence max"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 1 )"
+	int32_t m_nSequenceMax; // 0x144
+	// MPropertyFriendlyName "shuffle"
+	// MDefaultString
+	bool m_bShuffle; // 0x148
+	// MPropertyFriendlyName "linear"
+	// MDefaultString
+	bool m_bLinear; // 0x149
+};
+
+// Aligment: 4
+// Size: 352
+class C_INIT_SequenceFromCP : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "kill unused"
+	// MDefaultString
+	bool m_bKillUnused; // 0x140
+	// MPropertyFriendlyName "offset propotional to radius"
+	// MDefaultString
+	bool m_bRadiusScale; // 0x141
+	// MPropertyFriendlyName "control point"
+	// MDefaultString
+	int32_t m_nCP; // 0x144
+	// MPropertyFriendlyName "per particle spatial offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffset; // 0x148
+};
+
+// Aligment: 2
+// Size: 592
+class C_INIT_RandomModelSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "activity"
+	// MDefaultString
+	char[256] m_ActivityName; // 0x140
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x240
+};
+
+// Aligment: 10
+// Size: 384
+class C_INIT_PositionWarp : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "warp min"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecWarpMin; // 0x140
+	// MPropertyFriendlyName "warp max"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecWarpMax; // 0x14c
+	// MPropertyFriendlyName "warp scale control point number"
+	// MDefaultString
+	int32_t m_nScaleControlPointNumber; // 0x158
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x15c
+	// MPropertyFriendlyName "radius scale component"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nRadiusComponent; // 0x160
+	// MPropertyFriendlyName "warp transition time (treats min/max as start/end sizes)"
+	// MDefaultString
+	float m_flWarpTime; // 0x164
+	// MPropertyFriendlyName "warp transition start time"
+	// MDefaultString
+	float m_flWarpStartTime; // 0x168
+	// MPropertyFriendlyName "previous position sacale"
+	// MDefaultString
+	float m_flPrevPosScale; // 0x16c
+	// MPropertyFriendlyName "reverse warp (0/1)"
+	// MDefaultString
+	bool m_bInvertWarp; // 0x170
+	// MPropertyFriendlyName "use particle count instead of time"
+	// MDefaultString
+	bool m_bUseCount; // 0x171
 };
 
 // Aligment: 6
-// Size: 656
+// Size: 528
 class C_INIT_PositionWarpScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "warp min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecWarpMin; // 0x180
+	Vector m_vecWarpMin; // 0x140
 	// MPropertyFriendlyName "warp max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecWarpMax; // 0x18c
+	Vector m_vecWarpMax; // 0x14c
 	// MPropertyFriendlyName "warp amount"
-	CPerParticleFloatInput m_InputValue; // 0x198
+	CPerParticleFloatInput m_InputValue; // 0x158
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x280
+	float m_flPrevPosScale; // 0x200
 	// MPropertyFriendlyName "warp scale control point number"
 	// MDefaultString
-	int32_t m_nScaleControlPointNumber; // 0x284
+	int32_t m_nScaleControlPointNumber; // 0x204
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x288
+	int32_t m_nControlPointNumber; // 0x208
+};
+
+// Aligment: 10
+// Size: 368
+class C_INIT_CreationNoise : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x144
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x145
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x148
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x14c
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x150
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x154
+	// MPropertyFriendlyName "spatial noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScaleLoc; // 0x158
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x15c
+	// MPropertyFriendlyName "world time noise coordinate scale"
+	// MDefaultString
+	float m_flWorldTimeScale; // 0x168
+};
+
+// Aligment: 5
+// Size: 432
+class C_INIT_CreateAlongPath : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "maximum distance"
+	// MDefaultString
+	float m_fMaxDistance; // 0x140
+	CPathParameters m_PathParams; // 0x150
+	// MPropertyFriendlyName "randomly select sequential CP pairs between start and end points"
+	// MDefaultString
+	bool m_bUseRandomCPs; // 0x190
+	// MPropertyFriendlyName "Offset from control point for path end"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vEndOffset; // 0x194
+	// MPropertyFriendlyName "save offset"
+	// MDefaultString
+	bool m_bSaveOffset; // 0x1a0
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 352
 class C_INIT_MoveBetweenPoints : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Min Speed"
+	// MPropertyFriendlyName "minimum speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flSpeedMin; // 0x180
-	// MPropertyFriendlyName "Max Speed"
+	float m_flSpeedMin; // 0x140
+	// MPropertyFriendlyName "maximum speed"
 	// MDefaultString
-	CPerParticleFloatInput m_flSpeedMax; // 0x268
-	// MPropertyFriendlyName "Spread"
+	float m_flSpeedMax; // 0x144
+	// MPropertyFriendlyName "end spread"
 	// MDefaultString
-	float m_flEndSpread; // 0x350
-	// MPropertyFriendlyName "Start Offset"
+	float m_flEndSpread; // 0x148
+	// MPropertyFriendlyName "start offset"
 	// MDefaultString
-	float m_flStartOffset; // 0x354
-	// MPropertyFriendlyName "End Offset"
+	float m_flStartOffset; // 0x14c
+	// MPropertyFriendlyName "end offset"
 	// MDefaultString
-	float m_flEndOffset; // 0x358
-	// MPropertyFriendlyName "Target Control Point"
+	float m_flEndOffset; // 0x150
+	// MPropertyFriendlyName "end control point"
 	// MDefaultString
-	int32_t m_nEndControlPointNumber; // 0x35c
-	// MPropertyFriendlyName "Bias Lifetime by Trail Length"
+	int32_t m_nEndControlPointNumber; // 0x154
+	// MPropertyFriendlyName "bias lifetime by trail length"
 	// MDefaultString
-	bool m_bTrailBias; // 0x360
+	bool m_bTrailBias; // 0x158
+};
+
+// Aligment: 11
+// Size: 368
+class C_INIT_RemapScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x148
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x14c
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x150
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x154
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x158
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x15c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x160
+	// MPropertyFriendlyName "only active within specified input range"
+	// MDefaultString
+	bool m_bActiveRange; // 0x164
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x168
+};
+
+// Aligment: 12
+// Size: 368
+class C_INIT_RemapParticleCountToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	int32_t m_nInputMin; // 0x144
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	int32_t m_nInputMax; // 0x148
+	// MPropertyFriendlyName "input scale control point"
+	// MDefaultString
+	int32_t m_nScaleControlPoint; // 0x14c
+	// MPropertyFriendlyName "input scale control point field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nScaleControlPointField; // 0x150
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x154
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x158
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
+	// MPropertyFriendlyName "only active within specified input range"
+	// MDefaultString
+	bool m_bActiveRange; // 0x160
+	// MPropertyFriendlyName "invert input from total particle count"
+	// MDefaultString
+	bool m_bInvert; // 0x161
+	// MPropertyFriendlyName "wrap input"
+	// MDefaultString
+	bool m_bWrap; // 0x162
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x164
+};
+
+// Aligment: 4
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelElementScalar : public C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x170
+	// MPropertyFriendlyName "output min name"
+	CUtlString m_outputMinName; // 0x178
+	// MPropertyFriendlyName "output max name"
+	CUtlString m_outputMaxName; // 0x180
+	// MPropertyFriendlyName "model from renderer"
+	// MDefaultString
+	bool m_bModelFromRenderer; // 0x188
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelSequenceScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelBodyPartScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapParticleCountToNamedModelMeshGroupScalar : public C_INIT_RemapParticleCountToNamedModelElementScalar, C_INIT_RemapParticleCountToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_INIT_InheritVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x184
+	float m_flVelocityScale; // 0x144
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_VelocityFromCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "comparison control point number"
 	// MDefaultString
-	int32_t m_nControlPointCompare; // 0x184
+	int32_t m_nControlPointCompare; // 0x144
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nControlPointLocal; // 0x188
+	int32_t m_nControlPointLocal; // 0x148
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x18c
+	float m_flVelocityScale; // 0x14c
 	// MPropertyFriendlyName "direction only"
 	// MDefaultString
-	bool m_bDirectionOnly; // 0x190
+	bool m_bDirectionOnly; // 0x150
+};
+
+// Aligment: 8
+// Size: 368
+class C_INIT_AgeNoise : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x140
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x141
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x144
+	// MPropertyFriendlyName "start age minimum"
+	// MDefaultString
+	float m_flAgeMin; // 0x148
+	// MPropertyFriendlyName "start age maximum"
+	// MDefaultString
+	float m_flAgeMax; // 0x14c
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x150
+	// MPropertyFriendlyName "spatial noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScaleLoc; // 0x154
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x158
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_SequenceLifeTime : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "frames per second"
 	// MDefaultString
-	float m_flFramerate; // 0x180
+	float m_flFramerate; // 0x140
+};
+
+// Aligment: 12
+// Size: 400
+class C_INIT_RemapScalarToVector : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_vector"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x148
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x14c
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecOutputMin; // 0x150
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	// MVectorIsSometimesCoordinate
+	Vector m_vecOutputMax; // 0x15c
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x168
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x16c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x170
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x174
+	// MPropertyFriendlyName "use local system"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x178
+	// MPropertyFriendlyName "remap bias"
+	// MDefaultString
+	float m_flRemapBias; // 0x17c
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_INIT_OffsetVectorToVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "output offset minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x188
+	Vector m_vecOutputMin; // 0x148
 	// MPropertyFriendlyName "output offset maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x194
+	Vector m_vecOutputMax; // 0x154
 };
 
 // Aligment: 6
-// Size: 480
+// Size: 416
 class C_INIT_CreateSequentialPathV2 : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Max Distance From Path"
+	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x180
-	// MPropertyFriendlyName "Paticles Along Path"
+	float m_fMaxDistance; // 0x140
+	// MPropertyFriendlyName "particles to map from start to end"
 	// MDefaultString
-	float m_flNumToAssign; // 0x184
-	// MPropertyFriendlyName "Loop"
+	float m_flNumToAssign; // 0x144
+	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
 	// MDefaultString
-	bool m_bLoop; // 0x188
+	bool m_bLoop; // 0x148
 	// MPropertyFriendlyName "use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x189
+	bool m_bCPPairs; // 0x149
 	// MPropertyFriendlyName "save offset"
 	// MDefaultString
-	bool m_bSaveOffset; // 0x18a
-	CPathParameters m_PathParams; // 0x190
+	bool m_bSaveOffset; // 0x14a
+	CPathParameters m_PathParams; // 0x150
+};
+
+// Aligment: 6
+// Size: 400
+class C_INIT_CreateSequentialPath : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "maximum distance"
+	// MDefaultString
+	float m_fMaxDistance; // 0x140
+	// MPropertyFriendlyName "particles to map from start to end"
+	// MDefaultString
+	float m_flNumToAssign; // 0x144
+	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
+	// MDefaultString
+	bool m_bLoop; // 0x148
+	// MPropertyFriendlyName "use sequential CP pairs between start and end point"
+	// MDefaultString
+	bool m_bCPPairs; // 0x149
+	// MPropertyFriendlyName "save offset"
+	// MDefaultString
+	bool m_bSaveOffset; // 0x14a
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 12
-// Size: 560
+// Size: 496
 class C_INIT_InitialRepulsionVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x180
+	char[128] m_CollisionGroupName; // 0x140
 	// MPropertyFriendlyName "minimum velocity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOutputMin; // 0x200
+	Vector m_vecOutputMin; // 0x1c0
 	// MPropertyFriendlyName "maximum velocity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOutputMax; // 0x20c
+	Vector m_vecOutputMax; // 0x1cc
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x218
+	int32_t m_nControlPointNumber; // 0x1d8
 	// MPropertyFriendlyName "per particle world collision tests"
 	// MDefaultString
-	bool m_bPerParticle; // 0x21c
+	bool m_bPerParticle; // 0x1dc
 	// MPropertyFriendlyName "offset instead of accelerate"
 	// MDefaultString
-	bool m_bTranslate; // 0x21d
+	bool m_bTranslate; // 0x1dd
 	// MPropertyFriendlyName "offset proportional to radius 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x21e
+	bool m_bProportional; // 0x1de
 	// MPropertyFriendlyName "trace length"
 	// MDefaultString
-	float m_flTraceLength; // 0x220
+	float m_flTraceLength; // 0x1e0
 	// MPropertyFriendlyName "use radius for per particle trace length"
 	// MDefaultString
-	bool m_bPerParticleTR; // 0x224
+	bool m_bPerParticleTR; // 0x1e4
 	// MPropertyFriendlyName "inherit from parent"
 	// MDefaultString
-	bool m_bInherit; // 0x225
+	bool m_bInherit; // 0x1e5
 	// MPropertyFriendlyName "control points to broadcast to children (n + 1)"
 	// MDefaultString
-	int32_t m_nChildCP; // 0x228
+	int32_t m_nChildCP; // 0x1e8
 	// MPropertyFriendlyName "child group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x22c
+	int32_t m_nChildGroupID; // 0x1ec
+};
+
+// Aligment: 1
+// Size: 336
+class C_INIT_RandomYawFlip : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "flip percentage"
+	// MDefaultString
+	float m_flPercent; // 0x140
+};
+
+// Aligment: 2
+// Size: 336
+class C_INIT_RandomSecondSequence : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "sequence min"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 2 )"
+	int32_t m_nSequenceMin; // 0x140
+	// MPropertyFriendlyName "sequence max"
+	// MDefaultString
+	// MPropertyAttributeEditor "SequencePicker( 2 )"
+	int32_t m_nSequenceMax; // 0x144
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_INIT_RemapCPtoScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x19c
+	float m_flStartTime; // 0x15c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1a0
+	float m_flEndTime; // 0x160
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a4
+	ParticleSetMethod_t m_nSetMethod; // 0x164
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x1a8
+	float m_flRemapBias; // 0x168
 };
 
 // Aligment: 13
-// Size: 480
+// Size: 416
 class C_INIT_RemapCPtoVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMin; // 0x188
+	Vector m_vInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMax; // 0x194
+	Vector m_vInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMin; // 0x1a0
+	Vector m_vOutputMin; // 0x160
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMax; // 0x1ac
+	Vector m_vOutputMax; // 0x16c
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x1b8
+	float m_flStartTime; // 0x178
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1bc
+	float m_flEndTime; // 0x17c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1c0
+	ParticleSetMethod_t m_nSetMethod; // 0x180
 	// MPropertyFriendlyName "offset position"
 	// MDefaultString
-	bool m_bOffset; // 0x1c4
+	bool m_bOffset; // 0x184
 	// MPropertyFriendlyName "accelerate position"
 	// MDefaultString
-	bool m_bAccelerate; // 0x1c5
+	bool m_bAccelerate; // 0x185
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x1c8
+	int32_t m_nLocalSpaceCP; // 0x188
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x1cc
+	float m_flRemapBias; // 0x18c
 };
 
 // Aligment: 9
-// Size: 432
+// Size: 368
 class C_INIT_ChaoticAttractor : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "pickover A parameter"
 	// MDefaultString
-	float m_flAParm; // 0x180
+	float m_flAParm; // 0x140
 	// MPropertyFriendlyName "pickover B parameter"
 	// MDefaultString
-	float m_flBParm; // 0x184
+	float m_flBParm; // 0x144
 	// MPropertyFriendlyName "pickover C parameter"
 	// MDefaultString
-	float m_flCParm; // 0x188
+	float m_flCParm; // 0x148
 	// MPropertyFriendlyName "pickover D parameter"
 	// MDefaultString
-	float m_flDParm; // 0x18c
+	float m_flDParm; // 0x14c
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x190
+	float m_flScale; // 0x150
 	// MPropertyFriendlyName "speed min"
 	// MDefaultString
-	float m_flSpeedMin; // 0x194
+	float m_flSpeedMin; // 0x154
 	// MPropertyFriendlyName "speed max"
 	// MDefaultString
-	float m_flSpeedMax; // 0x198
+	float m_flSpeedMax; // 0x158
 	// MPropertyFriendlyName "relative control point number"
 	// MDefaultString
-	int32_t m_nBaseCP; // 0x19c
+	int32_t m_nBaseCP; // 0x15c
 	// MPropertyFriendlyName "uniform speed"
 	// MDefaultString
-	bool m_bUniformSpeed; // 0x1a0
+	bool m_bUniformSpeed; // 0x160
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_CreateFromParentParticles : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "inherited velocity scale"
 	// MDefaultString
-	float m_flVelocityScale; // 0x180
+	float m_flVelocityScale; // 0x140
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	float m_flIncrement; // 0x184
+	float m_flIncrement; // 0x144
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x188
+	bool m_bRandomDistribution; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "sub frame interpolation"
 	// MDefaultString
-	bool m_bSubFrame; // 0x190
+	bool m_bSubFrame; // 0x150
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_InheritFromParentParticles : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x190
+	int32_t m_nRandomSeed; // 0x150
 };
 
 // Aligment: 4
-// Size: 640
+// Size: 512
 class C_INIT_CreateFromCPs : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x180
+	int32_t m_nIncrement; // 0x140
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nMinCP; // 0x184
+	int32_t m_nMinCP; // 0x144
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
 	// MParticleMinVersion
-	int32_t m_nMaxCP; // 0x188
+	int32_t m_nMaxCP; // 0x148
 	// MPropertyFriendlyName "dynamic control point count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nDynamicCPCount; // 0x190
+	CParticleCollectionFloatInput m_nDynamicCPCount; // 0x150
 };
 
 // Aligment: 14
-// Size: 576
+// Size: 512
 class C_INIT_DistanceToCPInit : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x198
+	bool m_bLOS; // 0x158
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x199
+	char[128] m_CollisionGroupName; // 0x159
 	// MPropertyFriendlyName "Maximum Trace Length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x21c
+	float m_flMaxTraceLength; // 0x1dc
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x220
+	float m_flLOSScale; // 0x1e0
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x224
+	ParticleSetMethod_t m_nSetMethod; // 0x1e4
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x228
+	bool m_bActiveRange; // 0x1e8
 	// MPropertyFriendlyName "distance component scale"
 	// MDefaultString
-	Vector m_vecDistanceScale; // 0x22c
+	Vector m_vecDistanceScale; // 0x1ec
 	// MPropertyFriendlyName "remap bias"
 	// MDefaultString
-	float m_flRemapBias; // 0x238
+	float m_flRemapBias; // 0x1f8
 };
 
 // Aligment: 7
-// Size: 560
+// Size: 496
 class C_INIT_LifespanFromVelocity : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "bias distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecComponentScale; // 0x180
+	Vector m_vecComponentScale; // 0x140
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x18c
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x190
+	float m_flMaxTraceLength; // 0x150
 	// MPropertyFriendlyName "trace recycle tolerance"
 	// MDefaultString
-	float m_flTraceTolerance; // 0x194
+	float m_flTraceTolerance; // 0x154
 	// MPropertyFriendlyName "maximum points to cache"
 	// MDefaultString
-	int32_t m_nMaxPlanes; // 0x198
+	int32_t m_nMaxPlanes; // 0x158
 	// MPropertyFriendlyName "trace collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a0
+	char[128] m_CollisionGroupName; // 0x160
 	// MPropertyFriendlyName "collide with water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x224
+	bool m_bIncludeWater; // 0x1e4
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_INIT_CreateFromPlaneCache : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "local offset min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetMin; // 0x180
+	Vector m_vecOffsetMin; // 0x140
 	// MPropertyFriendlyName "local offset max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetMax; // 0x18c
+	Vector m_vecOffsetMax; // 0x14c
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bUseNormal; // 0x199
+	bool m_bUseNormal; // 0x159
+};
+
+// Aligment: 5
+// Size: 464
+class C_INIT_ModelCull : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x140
+	// MPropertyFriendlyName "use only bounding box"
+	// MDefaultString
+	bool m_bBoundBox; // 0x144
+	// MPropertyFriendlyName "cull outside instead of inside"
+	// MDefaultString
+	bool m_bCullOutside; // 0x145
+	// MPropertyFriendlyName "use bones instead of hitboxes"
+	// MDefaultString
+	bool m_bUseBones; // 0x146
+	// MPropertyFriendlyName "hitbox set"
+	// MDefaultString
+	char[128] m_HitboxSetName; // 0x147
 };
 
 // Aligment: 6
-// Size: 544
+// Size: 480
 class C_INIT_RtEnvCull : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "test direction"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTestDir; // 0x180
+	Vector m_vecTestDir; // 0x140
 	// MPropertyFriendlyName "cull normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTestNormal; // 0x18c
+	Vector m_vecTestNormal; // 0x14c
 	// MPropertyFriendlyName "use velocity for test direction"
 	// MDefaultString
-	bool m_bUseVelocity; // 0x198
+	bool m_bUseVelocity; // 0x158
 	// MPropertyFriendlyName "cull on miss"
 	// MDefaultString
-	bool m_bCullOnMiss; // 0x199
+	bool m_bCullOnMiss; // 0x159
 	// MPropertyFriendlyName "velocity test adjust lifespan"
 	// MDefaultString
-	bool m_bLifeAdjust; // 0x19a
+	bool m_bLifeAdjust; // 0x15a
 	// MPropertyFriendlyName "ray trace environment name"
 	// MDefaultString
-	char[128] m_RtEnvName; // 0x19b
+	char[128] m_RtEnvName; // 0x15b
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_NormalAlignToCP : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
+};
+
+// Aligment: 5
+// Size: 352
+class C_INIT_NormalOffset : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "offset min"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_OffsetMin; // 0x140
+	// MPropertyFriendlyName "offset max"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_OffsetMax; // 0x14c
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x158
+	// MPropertyFriendlyName "offset in local space 0/1"
+	// MDefaultString
+	bool m_bLocalCoords; // 0x15c
+	// MPropertyFriendlyName "normalize output 0/1"
+	// MDefaultString
+	bool m_bNormalize; // 0x15d
+};
+
+// Aligment: 10
+// Size: 368
+class C_INIT_RemapSpeedToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
+	// MPropertyFriendlyName "control point number (ignored if per particle)"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x144
+	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
+	// MDefaultString
+	float m_flStartTime; // 0x148
+	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
+	// MDefaultString
+	float m_flEndTime; // 0x14c
+	// MPropertyFriendlyName "input minimum"
+	// MDefaultString
+	float m_flInputMin; // 0x150
+	// MPropertyFriendlyName "input maximum"
+	// MDefaultString
+	float m_flInputMax; // 0x154
+	// MPropertyFriendlyName "output minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x158
+	// MPropertyFriendlyName "output maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x15c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x160
+	// MPropertyFriendlyName "per particle"
+	// MDefaultString
+	bool m_bPerParticle; // 0x164
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_INIT_InitFromCPSnapshot : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x184
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x144
 	// MPropertyFriendlyName "field to write"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x188
+	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x148
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x18c
+	int32_t m_nLocalSpaceCP; // 0x14c
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x190
+	bool m_bRandom; // 0x150
 	// MPropertyFriendlyName "reverse order"
 	// MDefaultString
-	bool m_bReverse; // 0x191
+	bool m_bReverse; // 0x151
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x194
+	int32_t m_nRandomSeed; // 0x154
 	// MPropertyFriendlyName "local space angles"
 	// MDefaultString
-	bool m_bLocalSpaceAngles; // 0x198
+	bool m_bLocalSpaceAngles; // 0x158
 };
 
 // Aligment: 17
-// Size: 448
+// Size: 384
 class C_INIT_InitSkinnedPositionFromCPSnapshot : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x180
+	int32_t m_nSnapshotControlPointNumber; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x188
+	bool m_bRandom; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "prepare for rigid lock"
 	// MDefaultString
-	bool m_bRigid; // 0x190
+	bool m_bRigid; // 0x150
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x191
+	bool m_bSetNormal; // 0x151
 	// MPropertyFriendlyName "normal velocity ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDt; // 0x192
+	bool m_bIgnoreDt; // 0x152
 	// MPropertyFriendlyName "normal velocity min"
 	// MDefaultString
-	float m_flMinNormalVelocity; // 0x194
+	float m_flMinNormalVelocity; // 0x154
 	// MPropertyFriendlyName "normal velocity max"
 	// MDefaultString
-	float m_flMaxNormalVelocity; // 0x198
+	float m_flMaxNormalVelocity; // 0x158
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	float m_flIncrement; // 0x19c
+	float m_flIncrement; // 0x15c
 	// MPropertyFriendlyName "Full Loop Increment Amount"
 	// MDefaultString
-	int32_t m_nFullLoopIncrement; // 0x1a0
+	int32_t m_nFullLoopIncrement; // 0x160
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	int32_t m_nSnapShotStartPoint; // 0x1a4
+	int32_t m_nSnapShotStartPoint; // 0x164
 	// MPropertyFriendlyName "inherited bone velocity"
 	// MDefaultString
-	float m_flBoneVelocity; // 0x1a8
+	float m_flBoneVelocity; // 0x168
 	// MPropertyFriendlyName "max inherited bone velocity"
 	// MDefaultString
-	float m_flBoneVelocityMax; // 0x1ac
+	float m_flBoneVelocityMax; // 0x16c
 	// MPropertyFriendlyName "Set Color"
 	// MDefaultString
-	bool m_bCopyColor; // 0x1b0
+	bool m_bCopyColor; // 0x170
 	// MPropertyFriendlyName "Set Alpha"
 	// MDefaultString
-	bool m_bCopyAlpha; // 0x1b1
+	bool m_bCopyAlpha; // 0x171
 	// MPropertyFriendlyName "Set Radius"
 	// MDefaultString
-	bool m_bCopyRadius; // 0x1b2
+	bool m_bCopyRadius; // 0x172
 };
 
 // Aligment: 1
-// Size: 528
+// Size: 464
 class C_INIT_InitFromParentKilled : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "field to init"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToCopy; // 0x180
+	ParticleAttributeIndex_t m_nAttributeToCopy; // 0x140
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_INIT_RemapInitialDirectionToCPToVector : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x18c
+	float m_flOffsetRot; // 0x14c
 	// MPropertyFriendlyName "offset axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetAxis; // 0x190
+	Vector m_vecOffsetAxis; // 0x150
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x19c
+	bool m_bNormalize; // 0x15c
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_INIT_RemapInitialCPDirectionToRotation : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x188
+	float m_flOffsetRot; // 0x148
 	// MPropertyFriendlyName "control point axis"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
 	// MVectorIsSometimesCoordinate
-	int32_t m_nComponent; // 0x18c
+	int32_t m_nComponent; // 0x14c
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_INIT_RemapQAnglesToRotation : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_INIT_RemapCPOrientationToRotations : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "offset pitch/yaw/roll"
 	// MDefaultString
-	Vector m_vecRotation; // 0x184
+	Vector m_vecRotation; // 0x144
 	// MPropertyFriendlyName "Use Quaternians Internally"
 	// MDefaultString
-	bool m_bUseQuat; // 0x190
+	bool m_bUseQuat; // 0x150
 	// MPropertyFriendlyName "Write normal instead of rotation"
 	// MDefaultString
-	bool m_bWriteNormal; // 0x191
+	bool m_bWriteNormal; // 0x151
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_INIT_SetRigidAttachment : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "attribute to read from"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "attribute to cache to"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x18c
+	bool m_bLocalSpace; // 0x14c
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_INIT_RemapInitialVisibilityScalar : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
+};
+
+// Aligment: 1
+// Size: 336
+class C_INIT_RadiusFromCPObject : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "control point"
+	// MDefaultString
+	int32_t m_nControlPoint; // 0x140
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_INIT_InitialSequenceFromModel : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "current anim time output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
+};
+
+// Aligment: 6
+// Size: 336
+class C_INIT_GlobalScale : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "scale amount"
+	// MDefaultString
+	float m_flScale; // 0x140
+	// MPropertyFriendlyName "scale control point number"
+	// MDefaultString
+	int32_t m_nScaleControlPointNumber; // 0x144
+	// MPropertyFriendlyName "control point number"
+	// MDefaultString
+	int32_t m_nControlPointNumber; // 0x148
+	// MPropertyFriendlyName "scale radius"
+	// MDefaultString
+	bool m_bScaleRadius; // 0x14c
+	// MPropertyFriendlyName "scale position"
+	// MDefaultString
+	bool m_bScalePosition; // 0x14d
+	// MPropertyFriendlyName "scale velocity"
+	// MDefaultString
+	bool m_bScaleVelocity; // 0x14e
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_INIT_MakeShapes : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min size"
 	// MDefaultString
-	float m_flMinSize; // 0x180
+	float m_flMinSize; // 0x140
 	// MPropertyFriendlyName "max size"
 	// MDefaultString
-	float m_flMaxSize; // 0x184
+	float m_flMaxSize; // 0x144
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_INIT_PointList : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "point list"
-	CUtlVector< PointDefinition_t > m_pointList; // 0x188
+	CUtlVector< PointDefinition_t > m_pointList; // 0x148
 	// MPropertyFriendlyName "space points along path"
 	// MDefaultString
-	bool m_bPlaceAlongPath; // 0x1a0
+	bool m_bPlaceAlongPath; // 0x160
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x1a1
+	bool m_bClosedLoop; // 0x161
 	// MPropertyFriendlyName "Numer of points along path"
 	// MDefaultString
-	int32_t m_nNumPointsAlongPath; // 0x1a4
+	int32_t m_nNumPointsAlongPath; // 0x164
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_INIT_RandomNamedModelElement : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "names"
-	CUtlVector< CUtlString > m_names; // 0x188
+	CUtlVector< CUtlString > m_names; // 0x148
 	// MPropertyFriendlyName "shuffle"
 	// MDefaultString
-	bool m_bShuffle; // 0x1a0
+	bool m_bShuffle; // 0x160
 	// MPropertyFriendlyName "linear"
 	// MDefaultString
-	bool m_bLinear; // 0x1a1
+	bool m_bLinear; // 0x161
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1a2
+	bool m_bModelFromRenderer; // 0x162
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x164
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelSequence : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelBodyPart : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 368
+class C_INIT_RandomNamedModelMeshGroup : public C_INIT_RandomNamedModelElement, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 7
+// Size: 400
+class C_INIT_RemapNamedModelElementToScalar : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "model"
+	// MDefaultString
+	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
+	// MPropertyFriendlyName "names"
+	CUtlVector< CUtlString > m_names; // 0x148
+	// MPropertyFriendlyName "remap values for names"
+	CUtlVector< float32 > m_values; // 0x160
+	// MPropertyFriendlyName "input field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldInput; // 0x178
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x17c
+	// MPropertyFriendlyName "set value method"
+	// MDefaultString
+	ParticleSetMethod_t m_nSetMethod; // 0x180
+	// MPropertyFriendlyName "model from renderer"
+	// MDefaultString
+	bool m_bModelFromRenderer; // 0x184
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapNamedModelSequenceToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapNamedModelBodyPartToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 400
+class C_INIT_RemapNamedModelMeshGroupToScalar : public C_INIT_RemapNamedModelElementToScalar, CParticleFunctionInitializer, CParticleFunction
+{
+public:
+// <no members described>
+};
+
+// Aligment: 18
+// Size: 416
+class C_INIT_StatusEffect : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "D_DETAIL_2"
+	// MDefaultString
+	Detail2Combo_t m_nDetail2Combo; // 0x140
+	// MPropertyFriendlyName "$DETAIL2ROTATION"
+	// MDefaultString
+	float m_flDetail2Rotation; // 0x144
+	// MPropertyFriendlyName "$DETAIL2SCALE"
+	// MDefaultString
+	float m_flDetail2Scale; // 0x148
+	// MPropertyFriendlyName "$DETAIL2BLENDFACTOR"
+	// MDefaultString
+	float m_flDetail2BlendFactor; // 0x14c
+	// MPropertyFriendlyName "$COLORWARPINTENSITY"
+	// MDefaultString
+	float m_flColorWarpIntensity; // 0x150
+	// MPropertyFriendlyName "$DIFFUSEWARPBLENDTOFULL"
+	// MDefaultString
+	float m_flDiffuseWarpBlendToFull; // 0x154
+	// MPropertyFriendlyName "$ENVMAPINTENSITY"
+	// MDefaultString
+	float m_flEnvMapIntensity; // 0x158
+	// MPropertyFriendlyName "$AMBIENTSCALE"
+	// MDefaultString
+	float m_flAmbientScale; // 0x15c
+	// MPropertyFriendlyName "$SPECULARCOLOR"
+	// MDefaultString
+	Color m_specularColor; // 0x160
+	// MPropertyFriendlyName "$SPECULARSCALE"
+	// MDefaultString
+	float m_flSpecularScale; // 0x164
+	// MPropertyFriendlyName "$SPECULAREXPONENT"
+	// MDefaultString
+	float m_flSpecularExponent; // 0x168
+	// MPropertyFriendlyName "$SPECULAREXPONENTBLENDTOFULL"
+	// MDefaultString
+	float m_flSpecularExponentBlendToFull; // 0x16c
+	// MPropertyFriendlyName "$SPECULARBLENDTOFULL"
+	// MDefaultString
+	float m_flSpecularBlendToFull; // 0x170
+	// MPropertyFriendlyName "$RIMLIGHTCOLOR"
+	// MDefaultString
+	Color m_rimLightColor; // 0x174
+	// MPropertyFriendlyName "$RIMLIGHTSCALE"
+	// MDefaultString
+	float m_flRimLightScale; // 0x178
+	// MPropertyFriendlyName "$REFLECTIONSTINTBYBASEBLENDTONONE"
+	// MDefaultString
+	float m_flReflectionsTintByBaseBlendToNone; // 0x17c
+	// MPropertyFriendlyName "$METALNESSBLENDTOFULL"
+	// MDefaultString
+	float m_flMetalnessBlendToFull; // 0x180
+	// MPropertyFriendlyName "$SELFILLUMBLENDTOFULL"
+	// MDefaultString
+	float m_flSelfIllumBlendToFull; // 0x184
 };
 
 // Aligment: 5
-// Size: 1104
+// Size: 848
 class C_INIT_CreateParticleImpulse : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "radius"
-	CPerParticleFloatInput m_InputRadius; // 0x180
+	CPerParticleFloatInput m_InputRadius; // 0x140
 	// MPropertyFriendlyName "magnitude"
-	CPerParticleFloatInput m_InputMagnitude; // 0x268
+	CPerParticleFloatInput m_InputMagnitude; // 0x1e8
 	// MPropertyFriendlyName "force falloff function"
 	// MDefaultString
-	ParticleFalloffFunction_t m_nFalloffFunction; // 0x350
+	ParticleFalloffFunction_t m_nFalloffFunction; // 0x290
 	// MPropertyFriendlyName "exponential falloff exponent"
 	// MDefaultString
-	CPerParticleFloatInput m_InputFalloffExp; // 0x358
+	CPerParticleFloatInput m_InputFalloffExp; // 0x298
 	// MPropertyFriendlyName "impulse type"
 	// MDefaultString
-	ParticleImpulseType_t m_nImpulseType; // 0x440
+	ParticleImpulseType_t m_nImpulseType; // 0x340
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
+class C_INIT_QuantizeFloat : public CParticleFunctionInitializer, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "interval to snap to"
+	CPerParticleFloatInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "particlefield_scalar"
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
+};
+
+// Aligment: 2
+// Size: 496
 class C_INIT_InitFloatCollection : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionFloatInput m_InputValue; // 0x180
+	CParticleCollectionFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_INIT_InitFloat : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Value"
-	CPerParticleFloatInput m_InputValue; // 0x180
-	// MPropertyFriendlyName "Target"
+	// MPropertyFriendlyName "value"
+	CPerParticleFloatInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
-	// MPropertyFriendlyName "Set Method"
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
+	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 };
 
 // Aligment: 2
-// Size: 1472
+// Size: 1152
 class C_INIT_InitVecCollection : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionVecInput m_InputValue; // 0x180
+	CParticleCollectionVecInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
 };
 
 // Aligment: 3
-// Size: 1472
+// Size: 1152
 class C_INIT_InitVec : public CParticleFunctionInitializer, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Value"
-	CPerParticleVecInput m_InputValue; // 0x180
-	// MPropertyFriendlyName "Target"
+	// MPropertyFriendlyName "value"
+	CPerParticleVecInput m_InputValue; // 0x140
+	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
-	// MPropertyFriendlyName "Set Method"
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
+	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5b4
+	ParticleSetMethod_t m_nSetMethod; // 0x474
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_InstantaneousEmitter : public CParticleFunctionEmitter, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Emit Count"
+	// MPropertyFriendlyName "num to emit"
 	// MDefaultString
 	// MPropertyAttributeRange "1 1000"
-	CParticleCollectionFloatInput m_nParticlesToEmit; // 0x180
-	// MPropertyFriendlyName "Start Time Offset"
+	CParticleCollectionFloatInput m_nParticlesToEmit; // 0x140
+	// MPropertyFriendlyName "emission start time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flStartTime; // 0x268
+	CParticleCollectionFloatInput m_flStartTime; // 0x1e8
 	// MPropertyFriendlyName "emission scale from killed parent particles"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	float m_flInitFromKilledParentParticles; // 0x350
+	float m_flInitFromKilledParentParticles; // 0x290
 	// MPropertyFriendlyName "maximum emission per frame"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nMaxEmittedPerFrame; // 0x354
+	int32_t m_nMaxEmittedPerFrame; // 0x294
 	// MPropertyFriendlyName "control point with snapshot data"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nSnapshotControlPoint; // 0x358
+	int32_t m_nSnapshotControlPoint; // 0x298
 };
 
 // Aligment: 6
-// Size: 1104
+// Size: 848
 class C_OP_ContinuousEmitter : public CParticleFunctionEmitter, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Duration Limit"
+	// MPropertyFriendlyName "emission duration"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flEmissionDuration; // 0x180
-	// MPropertyFriendlyName "Start Time Offset"
+	CParticleCollectionFloatInput m_flEmissionDuration; // 0x140
+	// MPropertyFriendlyName "emission start time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flStartTime; // 0x268
-	// MPropertyFriendlyName "Emit Rate"
+	CParticleCollectionFloatInput m_flStartTime; // 0x1e8
+	// MPropertyFriendlyName "emission rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flEmitRate; // 0x350
+	CParticleCollectionFloatInput m_flEmitRate; // 0x290
 	// MPropertyFriendlyName "scale emission to used control points"
 	// MDefaultString
 	// MParticleMaxVersion
-	// MPropertyGroupName "Advanced"
-	float m_flEmissionScale; // 0x438
+	float m_flEmissionScale; // 0x338
 	// MPropertyFriendlyName "scale emission by parent particle count"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	float m_flScalePerParentParticle; // 0x43c
+	float m_flScalePerParentParticle; // 0x33c
 	// MPropertyFriendlyName "emit particles for killed parent particles"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	bool m_bInitFromKilledParentParticles; // 0x440
+	bool m_bInitFromKilledParentParticles; // 0x340
+};
+
+// Aligment: 15
+// Size: 384
+class C_OP_NoiseEmitter : public CParticleFunctionEmitter, CParticleFunction
+{
+public:
+	// MPropertyFriendlyName "emission duration"
+	// MDefaultString
+	float m_flEmissionDuration; // 0x140
+	// MPropertyFriendlyName "emission start time"
+	// MDefaultString
+	float m_flStartTime; // 0x144
+	// MPropertyFriendlyName "scale emission to used control points"
+	// MDefaultString
+	// MParticleMaxVersion
+	float m_flEmissionScale; // 0x148
+	// MPropertyFriendlyName "emission count scale control point"
+	// MDefaultString
+	int32_t m_nScaleControlPoint; // 0x14c
+	// MPropertyFriendlyName "emission count scale control point field"
+	// MDefaultString
+	// MPropertyAttributeChoiceName "vector_component"
+	int32_t m_nScaleControlPointField; // 0x150
+	// MPropertyFriendlyName "world noise scale control point"
+	// MDefaultString
+	int32_t m_nWorldNoisePoint; // 0x154
+	// MPropertyFriendlyName "absolute value"
+	// MDefaultString
+	bool m_bAbsVal; // 0x158
+	// MPropertyFriendlyName "invert absolute value"
+	// MDefaultString
+	bool m_bAbsValInv; // 0x159
+	// MPropertyFriendlyName "time coordinate offset"
+	// MDefaultString
+	float m_flOffset; // 0x15c
+	// MPropertyFriendlyName "emission minimum"
+	// MDefaultString
+	float m_flOutputMin; // 0x160
+	// MPropertyFriendlyName "emission maximum"
+	// MDefaultString
+	float m_flOutputMax; // 0x164
+	// MPropertyFriendlyName "time noise coordinate scale"
+	// MDefaultString
+	float m_flNoiseScale; // 0x168
+	// MPropertyFriendlyName "world spatial noise coordinate scale"
+	// MDefaultString
+	float m_flWorldNoiseScale; // 0x16c
+	// MPropertyFriendlyName "spatial coordinate offset"
+	// MDefaultString
+	// MVectorIsCoordinate
+	Vector m_vecOffsetLoc; // 0x170
+	// MPropertyFriendlyName "world time noise coordinate scale"
+	// MDefaultString
+	float m_flWorldTimeScale; // 0x17c
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_MaintainEmitter : public CParticleFunctionEmitter, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "Max Particles"
+	// MPropertyFriendlyName "count to maintain"
 	// MDefaultString
-	int32_t m_nParticlesToMaintain; // 0x180
-	// MPropertyFriendlyName "Emit Rate"
+	int32_t m_nParticlesToMaintain; // 0x140
+	// MPropertyFriendlyName "emission start time"
 	// MDefaultString
-	float m_flEmissionRate; // 0x184
-	// MPropertyFriendlyName "Start Time Offset"
-	// MDefaultString
-	float m_flStartTime; // 0x188
+	float m_flStartTime; // 0x144
 	// MPropertyFriendlyName "maintain count scale control point"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nScaleControlPoint; // 0x18c
+	int32_t m_nScaleControlPoint; // 0x148
 	// MPropertyFriendlyName "maintain count scale control point field"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nScaleControlPointField; // 0x190
+	int32_t m_nScaleControlPointField; // 0x14c
+	// MPropertyFriendlyName "emission rate"
+	// MDefaultString
+	float m_flEmissionRate; // 0x150
 	// MPropertyFriendlyName "control point with snapshot data"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	int32_t m_nSnapshotControlPoint; // 0x194
+	int32_t m_nSnapshotControlPoint; // 0x154
 	// MPropertyFriendlyName "group emission times for new particles"
 	// MDefaultString
-	// MPropertyGroupName "Advanced"
-	bool m_bEmitInstantaneously; // 0x198
+	bool m_bEmitInstantaneously; // 0x158
 };
 
 // Aligment: 2
-// Size: 416
+// Size: 352
 class C_OP_RandomForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_MinForce; // 0x180
+	Vector m_MinForce; // 0x140
 	// MPropertyFriendlyName "max force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_MaxForce; // 0x18c
+	Vector m_MaxForce; // 0x14c
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_CPVelocityForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "velocity scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flScale; // 0x188
+	CPerParticleFloatInput m_flScale; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_ParentVortices : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "amount of force"
 	// MDefaultString
-	float m_flForceScale; // 0x180
+	float m_flForceScale; // 0x140
 	// MPropertyFriendlyName "twist axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTwistAxis; // 0x184
+	Vector m_vecTwistAxis; // 0x144
 	// MPropertyFriendlyName "flip twist axis with yaw"
 	// MDefaultString
-	bool m_bFlipBasedOnYaw; // 0x190
+	bool m_bFlipBasedOnYaw; // 0x150
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_TwistAroundAxis : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "amount of force"
 	// MDefaultString
-	float m_fForceAmount; // 0x180
+	float m_fForceAmount; // 0x140
 	// MPropertyFriendlyName "twist axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_TwistAxis; // 0x184
+	Vector m_TwistAxis; // 0x144
 	// MPropertyFriendlyName "object local space axis 0/1"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x190
+	bool m_bLocalSpace; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x194
+	int32_t m_nControlPointNumber; // 0x154
 };
 
 // Aligment: 7
-// Size: 896
+// Size: 704
 class C_OP_AttractToControlPoint : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "component scale"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecComponentScale; // 0x180
+	Vector m_vecComponentScale; // 0x140
 	// MPropertyFriendlyName "amount of force (or Max Force)"
 	// MDefaultString
-	CPerParticleFloatInput m_fForceAmount; // 0x190
+	CPerParticleFloatInput m_fForceAmount; // 0x150
 	// MPropertyFriendlyName "falloff power"
 	// MDefaultString
-	float m_fFalloffPower; // 0x278
+	float m_fFalloffPower; // 0x1f8
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x27c
+	int32_t m_nControlPointNumber; // 0x1fc
 	// MPropertyFriendlyName "scale in local space"
 	// MDefaultString
-	bool m_bScaleLocal; // 0x280
+	bool m_bScaleLocal; // 0x200
 	// MPropertyFriendlyName "Min Pullforce"
 	// MDefaultString
-	CPerParticleFloatInput m_fForceAmountMin; // 0x288
+	CPerParticleFloatInput m_fForceAmountMin; // 0x208
 	// MPropertyFriendlyName "Apply Min Pullforce"
 	// MDefaultString
-	bool m_bApplyMinForce; // 0x370
+	bool m_bApplyMinForce; // 0x2b0
 };
 
 // Aligment: 7
-// Size: 448
+// Size: 384
 class C_OP_ForceBasedOnDistanceToPlane : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min distance from plane"
 	// MDefaultString
-	float m_flMinDist; // 0x180
+	float m_flMinDist; // 0x140
 	// MPropertyFriendlyName "force at min distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecForceAtMinDist; // 0x184
+	Vector m_vecForceAtMinDist; // 0x144
 	// MPropertyFriendlyName "max distance from plane"
 	// MDefaultString
-	float m_flMaxDist; // 0x190
+	float m_flMaxDist; // 0x150
 	// MPropertyFriendlyName "force at max distance"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecForceAtMaxDist; // 0x194
+	Vector m_vecForceAtMaxDist; // 0x154
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPlaneNormal; // 0x1a0
+	Vector m_vecPlaneNormal; // 0x160
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x1ac
+	int32_t m_nControlPointNumber; // 0x16c
 	// MPropertyFriendlyName "exponent"
 	// MDefaultString
-	float m_flExponent; // 0x1b0
+	float m_flExponent; // 0x170
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_TimeVaryingForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "time to start transition"
 	// MDefaultString
-	float m_flStartLerpTime; // 0x180
+	float m_flStartLerpTime; // 0x140
 	// MPropertyFriendlyName "starting force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_StartingForce; // 0x184
+	Vector m_StartingForce; // 0x144
 	// MPropertyFriendlyName "time to end transition"
 	// MDefaultString
-	float m_flEndLerpTime; // 0x190
+	float m_flEndLerpTime; // 0x150
 	// MPropertyFriendlyName "ending force"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_EndingForce; // 0x194
+	Vector m_EndingForce; // 0x154
 };
 
 // Aligment: 8
-// Size: 448
+// Size: 384
 class C_OP_TurbulenceForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "noise scale 0"
 	// MDefaultString
-	float m_flNoiseCoordScale0; // 0x180
+	float m_flNoiseCoordScale0; // 0x140
 	// MPropertyFriendlyName "noise scale 1"
 	// MDefaultString
-	float m_flNoiseCoordScale1; // 0x184
+	float m_flNoiseCoordScale1; // 0x144
 	// MPropertyFriendlyName "noise scale 2"
 	// MDefaultString
-	float m_flNoiseCoordScale2; // 0x188
+	float m_flNoiseCoordScale2; // 0x148
 	// MPropertyFriendlyName "noise scale 3"
 	// MDefaultString
-	float m_flNoiseCoordScale3; // 0x18c
+	float m_flNoiseCoordScale3; // 0x14c
 	// MPropertyFriendlyName "noise amount 0"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount0; // 0x190
+	Vector m_vecNoiseAmount0; // 0x150
 	// MPropertyFriendlyName "noise amount 1"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount1; // 0x19c
+	Vector m_vecNoiseAmount1; // 0x15c
 	// MPropertyFriendlyName "noise amount 2"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount2; // 0x1a8
+	Vector m_vecNoiseAmount2; // 0x168
 	// MPropertyFriendlyName "noise amount 3"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecNoiseAmount3; // 0x1b4
+	Vector m_vecNoiseAmount3; // 0x174
 };
 
-// Aligment: 6
-// Size: 4080
+// Aligment: 4
+// Size: 368
 class C_OP_CurlNoiseForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
-	// MPropertyFriendlyName "noise type"
+	// MPropertyFriendlyName "use curl"
 	// MDefaultString
-	ParticleDirectionNoiseType_t m_nNoiseType; // 0x180
+	bool m_useCurl; // 0x140
 	// MPropertyFriendlyName "noise frequency"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecNoiseFreq; // 0x188
+	Vector m_vecNoiseFreq; // 0x144
 	// MPropertyFriendlyName "noise amplitude"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecNoiseScale; // 0x5b8
+	Vector m_vecNoiseScale; // 0x150
 	// MPropertyFriendlyName "offset rate"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vecOffsetRate; // 0x9e8
-	// MPropertyFriendlyName "worley seed"
-	// MDefaultString
-	CPerParticleFloatInput m_flWorleySeed; // 0xe18
-	// MPropertyFriendlyName "worley jitter"
-	// MDefaultString
-	CPerParticleFloatInput m_flWorleyJitter; // 0xf00
+	Vector m_vecOffsetRate; // 0x15c
 };
 
 // Aligment: 3
-// Size: 1696
+// Size: 1312
 class C_OP_PerParticleForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flForceScale; // 0x180
+	CPerParticleFloatInput m_flForceScale; // 0x140
 	// MPropertyFriendlyName "force to apply"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CPerParticleVecInput m_vForce; // 0x268
+	CPerParticleVecInput m_vForce; // 0x1e8
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x518
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_WindForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force to apply"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vForce; // 0x180
+	Vector m_vForce; // 0x140
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ExternalWindForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to sample wind"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	Vector m_vecScale; // 0x184
+	Vector m_vecScale; // 0x144
 };
 
 // Aligment: 5
-// Size: 624
+// Size: 496
 class C_OP_ExternalGameImpulseForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "force scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flForceScale; // 0x180
+	CPerParticleFloatInput m_flForceScale; // 0x140
 	// MPropertyFriendlyName "rope shake"
 	// MDefaultString
-	bool m_bRopes; // 0x268
+	bool m_bRopes; // 0x1e8
 	// MPropertyFriendlyName "limit rope impulses to Z"
 	// MDefaultString
-	bool m_bRopesZOnly; // 0x269
+	bool m_bRopesZOnly; // 0x1e9
 	// MPropertyFriendlyName "explosions"
 	// MDefaultString
-	bool m_bExplosions; // 0x26a
+	bool m_bExplosions; // 0x1ea
 	// MPropertyFriendlyName "particle systems"
 	// MDefaultString
-	bool m_bParticles; // 0x26b
+	bool m_bParticles; // 0x1eb
 };
 
 // Aligment: 3
-// Size: 1472
+// Size: 1152
 class C_OP_LocalAccelerationForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "scale control point"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x184
+	int32_t m_nScaleCP; // 0x144
 	// MPropertyFriendlyName "local space acceleration"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecAccel; // 0x188
+	CParticleCollectionVecInput m_vecAccel; // 0x148
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_ScreenForceFromPlayerView : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Acceleration"
 	// MDefaultString
-	float m_flAccel; // 0x180
+	float m_flAccel; // 0x140
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_ExternalGenericForce : public CParticleFunctionForce, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "strength"
 	// MDefaultString
-	float m_flStrength; // 0x180
+	float m_flStrength; // 0x140
 	// MPropertyFriendlyName "curl strength"
 	// MDefaultString
-	float m_flCurlStrength; // 0x184
+	float m_flCurlStrength; // 0x144
 	// MPropertyFriendlyName "linear strength"
 	// MDefaultString
-	float m_flLinearStrength; // 0x188
+	float m_flLinearStrength; // 0x148
 	// MPropertyFriendlyName "radial strength"
 	// MDefaultString
-	float m_flRadialStrength; // 0x18c
+	float m_flRadialStrength; // 0x14c
 	// MPropertyFriendlyName "rotation strength"
 	// MDefaultString
-	float m_flRotationStrength; // 0x190
+	float m_flRotationStrength; // 0x150
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_BasicMovement : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "gravity"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_Gravity; // 0x180
+	Vector m_Gravity; // 0x140
 	// MPropertyFriendlyName "drag"
 	// MDefaultString
 	// MPropertyAttributeRange "-1 1"
-	float m_fDrag; // 0x18c
+	float m_fDrag; // 0x14c
 	// MPropertyFriendlyName "max constraint passes"
 	// MDefaultString
-	int32_t m_nMaxConstraintPasses; // 0x190
+	int32_t m_nMaxConstraintPasses; // 0x150
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_FadeAndKill : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade in time"
 	// MDefaultString
-	float m_flStartFadeInTime; // 0x180
+	float m_flStartFadeInTime; // 0x140
 	// MPropertyFriendlyName "end fade in time"
 	// MDefaultString
-	float m_flEndFadeInTime; // 0x184
+	float m_flEndFadeInTime; // 0x144
 	// MPropertyFriendlyName "start fade out time"
 	// MDefaultString
-	float m_flStartFadeOutTime; // 0x188
+	float m_flStartFadeOutTime; // 0x148
 	// MPropertyFriendlyName "end fade out time"
 	// MDefaultString
-	float m_flEndFadeOutTime; // 0x18c
+	float m_flEndFadeOutTime; // 0x14c
 	// MPropertyFriendlyName "start alpha"
 	// MDefaultString
-	float m_flStartAlpha; // 0x190
+	float m_flStartAlpha; // 0x150
 	// MPropertyFriendlyName "end alpha"
 	// MDefaultString
-	float m_flEndAlpha; // 0x194
+	float m_flEndAlpha; // 0x154
 	// MPropertyFriendlyName "force preserving particle order"
 	// MDefaultString
-	bool m_bForcePreserveParticleOrder; // 0x198
+	bool m_bForcePreserveParticleOrder; // 0x158
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_FadeAndKillForTracers : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade in time"
 	// MDefaultString
-	float m_flStartFadeInTime; // 0x180
+	float m_flStartFadeInTime; // 0x140
 	// MPropertyFriendlyName "end fade in time"
 	// MDefaultString
-	float m_flEndFadeInTime; // 0x184
+	float m_flEndFadeInTime; // 0x144
 	// MPropertyFriendlyName "start fade out time"
 	// MDefaultString
-	float m_flStartFadeOutTime; // 0x188
+	float m_flStartFadeOutTime; // 0x148
 	// MPropertyFriendlyName "end fade out time"
 	// MDefaultString
-	float m_flEndFadeOutTime; // 0x18c
+	float m_flEndFadeOutTime; // 0x14c
 	// MPropertyFriendlyName "start alpha"
 	// MDefaultString
-	float m_flStartAlpha; // 0x190
+	float m_flStartAlpha; // 0x150
 	// MPropertyFriendlyName "end alpha"
 	// MDefaultString
-	float m_flEndAlpha; // 0x194
+	float m_flEndAlpha; // 0x154
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_FadeIn : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "fade in time min"
 	// MDefaultString
-	float m_flFadeInTimeMin; // 0x180
+	float m_flFadeInTimeMin; // 0x140
 	// MPropertyFriendlyName "fade in time max"
 	// MDefaultString
-	float m_flFadeInTimeMax; // 0x184
+	float m_flFadeInTimeMax; // 0x144
 	// MPropertyFriendlyName "fade in time exponent"
 	// MDefaultString
-	float m_flFadeInTimeExp; // 0x188
+	float m_flFadeInTimeExp; // 0x148
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x18c
+	bool m_bProportional; // 0x14c
 };
 
 // Aligment: 6
-// Size: 464
+// Size: 400
 class C_OP_FadeOut : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "fade out time min"
 	// MDefaultString
-	float m_flFadeOutTimeMin; // 0x180
+	float m_flFadeOutTimeMin; // 0x140
 	// MPropertyFriendlyName "fade out time max"
 	// MDefaultString
-	float m_flFadeOutTimeMax; // 0x184
+	float m_flFadeOutTimeMax; // 0x144
 	// MPropertyFriendlyName "fade out time exponent"
 	// MDefaultString
-	float m_flFadeOutTimeExp; // 0x188
+	float m_flFadeOutTimeExp; // 0x148
 	// MPropertyFriendlyName "fade bias"
 	// MDefaultString
-	float m_flFadeBias; // 0x18c
+	float m_flFadeBias; // 0x14c
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x1c0
+	bool m_bProportional; // 0x180
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInAndOut; // 0x1c1
+	bool m_bEaseInAndOut; // 0x181
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_FadeInSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "proportional fade in time"
 	// MDefaultString
-	float m_flFadeInTime; // 0x180
+	float m_flFadeInTime; // 0x140
 	// MPropertyFriendlyName "alpha field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_alpha"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_FadeOutSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "proportional fade out time"
 	// MDefaultString
-	float m_flFadeOutTime; // 0x180
+	float m_flFadeOutTime; // 0x140
 	// MPropertyFriendlyName "alpha field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_alpha"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_ClampScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_ClampVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x184
+	Vector m_vecOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x190
+	Vector m_vecOutputMax; // 0x150
 };
 
 // Aligment: 13
-// Size: 432
+// Size: 368
 class C_OP_OscillateScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "oscillation rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "oscillation frequency min"
 	// MDefaultString
-	float m_FrequencyMin; // 0x188
+	float m_FrequencyMin; // 0x148
 	// MPropertyFriendlyName "oscillation frequency max"
 	// MDefaultString
-	float m_FrequencyMax; // 0x18c
+	float m_FrequencyMax; // 0x14c
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x190
+	ParticleAttributeIndex_t m_nField; // 0x150
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x194
+	bool m_bProportional; // 0x154
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x195
+	bool m_bProportionalOp; // 0x155
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x198
+	float m_flStartTime_min; // 0x158
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x19c
+	float m_flStartTime_max; // 0x15c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x1a0
+	float m_flEndTime_min; // 0x160
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x1a4
+	float m_flEndTime_max; // 0x164
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x1a8
+	float m_flOscMult; // 0x168
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1ac
+	float m_flOscAdd; // 0x16c
 };
 
 // Aligment: 5
-// Size: 448
+// Size: 384
 class C_OP_OscillateScalarSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "oscillation frequency"
 	// MDefaultString
-	float m_Frequency; // 0x184
+	float m_Frequency; // 0x144
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x188
+	ParticleAttributeIndex_t m_nField; // 0x148
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x18c
+	float m_flOscMult; // 0x14c
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x190
+	float m_flOscAdd; // 0x150
 };
 
 // Aligment: 14
-// Size: 464
+// Size: 400
 class C_OP_OscillateVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate min"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_RateMin; // 0x180
+	Vector m_RateMin; // 0x140
 	// MPropertyFriendlyName "oscillation rate max"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_RateMax; // 0x18c
+	Vector m_RateMax; // 0x14c
 	// MPropertyFriendlyName "oscillation frequency min"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_FrequencyMin; // 0x198
+	Vector m_FrequencyMin; // 0x158
 	// MPropertyFriendlyName "oscillation frequency max"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_FrequencyMax; // 0x1a4
+	Vector m_FrequencyMax; // 0x164
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 	// MPropertyFriendlyName "proportional 0/1"
 	// MDefaultString
-	bool m_bProportional; // 0x1b4
+	bool m_bProportional; // 0x174
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1b5
+	bool m_bProportionalOp; // 0x175
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1b6
+	bool m_bOffset; // 0x176
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x1b8
+	float m_flStartTime_min; // 0x178
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x1bc
+	float m_flStartTime_max; // 0x17c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x1c0
+	float m_flEndTime_min; // 0x180
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x1c4
+	float m_flEndTime_max; // 0x184
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x1c8
+	float m_flOscMult; // 0x188
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1cc
+	float m_flOscAdd; // 0x18c
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_OP_OscillateVectorSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "oscillation rate"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_Rate; // 0x180
+	Vector m_Rate; // 0x140
 	// MPropertyFriendlyName "oscillation frequency"
 	// MDefaultString
-	Vector m_Frequency; // 0x18c
+	Vector m_Frequency; // 0x14c
 	// MPropertyFriendlyName "oscillation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nField; // 0x198
+	ParticleAttributeIndex_t m_nField; // 0x158
 	// MPropertyFriendlyName "oscillation multiplier"
 	// MDefaultString
-	float m_flOscMult; // 0x19c
+	float m_flOscMult; // 0x15c
 	// MPropertyFriendlyName "oscillation start phase"
 	// MDefaultString
-	float m_flOscAdd; // 0x1a0
+	float m_flOscAdd; // 0x160
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1a4
+	bool m_bOffset; // 0x164
 };
 
 // Aligment: 9
-// Size: 416
+// Size: 352
 class C_OP_DifferencePreviousParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "difference minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "difference maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 	// MPropertyFriendlyName "only active within specified difference"
 	// MDefaultString
-	bool m_bActiveRange; // 0x19c
+	bool m_bActiveRange; // 0x15c
 	// MPropertyFriendlyName "also set ouput to previous particle"
 	// MDefaultString
-	bool m_bSetPreviousParticle; // 0x19d
+	bool m_bSetPreviousParticle; // 0x15d
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_PointVectorAtNextParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x188
+	CPerParticleFloatInput m_flInterpolation; // 0x148
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_ReinitializeScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapScalarOnceTimed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "remap time proportional"
 	// MDefaultString
-	bool m_bProportional; // 0x180
+	bool m_bProportional; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "remap time"
 	// MDefaultString
-	float m_flRemapTime; // 0x19c
+	float m_flRemapTime; // 0x15c
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapParticleCountOnScalarEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	int32_t m_nInputMin; // 0x184
+	int32_t m_nInputMin; // 0x144
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	int32_t m_nInputMax; // 0x188
+	int32_t m_nInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "count back from last particle"
 	// MDefaultString
-	bool m_bBackwards; // 0x194
+	bool m_bBackwards; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 };
 
 // Aligment: 7
-// Size: 1328
+// Size: 1008
 class C_OP_RemapParticleCountToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nInputMin; // 0x188
+	CParticleCollectionFloatInput m_nInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nInputMax; // 0x270
+	CParticleCollectionFloatInput m_nInputMax; // 0x1f0
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMin; // 0x358
+	CParticleCollectionFloatInput m_flOutputMin; // 0x298
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMax; // 0x440
+	CParticleCollectionFloatInput m_flOutputMax; // 0x340
 	// MPropertyFriendlyName
 	// MDefaultString
-	bool m_bActiveRange; // 0x528
+	bool m_bActiveRange; // 0x3e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x52c
+	ParticleSetMethod_t m_nSetMethod; // 0x3ec
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapVisibilityScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x198
+	float m_flRadiusScale; // 0x158
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapCPVisibilityToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x180
+	ParticleSetMethod_t m_nSetMethod; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x184
+	int32_t m_nControlPoint; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "CP visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "CP visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "visibility radius"
 	// MDefaultString
-	float m_flRadius; // 0x19c
+	float m_flRadius; // 0x15c
 };
 
 // Aligment: 8
-// Size: 432
+// Size: 368
 class C_OP_RemapCPVisibilityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x180
+	ParticleSetMethod_t m_nSetMethod; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x184
+	int32_t m_nControlPoint; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "CP visibility minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "CP visibility maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	Vector m_vecOutputMin; // 0x194
+	Vector m_vecOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	Vector m_vecOutputMax; // 0x1a0
+	Vector m_vecOutputMax; // 0x160
 	// MPropertyFriendlyName "visibility radius"
 	// MDefaultString
-	float m_flRadius; // 0x1ac
+	float m_flRadius; // 0x16c
 };
 
 // Aligment: 4
-// Size: 640
+// Size: 512
 class C_OP_LerpScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutput; // 0x188
+	CPerParticleFloatInput m_flOutput; // 0x148
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x270
+	float m_flStartTime; // 0x1f0
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x274
+	float m_flEndTime; // 0x1f4
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_LerpEndCapScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
-	float m_flOutput; // 0x184
+	float m_flOutput; // 0x144
 	// MPropertyFriendlyName "lerp time"
 	// MDefaultString
-	float m_flLerpTime; // 0x188
+	float m_flLerpTime; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_LerpEndCapVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutput; // 0x184
+	Vector m_vecOutput; // 0x144
 	// MPropertyFriendlyName "lerp time"
 	// MDefaultString
-	float m_flLerpTime; // 0x190
+	float m_flLerpTime; // 0x150
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_LerpVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "value to lerp to"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutput; // 0x184
+	Vector m_vecOutput; // 0x144
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x190
+	float m_flStartTime; // 0x150
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x194
+	float m_flEndTime; // 0x154
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x198
+	ParticleSetMethod_t m_nSetMethod; // 0x158
 };
 
 // Aligment: 3
-// Size: 656
+// Size: 528
 class C_OP_LerpToOtherAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x180
+	CPerParticleFloatInput m_flInterpolation; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x268
+	ParticleAttributeIndex_t m_nFieldInput; // 0x1e8
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x26c
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x1ec
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapSpeed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x194
+	ParticleSetMethod_t m_nSetMethod; // 0x154
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
 	// MParticleAdvancedField
-	bool m_bIgnoreDelta; // 0x198
+	bool m_bIgnoreDelta; // 0x158
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVectortoCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "particle number to read"
 	// MDefaultString
-	int32_t m_nParticleNumber; // 0x188
+	int32_t m_nParticleNumber; // 0x148
 };
 
 // Aligment: 8
-// Size: 464
+// Size: 400
 class C_OP_RampScalarLinear : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x188
+	float m_flStartTime_min; // 0x148
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x18c
+	float m_flStartTime_max; // 0x14c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1c0
+	ParticleAttributeIndex_t m_nField; // 0x180
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1c4
+	bool m_bProportionalOp; // 0x184
 };
 
 // Aligment: 10
-// Size: 464
+// Size: 400
 class C_OP_RampScalarSpline : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	float m_RateMin; // 0x180
+	float m_RateMin; // 0x140
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	float m_RateMax; // 0x184
+	float m_RateMax; // 0x144
 	// MPropertyFriendlyName "start time min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x188
+	float m_flStartTime_min; // 0x148
 	// MPropertyFriendlyName "start time max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x18c
+	float m_flStartTime_max; // 0x14c
 	// MPropertyFriendlyName "end time min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end time max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "bias"
 	// MDefaultString
-	float m_flBias; // 0x198
+	float m_flBias; // 0x158
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1c0
+	ParticleAttributeIndex_t m_nField; // 0x180
 	// MPropertyFriendlyName "start/end proportional"
 	// MDefaultString
-	bool m_bProportionalOp; // 0x1c4
+	bool m_bProportionalOp; // 0x184
 	// MPropertyFriendlyName "ease out"
 	// MDefaultString
-	bool m_bEaseOut; // 0x1c5
+	bool m_bEaseOut; // 0x185
 };
 
 // Aligment: 4
-// Size: 448
+// Size: 384
 class C_OP_RampScalarLinearSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x184
+	float m_flStartTime; // 0x144
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x188
+	float m_flEndTime; // 0x148
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 };
 
 // Aligment: 5
-// Size: 448
+// Size: 384
 class C_OP_RampScalarSplineSimple : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "ramp rate"
 	// MDefaultString
-	float m_Rate; // 0x180
+	float m_Rate; // 0x140
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x184
+	float m_flStartTime; // 0x144
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x188
+	float m_flEndTime; // 0x148
 	// MPropertyFriendlyName "ramp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x1b0
+	ParticleAttributeIndex_t m_nField; // 0x170
 	// MPropertyFriendlyName "ease out"
 	// MDefaultString
-	bool m_bEaseOut; // 0x1b4
+	bool m_bEaseOut; // 0x174
 };
 
 // Aligment: 6
-// Size: 432
+// Size: 368
 class C_OP_Noise : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x184
+	float m_flOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x188
+	float m_flOutputMax; // 0x148
 	// MPropertyFriendlyName "noise coordinate scale"
 	// MDefaultString
-	fltx4 m_fl4NoiseScale; // 0x190
+	fltx4 m_fl4NoiseScale; // 0x150
 	// MPropertyFriendlyName "additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x1a0
+	bool m_bAdditive; // 0x160
 	// MPropertyFriendlyName "Noise animation time scale"
 	// MDefaultString
-	float m_flNoiseAnimationTimeScale; // 0x1a4
+	float m_flNoiseAnimationTimeScale; // 0x164
 };
 
 // Aligment: 7
-// Size: 448
+// Size: 384
 class C_OP_VectorNoise : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x184
+	Vector m_vecOutputMin; // 0x144
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x190
+	Vector m_vecOutputMax; // 0x150
 	// MPropertyFriendlyName "noise coordinate scale"
 	// MDefaultString
-	fltx4 m_fl4NoiseScale; // 0x1a0
+	fltx4 m_fl4NoiseScale; // 0x160
 	// MPropertyFriendlyName "additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x1b0
+	bool m_bAdditive; // 0x170
 	// MPropertyFriendlyName "offset instead of accelerate position"
 	// MDefaultString
-	bool m_bOffset; // 0x1b1
+	bool m_bOffset; // 0x171
 	// MPropertyFriendlyName "Noise animation time scale"
 	// MDefaultString
-	float m_flNoiseAnimationTimeScale; // 0x1b4
+	float m_flNoiseAnimationTimeScale; // 0x174
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_Decay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Reduce rope popping on decay"
 	// MDefaultString
-	bool m_bRopeDecay; // 0x180
+	bool m_bRopeDecay; // 0x140
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_DecayOffscreen : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Offscreen Time Before Decay"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOffscreenTime; // 0x180
+	CParticleCollectionFloatInput m_flOffscreenTime; // 0x140
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_EndCapTimedFreeze : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "freeze time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flFreezeTime; // 0x180
+	CParticleCollectionFloatInput m_flFreezeTime; // 0x140
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_EndCapTimedDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "decay time"
 	// MDefaultString
-	float m_flDecayTime; // 0x180
+	float m_flDecayTime; // 0x140
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_EndCapDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -4922,101 +5892,101 @@ public:
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_VelocityDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum velocity"
 	// MDefaultString
-	float m_flMinVelocity; // 0x180
+	float m_flMinVelocity; // 0x140
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_AlphaDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum alpha"
 	// MDefaultString
-	float m_flMinAlpha; // 0x180
+	float m_flMinAlpha; // 0x140
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_RadiusDecay : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum radius"
 	// MDefaultString
-	float m_flMinRadius; // 0x180
+	float m_flMinRadius; // 0x140
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_DecayMaintainCount : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "count to maintain"
 	// MDefaultString
-	int32_t m_nParticlesToMaintain; // 0x180
+	int32_t m_nParticlesToMaintain; // 0x140
 	// MPropertyFriendlyName "maintain count scale control point"
 	// MDefaultString
-	int32_t m_nScaleControlPoint; // 0x184
+	int32_t m_nScaleControlPoint; // 0x144
 	// MPropertyFriendlyName "maintain count scale control point field"
 	// MDefaultString
-	int32_t m_nScaleControlPointField; // 0x188
+	int32_t m_nScaleControlPointField; // 0x148
 	// MPropertyFriendlyName "decay delay"
 	// MDefaultString
-	float m_flDecayDelay; // 0x18c
+	float m_flDecayDelay; // 0x14c
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_DecayClampCount : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Maximum Count"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nCount; // 0x180
+	CParticleCollectionFloatInput m_nCount; // 0x140
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_Cull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "cull percentage"
 	// MDefaultString
-	float m_flCullPerc; // 0x180
+	float m_flCullPerc; // 0x140
 	// MPropertyFriendlyName "cull start time"
 	// MDefaultString
-	float m_flCullStart; // 0x184
+	float m_flCullStart; // 0x144
 	// MPropertyFriendlyName "cull end time"
 	// MDefaultString
-	float m_flCullEnd; // 0x188
+	float m_flCullEnd; // 0x148
 	// MPropertyFriendlyName "cull time exponent"
 	// MDefaultString
-	float m_flCullExp; // 0x18c
+	float m_flCullExp; // 0x14c
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class CGeneralSpin : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "spin rate degrees"
 	// MDefaultString
-	int32_t m_nSpinRateDegrees; // 0x180
+	int32_t m_nSpinRateDegrees; // 0x140
 	// MPropertyFriendlyName "spin rate min"
 	// MDefaultString
-	int32_t m_nSpinRateMinDegrees; // 0x184
+	int32_t m_nSpinRateMinDegrees; // 0x144
 	// MPropertyFriendlyName "spin stop time"
 	// MDefaultString
-	float m_fSpinRateStopTime; // 0x18c
+	float m_fSpinRateStopTime; // 0x14c
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class CSpinUpdateBase : public CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -5024,7 +5994,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 416
+// Size: 352
 class C_OP_Spin : public CGeneralSpin, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -5032,7 +6002,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 384
+// Size: 320
 class C_OP_SpinUpdate : public CSpinUpdateBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -5040,7 +6010,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 416
+// Size: 352
 class C_OP_SpinYaw : public CGeneralSpin, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -5048,1849 +6018,1843 @@ public:
 };
 
 // Aligment: 6
-// Size: 464
+// Size: 400
 class C_OP_InterpolateRadius : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start time"
 	// MDefaultString
-	float m_flStartTime; // 0x180
+	float m_flStartTime; // 0x140
 	// MPropertyFriendlyName "end time"
 	// MDefaultString
-	float m_flEndTime; // 0x184
+	float m_flEndTime; // 0x144
 	// MPropertyFriendlyName "radius start scale"
 	// MDefaultString
-	float m_flStartScale; // 0x188
+	float m_flStartScale; // 0x148
 	// MPropertyFriendlyName "radius end scale"
 	// MDefaultString
-	float m_flEndScale; // 0x18c
+	float m_flEndScale; // 0x14c
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInAndOut; // 0x190
+	bool m_bEaseInAndOut; // 0x150
 	// MPropertyFriendlyName "scale bias"
 	// MDefaultString
-	float m_flBias; // 0x194
+	float m_flBias; // 0x154
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_ColorInterpolate : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color fade"
 	// MDefaultString
-	Color m_ColorFade; // 0x180
+	Color m_ColorFade; // 0x140
 	// MPropertyFriendlyName "fade start time"
 	// MDefaultString
-	float m_flFadeStartTime; // 0x190
+	float m_flFadeStartTime; // 0x150
 	// MPropertyFriendlyName "fade end time"
 	// MDefaultString
-	float m_flFadeEndTime; // 0x194
+	float m_flFadeEndTime; // 0x154
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x158
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInOut; // 0x19c
+	bool m_bEaseInOut; // 0x15c
 };
 
 // Aligment: 6
-// Size: 448
+// Size: 384
 class C_OP_ColorInterpolateRandom : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color fade min"
 	// MDefaultString
-	Color m_ColorFadeMin; // 0x180
+	Color m_ColorFadeMin; // 0x140
 	// MPropertyFriendlyName "color fade max"
 	// MDefaultString
-	Color m_ColorFadeMax; // 0x19c
+	Color m_ColorFadeMax; // 0x15c
 	// MPropertyFriendlyName "fade start time"
 	// MDefaultString
-	float m_flFadeStartTime; // 0x1ac
+	float m_flFadeStartTime; // 0x16c
 	// MPropertyFriendlyName "fade end time"
 	// MDefaultString
-	float m_flFadeEndTime; // 0x1b0
+	float m_flFadeEndTime; // 0x170
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1b4
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x174
 	// MPropertyFriendlyName "ease in and out"
 	// MDefaultString
-	bool m_bEaseInOut; // 0x1b8
+	bool m_bEaseInOut; // 0x178
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_PositionLock : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "start fadeout min"
 	// MDefaultString
-	float m_flStartTime_min; // 0x184
+	float m_flStartTime_min; // 0x144
 	// MPropertyFriendlyName "start fadeout max"
 	// MDefaultString
-	float m_flStartTime_max; // 0x188
+	float m_flStartTime_max; // 0x148
 	// MPropertyFriendlyName "start fadeout exponent"
 	// MDefaultString
-	float m_flStartTime_exp; // 0x18c
+	float m_flStartTime_exp; // 0x14c
 	// MPropertyFriendlyName "end fadeout min"
 	// MDefaultString
-	float m_flEndTime_min; // 0x190
+	float m_flEndTime_min; // 0x150
 	// MPropertyFriendlyName "end fadeout max"
 	// MDefaultString
-	float m_flEndTime_max; // 0x194
+	float m_flEndTime_max; // 0x154
 	// MPropertyFriendlyName "end fadeout exponent"
 	// MDefaultString
-	float m_flEndTime_exp; // 0x198
+	float m_flEndTime_exp; // 0x158
 	// MPropertyFriendlyName "distance fade range"
 	// MDefaultString
-	float m_flRange; // 0x19c
+	float m_flRange; // 0x15c
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x1a0
+	float m_flJumpThreshold; // 0x160
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x1a4
+	float m_flPrevPosScale; // 0x164
 	// MPropertyFriendlyName "lock rotation"
 	// MDefaultString
-	bool m_bLockRot; // 0x1a8
+	bool m_bLockRot; // 0x168
 };
 
 // Aligment: 33
-// Size: 1584
+// Size: 1504
 class C_OP_ControlpointLight : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "initial color bias"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "light 1 control point"
 	// MDefaultString
-	int32_t m_nControlPoint1; // 0x5a8
+	int32_t m_nControlPoint1; // 0x554
 	// MPropertyFriendlyName "light 2 control point"
 	// MDefaultString
-	int32_t m_nControlPoint2; // 0x5ac
+	int32_t m_nControlPoint2; // 0x558
 	// MPropertyFriendlyName "light 3 control point"
 	// MDefaultString
-	int32_t m_nControlPoint3; // 0x5b0
+	int32_t m_nControlPoint3; // 0x55c
 	// MPropertyFriendlyName "light 4 control point"
 	// MDefaultString
-	int32_t m_nControlPoint4; // 0x5b4
+	int32_t m_nControlPoint4; // 0x560
 	// MPropertyFriendlyName "light 1 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset1; // 0x5b8
+	Vector m_vecCPOffset1; // 0x564
 	// MPropertyFriendlyName "light 2 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset2; // 0x5c4
+	Vector m_vecCPOffset2; // 0x570
 	// MPropertyFriendlyName "light 3 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset3; // 0x5d0
+	Vector m_vecCPOffset3; // 0x57c
 	// MPropertyFriendlyName "light 4 control point offset"
 	// MDefaultString
-	Vector m_vecCPOffset4; // 0x5dc
+	Vector m_vecCPOffset4; // 0x588
 	// MPropertyFriendlyName "light 1 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist1; // 0x5e8
+	float m_LightFiftyDist1; // 0x594
 	// MPropertyFriendlyName "light 1 0% distance"
 	// MDefaultString
-	float m_LightZeroDist1; // 0x5ec
+	float m_LightZeroDist1; // 0x598
 	// MPropertyFriendlyName "light 2 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist2; // 0x5f0
+	float m_LightFiftyDist2; // 0x59c
 	// MPropertyFriendlyName "light 2 0% distance"
 	// MDefaultString
-	float m_LightZeroDist2; // 0x5f4
+	float m_LightZeroDist2; // 0x5a0
 	// MPropertyFriendlyName "light 3 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist3; // 0x5f8
+	float m_LightFiftyDist3; // 0x5a4
 	// MPropertyFriendlyName "light 3 0% distance"
 	// MDefaultString
-	float m_LightZeroDist3; // 0x5fc
+	float m_LightZeroDist3; // 0x5a8
 	// MPropertyFriendlyName "light 4 50% distance"
 	// MDefaultString
-	float m_LightFiftyDist4; // 0x600
+	float m_LightFiftyDist4; // 0x5ac
 	// MPropertyFriendlyName "light 4 0% distance"
 	// MDefaultString
-	float m_LightZeroDist4; // 0x604
+	float m_LightZeroDist4; // 0x5b0
 	// MPropertyFriendlyName "light 1 color"
 	// MDefaultString
-	Color m_LightColor1; // 0x608
+	Color m_LightColor1; // 0x5b4
 	// MPropertyFriendlyName "light 2 color"
 	// MDefaultString
-	Color m_LightColor2; // 0x60c
+	Color m_LightColor2; // 0x5b8
 	// MPropertyFriendlyName "light 3 color"
 	// MDefaultString
-	Color m_LightColor3; // 0x610
+	Color m_LightColor3; // 0x5bc
 	// MPropertyFriendlyName "light 4 color"
 	// MDefaultString
-	Color m_LightColor4; // 0x614
+	Color m_LightColor4; // 0x5c0
 	// MPropertyFriendlyName "light 1 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType1; // 0x618
+	bool m_bLightType1; // 0x5c4
 	// MPropertyFriendlyName "light 2 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType2; // 0x619
+	bool m_bLightType2; // 0x5c5
 	// MPropertyFriendlyName "light 3 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType3; // 0x61a
+	bool m_bLightType3; // 0x5c6
 	// MPropertyFriendlyName "light 4 type 0=point 1=spot"
 	// MDefaultString
-	bool m_bLightType4; // 0x61b
+	bool m_bLightType4; // 0x5c7
 	// MPropertyFriendlyName "light 1 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic1; // 0x61c
+	bool m_bLightDynamic1; // 0x5c8
 	// MPropertyFriendlyName "light 2 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic2; // 0x61d
+	bool m_bLightDynamic2; // 0x5c9
 	// MPropertyFriendlyName "light 3 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic3; // 0x61e
+	bool m_bLightDynamic3; // 0x5ca
 	// MPropertyFriendlyName "light 4 dynamic light"
 	// MDefaultString
-	bool m_bLightDynamic4; // 0x61f
+	bool m_bLightDynamic4; // 0x5cb
 	// MPropertyFriendlyName "compute normals from control points"
 	// MDefaultString
-	bool m_bUseNormal; // 0x620
+	bool m_bUseNormal; // 0x5cc
 	// MPropertyFriendlyName "half-lambert normals"
 	// MDefaultString
-	bool m_bUseHLambert; // 0x621
+	bool m_bUseHLambert; // 0x5cd
 	// MPropertyFriendlyName "clamp minimum light value to initial color"
 	// MDefaultString
-	bool m_bClampLowerRange; // 0x626
+	bool m_bClampLowerRange; // 0x5d2
 	// MPropertyFriendlyName "clamp maximum light value to initial color"
 	// MDefaultString
-	bool m_bClampUpperRange; // 0x627
+	bool m_bClampUpperRange; // 0x5d3
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_GlobalLight : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "initial color bias"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "clamp minimum light value to initial color"
 	// MDefaultString
-	bool m_bClampLowerRange; // 0x184
+	bool m_bClampLowerRange; // 0x144
 	// MPropertyFriendlyName "clamp maximum light value to initial color"
 	// MDefaultString
-	bool m_bClampUpperRange; // 0x185
+	bool m_bClampUpperRange; // 0x145
 };
 
 // Aligment: 5
-// Size: 640
+// Size: 512
 class C_OP_SetChildControlPoints : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x190
+	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x150
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x278
+	bool m_bSetOrientation; // 0x1f8
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointsToParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x18c
+	int32_t m_nFirstSourcePoint; // 0x14c
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x190
+	bool m_bSetOrientation; // 0x150
 };
 
 // Aligment: 7
-// Size: 656
+// Size: 592
 class C_OP_SetControlPointsToModelParticles : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x180
+	char[128] m_HitboxSetName; // 0x140
 	// MPropertyFriendlyName "attachment to follow"
 	// MDefaultString
-	char[128] m_AttachmentName; // 0x200
+	char[128] m_AttachmentName; // 0x1c0
 	// MPropertyFriendlyName "First control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x280
+	int32_t m_nFirstControlPoint; // 0x240
 	// MPropertyFriendlyName "# of control points to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x284
+	int32_t m_nNumControlPoints; // 0x244
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x288
+	int32_t m_nFirstSourcePoint; // 0x248
 	// MPropertyFriendlyName "use skinning instead of hitboxes"
 	// MDefaultString
-	bool m_bSkin; // 0x28c
+	bool m_bSkin; // 0x24c
 	// MPropertyFriendlyName "follow attachment"
 	// MDefaultString
-	bool m_bAttachment; // 0x28d
+	bool m_bAttachment; // 0x24d
 };
 
 // Aligment: 7
-// Size: 880
+// Size: 688
 class C_OP_SetPerChildControlPoint : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nParticleIncrement; // 0x190
+	CParticleCollectionFloatInput m_nParticleIncrement; // 0x150
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x278
+	CParticleCollectionFloatInput m_nFirstSourcePoint; // 0x1f8
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x360
+	bool m_bSetOrientation; // 0x2a0
 	// MPropertyFriendlyName "set number of children based on particle count"
 	// MDefaultString
-	bool m_bNumBasedOnParticleCount; // 0x361
+	bool m_bNumBasedOnParticleCount; // 0x2a1
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_SetPerChildControlPointFromAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x184
+	int32_t m_nFirstControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nParticleIncrement; // 0x18c
+	int32_t m_nParticleIncrement; // 0x14c
 	// MPropertyFriendlyName "first particle to copy"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x190
+	int32_t m_nFirstSourcePoint; // 0x150
 	// MPropertyFriendlyName "set number of children based on particle count"
 	// MDefaultString
-	bool m_bNumBasedOnParticleCount; // 0x194
+	bool m_bNumBasedOnParticleCount; // 0x154
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x198
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x158
 	// MPropertyFriendlyName "control point field for scalars"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x19c
+	int32_t m_nCPField; // 0x15c
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapCPOrientationToYaw : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x188
+	float m_flRotOffset; // 0x148
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x18c
+	float m_flSpinStrength; // 0x14c
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_DampenToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "falloff range"
 	// MDefaultString
-	float m_flRange; // 0x184
+	float m_flRange; // 0x144
 	// MPropertyFriendlyName "dampen scale"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	Vector m_vecOffset; // 0x184
+	Vector m_vecOffset; // 0x144
 	// MPropertyFriendlyName "offset in local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x190
+	bool m_bOffsetLocal; // 0x150
 };
 
-// Aligment: 11
-// Size: 2416
+// Aligment: 10
+// Size: 864
 class C_OP_PinParticleToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecOffset; // 0x188
+	Vector m_vecOffset; // 0x144
 	// MPropertyFriendlyName "offset in local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x5b8
+	bool m_bOffsetLocal; // 0x150
 	// MPropertyFriendlyName "particle to use"
 	// MDefaultString
-	ParticleSelection_t m_nParticleSelection; // 0x5bc
+	ParticleSelection_t m_nParticleSelection; // 0x154
 	// MPropertyFriendlyName "particle number"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nParticleNumber; // 0x5c0
+	CParticleCollectionFloatInput m_nParticleNumber; // 0x158
 	// MPropertyFriendlyName "pin break type"
 	// MDefaultString
-	ParticlePinDistance_t m_nPinBreakType; // 0x6a8
+	ParticlePinDistance_t m_nPinBreakType; // 0x200
 	// MPropertyFriendlyName "break length %"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flBreakDistance; // 0x6b0
+	CParticleCollectionFloatInput m_flBreakDistance; // 0x208
 	// MPropertyFriendlyName "break speed"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flBreakSpeed; // 0x798
-	// MPropertyFriendlyName "break age"
-	// MDefaultString
-	CParticleCollectionFloatInput m_flAge; // 0x880
+	CParticleCollectionFloatInput m_flBreakSpeed; // 0x2b0
 	// MPropertyFriendlyName "break comparison control point 1"
 	// MDefaultString
-	int32_t m_nBreakControlPointNumber; // 0x968
+	int32_t m_nBreakControlPointNumber; // 0x358
 	// MPropertyFriendlyName "break comparison control point 2"
 	// MDefaultString
-	int32_t m_nBreakControlPointNumber2; // 0x96c
+	int32_t m_nBreakControlPointNumber2; // 0x35c
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_MovementRigidAttachToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "scale control point number"
 	// MDefaultString
-	int32_t m_nScaleControlPoint; // 0x184
+	int32_t m_nScaleControlPoint; // 0x144
 	// MPropertyFriendlyName "scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nScaleCPField; // 0x188
+	int32_t m_nScaleCPField; // 0x148
 	// MPropertyFriendlyName "cache attribute to read from"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x18c
+	ParticleAttributeIndex_t m_nFieldInput; // 0x14c
 	// MPropertyFriendlyName "attribute to write to"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x190
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x150
 	// MPropertyFriendlyName "local space"
 	// MDefaultString
-	bool m_bOffsetLocal; // 0x194
+	bool m_bOffsetLocal; // 0x154
 };
 
 // Aligment: 4
-// Size: 864
+// Size: 672
 class C_OP_LerpToInitialPosition : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x188
+	CPerParticleFloatInput m_flInterpolation; // 0x148
 	// MPropertyFriendlyName "position cache attribute"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nCacheField; // 0x270
+	ParticleAttributeIndex_t m_nCacheField; // 0x1f0
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flScale; // 0x278
+	CParticleCollectionFloatInput m_flScale; // 0x1f8
 };
 
 // Aligment: 12
-// Size: 1472
+// Size: 1152
 class C_OP_DistanceBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x184
+	int32_t m_nStartCP; // 0x144
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x188
+	int32_t m_nEndCP; // 0x148
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMin; // 0x190
+	CPerParticleFloatInput m_flInputMin; // 0x150
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMax; // 0x278
+	CPerParticleFloatInput m_flInputMax; // 0x1f8
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMin; // 0x360
+	CPerParticleFloatInput m_flOutputMin; // 0x2a0
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMax; // 0x448
+	CPerParticleFloatInput m_flOutputMax; // 0x348
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x530
+	float m_flMaxTraceLength; // 0x3f0
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x534
+	float m_flLOSScale; // 0x3f4
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x538
+	char[128] m_CollisionGroupName; // 0x3f8
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x5b8
+	bool m_bLOS; // 0x478
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5bc
+	ParticleSetMethod_t m_nSetMethod; // 0x47c
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_PercentageBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x198
+	int32_t m_nEndCP; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a0
+	bool m_bActiveRange; // 0x160
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a1
+	bool m_bRadialCheck; // 0x161
 };
 
 // Aligment: 10
-// Size: 448
+// Size: 384
 class C_OP_PercentageBetweenCPsVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMin; // 0x18c
+	Vector m_vecOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vecOutputMax; // 0x198
+	Vector m_vecOutputMax; // 0x158
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x1a4
+	int32_t m_nStartCP; // 0x164
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x1a8
+	int32_t m_nEndCP; // 0x168
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1ac
+	ParticleSetMethod_t m_nSetMethod; // 0x16c
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1b0
+	bool m_bActiveRange; // 0x170
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1b1
+	bool m_bRadialCheck; // 0x171
 };
 
 // Aligment: 12
-// Size: 432
+// Size: 368
 class C_OP_PercentageBetweenCPLerpCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x18c
+	int32_t m_nStartCP; // 0x14c
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x190
+	int32_t m_nEndCP; // 0x150
 	// MPropertyFriendlyName "output starting control point number"
 	// MDefaultString
-	int32_t m_nOutputStartCP; // 0x194
+	int32_t m_nOutputStartCP; // 0x154
 	// MPropertyFriendlyName "output starting control point field 0-2 X/Y/Z"
 	// MDefaultString
-	int32_t m_nOutputStartField; // 0x198
+	int32_t m_nOutputStartField; // 0x158
 	// MPropertyFriendlyName "output ending control point number"
 	// MDefaultString
-	int32_t m_nOutputEndCP; // 0x19c
+	int32_t m_nOutputEndCP; // 0x15c
 	// MPropertyFriendlyName "output ending control point field 0-2 X/Y/Z"
 	// MDefaultString
-	int32_t m_nOutputEndField; // 0x1a0
+	int32_t m_nOutputEndField; // 0x160
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a4
+	ParticleSetMethod_t m_nSetMethod; // 0x164
 	// MPropertyFriendlyName "only active within input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a8
+	bool m_bActiveRange; // 0x168
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a9
+	bool m_bRadialCheck; // 0x169
 };
 
 // Aligment: 13
-// Size: 560
+// Size: 496
 class C_OP_DistanceToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x194
+	int32_t m_nStartCP; // 0x154
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x198
+	bool m_bLOS; // 0x158
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x199
+	char[128] m_CollisionGroupName; // 0x159
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x21c
+	float m_flMaxTraceLength; // 0x1dc
 	// MPropertyFriendlyName "LOS Failure Scalar"
 	// MDefaultString
-	float m_flLOSScale; // 0x220
+	float m_flLOSScale; // 0x1e0
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x224
+	ParticleSetMethod_t m_nSetMethod; // 0x1e4
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x228
+	bool m_bActiveRange; // 0x1e8
 	// MPropertyFriendlyName "output is additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x229
+	bool m_bAdditive; // 0x1e9
 };
 
 // Aligment: 11
-// Size: 1344
+// Size: 1024
 class C_OP_CylindricalDistanceToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "cylinder inner radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMin; // 0x188
+	CPerParticleFloatInput m_flInputMin; // 0x148
 	// MPropertyFriendlyName "cylinder outer radius"
 	// MDefaultString
-	CPerParticleFloatInput m_flInputMax; // 0x270
+	CPerParticleFloatInput m_flInputMax; // 0x1f0
 	// MPropertyFriendlyName "cylinder inner output"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMin; // 0x358
+	CPerParticleFloatInput m_flOutputMin; // 0x298
 	// MPropertyFriendlyName "cylinder outer output"
 	// MDefaultString
-	CPerParticleFloatInput m_flOutputMax; // 0x440
+	CPerParticleFloatInput m_flOutputMax; // 0x340
 	// MPropertyFriendlyName "cylinder top control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x528
+	int32_t m_nStartCP; // 0x3e8
 	// MPropertyFriendlyName "cylinder bottom control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x52c
+	int32_t m_nEndCP; // 0x3ec
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x530
+	ParticleSetMethod_t m_nSetMethod; // 0x3f0
 	// MPropertyFriendlyName "only active within specified distance"
 	// MDefaultString
-	bool m_bActiveRange; // 0x534
+	bool m_bActiveRange; // 0x3f4
 	// MPropertyFriendlyName "output is additive"
 	// MDefaultString
-	bool m_bAdditive; // 0x535
+	bool m_bAdditive; // 0x3f5
 	// MPropertyFriendlyName "apply radius to ends (capsule)"
 	// MDefaultString
-	bool m_bCapsule; // 0x536
+	bool m_bCapsule; // 0x3f6
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_MovementLoopInsideSphere : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flDistance; // 0x184
+	float m_flDistance; // 0x144
 	// MPropertyFriendlyName "component scale"
 	// MDefaultString
-	Vector m_vecScale; // 0x188
+	Vector m_vecScale; // 0x148
 };
 
 // Aligment: 8
-// Size: 784
+// Size: 656
 class C_OP_MoveToHitbox : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "lifetime lerp start"
 	// MDefaultString
-	float m_flLifeTimeLerpStart; // 0x188
+	float m_flLifeTimeLerpStart; // 0x148
 	// MPropertyFriendlyName "lifetime lerp end"
 	// MDefaultString
-	float m_flLifeTimeLerpEnd; // 0x18c
+	float m_flLifeTimeLerpEnd; // 0x14c
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x190
+	float m_flPrevPosScale; // 0x150
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x194
+	char[128] m_HitboxSetName; // 0x154
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x214
+	bool m_bUseBones; // 0x1d4
 	// MPropertyFriendlyName "lerp type"
 	// MDefaultString
-	HitboxLerpType_t m_nLerpType; // 0x218
+	HitboxLerpType_t m_nLerpType; // 0x1d8
 	// MPropertyFriendlyName "Constant Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x220
+	CPerParticleFloatInput m_flInterpolation; // 0x1e0
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_OP_LockToBone : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control_point_number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "lifetime fade start"
 	// MDefaultString
-	float m_flLifeTimeFadeStart; // 0x184
+	float m_flLifeTimeFadeStart; // 0x144
 	// MPropertyFriendlyName "lifetime fade end"
 	// MDefaultString
-	float m_flLifeTimeFadeEnd; // 0x188
+	float m_flLifeTimeFadeEnd; // 0x148
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x18c
+	float m_flJumpThreshold; // 0x14c
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x190
+	float m_flPrevPosScale; // 0x150
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x194
+	char[128] m_HitboxSetName; // 0x154
 	// MPropertyFriendlyName "rigid lock"
 	// MDefaultString
-	bool m_bRigid; // 0x214
+	bool m_bRigid; // 0x1d4
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x215
+	bool m_bUseBones; // 0x1d5
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SnapshotRigidSkinToBones : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate normals"
 	// MDefaultString
-	bool m_bTransformNormals; // 0x180
+	bool m_bTransformNormals; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_SnapshotSkinToBones : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate normals"
 	// MDefaultString
-	bool m_bTransformNormals; // 0x180
+	bool m_bTransformNormals; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "lifetime fade start"
 	// MDefaultString
-	float m_flLifeTimeFadeStart; // 0x188
+	float m_flLifeTimeFadeStart; // 0x148
 	// MPropertyFriendlyName "lifetime fade end"
 	// MDefaultString
-	float m_flLifeTimeFadeEnd; // 0x18c
+	float m_flLifeTimeFadeEnd; // 0x14c
 	// MPropertyFriendlyName "instant jump threshold"
 	// MDefaultString
-	float m_flJumpThreshold; // 0x190
+	float m_flJumpThreshold; // 0x150
 	// MPropertyFriendlyName "previous position scale"
 	// MDefaultString
-	float m_flPrevPosScale; // 0x194
+	float m_flPrevPosScale; // 0x154
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_CPOffsetToPercentageBetweenCPs : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "percentage minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x180
+	float m_flInputMin; // 0x140
 	// MPropertyFriendlyName "percentage maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x184
+	float m_flInputMax; // 0x144
 	// MPropertyFriendlyName "percentage bias"
 	// MDefaultString
-	float m_flInputBias; // 0x188
+	float m_flInputBias; // 0x148
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x18c
+	int32_t m_nStartCP; // 0x14c
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x190
+	int32_t m_nEndCP; // 0x150
 	// MPropertyFriendlyName "offset control point"
 	// MDefaultString
-	int32_t m_nOffsetCP; // 0x194
+	int32_t m_nOffsetCP; // 0x154
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOuputCP; // 0x198
+	int32_t m_nOuputCP; // 0x158
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x19c
+	int32_t m_nInputCP; // 0x15c
 	// MPropertyFriendlyName "treat distance between points as radius"
 	// MDefaultString
-	bool m_bRadialCheck; // 0x1a0
+	bool m_bRadialCheck; // 0x160
 	// MPropertyFriendlyName "treat offset as scale of total distance"
 	// MDefaultString
-	bool m_bScaleOffset; // 0x1a1
+	bool m_bScaleOffset; // 0x161
 	// MPropertyFriendlyName "offset amount"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffset; // 0x1a4
+	Vector m_vecOffset; // 0x164
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_PlaneCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point for point on plane"
 	// MDefaultString
-	int32_t m_nPlaneControlPoint; // 0x180
+	int32_t m_nPlaneControlPoint; // 0x140
 	// MPropertyFriendlyName "plane normal"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPlaneDirection; // 0x184
+	Vector m_vecPlaneDirection; // 0x144
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x190
+	bool m_bLocalSpace; // 0x150
 	// MPropertyFriendlyName "cull plane offset"
 	// MDefaultString
-	float m_flPlaneOffset; // 0x194
+	float m_flPlaneOffset; // 0x154
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_DistanceCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecPointOffset; // 0x184
+	Vector m_vecPointOffset; // 0x144
 	// MPropertyFriendlyName "cull distance"
 	// MDefaultString
-	float m_flDistance; // 0x190
+	float m_flDistance; // 0x150
 	// MPropertyFriendlyName "cull inside instead of outside"
 	// MDefaultString
-	bool m_bCullInside; // 0x194
+	bool m_bCullInside; // 0x154
 };
 
 // Aligment: 5
-// Size: 528
+// Size: 464
 class C_OP_ModelCull : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "use only bounding box"
 	// MDefaultString
-	bool m_bBoundBox; // 0x184
+	bool m_bBoundBox; // 0x144
 	// MPropertyFriendlyName "cull outside instead of inside"
 	// MDefaultString
-	bool m_bCullOutside; // 0x185
+	bool m_bCullOutside; // 0x145
 	// MPropertyFriendlyName "use bones instead of hitboxes"
 	// MDefaultString
-	bool m_bUseBones; // 0x186
+	bool m_bUseBones; // 0x146
 	// MPropertyFriendlyName "hitbox set"
 	// MDefaultString
-	char[128] m_HitboxSetName; // 0x187
+	char[128] m_HitboxSetName; // 0x147
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_SequenceFromModel : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "current anim time output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutputAnim; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x19c
+	ParticleSetMethod_t m_nSetMethod; // 0x15c
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_VelocityMatchingForce : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "direction matching strength"
 	// MDefaultString
-	float m_flDirScale; // 0x180
+	float m_flDirScale; // 0x140
 	// MPropertyFriendlyName "speed matching strength"
 	// MDefaultString
-	float m_flSpdScale; // 0x184
+	float m_flSpdScale; // 0x144
 	// MPropertyFriendlyName "control point to broadcast speed and direction to"
 	// MDefaultString
-	int32_t m_nCPBroadcast; // 0x188
+	int32_t m_nCPBroadcast; // 0x148
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_MovementMaintainOffset : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "desired offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffset; // 0x180
+	Vector m_vecOffset; // 0x140
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nCP; // 0x18c
+	int32_t m_nCP; // 0x14c
 	// MPropertyFriendlyName "scale by radius"
 	// MDefaultString
-	bool m_bRadiusScale; // 0x190
+	bool m_bRadiusScale; // 0x150
 };
 
-// Aligment: 15
-// Size: 800
+// Aligment: 14
+// Size: 496
 class C_OP_MovementPlaceOnGround : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "offset"
 	// MDefaultString
-	CPerParticleFloatInput m_flOffset; // 0x180
+	float m_flOffset; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x268
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "CP movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x26c
+	float m_flTolerance; // 0x148
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x270
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "interpolation rate"
 	// MDefaultString
-	float m_flLerpRate; // 0x274
+	float m_flLerpRate; // 0x150
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x278
+	char[128] m_CollisionGroupName; // 0x154
 	// MPropertyFriendlyName "reference CP 1"
 	// MDefaultString
-	int32_t m_nRefCP1; // 0x2f8
+	int32_t m_nRefCP1; // 0x1d4
 	// MPropertyFriendlyName "reference CP 2"
 	// MDefaultString
-	int32_t m_nRefCP2; // 0x2fc
+	int32_t m_nRefCP2; // 0x1d8
 	// MPropertyFriendlyName "interploation distance tolerance cp"
 	// MDefaultString
-	int32_t m_nLerpCP; // 0x300
+	int32_t m_nLerpCP; // 0x1dc
 	// MPropertyFriendlyName "kill on no collision"
 	// MDefaultString
-	bool m_bKill; // 0x308
+	bool m_bKill; // 0x1e4
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x309
+	bool m_bIncludeWater; // 0x1e5
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x30c
+	bool m_bSetNormal; // 0x1e8
 	// MPropertyFriendlyName "treat offset as scalar of particle radius"
 	// MDefaultString
-	bool m_bScaleOffset; // 0x30d
-	// MPropertyFriendlyName "preserve initial Z-offset relative to cp"
-	// MDefaultString
-	int32_t m_nPreserveOffsetCP; // 0x310
+	bool m_bScaleOffset; // 0x1e9
 	// MPropertyFriendlyName "CP Entity to Ignore for Collisions"
 	// MDefaultString
-	int32_t m_nIgnoreCP; // 0x314
+	int32_t m_nIgnoreCP; // 0x1ec
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_InheritFromParentParticles : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_InheritFromParentParticlesV2 : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "scale"
 	// MDefaultString
-	float m_flScale; // 0x180
+	float m_flScale; // 0x140
 	// MPropertyFriendlyName "inherited field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "random parent particle distribution"
 	// MDefaultString
-	bool m_bRandomDistribution; // 0x18c
+	bool m_bRandomDistribution; // 0x14c
 	// MPropertyFriendlyName "behavior if parent particle dies"
 	// MDefaultString
-	MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x190
+	MissingParentInheritBehavior_t m_nMissingParentBehavior; // 0x150
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_ReadFromNeighboringParticle : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "read field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "written field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	CPerParticleFloatInput m_DistanceCheck; // 0x190
+	CPerParticleFloatInput m_DistanceCheck; // 0x150
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x278
+	CPerParticleFloatInput m_flInterpolation; // 0x1f8
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_InheritFromPeerSystem : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "read field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "written field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x184
+	ParticleAttributeIndex_t m_nFieldInput; // 0x144
 	// MPropertyFriendlyName "particle neighbor increment amount"
 	// MDefaultString
-	int32_t m_nIncrement; // 0x188
+	int32_t m_nIncrement; // 0x148
 	// MPropertyFriendlyName "group id"
 	// MDefaultString
-	int32_t m_nGroupID; // 0x18c
+	int32_t m_nGroupID; // 0x14c
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVectorComponentToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Input Vector"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x180
+	ParticleAttributeIndex_t m_nFieldInput; // 0x140
 	// MPropertyFriendlyName "Output Scalar"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "Vector Component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nComponent; // 0x188
+	int32_t m_nComponent; // 0x148
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_OrientTo2dDirection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x180
+	float m_flRotOffset; // 0x140
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x184
+	float m_flSpinStrength; // 0x144
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RestartAfterDuration : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "minimum restart time"
 	// MDefaultString
-	float m_flDurationMin; // 0x180
+	float m_flDurationMin; // 0x140
 	// MPropertyFriendlyName "maximum restart time"
 	// MDefaultString
-	float m_flDurationMax; // 0x184
+	float m_flDurationMax; // 0x144
 	// MPropertyFriendlyName "control point to scale duration"
 	// MDefaultString
-	int32_t m_nCP; // 0x188
+	int32_t m_nCP; // 0x148
 	// MPropertyFriendlyName "control point field X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x18c
+	int32_t m_nCPField; // 0x14c
 	// MPropertyFriendlyName "child group ID"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x190
+	int32_t m_nChildGroupID; // 0x150
 	// MPropertyFriendlyName "only restart children"
 	// MDefaultString
-	bool m_bOnlyChildren; // 0x194
+	bool m_bOnlyChildren; // 0x154
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_Orient2DRelToCP : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation offset"
 	// MDefaultString
-	float m_flRotOffset; // 0x180
+	float m_flRotOffset; // 0x140
 	// MPropertyFriendlyName "spin strength"
 	// MDefaultString
-	float m_flSpinStrength; // 0x184
+	float m_flSpinStrength; // 0x144
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x188
+	int32_t m_nCP; // 0x148
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x18c
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x14c
 };
 
 // Aligment: 4
-// Size: 1696
+// Size: 512
 class C_OP_MovementRotateParticleAroundAxis : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CParticleCollectionVecInput m_vecRotAxis; // 0x180
+	Vector m_vecRotAxis; // 0x140
 	// MPropertyFriendlyName "rotation rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRotRate; // 0x5b0
+	CParticleCollectionFloatInput m_flRotRate; // 0x150
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x1f8
 	// MPropertyFriendlyName "use local space"
 	// MDefaultString
-	bool m_bLocalSpace; // 0x69c
+	bool m_bLocalSpace; // 0x1fc
 };
 
 // Aligment: 7
-// Size: 656
+// Size: 528
 class C_OP_RotateVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "rotation axis min"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecRotAxisMin; // 0x184
+	Vector m_vecRotAxisMin; // 0x144
 	// MPropertyFriendlyName "rotation axis max"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecRotAxisMax; // 0x190
+	Vector m_vecRotAxisMax; // 0x150
 	// MPropertyFriendlyName "rotation rate min"
 	// MDefaultString
-	float m_flRotRateMin; // 0x19c
+	float m_flRotRateMin; // 0x15c
 	// MPropertyFriendlyName "rotation rate max"
 	// MDefaultString
-	float m_flRotRateMax; // 0x1a0
+	float m_flRotRateMax; // 0x160
 	// MPropertyFriendlyName "normalize output"
 	// MDefaultString
-	bool m_bNormalize; // 0x1a4
+	bool m_bNormalize; // 0x164
 	// MPropertyFriendlyName "per particle scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flScale; // 0x1a8
+	CPerParticleFloatInput m_flScale; // 0x168
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_MaxVelocity : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "maximum velocity"
 	// MDefaultString
-	float m_flMaxVelocity; // 0x180
+	float m_flMaxVelocity; // 0x140
 	// MPropertyFriendlyName "override max velocity from this CP"
 	// MDefaultString
-	int32_t m_nOverrideCP; // 0x184
+	int32_t m_nOverrideCP; // 0x144
 	// MPropertyFriendlyName "override CP field"
 	// MDefaultString
-	int32_t m_nOverrideCPField; // 0x188
+	int32_t m_nOverrideCPField; // 0x148
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_LagCompensation : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "desired velocity CP"
 	// MDefaultString
-	int32_t m_nDesiredVelocityCP; // 0x180
+	int32_t m_nDesiredVelocityCP; // 0x140
 	// MPropertyFriendlyName "latency CP"
 	// MDefaultString
-	int32_t m_nLatencyCP; // 0x184
+	int32_t m_nLatencyCP; // 0x144
 	// MPropertyFriendlyName "latency CP field"
 	// MDefaultString
-	int32_t m_nLatencyCPField; // 0x188
+	int32_t m_nLatencyCPField; // 0x148
 	// MPropertyFriendlyName "desired velocity CP field override(for speed only)"
 	// MDefaultString
-	int32_t m_nDesiredVelocityCPField; // 0x18c
+	int32_t m_nDesiredVelocityCPField; // 0x14c
 };
 
 // Aligment: 7
-// Size: 480
+// Size: 416
 class C_OP_MaintainSequentialPath : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "maximum distance"
 	// MDefaultString
-	float m_fMaxDistance; // 0x180
+	float m_fMaxDistance; // 0x140
 	// MPropertyFriendlyName "particles to map from start to end"
 	// MDefaultString
-	float m_flNumToAssign; // 0x184
+	float m_flNumToAssign; // 0x144
 	// MPropertyFriendlyName "cohesion strength"
 	// MDefaultString
-	float m_flCohesionStrength; // 0x188
+	float m_flCohesionStrength; // 0x148
 	// MPropertyFriendlyName "control point movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x18c
+	float m_flTolerance; // 0x14c
 	// MPropertyFriendlyName "restart behavior (0 = bounce, 1 = loop )"
 	// MDefaultString
-	bool m_bLoop; // 0x190
+	bool m_bLoop; // 0x150
 	// MPropertyFriendlyName "use existing particle count"
 	// MDefaultString
-	bool m_bUseParticleCount; // 0x191
-	CPathParameters m_PathParams; // 0x1a0
+	bool m_bUseParticleCount; // 0x151
+	CPathParameters m_PathParams; // 0x160
 };
 
 // Aligment: 4
-// Size: 464
+// Size: 400
 class C_OP_LockToSavedSequentialPathV2 : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade time"
 	// MDefaultString
-	float m_flFadeStart; // 0x180
+	float m_flFadeStart; // 0x140
 	// MPropertyFriendlyName "end fade time"
 	// MDefaultString
-	float m_flFadeEnd; // 0x184
+	float m_flFadeEnd; // 0x144
 	// MPropertyFriendlyName "Use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x188
-	CPathParameters m_PathParams; // 0x190
+	bool m_bCPPairs; // 0x148
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 4
-// Size: 464
+// Size: 400
 class C_OP_LockToSavedSequentialPath : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start fade time"
 	// MDefaultString
-	float m_flFadeStart; // 0x184
+	float m_flFadeStart; // 0x144
 	// MPropertyFriendlyName "end fade time"
 	// MDefaultString
-	float m_flFadeEnd; // 0x188
+	float m_flFadeEnd; // 0x148
 	// MPropertyFriendlyName "Use sequential CP pairs between start and end point"
 	// MDefaultString
-	bool m_bCPPairs; // 0x18c
-	CPathParameters m_PathParams; // 0x190
+	bool m_bCPPairs; // 0x14c
+	CPathParameters m_PathParams; // 0x150
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_RemapDotProductToScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first input control point"
 	// MDefaultString
-	int32_t m_nInputCP1; // 0x180
+	int32_t m_nInputCP1; // 0x140
 	// MPropertyFriendlyName "second input control point"
 	// MDefaultString
-	int32_t m_nInputCP2; // 0x184
+	int32_t m_nInputCP2; // 0x144
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x188
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x148
 	// MPropertyFriendlyName "input minimum (-1 to 1)"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum (-1 to 1)"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "use particle velocity for first input"
 	// MDefaultString
-	bool m_bUseParticleVelocity; // 0x19c
+	bool m_bUseParticleVelocity; // 0x15c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a0
+	ParticleSetMethod_t m_nSetMethod; // 0x160
 	// MPropertyFriendlyName "only active within specified input range"
 	// MDefaultString
-	bool m_bActiveRange; // 0x1a4
+	bool m_bActiveRange; // 0x164
 	// MPropertyFriendlyName "use particle normal for first input"
 	// MDefaultString
-	bool m_bUseParticleNormal; // 0x1a5
+	bool m_bUseParticleNormal; // 0x165
 };
 
 // Aligment: 11
-// Size: 432
+// Size: 368
 class C_OP_RemapCPtoScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "input field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x19c
+	float m_flStartTime; // 0x15c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1a0
+	float m_flEndTime; // 0x160
 	// MPropertyFriendlyName "interpolation scale"
 	// MDefaultString
-	float m_flInterpRate; // 0x1a4
+	float m_flInterpRate; // 0x164
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a8
+	ParticleSetMethod_t m_nSetMethod; // 0x168
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_NormalLock : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 };
 
 // Aligment: 13
-// Size: 464
+// Size: 400
 class C_OP_RemapCPtoVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "local space CP"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x188
+	int32_t m_nLocalSpaceCP; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMin; // 0x18c
+	Vector m_vInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vInputMax; // 0x198
+	Vector m_vInputMax; // 0x158
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMin; // 0x1a4
+	Vector m_vOutputMin; // 0x164
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
 	// MVectorIsSometimesCoordinate
-	Vector m_vOutputMax; // 0x1b0
+	Vector m_vOutputMax; // 0x170
 	// MPropertyFriendlyName "emitter lifetime start time (seconds)"
 	// MDefaultString
-	float m_flStartTime; // 0x1bc
+	float m_flStartTime; // 0x17c
 	// MPropertyFriendlyName "emitter lifetime end time (seconds)"
 	// MDefaultString
-	float m_flEndTime; // 0x1c0
+	float m_flEndTime; // 0x180
 	// MPropertyFriendlyName "interpolation scale"
 	// MDefaultString
-	float m_flInterpRate; // 0x1c4
+	float m_flInterpRate; // 0x184
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1c8
+	ParticleSetMethod_t m_nSetMethod; // 0x188
 	// MPropertyFriendlyName "offset position"
 	// MDefaultString
-	bool m_bOffset; // 0x1cc
+	bool m_bOffset; // 0x18c
 	// MPropertyFriendlyName "accelerate position"
 	// MDefaultString
-	bool m_bAccelerate; // 0x1cd
+	bool m_bAccelerate; // 0x18d
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPtoVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_RemapCPtoVelocity : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapVelocityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x188
+	bool m_bNormalize; // 0x148
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapCPVelocityToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x180
+	int32_t m_nControlPoint; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x18c
+	bool m_bNormalize; // 0x14c
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPOrientationToDirection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInputControlPoint; // 0x180
+	int32_t m_nInputControlPoint; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x184
+	int32_t m_nOutputControlPoint; // 0x144
 };
 
 // Aligment: 7
-// Size: 432
+// Size: 368
 class C_OP_RemapDirectionToCPToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x188
+	float m_flScale; // 0x148
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x18c
+	float m_flOffsetRot; // 0x14c
 	// MPropertyFriendlyName "offset axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecOffsetAxis; // 0x190
+	Vector m_vecOffsetAxis; // 0x150
 	// MPropertyFriendlyName "normalize"
 	// MDefaultString
-	bool m_bNormalize; // 0x19c
+	bool m_bNormalize; // 0x15c
 	// MPropertyFriendlyName "strength field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldStrength; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldStrength; // 0x160
 };
 
 // Aligment: 4
-// Size: 2544
+// Size: 1968
 class C_OP_RemapCrossProductOfTwoVectorsToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input vector 1"
-	CPerParticleVecInput m_InputVec1; // 0x180
+	CPerParticleVecInput m_InputVec1; // 0x140
 	// MPropertyFriendlyName "input vector 2"
-	CPerParticleVecInput m_InputVec2; // 0x5b0
+	CPerParticleVecInput m_InputVec2; // 0x470
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x9e0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x7a0
 	// MPropertyFriendlyName "normalize output"
 	// MDefaultString
-	bool m_bNormalize; // 0x9e4
+	bool m_bNormalize; // 0x7a4
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_NormalizeVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_RemapControlPointDirectionToVector : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "scale factor"
 	// MDefaultString
-	float m_flScale; // 0x184
+	float m_flScale; // 0x144
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x188
+	int32_t m_nControlPointNumber; // 0x148
 };
 
 // Aligment: 8
-// Size: 544
+// Size: 480
 class C_OP_SetCPOrientationToGroundNormal : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "interpolation rate"
 	// MDefaultString
-	float m_flInterpRate; // 0x180
+	float m_flInterpRate; // 0x140
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x184
+	float m_flMaxTraceLength; // 0x144
 	// MPropertyFriendlyName "CP movement tolerance"
 	// MDefaultString
-	float m_flTolerance; // 0x188
+	float m_flTolerance; // 0x148
 	// MPropertyFriendlyName "trace offset"
 	// MDefaultString
-	float m_flTraceOffset; // 0x18c
+	float m_flTraceOffset; // 0x14c
 	// MPropertyFriendlyName "collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x190
+	char[128] m_CollisionGroupName; // 0x150
 	// MPropertyFriendlyName "CP to trace from"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x210
+	int32_t m_nInputCP; // 0x1d0
 	// MPropertyFriendlyName "CP to set"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x214
+	int32_t m_nOutputCP; // 0x1d4
 	// MPropertyFriendlyName "include water"
 	// MDefaultString
-	bool m_bIncludeWater; // 0x21c
+	bool m_bIncludeWater; // 0x1dc
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_RemapCPOrientationToRotations : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "offset pitch/yaw/roll"
 	// MDefaultString
-	Vector m_vecRotation; // 0x184
+	Vector m_vecRotation; // 0x144
 	// MPropertyFriendlyName "Use Quaternians Internally"
 	// MDefaultString
-	bool m_bUseQuat; // 0x190
+	bool m_bUseQuat; // 0x150
 	// MPropertyFriendlyName "Write normal instead of rotation"
 	// MDefaultString
-	bool m_bWriteNormal; // 0x191
+	bool m_bWriteNormal; // 0x151
 };
 
 // Aligment: 4
-// Size: 400
+// Size: 336
 class C_OP_RemapControlPointOrientationToRotation : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x180
+	int32_t m_nCP; // 0x140
 	// MPropertyFriendlyName "rotation field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_rotation"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x184
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x144
 	// MPropertyFriendlyName "offset rotation"
 	// MDefaultString
-	float m_flOffsetRot; // 0x188
+	float m_flOffsetRot; // 0x148
 	// MPropertyFriendlyName "control point axis"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
 	// MVectorIsSometimesCoordinate
-	int32_t m_nComponent; // 0x18c
+	int32_t m_nComponent; // 0x14c
 };
 
 // Aligment: 5
-// Size: 432
+// Size: 368
 class C_OP_LockToPointList : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x180
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x140
 	// MPropertyFriendlyName "point list"
-	CUtlVector< PointDefinition_t > m_pointList; // 0x188
+	CUtlVector< PointDefinition_t > m_pointList; // 0x148
 	// MPropertyFriendlyName "space points along path"
 	// MDefaultString
-	bool m_bPlaceAlongPath; // 0x1a0
+	bool m_bPlaceAlongPath; // 0x160
 	// MPropertyFriendlyName "Treat path as a loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x1a1
+	bool m_bClosedLoop; // 0x161
 	// MPropertyFriendlyName "Numer of points along path"
 	// MDefaultString
-	int32_t m_nNumPointsAlongPath; // 0x1a4
+	int32_t m_nNumPointsAlongPath; // 0x164
 };
 
 // Aligment: 9
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelElementOnceTimed : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "input names"
-	CUtlVector< CUtlString > m_inNames; // 0x188
+	CUtlVector< CUtlString > m_inNames; // 0x148
 	// MPropertyFriendlyName "output names"
-	CUtlVector< CUtlString > m_outNames; // 0x1a0
+	CUtlVector< CUtlString > m_outNames; // 0x160
 	// MPropertyFriendlyName "fallback names when the input doesn't match"
-	CUtlVector< CUtlString > m_fallbackNames; // 0x1b8
+	CUtlVector< CUtlString > m_fallbackNames; // 0x178
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1d0
+	bool m_bModelFromRenderer; // 0x190
 	// MPropertyFriendlyName "remap time proportional"
 	// MDefaultString
-	bool m_bProportional; // 0x1d1
+	bool m_bProportional; // 0x191
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldInput; // 0x194
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
 	// MPropertyFriendlyName "remap time"
 	// MDefaultString
-	float m_flRemapTime; // 0x1dc
+	float m_flRemapTime; // 0x19c
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelSequenceOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6898,7 +7862,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelBodyPartOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6906,7 +7870,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelMeshGroupOnceTimed : public C_OP_RemapNamedModelElementOnceTimed, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6914,35 +7878,35 @@ public:
 };
 
 // Aligment: 7
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelElementEndCap : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "model"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmdl )"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x180
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x140
 	// MPropertyFriendlyName "input names"
-	CUtlVector< CUtlString > m_inNames; // 0x188
+	CUtlVector< CUtlString > m_inNames; // 0x148
 	// MPropertyFriendlyName "output names"
-	CUtlVector< CUtlString > m_outNames; // 0x1a0
+	CUtlVector< CUtlString > m_outNames; // 0x160
 	// MPropertyFriendlyName "fallback names when the input doesn't match"
-	CUtlVector< CUtlString > m_fallbackNames; // 0x1b8
+	CUtlVector< CUtlString > m_fallbackNames; // 0x178
 	// MPropertyFriendlyName "model from renderer"
 	// MDefaultString
-	bool m_bModelFromRenderer; // 0x1d0
+	bool m_bModelFromRenderer; // 0x190
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldInput; // 0x1d4
+	ParticleAttributeIndex_t m_nFieldInput; // 0x194
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1d8
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x198
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelSequenceEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6950,7 +7914,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelBodyPartEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6958,7 +7922,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 480
+// Size: 416
 class C_OP_RemapNamedModelMeshGroupEndCap : public C_OP_RemapNamedModelElementEndCap, CParticleFunctionOperator, CParticleFunction
 {
 public:
@@ -6966,1876 +7930,1867 @@ public:
 };
 
 // Aligment: 10
-// Size: 880
+// Size: 688
 class C_OP_SetFromCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "field to read"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToRead; // 0x184
+	ParticleAttributeIndex_t m_nAttributeToRead; // 0x144
 	// MPropertyFriendlyName "field to write"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield"
-	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x188
+	ParticleAttributeIndex_t m_nAttributeToWrite; // 0x148
 	// MPropertyFriendlyName "local space control point number"
 	// MDefaultString
-	int32_t m_nLocalSpaceCP; // 0x18c
+	int32_t m_nLocalSpaceCP; // 0x14c
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x190
+	bool m_bRandom; // 0x150
 	// MPropertyFriendlyName "reverse order"
 	// MDefaultString
-	bool m_bReverse; // 0x191
+	bool m_bReverse; // 0x151
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x194
+	int32_t m_nRandomSeed; // 0x154
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x198
+	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x158
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x280
+	CPerParticleFloatInput m_flInterpolation; // 0x200
 	// MPropertyFriendlyName "Sub-Sample Between Input Points"
 	// MDefaultString
-	bool m_bSubSample; // 0x368
+	bool m_bSubSample; // 0x2a8
 };
 
 // Aligment: 5
-// Size: 896
+// Size: 704
 class C_OP_SetAttributeToScalarExpression : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	ScalarExpressionType_t m_nExpression; // 0x180
+	ScalarExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "input 1"
 	// MDefaultString
-	CPerParticleFloatInput m_flInput1; // 0x188
+	CPerParticleFloatInput m_flInput1; // 0x148
 	// MPropertyFriendlyName "input 2"
 	// MDefaultString
-	CPerParticleFloatInput m_flInput2; // 0x270
+	CPerParticleFloatInput m_flInput2; // 0x1f0
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x358
+	ParticleAttributeIndex_t m_nOutputField; // 0x298
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x35c
+	ParticleSetMethod_t m_nSetMethod; // 0x29c
 };
 
 // Aligment: 9
-// Size: 1344
+// Size: 1024
 class C_OP_MovementSkinnedPositionFromCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x180
+	int32_t m_nSnapshotControlPointNumber; // 0x140
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x184
+	int32_t m_nControlPointNumber; // 0x144
 	// MPropertyFriendlyName "random order"
 	// MDefaultString
-	bool m_bRandom; // 0x188
+	bool m_bRandom; // 0x148
 	// MPropertyFriendlyName "random seed"
 	// MDefaultString
-	int32_t m_nRandomSeed; // 0x18c
+	int32_t m_nRandomSeed; // 0x14c
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x190
+	bool m_bSetNormal; // 0x150
 	// MPropertyFriendlyName "particle increment amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flIncrement; // 0x198
+	CParticleCollectionFloatInput m_flIncrement; // 0x158
 	// MPropertyFriendlyName "Full Loop Increment Amount"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x280
+	CParticleCollectionFloatInput m_nFullLoopIncrement; // 0x200
 	// MPropertyFriendlyName "Snapshot start point"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x368
+	CParticleCollectionFloatInput m_nSnapShotStartPoint; // 0x2a8
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x450
+	CPerParticleFloatInput m_flInterpolation; // 0x350
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_MovementMoveAlongSkinnedCPSnapshot : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "snapshot control point number"
 	// MDefaultString
-	int32_t m_nSnapshotControlPointNumber; // 0x184
+	int32_t m_nSnapshotControlPointNumber; // 0x144
 	// MPropertyFriendlyName "set normal"
 	// MDefaultString
-	bool m_bSetNormal; // 0x188
+	bool m_bSetNormal; // 0x148
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_flInterpolation; // 0x190
+	CPerParticleFloatInput m_flInterpolation; // 0x150
 	// MPropertyFriendlyName "Snapshot Index T Value"
 	// MDefaultString
-	CPerParticleFloatInput m_flTValue; // 0x278
+	CPerParticleFloatInput m_flTValue; // 0x1f8
 };
 
 // Aligment: 2
-// Size: 656
+// Size: 528
 class C_OP_QuantizeFloat : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleFloatInput m_InputValue; // 0x180
+	CPerParticleFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 };
 
 // Aligment: 4
-// Size: 896
+// Size: 704
 class C_OP_SetFloatCollection : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CParticleCollectionFloatInput m_InputValue; // 0x180
+	CParticleCollectionFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_Lerp; // 0x270
+	CParticleCollectionFloatInput m_Lerp; // 0x1f0
 };
 
 // Aligment: 4
-// Size: 896
+// Size: 704
 class C_OP_SetFloat : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleFloatInput m_InputValue; // 0x180
+	CPerParticleFloatInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nOutputField; // 0x268
+	ParticleAttributeIndex_t m_nOutputField; // 0x1e8
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x26c
+	ParticleSetMethod_t m_nSetMethod; // 0x1ec
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_Lerp; // 0x270
+	CPerParticleFloatInput m_Lerp; // 0x1f0
 };
 
-// Aligment: 4
-// Size: 1696
+// Aligment: 3
+// Size: 1312
 class C_OP_SetVec : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "value"
-	CPerParticleVecInput m_InputValue; // 0x180
+	CPerParticleVecInput m_InputValue; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nOutputField; // 0x5b0
-	// MPropertyFriendlyName "set value method"
-	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x5b4
+	ParticleAttributeIndex_t m_nOutputField; // 0x470
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CPerParticleFloatInput m_Lerp; // 0x5b8
+	CPerParticleFloatInput m_Lerp; // 0x478
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_LockPoints : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "min column/particle index to affect"
 	// MDefaultString
-	int32_t m_nMinCol; // 0x180
+	int32_t m_nMinCol; // 0x140
 	// MPropertyFriendlyName "max column/particle index to affect"
 	// MDefaultString
-	int32_t m_nMaxCol; // 0x184
+	int32_t m_nMaxCol; // 0x144
 	// MPropertyFriendlyName "min row/particle index to affect"
 	// MDefaultString
-	int32_t m_nMinRow; // 0x188
+	int32_t m_nMinRow; // 0x148
 	// MPropertyFriendlyName "max row/particle index to affect"
 	// MDefaultString
-	int32_t m_nMaxRow; // 0x18c
+	int32_t m_nMaxRow; // 0x14c
 	// MPropertyFriendlyName "control point to lock to"
 	// MDefaultString
-	int32_t m_nControlPoint; // 0x190
+	int32_t m_nControlPoint; // 0x150
 	// MPropertyFriendlyName "amount of current position to preserve"
 	// MDefaultString
-	float m_flBlendValue; // 0x194
+	float m_flBlendValue; // 0x154
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_RemapDistanceToLineSegmentBase : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point 0"
 	// MDefaultString
-	int32_t m_nCP0; // 0x180
+	int32_t m_nCP0; // 0x140
 	// MPropertyFriendlyName "control point 1"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "min distance value"
 	// MDefaultString
-	float m_flMinInputValue; // 0x188
+	float m_flMinInputValue; // 0x148
 	// MPropertyFriendlyName "max distance value"
 	// MDefaultString
-	float m_flMaxInputValue; // 0x18c
+	float m_flMaxInputValue; // 0x14c
 	// MPropertyFriendlyName "use distance to an infinite line instead of a finite line segment"
 	// MDefaultString
-	bool m_bInfiniteLine; // 0x190
+	bool m_bInfiniteLine; // 0x150
 };
 
 // Aligment: 3
-// Size: 432
+// Size: 368
 class C_OP_RemapDistanceToLineSegmentToScalar : public C_OP_RemapDistanceToLineSegmentBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x160
 	// MPropertyFriendlyName "output value at min distance"
 	// MDefaultString
-	float m_flMinOutputValue; // 0x1a4
+	float m_flMinOutputValue; // 0x164
 	// MPropertyFriendlyName "output value at max distance"
 	// MDefaultString
-	float m_flMaxOutputValue; // 0x1a8
+	float m_flMaxOutputValue; // 0x168
 };
 
 // Aligment: 3
-// Size: 448
+// Size: 384
 class C_OP_RemapDistanceToLineSegmentToVector : public C_OP_RemapDistanceToLineSegmentBase, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1a0
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x160
 	// MPropertyFriendlyName "output value at min distance"
 	// MDefaultString
-	Vector m_vMinOutputValue; // 0x1a4
+	Vector m_vMinOutputValue; // 0x164
 	// MPropertyFriendlyName "output value at max distance"
 	// MDefaultString
-	Vector m_vMaxOutputValue; // 0x1b0
+	Vector m_vMaxOutputValue; // 0x170
 };
 
 // Aligment: 11
-// Size: 448
+// Size: 384
 class C_OP_TeleportBeam : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Position Control Point"
 	// MDefaultString
-	int32_t m_nCPPosition; // 0x180
+	int32_t m_nCPPosition; // 0x140
 	// MPropertyFriendlyName "Velocity Control Point"
 	// MDefaultString
-	int32_t m_nCPVelocity; // 0x184
+	int32_t m_nCPVelocity; // 0x144
 	// MPropertyFriendlyName "Misc Control Point"
 	// MDefaultString
-	int32_t m_nCPMisc; // 0x188
+	int32_t m_nCPMisc; // 0x148
 	// MPropertyFriendlyName "Color Control Point"
 	// MDefaultString
-	int32_t m_nCPColor; // 0x18c
+	int32_t m_nCPColor; // 0x14c
 	// MPropertyFriendlyName "Invalid Color Control Point"
 	// MDefaultString
-	int32_t m_nCPInvalidColor; // 0x190
+	int32_t m_nCPInvalidColor; // 0x150
 	// MPropertyFriendlyName "Extra Arc Data Point"
 	// MDefaultString
-	int32_t m_nCPExtraArcData; // 0x194
+	int32_t m_nCPExtraArcData; // 0x154
 	// MPropertyFriendlyName "Gravity"
 	// MDefaultString
-	Vector m_vGravity; // 0x198
+	Vector m_vGravity; // 0x158
 	// MPropertyFriendlyName "Arc Duration Maximum"
 	// MDefaultString
-	float m_flArcMaxDuration; // 0x1a4
+	float m_flArcMaxDuration; // 0x164
 	// MPropertyFriendlyName "Segment Break"
 	// MDefaultString
-	float m_flSegmentBreak; // 0x1a8
+	float m_flSegmentBreak; // 0x168
 	// MPropertyFriendlyName "Arc Speed"
 	// MDefaultString
-	float m_flArcSpeed; // 0x1ac
+	float m_flArcSpeed; // 0x16c
 	// MPropertyFriendlyName "Alpha"
 	// MDefaultString
-	float m_flAlpha; // 0x1b0
+	float m_flAlpha; // 0x170
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_CycleScalar : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "destination scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDestField; // 0x180
+	ParticleAttributeIndex_t m_nDestField; // 0x140
 	// MPropertyFriendlyName "Value at start of cycle"
 	// MDefaultString
-	float m_flStartValue; // 0x184
+	float m_flStartValue; // 0x144
 	// MPropertyFriendlyName "Value at end of cycle"
 	// MDefaultString
-	float m_flEndValue; // 0x188
+	float m_flEndValue; // 0x148
 	// MPropertyFriendlyName "Cycle time"
 	// MDefaultString
-	float m_flCycleTime; // 0x18c
+	float m_flCycleTime; // 0x14c
 	// MPropertyFriendlyName "Do not repeat cycle"
 	// MDefaultString
-	bool m_bDoNotRepeatCycle; // 0x190
+	bool m_bDoNotRepeatCycle; // 0x150
 	// MPropertyFriendlyName "Synchronize particles"
 	// MDefaultString
-	bool m_bSynchronizeParticles; // 0x191
+	bool m_bSynchronizeParticles; // 0x151
 	// MPropertyFriendlyName "Scale Start/End Control Point"
 	// MDefaultString
-	int32_t m_nCPScale; // 0x194
+	int32_t m_nCPScale; // 0x154
 	// MPropertyFriendlyName "start scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPFieldMin; // 0x198
+	int32_t m_nCPFieldMin; // 0x158
 	// MPropertyFriendlyName "end scale control point field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPFieldMax; // 0x19c
+	int32_t m_nCPFieldMax; // 0x15c
 	// MPropertyFriendlyName "set value method"
 	// MDefaultString
-	ParticleSetMethod_t m_nSetMethod; // 0x1a0
+	ParticleSetMethod_t m_nSetMethod; // 0x160
 };
 
 // Aligment: 11
-// Size: 480
+// Size: 416
 class C_OP_CalculateVectorAttribute : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "start value"
 	// MDefaultString
-	Vector m_vStartValue; // 0x180
+	Vector m_vStartValue; // 0x140
 	// MPropertyFriendlyName "input field 1"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput1; // 0x18c
+	ParticleAttributeIndex_t m_nFieldInput1; // 0x14c
 	// MPropertyFriendlyName "input scale 1"
 	// MDefaultString
-	float m_flInputScale1; // 0x190
+	float m_flInputScale1; // 0x150
 	// MPropertyFriendlyName "input field 2"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldInput2; // 0x194
+	ParticleAttributeIndex_t m_nFieldInput2; // 0x154
 	// MPropertyFriendlyName "input scale 2"
 	// MDefaultString
-	float m_flInputScale2; // 0x198
+	float m_flInputScale2; // 0x158
 	// MPropertyFriendlyName "control point input 1"
-	ControlPointReference_t m_nControlPointInput1; // 0x19c
+	ControlPointReference_t m_nControlPointInput1; // 0x15c
 	// MPropertyFriendlyName "control point scale 1"
 	// MDefaultString
-	float m_flControlPointScale1; // 0x1b0
+	float m_flControlPointScale1; // 0x170
 	// MPropertyFriendlyName "control point input 2"
-	ControlPointReference_t m_nControlPointInput2; // 0x1b4
+	ControlPointReference_t m_nControlPointInput2; // 0x174
 	// MPropertyFriendlyName "control point scale 2"
 	// MDefaultString
-	float m_flControlPointScale2; // 0x1c8
+	float m_flControlPointScale2; // 0x188
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nFieldOutput; // 0x1cc
+	ParticleAttributeIndex_t m_nFieldOutput; // 0x18c
 	// MPropertyFriendlyName "final per component scale"
 	// MDefaultString
-	Vector m_vFinalOutputScale; // 0x1d0
+	Vector m_vFinalOutputScale; // 0x190
 };
 
 // Aligment: 3
-// Size: 1088
+// Size: 832
 class C_OP_ColorAdjustHSL : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "hue adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flHueAdjust; // 0x180
+	CPerParticleFloatInput m_flHueAdjust; // 0x140
 	// MPropertyFriendlyName "saturation adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flSaturationAdjust; // 0x268
+	CPerParticleFloatInput m_flSaturationAdjust; // 0x1e8
 	// MPropertyFriendlyName "lightness adjust"
 	// MDefaultString
-	CPerParticleFloatInput m_flLightnessAdjust; // 0x350
+	CPerParticleFloatInput m_flLightnessAdjust; // 0x290
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_ConnectParentParticleToNearest : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nFirstControlPoint; // 0x180
+	int32_t m_nFirstControlPoint; // 0x140
 	// MPropertyFriendlyName "Second Control point to set"
 	// MDefaultString
-	int32_t m_nSecondControlPoint; // 0x184
+	int32_t m_nSecondControlPoint; // 0x144
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_UpdateLightSource : public CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color tint"
 	// MDefaultString
-	Color m_vColorTint; // 0x180
+	Color m_vColorTint; // 0x140
 	// MPropertyFriendlyName "amount to multiply light brightness by"
 	// MDefaultString
-	float m_flBrightnessScale; // 0x184
+	float m_flBrightnessScale; // 0x144
 	// MPropertyFriendlyName "amount to multiply particle system radius by to get light radius"
 	// MDefaultString
-	float m_flRadiusScale; // 0x188
+	float m_flRadiusScale; // 0x148
 	// MPropertyFriendlyName "minimum radius for created lights"
 	// MDefaultString
-	float m_flMinimumLightingRadius; // 0x18c
+	float m_flMinimumLightingRadius; // 0x14c
 	// MPropertyFriendlyName "maximum radius for created lights"
 	// MDefaultString
-	float m_flMaximumLightingRadius; // 0x190
+	float m_flMaximumLightingRadius; // 0x150
 	// MPropertyFriendlyName "amount of damping of changes"
 	// MDefaultString
-	float m_flPositionDampingConstant; // 0x194
+	float m_flPositionDampingConstant; // 0x154
 };
 
 // Aligment: 8
-// Size: 416
+// Size: 352
 class C_OP_RemapSpeedtoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInControlPointNumber; // 0x180
+	int32_t m_nInControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x184
+	int32_t m_nOutControlPointNumber; // 0x144
 	// MPropertyFriendlyName "Output field 0-2 X/Y/Z"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nField; // 0x188
+	int32_t m_nField; // 0x148
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 	// MPropertyFriendlyName "use delta of velocity instead of constant speed"
 	// MDefaultString
-	bool m_bUseDeltaV; // 0x19c
+	bool m_bUseDeltaV; // 0x15c
 };
 
 // Aligment: 8
-// Size: 1328
+// Size: 1008
 class C_OP_RemapDotProductToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "first input control point"
 	// MDefaultString
-	int32_t m_nInputCP1; // 0x180
+	int32_t m_nInputCP1; // 0x140
 	// MPropertyFriendlyName "second input control point"
 	// MDefaultString
-	int32_t m_nInputCP2; // 0x184
+	int32_t m_nInputCP2; // 0x144
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "output component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x18c
+	int32_t m_nOutVectorField; // 0x14c
 	// MPropertyFriendlyName "input minimum (-1 to 1)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInputMin; // 0x190
+	CParticleCollectionFloatInput m_flInputMin; // 0x150
 	// MPropertyFriendlyName "input maximum (-1 to 1)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInputMax; // 0x278
+	CParticleCollectionFloatInput m_flInputMax; // 0x1f8
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMin; // 0x360
+	CParticleCollectionFloatInput m_flOutputMin; // 0x2a0
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flOutputMax; // 0x448
+	CParticleCollectionFloatInput m_flOutputMax; // 0x348
 };
 
 // Aligment: 5
-// Size: 864
+// Size: 672
 class C_OP_SetControlPointFieldToScalarExpression : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	ScalarExpressionType_t m_nExpression; // 0x180
+	ScalarExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 	// MPropertyFriendlyName "output component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x188
+	int32_t m_nOutVectorField; // 0x148
 	// MPropertyFriendlyName "input 1"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInput1; // 0x190
+	CParticleCollectionFloatInput m_flInput1; // 0x150
 	// MPropertyFriendlyName "input 2"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInput2; // 0x278
+	CParticleCollectionFloatInput m_flInput2; // 0x1f8
 };
 
 // Aligment: 4
-// Size: 2544
+// Size: 1968
 class C_OP_SetControlPointToVectorExpression : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "expression"
 	// MDefaultString
-	VectorExpressionType_t m_nExpression; // 0x180
+	VectorExpressionType_t m_nExpression; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 	// MPropertyFriendlyName "input 1"
-	CParticleCollectionVecInput m_vInput1; // 0x188
+	CParticleCollectionVecInput m_vInput1; // 0x148
 	// MPropertyFriendlyName "input 2"
-	CParticleCollectionVecInput m_vInput2; // 0x5b8
+	CParticleCollectionVecInput m_vInput2; // 0x478
 };
 
 // Aligment: 6
-// Size: 416
+// Size: 352
 class C_OP_RemapModelVolumetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point"
 	// MDefaultString
-	int32_t m_nInControlPointNumber; // 0x180
+	int32_t m_nInControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x184
+	int32_t m_nOutControlPointNumber; // 0x144
 	// MPropertyFriendlyName "input volume minimum in cubic units"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input volume maximum in cubic units"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_RemapBoundingVolumetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "input volume minimum in cubic units"
 	// MDefaultString
-	float m_flInputMin; // 0x184
+	float m_flInputMin; // 0x144
 	// MPropertyFriendlyName "input volume maximum in cubic units"
 	// MDefaultString
-	float m_flInputMax; // 0x188
+	float m_flInputMax; // 0x148
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x18c
+	float m_flOutputMin; // 0x14c
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x190
+	float m_flOutputMax; // 0x150
 };
 
 // Aligment: 7
-// Size: 416
+// Size: 352
 class C_OP_RemapAverageScalarValuetoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutVectorField; // 0x184
+	int32_t m_nOutVectorField; // 0x144
 	// MPropertyFriendlyName "scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nField; // 0x188
+	ParticleAttributeIndex_t m_nField; // 0x148
 	// MPropertyFriendlyName "input volume minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x18c
+	float m_flInputMin; // 0x14c
 	// MPropertyFriendlyName "input volume maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x190
+	float m_flInputMax; // 0x150
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x194
+	float m_flOutputMin; // 0x154
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x198
+	float m_flOutputMax; // 0x158
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_RampCPLinearRandom : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutControlPointNumber; // 0x180
+	int32_t m_nOutControlPointNumber; // 0x140
 	// MPropertyFriendlyName "ramp rate min"
 	// MDefaultString
-	Vector m_vecRateMin; // 0x184
+	Vector m_vecRateMin; // 0x144
 	// MPropertyFriendlyName "ramp rate max"
 	// MDefaultString
-	Vector m_vecRateMax; // 0x190
+	Vector m_vecRateMax; // 0x150
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetParentControlPointsToChildCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nChildControlPoint; // 0x184
+	int32_t m_nChildControlPoint; // 0x144
 	// MPropertyFriendlyName "# of children to set"
 	// MDefaultString
-	int32_t m_nNumControlPoints; // 0x188
+	int32_t m_nNumControlPoints; // 0x148
 	// MPropertyFriendlyName "first parent control point to set from"
 	// MDefaultString
-	int32_t m_nFirstSourcePoint; // 0x18c
+	int32_t m_nFirstSourcePoint; // 0x14c
 	// MPropertyFriendlyName "set orientation"
 	// MDefaultString
-	bool m_bSetOrientation; // 0x190
+	bool m_bSetOrientation; // 0x150
 };
 
 // Aligment: 12
-// Size: 464
+// Size: 400
 class C_OP_SetControlPointPositions : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "inherit CP orientation"
 	// MDefaultString
-	bool m_bOrient; // 0x181
+	bool m_bOrient; // 0x141
 	// MPropertyFriendlyName "only set position once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x182
+	bool m_bSetOnce; // 0x142
 	// MPropertyFriendlyName "first control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "second control point number"
 	// MDefaultString
-	int32_t m_nCP2; // 0x188
+	int32_t m_nCP2; // 0x148
 	// MPropertyFriendlyName "third control point number"
 	// MDefaultString
-	int32_t m_nCP3; // 0x18c
+	int32_t m_nCP3; // 0x14c
 	// MPropertyFriendlyName "fourth control point number"
 	// MDefaultString
-	int32_t m_nCP4; // 0x190
+	int32_t m_nCP4; // 0x150
 	// MPropertyFriendlyName "first control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x194
+	Vector m_vecCP1Pos; // 0x154
 	// MPropertyFriendlyName "second control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP2Pos; // 0x1a0
+	Vector m_vecCP2Pos; // 0x160
 	// MPropertyFriendlyName "third control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP3Pos; // 0x1ac
+	Vector m_vecCP3Pos; // 0x16c
 	// MPropertyFriendlyName "fourth control point location"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP4Pos; // 0x1b8
+	Vector m_vecCP4Pos; // 0x178
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x1c4
+	int32_t m_nHeadLocation; // 0x184
 };
 
 // Aligment: 5
-// Size: 416
+// Size: 352
 class C_OP_SetSingleControlPointPosition : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "only set position once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x181
+	bool m_bSetOnce; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "control point location"
 	// MDefaultString
-	Vector m_vecCP1Pos; // 0x188
+	Vector m_vecCP1Pos; // 0x148
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x194
+	int32_t m_nHeadLocation; // 0x154
 };
 
 // Aligment: 8
-// Size: 896
+// Size: 704
 class C_OP_SetRandomControlPointPosition : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set positions in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "inherit CP orientation"
 	// MDefaultString
-	bool m_bOrient; // 0x181
+	bool m_bOrient; // 0x141
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x184
+	int32_t m_nCP1; // 0x144
 	// MPropertyFriendlyName "control point to offset positions from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x188
+	int32_t m_nHeadLocation; // 0x148
 	// MPropertyFriendlyName "re-randomize rate (-1 for once only)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flReRandomRate; // 0x190
+	CParticleCollectionFloatInput m_flReRandomRate; // 0x150
 	// MPropertyFriendlyName "control point min"
 	// MDefaultString
-	Vector m_vecCPMinPos; // 0x278
+	Vector m_vecCPMinPos; // 0x1f8
 	// MPropertyFriendlyName "control point max"
 	// MDefaultString
-	Vector m_vecCPMaxPos; // 0x284
+	Vector m_vecCPMaxPos; // 0x204
 	// MPropertyFriendlyName "Interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInterpolation; // 0x290
+	CParticleCollectionFloatInput m_flInterpolation; // 0x210
 };
 
 // Aligment: 8
-// Size: 656
+// Size: 528
 class C_OP_SetControlPointOrientation : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "set orientation in world space"
 	// MDefaultString
-	bool m_bUseWorldLocation; // 0x180
+	bool m_bUseWorldLocation; // 0x140
 	// MPropertyFriendlyName "randomize"
 	// MDefaultString
-	bool m_bRandomize; // 0x182
+	bool m_bRandomize; // 0x142
 	// MPropertyFriendlyName "only set orientation once"
 	// MDefaultString
-	bool m_bSetOnce; // 0x183
+	bool m_bSetOnce; // 0x143
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP; // 0x184
+	int32_t m_nCP; // 0x144
 	// MPropertyFriendlyName "control point to offset orientation from"
 	// MDefaultString
-	int32_t m_nHeadLocation; // 0x188
+	int32_t m_nHeadLocation; // 0x148
 	// MPropertyFriendlyName "pitch yaw roll"
 	// MDefaultString
-	QAngle m_vecRotation; // 0x18c
+	QAngle m_vecRotation; // 0x14c
 	// MPropertyFriendlyName "pitch yaw roll max"
 	// MDefaultString
-	QAngle m_vecRotationB; // 0x198
+	QAngle m_vecRotationB; // 0x158
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flInterpolation; // 0x1a8
+	CParticleCollectionFloatInput m_flInterpolation; // 0x168
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointFromObjectScale : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nCPInput; // 0x180
+	int32_t m_nCPInput; // 0x140
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nCPOutput; // 0x184
+	int32_t m_nCPOutput; // 0x144
 };
 
 // Aligment: 12
-// Size: 560
+// Size: 496
 class C_OP_DistanceBetweenCPsToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "starting control point"
 	// MDefaultString
-	int32_t m_nStartCP; // 0x180
+	int32_t m_nStartCP; // 0x140
 	// MPropertyFriendlyName "ending control point"
 	// MDefaultString
-	int32_t m_nEndCP; // 0x184
+	int32_t m_nEndCP; // 0x144
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "output control point field"
 	// MDefaultString
-	int32_t m_nOutputCPField; // 0x18c
+	int32_t m_nOutputCPField; // 0x14c
 	// MPropertyFriendlyName "distance minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x190
+	float m_flInputMin; // 0x150
 	// MPropertyFriendlyName "distance maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x194
+	float m_flInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x198
+	float m_flOutputMin; // 0x158
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x19c
+	float m_flOutputMax; // 0x15c
 	// MPropertyFriendlyName "maximum trace length"
 	// MDefaultString
-	float m_flMaxTraceLength; // 0x1a0
+	float m_flMaxTraceLength; // 0x160
 	// MPropertyFriendlyName "LOS Failure Scale"
 	// MDefaultString
-	float m_flLOSScale; // 0x1a4
+	float m_flLOSScale; // 0x164
 	// MPropertyFriendlyName "ensure line of sight"
 	// MDefaultString
-	bool m_bLOS; // 0x1a8
+	bool m_bLOS; // 0x168
 	// MPropertyFriendlyName "LOS collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a9
+	char[128] m_CollisionGroupName; // 0x169
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToPlayer : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 	// MPropertyFriendlyName "use eye orientation"
 	// MDefaultString
-	bool m_bOrientToEyes; // 0x190
+	bool m_bOrientToEyes; // 0x150
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToHand : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "hand"
 	// MDefaultString
-	int32_t m_nHand; // 0x184
+	int32_t m_nHand; // 0x144
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x188
+	Vector m_vecCP1Pos; // 0x148
 	// MPropertyFriendlyName "use hand orientation"
 	// MDefaultString
-	bool m_bOrientToHand; // 0x194
+	bool m_bOrientToHand; // 0x154
 };
 
 // Aligment: 3
-// Size: 416
+// Size: 352
 class C_OP_SetControlPointToHMD : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "control point offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 	// MPropertyFriendlyName "use hmd orientation"
 	// MDefaultString
-	bool m_bOrientToHMD; // 0x190
+	bool m_bOrientToHMD; // 0x150
 };
 
 // Aligment: 3
-// Size: 544
+// Size: 480
 class C_OP_SetControlPointPositionToTimeOfDayValue : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number"
 	// MDefaultString
-	int32_t m_nControlPointNumber; // 0x180
+	int32_t m_nControlPointNumber; // 0x140
 	// MPropertyFriendlyName "time-of-day parameter"
 	// MDefaultString
-	char[128] m_pszTimeOfDayParameter; // 0x184
+	char[128] m_pszTimeOfDayParameter; // 0x144
 	// MPropertyFriendlyName "default value"
 	// MDefaultString
-	Vector m_vecDefaultValue; // 0x204
+	Vector m_vecDefaultValue; // 0x1c4
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointToCenter : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point number to set"
 	// MDefaultString
-	int32_t m_nCP1; // 0x180
+	int32_t m_nCP1; // 0x140
 	// MPropertyFriendlyName "center offset"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecCP1Pos; // 0x184
+	Vector m_vecCP1Pos; // 0x144
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_OP_StopAfterCPDuration : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration at which to stop"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flDuration; // 0x180
+	CParticleCollectionFloatInput m_flDuration; // 0x140
 	// MPropertyFriendlyName "destroy all particles immediately"
 	// MDefaultString
-	bool m_bDestroyImmediately; // 0x268
+	bool m_bDestroyImmediately; // 0x1e8
 	// MPropertyFriendlyName "play end cap effect"
 	// MDefaultString
-	bool m_bPlayEndCap; // 0x269
+	bool m_bPlayEndCap; // 0x1e9
 };
 
 // Aligment: 4
-// Size: 1696
+// Size: 352
 class C_OP_SetControlPointRotation : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotation axis"
 	// MDefaultString
 	// MVectorIsCoordinate
-	CParticleCollectionVecInput m_vecRotAxis; // 0x180
+	Vector m_vecRotAxis; // 0x140
 	// MPropertyFriendlyName "rotation rate"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRotRate; // 0x5b0
+	float m_flRotRate; // 0x14c
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_nCP; // 0x698
+	int32_t m_nCP; // 0x150
 	// MPropertyFriendlyName "local space control point"
 	// MDefaultString
-	int32_t m_nLocalCP; // 0x69c
+	int32_t m_nLocalCP; // 0x154
 };
 
 // Aligment: 10
-// Size: 432
+// Size: 368
 class C_OP_RemapCPtoCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "input control point number"
 	// MDefaultString
-	int32_t m_nInputControlPoint; // 0x180
+	int32_t m_nInputControlPoint; // 0x140
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x184
+	int32_t m_nOutputControlPoint; // 0x144
 	// MPropertyFriendlyName "input field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nInputField; // 0x188
+	int32_t m_nInputField; // 0x148
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x18c
+	int32_t m_nOutputField; // 0x14c
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x190
+	float m_flInputMin; // 0x150
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x194
+	float m_flInputMax; // 0x154
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x198
+	float m_flOutputMin; // 0x158
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x19c
+	float m_flOutputMax; // 0x15c
 	// MPropertyFriendlyName "use the derivative"
 	// MDefaultString
-	bool m_bDerivative; // 0x1a0
+	bool m_bDerivative; // 0x160
 	// MPropertyFriendlyName "interpolation"
 	// MDefaultString
-	float m_flInterpRate; // 0x1a4
+	float m_flInterpRate; // 0x164
 };
 
 // Aligment: 4
-// Size: 416
+// Size: 352
 class C_OP_HSVShiftToCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "Target color control point number"
 	// MDefaultString
-	int32_t m_nColorCP; // 0x180
+	int32_t m_nColorCP; // 0x140
 	// MPropertyFriendlyName "Color Gem Enable control point number"
 	// MDefaultString
-	int32_t m_nColorGemEnableCP; // 0x184
+	int32_t m_nColorGemEnableCP; // 0x144
 	// MPropertyFriendlyName "output control point number"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x188
+	int32_t m_nOutputCP; // 0x148
 	// MPropertyFriendlyName "Default HSV Color"
 	// MDefaultString
-	Color m_DefaultHSVColor; // 0x18c
+	Color m_DefaultHSVColor; // 0x14c
 };
 
 // Aligment: 8
-// Size: 560
+// Size: 496
 class C_OP_SetControlPointToImpactPoint : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point to set"
 	// MDefaultString
-	int32_t m_nCPOut; // 0x180
+	int32_t m_nCPOut; // 0x140
 	// MPropertyFriendlyName "control point to trace from"
 	// MDefaultString
-	int32_t m_nCPIn; // 0x184
+	int32_t m_nCPIn; // 0x144
 	// MPropertyFriendlyName "trace update rate"
 	// MDefaultString
-	float m_flUpdateRate; // 0x188
+	float m_flUpdateRate; // 0x148
 	// MPropertyFriendlyName "max trace length"
 	// MDefaultString
-	float m_flTraceLength; // 0x18c
+	float m_flTraceLength; // 0x14c
 	// MPropertyFriendlyName "offset end point amount"
 	// MDefaultString
-	float m_flOffset; // 0x190
+	float m_flOffset; // 0x150
 	// MPropertyFriendlyName "trace direction override"
 	// MDefaultString
 	// MVectorIsCoordinate
-	Vector m_vecTraceDir; // 0x194
+	Vector m_vecTraceDir; // 0x154
 	// MPropertyFriendlyName "trace collision group"
 	// MDefaultString
-	char[128] m_CollisionGroupName; // 0x1a0
+	char[128] m_CollisionGroupName; // 0x160
 	// MPropertyFriendlyName "set to trace endpoint if no collision"
 	// MDefaultString
-	bool m_bSetToEndpoint; // 0x220
+	bool m_bSetToEndpoint; // 0x1e0
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_SetCPOrientationToPointAtCP : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "CP to point towards"
 	// MDefaultString
-	int32_t m_nInputCP; // 0x180
+	int32_t m_nInputCP; // 0x140
 	// MPropertyFriendlyName "CP to set"
 	// MDefaultString
-	int32_t m_nOutputCP; // 0x184
+	int32_t m_nOutputCP; // 0x144
 };
 
 // Aligment: 3
-// Size: 624
+// Size: 496
 class C_OP_EnableChildrenFromParentParticleCount : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first child to enable"
 	// MDefaultString
-	int32_t m_nFirstChild; // 0x184
+	int32_t m_nFirstChild; // 0x144
 	// MPropertyFriendlyName "max # of children to enable (-1 for max particle count)"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x188
+	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x148
 };
 
 // Aligment: 5
-// Size: 1088
+// Size: 832
 class C_OP_SelectivelyEnableChildren : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nChildGroupID; // 0x180
+	CParticleCollectionFloatInput m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "first child to enable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nFirstChild; // 0x268
+	CParticleCollectionFloatInput m_nFirstChild; // 0x1e8
 	// MPropertyFriendlyName "# of children to enable"
 	// MDefaultString
-	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x350
+	CParticleCollectionFloatInput m_nNumChildrenToEnable; // 0x290
 	// MPropertyFriendlyName "play endcap when children are removed"
 	// MDefaultString
-	bool m_bPlayEndcapOnStop; // 0x438
+	bool m_bPlayEndcapOnStop; // 0x338
 	// MPropertyFriendlyName "destroy particles immediately when child is removed"
 	// MDefaultString
-	bool m_bDestroyImmediately; // 0x439
+	bool m_bDestroyImmediately; // 0x339
 };
 
 // Aligment: 2
-// Size: 400
+// Size: 336
 class C_OP_PlayEndCapWhenFinished : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "play when emission ends"
 	// MDefaultString
-	bool m_bFireOnEmissionEnd; // 0x180
+	bool m_bFireOnEmissionEnd; // 0x140
 	// MPropertyFriendlyName "wait for children to finish"
 	// MDefaultString
-	bool m_bIncludeChildren; // 0x181
+	bool m_bIncludeChildren; // 0x141
 };
 
 // Aligment: 1
-// Size: 400
+// Size: 336
 class C_OP_ForceControlPointStub : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "control point"
 	// MDefaultString
-	int32_t m_ControlPoint; // 0x180
+	int32_t m_ControlPoint; // 0x140
 };
 
 // Aligment: 9
-// Size: 448
+// Size: 384
 class C_OP_DriveCPFromGlobalSoundFloat : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "output control point"
 	// MDefaultString
-	int32_t m_nOutputControlPoint; // 0x180
+	int32_t m_nOutputControlPoint; // 0x140
 	// MPropertyFriendlyName "output field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x184
+	int32_t m_nOutputField; // 0x144
 	// MPropertyFriendlyName "input minimum"
 	// MDefaultString
-	float m_flInputMin; // 0x188
+	float m_flInputMin; // 0x148
 	// MPropertyFriendlyName "input maximum"
 	// MDefaultString
-	float m_flInputMax; // 0x18c
+	float m_flInputMax; // 0x14c
 	// MPropertyFriendlyName "output minimum"
 	// MDefaultString
-	float m_flOutputMin; // 0x190
+	float m_flOutputMin; // 0x150
 	// MPropertyFriendlyName "output maximum"
 	// MDefaultString
-	float m_flOutputMax; // 0x194
+	float m_flOutputMax; // 0x154
 	// MPropertyFriendlyName "sound stack name"
-	CUtlString m_StackName; // 0x198
+	CUtlString m_StackName; // 0x158
 	// MPropertyFriendlyName "sound operator name"
-	CUtlString m_OperatorName; // 0x1a0
+	CUtlString m_OperatorName; // 0x160
 	// MPropertyFriendlyName "sound field name"
-	CUtlString m_FieldName; // 0x1a8
+	CUtlString m_FieldName; // 0x168
 };
 
 // Aligment: 3
-// Size: 400
+// Size: 336
 class C_OP_SetControlPointFieldToWater : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "source CP"
 	// MDefaultString
-	int32_t m_nSourceCP; // 0x180
+	int32_t m_nSourceCP; // 0x140
 	// MPropertyFriendlyName "dest CP"
 	// MDefaultString
-	int32_t m_nDestCP; // 0x184
+	int32_t m_nDestCP; // 0x144
 	// MPropertyFriendlyName "dest control point component"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nCPField; // 0x188
+	int32_t m_nCPField; // 0x148
 };
 
 // Aligment: 4
-// Size: 1088
+// Size: 832
 class C_OP_RepeatedTriggerChildGroup : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "Within-Cluster Refire Time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterRefireTime; // 0x188
+	CParticleCollectionFloatInput m_flClusterRefireTime; // 0x148
 	// MPropertyFriendlyName "Within-Cluster Fire Count Before Cooldown"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterSize; // 0x270
+	CParticleCollectionFloatInput m_flClusterSize; // 0x1f0
 	// MPropertyFriendlyName "Cluster Cooldown Time"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flClusterCooldown; // 0x358
+	CParticleCollectionFloatInput m_flClusterCooldown; // 0x298
 };
 
 // Aligment: 2
-// Size: 624
+// Size: 496
 class C_OP_ChooseRandomChildrenInGroup : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "group ID to affect"
 	// MDefaultString
-	int32_t m_nChildGroupID; // 0x180
+	int32_t m_nChildGroupID; // 0x140
 	// MPropertyFriendlyName "Number of Children to Use"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flNumberOfChildren; // 0x188
+	CParticleCollectionFloatInput m_flNumberOfChildren; // 0x148
 };
 
 // Aligment: 1
-// Size: 624
+// Size: 496
 class C_OP_SetSimulationRate : public CParticleFunctionPreEmission, CParticleFunctionOperator, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "simulation timescale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flSimulationScale; // 0x180
+	CParticleCollectionFloatInput m_flSimulationScale; // 0x140
 };
 
 // Aligment: 1
-// Size: 480
+// Size: 416
 class C_OP_RenderPoints : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1d0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x190
 };
 
 // Aligment: 16
-// Size: 5280
+// Size: 2400
 class CBaseTrailRenderer : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "orientation type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nOrientationType; // 0xca0
+	int32_t m_nOrientationType; // 0x360
 	// MPropertyFriendlyName "orientation control point"
 	// MDefaultString
-	int32_t m_nOrientationControlPoint; // 0xca4
+	int32_t m_nOrientationControlPoint; // 0x364
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xca8
+	float m_flMinSize; // 0x368
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xcac
+	float m_flMaxSize; // 0x36c
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flStartFadeSize; // 0xcb0
+	CParticleCollectionFloatInput m_flStartFadeSize; // 0x370
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	CParticleCollectionFloatInput m_flEndFadeSize; // 0xd98
+	CParticleCollectionFloatInput m_flEndFadeSize; // 0x418
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0xe80
+	float m_flDepthBias; // 0x4c0
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0xe88
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x4c8
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0xf70
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x570
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1058
+	CParticleCollectionVecInput m_vecColorScale; // 0x618
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x1488
+	ParticleColorBlendType_t m_nColorBlendType; // 0x948
 	// MPropertyFriendlyName "Clamp Non-Sheet texture V coords"
 	// MDefaultString
-	bool m_bClampV; // 0x148c
+	bool m_bClampV; // 0x94c
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
-	float m_flFinalTextureScaleU; // 0x1490
+	float m_flFinalTextureScaleU; // 0x950
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
-	float m_flFinalTextureScaleV; // 0x1494
+	float m_flFinalTextureScaleV; // 0x954
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
-	float m_flFinalTextureOffsetU; // 0x1498
+	float m_flFinalTextureOffsetU; // 0x958
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
-	float m_flFinalTextureOffsetV; // 0x149c
+	float m_flFinalTextureOffsetV; // 0x95c
 };
 
 // Aligment: 19
-// Size: 8416
+// Size: 4768
 class C_OP_RenderTrails : public CBaseTrailRenderer, CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "enable fading and clamping"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	bool m_bEnableFadingAndClamping; // 0x14a0
+	bool m_bEnableFadingAndClamping; // 0x960
 	// MPropertyFriendlyName "max length"
 	// MDefaultString
-	float m_flMaxLength; // 0x14a4
+	float m_flMaxLength; // 0x964
 	// MPropertyFriendlyName "min length"
 	// MDefaultString
-	float m_flMinLength; // 0x14a8
+	float m_flMinLength; // 0x968
 	// MPropertyFriendlyName "ignore delta time"
 	// MDefaultString
-	bool m_bIgnoreDT; // 0x14ac
+	bool m_bIgnoreDT; // 0x96c
 	// MPropertyFriendlyName "constrain radius to no more than this times the length"
 	// MDefaultString
-	float m_flConstrainRadiusToLengthRatio; // 0x14b0
+	float m_flConstrainRadiusToLengthRatio; // 0x970
 	// MPropertyFriendlyName "amount to scale trail length by"
 	// MDefaultString
-	float m_flLengthScale; // 0x14b4
+	float m_flLengthScale; // 0x974
 	// MPropertyFriendlyName "how long before a trail grows to its full length"
 	// MDefaultString
-	float m_flLengthFadeInTime; // 0x14b8
+	float m_flLengthFadeInTime; // 0x978
 	// MPropertyFriendlyName "head taper scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusHeadTaper; // 0x14c0
+	CPerParticleFloatInput m_flRadiusHeadTaper; // 0x980
 	// MPropertyFriendlyName "head color scale"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecHeadColorScale; // 0x15a8
+	CParticleCollectionVecInput m_vecHeadColorScale; // 0xa28
 	// MPropertyFriendlyName "head alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flHeadAlphaScale; // 0x19d8
+	CParticleCollectionFloatInput m_flHeadAlphaScale; // 0xd58
 	// MPropertyFriendlyName "tail taper scale"
 	// MDefaultString
-	CPerParticleFloatInput m_flRadiusTaper; // 0x1ac0
+	CPerParticleFloatInput m_flRadiusTaper; // 0xe00
 	// MPropertyFriendlyName "tail color scale"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecTailColorScale; // 0x1ba8
+	CParticleCollectionVecInput m_vecTailColorScale; // 0xea8
 	// MPropertyFriendlyName "tail alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flTailAlphaScale; // 0x1fd8
+	CParticleCollectionFloatInput m_flTailAlphaScale; // 0x11d8
 	// MPropertyFriendlyName "texture UV horizontal Scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nHorizCropField; // 0x20c0
+	ParticleAttributeIndex_t m_nHorizCropField; // 0x1280
 	// MPropertyFriendlyName "texture UV vertical Scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nVertCropField; // 0x20c4
+	ParticleAttributeIndex_t m_nVertCropField; // 0x1284
 	// MPropertyFriendlyName "Trail forward shift (fraction)"
 	// MDefaultString
-	float m_flForwardShift; // 0x20c8
+	float m_flForwardShift; // 0x1288
 	// MPropertyFriendlyName "Flip U or V texcoords if pitch or yaw go over PI"
 	// MDefaultString
-	bool m_bFlipUVBasedOnPitchYaw; // 0x20cc
+	bool m_bFlipUVBasedOnPitchYaw; // 0x128c
 	// MPropertyFriendlyName "Anchor point source"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nPrevPntSource; // 0x20d0
+	ParticleAttributeIndex_t m_nPrevPntSource; // 0x1290
 	// MPropertyFriendlyName "Use particle system topology"
 	// MDefaultString
-	bool m_bUseTopology; // 0x20d4
+	bool m_bUseTopology; // 0x1294
 };
 
 // Aligment: 37
-// Size: 5600
+// Size: 2160
 class C_OP_RenderRopes : public CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "enable fading and clamping"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	bool m_bEnableFadingAndClamping; // 0xca0
+	bool m_bEnableFadingAndClamping; // 0x360
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMinSize; // 0xca4
+	float m_flMinSize; // 0x364
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flMaxSize; // 0xca8
+	float m_flMaxSize; // 0x368
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flStartFadeSize; // 0xcac
+	float m_flStartFadeSize; // 0x36c
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
 	// MPropertyGroupName "Fading and culling"
-	float m_flEndFadeSize; // 0xcb0
+	float m_flEndFadeSize; // 0x370
 	// MPropertyFriendlyName "amount to taper the width of the trail end by"
 	// MDefaultString
-	float m_flRadiusTaper; // 0xcb4
+	float m_flRadiusTaper; // 0x374
 	// MPropertyFriendlyName "minium number of quads per render segment"
 	// MDefaultString
-	int32_t m_nMinTesselation; // 0xcb8
+	int32_t m_nMinTesselation; // 0x378
 	// MPropertyFriendlyName "maximum number of quads per render segment"
 	// MDefaultString
-	int32_t m_nMaxTesselation; // 0xcbc
+	int32_t m_nMaxTesselation; // 0x37c
 	// MPropertyFriendlyName "tesselation resolution scale factor"
 	// MDefaultString
-	float m_flTessScale; // 0xcc0
+	float m_flTessScale; // 0x380
 	// MPropertyFriendlyName "texture V World Size"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVWorldSize; // 0xcc8
+	float m_flTextureVWorldSize; // 0x384
 	// MPropertyFriendlyName "texture V Scroll Rate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVScrollRate; // 0xdb0
+	float m_flTextureVScrollRate; // 0x388
 	// MPropertyFriendlyName "texture V Offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	CParticleCollectionFloatInput m_flTextureVOffset; // 0xe98
+	float m_flTextureVOffset; // 0x38c
 	// MPropertyFriendlyName "texture V Params CP"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nTextureVParamsCP; // 0xf80
+	int32_t m_nTextureVParamsCP; // 0x390
 	// MPropertyFriendlyName "horizontal texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureScaleU; // 0xf84
+	float m_flFinalTextureScaleU; // 0x394
 	// MPropertyFriendlyName "vertical texture scale"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureScaleV; // 0xf88
+	float m_flFinalTextureScaleV; // 0x398
 	// MPropertyFriendlyName "horizontal texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureOffsetU; // 0xf8c
+	float m_flFinalTextureOffsetU; // 0x39c
 	// MPropertyFriendlyName "vertical texture offset"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flFinalTextureOffsetV; // 0xf90
+	float m_flFinalTextureOffsetV; // 0x3a0
 	// MPropertyFriendlyName "Clamp Non-Sheet texture V coords"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	bool m_bClampV; // 0xf94
+	bool m_bClampV; // 0x3a4
 	// MPropertyFriendlyName "scale CP start"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nScaleCP1; // 0xf98
+	int32_t m_nScaleCP1; // 0x3a8
 	// MPropertyFriendlyName "scale CP end"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	int32_t m_nScaleCP2; // 0xf9c
+	int32_t m_nScaleCP2; // 0x3ac
 	// MPropertyFriendlyName "scale V world size by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVSizeByControlPointDistance; // 0xfa0
+	float m_flScaleVSizeByControlPointDistance; // 0x3b0
 	// MPropertyFriendlyName "scale V scroll rate by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVScrollByControlPointDistance; // 0xfa4
+	float m_flScaleVScrollByControlPointDistance; // 0x3b4
 	// MPropertyFriendlyName "scale V offset by CP distance"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScaleVOffsetByControlPointDistance; // 0xfa8
+	float m_flScaleVOffsetByControlPointDistance; // 0x3b8
 	// MPropertyFriendlyName "Use scalar attribute for texture coordinate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	bool m_bUseScalarForTextureCoordinate; // 0xfad
+	bool m_bUseScalarForTextureCoordinate; // 0x3bd
 	// MPropertyFriendlyName "scalar to use for texture coordinate"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
 	// MPropertyGroupName "Texture Coordinates"
-	ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0xfb0
+	ParticleAttributeIndex_t m_nScalarFieldForTextureCoordinate; // 0x3c0
 	// MPropertyFriendlyName "scale value to map attribute to texture coordinate"
 	// MDefaultString
 	// MPropertyGroupName "Texture Coordinates"
-	float m_flScalarAttributeTextureCoordScale; // 0xfb4
+	float m_flScalarAttributeTextureCoordScale; // 0x3c4
 	// MPropertyFriendlyName "orientation_type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nOrientationType; // 0xfb8
+	int32_t m_nOrientationType; // 0x3c8
 	// MPropertyFriendlyName "attribute to use for normal"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_vector"
-	ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0xfbc
+	ParticleAttributeIndex_t m_nVectorFieldForOrientation; // 0x3cc
 	// MPropertyFriendlyName "draw as opaque"
 	// MDefaultString
-	bool m_bDrawAsOpaque; // 0xfc0
+	bool m_bDrawAsOpaque; // 0x3d0
 	// MPropertyFriendlyName "generate normals for cylinder"
 	// MDefaultString
-	bool m_bGenerateNormals; // 0xfc1
+	bool m_bGenerateNormals; // 0x3d1
 	// MPropertyFriendlyName "reverse point order"
 	// MDefaultString
-	bool m_bReverseOrder; // 0xfc2
+	bool m_bReverseOrder; // 0x3d2
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0xfc8
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x3d8
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x10b0
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x480
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1198
+	CParticleCollectionVecInput m_vecColorScale; // 0x528
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x15c8
+	ParticleColorBlendType_t m_nColorBlendType; // 0x858
 	// MPropertyFriendlyName "Closed loop"
 	// MDefaultString
-	bool m_bClosedLoop; // 0x15cc
+	bool m_bClosedLoop; // 0x85c
 	// MPropertyFriendlyName "depth comparison bias"
 	// MDefaultString
 	// MPropertyGroupName "Depth buffer control and effects"
-	float m_flDepthBias; // 0x15d0
+	float m_flDepthBias; // 0x860
 };
 
 // Aligment: 8
-// Size: 528
+// Size: 464
 class C_OP_RenderAsModels : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "models"
-	CUtlVector< ModelReference_t > m_ModelList; // 0x1d0
+	CUtlVector< ModelReference_t > m_ModelList; // 0x190
 	// MPropertyFriendlyName "scale factor for radius"
 	// MDefaultString
-	float m_flModelScale; // 0x1ec
+	float m_flModelScale; // 0x1ac
 	// MPropertyFriendlyName "scale model to match particle size"
 	// MDefaultString
-	bool m_bFitToModelSize; // 0x1f0
+	bool m_bFitToModelSize; // 0x1b0
 	// MPropertyFriendlyName "non-uniform scaling"
 	// MDefaultString
-	bool m_bNonUniformScaling; // 0x1f1
+	bool m_bNonUniformScaling; // 0x1b1
 	// MPropertyFriendlyName "X axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nXAxisScalingAttribute; // 0x1f4
+	ParticleAttributeIndex_t m_nXAxisScalingAttribute; // 0x1b4
 	// MPropertyFriendlyName "Y axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nYAxisScalingAttribute; // 0x1f8
+	ParticleAttributeIndex_t m_nYAxisScalingAttribute; // 0x1b8
 	// MPropertyFriendlyName "Z axis scaling scalar field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nZAxisScalingAttribute; // 0x1fc
+	ParticleAttributeIndex_t m_nZAxisScalingAttribute; // 0x1bc
 	// MPropertyFriendlyName "model size cull bloat"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_size_cull_bloat"
-	int32_t m_nSizeCullBloat; // 0x200
+	int32_t m_nSizeCullBloat; // 0x1c0
 };
 
 // Aligment: 7
-// Size: 512
+// Size: 448
 class C_OP_RenderLights : public C_OP_RenderPoints, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
-	float m_flAnimationRate; // 0x1e0
+	float m_flAnimationRate; // 0x1a0
 	// MPropertyFriendlyName "animation type"
 	// MDefaultString
-	AnimationType_t m_nAnimationType; // 0x1e4
+	AnimationType_t m_nAnimationType; // 0x1a4
 	// MPropertyFriendlyName "set animation value in FPS"
 	// MDefaultString
-	bool m_bAnimateInFPS; // 0x1e8
+	bool m_bAnimateInFPS; // 0x1a8
 	// MPropertyFriendlyName "minimum visual size"
 	// MDefaultString
-	float m_flMinSize; // 0x1ec
+	float m_flMinSize; // 0x1ac
 	// MPropertyFriendlyName "maximum visual size"
 	// MDefaultString
-	float m_flMaxSize; // 0x1f0
+	float m_flMaxSize; // 0x1b0
 	// MPropertyFriendlyName "size at which to start fading"
 	// MDefaultString
-	float m_flStartFadeSize; // 0x1f4
+	float m_flStartFadeSize; // 0x1b4
 	// MPropertyFriendlyName "size at which to fade away"
 	// MDefaultString
-	float m_flEndFadeSize; // 0x1f8
+	float m_flEndFadeSize; // 0x1b8
 };
 
 // Aligment: 5
-// Size: 496
+// Size: 432
 class C_OP_RenderBlobs : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "cube width"
 	// MDefaultString
-	float m_cubeWidth; // 0x1d0
+	float m_cubeWidth; // 0x190
 	// MPropertyFriendlyName "cutoff radius"
 	// MDefaultString
-	float m_cutoffRadius; // 0x1d4
+	float m_cutoffRadius; // 0x194
 	// MPropertyFriendlyName "render radius"
 	// MDefaultString
-	float m_renderRadius; // 0x1d8
+	float m_renderRadius; // 0x198
 	// MPropertyFriendlyName "scale CP (cube width/cutoff/render = x/y/z)"
 	// MDefaultString
-	int32_t m_nScaleCP; // 0x1dc
+	int32_t m_nScaleCP; // 0x19c
 	// MPropertyFriendlyName "material"
 	// MDefaultString
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1e0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1a0
 };
 
 // Aligment: 2
-// Size: 480
+// Size: 416
 class C_OP_RenderScreenVelocityRotate : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "rotate rate(dps)"
 	// MDefaultString
-	float m_flRotateRateDegrees; // 0x1d0
+	float m_flRotateRateDegrees; // 0x190
 	// MPropertyFriendlyName "forward angle"
 	// MDefaultString
-	float m_flForwardDegrees; // 0x1d4
+	float m_flForwardDegrees; // 0x194
 };
 
 // Aligment: 37
-// Size: 4016
+// Size: 3312
 class C_OP_RenderModels : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "activity override"
 	// MDefaultString
-	char[256] m_ActivityName; // 0x1d0
+	char[256] m_ActivityName; // 0x190
 	// MPropertyFriendlyName "model override economy loadout slot type"
 	// MDefaultString
-	char[256] m_EconSlotName; // 0x2d0
+	char[256] m_EconSlotName; // 0x290
 	// MPropertyFriendlyName "models"
-	CUtlVector< ModelReference_t > m_ModelList; // 0x3d0
+	CUtlVector< ModelReference_t > m_ModelList; // 0x390
 	// MPropertyFriendlyName "ignore normal"
 	// MDefaultString
-	bool m_bIgnoreNormal; // 0x3ec
+	bool m_bIgnoreNormal; // 0x3ac
 	// MPropertyFriendlyName "ignore radius"
 	// MDefaultString
-	bool m_bIgnoreRadius; // 0x3ed
+	bool m_bIgnoreRadius; // 0x3ad
 	// MPropertyFriendlyName "orient model z to normal"
 	// MDefaultString
-	bool m_bOrientZ; // 0x3ee
+	bool m_bOrientZ; // 0x3ae
 	// MPropertyFriendlyName "scale animation rate"
 	// MDefaultString
-	bool m_bScaleAnimationRate; // 0x3ef
+	bool m_bScaleAnimationRate; // 0x3af
 	// MPropertyFriendlyName "reset animation frame on stop"
 	// MDefaultString
-	bool m_bResetAnimOnStop; // 0x3f0
+	bool m_bResetAnimOnStop; // 0x3b0
 	// MPropertyFriendlyName "set animation frame manually"
 	// MDefaultString
-	bool m_bManualAnimFrame; // 0x3f1
+	bool m_bManualAnimFrame; // 0x3b1
 	// MPropertyFriendlyName "animation rate scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAnimationScaleField; // 0x3f4
+	ParticleAttributeIndex_t m_nAnimationScaleField; // 0x3b4
 	// MPropertyFriendlyName "skin number"
 	// MDefaultString
-	int32_t m_nSkin; // 0x3f8
+	int32_t m_nSkin; // 0x3b8
 	// MPropertyFriendlyName "bodygroup field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nBodyGroupField; // 0x3fc
+	ParticleAttributeIndex_t m_nBodyGroupField; // 0x3bc
 	// MPropertyFriendlyName "submodel field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSubModelField; // 0x400
+	ParticleAttributeIndex_t m_nSubModelField; // 0x3c0
 	// MPropertyFriendlyName "animation sequence field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAnimationField; // 0x404
+	ParticleAttributeIndex_t m_nAnimationField; // 0x3c4
 	// MPropertyFriendlyName "manual animation frame field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nManualFrameField; // 0x408
+	ParticleAttributeIndex_t m_nManualFrameField; // 0x3c8
 	// MPropertyFriendlyName "model LOD"
 	// MDefaultString
-	int32_t m_nLOD; // 0x40c
+	int32_t m_nLOD; // 0x3cc
 	// MPropertyFriendlyName "material override"
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x410
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hOverrideMaterial; // 0x3d0
 	// MPropertyFriendlyName "override translucent materials"
 	// MDefaultString
-	bool m_bOverrideTranslucentMaterials; // 0x418
+	bool m_bOverrideTranslucentMaterials; // 0x3d8
 	// MPropertyFriendlyName "skin override CP"
 	// MDefaultString
-	int32_t m_nSkinCP; // 0x41c
+	int32_t m_nSkinCP; // 0x3dc
 	// MPropertyFriendlyName "model override CP"
 	// MDefaultString
-	int32_t m_nModelCP; // 0x420
+	int32_t m_nModelCP; // 0x3e0
 	// MPropertyFriendlyName "model scale CP"
 	// MDefaultString
-	int32_t m_nModelScaleCP; // 0x424
+	int32_t m_nModelScaleCP; // 0x3e4
 	// MPropertyFriendlyName "animation rate"
 	// MDefaultString
-	float m_flAnimationRate; // 0x428
+	float m_flAnimationRate; // 0x3e8
 	// MPropertyFriendlyName "animated"
 	// MDefaultString
-	bool m_bAnimated; // 0x42c
+	bool m_bAnimated; // 0x3ec
 	// MPropertyFriendlyName "force looping animations"
 	// MDefaultString
-	bool m_bForceLoopingAnimation; // 0x42d
+	bool m_bForceLoopingAnimation; // 0x3ed
 	// MPropertyFriendlyName "forcedrawinterlevedwithsiblings"
 	// MDefaultString
-	bool m_bForceDrawInterlevedWithSiblings; // 0x42e
+	bool m_bForceDrawInterlevedWithSiblings; // 0x3ee
 	// MPropertyFriendlyName "Only Render in effects bloom pass"
 	// MDefaultString
-	bool m_bOnlyRenderInEffectsBloomPass; // 0x42f
+	bool m_bOnlyRenderInEffectsBloomPass; // 0x3ef
 	// MPropertyFriendlyName "model override original model only (ignore shapeshift/hex/etc)"
 	// MDefaultString
-	bool m_bOriginalModel; // 0x430
+	bool m_bOriginalModel; // 0x3f0
 	// MPropertyFriendlyName "suppress tinting of the model"
 	// MDefaultString
-	bool m_bSuppressTint; // 0x431
+	bool m_bSuppressTint; // 0x3f1
 	// MPropertyFriendlyName "use raw mesh group (ignore bodygroup field and use submodel field as raw meshgroup)"
 	// MDefaultString
-	bool m_bUseRawMeshGroup; // 0x432
+	bool m_bUseRawMeshGroup; // 0x3f2
 	// MPropertyFriendlyName "disable shadows"
 	// MDefaultString
-	bool m_bDisableShadows; // 0x433
+	bool m_bDisableShadows; // 0x3f3
 	// MPropertyFriendlyName "render attribute"
 	// MDefaultString
-	char[260] m_szRenderAttribute; // 0x434
+	char[260] m_szRenderAttribute; // 0x3f4
 	// MPropertyFriendlyName "material variables"
-	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x538
+	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x4f8
 	// MPropertyFriendlyName "Radius Scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusScale; // 0x550
+	CParticleCollectionFloatInput m_flRadiusScale; // 0x510
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flAlphaScale; // 0x638
+	CParticleCollectionFloatInput m_flAlphaScale; // 0x5b8
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x720
+	CParticleCollectionVecInput m_vecColorScale; // 0x660
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0xb50
+	ParticleColorBlendType_t m_nColorBlendType; // 0x990
 	// MPropertyFriendlyName "model component scale"
 	// MDefaultString
-	CPerParticleVecInput m_vecComponentScale; // 0xb58
+	CPerParticleVecInput m_vecComponentScale; // 0x998
 };
 
-// Aligment: 11
-// Size: 544
+// Aligment: 10
+// Size: 480
 class C_OP_RenderProjected : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "project on characters"
 	// MDefaultString
-	bool m_bProjectCharacter; // 0x1d0
+	bool m_bProjectCharacter; // 0x190
 	// MPropertyFriendlyName "project on world"
 	// MDefaultString
-	bool m_bProjectWorld; // 0x1d1
+	bool m_bProjectWorld; // 0x191
 	// MPropertyFriendlyName "project on water"
 	// MDefaultString
-	bool m_bProjectWater; // 0x1d2
+	bool m_bProjectWater; // 0x192
 	// MPropertyFriendlyName "flip horizontal"
 	// MDefaultString
-	bool m_bFlipHorizontal; // 0x1d3
+	bool m_bFlipHorizontal; // 0x193
 	// MPropertyFriendlyName "enable projected depth controls"
 	// MDefaultString
-	bool m_bEnableProjectedDepthControls; // 0x1d4
+	bool m_bEnableProjectedDepthControls; // 0x194
 	// MPropertyFriendlyName "min projection depth"
 	// MDefaultString
-	float m_flMinProjectionDepth; // 0x1d8
+	float m_flMinProjectionDepth; // 0x198
 	// MPropertyFriendlyName "max projection depth"
 	// MDefaultString
-	float m_flMaxProjectionDepth; // 0x1dc
+	float m_flMaxProjectionDepth; // 0x19c
 	// MPropertyFriendlyName "material"
 	// MPropertyAttributeEditor "AssetBrowse( vmat )"
 	// MDefaultString
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hProjectedMaterial; // 0x1e0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hProjectedMaterial; // 0x1a0
 	// MPropertyFriendlyName "sheet animation time scale"
 	// MDefaultString
-	float m_flAnimationTimeScale; // 0x1e8
-	// MPropertyFriendlyName "orient to normal"
-	// MDefaultString
-	bool m_bOrientToNormal; // 0x1ec
+	float m_flAnimationTimeScale; // 0x1a8
 	// MPropertyFriendlyName "material variables"
-	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1f0
+	CUtlVector< MaterialVariable_t > m_MaterialVars; // 0x1b0
 };
 
-// Aligment: 15
-// Size: 1600
+// Aligment: 14
+// Size: 1280
 class C_OP_RenderDeferredLight : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "projected texture use alpha test window"
 	// MDefaultString
-	bool m_bUseAlphaTestWindow; // 0x1d0
+	bool m_bUseAlphaTestWindow; // 0x190
 	// MPropertyFriendlyName "projected texture light"
 	// MDefaultString
-	bool m_bUseTexture; // 0x1d1
+	bool m_bUseTexture; // 0x191
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d4
+	float m_flRadiusScale; // 0x194
 	// MPropertyFriendlyName "alpha scale"
 	// MDefaultString
-	float m_flAlphaScale; // 0x1d8
+	float m_flAlphaScale; // 0x198
 	// MPropertyFriendlyName "spotlight distance"
 	// MDefaultString
-	float m_flLightDistance; // 0x1dc
+	float m_flLightDistance; // 0x19c
 	// MPropertyFriendlyName "light start falloff"
 	// MDefaultString
-	float m_flStartFalloff; // 0x1e0
+	float m_flStartFalloff; // 0x1a0
 	// MPropertyFriendlyName "spotlight distance falloff"
 	// MDefaultString
-	float m_flDistanceFalloff; // 0x1e4
+	float m_flDistanceFalloff; // 0x1a4
 	// MPropertyFriendlyName "spotlight FoV"
 	// MDefaultString
-	float m_flSpotFoV; // 0x1e8
+	float m_flSpotFoV; // 0x1a8
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1f0
+	CParticleCollectionVecInput m_vecColorScale; // 0x1b0
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x620
+	ParticleColorBlendType_t m_nColorBlendType; // 0x4e0
 	// MPropertyFriendlyName "projected texture alpha test point scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x624
+	ParticleAttributeIndex_t m_nAlphaTestPointField; // 0x4e4
 	// MPropertyFriendlyName "projected texture alpha test range scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x628
+	ParticleAttributeIndex_t m_nAlphaTestRangeField; // 0x4e8
 	// MPropertyFriendlyName "projected texture alpha test sharpness scale field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x62c
+	ParticleAttributeIndex_t m_nAlphaTestSharpnessField; // 0x4ec
 	// MPropertyFriendlyName "texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x630
-	// MPropertyFriendlyName "HSV Shift Control Point"
-	// MDefaultString
-	int32_t m_nHSVShiftControlPoint; // 0x638
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hTexture; // 0x4f0
 };
 
 // Aligment: 13
-// Size: 2064
+// Size: 1616
 class C_OP_RenderStandardLight : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "light type"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nLightType; // 0x1d0
+	int32_t m_nLightType; // 0x190
 	// MPropertyFriendlyName "color blend"
 	// MDefaultString
-	CParticleCollectionVecInput m_vecColorScale; // 0x1d8
+	CParticleCollectionVecInput m_vecColorScale; // 0x198
 	// MPropertyFriendlyName "color blend type"
 	// MDefaultString
-	ParticleColorBlendType_t m_nColorBlendType; // 0x608
+	ParticleColorBlendType_t m_nColorBlendType; // 0x4c8
 	// MPropertyFriendlyName "intensity"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flIntensity; // 0x610
+	CParticleCollectionFloatInput m_flIntensity; // 0x4d0
 	// MPropertyFriendlyName "cast shadows"
 	// MDefaultString
-	bool m_bCastShadows; // 0x6f8
+	bool m_bCastShadows; // 0x578
 	// MPropertyFriendlyName "inner cone angle"
 	// MDefaultString
-	float m_flTheta; // 0x6fc
+	float m_flTheta; // 0x57c
 	// MPropertyFriendlyName "outer cone angle"
 	// MDefaultString
-	float m_flPhi; // 0x700
+	float m_flPhi; // 0x580
 	// MPropertyFriendlyName "light radius multiplier"
 	// MDefaultString
-	CParticleCollectionFloatInput m_flRadiusMultiplier; // 0x708
+	CParticleCollectionFloatInput m_flRadiusMultiplier; // 0x588
 	// MPropertyFriendlyName "falloff linearity"
 	// MDefaultString
-	float m_flFalloffLinearity; // 0x7f0
+	float m_flFalloffLinearity; // 0x630
 	// MPropertyFriendlyName "render diffuse"
 	// MDefaultString
-	bool m_bRenderDiffuse; // 0x7f4
+	bool m_bRenderDiffuse; // 0x634
 	// MPropertyFriendlyName "render specular"
 	// MDefaultString
-	bool m_bRenderSpecular; // 0x7f5
+	bool m_bRenderSpecular; // 0x635
 	// MPropertyFriendlyName "light cookie string"
-	CUtlString m_lightCookie; // 0x7f8
+	CUtlString m_lightCookie; // 0x638
 	// MPropertyFriendlyName "light priority"
 	// MDefaultString
-	int32_t m_nPriority; // 0x800
+	int32_t m_nPriority; // 0x640
 };
 
 // Aligment: 0
-// Size: 464
+// Size: 400
 class C_OP_RenderClothForce : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
@@ -8843,7 +9798,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 464
+// Size: 400
 class C_OP_Callback : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
@@ -8851,235 +9806,235 @@ public:
 };
 
 // Aligment: 9
-// Size: 512
+// Size: 448
 class C_OP_RenderScreenShake : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration scale"
 	// MDefaultString
-	float m_flDurationScale; // 0x1d0
+	float m_flDurationScale; // 0x190
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d4
+	float m_flRadiusScale; // 0x194
 	// MPropertyFriendlyName "frequence scale"
 	// MDefaultString
-	float m_flFrequencyScale; // 0x1d8
+	float m_flFrequencyScale; // 0x198
 	// MPropertyFriendlyName "amplitude scale"
 	// MDefaultString
-	float m_flAmplitudeScale; // 0x1dc
+	float m_flAmplitudeScale; // 0x19c
 	// MPropertyFriendlyName "radius field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nRadiusField; // 0x1e0
+	ParticleAttributeIndex_t m_nRadiusField; // 0x1a0
 	// MPropertyFriendlyName "duration field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDurationField; // 0x1e4
+	ParticleAttributeIndex_t m_nDurationField; // 0x1a4
 	// MPropertyFriendlyName "frequency field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nFrequencyField; // 0x1e8
+	ParticleAttributeIndex_t m_nFrequencyField; // 0x1a8
 	// MPropertyFriendlyName "amplitude field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nAmplitudeField; // 0x1ec
+	ParticleAttributeIndex_t m_nAmplitudeField; // 0x1ac
 	// MPropertyFriendlyName "control point of shake recipient (-1 = global)"
 	// MDefaultString
-	int32_t m_nFilterCP; // 0x1f0
+	int32_t m_nFilterCP; // 0x1b0
 };
 
 // Aligment: 4
-// Size: 480
+// Size: 416
 class C_OP_RenderTonemapController : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "tonemap level scale"
 	// MDefaultString
-	float m_flTonemapLevel; // 0x1d0
+	float m_flTonemapLevel; // 0x190
 	// MPropertyFriendlyName "tonemap weight scale"
 	// MDefaultString
-	float m_flTonemapWeight; // 0x1d4
+	float m_flTonemapWeight; // 0x194
 	// MPropertyFriendlyName "tonemap level"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nTonemapLevelField; // 0x1d8
+	ParticleAttributeIndex_t m_nTonemapLevelField; // 0x198
 	// MPropertyFriendlyName "tonemap weight"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nTonemapWeightField; // 0x1dc
+	ParticleAttributeIndex_t m_nTonemapWeightField; // 0x19c
 };
 
 // Aligment: 12
-// Size: 768
+// Size: 704
 class C_OP_RenderSound : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "duration scale"
 	// MDefaultString
-	float m_flDurationScale; // 0x1d0
+	float m_flDurationScale; // 0x190
 	// MPropertyFriendlyName "decibel level scale"
 	// MDefaultString
-	float m_flSndLvlScale; // 0x1d4
+	float m_flSndLvlScale; // 0x194
 	// MPropertyFriendlyName "pitch scale"
 	// MDefaultString
-	float m_flPitchScale; // 0x1d8
+	float m_flPitchScale; // 0x198
 	// MPropertyFriendlyName "volume scale"
 	// MDefaultString
-	float m_flVolumeScale; // 0x1dc
+	float m_flVolumeScale; // 0x19c
 	// MPropertyFriendlyName "decibel level field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nSndLvlField; // 0x1e0
+	ParticleAttributeIndex_t m_nSndLvlField; // 0x1a0
 	// MPropertyFriendlyName "duration field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nDurationField; // 0x1e4
+	ParticleAttributeIndex_t m_nDurationField; // 0x1a4
 	// MPropertyFriendlyName "pitch field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nPitchField; // 0x1e8
+	ParticleAttributeIndex_t m_nPitchField; // 0x1a8
 	// MPropertyFriendlyName "volume field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nVolumeField; // 0x1ec
+	ParticleAttributeIndex_t m_nVolumeField; // 0x1ac
 	// MPropertyFriendlyName "sound channel"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "sound_channel"
-	int32_t m_nChannel; // 0x1f0
+	int32_t m_nChannel; // 0x1b0
 	// MPropertyFriendlyName "sound control point number"
 	// MDefaultString
-	int32_t m_nCPReference; // 0x1f4
+	int32_t m_nCPReference; // 0x1b4
 	// MPropertyFriendlyName "sound"
 	// MDefaultString
 	// MPropertyAttributeEditor "SoundPicker()"
-	char[256] m_pszSoundName; // 0x1f8
+	char[256] m_pszSoundName; // 0x1b8
 	// MPropertyFriendlyName "suppress stop event"
-	bool m_bSuppressStopSoundEvent; // 0x2f8
+	bool m_bSuppressStopSoundEvent; // 0x2b8
 };
 
 // Aligment: 7
-// Size: 528
+// Size: 464
 class C_OP_RenderStatusEffect : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "color warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureColorWarp; // 0x1d0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureColorWarp; // 0x190
 	// MPropertyFriendlyName "detail 2 texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDetail2; // 0x1d8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDetail2; // 0x198
 	// MPropertyFriendlyName "diffuse warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDiffuseWarp; // 0x1e0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureDiffuseWarp; // 0x1a0
 	// MPropertyFriendlyName "fresnel color warp texture (3d)"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelColorWarp; // 0x1e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelColorWarp; // 0x1a8
 	// MPropertyFriendlyName "fresnel warp texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelWarp; // 0x1f0
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureFresnelWarp; // 0x1b0
 	// MPropertyFriendlyName "specular warp texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureSpecularWarp; // 0x1f8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureSpecularWarp; // 0x1b8
 	// MPropertyFriendlyName "environment map texture"
 	// MPropertyAttributeEditor "AssetBrowse( vtex, *showassetpreview )"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureEnvMap; // 0x200
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_pTextureEnvMap; // 0x1c0
 };
 
 // Aligment: 3
-// Size: 480
+// Size: 416
 class C_OP_RenderFlattenGrass : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "flattening strength"
 	// MDefaultString
-	float m_flFlattenStrength; // 0x1d0
+	float m_flFlattenStrength; // 0x190
 	// MPropertyFriendlyName "strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nStrengthFieldOverride; // 0x1d4
+	ParticleAttributeIndex_t m_nStrengthFieldOverride; // 0x194
 	// MPropertyFriendlyName "radius scale"
 	// MDefaultString
-	float m_flRadiusScale; // 0x1d8
+	float m_flRadiusScale; // 0x198
 };
 
 // Aligment: 10
-// Size: 512
+// Size: 448
 class C_OP_RenderTreeShake : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "peak strength"
 	// MDefaultString
-	float m_flPeakStrength; // 0x1d0
+	float m_flPeakStrength; // 0x190
 	// MPropertyFriendlyName "peak strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nPeakStrengthFieldOverride; // 0x1d4
+	ParticleAttributeIndex_t m_nPeakStrengthFieldOverride; // 0x194
 	// MPropertyFriendlyName "radius"
 	// MDefaultString
-	float m_flRadius; // 0x1d8
+	float m_flRadius; // 0x198
 	// MPropertyFriendlyName "strength field override"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "particlefield_scalar"
-	ParticleAttributeIndex_t m_nRadiusFieldOverride; // 0x1dc
+	ParticleAttributeIndex_t m_nRadiusFieldOverride; // 0x19c
 	// MPropertyFriendlyName "shake duration after end"
 	// MDefaultString
-	float m_flShakeDuration; // 0x1e0
+	float m_flShakeDuration; // 0x1a0
 	// MPropertyFriendlyName "amount of time taken to smooth between different shake parameters"
 	// MDefaultString
-	float m_flTransitionTime; // 0x1e4
+	float m_flTransitionTime; // 0x1a4
 	// MPropertyFriendlyName "Twist amount (-1..1)"
 	// MDefaultString
-	float m_flTwistAmount; // 0x1e8
+	float m_flTwistAmount; // 0x1a8
 	// MPropertyFriendlyName "Radial Amount (-1..1)"
 	// MDefaultString
-	float m_flRadialAmount; // 0x1ec
+	float m_flRadialAmount; // 0x1ac
 	// MPropertyFriendlyName "Control Point Orientation Amount (-1..1)"
 	// MDefaultString
-	float m_flControlPointOrientationAmount; // 0x1f0
+	float m_flControlPointOrientationAmount; // 0x1b0
 	// MPropertyFriendlyName "Control Point for Orientation Amount"
 	// MDefaultString
-	int32_t m_nControlPointForLinearDirection; // 0x1f4
+	int32_t m_nControlPointForLinearDirection; // 0x1b4
 };
 
 // Aligment: 2
-// Size: 480
+// Size: 416
 class C_OP_RenderText : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "outline color"
 	// MDefaultString
-	Color m_OutlineColor; // 0x1d0
+	Color m_OutlineColor; // 0x190
 	// MPropertyFriendlyName "default text"
-	CUtlString m_DefaultText; // 0x1d8
+	CUtlString m_DefaultText; // 0x198
 };
 
 // Aligment: 4
-// Size: 720
+// Size: 592
 class C_OP_RenderVRHapticEvent : public CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "haptic hand"
 	// MDefaultString
 	// MPropertyAttributeChoiceEnumName
-	int32_t m_nHand; // 0x1d0
+	int32_t m_nHand; // 0x190
 	// MPropertyFriendlyName "hand control point number"
 	// MDefaultString
-	int32_t m_nOutputHandCP; // 0x1d4
+	int32_t m_nOutputHandCP; // 0x194
 	// MPropertyFriendlyName "cp field"
 	// MDefaultString
 	// MPropertyAttributeChoiceName "vector_component"
-	int32_t m_nOutputField; // 0x1d8
+	int32_t m_nOutputField; // 0x198
 	// MPropertyFriendlyName "amplitude"
 	// MDefaultString
-	CPerParticleFloatInput m_flAmplitude; // 0x1e0
+	CPerParticleFloatInput m_flAmplitude; // 0x1a0
 };
 
 // Aligment: 1
-// Size: 6544
+// Size: 2512
 class C_OP_RenderFogSprites : public C_OP_RenderSprites, CBaseRendererSource2, CParticleFunctionRenderer, CParticleFunction
 {
 public:
 	// MPropertyFriendlyName "material"
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x1980
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x9c0
 };
 
diff --git a/sdk/rendersystemdx11.hpp b/sdk/rendersystemdx11.hpp
index b4385416..16df55a1 100644
--- a/sdk/rendersystemdx11.hpp
+++ b/sdk/rendersystemdx11.hpp
@@ -57,7 +57,7 @@ enum class RenderSlotType_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 9
+// Size: 8
 enum class RenderBufferFlags_t : uint32_t
 {
 	RENDER_BUFFER_USAGE_VERTEX_BUFFER = 0x1,
@@ -68,7 +68,6 @@ enum class RenderBufferFlags_t : uint32_t
 	RENDER_BUFFER_STRUCTURED_BUFFER = 0x20,
 	RENDER_BUFFER_APPEND_CONSUME_BUFFER = 0x40,
 	RENDER_BUFFER_UAV_COUNTER = 0x80,
-	RENDER_BUFFER_UAV_DRAW_INDIRECT_ARGS = 0x100,
 };
 
 // Aligment: 4
@@ -123,14 +122,15 @@ enum class RenderPrimitiveType_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 5
+// Size: 6
 enum class InputLayoutVariation_t : uint32_t
 {
 	INPUT_LAYOUT_VARIATION_DEFAULT = 0x0,
-	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x1,
-	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x2,
-	INPUT_LAYOUT_VARIATION_STREAM1_DRAWINDIRECT_ID = 0x3,
-	INPUT_LAYOUT_VARIATION_MAX = 0x4,
+	INPUT_LAYOUT_VARIATION_STREAM1_MAT3X4 = 0x1,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID = 0x2,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_LIGHTMAP_PARAMS = 0x3,
+	INPUT_LAYOUT_VARIATION_STREAM1_INSTANCEID_MORPH_VERT_ID = 0x4,
+	INPUT_LAYOUT_VARIATION_MAX = 0x5,
 };
 
 // Aligment: 4
diff --git a/sdk/rendersystemdx9.hpp b/sdk/rendersystemdx9.hpp
new file mode 100644
index 00000000..1eb27272
--- /dev/null
+++ b/sdk/rendersystemdx9.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include <cstdint>
+#include "!GlobalTypes.hpp"
+
+///////////////////////////////////////////
+// Binary: rendersystemdx9.dll
+// Class Count: 0
+// Enum Count: 0
+///////////////////////////////////////////
+
diff --git a/sdk/resourcesystem.hpp b/sdk/resourcesystem.hpp
index 6bda90ef..991069f5 100644
--- a/sdk/resourcesystem.hpp
+++ b/sdk/resourcesystem.hpp
@@ -4,12 +4,12 @@
 
 ///////////////////////////////////////////
 // Binary: resourcesystem.dll
-// Class Count: 28
+// Class Count: 34
 // Enum Count: 2
 ///////////////////////////////////////////
 
 // Aligment: 4
-// Size: 7
+// Size: 6
 enum class LightType_t : uint32_t
 {
 	MATERIAL_LIGHT_DISABLE = 0x0,
@@ -18,7 +18,6 @@ enum class LightType_t : uint32_t
 	MATERIAL_LIGHT_SPOT = 0x3,
 	MATERIAL_LIGHT_ORTHO = 0x4,
 	MATERIAL_LIGHT_ENVIRONMENT_PROBE = 0x5,
-	MATERIAL_LIGHT_AREA = 0x6,
 };
 
 // Aligment: 4
@@ -28,14 +27,6 @@ enum class LightSourceShape_t : uint32_t
 	LIGHT_SOURCE_SHAPE_SPHERE = 0x0,
 };
 
-// Aligment: 0
-// Size: 1
-class InfoForResourceTypeCGenericDataResource
-{
-public:
-// <no members described>
-};
-
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeIParticleSystemDefinition
@@ -116,6 +107,14 @@ public:
 // <no members described>
 };
 
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeIVectorGraphic
+{
+public:
+// <no members described>
+};
+
 // Aligment: 0
 // Size: 1
 class InfoForResourceTypeCVSoundEventScriptList
@@ -206,7 +205,7 @@ public:
 
 // Aligment: 0
 // Size: 1
-class InfoForResourceTypeIAnimationGraph
+class InfoForResourceTypeCPanoramaStyle
 {
 public:
 // <no members described>
@@ -214,7 +213,47 @@ public:
 
 // Aligment: 0
 // Size: 1
-class InfoForResourceTypeIAnimationSubGraph
+class InfoForResourceTypeCPanoramaLayout
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCPanoramaDynamicImages
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDotaItemDefinitionResource
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCPanoramaScript
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDOTAPatchNotesList
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeIAnimationGraph
 {
 public:
 // <no members described>
@@ -228,8 +267,16 @@ public:
 // <no members described>
 };
 
-// Aligment: 35
-// Size: 264
+// Aligment: 0
+// Size: 1
+class InfoForResourceTypeCDACGameDefsData
+{
+public:
+// <no members described>
+};
+
+// Aligment: 36
+// Size: 260
 struct LightDesc_t
 {
 public:
@@ -243,31 +290,32 @@ public:
 	float m_Attenuation2; // 0x2c
 	float m_Theta; // 0x30
 	float m_Phi; // 0x34
-	int32_t m_nLightGroupCount; // 0x40
-	CUtlStringToken[1] m_lightGroups; // 0x44
-	bool m_bCastShadows; // 0x48
-	int32_t m_nShadowWidth; // 0x4c
-	int32_t m_nShadowHeight; // 0x50
-	int32_t m_nShadowCascadeCount; // 0x54
-	float32[4] m_flShadowCascadeDistance; // 0x58
-	int32[4] m_nShadowCascadeResolution; // 0x68
-	bool m_bUsesIndexedBakedLighting; // 0x78
-	int32_t m_nBakeLightIndex; // 0x7c
-	float m_flBakeLightIndexScale; // 0x80
-	int32_t m_nFogLightingMode; // 0x84
-	bool m_bRenderDiffuse; // 0x88
-	bool m_bRenderSpecular; // 0x89
-	bool m_bRenderTransmissive; // 0x8a
-	int32_t m_nPriority; // 0x8c
-	LightSourceShape_t m_Shape; // 0x90
-	float m_flLightSourceDim0; // 0x94
-	float m_flLightSourceDim1; // 0x98
-	float m_flLightSourceSize0; // 0x9c
-	float m_flLightSourceSize1; // 0xa0
-	float m_flPrecomputedMaxRange; // 0xa4
-	float m_flFogContributionStength; // 0xa8
-	float m_flNearClipPlane; // 0xac
-	Vector m_vecUp; // 0xc8
+	CUtlStringToken m_lightCookie; // 0x38
+	int32_t m_nLightGroupCount; // 0x3c
+	CUtlStringToken[1] m_lightGroups; // 0x40
+	bool m_bCastShadows; // 0x44
+	int32_t m_nShadowWidth; // 0x48
+	int32_t m_nShadowHeight; // 0x4c
+	int32_t m_nShadowCascadeCount; // 0x50
+	float32[4] m_flShadowCascadeDistance; // 0x54
+	int32[4] m_nShadowCascadeResolution; // 0x64
+	bool m_bUsesIndexedBakedLighting; // 0x74
+	int32_t m_nBakeLightIndex; // 0x78
+	float m_flBakeLightIndexScale; // 0x7c
+	int32_t m_nFogLightingMode; // 0x80
+	bool m_bRenderDiffuse; // 0x84
+	bool m_bRenderSpecular; // 0x85
+	bool m_bRenderTransmissive; // 0x86
+	int32_t m_nPriority; // 0x88
+	LightSourceShape_t m_Shape; // 0x8c
+	float m_flLightSourceDim0; // 0x90
+	float m_flLightSourceDim1; // 0x94
+	float m_flLightSourceSize0; // 0x98
+	float m_flLightSourceSize1; // 0x9c
+	float m_flPrecomputedMaxRange; // 0xa0
+	float m_flFogContributionStength; // 0xa4
+	float m_flNearClipPlane; // 0xa8
+	Vector m_vecUp; // 0xc4
 };
 
 // Aligment: 2
diff --git a/sdk/scenefilecache.hpp b/sdk/scenefilecache.hpp
new file mode 100644
index 00000000..e25f5304
--- /dev/null
+++ b/sdk/scenefilecache.hpp
@@ -0,0 +1,10 @@
+#pragma once
+#include <cstdint>
+#include "!GlobalTypes.hpp"
+
+///////////////////////////////////////////
+// Binary: scenefilecache.dll
+// Class Count: 0
+// Enum Count: 0
+///////////////////////////////////////////
+
diff --git a/sdk/scenesystem.hpp b/sdk/scenesystem.hpp
index 39b826e6..275f84c1 100644
--- a/sdk/scenesystem.hpp
+++ b/sdk/scenesystem.hpp
@@ -4,10 +4,84 @@
 
 ///////////////////////////////////////////
 // Binary: scenesystem.dll
-// Class Count: 9
+// Class Count: 14
 // Enum Count: 0
 ///////////////////////////////////////////
 
+// Aligment: 4
+// Size: 48
+struct CSceneObjectReference_t
+{
+public:
+	VectorAligned m_vecAABBMins; // 0x0
+	VectorAligned m_vecAABBMaxes; // 0x10
+	uint64_t m_nRenderableFlags; // 0x20
+	CSceneObject* m_pObject; // 0x28
+};
+
+// Aligment: 2
+// Size: 8
+struct CPVSData::pvsmask_t
+{
+public:
+	uint32_t m_nOffset; // 0x0
+	uint32_t m_nMask; // 0x4
+};
+
+// Aligment: 4
+// Size: 72
+class CPVSData
+{
+public:
+	CPVSData* m_pNext; // 0x0
+	uint16_t m_nPVSMasks; // 0x8
+	uint16_t m_nPVSFlags; // 0xa
+	CPVSData::pvsmask_t[7] m_masks; // 0xc
+};
+
+// Aligment: 9
+// Size: 1136
+struct CSceneObjectExtraData_t
+{
+public:
+	uint64_t m_nCurrentMeshGroupMask; // 0x440
+	CUtlStringToken m_nLayerForceID; // 0x450
+	Vector m_vLightingOrigin; // 0x454
+	float m_flDepthSortBias; // 0x460
+	uint8[4] m_nVisibleToPlayer; // 0x464
+	uint16_t m_nAlphaFade; // 0x468
+	int16_t m_nViewProducerIndex; // 0x46a
+	bool m_bLightingOriginIsInWorldSpace; // 0x46c
+	int8_t m_nCurrentLOD; // 0x46d
+};
+
+// Aligment: 18
+// Size: 176
+class CSceneObject
+{
+public:
+	ISceneObjectDesc* m_pDesc; // 0x10
+	CSceneObjectReference_t* m_pRefData; // 0x18
+	float m_flStartFadeDistanceSquared; // 0x20
+	float m_flFarCullDistanceSquared; // 0x24
+	uint16_t m_nObjectTypeFlags; // 0x28
+	uint16_t m_nGameRenderCounter; // 0x2a
+	uint8_t m_nMeshGroupMaskSmall; // 0x2f
+	bitfield:2 m_nDebugLevel; // 0x0
+	bitfield:2 m_nSizeCullBloat; // 0x0
+	bitfield:1 m_nBoundsType; // 0x0
+	uint8_t m_nID; // 0x31
+	int8_t m_nBoundsGroupIndex; // 0x32
+	uint8_t m_nObjectClass; // 0x33
+	matrix3x4a_t m_transform; // 0x40
+	CPVSData* m_pPVSData; // 0x70
+	uint64_t m_nOriginalRenderableFlags; // 0x88
+	uint64_t m_nRenderableFlags; // 0x90
+	CUtlStringToken m_nLayerMatchID; // 0xa4
+public:
+	static float32[4] &Get_s_flSizeCullBloatScale() { return *reinterpret_cast<float32[4]*>(interfaces::g_schema->FindTypeScopeForModule("scenesystem.dll")->FindDeclaredClass("CSceneObject")->m_static_fiels[0]->m_instance); }
+};
+
 // Aligment: 2
 // Size: 16
 class CSSDSEndFrameViewInfo
diff --git a/sdk/server.hpp b/sdk/server.hpp
index 6d73d416..c249d031 100644
--- a/sdk/server.hpp
+++ b/sdk/server.hpp
@@ -4,19 +4,1070 @@
 
 ///////////////////////////////////////////
 // Binary: server.dll
-// Class Count: 234
-// Enum Count: 38
+// Class Count: 874
+// Enum Count: 94
 ///////////////////////////////////////////
 
 // Aligment: 4
-// Size: 5
-enum class LifeState_t : uint32_t
+// Size: 4
+enum class PerformanceMode_t : uint32_t
 {
-	LIFE_ALIVE = 0x0,
-	LIFE_DYING = 0x1,
-	LIFE_DEAD = 0x2,
-	LIFE_RESPAWNABLE = 0x3,
-	LIFE_RESPAWNING = 0x4,
+	PM_NORMAL = 0x0,
+	PM_NO_GIBS = 0x1,
+	PM_FULL_GIBS = 0x2,
+	PM_REDUCED_GIBS = 0x3,
+};
+
+// Aligment: 4
+// Size: 2
+enum class CRR_Response::ResponseEnum_t : uint32_t
+{
+	CRR_Response::MAX_RESPONSE_NAME = 0xc0,
+	CRR_Response::MAX_RULE_NAME = 0x80,
+};
+
+// Aligment: 4
+// Size: 1029
+enum class BaseActivity_t : uint32_t
+{
+	ACT_RESET = 0x0,
+	ACT_IDLE = 0x1,
+	ACT_TRANSITION = 0x2,
+	ACT_COVER = 0x3,
+	ACT_COVER_MED = 0x4,
+	ACT_COVER_LOW = 0x5,
+	ACT_WALK = 0x6,
+	ACT_WALK_AIM = 0x7,
+	ACT_WALK_CROUCH = 0x8,
+	ACT_WALK_CROUCH_AIM = 0x9,
+	ACT_RUN = 0xa,
+	ACT_RUN_AIM = 0xb,
+	ACT_RUN_CROUCH = 0xc,
+	ACT_RUN_CROUCH_AIM = 0xd,
+	ACT_RUN_PROTECTED = 0xe,
+	ACT_SCRIPT_CUSTOM_MOVE = 0xf,
+	ACT_RANGE_ATTACK1 = 0x10,
+	ACT_RANGE_ATTACK2 = 0x11,
+	ACT_RANGE_ATTACK1_LOW = 0x12,
+	ACT_RANGE_ATTACK2_LOW = 0x13,
+	ACT_DIESIMPLE = 0x14,
+	ACT_DIEBACKWARD = 0x15,
+	ACT_DIEFORWARD = 0x16,
+	ACT_DIEVIOLENT = 0x17,
+	ACT_DIERAGDOLL = 0x18,
+	ACT_FLY = 0x19,
+	ACT_HOVER = 0x1a,
+	ACT_GLIDE = 0x1b,
+	ACT_SWIM = 0x1c,
+	ACT_JUMP = 0x1d,
+	ACT_HOP = 0x1e,
+	ACT_LEAP = 0x1f,
+	ACT_LAND = 0x20,
+	ACT_CLIMB_UP = 0x21,
+	ACT_CLIMB_DOWN = 0x22,
+	ACT_CLIMB_DISMOUNT = 0x23,
+	ACT_SHIPLADDER_UP = 0x24,
+	ACT_SHIPLADDER_DOWN = 0x25,
+	ACT_STRAFE_LEFT = 0x26,
+	ACT_STRAFE_RIGHT = 0x27,
+	ACT_ROLL_LEFT = 0x28,
+	ACT_ROLL_RIGHT = 0x29,
+	ACT_TURN_LEFT = 0x2a,
+	ACT_TURN_RIGHT = 0x2b,
+	ACT_CROUCH = 0x2c,
+	ACT_CROUCHIDLE = 0x2d,
+	ACT_STAND = 0x2e,
+	ACT_USE = 0x2f,
+	ACT_ALIEN_BURROW_IDLE = 0x30,
+	ACT_ALIEN_BURROW_OUT = 0x31,
+	ACT_SIGNAL1 = 0x32,
+	ACT_SIGNAL2 = 0x33,
+	ACT_SIGNAL3 = 0x34,
+	ACT_SIGNAL_ADVANCE = 0x35,
+	ACT_SIGNAL_FORWARD = 0x36,
+	ACT_SIGNAL_GROUP = 0x37,
+	ACT_SIGNAL_HALT = 0x38,
+	ACT_SIGNAL_LEFT = 0x39,
+	ACT_SIGNAL_RIGHT = 0x3a,
+	ACT_SIGNAL_TAKECOVER = 0x3b,
+	ACT_LOOKBACK_RIGHT = 0x3c,
+	ACT_LOOKBACK_LEFT = 0x3d,
+	ACT_COWER = 0x3e,
+	ACT_SMALL_FLINCH = 0x3f,
+	ACT_BIG_FLINCH = 0x40,
+	ACT_MELEE_ATTACK1 = 0x41,
+	ACT_MELEE_ATTACK2 = 0x42,
+	ACT_RELOAD = 0x43,
+	ACT_RELOAD_START = 0x44,
+	ACT_RELOAD_FINISH = 0x45,
+	ACT_RELOAD_LOW = 0x46,
+	ACT_ARM = 0x47,
+	ACT_DISARM = 0x48,
+	ACT_DROP_WEAPON = 0x49,
+	ACT_DROP_WEAPON_SHOTGUN = 0x4a,
+	ACT_PICKUP_GROUND = 0x4b,
+	ACT_PICKUP_RACK = 0x4c,
+	ACT_IDLE_ANGRY = 0x4d,
+	ACT_IDLE_RELAXED = 0x4e,
+	ACT_IDLE_STIMULATED = 0x4f,
+	ACT_IDLE_AGITATED = 0x50,
+	ACT_IDLE_STEALTH = 0x51,
+	ACT_IDLE_HURT = 0x52,
+	ACT_WALK_RELAXED = 0x53,
+	ACT_WALK_STIMULATED = 0x54,
+	ACT_WALK_AGITATED = 0x55,
+	ACT_WALK_STEALTH = 0x56,
+	ACT_RUN_RELAXED = 0x57,
+	ACT_RUN_STIMULATED = 0x58,
+	ACT_RUN_AGITATED = 0x59,
+	ACT_RUN_STEALTH = 0x5a,
+	ACT_IDLE_AIM_RELAXED = 0x5b,
+	ACT_IDLE_AIM_STIMULATED = 0x5c,
+	ACT_IDLE_AIM_AGITATED = 0x5d,
+	ACT_IDLE_AIM_STEALTH = 0x5e,
+	ACT_WALK_AIM_RELAXED = 0x5f,
+	ACT_WALK_AIM_STIMULATED = 0x60,
+	ACT_WALK_AIM_AGITATED = 0x61,
+	ACT_WALK_AIM_STEALTH = 0x62,
+	ACT_RUN_AIM_RELAXED = 0x63,
+	ACT_RUN_AIM_STIMULATED = 0x64,
+	ACT_RUN_AIM_AGITATED = 0x65,
+	ACT_RUN_AIM_STEALTH = 0x66,
+	ACT_CROUCHIDLE_STIMULATED = 0x67,
+	ACT_CROUCHIDLE_AIM_STIMULATED = 0x68,
+	ACT_CROUCHIDLE_AGITATED = 0x69,
+	ACT_WALK_HURT = 0x6a,
+	ACT_RUN_HURT = 0x6b,
+	ACT_SPECIAL_ATTACK1 = 0x6c,
+	ACT_SPECIAL_ATTACK2 = 0x6d,
+	ACT_COMBAT_IDLE = 0x6e,
+	ACT_WALK_SCARED = 0x6f,
+	ACT_RUN_SCARED = 0x70,
+	ACT_VICTORY_DANCE = 0x71,
+	ACT_DIE_HEADSHOT = 0x72,
+	ACT_DIE_CHESTSHOT = 0x73,
+	ACT_DIE_GUTSHOT = 0x74,
+	ACT_DIE_BACKSHOT = 0x75,
+	ACT_FLINCH_HEAD = 0x76,
+	ACT_FLINCH_CHEST = 0x77,
+	ACT_FLINCH_STOMACH = 0x78,
+	ACT_FLINCH_LEFTARM = 0x79,
+	ACT_FLINCH_RIGHTARM = 0x7a,
+	ACT_FLINCH_LEFTLEG = 0x7b,
+	ACT_FLINCH_RIGHTLEG = 0x7c,
+	ACT_FLINCH_PHYSICS = 0x7d,
+	ACT_FLINCH_HEAD_BACK = 0x7e,
+	ACT_FLINCH_CHEST_BACK = 0x7f,
+	ACT_FLINCH_STOMACH_BACK = 0x80,
+	ACT_FLINCH_CROUCH_FRONT = 0x81,
+	ACT_FLINCH_CROUCH_BACK = 0x82,
+	ACT_FLINCH_CROUCH_LEFT = 0x83,
+	ACT_FLINCH_CROUCH_RIGHT = 0x84,
+	ACT_IDLE_ON_FIRE = 0x85,
+	ACT_WALK_ON_FIRE = 0x86,
+	ACT_RUN_ON_FIRE = 0x87,
+	ACT_RAPPEL_LOOP = 0x88,
+	ACT_180_LEFT = 0x89,
+	ACT_180_RIGHT = 0x8a,
+	ACT_90_LEFT = 0x8b,
+	ACT_90_RIGHT = 0x8c,
+	ACT_STEP_LEFT = 0x8d,
+	ACT_STEP_RIGHT = 0x8e,
+	ACT_STEP_BACK = 0x8f,
+	ACT_STEP_FORE = 0x90,
+	ACT_GESTURE_RANGE_ATTACK1 = 0x91,
+	ACT_GESTURE_RANGE_ATTACK2 = 0x92,
+	ACT_GESTURE_MELEE_ATTACK1 = 0x93,
+	ACT_GESTURE_MELEE_ATTACK2 = 0x94,
+	ACT_GESTURE_RANGE_ATTACK1_LOW = 0x95,
+	ACT_GESTURE_RANGE_ATTACK2_LOW = 0x96,
+	ACT_MELEE_ATTACK_SWING_GESTURE = 0x97,
+	ACT_GESTURE_SMALL_FLINCH = 0x98,
+	ACT_GESTURE_BIG_FLINCH = 0x99,
+	ACT_GESTURE_FLINCH_BLAST = 0x9a,
+	ACT_GESTURE_FLINCH_BLAST_SHOTGUN = 0x9b,
+	ACT_GESTURE_FLINCH_BLAST_DAMAGED = 0x9c,
+	ACT_GESTURE_FLINCH_BLAST_DAMAGED_SHOTGUN = 0x9d,
+	ACT_GESTURE_FLINCH_HEAD = 0x9e,
+	ACT_GESTURE_FLINCH_CHEST = 0x9f,
+	ACT_GESTURE_FLINCH_STOMACH = 0xa0,
+	ACT_GESTURE_FLINCH_LEFTARM = 0xa1,
+	ACT_GESTURE_FLINCH_RIGHTARM = 0xa2,
+	ACT_GESTURE_FLINCH_LEFTLEG = 0xa3,
+	ACT_GESTURE_FLINCH_RIGHTLEG = 0xa4,
+	ACT_GESTURE_TURN_LEFT = 0xa5,
+	ACT_GESTURE_TURN_RIGHT = 0xa6,
+	ACT_GESTURE_TURN_LEFT45 = 0xa7,
+	ACT_GESTURE_TURN_RIGHT45 = 0xa8,
+	ACT_GESTURE_TURN_LEFT90 = 0xa9,
+	ACT_GESTURE_TURN_RIGHT90 = 0xaa,
+	ACT_GESTURE_TURN_LEFT45_FLAT = 0xab,
+	ACT_GESTURE_TURN_RIGHT45_FLAT = 0xac,
+	ACT_GESTURE_TURN_LEFT90_FLAT = 0xad,
+	ACT_GESTURE_TURN_RIGHT90_FLAT = 0xae,
+	ACT_BARNACLE_HIT = 0xaf,
+	ACT_BARNACLE_PULL = 0xb0,
+	ACT_BARNACLE_CHOMP = 0xb1,
+	ACT_BARNACLE_CHEW = 0xb2,
+	ACT_DO_NOT_DISTURB = 0xb3,
+	ACT_SPECIFIC_SEQUENCE = 0xb4,
+	ACT_VM_DEPLOY = 0xb5,
+	ACT_VM_RELOAD_EMPTY = 0xb6,
+	ACT_VM_DRAW = 0xb7,
+	ACT_VM_HOLSTER = 0xb8,
+	ACT_VM_IDLE = 0xb9,
+	ACT_VM_FIDGET = 0xba,
+	ACT_VM_PULLBACK = 0xbb,
+	ACT_VM_PULLBACK_HIGH = 0xbc,
+	ACT_VM_PULLBACK_LOW = 0xbd,
+	ACT_VM_THROW = 0xbe,
+	ACT_VM_DROP = 0xbf,
+	ACT_VM_PULLPIN = 0xc0,
+	ACT_VM_PRIMARYATTACK = 0xc1,
+	ACT_VM_SECONDARYATTACK = 0xc2,
+	ACT_VM_RELOAD = 0xc3,
+	ACT_VM_DRYFIRE = 0xc4,
+	ACT_VM_HITLEFT = 0xc5,
+	ACT_VM_HITLEFT2 = 0xc6,
+	ACT_VM_HITRIGHT = 0xc7,
+	ACT_VM_HITRIGHT2 = 0xc8,
+	ACT_VM_HITCENTER = 0xc9,
+	ACT_VM_HITCENTER2 = 0xca,
+	ACT_VM_MISSLEFT = 0xcb,
+	ACT_VM_MISSLEFT2 = 0xcc,
+	ACT_VM_MISSRIGHT = 0xcd,
+	ACT_VM_MISSRIGHT2 = 0xce,
+	ACT_VM_MISSCENTER = 0xcf,
+	ACT_VM_MISSCENTER2 = 0xd0,
+	ACT_VM_HAULBACK = 0xd1,
+	ACT_VM_SWINGHARD = 0xd2,
+	ACT_VM_SWINGMISS = 0xd3,
+	ACT_VM_SWINGHIT = 0xd4,
+	ACT_VM_IDLE_TO_LOWERED = 0xd5,
+	ACT_VM_IDLE_LOWERED = 0xd6,
+	ACT_VM_LOWERED_TO_IDLE = 0xd7,
+	ACT_VM_RECOIL1 = 0xd8,
+	ACT_VM_RECOIL2 = 0xd9,
+	ACT_VM_RECOIL3 = 0xda,
+	ACT_VM_PICKUP = 0xdb,
+	ACT_VM_RELEASE = 0xdc,
+	ACT_VM_MAUL_LOOP = 0xdd,
+	ACT_VM_ATTACH_SILENCER = 0xde,
+	ACT_VM_DETACH_SILENCER = 0xdf,
+	ACT_SLAM_STICKWALL_IDLE = 0xe0,
+	ACT_SLAM_STICKWALL_ND_IDLE = 0xe1,
+	ACT_SLAM_STICKWALL_ATTACH = 0xe2,
+	ACT_SLAM_STICKWALL_ATTACH2 = 0xe3,
+	ACT_SLAM_STICKWALL_ND_ATTACH = 0xe4,
+	ACT_SLAM_STICKWALL_ND_ATTACH2 = 0xe5,
+	ACT_SLAM_STICKWALL_DETONATE = 0xe6,
+	ACT_SLAM_STICKWALL_DETONATOR_HOLSTER = 0xe7,
+	ACT_SLAM_STICKWALL_DRAW = 0xe8,
+	ACT_SLAM_STICKWALL_ND_DRAW = 0xe9,
+	ACT_SLAM_STICKWALL_TO_THROW = 0xea,
+	ACT_SLAM_STICKWALL_TO_THROW_ND = 0xeb,
+	ACT_SLAM_STICKWALL_TO_TRIPMINE_ND = 0xec,
+	ACT_SLAM_THROW_IDLE = 0xed,
+	ACT_SLAM_THROW_ND_IDLE = 0xee,
+	ACT_SLAM_THROW_THROW = 0xef,
+	ACT_SLAM_THROW_THROW2 = 0xf0,
+	ACT_SLAM_THROW_THROW_ND = 0xf1,
+	ACT_SLAM_THROW_THROW_ND2 = 0xf2,
+	ACT_SLAM_THROW_DRAW = 0xf3,
+	ACT_SLAM_THROW_ND_DRAW = 0xf4,
+	ACT_SLAM_THROW_TO_STICKWALL = 0xf5,
+	ACT_SLAM_THROW_TO_STICKWALL_ND = 0xf6,
+	ACT_SLAM_THROW_DETONATE = 0xf7,
+	ACT_SLAM_THROW_DETONATOR_HOLSTER = 0xf8,
+	ACT_SLAM_THROW_TO_TRIPMINE_ND = 0xf9,
+	ACT_SLAM_TRIPMINE_IDLE = 0xfa,
+	ACT_SLAM_TRIPMINE_DRAW = 0xfb,
+	ACT_SLAM_TRIPMINE_ATTACH = 0xfc,
+	ACT_SLAM_TRIPMINE_ATTACH2 = 0xfd,
+	ACT_SLAM_TRIPMINE_TO_STICKWALL_ND = 0xfe,
+	ACT_SLAM_TRIPMINE_TO_THROW_ND = 0xff,
+	ACT_SLAM_DETONATOR_IDLE = 0x100,
+	ACT_SLAM_DETONATOR_DRAW = 0x101,
+	ACT_SLAM_DETONATOR_DETONATE = 0x102,
+	ACT_SLAM_DETONATOR_HOLSTER = 0x103,
+	ACT_SLAM_DETONATOR_STICKWALL_DRAW = 0x104,
+	ACT_SLAM_DETONATOR_THROW_DRAW = 0x105,
+	ACT_SHOTGUN_RELOAD_START = 0x106,
+	ACT_SHOTGUN_RELOAD_FINISH = 0x107,
+	ACT_SHOTGUN_PUMP = 0x108,
+	ACT_SMG2_IDLE2 = 0x109,
+	ACT_SMG2_FIRE2 = 0x10a,
+	ACT_SMG2_DRAW2 = 0x10b,
+	ACT_SMG2_RELOAD2 = 0x10c,
+	ACT_SMG2_DRYFIRE2 = 0x10d,
+	ACT_SMG2_TOAUTO = 0x10e,
+	ACT_SMG2_TOBURST = 0x10f,
+	ACT_PHYSCANNON_UPGRADE = 0x110,
+	ACT_RANGE_ATTACK_AR1 = 0x111,
+	ACT_RANGE_ATTACK_AR2 = 0x112,
+	ACT_RANGE_ATTACK_AR2_LOW = 0x113,
+	ACT_RANGE_ATTACK_AR2_GRENADE = 0x114,
+	ACT_RANGE_ATTACK_HMG1 = 0x115,
+	ACT_RANGE_ATTACK_ML = 0x116,
+	ACT_RANGE_ATTACK_SMG1 = 0x117,
+	ACT_RANGE_ATTACK_SMG1_LOW = 0x118,
+	ACT_RANGE_ATTACK_SMG2 = 0x119,
+	ACT_RANGE_ATTACK_SHOTGUN = 0x11a,
+	ACT_RANGE_ATTACK_SHOTGUN_LOW = 0x11b,
+	ACT_RANGE_ATTACK_PISTOL = 0x11c,
+	ACT_RANGE_ATTACK_PISTOL_LOW = 0x11d,
+	ACT_RANGE_ATTACK_SLAM = 0x11e,
+	ACT_RANGE_ATTACK_TRIPWIRE = 0x11f,
+	ACT_RANGE_ATTACK_THROW = 0x120,
+	ACT_RANGE_ATTACK_SNIPER_RIFLE = 0x121,
+	ACT_RANGE_ATTACK_RPG = 0x122,
+	ACT_MELEE_ATTACK_SWING = 0x123,
+	ACT_RANGE_AIM_LOW = 0x124,
+	ACT_RANGE_AIM_SMG1_LOW = 0x125,
+	ACT_RANGE_AIM_PISTOL_LOW = 0x126,
+	ACT_RANGE_AIM_AR2_LOW = 0x127,
+	ACT_COVER_PISTOL_LOW = 0x128,
+	ACT_COVER_SMG1_LOW = 0x129,
+	ACT_GESTURE_RANGE_ATTACK_AR1 = 0x12a,
+	ACT_GESTURE_RANGE_ATTACK_AR2 = 0x12b,
+	ACT_GESTURE_RANGE_ATTACK_AR2_GRENADE = 0x12c,
+	ACT_GESTURE_RANGE_ATTACK_HMG1 = 0x12d,
+	ACT_GESTURE_RANGE_ATTACK_ML = 0x12e,
+	ACT_GESTURE_RANGE_ATTACK_SMG1 = 0x12f,
+	ACT_GESTURE_RANGE_ATTACK_SMG1_LOW = 0x130,
+	ACT_GESTURE_RANGE_ATTACK_SMG2 = 0x131,
+	ACT_GESTURE_RANGE_ATTACK_SHOTGUN = 0x132,
+	ACT_GESTURE_RANGE_ATTACK_PISTOL = 0x133,
+	ACT_GESTURE_RANGE_ATTACK_PISTOL_LOW = 0x134,
+	ACT_GESTURE_RANGE_ATTACK_SLAM = 0x135,
+	ACT_GESTURE_RANGE_ATTACK_TRIPWIRE = 0x136,
+	ACT_GESTURE_RANGE_ATTACK_THROW = 0x137,
+	ACT_GESTURE_RANGE_ATTACK_SNIPER_RIFLE = 0x138,
+	ACT_GESTURE_MELEE_ATTACK_SWING = 0x139,
+	ACT_IDLE_RIFLE = 0x13a,
+	ACT_IDLE_SMG1 = 0x13b,
+	ACT_IDLE_ANGRY_SMG1 = 0x13c,
+	ACT_IDLE_PISTOL = 0x13d,
+	ACT_IDLE_ANGRY_PISTOL = 0x13e,
+	ACT_IDLE_ANGRY_SHOTGUN = 0x13f,
+	ACT_IDLE_STEALTH_PISTOL = 0x140,
+	ACT_IDLE_PACKAGE = 0x141,
+	ACT_WALK_PACKAGE = 0x142,
+	ACT_IDLE_SUITCASE = 0x143,
+	ACT_WALK_SUITCASE = 0x144,
+	ACT_IDLE_SMG1_RELAXED = 0x145,
+	ACT_IDLE_SMG1_STIMULATED = 0x146,
+	ACT_WALK_RIFLE_RELAXED = 0x147,
+	ACT_RUN_RIFLE_RELAXED = 0x148,
+	ACT_WALK_RIFLE_STIMULATED = 0x149,
+	ACT_RUN_RIFLE_STIMULATED = 0x14a,
+	ACT_IDLE_AIM_RIFLE_STIMULATED = 0x14b,
+	ACT_WALK_AIM_RIFLE_STIMULATED = 0x14c,
+	ACT_RUN_AIM_RIFLE_STIMULATED = 0x14d,
+	ACT_IDLE_SHOTGUN_RELAXED = 0x14e,
+	ACT_IDLE_SHOTGUN_STIMULATED = 0x14f,
+	ACT_IDLE_SHOTGUN_AGITATED = 0x150,
+	ACT_WALK_ANGRY = 0x151,
+	ACT_POLICE_HARASS1 = 0x152,
+	ACT_POLICE_HARASS2 = 0x153,
+	ACT_IDLE_MANNEDGUN = 0x154,
+	ACT_IDLE_MELEE = 0x155,
+	ACT_IDLE_ANGRY_MELEE = 0x156,
+	ACT_IDLE_RPG_RELAXED = 0x157,
+	ACT_IDLE_RPG = 0x158,
+	ACT_IDLE_ANGRY_RPG = 0x159,
+	ACT_COVER_LOW_RPG = 0x15a,
+	ACT_WALK_RPG = 0x15b,
+	ACT_RUN_RPG = 0x15c,
+	ACT_WALK_CROUCH_RPG = 0x15d,
+	ACT_RUN_CROUCH_RPG = 0x15e,
+	ACT_WALK_RPG_RELAXED = 0x15f,
+	ACT_RUN_RPG_RELAXED = 0x160,
+	ACT_WALK_RIFLE = 0x161,
+	ACT_WALK_AIM_RIFLE = 0x162,
+	ACT_WALK_CROUCH_RIFLE = 0x163,
+	ACT_WALK_CROUCH_AIM_RIFLE = 0x164,
+	ACT_RUN_RIFLE = 0x165,
+	ACT_RUN_AIM_RIFLE = 0x166,
+	ACT_RUN_CROUCH_RIFLE = 0x167,
+	ACT_RUN_CROUCH_AIM_RIFLE = 0x168,
+	ACT_RUN_STEALTH_PISTOL = 0x169,
+	ACT_WALK_AIM_SHOTGUN = 0x16a,
+	ACT_RUN_AIM_SHOTGUN = 0x16b,
+	ACT_WALK_PISTOL = 0x16c,
+	ACT_RUN_PISTOL = 0x16d,
+	ACT_WALK_AIM_PISTOL = 0x16e,
+	ACT_RUN_AIM_PISTOL = 0x16f,
+	ACT_WALK_STEALTH_PISTOL = 0x170,
+	ACT_WALK_AIM_STEALTH_PISTOL = 0x171,
+	ACT_RUN_AIM_STEALTH_PISTOL = 0x172,
+	ACT_RELOAD_PISTOL = 0x173,
+	ACT_RELOAD_PISTOL_LOW = 0x174,
+	ACT_RELOAD_SMG1 = 0x175,
+	ACT_RELOAD_SMG1_LOW = 0x176,
+	ACT_RELOAD_SHOTGUN = 0x177,
+	ACT_RELOAD_SHOTGUN_LOW = 0x178,
+	ACT_GESTURE_RELOAD = 0x179,
+	ACT_GESTURE_RELOAD_PISTOL = 0x17a,
+	ACT_GESTURE_RELOAD_SMG1 = 0x17b,
+	ACT_GESTURE_RELOAD_SHOTGUN = 0x17c,
+	ACT_BUSY_LEAN_LEFT = 0x17d,
+	ACT_BUSY_LEAN_LEFT_ENTRY = 0x17e,
+	ACT_BUSY_LEAN_LEFT_EXIT = 0x17f,
+	ACT_BUSY_LEAN_BACK = 0x180,
+	ACT_BUSY_LEAN_BACK_ENTRY = 0x181,
+	ACT_BUSY_LEAN_BACK_EXIT = 0x182,
+	ACT_BUSY_SIT_GROUND = 0x183,
+	ACT_BUSY_SIT_GROUND_ENTRY = 0x184,
+	ACT_BUSY_SIT_GROUND_EXIT = 0x185,
+	ACT_BUSY_SIT_CHAIR = 0x186,
+	ACT_BUSY_SIT_CHAIR_ENTRY = 0x187,
+	ACT_BUSY_SIT_CHAIR_EXIT = 0x188,
+	ACT_BUSY_STAND = 0x189,
+	ACT_BUSY_QUEUE = 0x18a,
+	ACT_DUCK_DODGE = 0x18b,
+	ACT_DIE_BARNACLE_SWALLOW = 0x18c,
+	ACT_GESTURE_BARNACLE_STRANGLE = 0x18d,
+	ACT_PHYSCANNON_DETACH = 0x18e,
+	ACT_PHYSCANNON_ANIMATE = 0x18f,
+	ACT_PHYSCANNON_ANIMATE_PRE = 0x190,
+	ACT_PHYSCANNON_ANIMATE_POST = 0x191,
+	ACT_DIE_FRONTSIDE = 0x192,
+	ACT_DIE_RIGHTSIDE = 0x193,
+	ACT_DIE_BACKSIDE = 0x194,
+	ACT_DIE_LEFTSIDE = 0x195,
+	ACT_DIE_CROUCH_FRONTSIDE = 0x196,
+	ACT_DIE_CROUCH_RIGHTSIDE = 0x197,
+	ACT_DIE_CROUCH_BACKSIDE = 0x198,
+	ACT_DIE_CROUCH_LEFTSIDE = 0x199,
+	ACT_DIE_INCAP = 0x19a,
+	ACT_DIE_STANDING = 0x19b,
+	ACT_OPEN_DOOR = 0x19c,
+	ACT_DI_ALYX_ZOMBIE_MELEE = 0x19d,
+	ACT_DI_ALYX_ZOMBIE_TORSO_MELEE = 0x19e,
+	ACT_DI_ALYX_HEADCRAB_MELEE = 0x19f,
+	ACT_DI_ALYX_ANTLION = 0x1a0,
+	ACT_DI_ALYX_ZOMBIE_SHOTGUN64 = 0x1a1,
+	ACT_DI_ALYX_ZOMBIE_SHOTGUN26 = 0x1a2,
+	ACT_READINESS_RELAXED_TO_STIMULATED = 0x1a3,
+	ACT_READINESS_RELAXED_TO_STIMULATED_WALK = 0x1a4,
+	ACT_READINESS_AGITATED_TO_STIMULATED = 0x1a5,
+	ACT_READINESS_STIMULATED_TO_RELAXED = 0x1a6,
+	ACT_READINESS_PISTOL_RELAXED_TO_STIMULATED = 0x1a7,
+	ACT_READINESS_PISTOL_RELAXED_TO_STIMULATED_WALK = 0x1a8,
+	ACT_READINESS_PISTOL_AGITATED_TO_STIMULATED = 0x1a9,
+	ACT_READINESS_PISTOL_STIMULATED_TO_RELAXED = 0x1aa,
+	ACT_IDLE_CARRY = 0x1ab,
+	ACT_WALK_CARRY = 0x1ac,
+	ACT_STARTDYING = 0x1ad,
+	ACT_DYINGLOOP = 0x1ae,
+	ACT_DYINGTODEAD = 0x1af,
+	ACT_RIDE_MANNED_GUN = 0x1b0,
+	ACT_VM_SPRINT_ENTER = 0x1b1,
+	ACT_VM_SPRINT_IDLE = 0x1b2,
+	ACT_VM_SPRINT_LEAVE = 0x1b3,
+	ACT_FIRE_START = 0x1b4,
+	ACT_FIRE_LOOP = 0x1b5,
+	ACT_FIRE_END = 0x1b6,
+	ACT_CROUCHING_GRENADEIDLE = 0x1b7,
+	ACT_CROUCHING_GRENADEREADY = 0x1b8,
+	ACT_CROUCHING_PRIMARYATTACK = 0x1b9,
+	ACT_OVERLAY_GRENADEIDLE = 0x1ba,
+	ACT_OVERLAY_GRENADEREADY = 0x1bb,
+	ACT_OVERLAY_PRIMARYATTACK = 0x1bc,
+	ACT_OVERLAY_SHIELD_UP = 0x1bd,
+	ACT_OVERLAY_SHIELD_DOWN = 0x1be,
+	ACT_OVERLAY_SHIELD_UP_IDLE = 0x1bf,
+	ACT_OVERLAY_SHIELD_ATTACK = 0x1c0,
+	ACT_OVERLAY_SHIELD_KNOCKBACK = 0x1c1,
+	ACT_SHIELD_UP = 0x1c2,
+	ACT_SHIELD_DOWN = 0x1c3,
+	ACT_SHIELD_UP_IDLE = 0x1c4,
+	ACT_SHIELD_ATTACK = 0x1c5,
+	ACT_SHIELD_KNOCKBACK = 0x1c6,
+	ACT_CROUCHING_SHIELD_UP = 0x1c7,
+	ACT_CROUCHING_SHIELD_DOWN = 0x1c8,
+	ACT_CROUCHING_SHIELD_UP_IDLE = 0x1c9,
+	ACT_CROUCHING_SHIELD_ATTACK = 0x1ca,
+	ACT_CROUCHING_SHIELD_KNOCKBACK = 0x1cb,
+	ACT_TURNRIGHT45 = 0x1cc,
+	ACT_TURNLEFT45 = 0x1cd,
+	ACT_TURN = 0x1ce,
+	ACT_OBJ_ASSEMBLING = 0x1cf,
+	ACT_OBJ_DISMANTLING = 0x1d0,
+	ACT_OBJ_STARTUP = 0x1d1,
+	ACT_OBJ_RUNNING = 0x1d2,
+	ACT_OBJ_IDLE = 0x1d3,
+	ACT_OBJ_PLACING = 0x1d4,
+	ACT_OBJ_DETERIORATING = 0x1d5,
+	ACT_OBJ_UPGRADING = 0x1d6,
+	ACT_DEPLOY = 0x1d7,
+	ACT_DEPLOY_IDLE = 0x1d8,
+	ACT_UNDEPLOY = 0x1d9,
+	ACT_CROSSBOW_DRAW_UNLOADED = 0x1da,
+	ACT_GAUSS_SPINUP = 0x1db,
+	ACT_GAUSS_SPINCYCLE = 0x1dc,
+	ACT_VM_PRIMARYATTACK_SILENCED = 0x1dd,
+	ACT_VM_RELOAD_SILENCED = 0x1de,
+	ACT_VM_DRYFIRE_SILENCED = 0x1df,
+	ACT_VM_IDLE_SILENCED = 0x1e0,
+	ACT_VM_DRAW_SILENCED = 0x1e1,
+	ACT_VM_IDLE_EMPTY_LEFT = 0x1e2,
+	ACT_VM_DRYFIRE_LEFT = 0x1e3,
+	ACT_VM_IS_DRAW = 0x1e4,
+	ACT_VM_IS_HOLSTER = 0x1e5,
+	ACT_VM_IS_IDLE = 0x1e6,
+	ACT_VM_IS_PRIMARYATTACK = 0x1e7,
+	ACT_PLAYER_IDLE_FIRE = 0x1e8,
+	ACT_PLAYER_CROUCH_FIRE = 0x1e9,
+	ACT_PLAYER_CROUCH_WALK_FIRE = 0x1ea,
+	ACT_PLAYER_WALK_FIRE = 0x1eb,
+	ACT_PLAYER_RUN_FIRE = 0x1ec,
+	ACT_IDLETORUN = 0x1ed,
+	ACT_RUNTOIDLE = 0x1ee,
+	ACT_VM_DRAW_DEPLOYED = 0x1ef,
+	ACT_HL2MP_IDLE_MELEE = 0x1f0,
+	ACT_HL2MP_RUN_MELEE = 0x1f1,
+	ACT_HL2MP_IDLE_CROUCH_MELEE = 0x1f2,
+	ACT_HL2MP_WALK_CROUCH_MELEE = 0x1f3,
+	ACT_HL2MP_GESTURE_RANGE_ATTACK_MELEE = 0x1f4,
+	ACT_HL2MP_GESTURE_RELOAD_MELEE = 0x1f5,
+	ACT_HL2MP_JUMP_MELEE = 0x1f6,
+	ACT_MP_STAND_IDLE = 0x1f7,
+	ACT_MP_CROUCH_IDLE = 0x1f8,
+	ACT_MP_CROUCH_DEPLOYED_IDLE = 0x1f9,
+	ACT_MP_CROUCH_DEPLOYED = 0x1fa,
+	ACT_MP_DEPLOYED_IDLE = 0x1fb,
+	ACT_MP_RUN = 0x1fc,
+	ACT_MP_WALK = 0x1fd,
+	ACT_MP_AIRWALK = 0x1fe,
+	ACT_MP_CROUCHWALK = 0x1ff,
+	ACT_MP_SPRINT = 0x200,
+	ACT_MP_JUMP = 0x201,
+	ACT_MP_JUMP_START = 0x202,
+	ACT_MP_JUMP_FLOAT = 0x203,
+	ACT_MP_JUMP_LAND = 0x204,
+	ACT_MP_DOUBLEJUMP = 0x205,
+	ACT_MP_SWIM = 0x206,
+	ACT_MP_DEPLOYED = 0x207,
+	ACT_MP_SWIM_DEPLOYED = 0x208,
+	ACT_MP_VCD = 0x209,
+	ACT_MP_ATTACK_STAND_PRIMARYFIRE = 0x20a,
+	ACT_MP_ATTACK_STAND_PRIMARYFIRE_DEPLOYED = 0x20b,
+	ACT_MP_ATTACK_STAND_SECONDARYFIRE = 0x20c,
+	ACT_MP_ATTACK_STAND_GRENADE = 0x20d,
+	ACT_MP_ATTACK_CROUCH_PRIMARYFIRE = 0x20e,
+	ACT_MP_ATTACK_CROUCH_PRIMARYFIRE_DEPLOYED = 0x20f,
+	ACT_MP_ATTACK_CROUCH_SECONDARYFIRE = 0x210,
+	ACT_MP_ATTACK_CROUCH_GRENADE = 0x211,
+	ACT_MP_ATTACK_SWIM_PRIMARYFIRE = 0x212,
+	ACT_MP_ATTACK_SWIM_SECONDARYFIRE = 0x213,
+	ACT_MP_ATTACK_SWIM_GRENADE = 0x214,
+	ACT_MP_ATTACK_AIRWALK_PRIMARYFIRE = 0x215,
+	ACT_MP_ATTACK_AIRWALK_SECONDARYFIRE = 0x216,
+	ACT_MP_ATTACK_AIRWALK_GRENADE = 0x217,
+	ACT_MP_RELOAD_STAND = 0x218,
+	ACT_MP_RELOAD_STAND_LOOP = 0x219,
+	ACT_MP_RELOAD_STAND_END = 0x21a,
+	ACT_MP_RELOAD_CROUCH = 0x21b,
+	ACT_MP_RELOAD_CROUCH_LOOP = 0x21c,
+	ACT_MP_RELOAD_CROUCH_END = 0x21d,
+	ACT_MP_RELOAD_SWIM = 0x21e,
+	ACT_MP_RELOAD_SWIM_LOOP = 0x21f,
+	ACT_MP_RELOAD_SWIM_END = 0x220,
+	ACT_MP_RELOAD_AIRWALK = 0x221,
+	ACT_MP_RELOAD_AIRWALK_LOOP = 0x222,
+	ACT_MP_RELOAD_AIRWALK_END = 0x223,
+	ACT_MP_ATTACK_STAND_PREFIRE = 0x224,
+	ACT_MP_ATTACK_STAND_POSTFIRE = 0x225,
+	ACT_MP_ATTACK_STAND_STARTFIRE = 0x226,
+	ACT_MP_ATTACK_CROUCH_PREFIRE = 0x227,
+	ACT_MP_ATTACK_CROUCH_POSTFIRE = 0x228,
+	ACT_MP_ATTACK_SWIM_PREFIRE = 0x229,
+	ACT_MP_ATTACK_SWIM_POSTFIRE = 0x22a,
+	ACT_MP_STAND_PRIMARY = 0x22b,
+	ACT_MP_CROUCH_PRIMARY = 0x22c,
+	ACT_MP_RUN_PRIMARY = 0x22d,
+	ACT_MP_WALK_PRIMARY = 0x22e,
+	ACT_MP_AIRWALK_PRIMARY = 0x22f,
+	ACT_MP_CROUCHWALK_PRIMARY = 0x230,
+	ACT_MP_JUMP_PRIMARY = 0x231,
+	ACT_MP_JUMP_START_PRIMARY = 0x232,
+	ACT_MP_JUMP_FLOAT_PRIMARY = 0x233,
+	ACT_MP_JUMP_LAND_PRIMARY = 0x234,
+	ACT_MP_SWIM_PRIMARY = 0x235,
+	ACT_MP_DEPLOYED_PRIMARY = 0x236,
+	ACT_MP_SWIM_DEPLOYED_PRIMARY = 0x237,
+	ACT_MP_ATTACK_STAND_PRIMARY = 0x238,
+	ACT_MP_ATTACK_STAND_PRIMARY_DEPLOYED = 0x239,
+	ACT_MP_ATTACK_CROUCH_PRIMARY = 0x23a,
+	ACT_MP_ATTACK_CROUCH_PRIMARY_DEPLOYED = 0x23b,
+	ACT_MP_ATTACK_SWIM_PRIMARY = 0x23c,
+	ACT_MP_ATTACK_AIRWALK_PRIMARY = 0x23d,
+	ACT_MP_RELOAD_STAND_PRIMARY = 0x23e,
+	ACT_MP_RELOAD_STAND_PRIMARY_LOOP = 0x23f,
+	ACT_MP_RELOAD_STAND_PRIMARY_END = 0x240,
+	ACT_MP_RELOAD_CROUCH_PRIMARY = 0x241,
+	ACT_MP_RELOAD_CROUCH_PRIMARY_LOOP = 0x242,
+	ACT_MP_RELOAD_CROUCH_PRIMARY_END = 0x243,
+	ACT_MP_RELOAD_SWIM_PRIMARY = 0x244,
+	ACT_MP_RELOAD_SWIM_PRIMARY_LOOP = 0x245,
+	ACT_MP_RELOAD_SWIM_PRIMARY_END = 0x246,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY = 0x247,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY_LOOP = 0x248,
+	ACT_MP_RELOAD_AIRWALK_PRIMARY_END = 0x249,
+	ACT_MP_ATTACK_STAND_GRENADE_PRIMARY = 0x24a,
+	ACT_MP_ATTACK_CROUCH_GRENADE_PRIMARY = 0x24b,
+	ACT_MP_ATTACK_SWIM_GRENADE_PRIMARY = 0x24c,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_PRIMARY = 0x24d,
+	ACT_MP_STAND_SECONDARY = 0x24e,
+	ACT_MP_CROUCH_SECONDARY = 0x24f,
+	ACT_MP_RUN_SECONDARY = 0x250,
+	ACT_MP_WALK_SECONDARY = 0x251,
+	ACT_MP_AIRWALK_SECONDARY = 0x252,
+	ACT_MP_CROUCHWALK_SECONDARY = 0x253,
+	ACT_MP_JUMP_SECONDARY = 0x254,
+	ACT_MP_JUMP_START_SECONDARY = 0x255,
+	ACT_MP_JUMP_FLOAT_SECONDARY = 0x256,
+	ACT_MP_JUMP_LAND_SECONDARY = 0x257,
+	ACT_MP_SWIM_SECONDARY = 0x258,
+	ACT_MP_ATTACK_STAND_SECONDARY = 0x259,
+	ACT_MP_ATTACK_CROUCH_SECONDARY = 0x25a,
+	ACT_MP_ATTACK_SWIM_SECONDARY = 0x25b,
+	ACT_MP_ATTACK_AIRWALK_SECONDARY = 0x25c,
+	ACT_MP_RELOAD_STAND_SECONDARY = 0x25d,
+	ACT_MP_RELOAD_STAND_SECONDARY_LOOP = 0x25e,
+	ACT_MP_RELOAD_STAND_SECONDARY_END = 0x25f,
+	ACT_MP_RELOAD_CROUCH_SECONDARY = 0x260,
+	ACT_MP_RELOAD_CROUCH_SECONDARY_LOOP = 0x261,
+	ACT_MP_RELOAD_CROUCH_SECONDARY_END = 0x262,
+	ACT_MP_RELOAD_SWIM_SECONDARY = 0x263,
+	ACT_MP_RELOAD_SWIM_SECONDARY_LOOP = 0x264,
+	ACT_MP_RELOAD_SWIM_SECONDARY_END = 0x265,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY = 0x266,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY_LOOP = 0x267,
+	ACT_MP_RELOAD_AIRWALK_SECONDARY_END = 0x268,
+	ACT_MP_ATTACK_STAND_GRENADE_SECONDARY = 0x269,
+	ACT_MP_ATTACK_CROUCH_GRENADE_SECONDARY = 0x26a,
+	ACT_MP_ATTACK_SWIM_GRENADE_SECONDARY = 0x26b,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_SECONDARY = 0x26c,
+	ACT_MP_STAND_MELEE = 0x26d,
+	ACT_MP_CROUCH_MELEE = 0x26e,
+	ACT_MP_RUN_MELEE = 0x26f,
+	ACT_MP_WALK_MELEE = 0x270,
+	ACT_MP_AIRWALK_MELEE = 0x271,
+	ACT_MP_CROUCHWALK_MELEE = 0x272,
+	ACT_MP_JUMP_MELEE = 0x273,
+	ACT_MP_JUMP_START_MELEE = 0x274,
+	ACT_MP_JUMP_FLOAT_MELEE = 0x275,
+	ACT_MP_JUMP_LAND_MELEE = 0x276,
+	ACT_MP_SWIM_MELEE = 0x277,
+	ACT_MP_ATTACK_STAND_MELEE = 0x278,
+	ACT_MP_ATTACK_STAND_MELEE_SECONDARY = 0x279,
+	ACT_MP_ATTACK_CROUCH_MELEE = 0x27a,
+	ACT_MP_ATTACK_CROUCH_MELEE_SECONDARY = 0x27b,
+	ACT_MP_ATTACK_SWIM_MELEE = 0x27c,
+	ACT_MP_ATTACK_AIRWALK_MELEE = 0x27d,
+	ACT_MP_ATTACK_STAND_GRENADE_MELEE = 0x27e,
+	ACT_MP_ATTACK_CROUCH_GRENADE_MELEE = 0x27f,
+	ACT_MP_ATTACK_SWIM_GRENADE_MELEE = 0x280,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_MELEE = 0x281,
+	ACT_MP_STAND_ITEM1 = 0x282,
+	ACT_MP_CROUCH_ITEM1 = 0x283,
+	ACT_MP_RUN_ITEM1 = 0x284,
+	ACT_MP_WALK_ITEM1 = 0x285,
+	ACT_MP_AIRWALK_ITEM1 = 0x286,
+	ACT_MP_CROUCHWALK_ITEM1 = 0x287,
+	ACT_MP_JUMP_ITEM1 = 0x288,
+	ACT_MP_JUMP_START_ITEM1 = 0x289,
+	ACT_MP_JUMP_FLOAT_ITEM1 = 0x28a,
+	ACT_MP_JUMP_LAND_ITEM1 = 0x28b,
+	ACT_MP_SWIM_ITEM1 = 0x28c,
+	ACT_MP_ATTACK_STAND_ITEM1 = 0x28d,
+	ACT_MP_ATTACK_STAND_ITEM1_SECONDARY = 0x28e,
+	ACT_MP_ATTACK_CROUCH_ITEM1 = 0x28f,
+	ACT_MP_ATTACK_CROUCH_ITEM1_SECONDARY = 0x290,
+	ACT_MP_ATTACK_SWIM_ITEM1 = 0x291,
+	ACT_MP_ATTACK_AIRWALK_ITEM1 = 0x292,
+	ACT_MP_STAND_ITEM2 = 0x293,
+	ACT_MP_CROUCH_ITEM2 = 0x294,
+	ACT_MP_RUN_ITEM2 = 0x295,
+	ACT_MP_WALK_ITEM2 = 0x296,
+	ACT_MP_AIRWALK_ITEM2 = 0x297,
+	ACT_MP_CROUCHWALK_ITEM2 = 0x298,
+	ACT_MP_JUMP_ITEM2 = 0x299,
+	ACT_MP_JUMP_START_ITEM2 = 0x29a,
+	ACT_MP_JUMP_FLOAT_ITEM2 = 0x29b,
+	ACT_MP_JUMP_LAND_ITEM2 = 0x29c,
+	ACT_MP_SWIM_ITEM2 = 0x29d,
+	ACT_MP_ATTACK_STAND_ITEM2 = 0x29e,
+	ACT_MP_ATTACK_STAND_ITEM2_SECONDARY = 0x29f,
+	ACT_MP_ATTACK_CROUCH_ITEM2 = 0x2a0,
+	ACT_MP_ATTACK_CROUCH_ITEM2_SECONDARY = 0x2a1,
+	ACT_MP_ATTACK_SWIM_ITEM2 = 0x2a2,
+	ACT_MP_ATTACK_AIRWALK_ITEM2 = 0x2a3,
+	ACT_MP_GESTURE_FLINCH = 0x2a4,
+	ACT_MP_GESTURE_FLINCH_PRIMARY = 0x2a5,
+	ACT_MP_GESTURE_FLINCH_SECONDARY = 0x2a6,
+	ACT_MP_GESTURE_FLINCH_MELEE = 0x2a7,
+	ACT_MP_GESTURE_FLINCH_ITEM1 = 0x2a8,
+	ACT_MP_GESTURE_FLINCH_ITEM2 = 0x2a9,
+	ACT_MP_GESTURE_FLINCH_HEAD = 0x2aa,
+	ACT_MP_GESTURE_FLINCH_CHEST = 0x2ab,
+	ACT_MP_GESTURE_FLINCH_STOMACH = 0x2ac,
+	ACT_MP_GESTURE_FLINCH_LEFTARM = 0x2ad,
+	ACT_MP_GESTURE_FLINCH_RIGHTARM = 0x2ae,
+	ACT_MP_GESTURE_FLINCH_LEFTLEG = 0x2af,
+	ACT_MP_GESTURE_FLINCH_RIGHTLEG = 0x2b0,
+	ACT_MP_GRENADE1_DRAW = 0x2b1,
+	ACT_MP_GRENADE1_IDLE = 0x2b2,
+	ACT_MP_GRENADE1_ATTACK = 0x2b3,
+	ACT_MP_GRENADE2_DRAW = 0x2b4,
+	ACT_MP_GRENADE2_IDLE = 0x2b5,
+	ACT_MP_GRENADE2_ATTACK = 0x2b6,
+	ACT_MP_PRIMARY_GRENADE1_DRAW = 0x2b7,
+	ACT_MP_PRIMARY_GRENADE1_IDLE = 0x2b8,
+	ACT_MP_PRIMARY_GRENADE1_ATTACK = 0x2b9,
+	ACT_MP_PRIMARY_GRENADE2_DRAW = 0x2ba,
+	ACT_MP_PRIMARY_GRENADE2_IDLE = 0x2bb,
+	ACT_MP_PRIMARY_GRENADE2_ATTACK = 0x2bc,
+	ACT_MP_SECONDARY_GRENADE1_DRAW = 0x2bd,
+	ACT_MP_SECONDARY_GRENADE1_IDLE = 0x2be,
+	ACT_MP_SECONDARY_GRENADE1_ATTACK = 0x2bf,
+	ACT_MP_SECONDARY_GRENADE2_DRAW = 0x2c0,
+	ACT_MP_SECONDARY_GRENADE2_IDLE = 0x2c1,
+	ACT_MP_SECONDARY_GRENADE2_ATTACK = 0x2c2,
+	ACT_MP_MELEE_GRENADE1_DRAW = 0x2c3,
+	ACT_MP_MELEE_GRENADE1_IDLE = 0x2c4,
+	ACT_MP_MELEE_GRENADE1_ATTACK = 0x2c5,
+	ACT_MP_MELEE_GRENADE2_DRAW = 0x2c6,
+	ACT_MP_MELEE_GRENADE2_IDLE = 0x2c7,
+	ACT_MP_MELEE_GRENADE2_ATTACK = 0x2c8,
+	ACT_MP_ITEM1_GRENADE1_DRAW = 0x2c9,
+	ACT_MP_ITEM1_GRENADE1_IDLE = 0x2ca,
+	ACT_MP_ITEM1_GRENADE1_ATTACK = 0x2cb,
+	ACT_MP_ITEM1_GRENADE2_DRAW = 0x2cc,
+	ACT_MP_ITEM1_GRENADE2_IDLE = 0x2cd,
+	ACT_MP_ITEM1_GRENADE2_ATTACK = 0x2ce,
+	ACT_MP_ITEM2_GRENADE1_DRAW = 0x2cf,
+	ACT_MP_ITEM2_GRENADE1_IDLE = 0x2d0,
+	ACT_MP_ITEM2_GRENADE1_ATTACK = 0x2d1,
+	ACT_MP_ITEM2_GRENADE2_DRAW = 0x2d2,
+	ACT_MP_ITEM2_GRENADE2_IDLE = 0x2d3,
+	ACT_MP_ITEM2_GRENADE2_ATTACK = 0x2d4,
+	ACT_MP_STAND_BUILDING = 0x2d5,
+	ACT_MP_CROUCH_BUILDING = 0x2d6,
+	ACT_MP_RUN_BUILDING = 0x2d7,
+	ACT_MP_WALK_BUILDING = 0x2d8,
+	ACT_MP_AIRWALK_BUILDING = 0x2d9,
+	ACT_MP_CROUCHWALK_BUILDING = 0x2da,
+	ACT_MP_JUMP_BUILDING = 0x2db,
+	ACT_MP_JUMP_START_BUILDING = 0x2dc,
+	ACT_MP_JUMP_FLOAT_BUILDING = 0x2dd,
+	ACT_MP_JUMP_LAND_BUILDING = 0x2de,
+	ACT_MP_SWIM_BUILDING = 0x2df,
+	ACT_MP_ATTACK_STAND_BUILDING = 0x2e0,
+	ACT_MP_ATTACK_CROUCH_BUILDING = 0x2e1,
+	ACT_MP_ATTACK_SWIM_BUILDING = 0x2e2,
+	ACT_MP_ATTACK_AIRWALK_BUILDING = 0x2e3,
+	ACT_MP_ATTACK_STAND_GRENADE_BUILDING = 0x2e4,
+	ACT_MP_ATTACK_CROUCH_GRENADE_BUILDING = 0x2e5,
+	ACT_MP_ATTACK_SWIM_GRENADE_BUILDING = 0x2e6,
+	ACT_MP_ATTACK_AIRWALK_GRENADE_BUILDING = 0x2e7,
+	ACT_MP_STAND_PDA = 0x2e8,
+	ACT_MP_CROUCH_PDA = 0x2e9,
+	ACT_MP_RUN_PDA = 0x2ea,
+	ACT_MP_WALK_PDA = 0x2eb,
+	ACT_MP_AIRWALK_PDA = 0x2ec,
+	ACT_MP_CROUCHWALK_PDA = 0x2ed,
+	ACT_MP_JUMP_PDA = 0x2ee,
+	ACT_MP_JUMP_START_PDA = 0x2ef,
+	ACT_MP_JUMP_FLOAT_PDA = 0x2f0,
+	ACT_MP_JUMP_LAND_PDA = 0x2f1,
+	ACT_MP_SWIM_PDA = 0x2f2,
+	ACT_MP_ATTACK_STAND_PDA = 0x2f3,
+	ACT_MP_ATTACK_SWIM_PDA = 0x2f4,
+	ACT_MP_GESTURE_VC_HANDMOUTH = 0x2f5,
+	ACT_MP_GESTURE_VC_FINGERPOINT = 0x2f6,
+	ACT_MP_GESTURE_VC_FISTPUMP = 0x2f7,
+	ACT_MP_GESTURE_VC_THUMBSUP = 0x2f8,
+	ACT_MP_GESTURE_VC_NODYES = 0x2f9,
+	ACT_MP_GESTURE_VC_NODNO = 0x2fa,
+	ACT_MP_GESTURE_VC_HANDMOUTH_PRIMARY = 0x2fb,
+	ACT_MP_GESTURE_VC_FINGERPOINT_PRIMARY = 0x2fc,
+	ACT_MP_GESTURE_VC_FISTPUMP_PRIMARY = 0x2fd,
+	ACT_MP_GESTURE_VC_THUMBSUP_PRIMARY = 0x2fe,
+	ACT_MP_GESTURE_VC_NODYES_PRIMARY = 0x2ff,
+	ACT_MP_GESTURE_VC_NODNO_PRIMARY = 0x300,
+	ACT_MP_GESTURE_VC_HANDMOUTH_SECONDARY = 0x301,
+	ACT_MP_GESTURE_VC_FINGERPOINT_SECONDARY = 0x302,
+	ACT_MP_GESTURE_VC_FISTPUMP_SECONDARY = 0x303,
+	ACT_MP_GESTURE_VC_THUMBSUP_SECONDARY = 0x304,
+	ACT_MP_GESTURE_VC_NODYES_SECONDARY = 0x305,
+	ACT_MP_GESTURE_VC_NODNO_SECONDARY = 0x306,
+	ACT_MP_GESTURE_VC_HANDMOUTH_MELEE = 0x307,
+	ACT_MP_GESTURE_VC_FINGERPOINT_MELEE = 0x308,
+	ACT_MP_GESTURE_VC_FISTPUMP_MELEE = 0x309,
+	ACT_MP_GESTURE_VC_THUMBSUP_MELEE = 0x30a,
+	ACT_MP_GESTURE_VC_NODYES_MELEE = 0x30b,
+	ACT_MP_GESTURE_VC_NODNO_MELEE = 0x30c,
+	ACT_MP_GESTURE_VC_HANDMOUTH_ITEM1 = 0x30d,
+	ACT_MP_GESTURE_VC_FINGERPOINT_ITEM1 = 0x30e,
+	ACT_MP_GESTURE_VC_FISTPUMP_ITEM1 = 0x30f,
+	ACT_MP_GESTURE_VC_THUMBSUP_ITEM1 = 0x310,
+	ACT_MP_GESTURE_VC_NODYES_ITEM1 = 0x311,
+	ACT_MP_GESTURE_VC_NODNO_ITEM1 = 0x312,
+	ACT_MP_GESTURE_VC_HANDMOUTH_ITEM2 = 0x313,
+	ACT_MP_GESTURE_VC_FINGERPOINT_ITEM2 = 0x314,
+	ACT_MP_GESTURE_VC_FISTPUMP_ITEM2 = 0x315,
+	ACT_MP_GESTURE_VC_THUMBSUP_ITEM2 = 0x316,
+	ACT_MP_GESTURE_VC_NODYES_ITEM2 = 0x317,
+	ACT_MP_GESTURE_VC_NODNO_ITEM2 = 0x318,
+	ACT_MP_GESTURE_VC_HANDMOUTH_BUILDING = 0x319,
+	ACT_MP_GESTURE_VC_FINGERPOINT_BUILDING = 0x31a,
+	ACT_MP_GESTURE_VC_FISTPUMP_BUILDING = 0x31b,
+	ACT_MP_GESTURE_VC_THUMBSUP_BUILDING = 0x31c,
+	ACT_MP_GESTURE_VC_NODYES_BUILDING = 0x31d,
+	ACT_MP_GESTURE_VC_NODNO_BUILDING = 0x31e,
+	ACT_MP_GESTURE_VC_HANDMOUTH_PDA = 0x31f,
+	ACT_MP_GESTURE_VC_FINGERPOINT_PDA = 0x320,
+	ACT_MP_GESTURE_VC_FISTPUMP_PDA = 0x321,
+	ACT_MP_GESTURE_VC_THUMBSUP_PDA = 0x322,
+	ACT_MP_GESTURE_VC_NODYES_PDA = 0x323,
+	ACT_MP_GESTURE_VC_NODNO_PDA = 0x324,
+	ACT_VM_UNUSABLE = 0x325,
+	ACT_VM_UNUSABLE_TO_USABLE = 0x326,
+	ACT_VM_USABLE_TO_UNUSABLE = 0x327,
+	ACT_PRIMARY_VM_DRAW = 0x328,
+	ACT_PRIMARY_VM_HOLSTER = 0x329,
+	ACT_PRIMARY_VM_IDLE = 0x32a,
+	ACT_PRIMARY_VM_PULLBACK = 0x32b,
+	ACT_PRIMARY_VM_PRIMARYATTACK = 0x32c,
+	ACT_PRIMARY_VM_SECONDARYATTACK = 0x32d,
+	ACT_PRIMARY_VM_RELOAD = 0x32e,
+	ACT_PRIMARY_VM_DRYFIRE = 0x32f,
+	ACT_PRIMARY_VM_IDLE_TO_LOWERED = 0x330,
+	ACT_PRIMARY_VM_IDLE_LOWERED = 0x331,
+	ACT_PRIMARY_VM_LOWERED_TO_IDLE = 0x332,
+	ACT_SECONDARY_VM_DRAW = 0x333,
+	ACT_SECONDARY_VM_HOLSTER = 0x334,
+	ACT_SECONDARY_VM_IDLE = 0x335,
+	ACT_SECONDARY_VM_PULLBACK = 0x336,
+	ACT_SECONDARY_VM_PRIMARYATTACK = 0x337,
+	ACT_SECONDARY_VM_SECONDARYATTACK = 0x338,
+	ACT_SECONDARY_VM_RELOAD = 0x339,
+	ACT_SECONDARY_VM_DRYFIRE = 0x33a,
+	ACT_SECONDARY_VM_IDLE_TO_LOWERED = 0x33b,
+	ACT_SECONDARY_VM_IDLE_LOWERED = 0x33c,
+	ACT_SECONDARY_VM_LOWERED_TO_IDLE = 0x33d,
+	ACT_MELEE_VM_DRAW = 0x33e,
+	ACT_MELEE_VM_HOLSTER = 0x33f,
+	ACT_MELEE_VM_IDLE = 0x340,
+	ACT_MELEE_VM_PULLBACK = 0x341,
+	ACT_MELEE_VM_PRIMARYATTACK = 0x342,
+	ACT_MELEE_VM_SECONDARYATTACK = 0x343,
+	ACT_MELEE_VM_RELOAD = 0x344,
+	ACT_MELEE_VM_DRYFIRE = 0x345,
+	ACT_MELEE_VM_IDLE_TO_LOWERED = 0x346,
+	ACT_MELEE_VM_IDLE_LOWERED = 0x347,
+	ACT_MELEE_VM_LOWERED_TO_IDLE = 0x348,
+	ACT_PDA_VM_DRAW = 0x349,
+	ACT_PDA_VM_HOLSTER = 0x34a,
+	ACT_PDA_VM_IDLE = 0x34b,
+	ACT_PDA_VM_PULLBACK = 0x34c,
+	ACT_PDA_VM_PRIMARYATTACK = 0x34d,
+	ACT_PDA_VM_SECONDARYATTACK = 0x34e,
+	ACT_PDA_VM_RELOAD = 0x34f,
+	ACT_PDA_VM_DRYFIRE = 0x350,
+	ACT_PDA_VM_IDLE_TO_LOWERED = 0x351,
+	ACT_PDA_VM_IDLE_LOWERED = 0x352,
+	ACT_PDA_VM_LOWERED_TO_IDLE = 0x353,
+	ACT_ITEM1_VM_DRAW = 0x354,
+	ACT_ITEM1_VM_HOLSTER = 0x355,
+	ACT_ITEM1_VM_IDLE = 0x356,
+	ACT_ITEM1_VM_PULLBACK = 0x357,
+	ACT_ITEM1_VM_PRIMARYATTACK = 0x358,
+	ACT_ITEM1_VM_SECONDARYATTACK = 0x359,
+	ACT_ITEM1_VM_RELOAD = 0x35a,
+	ACT_ITEM1_VM_DRYFIRE = 0x35b,
+	ACT_ITEM1_VM_IDLE_TO_LOWERED = 0x35c,
+	ACT_ITEM1_VM_IDLE_LOWERED = 0x35d,
+	ACT_ITEM1_VM_LOWERED_TO_IDLE = 0x35e,
+	ACT_ITEM2_VM_DRAW = 0x35f,
+	ACT_ITEM2_VM_HOLSTER = 0x360,
+	ACT_ITEM2_VM_IDLE = 0x361,
+	ACT_ITEM2_VM_PULLBACK = 0x362,
+	ACT_ITEM2_VM_PRIMARYATTACK = 0x363,
+	ACT_ITEM2_VM_SECONDARYATTACK = 0x364,
+	ACT_ITEM2_VM_RELOAD = 0x365,
+	ACT_ITEM2_VM_DRYFIRE = 0x366,
+	ACT_ITEM2_VM_IDLE_TO_LOWERED = 0x367,
+	ACT_ITEM2_VM_IDLE_LOWERED = 0x368,
+	ACT_ITEM2_VM_LOWERED_TO_IDLE = 0x369,
+	ACT_RELOAD_SUCCEED = 0x36a,
+	ACT_RELOAD_FAIL = 0x36b,
+	ACT_WALK_AIM_AUTOGUN = 0x36c,
+	ACT_RUN_AIM_AUTOGUN = 0x36d,
+	ACT_IDLE_AUTOGUN = 0x36e,
+	ACT_IDLE_AIM_AUTOGUN = 0x36f,
+	ACT_RELOAD_AUTOGUN = 0x370,
+	ACT_CROUCH_IDLE_AUTOGUN = 0x371,
+	ACT_RANGE_ATTACK_AUTOGUN = 0x372,
+	ACT_JUMP_AUTOGUN = 0x373,
+	ACT_IDLE_AIM_PISTOL = 0x374,
+	ACT_WALK_AIM_DUAL = 0x375,
+	ACT_RUN_AIM_DUAL = 0x376,
+	ACT_IDLE_DUAL = 0x377,
+	ACT_IDLE_AIM_DUAL = 0x378,
+	ACT_RELOAD_DUAL = 0x379,
+	ACT_CROUCH_IDLE_DUAL = 0x37a,
+	ACT_RANGE_ATTACK_DUAL = 0x37b,
+	ACT_JUMP_DUAL = 0x37c,
+	ACT_IDLE_AIM_SHOTGUN = 0x37d,
+	ACT_CROUCH_IDLE_SHOTGUN = 0x37e,
+	ACT_IDLE_AIM_RIFLE = 0x37f,
+	ACT_CROUCH_IDLE_RIFLE = 0x380,
+	ACT_RANGE_ATTACK_RIFLE = 0x381,
+	ACT_SLEEP = 0x382,
+	ACT_WAKE = 0x383,
+	ACT_FLICK_LEFT = 0x384,
+	ACT_FLICK_LEFT_MIDDLE = 0x385,
+	ACT_FLICK_RIGHT_MIDDLE = 0x386,
+	ACT_FLICK_RIGHT = 0x387,
+	ACT_SPINAROUND = 0x388,
+	ACT_PREP_TO_FIRE = 0x389,
+	ACT_FIRE = 0x38a,
+	ACT_FIRE_RECOVER = 0x38b,
+	ACT_SPRAY = 0x38c,
+	ACT_PREP_EXPLODE = 0x38d,
+	ACT_EXPLODE = 0x38e,
+	ACT_SCRIPT_CUSTOM_0 = 0x38f,
+	ACT_SCRIPT_CUSTOM_1 = 0x390,
+	ACT_SCRIPT_CUSTOM_2 = 0x391,
+	ACT_SCRIPT_CUSTOM_3 = 0x392,
+	ACT_SCRIPT_CUSTOM_4 = 0x393,
+	ACT_SCRIPT_CUSTOM_5 = 0x394,
+	ACT_SCRIPT_CUSTOM_6 = 0x395,
+	ACT_SCRIPT_CUSTOM_7 = 0x396,
+	ACT_SCRIPT_CUSTOM_8 = 0x397,
+	ACT_SCRIPT_CUSTOM_9 = 0x398,
+	ACT_SCRIPT_CUSTOM_10 = 0x399,
+	ACT_SCRIPT_CUSTOM_11 = 0x39a,
+	ACT_SCRIPT_CUSTOM_12 = 0x39b,
+	ACT_SCRIPT_CUSTOM_13 = 0x39c,
+	ACT_SCRIPT_CUSTOM_14 = 0x39d,
+	ACT_SCRIPT_CUSTOM_15 = 0x39e,
+	ACT_SCRIPT_CUSTOM_16 = 0x39f,
+	ACT_SCRIPT_CUSTOM_17 = 0x3a0,
+	ACT_SCRIPT_CUSTOM_18 = 0x3a1,
+	ACT_SCRIPT_CUSTOM_19 = 0x3a2,
+	ACT_SCRIPT_CUSTOM_20 = 0x3a3,
+	ACT_SCRIPT_CUSTOM_21 = 0x3a4,
+	ACT_SCRIPT_CUSTOM_22 = 0x3a5,
+	ACT_SCRIPT_CUSTOM_23 = 0x3a6,
+	ACT_SCRIPT_CUSTOM_24 = 0x3a7,
+	ACT_SCRIPT_CUSTOM_25 = 0x3a8,
+	ACT_SCRIPT_CUSTOM_26 = 0x3a9,
+	ACT_SCRIPT_CUSTOM_27 = 0x3aa,
+	ACT_SCRIPT_CUSTOM_28 = 0x3ab,
+	ACT_SCRIPT_CUSTOM_29 = 0x3ac,
+	ACT_SCRIPT_CUSTOM_30 = 0x3ad,
+	ACT_SCRIPT_CUSTOM_31 = 0x3ae,
+	ACT_VR_PISTOL_LAST_SHOT = 0x3af,
+	ACT_VR_PISTOL_SLIDE_RELEASE = 0x3b0,
+	ACT_VR_PISTOL_CLIP_OUT_CHAMBERED = 0x3b1,
+	ACT_VR_PISTOL_CLIP_OUT_SLIDE_BACK = 0x3b2,
+	ACT_VR_PISTOL_CLIP_IN_CHAMBERED = 0x3b3,
+	ACT_VR_PISTOL_CLIP_IN_SLIDE_BACK = 0x3b4,
+	ACT_VR_PISTOL_IDLE_SLIDE_BACK = 0x3b5,
+	ACT_VR_PISTOL_IDLE_SLIDE_BACK_CLIP_READY = 0x3b6,
+	ACT_RAGDOLL_RECOVERY_FRONT = 0x3b7,
+	ACT_RAGDOLL_RECOVERY_BACK = 0x3b8,
+	ACT_RAGDOLL_RECOVERY_LEFT = 0x3b9,
+	ACT_RAGDOLL_RECOVERY_RIGHT = 0x3ba,
+	ACT_GRABBITYGLOVES_GRAB = 0x3bb,
+	ACT_GRABBITYGLOVES_RELEASE = 0x3bc,
+	ACT_GRABBITYGLOVES_GRAB_IDLE = 0x3bd,
+	ACT_GRABBITYGLOVES_ACTIVE = 0x3be,
+	ACT_GRABBITYGLOVES_ACTIVE_IDLE = 0x3bf,
+	ACT_GRABBITYGLOVES_DEACTIVATE = 0x3c0,
+	ACT_GRABBITYGLOVES_PULL = 0x3c1,
+	ACT_HEADCRAB_SMOKE_BOMB = 0x3c2,
+	ACT_HEADCRAB_SPIT = 0x3c3,
+	ACT_ZOMBIE_TRIP = 0x3c4,
+	ACT_ZOMBIE_LUNGE = 0x3c5,
+	ACT_NEUTRAL_REF_POSE = 0x3c6,
+	ACT_ANTLION_SCUTTLE_FORWARD = 0x3c7,
+	ACT_ANTLION_SCUTTLE_BACK = 0x3c8,
+	ACT_ANTLION_SCUTTLE_LEFT = 0x3c9,
+	ACT_ANTLION_SCUTTLE_RIGHT = 0x3ca,
+	ACT_VR_PISTOL_EMPTY_CLIP_IN_SLIDE_BACK = 0x3cb,
+	ACT_VR_SHOTGUN_IDLE = 0x3cc,
+	ACT_VR_SHOTGUN_OPEN_CHAMBER = 0x3cd,
+	ACT_VR_SHOTGUN_RELOAD_1 = 0x3ce,
+	ACT_VR_SHOTGUN_RELOAD_2 = 0x3cf,
+	ACT_VR_SHOTGUN_RELOAD_3 = 0x3d0,
+	ACT_VR_SHOTGUN_CLOSE_CHAMBER = 0x3d1,
+	ACT_VR_SHOTGUN_TRIGGER_SQUEEZE = 0x3d2,
+	ACT_VR_SHOTGUN_SHOOT = 0x3d3,
+	ACT_VR_SHOTGUN_SLIDE_BACK = 0x3d4,
+	ACT_VR_SHOTGUN_SLIDE_FORWARD = 0x3d5,
+	ACT_VR_PISTOL_LONG_CLIP_IN_CHAMBERED = 0x3d6,
+	ACT_VR_PISTOL_LONG_CLIP_IN_SLIDE_BACK = 0x3d7,
+	ACT_VR_PISTOL_BURST_TOGGLE = 0x3d8,
+	ACT_VR_PISTOL_LOW_KICK = 0x3d9,
+	ACT_VR_PISTOL_BURST_ATTACK = 0x3da,
+	ACT_VR_SHOTGUN_GRENADE_TWIST = 0x3db,
+	ACT_DIE_STAND = 0x3dc,
+	ACT_DIE_STAND_HEADSHOT = 0x3dd,
+	ACT_DIE_CROUCH = 0x3de,
+	ACT_DIE_CROUCH_HEADSHOT = 0x3df,
+	ACT_CSGO_NULL = 0x3e0,
+	ACT_CSGO_DEFUSE = 0x3e1,
+	ACT_CSGO_DEFUSE_WITH_KIT = 0x3e2,
+	ACT_CSGO_FLASHBANG_REACTION = 0x3e3,
+	ACT_CSGO_FIRE_PRIMARY = 0x3e4,
+	ACT_CSGO_FIRE_PRIMARY_OPT_1 = 0x3e5,
+	ACT_CSGO_FIRE_PRIMARY_OPT_2 = 0x3e6,
+	ACT_CSGO_FIRE_SECONDARY = 0x3e7,
+	ACT_CSGO_FIRE_SECONDARY_OPT_1 = 0x3e8,
+	ACT_CSGO_FIRE_SECONDARY_OPT_2 = 0x3e9,
+	ACT_CSGO_RELOAD = 0x3ea,
+	ACT_CSGO_RELOAD_START = 0x3eb,
+	ACT_CSGO_RELOAD_LOOP = 0x3ec,
+	ACT_CSGO_RELOAD_END = 0x3ed,
+	ACT_CSGO_OPERATE = 0x3ee,
+	ACT_CSGO_DEPLOY = 0x3ef,
+	ACT_CSGO_CATCH = 0x3f0,
+	ACT_CSGO_SILENCER_DETACH = 0x3f1,
+	ACT_CSGO_SILENCER_ATTACH = 0x3f2,
+	ACT_CSGO_TWITCH = 0x3f3,
+	ACT_CSGO_TWITCH_BUYZONE = 0x3f4,
+	ACT_CSGO_PLANT_BOMB = 0x3f5,
+	ACT_CSGO_IDLE_TURN_BALANCEADJUST = 0x3f6,
+	ACT_CSGO_IDLE_ADJUST_STOPPEDMOVING = 0x3f7,
+	ACT_CSGO_ALIVE_LOOP = 0x3f8,
+	ACT_CSGO_FLINCH = 0x3f9,
+	ACT_CSGO_FLINCH_HEAD = 0x3fa,
+	ACT_CSGO_FLINCH_MOLOTOV = 0x3fb,
+	ACT_CSGO_JUMP = 0x3fc,
+	ACT_CSGO_FALL = 0x3fd,
+	ACT_CSGO_CLIMB_LADDER = 0x3fe,
+	ACT_CSGO_LAND_LIGHT = 0x3ff,
+	ACT_CSGO_LAND_HEAVY = 0x400,
+	ACT_CSGO_EXIT_LADDER_TOP = 0x401,
+	ACT_CSGO_EXIT_LADDER_BOTTOM = 0x402,
+	ACT_CSGO_PARACHUTE = 0x403,
+	ACT_CSGO_TAUNT = 0x404,
+};
+
+// Aligment: 1
+// Size: 3
+enum class DamageOptions_t : uint8_t
+{
+	DAMAGE_NO = 0,
+	DAMAGE_EVENTS_ONLY = 1,
+	DAMAGE_YES = 2,
 };
 
 // Aligment: 4
@@ -56,17 +1107,17 @@ enum class BrushSolidities_e : uint32_t
 enum class MoveType_t : uint8_t
 {
 	MOVETYPE_NONE = 0,
-	MOVETYPE_UNUSED1 = 1,
+	MOVETYPE_ISOMETRIC = 1,
 	MOVETYPE_WALK = 2,
-	MOVETYPE_UNUSED9 = 3,
-	MOVETYPE_UNUSED2 = 4,
-	MOVETYPE_UNUSED3 = 5,
+	MOVETYPE_STEP = 3,
+	MOVETYPE_FLY = 4,
+	MOVETYPE_FLYGRAVITY = 5,
 	MOVETYPE_VPHYSICS = 6,
-	MOVETYPE_UNUSED8 = 7,
-	MOVETYPE_UNUSED4 = 8,
-	MOVETYPE_UNUSED5 = 9,
-	MOVETYPE_UNUSED6 = 10,
-	MOVETYPE_UNUSED7 = 11,
+	MOVETYPE_PUSH = 7,
+	MOVETYPE_NOCLIP = 8,
+	MOVETYPE_LADDER = 9,
+	MOVETYPE_OBSERVER = 10,
+	MOVETYPE_CUSTOM = 11,
 	MOVETYPE_LAST = 11,
 	MOVETYPE_MAX_BITS = 4,
 };
@@ -117,7 +1168,7 @@ enum class RenderMode_t : uint8_t
 };
 
 // Aligment: 1
-// Size: 11
+// Size: 8
 enum class SolidType_t : uint8_t
 {
 	SOLID_NONE = 0,
@@ -127,46 +1178,68 @@ enum class SolidType_t : uint8_t
 	SOLID_POINT = 5,
 	SOLID_VPHYSICS = 6,
 	SOLID_CAPSULE = 7,
-	SOLID_SPHERE = 8,
-	SOLID_ORIENTED_CAPSULE = 9,
-	SOLID_CYLINDER = 10,
-	SOLID_LAST = 11,
+	SOLID_LAST = 8,
+};
+
+// Aligment: 1
+// Size: 6
+enum class MoveCollide_t : uint8_t
+{
+	MOVECOLLIDE_DEFAULT = 0,
+	MOVECOLLIDE_FLY_BOUNCE = 1,
+	MOVECOLLIDE_FLY_CUSTOM = 2,
+	MOVECOLLIDE_FLY_SLIDE = 3,
+	MOVECOLLIDE_COUNT = 4,
+	MOVECOLLIDE_MAX_BITS = 3,
 };
 
 // Aligment: 4
-// Size: 30
-enum class soundlevel_t : uint32_t
+// Size: 6
+enum class ShakeCommand_t : uint32_t
 {
-	SNDLVL_NONE = 0x0,
-	SNDLVL_20dB = 0x14,
-	SNDLVL_25dB = 0x19,
-	SNDLVL_30dB = 0x1e,
-	SNDLVL_35dB = 0x23,
-	SNDLVL_40dB = 0x28,
-	SNDLVL_45dB = 0x2d,
-	SNDLVL_50dB = 0x32,
-	SNDLVL_55dB = 0x37,
-	SNDLVL_IDLE = 0x3c,
-	SNDLVL_60dB = 0x3c,
-	SNDLVL_65dB = 0x41,
-	SNDLVL_STATIC = 0x42,
-	SNDLVL_70dB = 0x46,
-	SNDLVL_NORM = 0x4b,
-	SNDLVL_75dB = 0x4b,
-	SNDLVL_80dB = 0x50,
-	SNDLVL_TALKING = 0x50,
-	SNDLVL_85dB = 0x55,
-	SNDLVL_90dB = 0x5a,
-	SNDLVL_95dB = 0x5f,
-	SNDLVL_100dB = 0x64,
-	SNDLVL_105dB = 0x69,
-	SNDLVL_110dB = 0x6e,
-	SNDLVL_120dB = 0x78,
-	SNDLVL_130dB = 0x82,
-	SNDLVL_GUNFIRE = 0x8c,
-	SNDLVL_140dB = 0x8c,
-	SNDLVL_150dB = 0x96,
-	SNDLVL_180dB = 0xb4,
+	SHAKE_START = 0x0,
+	SHAKE_STOP = 0x1,
+	SHAKE_AMPLITUDE = 0x2,
+	SHAKE_FREQUENCY = 0x3,
+	SHAKE_START_RUMBLEONLY = 0x4,
+	SHAKE_START_NORUMBLE = 0x5,
+};
+
+// Aligment: 4
+// Size: 11
+enum class Hull_t : uint32_t
+{
+	HULL_HUMAN = 0x0,
+	HULL_SMALL_CENTERED = 0x1,
+	HULL_WIDE_HUMAN = 0x2,
+	HULL_TINY = 0x3,
+	HULL_MEDIUM = 0x4,
+	HULL_TINY_CENTERED = 0x5,
+	HULL_LARGE = 0x6,
+	HULL_LARGE_CENTERED = 0x7,
+	HULL_MEDIUM_TALL = 0x8,
+	NUM_HULLS = 0x9,
+	HULL_NONE = 0xa,
+};
+
+// Aligment: 4
+// Size: 3
+enum class LessonPanelLayoutFileTypes_t : uint32_t
+{
+	LAYOUT_HAND_DEFAULT = 0x0,
+	LAYOUT_WORLD_DEFAULT = 0x1,
+	LAYOUT_CUSTOM = 0x2,
+};
+
+// Aligment: 4
+// Size: 5
+enum class Touch_t : uint32_t
+{
+	touch_none = 0x0,
+	touch_player_only = 0x1,
+	touch_npc_only = 0x2,
+	touch_player_or_npc = 0x3,
+	touch_player_or_npc_or_physicsprop = 0x4,
 };
 
 // Aligment: 4
@@ -195,6 +1268,34 @@ enum class EntFinderMethod_t : uint32_t
 	ENT_FIND_METHOD_RANDOM = 0x2,
 };
 
+// Aligment: 4
+// Size: 4
+enum class eLiteralHandType : uint32_t
+{
+	LITERAL_HAND_TYPE_UNKNOWN = 0xffffffffffffffff,
+	LITERAL_HAND_TYPE_RIGHT = 0x0,
+	LITERAL_HAND_TYPE_LEFT = 0x1,
+	LITERAL_HAND_TYPE_COUNT = 0x2,
+};
+
+// Aligment: 4
+// Size: 4
+enum class eLogicalHandType : uint32_t
+{
+	LOGICAL_HAND_TYPE_UNKNOWN = 0xffffffffffffffff,
+	LOGICAL_HAND_TYPE_PRIMARY_HAND = 0x0,
+	LOGICAL_HAND_TYPE_OFF_HAND = 0x1,
+	LOGICAL_HAND_TYPE_COUNT = 0x2,
+};
+
+// Aligment: 4
+// Size: 2
+enum class interactions_t : uint32_t
+{
+	INTERACTION_NONE = 0xffffffffffffffff,
+	NUM_HAND_INTERACTIONS = 0x0,
+};
+
 // Aligment: 4
 // Size: 2
 enum class ValueRemapperInputType_t : uint32_t
@@ -239,6 +1340,14 @@ enum class ValueRemapperRatchetType_t : uint32_t
 	RatchetType_EachEngage = 0x1,
 };
 
+// Aligment: 4
+// Size: 2
+enum class SceneOnPlayerDeath_t : uint32_t
+{
+	SCENE_ONPLAYERDEATH_DO_NOTHING = 0x0,
+	SCENE_ONPLAYERDEATH_CANCEL = 0x1,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PointWorldTextJustifyHorizontal_t : uint32_t
@@ -266,11 +1375,19 @@ enum class PointWorldTextReorientMode_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 2
-enum class SceneOnPlayerDeath_t : uint32_t
+// Size: 10
+enum class Disposition_t : uint32_t
 {
-	SCENE_ONPLAYERDEATH_DO_NOTHING = 0x0,
-	SCENE_ONPLAYERDEATH_CANCEL = 0x1,
+	D_ER = 0x0,
+	D_HT = 0x1,
+	D_FR = 0x2,
+	D_LI = 0x3,
+	D_NU = 0x4,
+	D_ERROR = 0x0,
+	D_HATE = 0x1,
+	D_FEAR = 0x2,
+	D_LIKE = 0x3,
+	D_NEUTRAL = 0x4,
 };
 
 // Aligment: 4
@@ -287,6 +1404,16 @@ enum class TOGGLE_STATE : uint32_t
 	DOOR_CLOSING = 0x3,
 };
 
+// Aligment: 4
+// Size: 4
+enum class SpeechPriorityType : uint32_t
+{
+	SPEECH_PRIORITY_LOW = 0x0,
+	SPEECH_PRIORITY_NORMAL = 0x1,
+	SPEECH_PRIORITY_MANUAL = 0x2,
+	SPEECH_PRIORITY_UNINTERRUPTABLE = 0x3,
+};
+
 // Aligment: 4
 // Size: 2
 enum class filter_t : uint32_t
@@ -295,6 +1422,42 @@ enum class filter_t : uint32_t
 	FILTER_OR = 0x1,
 };
 
+// Aligment: 4
+// Size: 3
+enum class Explosions : uint32_t
+{
+	expRandom = 0x0,
+	expDirected = 0x1,
+	expUsePrecise = 0x2,
+};
+
+// Aligment: 4
+// Size: 12
+enum class Materials : uint32_t
+{
+	matGlass = 0x0,
+	matWood = 0x1,
+	matMetal = 0x2,
+	matFlesh = 0x3,
+	matCinderBlock = 0x4,
+	matCeilingTile = 0x5,
+	matComputer = 0x6,
+	matUnbreakableGlass = 0x7,
+	matRocks = 0x8,
+	matWeb = 0x9,
+	matNone = 0xa,
+	matLastMaterial = 0xb,
+};
+
+// Aligment: 4
+// Size: 3
+enum class SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t : uint32_t
+{
+	SimpleConstraintSoundProfile::kMIN_THRESHOLD = 0x0,
+	SimpleConstraintSoundProfile::kMIN_FULL = 0x1,
+	SimpleConstraintSoundProfile::kHIGHWATER = 0x2,
+};
+
 // Aligment: 4
 // Size: 3
 enum class PlayerConnectedState : uint32_t
@@ -341,6 +1504,110 @@ enum class SpawnDebugRestrictionOverrideState_t : uint32_t
 	SPAWN_DEBUG_RESTRICT_IGNORE_TARGET_COOLDOWN_LIMITS = 0x8,
 };
 
+// Aligment: 4
+// Size: 4
+enum class NetChannelBufType_t : uint32_t
+{
+	BUF_DEFAULT = 0xffffffffffffffff,
+	BUF_UNRELIABLE = 0x0,
+	BUF_RELIABLE = 0x1,
+	BUF_VOICE = 0x2,
+};
+
+// Aligment: 4
+// Size: 2
+enum class ShatterSurface_t : uint32_t
+{
+	SHATTERSURFACE_GLASS = 0x0,
+	SHATTERSURFACE_TILE = 0x1,
+};
+
+// Aligment: 4
+// Size: 30
+enum class soundlevel_t : uint32_t
+{
+	SNDLVL_NONE = 0x0,
+	SNDLVL_20dB = 0x14,
+	SNDLVL_25dB = 0x19,
+	SNDLVL_30dB = 0x1e,
+	SNDLVL_35dB = 0x23,
+	SNDLVL_40dB = 0x28,
+	SNDLVL_45dB = 0x2d,
+	SNDLVL_50dB = 0x32,
+	SNDLVL_55dB = 0x37,
+	SNDLVL_IDLE = 0x3c,
+	SNDLVL_60dB = 0x3c,
+	SNDLVL_65dB = 0x41,
+	SNDLVL_STATIC = 0x42,
+	SNDLVL_70dB = 0x46,
+	SNDLVL_NORM = 0x4b,
+	SNDLVL_75dB = 0x4b,
+	SNDLVL_80dB = 0x50,
+	SNDLVL_TALKING = 0x50,
+	SNDLVL_85dB = 0x55,
+	SNDLVL_90dB = 0x5a,
+	SNDLVL_95dB = 0x5f,
+	SNDLVL_100dB = 0x64,
+	SNDLVL_105dB = 0x69,
+	SNDLVL_110dB = 0x6e,
+	SNDLVL_120dB = 0x78,
+	SNDLVL_130dB = 0x82,
+	SNDLVL_GUNFIRE = 0x8c,
+	SNDLVL_140dB = 0x8c,
+	SNDLVL_150dB = 0x96,
+	SNDLVL_180dB = 0xb4,
+};
+
+// Aligment: 1
+// Size: 21
+enum class gender_t : uint8_t
+{
+	GENDER_NONE = 0,
+	GENDER_MALE = 1,
+	GENDER_FEMALE = 2,
+	GENDER_NAMVET = 3,
+	GENDER_TEENGIRL = 4,
+	GENDER_BIKER = 5,
+	GENDER_MANAGER = 6,
+	GENDER_GAMBLER = 7,
+	GENDER_PRODUCER = 8,
+	GENDER_COACH = 9,
+	GENDER_MECHANIC = 10,
+	GENDER_CEDA = 11,
+	GENDER_CRAWLER = 12,
+	GENDER_UNDISTRACTABLE = 13,
+	GENDER_FALLEN = 14,
+	GENDER_RIOT_CONTROL = 15,
+	GENDER_CLOWN = 16,
+	GENDER_JIMMY = 17,
+	GENDER_HOSPITAL_PATIENT = 18,
+	GENDER_BRIDE = 19,
+	GENDER_LAST = 20,
+};
+
+// Aligment: 4
+// Size: 7
+enum class BeamType_t : uint32_t
+{
+	BEAM_INVALID = 0x0,
+	BEAM_POINTS = 0x1,
+	BEAM_ENTPOINT = 0x2,
+	BEAM_ENTS = 0x3,
+	BEAM_HOSE = 0x4,
+	BEAM_SPLINE = 0x5,
+	BEAM_LASER = 0x6,
+};
+
+// Aligment: 4
+// Size: 4
+enum class BeamClipStyle_t : uint32_t
+{
+	kNOCLIP = 0x0,
+	kGEOCLIP = 0x1,
+	kMODELCLIP = 0x2,
+	kBEAMCLIPSTYLE_NUMBITS = 0x2,
+};
+
 // Aligment: 1
 // Size: 9
 enum class SurroundingBoundsType_t : uint8_t
@@ -356,6 +1623,37 @@ enum class SurroundingBoundsType_t : uint8_t
 	SURROUNDING_TYPE_BIT_COUNT = 3,
 };
 
+// Aligment: 4
+// Size: 5
+enum class LifeState_t : uint32_t
+{
+	LIFE_ALIVE = 0x0,
+	LIFE_DYING = 0x1,
+	LIFE_DEAD = 0x2,
+	LIFE_RESPAWNABLE = 0x3,
+	LIFE_RESPAWNING = 0x4,
+};
+
+// Aligment: 4
+// Size: 1
+enum class TakeHealthOptions_t : uint32_t
+{
+	TH_IGNORE_MAX_HITPOINTS = 0x1,
+};
+
+// Aligment: 4
+// Size: 7
+enum class PoseController_FModType_t : uint32_t
+{
+	POSECONTROLLER_FMODTYPE_NONE = 0x0,
+	POSECONTROLLER_FMODTYPE_SINE = 0x1,
+	POSECONTROLLER_FMODTYPE_SQUARE = 0x2,
+	POSECONTROLLER_FMODTYPE_TRIANGLE = 0x3,
+	POSECONTROLLER_FMODTYPE_SAWTOOTH = 0x4,
+	POSECONTROLLER_FMODTYPE_NOISE = 0x5,
+	POSECONTROLLER_FMODTYPE_TOTAL = 0x6,
+};
+
 // Aligment: 4
 // Size: 11
 enum class PrecipitationType_t : uint32_t
@@ -373,6 +1671,47 @@ enum class PrecipitationType_t : uint32_t
 	NUM_PRECIPITATION_TYPES = 0xe,
 };
 
+// Aligment: 4
+// Size: 16
+enum class vote_create_failed_t : uint32_t
+{
+	VOTE_FAILED_GENERIC = 0x0,
+	VOTE_FAILED_TRANSITIONING_PLAYERS = 0x1,
+	VOTE_FAILED_RATE_EXCEEDED = 0x2,
+	VOTE_FAILED_YES_MUST_EXCEED_NO = 0x3,
+	VOTE_FAILED_QUORUM_FAILURE = 0x4,
+	VOTE_FAILED_ISSUE_DISABLED = 0x5,
+	VOTE_FAILED_MAP_NOT_FOUND = 0x6,
+	VOTE_FAILED_MAP_NAME_REQUIRED = 0x7,
+	VOTE_FAILED_FAILED_RECENTLY = 0x8,
+	VOTE_FAILED_TEAM_CANT_CALL = 0x9,
+	VOTE_FAILED_WAITINGFORPLAYERS = 0xa,
+	VOTE_FAILED_PLAYERNOTFOUND = 0xb,
+	VOTE_FAILED_CANNOT_KICK_ADMIN = 0xc,
+	VOTE_FAILED_SCRAMBLE_IN_PROGRESS = 0xd,
+	VOTE_FAILED_SPECTATOR = 0xe,
+	VOTE_FAILED_MAX = 0xf,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WeaponState_t : uint32_t
+{
+	WEAPON_NOT_CARRIED = 0x0,
+	WEAPON_IS_CARRIED_BY_PLAYER = 0x1,
+	WEAPON_IS_ACTIVE = 0x2,
+};
+
+// Aligment: 4
+// Size: 4
+enum class EntityDisolveType_t : uint32_t
+{
+	ENTITY_DISSOLVE_NORMAL = 0x0,
+	ENTITY_DISSOLVE_ELECTRICAL = 0x1,
+	ENTITY_DISSOLVE_ELECTRICAL_LIGHT = 0x2,
+	ENTITY_DISSOLVE_CORE = 0x3,
+};
+
 // Aligment: 4
 // Size: 5
 enum class DoorState_t : uint32_t
@@ -384,6 +1723,16 @@ enum class DoorState_t : uint32_t
 	DOOR_STATE_AJAR = 0x4,
 };
 
+// Aligment: 4
+// Size: 4
+enum class MaterialModifyMode_t : uint32_t
+{
+	MATERIAL_MODIFY_MODE_NONE = 0x0,
+	MATERIAL_MODIFY_MODE_SETVAR = 0x1,
+	MATERIAL_MODIFY_MODE_ANIM_SEQUENCE = 0x2,
+	MATERIAL_MODIFY_MODE_FLOAT_LERP = 0x3,
+};
+
 // Aligment: 4
 // Size: 3
 enum class ScreenEffectType_t : uint32_t
@@ -433,6 +1782,977 @@ enum class LOSSpeculativeMuzzle_t : uint32_t
 	MUZZLE_CROUCHING = 0x2,
 };
 
+// Aligment: 4
+// Size: 5
+enum class WeaponProficiency_t : uint32_t
+{
+	WEAPON_PROFICIENCY_POOR = 0x0,
+	WEAPON_PROFICIENCY_AVERAGE = 0x1,
+	WEAPON_PROFICIENCY_GOOD = 0x2,
+	WEAPON_PROFICIENCY_VERY_GOOD = 0x3,
+	WEAPON_PROFICIENCY_PERFECT = 0x4,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelHorizontalAlign_t : uint32_t
+{
+	WORLDTEXT_HORIZONTAL_ALIGN_LEFT = 0x0,
+	WORLDTEXT_HORIZONTAL_ALIGN_CENTER = 0x1,
+	WORLDTEXT_HORIZONTAL_ALIGN_RIGHT = 0x2,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelVerticalAlign_t : uint32_t
+{
+	WORLDTEXT_VERTICAL_ALIGN_TOP = 0x0,
+	WORLDTEXT_VERTICAL_ALIGN_CENTER = 0x1,
+	WORLDTEXT_VERTICAL_ALIGN_BOTTOM = 0x2,
+};
+
+// Aligment: 4
+// Size: 3
+enum class WorldTextPanelOrientation_t : uint32_t
+{
+	WORLDTEXT_ORIENTATION_DEFAULT = 0x0,
+	WORLDTEXT_ORIENTATION_FACEUSER = 0x1,
+	WORLDTEXT_ORIENTATION_FACEUSER_UPRIGHT = 0x2,
+};
+
+// Aligment: 4
+// Size: 7
+enum class WorldTextAttachmentType_t : uint32_t
+{
+	ATTACHED_NONE = 0x0,
+	ATTACHED_PRIMARY_HAND = 0x1,
+	ATTACHED_OFF_HAND = 0x2,
+	ATTACHED_ENTITY = 0x3,
+	ATTACHED_HMD = 0x4,
+	ATTACHED_ENTITY_LARGE = 0x5,
+	ATTACHED_HAND_SPECIFIED_IN_EVENT = 0x6,
+};
+
+// Aligment: 4
+// Size: 2
+enum class attributeprovidertypes_t : uint32_t
+{
+	PROVIDER_GENERIC = 0x0,
+	PROVIDER_WEAPON = 0x1,
+};
+
+// Aligment: 4
+// Size: 3
+enum class EconEntityParticleDisableMode_t : uint32_t
+{
+	ECON_ENTITY_PARTICLES_ENABLED = 0x0,
+	ECON_ENTITY_PARTICLES_DISABLED = 0x1,
+	ECON_ENTITY_PARTICLES_DISABLED_BUT_PLAY_ENDCAPS_TO_STOP = 0x2,
+};
+
+// Aligment: 4
+// Size: 4
+enum class PetLevelup_Rule_t : uint32_t
+{
+	PETLEVELFROM_NOTHING = 0x0,
+	PETLEVELFROM_KILLEATER = 0x1,
+	PETLEVELFROM_COMPENDIUM_LEVEL = 0x2,
+	NUM_PETLEVELUPRULES = 0x3,
+};
+
+// Aligment: 4
+// Size: 46
+enum class eEconItemOrigin : uint32_t
+{
+	kEconItemOrigin_Invalid = 0xffffffffffffffff,
+	kEconItemOrigin_Drop = 0x0,
+	kEconItemOrigin_Achievement = 0x1,
+	kEconItemOrigin_Purchased = 0x2,
+	kEconItemOrigin_Traded = 0x3,
+	kEconItemOrigin_Crafted = 0x4,
+	kEconItemOrigin_StorePromotion = 0x5,
+	kEconItemOrigin_Gifted = 0x6,
+	kEconItemOrigin_SupportGranted = 0x7,
+	kEconItemOrigin_FoundInCrate = 0x8,
+	kEconItemOrigin_Earned = 0x9,
+	kEconItemOrigin_ThirdPartyPromotion = 0xa,
+	kEconItemOrigin_GiftWrapped = 0xb,
+	kEconItemOrigin_HalloweenDrop = 0xc,
+	kEconItemOrigin_PackageItem = 0xd,
+	kEconItemOrigin_Foreign = 0xe,
+	kEconItemOrigin_CDKey = 0xf,
+	kEconItemOrigin_CollectionReward = 0x10,
+	kEconItemOrigin_PreviewItem = 0x11,
+	kEconItemOrigin_SteamWorkshopContribution = 0x12,
+	kEconItemOrigin_PeriodicScoreReward = 0x13,
+	kEconItemOrigin_Recycling = 0x14,
+	kEconItemOrigin_TournamentDrop = 0x15,
+	kEconItemOrigin_PassportReward = 0x16,
+	kEconItemOrigin_TutorialDrop = 0x17,
+	kEconItemOrigin_RecipeOutput = 0x18,
+	kEconItemOrigin_GemExtract = 0x19,
+	kEconItemOrigin_EventPointReward = 0x1a,
+	kEconItemOrigin_ItemRedemption = 0x1b,
+	kEconItemOrigin_FantasyTicketRefund = 0x1c,
+	kEconItemOrigin_VictoryPredictionReward = 0x1d,
+	kEconItemOrigin_AssassinEventReward = 0x1e,
+	kEconItemOrigin_CompendiumReward = 0x1f,
+	kEconItemOrigin_CompendiumDrop = 0x20,
+	kEconItemOrigin_MysteryItem = 0x21,
+	kEconItemOrigin_UnpackedFromBundle = 0x22,
+	kEconItemOrigin_WonFromWeeklyGame = 0x23,
+	kEconItemOrigin_SeasonalItemGrant = 0x24,
+	kEconItemOrigin_PackOpening = 0x25,
+	kEconItemOrigin_InitialGrant = 0x26,
+	kEconItemOrigin_MarketPurchase = 0x27,
+	kEconItemOrigin_MarketRefunded = 0x28,
+	kEconItemOrigin_LimitedDraft = 0x29,
+	kEconItemOrigin_GauntletReward = 0x2a,
+	kEconItemOrigin_CompendiumGift = 0x2b,
+	kEconItemOrigin_Max = 0x2c,
+};
+
+// Aligment: 4
+// Size: 5
+enum class EDACUnderlordEquipSlot : uint32_t
+{
+	EDACUnderlordEquipSlot_None = 0x0,
+	EDACUnderlordEquipSlot_First = 0x1,
+	EDACUnderlordEquipSlot_Skin = 0x1,
+	EDACUnderlordEquipSlot_VictoryDance = 0x2,
+	EDACUnderlordEquipSlot_Max = 0x2,
+};
+
+// Aligment: 4
+// Size: 12
+enum class DacGestureSlot_t : uint32_t
+{
+	GESTURE_SLOT_NONE = 0xffffffffffffffff,
+	GESTURE_SLOT_ATTACK = 0x0,
+	GESTURE_SLOT_ABILITY = 0x1,
+	GESTURE_SLOT_OVERRIDE = 0x2,
+	GESTURE_SLOT_CUSTOM = 0x3,
+	GESTURE_SLOT_CUSTOM2 = 0x4,
+	GESTURE_SLOT_CUSTOM3 = 0x5,
+	GESTURE_SLOT_CONSTANT = 0x6,
+	GESTURE_SLOT_TAUNT = 0x7,
+	GESTURE_SLOT_ABSOLUTE = 0x8,
+	GESTURE_SLOT_COUNT = 0x9,
+	GESTURE_SLOT_STOLEN_ABILITY_BIT = 0x80,
+};
+
+// Aligment: 4
+// Size: 270
+enum class GameActivity_t : uint32_t
+{
+	ACT_DOTA_IDLE = 0x5dc,
+	ACT_DOTA_IDLE_RARE = 0x5dd,
+	ACT_DOTA_RUN = 0x5de,
+	ACT_DOTA_ATTACK = 0x5df,
+	ACT_DOTA_ATTACK2 = 0x5e0,
+	ACT_DOTA_ATTACK_EVENT = 0x5e1,
+	ACT_DOTA_DIE = 0x5e2,
+	ACT_DOTA_FLINCH = 0x5e3,
+	ACT_DOTA_FLAIL = 0x5e4,
+	ACT_DOTA_DISABLED = 0x5e5,
+	ACT_DOTA_CAST_ABILITY_1 = 0x5e6,
+	ACT_DOTA_CAST_ABILITY_2 = 0x5e7,
+	ACT_DOTA_CAST_ABILITY_3 = 0x5e8,
+	ACT_DOTA_CAST_ABILITY_4 = 0x5e9,
+	ACT_DOTA_CAST_ABILITY_5 = 0x5ea,
+	ACT_DOTA_CAST_ABILITY_6 = 0x5eb,
+	ACT_DOTA_OVERRIDE_ABILITY_1 = 0x5ec,
+	ACT_DOTA_OVERRIDE_ABILITY_2 = 0x5ed,
+	ACT_DOTA_OVERRIDE_ABILITY_3 = 0x5ee,
+	ACT_DOTA_OVERRIDE_ABILITY_4 = 0x5ef,
+	ACT_DOTA_CHANNEL_ABILITY_1 = 0x5f0,
+	ACT_DOTA_CHANNEL_ABILITY_2 = 0x5f1,
+	ACT_DOTA_CHANNEL_ABILITY_3 = 0x5f2,
+	ACT_DOTA_CHANNEL_ABILITY_4 = 0x5f3,
+	ACT_DOTA_CHANNEL_ABILITY_5 = 0x5f4,
+	ACT_DOTA_CHANNEL_ABILITY_6 = 0x5f5,
+	ACT_DOTA_CHANNEL_END_ABILITY_1 = 0x5f6,
+	ACT_DOTA_CHANNEL_END_ABILITY_2 = 0x5f7,
+	ACT_DOTA_CHANNEL_END_ABILITY_3 = 0x5f8,
+	ACT_DOTA_CHANNEL_END_ABILITY_4 = 0x5f9,
+	ACT_DOTA_CHANNEL_END_ABILITY_5 = 0x5fa,
+	ACT_DOTA_CHANNEL_END_ABILITY_6 = 0x5fb,
+	ACT_DOTA_CONSTANT_LAYER = 0x5fc,
+	ACT_DOTA_CAPTURE = 0x5fd,
+	ACT_DOTA_SPAWN = 0x5fe,
+	ACT_DOTA_KILLTAUNT = 0x5ff,
+	ACT_DOTA_TAUNT = 0x600,
+	ACT_DOTA_THIRST = 0x601,
+	ACT_DOTA_CAST_DRAGONBREATH = 0x602,
+	ACT_DOTA_ECHO_SLAM = 0x603,
+	ACT_DOTA_CAST_ABILITY_1_END = 0x604,
+	ACT_DOTA_CAST_ABILITY_2_END = 0x605,
+	ACT_DOTA_CAST_ABILITY_3_END = 0x606,
+	ACT_DOTA_CAST_ABILITY_4_END = 0x607,
+	ACT_MIRANA_LEAP_END = 0x608,
+	ACT_WAVEFORM_START = 0x609,
+	ACT_WAVEFORM_END = 0x60a,
+	ACT_DOTA_CAST_ABILITY_ROT = 0x60b,
+	ACT_DOTA_DIE_SPECIAL = 0x60c,
+	ACT_DOTA_RATTLETRAP_BATTERYASSAULT = 0x60d,
+	ACT_DOTA_RATTLETRAP_POWERCOGS = 0x60e,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_START = 0x60f,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_LOOP = 0x610,
+	ACT_DOTA_RATTLETRAP_HOOKSHOT_END = 0x611,
+	ACT_STORM_SPIRIT_OVERLOAD_RUN_OVERRIDE = 0x612,
+	ACT_DOTA_TINKER_REARM1 = 0x613,
+	ACT_DOTA_TINKER_REARM2 = 0x614,
+	ACT_DOTA_TINKER_REARM3 = 0x615,
+	ACT_TINY_AVALANCHE = 0x616,
+	ACT_TINY_TOSS = 0x617,
+	ACT_TINY_GROWL = 0x618,
+	ACT_DOTA_WEAVERBUG_ATTACH = 0x619,
+	ACT_DOTA_CAST_WILD_AXES_END = 0x61a,
+	ACT_DOTA_CAST_LIFE_BREAK_START = 0x61b,
+	ACT_DOTA_CAST_LIFE_BREAK_END = 0x61c,
+	ACT_DOTA_NIGHTSTALKER_TRANSITION = 0x61d,
+	ACT_DOTA_LIFESTEALER_RAGE = 0x61e,
+	ACT_DOTA_LIFESTEALER_OPEN_WOUNDS = 0x61f,
+	ACT_DOTA_SAND_KING_BURROW_IN = 0x620,
+	ACT_DOTA_SAND_KING_BURROW_OUT = 0x621,
+	ACT_DOTA_EARTHSHAKER_TOTEM_ATTACK = 0x622,
+	ACT_DOTA_WHEEL_LAYER = 0x623,
+	ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_START = 0x624,
+	ACT_DOTA_ALCHEMIST_CONCOCTION = 0x625,
+	ACT_DOTA_JAKIRO_LIQUIDFIRE_START = 0x626,
+	ACT_DOTA_JAKIRO_LIQUIDFIRE_LOOP = 0x627,
+	ACT_DOTA_LIFESTEALER_INFEST = 0x628,
+	ACT_DOTA_LIFESTEALER_INFEST_END = 0x629,
+	ACT_DOTA_LASSO_LOOP = 0x62a,
+	ACT_DOTA_ALCHEMIST_CONCOCTION_THROW = 0x62b,
+	ACT_DOTA_ALCHEMIST_CHEMICAL_RAGE_END = 0x62c,
+	ACT_DOTA_CAST_COLD_SNAP = 0x62d,
+	ACT_DOTA_CAST_GHOST_WALK = 0x62e,
+	ACT_DOTA_CAST_TORNADO = 0x62f,
+	ACT_DOTA_CAST_EMP = 0x630,
+	ACT_DOTA_CAST_ALACRITY = 0x631,
+	ACT_DOTA_CAST_CHAOS_METEOR = 0x632,
+	ACT_DOTA_CAST_SUN_STRIKE = 0x633,
+	ACT_DOTA_CAST_FORGE_SPIRIT = 0x634,
+	ACT_DOTA_CAST_ICE_WALL = 0x635,
+	ACT_DOTA_CAST_DEAFENING_BLAST = 0x636,
+	ACT_DOTA_VICTORY = 0x637,
+	ACT_DOTA_DEFEAT = 0x638,
+	ACT_DOTA_SPIRIT_BREAKER_CHARGE_POSE = 0x639,
+	ACT_DOTA_SPIRIT_BREAKER_CHARGE_END = 0x63a,
+	ACT_DOTA_TELEPORT = 0x63b,
+	ACT_DOTA_TELEPORT_END = 0x63c,
+	ACT_DOTA_CAST_REFRACTION = 0x63d,
+	ACT_DOTA_CAST_ABILITY_7 = 0x63e,
+	ACT_DOTA_CANCEL_SIREN_SONG = 0x63f,
+	ACT_DOTA_CHANNEL_ABILITY_7 = 0x640,
+	ACT_DOTA_LOADOUT = 0x641,
+	ACT_DOTA_FORCESTAFF_END = 0x642,
+	ACT_DOTA_POOF_END = 0x643,
+	ACT_DOTA_SLARK_POUNCE = 0x644,
+	ACT_DOTA_MAGNUS_SKEWER_START = 0x645,
+	ACT_DOTA_MAGNUS_SKEWER_END = 0x646,
+	ACT_DOTA_MEDUSA_STONE_GAZE = 0x647,
+	ACT_DOTA_RELAX_START = 0x648,
+	ACT_DOTA_RELAX_LOOP = 0x649,
+	ACT_DOTA_RELAX_END = 0x64a,
+	ACT_DOTA_CENTAUR_STAMPEDE = 0x64b,
+	ACT_DOTA_BELLYACHE_START = 0x64c,
+	ACT_DOTA_BELLYACHE_LOOP = 0x64d,
+	ACT_DOTA_BELLYACHE_END = 0x64e,
+	ACT_DOTA_ROQUELAIRE_LAND = 0x64f,
+	ACT_DOTA_ROQUELAIRE_LAND_IDLE = 0x650,
+	ACT_DOTA_GREEVIL_CAST = 0x651,
+	ACT_DOTA_GREEVIL_OVERRIDE_ABILITY = 0x652,
+	ACT_DOTA_GREEVIL_HOOK_START = 0x653,
+	ACT_DOTA_GREEVIL_HOOK_END = 0x654,
+	ACT_DOTA_GREEVIL_BLINK_BONE = 0x655,
+	ACT_DOTA_IDLE_SLEEPING = 0x656,
+	ACT_DOTA_INTRO = 0x657,
+	ACT_DOTA_GESTURE_POINT = 0x658,
+	ACT_DOTA_GESTURE_ACCENT = 0x659,
+	ACT_DOTA_SLEEPING_END = 0x65a,
+	ACT_DOTA_AMBUSH = 0x65b,
+	ACT_DOTA_ITEM_LOOK = 0x65c,
+	ACT_DOTA_STARTLE = 0x65d,
+	ACT_DOTA_FRUSTRATION = 0x65e,
+	ACT_DOTA_TELEPORT_REACT = 0x65f,
+	ACT_DOTA_TELEPORT_END_REACT = 0x660,
+	ACT_DOTA_SHRUG = 0x661,
+	ACT_DOTA_RELAX_LOOP_END = 0x662,
+	ACT_DOTA_PRESENT_ITEM = 0x663,
+	ACT_DOTA_IDLE_IMPATIENT = 0x664,
+	ACT_DOTA_SHARPEN_WEAPON = 0x665,
+	ACT_DOTA_SHARPEN_WEAPON_OUT = 0x666,
+	ACT_DOTA_IDLE_SLEEPING_END = 0x667,
+	ACT_DOTA_BRIDGE_DESTROY = 0x668,
+	ACT_DOTA_TAUNT_SNIPER = 0x669,
+	ACT_DOTA_DEATH_BY_SNIPER = 0x66a,
+	ACT_DOTA_LOOK_AROUND = 0x66b,
+	ACT_DOTA_CAGED_CREEP_RAGE = 0x66c,
+	ACT_DOTA_CAGED_CREEP_RAGE_OUT = 0x66d,
+	ACT_DOTA_CAGED_CREEP_SMASH = 0x66e,
+	ACT_DOTA_CAGED_CREEP_SMASH_OUT = 0x66f,
+	ACT_DOTA_IDLE_IMPATIENT_SWORD_TAP = 0x670,
+	ACT_DOTA_INTRO_LOOP = 0x671,
+	ACT_DOTA_BRIDGE_THREAT = 0x672,
+	ACT_DOTA_DAGON = 0x673,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL_START = 0x674,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL = 0x675,
+	ACT_DOTA_CAST_ABILITY_2_ES_ROLL_END = 0x676,
+	ACT_DOTA_NIAN_PIN_START = 0x677,
+	ACT_DOTA_NIAN_PIN_LOOP = 0x678,
+	ACT_DOTA_NIAN_PIN_END = 0x679,
+	ACT_DOTA_LEAP_STUN = 0x67a,
+	ACT_DOTA_LEAP_SWIPE = 0x67b,
+	ACT_DOTA_NIAN_INTRO_LEAP = 0x67c,
+	ACT_DOTA_AREA_DENY = 0x67d,
+	ACT_DOTA_NIAN_PIN_TO_STUN = 0x67e,
+	ACT_DOTA_RAZE_1 = 0x67f,
+	ACT_DOTA_RAZE_2 = 0x680,
+	ACT_DOTA_RAZE_3 = 0x681,
+	ACT_DOTA_UNDYING_DECAY = 0x682,
+	ACT_DOTA_UNDYING_SOUL_RIP = 0x683,
+	ACT_DOTA_UNDYING_TOMBSTONE = 0x684,
+	ACT_DOTA_WHIRLING_AXES_RANGED = 0x685,
+	ACT_DOTA_SHALLOW_GRAVE = 0x686,
+	ACT_DOTA_COLD_FEET = 0x687,
+	ACT_DOTA_ICE_VORTEX = 0x688,
+	ACT_DOTA_CHILLING_TOUCH = 0x689,
+	ACT_DOTA_ENFEEBLE = 0x68a,
+	ACT_DOTA_FATAL_BONDS = 0x68b,
+	ACT_DOTA_MIDNIGHT_PULSE = 0x68c,
+	ACT_DOTA_ANCESTRAL_SPIRIT = 0x68d,
+	ACT_DOTA_THUNDER_STRIKE = 0x68e,
+	ACT_DOTA_KINETIC_FIELD = 0x68f,
+	ACT_DOTA_STATIC_STORM = 0x690,
+	ACT_DOTA_MINI_TAUNT = 0x691,
+	ACT_DOTA_ARCTIC_BURN_END = 0x692,
+	ACT_DOTA_LOADOUT_RARE = 0x693,
+	ACT_DOTA_SWIM = 0x694,
+	ACT_DOTA_FLEE = 0x695,
+	ACT_DOTA_TROT = 0x696,
+	ACT_DOTA_SHAKE = 0x697,
+	ACT_DOTA_SWIM_IDLE = 0x698,
+	ACT_DOTA_WAIT_IDLE = 0x699,
+	ACT_DOTA_GREET = 0x69a,
+	ACT_DOTA_TELEPORT_COOP_START = 0x69b,
+	ACT_DOTA_TELEPORT_COOP_WAIT = 0x69c,
+	ACT_DOTA_TELEPORT_COOP_END = 0x69d,
+	ACT_DOTA_TELEPORT_COOP_EXIT = 0x69e,
+	ACT_DOTA_SHOPKEEPER_PET_INTERACT = 0x69f,
+	ACT_DOTA_ITEM_PICKUP = 0x6a0,
+	ACT_DOTA_ITEM_DROP = 0x6a1,
+	ACT_DOTA_CAPTURE_PET = 0x6a2,
+	ACT_DOTA_PET_WARD_OBSERVER = 0x6a3,
+	ACT_DOTA_PET_WARD_SENTRY = 0x6a4,
+	ACT_DOTA_PET_LEVEL = 0x6a5,
+	ACT_DOTA_CAST_BURROW_END = 0x6a6,
+	ACT_DOTA_LIFESTEALER_ASSIMILATE = 0x6a7,
+	ACT_DOTA_LIFESTEALER_EJECT = 0x6a8,
+	ACT_DOTA_ATTACK_EVENT_BASH = 0x6a9,
+	ACT_DOTA_CAPTURE_RARE = 0x6aa,
+	ACT_DOTA_AW_MAGNETIC_FIELD = 0x6ab,
+	ACT_DOTA_CAST_GHOST_SHIP = 0x6ac,
+	ACT_DOTA_FXANIM = 0x6ad,
+	ACT_DOTA_VICTORY_START = 0x6ae,
+	ACT_DOTA_DEFEAT_START = 0x6af,
+	ACT_DOTA_DP_SPIRIT_SIPHON = 0x6b0,
+	ACT_DOTA_TRICKS_END = 0x6b1,
+	ACT_DOTA_ES_STONE_CALLER = 0x6b2,
+	ACT_DOTA_MK_STRIKE = 0x6b3,
+	ACT_DOTA_VERSUS = 0x6b4,
+	ACT_DOTA_CAPTURE_CARD = 0x6b5,
+	ACT_DOTA_MK_SPRING_SOAR = 0x6b6,
+	ACT_DOTA_MK_SPRING_END = 0x6b7,
+	ACT_DOTA_MK_TREE_SOAR = 0x6b8,
+	ACT_DOTA_MK_TREE_END = 0x6b9,
+	ACT_DOTA_MK_FUR_ARMY = 0x6ba,
+	ACT_DOTA_MK_SPRING_CAST = 0x6bb,
+	ACT_DOTA_NECRO_GHOST_SHROUD = 0x6bc,
+	ACT_DOTA_OVERRIDE_ARCANA = 0x6bd,
+	ACT_DOTA_SLIDE = 0x6be,
+	ACT_DOTA_SLIDE_LOOP = 0x6bf,
+	ACT_DOTA_GENERIC_CHANNEL_1 = 0x6c0,
+	ACT_DOTA_GS_SOUL_CHAIN = 0x6c1,
+	ACT_DOTA_GS_INK_CREATURE = 0x6c2,
+	ACT_DOTA_TRANSITION = 0x6c3,
+	ACT_DOTA_BLINK_DAGGER = 0x6c4,
+	ACT_DOTA_BLINK_DAGGER_END = 0x6c5,
+	ACT_DOTA_CUSTOM_TOWER_ATTACK = 0x6c6,
+	ACT_DOTA_CUSTOM_TOWER_IDLE = 0x6c7,
+	ACT_DOTA_CUSTOM_TOWER_DIE = 0x6c8,
+	ACT_DOTA_CAST_COLD_SNAP_ORB = 0x6c9,
+	ACT_DOTA_CAST_GHOST_WALK_ORB = 0x6ca,
+	ACT_DOTA_CAST_TORNADO_ORB = 0x6cb,
+	ACT_DOTA_CAST_EMP_ORB = 0x6cc,
+	ACT_DOTA_CAST_ALACRITY_ORB = 0x6cd,
+	ACT_DOTA_CAST_CHAOS_METEOR_ORB = 0x6ce,
+	ACT_DOTA_CAST_SUN_STRIKE_ORB = 0x6cf,
+	ACT_DOTA_CAST_FORGE_SPIRIT_ORB = 0x6d0,
+	ACT_DOTA_CAST_ICE_WALL_ORB = 0x6d1,
+	ACT_DOTA_CAST_DEAFENING_BLAST_ORB = 0x6d2,
+	ACT_DOTA_NOTICE = 0x6d3,
+	ACT_DOTA_ANESSIX_CAST_GOLEM = 0x6d4,
+	ACT_DOTA_ANESSIX_CAST_GOLEM_CRASH = 0x6d5,
+	ACT_DOTA_FAIL_CAST = 0x6d6,
+	ACT_DAC_BC_IDLE = 0x6d7,
+	ACT_DOTA_UNDERLORD_EMPOWER = 0x6d8,
+	ACT_DAC_PORTRAIT_IDLE = 0x6d9,
+	ACT_DAC_PORTRAIT_IDLE_HAPPY = 0x6da,
+	ACT_DAC_PORTRAIT_IDLE_SAD = 0x6db,
+	ACT_DAC_CHANNEL_LOOP = 0x6dc,
+	ACT_DAC_ATTACK_IDLE = 0x6dd,
+	ACT_DAC_SELECT_FACING_IDLE = 0x6de,
+	ACT_DAC_UNDERLORD_SELECTED = 0x6df,
+	ACT_DAC_ENNO_GRAPPLE_OUT = 0x6e0,
+	ACT_DAC_ENNO_GRAPPLE_IN = 0x6e1,
+	ACT_DAC_ENNO_AIRBRAWL_FIGHT = 0x6e2,
+	ACT_DAC_ENNO_AIRBRAWL_END = 0x6e3,
+	ACT_DAC_ENNO_AIRBRAWL_START = 0x6e4,
+	ACT_DAC_ENNO_STEAL = 0x6e5,
+	ACT_DAC_ENNO_AIRBRAWL_FIGHT_AWAY = 0x6e6,
+	ACT_DAC_VICTORYDANCE_1 = 0x6e7,
+	ACT_DAC_VICTORYDANCE_2 = 0x6e8,
+	ACT_DAC_VICTORYDANCE_3 = 0x6e9,
+};
+
+// Aligment: 4
+// Size: 49
+enum class modifierstate : uint32_t
+{
+	MODIFIER_STATE_ROOTED = 0x0,
+	MODIFIER_STATE_DISARMED = 0x1,
+	MODIFIER_STATE_ATTACK_IMMUNE = 0x2,
+	MODIFIER_STATE_SILENCED = 0x3,
+	MODIFIER_STATE_MUTED = 0x4,
+	MODIFIER_STATE_STUNNED = 0x5,
+	MODIFIER_STATE_HEXED = 0x6,
+	MODIFIER_STATE_INVISIBLE = 0x7,
+	MODIFIER_STATE_INVULNERABLE = 0x8,
+	MODIFIER_STATE_MAGIC_IMMUNE = 0x9,
+	MODIFIER_STATE_PROVIDES_VISION = 0xa,
+	MODIFIER_STATE_NIGHTMARED = 0xb,
+	MODIFIER_STATE_BLOCK_DISABLED = 0xc,
+	MODIFIER_STATE_EVADE_DISABLED = 0xd,
+	MODIFIER_STATE_UNSELECTABLE = 0xe,
+	MODIFIER_STATE_CANNOT_TARGET_ENEMIES = 0xf,
+	MODIFIER_STATE_CANNOT_MISS = 0x10,
+	MODIFIER_STATE_SPECIALLY_DENIABLE = 0x11,
+	MODIFIER_STATE_FROZEN = 0x12,
+	MODIFIER_STATE_COMMAND_RESTRICTED = 0x13,
+	MODIFIER_STATE_NOT_ON_MINIMAP = 0x14,
+	MODIFIER_STATE_LOW_ATTACK_PRIORITY = 0x15,
+	MODIFIER_STATE_FLYING = 0x16,
+	MODIFIER_STATE_NO_UNIT_COLLISION = 0x17,
+	MODIFIER_STATE_NO_TEAM_MOVE_TO = 0x18,
+	MODIFIER_STATE_NO_TEAM_SELECT = 0x19,
+	MODIFIER_STATE_PASSIVES_DISABLED = 0x1a,
+	MODIFIER_STATE_DOMINATED = 0x1b,
+	MODIFIER_STATE_BLIND = 0x1c,
+	MODIFIER_STATE_OUT_OF_GAME = 0x1d,
+	MODIFIER_STATE_FAKE_ALLY = 0x1e,
+	MODIFIER_STATE_FLYING_FOR_PATHING_PURPOSES_ONLY = 0x1f,
+	MODIFIER_STATE_TRUESIGHT_IMMUNE = 0x20,
+	MODIFIER_STATE_UNTARGETABLE = 0x21,
+	MODIFIER_STATE_IGNORING_MOVE_AND_ATTACK_ORDERS = 0x22,
+	MODIFIER_STATE_ALLOW_PATHING_TROUGH_TREES = 0x23,
+	MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES = 0x24,
+	MODIFIER_STATE_UNSLOWABLE = 0x25,
+	MODIFIER_STATE_TETHERED = 0x26,
+	MODIFIER_STATE_DEMON_DISABLED = 0x27,
+	MODIFIER_STATE_DEMON_DISABLED_IMMUNITY = 0x28,
+	MODIFIER_STATE_PREVENT_ROUND_END = 0x29,
+	MODIFIER_STATE_NO_ROUND_DAMAGE = 0x2a,
+	MODIFIER_STATE_ON_FIRE = 0x2b,
+	MODIFIER_STATE_NO_PATHFINDING_CELL_RESERVATION = 0x2c,
+	MODIFIER_STATE_NO_HEALTH_BAR = 0x2d,
+	MODIFIER_STATE_NO_HYPE_DRAIN = 0x2e,
+	MODIFIER_STATE_PREVENT_TEAM_WIPE = 0x2f,
+	MODIFIER_STATE_LAST = 0x30,
+};
+
+// Aligment: 4
+// Size: 14
+enum class UnitStatusLabel : uint32_t
+{
+	STATUS_NO_HEALTH_BAR = 0x0,
+	STATUS_BANISHED = 0x1,
+	STATUS_SLEEP = 0x2,
+	STATUS_STUNNED = 0x3,
+	STATUS_HEXED = 0x4,
+	STATUS_TAUNTED = 0x5,
+	STATUS_FEAR = 0x6,
+	STATUS_CHARMED = 0x7,
+	STATUS_MUTED = 0x8,
+	STATUS_SILENCED = 0x9,
+	STATUS_ROOTED = 0xa,
+	STATUS_DISARMED = 0xb,
+	STATUS_BREAK = 0xc,
+	STATUS_NONE = 0xd,
+};
+
+// Aligment: 4
+// Size: 8
+enum class attackfail : uint32_t
+{
+	DAC_ATTACK_RECORD_FAIL_NO = 0x0,
+	DAC_ATTACK_RECORD_FAIL_TERRAIN_MISS = 0x1,
+	DAC_ATTACK_RECORD_FAIL_SOURCE_MISS = 0x2,
+	DAC_ATTACK_RECORD_FAIL_TARGET_EVADED = 0x3,
+	DAC_ATTACK_RECORD_FAIL_TARGET_INVULNERABLE = 0x4,
+	DAC_ATTACK_RECORD_FAIL_TARGET_OUT_OF_RANGE = 0x5,
+	DAC_ATTACK_RECORD_CANNOT_FAIL = 0x6,
+	DAC_ATTACK_RECORD_FAIL_BLOCKED_BY_OBSTRUCTION = 0x7,
+};
+
+// Aligment: 4
+// Size: 3
+enum class DamageCategory_t : uint32_t
+{
+	DAC_DAMAGE_CATEGORY_SPELL = 0x0,
+	DAC_DAMAGE_CATEGORY_ATTACK = 0x1,
+	DAC_DAMAGE_CATEGORY_ITEM = 0x2,
+};
+
+// Aligment: 4
+// Size: 15
+enum class DACDamageFlag_t : uint32_t
+{
+	DAC_DAMAGE_FLAG_NONE = 0x0,
+	DAC_DAMAGE_FLAG_IGNORES_MAGIC_ARMOR = 0x1,
+	DAC_DAMAGE_FLAG_IGNORES_PHYSICAL_ARMOR = 0x2,
+	DAC_DAMAGE_FLAG_BYPASSES_INVULNERABILITY = 0x4,
+	DAC_DAMAGE_FLAG_BYPASSES_BLOCK = 0x8,
+	DAC_DAMAGE_FLAG_REFLECTION = 0x10,
+	DAC_DAMAGE_FLAG_HPLOSS = 0x20,
+	DAC_DAMAGE_FLAG_NON_LETHAL = 0x80,
+	DAC_DAMAGE_FLAG_NO_DAMAGE_MULTIPLIERS = 0x200,
+	DAC_DAMAGE_FLAG_NO_SPELL_AMPLIFICATION = 0x400,
+	DAC_DAMAGE_FLAG_NO_SPELL_LIFESTEAL = 0x1000,
+	DAC_DAMAGE_FLAG_PROPERTY_FIRE = 0x2000,
+	DAC_DAMAGE_FLAG_NO_MANA_GAIN = 0x4000,
+	DAC_DAMAGE_FLAG_CANNOT_DEFER = 0x8000,
+	DAC_DAMAGE_FLAG_NO_MANA_GAIN_DEFENDER = 0x10000,
+};
+
+// Aligment: 4
+// Size: 6
+enum class DAMAGE_TYPES : uint32_t
+{
+	DAMAGE_TYPE_NONE = 0x0,
+	DAMAGE_TYPE_PHYSICAL = 0x1,
+	DAMAGE_TYPE_MAGICAL = 0x2,
+	DAMAGE_TYPE_PURE = 0x4,
+	DAMAGE_TYPE_HP_REMOVAL = 0x8,
+	DAMAGE_TYPE_ALL = 0x7,
+};
+
+// Aligment: 4
+// Size: 6
+enum class DAC_PURGE_FLAGS : uint32_t
+{
+	DAC_PURGE_FLAG_NONE = 0x0,
+	DAC_PURGE_FLAG_REMOVE_BUFFS = 0x2,
+	DAC_PURGE_FLAG_REMOVE_DEBUFFS = 0x4,
+	DAC_PURGE_FLAG_REMOVE_STUNS = 0x8,
+	DAC_PURGE_FLAG_REMOVE_EXCEPTIONS = 0x10,
+	DAC_PURGE_FLAG_REMOVE_THIS_FRAME_ONLY = 0x20,
+};
+
+// Aligment: 4
+// Size: 4
+enum class ABILITY_TYPES : uint32_t
+{
+	ABILITY_TYPE_BASIC = 0x0,
+	ABILITY_TYPE_ULTIMATE = 0x1,
+	ABILITY_TYPE_ATTRIBUTES = 0x2,
+	ABILITY_TYPE_HIDDEN = 0x3,
+};
+
+// Aligment: 4
+// Size: 27
+enum class DAC_UNIT_TARGET_FLAGS : uint32_t
+{
+	DAC_UNIT_TARGET_FLAG_NONE = 0x0,
+	DAC_UNIT_TARGET_FLAG_RANGED_ONLY = 0x2,
+	DAC_UNIT_TARGET_FLAG_MELEE_ONLY = 0x4,
+	DAC_UNIT_TARGET_FLAG_DEAD = 0x8,
+	DAC_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES = 0x10,
+	DAC_UNIT_TARGET_FLAG_NOT_MAGIC_IMMUNE_ALLIES = 0x20,
+	DAC_UNIT_TARGET_FLAG_INVULNERABLE = 0x40,
+	DAC_UNIT_TARGET_FLAG_FOW_VISIBLE = 0x80,
+	DAC_UNIT_TARGET_FLAG_NO_INVIS = 0x100,
+	DAC_UNIT_TARGET_FLAG_NOT_ANCIENTS = 0x200,
+	DAC_UNIT_TARGET_FLAG_PLAYER_CONTROLLED = 0x400,
+	DAC_UNIT_TARGET_FLAG_NOT_DOMINATED = 0x800,
+	DAC_UNIT_TARGET_FLAG_NOT_SUMMONED = 0x1000,
+	DAC_UNIT_TARGET_FLAG_NOT_ILLUSIONS = 0x2000,
+	DAC_UNIT_TARGET_FLAG_NOT_ATTACK_IMMUNE = 0x4000,
+	DAC_UNIT_TARGET_FLAG_MANA_ONLY = 0x8000,
+	DAC_UNIT_TARGET_FLAG_CHECK_DISABLE_HELP = 0x10000,
+	DAC_UNIT_TARGET_FLAG_NOT_CREEP_HERO = 0x20000,
+	DAC_UNIT_TARGET_FLAG_OUT_OF_WORLD = 0x40000,
+	DAC_UNIT_TARGET_FLAG_NOT_NIGHTMARED = 0x80000,
+	DAC_UNIT_TARGET_FLAG_PREFER_ENEMIES = 0x100000,
+	DAC_UNIT_TARGET_FLAG_RESPECT_OBSTRUCTIONS = 0x200000,
+	DAC_UNIT_TARGET_FLAG_ON_GROUND = 0x400000,
+	DAC_UNIT_TARGET_FLAG_NO_MOTION_CONTROL = 0x800000,
+	DAC_UNIT_TARGET_FLAG_INCLUDE_PLACEABLE_ITEMS = 0x1000000,
+	DAC_UNIT_TARGET_FLAG_NOT_UNDERLORD = 0x2000000,
+	DAC_UNIT_TARGET_FLAG_ALLOW_UNTARGETABLE = 0x4000000,
+};
+
+// Aligment: 4
+// Size: 5
+enum class DAC_UNIT_TARGET_TEAM : uint32_t
+{
+	DAC_UNIT_TARGET_TEAM_NONE = 0x0,
+	DAC_UNIT_TARGET_TEAM_FRIENDLY = 0x1,
+	DAC_UNIT_TARGET_TEAM_ENEMY = 0x2,
+	DAC_UNIT_TARGET_TEAM_CUSTOM = 0x4,
+	DAC_UNIT_TARGET_TEAM_BOTH = 0x3,
+};
+
+// Aligment: 4
+// Size: 10
+enum class DAC_UNIT_TARGET_TYPE : uint32_t
+{
+	DAC_UNIT_TARGET_NONE = 0x0,
+	DAC_UNIT_TARGET_HERO = 0x1,
+	DAC_UNIT_TARGET_CREEP = 0x2,
+	DAC_UNIT_TARGET_BUILDING = 0x4,
+	DAC_UNIT_TARGET_COURIER = 0x10,
+	DAC_UNIT_TARGET_OTHER = 0x20,
+	DAC_UNIT_TARGET_TREE = 0x40,
+	DAC_UNIT_TARGET_CUSTOM = 0x80,
+	DAC_UNIT_TARGET_BASIC = 0x12,
+	DAC_UNIT_TARGET_ALL = 0x37,
+};
+
+// Aligment: 4
+// Size: 32
+enum class UnitFilterResult : uint32_t
+{
+	UF_SUCCESS = 0x0,
+	UF_FAIL = 0x1,
+	UF_FAIL_FRIENDLY = 0x2,
+	UF_FAIL_ENEMY = 0x3,
+	UF_FAIL_HERO = 0x4,
+	UF_FAIL_CONSIDERED_HERO = 0x5,
+	UF_FAIL_CREEP = 0x6,
+	UF_FAIL_BUILDING = 0x7,
+	UF_FAIL_COURIER = 0x8,
+	UF_FAIL_OTHER = 0x9,
+	UF_FAIL_ANCIENT = 0xa,
+	UF_FAIL_ILLUSION = 0xb,
+	UF_FAIL_SUMMONED = 0xc,
+	UF_FAIL_DOMINATED = 0xd,
+	UF_FAIL_MELEE = 0xe,
+	UF_FAIL_RANGED = 0xf,
+	UF_FAIL_DEAD = 0x10,
+	UF_FAIL_MAGIC_IMMUNE_ALLY = 0x11,
+	UF_FAIL_MAGIC_IMMUNE_ENEMY = 0x12,
+	UF_FAIL_INVULNERABLE = 0x13,
+	UF_FAIL_IN_FOW = 0x14,
+	UF_FAIL_INVISIBLE = 0x15,
+	UF_FAIL_NOT_PLAYER_CONTROLLED = 0x16,
+	UF_FAIL_ATTACK_IMMUNE = 0x17,
+	UF_FAIL_CUSTOM = 0x18,
+	UF_FAIL_INVALID_LOCATION = 0x19,
+	UF_FAIL_DISABLE_HELP = 0x1a,
+	UF_FAIL_OUT_OF_WORLD = 0x1b,
+	UF_FAIL_NIGHTMARED = 0x1c,
+	UF_FAIL_OBSTRUCTED = 0x1d,
+	UF_FAIL_UNDERLORD = 0x1e,
+	UF_FAIL_UNTARGETABLE = 0x1f,
+};
+
+// Aligment: 4
+// Size: 8
+enum class modifierremove : uint32_t
+{
+	DOTA_BUFF_REMOVE_ENEMY_BUFFS = 0x1,
+	DOTA_BUFF_REMOVE_ALLY_BUFFS = 0x2,
+	DOTA_BUFF_REMOVE_ITEMS = 0x4,
+	DOTA_BUFF_REMOVE_NON_ITEMS = 0x8,
+	DOTA_BUFF_REMOVE_PERMANENT = 0x10,
+	DOTA_BUFF_REMOVE_ON_COMBAT_END = 0x20,
+	DOTA_BUFF_REMOVE_EVERYTHING = 0xffffffffffffffff,
+	DOTA_BUFF_REMOVE_ALL_BUFFS = 0x3,
+};
+
+// Aligment: 4
+// Size: 5
+enum class modifierpriority : uint32_t
+{
+	MODIFIER_PRIORITY_LOW = 0x0,
+	MODIFIER_PRIORITY_NORMAL = 0x1,
+	MODIFIER_PRIORITY_HIGH = 0x2,
+	MODIFIER_PRIORITY_ULTRA = 0x3,
+	MODIFIER_PRIORITY_SUPER_ULTRA = 0x4,
+};
+
+// Aligment: 4
+// Size: 241
+enum class modifierfunction : uint32_t
+{
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE = 0x0,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_TARGET = 0x1,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_PROC = 0x2,
+	MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE_POST_CRIT = 0x3,
+	MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE = 0x4,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PHYSICAL = 0x5,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_MAGICAL = 0x6,
+	MODIFIER_PROPERTY_PROCATTACK_BONUS_DAMAGE_PURE = 0x7,
+	MODIFIER_PROPERTY_PROCATTACK_FEEDBACK = 0x8,
+	MODIFIER_PROPERTY_OVERRIDE_ATTACK_DAMAGE = 0x9,
+	MODIFIER_PROPERTY_PRE_ATTACK = 0xa,
+	MODIFIER_PROPERTY_INVISIBILITY_LEVEL = 0xb,
+	MODIFIER_PROPERTY_INVISIBILITY_ATTACK_BEHAVIOR_EXCEPTION = 0xc,
+	MODIFIER_PROPERTY_PERSISTENT_INVISIBILITY = 0xd,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT = 0xe,
+	MODIFIER_PROPERTY_MOVESPEED_BASE_OVERRIDE = 0xf,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE = 0x10,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE = 0x11,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE_UNIQUE_2 = 0x12,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE = 0x13,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_UNIQUE_2 = 0x14,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE = 0x15,
+	MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT_UNIQUE_2 = 0x16,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE = 0x17,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MIN = 0x18,
+	MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MAX = 0x19,
+	MODIFIER_PROPERTY_IGNORE_MOVESPEED_LIMIT = 0x1a,
+	MODIFIER_PROPERTY_MOVESPEED_LIMIT = 0x1b,
+	MODIFIER_PROPERTY_ATTACKSPEED_BASE_OVERRIDE = 0x1c,
+	MODIFIER_PROPERTY_FIXED_ATTACK_RATE = 0x1d,
+	MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT = 0x1e,
+	MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT = 0x1f,
+	MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT = 0x20,
+	MODIFIER_PROPERTY_ATTACK_POINT_CONSTANT = 0x21,
+	MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE = 0x22,
+	MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE_ILLUSION = 0x23,
+	MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE = 0x24,
+	MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE = 0x25,
+	MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE_UNIQUE = 0x26,
+	MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE_SOURCE = 0x27,
+	MODIFIER_PROPERTY_HP_REGEN_AMPLIFY_PERCENTAGE = 0x28,
+	MODIFIER_PROPERTY_MP_REGEN_AMPLIFY_PERCENTAGE = 0x29,
+	MODIFIER_PROPERTY_MP_RESTORE_AMPLIFY_PERCENTAGE = 0x2a,
+	MODIFIER_PROPERTY_MP_FROM_DAMAGE_INCOMING_AMPLIFY_PERCENTAGE = 0x2b,
+	MODIFIER_PROPERTY_MP_FROM_DAMAGE_OUTGOING_AMPLIFY_PERCENTAGE = 0x2c,
+	MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE = 0x2d,
+	MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE_UNIQUE = 0x2e,
+	MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE = 0x2f,
+	MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_PERCENTAGE = 0x30,
+	MODIFIER_PROPERTY_INCOMING_PHYSICAL_DAMAGE_CONSTANT = 0x31,
+	MODIFIER_PROPERTY_INCOMING_SPELL_DAMAGE_CONSTANT = 0x32,
+	MODIFIER_PROPERTY_EVASION_CONSTANT = 0x33,
+	MODIFIER_PROPERTY_NEGATIVE_EVASION_CONSTANT = 0x34,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE = 0x35,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE_STACKING = 0x36,
+	MODIFIER_PROPERTY_STATUS_RESISTANCE_CASTER = 0x37,
+	MODIFIER_PROPERTY_AVOID_DAMAGE = 0x38,
+	MODIFIER_PROPERTY_AVOID_SPELL = 0x39,
+	MODIFIER_PROPERTY_MISS_PERCENTAGE = 0x3a,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS = 0x3b,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE = 0x3c,
+	MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS_UNIQUE_ACTIVE = 0x3d,
+	MODIFIER_PROPERTY_IGNORE_PHYSICAL_ARMOR = 0x3e,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DIRECT_MODIFICATION = 0x3f,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS = 0x40,
+	MODIFIER_PROPERTY_MAGICAL_RESISTANCE_DECREPIFY_UNIQUE = 0x41,
+	MODIFIER_PROPERTY_BASE_MANA_REGEN = 0x42,
+	MODIFIER_PROPERTY_MANA_REGEN_CONSTANT = 0x43,
+	MODIFIER_PROPERTY_MANA_REGEN_CONSTANT_UNIQUE = 0x44,
+	MODIFIER_PROPERTY_MANA_REGEN_TOTAL_PERCENTAGE = 0x45,
+	MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT = 0x46,
+	MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE = 0x47,
+	MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE_UNIQUE = 0x48,
+	MODIFIER_PROPERTY_HEALTH_BONUS = 0x49,
+	MODIFIER_PROPERTY_MANA_BONUS = 0x4a,
+	MODIFIER_PROPERTY_EXTRA_STRENGTH_BONUS = 0x4b,
+	MODIFIER_PROPERTY_EXTRA_HEALTH_BONUS = 0x4c,
+	MODIFIER_PROPERTY_EXTRA_MANA_BONUS = 0x4d,
+	MODIFIER_PROPERTY_EXTRA_HEALTH_PERCENTAGE = 0x4e,
+	MODIFIER_PROPERTY_STATS_STRENGTH_BONUS = 0x4f,
+	MODIFIER_PROPERTY_STATS_AGILITY_BONUS = 0x50,
+	MODIFIER_PROPERTY_STATS_INTELLECT_BONUS = 0x51,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS = 0x52,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS_TARGET = 0x53,
+	MODIFIER_PROPERTY_CAST_RANGE_BONUS_STACKING = 0x54,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BASE_OVERRIDE = 0x55,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS = 0x56,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_UNIQUE = 0x57,
+	MODIFIER_PROPERTY_ATTACK_RANGE_BONUS_PERCENTAGE = 0x58,
+	MODIFIER_PROPERTY_MAX_ATTACK_RANGE = 0x59,
+	MODIFIER_PROPERTY_PROJECTILE_SPEED_BONUS = 0x5a,
+	MODIFIER_PROPERTY_PROJECTILE_NAME = 0x5b,
+	MODIFIER_PROPERTY_REINCARNATION = 0x5c,
+	MODIFIER_PROPERTY_RESPAWNTIME = 0x5d,
+	MODIFIER_PROPERTY_RESPAWNTIME_PERCENTAGE = 0x5e,
+	MODIFIER_PROPERTY_RESPAWNTIME_STACKING = 0x5f,
+	MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE = 0x60,
+	MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE_STACKING = 0x61,
+	MODIFIER_PROPERTY_CASTTIME_PERCENTAGE = 0x62,
+	MODIFIER_PROPERTY_MANACOST_PERCENTAGE = 0x63,
+	MODIFIER_PROPERTY_MANACOST_PERCENTAGE_STACKING = 0x64,
+	MODIFIER_PROPERTY_DEATHGOLDCOST = 0x65,
+	MODIFIER_PROPERTY_EXP_RATE_BOOST = 0x66,
+	MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE = 0x67,
+	MODIFIER_PROPERTY_PREATTACK_TARGET_CRITICALSTRIKE = 0x68,
+	MODIFIER_PROPERTY_MAGICAL_CONSTANT_BLOCK = 0x69,
+	MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK = 0x6a,
+	MODIFIER_PROPERTY_PHYSICAL_CONSTANT_BLOCK_SPECIAL = 0x6b,
+	MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK_UNAVOIDABLE_PRE_ARMOR = 0x6c,
+	MODIFIER_PROPERTY_TOTAL_CONSTANT_BLOCK = 0x6d,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION = 0x6e,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION_WEIGHT = 0x6f,
+	MODIFIER_PROPERTY_OVERRIDE_ANIMATION_RATE = 0x70,
+	MODIFIER_PROPERTY_ABSORB_SPELL = 0x71,
+	MODIFIER_PROPERTY_REFLECT_SPELL = 0x72,
+	MODIFIER_PROPERTY_DISABLE_AUTOATTACK = 0x73,
+	MODIFIER_PROPERTY_BONUS_DAY_VISION = 0x74,
+	MODIFIER_PROPERTY_BONUS_NIGHT_VISION = 0x75,
+	MODIFIER_PROPERTY_BONUS_NIGHT_VISION_UNIQUE = 0x76,
+	MODIFIER_PROPERTY_BONUS_VISION_PERCENTAGE = 0x77,
+	MODIFIER_PROPERTY_FIXED_DAY_VISION = 0x78,
+	MODIFIER_PROPERTY_FIXED_NIGHT_VISION = 0x79,
+	MODIFIER_PROPERTY_MIN_HEALTH = 0x7a,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PHYSICAL = 0x7b,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_MAGICAL = 0x7c,
+	MODIFIER_PROPERTY_ABSOLUTE_NO_DAMAGE_PURE = 0x7d,
+	MODIFIER_PROPERTY_IS_ILLUSION = 0x7e,
+	MODIFIER_PROPERTY_ILLUSION_LABEL = 0x7f,
+	MODIFIER_PROPERTY_SUPER_ILLUSION = 0x80,
+	MODIFIER_PROPERTY_SUPER_ILLUSION_WITH_ULTIMATE = 0x81,
+	MODIFIER_PROPERTY_TURN_RATE_PERCENTAGE = 0x82,
+	MODIFIER_PROPERTY_TURN_RATE_OVERRIDE = 0x83,
+	MODIFIER_PROPERTY_DISABLE_HEALING = 0x84,
+	MODIFIER_PROPERTY_ALWAYS_ALLOW_ATTACK = 0x85,
+	MODIFIER_PROPERTY_OVERRIDE_ATTACK_MAGICAL = 0x86,
+	MODIFIER_PROPERTY_UNIT_STATS_NEEDS_REFRESH = 0x87,
+	MODIFIER_PROPERTY_BOUNTY_CREEP_MULTIPLIER = 0x88,
+	MODIFIER_PROPERTY_BOUNTY_OTHER_MULTIPLIER = 0x89,
+	MODIFIER_PROPERTY_UNIT_DISALLOW_UPGRADING = 0x8a,
+	MODIFIER_PROPERTY_DODGE_PROJECTILE = 0x8b,
+	MODIFIER_PROPERTY_TOTAL_HEALING_PERCENTAGE_BONUS = 0x8c,
+	MODIFIER_PROPERTY_MANA_REDUCTION_AMPLIFY_PERCENTAGE = 0x8d,
+	MODIFIER_PROPERTY_MANA_GENERATED_BY_OUTGOING_ATTACKS_PERCENTAGE = 0x8e,
+	MODIFIER_PROPERTY_HYPE_GENERATION_PERCENTAGE = 0x8f,
+	MODIFIER_EVENT_ON_SPELL_TARGET_READY = 0x90,
+	MODIFIER_EVENT_ON_ATTACK_RECORD = 0x91,
+	MODIFIER_EVENT_ON_ATTACK_START = 0x92,
+	MODIFIER_EVENT_ON_ATTACK = 0x93,
+	MODIFIER_EVENT_ON_ATTACK_LANDED = 0x94,
+	MODIFIER_EVENT_ON_ATTACK_FAIL = 0x95,
+	MODIFIER_EVENT_ON_ATTACK_ALLIED = 0x96,
+	MODIFIER_EVENT_ON_PROJECTILE_DODGE = 0x97,
+	MODIFIER_EVENT_ON_ORDER = 0x98,
+	MODIFIER_EVENT_ON_UNIT_MOVED = 0x99,
+	MODIFIER_EVENT_ON_ABILITY_START = 0x9a,
+	MODIFIER_EVENT_ON_ABILITY_EXECUTED = 0x9b,
+	MODIFIER_EVENT_ON_ABILITY_FULLY_CAST = 0x9c,
+	MODIFIER_EVENT_ON_BREAK_INVISIBILITY = 0x9d,
+	MODIFIER_EVENT_ON_ABILITY_END_CHANNEL = 0x9e,
+	MODIFIER_EVENT_ON_PROCESS_UPGRADE = 0x9f,
+	MODIFIER_EVENT_ON_REFRESH = 0xa0,
+	MODIFIER_EVENT_ON_TAKEDAMAGE = 0xa1,
+	MODIFIER_EVENT_ON_STATE_CHANGED = 0xa2,
+	MODIFIER_EVENT_ON_ORB_EFFECT = 0xa3,
+	MODIFIER_EVENT_ON_PROCESS_CLEAVE = 0xa4,
+	MODIFIER_EVENT_ON_DAMAGE_CALCULATED = 0xa5,
+	MODIFIER_EVENT_ON_ATTACKED = 0xa6,
+	MODIFIER_EVENT_ON_DEATH = 0xa7,
+	MODIFIER_EVENT_ON_RESPAWN = 0xa8,
+	MODIFIER_EVENT_ON_SPENT_MANA = 0xa9,
+	MODIFIER_EVENT_ON_TELEPORTING = 0xaa,
+	MODIFIER_EVENT_ON_TELEPORTED = 0xab,
+	MODIFIER_EVENT_ON_SET_LOCATION = 0xac,
+	MODIFIER_EVENT_ON_HEALTH_GAINED = 0xad,
+	MODIFIER_EVENT_ON_MANA_GAINED = 0xae,
+	MODIFIER_EVENT_ON_MANA_GAINED_WHEN_DAMAGED = 0xaf,
+	MODIFIER_EVENT_ON_MANA_GAINED_WHEN_DEALING_DAMAGE = 0xb0,
+	MODIFIER_EVENT_ON_TAKEDAMAGE_KILLCREDIT = 0xb1,
+	MODIFIER_EVENT_ON_HERO_KILLED = 0xb2,
+	MODIFIER_EVENT_ON_HEAL_RECEIVED = 0xb3,
+	MODIFIER_EVENT_ON_BUILDING_KILLED = 0xb4,
+	MODIFIER_EVENT_ON_MODEL_CHANGED = 0xb5,
+	MODIFIER_EVENT_ON_MODIFIER_ADDED = 0xb6,
+	MODIFIER_EVENT_ON_DELTA_SLAM_UNIT_HIT = 0xb7,
+	MODIFIER_EVENT_ON_DELTA_SLAM_FINISHED = 0xb8,
+	MODIFIER_EVENT_ON_ASSASSIN_LANDED = 0xb9,
+	MODIFIER_EVENT_ON_RESURRECTION = 0xba,
+	MODIFIER_PROPERTY_TOOLTIP = 0xbb,
+	MODIFIER_PROPERTY_MODEL_CHANGE = 0xbc,
+	MODIFIER_PROPERTY_MODEL_SCALE = 0xbd,
+	MODIFIER_PROPERTY_IS_SCEPTER = 0xbe,
+	MODIFIER_PROPERTY_TRANSLATE_ACTIVITY_MODIFIERS = 0xbf,
+	MODIFIER_PROPERTY_TRANSLATE_ATTACK_SOUND = 0xc0,
+	MODIFIER_PROPERTY_LIFETIME_FRACTION = 0xc1,
+	MODIFIER_PROPERTY_PROVIDES_FOW_POSITION = 0xc2,
+	MODIFIER_PROPERTY_SPELLS_REQUIRE_HP = 0xc3,
+	MODIFIER_PROPERTY_FORCE_DRAW_MINIMAP = 0xc4,
+	MODIFIER_PROPERTY_DISABLE_TURNING = 0xc5,
+	MODIFIER_PROPERTY_IGNORE_CAST_ANGLE = 0xc6,
+	MODIFIER_PROPERTY_CHANGE_ABILITY_VALUE = 0xc7,
+	MODIFIER_PROPERTY_ABILITY_LAYOUT = 0xc8,
+	MODIFIER_EVENT_ON_DOMINATED = 0xc9,
+	MODIFIER_PROPERTY_TEMPEST_DOUBLE = 0xca,
+	MODIFIER_PROPERTY_PRESERVE_PARTICLES_ON_MODEL_CHANGE = 0xcb,
+	MODIFIER_EVENT_ON_ATTACK_FINISHED = 0xcc,
+	MODIFIER_PROPERTY_IGNORE_COOLDOWN = 0xcd,
+	MODIFIER_PROPERTY_CAN_ATTACK_TREES = 0xce,
+	MODIFIER_PROPERTY_VISUAL_Z_DELTA = 0xcf,
+	MODIFIER_PROPERTY_INCOMING_DAMAGE_ILLUSION = 0xd0,
+	MODIFIER_PROPERTY_DONT_GIVE_VISION_OF_ATTACKER = 0xd1,
+	MODIFIER_PROPERTY_TOOLTIP2 = 0xd2,
+	MODIFIER_EVENT_ON_ATTACK_RECORD_DESTROY = 0xd3,
+	MODIFIER_EVENT_ON_PROJECTILE_OBSTRUCTION_HIT = 0xd4,
+	MODIFIER_PROPERTY_SUPPRESS_TELEPORT = 0xd5,
+	MODIFIER_PROPERTY_FORCE_ATTACK_TARGET = 0xd6,
+	MODIFIER_PROPERTY_MODIFY_MOTION = 0xd7,
+	MODIFIER_EVENT_ON_COMBAT_START = 0xd8,
+	MODIFIER_EVENT_ON_COMBAT_PROVISIONALLY_END = 0xd9,
+	MODIFIER_EVENT_ON_COMBAT_END = 0xda,
+	MODIFIER_EVENT_ON_UNIT_SUMMONED = 0xdb,
+	MODIFIER_EVENT_ON_BEFORE_TAKING_DAMAGE = 0xdc,
+	MODIFIER_EVENT_ON_TAKEDAMAGE_ALWAYS = 0xdd,
+	MODIFIER_EVENT_ON_EVADE = 0xde,
+	MODIFIER_PROPERTY_BEST_TARGET = 0xdf,
+	MODIFIER_PROPERTY_KEYWORD_CHANGE = 0xe0,
+	MODIFIER_EVENT_ON_VALIDATE_TARGET_REPORT_INVALID = 0xe1,
+	MODIFIER_EVENT_ON_EXCESS_DAMAGE = 0xe2,
+	MODIFIER_EVENT_ON_ABILITY_PRE_CAST = 0xe3,
+	MODIFIER_PROPERTY_COOLDOWN_TICKDOWN_MULTIPLIER = 0xe4,
+	MODIFIER_PROPERTY_MP_GAIN_FROM_ABILITY = 0xe5,
+	MODIFIER_PROPERTY_BONUS_MAX_MP_GAIN_FROM_ATTACK = 0xe6,
+	MODIFIER_EVENT_ON_HEALTH_REGENED = 0xe7,
+	MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE_FLAT = 0xe8,
+	MODIFIER_PROPERTY_POST_TARGET_SELECT_OVERRIDE = 0xe9,
+	MODIFIER_EVENT_ON_UNDERLORD_POWER_CHANGED = 0xea,
+	MODIFIER_PROPERTY_ALWAYS_BONUS_DAMAGE_PURE = 0xeb,
+	MODIFIER_PROPERTY_BONUS_BURN_DAMAGE_PERCENTAGE = 0xec,
+	MODIFIER_PROPERTY_BYPASSES_HEALING_RESTRICTIONS = 0xed,
+	MODIFIER_PROPERTY_HOLDS_CELL_ON_DEATH = 0xee,
+	MODIFIER_FUNCTION_LAST = 0xef,
+	MODIFIER_FUNCTION_INVALID = 0xff,
+};
+
+// Aligment: 4
+// Size: 7
+enum class DOTAModifierAttribute_t : uint32_t
+{
+	MODIFIER_ATTRIBUTE_NONE = 0x0,
+	MODIFIER_ATTRIBUTE_PERMANENT = 0x1,
+	MODIFIER_ATTRIBUTE_MULTIPLE = 0x2,
+	MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE = 0x4,
+	MODIFIER_ATTRIBUTE_AURA_PRIORITY = 0x8,
+	MODIFIER_ATTRIBUTE_KEEP_ON_DEATH = 0x10,
+	MODIFIER_ATTRIBUTE_PERSISTS_COMBAT_END = 0x20,
+};
+
 // Aligment: 8
 // Size: 16
 enum class NavAttributeEnum : uint64_t
@@ -466,6 +2786,87 @@ enum class NavDirType : uint32_t
 	NUM_DIRECTIONS = 0x4,
 };
 
+// Aligment: 2
+// Size: 136
+class CTimeOfDayDynamicKeys
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken[16] m_FloatIDs; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken[16] m_VectorIDs; // 0x48
+};
+
+// Aligment: 3
+// Size: 280
+class CTimeOfDayDynamicValues
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUsed; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	float32[16] m_Floats; // 0x14
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector[16] m_Vectors; // 0x54
+};
+
+// Aligment: 8
+// Size: 49
+class ResponseFollowup
+{
+public:
+	char* followup_concept; // 0x0
+	char* followup_contexts; // 0x8
+	float followup_delay; // 0x10
+	char* followup_target; // 0x14
+	char* followup_entityiotarget; // 0x1c
+	char* followup_entityioinput; // 0x24
+	float followup_entityiodelay; // 0x2c
+	bool bFired; // 0x30
+};
+
+// Aligment: 4
+// Size: 32
+class ResponseParams
+{
+public:
+	int16_t odds; // 0x10
+	int16_t flags; // 0x12
+	uint8_t soundlevel; // 0x14
+	ResponseFollowup* m_pFollowup; // 0x18
+};
+
+// Aligment: 2
+// Size: 56
+class CResponseCriteriaSet
+{
+public:
+	int32_t m_nNumPrefixedContexts; // 0x30
+	bool m_bOverrideOnAppend; // 0x34
+};
+
+// Aligment: 10
+// Size: 496
+class CRR_Response
+{
+public:
+	uint8_t m_Type; // 0x0
+	char[192] m_szResponseName; // 0x1
+	char[128] m_szMatchingRule; // 0xc1
+	ResponseParams m_Params; // 0x150
+	float m_fMatchScore; // 0x170
+	char* m_szSpeakerContext; // 0x178
+	char* m_szWorldContext; // 0x180
+	ResponseFollowup m_Followup; // 0x188
+	CUtlVector< CUtlSymbol > m_pchCriteriaNames; // 0x1c0
+	CUtlVector< char* > m_pchCriteriaValues; // 0x1d8
+};
+
 // Aligment: 15
 // Size: 176
 class CAnimationLayer
@@ -542,8 +2943,8 @@ public:
 	CBaseAnimatingEasingFloat_t m_IKMasterBlendAmountEasing; // 0x8
 };
 
-// Aligment: 21
-// Size: 240
+// Aligment: 20
+// Size: 232
 struct handposepair_t
 {
 public:
@@ -554,20 +2955,366 @@ public:
 	float32[5] m_flHandPoseParams; // 0xa8
 	CUtlSymbolLarge m_poseSequenceName; // 0xc0
 	int32_t m_nUseRange; // 0xc8
-	int32_t m_iBone; // 0xcc
-	float m_flUseAnglesRange; // 0xd0
-	float m_flPivotMin; // 0xd4
-	float m_flPivotMax; // 0xd8
-	float m_flRotateMin; // 0xdc
-	float m_flRotateMax; // 0xe0
-	bool m_bHasExtent; // 0xe4
-	bool m_bHasRotation; // 0xe5
-	bool m_bAllowFlip; // 0xe6
-	bool m_bConformFingers; // 0xe7
-	bool m_bSqueezable; // 0xe8
-	bool m_bSqueezeTarget; // 0xe9
-	bool m_bGlobal; // 0xea
-	bool m_bHandPoseEntityData; // 0xeb
+	float m_flUseAnglesRange; // 0xcc
+	float m_flPivotMin; // 0xd0
+	float m_flPivotMax; // 0xd4
+	float m_flRotateMin; // 0xd8
+	float m_flRotateMax; // 0xdc
+	bool m_bHasExtent; // 0xe0
+	bool m_bHasRotation; // 0xe1
+	bool m_bAllowFlip; // 0xe2
+	bool m_bConformFingers; // 0xe3
+	bool m_bSqueezable; // 0xe4
+	bool m_bSqueezeTarget; // 0xe5
+	bool m_bGlobal; // 0xe6
+	bool m_bHandPoseEntityData; // 0xe7
+};
+
+// Aligment: 4
+// Size: 72
+struct ActiveModelConfig_t
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	ModelConfigHandle_t m_Handle; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_Name; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CBaseModelEntity > > m_AssociatedEntities; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CUtlSymbolLarge > m_AssociatedEntityNames; // 0x30
+};
+
+// Aligment: 2
+// Size: 16
+class CGameSceneNodeHandle
+{
+public:
+	// MNetworkEnable
+	CEntityHandle m_hOwner; // 0x8
+	// MNetworkEnable
+	CUtlStringToken m_name; // 0xc
+};
+
+// Aligment: 32
+// Size: 352
+class CGameSceneNode
+{
+public:
+	// MNetworkDisable
+	matrix3x4a_t m_mNodeToWorld; // 0x10
+	// MNetworkDisable
+	CEntityInstance* m_pOwner; // 0x40
+	// MNetworkDisable
+	CGameSceneNode* m_pParent; // 0x48
+	// MNetworkDisable
+	CGameSceneNode* m_pChild; // 0x50
+	// MNetworkDisable
+	CGameSceneNode* m_pNextSibling; // 0x58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "gameSceneNode"
+	// MNetworkChangeCallback "gameSceneNodeHierarchyParentChanged"
+	// MNetworkPriority "64"
+	// MNetworkVarEmbeddedFieldOffsetDelta "8"
+	CGameSceneNodeHandle m_hParent; // 0x78
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkUserGroup "Origin"
+	// MNetworkChangeCallback "gameSceneNodeLocalOriginChanged"
+	CNetworkOriginCellCoordQuantizedVector m_vecOrigin; // 0x88
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkSerializer "gameSceneNodeStepSimulationAnglesSerializer"
+	// MNetworkChangeCallback "gameSceneNodeLocalAnglesChanged"
+	QAngle m_angRotation; // 0xf8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "gameSceneNodeLocalScaleChanged"
+	// MNetworkPriority "64"
+	float m_flScale; // 0x104
+	// MNetworkDisable
+	Vector m_vecAbsOrigin; // 0x108
+	// MNetworkDisable
+	QAngle m_angAbsRotation; // 0x114
+	// MNetworkDisable
+	float m_flAbsScale; // 0x120
+	// MNetworkDisable
+	int16_t m_nParentAttachmentOrBone; // 0x124
+	// MNetworkDisable
+	bool m_bDebugAbsOriginChanges; // 0x126
+	// MNetworkDisable
+	bool m_bDormant; // 0x127
+	// MNetworkDisable
+	bool m_bForceParentToBeNetworked; // 0x128
+	// MNetworkDisable
+	bitfield:1 m_bDirtyHierarchy; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bDirtyBoneMergeInfo; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bNetworkedPositionChanged; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bNetworkedAnglesChanged; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bNetworkedScaleChanged; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bWillBeCallingPostDataUpdate; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bNotifyBoneTransformsChanged; // 0x0
+	// MNetworkDisable
+	bitfield:2 m_nLatchAbsOrigin; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bDirtyBoneMergeBoneToRoot; // 0x0
+	// MNetworkDisable
+	uint8_t m_nHierarchicalDepth; // 0x12b
+	// MNetworkDisable
+	uint8_t m_nHierarchyType; // 0x12c
+	// MNetworkDisable
+	uint8_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount; // 0x12d
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_name; // 0x130
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "gameSceneNodeHierarchyAttachmentChanged"
+	CUtlStringToken m_hierarchyAttachName; // 0x148
+	// MNetworkDisable
+	float m_flZOffset; // 0x14c
+	// MNetworkDisable
+	Vector m_vRenderOrigin; // 0x150
+};
+
+// Aligment: 1
+// Size: 16
+class CSkeletonAnimationController
+{
+public:
+	// MNetworkDisable
+	CSkeletonInstance* m_pSkeletonInstance; // 0x8
+};
+
+// Aligment: 8
+// Size: 64
+class CNetworkedSequenceOperation
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "13"
+	// MNetworkSerializer "minusone"
+	// MNetworkChangeCallback "sequenceOpSequenceChanged"
+	// MNetworkPriority "64"
+	HSequence m_hSequence; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	// MNetworkEncodeFlags
+	// MNetworkPriority "64"
+	// MNetworkSendProxyRecipientsFilter
+	// MNetworkUserGroup "m_flCycle"
+	float m_flPrevCycle; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	// MNetworkEncodeFlags
+	// MNetworkPriority "64"
+	// MNetworkSendProxyRecipientsFilter
+	// MNetworkUserGroup "m_flCycle"
+	// MNetworkChangeCallback "sequenceOpCycleChanged"
+	float m_flCycle; // 0x10
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	// MNetworkEncodeFlags
+	CNetworkedQuantizedFloat m_flWeight; // 0x18
+	// MNetworkDisable
+	bool m_bSequenceChangeNetworked; // 0x30
+	// MNetworkDisable
+	bool m_bDiscontinuity; // 0x31
+	// MNetworkDisable
+	float m_flPrevCycleFromDiscontinuity; // 0x34
+	// MNetworkDisable
+	float m_flPrevCycleForAnimEventDetection; // 0x38
+};
+
+// Aligment: 6
+// Size: 64
+class CNetworkedIKProceduralTargetContext
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nChainIndex; // 0x14
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nRuleIndex; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vTargetPosition; // 0x1c
+	// MNetworkEnable
+	// MNetworkEnable
+	Quaternion m_qTargetOrientation; // 0x28
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "96"
+	float m_flWeight; // 0x38
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsValid; // 0x3c
+};
+
+// Aligment: 1
+// Size: 80
+class CNetworkedIKContext
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CNetworkedIKProceduralTargetContext > m_ProceduralTargetContexts; // 0x8
+};
+
+// Aligment: 8
+// Size: 576
+class CModelState
+{
+public:
+	// MNetworkEnable
+	// MNetworkChangeCallback "skeletonModelChanged"
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0xa0
+	// MNetworkDisable
+	CUtlSymbolLarge m_ModelName; // 0xa8
+	// MNetworkEnable
+	bool m_bClientClothCreationSuppressed; // 0xe8
+	// MNetworkEnable
+	// MNetworkChangeCallback "skeletonMeshGroupMaskChanged"
+	uint64_t m_MeshGroupMask; // 0x188
+	// MNetworkEnable
+	// MNetworkChangeCallback "skeletonMotionTypeChanged"
+	int8_t m_nIdealMotionType; // 0x22a
+	// MNetworkDisable
+	int8_t m_nForceLOD; // 0x22b
+	// MNetworkDisable
+	bool m_bIsJiggleBonesEnabled; // 0x22c
+	// MNetworkDisable
+	int8_t m_nClothUpdateFlags; // 0x22d
+};
+
+// Aligment: 11
+// Size: 1216
+class CSkeletonInstance : public CGameSceneNode
+{
+public:
+	// MNetworkEnable
+	CModelState m_modelState; // 0x170
+	// MNetworkEnable
+	// MNetworkChangeCallback "skeletonRenderingEnableChanged"
+	bool m_bIsRenderingEnabled; // 0x3b0
+	// MNetworkEnable
+	bool m_bIsAnimationEnabled; // 0x3b1
+	// MNetworkDisable
+	bitfield:1 m_bDisableSolidCollisionsForHierarchy; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bDirtyMotionType; // 0x0
+	// MNetworkDisable
+	bitfield:1 m_bIsGeneratingLatchedParentSpaceState; // 0x0
+	// MNetworkDisable
+	bool m_bEnableIK; // 0x3b3
+	// MNetworkEnable
+	// MNetworkChangeCallback "skeletonMaterialGroupChanged"
+	CUtlStringToken m_materialGroup; // 0x3b4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	uint8_t m_nHitboxSet; // 0x3b8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flIkMasterBlendValueCache; // 0x408
+	// MNetworkEnable
+	// MNetworkEnable
+	CNetworkedIKContext m_NetworkedIKContext; // 0x410
+};
+
+// Aligment: 1
+// Size: 16
+class IntervalTimer
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_timestamp; // 0x8
+};
+
+// Aligment: 2
+// Size: 16
+class CountdownTimer
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_duration; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_timestamp; // 0xc
+};
+
+// Aligment: 7
+// Size: 616
+class CTimeline : public IntervalTimer
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float32[64] m_flValues; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	int32[64] m_nValueCounts; // 0x110
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nBucketCount; // 0x210
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flInterval; // 0x214
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinalValue; // 0x218
+	// MNetworkEnable
+	// MNetworkEnable
+	TimelineCompression_t m_nCompressionType; // 0x21c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bStopped; // 0x220
+};
+
+// Aligment: 1
+// Size: 320
+class CNetworkTransmitComponent
+{
+public:
+	uint8_t m_nTransmitStateOwnedCounter; // 0x12c
+public:
+	static int32_t &Get_s_nWatchTransmitEntity() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[0]->m_instance); }
+	static bool &Get_s_bUseNetworkVars() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[1]->m_instance); }
+	static bool &Get_s_bNetworkVarPerFieldTracking() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[2]->m_instance); }
+	static bool &Get_s_bNetworkVarValidate() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[3]->m_instance); }
+};
+
+// Aligment: 0
+// Size: 1
+class CPhysicsComponent
+{
+public:
+// <no members described>
 };
 
 // Aligment: 7
@@ -693,382 +3440,6 @@ public:
 	CNetworkedQuantizedFloat m_vecZ; // 0x48
 };
 
-// Aligment: 2
-// Size: 16
-class CGameSceneNodeHandle
-{
-public:
-	// MNetworkEnable
-	CEntityHandle m_hOwner; // 0x8
-	// MNetworkEnable
-	CUtlStringToken m_name; // 0xc
-};
-
-// Aligment: 31
-// Size: 240
-class CGameSceneNode
-{
-public:
-	// MNetworkDisable
-	CTransform m_nodeToWorld; // 0x10
-	// MNetworkDisable
-	CEntityInstance* m_pOwner; // 0x30
-	// MNetworkDisable
-	CGameSceneNode* m_pParent; // 0x38
-	// MNetworkDisable
-	CGameSceneNode* m_pChild; // 0x40
-	// MNetworkDisable
-	CGameSceneNode* m_pNextSibling; // 0x48
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkSerializer "gameSceneNode"
-	// MNetworkChangeCallback "gameSceneNodeHierarchyParentChanged"
-	// MNetworkPriority "64"
-	// MNetworkVarEmbeddedFieldOffsetDelta "8"
-	CGameSceneNodeHandle m_hParent; // 0x68
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "32"
-	// MNetworkPriority "64"
-	// MNetworkUserGroup "Origin"
-	// MNetworkChangeCallback "gameSceneNodeLocalOriginChanged"
-	Vector m_vecOrigin; // 0x78
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkEncoder
-	// MNetworkBitCount "32"
-	// MNetworkPriority "64"
-	// MNetworkChangeCallback "gameSceneNodeLocalAnglesChanged"
-	QAngle m_angRotation; // 0x84
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "gameSceneNodeLocalScaleChanged"
-	// MNetworkPriority "64"
-	float m_flScale; // 0x90
-	// MNetworkDisable
-	Vector m_vecAbsOrigin; // 0x94
-	// MNetworkDisable
-	QAngle m_angAbsRotation; // 0xa0
-	// MNetworkDisable
-	float m_flAbsScale; // 0xac
-	// MNetworkDisable
-	int16_t m_nParentAttachmentOrBone; // 0xb0
-	// MNetworkDisable
-	bool m_bDebugAbsOriginChanges; // 0xb2
-	// MNetworkDisable
-	bool m_bDormant; // 0xb3
-	// MNetworkDisable
-	bool m_bForceParentToBeNetworked; // 0xb4
-	// MNetworkDisable
-	bitfield:1 m_bDirtyHierarchy; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bNetworkedPositionChanged; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bNetworkedAnglesChanged; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bNetworkedScaleChanged; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bWillBeCallingPostDataUpdate; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bNotifyBoneTransformsChanged; // 0x0
-	// MNetworkDisable
-	bitfield:2 m_nLatchAbsOrigin; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bDirtyBoneMergeBoneToRoot; // 0x0
-	// MNetworkDisable
-	uint8_t m_nHierarchicalDepth; // 0xb7
-	// MNetworkDisable
-	uint8_t m_nHierarchyType; // 0xb8
-	// MNetworkDisable
-	uint8_t m_nDoNotSetAnimTimeInInvalidatePhysicsCount; // 0xb9
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlStringToken m_name; // 0xbc
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "gameSceneNodeHierarchyAttachmentChanged"
-	CUtlStringToken m_hierarchyAttachName; // 0xd8
-	// MNetworkDisable
-	float m_flZOffset; // 0xdc
-	// MNetworkDisable
-	Vector m_vRenderOrigin; // 0xe0
-};
-
-// Aligment: 10
-// Size: 96
-class JiggleData
-{
-public:
-	int32_t bone; // 0x0
-	int32_t id; // 0x4
-	float lastUpdate; // 0x8
-	Vector basePos; // 0xc
-	Vector baseLastPos; // 0x18
-	Vector baseVel; // 0x24
-	Vector baseAccel; // 0x30
-	Vector tipPos; // 0x3c
-	Vector tipVel; // 0x48
-	Vector tipAccel; // 0x54
-};
-
-// Aligment: 0
-// Size: 40
-class CJiggleBones
-{
-public:
-// <no members described>
-};
-
-// Aligment: 6
-// Size: 48
-class CPlayerState
-{
-public:
-	bool deadflag; // 0x8
-	CUtlSymbolLarge netname; // 0x10
-	int32_t fixangle; // 0x18
-	QAngle anglechange; // 0x1c
-	int32_t frags; // 0x28
-	int32_t deaths; // 0x2c
-};
-
-// Aligment: 1
-// Size: 16
-class CSkeletonAnimationController
-{
-public:
-	// MNetworkDisable
-	CSkeletonInstance* m_pSkeletonInstance; // 0x8
-};
-
-// Aligment: 8
-// Size: 64
-class CNetworkedSequenceOperation
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "13"
-	// MNetworkSerializer "minusone"
-	// MNetworkChangeCallback "sequenceOpSequenceChanged"
-	// MNetworkPriority "64"
-	HSequence m_hSequence; // 0x8
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "15"
-	// MNetworkMinValue "0"
-	// MNetworkMaxValue "1"
-	// MNetworkEncodeFlags
-	// MNetworkPriority "64"
-	// MNetworkSendProxyRecipientsFilter
-	// MNetworkUserGroup "m_flCycle"
-	float m_flPrevCycle; // 0xc
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "15"
-	// MNetworkMinValue "0"
-	// MNetworkMaxValue "1"
-	// MNetworkEncodeFlags
-	// MNetworkPriority "64"
-	// MNetworkSendProxyRecipientsFilter
-	// MNetworkUserGroup "m_flCycle"
-	// MNetworkChangeCallback "sequenceOpCycleChanged"
-	float m_flCycle; // 0x10
-	// MNetworkEnable
-	// MNetworkBitCount "8"
-	// MNetworkMinValue "0"
-	// MNetworkMaxValue "1"
-	// MNetworkEncodeFlags
-	CNetworkedQuantizedFloat m_flWeight; // 0x18
-	// MNetworkDisable
-	bool m_bSequenceChangeNetworked; // 0x30
-	// MNetworkDisable
-	bool m_bDiscontinuity; // 0x31
-	// MNetworkDisable
-	float m_flPrevCycleFromDiscontinuity; // 0x34
-	// MNetworkDisable
-	float m_flPrevCycleForAnimEventDetection; // 0x38
-};
-
-// Aligment: 6
-// Size: 64
-class CNetworkedIKProceduralTargetContext
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_nChainIndex; // 0x14
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_nRuleIndex; // 0x18
-	// MNetworkEnable
-	// MNetworkEnable
-	Vector m_vTargetPosition; // 0x1c
-	// MNetworkEnable
-	// MNetworkEnable
-	Quaternion m_qTargetOrientation; // 0x28
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "96"
-	float m_flWeight; // 0x38
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bIsValid; // 0x3c
-};
-
-// Aligment: 1
-// Size: 80
-class CNetworkedIKContext
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< CNetworkedIKProceduralTargetContext > m_ProceduralTargetContexts; // 0x8
-};
-
-// Aligment: 8
-// Size: 576
-class CModelState
-{
-public:
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonModelChanged"
-	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0xa0
-	// MNetworkDisable
-	CUtlSymbolLarge m_ModelName; // 0xa8
-	// MNetworkEnable
-	bool m_bClientClothCreationSuppressed; // 0xe8
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonMeshGroupMaskChanged"
-	uint64_t m_MeshGroupMask; // 0x188
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonMotionTypeChanged"
-	int8_t m_nIdealMotionType; // 0x22a
-	// MNetworkDisable
-	int8_t m_nForceLOD; // 0x22b
-	// MNetworkDisable
-	bool m_bIsJiggleBonesEnabled; // 0x22c
-	// MNetworkDisable
-	int8_t m_nClothUpdateFlags; // 0x22d
-};
-
-// Aligment: 14
-// Size: 1088
-class CSkeletonInstance : public CGameSceneNode
-{
-public:
-	// MNetworkEnable
-	CModelState m_modelState; // 0x100
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonRenderingEnableChanged"
-	bool m_bIsRenderingEnabled; // 0x340
-	// MNetworkEnable
-	bool m_bIsAnimationEnabled; // 0x341
-	// MNetworkEnable
-	bool m_bUseParentRenderBounds; // 0x342
-	// MNetworkDisable
-	bool m_bEnableIK; // 0x343
-	// MNetworkDisable
-	bitfield:1 m_bDisableSolidCollisionsForHierarchy; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bDirtyMotionType; // 0x0
-	// MNetworkDisable
-	bitfield:1 m_bIsGeneratingLatchedParentSpaceState; // 0x0
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonMaterialGroupChanged"
-	CUtlStringToken m_materialGroup; // 0x348
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "2"
-	uint8_t m_nHitboxSet; // 0x34c
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flIkMasterBlendValueCache; // 0x398
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonRagdollPositionChanged"
-	CUtlVector< CTransform > m_RagdollTransforms; // 0x3f0
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "skeletonRagdollPositionChanged"
-	CUtlVector< CTransform > m_BoneOverrides; // 0x408
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< float32 > m_FlexOverrides; // 0x420
-};
-
-// Aligment: 1
-// Size: 16
-class IntervalTimer
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_timestamp; // 0x8
-};
-
-// Aligment: 2
-// Size: 16
-class CountdownTimer
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_duration; // 0x8
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_timestamp; // 0xc
-};
-
-// Aligment: 7
-// Size: 616
-class CTimeline : public IntervalTimer
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	float32[64] m_flValues; // 0x10
-	// MNetworkEnable
-	// MNetworkEnable
-	int32[64] m_nValueCounts; // 0x110
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_nBucketCount; // 0x210
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flInterval; // 0x214
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flFinalValue; // 0x218
-	// MNetworkEnable
-	// MNetworkEnable
-	TimelineCompression_t m_nCompressionType; // 0x21c
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bStopped; // 0x220
-};
-
-// Aligment: 1
-// Size: 320
-class CNetworkTransmitComponent
-{
-public:
-	uint8_t m_nTransmitStateOwnedCounter; // 0x12c
-public:
-	static int32_t &Get_s_nWatchTransmitEntity() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[0]->m_instance); }
-	static bool &Get_s_bUseNetworkVars() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[1]->m_instance); }
-	static bool &Get_s_bNetworkVarPerFieldTracking() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[2]->m_instance); }
-	static bool &Get_s_bNetworkVarValidate() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CNetworkTransmitComponent")->m_static_fiels[3]->m_instance); }
-};
-
-// Aligment: 0
-// Size: 1
-class CPhysicsComponent
-{
-public:
-// <no members described>
-};
-
 // Aligment: 13
 // Size: 304
 class CAnimGraphNetworkedVariables
@@ -1152,6 +3523,228 @@ public:
 	float m_flLastTeleportTime; // 0x128
 };
 
+// Aligment: 9
+// Size: 9
+struct AIHullFlags_t
+{
+public:
+	bool m_bHull_Human; // 0x0
+	bool m_bHull_SmallCentered; // 0x1
+	bool m_bHull_WideHuman; // 0x2
+	bool m_bHull_Tiny; // 0x3
+	bool m_bHull_Medium; // 0x4
+	bool m_bHull_TinyCentered; // 0x5
+	bool m_bHull_Large; // 0x6
+	bool m_bHull_LargeCentered; // 0x7
+	bool m_bHull_MediumTall; // 0x8
+};
+
+// Aligment: 2
+// Size: 504
+struct ConceptHistory_t
+{
+public:
+	float timeSpoken; // 0x0
+	CRR_Response m_response; // 0x8
+};
+
+// Aligment: 9
+// Size: 104
+class CAI_Expresser
+{
+public:
+	float m_flStopTalkTime; // 0x40
+	float m_flStopTalkTimeWithoutDelay; // 0x44
+	float m_flBlockedTalkTime; // 0x48
+	int32_t m_voicePitch; // 0x4c
+	float m_flLastTimeAcceptedSpeak; // 0x50
+	bool m_bAllowSpeakingInterrupts; // 0x54
+	bool m_bConsiderSceneInvolvementAsSpeech; // 0x55
+	int32_t m_nLastSpokenPriority; // 0x58
+	CBaseFlex* m_pOuter; // 0x60
+};
+
+// Aligment: 5
+// Size: 592
+class CResponseQueue::CDeferredResponse
+{
+public:
+	CResponseCriteriaSet m_contexts; // 0x10
+	float m_fDispatchTime; // 0x48
+	CHandle< CBaseEntity > m_hIssuer; // 0x4c
+	CRR_Response m_response; // 0x58
+	bool m_bResponseValid; // 0x248
+};
+
+// Aligment: 1
+// Size: 112
+class CResponseQueue
+{
+public:
+	CUtlVector< CAI_Expresser* > m_ExpresserTargets; // 0x58
+};
+
+// Aligment: 1
+// Size: 120
+class CAI_ExpresserWithFollowup : public CAI_Expresser
+{
+public:
+	ResponseFollowup* m_pPostponedFollowup; // 0x68
+};
+
+// Aligment: 1
+// Size: 128
+class CMultiplayer_Expresser : public CAI_ExpresserWithFollowup, CAI_Expresser
+{
+public:
+	bool m_bAllowMultipleScenes; // 0x78
+};
+
+// Aligment: 2
+// Size: 16
+class CAI_MoveMonitor
+{
+public:
+	Vector m_vMark; // 0x0
+	float m_flMarkTolerance; // 0xc
+};
+
+// Aligment: 14
+// Size: 128
+class CCommentarySystem
+{
+public:
+	int32_t m_afPlayersLastButtons; // 0x14
+	int32_t m_iCommentaryNodeCount; // 0x18
+	bool m_bCommentaryConvarsChanging; // 0x1c
+	int32_t m_iClearPressedButtons; // 0x20
+	bool m_bCommentaryEnabledMidGame; // 0x24
+	float m_flNextTeleportTime; // 0x28
+	int32_t m_iTeleportStage; // 0x2c
+	bool m_bCheatState; // 0x30
+	bool m_bIsFirstSpawnGroupToLoad; // 0x31
+	KeyValues* m_pkvSavedModifications; // 0x38
+	CUtlVector< CHandle< CBaseEntity > > m_hSpawnedEntities; // 0x58
+	CHandle< CPointCommentaryNode > m_hCurrentNode; // 0x70
+	CHandle< CPointCommentaryNode > m_hActiveCommentaryNode; // 0x74
+	CHandle< CPointCommentaryNode > m_hLastCommentaryNode; // 0x78
+};
+
+// Aligment: 1
+// Size: 24
+class CPhysicsShake
+{
+public:
+	Vector m_force; // 0x8
+};
+
+// Aligment: 4
+// Size: 64
+class CConstantForceController
+{
+public:
+	Vector m_linear; // 0xc
+	Vector m_angular; // 0x18
+	Vector m_linearSave; // 0x24
+	Vector m_angularSave; // 0x30
+};
+
+// Aligment: 4
+// Size: 32
+class CMotorController
+{
+public:
+	float m_speed; // 0x8
+	float m_maxTorque; // 0xc
+	Vector m_axis; // 0x10
+	float m_inertiaFactor; // 0x1c
+};
+
+// Aligment: 5
+// Size: 52
+struct HandHistoryInfo_t
+{
+public:
+	Vector m_vVelocity; // 0x0
+	Vector m_vFilteredVelocity; // 0xc
+	Vector m_vFilteredThrowVel; // 0x18
+	Vector m_vPosition; // 0x24
+	float m_flSampleTime; // 0x30
+};
+
+// Aligment: 17
+// Size: 112
+struct interactions_data_t
+{
+public:
+	interactions_t m_iInteractionType; // 0x8
+	CUtlSymbolLarge m_pszSelfClassname; // 0x10
+	CUtlSymbolLarge m_pszOtherClassname; // 0x18
+	CUtlSymbolLarge m_pszSelfAttachmentStart; // 0x20
+	CUtlSymbolLarge m_pszSelfAttachmentStartAlternate; // 0x28
+	CUtlSymbolLarge m_pszSelfAttachmentAdvance; // 0x30
+	CUtlSymbolLarge m_pszSelfAttachmentRetreat; // 0x38
+	bool m_bSelfMustBeHeld; // 0x40
+	bool m_bReleaseSelfOnSuccess; // 0x41
+	CUtlSymbolLarge m_pszOtherAttachmentStart; // 0x48
+	CUtlSymbolLarge m_pszOtherAttachmentStartAlternate; // 0x50
+	CUtlSymbolLarge m_pszOtherAttachmentAdvance; // 0x58
+	CUtlSymbolLarge m_pszOtherAttachmentRetreat; // 0x60
+	bool m_bOtherMustBeHeld; // 0x68
+	bool m_bReleaseOtherOnSuccess; // 0x69
+	bool m_bIsInteractionsDisabled; // 0x6a
+	bool m_bIsSelfInteractionRequirementMet; // 0x6b
+};
+
+// Aligment: 2
+// Size: 16
+struct prevent_interaction_t
+{
+public:
+	CHandle< CBaseEntity > m_hEntity; // 0x8
+	float m_flUntilTime; // 0xc
+};
+
+// Aligment: 11
+// Size: 224
+class CInteractionManager
+{
+public:
+	interactions_t m_nActiveInteraction; // 0x8
+	matrix3x4_t m_matHoldTransform; // 0xc
+	CHandle< CBaseAnimating > m_hSelf; // 0x3c
+	CHandle< CBasePlayer > m_hPlayer; // 0x40
+	CHandle< CBaseAnimating > m_hInteractionTarget; // 0x44
+	matrix3x4_t m_mInteractionTransformInit; // 0x48
+	matrix3x4_t m_mInteractionTransformTarget; // 0x78
+	float m_flInteractionLerp; // 0xa8
+	bool m_bAllInteractionsDisabled; // 0xac
+	CUtlVector< prevent_interaction_t > m_vecPreventionEntities; // 0xb0
+	CUtlVector< interactions_data_t > m_vecHandInteractions; // 0xc8
+};
+
+// Aligment: 15
+// Size: 224
+class CVRHandAttachmentInput
+{
+public:
+	uint64_t m_nButtons; // 0x0
+	uint64_t m_afButtonPressed; // 0x8
+	uint64_t m_afButtonReleased; // 0x10
+	float m_flTriggerAnalogValue; // 0x18
+	float m_flGripAnalogValue; // 0x1c
+	float m_flFinger0; // 0x20
+	float m_flFinger1; // 0x24
+	float m_flFinger2; // 0x28
+	float m_flFinger3; // 0x2c
+	float m_flFinger4; // 0x30
+	float m_flTrackpadAnalogValueX; // 0x34
+	float m_flTrackpadAnalogValueY; // 0x38
+	float m_flJoystickAnalogValueX; // 0x3c
+	float m_flJoystickAnalogValueY; // 0x40
+	CPropVRHand* m_pHand; // 0xd8
+};
+
 // Aligment: 4
 // Size: 16
 class CSoundEnvelope
@@ -1163,15 +3756,6 @@ public:
 	bool m_forceupdate; // 0xc
 };
 
-// Aligment: 2
-// Size: 40
-class CCopyRecipientFilter
-{
-public:
-	int32_t m_Flags; // 0x8
-	CUtlVector< CEntityIndex > m_Recipients; // 0x10
-};
-
 // Aligment: 13
 // Size: 144
 class CSoundPatch
@@ -1194,6 +3778,67 @@ public:
 	static int32_t &Get_g_SoundPatchCount() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CSoundPatch")->m_static_fiels[0]->m_instance); }
 };
 
+// Aligment: 25
+// Size: 100
+struct dynpitchvol_base_t
+{
+public:
+	int32_t preset; // 0x0
+	int32_t pitchrun; // 0x4
+	int32_t pitchstart; // 0x8
+	int32_t spinup; // 0xc
+	int32_t spindown; // 0x10
+	int32_t volrun; // 0x14
+	int32_t volstart; // 0x18
+	int32_t fadein; // 0x1c
+	int32_t fadeout; // 0x20
+	int32_t lfotype; // 0x24
+	int32_t lforate; // 0x28
+	int32_t lfomodpitch; // 0x2c
+	int32_t lfomodvol; // 0x30
+	int32_t cspinup; // 0x34
+	int32_t cspincount; // 0x38
+	int32_t pitch; // 0x3c
+	int32_t spinupsav; // 0x40
+	int32_t spindownsav; // 0x44
+	int32_t pitchfrac; // 0x48
+	int32_t vol; // 0x4c
+	int32_t fadeinsav; // 0x50
+	int32_t fadeoutsav; // 0x54
+	int32_t volfrac; // 0x58
+	int32_t lfofrac; // 0x5c
+	int32_t lfomult; // 0x60
+};
+
+// Aligment: 0
+// Size: 100
+struct dynpitchvol_t : public dynpitchvol_base_t
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 20
+struct Relationship_t
+{
+public:
+	CHandle< CBaseEntity > entity; // 0x0
+	Class_T classType; // 0x4
+	int32_t faction; // 0x8
+	Disposition_t disposition; // 0xc
+	int32_t priority; // 0x10
+};
+
+// Aligment: 2
+// Size: 24
+class CBaseCombatCharacter::DamageHistory
+{
+public:
+	int32_t team; // 0x0
+	IntervalTimer interval; // 0x8
+};
+
 // Aligment: 3
 // Size: 24
 struct ResponseContext_t
@@ -1204,8 +3849,68 @@ public:
 	float m_fExpirationTime; // 0x10
 };
 
-// Aligment: 4
-// Size: 224
+// Aligment: 10
+// Size: 64
+struct locksound_t
+{
+public:
+	CUtlSymbolLarge sLockedSound; // 0x8
+	CUtlSymbolLarge sLockedSentence; // 0x10
+	CUtlSymbolLarge sUnlockedSound; // 0x18
+	CUtlSymbolLarge sUnlockedSentence; // 0x20
+	int32_t iLockedSentence; // 0x28
+	int32_t iUnlockedSentence; // 0x2c
+	float flwaitSound; // 0x30
+	float flwaitSentence; // 0x34
+	uint8_t bEOFLocked; // 0x38
+	uint8_t bEOFUnlocked; // 0x39
+};
+
+// Aligment: 3
+// Size: 20
+class VelocitySampler
+{
+public:
+	Vector m_prevSample; // 0x0
+	float m_fPrevSampleTime; // 0xc
+	float m_fIdealSampleRate; // 0x10
+};
+
+// Aligment: 3
+// Size: 32
+class SimpleConstraintSoundProfile
+{
+public:
+	SimpleConstraintSoundProfile::SimpleConstraintsSoundProfileKeypoints_t eKeypoints; // 0x8
+	float32[2] m_keyPoints; // 0xc
+	float32[3] m_reversalSoundThresholds; // 0x14
+};
+
+// Aligment: 8
+// Size: 136
+class ConstraintSoundInfo
+{
+public:
+	VelocitySampler m_vSampler; // 0x8
+	SimpleConstraintSoundProfile m_soundProfile; // 0x20
+	Vector m_forwardAxis; // 0x40
+	CUtlSymbolLarge m_iszTravelSoundFwd; // 0x50
+	CUtlSymbolLarge m_iszTravelSoundBack; // 0x58
+	CUtlSymbolLarge[3] m_iszReversalSounds; // 0x68
+	bool m_bPlayTravelSound; // 0x80
+	bool m_bPlayReversalSound; // 0x81
+};
+
+// Aligment: 1
+// Size: 16
+struct magnetted_objects_t
+{
+public:
+	CHandle< CBaseEntity > hEntity; // 0x8
+};
+
+// Aligment: 28
+// Size: 552
 class CPlayerLocalData
 {
 public:
@@ -1218,9 +3923,120 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	uint8[24] m_chAreaPortalBits; // 0x38
+	int32_t m_nStepside; // 0x50
+	int32_t m_nOldButtons; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	sky3dparams_t m_skybox3d; // 0x50
+	// MNetworkBitCount "12"
+	uint32_t m_iHideHUD; // 0x58
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFOVRate; // 0x5c
+	Vector m_vecOverViewpoint; // 0x60
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucked; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDucking; // 0x6d
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInDuckJump; // 0x6e
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkPriority "64"
+	uint32_t m_nDuckTimeMsecs; // 0x70
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nDuckJumpTimeMsecs; // 0x74
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_nJumpTimeMsecs; // 0x78
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	// MNetworkMinValue "-4096"
+	// MNetworkMaxValue "4096"
+	float m_flFallVelocity; // 0x7c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngle; // 0x88
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "32"
+	QAngle m_vecPunchAngleVel; // 0x94
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDrawViewmodel; // 0xa0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWearingSuit; // 0xa1
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoisoned; // 0xa2
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	// MNetworkEncodeFlags
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "128"
+	float m_flStepSize; // 0xa4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowAutoMovement; // 0xa8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bSlowMovement; // 0xa9
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAutoAimTarget; // 0xaa
+	// MNetworkEnable
+	// MNetworkEnable
+	sky3dparams_t m_skybox3d; // 0xb0
+	// MNetworkEnable
+	// MNetworkEnable
+	audioparams_t m_audio; // 0x138
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CPostProcessingVolume > > m_PostProcessingVolumes; // 0x1b0
+	fogparams_t m_fog; // 0x1c8
+};
+
+// Aligment: 12
+// Size: 52
+class CSound
+{
+public:
+	CHandle< CBaseEntity > m_hOwner; // 0x0
+	CHandle< CBaseEntity > m_hTarget; // 0x4
+	int32_t m_iVolume; // 0x8
+	float m_flOcclusionScale; // 0xc
+	int32_t m_iType; // 0x10
+	int32_t m_iNextAudible; // 0x14
+	float m_flExpireTime; // 0x18
+	int16_t m_iNext; // 0x1c
+	bool m_bNoExpirationTime; // 0x1e
+	int32_t m_ownerChannelIndex; // 0x20
+	Vector m_vecOrigin; // 0x24
+	bool m_bHasOwner; // 0x30
+};
+
+// Aligment: 6
+// Size: 52
+struct lerpdata_t
+{
+public:
+	CHandle< CBaseEntity > m_hEnt; // 0x0
+	MoveType_t m_MoveType; // 0x4
+	float m_flStartTime; // 0x8
+	Vector m_vecStartOrigin; // 0xc
+	Quaternion m_qStartRot; // 0x18
+	ParticleIndex_t m_nFXIndex; // 0x28
 };
 
 // Aligment: 2
@@ -1266,6 +4082,22 @@ public:
 	constraint_breakableparams_t constraint; // 0x28
 };
 
+// Aligment: 0
+// Size: 8
+class IPlayerInfo
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 8
+class IBotController
+{
+public:
+// <no members described>
+};
+
 // Aligment: 1
 // Size: 2
 struct ChangeAccessorFieldPathIndex_t
@@ -1274,63 +4106,119 @@ public:
 	int16_t m_Value; // 0x0
 };
 
-// Aligment: 16
-// Size: 216
+// Aligment: 0
+// Size: 8
+class IPhysicsPlayerController
+{
+public:
+// <no members described>
+};
+
+// Aligment: 8
+// Size: 56
+class CPlayerState
+{
+public:
+	bool deadflag; // 0x8
+	bool hltv; // 0x9
+	QAngle v_angle; // 0xc
+	CUtlSymbolLarge netname; // 0x18
+	int32_t fixangle; // 0x20
+	QAngle anglechange; // 0x24
+	int32_t frags; // 0x30
+	int32_t deaths; // 0x34
+};
+
+// Aligment: 7
+// Size: 40
+struct VPhysicsCollisionAttribute_t
+{
+public:
+	// MNetworkEnable
+	uint64_t m_nInteractsAs; // 0x8
+	// MNetworkEnable
+	uint64_t m_nInteractsWith; // 0x10
+	// MNetworkEnable
+	uint64_t m_nInteractsExclude; // 0x18
+	// MNetworkEnable
+	uint32_t m_nEntityId; // 0x20
+	// MNetworkEnable
+	uint16_t m_nHierarchyId; // 0x24
+	// MNetworkEnable
+	uint8_t m_nCollisionGroup; // 0x26
+	// MNetworkEnable
+	uint8_t m_nCollisionFunctionMask; // 0x27
+};
+
+// Aligment: 17
+// Size: 168
 class CCollisionProperty
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "OnUpdateOBB"
-	Vector m_vecMins; // 0x10
+	// MNetworkChangeCallback "CollisionAttributeChanged"
+	VPhysicsCollisionAttribute_t m_collisionAttribute; // 0x10
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnUpdateOBB"
-	Vector m_vecMaxs; // 0x1c
+	Vector m_vecMins; // 0x38
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnUpdateOBB"
+	Vector m_vecMaxs; // 0x44
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "2"
 	// MNetworkChangeCallback "OnUpdateSolidFlags"
-	uint8_t m_usSolidFlags; // 0x28
+	uint8_t m_usSolidFlags; // 0x52
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnUpdateSolidType"
-	SolidType_t m_nSolidType; // 0x29
+	SolidType_t m_nSolidType; // 0x53
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	uint8_t m_triggerBloat; // 0x2a
+	uint8_t m_triggerBloat; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	SurroundingBoundsType_t m_nSurroundType; // 0x2b
+	SurroundingBoundsType_t m_nSurroundType; // 0x55
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bHitboxEnabled; // 0x2c
-	float m_flRadius; // 0x30
+	// MNetworkBitCount "6"
+	uint8_t m_CollisionGroup; // 0x56
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bHitboxEnabled; // 0x57
+	float m_flRadius; // 0x58
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	Vector m_vecSpecifiedSurroundingMins; // 0x34
+	Vector m_vecSpecifiedSurroundingMins; // 0x5c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "MarkSurroundingBoundsDirty"
-	Vector m_vecSpecifiedSurroundingMaxs; // 0x40
-	Vector m_vecSurroundingMaxs; // 0x4c
-	Vector m_vecSurroundingMins; // 0x58
+	Vector m_vecSpecifiedSurroundingMaxs; // 0x68
+	Vector m_vecSurroundingMaxs; // 0x74
+	Vector m_vecSurroundingMins; // 0x80
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vCapsuleCenter1; // 0x64
+	Vector m_vCapsuleCenter1; // 0x8c
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vCapsuleCenter2; // 0x70
+	Vector m_vCapsuleCenter2; // 0x98
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flCapsuleRadius; // 0x7c
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "CollisionAttributeChanged"
-	uint8_t m_nCollisionFunctionMask; // 0x80
+	float m_flCapsuleRadius; // 0xa4
+};
+
+// Aligment: 0
+// Size: 8
+class IDamageHandler
+{
+public:
+// <no members described>
 };
 
 // Aligment: 20
@@ -1400,7 +4288,7 @@ public:
 	uint8_t m_fFlags; // 0x61
 	// MNetworkEnable
 	// MNetworkEnable
-	AttachmentHandle_t m_nAttachmentIndex; // 0x62
+	int8_t m_nAttachmentIndex; // 0x62
 	// MNetworkEnable
 	// MNetworkEnable
 	CUtlStringToken m_nAttachmentName; // 0x64
@@ -1504,20 +4392,22 @@ public:
 	CEntityIndex m_iEntIndex; // 0xe0
 };
 
-// Aligment: 0
-// Size: 8
+// Aligment: 2
+// Size: 144
 class CGameRules
 {
 public:
-// <no members described>
+	char[128] m_szQuestName; // 0x8
+	int32_t m_nQuestPhase; // 0x88
 };
 
 // Aligment: 8
-// Size: 96
+// Size: 72
 class CGlowProperty
 {
 public:
 	Vector m_fGlowColor; // 0x8
+	int32_t m_iGlowTeam; // 0x14
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnGlowTypeChanged"
@@ -1531,18 +4421,46 @@ public:
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnGlowColorChanged"
-	Vector m_glowColorOverride; // 0x3c
+	Color m_glowColorOverride; // 0x3c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bFlashing; // 0x48
-	// MNetworkEnable
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hMaterial; // 0x50
-	bool m_bGlowing; // 0x58
+	bool m_bFlashing; // 0x40
+	bool m_bGlowing; // 0x41
 };
 
-// Aligment: 24
-// Size: 104
+// Aligment: 3
+// Size: 48
+class CHintMessage
+{
+public:
+	char* m_hintString; // 0x8
+	CUtlVector< char* > m_args; // 0x10
+	float m_duration; // 0x28
+};
+
+// Aligment: 3
+// Size: 48
+class CHintMessageQueue
+{
+public:
+	float m_tmMessageEnd; // 0x8
+	CUtlVector< CHintMessage* > m_messages; // 0x10
+	CBasePlayer* m_pPlayer; // 0x28
+};
+
+// Aligment: 1
+// Size: 200
+class CMultiplayRules : public CGameRules
+{
+public:
+	float m_flIntermissionEndTime; // 0xa8
+public:
+	static int32_t &Get_m_nMapCycleTimeStamp() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CMultiplayRules")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_m_nMapCycleindex() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CMultiplayRules")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 22
+// Size: 96
 struct fogparams_t
 {
 public:
@@ -1613,22 +4531,14 @@ public:
 	float duration; // 0x54
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "FogController"
-	float blendtobackground; // 0x58
+	bool enable; // 0x58
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "FogController"
-	float scattering; // 0x5c
+	bool blend; // 0x59
 	// MNetworkEnable
 	// MNetworkEnable
-	bool enable; // 0x60
-	// MNetworkEnable
-	// MNetworkEnable
-	bool blend; // 0x61
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bNoReflectionFog; // 0x62
-	bool m_bPadding; // 0x63
+	bool m_bNoReflectionFog; // 0x5a
+	bool m_bPadding; // 0x5b
 };
 
 // Aligment: 14
@@ -1656,7 +4566,7 @@ public:
 };
 
 // Aligment: 6
-// Size: 144
+// Size: 136
 struct sky3dparams_t
 {
 public:
@@ -1679,7 +4589,29 @@ public:
 	fogparams_t fog; // 0x20
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlStringToken m_nWorldGroupID; // 0x88
+	CUtlStringToken m_nWorldGroupID; // 0x80
+};
+
+// Aligment: 4
+// Size: 120
+struct audioparams_t
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector[8] localSound; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	int32_t soundscapeIndex; // 0x68
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint8_t localBits; // 0x6c
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t soundscapeEntityListIndex; // 0x70
 };
 
 // Aligment: 8
@@ -1705,6 +4637,35 @@ public:
 	float m_flAccelerateExposureDown; // 0x24
 };
 
+// Aligment: 0
+// Size: 8
+class IRagdoll
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 40
+struct ragdollelement_t
+{
+public:
+	Vector originParentSpace; // 0x0
+	int32_t parentIndex; // 0x20
+	float m_flRadius; // 0x24
+};
+
+// Aligment: 4
+// Size: 56
+struct ragdoll_t
+{
+public:
+	CUtlVector< ragdollelement_t > list; // 0x0
+	CUtlVector< int32 > boneIndex; // 0x18
+	bool allowStretch; // 0x30
+	bool unused; // 0x31
+};
+
 // Aligment: 16
 // Size: 96
 class CSceneEventInfo
@@ -1773,14 +4734,15 @@ public:
 	int32_t m_Data; // 0x0
 };
 
-// Aligment: 3
-// Size: 24
+// Aligment: 4
+// Size: 32
 struct thinkfunc_t
 {
 public:
-	CUtlStringToken m_nContext; // 0x8
-	int32_t m_nNextThinkTick; // 0xc
-	int32_t m_nLastThinkTick; // 0x10
+	HSCRIPT m_hFn; // 0x8
+	CUtlStringToken m_nContext; // 0x10
+	int32_t m_nNextThinkTick; // 0x14
+	int32_t m_nLastThinkTick; // 0x18
 };
 
 // Aligment: 10
@@ -1850,38 +4812,927 @@ public:
 	float m_maxInterval; // 0x14
 };
 
+// Aligment: 0
+// Size: 144
+class CSingleplayRules : public CGameRules
+{
+public:
+// <no members described>
+};
+
+// Aligment: 26
+// Size: 152
+class CTakeDamageInfo
+{
+public:
+	Vector m_vecDamageForce; // 0x8
+	Vector m_vecDamagePosition; // 0x14
+	Vector m_vecReportedPosition; // 0x20
+	Vector m_vecDamageDirection; // 0x2c
+	CHandle< CBaseEntity > m_hInflictor; // 0x38
+	CHandle< CBaseEntity > m_hAttacker; // 0x3c
+	CHandle< CBaseEntity > m_hWeapon; // 0x40
+	float m_flDamage; // 0x44
+	float m_flMaxDamage; // 0x48
+	float m_flBaseDamage; // 0x4c
+	int32_t m_bitsDamageType; // 0x50
+	int32_t m_iDamageCustom; // 0x54
+	int32_t m_iAmmoType; // 0x58
+	float m_flRadius; // 0x5c
+	float m_flOriginalDamage; // 0x68
+	int32_t m_nDamageTaken; // 0x6c
+	int16_t m_iRecord; // 0x70
+	float m_flStabilityDamage; // 0x74
+	int32_t m_bitsDotaDamageType; // 0x78
+	int32_t m_nDotaDamageCategory; // 0x7c
+	float m_flCombatLogCreditFactor; // 0x80
+	int32_t m_nDACGlobalMeterEntity; // 0x84
+	bool m_bAllowFriendlyFire; // 0x88
+	bool m_bCanBeBlocked; // 0x89
+	bool m_bCanHeadshot; // 0x8a
+	HSCRIPT m_hScriptInstance; // 0x90
+};
+
+// Aligment: 2
+// Size: 88
+class CAttributeList
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CUtlVector< CEconItemAttribute >"
+	CUtlVector< CEconItemAttribute > m_Attributes; // 0x8
+	CAttributeManager* m_pManager; // 0x50
+};
+
+// Aligment: 2
+// Size: 24
+class CEconItemAttribute
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	uint16_t m_iAttributeDefinitionIndex; // 0x12
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkAlias "m_iRawValue32"
+	float m_flValue; // 0x14
+};
+
+// Aligment: 0
+// Size: 8
+class IEconItemInterface
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 24
+struct CAttributeManager::cached_attribute_float_t
+{
+public:
+	float flIn; // 0x0
+	CUtlSymbolLarge iAttribHook; // 0x8
+	float flOut; // 0x10
+};
+
+// Aligment: 7
+// Size: 104
+class CAttributeManager
+{
+public:
+	CUtlVector< CHandle< CBaseEntity > > m_Providers; // 0x8
+	CUtlVector< CHandle< CBaseEntity > > m_Receivers; // 0x20
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iReapplyProvisionParity; // 0x38
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hOuter; // 0x3c
+	bool m_bPreventLoopback; // 0x40
+	// MNetworkEnable
+	// MNetworkEnable
+	attributeprovidertypes_t m_ProviderType; // 0x44
+	CUtlVector< CAttributeManager::cached_attribute_float_t > m_CachedResults; // 0x48
+};
+
+// Aligment: 1
+// Size: 320
+class CAttributeContainer : public CAttributeManager
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CEconItemView m_Item; // 0x68
+};
+
+// Aligment: 0
+// Size: 8
+class IHasAttributes
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 12
+struct CEconEntity::AttachedParticleInfo_t
+{
+public:
+	ParticleIndex_t m_nAttachedParticleIndex; // 0x0
+	CUtlStringToken m_customType; // 0x4
+	bool m_bShouldDestroyImmediately; // 0x8
+};
+
+// Aligment: 1
+// Size: 1
+struct HeroPersona_t
+{
+public:
+	int8_t m_Data; // 0x0
+};
+
+// Aligment: 28
+// Size: 192
+class CBaseAchievement
+{
+public:
+	char* m_pszName; // 0x18
+	int32_t m_iAchievementID; // 0x20
+	int32_t m_iFlags; // 0x24
+	int32_t m_iGoal; // 0x28
+	int32_t m_iProgressMsgIncrement; // 0x2c
+	int32_t m_iProgressMsgMinimum; // 0x30
+	int32_t m_iPointValue; // 0x34
+	bool m_bHideUntilAchieved; // 0x38
+	bool m_bStoreProgressInSteam; // 0x39
+	char* m_pInflictorClassNameFilter; // 0x40
+	char* m_pInflictorEntityNameFilter; // 0x48
+	char* m_pVictimClassNameFilter; // 0x50
+	char* m_pAttackerClassNameFilter; // 0x58
+	char* m_pMapNameFilter; // 0x60
+	char* m_pGameDirFilter; // 0x68
+	char** m_pszComponentNames; // 0x70
+	char** m_pszComponentDisplayNames; // 0x78
+	int32_t m_iNumComponents; // 0x80
+	char* m_pszComponentPrefix; // 0x88
+	int32_t m_iComponentPrefixLen; // 0x90
+	bool m_bAchieved; // 0x94
+	int32_t m_iCount; // 0x98
+	int32_t m_iProgressShown; // 0x9c
+	uint64_t m_iComponentBits; // 0xa0
+	int32_t m_nUserSlot; // 0xb0
+	int32_t m_iDisplayOrder; // 0xb4
+	bool m_bShowOnHUD; // 0xb8
+	int32_t m_iAssetAwardID; // 0xbc
+};
+
+// Aligment: 2
+// Size: 200
+class CFailableAchievement : public CBaseAchievement
+{
+public:
+	bool m_bActivated; // 0xc0
+	bool m_bFailed; // 0xc1
+};
+
+// Aligment: 1
+// Size: 8
+struct MatchID_t
+{
+public:
+	uint64_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 8
+struct DACLobbyID_t
+{
+public:
+	uint64_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 1
+struct PlayerSlot_t
+{
+public:
+	uint8_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 2
+struct DACEquipSubSlot_t
+{
+public:
+	uint16_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 4
+struct DACAbilityID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 4
+struct DACPuzzleID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 4
+struct DACStreetfightID_t
+{
+public:
+	uint32_t m_Data; // 0x0
+};
+
+// Aligment: 1
+// Size: 1
+struct UnderlordID_t
+{
+public:
+	uint8_t m_Data; // 0x0
+};
+
+// Aligment: 3
+// Size: 32
+class sGlaiveInfo
+{
+public:
+	int32_t iAttackIndex; // 0x0
+	int32_t iBounceCount; // 0x4
+	CUtlVector< CHandle< CBaseEntity > > hAlreadyHitList; // 0x8
+};
+
+// Aligment: 9
+// Size: 88
+class sSpiritInfo
+{
+public:
+	Vector vPosition; // 0x0
+	Vector vDirection; // 0xc
+	QAngle qAngles; // 0x18
+	Vector vVelocity; // 0x24
+	Vector vTargetLoc; // 0x30
+	CDAC_NPC* pTarget; // 0x40
+	bool bHit; // 0x48
+	int32_t nHealAmount; // 0x4c
+	CDAC_NPC* pSpirit; // 0x50
+};
+
+// Aligment: 0
+// Size: 16
+class IDACPlayerBot
+{
+public:
+// <no members described>
+};
+
+// Aligment: 58
+// Size: 680
+class CDAC_PB_Bot2 : public IDACPlayerBot
+{
+public:
+	PlayerSlot_t m_unPlayerSlot; // 0x10
+	CUtlString m_strPersonaName; // 0x18
+	bool m_bCanAdjustPersonality; // 0x20
+	bool m_bAllowBuySell; // 0x21
+	bool m_bAllowUnderlord; // 0x22
+	int32_t m_nRoundNumber; // 0x24
+	int32_t m_nLastPersonalityConsideredRound; // 0x28
+	float m_flBoardNoiseMagnitude; // 0x2c
+	float m_flBoardHorizontalPreference; // 0x30
+	float m_flBoardVerticalPreference; // 0x34
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Melee; // 0x38
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Ranged; // 0x50
+	CUtlVector< DACBoardPosition_t > m_vecBoardPriority_Assassin; // 0x68
+	CUtlVector< CDACUnitState* > m_vecKnights; // 0xd8
+	bool[56] m_bUnitKeywords; // 0xf0
+	int32_t m_nLowestPowerLevel; // 0x128
+	int32_t m_nPowerLevelTotal; // 0x12c
+	int32_t m_nBoardUnits; // 0x130
+	int32_t m_nBenchUnits; // 0x134
+	int32_t m_nFallbacksDesired; // 0x138
+	int32_t m_nMaxUnitCapToBuyFor; // 0x13c
+	bool[4][8] m_bSetBoardOccupied; // 0x140
+	CDACUnitState* m_pLowestPLUnit; // 0x160
+	CUtlVector< int32 > m_vecBoardUnits; // 0x168
+	CUtlVector< int32 > m_vecBenchUnits; // 0x180
+	CUtlVector< int32 > m_vecGoingToL3; // 0x198
+	bool m_bNeedsReposition; // 0x1b0
+	bool m_bNeedsItemAssign; // 0x1b1
+	bool m_bNeedsUnitRemap; // 0x1b2
+	bool m_bAllowCombines; // 0x1b3
+	bool m_bAllowLevel3; // 0x1b4
+	bool m_bFollowBoughtSynergies; // 0x1b5
+	bool m_bSellOld; // 0x1b6
+	bool m_bKeepCombineds; // 0x1b7
+	int32_t m_nMaxLevelToBuy; // 0x1b8
+	int32_t m_nMaxTier; // 0x1bc
+	bool m_bAllowRerolls; // 0x1c0
+	bool m_bCareAboutDupes; // 0x1c1
+	bool m_bPersonality; // 0x1c2
+	int32_t m_nMaxTierForLevel3; // 0x1c4
+	int32_t m_nMaxGoingToLevel3; // 0x1c8
+	UnderlordID_t m_unUnderlord; // 0x1cc
+	CUtlVector< EUnitKeyword > m_vecKeywords; // 0x1d0
+	CUtlVector< int32 > m_vecUnitIDs; // 0x1e8
+	CUtlVector< CUtlString > m_vecTalents; // 0x200
+	int32_t m_nPersonality; // 0x218
+	CUtlVector< CUtlPair< DACAbilityID_t, float32 > > m_vecItemOffsets; // 0x220
+	int32_t m_nUnitsBoughtThisRound; // 0x238
+	int32_t m_nUnitsCombinedThisRound; // 0x23c
+	int32_t m_nRoundsSinceBoughtUnit; // 0x240
+	bool m_bSentGG; // 0x244
+	int32_t m_nLastHealth; // 0x248
+	bool m_bSentDuosRequest; // 0x24c
+	CUtlVector< int32 > m_vecTeammateRequestedUnits; // 0x250
+	CUtlVector< int32 > m_vecOurRequestedUnits; // 0x268
+	CUtlVector< EUnitKeyword > m_vecTeammateRequestedKeywords; // 0x280
+	double m_flLastThanks; // 0x298
+	int32_t m_nCheatCounter; // 0x2a0
+public:
+	static int32_t &Get_sm_nLastPersonality1() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CDAC_PB_Bot2")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_sm_nLastPersonality2() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CDAC_PB_Bot2")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 4
+// Size: 40
+class CDAC_ML_Bot : public IDACPlayerBot
+{
+public:
+	PlayerSlot_t m_unPlayerSlot; // 0x10
+	UnderlordID_t m_unUnderlord; // 0x11
+	CUtlString m_strPersonaName; // 0x18
+	bool m_bPreviousVersion; // 0x20
+};
+
+// Aligment: 2
+// Size: 16
+class CDACGameMode
+{
+public:
+	int32_t m_nGameModeStateUpdateNumber; // 0x8
+	bool m_bGameModeForceRewards; // 0xc
+};
+
+// Aligment: 5
+// Size: 152
+class CDAC_GM_Normal : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_nLastOddPlayerSlot; // 0x10
+	CDACHashMapLarge< PlayerSlot_t, PlayerSlot_t > m_mapPlayerSlotToPreviousPlayerOpponentSlot; // 0x30
+	int32_t m_nNextFinalPlace; // 0x88
+	uint32_t m_rtGameStartTime; // 0x8c
+	bool m_bRoundIsNeutralFight; // 0x90
+};
+
+// Aligment: 0
+// Size: 152
+class CDAC_GM_Classic : public CDAC_GM_Normal, CDACGameMode
+{
+public:
+// <no members described>
+};
+
+// Aligment: 6
+// Size: 808
+class CDAC_GM_Duos : public CDAC_GM_Normal, CDACGameMode
+{
+public:
+	CDACHashMapLarge< EDACLobbyTeam, CUtlPair< CDACPlayerState*, CDACPlayerState* > > m_mapLobbyTeamToPlayerStatePair; // 0x98
+	CDACHashMapLarge< EDACLobbyTeam, CUtlPair< PlayerSlot_t, PlayerSlot_t > > m_mapLobbyTeamToPlayerSlotPair; // 0xf0
+	CDACHashMapLarge< PlayerSlot_t, EDACLobbyTeam > m_mapPlayerSlotToLobbyTeam; // 0x148
+	CUtlVector< CUtlPair< EDACLobbyTeam, EDACLobbyTeam > > m_vecLastCombatPairings; // 0x218
+	CUtlVector< CUtlPair< EDACLobbyTeam, EDACLobbyTeam > > m_vecSecondLastCombatPairings; // 0x230
+	CDACHashMapLarge< CUtlPair< EDACLobbyTeam, EDACLobbyTeam >, EDACLobbyTeam > m_mapCombatPairingToLastHomeTeam; // 0x2a0
+};
+
+// Aligment: 6
+// Size: 128
+class CDAC_GM_Puzzle : public CDACGameMode
+{
+public:
+	bool m_bUnclaimedChallenge; // 0x10
+	ConstDACPuzzleDefPtrAlias m_pPuzzleDef; // 0x20
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x28
+	CDACPlayerState* m_pHumanPlayer; // 0x30
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x38
+	CDACPlayerState* m_pEnemyPlayer; // 0x40
+};
+
+// Aligment: 4
+// Size: 72
+class CDAC_GM_Tutorial : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x10
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	CDACPlayerState* m_pEnemyPlayer; // 0x28
+};
+
+// Aligment: 4
+// Size: 48
+class CDAC_GM_Sandbox : public CDACGameMode
+{
+public:
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x10
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	CDACPlayerState* m_pEnemyPlayer; // 0x28
+};
+
+// Aligment: 6
+// Size: 88
+class CDAC_GM_TechPrototypeA : public CDACGameMode
+{
+public:
+	int32_t m_nRoundsRemaining; // 0x10
+	PlayerSlot_t m_unHumanPlayerSlot; // 0x14
+	CDACPlayerState* m_pHumanPlayer; // 0x18
+	PlayerSlot_t m_unEnemyPlayerSlot; // 0x20
+	IDACPlayerBot* m_pEnemyBot; // 0x28
+	CDACPlayerState* m_pEnemyPlayer; // 0x30
+};
+
+// Aligment: 0
+// Size: 152
+class CDAC_GM_Turbo : public CDAC_GM_Normal, CDACGameMode
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 176
+class CDAC_GM_Streetfight : public CDAC_GM_Turbo, CDAC_GM_Normal, CDACGameMode
+{
+public:
+	UnderlordID_t m_unUnderlord; // 0x98
+	PlayerSlot_t m_unPlayerSlot; // 0x99
+	PlayerSlot_t m_unBotSlot; // 0x9a
+	DACStreetfightID_t m_unStreetfightID; // 0x9c
+	uint32_t m_unPrestigeLevel; // 0xa0
+};
+
+// Aligment: 13
+// Size: 152
+class CDACGameConstants
+{
+public:
+	CMsgGameModeSettings m_msgGameModeSettings; // 0x0
+	CUtlVector< int32 > m_vecPlayerExperienceTable; // 0x28
+	CUtlVector< TierChancePerHeroRank > m_vecUnitTierOddsTable; // 0x40
+	int32_t m_nExperiencePurchaseGoldCost; // 0x58
+	int32_t m_nExperiencePurchaseAmount; // 0x5c
+	int32_t m_nMaxInterestGoldAmount; // 0x60
+	int32_t m_nInterestGoldDivisor; // 0x64
+	bool m_bDoesWinMatterForItemRewards; // 0x68
+	bool m_bHasNeutralRounds; // 0x69
+	CUtlVector< int32 > m_vecLootRoundNumbers; // 0x70
+	int32_t m_nUnderlordSelectionRound; // 0x88
+	float m_flKillMultiplier; // 0x8c
+	uint32_t m_unPresitgeLevel; // 0x90
+};
+
+// Aligment: 2
+// Size: 8
+struct DACBoardPosition_t
+{
+public:
+	int32_t x; // 0x0
+	int32_t y; // 0x4
+};
+
+// Aligment: 1
+// Size: 20
+class TierChancePerHeroRank
+{
+public:
+	float32[5] flHeroTierChance; // 0x0
+};
+
+// Aligment: 2
+// Size: 24
+class DACBoardBuddyState
+{
+public:
+	Vector m_vPos; // 0x0
+	QAngle m_aAngle; // 0xc
+};
+
+// Aligment: 2
+// Size: 16
+class DACItemSlot
+{
+public:
+	ConstDACItemDefPtrAlias m_pItemDef; // 0x0
+	int32_t m_nAssignedUnitEntIndex; // 0x8
+};
+
+// Aligment: 2
+// Size: 8
+class DACUnderdlordLoadout
+{
+public:
+	UnderlordID_t m_Underlord; // 0x0
+	int32_t m_nBuildIndex; // 0x4
+};
+
+// Aligment: 19
+// Size: 80
+class CDACUnitState
+{
+public:
+	int32_t m_nEntIndex; // 0x0
+	DACBoardPosition_t m_Position; // 0x4
+	int32_t m_nRank; // 0xc
+	float m_flHealth; // 0x10
+	float m_flMana; // 0x14
+	int32_t m_nUnitsConsumed; // 0x18
+	int32_t m_nGoldConsumed; // 0x1c
+	float m_flKills; // 0x20
+	uint32_t m_unKillStreak; // 0x24
+	uint32_t m_unDuelBonusDamage; // 0x28
+	int32_t m_nUnitCapCost; // 0x2c
+	bool m_bIsPlaceableItem; // 0x30
+	bool m_bBotIgnore; // 0x31
+	bool m_bCanMoveToBench; // 0x32
+	bool m_bCanBeSold; // 0x33
+	float m_flScoreForAutoPosition; // 0x34
+	bool m_bRecommendedForPlacement; // 0x38
+	float m_flTimePlaced; // 0x3c
+	ConstDACUnitDefPtrAlias m_pUnitDef; // 0x40
+};
+
+// Aligment: 4
+// Size: 40
+class CDACShopUnitState
+{
+public:
+	ConstDACUnitDefPtrAlias m_pUnitDef; // 0x0
+	int32_t m_nGoldCost; // 0x8
+	int32_t m_nScore; // 0xc
+	CUtlVectorFixed< EUnitKeyword > m_vecKeywords; // 0x10
+};
+
+// Aligment: 2
+// Size: 44
+class CDACTurboShopOfferingState
+{
+public:
+	CUtlVectorFixed< EUnitKeyword > m_vecKeywords; // 0x0
+	CUtlVectorFixed< int32 > m_vecUnits; // 0x14
+};
+
+// Aligment: 2
+// Size: 8
+class CDACUnderlordPickerOfferingState
+{
+public:
+	UnderlordID_t m_unUnderlordID; // 0x0
+	uint32_t m_unBuildID; // 0x4
+};
+
+// Aligment: 2
+// Size: 8
+class DACItemChoiceReward_Choice
+{
+public:
+	DACAbilityID_t m_unItemID; // 0x0
+	bool m_bAvailable; // 0x4
+};
+
+// Aligment: 2
+// Size: 32
+class DACItemChoiceReward
+{
+public:
+	int32_t m_nRewardID; // 0x0
+	CUtlVector< DACItemChoiceReward_Choice > m_vecChoices; // 0x8
+};
+
+// Aligment: 3
+// Size: 12
+class DACWinLossRecord
+{
+public:
+	int32_t m_nWins; // 0x0
+	int32_t m_nLosses; // 0x4
+	int32_t m_nDraws; // 0x8
+};
+
 // Aligment: 1
 // Size: 32
-class CSBox_Gamerules : public CGameRules
+class CDACPlayerLinkableComponent
 {
 public:
-	// MNetworkDisable
-	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x8
+	CUtlVector< PlayerSlot_t > m_vecParentPlayerSlots; // 0x8
+};
+
+// Aligment: 3
+// Size: 48
+class CDACPlayerHealth : public CDACPlayerLinkableComponent
+{
+public:
+	int32_t m_nHealth; // 0x20
+	int32_t m_nHealableDamage; // 0x24
+	int32_t m_nMaximumHealth; // 0x28
+};
+
+// Aligment: 4
+// Size: 56
+class CDACPlayerWinsLosses : public CDACPlayerLinkableComponent
+{
+public:
+	int32_t m_nWins; // 0x20
+	int32_t m_nLosses; // 0x24
+	int32_t m_nWinStreak; // 0x28
+	int32_t m_nLossStreak; // 0x2c
+};
+
+// Aligment: 1
+// Size: 144
+class CDACPlayerItemSlots : public CDACPlayerLinkableComponent
+{
+public:
+	CUtlVector< DACItemSlot > m_vecItemSlots; // 0x20
 };
 
 // Aligment: 2
-// Size: 48
-class NetField
+// Size: 40
+class CDACPlayerLevel : public CDACPlayerLinkableComponent
 {
 public:
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnDataBlockChanged"
-	CUtlBinaryBlock ByteData; // 0x10
-	bool Dirty; // 0x28
+	int32_t m_nLevel; // 0x20
+	int32_t m_nTotalExperience; // 0x24
 };
 
-// Aligment: 2
-// Size: 48
-class DataTable
+// Aligment: 54
+// Size: 1384
+class CDACPlayerState
 {
 public:
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< uint32 > m_EntityTags; // 0x10
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bPredictable; // 0x28
+	PlayerSlot_t m_unPlayerSlot; // 0x0
+	EDACLobbyTeam m_eLobbyTeam; // 0x4
+	DACBoardBuddyState m_boardBuddyState; // 0x8
+	int32_t m_nGold; // 0x58
+	bool m_bShopLocked; // 0x5c
+	bool m_bBoughtTurboBucketThisGame; // 0x5d
+	bool m_bUsedTurboBucketReroll; // 0x5e
+	bool m_bUsedItemRerollThisRound; // 0x5f
+	float m_flBrawnyKills; // 0x60
+	float m_flBrawnyKillsQueued; // 0x64
+	bool m_bPlayerAbandoned; // 0x68
+	bool m_bKickedForDisconnection; // 0x69
+	bool m_bFreeFirstReroll; // 0x6a
+	int32_t m_nRerollCost; // 0x6c
+	CUtlVector< CDACUnitState* > m_vecUnits; // 0x70
+	CUtlVectorFixed< CDACShopUnitState > m_vecShopUnits; // 0x88
+	CUtlVectorFixed< CDACTurboShopOfferingState > m_vecTurboBuckets; // 0x158
+	int32_t m_nPartyIndex; // 0x1e0
+	int32_t m_nDevNextCombatTakeDamage; // 0x1e4
+	bool m_bHumanPlayer; // 0x1e8
+	IDACPlayerBot* m_pPlayerBot; // 0x1f0
+	bool m_bIgnoreUnitCombinesOnBoard; // 0x1f8
+	int32_t m_nUnitLimitBonus; // 0x1fc
+	int32_t m_nShopCostDelta; // 0x200
+	uint32_t m_unGoldSpentInRerollsThisRound; // 0x204
+	uint32_t m_unGoldSpentInLevelsThisRound; // 0x208
+	uint32_t m_unGoldSpentInUnitsThisRound; // 0x20c
+	uint32_t m_unRerollsThisRound; // 0x210
+	uint32_t m_unDamageToUnitsThisRound; // 0x214
+	uint32_t m_unDamageToPlayersThisRound; // 0x218
+	uint32_t m_unShopGenerationID; // 0x21c
+	CUtlVector< DACItemChoiceReward > m_vecItemChoiceRewards; // 0x220
+	CUtlVectorFixed< int32 > m_vecCurrentRewardTiers; // 0x238
+	CUtlVector< item_definition_index_t > m_vecTalentsAvailable; // 0x250
+	CUtlVector< item_definition_index_t > m_vecTalentsSelected; // 0x268
+	CUtlVector< CDAC_Talent* > m_vecTalents; // 0x280
+	uint32_t m_unUnderlordBuildId; // 0x298
+	CDACHashMapLarge< PlayerSlot_t, DACWinLossRecord > m_mapPlayerSlotToWinLossRecord; // 0x2a0
+	int32_t m_nFinalPlace; // 0x364
+	bool m_bSentPostMatchStats; // 0x368
+	bool m_bQueuedKillForLeftLobby; // 0x369
+	bool m_bCanSelectUnderlord; // 0x36a
+	CUtlVectorFixed< CDACUnderlordPickerOfferingState > m_vecUnderlordOfferings; // 0x36c
+	DACUnderdlordLoadout m_underlordLoadout; // 0x390
+	uint32_t m_unGoldQueued; // 0x440
+	int32_t m_nMMRChangeOverallMin; // 0x500
+	int32_t m_nMMRChangeOverallMax; // 0x504
+	int32_t m_nMMRChangeCurrentMin; // 0x508
+	int32_t m_nMMRChangeCurrentMax; // 0x50c
+	int32_t m_nTeamMMRChangeOverallMin; // 0x510
+	int32_t m_nTeamMMRChangeOverallMax; // 0x514
+	int32_t m_nTeamMMRChangeCurrentMin; // 0x518
+	int32_t m_nTeamMMRChangeCurrentMax; // 0x51c
+	int32_t m_nRollsThisTurn; // 0x520
+};
+
+// Aligment: 1
+// Size: 49184
+class CDAC_NPC_History
+{
+public:
+	CUtlVectorFixedGrowable< CDAC_NPC_Incident > m_vecIncidents; // 0x8
+};
+
+// Aligment: 3
+// Size: 48
+class CDAC_NPC_Incident
+{
+public:
+	float m_flStartTime; // 0xc
+	float m_flFinishTime; // 0x10
+	float m_flMagnitude; // 0x28
+};
+
+// Aligment: 42
+// Size: 144
+class CDAC_AttackRecord
+{
+public:
+	CHandle< CBaseEntity > m_hSource; // 0x8
+	CHandle< CBaseEntity > m_hInflictor; // 0xc
+	CHandle< CBaseEntity > m_hTarget; // 0x10
+	CHandle< CBaseEntity > m_hProjectileSource; // 0x14
+	float m_flDamage; // 0x18
+	float m_flOriginalDamage; // 0x1c
+	float m_flDamagePhysical; // 0x20
+	float m_flDamagePhysical_IllusionDisplay; // 0x24
+	float m_flDamageMagical; // 0x28
+	float m_flDamageComposite; // 0x2c
+	float m_flDamagePure; // 0x30
+	int16_t m_iRecord; // 0x34
+	int32_t m_iDamageCategory; // 0x38
+	int32_t m_iFailType; // 0x3c
+	int32_t m_iDamageType; // 0x40
+	int32_t m_iFlags; // 0x44
+	bitfield:1 m_bAttack; // 0x0
+	bitfield:1 m_bRangedAttack; // 0x0
+	bitfield:1 m_bDirectionalRangedAttack; // 0x0
+	bitfield:1 m_bFakeAttack; // 0x0
+	bitfield:1 m_bNeverMiss; // 0x0
+	bitfield:1 m_bLethalAttack; // 0x0
+	bitfield:1 m_bTriggeredAttack; // 0x0
+	bitfield:1 m_bNoCooldown; // 0x0
+	bitfield:1 m_bProcessProcs; // 0x0
+	bitfield:1 m_bUseProjectile; // 0x0
+	bitfield:1 m_bUseCastAttackOrb; // 0x0
+	bitfield:1 m_bAutoCastAttack; // 0x0
+	bitfield:1 m_bIgnoreArmor; // 0x0
+	bitfield:1 m_bIgnoreObstructions; // 0x0
+	bitfield:1 m_bSuppressDamageSounds; // 0x0
+	bitfield:1 m_bTriggerSavageAlliance; // 0x0
+	int32_t m_nBashSource; // 0x4c
+	float m_flAttackHeight; // 0x50
+	float m_flCriticalBonus; // 0x54
+	float m_flCriticalDamage; // 0x58
+	float m_flCriticalDisplay; // 0x5c
+	int32_t m_iProjectileSpeed; // 0x60
+	Vector m_vForceDirectionOverride; // 0x64
+	Vector m_vTargetLoc; // 0x70
+	Vector m_vBlockLoc; // 0x7c
+	int32_t m_nGlobalMeterEntity; // 0x88
+};
+
+// Aligment: 41
+// Size: 176
+class CModifierParams
+{
+public:
+	float fDamage; // 0x4
+	float fOriginalDamage; // 0x8
+	int32_t nActivity; // 0xc
+	bool bTooltip; // 0x10
+	bool bIsKillingBlow; // 0x11
+	int32_t nTooltipParam; // 0x14
+	bool bIgnoreInvis; // 0x18
+	bool bNoCooldown; // 0x19
+	bool bIgnoreArmor; // 0x1a
+	bool bReincarnate; // 0x1b
+	bool bDoNotConsume; // 0x1c
+	float fDistance; // 0x20
+	float fGain; // 0x24
+	float fAttackTimeRemaining; // 0x28
+	int32_t m_nIssuerPlayerIndex; // 0x2c
+	CHandle< CBaseEntity > inflictor; // 0x30
+	int32_t nDamageType; // 0x34
+	int32_t nDamageflags; // 0x38
+	int32_t nDamageCategory; // 0x3c
+	int32_t iFailType; // 0x40
+	int16_t iRecord; // 0x44
+	int32_t nCost; // 0x48
+	int32_t nOrdertype; // 0x4c
+	Vector vOldLoc; // 0x50
+	Vector vNewLoc; // 0x5c
+	bool bCraniumBasherTested; // 0x68
+	bool bMKBTested; // 0x69
+	bool bHeartRegenApplied; // 0x6a
+	bool bDiffusalApplied; // 0x6b
+	bool bChainLightningConsidered; // 0x6c
+	bool bSuppressDamage; // 0x6d
+	bool bRangedAttack; // 0x6e
+	bool bProcessProcs; // 0x6f
+	bool bProjectileIsFromIllusion; // 0x70
+	int32_t nPlayerids_stick; // 0x74
+	int32_t nPreviousPower; // 0x78
+	int32_t nCurrentPower; // 0x7c
+	CUtlVector< EUnitKeyword > vecKeywords; // 0x80
+	CHandle< CBaseEntity > hattacker; // 0x98
+	CHandle< CBaseEntity > htarget; // 0x9c
+	CHandle< CBaseEntity > hunit; // 0xa0
+public:
+	static CModifierParams &Get_s_Default() { return *reinterpret_cast<CModifierParams*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CModifierParams")->m_static_fiels[0]->m_instance); }
+};
+
+// Aligment: 6
+// Size: 12
+class CDAC_BuffParticle
+{
+public:
+	ParticleIndex_t m_iIndex; // 0x0
+	int32_t m_iPriority; // 0x4
+	bool m_bDestroyImmediatly; // 0x8
+	bool m_bStatusEffect; // 0x9
+	bool m_bHeroEffect; // 0xa
+	bool m_bOverheadEffectOffset; // 0xb
+};
+
+// Aligment: 33
+// Size: 2112
+class CDAC_Modifier
+{
+public:
+	CUtlSymbolLarge m_class; // 0x20
+	CUtlStringToken m_classToken; // 0x28
+	CUtlSymbolLarge m_szModifierAura; // 0x30
+	int32_t m_iIndex; // 0x40
+	float m_flCreationTime; // 0x44
+	int32_t m_iCreationFrame; // 0x48
+	float m_flLastAppliedTime; // 0x4c
+	float m_flDuration; // 0x50
+	float m_flDieTime; // 0x54
+	CHandle< CBaseEntity > m_hCaster; // 0x58
+	CHandle< CBaseEntity > m_hAbility; // 0x5c
+	CHandle< CBaseEntity > m_hParent; // 0x60
+	CHandle< CBaseEntity > m_hAuraOwner; // 0x64
+	int32_t m_iStackCount; // 0x68
+	int16_t m_iAuraSearchTeam; // 0x6c
+	int16_t m_iAuraSearchType; // 0x6e
+	int32_t m_iAuraSearchFlags; // 0x70
+	int32_t m_iAuraRadius; // 0x74
+	int32_t m_iTeam; // 0x78
+	int32_t m_iAttributes; // 0x7c
+	int32_t m_iSynergyLevel; // 0x80
+	int32_t m_iSynergyKeyword; // 0x84
+	// MFieldVerificationName
+	int16_t m_iPaddingToMakeSchemaHappy2; // 0x88
+	bitfield:1 m_bIsAura; // 0x0
+	bitfield:1 m_bIsAuraActiveOnDeath; // 0x0
+	bitfield:1 m_bMarkedForDeletion; // 0x0
+	bitfield:1 m_bAuraIsHeal; // 0x0
+	bitfield:1 m_bProvidedByAura; // 0x0
+	bool m_bPurgedDestroy; // 0x8b
+	float m_flPreviousTick; // 0x8c
+	float m_flThinkInterval; // 0x90
+	float m_flThinkTimeAccumulator; // 0x94
+	CUtlVector< CDAC_BuffParticle > m_iParticles; // 0x98
+};
+
+// Aligment: 8
+// Size: 320
+class CDAC_ModifierManager
+{
+public:
+	CHandle< CBaseEntity > m_hModifierParent; // 0x8
+	CUtlVector< CDAC_Modifier* > m_modifierlist; // 0x10
+	uint16_t m_nHasTruesightForTeam; // 0x130
+	uint16_t m_nHasTruesightForTeamValid; // 0x132
+	uint16_t m_nProvidesFOWPositionForTeam; // 0x134
+	uint16_t m_nProvidesFOWPositionForTeamValid; // 0x136
+	int32_t m_iBuffIndex; // 0x138
+	int32_t m_iLockRefCount; // 0x13c
+};
+
+// Aligment: 4
+// Size: 104
+class CDAC_Talent
+{
+public:
+	PlayerSlot_t m_nPlayerSlot; // 0x48
+	int32_t m_nTeam; // 0x4c
+	bool m_bForceActive; // 0x50
+	item_definition_index_t m_uItemDef; // 0x54
 };
 
 // Aligment: 2
@@ -1934,44 +5785,70 @@ public:
 	float m_flRadiusInner; // 0x88
 };
 
-// Aligment: 2
-// Size: 40
+// Aligment: 4
+// Size: 56
 class CEntityInstance : public IHandleEntity
 {
 public:
+	// MNetworkDisable
+	CUtlSymbolLarge m_iszPrivateVScripts; // 0x8
 	// MNetworkEnable
 	// MNetworkPriority "112"
-	CEntityIdentity* m_pEntity; // 0x8
+	CEntityIdentity* m_pEntity; // 0x10
 	// MNetworkDisable
-	CUtlStringToken m_worldGroupId; // 0x10
+	CUtlStringToken m_worldGroupId; // 0x20
+	// MNetworkEnable
+	// MNetworkDisable
+	CScriptComponent* m_CScriptComponent; // 0x30
+};
+
+// Aligment: 1
+// Size: 56
+class CScriptComponent : public CEntityComponent
+{
+public:
+	CUtlSymbolLarge m_scriptClassName; // 0x30
+public:
+	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 0
-// Size: 40
+// Size: 56
 class CGameEntity : public CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 19
-// Size: 1160
+// Aligment: 5
+// Size: 184
+class CRecipientFilter : public IRecipientFilter
+{
+public:
+	NetChannelBufType_t m_nBufType; // 0x8
+	bool m_bInitMessage; // 0xc
+	CUtlVector< CEntityIndex > m_Recipients; // 0x10
+	bool m_bUsingPredictionRules; // 0xb0
+	bool m_bIgnorePredictionCull; // 0xb1
+};
+
+// Aligment: 17
+// Size: 824
 class CBaseAnimatingController : public CSkeletonAnimationController
 {
 public:
 	// MNetworkEnable
 	// MNetworkChangeCallback "baseAnimBaseLayerChanged"
 	CNetworkedSequenceOperation m_baseLayer; // 0x18
-	// MNetworkEnable
-	CAnimGraphNetworkedVariables m_animGraphNetworkedVars; // 0x58
 	// MNetworkDisable
-	bool m_bSequenceFinished; // 0x190
+	bool m_bSequenceFinished; // 0x58
 	// MNetworkDisable
-	float m_flGroundSpeed; // 0x194
+	float m_flGroundSpeed; // 0x5c
 	// MNetworkDisable
-	float m_flLastEventCycle; // 0x198
+	float m_flLastEventCycle; // 0x60
 	// MNetworkDisable
-	float m_flLastEventAnimTime; // 0x19c
+	float m_flLastEventAnimTime; // 0x64
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "-4"
@@ -1979,51 +5856,47 @@ public:
 	// MNetworkEncodeFlags
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "playbackRateChanged"
-	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x1a0
+	CNetworkedQuantizedFloat m_flPlaybackRate; // 0x68
 	// MNetworkDisable
-	float m_flPrevAnimTime; // 0x1b8
+	float m_flPrevAnimTime; // 0x80
 	// MNetworkEnable
 	// MNetworkBitCount "11"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkUserGroup "m_flPoseParameter"
 	// MNetworkChangeCallback "poseParametersChanged"
-	float32[24] m_flPoseParameter; // 0x1bc
+	float32[24] m_flPoseParameter; // 0x84
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "clientSideAnimationChanged"
-	bool m_bClientSideAnimation; // 0x21c
+	bool m_bClientSideAnimation; // 0xe4
 	// MNetworkDisable
-	bool m_bNetworkedAnimationInputsChanged; // 0x21d
+	bool m_bNetworkedAnimationInputsChanged; // 0xe5
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
 	// MNetworkChangeCallback "clientSideAnimCycleReset"
-	int32_t m_nNewSequenceParity; // 0x220
+	int32_t m_nNewSequenceParity; // 0xe8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	int32_t m_nResetEventsParity; // 0x224
+	int32_t m_nResetEventsParity; // 0xec
 	// MNetworkDisable
-	float m_flIKGroundContactTime; // 0x228
+	float m_flIKGroundContactTime; // 0xf0
 	// MNetworkDisable
-	float m_flIKGroundMinHeight; // 0x22c
+	float m_flIKGroundMinHeight; // 0xf4
 	// MNetworkDisable
-	float m_flIKGroundMaxHeight; // 0x230
+	float m_flIKGroundMaxHeight; // 0xf8
 	// MNetworkDisable
-	float m_flIkZAdjustAmount; // 0x234
+	float m_flIkZAdjustAmount; // 0xfc
 	// MNetworkDisable
-	CSequenceTransitioner2 m_SequenceTransitioner; // 0x260
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "overrideAnimGraphChanged"
-	CStrongHandle< InfoForResourceTypeIAnimationGraph > m_hOverrideGraph; // 0x470
+	CSequenceTransitioner2 m_SequenceTransitioner; // 0x128
 };
 
 // Aligment: 1
-// Size: 1240
+// Size: 904
 class CBaseAnimatingOverlayController : public CBaseAnimatingController, CSkeletonAnimationController
 {
 public:
@@ -2031,7 +5904,7 @@ public:
 	// MNetworkEnable
 	// MNetworkUserGroup "overlay_vars"
 	// MNetworkChangeCallback "OnOverlaysChanged2"
-	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x488
+	CUtlVector< CAnimationLayer > m_AnimOverlay; // 0x338
 };
 
 // Aligment: 2
@@ -2050,7 +5923,7 @@ public:
 };
 
 // Aligment: 2
-// Size: 336
+// Size: 448
 class CBodyComponentPoint : public CBodyComponent, CEntityComponent
 {
 public:
@@ -2058,14 +5931,14 @@ public:
 	CGameSceneNode m_sceneNode; // 0x40
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x130
+	CNetworkVarChainer __m_pChainEntity; // 0x1a0
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentPoint")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 1184
+// Size: 1312
 class CBodyComponentSkeletonInstance : public CBodyComponent, CEntityComponent
 {
 public:
@@ -2073,7 +5946,7 @@ public:
 	CSkeletonInstance m_skeletonInstance; // 0x40
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x480
+	CNetworkVarChainer __m_pChainEntity; // 0x500
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentSkeletonInstance")->m_static_fiels[1]->m_instance); }
@@ -2087,8 +5960,8 @@ public:
 // <no members described>
 };
 
-// Aligment: 58
-// Size: 392
+// Aligment: 61
+// Size: 408
 class CLightComponent : public CEntityComponent
 {
 public:
@@ -2127,151 +6000,170 @@ public:
 	float m_flPhi; // 0x9c
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_lightCookie; // 0xa0
+	CUtlStringToken m_lightCookie; // 0xa0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nCascades; // 0xa8
+	int32_t m_nCascades; // 0xa4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	int32_t m_nCastShadows; // 0xac
+	int32_t m_nCastShadows; // 0xa8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowWidth; // 0xb0
+	int32_t m_nShadowWidth; // 0xac
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowHeight; // 0xb4
+	int32_t m_nShadowHeight; // 0xb0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderDiffuse; // 0xb8
+	bool m_bRenderDiffuse; // 0xb4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nRenderSpecular; // 0xbc
+	int32_t m_nRenderSpecular; // 0xb8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderTransmissive; // 0xc0
+	bool m_bRenderTransmissive; // 0xbc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	float m_flOrthoLightWidth; // 0xc4
+	float m_flOrthoLightWidth; // 0xc0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightShapeChanged"
-	float m_flOrthoLightHeight; // 0xc8
+	float m_flOrthoLightHeight; // 0xc4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance0; // 0xcc
+	int32_t m_nStyle; // 0xc8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance1; // 0xd0
+	CUtlString m_Pattern; // 0xd0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance2; // 0xd4
+	float m_flShadowCascadeDistance0; // 0xd8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowCascadeDistance3; // 0xd8
+	float m_flShadowCascadeDistance1; // 0xdc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution0; // 0xdc
+	float m_flShadowCascadeDistance2; // 0xe0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution1; // 0xe0
+	float m_flShadowCascadeDistance3; // 0xe4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution2; // 0xe4
+	int32_t m_nShadowCascadeResolution0; // 0xe8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nShadowCascadeResolution3; // 0xe8
+	int32_t m_nShadowCascadeResolution1; // 0xec
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nBakeLightIndex; // 0xec
+	int32_t m_nShadowCascadeResolution2; // 0xf0
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flBakeLightIndexScale; // 0xf0
+	int32_t m_nShadowCascadeResolution3; // 0xf4
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bUsesIndexedBakedLighting; // 0xf4
+	int32_t m_nBakeLightIndex; // 0xf8
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bRenderToCubemaps; // 0xf5
+	float m_flBakeLightIndexScale; // 0xfc
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	int32_t m_nPriority; // 0xf8
+	bool m_bUsesIndexedBakedLighting; // 0x100
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	CUtlSymbolLarge m_LightGroups; // 0x100
-	// MNetworkEnable
-	int32_t m_nDirectLight; // 0x108
-	// MNetworkEnable
-	int32_t m_nIndirectLight; // 0x10c
+	bool m_bRenderToCubemaps; // 0x101
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flFadeMinDist; // 0x110
+	int32_t m_nPriority; // 0x104
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flFadeMaxDist; // 0x114
+	CUtlSymbolLarge m_LightGroups; // 0x108
+	// MNetworkEnable
+	int32_t m_nDirectLight; // 0x110
+	// MNetworkEnable
+	int32_t m_nIndirectLight; // 0x114
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowFadeMinDist; // 0x118
+	float m_flFadeMinDist; // 0x118
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	float m_flShadowFadeMaxDist; // 0x11c
+	float m_flFadeMaxDist; // 0x11c
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bEnabled; // 0x120
+	float m_flShadowFadeMinDist; // 0x120
 	// MNetworkEnable
 	// MNetworkChangeCallback "LightRenderingChanged"
-	bool m_bFlicker; // 0x121
+	float m_flShadowFadeMaxDist; // 0x124
 	// MNetworkEnable
-	Vector m_vPrecomputedBoundsMins; // 0x124
+	// MNetworkChangeCallback "LightRenderingChanged"
+	bool m_bEnabled; // 0x128
 	// MNetworkEnable
-	Vector m_vPrecomputedBoundsMaxs; // 0x130
+	// MNetworkChangeCallback "LightRenderingChanged"
+	bool m_bFlicker; // 0x129
 	// MNetworkEnable
-	float m_flPrecomputedMaxRange; // 0x13c
+	Vector m_vPrecomputedBoundsMins; // 0x12c
 	// MNetworkEnable
-	Vector m_vPrecomputePosition; // 0x140
+	Vector m_vPrecomputedBoundsMaxs; // 0x138
 	// MNetworkEnable
-	Vector m_vPrecomputeDirection; // 0x14c
+	float m_flPrecomputedMaxRange; // 0x144
 	// MNetworkEnable
-	Vector m_vPrecomputeUp; // 0x158
+	Vector m_vPrecomputePosition; // 0x148
 	// MNetworkEnable
-	int32_t m_nFogLightingMode; // 0x164
+	Vector m_vPrecomputeDirection; // 0x154
 	// MNetworkEnable
-	float m_flFogContributionStength; // 0x168
+	Vector m_vPrecomputeUp; // 0x160
 	// MNetworkEnable
-	float m_flNearClipPlane; // 0x16c
+	int32_t m_nFogLightingMode; // 0x16c
 	// MNetworkEnable
-	Color m_SkyColor; // 0x170
+	float m_flFogContributionStength; // 0x170
 	// MNetworkEnable
-	float m_flSkyIntensity; // 0x174
+	float m_flNearClipPlane; // 0x174
 	// MNetworkEnable
-	bool m_bLowerHemisphereIsBlack; // 0x178
+	Color m_SkyColor; // 0x178
 	// MNetworkEnable
-	Color m_SkyAmbientBounce; // 0x179
-	bool m_bMixedShadows; // 0x184
-	bool m_bFadeMixedShadows; // 0x185
+	float m_flSkyIntensity; // 0x17c
+	// MNetworkEnable
+	bool m_bLowerHemisphereIsBlack; // 0x180
+	// MNetworkEnable
+	Color m_SkyAmbientBounce; // 0x181
+	// MNetworkEnable
+	// MNetworkChangeCallback "MixedShadowsChanged"
+	bool m_bMixedShadows; // 0x185
+	// MNetworkEnable
+	// MNetworkChangeCallback "LightRenderingChanged"
+	float m_flLightStyleStartTime; // 0x188
+	bool m_bPvsModifyEntity; // 0x190
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CLightComponent")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CLightComponent")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 6
-// Size: 176
+// Aligment: 5
+// Size: 168
 class CRenderComponent : public CEntityComponent
 {
 public:
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
 	CNetworkVarChainer __m_pChainEntity; // 0x10
-	bool m_bClientAllowDraw; // 0x28
-	bool m_bLastRenderState; // 0x29
-	uint32_t m_nSplitscreenFlags; // 0x48
-	bool m_bEnableRendering; // 0x58
-	bool m_bInterpolationReadyToDraw; // 0xa8
+	bool m_bIsRenderingWithViewModels; // 0x40
+	uint32_t m_nSplitscreenFlags; // 0x44
+	bool m_bEnableRendering; // 0x50
+	bool m_bInterpolationReadyToDraw; // 0xa0
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRenderComponent")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRenderComponent")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 69
-// Size: 1216
+// Aligment: 2
+// Size: 40
+class CCopyRecipientFilter : public IRecipientFilter
+{
+public:
+	int32_t m_Flags; // 0x8
+	CUtlVector< CEntityIndex > m_Recipients; // 0x10
+};
+
+// Aligment: 80
+// Size: 1088
 class CBaseEntity : public CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2280,163 +6172,193 @@ public:
 	// MNetworkAlias "CBodyComponent"
 	// MNetworkTypeAlias "CBodyComponent"
 	// MNetworkPriority "96"
-	CBodyComponent* m_CBodyComponent; // 0x28
-	CNetworkTransmitComponent m_NetworkTransmitComponent; // 0x30
-	CUtlVector< thinkfunc_t > m_aThinkFunctions; // 0x170
-	int32_t m_iCurrentThinkContext; // 0x188
-	int32_t m_nLastThinkTick; // 0x18c
-	CGameSceneNode* m_pGameSceneNode; // 0x190
-	CBitVec< 64 > m_isSteadyState; // 0x198
-	float m_lastNetworkChange; // 0x1a0
-	CUtlVector< ResponseContext_t > m_ResponseContexts; // 0x1b0
-	CUtlSymbolLarge m_iszResponseContext; // 0x1c8
-	bool m_bRestoreInHierarchy; // 0x1f1
-	CUtlSymbolLarge m_target; // 0x1f8
-	float m_flMoveDoneTime; // 0x200
-	CHandle< CBaseEntity > m_hDamageFilter; // 0x204
-	CUtlSymbolLarge m_iszDamageFilterName; // 0x208
+	CBodyComponent* m_CBodyComponent; // 0x38
+	CNetworkTransmitComponent m_NetworkTransmitComponent; // 0x40
+	CUtlVector< thinkfunc_t > m_aThinkFunctions; // 0x180
+	int32_t m_iCurrentThinkContext; // 0x198
+	int32_t m_nLastThinkTick; // 0x19c
+	CGameSceneNode* m_pGameSceneNode; // 0x1a0
+	CBitVec< 64 > m_isSteadyState; // 0x1a8
+	float m_lastNetworkChange; // 0x1b0
+	CUtlVector< ResponseContext_t > m_ResponseContexts; // 0x1c0
+	CUtlSymbolLarge m_iszResponseContext; // 0x1d8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "ClampHealth"
+	// MNetworkUserGroup "Player"
+	// MNetworkPriority "64"
+	int32_t m_iHealth; // 0x200
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iMaxHealth; // 0x204
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	// MNetworkUserGroup "Player"
+	// MNetworkPriority "64"
+	uint8_t m_lifeState; // 0x208
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	DamageOptions_t m_takedamage; // 0x209
+	bool m_bIsNPC; // 0x20a
+	bool m_bIsDACNPC; // 0x20b
+	// MNetworkEnable
+	// MNetworkEnable
+	MoveCollide_t m_MoveCollide; // 0x20c
+	// MNetworkEnable
+	// MNetworkEnable
+	MoveType_t m_MoveType; // 0x20d
+	uint8_t m_nWaterTouch; // 0x20e
+	uint8_t m_nSlimeTouch; // 0x20f
+	bool m_bRestoreInHierarchy; // 0x210
+	CUtlSymbolLarge m_target; // 0x218
+	float m_flMoveDoneTime; // 0x220
+	CHandle< CBaseEntity > m_hDamageFilter; // 0x224
+	CUtlSymbolLarge m_iszDamageFilterName; // 0x228
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "0"
 	// MNetworkSerializer "animTimeSerializer"
 	// MNetworkSendProxyRecipientsFilter
-	float m_flAnimTime; // 0x210
+	float m_flAnimTime; // 0x230
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "1"
 	// MNetworkSerializer "simulationTimeSerializer"
-	float m_flSimulationTime; // 0x214
+	float m_flSimulationTime; // 0x234
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flCreateTime; // 0x218
+	float m_flCreateTime; // 0x238
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bClientSideRagdoll; // 0x23c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "2"
-	uint8_t m_ubInterpolationFrame; // 0x21c
-	CUtlSymbolLarge m_iGlobalname; // 0x220
-	int32_t m_iSentToClients; // 0x228
-	float m_flSpeed; // 0x22c
-	int32_t m_iHammerID; // 0x230
+	uint8_t m_ubInterpolationFrame; // 0x23d
+	MoveType_t m_PreStasisMoveType; // 0x23e
 	// MNetworkEnable
 	// MNetworkEnable
-	uint32_t m_spawnflags; // 0x234
+	// MNetworkBitCount "6"
+	uint8_t m_iTeamNum; // 0x23f
+	CUtlSymbolLarge m_iGlobalname; // 0x240
+	int32_t m_iSentToClients; // 0x248
+	float m_flSpeed; // 0x24c
+	int32_t m_iHammerID; // 0x250
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_spawnflags; // 0x254
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkUserGroup "LocalPlayerExclusive"
-	int32_t m_nNextThinkTick; // 0x238
-	int32_t m_nSimulationTick; // 0x23c
-	CEntityIOOutput m_OnKilled; // 0x240
+	int32_t m_nNextThinkTick; // 0x258
+	int32_t m_nSimulationTick; // 0x25c
+	CEntityIOOutput m_OnKilled; // 0x260
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "10"
 	// MNetworkPriority "64"
 	// MNetworkSerializer "CropFlagsToPlayerFlagBitsLength"
-	uint32_t m_fFlags; // 0x268
+	// MNetworkUserGroup "Player"
+	uint32_t m_fFlags; // 0x288
 	// MNetworkEnable
-	Vector m_vecAbsVelocity; // 0x26c
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "32"
-	// MNetworkPriority "64"
-	Vector m_vecVelocity; // 0x278
-	// MNetworkEnable
-	// MNetworkEnable
-	Vector m_vecBaseVelocity; // 0x284
-	int32_t m_nPushEnumCount; // 0x290
-	CCollisionProperty* m_pCollision; // 0x298
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< CBaseEntity > m_hEffectEntity; // 0x2a0
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "64"
-	CHandle< CBaseEntity > m_hOwnerEntity; // 0x2a4
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "13"
-	// MNetworkChangeCallback "OnEffectsChanged"
-	uint32_t m_fEffects; // 0x2a8
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkPriority "64"
-	CHandle< CBaseEntity > m_hGroundEntity; // 0x2ac
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkEncoder
-	float m_flElasticity; // 0x2b0
+	Vector m_vecAbsVelocity; // 0x28c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkUserGroup "LocalPlayerExclusive"
-	float m_flGravityScale; // 0x2b4
+	// MNetworkPriority "64"
+	CNetworkVelocityVector m_vecVelocity; // 0x298
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bSimulatedEveryTick; // 0x2b8
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	Vector m_vecBaseVelocity; // 0x300
+	int32_t m_nPushEnumCount; // 0x30c
+	CCollisionProperty* m_pCollision; // 0x310
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAnimatedEveryTick; // 0x2b9
+	CHandle< CBaseEntity > m_hEffectEntity; // 0x318
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	CHandle< CBaseEntity > m_hOwnerEntity; // 0x31c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkChangeCallback "OnEffectsChanged"
+	uint32_t m_fEffects; // 0x320
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "64"
+	// MNetworkUserGroup "Player"
+	CHandle< CBaseEntity > m_hGroundEntity; // 0x324
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	uint8_t m_iTextureFrameIndex; // 0x2ba
-	bool m_bSessionPersister; // 0x2bb
-	bool m_bDisableLowViolence; // 0x2bc
-	int32_t m_iEFlags; // 0x2c0
-	CEntityIOOutput m_OnUser1; // 0x2f8
-	CEntityIOOutput m_OnUser2; // 0x320
-	CEntityIOOutput m_OnUser3; // 0x348
-	CEntityIOOutput m_OnUser4; // 0x370
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "4"
+	// MNetworkEncodeFlags
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flFriction; // 0x328
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNavIgnoreUntilTime; // 0x398
-	QAngle m_vecAngVelocity; // 0x39c
-	bool m_bNetworkQuantizeOriginAndAngles; // 0x3a8
-	bool m_bEnableLagCompensation; // 0x3a9
-	CHandle< CBaseEntity > m_pBlocker; // 0x3ac
-	float m_flLocalTime; // 0x3b0
-	float m_flVPhysicsUpdateLocalTime; // 0x3b4
+	// MNetworkEncoder
+	float m_flElasticity; // 0x32c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bHasDynamicPhysics; // 0x3b8
+	gender_t m_Gender; // 0x330
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlString m_EntityName; // 0x3c0
+	// MNetworkBitCount "2"
+	// MNetworkUserGroup "Player"
+	uint8_t m_nWaterLevel; // 0x331
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkPriority "64"
-	Vector m_EyePosOffset; // 0x3c8
+	bool m_bSimulatedEveryTick; // 0x332
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkPriority "64"
-	Quaternion m_EyeRotOffset; // 0x3d4
+	bool m_bAnimatedEveryTick; // 0x333
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkPriority "64"
-	float m_fHealth; // 0x3e4
+	// MNetworkBitCount "2"
+	uint8_t m_nMinCPULevel; // 0x334
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	uint8_t m_nMaxCPULevel; // 0x335
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
-	// MNetworkPriority "64"
-	uint8_t m_lifeState; // 0x3e8
+	uint8_t m_nMinGPULevel; // 0x336
 	// MNetworkEnable
 	// MNetworkEnable
-	uint8_t m_WaterLevel; // 0x3e9
+	// MNetworkBitCount "3"
+	uint8_t m_nMaxGPULevel; // 0x337
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< CBaseEntity > m_WaterEntity; // 0x3ec
-	int32_t m_iTransmitMode; // 0x3f4
+	// MNetworkBitCount "8"
+	uint8_t m_iTextureFrameIndex; // 0x338
+	bool m_bSessionPersister; // 0x339
+	bool m_bDisableLowViolence; // 0x33a
+	uint8_t m_nWaterType; // 0x33b
+	int32_t m_iEFlags; // 0x33c
+	CEntityIOOutput m_OnUser1; // 0x370
+	CEntityIOOutput m_OnUser2; // 0x398
+	CEntityIOOutput m_OnUser3; // 0x3c0
+	CEntityIOOutput m_OnUser4; // 0x3e8
+	int32_t m_iInitialTeamNum; // 0x410
 	// MNetworkEnable
 	// MNetworkEnable
-	DataTable m_NetData; // 0x3f8
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_netHash; // 0x428
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< NetField > m_netData; // 0x430
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	CUtlVector< NetField > m_netDataLocal; // 0x478
+	float m_flNavIgnoreUntilTime; // 0x414
+	QAngle m_vecAngVelocity; // 0x418
+	float m_flGroundChangeTime; // 0x424
+	float m_flGravity; // 0x428
+	bool m_bNetworkQuantizeOriginAndAngles; // 0x42c
+	bool m_bLagCompensate; // 0x42d
+	float m_flOverriddenFriction; // 0x430
+	CHandle< CBaseEntity > m_pBlocker; // 0x434
+	float m_flLocalTime; // 0x438
+	float m_flVPhysicsUpdateLocalTime; // 0x43c
 public:
 	static bool &Get_sm_bAccurateTriggerBboxChecks() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[0]->m_instance); }
 	static bool &Get_sm_bDisableTouchFuncs() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[1]->m_instance); }
@@ -2445,11 +6367,10 @@ public:
 	static bool &Get_s_bPreventingSetAnimRunAnimEvents() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[4]->m_instance); }
 	static int32_t &Get_m_nPredictionRandomSeed() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[5]->m_instance); }
 	static CBasePlayer* &Get_m_pPredictionPlayer() { return *reinterpret_cast<CBasePlayer**>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[6]->m_instance); }
-	static bool &Get_sm_bDatadescValidating() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseEntity")->m_static_fiels[7]->m_instance); }
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CServerOnlyEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2457,7 +6378,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CServerOnlyPointEntity : public CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2465,44 +6386,90 @@ public:
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CLogicalEntity : public CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 17
+// Size: 1408
+class CColorCorrection : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeInDuration; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutDuration; // 0x444
+	float m_flStartFadeInWeight; // 0x448
+	float m_flStartFadeOutWeight; // 0x44c
+	float m_flTimeStartFadeIn; // 0x450
+	float m_flTimeStartFadeOut; // 0x454
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMaxWeight; // 0x458
+	bool m_bStartDisabled; // 0x45c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x45d
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x45e
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bClientSide; // 0x45f
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExclusive; // 0x460
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_MinFalloff; // 0x464
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_MaxFalloff; // 0x468
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flCurWeight; // 0x46c
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_netlookupFilename; // 0x470
+	CUtlSymbolLarge m_lookupFilename; // 0x578
+};
+
 // Aligment: 3
-// Size: 1304
+// Size: 1176
 class CBaseFilter : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bNegated; // 0x4c0
-	CEntityIOOutput m_OnPass; // 0x4c8
-	CEntityIOOutput m_OnFail; // 0x4f0
+	bool m_bNegated; // 0x440
+	CEntityIOOutput m_OnPass; // 0x448
+	CEntityIOOutput m_OnFail; // 0x470
 };
 
 // Aligment: 4
-// Size: 1440
+// Size: 1312
 class CFilterMultiple : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	filter_t m_nFilterType; // 0x518
-	CUtlSymbolLarge[10] m_iFilterName; // 0x520
-	CHandle< CBaseEntity >[10] m_hFilter; // 0x570
-	int32_t m_nFilterCount; // 0x598
+	filter_t m_nFilterType; // 0x498
+	CUtlSymbolLarge[10] m_iFilterName; // 0x4a0
+	CHandle< CBaseEntity >[10] m_hFilter; // 0x4f0
+	int32_t m_nFilterCount; // 0x518
 };
 
 // Aligment: 1
-// Size: 1312
+// Size: 1184
 class CFilterProximity : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flRadius; // 0x518
+	float m_flRadius; // 0x498
 };
 
 // Aligment: 0
-// Size: 1304
+// Size: 1176
 class CFilterLOS : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2510,15 +6477,15 @@ public:
 };
 
 // Aligment: 1
-// Size: 1312
+// Size: 1184
 class CFilterClass : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iFilterClass; // 0x518
+	CUtlSymbolLarge m_iFilterClass; // 0x498
 };
 
 // Aligment: 0
-// Size: 2128
+// Size: 2000
 class CInfoData : public CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2526,135 +6493,238 @@ public:
 };
 
 // Aligment: 4
-// Size: 1328
+// Size: 1200
 class CLogicBranch : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bInValue; // 0x4c0
-	CUtlVector< CHandle< CBaseEntity > > m_Listeners; // 0x4c8
-	CEntityIOOutput m_OnTrue; // 0x4e0
-	CEntityIOOutput m_OnFalse; // 0x508
+	bool m_bInValue; // 0x440
+	CUtlVector< CHandle< CBaseEntity > > m_Listeners; // 0x448
+	CEntityIOOutput m_OnTrue; // 0x460
+	CEntityIOOutput m_OnFalse; // 0x488
 };
 
 // Aligment: 4
-// Size: 1248
+// Size: 1120
 class CParticleLight : public CServerOnlyPointEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flIntensity; // 0x4c0
-	Vector m_vColor; // 0x4c4
-	CUtlSymbolLarge m_PSName; // 0x4d0
-	bool m_bDirectional; // 0x4d8
+	float m_flIntensity; // 0x440
+	Vector m_vColor; // 0x444
+	CUtlSymbolLarge m_PSName; // 0x450
+	bool m_bDirectional; // 0x458
 };
 
-// Aligment: 31
-// Size: 3440
-class CBasePlayer : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 24
+class CPlayerInfo : public IBotController
+{
+public:
+	CBasePlayer* m_pParent; // 0x10
+};
+
+// Aligment: 8
+// Size: 1848
+class CPlayerResource : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_BotOldFrametime; // 0x4c0
-	float m_BotOldCurtime; // 0x4c4
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkSendProxyRecipientsFilter
-	CPlayerLocalData m_Local; // 0x4c8
+	// MNetworkBitCount "10"
+	uint32[34] m_iPing; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	fogplayerparams_t m_PlayerFog; // 0x5a8
-	CPlayerState m_pl; // 0x5e8
-	uint64_t m_nButtons; // 0x618
-	uint64_t m_afButtonPressed; // 0x620
-	uint64_t m_afButtonReleased; // 0x628
-	uint64_t m_afButtonLast; // 0x630
-	uint64_t m_afButtonDisabled; // 0x638
-	uint64_t m_afButtonForced; // 0x640
-	int32_t m_nUpdateRate; // 0x648
-	float m_fLerpTime; // 0x64c
-	bool m_bLagCompensation; // 0x650
-	int32_t m_nHighestCommandNumberReceived; // 0x688
-	int32_t m_nCommandsSimulatedThisTick; // 0x68c
-	int64_t m_nUsecTimestampLastUserCmdReceived; // 0x690
-	PlayerConnectedState m_iConnected; // 0x698
-	IntervalTimer m_timeSinceCommandSimulated; // 0xcc8
+	// MNetworkBitCount "16"
+	int32[34] m_iScore; // 0x4c8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkPriority "1"
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	uint32_t m_nTickBase; // 0xcd8
+	// MNetworkBitCount "12"
+	int32[34] m_iDeaths; // 0x550
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "Player"
-	CHandle< CBaseEntity > m_hViewEntity; // 0xcdc
-	char[32] m_szNetname; // 0xce0
-	char[64] m_szNetworkIDString; // 0xd00
-	float m_lastEntitySteadyState; // 0xd40
-	int32_t m_availableEntitySteadyState; // 0xd44
-	CBitVec< 64 > m_playerInPVS; // 0xd48
-	bool m_hasAnySteadyStateEnts; // 0xd50
+	bool[34] m_bConnected; // 0x5d8
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkUserGroup "LocalPlayerExclusive"
-	uint64_t m_nUnHoldableButtons; // 0xd58
+	// MNetworkBitCount "4"
+	int32[34] m_iTeam; // 0x5fc
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_Ping; // 0xd60
+	bool[34] m_bAlive; // 0x684
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_PacketLoss; // 0xd64
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< CBaseEntity > m_Pawn; // 0xd68
+	// MNetworkBitCount "10"
+	uint32[34] m_iHealth; // 0x6a8
+	int32_t m_nUpdateCounter; // 0x730
 };
 
 // Aligment: 3
-// Size: 1240
+// Size: 1112
 class CPointPrefab : public CServerOnlyPointEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_targetMapName; // 0x4c0
-	CUtlSymbolLarge m_forceWorldGroupID; // 0x4c8
-	bool m_fixupNames; // 0x4d0
+	CUtlSymbolLarge m_targetMapName; // 0x440
+	CUtlSymbolLarge m_forceWorldGroupID; // 0x448
+	bool m_fixupNames; // 0x450
 };
 
-// Aligment: 11
-// Size: 1352
+// Aligment: 12
+// Size: 1232
 class CPointTemplate : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszWorldName; // 0x4c0
-	CUtlSymbolLarge m_iszHammerUniqueId; // 0x4c8
-	CUtlSymbolLarge m_iszSource2EntityLumpName; // 0x4d0
-	CUtlSymbolLarge m_iszEntityFilterName; // 0x4d8
-	float m_flTimeoutInterval; // 0x4e0
-	bool m_bAsynchronouslySpawnEntities; // 0x4e4
-	CEntityIOOutput m_pOutputOnSpawned; // 0x4e8
-	PointTemplateClientOnlyEntityBehavior_t m_clientOnlyEntityBehavior; // 0x510
-	PointTemplateOwnerSpawnGroupType_t m_ownerSpawnGroupType; // 0x514
-	CUtlVector< uint32 > m_createdSpawnGroupHandles; // 0x518
-	CUtlVector< CEntityHandle > m_SpawnedEntityHandles; // 0x530
+	CUtlSymbolLarge m_iszWorldName; // 0x440
+	CUtlSymbolLarge m_iszSource2EntityLumpName; // 0x448
+	CUtlSymbolLarge m_iszEntityFilterName; // 0x450
+	float m_flTimeoutInterval; // 0x458
+	bool m_bAsynchronouslySpawnEntities; // 0x45c
+	CEntityIOOutput m_pOutputOnSpawned; // 0x460
+	PointTemplateClientOnlyEntityBehavior_t m_clientOnlyEntityBehavior; // 0x488
+	PointTemplateOwnerSpawnGroupType_t m_ownerSpawnGroupType; // 0x48c
+	CUtlVector< uint32 > m_createdSpawnGroupHandles; // 0x490
+	CUtlVector< CEntityHandle > m_SpawnedEntityHandles; // 0x4a8
+	HSCRIPT m_ScriptSpawnCallback; // 0x4c0
+	HSCRIPT m_ScriptCallbackScope; // 0x4c8
 };
 
-// Aligment: 2
-// Size: 1224
-class CSkyboxReference : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 10
+// Size: 1128
+class CPostProcessController : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlStringToken m_worldGroupId; // 0x4c0
-	CHandle< CSkyCamera > m_hSkyCamera; // 0x4c4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fLocalContrastStrength; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fLocalContrastEdgeStrength; // 0x444
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteStart; // 0x448
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteEnd; // 0x44c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fVignetteBlurStrength; // 0x450
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeToBlackStrength; // 0x454
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fGrainStrength; // 0x458
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fTopVignetteStrength; // 0x45c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeTime; // 0x460
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x464
 };
 
 // Aligment: 4
-// Size: 1376
+// Size: 1240
 class CSkyCamera : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
-	sky3dparams_t m_skyboxData; // 0x4c0
+	sky3dparams_t m_skyboxData; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlStringToken m_skyboxSlotToken; // 0x550
-	bool m_bUseAngles; // 0x554
-	CSkyCamera* m_pNext; // 0x558
+	CUtlStringToken m_skyboxSlotToken; // 0x4c8
+	bool m_bUseAngles; // 0x4cc
+	CSkyCamera* m_pNext; // 0x4d0
+};
+
+// Aligment: 2
+// Size: 1096
+class CSkyboxReference : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlStringToken m_worldGroupId; // 0x440
+	CHandle< CSkyCamera > m_hSkyCamera; // 0x444
+};
+
+// Aligment: 8
+// Size: 1224
+class CEnvSoundscape : public CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnPlay; // 0x440
+	float m_flRadius; // 0x468
+	CUtlSymbolLarge m_soundscapeName; // 0x470
+	int32_t m_soundscapeIndex; // 0x478
+	int32_t m_soundscapeEntityListId; // 0x47c
+	CUtlSymbolLarge[8] m_positionNames; // 0x480
+	CHandle< CEnvSoundscape > m_hProxySoundscape; // 0x4c0
+	bool m_bDisabled; // 0x4c4
+};
+
+// Aligment: 1
+// Size: 1232
+class CEnvSoundscapeProxy : public CEnvSoundscape, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_MainSoundscapeName; // 0x4c8
+};
+
+// Aligment: 0
+// Size: 1224
+class CEnvSoundscapeTriggerable : public CEnvSoundscape, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 7
+// Size: 1288
+class CTeam : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlVector< CTeamSpawnPoint* > m_aSpawnPoints; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CBasePlayer > > m_aPlayers; // 0x458
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iScore; // 0x470
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iRoundsWon; // 0x474
+	// MNetworkEnable
+	// MNetworkEnable
+	char[129] m_szTeamname; // 0x478
+	int32_t m_iDeaths; // 0x4fc
+	int32_t m_iLastSpawn; // 0x500
+};
+
+// Aligment: 22
+// Size: 1232
+class CTriggerCamera : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hPlayer; // 0x440
+	CHandle< CBaseEntity > m_hTarget; // 0x444
+	CBaseEntity* m_pPath; // 0x448
+	CUtlSymbolLarge m_sPath; // 0x450
+	float m_flWait; // 0x458
+	float m_flReturnTime; // 0x45c
+	float m_flStopTime; // 0x460
+	float m_moveDistance; // 0x464
+	float m_targetSpeed; // 0x468
+	float m_initialSpeed; // 0x46c
+	float m_acceleration; // 0x470
+	float m_deceleration; // 0x474
+	int32_t m_state; // 0x478
+	Vector m_vecMoveDir; // 0x47c
+	float m_fov; // 0x488
+	float m_fovSpeed; // 0x48c
+	CUtlSymbolLarge m_iszTargetAttachment; // 0x490
+	int32_t m_iAttachmentIndex; // 0x498
+	bool m_bSnapToGoal; // 0x49c
+	int32_t m_nPlayerButtons; // 0x4a0
+	DamageOptions_t m_nOldTakeDamage; // 0x4a4
+	CEntityIOOutput m_OnEndFollow; // 0x4a8
 };
 
 // Aligment: 0
@@ -2682,174 +6752,367 @@ public:
 	float m_flSearchDist; // 0xb4
 };
 
+// Aligment: 0
+// Size: 48
+class CDamageComponent : public CEntityComponent
+{
+public:
+// <no members described>
+};
+
 // Aligment: 2
-// Size: 1224
+// Size: 1096
 class CEnvDetailController : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeStartDist; // 0x4c0
+	float m_flFadeStartDist; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeEndDist; // 0x4c4
+	float m_flFadeEndDist; // 0x444
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CGameRulesProxy : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 4
+// Size: 24
+class CHealthComponent : public CEntityComponent
+{
+public:
+	LifeState_t m_lifeState; // 0x8
+	int32_t m_iMax; // 0xc
+	int32_t m_iHealth; // 0x10
+	float m_flDamageAccumulator; // 0x14
+public:
+	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CHealthComponent")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_entity_component_error_class_decl_says_referenced_but_impl_is_contained() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CHealthComponent")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 14
+// Size: 1168
+class CPoseController : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bPoseValueParity; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	float m_fPoseValue; // 0x444
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "10"
+	float m_fInterpolationDuration; // 0x448
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInterpolationWrap; // 0x44c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-10"
+	// MNetworkMaxValue "10"
+	float m_fCycleFrequency; // 0x450
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	PoseController_FModType_t m_nFModType; // 0x454
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-1"
+	// MNetworkMaxValue "1"
+	float m_fFModTimeOffset; // 0x458
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-10"
+	// MNetworkMaxValue "10"
+	float m_fFModRate; // 0x45c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "10"
+	float m_fFModAmplitude; // 0x460
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity >[4] m_hProps; // 0x464
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8[4] m_chPoseIndex; // 0x474
+	bool m_bDisablePropLookup; // 0x478
+	CUtlSymbolLarge m_iszPropName; // 0x480
+	CUtlSymbolLarge m_iszPoseParameterName; // 0x488
+};
+
+// Aligment: 9
+// Size: 128
+class CRagdoll : public IRagdoll
+{
+public:
+	ragdoll_t m_ragdoll; // 0x8
+	Vector m_mins; // 0x40
+	Vector m_maxs; // 0x4c
+	Vector m_origin; // 0x58
+	float m_lastUpdate; // 0x64
+	bool m_allAsleep; // 0x68
+	Vector m_vecLastOrigin; // 0x6c
+	float m_flLastOriginChangeTime; // 0x78
+	float m_flAwakeTime; // 0x7c
+public:
+	static uint32_t &Get_s_globalCount() { return *reinterpret_cast<uint32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CRagdoll")->m_static_fiels[0]->m_instance); }
+};
+
+// Aligment: 17
+// Size: 216
+class CEconItemView : public IEconItemInterface
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	item_definition_index_t m_iItemDefinitionIndex; // 0x8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_iEntityQuality; // 0xc
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iEntityLevel; // 0x10
+	// MNetworkEnable
+	// MNetworkEnable
+	itemid_t m_iItemID; // 0x18
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iAccountID; // 0x20
+	// MNetworkEnable
+	uint32_t m_iInventoryPosition; // 0x24
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0x30
+	// MNetworkEnable
+	// MNetworkEnable
+	style_index_t m_nOverrideStyle; // 0x31
+	bool m_bIsStoreItem; // 0x32
+	bool m_bIsTradeItem; // 0x33
+	bool m_bHasComputedAttachedParticles; // 0x34
+	bool m_bHasAttachedParticles; // 0x35
+	int32_t m_iEntityQuantity; // 0x38
+	uint8_t m_unClientFlags; // 0x3c
+	eEconItemOrigin m_unOverrideOrigin; // 0x40
+	char* m_pszGrayedOutReason; // 0x50
+	// MNetworkEnable
+	// MNetworkEnable
+	CAttributeList m_AttributeList; // 0x58
+};
+
+// Aligment: 0
+// Size: 16
+class CDAC_PB_Empty : public IDACPlayerBot
+{
+public:
+// <no members described>
+};
+
 // Aligment: 1
-// Size: 1224
-class CSBox_GamerulesProxy : public CGameRulesProxy, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1096
+class CDACGameRulesProxy : public CGameRulesProxy, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkTypeAlias "CSBox_Gamerules*"
 	// MNetworkPriority "64"
-	CSBox_Gamerules* m_pGameRules; // 0x4c0
+	CSingleplayRules* m_pGameRules; // 0x440
 };
 
 // Aligment: 0
-// Size: 3440
-class CSBox_Player : public CBasePlayer, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1096
+class CDAC_Underlord_Thinker : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 61
+// Size: 2208
+class CDAC_NPC : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	uint64_t m_nUnitState64; // 0x450
+	CDAC_NPC* m_pCurrentEnemy; // 0x458
+	CDACUnitState* m_pUnitState; // 0x460
+	int32_t m_nUnitID; // 0x468
+	int32_t m_nEntIndex; // 0x46c
+	int32_t m_nRank; // 0x470
+	int32_t m_nTeamNumber; // 0x474
+	float m_flPhysicalArmorValue; // 0x478
+	float m_flMagicalResistanceValue; // 0x47c
+	int32_t m_nMinBaseAttackDamage; // 0x480
+	int32_t m_nMaxBaseAttackDamage; // 0x484
+	float m_flMana; // 0x488
+	float m_flMaxMana; // 0x48c
+	bool m_bSpecialSummon; // 0x490
+	bool m_bForceBigHealthbar; // 0x491
+	int32_t m_iStartingMaxHealth; // 0x494
+	float m_flBaseMaxHealth; // 0x498
+	CDAC_NPC* m_pScaryEnemy; // 0x4a0
+	int32_t m_nFearRange; // 0x4a8
+	float m_flFearCompletionTime; // 0x4ac
+	float m_flNextRegenThink; // 0x4b0
+	float m_flHealthRegen; // 0x4b4
+	float m_flHealthRegenCounter; // 0x4b8
+	float m_flHealthThinkRegen; // 0x4bc
+	float m_flManaRegenCounter; // 0x4c0
+	float m_flManaThinkRegen; // 0x4c4
+	float m_flManaRegen; // 0x4c8
+	float m_flAttackRate; // 0x4cc
+	float m_flAttackAnimationPoint; // 0x4d0
+	int32_t m_nAttackRange; // 0x4d4
+	float m_flLastAttackTime; // 0x4d8
+	float m_flHealingAccumulator; // 0x4dc
+	float m_flDamageAccumulator; // 0x4e0
+	CTakeDamageInfo m_StoredDamageInfo; // 0x4e8
+	bool m_bHasStoredDamageInfo; // 0x580
+	CHandle< CBaseEntity > m_hSummonOwner; // 0x584
+	bool m_bIsPlaceableItem; // 0x588
+	bool m_bIgnoreForRoundEnd; // 0x589
+	bool m_bWalkThroughGate; // 0x58a
+	CUtlVector< CHandle< CBaseEntity > > m_vecAbilities; // 0x590
+	CUtlVectorFixedGrowable< CUtlString > m_vecParticleAttachments; // 0x5a8
+	bool m_bExpired; // 0x668
+	bool m_bIsNeutralCreep; // 0x669
+	int32_t m_nTotalDamageGiven; // 0x66c
+	int32_t m_nTotalHealingDone; // 0x850
+	float m_flTotalKills; // 0x854
+	int32_t m_nRoundKills; // 0x858
+	int32_t m_nKillStreak; // 0x85c
+	int32_t m_nDuelBonusDamage; // 0x860
+	float m_flTimeOfDeath; // 0x864
+	bool m_bForceKill; // 0x868
+	bool m_bCombatStarted; // 0x869
+	bool m_bPostCombatSequenceOver; // 0x86a
+	float m_fUnderlordPower; // 0x86c
+	float m_fUnderPowerModifier; // 0x870
+	float m_fUnderPowerModifierIncrement; // 0x874
+	CDAC_NPC* m_pFollowTarget; // 0x878
+	int32_t m_nFollowDistance; // 0x880
+	CountdownTimer m_RecalculateReachableEnemy; // 0x888
+	ParticleIndex_t m_nStatusEffectIndex; // 0x898
+	DACAbilityID_t m_itemOverride; // 0x89c
+public:
+	static CUtlVector< CDAC_NPC* > &Get_s_vecAllNPCS() { return *reinterpret_cast<CUtlVector< CDAC_NPC* >*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CDAC_NPC")->m_static_fiels[0]->m_instance); }
+};
+
+// Aligment: 25
+// Size: 1336
+class CDAC_Ability : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iAbilityIndex; // 0x440
+	bool m_bHidden; // 0x444
+	bool m_bActivated; // 0x445
+	bool m_bToggleState; // 0x446
+	bool m_bRefCountsModifiers; // 0x447
+	int32_t m_iModifierRefCount; // 0x448
+	bool m_bIsEnabled; // 0x44c
+	float m_fCooldown; // 0x450
+	int32_t m_iCastRange; // 0x454
+	float m_flCooldownLength; // 0x458
+	int32_t m_iManaCost; // 0x45c
+	float m_flOverrideCastPoint; // 0x460
+	bool m_bAutoCastState; // 0x464
+	float m_flCastStartTime; // 0x468
+	bool m_bInIndefiniteCooldown; // 0x46c
+	bool m_bFrozenCooldown; // 0x46d
+	int32_t m_nCastTimes; // 0x470
+	bool m_bIsStolen; // 0x474
+	bool m_bInAbilityPhase; // 0x480
+	bool m_bChanneling; // 0x481
+	float m_flChannelStartTime; // 0x484
+	int32_t m_iLevel; // 0x488
+	int32_t m_nOverrideManaCost; // 0x48c
+	CHandle< CBaseEntity > m_hCastTarget; // 0x508
+	Vector m_vCastPosition; // 0x50c
+};
+
 // Aligment: 0
-// Size: 1216
-class CPointEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1336
+class CDAC_Ability_Underlord : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 10
-// Size: 1272
-class CEnvClock : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1400
+class CDAC_Item : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszHourHandName; // 0x4c0
-	CUtlSymbolLarge m_iszMinuteHandName; // 0x4c8
-	CUtlSymbolLarge m_iszSecondHandName; // 0x4d0
-	int32_t m_nTimeZone; // 0x4d8
-	bool m_bUseLocalTime; // 0x4dc
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< CBaseEntity > m_hHourHand; // 0x4e0
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< CBaseEntity > m_hMinuteHand; // 0x4e4
-	// MNetworkEnable
-	// MNetworkEnable
-	CHandle< CBaseEntity > m_hSecondHand; // 0x4e8
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flStartGameTime; // 0x4ec
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flStartClockSeconds; // 0x4f0
+	int32_t m_nTeamNumber; // 0x53c
 };
 
-// Aligment: 18
-// Size: 5624
-class CEnvCombinedLightProbeVolume : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 4
+// Size: 1144
+class CGameGibManager : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	// MNetworkEnable
-	// MNetworkChangeCallback "StateChanged"
-	Color m_Color; // 0x1570
-	// MNetworkEnable
-	// MNetworkChangeCallback "StateChanged"
-	float m_flBrightness; // 0x1574
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x1578
-	// MNetworkEnable
-	bool m_bCustomCubemapTexture; // 0x1580
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1588
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x1590
-	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x1598
-	// MNetworkEnable
-	Vector m_vBoxMins; // 0x15a0
-	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x15ac
-	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x15b8
-	// MNetworkEnable
-	bool m_bMoveable; // 0x15c0
-	// MNetworkEnable
-	int32_t m_nHandshake; // 0x15c4
-	// MNetworkEnable
-	int32_t m_nEnvCubeMapArrayIndex; // 0x15c8
-	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x15cc
-	// MNetworkEnable
-	int32_t m_nHmdBrightnessLevel; // 0x15d0
-	// MNetworkEnable
-	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x15d4
-	// MNetworkEnable
-	bool m_bStartDisabled; // 0x15d8
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x15f1
+	bool m_bAllowNewGibs; // 0x468
+	int32_t m_iCurrentMaxPieces; // 0x46c
+	int32_t m_iMaxPieces; // 0x470
+	int32_t m_iLastFrame; // 0x474
 };
 
-// Aligment: 18
-// Size: 1552
+// Aligment: 15
+// Size: 1408
 class CEnvCubemap : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x5a8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x520
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hDepthmapTexture; // 0x5b0
+	bool m_bCustomCubemapTexture; // 0x528
 	// MNetworkEnable
-	bool m_bCustomCubemapTexture; // 0x5b8
+	float m_flInfluenceRadius; // 0x52c
 	// MNetworkEnable
-	float m_flInfluenceRadius; // 0x5bc
+	Vector m_vBoxProjectMins; // 0x530
 	// MNetworkEnable
-	Vector m_vBoxProjectMins; // 0x5c0
+	Vector m_vBoxProjectMaxs; // 0x53c
 	// MNetworkEnable
-	Vector m_vBoxProjectMaxs; // 0x5cc
+	CUtlSymbolLarge m_LightGroups; // 0x548
 	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x5d8
+	bool m_bMoveable; // 0x550
 	// MNetworkEnable
-	bool m_bMoveable; // 0x5e0
+	int32_t m_nHandshake; // 0x554
 	// MNetworkEnable
-	int32_t m_nHandshake; // 0x5e4
+	int32_t m_nEnvCubeMapArrayIndex; // 0x558
 	// MNetworkEnable
-	int32_t m_nEnvCubeMapArrayIndex; // 0x5e8
+	int32_t m_nIndoorOutdoorLevel; // 0x55c
 	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x5ec
+	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x560
 	// MNetworkEnable
-	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x5f0
+	float m_flEdgeFadeDist; // 0x564
 	// MNetworkEnable
-	float m_flEdgeFadeDist; // 0x5f4
+	bool m_bStartDisabled; // 0x568
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x5f8
-	// MNetworkEnable
-	bool m_bDefaultEnvMap; // 0x5f9
-	// MNetworkEnable
-	bool m_bRenderDepthMap; // 0x5fa
-	// MNetworkEnable
-	bool m_bAlwaysCheckDepth; // 0x5fb
+	bool m_bDefaultEnvMap; // 0x569
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnabled; // 0x608
+	bool m_bEnabled; // 0x578
 };
 
 // Aligment: 0
-// Size: 1552
+// Size: 1408
 class CEnvCubemapBox : public CEnvCubemap, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -2857,450 +7120,551 @@ public:
 };
 
 // Aligment: 11
-// Size: 1264
+// Size: 1136
 class CEnvCubemapFog : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEndDistance; // 0x4c0
+	float m_flEndDistance; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDistance; // 0x4c4
+	float m_flStartDistance; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogFalloffExponent; // 0x4c8
+	float m_flFogFalloffExponent; // 0x448
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightWidth; // 0x4cc
+	float m_flFogHeightWidth; // 0x44c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightStart; // 0x4d0
+	float m_flFogHeightStart; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogHeightExponent; // 0x4d4
+	float m_flFogHeightExponent; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flLODBias; // 0x4d8
+	float m_flLODBias; // 0x458
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x4dc
+	bool m_bActive; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x4dd
+	bool m_bStartDisabled; // 0x45d
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogCubemapTexture; // 0x4e0
-	bool m_bFirstTime; // 0x4e8
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogCubemapTexture; // 0x460
+	bool m_bFirstTime; // 0x468
 };
 
 // Aligment: 12
-// Size: 5352
+// Size: 5216
 class CEnvLightProbeVolume : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1488
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x1400
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x1490
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x1408
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x1498
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x1410
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x14a0
+	Vector m_vBoxMins; // 0x1418
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x14ac
+	Vector m_vBoxMaxs; // 0x1424
 	// MNetworkEnable
-	CUtlSymbolLarge m_LightGroups; // 0x14b8
+	CUtlSymbolLarge m_LightGroups; // 0x1430
 	// MNetworkEnable
-	bool m_bMoveable; // 0x14c0
+	bool m_bMoveable; // 0x1438
 	// MNetworkEnable
-	int32_t m_nHandshake; // 0x14c4
+	int32_t m_nHandshake; // 0x143c
 	// MNetworkEnable
-	int32_t m_nIndoorOutdoorLevel; // 0x14c8
+	int32_t m_nIndoorOutdoorLevel; // 0x1440
 	// MNetworkEnable
-	int32_t m_nHmdBrightnessLevel; // 0x14cc
+	int32_t m_nHmdBrightnessLevel; // 0x1444
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x14d0
+	bool m_bStartDisabled; // 0x1448
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnabled; // 0x14e1
+	bool m_bEnabled; // 0x1459
 };
 
-// Aligment: 10
-// Size: 1256
-class CSphericalVignette : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 18
+// Size: 5480
+class CEnvCombinedLightProbeVolume : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkChangeCallback "StateChanged"
+	Color m_Color; // 0x14e0
+	// MNetworkEnable
+	// MNetworkChangeCallback "StateChanged"
+	float m_flBrightness; // 0x14e4
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hCubemapTexture; // 0x14e8
+	// MNetworkEnable
+	bool m_bCustomCubemapTexture; // 0x14f0
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeTexture; // 0x14f8
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightIndicesTexture; // 0x1500
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hLightProbeDirectLightScalarsTexture; // 0x1508
+	// MNetworkEnable
+	Vector m_vBoxMins; // 0x1510
+	// MNetworkEnable
+	Vector m_vBoxMaxs; // 0x151c
+	// MNetworkEnable
+	CUtlSymbolLarge m_LightGroups; // 0x1528
+	// MNetworkEnable
+	bool m_bMoveable; // 0x1530
+	// MNetworkEnable
+	int32_t m_nHandshake; // 0x1534
+	// MNetworkEnable
+	int32_t m_nEnvCubeMapArrayIndex; // 0x1538
+	// MNetworkEnable
+	int32_t m_nIndoorOutdoorLevel; // 0x153c
+	// MNetworkEnable
+	int32_t m_nHmdBrightnessLevel; // 0x1540
+	// MNetworkEnable
+	int32_t m_nGgxCubemapBlurAccumulationPassCount; // 0x1544
+	// MNetworkEnable
+	bool m_bStartDisabled; // 0x1548
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x1561
+};
+
+// Aligment: 15
+// Size: 5552
+class CEnvTimeOfDay2 : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnSunrise; // 0x440
+	CEntityIOOutput m_OnSunset; // 0x468
+	CEntityIOOutput m_OnDayBegin; // 0x490
+	CEntityIOOutput m_OnDayEnd; // 0x4b8
+	CEntityIOOutput m_OnNightBegin; // 0x4e0
+	CEntityIOOutput m_OnNightEnd; // 0x508
+	CEntityIOOutput m_OnDuskBegin; // 0x530
+	CEntityIOOutput m_OnDuskEnd; // 0x558
+	CEntityIOOutput m_OnDawnBegin; // 0x580
+	CEntityIOOutput m_OnDawnEnd; // 0x5a8
+	CEntityIOOutput m_OnMidDay; // 0x5d0
+	CEntityIOOutput m_OnMidNight; // 0x5f8
+	// MNetworkEnable
+	// MNetworkEnable
+	CTimeOfDayDynamicKeys m_DynamicKeys; // 0x620
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CTimeOfDayDynamicValues > m_DynamicValues; // 0x6a8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTimeLastUpdate; // 0x10b8
+public:
+	static CEnvTimeOfDay2* &Get_sm_pTimeOfDay() { return *reinterpret_cast<CEnvTimeOfDay2**>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CEnvTimeOfDay2")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_s_kDynamicValuesArraySize() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CEnvTimeOfDay2")->m_static_fiels[1]->m_instance); }
+};
+
+// Aligment: 7
+// Size: 1120
+class CTonemapController2 : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteStartDistance; // 0x4c0
+	float m_flAutoExposureMin; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteEndDistance; // 0x4c4
+	float m_flAutoExposureMax; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flFarZ; // 0x4c8
+	float m_flTonemapPercentTarget; // 0x448
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteMaxOpacity; // 0x4cc
+	float m_flTonemapPercentBrightPixels; // 0x44c
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteFalloffExponent; // 0x4d0
+	float m_flTonemapMinAvgLum; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	Color m_vignetteColor; // 0x4d4
+	float m_flRate; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flVignetteStrength; // 0x4d8
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "VignetteStateChanged"
-	float m_flFadeTime; // 0x4dc
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bStartDisabled; // 0x4e0
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bIsEnabled; // 0x4e1
+	float m_flAccelerateExposureDown; // 0x458
 };
 
 // Aligment: 28
-// Size: 1344
+// Size: 1216
 class CEnvVolumetricFogController : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flScattering; // 0x4c0
+	float m_flScattering; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flAnisotropy; // 0x4c4
+	float m_flAnisotropy; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeSpeed; // 0x4c8
+	float m_flFadeSpeed; // 0x448
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDrawDistance; // 0x4cc
+	float m_flDrawDistance; // 0x44c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeInStart; // 0x4d0
+	float m_flFadeInStart; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeInEnd; // 0x4d4
+	float m_flFadeInEnd; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flIndirectStrength; // 0x4d8
+	float m_flIndirectStrength; // 0x458
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimX; // 0x4dc
+	int32_t m_nIndirectTextureDimX; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimY; // 0x4e0
+	int32_t m_nIndirectTextureDimY; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nIndirectTextureDimZ; // 0x4e4
+	int32_t m_nIndirectTextureDimZ; // 0x464
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x4e8
+	Vector m_vBoxMins; // 0x468
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x4f4
+	Vector m_vBoxMaxs; // 0x474
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x500
+	bool m_bActive; // 0x480
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartAnisoTime; // 0x504
+	float m_flStartAnisoTime; // 0x484
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartScatterTime; // 0x508
+	float m_flStartScatterTime; // 0x488
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDrawDistanceTime; // 0x50c
+	float m_flStartDrawDistanceTime; // 0x48c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartAnisotropy; // 0x510
+	float m_flStartAnisotropy; // 0x490
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartScattering; // 0x514
+	float m_flStartScattering; // 0x494
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStartDrawDistance; // 0x518
+	float m_flStartDrawDistance; // 0x498
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultAnisotropy; // 0x51c
+	float m_flDefaultAnisotropy; // 0x49c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultScattering; // 0x520
+	float m_flDefaultScattering; // 0x4a0
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDefaultDrawDistance; // 0x524
+	float m_flDefaultDrawDistance; // 0x4a4
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x528
+	bool m_bStartDisabled; // 0x4a8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnableIndirect; // 0x529
+	bool m_bEnableIndirect; // 0x4a9
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bIsMaster; // 0x52a
+	bool m_bIsMaster; // 0x4aa
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogIndirectTexture; // 0x530
+	CStrongHandle< InfoForResourceTypeCTextureBase > m_hFogIndirectTexture; // 0x4b0
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nForceRefreshCount; // 0x538
-	bool m_bFirstTime; // 0x53c
+	int32_t m_nForceRefreshCount; // 0x4b8
+	bool m_bFirstTime; // 0x4bc
 };
 
 // Aligment: 7
-// Size: 1264
+// Size: 1136
 class CEnvVolumetricFogVolume : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x4c0
+	bool m_bActive; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMins; // 0x4c4
+	Vector m_vBoxMins; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_vBoxMaxs; // 0x4d0
+	Vector m_vBoxMaxs; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bStartDisabled; // 0x4dc
+	bool m_bStartDisabled; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flStrength; // 0x4e0
+	float m_flStrength; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nFalloffShape; // 0x4e4
+	int32_t m_nFalloffShape; // 0x464
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFalloffExponent; // 0x4e8
+	float m_flFalloffExponent; // 0x468
+};
+
+// Aligment: 8
+// Size: 1152
+class CMultiLightProxy : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszLightNameFilter; // 0x440
+	CUtlSymbolLarge m_iszLightClassFilter; // 0x448
+	float m_flLightRadiusFilter; // 0x450
+	float m_flBrightnessDelta; // 0x454
+	bool m_bPerformScreenFade; // 0x458
+	float m_flTargetBrightnessMultiplier; // 0x45c
+	float m_flCurrentBrightnessMultiplier; // 0x460
+	CUtlVector< CHandle< CLightEntity > > m_vecLights; // 0x468
 };
 
 // Aligment: 3
-// Size: 1328
+// Size: 1192
 class CFogController : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	fogparams_t m_fog; // 0x4c0
-	bool m_bUseAngles; // 0x528
-	int32_t m_iChangedVariables; // 0x52c
+	fogparams_t m_fog; // 0x440
+	bool m_bUseAngles; // 0x4a0
+	int32_t m_iChangedVariables; // 0x4a4
 };
 
 // Aligment: 0
-// Size: 1216
-class CInfoTarget : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1088
+class CPointEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 0
-// Size: 1216
-class CInfoParticleTarget : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-// <no members described>
-};
-
-// Aligment: 3
-// Size: 1240
-class CInfoVisibilityBox : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	int32_t m_nMode; // 0x4c4
-	// MNetworkEnable
-	// MNetworkEnable
-	Vector m_vBoxSize; // 0x4c8
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x4d4
-};
-
-// Aligment: 7
-// Size: 1280
-class CInfoWorldLayer : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CEntityIOOutput m_pOutputOnEntitiesSpawned; // 0x4c0
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlSymbolLarge m_worldName; // 0x4e8
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlSymbolLarge m_layerName; // 0x4f0
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bWorldLayerVisible; // 0x4f8
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEntitiesSpawned; // 0x4f9
-	bool m_bCreateAsChildSpawnGroup; // 0x4fa
-	uint32_t m_hLayerSpawnGroup; // 0x4fc
-};
-
-// Aligment: 8
-// Size: 1280
-class CMultiLightProxy : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iszLightNameFilter; // 0x4c0
-	CUtlSymbolLarge m_iszLightClassFilter; // 0x4c8
-	float m_flLightRadiusFilter; // 0x4d0
-	float m_flBrightnessDelta; // 0x4d4
-	bool m_bPerformScreenFade; // 0x4d8
-	float m_flTargetBrightnessMultiplier; // 0x4dc
-	float m_flCurrentBrightnessMultiplier; // 0x4e0
-	CUtlVector< CHandle< CLightEntity > > m_vecLights; // 0x4e8
-};
-
-// Aligment: 24
-// Size: 1312
+// Aligment: 28
+// Size: 1200
 class CPointCamera : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_FOV; // 0x4c0
+	float m_FOV; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_Resolution; // 0x4c4
+	float m_Resolution; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bFogEnable; // 0x4c8
+	bool m_bFogEnable; // 0x448
 	// MNetworkEnable
 	// MNetworkEnable
-	Color m_FogColor; // 0x4c9
+	Color m_FogColor; // 0x449
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogStart; // 0x4d0
+	float m_flFogStart; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogEnd; // 0x4d4
+	float m_flFogEnd; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFogMaxDensity; // 0x4d8
+	float m_flFogMaxDensity; // 0x458
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bActive; // 0x4dc
+	bool m_bActive; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseScreenAspectRatio; // 0x4dd
+	bool m_bUseScreenAspectRatio; // 0x45d
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flAspectRatio; // 0x4e0
+	float m_flAspectRatio; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bNoSky; // 0x4e4
+	bool m_bNoSky; // 0x464
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fBrightness; // 0x4e8
+	float m_fBrightness; // 0x468
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flZFar; // 0x4ec
+	float m_flZFar; // 0x46c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flZNear; // 0x4f0
+	float m_flZNear; // 0x470
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDofEnabled; // 0x4f4
+	float m_flOverrideShadowFarZ; // 0x474
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofNearBlurry; // 0x4f8
+	bool m_bDofEnabled; // 0x478
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofNearCrisp; // 0x4fc
+	float m_flDofNearBlurry; // 0x47c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofFarCrisp; // 0x500
+	float m_flDofNearCrisp; // 0x480
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofFarBlurry; // 0x504
+	float m_flDofFarCrisp; // 0x484
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDofTiltToGround; // 0x508
-	float m_TargetFOV; // 0x50c
-	float m_DegreesPerSecond; // 0x510
-	bool m_bIsOn; // 0x514
-	CPointCamera* m_pNext; // 0x518
+	float m_flDofFarBlurry; // 0x488
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDofTiltToGround; // 0x48c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flScreenWindowScale; // 0x490
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFogStartMultiplier; // 0x494
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFogEndMultiplier; // 0x498
+	float m_TargetFOV; // 0x49c
+	float m_DegreesPerSecond; // 0x4a0
+	bool m_bIsOn; // 0x4a4
+	CPointCamera* m_pNext; // 0x4a8
+};
+
+// Aligment: 10
+// Size: 1144
+class CEnvClock : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszHourHandName; // 0x440
+	CUtlSymbolLarge m_iszMinuteHandName; // 0x448
+	CUtlSymbolLarge m_iszSecondHandName; // 0x450
+	int32_t m_nTimeZone; // 0x458
+	bool m_bUseLocalTime; // 0x45c
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hHourHand; // 0x460
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hMinuteHand; // 0x464
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hSecondHand; // 0x468
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartGameTime; // 0x46c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartClockSeconds; // 0x470
+};
+
+// Aligment: 7
+// Size: 1152
+class CInfoWorldLayer : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_pOutputOnEntitiesSpawned; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_worldName; // 0x468
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_layerName; // 0x470
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWorldLayerVisible; // 0x478
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEntitiesSpawned; // 0x479
+	bool m_bCreateAsChildSpawnGroup; // 0x47a
+	uint32_t m_hLayerSpawnGroup; // 0x47c
+};
+
+// Aligment: 3
+// Size: 1112
+class CInfoVisibilityBox : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nMode; // 0x444
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vBoxSize; // 0x448
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x454
 };
 
 // Aligment: 2
-// Size: 1232
+// Size: 1104
 class CInfoGameEventProxy : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszEventName; // 0x4c0
-	float m_flRange; // 0x4c8
+	CUtlSymbolLarge m_iszEventName; // 0x440
+	float m_flRange; // 0x448
+};
+
+// Aligment: 3
+// Size: 1104
+class CDecal : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nTexture; // 0x440
+	bool m_bLowPriority; // 0x444
+	CUtlSymbolLarge m_entityName; // 0x448
 };
 
 // Aligment: 2
-// Size: 1224
+// Size: 1096
 class CProjectedDecal : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_nTexture; // 0x4c0
-	float m_flDistance; // 0x4c4
+	int32_t m_nTexture; // 0x440
+	float m_flDistance; // 0x444
 };
 
 // Aligment: 2
-// Size: 2368
+// Size: 2160
 class CBodyComponentBaseAnimating : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkEnable
-	CBaseAnimatingController m_animationController; // 0x4a0
+	CBaseAnimatingController m_animationController; // 0x520
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x928
+	CNetworkVarChainer __m_pChainEntity; // 0x858
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimating")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimating")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 2448
+// Size: 2240
 class CBodyComponentBaseAnimatingOverlay : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkEnable
-	CBaseAnimatingOverlayController m_animationController; // 0x4a0
+	CBaseAnimatingOverlayController m_animationController; // 0x520
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x978
+	CNetworkVarChainer __m_pChainEntity; // 0x8a8
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimatingOverlay")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseAnimatingOverlay")->m_static_fiels[1]->m_instance); }
 };
 
 // Aligment: 1
-// Size: 1216
+// Size: 1344
 class CBodyComponentBaseModelEntity : public CBodyComponentSkeletonInstance, CBodyComponent, CEntityComponent
 {
 public:
 	// MNetworkDisable
 	// MNetworkChangeAccessorFieldPathIndex
-	CNetworkVarChainer __m_pChainEntity; // 0x4a0
+	CNetworkVarChainer __m_pChainEntity; // 0x520
 public:
 	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fiels[0]->m_instance); }
 	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBodyComponentBaseModelEntity")->m_static_fiels[1]->m_instance); }
 };
 
-// Aligment: 21
-// Size: 1760
+// Aligment: 22
+// Size: 1592
 class CBaseModelEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -3308,71 +7672,78 @@ public:
 	// MNetworkUserGroup "CRenderComponent"
 	// MNetworkAlias "CRenderComponent"
 	// MNetworkTypeAlias "CRenderComponent"
-	CRenderComponent* m_CRenderComponent; // 0x4c0
-	int32_t m_iViewerID; // 0x4c8
+	CRenderComponent* m_CRenderComponent; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	RenderMode_t m_nRenderMode; // 0x4cc
+	RenderMode_t m_nRenderMode; // 0x448
 	// MNetworkEnable
 	// MNetworkEnable
-	RenderFx_t m_nRenderFX; // 0x4ce
-	bool m_bAllowFadeInView; // 0x4cf
+	RenderFx_t m_nRenderFX; // 0x449
+	bool m_bAllowFadeInView; // 0x44a
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnColorChanged"
-	Color m_clrRender; // 0x4d0
+	Color m_clrRender; // 0x44b
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnRenderAttributesChanged"
+	CUtlStringToken[4] m_RenderAttributeIDs; // 0x450
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnRenderAttributesChanged"
+	Vector4D[4] m_RenderAttributeValues; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnLightGroupChanged"
-	CUtlStringToken m_LightGroup; // 0x4d4
+	CUtlStringToken m_LightGroup; // 0x4a0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bRenderToCubemaps; // 0x4d8
+	bool m_bRenderToCubemaps; // 0x4a4
 	// MNetworkEnable
 	// MNetworkEnable
-	CCollisionProperty m_Collision; // 0x4e0
+	CCollisionProperty m_Collision; // 0x4a8
 	// MNetworkEnable
 	// MNetworkEnable
-	CGlowProperty m_Glow; // 0x5b8
+	CGlowProperty m_Glow; // 0x550
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flGlowBackfaceMult; // 0x618
+	float m_flGlowBackfaceMult; // 0x598
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fadeMinDist; // 0x61c
+	float m_fadeMinDist; // 0x59c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_fadeMaxDist; // 0x620
+	float m_fadeMaxDist; // 0x5a0
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeScale; // 0x624
+	float m_flFadeScale; // 0x5a4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flShadowStrength; // 0x628
+	float m_flShadowStrength; // 0x5a8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nAddDecal; // 0x5ac
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDecalPosition; // 0x5b0
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDecalForwardAxis; // 0x5bc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDecalHealBloodRate; // 0x5c8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDecalHealHeightRate; // 0x5cc
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkPriority "64"
 	// MNetworkUserGroup "Player"
-	CNetworkViewOffsetVector m_vecViewOffset; // 0x630
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnLightingOriginChanged"
-	Vector m_vLightingOrigin; // 0x698
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkChangeCallback "OnLightingOriginChanged"
-	bool m_bFixupLightingOriginToPlayerSide; // 0x6a4
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< CUtlStringToken > m_MaterialReplaceAttribute; // 0x6a8
-	// MNetworkEnable
-	// MNetworkEnable
-	CUtlVector< CStrongHandle< InfoForResourceTypeIMaterial2 > > m_MaterialReplaceMaterial; // 0x6c0
-	CUtlStringToken m_sceneLayerID; // 0x6d8
+	CNetworkViewOffsetVector m_vecViewOffset; // 0x5d0
 };
 
 // Aligment: 0
-// Size: 1760
+// Size: 1592
 class CServerOnlyModelEntity : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -3380,7 +7751,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1760
+// Size: 1592
 class CModelPointEntity : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -3388,97 +7759,133 @@ public:
 };
 
 // Aligment: 7
-// Size: 1304
+// Size: 1176
 class CLogicRelay : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnTrigger; // 0x4c0
-	CEntityIOOutput m_OnSpawn; // 0x4e8
-	bool m_bDisabled; // 0x510
-	bool m_bWaitForRefire; // 0x511
-	bool m_bTriggerOnce; // 0x512
-	bool m_bFastRetrigger; // 0x513
-	bool m_bPassthoughCaller; // 0x514
+	CEntityIOOutput m_OnTrigger; // 0x440
+	CEntityIOOutput m_OnSpawn; // 0x468
+	bool m_bDisabled; // 0x490
+	bool m_bWaitForRefire; // 0x491
+	bool m_bTriggerOnce; // 0x492
+	bool m_bFastRetrigger; // 0x493
+	bool m_bPassthoughCaller; // 0x494
+};
+
+// Aligment: 12
+// Size: 2712
+class CParticleSystem : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_szSnapshotFileName; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bActive; // 0x73c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	int32_t m_nStopType; // 0x740
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x748
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x750
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector[4] m_vServerControlPoints; // 0x754
+	// MNetworkEnable
+	// MNetworkEnable
+	uint8[4] m_iServerControlPointAssignments; // 0x784
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity >[64] m_hControlPointEnts; // 0x788
+	bool m_bNoSave; // 0x888
+	bool m_bStartActive; // 0x889
+	CUtlSymbolLarge m_iszEffectName; // 0x890
+	CUtlSymbolLarge[64] m_iszControlPointNames; // 0x898
 };
 
 // Aligment: 16
-// Size: 1440
+// Size: 1312
 class CPathParticleRope : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bStartActive; // 0x4c0
-	float m_flMaxSimulationTime; // 0x4c4
-	CUtlSymbolLarge m_iszEffectName; // 0x4c8
-	CUtlVector< CUtlSymbolLarge > m_PathNodes_Name; // 0x4d0
+	bool m_bStartActive; // 0x440
+	float m_flMaxSimulationTime; // 0x444
+	CUtlSymbolLarge m_iszEffectName; // 0x448
+	CUtlVector< CUtlSymbolLarge > m_PathNodes_Name; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flParticleSpacing; // 0x4e8
+	float m_flParticleSpacing; // 0x468
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	float m_flSlack; // 0x4ec
+	float m_flSlack; // 0x46c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	float m_flRadius; // 0x4f0
+	float m_flRadius; // 0x470
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "parametersChanged"
-	Color m_ColorTint; // 0x4f4
+	Color m_ColorTint; // 0x474
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "effectStateChanged"
 	// MNetworkBitCount "3"
-	int32_t m_nEffectState; // 0x4f8
+	int32_t m_nEffectState; // 0x478
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x500
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_iEffectIndex; // 0x480
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_Position; // 0x508
+	CUtlVector< Vector > m_PathNodes_Position; // 0x488
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_TangentIn; // 0x520
+	CUtlVector< Vector > m_PathNodes_TangentIn; // 0x4a0
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_TangentOut; // 0x538
+	CUtlVector< Vector > m_PathNodes_TangentOut; // 0x4b8
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< Vector > m_PathNodes_Color; // 0x550
+	CUtlVector< Vector > m_PathNodes_Color; // 0x4d0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "pinStateChanged"
-	CUtlVector< bool > m_PathNodes_PinEnabled; // 0x568
+	CUtlVector< bool > m_PathNodes_PinEnabled; // 0x4e8
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< float32 > m_PathNodes_RadiusScale; // 0x580
+	CUtlVector< float32 > m_PathNodes_RadiusScale; // 0x500
 };
 
 // Aligment: 5
-// Size: 1240
+// Size: 1112
 class CInfoDynamicShadowHint : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bDisabled; // 0x4c0
-	float m_flRange; // 0x4c4
-	int32_t m_nImportance; // 0x4c8
-	int32_t m_nLightChoice; // 0x4cc
-	CHandle< CBaseEntity > m_hLight; // 0x4d0
+	bool m_bDisabled; // 0x440
+	float m_flRange; // 0x444
+	int32_t m_nImportance; // 0x448
+	int32_t m_nLightChoice; // 0x44c
+	CHandle< CBaseEntity > m_hLight; // 0x450
 public:
 	static CUtlVector< CInfoDynamicShadowHint* > &Get_m_AllHints() { return *reinterpret_cast<CUtlVector< CInfoDynamicShadowHint* >*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CInfoDynamicShadowHint")->m_static_fiels[0]->m_instance); }
 };
 
 // Aligment: 2
-// Size: 1264
+// Size: 1136
 class CInfoDynamicShadowHintBox : public CInfoDynamicShadowHint, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_vBoxMins; // 0x4d8
-	Vector m_vBoxMaxs; // 0x4e4
+	Vector m_vBoxMins; // 0x458
+	Vector m_vBoxMaxs; // 0x464
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CInfoSpawnGroupLandmark : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -3486,91 +7893,301 @@ public:
 };
 
 // Aligment: 11
-// Size: 1472
+// Size: 1344
 class CInfoSpawnGroupLoadUnload : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnSpawnGroupLoadStarted; // 0x4c0
-	CEntityIOOutput m_OnSpawnGroupLoadFinished; // 0x4e8
-	CEntityIOOutput m_OnSpawnGroupUnloadStarted; // 0x510
-	CEntityIOOutput m_OnSpawnGroupUnloadFinished; // 0x538
-	CUtlSymbolLarge m_iszSpawnGroupName; // 0x560
-	CUtlSymbolLarge m_iszSpawnGroupFilterName; // 0x568
-	CUtlSymbolLarge m_iszLandmarkName; // 0x570
-	CUtlString m_sFixedSpawnGroupName; // 0x578
-	float m_flTimeoutInterval; // 0x580
-	bool m_bStreamingStarted; // 0x584
-	bool m_bUnloadingStarted; // 0x585
-};
-
-// Aligment: 9
-// Size: 1784
-class CDynamicLight : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	uint8_t m_ActualFlags; // 0x6e0
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "4"
-	uint8_t m_Flags; // 0x6e1
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "4"
-	uint8_t m_LightStyle; // 0x6e2
-	bool m_On; // 0x6e3
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_Radius; // 0x6e4
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "8"
-	int32_t m_Exponent; // 0x6e8
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "8"
-	// MNetworkMinValue "0"
-	// MNetworkMaxValue "360"
-	float m_InnerAngle; // 0x6ec
-	// MNetworkEnable
-	// MNetworkEnable
-	// MNetworkBitCount "8"
-	// MNetworkMinValue "0"
-	// MNetworkMaxValue "360"
-	float m_OuterAngle; // 0x6f0
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_SpotRadius; // 0x6f4
+	CEntityIOOutput m_OnSpawnGroupLoadStarted; // 0x440
+	CEntityIOOutput m_OnSpawnGroupLoadFinished; // 0x468
+	CEntityIOOutput m_OnSpawnGroupUnloadStarted; // 0x490
+	CEntityIOOutput m_OnSpawnGroupUnloadFinished; // 0x4b8
+	CUtlSymbolLarge m_iszSpawnGroupName; // 0x4e0
+	CUtlSymbolLarge m_iszSpawnGroupFilterName; // 0x4e8
+	CUtlSymbolLarge m_iszLandmarkName; // 0x4f0
+	CUtlString m_sFixedSpawnGroupName; // 0x4f8
+	float m_flTimeoutInterval; // 0x500
+	bool m_bStreamingStarted; // 0x504
+	bool m_bUnloadingStarted; // 0x505
 };
 
 // Aligment: 1
-// Size: 2053288
-class CDebugHistory : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1600
+class CFuncWall : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_nNpcEvents; // 0x1f4500
-};
-
-// Aligment: 12
-// Size: 1376
-class CEnvEntityMaker : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	Vector m_vecEntityMins; // 0x4c0
-	Vector m_vecEntityMaxs; // 0x4cc
-	CHandle< CBaseEntity > m_hCurrentInstance; // 0x4d8
-	CHandle< CBaseEntity > m_hCurrentBlocker; // 0x4dc
-	Vector m_vecBlockerOrigin; // 0x4e0
-	QAngle m_angPostSpawnDirection; // 0x4ec
-	float m_flPostSpawnDirectionVariance; // 0x4f8
-	float m_flPostSpawnSpeed; // 0x4fc
-	bool m_bPostSpawnUseAngles; // 0x500
-	CUtlSymbolLarge m_iszTemplate; // 0x508
-	CEntityIOOutput m_pOutputOnSpawned; // 0x510
-	CEntityIOOutput m_pOutputOnFailedSpawn; // 0x538
+	int32_t m_nState; // 0x638
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1600
+class CFuncWallToggle : public CFuncWall, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1592
+class CFuncVehicleClip : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1616
+class CFuncConveyor : public CFuncWall, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecMoveDir; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flConveyorSpeed; // 0x64c
+};
+
+// Aligment: 0
+// Size: 1592
+class CFuncIllusionary : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1608
+class CFuncVPhysicsClip : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iFilterName; // 0x638
+	CHandle< CBaseFilter > m_hFilter; // 0x640
+	bool m_bDisabled; // 0x644
+};
+
+// Aligment: 3
+// Size: 1616
+class CFuncInteractionLayerClip : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x638
+	CUtlSymbolLarge m_iszInteractsAs; // 0x640
+	CUtlSymbolLarge m_iszInteractsWith; // 0x648
+};
+
+// Aligment: 0
+// Size: 1088
+class CPointClientCommand : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1088
+class CPointServerCommand : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1088
+class CPointBroadcastClientCommand : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1208
+class CCommentaryAuto : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnCommentaryNewGame; // 0x440
+	CEntityIOOutput m_OnCommentaryMidGame; // 0x468
+	CEntityIOOutput m_OnCommentaryMultiplayerSpawn; // 0x490
+};
+
+// Aligment: 2
+// Size: 1096
+class CTargetChangeGravity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iGravity; // 0x440
+	int32_t m_iOldGrav; // 0x444
+};
+
+// Aligment: 9
+// Size: 1616
+class CDynamicLight : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	uint8_t m_ActualFlags; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_Flags; // 0x639
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_LightStyle; // 0x63a
+	bool m_On; // 0x63b
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Radius; // 0x63c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_Exponent; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "360"
+	float m_InnerAngle; // 0x644
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "360"
+	float m_OuterAngle; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_SpotRadius; // 0x64c
+};
+
+// Aligment: 1
+// Size: 1797152
+class CDebugHistory : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nNpcEvents; // 0x1b5c78
+};
+
+// Aligment: 12
+// Size: 1248
+class CEnvEntityMaker : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecEntityMins; // 0x440
+	Vector m_vecEntityMaxs; // 0x44c
+	CHandle< CBaseEntity > m_hCurrentInstance; // 0x458
+	CHandle< CBaseEntity > m_hCurrentBlocker; // 0x45c
+	Vector m_vecBlockerOrigin; // 0x460
+	QAngle m_angPostSpawnDirection; // 0x46c
+	float m_flPostSpawnDirectionVariance; // 0x478
+	float m_flPostSpawnSpeed; // 0x47c
+	bool m_bPostSpawnUseAngles; // 0x480
+	CUtlSymbolLarge m_iszTemplate; // 0x488
+	CEntityIOOutput m_pOutputOnSpawned; // 0x490
+	CEntityIOOutput m_pOutputOnFailedSpawn; // 0x4b8
+};
+
+// Aligment: 0
+// Size: 1088
+class CInfoInstructorHintTarget : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 24
+// Size: 1200
+class CEnvInstructorHint : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszName; // 0x440
+	CUtlSymbolLarge m_iszReplace_Key; // 0x448
+	CUtlSymbolLarge m_iszHintTargetEntity; // 0x450
+	int32_t m_iTimeout; // 0x458
+	int32_t m_iDisplayLimit; // 0x45c
+	CUtlSymbolLarge m_iszIcon_Onscreen; // 0x460
+	CUtlSymbolLarge m_iszIcon_Offscreen; // 0x468
+	CUtlSymbolLarge m_iszCaption; // 0x470
+	CUtlSymbolLarge m_iszActivatorCaption; // 0x478
+	Color m_Color; // 0x480
+	float m_fIconOffset; // 0x484
+	float m_fRange; // 0x488
+	uint8_t m_iPulseOption; // 0x48c
+	uint8_t m_iAlphaOption; // 0x48d
+	uint8_t m_iShakeOption; // 0x48e
+	bool m_bStatic; // 0x48f
+	bool m_bNoOffscreen; // 0x490
+	bool m_bForceCaption; // 0x491
+	int32_t m_iInstanceType; // 0x494
+	bool m_bSuppressRest; // 0x498
+	CUtlSymbolLarge m_iszBinding; // 0x4a0
+	bool m_bAllowNoDrawTarget; // 0x4a8
+	bool m_bAutoStart; // 0x4a9
+	bool m_bLocalPlayerOnly; // 0x4aa
+};
+
+// Aligment: 9
+// Size: 1152
+class CEnvInstructorVRHint : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszName; // 0x440
+	CUtlSymbolLarge m_iszHintTargetEntity; // 0x448
+	int32_t m_iTimeout; // 0x450
+	CUtlSymbolLarge m_iszCaption; // 0x458
+	CUtlSymbolLarge m_iszStartSound; // 0x460
+	int32_t m_iLayoutFileType; // 0x468
+	CUtlSymbolLarge m_iszCustomLayoutFile; // 0x470
+	int32_t m_iAttachType; // 0x478
+	float m_flHeightOffset; // 0x47c
+};
+
+// Aligment: 3
+// Size: 1112
+class CInstructorEventEntity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszName; // 0x440
+	CUtlSymbolLarge m_iszHintTargetEntity; // 0x448
+	CHandle< CBasePlayer > m_hTargetPlayer; // 0x450
+};
+
+// Aligment: 5
+// Size: 1224
+class CEnvScreenOverlay : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge[10] m_iszOverlayNames; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "11"
+	// MNetworkMinValue "-1"
+	// MNetworkMaxValue "63"
+	float32[10] m_flOverlayTimes; // 0x490
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x4b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int32_t m_iDesiredOverlay; // 0x4bc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsActive; // 0x4c0
+};
+
+// Aligment: 2
+// Size: 1096
+class CEnvScreenEffect : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDuration; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	ScreenEffectType_t m_nType; // 0x444
+};
+
+// Aligment: 0
+// Size: 1088
 class CTextureToggle : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -3578,842 +8195,1596 @@ public:
 };
 
 // Aligment: 2
-// Size: 1224
+// Size: 1096
 class CEnvZoom : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flSpeed; // 0x4c0
-	int32_t m_nFOV; // 0x4c4
+	float m_flSpeed; // 0x440
+	int32_t m_nFOV; // 0x444
 };
 
-// Aligment: 5
-// Size: 1272
-class CEnvSpark : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 4
+// Size: 1144
+class CEnvFade : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flDelay; // 0x4c0
-	int32_t m_nMagnitude; // 0x4c4
-	int32_t m_nTrailLength; // 0x4c8
-	int32_t m_nType; // 0x4cc
-	CEntityIOOutput m_OnSpark; // 0x4d0
-};
-
-// Aligment: 1
-// Size: 1312
-class CFilterName : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iFilterName; // 0x518
-};
-
-// Aligment: 1
-// Size: 1312
-class CFilterModel : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iFilterModel; // 0x518
-};
-
-// Aligment: 1
-// Size: 1312
-class CFilterContext : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iFilterContext; // 0x518
-};
-
-// Aligment: 1
-// Size: 1312
-class CFilterMassGreater : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	float m_fFilterMass; // 0x518
-};
-
-// Aligment: 1
-// Size: 1312
-class FilterDamageType : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	int32_t m_iDamageType; // 0x518
+	// MNetworkEnable
+	// MNetworkEnable
+	Color m_fadeColor; // 0x440
+	float m_Duration; // 0x444
+	float m_HoldDuration; // 0x448
+	CEntityIOOutput m_OnBeginFade; // 0x450
 };
 
 // Aligment: 3
-// Size: 1320
-class FilterHealth : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1136
+class CCredits : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bAdrenalineActive; // 0x518
-	int32_t m_iHealthMin; // 0x51c
-	int32_t m_iHealthMax; // 0x520
-};
-
-// Aligment: 5
-// Size: 1336
-class CFilterEnemy : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iszEnemyName; // 0x518
-	float m_flRadius; // 0x520
-	float m_flOuterRadius; // 0x524
-	int32_t m_nMaxSquadmatesPerEnemy; // 0x528
-	CUtlSymbolLarge m_iszPlayerName; // 0x530
-};
-
-// Aligment: 5
-// Size: 1296
-class CLogicGameEventListener : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CEntityIOOutput m_OnEventFired; // 0x4d0
-	CUtlSymbolLarge m_iszGameEventName; // 0x4f8
-	CUtlSymbolLarge m_iszGameEventItem; // 0x500
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x508
-	bool m_bStartEnabled; // 0x509
-};
-
-// Aligment: 9
-// Size: 1264
-class CLogicMeasureMovement : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_strMeasureTarget; // 0x4c0
-	CUtlSymbolLarge m_strMeasureReference; // 0x4c8
-	CUtlSymbolLarge m_strTargetReference; // 0x4d0
-	CHandle< CBaseEntity > m_hMeasureTarget; // 0x4d8
-	CHandle< CBaseEntity > m_hMeasureReference; // 0x4dc
-	CHandle< CBaseEntity > m_hTarget; // 0x4e0
-	CHandle< CBaseEntity > m_hTargetReference; // 0x4e4
-	float m_flScale; // 0x4e8
-	int32_t m_nMeasureType; // 0x4ec
-};
-
-// Aligment: 2
-// Size: 1232
-class CLogicNavigation : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	bool m_isOn; // 0x4c8
-	navproperties_t m_navProperty; // 0x4cc
-};
-
-// Aligment: 11
-// Size: 1624
-class CLogicAuto : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CEntityIOOutput m_OnMapSpawn; // 0x4c0
-	CEntityIOOutput m_OnDemoMapSpawn; // 0x4e8
-	CEntityIOOutput m_OnNewGame; // 0x510
-	CEntityIOOutput m_OnLoadGame; // 0x538
-	CEntityIOOutput m_OnMapTransition; // 0x560
-	CEntityIOOutput m_OnBackgroundMap; // 0x588
-	CEntityIOOutput m_OnMultiNewMap; // 0x5b0
-	CEntityIOOutput m_OnMultiNewRound; // 0x5d8
-	CEntityIOOutput m_OnVREnabled; // 0x600
-	CEntityIOOutput m_OnVRNotEnabled; // 0x628
-	CUtlSymbolLarge m_globalstate; // 0x650
+	CEntityIOOutput m_OnCreditsDone; // 0x440
+	bool m_bRolledOutroCredits; // 0x468
+	float m_flLogoLength; // 0x46c
 };
 
 // Aligment: 10
-// Size: 1368
-class CTimerEntity : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1168
+class CEnvShake : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnTimer; // 0x4c0
-	CEntityIOOutput m_OnTimerHigh; // 0x4e8
-	CEntityIOOutput m_OnTimerLow; // 0x510
-	int32_t m_iDisabled; // 0x538
-	float m_flInitialDelay; // 0x53c
-	float m_flRefireTime; // 0x540
-	bool m_bUpDownState; // 0x544
-	int32_t m_iUseRandomTime; // 0x548
-	float m_flLowerRandomBound; // 0x54c
-	float m_flUpperRandomBound; // 0x550
+	CUtlSymbolLarge m_limitToEntity; // 0x440
+	float m_Amplitude; // 0x448
+	float m_Frequency; // 0x44c
+	float m_Duration; // 0x450
+	float m_Radius; // 0x454
+	float m_stopTime; // 0x458
+	float m_nextShake; // 0x45c
+	float m_currentAmp; // 0x460
+	Vector m_maxForce; // 0x464
+	CPhysicsShake m_shakeCallback; // 0x478
 };
 
 // Aligment: 4
-// Size: 1272
-class CLogicLineToEntity : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1104
+class CEnvTilt : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityOutputTemplate< Vector > m_Line; // 0x4c0
-	CUtlSymbolLarge m_SourceName; // 0x4e8
-	CHandle< CBaseEntity > m_StartEntity; // 0x4f0
-	CHandle< CBaseEntity > m_EndEntity; // 0x4f4
-};
-
-// Aligment: 11
-// Size: 1440
-class CMathRemap : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	float m_flInMin; // 0x4c0
-	float m_flInMax; // 0x4c4
-	float m_flOut1; // 0x4c8
-	float m_flOut2; // 0x4cc
-	float m_flOldInValue; // 0x4d0
-	bool m_bEnabled; // 0x4d4
-	CEntityOutputTemplate< float32 > m_OutValue; // 0x4d8
-	CEntityIOOutput m_OnRoseAboveMin; // 0x500
-	CEntityIOOutput m_OnRoseAboveMax; // 0x528
-	CEntityIOOutput m_OnFellBelowMin; // 0x550
-	CEntityIOOutput m_OnFellBelowMax; // 0x578
+	float m_Duration; // 0x440
+	float m_Radius; // 0x444
+	float m_TiltTime; // 0x448
+	float m_stopTime; // 0x44c
 };
 
 // Aligment: 5
-// Size: 1272
-class CMathColorBlend : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1144
+class CEnvSpark : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flInMin; // 0x4c0
-	float m_flInMax; // 0x4c4
-	Color m_OutColor1; // 0x4c8
-	Color m_OutColor2; // 0x4cc
-	CEntityOutputTemplate< Color > m_OutValue; // 0x4d0
+	float m_flDelay; // 0x440
+	int32_t m_nMagnitude; // 0x444
+	int32_t m_nTrailLength; // 0x448
+	int32_t m_nType; // 0x44c
+	CEntityIOOutput m_OnSpark; // 0x450
 };
 
-// Aligment: 5
-// Size: 1280
-class CEnvGlobal : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 0
+// Size: 1088
+class CShower : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityOutputTemplate< int32 > m_outCounter; // 0x4c0
-	CUtlSymbolLarge m_globalstate; // 0x4e8
-	int32_t m_triggermode; // 0x4f0
-	int32_t m_initialstate; // 0x4f4
-	int32_t m_counter; // 0x4f8
+// <no members described>
 };
 
-// Aligment: 5
-// Size: 1528
-class CMultiSource : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 12
+// Size: 1672
+class CEnvExplosion : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CHandle< CBaseEntity >[32] m_rgEntities; // 0x4c0
-	int32[32] m_rgTriggered; // 0x540
-	CEntityIOOutput m_OnTrigger; // 0x5c0
-	int32_t m_iTotal; // 0x5e8
-	CUtlSymbolLarge m_globalstate; // 0x5f0
-};
-
-// Aligment: 11
-// Size: 1472
-class CMathCounter : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	float m_flMin; // 0x4c0
-	float m_flMax; // 0x4c4
-	bool m_bHitMin; // 0x4c8
-	bool m_bHitMax; // 0x4c9
-	bool m_bDisabled; // 0x4ca
-	CEntityOutputTemplate< float32 > m_OutValue; // 0x4d0
-	CEntityOutputTemplate< float32 > m_OnGetValue; // 0x4f8
-	CEntityIOOutput m_OnHitMin; // 0x520
-	CEntityIOOutput m_OnHitMax; // 0x548
-	CEntityIOOutput m_OnChangedFromMin; // 0x570
-	CEntityIOOutput m_OnChangedFromMax; // 0x598
-};
-
-// Aligment: 6
-// Size: 2048
-class CLogicCase : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge[16] m_nCase; // 0x4c0
-	int32_t m_nShuffleCases; // 0x540
-	int32_t m_nLastShuffleCase; // 0x544
-	uint8[16] m_uchShuffleCaseMap; // 0x548
-	CEntityIOOutput[16] m_OnCase; // 0x558
-	CEntityOutputTemplate< CVariantBase< CVariantDefaultAllocator > > m_OnDefault; // 0x7d8
-};
-
-// Aligment: 6
-// Size: 1384
-class CLogicCompare : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	float m_flInValue; // 0x4c0
-	float m_flCompareValue; // 0x4c4
-	CEntityOutputTemplate< float32 > m_OnLessThan; // 0x4c8
-	CEntityOutputTemplate< float32 > m_OnEqualTo; // 0x4f0
-	CEntityOutputTemplate< float32 > m_OnNotEqualTo; // 0x518
-	CEntityOutputTemplate< float32 > m_OnGreaterThan; // 0x540
-};
-
-// Aligment: 3
-// Size: 1232
-class CLogicAutosave : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	bool m_bForceNewLevelUnit; // 0x4c0
-	int32_t m_minHitPoints; // 0x4c4
-	int32_t m_minHitPointsToCommit; // 0x4c8
-};
-
-// Aligment: 4
-// Size: 1248
-class CLogicActiveAutosave : public CLogicAutosave, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	int32_t m_TriggerHitPoints; // 0x4d0
-	float m_flTimeToTrigger; // 0x4d4
-	float m_flStartTime; // 0x4d8
-	float m_flDangerousTime; // 0x4dc
-};
-
-// Aligment: 6
-// Size: 1240
-class CLogicDistanceAutosave : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge m_iszTargetEntity; // 0x4c0
-	float m_flDistanceToPlayer; // 0x4c8
-	bool m_bForceNewLevelUnit; // 0x4cc
-	bool m_bCheckCough; // 0x4cd
-	bool m_bThinkDangerous; // 0x4ce
-	float m_flDangerousTime; // 0x4d0
-};
-
-// Aligment: 6
-// Size: 1496
-class CLogicBranchList : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CUtlSymbolLarge[16] m_nLogicBranchNames; // 0x4c0
-	CUtlVector< CHandle< CBaseEntity > > m_LogicBranchList; // 0x540
-	CLogicBranchList::LogicBranchListenerLastState_t m_eLastState; // 0x558
-	CEntityIOOutput m_OnAllTrue; // 0x560
-	CEntityIOOutput m_OnAllFalse; // 0x588
-	CEntityIOOutput m_OnMixed; // 0x5b0
+	int32_t m_iMagnitude; // 0x638
+	int32_t m_iRadiusOverride; // 0x63c
+	int32_t m_spriteScale; // 0x640
+	float m_flDamageForce; // 0x644
+	CHandle< CBaseEntity > m_hInflictor; // 0x648
+	int32_t m_iCustomDamageType; // 0x64c
+	CUtlSymbolLarge m_iszExplosionType; // 0x658
+	CUtlSymbolLarge m_iszCustomEffectName; // 0x660
+	CUtlSymbolLarge m_iszCustomSoundName; // 0x668
+	int32_t m_iClassIgnore; // 0x670
+	CUtlSymbolLarge m_iszEntityIgnoreName; // 0x678
+	CHandle< CBaseEntity > m_hEntityIgnore; // 0x680
 };
 
 // Aligment: 1
-// Size: 1224
-class CLogicGameEvent : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1184
+class CFilterName : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszEventName; // 0x4c0
+	CUtlSymbolLarge m_iFilterName; // 0x498
 };
 
-// Aligment: 5
-// Size: 1240
-class CMessageEntity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1184
+class CFilterModel : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_radius; // 0x4c0
-	CUtlSymbolLarge m_messageText; // 0x4c8
-	bool m_drawText; // 0x4d0
-	bool m_bDeveloperOnly; // 0x4d1
-	bool m_bEnabled; // 0x4d2
+	CUtlSymbolLarge m_iFilterModel; // 0x498
 };
 
-// Aligment: 5
-// Size: 1888
-class CTriggerBrush : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1184
+class CFilterContext : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnStartTouch; // 0x6e0
-	CEntityIOOutput m_OnEndTouch; // 0x708
-	CEntityIOOutput m_OnUse; // 0x730
-	int32_t m_iInputFilter; // 0x758
-	int32_t m_iDontMessageParent; // 0x75c
+	CUtlSymbolLarge m_iFilterContext; // 0x498
 };
 
-// Aligment: 8
-// Size: 1296
-class CPathKeyFrame : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1184
+class FilterTeam : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_Origin; // 0x4c0
-	QAngle m_Angles; // 0x4cc
-	Quaternion m_qAngle; // 0x4d8
-	CUtlSymbolLarge m_iNextKey; // 0x4e8
-	float m_flNextTime; // 0x4f0
-	CPathKeyFrame* m_pNextKey; // 0x4f8
-	CPathKeyFrame* m_pPrevKey; // 0x500
-	float m_flSpeed; // 0x508
+	int32_t m_iFilterTeam; // 0x498
 };
 
-// Aligment: 11
-// Size: 1360
-class CBaseMoveBehavior : public CPathKeyFrame, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1184
+class CFilterMassGreater : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_iPositionInterpolator; // 0x510
-	int32_t m_iRotationInterpolator; // 0x514
-	float m_flAnimStartTime; // 0x518
-	float m_flAnimEndTime; // 0x51c
-	float m_flAverageSpeedAcrossFrame; // 0x520
-	CPathKeyFrame* m_pCurrentKeyFrame; // 0x528
-	CPathKeyFrame* m_pTargetKeyFrame; // 0x530
-	CPathKeyFrame* m_pPreKeyFrame; // 0x538
-	CPathKeyFrame* m_pPostKeyFrame; // 0x540
-	float m_flTimeIntoFrame; // 0x548
-	int32_t m_iDirection; // 0x54c
+	float m_fFilterMass; // 0x498
 };
 
-// Aligment: 7
-// Size: 1296
-class CPointEntityFinder : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1184
+class FilterDamageType : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CHandle< CBaseEntity > m_hEntity; // 0x4c0
-	CUtlSymbolLarge m_iFilterName; // 0x4c8
-	CHandle< CBaseFilter > m_hFilter; // 0x4d0
-	CUtlSymbolLarge m_iRefName; // 0x4d8
-	CHandle< CBaseEntity > m_hReference; // 0x4e0
-	EntFinderMethod_t m_FindMethod; // 0x4e4
-	CEntityIOOutput m_OnFoundEntity; // 0x4e8
+	int32_t m_iDamageType; // 0x498
 };
 
 // Aligment: 3
+// Size: 1192
+class FilterHealth : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bAdrenalineActive; // 0x498
+	int32_t m_iHealthMin; // 0x49c
+	int32_t m_iHealthMax; // 0x4a0
+};
+
+// Aligment: 5
+// Size: 1208
+class CFilterEnemy : public CBaseFilter, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszEnemyName; // 0x498
+	float m_flRadius; // 0x4a0
+	float m_flOuterRadius; // 0x4a4
+	int32_t m_nMaxSquadmatesPerEnemy; // 0x4a8
+	CUtlSymbolLarge m_iszPlayerName; // 0x4b0
+};
+
+// Aligment: 2
+// Size: 1600
+class CFunc_LOD : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nDisappearMinDist; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nDisappearMaxDist; // 0x63c
+};
+
+// Aligment: 5
+// Size: 1112
+class CFuncTimescale : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flDesiredTimescale; // 0x440
+	float m_flAcceleration; // 0x444
+	float m_flMinBlendRate; // 0x448
+	float m_flBlendDeltaMultiplier; // 0x44c
+	bool m_isStarted; // 0x450
+};
+
+// Aligment: 23
+// Size: 1832
+class CGameUI : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flFieldOfView; // 0x440
+	CHandle< CBaseCombatWeapon > m_hSaveWeapon; // 0x444
+	CEntityIOOutput m_playerOn; // 0x448
+	CEntityIOOutput m_playerOff; // 0x470
+	CEntityIOOutput m_pressedMoveLeft; // 0x498
+	CEntityIOOutput m_pressedMoveRight; // 0x4c0
+	CEntityIOOutput m_pressedForward; // 0x4e8
+	CEntityIOOutput m_pressedBack; // 0x510
+	CEntityIOOutput m_pressedAttack; // 0x538
+	CEntityIOOutput m_pressedAttack2; // 0x560
+	CEntityIOOutput m_unpressedMoveLeft; // 0x588
+	CEntityIOOutput m_unpressedMoveRight; // 0x5b0
+	CEntityIOOutput m_unpressedForward; // 0x5d8
+	CEntityIOOutput m_unpressedBack; // 0x600
+	CEntityIOOutput m_unpressedAttack; // 0x628
+	CEntityIOOutput m_unpressedAttack2; // 0x650
+	CEntityOutputTemplate< float32 > m_xaxis; // 0x678
+	CEntityOutputTemplate< float32 > m_yaxis; // 0x6a0
+	CEntityOutputTemplate< float32 > m_attackaxis; // 0x6c8
+	CEntityOutputTemplate< float32 > m_attack2axis; // 0x6f0
+	bool m_bForceUpdate; // 0x718
+	int32_t m_nLastButtonState; // 0x71c
+	CHandle< CBasePlayer > m_player; // 0x720
+};
+
+// Aligment: 2
+// Size: 1104
+class CPointGamestatsCounter : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_strStatisticName; // 0x440
+	bool m_bDisabled; // 0x448
+};
+
+// Aligment: 5
+// Size: 1144
+class CGameWeaponManager : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszWeaponName; // 0x440
+	int32_t m_iMaxPieces; // 0x450
+	float m_flAmmoMod; // 0x454
+	bool m_bExpectingWeapon; // 0x458
+	CUtlVector< CHandle< CBaseEntity > > m_ManagedNonWeapons; // 0x460
+};
+
+// Aligment: 1
+// Size: 1096
+class CInfoOverlayAccessor : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_iOverlayID; // 0x440
+};
+
+// Aligment: 0
+// Size: 1088
+class CInfoIntermission : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 7
+// Size: 1624
+class CLightGlow : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nHorizontalSize; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nVerticalSize; // 0x63c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nMinDist; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nMaxDist; // 0x644
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "16"
+	uint32_t m_nOuterMaxDist; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "6"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "64"
+	// MNetworkEncodeFlags
+	float m_flGlowProxySize; // 0x64c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "100"
+	float m_flHDRColorScale; // 0x650
+};
+
+// Aligment: 0
+// Size: 1088
+class CPointEntityAlias_water_lod_control : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 9
+// Size: 1136
+class CLogicMeasureMovement : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_strMeasureTarget; // 0x440
+	CUtlSymbolLarge m_strMeasureReference; // 0x448
+	CUtlSymbolLarge m_strTargetReference; // 0x450
+	CHandle< CBaseEntity > m_hMeasureTarget; // 0x458
+	CHandle< CBaseEntity > m_hMeasureReference; // 0x45c
+	CHandle< CBaseEntity > m_hTarget; // 0x460
+	CHandle< CBaseEntity > m_hTargetReference; // 0x464
+	float m_flScale; // 0x468
+	int32_t m_nMeasureType; // 0x46c
+};
+
+// Aligment: 2
+// Size: 1104
+class CLogicNavigation : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_isOn; // 0x448
+	navproperties_t m_navProperty; // 0x44c
+};
+
+// Aligment: 5
+// Size: 1256
+class CLogicPlayerProxy : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_PlayerHasAmmo; // 0x440
+	CEntityIOOutput m_PlayerHasNoAmmo; // 0x468
+	CEntityIOOutput m_PlayerDied; // 0x490
+	CEntityOutputTemplate< int32 > m_RequestedPlayerHealth; // 0x4b8
+	CHandle< CBaseEntity > m_hPlayer; // 0x4e0
+};
+
+// Aligment: 5
+// Size: 1168
+class CLogicGameEventListener : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnEventFired; // 0x450
+	CUtlSymbolLarge m_iszGameEventName; // 0x478
+	CUtlSymbolLarge m_iszGameEventItem; // 0x480
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x488
+	bool m_bStartEnabled; // 0x489
+};
+
+// Aligment: 11
+// Size: 1496
+class CLogicAuto : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnMapSpawn; // 0x440
+	CEntityIOOutput m_OnDemoMapSpawn; // 0x468
+	CEntityIOOutput m_OnNewGame; // 0x490
+	CEntityIOOutput m_OnLoadGame; // 0x4b8
+	CEntityIOOutput m_OnMapTransition; // 0x4e0
+	CEntityIOOutput m_OnBackgroundMap; // 0x508
+	CEntityIOOutput m_OnMultiNewMap; // 0x530
+	CEntityIOOutput m_OnMultiNewRound; // 0x558
+	CEntityIOOutput m_OnVREnabled; // 0x580
+	CEntityIOOutput m_OnVRNotEnabled; // 0x5a8
+	CUtlSymbolLarge m_globalstate; // 0x5d0
+};
+
+// Aligment: 0
+// Size: 1088
+class CLogicScript : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 10
+// Size: 1240
+class CTimerEntity : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnTimer; // 0x440
+	CEntityIOOutput m_OnTimerHigh; // 0x468
+	CEntityIOOutput m_OnTimerLow; // 0x490
+	int32_t m_iDisabled; // 0x4b8
+	float m_flInitialDelay; // 0x4bc
+	float m_flRefireTime; // 0x4c0
+	bool m_bUpDownState; // 0x4c4
+	int32_t m_iUseRandomTime; // 0x4c8
+	float m_flLowerRandomBound; // 0x4cc
+	float m_flUpperRandomBound; // 0x4d0
+};
+
+// Aligment: 4
+// Size: 1144
+class CLogicLineToEntity : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityOutputTemplate< Vector > m_Line; // 0x440
+	CUtlSymbolLarge m_SourceName; // 0x468
+	CHandle< CBaseEntity > m_StartEntity; // 0x470
+	CHandle< CBaseEntity > m_EndEntity; // 0x474
+};
+
+// Aligment: 11
+// Size: 1312
+class CMathRemap : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flInMin; // 0x440
+	float m_flInMax; // 0x444
+	float m_flOut1; // 0x448
+	float m_flOut2; // 0x44c
+	float m_flOldInValue; // 0x450
+	bool m_bEnabled; // 0x454
+	CEntityOutputTemplate< float32 > m_OutValue; // 0x458
+	CEntityIOOutput m_OnRoseAboveMin; // 0x480
+	CEntityIOOutput m_OnRoseAboveMax; // 0x4a8
+	CEntityIOOutput m_OnFellBelowMin; // 0x4d0
+	CEntityIOOutput m_OnFellBelowMax; // 0x4f8
+};
+
+// Aligment: 5
+// Size: 1144
+class CMathColorBlend : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flInMin; // 0x440
+	float m_flInMax; // 0x444
+	Color m_OutColor1; // 0x448
+	Color m_OutColor2; // 0x44c
+	CEntityOutputTemplate< Color > m_OutValue; // 0x450
+};
+
+// Aligment: 5
+// Size: 1152
+class CEnvGlobal : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityOutputTemplate< int32 > m_outCounter; // 0x440
+	CUtlSymbolLarge m_globalstate; // 0x468
+	int32_t m_triggermode; // 0x470
+	int32_t m_initialstate; // 0x474
+	int32_t m_counter; // 0x478
+};
+
+// Aligment: 5
+// Size: 1400
+class CMultiSource : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity >[32] m_rgEntities; // 0x440
+	int32[32] m_rgTriggered; // 0x4c0
+	CEntityIOOutput m_OnTrigger; // 0x540
+	int32_t m_iTotal; // 0x568
+	CUtlSymbolLarge m_globalstate; // 0x570
+};
+
+// Aligment: 11
+// Size: 1344
+class CMathCounter : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flMin; // 0x440
+	float m_flMax; // 0x444
+	bool m_bHitMin; // 0x448
+	bool m_bHitMax; // 0x449
+	bool m_bDisabled; // 0x44a
+	CEntityOutputTemplate< float32 > m_OutValue; // 0x450
+	CEntityOutputTemplate< float32 > m_OnGetValue; // 0x478
+	CEntityIOOutput m_OnHitMin; // 0x4a0
+	CEntityIOOutput m_OnHitMax; // 0x4c8
+	CEntityIOOutput m_OnChangedFromMin; // 0x4f0
+	CEntityIOOutput m_OnChangedFromMax; // 0x518
+};
+
+// Aligment: 6
+// Size: 1920
+class CLogicCase : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge[16] m_nCase; // 0x440
+	int32_t m_nShuffleCases; // 0x4c0
+	int32_t m_nLastShuffleCase; // 0x4c4
+	uint8[16] m_uchShuffleCaseMap; // 0x4c8
+	CEntityIOOutput[16] m_OnCase; // 0x4d8
+	CEntityOutputTemplate< CVariantBase< CVariantDefaultAllocator > > m_OnDefault; // 0x758
+};
+
+// Aligment: 6
+// Size: 1256
+class CLogicCompare : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flInValue; // 0x440
+	float m_flCompareValue; // 0x444
+	CEntityOutputTemplate< float32 > m_OnLessThan; // 0x448
+	CEntityOutputTemplate< float32 > m_OnEqualTo; // 0x470
+	CEntityOutputTemplate< float32 > m_OnNotEqualTo; // 0x498
+	CEntityOutputTemplate< float32 > m_OnGreaterThan; // 0x4c0
+};
+
+// Aligment: 3
+// Size: 1104
+class CLogicAutosave : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bForceNewLevelUnit; // 0x440
+	int32_t m_minHitPoints; // 0x444
+	int32_t m_minHitPointsToCommit; // 0x448
+};
+
+// Aligment: 4
+// Size: 1120
+class CLogicActiveAutosave : public CLogicAutosave, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_TriggerHitPoints; // 0x450
+	float m_flTimeToTrigger; // 0x454
+	float m_flStartTime; // 0x458
+	float m_flDangerousTime; // 0x45c
+};
+
+// Aligment: 6
+// Size: 1112
+class CLogicDistanceAutosave : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszTargetEntity; // 0x440
+	float m_flDistanceToPlayer; // 0x448
+	bool m_bForceNewLevelUnit; // 0x44c
+	bool m_bCheckCough; // 0x44d
+	bool m_bThinkDangerous; // 0x44e
+	float m_flDangerousTime; // 0x450
+};
+
+// Aligment: 4
+// Size: 1112
+class CLogicCollisionPair : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_nameAttach1; // 0x440
+	CUtlSymbolLarge m_nameAttach2; // 0x448
+	bool m_disabled; // 0x450
+	bool m_succeeded; // 0x451
+};
+
+// Aligment: 6
+// Size: 1368
+class CLogicBranchList : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge[16] m_nLogicBranchNames; // 0x440
+	CUtlVector< CHandle< CBaseEntity > > m_LogicBranchList; // 0x4c0
+	CLogicBranchList::LogicBranchListenerLastState_t m_eLastState; // 0x4d8
+	CEntityIOOutput m_OnAllTrue; // 0x4e0
+	CEntityIOOutput m_OnAllFalse; // 0x508
+	CEntityIOOutput m_OnMixed; // 0x530
+};
+
+// Aligment: 1
+// Size: 1096
+class CLogicGameEvent : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszEventName; // 0x440
+};
+
+// Aligment: 48
+// Size: 1920
+class CLogicNPCCounter : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnMinCountAll; // 0x440
+	CEntityIOOutput m_OnMaxCountAll; // 0x468
+	CEntityOutputTemplate< float32 > m_OnFactorAll; // 0x490
+	CEntityOutputTemplate< float32 > m_OnMinPlayerDistAll; // 0x4b8
+	CEntityIOOutput m_OnMinCount_1; // 0x4e0
+	CEntityIOOutput m_OnMaxCount_1; // 0x508
+	CEntityOutputTemplate< float32 > m_OnFactor_1; // 0x530
+	CEntityOutputTemplate< float32 > m_OnMinPlayerDist_1; // 0x558
+	CEntityIOOutput m_OnMinCount_2; // 0x580
+	CEntityIOOutput m_OnMaxCount_2; // 0x5a8
+	CEntityOutputTemplate< float32 > m_OnFactor_2; // 0x5d0
+	CEntityOutputTemplate< float32 > m_OnMinPlayerDist_2; // 0x5f8
+	CEntityIOOutput m_OnMinCount_3; // 0x620
+	CEntityIOOutput m_OnMaxCount_3; // 0x648
+	CEntityOutputTemplate< float32 > m_OnFactor_3; // 0x670
+	CEntityOutputTemplate< float32 > m_OnMinPlayerDist_3; // 0x698
+	CEntityHandle m_hSource; // 0x6c0
+	CUtlSymbolLarge m_iszSourceEntityName; // 0x6c8
+	float m_flDistanceMax; // 0x6d0
+	bool m_bDisabled; // 0x6d4
+	int32_t m_nMinCountAll; // 0x6d8
+	int32_t m_nMaxCountAll; // 0x6dc
+	int32_t m_nMinFactorAll; // 0x6e0
+	int32_t m_nMaxFactorAll; // 0x6e4
+	CUtlSymbolLarge m_iszNPCClassname_1; // 0x6f0
+	int32_t m_nNPCState_1; // 0x6f8
+	bool m_bInvertState_1; // 0x6fc
+	int32_t m_nMinCount_1; // 0x700
+	int32_t m_nMaxCount_1; // 0x704
+	int32_t m_nMinFactor_1; // 0x708
+	int32_t m_nMaxFactor_1; // 0x70c
+	float m_flDefaultDist_1; // 0x714
+	CUtlSymbolLarge m_iszNPCClassname_2; // 0x718
+	int32_t m_nNPCState_2; // 0x720
+	bool m_bInvertState_2; // 0x724
+	int32_t m_nMinCount_2; // 0x728
+	int32_t m_nMaxCount_2; // 0x72c
+	int32_t m_nMinFactor_2; // 0x730
+	int32_t m_nMaxFactor_2; // 0x734
+	float m_flDefaultDist_2; // 0x73c
+	CUtlSymbolLarge m_iszNPCClassname_3; // 0x740
+	int32_t m_nNPCState_3; // 0x748
+	bool m_bInvertState_3; // 0x74c
+	int32_t m_nMinCount_3; // 0x750
+	int32_t m_nMaxCount_3; // 0x754
+	int32_t m_nMinFactor_3; // 0x758
+	int32_t m_nMaxFactor_3; // 0x75c
+	float m_flDefaultDist_3; // 0x764
+};
+
+// Aligment: 4
+// Size: 1968
+class CLogicNPCCounterAABB : public CLogicNPCCounter, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vDistanceOuterMins; // 0x780
+	Vector m_vDistanceOuterMaxs; // 0x78c
+	Vector m_vOuterMins; // 0x798
+	Vector m_vOuterMaxs; // 0x7a4
+};
+
+// Aligment: 0
+// Size: 1968
+class CLogicNPCCounterOBB : public CLogicNPCCounterAABB, CLogicNPCCounter, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1144
+class CLogicAchievement : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x440
+	CUtlSymbolLarge m_iszAchievementEventID; // 0x448
+	CEntityIOOutput m_OnFired; // 0x450
+};
+
+// Aligment: 12
+// Size: 1896
+class CMaterialModifyControl : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialName; // 0x440
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialVar; // 0x53f
+	// MNetworkEnable
+	// MNetworkEnable
+	char[255] m_szMaterialVarValue; // 0x63e
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iFrameStart; // 0x740
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iFrameEnd; // 0x744
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bWrap; // 0x748
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFramerate; // 0x74c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bNewAnimCommandsSemaphore; // 0x750
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpStartValue; // 0x754
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpEndValue; // 0x758
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFloatLerpTransitionTime; // 0x75c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	MaterialModifyMode_t m_nModifyMode; // 0x760
+};
+
+// Aligment: 5
+// Size: 1112
+class CMessageEntity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_radius; // 0x440
+	CUtlSymbolLarge m_messageText; // 0x448
+	bool m_drawText; // 0x450
+	bool m_bDeveloperOnly; // 0x451
+	bool m_bEnabled; // 0x452
+};
+
+// Aligment: 5
+// Size: 1720
+class CTriggerBrush : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnStartTouch; // 0x638
+	CEntityIOOutput m_OnEndTouch; // 0x660
+	CEntityIOOutput m_OnUse; // 0x688
+	int32_t m_iInputFilter; // 0x6b0
+	int32_t m_iDontMessageParent; // 0x6b4
+};
+
+// Aligment: 8
+// Size: 1168
+class CPathKeyFrame : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_Origin; // 0x440
+	QAngle m_Angles; // 0x44c
+	Quaternion m_qAngle; // 0x458
+	CUtlSymbolLarge m_iNextKey; // 0x468
+	float m_flNextTime; // 0x470
+	CPathKeyFrame* m_pNextKey; // 0x478
+	CPathKeyFrame* m_pPrevKey; // 0x480
+	float m_flSpeed; // 0x488
+};
+
+// Aligment: 11
 // Size: 1232
+class CBaseMoveBehavior : public CPathKeyFrame, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iPositionInterpolator; // 0x490
+	int32_t m_iRotationInterpolator; // 0x494
+	float m_flAnimStartTime; // 0x498
+	float m_flAnimEndTime; // 0x49c
+	float m_flAverageSpeedAcrossFrame; // 0x4a0
+	CPathKeyFrame* m_pCurrentKeyFrame; // 0x4a8
+	CPathKeyFrame* m_pTargetKeyFrame; // 0x4b0
+	CPathKeyFrame* m_pPreKeyFrame; // 0x4b8
+	CPathKeyFrame* m_pPostKeyFrame; // 0x4c0
+	float m_flTimeIntoFrame; // 0x4c8
+	int32_t m_iDirection; // 0x4cc
+};
+
+// Aligment: 6
+// Size: 1184
+class CPhysForce : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_nameAttach; // 0x448
+	float m_force; // 0x450
+	float m_forceTime; // 0x454
+	CHandle< CBaseEntity > m_attachedObject; // 0x458
+	bool m_wasRestored; // 0x45c
+	CConstantForceController m_integrator; // 0x460
+};
+
+// Aligment: 1
+// Size: 1200
+class CPhysThruster : public CPhysForce, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_localOrigin; // 0x4a0
+};
+
+// Aligment: 1
+// Size: 1200
+class CPhysTorque : public CPhysForce, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_axis; // 0x4a0
+};
+
+// Aligment: 7
+// Size: 1168
+class CPhysMotor : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_nameAttach; // 0x440
+	CHandle< CBaseEntity > m_hAttachedObject; // 0x448
+	float m_spinUp; // 0x44c
+	float m_additionalAcceleration; // 0x450
+	float m_angularAcceleration; // 0x454
+	float m_lastTime; // 0x458
+	CMotorController m_motor; // 0x470
+};
+
+// Aligment: 7
+// Size: 1152
+class CKeepUpright : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_worldGoalAxis; // 0x448
+	Vector m_localTestAxis; // 0x454
+	CUtlSymbolLarge m_nameAttach; // 0x468
+	CHandle< CBaseEntity > m_attachedObject; // 0x470
+	float m_angularLimit; // 0x474
+	bool m_bActive; // 0x478
+	bool m_bDampAllRotation; // 0x479
+};
+
+// Aligment: 8
+// Size: 1176
+class CPhysConstraint : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_nameAttach1; // 0x448
+	CUtlSymbolLarge m_nameAttach2; // 0x450
+	CUtlSymbolLarge m_breakSound; // 0x458
+	float m_forceLimit; // 0x460
+	float m_torqueLimit; // 0x464
+	uint32_t m_teleportTick; // 0x468
+	float m_minTeleportDistance; // 0x46c
+	CEntityIOOutput m_OnBreak; // 0x470
+};
+
+// Aligment: 17
+// Size: 1584
+class CPhysHinge : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ConstraintSoundInfo m_soundInfo; // 0x4a0
+	CEntityIOOutput m_NotifyMinLimitReached; // 0x528
+	CEntityIOOutput m_NotifyMaxLimitReached; // 0x550
+	bool m_bAtMinLimit; // 0x578
+	bool m_bAtMaxLimit; // 0x579
+	constraint_hingeparams_t m_hinge; // 0x57c
+	float m_hingeFriction; // 0x5bc
+	float m_systemLoadScale; // 0x5c0
+	bool m_bIsAxisLocal; // 0x5c4
+	float m_flMinRotation; // 0x5c8
+	float m_flMaxRotation; // 0x5cc
+	float m_flInitialRotation; // 0x5d0
+	float m_flMotorFrequency; // 0x5d4
+	float m_flMotorDampingRatio; // 0x5d8
+	float m_flAngleSpeed; // 0x5dc
+	CEntityIOOutput m_OnStartMoving; // 0x5e0
+	CEntityIOOutput m_OnStopMoving; // 0x608
+};
+
+// Aligment: 0
+// Size: 1584
+class CPhysHingeAlias_phys_hinge_local : public CPhysHinge, CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1184
+class CPhysBallSocket : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flFriction; // 0x498
+};
+
+// Aligment: 10
+// Size: 1360
+class CPhysSlideConstraint : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_axisEnd; // 0x4a0
+	float m_slideFriction; // 0x4ac
+	float m_systemLoadScale; // 0x4b0
+	float m_initialOffset; // 0x4b4
+	bool m_bEnableLinearConstraint; // 0x4b8
+	bool m_bEnableAngularConstraint; // 0x4b9
+	float m_flMotorFrequency; // 0x4bc
+	float m_flMotorDampingRatio; // 0x4c0
+	bool m_bUseEntityPivot; // 0x4c4
+	ConstraintSoundInfo m_soundInfo; // 0x4c8
+};
+
+// Aligment: 6
+// Size: 1200
+class CPhysFixed : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flLinearFrequency; // 0x498
+	float m_flLinearDampingRatio; // 0x49c
+	float m_flAngularFrequency; // 0x4a0
+	float m_flAngularDampingRatio; // 0x4a4
+	bool m_bEnableLinearConstraint; // 0x4a8
+	bool m_bEnableAngularConstraint; // 0x4a9
+};
+
+// Aligment: 4
+// Size: 1224
+class CPhysPulley : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_position2; // 0x498
+	Vector[2] m_offset; // 0x4a4
+	float m_addLength; // 0x4bc
+	float m_gearRatio; // 0x4c0
+};
+
+// Aligment: 5
+// Size: 1224
+class CPhysLength : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector[2] m_offset; // 0x498
+	Vector m_vecAttach; // 0x4b0
+	float m_addLength; // 0x4bc
+	float m_minLength; // 0x4c0
+	float m_totalLength; // 0x4c4
+};
+
+// Aligment: 9
+// Size: 1216
+class CRagdollConstraint : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_xmin; // 0x498
+	float m_xmax; // 0x49c
+	float m_ymin; // 0x4a0
+	float m_ymax; // 0x4a4
+	float m_zmin; // 0x4a8
+	float m_zmax; // 0x4ac
+	float m_xfriction; // 0x4b0
+	float m_yfriction; // 0x4b4
+	float m_zfriction; // 0x4b8
+};
+
+// Aligment: 48
+// Size: 1472
+class CGenericConstraint : public CPhysConstraint, CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	JointMotion_t m_nLinearMotionX; // 0x498
+	JointMotion_t m_nLinearMotionY; // 0x49c
+	JointMotion_t m_nLinearMotionZ; // 0x4a0
+	float m_flLinearFrequencyX; // 0x4a4
+	float m_flLinearFrequencyY; // 0x4a8
+	float m_flLinearFrequencyZ; // 0x4ac
+	float m_flLinearDampingRatioX; // 0x4b0
+	float m_flLinearDampingRatioY; // 0x4b4
+	float m_flLinearDampingRatioZ; // 0x4b8
+	float m_flMaxLinearImpulseX; // 0x4bc
+	float m_flMaxLinearImpulseY; // 0x4c0
+	float m_flMaxLinearImpulseZ; // 0x4c4
+	float m_flBreakAfterTimeX; // 0x4c8
+	float m_flBreakAfterTimeY; // 0x4cc
+	float m_flBreakAfterTimeZ; // 0x4d0
+	float m_flBreakAfterTimeStartTimeX; // 0x4d4
+	float m_flBreakAfterTimeStartTimeY; // 0x4d8
+	float m_flBreakAfterTimeStartTimeZ; // 0x4dc
+	float m_flBreakAfterTimeThresholdX; // 0x4e0
+	float m_flBreakAfterTimeThresholdY; // 0x4e4
+	float m_flBreakAfterTimeThresholdZ; // 0x4e8
+	float m_flNotifyForceX; // 0x4ec
+	float m_flNotifyForceY; // 0x4f0
+	float m_flNotifyForceZ; // 0x4f4
+	float m_flNotifyForceMinTimeX; // 0x4f8
+	float m_flNotifyForceMinTimeY; // 0x4fc
+	float m_flNotifyForceMinTimeZ; // 0x500
+	float m_flNotifyForceLastTimeX; // 0x504
+	float m_flNotifyForceLastTimeY; // 0x508
+	float m_flNotifyForceLastTimeZ; // 0x50c
+	bool m_bAxisNotifiedX; // 0x510
+	bool m_bAxisNotifiedY; // 0x511
+	bool m_bAxisNotifiedZ; // 0x512
+	JointMotion_t m_nAngularMotionX; // 0x514
+	JointMotion_t m_nAngularMotionY; // 0x518
+	JointMotion_t m_nAngularMotionZ; // 0x51c
+	float m_flAngularFrequencyX; // 0x520
+	float m_flAngularFrequencyY; // 0x524
+	float m_flAngularFrequencyZ; // 0x528
+	float m_flAngularDampingRatioX; // 0x52c
+	float m_flAngularDampingRatioY; // 0x530
+	float m_flAngularDampingRatioZ; // 0x534
+	float m_flMaxAngularImpulseX; // 0x538
+	float m_flMaxAngularImpulseY; // 0x53c
+	float m_flMaxAngularImpulseZ; // 0x540
+	CEntityIOOutput m_NotifyForceReachedX; // 0x548
+	CEntityIOOutput m_NotifyForceReachedY; // 0x570
+	CEntityIOOutput m_NotifyForceReachedZ; // 0x598
+};
+
+// Aligment: 6
+// Size: 1120
+class CPhysicsEntitySolver : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hMovingEntity; // 0x440
+	CHandle< CBaseEntity > m_hPhysicsBlocker; // 0x444
+	float m_separationDuration; // 0x448
+	float m_cancelTime; // 0x44c
+	int32_t m_savedCollisionGroup; // 0x450
+	uint64_t m_savedInteractsAsMask; // 0x458
+};
+
+// Aligment: 8
+// Size: 1160
+class CPhysicsSpring : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flFrequency; // 0x448
+	float m_flDampingRatio; // 0x44c
+	float m_flRestLength; // 0x450
+	CUtlSymbolLarge m_nameAttachStart; // 0x458
+	CUtlSymbolLarge m_nameAttachEnd; // 0x460
+	Vector m_start; // 0x468
+	Vector m_end; // 0x474
+	uint32_t m_teleportTick; // 0x480
+};
+
+// Aligment: 0
+// Size: 1592
+class CSimplePhysicsBrush : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1144
+class CPhysConvert : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnConvert; // 0x440
+	CUtlSymbolLarge m_swapModel; // 0x468
+	float m_flMassOverride; // 0x470
+};
+
+// Aligment: 7
+// Size: 1128
+class CPointPush : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bEnabled; // 0x440
+	float m_flMagnitude; // 0x444
+	float m_flRadius; // 0x448
+	float m_flInnerRadius; // 0x44c
+	float m_flConeOfInfluence; // 0x450
+	CUtlSymbolLarge m_iszFilterName; // 0x458
+	CHandle< CBaseFilter > m_hFilter; // 0x460
+};
+
+// Aligment: 0
+// Size: 1088
+class CSprayCan : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1088
+class CStripWeapons : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1608
+class CRevertSaved : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_loadTime; // 0x638
+	float m_Duration; // 0x63c
+	float m_HoldTime; // 0x640
+};
+
+// Aligment: 0
+// Size: 1088
+class CMovementSpeedMod : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 16
+// Size: 1384
+class CPointAngularVelocitySensor : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hTargetEntity; // 0x440
+	float m_flThreshold; // 0x444
+	int32_t m_nLastCompareResult; // 0x448
+	int32_t m_nLastFireResult; // 0x44c
+	float m_flFireTime; // 0x450
+	float m_flFireInterval; // 0x454
+	float m_flLastAngVelocity; // 0x458
+	QAngle m_lastOrientation; // 0x45c
+	Vector m_vecAxis; // 0x468
+	bool m_bUseHelper; // 0x474
+	CEntityOutputTemplate< float32 > m_AngularVelocity; // 0x478
+	CEntityIOOutput m_OnLessThan; // 0x4a0
+	CEntityIOOutput m_OnLessThanOrEqualTo; // 0x4c8
+	CEntityIOOutput m_OnGreaterThan; // 0x4f0
+	CEntityIOOutput m_OnGreaterThanOrEqualTo; // 0x518
+	CEntityIOOutput m_OnEqualTo; // 0x540
+};
+
+// Aligment: 6
+// Size: 1160
+class CPointVelocitySensor : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hTargetEntity; // 0x440
+	Vector m_vecAxis; // 0x444
+	bool m_bEnabled; // 0x450
+	float m_fPrevVelocity; // 0x454
+	float m_flAvgInterval; // 0x458
+	CEntityOutputTemplate< float32 > m_Velocity; // 0x460
+};
+
+// Aligment: 7
+// Size: 1168
+class CPointEntityFinder : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hEntity; // 0x440
+	CUtlSymbolLarge m_iFilterName; // 0x448
+	CHandle< CBaseFilter > m_hFilter; // 0x450
+	CUtlSymbolLarge m_iRefName; // 0x458
+	CHandle< CBaseEntity > m_hReference; // 0x460
+	EntFinderMethod_t m_FindMethod; // 0x464
+	CEntityIOOutput m_OnFoundEntity; // 0x468
+};
+
+// Aligment: 6
+// Size: 1168
+class CPointPlayerMoveConstraint : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flRadius; // 0x440
+	float m_flConstraintWidth; // 0x444
+	float m_flSpeedFactor; // 0x448
+	float m_flRadiusSquared; // 0x44c
+	CUtlVector< CHandle< CBaseEntity > > m_hConstrainedPlayers; // 0x450
+	CEntityIOOutput m_OnConstraintBroken; // 0x468
+};
+
+// Aligment: 15
+// Size: 1752
+class CPointSpotlight : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bSpotlightOn; // 0x638
+	bool m_bEfficientSpotlight; // 0x639
+	Vector m_vSpotlightTargetPos; // 0x63c
+	Vector m_vSpotlightCurrentPos; // 0x648
+	Vector m_vSpotlightDir; // 0x654
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_nHaloSprite; // 0x660
+	CHandle< CBeam > m_hSpotlight; // 0x668
+	CHandle< CSpotlightEnd > m_hSpotlightTarget; // 0x66c
+	float m_flSpotlightMaxLength; // 0x670
+	float m_flSpotlightCurLength; // 0x674
+	float m_flSpotlightGoalWidth; // 0x678
+	float m_flHaloScale; // 0x67c
+	float m_flHDRColorScale; // 0x680
+	CEntityIOOutput m_OnOn; // 0x688
+	CEntityIOOutput m_OnOff; // 0x6b0
+};
+
+// Aligment: 0
+// Size: 1088
+class CEnableMotionFixup : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1088
+class CFuncPropRespawnZone : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1104
 class CPointHMDAnchor : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisabled; // 0x4c0
+	bool m_bDisabled; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEnableTime; // 0x4c4
+	float m_flEnableTime; // 0x444
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	int32_t m_nPlayerIndex; // 0x4c8
+	int32_t m_nPlayerIndex; // 0x448
 };
 
 // Aligment: 0
-// Size: 1232
+// Size: 1104
 class CPointHMDAnchorOverride : public CPointHMDAnchor, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 6
-// Size: 1296
-class CPointPlayerMoveConstraint : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 3
+// Size: 1104
+class CHapticRelay : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flRadius; // 0x4c0
-	float m_flConstraintWidth; // 0x4c4
-	float m_flSpeedFactor; // 0x4c8
-	float m_flRadiusSquared; // 0x4cc
-	CUtlVector< CHandle< CBaseEntity > > m_hConstrainedPlayers; // 0x4d0
-	CEntityIOOutput m_OnConstraintBroken; // 0x4e8
+	float m_flFrequency; // 0x440
+	float m_flAmplitude; // 0x444
+	float m_flDuration; // 0x448
 };
 
-// Aligment: 44
-// Size: 1720
+// Aligment: 45
+// Size: 1600
 class CPointValueRemapper : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisabled; // 0x4c0
+	bool m_bDisabled; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUpdateOnClient; // 0x4c1
+	bool m_bUpdateOnClient; // 0x441
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperInputType_t m_nInputType; // 0x4c4
-	CUtlSymbolLarge m_iszRemapLineStartName; // 0x4c8
-	CUtlSymbolLarge m_iszRemapLineEndName; // 0x4d0
+	ValueRemapperInputType_t m_nInputType; // 0x444
+	CUtlSymbolLarge m_iszRemapLineStartName; // 0x448
+	CUtlSymbolLarge m_iszRemapLineEndName; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< CBaseEntity > m_hRemapLineStart; // 0x4d8
+	CHandle< CBaseEntity > m_hRemapLineStart; // 0x458
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< CBaseEntity > m_hRemapLineEnd; // 0x4dc
+	CHandle< CBaseEntity > m_hRemapLineEnd; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flMaximumChangePerSecond; // 0x4e0
+	float m_flMaximumChangePerSecond; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flDisengageDistance; // 0x4e4
+	float m_flDisengageDistance; // 0x464
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flEngageDistance; // 0x4e8
+	float m_flEngageDistance; // 0x468
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bRequiresUseKey; // 0x4ec
+	bool m_bRequiresUseKey; // 0x46c
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperOutputType_t m_nOutputType; // 0x4f0
-	CUtlSymbolLarge m_iszOutputEntityName; // 0x4f8
-	CUtlSymbolLarge m_iszOutputEntity2Name; // 0x500
-	CUtlSymbolLarge m_iszOutputEntity3Name; // 0x508
-	CUtlSymbolLarge m_iszOutputEntity4Name; // 0x510
+	ValueRemapperOutputType_t m_nOutputType; // 0x470
+	CUtlSymbolLarge m_iszOutputEntityName; // 0x478
+	CUtlSymbolLarge m_iszOutputEntity2Name; // 0x480
+	CUtlSymbolLarge m_iszOutputEntity3Name; // 0x488
+	CUtlSymbolLarge m_iszOutputEntity4Name; // 0x490
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< CHandle< CBaseEntity > > m_hOutputEntities; // 0x518
+	CUtlVector< CHandle< CBaseEntity > > m_hOutputEntities; // 0x498
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperHapticsType_t m_nHapticsType; // 0x530
+	ValueRemapperHapticsType_t m_nHapticsType; // 0x4b0
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperMomentumType_t m_nMomentumType; // 0x534
+	ValueRemapperMomentumType_t m_nMomentumType; // 0x4b4
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flMomentumModifier; // 0x538
+	float m_flMomentumModifier; // 0x4b8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flSnapValue; // 0x53c
-	float m_flCurrentMomentum; // 0x540
+	float m_flSnapValue; // 0x4bc
+	float m_flCurrentMomentum; // 0x4c0
 	// MNetworkEnable
 	// MNetworkEnable
-	ValueRemapperRatchetType_t m_nRatchetType; // 0x544
-	float m_flRatchetOffset; // 0x548
+	ValueRemapperRatchetType_t m_nRatchetType; // 0x4c4
+	float m_flRatchetOffset; // 0x4c8
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flInputOffset; // 0x54c
-	bool m_bEngaged; // 0x550
-	bool m_bFirstUpdate; // 0x551
-	float m_flPreviousValue; // 0x554
-	float m_flPreviousUpdateTickTime; // 0x558
-	Vector m_vecPreviousTestPoint; // 0x55c
-	CHandle< CBasePlayer > m_hUsingPlayer; // 0x568
-	float m_flCustomOutputValue; // 0x56c
-	CUtlSymbolLarge m_iszSoundEngage; // 0x570
-	CUtlSymbolLarge m_iszSoundDisengage; // 0x578
-	CUtlSymbolLarge m_iszSoundReachedValueZero; // 0x580
-	CUtlSymbolLarge m_iszSoundReachedValueOne; // 0x588
-	CUtlSymbolLarge m_iszSoundMovingLoop; // 0x590
-	CEntityOutputTemplate< float32 > m_Position; // 0x5a0
-	CEntityOutputTemplate< float32 > m_PositionDelta; // 0x5c8
-	CEntityIOOutput m_OnReachedValueZero; // 0x5f0
-	CEntityIOOutput m_OnReachedValueOne; // 0x618
-	CEntityIOOutput m_OnReachedValueCustom; // 0x640
-	CEntityIOOutput m_OnEngage; // 0x668
-	CEntityIOOutput m_OnDisengage; // 0x690
-};
-
-// Aligment: 11
-// Size: 2368
-class CPointWorldText : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	// MNetworkEnable
-	// MNetworkEnable
-	char[512] m_messageText; // 0x6e0
-	// MNetworkEnable
-	// MNetworkEnable
-	char[64] m_FontName; // 0x8e0
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bEnabled; // 0x920
-	// MNetworkEnable
-	// MNetworkEnable
-	bool m_bFullbright; // 0x921
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flWorldUnitsPerPx; // 0x924
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flFontSize; // 0x928
-	// MNetworkEnable
-	// MNetworkEnable
-	float m_flDepthOffset; // 0x92c
-	// MNetworkEnable
-	// MNetworkEnable
-	Color m_Color; // 0x930
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextJustifyHorizontal_t m_nJustifyHorizontal; // 0x934
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextJustifyVertical_t m_nJustifyVertical; // 0x938
-	// MNetworkEnable
-	// MNetworkEnable
-	PointWorldTextReorientMode_t m_nReorientMode; // 0x93c
-};
-
-// Aligment: 16
-// Size: 1512
-class CPointAngularVelocitySensor : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CHandle< CBaseEntity > m_hTargetEntity; // 0x4c0
-	float m_flThreshold; // 0x4c4
-	int32_t m_nLastCompareResult; // 0x4c8
-	int32_t m_nLastFireResult; // 0x4cc
-	float m_flFireTime; // 0x4d0
-	float m_flFireInterval; // 0x4d4
-	float m_flLastAngVelocity; // 0x4d8
-	QAngle m_lastOrientation; // 0x4dc
-	Vector m_vecAxis; // 0x4e8
-	bool m_bUseHelper; // 0x4f4
-	CEntityOutputTemplate< float32 > m_AngularVelocity; // 0x4f8
-	CEntityIOOutput m_OnLessThan; // 0x520
-	CEntityIOOutput m_OnLessThanOrEqualTo; // 0x548
-	CEntityIOOutput m_OnGreaterThan; // 0x570
-	CEntityIOOutput m_OnGreaterThanOrEqualTo; // 0x598
-	CEntityIOOutput m_OnEqualTo; // 0x5c0
-};
-
-// Aligment: 6
-// Size: 1288
-class CPointVelocitySensor : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	CHandle< CBaseEntity > m_hTargetEntity; // 0x4c0
-	Vector m_vecAxis; // 0x4c4
-	bool m_bEnabled; // 0x4d0
-	float m_fPrevVelocity; // 0x4d4
-	float m_flAvgInterval; // 0x4d8
-	CEntityOutputTemplate< float32 > m_Velocity; // 0x4e0
+	float m_flInputOffset; // 0x4cc
+	eLiteralHandType m_nLiteralHand; // 0x4d0
+	bool m_bEngaged; // 0x4d4
+	bool m_bFirstUpdate; // 0x4d5
+	float m_flPreviousValue; // 0x4d8
+	float m_flPreviousUpdateTickTime; // 0x4dc
+	Vector m_vecPreviousTestPoint; // 0x4e0
+	CHandle< CBasePlayer > m_hUsingPlayer; // 0x4ec
+	float m_flCustomOutputValue; // 0x4f0
+	CUtlSymbolLarge m_iszSoundEngage; // 0x4f8
+	CUtlSymbolLarge m_iszSoundDisengage; // 0x500
+	CUtlSymbolLarge m_iszSoundReachedValueZero; // 0x508
+	CUtlSymbolLarge m_iszSoundReachedValueOne; // 0x510
+	CUtlSymbolLarge m_iszSoundMovingLoop; // 0x518
+	CEntityOutputTemplate< float32 > m_Position; // 0x528
+	CEntityOutputTemplate< float32 > m_PositionDelta; // 0x550
+	CEntityIOOutput m_OnReachedValueZero; // 0x578
+	CEntityIOOutput m_OnReachedValueOne; // 0x5a0
+	CEntityIOOutput m_OnReachedValueCustom; // 0x5c8
+	CEntityIOOutput m_OnEngage; // 0x5f0
+	CEntityIOOutput m_OnDisengage; // 0x618
 };
 
 // Aligment: 3
-// Size: 1432
+// Size: 1104
+class CRagdollManager : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "6"
+	int8_t m_iCurrentMaxRagdollCount; // 0x440
+	int32_t m_iMaxRagdollCount; // 0x444
+	bool m_bSaveImportant; // 0x448
+};
+
+// Aligment: 3
+// Size: 1304
 class CSceneListManager : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlVector< CHandle< CSceneListManager > > m_hListManagers; // 0x4c0
-	CUtlSymbolLarge[16] m_iszScenes; // 0x4d8
-	CHandle< CBaseEntity >[16] m_hScenes; // 0x558
+	CUtlVector< CHandle< CSceneListManager > > m_hListManagers; // 0x440
+	CUtlSymbolLarge[16] m_iszScenes; // 0x458
+	CHandle< CBaseEntity >[16] m_hScenes; // 0x4d8
 };
 
-// Aligment: 80
-// Size: 2400
+// Aligment: 81
+// Size: 2272
 class CSceneEntity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszSceneFile; // 0x4c8
-	CUtlSymbolLarge m_iszResumeSceneFile; // 0x4d0
-	CUtlSymbolLarge m_iszTarget1; // 0x4d8
-	CUtlSymbolLarge m_iszTarget2; // 0x4e0
-	CUtlSymbolLarge m_iszTarget3; // 0x4e8
-	CUtlSymbolLarge m_iszTarget4; // 0x4f0
-	CUtlSymbolLarge m_iszTarget5; // 0x4f8
-	CUtlSymbolLarge m_iszTarget6; // 0x500
-	CUtlSymbolLarge m_iszTarget7; // 0x508
-	CUtlSymbolLarge m_iszTarget8; // 0x510
-	CHandle< CBaseEntity > m_hTarget1; // 0x518
-	CHandle< CBaseEntity > m_hTarget2; // 0x51c
-	CHandle< CBaseEntity > m_hTarget3; // 0x520
-	CHandle< CBaseEntity > m_hTarget4; // 0x524
-	CHandle< CBaseEntity > m_hTarget5; // 0x528
-	CHandle< CBaseEntity > m_hTarget6; // 0x52c
-	CHandle< CBaseEntity > m_hTarget7; // 0x530
-	CHandle< CBaseEntity > m_hTarget8; // 0x534
+	CUtlSymbolLarge m_iszSceneFile; // 0x448
+	CUtlSymbolLarge m_iszResumeSceneFile; // 0x450
+	CUtlSymbolLarge m_iszTarget1; // 0x458
+	CUtlSymbolLarge m_iszTarget2; // 0x460
+	CUtlSymbolLarge m_iszTarget3; // 0x468
+	CUtlSymbolLarge m_iszTarget4; // 0x470
+	CUtlSymbolLarge m_iszTarget5; // 0x478
+	CUtlSymbolLarge m_iszTarget6; // 0x480
+	CUtlSymbolLarge m_iszTarget7; // 0x488
+	CUtlSymbolLarge m_iszTarget8; // 0x490
+	CHandle< CBaseEntity > m_hTarget1; // 0x498
+	CHandle< CBaseEntity > m_hTarget2; // 0x49c
+	CHandle< CBaseEntity > m_hTarget3; // 0x4a0
+	CHandle< CBaseEntity > m_hTarget4; // 0x4a4
+	CHandle< CBaseEntity > m_hTarget5; // 0x4a8
+	CHandle< CBaseEntity > m_hTarget6; // 0x4ac
+	CHandle< CBaseEntity > m_hTarget7; // 0x4b0
+	CHandle< CBaseEntity > m_hTarget8; // 0x4b4
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bIsPlayingBack; // 0x538
+	bool m_bIsPlayingBack; // 0x4b8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bPaused; // 0x539
+	bool m_bPaused; // 0x4b9
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bMultiplayer; // 0x53a
+	bool m_bMultiplayer; // 0x4ba
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAutogenerated; // 0x53b
+	bool m_bAutogenerated; // 0x4bb
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flForceClientTime; // 0x53c
-	float m_flCurrentTime; // 0x540
-	float m_flFrameTime; // 0x544
-	bool m_bCancelAtNextInterrupt; // 0x548
-	float m_fPitch; // 0x54c
-	bool m_bAutomated; // 0x550
-	int32_t m_nAutomatedAction; // 0x554
-	float m_flAutomationDelay; // 0x558
-	float m_flAutomationTime; // 0x55c
-	CHandle< CBaseEntity > m_hWaitingForThisResumeScene; // 0x560
-	bool m_bWaitingForResumeScene; // 0x564
-	bool m_bPausedViaInput; // 0x565
-	bool m_bPauseAtNextInterrupt; // 0x566
-	bool m_bWaitingForActor; // 0x567
-	bool m_bWaitingForInterrupt; // 0x568
-	bool m_bInterruptedActorsScenes; // 0x569
-	bool m_bBreakOnNonIdle; // 0x56a
+	float m_flForceClientTime; // 0x4bc
+	float m_flCurrentTime; // 0x4c0
+	float m_flFrameTime; // 0x4c4
+	bool m_bCancelAtNextInterrupt; // 0x4c8
+	float m_fPitch; // 0x4cc
+	bool m_bAutomated; // 0x4d0
+	int32_t m_nAutomatedAction; // 0x4d4
+	float m_flAutomationDelay; // 0x4d8
+	float m_flAutomationTime; // 0x4dc
+	CHandle< CBaseEntity > m_hWaitingForThisResumeScene; // 0x4e0
+	bool m_bWaitingForResumeScene; // 0x4e4
+	bool m_bPausedViaInput; // 0x4e5
+	bool m_bPauseAtNextInterrupt; // 0x4e6
+	bool m_bWaitingForActor; // 0x4e7
+	bool m_bWaitingForInterrupt; // 0x4e8
+	bool m_bInterruptedActorsScenes; // 0x4e9
+	bool m_bBreakOnNonIdle; // 0x4ea
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlVector< CHandle< CBaseFlex > > m_hActorList; // 0x570
-	CUtlVector< CHandle< CBaseEntity > > m_hRemoveActorList; // 0x588
-	int32_t m_nSceneFlushCounter; // 0x5a8
+	CUtlVector< CHandle< CBaseFlex > > m_hActorList; // 0x4f0
+	CUtlVector< CHandle< CBaseEntity > > m_hRemoveActorList; // 0x508
+	int32_t m_nSceneFlushCounter; // 0x528
 	// MNetworkEnable
 	// MNetworkEnable
-	uint16_t m_nSceneStringIndex; // 0x5ac
-	CEntityIOOutput m_OnStart; // 0x5b0
-	CEntityIOOutput m_OnCompletion; // 0x5d8
-	CEntityIOOutput m_OnCanceled; // 0x600
-	CEntityIOOutput m_OnPaused; // 0x628
-	CEntityIOOutput m_OnResumed; // 0x650
-	CEntityIOOutput m_OnTrigger1; // 0x678
-	CEntityIOOutput m_OnTrigger2; // 0x6a0
-	CEntityIOOutput m_OnTrigger3; // 0x6c8
-	CEntityIOOutput m_OnTrigger4; // 0x6f0
-	CEntityIOOutput m_OnTrigger5; // 0x718
-	CEntityIOOutput m_OnTrigger6; // 0x740
-	CEntityIOOutput m_OnTrigger7; // 0x768
-	CEntityIOOutput m_OnTrigger8; // 0x790
-	CEntityIOOutput m_OnTrigger9; // 0x7b8
-	CEntityIOOutput m_OnTrigger10; // 0x7e0
-	CEntityIOOutput m_OnTrigger11; // 0x808
-	CEntityIOOutput m_OnTrigger12; // 0x830
-	CEntityIOOutput m_OnTrigger13; // 0x858
-	CEntityIOOutput m_OnTrigger14; // 0x880
-	CEntityIOOutput m_OnTrigger15; // 0x8a8
-	CEntityIOOutput m_OnTrigger16; // 0x8d0
-	CHandle< CSceneEntity > m_hInterruptScene; // 0x8f8
-	int32_t m_nInterruptCount; // 0x8fc
-	bool m_bSceneMissing; // 0x900
-	bool m_bInterrupted; // 0x901
-	bool m_bCompletedEarly; // 0x902
-	bool m_bInterruptSceneFinished; // 0x903
-	bool m_bRestoring; // 0x904
-	bool m_bGenerated; // 0x905
-	CUtlVector< CHandle< CSceneEntity > > m_hNotifySceneCompletion; // 0x908
-	CUtlVector< CHandle< CSceneListManager > > m_hListManagers; // 0x920
-	CUtlSymbolLarge m_iszSoundName; // 0x938
-	CHandle< CBaseFlex > m_hActor; // 0x940
-	CHandle< CBaseEntity > m_hActivator; // 0x944
-	CHandle< CBaseEntity > m_hCamera; // 0x948
-	int32_t m_BusyActor; // 0x94c
-	SceneOnPlayerDeath_t m_iPlayerDeathBehavior; // 0x950
+	uint16_t m_nSceneStringIndex; // 0x52c
+	CEntityIOOutput m_OnStart; // 0x530
+	CEntityIOOutput m_OnCompletion; // 0x558
+	CEntityIOOutput m_OnCanceled; // 0x580
+	CEntityIOOutput m_OnPaused; // 0x5a8
+	CEntityIOOutput m_OnResumed; // 0x5d0
+	CEntityIOOutput m_OnTrigger1; // 0x5f8
+	CEntityIOOutput m_OnTrigger2; // 0x620
+	CEntityIOOutput m_OnTrigger3; // 0x648
+	CEntityIOOutput m_OnTrigger4; // 0x670
+	CEntityIOOutput m_OnTrigger5; // 0x698
+	CEntityIOOutput m_OnTrigger6; // 0x6c0
+	CEntityIOOutput m_OnTrigger7; // 0x6e8
+	CEntityIOOutput m_OnTrigger8; // 0x710
+	CEntityIOOutput m_OnTrigger9; // 0x738
+	CEntityIOOutput m_OnTrigger10; // 0x760
+	CEntityIOOutput m_OnTrigger11; // 0x788
+	CEntityIOOutput m_OnTrigger12; // 0x7b0
+	CEntityIOOutput m_OnTrigger13; // 0x7d8
+	CEntityIOOutput m_OnTrigger14; // 0x800
+	CEntityIOOutput m_OnTrigger15; // 0x828
+	CEntityIOOutput m_OnTrigger16; // 0x850
+	CHandle< CSceneEntity > m_hInterruptScene; // 0x878
+	int32_t m_nInterruptCount; // 0x87c
+	bool m_bSceneMissing; // 0x880
+	bool m_bInterrupted; // 0x881
+	bool m_bCompletedEarly; // 0x882
+	bool m_bInterruptSceneFinished; // 0x883
+	bool m_bRestoring; // 0x884
+	bool m_bGenerated; // 0x885
+	CUtlVector< CHandle< CSceneEntity > > m_hNotifySceneCompletion; // 0x888
+	CUtlVector< CHandle< CSceneListManager > > m_hListManagers; // 0x8a0
+	CUtlSymbolLarge m_iszSoundName; // 0x8b8
+	CHandle< CBaseFlex > m_hActor; // 0x8c0
+	CHandle< CBaseEntity > m_hActivator; // 0x8c4
+	CHandle< CBaseEntity > m_hCamera; // 0x8c8
+	int32_t m_BusyActor; // 0x8cc
+	SceneOnPlayerDeath_t m_iPlayerDeathBehavior; // 0x8d0
+	CRecipientFilter* m_pRecipientFilter; // 0x8d8
 public:
 	static int32_t &Get_s_nSceneFlushCounter() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CSceneEntity")->m_static_fiels[0]->m_instance); }
 };
 
 // Aligment: 5
-// Size: 1240
+// Size: 1112
 class CShadowControl : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	Vector m_shadowDirection; // 0x4c0
+	Vector m_shadowDirection; // 0x440
 	// MNetworkEnable
 	// MNetworkEnable
-	Color m_shadowColor; // 0x4cc
+	Color m_shadowColor; // 0x44c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flShadowMaxDist; // 0x4d0
+	float m_flShadowMaxDist; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDisableShadows; // 0x4d4
+	bool m_bDisableShadows; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnableLocalLightShadows; // 0x4d5
+	bool m_bEnableLocalLightShadows; // 0x455
 };
 
 // Aligment: 8
-// Size: 1288
+// Size: 1160
 class CSoundOpvarSetEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszStackName; // 0x4c8
-	CUtlSymbolLarge m_iszOperatorName; // 0x4d0
-	CUtlSymbolLarge m_iszOpvarName; // 0x4d8
-	int32_t m_nOpvarType; // 0x4e0
-	int32_t m_nOpvarIndex; // 0x4e4
-	float m_flOpvarValue; // 0x4e8
-	CUtlSymbolLarge m_OpvarValueString; // 0x4f0
-	bool m_bSetOnSpawn; // 0x4f8
+	CUtlSymbolLarge m_iszStackName; // 0x448
+	CUtlSymbolLarge m_iszOperatorName; // 0x450
+	CUtlSymbolLarge m_iszOpvarName; // 0x458
+	int32_t m_nOpvarType; // 0x460
+	int32_t m_nOpvarIndex; // 0x464
+	float m_flOpvarValue; // 0x468
+	CUtlSymbolLarge m_OpvarValueString; // 0x470
+	bool m_bSetOnSpawn; // 0x478
 };
 
-// Aligment: 28
-// Size: 1480
+// Aligment: 26
+// Size: 1328
 class CSoundOpvarSetPointEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_OnEnter; // 0x4c0
-	CEntityIOOutput m_OnExit; // 0x4e8
-	float m_flDistanceMin; // 0x510
-	float m_flDistanceMax; // 0x514
-	float m_flValSetOnDisable; // 0x518
-	bool m_bSetValueOnDisable; // 0x51c
-	bool m_bDisabled; // 0x51d
-	bool m_bAutoDisable; // 0x51e
-	CEntityHandle m_hSource; // 0x538
-	CUtlSymbolLarge m_iszSourceEntityName; // 0x548
-	float m_flDistanceMapMin; // 0x550
-	float m_flDistanceMapMax; // 0x554
-	float m_flOcclusionRadius; // 0x558
-	float m_flOcclusionMin; // 0x55c
-	float m_flOcclusionMax; // 0x560
-	int32_t m_nSimulationMode; // 0x564
-	int32_t m_nVisibilitySamples; // 0x568
-	Vector m_vDynamicProxyPoint; // 0x56c
-	float m_flDynamicMaximumOcclusion; // 0x578
-	CEntityHandle m_hDynamicEntity; // 0x57c
-	CUtlSymbolLarge m_iszDynamicEntityName; // 0x580
-	float m_flPathingDistanceNormFactor; // 0x588
-	Vector m_vPathingSourcePos; // 0x58c
-	Vector m_vPathingListenerPos; // 0x598
+	CEntityIOOutput m_OnEnter; // 0x440
+	CEntityIOOutput m_OnExit; // 0x468
+	float m_flDistanceMin; // 0x490
+	float m_flDistanceMax; // 0x494
+	float m_flValSetOnDisable; // 0x498
+	bool m_bSetValueOnDisable; // 0x49c
+	bool m_bDisabled; // 0x49d
+	bool m_bAutoDisable; // 0x49e
+	CEntityHandle m_hSource; // 0x4b8
+	CUtlSymbolLarge m_iszSourceEntityName; // 0x4c8
+	float m_flDistanceMapMin; // 0x4d0
+	float m_flDistanceMapMax; // 0x4d4
+	float m_flOcclusionRadius; // 0x4d8
+	float m_flOcclusionMin; // 0x4dc
+	float m_flOcclusionMax; // 0x4e0
+	int32_t m_nSimulationMode; // 0x4e4
+	int32_t m_nVisibilitySamples; // 0x4e8
+	Vector m_vDynamicProxyPoint; // 0x4ec
+	float m_flDynamicMaximumOcclusion; // 0x4f8
+	CEntityHandle m_hDynamicEntity; // 0x4fc
+	CUtlSymbolLarge m_iszDynamicEntityName; // 0x500
+	float m_flPathingDistanceNormFactor; // 0x508
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszStackName; // 0x5a8
+	CUtlSymbolLarge m_iszStackName; // 0x510
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszOperatorName; // 0x5b0
+	CUtlSymbolLarge m_iszOperatorName; // 0x518
 	// MNetworkEnable
 	// MNetworkEnable
-	CUtlSymbolLarge m_iszOpvarName; // 0x5b8
+	CUtlSymbolLarge m_iszOpvarName; // 0x520
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_iOpvarIndex; // 0x5c0
+	int32_t m_iOpvarIndex; // 0x528
 };
 
 // Aligment: 9
-// Size: 1584
+// Size: 1432
 class CSoundOpvarSetAABBEntity : public CSoundOpvarSetPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_vDistanceInnerMins; // 0x5c8
-	Vector m_vDistanceInnerMaxs; // 0x5d4
-	Vector m_vDistanceOuterMins; // 0x5e0
-	Vector m_vDistanceOuterMaxs; // 0x5ec
-	int32_t m_nAABBDirection; // 0x5f8
-	Vector m_vInnerMins; // 0x5fc
-	Vector m_vInnerMaxs; // 0x608
-	Vector m_vOuterMins; // 0x614
-	Vector m_vOuterMaxs; // 0x620
+	Vector m_vDistanceInnerMins; // 0x530
+	Vector m_vDistanceInnerMaxs; // 0x53c
+	Vector m_vDistanceOuterMins; // 0x548
+	Vector m_vDistanceOuterMaxs; // 0x554
+	int32_t m_nAABBDirection; // 0x560
+	Vector m_vInnerMins; // 0x564
+	Vector m_vInnerMaxs; // 0x570
+	Vector m_vOuterMins; // 0x57c
+	Vector m_vOuterMaxs; // 0x588
 };
 
 // Aligment: 0
-// Size: 1584
+// Size: 1432
 class CSoundOpvarSetOBBEntity : public CSoundOpvarSetAABBEntity, CSoundOpvarSetPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 6
+// Size: 1120
+class CAISound : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iSoundType; // 0x440
+	int32_t m_iSoundContext; // 0x444
+	int32_t m_iVolume; // 0x448
+	int32_t m_iSoundIndex; // 0x44c
+	float m_flDuration; // 0x450
+	CUtlSymbolLarge m_iszProxyEntityName; // 0x458
+};
+
 // Aligment: 1
-// Size: 1224
+// Size: 1096
 class CSoundStackSave : public CLogicalEntity, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszStackName; // 0x4c0
+	CUtlSymbolLarge m_iszStackName; // 0x440
 };
 
 // Aligment: 12
-// Size: 1392
+// Size: 1264
 class CSoundEventEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bStartOnSpawn; // 0x4c0
-	bool m_bToLocalPlayer; // 0x4c1
-	bool m_bStopOnNew; // 0x4c2
-	bool m_bSaveRestore; // 0x4c3
-	bool m_bSavedIsPlaying; // 0x4c4
-	float m_flSavedElapsedTime; // 0x4c8
-	CUtlSymbolLarge m_iszSoundName; // 0x4d0
-	CUtlSymbolLarge m_iszSourceEntityName; // 0x4d8
-	CUtlSymbolLarge m_iszAttachmentName; // 0x4e0
-	CEntityOutputTemplate< uint64 > m_onGUIDChanged; // 0x4e8
-	CEntityIOOutput m_onSoundFinished; // 0x510
-	CEntityHandle m_hSource; // 0x568
+	bool m_bStartOnSpawn; // 0x440
+	bool m_bToLocalPlayer; // 0x441
+	bool m_bStopOnNew; // 0x442
+	bool m_bSaveRestore; // 0x443
+	bool m_bSavedIsPlaying; // 0x444
+	float m_flSavedElapsedTime; // 0x448
+	CUtlSymbolLarge m_iszSoundName; // 0x450
+	CUtlSymbolLarge m_iszSourceEntityName; // 0x458
+	CUtlSymbolLarge m_iszAttachmentName; // 0x460
+	CEntityOutputTemplate< uint64 > m_onGUIDChanged; // 0x468
+	CEntityIOOutput m_onSoundFinished; // 0x490
+	CEntityHandle m_hSource; // 0x4e8
 };
 
 // Aligment: 0
-// Size: 1392
+// Size: 1264
 class CSoundEventEntityAlias_snd_event_point : public CSoundEventEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4421,25 +9792,89 @@ public:
 };
 
 // Aligment: 2
-// Size: 1416
+// Size: 1288
 class CSoundEventAABBEntity : public CSoundEventEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_vMins; // 0x570
-	Vector m_vMaxs; // 0x57c
+	Vector m_vMins; // 0x4f0
+	Vector m_vMaxs; // 0x4fc
 };
 
 // Aligment: 2
-// Size: 1240
+// Size: 1112
 class CSoundEventParameter : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_iszParamName; // 0x4c8
-	float m_flFloatValue; // 0x4d0
+	CUtlSymbolLarge m_iszParamName; // 0x448
+	float m_flFloatValue; // 0x450
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1232
+class CEnvSoundscapeProxyAlias_snd_soundscape_proxy : public CEnvSoundscapeProxy, CEnvSoundscape, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1224
+class CEnvSoundscapeAlias_snd_soundscape : public CEnvSoundscape, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1224
+class CEnvSoundscapeTriggerableAlias_snd_soundscape_triggerable : public CEnvSoundscapeTriggerable, CEnvSoundscape, CServerOnlyEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 11
+// Size: 2200
+class CPointWorldText : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[512] m_messageText; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	char[64] m_FontName; // 0x838
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x878
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bFullbright; // 0x879
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flWorldUnitsPerPx; // 0x87c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFontSize; // 0x880
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDepthOffset; // 0x884
+	// MNetworkEnable
+	// MNetworkEnable
+	Color m_Color; // 0x888
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextJustifyHorizontal_t m_nJustifyHorizontal; // 0x88c
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextJustifyVertical_t m_nJustifyVertical; // 0x890
+	// MNetworkEnable
+	// MNetworkEnable
+	PointWorldTextReorientMode_t m_nReorientMode; // 0x894
+};
+
+// Aligment: 0
+// Size: 1088
 class CNullEntity : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4447,54 +9882,127 @@ public:
 };
 
 // Aligment: 1
-// Size: 1224
+// Size: 1096
 class CBaseDMStart : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_Master; // 0x4c0
+	CUtlSymbolLarge m_Master; // 0x440
 };
 
 // Aligment: 0
-// Size: 1216
+// Size: 1088
 class CInfoLandmark : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 1
-// Size: 1776
-class CFuncNavObstruction : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 2
+// Size: 1608
+class CTriggerVolume : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bDisabled; // 0x6e8
-};
-
-// Aligment: 16
-// Size: 1888
-class CBaseToggle : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
-{
-public:
-	TOGGLE_STATE m_toggle_state; // 0x6e0
-	float m_flMoveDistance; // 0x6e4
-	float m_flWait; // 0x6e8
-	float m_flLip; // 0x6ec
-	bool m_bAlwaysFireBlockedOutputs; // 0x6f0
-	Vector m_vecPosition1; // 0x6f4
-	Vector m_vecPosition2; // 0x700
-	QAngle m_vecMoveAng; // 0x70c
-	QAngle m_vecAngle1; // 0x718
-	QAngle m_vecAngle2; // 0x724
-	float m_flHeight; // 0x730
-	CHandle< CBaseEntity > m_hActivator; // 0x734
-	Vector m_vecFinalDest; // 0x738
-	QAngle m_vecFinalAngle; // 0x744
-	int32_t m_movementType; // 0x750
-	CUtlSymbolLarge m_sMaster; // 0x758
+	CUtlSymbolLarge m_iFilterName; // 0x638
+	CHandle< CBaseFilter > m_hFilter; // 0x640
 };
 
 // Aligment: 0
-// Size: 1760
+// Size: 1088
+class CInfoTeleportDestination : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1096
+class CAI_ChangeTarget : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszNewTarget; // 0x440
+};
+
+// Aligment: 5
+// Size: 1120
+class CAI_ChangeHintGroup : public CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iSearchType; // 0x440
+	CUtlSymbolLarge m_strSearchName; // 0x448
+	CUtlSymbolLarge m_strNewHintGroup; // 0x450
+	float m_flRadius; // 0x458
+	bool m_bHintGroupNavLimiting; // 0x45c
+};
+
+// Aligment: 0
+// Size: 1088
+class CLogicProximity : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1608
+class CFuncNavObstruction : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x640
+};
+
+// Aligment: 10
+// Size: 1240
+class CAmbientGeneric : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_radius; // 0x440
+	float m_flMaxRadius; // 0x444
+	soundlevel_t m_iSoundLevel; // 0x448
+	dynpitchvol_t m_dpv; // 0x44c
+	bool m_fActive; // 0x4b0
+	bool m_fLooping; // 0x4b1
+	CUtlSymbolLarge m_iszSound; // 0x4b8
+	CUtlSymbolLarge m_sSourceEntName; // 0x4c0
+	CHandle< CBaseEntity > m_hSoundSource; // 0x4c8
+	CEntityIndex m_nSoundSourceEntIndex; // 0x4cc
+};
+
+// Aligment: 16
+// Size: 1720
+class CBaseToggle : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	TOGGLE_STATE m_toggle_state; // 0x638
+	float m_flMoveDistance; // 0x63c
+	float m_flWait; // 0x640
+	float m_flLip; // 0x644
+	bool m_bAlwaysFireBlockedOutputs; // 0x648
+	Vector m_vecPosition1; // 0x64c
+	Vector m_vecPosition2; // 0x658
+	QAngle m_vecMoveAng; // 0x664
+	QAngle m_vecAngle1; // 0x670
+	QAngle m_vecAngle2; // 0x67c
+	float m_flHeight; // 0x688
+	CHandle< CBaseEntity > m_hActivator; // 0x68c
+	Vector m_vecFinalDest; // 0x690
+	QAngle m_vecFinalAngle; // 0x69c
+	int32_t m_movementType; // 0x6a8
+	CUtlSymbolLarge m_sMaster; // 0x6b0
+};
+
+// Aligment: 4
+// Size: 1112
+class CRagdollMagnet : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x440
+	float m_radius; // 0x444
+	float m_force; // 0x448
+	Vector m_axis; // 0x44c
+};
+
+// Aligment: 0
+// Size: 1592
 class CEntityBlocker : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4502,333 +10010,3715 @@ public:
 };
 
 // Aligment: 10
-// Size: 1264
+// Size: 1640
+class CEntityDissolve : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeInStart; // 0x63c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeInLength; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutModelStart; // 0x644
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutModelLength; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutStart; // 0x64c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeOutLength; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	EntityDisolveType_t m_nDissolveType; // 0x654
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDissolverOrigin; // 0x658
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_nMagnitude; // 0x664
+};
+
+// Aligment: 10
+// Size: 1136
 class CEnvDOFController : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flFocusTargetRange; // 0x4c0
-	CUtlSymbolLarge m_strFocusTargetName; // 0x4c8
-	CHandle< CBaseEntity > m_hFocusTarget; // 0x4d0
+	float m_flFocusTargetRange; // 0x440
+	CUtlSymbolLarge m_strFocusTargetName; // 0x448
+	CHandle< CBaseEntity > m_hFocusTarget; // 0x450
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bDOFEnabled; // 0x4d4
+	bool m_bDOFEnabled; // 0x454
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNearBlurDepth; // 0x4d8
+	float m_flNearBlurDepth; // 0x458
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNearFocusDepth; // 0x4dc
+	float m_flNearFocusDepth; // 0x45c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFarFocusDepth; // 0x4e0
+	float m_flFarFocusDepth; // 0x460
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFarBlurDepth; // 0x4e4
+	float m_flFarBlurDepth; // 0x464
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNearBlurRadius; // 0x4e8
+	float m_flNearBlurRadius; // 0x468
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFarBlurRadius; // 0x4ec
+	float m_flFarBlurRadius; // 0x46c
 };
 
 // Aligment: 5
-// Size: 1312
+// Size: 1184
 class CEnvPlayerSurfaceTrigger : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_iTargetGameMaterial; // 0x4c0
-	int32_t m_iCurrentGameMaterial; // 0x4c4
-	bool m_bDisabled; // 0x4c8
-	CEntityIOOutput m_OnSurfaceChangedToTarget; // 0x4d0
-	CEntityIOOutput m_OnSurfaceChangedFromTarget; // 0x4f8
+	int32_t m_iTargetGameMaterial; // 0x440
+	int32_t m_iCurrentGameMaterial; // 0x444
+	bool m_bDisabled; // 0x448
+	CEntityIOOutput m_OnSurfaceChangedToTarget; // 0x450
+	CEntityIOOutput m_OnSurfaceChangedFromTarget; // 0x478
 };
 
 // Aligment: 30
-// Size: 2120
+// Size: 1952
 class CEnvProjectedTexture : public CModelPointEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< CBaseEntity > m_hTargetEntity; // 0x6e0
+	CHandle< CBaseEntity > m_hTargetEntity; // 0x638
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bState; // 0x6e4
+	bool m_bState; // 0x63c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAlwaysUpdate; // 0x6e5
+	bool m_bAlwaysUpdate; // 0x63d
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flLightFOV; // 0x6e8
+	float m_flLightFOV; // 0x640
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bEnableShadows; // 0x6ec
+	bool m_bEnableShadows; // 0x644
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bSimpleProjection; // 0x6ed
+	bool m_bSimpleProjection; // 0x645
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bLightOnlyTarget; // 0x6ee
+	bool m_bLightOnlyTarget; // 0x646
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bLightWorld; // 0x6ef
+	bool m_bLightWorld; // 0x647
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bCameraSpace; // 0x6f0
+	bool m_bCameraSpace; // 0x648
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flBrightnessScale; // 0x6f4
+	float m_flBrightnessScale; // 0x64c
 	// MNetworkEnable
 	// MNetworkEnable
-	Color m_LightColor; // 0x6f8
+	Color m_LightColor; // 0x650
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flIntensity; // 0x6fc
+	float m_flIntensity; // 0x654
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flLinearAttenuation; // 0x700
+	float m_flLinearAttenuation; // 0x658
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flQuadraticAttenuation; // 0x704
+	float m_flQuadraticAttenuation; // 0x65c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bVolumetric; // 0x708
+	bool m_bVolumetric; // 0x660
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flNoiseStrength; // 0x70c
+	float m_flNoiseStrength; // 0x664
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFlashlightTime; // 0x710
+	float m_flFlashlightTime; // 0x668
 	// MNetworkEnable
 	// MNetworkEnable
-	uint32_t m_nNumPlanes; // 0x714
+	uint32_t m_nNumPlanes; // 0x66c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flPlaneOffset; // 0x718
+	float m_flPlaneOffset; // 0x670
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flVolumetricIntensity; // 0x71c
+	float m_flVolumetricIntensity; // 0x674
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flColorTransitionTime; // 0x720
+	float m_flColorTransitionTime; // 0x678
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flAmbient; // 0x724
+	float m_flAmbient; // 0x67c
 	// MNetworkEnable
 	// MNetworkEnable
-	char[260] m_SpotlightTextureName; // 0x728
+	char[260] m_SpotlightTextureName; // 0x680
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nSpotlightTextureFrame; // 0x82c
+	int32_t m_nSpotlightTextureFrame; // 0x784
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "1"
-	uint32_t m_nShadowQuality; // 0x830
+	uint32_t m_nShadowQuality; // 0x788
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "16"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "500"
 	// MNetworkEncodeFlags
-	float m_flNearZ; // 0x834
+	float m_flNearZ; // 0x78c
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "18"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1500"
 	// MNetworkEncodeFlags
-	float m_flFarZ; // 0x838
+	float m_flFarZ; // 0x790
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flProjectionSize; // 0x83c
+	float m_flProjectionSize; // 0x794
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flRotation; // 0x840
+	float m_flRotation; // 0x798
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bFlipHorizontal; // 0x844
+	bool m_bFlipHorizontal; // 0x79c
+};
+
+// Aligment: 6
+// Size: 1160
+class CMessage : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszMessage; // 0x440
+	float m_MessageVolume; // 0x448
+	int32_t m_MessageAttenuation; // 0x44c
+	float m_Radius; // 0x450
+	CUtlSymbolLarge m_sNoise; // 0x458
+	CEntityIOOutput m_OnShowMessage; // 0x460
+};
+
+// Aligment: 17
+// Size: 1536
+class CEnvMicrophone : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x440
+	CHandle< CBaseEntity > m_hMeasureTarget; // 0x444
+	int32_t m_nSoundMask; // 0x448
+	float m_flSensitivity; // 0x44c
+	float m_flSmoothFactor; // 0x450
+	float m_flMaxRange; // 0x454
+	CUtlSymbolLarge m_iszSpeakerName; // 0x458
+	CHandle< CBaseEntity > m_hSpeaker; // 0x460
+	bool m_bAvoidFeedback; // 0x464
+	int32_t m_iSpeakerDSPPreset; // 0x468
+	CUtlSymbolLarge m_iszListenFilter; // 0x470
+	CHandle< CBaseFilter > m_hListenFilter; // 0x478
+	CEntityOutputTemplate< float32 > m_SoundLevel; // 0x480
+	CEntityIOOutput m_OnRoutedSound; // 0x4a8
+	CEntityIOOutput m_OnHeardSound; // 0x4d0
+	char[256] m_szLastSound; // 0x4f8
+	int32_t m_iLastRoutedFrame; // 0x5f8
 };
 
 // Aligment: 3
-// Size: 1776
+// Size: 1608
 class CFuncAreaPortalBase : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_portalNumber; // 0x6e0
-	int32_t m_iPortalVersion; // 0x6e4
-	int16_t m_AreaPortalsElement; // 0x6e8
+	int32_t m_portalNumber; // 0x638
+	int32_t m_iPortalVersion; // 0x63c
+	int16_t m_AreaPortalsElement; // 0x640
 };
 
 // Aligment: 5
-// Size: 1808
+// Size: 1640
 class CFuncAreaPortalWindow : public CFuncAreaPortalBase, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeStartDist; // 0x6f0
+	float m_flFadeStartDist; // 0x648
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flFadeDist; // 0x6f4
+	float m_flFadeDist; // 0x64c
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flTranslucencyLimit; // 0x6f8
-	CUtlSymbolLarge m_iBackgroundBModelName; // 0x700
+	float m_flTranslucencyLimit; // 0x650
+	CUtlSymbolLarge m_iBackgroundBModelName; // 0x658
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeCModel > m_iBackgroundModelIndex; // 0x708
+	CStrongHandle< InfoForResourceTypeCModel > m_iBackgroundModelIndex; // 0x660
 };
 
-// Aligment: 1
-// Size: 1768
-class CFuncOccluder : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 24
+// Size: 1808
+class CBreakable : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bStartDisabled; // 0x6e0
+	Materials m_Material; // 0x648
+	CHandle< CBaseEntity > m_hBreaker; // 0x64c
+	int32_t m_iPrevHealth; // 0x650
+	Explosions m_Explosion; // 0x654
+	QAngle m_GibDir; // 0x658
+	CUtlSymbolLarge m_iszSpawnObject; // 0x668
+	float m_flPressureDelay; // 0x670
+	int32_t m_iMinHealthDmg; // 0x674
+	bool m_bTookPhysicsDamage; // 0x678
+	int32_t m_breakableType; // 0x67c
+	CUtlSymbolLarge m_iszPropData; // 0x680
+	float m_impactEnergyScale; // 0x688
+	CEntityIOOutput m_OnBreak; // 0x690
+	CEntityOutputTemplate< float32 > m_OnHealthChanged; // 0x6b8
+	float m_flDmgModBullet; // 0x6e0
+	float m_flDmgModClub; // 0x6e4
+	float m_flDmgModExplosive; // 0x6e8
+	float m_flDmgModFire; // 0x6ec
+	CUtlSymbolLarge m_iszPhysicsDamageTableName; // 0x6f0
+	CUtlSymbolLarge m_iszBasePropData; // 0x6f8
+	int32_t m_iInteractions; // 0x700
+	PerformanceMode_t m_PerformanceMode; // 0x704
+	CHandle< CBasePlayer > m_hPhysicsAttacker; // 0x708
+	float m_flLastPhysicsInfluenceTime; // 0x70c
+};
+
+// Aligment: 13
+// Size: 1696
+class CFuncRotating : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	QAngle m_vecMoveAng; // 0x638
+	float m_flFanFriction; // 0x644
+	float m_flAttenuation; // 0x648
+	float m_flVolume; // 0x64c
+	float m_flTargetSpeed; // 0x650
+	float m_flMaxSpeed; // 0x654
+	float m_flBlockDamage; // 0x658
+	CUtlSymbolLarge m_NoiseRunning; // 0x660
+	bool m_bReversed; // 0x668
+	QAngle m_angStart; // 0x674
+	bool m_bStopAtStartPos; // 0x680
+	Vector m_vecClientOrigin; // 0x684
+	QAngle m_vecClientAngles; // 0x690
 };
 
 // Aligment: 1
-// Size: 1768
+// Size: 1600
+class CItemGenericTriggerHelper : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CItemGeneric > m_hParentItem; // 0x638
+};
+
+// Aligment: 5
+// Size: 1112
+class CLight : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iStyle; // 0x440
+	int32_t m_iDefaultStyle; // 0x444
+	CUtlSymbolLarge m_iszPattern; // 0x448
+	char m_iCurrentFade; // 0x450
+	char m_iTargetFade; // 0x451
+};
+
+// Aligment: 1
+// Size: 1600
 class CMarkupVolume : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bEnabled; // 0x6e0
+	bool m_bEnabled; // 0x638
 };
 
 // Aligment: 5
-// Size: 1824
+// Size: 1656
 class CMarkupVolumeTagged : public CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bIsGroup; // 0x718
-	bool m_bGroupByPrefab; // 0x719
-	bool m_bGroupByVolume; // 0x71a
-	bool m_bGroupOtherGroups; // 0x71b
-	bool m_bIsInGroup; // 0x71c
+	bool m_bIsGroup; // 0x670
+	bool m_bGroupByPrefab; // 0x671
+	bool m_bGroupByVolume; // 0x672
+	bool m_bGroupOtherGroups; // 0x673
+	bool m_bIsInGroup; // 0x674
 };
 
 // Aligment: 3
-// Size: 1848
+// Size: 1680
 class CMarkupVolumeWithRef : public CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bUseRef; // 0x720
-	Vector m_vRefPos; // 0x724
-	float m_flRefDot; // 0x730
+	bool m_bUseRef; // 0x678
+	Vector m_vRefPos; // 0x67c
+	float m_flRefDot; // 0x688
 };
 
-// Aligment: 5
-// Size: 1792
+// Aligment: 6
+// Size: 1624
 class CFuncBrush : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	BrushSolidities_e m_iSolidity; // 0x6e0
-	int32_t m_iDisabled; // 0x6e4
-	bool m_bSolidBsp; // 0x6e8
-	CUtlSymbolLarge m_iszExcludedClass; // 0x6f0
-	bool m_bInvertExclusion; // 0x6f8
+	BrushSolidities_e m_iSolidity; // 0x638
+	int32_t m_iDisabled; // 0x63c
+	bool m_bSolidBsp; // 0x640
+	CUtlSymbolLarge m_iszExcludedClass; // 0x648
+	bool m_bInvertExclusion; // 0x650
+	bool m_bScriptedMovement; // 0x651
 };
 
-// Aligment: 2
-// Size: 1776
-class CFuncNavBlocker : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 1
+// Size: 1600
+class CFuncOccluder : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	bool m_bDisabled; // 0x6e0
-	int32_t m_nBlockedTeamNumber; // 0x6e4
+	bool m_bStartDisabled; // 0x638
 };
 
-// Aligment: 23
-// Size: 1872
-class CSprite : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 18
+// Size: 2240
+class CPhysBox : public CBreakable, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_damageType; // 0x710
+	float m_massScale; // 0x714
+	int32_t m_damageToEnableMotion; // 0x718
+	float m_flForceToEnableMotion; // 0x71c
+	QAngle m_angPreferredCarryAngles; // 0x720
+	bool m_bNotSolidToWorld; // 0x72c
+	int32_t m_iExploitableByPlayer; // 0x730
+	float m_flTouchOutputPerEntityDelay; // 0x734
+	CEntityIOOutput m_OnDamaged; // 0x738
+	CEntityIOOutput m_OnAwakened; // 0x760
+	CEntityIOOutput m_OnMotionEnabled; // 0x788
+	CEntityIOOutput m_OnPhysGunPickup; // 0x7b0
+	CEntityIOOutput m_OnPhysGunPunt; // 0x7d8
+	CEntityIOOutput m_OnPhysGunOnlyPickup; // 0x800
+	CEntityIOOutput m_OnPhysGunDrop; // 0x828
+	CEntityIOOutput m_OnPlayerUse; // 0x850
+	CEntityIOOutput m_OnStartTouch; // 0x878
+	CHandle< CBasePlayer > m_hCarryingPlayer; // 0x8a0
+};
+
+// Aligment: 8
+// Size: 1168
+class CPhysExplosion : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bExplodeOnSpawn; // 0x440
+	float m_damage; // 0x444
+	float m_radius; // 0x448
+	CUtlSymbolLarge m_targetEntityName; // 0x450
+	float m_flInnerRadius; // 0x458
+	float m_flPushScale; // 0x45c
+	bool m_bConvertToDebrisWhenPossible; // 0x460
+	CEntityIOOutput m_OnPushedPlayer; // 0x468
+};
+
+// Aligment: 3
+// Size: 1104
+class CPhysImpact : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_damage; // 0x440
+	float m_distance; // 0x444
+	CUtlSymbolLarge m_directionEntityName; // 0x448
+};
+
+// Aligment: 1
+// Size: 1096
+class CInfoPlayerStart : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x440
+};
+
+// Aligment: 21
+// Size: 1680
+class CRopeKeyframe : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSpriteMaterial; // 0x6e0
+	// MNetworkBitCount "10"
+	uint16_t m_RopeFlags; // 0x640
+	CUtlSymbolLarge m_iNextLinkName; // 0x648
 	// MNetworkEnable
 	// MNetworkEnable
-	CHandle< CBaseEntity > m_hAttachedToEntity; // 0x6e8
+	// MNetworkBitCount "12"
+	int16_t m_Slack; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Width; // 0x654
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0.1"
+	// MNetworkMaxValue "10"
+	float m_TextureScale; // 0x658
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_nSegments; // 0x65c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bConstrainBetweenEndpoints; // 0x65d
+	CUtlSymbolLarge m_strRopeMaterialModel; // 0x660
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_iRopeMaterialModelIndex; // 0x668
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_Subdiv; // 0x670
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	AttachmentHandle_t m_nAttachment; // 0x6ec
+	uint8_t m_nChangeCount; // 0x671
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	int16_t m_RopeLength; // 0x672
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	uint8_t m_fLockedPoints; // 0x674
+	bool m_bCreatedFromMapFile; // 0x675
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flScrollSpeed; // 0x678
+	bool m_bStartPointValid; // 0x67c
+	bool m_bEndPointValid; // 0x67d
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hStartPoint; // 0x680
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hEndPoint; // 0x684
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int16_t m_iStartAttachment; // 0x688
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	int16_t m_iEndAttachment; // 0x68a
+};
+
+// Aligment: 4
+// Size: 7760
+class CSoundEnt : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iFreeSound; // 0x440
+	int32_t m_iActiveSound; // 0x444
+	int32_t m_cLastActiveSounds; // 0x448
+	CSound[128] m_SoundPool; // 0x44c
+};
+
+// Aligment: 4
+// Size: 1624
+class CSpotlightEnd : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flLightScale; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Radius; // 0x63c
+	Vector m_vSpotlightDir; // 0x640
+	Vector m_vSpotlightOrg; // 0x64c
+};
+
+// Aligment: 11
+// Size: 2016
+class CBaseTrigger : public CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDisabled; // 0x6b8
+	CUtlSymbolLarge m_iFilterName; // 0x6c0
+	CHandle< CBaseFilter > m_hFilter; // 0x6c8
+	CEntityIOOutput m_OnStartTouch; // 0x6d0
+	CEntityIOOutput m_OnStartTouchAll; // 0x6f8
+	CEntityIOOutput m_OnEndTouch; // 0x720
+	CEntityIOOutput m_OnEndTouchAll; // 0x748
+	CEntityIOOutput m_OnTouching; // 0x770
+	CEntityIOOutput m_OnNotTouching; // 0x798
+	CUtlVector< CHandle< CBaseEntity > > m_hTouchingEntities; // 0x7c0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bClientSidePredicted; // 0x7d8
+};
+
+// Aligment: 1
+// Size: 2056
+class CTriggerMultiple : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnTrigger; // 0x7e0
+};
+
+// Aligment: 15
+// Size: 2888
+class CTriggerSndSosOpvar : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlVector< CHandle< CBaseEntity > > m_hTouchingPlayers; // 0x7e0
+	Vector m_flPosition; // 0x7f8
+	float m_flCenterSize; // 0x804
+	float m_flMinVal; // 0x808
+	float m_flMaxVal; // 0x80c
+	float m_flWait; // 0x810
+	CUtlSymbolLarge m_opvarName; // 0x818
+	CUtlSymbolLarge m_stackName; // 0x820
+	CUtlSymbolLarge m_operatorName; // 0x828
+	bool m_bVolIs2D; // 0x830
+	char[256] m_opvarNameChar; // 0x831
+	char[256] m_stackNameChar; // 0x931
+	char[256] m_operatorNameChar; // 0xa31
+	Vector m_VecNormPos; // 0xb34
+	float m_flNormCenterSize; // 0xb40
+};
+
+// Aligment: 14
+// Size: 2176
+class CTriggerHurt : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flOriginalDamage; // 0x7e0
+	float m_flDamage; // 0x7e4
+	float m_flDamageCap; // 0x7e8
+	float m_flLastDmgTime; // 0x7ec
+	float m_flForgivenessDelay; // 0x7f0
+	int32_t m_bitsDamageInflict; // 0x7f4
+	int32_t m_damageModel; // 0x7f8
+	bool m_bNoDmgForce; // 0x7fc
+	Vector m_vDamageForce; // 0x800
+	bool m_thinkAlways; // 0x80c
+	float m_hurtThinkPeriod; // 0x810
+	CEntityIOOutput m_OnHurt; // 0x818
+	CEntityIOOutput m_OnHurtPlayer; // 0x840
+	CUtlVector< CHandle< CBaseEntity > > m_hurtEntities; // 0x868
+};
+
+// Aligment: 0
+// Size: 2176
+class CTriggerHurtGhost : public CTriggerHurt, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2024
+class CTriggerCallback : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 12
+// Size: 2176
+class CTriggerLerpObject : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszLerpTarget; // 0x7e0
+	CHandle< CBaseEntity > m_hLerpTarget; // 0x7e8
+	CUtlSymbolLarge m_iszLerpTargetAttachment; // 0x7f0
+	uint8_t m_hLerpTargetAttachment; // 0x7f8
+	float m_flLerpDuration; // 0x7fc
+	bool m_bLerpRestoreMoveType; // 0x800
+	bool m_bSingleLerpObject; // 0x801
+	CUtlVector< lerpdata_t > m_vecLerpingObjects; // 0x808
+	CUtlSymbolLarge m_iszLerpEffect; // 0x820
+	CUtlSymbolLarge m_iszLerpSound; // 0x828
+	CEntityIOOutput m_OnLerpStarted; // 0x830
+	CEntityIOOutput m_OnLerpFinished; // 0x858
+};
+
+// Aligment: 6
+// Size: 2080
+class CChangeLevel : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlString m_sMapName; // 0x7e0
+	CUtlString m_sLandmarkName; // 0x7e8
+	CEntityIOOutput m_OnChangeLevel; // 0x7f0
+	bool m_bTouched; // 0x818
+	bool m_bNoTouch; // 0x819
+	bool m_bNewChapter; // 0x81a
+};
+
+// Aligment: 3
+// Size: 2032
+class CTriggerTeleport : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iLandmark; // 0x7e0
+	bool m_bUseLandmarkAngles; // 0x7e8
+	bool m_bMirrorPlayer; // 0x7e9
+};
+
+// Aligment: 2
+// Size: 1608
+class CFuncNavBlocker : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x638
+	int32_t m_nBlockedTeamNumber; // 0x63c
+};
+
+// Aligment: 24
+// Size: 1752
+class CBeam : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "-25"
+	// MNetworkMaxValue "25"
+	// MNetworkEncodeFlags
+	float m_flFrameRate; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHDRColorScale; // 0x63c
+	float m_flFireTime; // 0x640
+	float m_flDamage; // 0x644
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8_t m_nNumBeamEnts; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hBaseMaterial; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_nHaloIndex; // 0x658
+	// MNetworkEnable
+	// MNetworkEnable
+	BeamType_t m_nBeamType; // 0x660
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "17"
+	uint32_t m_nBeamFlags; // 0x664
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity >[10] m_hAttachEntity; // 0x668
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "5"
+	uint8[10] m_nAttachIndex; // 0x690
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "102.3"
+	// MNetworkEncodeFlags
+	float m_fWidth; // 0x69c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "102.3"
+	// MNetworkEncodeFlags
+	float m_fEndWidth; // 0x6a0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fFadeLength; // 0x6a4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_fHaloScale; // 0x6a8
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
 	// MNetworkMinValue "0"
-	// MNetworkMaxValue "60"
+	// MNetworkMaxValue "64"
 	// MNetworkEncodeFlags
-	float m_flSpriteFramerate; // 0x6f0
+	float m_fAmplitude; // 0x6ac
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "256"
+	// MNetworkEncodeFlags
+	float m_fStartFrame; // 0x6b0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "100"
+	float m_fSpeed; // 0x6b4
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "20"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "256"
 	// MNetworkEncodeFlags
-	float m_flFrame; // 0x6f4
-	float m_flDieTime; // 0x6f8
+	// MNetworkPriority "64"
+	float m_flFrame; // 0x6b8
+	// MNetworkEnable
+	// MNetworkEnable
+	BeamClipStyle_t m_nClipStyle; // 0x6bc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bTurnedOff; // 0x6c0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_vecEndPos; // 0x6c4
+	CHandle< CBaseEntity > m_hEndEntity; // 0x6d0
+	int32_t m_nDissolveType; // 0x6d4
+};
+
+// Aligment: 23
+// Size: 1704
+class CSprite : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSpriteMaterial; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hAttachedToEntity; // 0x640
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "8"
-	uint32_t m_nBrightness; // 0x708
+	int32_t m_nAttachment; // 0x644
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flBrightnessDuration; // 0x70c
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "60"
+	// MNetworkEncodeFlags
+	float m_flSpriteFramerate; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "20"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "256"
+	// MNetworkEncodeFlags
+	float m_flFrame; // 0x64c
+	float m_flDieTime; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_nBrightness; // 0x660
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flBrightnessDuration; // 0x664
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkChangeCallback "OnSpriteScaleChanged"
-	float m_flSpriteScale; // 0x710
+	float m_flSpriteScale; // 0x668
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flScaleDuration; // 0x714
+	float m_flScaleDuration; // 0x66c
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bWorldSpaceScale; // 0x718
+	bool m_bWorldSpaceScale; // 0x670
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "6"
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "64"
 	// MNetworkEncodeFlags
-	float m_flGlowProxySize; // 0x71c
+	float m_flGlowProxySize; // 0x674
 	// MNetworkEnable
 	// MNetworkEnable
-	float m_flHDRColorScale; // 0x720
-	float m_flLastTime; // 0x724
-	float m_flMaxFrame; // 0x728
-	float m_flStartScale; // 0x72c
-	float m_flDestScale; // 0x730
-	float m_flScaleTimeStart; // 0x734
-	int32_t m_nStartBrightness; // 0x738
-	int32_t m_nDestBrightness; // 0x73c
-	float m_flBrightnessTimeStart; // 0x740
-	int32_t m_nSpriteWidth; // 0x744
-	int32_t m_nSpriteHeight; // 0x748
+	float m_flHDRColorScale; // 0x678
+	float m_flLastTime; // 0x67c
+	float m_flMaxFrame; // 0x680
+	float m_flStartScale; // 0x684
+	float m_flDestScale; // 0x688
+	float m_flScaleTimeStart; // 0x68c
+	int32_t m_nStartBrightness; // 0x690
+	int32_t m_nDestBrightness; // 0x694
+	float m_flBrightnessTimeStart; // 0x698
+	int32_t m_nSpriteWidth; // 0x69c
+	int32_t m_nSpriteHeight; // 0x6a0
 };
 
 // Aligment: 0
-// Size: 1872
+// Size: 1704
 class CSpriteOriented : public CSprite, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 4
-// Size: 1784
-class CFogVolume : public CServerOnlyModelEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 14
+// Size: 2024
+class CBaseClientUIEntity : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CUtlSymbolLarge m_fogName; // 0x6e0
-	CUtlSymbolLarge m_postProcessName; // 0x6e8
-	bool m_bDisabled; // 0x6f4
-	bool m_bInFogVolumesList; // 0x6f5
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_DialogXMLName; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_PanelClassName; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_PanelID; // 0x650
+	CEntityIOOutput m_CustomOutput0; // 0x658
+	CEntityIOOutput m_CustomOutput1; // 0x680
+	CEntityIOOutput m_CustomOutput2; // 0x6a8
+	CEntityIOOutput m_CustomOutput3; // 0x6d0
+	CEntityIOOutput m_CustomOutput4; // 0x6f8
+	CEntityIOOutput m_CustomOutput5; // 0x720
+	CEntityIOOutput m_CustomOutput6; // 0x748
+	CEntityIOOutput m_CustomOutput7; // 0x770
+	CEntityIOOutput m_CustomOutput8; // 0x798
+	CEntityIOOutput m_CustomOutput9; // 0x7c0
+};
+
+// Aligment: 23
+// Size: 2112
+class CPointClientUIWorldPanel : public CBaseClientUIEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIgnoreInput; // 0x7e8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bLit; // 0x7e9
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bFollowPlayerAcrossTeleport; // 0x7ea
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flWidth; // 0x7ec
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHeight; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDPI; // 0x7f4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flInteractDistance; // 0x7f8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flDepthOffset; // 0x7fc
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOwnerContext; // 0x800
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unHorizontalAlign; // 0x804
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unVerticalAlign; // 0x808
+	// MNetworkEnable
+	// MNetworkEnable
+	uint32_t m_unOrientation; // 0x80c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAllowInteractionFromAllSceneWorlds; // 0x810
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CUtlSymbolLarge > m_vecCSSClasses; // 0x818
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bOpaque; // 0x830
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bNoDepth; // 0x831
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bRenderBackface; // 0x832
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseOffScreenIndicator; // 0x833
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExcludeFromSaveGames; // 0x834
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bGrabbable; // 0x835
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bOnlyRenderToTexture; // 0x836
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bDisableMipGen; // 0x837
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nExplicitImageLayout; // 0x838
 };
 
 // Aligment: 1
-// Size: 1768
+// Size: 2624
+class CPointClientUIWorldTextPanel : public CPointClientUIWorldPanel, CBaseClientUIEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	char[512] m_messageText; // 0x840
+};
+
+// Aligment: 0
+// Size: 2120
+class CPointHintUi : public CPointClientUIWorldPanel, CBaseClientUIEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 2032
+class CPointClientUIDialog : public CBaseClientUIEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnDialogActivatorChanged"
+	CHandle< CBaseEntity > m_hActivator; // 0x7e8
+	bool m_bStartEnabled; // 0x7ec
+};
+
+// Aligment: 5
+// Size: 1632
+class CFogVolume : public CServerOnlyModelEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_fogName; // 0x638
+	CUtlSymbolLarge m_postProcessName; // 0x640
+	CUtlSymbolLarge m_colorCorrectionName; // 0x648
+	bool m_bDisabled; // 0x65c
+	bool m_bInFogVolumesList; // 0x65d
+};
+
+// Aligment: 1
+// Size: 2224
+class CDAC_NPC_AssassinBase : public CDAC_NPC, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CountdownTimer m_NextLeapTimer; // 0x8a0
+};
+
+// Aligment: 0
+// Size: 2208
+class CDAC_NPC_Bloodseeker : public CDAC_NPC, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2208
+class CDAC_NPC_ArcWarden : public CDAC_NPC, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Slark_Pounce : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Slark_Essence_Shift : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_TemplarAssassin_Refraction : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1368
+class CDAC_Ability_TemplarAssassin_Meld : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bLeaped; // 0x550
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Enchantress_NaturesAttendants : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1552
+class CDAC_Ability_Gyrocopter_Call_Down : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1504
+class CDAC_Ability_Batrider_StickyNapalm : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Viper_NetherToxin : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1512
+class CDAC_Ability_Viper_ViperStrike : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x538
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_PhantomAssassin_CoupdeGrace : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1520
+class CDAC_Ability_DragonKnight_BreatheFire : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vStartPos; // 0x5e0
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_DragonKnight_ElderDragonForm : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1456
+class CDAC_Ability_Morphling_Waveform : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nProjectileID; // 0x538
+	Vector m_vProjectileLocation; // 0x53c
+	CHandle< CBaseEntity > m_hHitHero; // 0x548
+};
+
+// Aligment: 1
+// Size: 1416
+class CDAC_Ability_Tiny_Toss : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CDAC_NPC* m_pTarget; // 0x580
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_TrollWarlord_Fervor : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Terrorblade_Metamorph : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Slark_DarkPact : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Tinker_HeatSeekingMissile : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1496
+class CDAC_Ability_Sniper_Assassinate : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hTarget; // 0x5c8
+	ParticleIndex_t m_iIndex; // 0x5cc
+	int32_t radius; // 0x5d0
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Slardar_Amplify_Damage : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_ChaosKnight_Chaos_Bolt : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1456
+class CDAC_Ability_Puck_IllusoryOrb : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iProjectile; // 0x598
+	CountdownTimer m_ViewerTimer; // 0x5a0
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Alchemist_AcidSpray : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 6
+// Size: 1488
+class CDAC_Ability_KeeperOfTheLight_Illuminate : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_fPower; // 0x5b0
+	int32_t m_iProjectile; // 0x5b4
+	ParticleIndex_t m_nFXIndex; // 0x5b8
+	ParticleIndex_t m_nFXIndexB; // 0x5bc
+	Vector m_vPos; // 0x5c0
+	float damage_per_second; // 0x5cc
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Axe_BerserkersCall : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1440
+class CDAC_Mirana_Arrow : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vDestination; // 0x580
+	Vector m_vTargetPosition; // 0x58c
+	int32_t m_iProjectile; // 0x598
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Tidehunter_Ravage : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Razor_PlasmaField : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1488
+class CDAC_Ability_ShadowFiend_Requiem : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x5c8
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Drow_Trueshot_Aura : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Puck_PhaseShift : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Viper_Corrosive_Skin : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_AntiMage_ManaBreak : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1440
+class CDAC_Ability_Luna_MoonGlaive : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iAttackIndex; // 0x538
+};
+
+// Aligment: 1
+// Size: 1472
+class CDAC_Ability_NaturesProphet_WrathOfNature : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iBounces; // 0x5b8
+};
+
+// Aligment: 1
+// Size: 1472
+class CDAC_Ability_Lich_ChainFrost : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iBounces; // 0x5b8
+};
+
+// Aligment: 2
+// Size: 1584
+class CDAC_Ability_WitchDoctor_ParalyzingCask : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlVector< int32 > m_vecBounces; // 0x538
+	int32_t m_nLastCaskID; // 0x550
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_BountyHunter_ShurikenToss : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1488
+class CDAC_Ability_SandKing_BurrowStrike : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CDAC_NPC* m_pTarget; // 0x5c8
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Juggernaut_BladeFury : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_QueenOfPain_ScreamOfPain : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ogre_Magi_Bloodlust : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Pudge_Pound : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Pudge_MeatHook : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Timbersaw_WhirlingDeath : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Necrophos_DeathPulse : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Clockwerk_BatteryAssault : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Enigma_MidnightPulse : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1504
+class CDAC_Ability_Medusa_StoneGaze : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1504
+class CDAC_Ability_Treant_LeechSeed : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Tusk_WalrusPunch : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Omniknight_Purification : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_LoneDruid_SpiritBear_Entangle : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_DoomBringer_Doom : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Venomancer_PlagueWard : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1584
+class CDAC_Ability_Venomancer_VenomousGale : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flLastBuffTime; // 0x628
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Venomancer_PoisonSting : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_NaturesProphet_Summon : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_LoneDruid_SummonBear : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Lycan_WolfSpawnAndShift : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_TechiesBomb : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 4
+// Size: 1520
+class CDAC_Ability_Windrunner_Powershot : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iProjectile; // 0x538
+	ParticleIndex_t m_nFXIndex; // 0x53c
+	float m_flPower; // 0x540
+	float m_flChannelingPower; // 0x544
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Disruptor_StaticStorm : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Lina_LagunaBlade : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Abaddon_AphoticShield : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 6
+// Size: 1592
+class CDAC_Ability_Kunkka_GhostShip : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float buff_duration; // 0x610
+	float stun_duration; // 0x614
+	int32_t ghostship_width; // 0x618
+	int32_t ghostship_width_scepter; // 0x61c
+	Vector m_vFinalDestination; // 0x620
+	Vector m_vStartingPoint; // 0x62c
+};
+
+// Aligment: 1
+// Size: 1392
+class CDAC_Ability_ShadowShamanVoodoo : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CDAC_NPC* m_pPreviousTarget; // 0x568
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_CrystalMaiden_BrillianceAura : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Beastmaster_WildAxes : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Sven_GodsStrength : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Sven_Cleave : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Lifestealer_Feast : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Sven_Great_Cleave : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Warlock_Shadow_Word : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Bloodseeker_BloodRage : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_ArcWarden_MagneticField : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1368
+class CDAC_ArcWarden_TempestDouble : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hClone; // 0x550
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_ArcWarden_TempestDouble_NoItems : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_SandKing_CausticFinale : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Medusa_SplitShot : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_BlackDragon_SplashAttack : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Roshan_SpellImmune : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Thunder_Lizard_Bloodlust : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_FacelessVoid_TimeWalk : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1416
+class CDAC_Ability_FacelessVoid_Chronocube : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CDAC_Modifier* m_pCubeToAvoid; // 0x580
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Legion_Commander_Will_Of_The_Bullsnake : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Legion_Commander_Duel : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Nyx_Assassin_SpikedCarapace : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Nyx_Assassin_Vendetta : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 4
+// Size: 1552
+class CDAC_Ability_Weaver_Shukuchi : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nProjectileID; // 0x538
+	Vector m_vProjectileLocation; // 0x53c
+	CUtlVector< CDAC_NPC* > m_TargetedEntities; // 0x548
+	int32_t m_nNumTargetsRemaining; // 0x560
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Broodmother_Spin_Web : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Broodmother_Spawn_Spiderlings : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Enigma_Primordial_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Gyrocopter_Deadeye_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_FacelessVoid_Assassin_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Lich_Mage_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Medusa_Hunter_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Techies_Inventor_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_VoidSpirit_Spirit_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Warlord_Troll_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Disruptor_Warlock_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Sven_Knight_Bonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Hobgen_Firebomb : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1464
+class CDAC_Ability_Wisp_Tether : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hTarget; // 0x538
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Wisp_Relocate : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Magnus_Empower : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Shadow_Demon_Demonic_Purge : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Bristleback_QuillSpray : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1472
+class CDAC_Ability_Dazzle_ShadowWave : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iCurJumpCount; // 0x538
+	Vector m_vCurTargetLoc; // 0x53c
+	CUtlVector< CHandle< CBaseEntity > > m_hHitEntities; // 0x548
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_CrystalMaiden_Frostbite : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1488
+class CDAC_Ability_Storm_Spirit_Ball_Lightning : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nProjectileID; // 0x538
+	Vector m_vProjectileLocation; // 0x53c
+	CHandle< CBaseEntity > m_hHitHero; // 0x548
+};
+
+// Aligment: 4
+// Size: 1456
+class CDAC_Ability_EmberSpirit_SleightOfFist : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXMarkerIndex; // 0x538
+	CHandle< CBaseEntity > m_hHitHero; // 0x53c
+	CUtlVector< CDAC_NPC* > m_vecTargets; // 0x588
+	Vector m_vCastLoc; // 0x5a0
+};
+
+// Aligment: 2
+// Size: 1464
+class CDAC_Ability_Earth_Spirit_Geomagnetic_Grip : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iProjectile; // 0x538
+	ParticleIndex_t m_nFXIndex; // 0x53c
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_VoidSpirit_Dissimilate : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1584
+class CDAC_Ability_GrannyLizard_ShotgunBlast : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bReady; // 0x538
+};
+
+// Aligment: 0
+// Size: 1552
+class CDAC_Ability_GrannyLizard_Bazooka : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_LegionCommander_ChampionBonus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_EmberSpirit_Element : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_VoidSpirit_Element : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_StormSpirit_Element : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_EarthSpirit_Element : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_LegionCommander_Element : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Axe_Culling_Blade : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Axe_CounterHelix : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_ShadowShaman_MassSerpentWard : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1472
+class CDAC_Ability_Windrunner_Shackleshot : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vArrowStartPos; // 0x5b0
+	CHandle< CBaseEntity > m_hTarget; // 0x5bc
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Razor_StaticLink : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_CrystalMaiden_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Terrorblade_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Tiny_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Luna_Eclipse : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Dazzle_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Broodmother_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Pudge_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1464
+class CDAC_Ability_Viper_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x5b0
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Beastmaster_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Juggernaut_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_QueenofPain_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_DrowRanger_FrostArrow : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Abaddon_Frostmourne : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Morphling_Champion : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Shadow_Fiend_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1416
+class CDAC_Ability_Magnus_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x580
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_StormSpirit_Overload : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Lifestealer_Rage : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Ability_Lich_ChainFrost_3star : public CDAC_Ability_Lich_ChainFrost, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Ability_WildAlliance_WrathOfNature : public CDAC_Ability_NaturesProphet_WrathOfNature, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_VengefulSpirit_WaveOfTerror : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_VengefulSpirit_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1648
+class CDAC_Ability_DeathProphet_Exorcism : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 7
+// Size: 1584
+class CDAC_Ability_SpiritBreaker_ChargeOfDarkness : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vProjectileLocation; // 0x538
+	CDAC_NPC* m_pTarget; // 0x5f0
+	CUtlVector< CDAC_NPC* > m_vecTrackingProjectileHits; // 0x5f8
+	int32_t m_iCurProjectileIndex; // 0x610
+	Vector m_vTargetLocation; // 0x614
+	Vector m_vChargeStartPos; // 0x620
+	bool m_bFinished; // 0x62c
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_SpiritBreaker_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1392
+class CDAC_Ability_Meepo_Poof : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x568
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Meepo_DividedWeStand : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1512
+class CDAC_Ability_WraithKing_WraithfireBlast : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ParticleIndex_t m_nFXIndex; // 0x538
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WraithKing_RaiseDead : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Rubick_FadeBolt : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Rubick_SpellSteal : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1504
+class CDAC_Ability_Lich_FrostShield : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Pangolier_ShieldCrash : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 1744
+class CDAC_Ability_Spectre_SpectralDagger : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vStart; // 0x640
+	Vector m_vVelocity; // 0x64c
+	float m_flDistance; // 0x658
+	CUtlVectorFixedGrowable< CDAC_NPC* > m_vecHitTargets; // 0x660
+	CDAC_NPC* m_pTarget; // 0x6c8
+};
+
+// Aligment: 1
+// Size: 1496
+class CDAC_Ability_Spectre_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vStartPos; // 0x5c8
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Enchantress_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_BountyHunter_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Kunkka_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Alchemist_3star : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_Crit : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_Evasion : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_Enchantress : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_Magnus : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_TreantProtector : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_Beastmaster : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_LoneDruid : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_NaturesProphet : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_WildAlliance_SplashAttack : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_AnessixsGift : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Cinderwall_Aura : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_ClaymoreOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_BloodboundHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_VoidStoneOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_ManaSponge : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_TranquilBoots : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_OctarineFragment : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_VitalityBoosterOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_Cloak : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_BlinkDaggerOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_MaskOfMadnessOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_BladeMailOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_BattleFuryOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_DagonOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_SacredRelic : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_MaelstromOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_RefresherOrbOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_HeartOfTarrasqueOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_DivineRapierOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_AssaultCuirass : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1456
+class CDAC_Item_Black_King_BarOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bManaTriggerHit; // 0x5a8
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_MekansmOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_ArcaneBootsOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Daedalus : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_RadianceOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_SkadiOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_Never_Die_Hat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_GoldOnLastHitHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Final_Flash_Hat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_ChainMail_Old : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_GlovesOfHasteOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_MoonShardOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_BlightStone : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_Shivas_Guard_Old : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_Hood_Of_DefianceOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Vanguard_Old : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_CraniumBasherOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_BloodthornOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1528
+class CDAC_Item_PipeOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bManaTriggerHit; // 0x5f0
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_SheepStickOLD : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1440
+class CDAC_Item_ForceStaffOld : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vPushPosition; // 0x590
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Tombstone_Raise_Zombies_Old : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Barricade_Aura_Old : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_TargetDummyTauntOld : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_HealingWard_HealingAura_Old : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1432
+class CDAC_Item_TestSwarm : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_nUnitID; // 0x578
+	bool m_bHasStarted; // 0x57c
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_HypeBreaker : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_HypeHarvester : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_Aegis : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1592
+class CDAC_Item_ArcaneBoots : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_CraniumBasher : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_BattleFury : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Black_King_Bar : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_BladeMail : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_BlinkDagger : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_Bloodthorn : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_Butterfly : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_ChainMail : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Claymore : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_Crystalis : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Dagon : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_Desolator : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_DiffusalBlade : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_DivineRapier : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_Eul : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1560
+class CDAC_Item_ForceStaff : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vPushPosition; // 0x608
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_GlovesOfHaste : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_Hand_Of_Midas : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_HeartOfTarrasque : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Hood_Of_Defiance : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Hood_Of_Defiance_Rot1 : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_HornOfTheAlpha : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_Kaya : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Maelstrom : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Maelstrom_Rot1 : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_MaskOfDeath : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_MaskOfMadness : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_Mekansm : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_MoonShard : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_OctarineEssence : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_OrbOfVenom : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1600
+class CDAC_Item_Pipe : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bManaTriggerHit; // 0x638
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Radiance : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_RefresherOrb : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Headdress : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Headdress_Rot1 : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_Satanic : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1664
+class CDAC_Item_ShivasGuard : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_SheepStick : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_SilverEdge : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1616
+class CDAC_Item_Skadi : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1520
+class CDAC_Item_StonehallCloak : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1568
+class CDAC_Item_StonehallPike : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_Talisman_of_Evasion : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_Vanguard : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_VestureOfTheTyrant : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_VitalityBooster : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_VitalityBooster_Rot1 : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1496
+class CDAC_Item_VoidStone : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1544
+class CDAC_Item_AeonDisk : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Barricade_Aura : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Barricade_Aura_Rot1 : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_TargetDummyTaunt : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_HealingWard_HealingAura : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1360
+class CDAC_Ability_Tombstone_Raise_Zombies : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_VladmirsOffering : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_BigTimeContract : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_HuntingHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_DemonHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_BruteHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_DwarfHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1448
+class CDAC_Item_DragonLance : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_TankBuster : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1472
+class CDAC_Item_Armlet : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1416
+class CDAC_MangoTree_MangoThrow : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float min_travel_time; // 0x580
+	float max_travel_time; // 0x584
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_QuellingBlade : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_PaladinSword : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_PoisonerHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_SwordsmanHat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1424
+class CDAC_Item_HeavensHalberd : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_CraggyCoat : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_Necronomicon : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_WitlessShako : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1400
+class CDAC_Item_MonkeyKingBar : public CDAC_Item, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1344
+class CDAC_Ability_Anessix_Passive : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hCompanion; // 0x538
+	int32_t m_nDeaths; // 0x53c
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_DemonWarriorProtect : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_DemonWarriorBash : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_AnessixArcherPassive : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Anessix_PurePain : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1480
+class CDAC_Ability_Anessix_MartyrsBoon : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Anessix_Enthrall : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1424
+class CDAC_Ability_Anessix_SummonGolem : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CDAC_NPC* m_pGolem; // 0x580
+	bool m_bHasStunTalent; // 0x588
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Jull_Passive : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Jull_Beeftron : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Jull_Punchtron : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1504
+class CDAC_Ability_Jull_BarrelsOfFun : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlVector< int32 > m_vecBarrelProjectiles; // 0x5c8
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Jull_HappyHour : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1432
+class CDAC_Ability_Enno_PoisonSpin : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Enno_EscapeArtist : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Enno_Steal : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 1344
+class CDAC_Ability_Enno_AirBrawl : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t nSearchFlags; // 0x538
+};
+
+// Aligment: 0
+// Size: 1336
+class CDAC_Ability_Hobgen_Passive : public CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 1424
+class CDAC_Ability_Hobgen_Explosivo : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_hCurrentProjectile; // 0x538
+	ParticleIndex_t m_nFXIndex; // 0x588
+};
+
+// Aligment: 0
+// Size: 1408
+class CDAC_Ability_Hobgen_Supercharged : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1384
+class CDAC_Ability_Hobgen_LetsGoCrazy : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1456
+class CDAC_Ability_Hobgen_AirStrike : public CDAC_Ability_Underlord, CDAC_Ability, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 9
+// Size: 1664
+class CEnvSky : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_hSkyMaterial; // 0x638
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	bool m_bStartDisabled; // 0x640
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	Color m_vTintColor; // 0x641
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	int32_t m_nFogType; // 0x648
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMinStart; // 0x64c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMinEnd; // 0x650
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMaxStart; // 0x654
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	float m_flFogMaxEnd; // 0x658
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "SkyStateChanged"
+	bool m_bEnabled; // 0x65c
+};
+
+// Aligment: 0
+// Size: 1120
+class CTonemapController2Alias_env_tonemap_controller2 : public CTonemapController2, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 2032
+class CTonemapTrigger : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_tonemapControllerName; // 0x7e0
+	CEntityHandle m_hTonemapController; // 0x7e8
+};
+
+// Aligment: 1
+// Size: 1600
 class CLightEntity : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4836,11 +13726,11 @@ public:
 	// MNetworkUserGroup "CLightComponent"
 	// MNetworkAlias "CLightComponent"
 	// MNetworkTypeAlias "CLightComponent"
-	CLightComponent* m_CLightComponent; // 0x6e0
+	CLightComponent* m_CLightComponent; // 0x638
 };
 
 // Aligment: 0
-// Size: 1768
+// Size: 1600
 class CLightSpotEntity : public CLightEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4848,7 +13738,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1768
+// Size: 1600
 class CLightOrthoEntity : public CLightEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4856,7 +13746,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1768
+// Size: 1600
 class CLightDirectionalEntity : public CLightEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4864,23 +13754,87 @@ public:
 };
 
 // Aligment: 0
-// Size: 1768
+// Size: 1600
 class CLightEnvironmentEntity : public CLightDirectionalEntity, CLightEntity, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 1
+// Size: 2112
+class CFogTrigger : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	fogparams_t m_fog; // 0x7e0
+};
+
 // Aligment: 0
-// Size: 1760
+// Size: 1088
+class CInfoTarget : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1088
+class CInfoParticleTarget : public CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 11
+// Size: 2080
+class CPostProcessingVolume : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCPostProcessingResource > m_hPostSettings; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFadeDuration; // 0x7f8
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMinLogExposure; // 0x7fc
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMaxLogExposure; // 0x800
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMinExposure; // 0x804
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flMaxExposure; // 0x808
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureCompensation; // 0x80c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureFadeSpeedUp; // 0x810
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flExposureFadeSpeedDown; // 0x814
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bMaster; // 0x818
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bExposureControl; // 0x819
+};
+
+// Aligment: 0
+// Size: 1592
 class CWorld : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 7
-// Size: 2112
+// Aligment: 10
+// Size: 1952
 class CBaseAnimating : public CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4888,108 +13842,331 @@ public:
 	// MNetworkUserGroup "CHitboxComponent"
 	// MNetworkAlias "CHitboxComponent"
 	// MNetworkTypeAlias "CHitboxComponent"
-	CHitboxComponent m_CHitboxComponent; // 0x6e0
-	CUtlVector< handposepair_t > m_HandPoses; // 0x6f8
+	CHitboxComponent m_CHitboxComponent; // 0x638
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bShouldAnimateDuringGameplayPause; // 0x710
+	Vector m_vecForce; // 0x650
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bAnimGraphUpdateEnabled; // 0x711
+	// MNetworkBitCount "8"
+	int32_t m_nForceBone; // 0x65c
+	CUtlVector< handposepair_t > m_HandPoses; // 0x660
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bShouldAnimateDuringGameplayPause; // 0x679
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAnimGraphUpdateEnabled; // 0x67a
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkBitCount "3"
 	// MNetworkPriority "64"
-	uint8_t m_nMuzzleFlashParity; // 0x713
+	uint8_t m_nMuzzleFlashParity; // 0x67b
+	float m_flDissolveStartTime; // 0x67c
+	CEntityIOOutput m_OnIgnite; // 0x680
 	// MNetworkEnable
 	// MNetworkEnable
-	CBaseAnimatingEasings_t m_Easings; // 0x7e0
-	bool m_bShouldUseAnimGraph; // 0x818
+	CBaseAnimatingEasings_t m_Easings; // 0x768
 };
 
 // Aligment: 0
-// Size: 2112
+// Size: 1952
 class CBaseAnimatingOverlay : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
-// Aligment: 30
-// Size: 2400
-class CDynamicProp : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Aligment: 4
+// Size: 2016
+class CBaseProp : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CEntityIOOutput m_pOutputAnimBegun; // 0x840
-	CEntityIOOutput m_pOutputAnimOver; // 0x868
-	CEntityIOOutput m_pOutputAnimLoopCycleOver; // 0x890
-	CEntityIOOutput m_OnAnimReachedStart; // 0x8b8
-	CEntityIOOutput m_OnAnimReachedEnd; // 0x8e0
-	CUtlSymbolLarge m_iszDefaultAnim; // 0x908
-	CUtlSymbolLarge m_iszInitialAnim; // 0x910
-	HSequence m_hGoalSequence; // 0x918
-	int32_t m_iTransitionDirection; // 0x91c
-	bool m_bAnimateOnServer; // 0x920
-	bool m_bRandomizeCycle; // 0x921
-	bool m_bHoldAnimation; // 0x922
-	bool m_bIsHoldingAnimation; // 0x923
-	bool m_bRandomAnimator; // 0x924
-	float m_flNextRandAnim; // 0x928
-	float m_flMinRandAnimDuration; // 0x92c
-	float m_flMaxRandAnimDuration; // 0x930
-	HSequence m_hPendingSequence; // 0x934
-	bool m_bStartDisabled; // 0x938
-	bool m_bUpdateAttachedChildren; // 0x939
-	bool m_bFiredStartEndOutput; // 0x93a
+	bool m_bModelOverrodeBlockLOS; // 0x7a0
+	int32_t m_iShapeType; // 0x7a4
+	bool m_bConformToCollisionBounds; // 0x7a8
+	matrix3x4_t m_mPreferredCatchTransform; // 0x7ac
+};
+
+// Aligment: 40
+// Size: 2520
+class CBreakableProp : public CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnBreak; // 0x7f0
+	CEntityOutputTemplate< float32 > m_OnHealthChanged; // 0x818
+	CEntityIOOutput m_OnTakeDamage; // 0x840
+	float m_impactEnergyScale; // 0x868
+	int32_t m_iMinHealthDmg; // 0x86c
+	QAngle m_preferredCarryAngles; // 0x870
+	float m_flPressureDelay; // 0x87c
+	CHandle< CBaseEntity > m_hBreaker; // 0x880
+	PerformanceMode_t m_PerformanceMode; // 0x884
+	float m_flDmgModBullet; // 0x888
+	float m_flDmgModClub; // 0x88c
+	float m_flDmgModExplosive; // 0x890
+	float m_flDmgModFire; // 0x894
+	CUtlSymbolLarge m_iszPhysicsDamageTableName; // 0x898
+	CUtlSymbolLarge m_iszBasePropData; // 0x8a0
+	int32_t m_iInteractions; // 0x8a8
+	float m_flPreventDamageBeforeTime; // 0x8ac
+	bool m_bHasBreakPiecesOrCommands; // 0x8b0
+	float m_explodeDamage; // 0x8b4
+	float m_explodeRadius; // 0x8b8
+	float m_explosionDelay; // 0x8c0
+	CUtlSymbolLarge m_explosionBuildupSound; // 0x8c8
+	CUtlSymbolLarge m_explosionCustomEffect; // 0x8d0
+	CUtlSymbolLarge m_explosionCustomSound; // 0x8d8
+	CHandle< CBasePlayer > m_hPhysicsAttacker; // 0x8e0
+	float m_flLastPhysicsInfluenceTime; // 0x8e4
+	bool m_bOriginalBlockLOS; // 0x8e8
+	char m_nPhysgunState; // 0x8e9
+	CEntityIOOutput m_OnPhysCannonDetach; // 0x8f0
+	CEntityIOOutput m_OnPhysCannonAnimatePreStarted; // 0x918
+	CEntityIOOutput m_OnPhysCannonAnimatePullStarted; // 0x940
+	CEntityIOOutput m_OnPhysCannonAnimatePostStarted; // 0x968
+	CEntityIOOutput m_OnPhysCannonPullAnimFinished; // 0x990
+	float m_flDefaultFadeScale; // 0x9b8
+	CHandle< CBaseEntity > m_hLastAttacker; // 0x9bc
+	CHandle< CBaseEntity > m_hFlareEnt; // 0x9c0
+	bool m_bUsePuntSound; // 0x9c4
+	CUtlSymbolLarge m_iszPuntSound; // 0x9c8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseHitboxesForRenderBox; // 0x93b
+	bool m_noGhostCollision; // 0x9d0
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_bUseAnimGraph; // 0x93c
-	bool m_bCreateNavObstacle; // 0x948
-	bool m_bCreateNonSolid; // 0x949
-	bool m_bIsOverrideProp; // 0x94a
-	int32_t m_iInitialGlowState; // 0x94c
-	int32_t m_nGlowRange; // 0x950
-	int32_t m_nGlowRangeMin; // 0x954
-	Color m_glowColor; // 0x958
+	float m_flClothScale; // 0x9d4
+};
+
+// Aligment: 31
+// Size: 2808
+class CDynamicProp : public CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_pOutputAnimBegun; // 0x9d8
+	CEntityIOOutput m_pOutputAnimOver; // 0xa00
+	CEntityIOOutput m_pOutputAnimLoopCycleOver; // 0xa28
+	CEntityIOOutput m_OnAnimReachedStart; // 0xa50
+	CEntityIOOutput m_OnAnimReachedEnd; // 0xa78
+	CUtlSymbolLarge m_iszDefaultAnim; // 0xaa0
+	CUtlSymbolLarge m_iszInitialAnim; // 0xaa8
+	HSequence m_hGoalSequence; // 0xab0
+	int32_t m_iTransitionDirection; // 0xab4
+	bool m_bAnimateOnServer; // 0xab8
+	bool m_bRandomizeCycle; // 0xab9
+	bool m_bHoldAnimation; // 0xaba
+	bool m_bIsHoldingAnimation; // 0xabb
+	bool m_bRandomAnimator; // 0xabc
+	float m_flNextRandAnim; // 0xac0
+	float m_flMinRandAnimDuration; // 0xac4
+	float m_flMaxRandAnimDuration; // 0xac8
+	HSequence m_hPendingSequence; // 0xacc
+	bool m_bStartDisabled; // 0xad0
+	bool m_bUpdateAttachedChildren; // 0xad1
+	bool m_bScriptedMovement; // 0xad2
+	bool m_bFiredStartEndOutput; // 0xad3
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseHitboxesForRenderBox; // 0xad4
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bUseAnimGraph; // 0xad5
+	bool m_bCreateNavObstacle; // 0xae0
+	bool m_bCreateNonSolid; // 0xae1
+	bool m_bIsOverrideProp; // 0xae2
+	int32_t m_iInitialGlowState; // 0xae4
+	int32_t m_nGlowRange; // 0xae8
+	int32_t m_nGlowRangeMin; // 0xaec
+	Color m_glowColor; // 0xaf0
 };
 
 // Aligment: 0
-// Size: 2400
-class CDynamicPropAlias_dynamic_prop : public CDynamicProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 2808
+class CDynamicPropAlias_dynamic_prop : public CDynamicProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
 // Aligment: 0
-// Size: 2400
-class CDynamicPropAlias_prop_dynamic_override : public CDynamicProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 2808
+class CDynamicPropAlias_prop_dynamic_override : public CDynamicProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 10
+// Size: 2312
+class CColorCorrectionVolume : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bEnabled; // 0x7e0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_MaxWeight; // 0x7e4
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_FadeDuration; // 0x7e8
+	bool m_bStartDisabled; // 0x7ec
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_Weight; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	char[260] m_lookupFilename; // 0x7f4
+	float m_LastEnterWeight; // 0x8f8
+	float m_LastEnterTime; // 0x8fc
+	float m_LastExitWeight; // 0x900
+	float m_LastExitTime; // 0x904
+};
+
+// Aligment: 26
+// Size: 2176
+class CPointCommentaryNode : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_iszPreCommands; // 0x7a0
+	CUtlSymbolLarge m_iszPostCommands; // 0x7a8
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_iszCommentaryFile; // 0x7b0
+	CUtlSymbolLarge m_iszViewTarget; // 0x7b8
+	CHandle< CBaseEntity > m_hViewTarget; // 0x7c0
+	CHandle< CBaseEntity > m_hViewTargetAngles; // 0x7c4
+	CUtlSymbolLarge m_iszViewPosition; // 0x7c8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hViewPosition; // 0x7d0
+	CHandle< CBaseEntity > m_hViewPositionMover; // 0x7d4
+	bool m_bPreventMovement; // 0x7d8
+	bool m_bUnderCrosshair; // 0x7d9
+	bool m_bUnstoppable; // 0x7da
+	float m_flFinishedTime; // 0x7dc
+	Vector m_vecFinishOrigin; // 0x7e0
+	QAngle m_vecOriginalAngles; // 0x7ec
+	QAngle m_vecFinishAngles; // 0x7f8
+	bool m_bPreventChangesWhileMoving; // 0x804
+	bool m_bDisabled; // 0x805
+	Vector m_vecTeleportOrigin; // 0x808
+	CEntityIOOutput m_pOnCommentaryStarted; // 0x818
+	CEntityIOOutput m_pOnCommentaryStopped; // 0x840
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bActive; // 0x868
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flStartTime; // 0x86c
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_iszSpeakers; // 0x870
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iNodeNumber; // 0x878
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	int32_t m_iNodeNumberMax; // 0x87c
+};
+
 // Aligment: 0
-// Size: 2400
-class CDynamicPropAlias_cable_dynamic : public CDynamicProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+// Size: 1704
+class CCommentaryViewPosition : public CSprite, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 19
+// Size: 1920
+class CEnvBeam : public CBeam, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_active; // 0x6d8
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_spriteTexture; // 0x6e0
+	CUtlSymbolLarge m_iszStartEntity; // 0x6e8
+	CUtlSymbolLarge m_iszEndEntity; // 0x6f0
+	float m_life; // 0x6f8
+	float m_boltWidth; // 0x6fc
+	float m_noiseAmplitude; // 0x700
+	int32_t m_speed; // 0x704
+	float m_restrike; // 0x708
+	CUtlSymbolLarge m_iszSpriteName; // 0x710
+	int32_t m_frameStart; // 0x718
+	Vector m_vEndPointWorld; // 0x71c
+	Vector m_vEndPointRelative; // 0x728
+	float m_radius; // 0x734
+	Touch_t m_TouchType; // 0x738
+	CUtlSymbolLarge m_iFilterName; // 0x740
+	CHandle< CBaseEntity > m_hFilter; // 0x748
+	CUtlSymbolLarge m_iszDecal; // 0x750
+	CEntityIOOutput m_OnTouchedByEntity; // 0x758
+};
+
 // Aligment: 1
-// Size: 1784
+// Size: 1616
 class CAreaPortal : public CFuncAreaPortalBase, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	int32_t m_state; // 0x6f0
+	int32_t m_state; // 0x648
 };
 
 // Aligment: 0
-// Size: 1824
+// Size: 1808
+class CPushable : public CBreakable, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 3
+// Size: 1768
+class CGunTarget : public CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_on; // 0x6b8
+	CHandle< CBaseEntity > m_hTargetEnt; // 0x6bc
+	CEntityIOOutput m_OnDeath; // 0x6c0
+};
+
+// Aligment: 1
+// Size: 1960
+class CWorldItem : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iType; // 0x7a0
+};
+
+// Aligment: 0
+// Size: 1112
+class CLightSpot : public CLight, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1112
+class CLightSpotAlias_light_glspot : public CLightSpot, CLight, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1112
+class CLightDirectional : public CLight, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1656
 class CMarkupVolumeTagged_Group : public CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -4997,7 +14174,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1824
+// Size: 1656
 class CMarkupVolumeTagged_Nav : public CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5005,7 +14182,7 @@ public:
 };
 
 // Aligment: 0
-// Size: 1824
+// Size: 1656
 class CMarkupVolumeTagged_NavL4D : public CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5013,7 +14190,15 @@ public:
 };
 
 // Aligment: 0
-// Size: 1848
+// Size: 1656
+class CMarkupVolumeTagged_NavHLVR : public CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1680
 class CMarkupVolumeTagged_AI_HLVR : public CMarkupVolumeWithRef, CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5021,7 +14206,266 @@ public:
 };
 
 // Aligment: 0
-// Size: 2400
+// Size: 1680
+class CMarkupVolumeTagged_NavCitadel : public CMarkupVolumeWithRef, CMarkupVolumeTagged, CMarkupVolume, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 4
+// Size: 1696
+class CFuncCombineBarrier : public CFuncBrush, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_EffectName; // 0x660
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_eBarrierState; // 0x670
+	CUtlSymbolLarge m_iFilterName; // 0x690
+	CHandle< CBaseFilter > m_hFilter; // 0x698
+};
+
+// Aligment: 1
+// Size: 1680
+class CFuncElectrifiedVolume : public CFuncBrush, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlSymbolLarge m_EffectName; // 0x658
+};
+
+// Aligment: 1
+// Size: 1960
+class CConstraintAnchor : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_massScale; // 0x7a0
+};
+
+// Aligment: 0
+// Size: 2016
+class CSimplePhysicsProp : public CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 2816
+class COrnamentProp : public CDynamicProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CUtlSymbolLarge m_initialOwner; // 0xaf8
+};
+
+// Aligment: 17
+// Size: 2152
+class CPropVRTrackedObject : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bShouldBePhysicallyConstrained; // 0x7c0
+	bool m_bFoundInitialSafeLocation; // 0x7c1
+	// MNetworkEnable
+	bool m_bIsTracking; // 0x7e0
+	// MNetworkEnable
+	Vector m_vTrackedPosition; // 0x7e4
+	// MNetworkEnable
+	QAngle m_qTrackedAngles; // 0x7f0
+	// MNetworkEnable
+	Vector m_vPhysicallyConstrainedPosition; // 0x7fc
+	// MNetworkEnable
+	QAngle m_qPhysicallyConstrainedAngles; // 0x808
+	// MNetworkEnable
+	Vector m_vWeldTransformPosition; // 0x814
+	// MNetworkEnable
+	QAngle m_qWeldTransformAngles; // 0x820
+	// MNetworkEnable
+	bool m_bClientIsAuthoritativeForTransform; // 0x82c
+	// MNetworkEnable
+	bool m_bIsInContact; // 0x82d
+	// MNetworkEnable
+	bool m_bIsInContactTeleportClip; // 0x82e
+	// MNetworkEnable
+	Vector m_vTeleportClipPos; // 0x830
+	// MNetworkEnable
+	bool m_bIsInContactSolidPostTeleportClip; // 0x83c
+	// MNetworkEnable
+	Vector m_vSolidPostTeleportClipPos; // 0x840
+	// MNetworkEnable
+	Vector m_vLocalPosition; // 0x84c
+	// MNetworkEnable
+	QAngle m_qLocalAngles; // 0x858
+};
+
+// Aligment: 4
+// Size: 2192
+class CPropHMDAvatar : public CPropVRTrackedObject, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	int32[2] m_hLiteralControllerSlots; // 0x868
+	// MNetworkEnable
+	// MNetworkEnable
+	int32[2] m_hLogicalControllerSlots; // 0x870
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPropVRHand >[4] m_hVRControllers; // 0x878
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPointWorldText > m_hCloseCaption; // 0x888
+};
+
+// Aligment: 42
+// Size: 2872
+class CPropVRHand : public CPropVRTrackedObject, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseVRHandAttachment > m_hActiveHandAttachment; // 0x8a8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPropHMDAvatar > m_hHMDAvatar; // 0x8ac
+	// MNetworkEnable
+	bool m_bVrSkeletonActive; // 0x8b0
+	// MNetworkEnable
+	int32_t m_nVrBoneCount; // 0x8b4
+	// MNetworkEnable
+	uint32_t m_unVrCompressedBoneTransformsSize; // 0x8b8
+	// MNetworkEnable
+	// MNetworkSendProxyRecipientsFilter
+	uint8[64] m_vrCompressedBoneTransforms; // 0x8bc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkTypeAlias "CBaseVRHandAttachmentHandle"
+	CUtlVector< CHandle< CBaseVRHandAttachment > > m_hAttachments; // 0x900
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInitialized; // 0x918
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsInView; // 0x919
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nHandID; // 0x91c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTriggerAnalogValue; // 0x920
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flGripAnalogValue; // 0x924
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger0; // 0x928
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger1; // 0x92c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger2; // 0x930
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger3; // 0x934
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFinger4; // 0x938
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay0; // 0x93c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay1; // 0x940
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay2; // 0x944
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFingerSplay3; // 0x948
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTrackpadAnalogValueX; // 0x94c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flTrackpadAnalogValueY; // 0x950
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flJoystickAnalogValueX; // 0x954
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flJoystickAnalogValueY; // 0x958
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bCanPerformUse; // 0x95c
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bTipTransformInitialized; // 0x95d
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_localTipOrigin; // 0x960
+	// MNetworkEnable
+	// MNetworkEnable
+	QAngle m_localTipAngles; // 0x96c
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flHapticPulseTime; // 0x978
+	// MNetworkEnable
+	// MNetworkEnable
+	int16_t m_nHapticPulseInterval; // 0x97c
+	CInteractionManager m_InteractionMgr; // 0x980
+	matrix3x4_t m_matUseTransform; // 0xa60
+	uint8_t m_nAttachUseIndex; // 0xa90
+	matrix3x4_t m_matHoldTransform; // 0xa94
+	uint8_t m_nAttachHoldIndex; // 0xac4
+	matrix3x4_t m_matHoverTransform; // 0xac8
+	uint8_t m_nAttachHoverIndex; // 0xaf8
+	uint8_t m_nAttachOriginIndex; // 0xaf9
+	// MNetworkEnable
+	// MNetworkEnable
+	eLiteralHandType m_LiteralHandType; // 0xafc
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAttachedToTrackedBody; // 0xb30
+	bool m_bWaitingToAttach; // 0xb31
+};
+
+// Aligment: 4
+// Size: 2040
+class CBaseVRHandAttachment : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnAttachedToHand; // 0x7a0
+	CEntityIOOutput m_OnDetachedFromHand; // 0x7c8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPropVRHand > m_hAttachedHand; // 0x7f0
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bIsAttached; // 0x7f4
+};
+
+// Aligment: 0
+// Size: 2040
+class CVRHandModelOverride : public CBaseVRHandAttachment, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1680
+class CRopeKeyframeAlias_move_rope : public CRopeKeyframe, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2272
 class CSceneEntityAlias_logic_choreographed_scene : public CSceneEntity, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5029,20 +14473,30 @@ public:
 };
 
 // Aligment: 6
-// Size: 2680
+// Size: 2552
 class CInstancedSceneEntity : public CSceneEntity, CPointEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	CHandle< CBaseEntity > m_hOwner; // 0x960
-	bool m_bHadOwner; // 0x964
-	float m_flPostSpeakDelay; // 0x968
-	float m_flPreDelay; // 0x96c
-	char[260] m_szInstanceFilename; // 0x970
-	bool m_bIsBackground; // 0xa74
+	CHandle< CBaseEntity > m_hOwner; // 0x8e0
+	bool m_bHadOwner; // 0x8e4
+	float m_flPostSpeakDelay; // 0x8e8
+	float m_flPreDelay; // 0x8ec
+	char[260] m_szInstanceFilename; // 0x8f0
+	bool m_bIsBackground; // 0x9f4
+};
+
+// Aligment: 3
+// Size: 2056
+class CTriggerSoundscape : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CEnvSoundscapeTriggerable > m_hSoundscape; // 0x7e0
+	CUtlSymbolLarge m_SoundscapeName; // 0x7e8
+	CUtlVector< CHandle< CBasePlayer > > m_spectators; // 0x7f0
 };
 
 // Aligment: 0
-// Size: 1872
+// Size: 1704
 class CSpriteAlias_env_glow : public CSprite, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5050,15 +14504,210 @@ public:
 };
 
 // Aligment: 1
-// Size: 1792
+// Size: 2056
+class CTriggerRemove : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnRemove; // 0x7e0
+};
+
+// Aligment: 1
+// Size: 2192
+class CScriptTriggerHurt : public CTriggerHurt, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vExtent; // 0x880
+};
+
+// Aligment: 1
+// Size: 2072
+class CScriptTriggerMultiple : public CTriggerMultiple, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vExtent; // 0x808
+};
+
+// Aligment: 0
+// Size: 2056
+class CTriggerOnce : public CTriggerMultiple, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 2072
+class CScriptTriggerOnce : public CTriggerOnce, CTriggerMultiple, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vExtent; // 0x808
+};
+
+// Aligment: 15
+// Size: 2216
+class CTriggerLook : public CTriggerOnce, CTriggerMultiple, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hLookTarget; // 0x808
+	float m_flFieldOfView; // 0x80c
+	float m_flLookTime; // 0x810
+	float m_flLookTimeTotal; // 0x814
+	float m_flLookTimeLast; // 0x818
+	float m_flTimeoutDuration; // 0x81c
+	bool m_bTimeoutFired; // 0x820
+	bool m_bIsLooking; // 0x821
+	bool m_b2DFOV; // 0x822
+	bool m_bUseVelocity; // 0x823
+	CHandle< CBaseEntity > m_hActivator; // 0x824
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bTestOcclusion; // 0x828
+	CEntityIOOutput m_OnTimeout; // 0x830
+	CEntityIOOutput m_OnStartLook; // 0x858
+	CEntityIOOutput m_OnEndLook; // 0x880
+};
+
+// Aligment: 5
+// Size: 2040
+class CTriggerPush : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecPushDir; // 0x7e0
+	bool m_bPushDirIsLocal; // 0x7ec
+	bool m_bTriggerOnStartTouch; // 0x7ed
+	float m_flAlternateTicksFix; // 0x7f0
+	float m_flPushSpeed; // 0x7f4
+};
+
+// Aligment: 1
+// Size: 2056
+class CScriptTriggerPush : public CTriggerPush, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vExtent; // 0x7f8
+};
+
+// Aligment: 1
+// Size: 2024
+class CTriggerToggleSave : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bDisabled; // 0x7e0
+};
+
+// Aligment: 3
+// Size: 2032
+class CTriggerSave : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bForceNewLevelUnit; // 0x7e0
+	float m_fDangerousTimer; // 0x7e4
+	int32_t m_minHitPoints; // 0x7e8
+};
+
+// Aligment: 0
+// Size: 2016
+class CTriggerGravity : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 2080
+class CTriggerProximity : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CHandle< CBaseEntity > m_hMeasureTarget; // 0x7e0
+	CUtlSymbolLarge m_iszMeasureTarget; // 0x7e8
+	float m_fRadius; // 0x7f0
+	int32_t m_nTouchers; // 0x7f4
+	CEntityOutputTemplate< float32 > m_NearestEntityDistance; // 0x7f8
+};
+
+// Aligment: 4
+// Size: 2112
+class CTriggerImpact : public CTriggerMultiple, CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flMagnitude; // 0x808
+	float m_flNoise; // 0x80c
+	float m_flViewkick; // 0x810
+	CEntityOutputTemplate< Vector > m_pOutputForce; // 0x818
+};
+
+// Aligment: 0
+// Size: 2016
+class CTriggerPlayerMovement : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2016
+class CServerRagdollTrigger : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 2
+// Size: 2064
+class CTriggerActiveWeaponDetect : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnTouchedActiveWeapon; // 0x7e0
+	CUtlSymbolLarge m_iszWeaponClassName; // 0x808
+};
+
+// Aligment: 13
+// Size: 2112
+class CTriggerPhysics : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_gravityScale; // 0x7f0
+	float m_linearLimit; // 0x7f4
+	float m_linearDamping; // 0x7f8
+	float m_angularLimit; // 0x7fc
+	float m_angularDamping; // 0x800
+	float m_linearForce; // 0x804
+	float m_flFrequency; // 0x808
+	float m_flDampingRatio; // 0x80c
+	Vector m_vecLinearForcePointAt; // 0x810
+	bool m_bCollapseToForcePoint; // 0x81c
+	Vector m_vecLinearForcePointAtWorld; // 0x820
+	Vector m_vecLinearForceDirection; // 0x82c
+	bool m_bConvertToDebrisWhenPossible; // 0x838
+};
+
+// Aligment: 2
+// Size: 2064
+class CTriggerDetectBulletFire : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bPlayerFireOnly; // 0x7e0
+	CEntityIOOutput m_OnDetectedBulletFire; // 0x7e8
+};
+
+// Aligment: 1
+// Size: 2112
+class CTriggerDetectExplosion : public CBaseTrigger, CBaseToggle, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnDetectedExplosion; // 0x818
+};
+
+// Aligment: 1
+// Size: 1624
 class CScriptNavBlocker : public CFuncNavBlocker, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	Vector m_vExtent; // 0x6f0
+	Vector m_vExtent; // 0x648
 };
 
 // Aligment: 6
-// Size: 2264
+// Size: 2104
 class CBaseFlex : public CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5068,55 +14717,480 @@ public:
 	// MNetworkMinValue "0"
 	// MNetworkMaxValue "1"
 	// MNetworkEncodeFlags
-	CUtlVector< float32 > m_flexWeight; // 0x840
+	CUtlVector< float32 > m_flexWeight; // 0x7a0
 	// MNetworkEnable
 	// MNetworkEnable
 	// MNetworkEncoder
-	Vector m_viewtarget; // 0x858
+	Vector m_viewtarget; // 0x7b8
 	// MNetworkEnable
 	// MNetworkEnable
-	bool m_blinktoggle; // 0x864
-	float m_flAllowResponsesEndTime; // 0x8c0
-	float m_flLastFlexAnimationTime; // 0x8c4
-	bool m_bUpdateLayerPriorities; // 0x8c8
+	bool m_blinktoggle; // 0x7c4
+	float m_flAllowResponsesEndTime; // 0x820
+	float m_flLastFlexAnimationTime; // 0x824
+	bool m_bUpdateLayerPriorities; // 0x828
 };
 
-// Aligment: 9
-// Size: 10504
+// Aligment: 11
+// Size: 10360
 class CFlexCycler : public CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
-	float m_flextime; // 0x8d8
-	float32[2048] m_flextarget; // 0x8e0
-	float m_blinktime; // 0x28e0
-	float m_looktime; // 0x28e4
-	Vector m_lookTarget; // 0x28e8
-	float m_speaktime; // 0x28f4
-	int32_t m_istalking; // 0x28f8
-	int32_t m_phoneme; // 0x28fc
-	HSequence m_hCurrLayerSequence; // 0x2900
+	float m_flextime; // 0x838
+	float32[2048] m_flextarget; // 0x840
+	float m_blinktime; // 0x2840
+	float m_looktime; // 0x2844
+	Vector m_lookTarget; // 0x2848
+	float m_speaktime; // 0x2854
+	int32_t m_istalking; // 0x2858
+	int32_t m_phoneme; // 0x285c
+	HSequence m_hCurrLayerSequence; // 0x2860
+	CUtlSymbolLarge m_iszSentence; // 0x2868
+	int32_t m_sentence; // 0x2870
 };
 
 // Aligment: 9
-// Size: 10576
+// Size: 10432
 class CGenericFlexCycler : public CFlexCycler, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 	// MNetworkEnable
 	// MNetworkEnable
-	int32_t m_nTestMode; // 0x2910
-	int32_t m_nTestIndex; // 0x2914
-	CUtlSymbolLarge m_poseParameterName; // 0x2918
-	bool m_bDoClientSideAnimation; // 0x2920
-	CUtlSymbolLarge[2] m_layerSequence; // 0x2928
-	int32[2] m_nLayerIndex; // 0x2938
-	HSequence[2] m_hBaseSequence; // 0x2940
-	int32_t m_nBoneOverrideIndex; // 0x2948
-	float m_flLastSimTime; // 0x294c
+	int32_t m_nTestMode; // 0x2880
+	int32_t m_nTestIndex; // 0x2884
+	CUtlSymbolLarge m_poseParameterName; // 0x2888
+	bool m_bDoClientSideAnimation; // 0x2890
+	CUtlSymbolLarge[2] m_layerSequence; // 0x2898
+	int32[2] m_nLayerIndex; // 0x28a8
+	HSequence[2] m_hBaseSequence; // 0x28b0
+	int32_t m_nBoneOverrideIndex; // 0x28b8
+	float m_flLastSimTime; // 0x28bc
+};
+
+// Aligment: 8
+// Size: 2168
+class CItem : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnPlayerTouch; // 0x7a8
+	bool m_bActivateWhenAtRest; // 0x7d0
+	CEntityIOOutput m_OnCacheInteraction; // 0x7d8
+	CEntityIOOutput m_OnPlayerPickup; // 0x800
+	CEntityIOOutput m_OnPlayerPulled; // 0x828
+	Vector m_vOriginalSpawnOrigin; // 0x850
+	QAngle m_vOriginalSpawnAngles; // 0x85c
+	bool m_bPhysStartAsleep; // 0x868
+};
+
+// Aligment: 32
+// Size: 2536
+class CItemGeneric : public CItem, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bHasTriggerRadius; // 0x880
+	bool m_bHasPickupRadius; // 0x881
+	float m_flPickupRadiusSqr; // 0x884
+	float m_flTriggerRadiusSqr; // 0x888
+	float m_flLastPickupCheck; // 0x88c
+	bool m_bPlayerCounterListenerAdded; // 0x890
+	bool m_bPlayerInTriggerRadius; // 0x891
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_hSpawnParticleEffect; // 0x898
+	CUtlSymbolLarge m_pAmbientSoundEffect; // 0x8a0
+	bool m_bAutoStartAmbientSound; // 0x8a8
+	CUtlSymbolLarge m_pSpawnScriptFunction; // 0x8b0
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_hPickupParticleEffect; // 0x8b8
+	CUtlSymbolLarge m_pPickupSoundEffect; // 0x8c0
+	CUtlSymbolLarge m_pPickupScriptFunction; // 0x8c8
+	CStrongHandle< InfoForResourceTypeIParticleSystemDefinition > m_hTimeoutParticleEffect; // 0x8d0
+	CUtlSymbolLarge m_pTimeoutSoundEffect; // 0x8d8
+	CUtlSymbolLarge m_pTimeoutScriptFunction; // 0x8e0
+	CUtlSymbolLarge m_pPickupFilterName; // 0x8e8
+	CHandle< CBaseFilter > m_hPickupFilter; // 0x8f0
+	CEntityIOOutput m_OnPickup; // 0x8f8
+	CEntityIOOutput m_OnTimeout; // 0x920
+	CEntityIOOutput m_OnTriggerStartTouch; // 0x948
+	CEntityIOOutput m_OnTriggerTouch; // 0x970
+	CEntityIOOutput m_OnTriggerEndTouch; // 0x998
+	CUtlSymbolLarge m_pAllowPickupScriptFunction; // 0x9c0
+	float m_flPickupRadius; // 0x9c8
+	float m_flTriggerRadius; // 0x9cc
+	CUtlSymbolLarge m_pTriggerSoundEffect; // 0x9d0
+	bool m_bGlowWhenInTrigger; // 0x9d8
+	Color m_glowColor; // 0x9d9
+	bool m_bUseable; // 0x9dd
+	CHandle< CItemGenericTriggerHelper > m_hTriggerHelper; // 0x9e0
+};
+
+// Aligment: 28
+// Size: 2400
+class CRagdollProp : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	ragdoll_t m_ragdoll; // 0x7a8
+	bool m_bStartDisabled; // 0x7e0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	CUtlVector< Vector > m_ragPos; // 0x7e8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	// MNetworkBitCount "13"
+	CUtlVector< QAngle > m_ragAngles; // 0x800
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hRagdollSource; // 0x818
+	uint32_t m_lastUpdateTickCount; // 0x81c
+	bool m_allAsleep; // 0x820
+	bool m_bFirstCollisionAfterLaunch; // 0x821
+	CHandle< CBaseEntity > m_hDamageEntity; // 0x824
+	CHandle< CBaseEntity > m_hKiller; // 0x828
+	CHandle< CBasePlayer > m_hPhysicsAttacker; // 0x82c
+	float m_flLastPhysicsInfluenceTime; // 0x830
+	float m_flFadeOutStartTime; // 0x834
+	float m_flFadeTime; // 0x838
+	// MNetworkDisable
+	Vector m_vecLastOrigin; // 0x83c
+	float m_flAwakeTime; // 0x848
+	float m_flLastOriginChangeTime; // 0x84c
+	int32_t m_nBloodColor; // 0x850
+	CUtlSymbolLarge m_strSourceClassName; // 0x858
+	bool m_bHasBeenPhysgunned; // 0x860
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "1"
+	// MNetworkEncodeFlags
+	float m_flBlendWeight; // 0x864
+	bool m_bDiscoverable; // 0x868
+	float m_flDefaultFadeScale; // 0x86c
+	CUtlVector< Vector > m_ragdollMins; // 0x870
+	CUtlVector< Vector > m_ragdollMaxs; // 0x888
+	bool m_bShouldDeleteActivationRecord; // 0x8a0
+	bool m_bValidatePoweredRagdollPose; // 0x910
+	CUtlString m_sUniqueHammerID; // 0x950
+};
+
+// Aligment: 12
+// Size: 2096
+class CPhysMagnet : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnMagnetAttach; // 0x7a0
+	CEntityIOOutput m_OnMagnetDetach; // 0x7c8
+	float m_massScale; // 0x7f0
+	float m_forceLimit; // 0x7f4
+	float m_torqueLimit; // 0x7f8
+	CUtlVector< magnetted_objects_t > m_MagnettedEntities; // 0x800
+	bool m_bActive; // 0x818
+	bool m_bHasHitSomething; // 0x819
+	float m_flTotalMass; // 0x81c
+	float m_flRadius; // 0x820
+	float m_flNextSuckTime; // 0x824
+	int32_t m_iMaxObjectsAttached; // 0x828
+};
+
+// Aligment: 35
+// Size: 3040
+class CPhysicsProp : public CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_MotionEnabled; // 0x9e0
+	CEntityIOOutput m_OnAwakened; // 0xa08
+	CEntityIOOutput m_OnAwake; // 0xa30
+	CEntityIOOutput m_OnAsleep; // 0xa58
+	CEntityIOOutput m_OnPhysGunPickup; // 0xa80
+	CEntityIOOutput m_OnPhysGunPunt; // 0xaa8
+	CEntityIOOutput m_OnPhysGunOnlyPickup; // 0xad0
+	CEntityIOOutput m_OnPhysGunDrop; // 0xaf8
+	CEntityIOOutput m_OnPlayerUse; // 0xb20
+	CEntityIOOutput m_OnPlayerPickup; // 0xb48
+	CEntityIOOutput m_OnOutOfWorld; // 0xb70
+	float m_massScale; // 0xb98
+	float m_inertiaScale; // 0xb9c
+	int32_t m_damageType; // 0xba0
+	int32_t m_damageToEnableMotion; // 0xba4
+	float m_flForceToEnableMotion; // 0xba8
+	int32_t m_breakableType; // 0xbac
+	bool m_bThrownByPlayer; // 0xbb0
+	bool m_bDroppedByPlayer; // 0xbb1
+	bool m_bTouchedByPlayer; // 0xbb2
+	bool m_bFirstCollisionAfterLaunch; // 0xbb3
+	int32_t m_iExploitableByPlayer; // 0xbb4
+	bool m_bHasBeenAwakened; // 0xbb8
+	bool m_bIsOverrideProp; // 0xbb9
+	float m_fNextCheckDisableMotionContactsTime; // 0xbbc
+	int32_t m_iInitialGlowState; // 0xbc0
+	int32_t m_nGlowRange; // 0xbc4
+	int32_t m_nGlowRangeMin; // 0xbc8
+	Color m_glowColor; // 0xbcc
+	bool m_bForceNavIgnore; // 0xbd0
+	bool m_bShouldAutoConvertBackFromDebris; // 0xbd1
+	bool m_bMuteImpactEffects; // 0xbd2
+	bool m_bAcceptDamageFromHeldObjects; // 0xbd8
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bAwake; // 0xbd9
+	int32_t m_nCollisionGroupOverride; // 0xbdc
+};
+
+// Aligment: 48
+// Size: 2312
+class CBaseCombatWeapon : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseCombatCharacter > m_hOwner; // 0x7a8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "1"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	uint32_t m_nViewModelIndex; // 0x7ac
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flNextPrimaryAttack; // 0x7b0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flNextSecondaryAttack; // 0x7b4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_nQueuedAttack; // 0x7b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	float m_flTimeAttackQueued; // 0x7bc
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_iViewModelIndex; // 0x7c0
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_iWorldModelIndex; // 0x7c8
+	// MNetworkEnable
+	// MNetworkEnable
+	WeaponState_t m_iState; // 0x7d0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iPrimaryAmmoType; // 0x7d4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iSecondaryAmmoType; // 0x7d8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "minusone"
+	// MNetworkPriority "64"
+	int32_t m_iClip1; // 0x7dc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSerializer "minusone"
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	int32_t m_iClip2; // 0x7e0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	bool m_bOnlyPump; // 0x7e4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalWeaponExclusive"
+	// MNetworkPriority "64"
+	float m_flTimeWeaponIdle; // 0x7e8
+	float m_flNextEmptySoundTime; // 0x7ec
+	float m_fMinRange1; // 0x7f0
+	float m_fMinRange2; // 0x7f4
+	float m_fMaxRange1; // 0x7f8
+	float m_fMaxRange2; // 0x7fc
+	float m_fFireDuration; // 0x800
+	float m_fMinAdvanceToRange1; // 0x804
+	int32_t m_Activity; // 0x808
+	int32_t m_iPrimaryAmmoCount; // 0x80c
+	int32_t m_iSecondaryAmmoCount; // 0x810
+	CUtlSymbolLarge m_iszName; // 0x818
+	bool m_bRemoveable; // 0x820
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bInReload; // 0x821
+	bool m_bFireOnEmpty; // 0x822
+	bool m_bFiresUnderwater; // 0x823
+	bool m_bAltFiresUnderwater; // 0x824
+	bool m_bReloadsSingly; // 0x825
+	HSequence m_hIdealSequence; // 0x828
+	int32_t m_IdealActivity; // 0x82c
+	int32_t m_iSubType; // 0x830
+	float m_flUnlockTime; // 0x834
+	CHandle< CBaseEntity > m_hLocker; // 0x838
+	int32_t m_nTracerAttachmentIndex; // 0x83c
+	int32_t m_iAltFireHudHintCount; // 0x850
+	int32_t m_iReloadHudHintCount; // 0x854
+	bool m_bAltFireHudHintDisplayed; // 0x858
+	bool m_bReloadHudHintDisplayed; // 0x859
+	float m_flHudHintPollTime; // 0x85c
+	float m_flHudHintMinDisplayTime; // 0x860
+	CEntityIOOutput m_OnPlayerUse; // 0x868
+	CEntityIOOutput m_OnPlayerPickup; // 0x890
+	CEntityIOOutput m_OnNPCPickup; // 0x8b8
+	CEntityIOOutput m_OnCacheInteraction; // 0x8e0
+};
+
+// Aligment: 14
+// Size: 2064
+class CBaseViewModel : public CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vecLastFacing; // 0x7a8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "1"
+	uint32_t m_nViewModelIndex; // 0x7b4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	uint32_t m_nAnimationParity; // 0x7b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "13"
+	HSequence m_hLayerSequence; // 0x7bc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "2"
+	uint32_t m_nLayer; // 0x7c0
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flAnimationStartTime; // 0x7c4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkChangeCallback "OnWeaponChanged"
+	CHandle< CBaseCombatWeapon > m_hWeapon; // 0x7c8
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hOwner; // 0x7cc
+	int32_t m_Activity; // 0x7d0
+	CUtlSymbolLarge m_sVMName; // 0x7d8
+	CUtlSymbolLarge m_sAnimationPrefix; // 0x7e0
+	HSequence m_hOldLayerSequence; // 0x7e8
+	int32_t m_oldLayer; // 0x7ec
+	float m_oldLayerStartTime; // 0x7f0
+};
+
+// Aligment: 3
+// Size: 2440
+class CEconEntity : public CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	CAttributeContainer m_AttributeManager; // 0x840
+	CHandle< CBaseEntity > m_hOldProvidee; // 0x980
+	int32_t m_iOldOwnerClass; // 0x984
 };
 
 // Aligment: 0
-// Size: 2264
+// Size: 2440
+class CBaseAttributableItem : public CEconEntity, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2448
+class CEconWearable : public CEconEntity, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2448
+class CTFWearableItem : public CEconWearable, CEconEntity, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 1
+// Size: 10368
+class CFlexExpresserShim : public CFlexCycler, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CAI_Expresser* m_pExpresser; // 0x2878
+};
+
+// Aligment: 1
+// Size: 10384
+class CFlexExpresser : public CFlexExpresserShim, CFlexCycler, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	float m_flThenAnyMaxDist; // 0x2888
+};
+
+// Aligment: 19
+// Size: 2912
+class CDevtestHierarchy : public CDynamicProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vRotationAxis; // 0xaf8
+	float m_flRotationSpeed; // 0xb04
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nTestMode; // 0xb08
+	CHandle< CBaseEntity > m_hChild; // 0xb0c
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_attachName; // 0xb10
+	// MNetworkEnable
+	// MNetworkEnable
+	Vector m_vDynamicAttachOffset; // 0xb14
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_nDynamicResetCount; // 0xb20
+	int32_t m_nDynamicDetachCount; // 0xb24
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bChildIsDynamic; // 0xb28
+	// MNetworkEnable
+	// MNetworkEnable
+	bool m_bCreateChildSideChild; // 0xb29
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_alternateAttachName; // 0xb2c
+	CHandle< CBaseEntity > m_hAlternateParent; // 0xb30
+	CStrongHandle< InfoForResourceTypeCModel > m_hAlternateModel; // 0xb38
+	CStrongHandle< InfoForResourceTypeCModel > m_hOriginalModel; // 0xb40
+	// MNetworkEnable
+	// MNetworkEnable
+	CStrongHandle< InfoForResourceTypeCModel > m_hClientSideChildModel; // 0xb48
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flEntityStartTime; // 0xb50
+	int32_t m_nTestIndex; // 0xb54
+	HierarchyType_t m_nCurrType; // 0xb58
+	int32_t m_nCurrentModel; // 0xb5c
+};
+
+// Aligment: 0
+// Size: 2808
+class CDevtestHierarchyChild : public CDynamicProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 1952
+class CDevtestHierarchy2 : public CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 2104
 class CBaseFlexAlias_funCBaseFlex : public CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
@@ -5124,10 +15198,455 @@ public:
 };
 
 // Aligment: 0
-// Size: 10576
+// Size: 10432
 class CGenericFlexCyclerAlias_cycler : public CGenericFlexCycler, CFlexCycler, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
 {
 public:
 // <no members described>
 };
 
+// Aligment: 2
+// Size: 2216
+class CScriptItem : public CItem, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	CEntityIOOutput m_OnPlayerPickup; // 0x878
+	MoveType_t m_MoveTypeOverride; // 0x8a0
+};
+
+// Aligment: 0
+// Size: 2400
+class CRagdollPropAlias_physics_prop_ragdoll : public CRagdollProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 6
+// Size: 2464
+class CRagdollPropAttached : public CRagdollProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_boneIndexAttached; // 0x960
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	uint32_t m_ragdollAttachedObjectIndex; // 0x964
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_attachmentPointBoneSpace; // 0x968
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_attachmentPointRagdollSpace; // 0x974
+	bool m_bShouldDetach; // 0x980
+	bool m_bShouldDeleteAttachedActivationRecord; // 0x990
+};
+
+// Aligment: 0
+// Size: 3040
+class CPhysicsPropAlias_physics_prop : public CPhysicsProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 0
+// Size: 3040
+class CPhysicsPropOverride : public CPhysicsProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 5
+// Size: 3096
+class CPhysicsPropRespawnable : public CPhysicsProp, CBreakableProp, CBaseProp, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	Vector m_vOriginalSpawnOrigin; // 0xbe0
+	QAngle m_vOriginalSpawnAngles; // 0xbec
+	Vector m_vOriginalMins; // 0xbf8
+	Vector m_vOriginalMaxs; // 0xc04
+	float m_flRespawnDuration; // 0xc10
+};
+
+// Aligment: 31
+// Size: 2616
+class CBaseCombatCharacter : public CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	bool m_bForceServerRagdoll; // 0x838
+	bool m_bPreventWeaponPickup; // 0x839
+	bool m_bApplyStressDamage; // 0x83a
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSendProxyRecipientsFilter
+	float m_flNextAttack; // 0x83c
+	Hull_t m_eHull; // 0x840
+	uint32_t m_navHullCategory; // 0x844
+	int32_t m_bloodColor; // 0x848
+	// MNetworkEnable
+	float m_flFieldOfView; // 0x84c
+	Vector m_HackedGunPos; // 0x850
+	CUtlSymbolLarge m_RelationshipString; // 0x860
+	float m_impactEnergyScale; // 0x868
+	int32_t m_LastHitGroup; // 0x86c
+	float m_flDamageAccumulator; // 0x870
+	int32_t m_iDamageCount; // 0x874
+	WeaponProficiency_t m_CurrentWeaponProficiency; // 0x878
+	CUtlVector< Relationship_t > m_Relationship; // 0x880
+	int32_t m_nFaction; // 0x898
+	CUtlVector< CHandle< CBaseEntity > > m_hTriggerFogList; // 0x8a0
+	CHandle< CBaseEntity > m_hLastFogTrigger; // 0x8b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "10"
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	uint32[32] m_iAmmo; // 0x8bc
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CBaseCombatWeapon > > m_hMyWeapons; // 0x940
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseCombatWeapon > m_hActiveWeapon; // 0x958
+	IntervalTimer m_aliveTimer; // 0x960
+	uint32_t m_hasBeenInjured; // 0x970
+	CBaseCombatCharacter::DamageHistory[4] m_damageHistory; // 0x978
+	int32_t m_registeredNavTeam; // 0x9f8
+	int32_t m_navMeshID; // 0x9fc
+	CountdownTimer m_footstepTimer; // 0xa00
+	int32_t m_spawnID; // 0xa10
+	Vector m_vecSpawnOrigin; // 0xa14
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlVector< CHandle< CEconWearable > > m_hMyWearables; // 0xa20
+public:
+	static int32_t &Get_m_lastInteraction() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fiels[0]->m_instance); }
+	static Relationship_t** &Get_m_DefaultRelationship() { return *reinterpret_cast<Relationship_t***>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fiels[1]->m_instance); }
+	static Relationship_t** &Get_m_FactionRelationship() { return *reinterpret_cast<Relationship_t***>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fiels[2]->m_instance); }
+	static CUtlVector< CUtlVector< CHandle< CBaseEntity > > > &Get_m_aFactions() { return *reinterpret_cast<CUtlVector< CUtlVector< CHandle< CBaseEntity > > >*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fiels[3]->m_instance); }
+	static int32_t &Get_m_nextSpawnID() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBaseCombatCharacter")->m_static_fiels[4]->m_instance); }
+};
+
+// Aligment: 175
+// Size: 5392
+class CBasePlayer : public CBaseCombatCharacter, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_StuckLast; // 0xa38
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkSendProxyRecipientsFilter
+	CPlayerLocalData m_Local; // 0xa40
+	// MNetworkEnable
+	// MNetworkEnable
+	fogplayerparams_t m_PlayerFog; // 0xc68
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPostProcessController > m_hPostProcessCtrl; // 0xcc0
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CColorCorrection > m_hColorCorrectionCtrl; // 0xcc4
+	CUtlVector< CHandle< CBaseEntity > > m_hTriggerSoundscapeList; // 0xcc8
+	CPlayerState m_pl; // 0xce0
+	uint64_t m_nButtons; // 0xd28
+	uint64_t m_afButtonPressed; // 0xd30
+	uint64_t m_afButtonReleased; // 0xd38
+	uint64_t m_afButtonLast; // 0xd40
+	uint64_t m_afButtonDisabled; // 0xd48
+	uint64_t m_afButtonForced; // 0xd50
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	bool m_fOnTarget; // 0xd58
+	char[32] m_szAnimExtension; // 0xd59
+	int32_t m_nUpdateRate; // 0xd7c
+	float m_fLerpTime; // 0xd80
+	bool m_bLagCompensation; // 0xd84
+	bool m_bPredictWeapons; // 0xd85
+	int32_t m_Activity; // 0xd88
+	Vector m_vecAdditionalPVSOrigin; // 0xd8c
+	Vector m_vecCameraPVSOrigin; // 0xd98
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< CBaseEntity > m_hUseEntity; // 0xda4
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hHeldEntity; // 0xda8
+	float m_flPreventUseTime; // 0xdac
+	int32_t m_iTrain; // 0xdb0
+	float m_iRespawnFrames; // 0xdb4
+	uint32_t m_afPhysicsFlags; // 0xdb8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< CBaseEntity > m_hVehicle; // 0xdbc
+	int32_t m_iVehicleAnalogBias; // 0xdc0
+	bool m_bPauseBonusProgress; // 0xdc4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "15"
+	int32_t m_iBonusProgress; // 0xdc8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "4"
+	int32_t m_iBonusChallenge; // 0xdcc
+	int32_t m_lastDamageAmount; // 0xdd0
+	float m_fTimeLastHurt; // 0xdd4
+	Vector m_DmgOrigin; // 0xdd8
+	float m_DmgTake; // 0xde4
+	float m_DmgSave; // 0xde8
+	int32_t m_bitsDamageType; // 0xdec
+	int32_t m_bitsHUDDamage; // 0xdf0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flDeathTime; // 0xdf4
+	float m_flDeathAnimTime; // 0xdf8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "3"
+	uint8_t m_iObserverMode; // 0xdfc
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iFOV; // 0xe00
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iDefaultFOV; // 0xe04
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "8"
+	uint32_t m_iFOVStart; // 0xe08
+	// MNetworkEnable
+	// MNetworkEnable
+	float m_flFOVTime; // 0xe0c
+	int32_t m_iObserverLastMode; // 0xe10
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hObserverTarget; // 0xe14
+	bool m_bForcedObserverMode; // 0xe18
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseEntity > m_hZoomOwner; // 0xe1c
+	float m_tbdPrev; // 0xe20
+	int32_t m_idrowndmg; // 0xe24
+	int32_t m_idrownrestored; // 0xe28
+	int32_t m_nPoisonDmg; // 0xe2c
+	int32_t m_nPoisonRestored; // 0xe30
+	ParticleIndex_t m_nPoisonAmtFXIndex; // 0xe34
+	ParticleIndex_t m_nPoisonPulseFXIndex; // 0xe38
+	uint8[8] m_rgbTimeBasedDamage; // 0xe3c
+	int32_t m_vphysicsCollisionState; // 0xe44
+	float m_fNextSuicideTime; // 0xe48
+	int32_t m_iSuicideCustomKillFlags; // 0xe4c
+	float m_fDelay; // 0xe50
+	float m_fReplayEnd; // 0xe54
+	CEntityIndex m_iReplayEntity; // 0xe58
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< CBaseEntity > m_hTonemapController; // 0xe5c
+	int32_t m_nHighestCommandNumberReceived; // 0xe90
+	IPhysicsPlayerController* m_pPhysicsController; // 0xe98
+	Vector m_oldOrigin; // 0xeb0
+	Vector m_vecSmoothedVelocity; // 0xebc
+	bool m_touchedPhysObject; // 0xec8
+	bool m_bPhysicsWasFrozen; // 0xec9
+	int32_t m_iPlayerSound; // 0xecc
+	int32_t m_iTargetVolume; // 0xed0
+	int32[5] m_rgItems; // 0xed4
+	IntervalTimer m_lastHeldVoteTimer; // 0xee8
+	float m_flgeigerRange; // 0xef8
+	float m_flgeigerDelay; // 0xefc
+	int32_t m_igeigerRangePrev; // 0xf00
+	bool m_fInitHUD; // 0xf04
+	bool m_fGameHUDInitialized; // 0xf05
+	bool m_fWeapon; // 0xf06
+	int32_t m_iUpdateTime; // 0xf08
+	int32_t m_iFrags; // 0xf0c
+	int32_t m_iDeaths; // 0xf10
+	float m_flNextDecalTime; // 0xf14
+	float m_flNextTauntTime; // 0xf18
+	PlayerConnectedState m_iConnected; // 0xf1c
+	bool m_bIsLowViolence; // 0xf20
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_ArmorValue; // 0xf24
+	float m_AirFinished; // 0xf28
+	float m_PainFinished; // 0xf2c
+	int32_t m_iPlayerLocked; // 0xf30
+	CSimpleSimTimer m_AutoaimTimer; // 0xf34
+	QAngle m_vecAutoAim; // 0xf38
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CBaseViewModel >[2] m_hViewModel; // 0xf44
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPropHMDAvatar > m_hPropHMDAvatar; // 0xf4c
+	// MNetworkEnable
+	// MNetworkEnable
+	CHandle< CPointHMDAnchor > m_hPointHMDAnchor; // 0xf50
+	Vector m_vecLastAnchorPosition; // 0xf58
+	bool m_bReceivedInitialAnchorPos; // 0xf64
+	Vector m_vPausedPos; // 0xf68
+	QAngle m_qPausedAngles; // 0xf74
+	Vector m_vTransitionPosition; // 0xf80
+	QAngle m_qTransitionAngles; // 0xf8c
+	bool m_bSaveLoad; // 0xf98
+	Vector m_vSaveLoadPosition; // 0xf9c
+	QAngle m_qSaveLoadAngles; // 0xfa8
+	// MNetworkEnable
+	// MNetworkEnable
+	int32_t m_VRControllerType; // 0xfb4
+	IntervalTimer m_timeSinceCommandSimulated; // 0x1308
+	float m_flStepSoundTime; // 0x1318
+	bool m_bAllowInstantSpawn; // 0x131c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkBitCount "12"
+	// MNetworkMinValue "0"
+	// MNetworkMaxValue "2048"
+	// MNetworkEncodeFlags
+	float m_flMaxspeed; // 0x1320
+	// MNetworkEnable
+	// MNetworkEnable
+	CUtlStringToken m_ladderSurfaceProps; // 0x1324
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkEncoder
+	Vector m_vecLadderNormal; // 0x1328
+	float m_flWaterJumpTime; // 0x1334
+	Vector m_vecWaterJumpVel; // 0x1338
+	int32_t m_nImpulse; // 0x1344
+	float m_flSwimSoundTime; // 0x1348
+	float m_flFlashTime; // 0x134c
+	int32_t m_nDrownDmgRate; // 0x1350
+	int32_t m_nNumCrouches; // 0x1354
+	bool m_bDuckToggled; // 0x1358
+	float m_flForwardMove; // 0x135c
+	float m_flSideMove; // 0x1360
+	int32_t m_nNumCrateHudHints; // 0x1364
+	bool m_bGamePaused; // 0x1368
+	Vector m_vForcedOrigin; // 0x136c
+	bool m_bForceOrigin; // 0x1378
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkPriority "1"
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	uint32_t m_nTickBase; // 0x137c
+	int32_t m_nOldTickBase; // 0x1380
+	float m_fLastPlayerTalkTime; // 0x1384
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< CBaseCombatWeapon > m_hLastWeapon; // 0x1388
+	float m_flOldPlayerZ; // 0x138c
+	float m_flOldPlayerViewOffsetZ; // 0x1390
+	bool m_bPlayerUnderwater; // 0x1394
+	float m_flLastAttackTime; // 0x1398
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "Player"
+	CHandle< CBaseEntity > m_hViewEntity; // 0x139c
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	CHandle< CBaseEntity > m_hConstraintEntity; // 0x13a0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	Vector m_vecConstraintCenter; // 0x13a4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintRadius; // 0x13b0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintWidth; // 0x13b4
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flConstraintSpeedFactor; // 0x13b8
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	bool m_bConstraintPastRadius; // 0x13bc
+	char[32] m_szNetname; // 0x13bd
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	float m_flLaggedMovementValue; // 0x13e0
+	Vector m_vNewVPhysicsPosition; // 0x13e4
+	Vector m_vNewVPhysicsVelocity; // 0x13f0
+	Vector m_vecVehicleViewOrigin; // 0x13fc
+	QAngle m_vecVehicleViewAngles; // 0x1408
+	float m_flVehicleViewFOV; // 0x1414
+	int32_t m_nVehicleViewSavedFrame; // 0x1418
+	Vector m_vecPreviouslyPredictedOrigin; // 0x141c
+	int32_t m_nBodyPitchPoseParam; // 0x1428
+	// MNetworkEnable
+	// MNetworkEnable
+	char[18] m_szLastPlaceName; // 0x142c
+	char[64] m_szNetworkIDString; // 0x143e
+	CPlayerInfo m_PlayerInfo; // 0x1480
+	CUtlStringToken m_surfaceProps; // 0x1498
+	float m_surfaceFriction; // 0x14a8
+	char m_chTextureType; // 0x14ac
+	char m_chPreviousTextureType; // 0x14ad
+	bool m_bSinglePlayerGameEnding; // 0x14ae
+	CHandle< CBaseEntity > m_hPlayerProxy; // 0x14b0
+	bool m_bhasHaptics; // 0x14b4
+	bool m_autoKickDisabled; // 0x14b5
+	Vector m_movementCollisionNormal; // 0x14b8
+	Vector m_groundNormal; // 0x14c4
+	CHandle< CBaseCombatCharacter > m_stuckCharacter; // 0x14d0
+	float m_lastEntitySteadyState; // 0x14d4
+	int32_t m_availableEntitySteadyState; // 0x14d8
+	CBitVec< 64 > m_playerInPVS; // 0x14dc
+	bool m_hasAnySteadyStateEnts; // 0x14e4
+	bool m_bSplitScreenPlayer; // 0x14e5
+	CHandle< CBasePlayer > m_hSplitOwner; // 0x14e8
+	CUtlVector< CHandle< CBasePlayer > > m_hSplitScreenPlayers; // 0x14f0
+	// MNetworkEnable
+	// MNetworkEnable
+	// MNetworkUserGroup "LocalPlayerExclusive"
+	uint64_t m_nUnHoldableButtons; // 0x1508
+public:
+	static bool &Get_ms_bUseSessionPersisterPosAng() { return *reinterpret_cast<bool*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBasePlayer")->m_static_fiels[0]->m_instance); }
+	static Vector &Get_ms_vSessionPersisterPosition() { return *reinterpret_cast<Vector*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBasePlayer")->m_static_fiels[1]->m_instance); }
+	static QAngle &Get_ms_angSessionPersisterAngles() { return *reinterpret_cast<QAngle*>(interfaces::g_schema->FindTypeScopeForModule("server.dll")->FindDeclaredClass("CBasePlayer")->m_static_fiels[2]->m_instance); }
+};
+
+// Aligment: 0
+// Size: 5392
+class CDACPlayer : public CBasePlayer, CBaseCombatCharacter, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+// <no members described>
+};
+
+// Aligment: 9
+// Size: 5448
+class CBaseMultiplayerPlayer : public CBasePlayer, CBaseCombatCharacter, CBaseFlex, CBaseAnimatingOverlay, CBaseAnimating, CBaseModelEntity, CBaseEntity, CGameEntity, CEntityInstance, IHandleEntity
+{
+public:
+	int32_t m_iIgnoreGlobalChat; // 0x1518
+	float m_flAreaCaptureScoreAccumulator; // 0x151c
+	float m_flCapPointScoreRate; // 0x1520
+	int32_t m_iCurrentConcept; // 0x1524
+	CMultiplayer_Expresser* m_pExpresser; // 0x1528
+	float m_flConnectionTime; // 0x1530
+	float m_flLastForcedChangeTeamTime; // 0x1534
+	int32_t m_iBalanceScore; // 0x1538
+	KeyValues* m_pAchievementKV; // 0x1540
+};
+
diff --git a/sdk/soundsystem.hpp b/sdk/soundsystem.hpp
index ce3a77c7..bfbc6bb5 100644
--- a/sdk/soundsystem.hpp
+++ b/sdk/soundsystem.hpp
@@ -4,7 +4,7 @@
 
 ///////////////////////////////////////////
 // Binary: soundsystem.dll
-// Class Count: 16
+// Class Count: 15
 // Enum Count: 7
 ///////////////////////////////////////////
 
@@ -69,7 +69,7 @@ enum class vmix_filter_type_t : uint16_t
 };
 
 // Aligment: 2
-// Size: 13
+// Size: 12
 enum class vmix_processor_type_t : uint16_t
 {
 	VPROCESSOR_UNKNOWN = 0,
@@ -84,7 +84,6 @@ enum class vmix_processor_type_t : uint16_t
 	VPROCESSOR_STEAMAUDIO_PATHING = 9,
 	VPROCESSOR_EQ8 = 10,
 	VPROCESSOR_ENVELOPE = 11,
-	VPROCESSOR_VOCODER = 12,
 };
 
 // Aligment: 3
@@ -269,31 +268,12 @@ public:
 	float m_flReleaseTimeMS; // 0x8
 };
 
-// Aligment: 4
-// Size: 16
+// Aligment: 2
+// Size: 8
 struct vmix_pitch_shift_desc_t
 {
 public:
 	int32_t m_nGrainSampleCount; // 0x0
 	float m_flPitchShift; // 0x4
-	int32_t m_nQuality; // 0x8
-	int32_t m_nProcType; // 0xc
-};
-
-// Aligment: 10
-// Size: 40
-struct vmix_vocoder_desc_t
-{
-public:
-	int32_t m_nBandCount; // 0x0
-	float m_flBandwidth; // 0x4
-	float m_fldBModGain; // 0x8
-	float m_flFreqRangeStart; // 0xc
-	float m_flFreqRangeEnd; // 0x10
-	float m_fldBUnvoicedGain; // 0x14
-	float m_flAttackTimeMS; // 0x18
-	float m_flReleaseTimeMS; // 0x1c
-	int32_t m_nDebugBand; // 0x20
-	bool m_bPeakMode; // 0x24
 };
 
diff --git a/sdk/vphysics2.hpp b/sdk/vphysics2.hpp
index 75363861..ca4545aa 100644
--- a/sdk/vphysics2.hpp
+++ b/sdk/vphysics2.hpp
@@ -4,8 +4,8 @@
 
 ///////////////////////////////////////////
 // Binary: vphysics2.dll
-// Class Count: 147
-// Enum Count: 18
+// Class Count: 157
+// Enum Count: 20
 ///////////////////////////////////////////
 
 // Aligment: 4
@@ -62,7 +62,14 @@ enum class VPhysXAggregateData_t::VPhysXFlagEnum_t : uint32_t
 {
 	VPhysXAggregateData_t::FLAG_IS_POLYSOUP_GEOMETRY = 0x1,
 	VPhysXAggregateData_t::FLAG_LEVEL_COLLISION = 0x10,
-	VPhysXAggregateData_t::FLAG_IGNORE_SCALE_OBSOLETE_DO_NOT_USE = 0x20,
+	VPhysXAggregateData_t::FLAG_IGNORE_SCALE = 0x20,
+};
+
+// Aligment: 4
+// Size: 1
+enum class VPhysXDiskShapeHeader_t::VersinEnum_t : uint32_t
+{
+	VPhysXDiskShapeHeader_t::VERSION = 0x81,
 };
 
 // Aligment: 4
@@ -75,17 +82,19 @@ enum class MeshTranslucencyType_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 8
+// Size: 10
 enum class MeshDrawPrimitiveFlags_t : uint32_t
 {
 	MESH_DRAW_FLAGS_NONE = 0x0,
 	MESH_DRAW_FLAGS_USE_SHADOW_FAST_PATH = 0x1,
 	MESH_DRAW_FLAGS_USE_COMPRESSED_NORMAL_TANGENT = 0x2,
+	MESH_DRAW_FLAGS_IS_OCCLUDER = 0x4,
 	MESH_DRAW_INPUT_LAYOUT_IS_NOT_MATCHED_TO_MATERIAL = 0x8,
 	MESH_DRAW_FLAGS_USE_COMPRESSED_PER_VERTEX_LIGHTING = 0x10,
 	MESH_DRAW_FLAGS_USE_UNCOMPRESSED_PER_VERTEX_LIGHTING = 0x20,
 	MESH_DRAW_FLAGS_CAN_BATCH_WITH_DYNAMIC_SHADER_CONSTANTS = 0x40,
 	MESH_DRAW_FLAGS_DRAW_LAST = 0x80,
+	MESH_DRAW_FLAGS_HAS_LIGHTING_BASIS = 0x100,
 };
 
 // Aligment: 4
@@ -148,6 +157,17 @@ enum class ModelBoneFlexComponent_t : uint32_t
 	MODEL_BONE_FLEX_TZ = 0x2,
 };
 
+// Aligment: 4
+// Size: 5
+enum class ModelConfigAttachmentType_t : uint32_t
+{
+	MODEL_CONFIG_ATTACHMENT_INVALID = 0xffffffffffffffff,
+	MODEL_CONFIG_ATTACHMENT_BONE_OR_ATTACHMENT = 0x0,
+	MODEL_CONFIG_ATTACHMENT_ROOT_RELATIVE = 0x1,
+	MODEL_CONFIG_ATTACHMENT_BONEMERGE = 0x2,
+	MODEL_CONFIG_ATTACHMENT_COUNT = 0x3,
+};
+
 // Aligment: 4
 // Size: 26
 enum class FlexOpCode_t : uint32_t
@@ -301,7 +321,7 @@ public:
 };
 
 // Aligment: 98
-// Size: 1512
+// Size: 1408
 struct PhysFeModelDesc_t
 {
 public:
@@ -322,87 +342,87 @@ public:
 	uint16_t m_nQuadCount2; // 0x50
 	uint16_t m_nCollisionSphereInclusiveCount; // 0x52
 	uint16_t m_nTreeDepth; // 0x54
-	uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x56
-	uint16_t m_nRopeCount; // 0x58
-	CUtlVector< uint16 > m_Ropes; // 0x60
-	CUtlVector< FeNodeBase_t > m_NodeBases; // 0x78
-	CUtlVector< FeSimdNodeBase_t > m_SimdNodeBases; // 0x90
-	CUtlVector< FeQuad_t > m_Quads; // 0xa8
-	CUtlVector< FeSimdQuad_t > m_SimdQuads; // 0xc0
-	CUtlVector< FeSimdTri_t > m_SimdTris; // 0xd8
-	CUtlVector< FeSimdRodConstraint_t > m_SimdRods; // 0xf0
-	CUtlVector< CTransform > m_InitPose; // 0x108
-	CUtlVector< FeRodConstraint_t > m_Rods; // 0x120
-	CUtlVector< FeAxialEdgeBend_t > m_AxialEdges; // 0x138
-	CUtlVector< float32 > m_NodeInvMasses; // 0x150
-	CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x168
-	CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x180
-	CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x198
-	CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1b0
-	CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1c8
-	CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e0
-	CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x1f8
-	CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x210
-	CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x228
-	CUtlVector< float32 > m_LegacyStretchForce; // 0x240
-	CUtlVector< float32 > m_NodeCollisionRadii; // 0x258
-	CUtlVector< float32 > m_DynNodeFriction; // 0x270
-	CUtlVector< float32 > m_LocalRotation; // 0x288
-	CUtlVector< float32 > m_LocalForce; // 0x2a0
-	CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2b8
-	CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d0
-	CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2e8
-	CUtlVector< uint16 > m_WorldCollisionNodes; // 0x300
-	CUtlVector< uint16 > m_TreeParents; // 0x318
-	CUtlVector< uint16 > m_TreeCollisionMasks; // 0x330
-	CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x348
-	CUtlVector< uint16 > m_FreeNodes; // 0x360
-	CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x378
-	CUtlVector< FeFitWeight_t > m_FitWeights; // 0x390
-	CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3a8
-	CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3c0
-	CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3d8
-	CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x3f0
-	CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x408
-	CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x420
-	CUtlVector< uint16 > m_SourceElems; // 0x438
-	CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x450
-	CUtlVector< FeTri_t > m_Tris; // 0x468
-	uint16_t m_nTriCount1; // 0x480
-	uint16_t m_nTriCount2; // 0x482
-	uint8_t m_nReservedUint8; // 0x484
-	uint8_t m_nExtraPressureIterations; // 0x485
-	uint8_t m_nExtraGoalIterations; // 0x486
-	uint8_t m_nExtraIterations; // 0x487
-	CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x488
-	CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4a0
-	CUtlVector< uint32 > m_VertexSetNames; // 0x4b8
-	CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4d0
-	CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x4e8
-	CUtlVector< uint8 > m_MorphSetData; // 0x500
-	CUtlVector< FeVertexMapDesc_t > m_VertexMaps; // 0x518
-	CUtlVector< uint8 > m_VertexMapValues; // 0x530
-	CUtlVector< FeEffectDesc_t > m_Effects; // 0x548
-	CUtlVector< FeCtrlOffset_t > m_LockToParent; // 0x560
-	CUtlVector< uint16 > m_LockToGoal; // 0x578
-	CUtlVector< FeNodeWindBase_t > m_DynNodeWindBases; // 0x590
-	float m_flInternalPressure; // 0x5a8
-	float m_flDefaultTimeDilation; // 0x5ac
-	float m_flWindage; // 0x5b0
-	float m_flWindDrag; // 0x5b4
-	float m_flDefaultSurfaceStretch; // 0x5b8
-	float m_flDefaultThreadStretch; // 0x5bc
-	float m_flDefaultGravityScale; // 0x5c0
-	float m_flDefaultVelAirDrag; // 0x5c4
-	float m_flDefaultExpAirDrag; // 0x5c8
-	float m_flDefaultVelQuadAirDrag; // 0x5cc
-	float m_flDefaultExpQuadAirDrag; // 0x5d0
-	float m_flRodVelocitySmoothRate; // 0x5d4
-	float m_flQuadVelocitySmoothRate; // 0x5d8
-	float m_flAddWorldCollisionRadius; // 0x5dc
-	float m_flDefaultVolumetricSolveAmount; // 0x5e0
-	uint16_t m_nRodVelocitySmoothIterations; // 0x5e4
-	uint16_t m_nQuadVelocitySmoothIterations; // 0x5e6
+	uint16_t m_nFitMatrixCount1; // 0x56
+	uint16_t m_nFitMatrixCount2; // 0x58
+	uint16_t m_nSimdFitMatrixCount1; // 0x5a
+	uint16_t m_nSimdFitMatrixCount2; // 0x5c
+	uint16_t m_nNodeBaseJiggleboneDependsCount; // 0x5e
+	uint16_t m_nRopeCount; // 0x60
+	CUtlVector< uint16 > m_Ropes; // 0x68
+	CUtlVector< FeNodeBase_t > m_NodeBases; // 0x80
+	CUtlVector< FeSimdNodeBase_t > m_SimdNodeBases; // 0x98
+	CUtlVector< FeQuad_t > m_Quads; // 0xb0
+	CUtlVector< FeSimdQuad_t > m_SimdQuads; // 0xc8
+	CUtlVector< FeSimdTri_t > m_SimdTris; // 0xe0
+	CUtlVector< FeSimdRodConstraint_t > m_SimdRods; // 0xf8
+	CUtlVector< CTransform > m_InitPose; // 0x110
+	CUtlVector< FeRodConstraint_t > m_Rods; // 0x128
+	CUtlVector< FeAxialEdgeBend_t > m_AxialEdges; // 0x140
+	CUtlVector< float32 > m_NodeInvMasses; // 0x158
+	CUtlVector< FeCtrlOffset_t > m_CtrlOffsets; // 0x170
+	CUtlVector< FeCtrlOsOffset_t > m_CtrlOsOffsets; // 0x188
+	CUtlVector< FeFollowNode_t > m_FollowNodes; // 0x1a0
+	CUtlVector< FeCollisionSphere_t > m_CollisionSpheres; // 0x1b8
+	CUtlVector< FeCollisionPlane_t > m_CollisionPlanes; // 0x1d0
+	CUtlVector< FeNodeIntegrator_t > m_NodeIntegrator; // 0x1e8
+	CUtlVector< FeSpringIntegrator_t > m_SpringIntegrator; // 0x200
+	CUtlVector< FeSimdSpringIntegrator_t > m_SimdSpringIntegrator; // 0x218
+	CUtlVector< FeWorldCollisionParams_t > m_WorldCollisionParams; // 0x230
+	CUtlVector< float32 > m_LegacyStretchForce; // 0x248
+	CUtlVector< float32 > m_NodeCollisionRadii; // 0x260
+	CUtlVector< float32 > m_DynNodeFriction; // 0x278
+	CUtlVector< float32 > m_LocalRotation; // 0x290
+	CUtlVector< float32 > m_LocalForce; // 0x2a8
+	CUtlVector< FeTaperedCapsuleStretch_t > m_TaperedCapsuleStretches; // 0x2c0
+	CUtlVector< FeTaperedCapsuleRigid_t > m_TaperedCapsuleRigids; // 0x2d8
+	CUtlVector< FeSphereRigid_t > m_SphereRigids; // 0x2f0
+	CUtlVector< uint16 > m_WorldCollisionNodes; // 0x308
+	CUtlVector< uint16 > m_TreeParents; // 0x320
+	CUtlVector< uint16 > m_TreeCollisionMasks; // 0x338
+	CUtlVector< FeTreeChildren_t > m_TreeChildren; // 0x350
+	CUtlVector< uint16 > m_FreeNodes; // 0x368
+	CUtlVector< FeFitMatrix_t > m_FitMatrices; // 0x380
+	CUtlVector< FeSimdFitMatrices_t > m_SimdFitMatrices; // 0x398
+	CUtlVector< FeFitWeight_t > m_FitWeights; // 0x3b0
+	CUtlVector< FeNodeReverseOffset_t > m_ReverseOffsets; // 0x3c8
+	CUtlVector< FeAnimStrayRadius_t > m_AnimStrayRadii; // 0x3e0
+	CUtlVector< FeSimdAnimStrayRadius_t > m_SimdAnimStrayRadii; // 0x3f8
+	CUtlVector< FeKelagerBend2_t > m_KelagerBends; // 0x410
+	CUtlVector< FeCtrlSoftOffset_t > m_CtrlSoftOffsets; // 0x428
+	CUtlVector< CFeIndexedJiggleBone > m_JiggleBones; // 0x440
+	CUtlVector< uint16 > m_SourceElems; // 0x458
+	CUtlVector< uint32 > m_GoalDampedSpringIntegrators; // 0x470
+	CUtlVector< FeTri_t > m_Tris; // 0x488
+	uint16_t m_nTriCount1; // 0x4a0
+	uint16_t m_nTriCount2; // 0x4a2
+	uint8_t m_nReservedUint8; // 0x4a4
+	uint8_t m_nExtraPressureIterations; // 0x4a5
+	uint8_t m_nExtraGoalIterations; // 0x4a6
+	uint8_t m_nExtraIterations; // 0x4a7
+	CUtlVector< FeBoxRigid_t > m_BoxRigids; // 0x4a8
+	CUtlVector< uint8 > m_DynNodeVertexSet; // 0x4c0
+	CUtlVector< uint32 > m_VertexSetNames; // 0x4d8
+	CUtlVector< FeRigidColliderIndices_t > m_RigidColliderPriorities; // 0x4f0
+	CUtlVector< FeMorphLayerDepr_t > m_MorphLayers; // 0x508
+	CUtlVector< uint8 > m_MorphSetData; // 0x520
+	float m_flInternalPressure; // 0x538
+	float m_flWindage; // 0x53c
+	float m_flWindDrag; // 0x540
+	float m_flDefaultSurfaceStretch; // 0x544
+	float m_flDefaultThreadStretch; // 0x548
+	float m_flDefaultGravityScale; // 0x54c
+	float m_flDefaultVelAirDrag; // 0x550
+	float m_flDefaultExpAirDrag; // 0x554
+	float m_flDefaultVelQuadAirDrag; // 0x558
+	float m_flDefaultExpQuadAirDrag; // 0x55c
+	float m_flDefaultVelRodAirDrag; // 0x560
+	float m_flDefaultExpRodAirDrag; // 0x564
+	float m_flRodVelocitySmoothRate; // 0x568
+	float m_flQuadVelocitySmoothRate; // 0x56c
+	float m_flAddWorldCollisionRadius; // 0x570
+	float m_flDefaultVolumetricSolveAmount; // 0x574
+	uint16_t m_nRodVelocitySmoothIterations; // 0x578
+	uint16_t m_nQuadVelocitySmoothIterations; // 0x57a
 };
 
 // Aligment: 2
@@ -463,15 +483,6 @@ public:
 	uint16_t nReserved; // 0x16
 };
 
-// Aligment: 2
-// Size: 12
-struct FeStiffHingeBuild_t
-{
-public:
-	float flMaxAngle; // 0x0
-	uint16[3] nNode; // 0x4
-};
-
 // Aligment: 5
 // Size: 28
 struct FeTri_t
@@ -520,17 +531,6 @@ public:
 	Quaternion qAdjust; // 0x10
 };
 
-// Aligment: 4
-// Size: 8
-struct FeNodeWindBase_t
-{
-public:
-	uint16_t nNodeX0; // 0x0
-	uint16_t nNodeX1; // 0x2
-	uint16_t nNodeY0; // 0x4
-	uint16_t nNodeY1; // 0x6
-};
-
 // Aligment: 3
 // Size: 16
 struct FeNodeReverseOffset_t
@@ -758,30 +758,28 @@ public:
 	uint16[2] nChild; // 0x0
 };
 
-// Aligment: 6
-// Size: 48
+// Aligment: 5
+// Size: 40
 struct FeTaperedCapsuleRigid_t
 {
 public:
-	fltx4[2] vSphere; // 0x0
-	float flStickiness; // 0x20
-	uint16_t nNode; // 0x24
-	uint16_t nCollisionMask; // 0x26
-	uint16_t nVertexMapIndex; // 0x28
-	uint16_t nFlags; // 0x2a
+	uint16_t nNode; // 0x0
+	uint16_t nCollisionMask; // 0x2
+	Vector[2] vCenter; // 0x4
+	float32[2] flRadius; // 0x1c
+	float flStickiness; // 0x24
 };
 
-// Aligment: 6
-// Size: 32
+// Aligment: 5
+// Size: 24
 struct FeSphereRigid_t
 {
 public:
-	fltx4 vSphere; // 0x0
-	float flStickiness; // 0x10
-	uint16_t nNode; // 0x14
-	uint16_t nCollisionMask; // 0x16
-	uint16_t nVertexMapIndex; // 0x18
-	uint16_t nFlags; // 0x1a
+	uint16_t nNode; // 0x0
+	uint16_t nCollisionMask; // 0x2
+	Vector vCenter; // 0x4
+	float flRadius; // 0x10
+	float flStickiness; // 0x14
 };
 
 // Aligment: 5
@@ -797,7 +795,7 @@ public:
 	float flStickiness; // 0x10
 };
 
-// Aligment: 8
+// Aligment: 6
 // Size: 80
 struct FeBoxRigid_t
 {
@@ -806,9 +804,7 @@ public:
 	uint16_t nCollisionMask; // 0x2
 	Vector vSize; // 0x4
 	float flStickiness; // 0x10
-	uint16_t nVertexMapIndex; // 0x14
-	uint16_t nFlags; // 0x16
-	float32[2] flReserved; // 0x18
+	float32[3] flReserved; // 0x14
 	matrix3x4a_t tmFrame; // 0x20
 };
 
@@ -854,7 +850,7 @@ public:
 	uint32_t nMatrixNode; // 0x8
 };
 
-// Aligment: 5
+// Aligment: 6
 // Size: 64
 struct FeFitMatrix_t
 {
@@ -863,7 +859,21 @@ public:
 	Vector vCenter; // 0x20
 	uint16_t nEnd; // 0x2c
 	uint16_t nNode; // 0x2e
-	uint16_t nBeginDynamic; // 0x30
+	uint16_t nCtrl; // 0x30
+	uint16_t nBeginDynamic; // 0x32
+};
+
+// Aligment: 6
+// Size: 192
+struct FeSimdFitMatrices_t
+{
+public:
+	FourVectors vCenter; // 0x0
+	uint16[4] nEnd; // 0x30
+	uint16[4] nCtrl; // 0x38
+	FourCovMatrices3 AqqInv; // 0x40
+	fltx4 flStretchMin; // 0xa0
+	fltx4 flStretchMax; // 0xb0
 };
 
 // Aligment: 5
@@ -878,31 +888,28 @@ public:
 	uint16_t m_nCollisionPlaneIndex; // 0xa
 };
 
-// Aligment: 2
-// Size: 64
+// Aligment: 1
+// Size: 44
 struct FeBuildTaperedCapsuleRigid_t : public FeTaperedCapsuleRigid_t
 {
 public:
-	int32_t m_nPriority; // 0x30
-	uint32_t m_nVertexMapHash; // 0x34
+	int32_t m_nPriority; // 0x28
 };
 
-// Aligment: 2
+// Aligment: 1
 // Size: 96
 struct FeBuildBoxRigid_t : public FeBoxRigid_t
 {
 public:
 	int32_t m_nPriority; // 0x50
-	uint32_t m_nVertexMapHash; // 0x54
 };
 
-// Aligment: 2
-// Size: 48
+// Aligment: 1
+// Size: 28
 struct FeBuildSphereRigid_t : public FeSphereRigid_t
 {
 public:
-	int32_t m_nPriority; // 0x20
-	uint32_t m_nVertexMapHash; // 0x24
+	int32_t m_nPriority; // 0x18
 };
 
 // Aligment: 1
@@ -913,51 +920,6 @@ public:
 	uint16[2] nNode; // 0x0
 };
 
-// Aligment: 4
-// Size: 32
-struct FeEffectDesc_t
-{
-public:
-	CUtlString sName; // 0x0
-	uint32_t nNameHash; // 0x8
-	int32_t nType; // 0xc
-	KeyValues3 m_Params; // 0x10
-};
-
-// Aligment: 3
-// Size: 40
-struct FeVertexMapBuild_t
-{
-public:
-	CUtlString m_VertexMapName; // 0x0
-	uint32_t m_nNameHash; // 0x8
-	CUtlVector< float32 > m_Weights; // 0x10
-};
-
-// Aligment: 2
-// Size: 16
-struct FeProxyVertexMap_t
-{
-public:
-	CUtlString m_Name; // 0x0
-	float m_flWeight; // 0x8
-};
-
-// Aligment: 8
-// Size: 32
-struct FeVertexMapDesc_t
-{
-public:
-	CUtlString sName; // 0x0
-	uint32_t nNameHash; // 0x8
-	uint32_t nFlags; // 0xc
-	uint16_t nVertexBase; // 0x10
-	uint16_t nVertexCount; // 0x12
-	uint32_t nMapOffset; // 0x14
-	uint32_t nNodeListOffset; // 0x18
-	uint16_t nNodeListCount; // 0x1c
-};
-
 // Aligment: 8
 // Size: 144
 struct FeMorphLayerDepr_t
@@ -1207,29 +1169,37 @@ public:
 	CUtlVector< uint16 > m_CollisionAttributeIndices; // 0x60
 };
 
-// Aligment: 10
-// Size: 160
+// Aligment: 11
+// Size: 184
 struct VPhysXBodyPart_t
 {
 public:
 	uint32_t m_nFlags; // 0x0
 	float m_flMass; // 0x4
 	VPhysics2ShapeDef_t m_rnShape; // 0x8
-	uint16_t m_nCollisionAttributeIndex; // 0x80
-	uint16_t m_nReserved; // 0x82
-	float m_flInertiaScale; // 0x84
-	float m_flLinearDamping; // 0x88
-	float m_flAngularDamping; // 0x8c
-	bool m_bOverrideMassCenter; // 0x90
-	Vector m_vMassCenterOverride; // 0x94
+	CUtlVector< uint8 > m_nSurfacepropertyIndices; // 0x80
+	uint16_t m_nCollisionAttributeIndex; // 0x98
+	uint16_t m_nReserved; // 0x9a
+	float m_flInertiaScale; // 0x9c
+	float m_flLinearDamping; // 0xa0
+	float m_flAngularDamping; // 0xa4
+	bool m_bOverrideMassCenter; // 0xa8
+	Vector m_vMassCenterOverride; // 0xac
 };
 
-// Aligment: 1
-// Size: 24
+// Aligment: 8
+// Size: 160
 struct VPhysXCollisionAttributes_t
 {
 public:
-	CUtlVector< CUtlString > m_PhysicsTagStrings; // 0x0
+	uint32_t m_CollisionGroup; // 0x0
+	CUtlVector< uint32 > m_InteractAs; // 0x8
+	CUtlVector< uint32 > m_InteractWith; // 0x20
+	CUtlVector< uint32 > m_InteractExclude; // 0x38
+	CUtlString m_CollisionGroupString; // 0x50
+	CUtlVector< CUtlString > m_InteractAsStrings; // 0x58
+	CUtlVector< CUtlString > m_InteractWithStrings; // 0x70
+	CUtlVector< CUtlString > m_InteractExcludeStrings; // 0x88
 };
 
 // Aligment: 2
@@ -1371,8 +1341,8 @@ public:
 	CUtlString m_embeddedKeyvalues; // 0x130
 };
 
-// Aligment: 6
-// Size: 24
+// Aligment: 5
+// Size: 20
 class CPhysSurfacePropertiesPhysics
 {
 public:
@@ -1382,22 +1352,21 @@ public:
 	// MDefaultString
 	float m_thickness; // 0xc
 	float m_dampening; // 0x10
-	// MDefaultString
-	float m_bouncethreshold; // 0x14
 };
 
-// Aligment: 6
-// Size: 24
+// Aligment: 7
+// Size: 28
 class CPhysSurfacePropertiesAudio
 {
 public:
-	float m_hardnessFactor; // 0x0
-	float m_roughnessFactor; // 0x4
-	float m_roughThreshold; // 0x8
-	float m_hardThreshold; // 0xc
+	float m_reflectivity; // 0x0
+	float m_hardnessFactor; // 0x4
+	float m_roughnessFactor; // 0x8
+	float m_roughThreshold; // 0xc
+	float m_hardThreshold; // 0x10
 	// MDefaultString
-	float m_hardVelocityThreshold; // 0x10
-	float m_flStaticImpactVolume; // 0x14
+	float m_hardVelocityThreshold; // 0x14
+	float m_flStaticImpactVolume; // 0x18
 };
 
 // Aligment: 8
@@ -1416,7 +1385,7 @@ public:
 };
 
 // Aligment: 8
-// Size: 184
+// Size: 160
 class CPhysSurfaceProperties
 {
 public:
@@ -1438,6 +1407,44 @@ public:
 	CUtlVector< CPhysSurfaceProperties* > m_surfacePropertiesList; // 0x0
 };
 
+// Aligment: 2
+// Size: 4
+struct VPhysXDiskShapeHeader_t
+{
+public:
+	uint8_t m_nType; // 0x0
+	uint16_t m_nCollisionAttribute; // 0x2
+};
+
+// Aligment: 4
+// Size: 28
+struct VPhysXDiskMesh2_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	CResourceArray< uint8 > m_shape; // 0x4
+	float m_flSkinWidth; // 0xc
+	float m_flMaxVelocity; // 0x10
+	uint32[2] m_nReserved2; // 0x14
+};
+
+// Aligment: 2
+// Size: 20
+struct VPhysXShapeCompoundHeader2_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	CResourceArray< CResourceArray< uint8 > > m_components; // 0x4
+	CResourceArray< uint8 > m_types; // 0xc
+};
+
+// Aligment: 2
+// Size: 32
+struct VPhysXDiskCapsule_t : public VPhysXDiskShapeHeader_t
+{
+public:
+	Vector[2] m_vEnds; // 0x4
+	float m_flRadius; // 0x1c
+};
+
 // Aligment: 2
 // Size: 32
 struct MaterialGroup_t
@@ -1510,8 +1517,8 @@ public:
 	CUtlVector< ModelBoneFlexDriverControl_t > m_controls; // 0x10
 };
 
-// Aligment: 20
-// Size: 632
+// Aligment: 21
+// Size: 640
 struct PermModelData_t
 {
 public:
@@ -1534,7 +1541,111 @@ public:
 	CUtlVector< int16 > m_remappingTable; // 0x218
 	CUtlVector< uint16 > m_remappingTableStarts; // 0x230
 	CUtlVector< ModelBoneFlexDriver_t > m_boneFlexDrivers; // 0x248
-	CUtlVector< CUtlString > m_BodyGroupsHiddenInTools; // 0x260
+	CModelConfigList* m_pModelConfigList; // 0x260
+	CUtlVector< CUtlString > m_BodyGroupsHiddenInTools; // 0x268
+};
+
+// Aligment: 2
+// Size: 72
+class CModelConfigElement
+{
+public:
+	CUtlString m_ElementName; // 0x8
+	CUtlVector< CModelConfigElement* > m_NestedElements; // 0x10
+};
+
+// Aligment: 9
+// Size: 208
+class CModelConfigElement_AttachedModel : public CModelConfigElement
+{
+public:
+	CUtlString m_InstanceName; // 0x48
+	CUtlString m_EntityClass; // 0x50
+	CStrongHandle< InfoForResourceTypeCModel > m_hModel; // 0x58
+	Vector m_vOffset; // 0x60
+	QAngle m_aAngOffset; // 0x6c
+	CUtlString m_AttachmentName; // 0x78
+	ModelConfigAttachmentType_t m_AttachmentType; // 0x80
+	bool m_bUserSpecifiedColor; // 0x84
+	bool m_bUserSpecifiedMaterialGroup; // 0x85
+};
+
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_UserPick : public CModelConfigElement
+{
+public:
+	CUtlVector< CUtlString > m_Choices; // 0x48
+};
+
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_RandomPick : public CModelConfigElement
+{
+public:
+	CUtlVector< CUtlString > m_Choices; // 0x48
+};
+
+// Aligment: 1
+// Size: 80
+class CModelConfigElement_SetMaterialGroup : public CModelConfigElement
+{
+public:
+	CUtlString m_MaterialGroupName; // 0x48
+};
+
+// Aligment: 1
+// Size: 80
+class CModelConfigElement_SetRenderColor : public CModelConfigElement
+{
+public:
+	Color m_Color; // 0x48
+};
+
+// Aligment: 1
+// Size: 96
+class CModelConfigElement_RandomColor : public CModelConfigElement
+{
+public:
+	CColorGradient m_Gradient; // 0x48
+};
+
+// Aligment: 2
+// Size: 88
+class CModelConfigElement_SetBodygroup : public CModelConfigElement
+{
+public:
+	CUtlString m_GroupName; // 0x48
+	int32_t m_nChoice; // 0x50
+};
+
+// Aligment: 2
+// Size: 96
+class CModelConfigElement_Command : public CModelConfigElement
+{
+public:
+	CUtlString m_Command; // 0x48
+	KeyValues3 m_Args; // 0x50
+};
+
+// Aligment: 3
+// Size: 40
+class CModelConfig
+{
+public:
+	CUtlString m_ConfigName; // 0x0
+	CUtlVector< CModelConfigElement* > m_Elements; // 0x8
+	bool m_bTopLevel; // 0x20
+};
+
+// Aligment: 3
+// Size: 32
+class CModelConfigList
+{
+public:
+	bool m_bHideMaterialGroupInTools; // 0x0
+	bool m_bHideRenderColorInTools; // 0x1
+	CUtlVector< CModelConfig* > m_Configs; // 0x8
 };
 
 // Aligment: 2
@@ -1587,8 +1698,8 @@ public:
 	int8_t m_ConeCutoff; // 0xf
 };
 
-// Aligment: 13
-// Size: 192
+// Aligment: 12
+// Size: 208
 class CMaterialDrawDescriptor
 {
 public:
@@ -1602,10 +1713,9 @@ public:
 	float m_flUvDensity; // 0x1c
 	// MDefaultString
 	Vector m_vTintColor; // 0x24
-	int16_t m_CullDataIndex; // 0x32
-	int32_t m_nMeshID; // 0x34
-	CRenderBufferBinding m_indexBuffer; // 0xa0
-	CStrongHandle< InfoForResourceTypeIMaterial2 > m_material; // 0xb8
+	int8_t m_CullDataIndex; // 0x32
+	CRenderBufferBinding m_indexBuffer; // 0xb0
+	CStrongHandle< InfoForResourceTypeIMaterial2 > m_material; // 0xc8
 };
 
 // Aligment: 5
@@ -1635,25 +1745,23 @@ public:
 	bool m_bIgnoreRotation; // 0x84
 };
 
-// Aligment: 14
-// Size: 112
+// Aligment: 12
+// Size: 120
 class CHitBox
 {
 public:
-	Vector m_vMinBounds; // 0x20
-	Vector m_vMaxBounds; // 0x2c
-	CUtlString m_name; // 0x38
-	CUtlString m_sSurfaceProperty; // 0x40
-	CUtlString m_sBoneName; // 0x48
-	float m_flShapeRadius; // 0x50
-	uint32_t m_nBoneNameHash; // 0x54
-	int32_t m_nGroupId; // 0x58
-	Color m_cRenderColor; // 0x5c
-	uint16_t m_nHitBoxIndex; // 0x60
-	uint8_t m_nShapeType; // 0x62
-	bool m_bTranslationOnly; // 0x64
-	bool m_bVisible; // 0x65
-	bool m_bSelected; // 0x66
+	CUtlString m_name; // 0x30
+	CUtlString m_sSurfaceProperty; // 0x38
+	CUtlString m_sBoneName; // 0x40
+	uint32_t m_nBoneNameHash; // 0x48
+	int32_t m_nGroupId; // 0x4c
+	Color m_cRenderColor; // 0x50
+	uint16_t m_nHitBoxIndex; // 0x54
+	Vector m_vMinBounds; // 0x58
+	Vector m_vMaxBounds; // 0x64
+	bool m_bTranslationOnly; // 0x71
+	bool m_bVisible; // 0x72
+	bool m_bSelected; // 0x73
 };
 
 // Aligment: 4
@@ -1676,7 +1784,7 @@ public:
 };
 
 // Aligment: 3
-// Size: 448
+// Size: 456
 class CRenderMesh
 {
 public:
@@ -1686,7 +1794,7 @@ public:
 };
 
 // Aligment: 6
-// Size: 112
+// Size: 80
 class CConstraintTarget
 {
 public:
@@ -1773,15 +1881,17 @@ public:
 	int32_t m_nSlaveAxis; // 0x74
 };
 
-// Aligment: 4
-// Size: 144
+// Aligment: 6
+// Size: 176
 class CMorphConstraint : public CBaseConstraint, CBoneConstraintBase
 {
 public:
-	CUtlString m_sTargetMorph; // 0x70
-	int32_t m_nSlaveChannel; // 0x78
-	float m_flMin; // 0x7c
-	float m_flMax; // 0x80
+	bool m_bCacheAttempted; // 0x70
+	bool m_bCacheOk; // 0x71
+	CUtlString m_sTargetMorph; // 0x78
+	int32_t m_nSlaveChannel; // 0x80
+	float m_flMin; // 0x84
+	float m_flMax; // 0x88
 };
 
 // Aligment: 0
@@ -1802,7 +1912,7 @@ public:
 };
 
 // Aligment: 5
-// Size: 168
+// Size: 160
 class CBoneConstraintPoseSpaceMorph : public CBoneConstraintBase
 {
 public:
@@ -1932,6 +2042,70 @@ public:
 	float m_flTraceRadius; // 0x3c
 };
 
+// Aligment: 2
+// Size: 8
+class CFingerSource
+{
+public:
+	AnimVRFinger_t m_nFingerIndex; // 0x0
+	float m_flFingerWeight; // 0x4
+};
+
+// Aligment: 7
+// Size: 56
+class CFingerBone
+{
+public:
+	CUtlString m_boneName; // 0x0
+	Vector m_hingeAxis; // 0x8
+	Vector m_vCapsulePos1; // 0x14
+	Vector m_vCapsulePos2; // 0x20
+	float m_flMinAngle; // 0x2c
+	float m_flMaxAngle; // 0x30
+	float m_flRadius; // 0x34
+};
+
+// Aligment: 10
+// Size: 112
+class CFingerChain
+{
+public:
+	CUtlVector< CFingerSource > m_targets; // 0x0
+	CUtlVector< CFingerBone > m_bones; // 0x18
+	CUtlString m_name; // 0x30
+	CUtlString m_tipParentBoneName; // 0x38
+	Vector m_vTipOffset; // 0x40
+	CUtlString m_metacarpalBoneName; // 0x50
+	Vector m_vSplayHingeAxis; // 0x58
+	float m_flSplayMinAngle; // 0x64
+	float m_flSplayMaxAngle; // 0x68
+	float m_flFingerScaleRatio; // 0x6c
+};
+
+// Aligment: 4
+// Size: 48
+class CWristBone
+{
+public:
+	CUtlString m_name; // 0x0
+	Vector m_vForwardLS; // 0x8
+	Vector m_vUpLS; // 0x14
+	Vector m_vOffset; // 0x20
+};
+
+// Aligment: 6
+// Size: 80
+class CVrSkeletalInputSettings
+{
+public:
+	CUtlVector< CWristBone > m_wristBones; // 0x0
+	CUtlVector< CFingerChain > m_fingers; // 0x18
+	CUtlString m_name; // 0x30
+	CUtlString m_outerKnuckle1; // 0x38
+	CUtlString m_outerKnuckle2; // 0x40
+	AnimVRHand_t m_eHand; // 0x48
+};
+
 // Aligment: 1
 // Size: 4
 class CCycleBase
@@ -2012,67 +2186,3 @@ public:
 	bool m_bAdditive; // 0x20
 };
 
-// Aligment: 2
-// Size: 8
-class CFingerSource
-{
-public:
-	AnimVRFinger_t m_nFingerIndex; // 0x0
-	float m_flFingerWeight; // 0x4
-};
-
-// Aligment: 7
-// Size: 56
-class CFingerBone
-{
-public:
-	CUtlString m_boneName; // 0x0
-	Vector m_hingeAxis; // 0x8
-	Vector m_vCapsulePos1; // 0x14
-	Vector m_vCapsulePos2; // 0x20
-	float m_flMinAngle; // 0x2c
-	float m_flMaxAngle; // 0x30
-	float m_flRadius; // 0x34
-};
-
-// Aligment: 10
-// Size: 112
-class CFingerChain
-{
-public:
-	CUtlVector< CFingerSource > m_targets; // 0x0
-	CUtlVector< CFingerBone > m_bones; // 0x18
-	CUtlString m_name; // 0x30
-	CUtlString m_tipParentBoneName; // 0x38
-	Vector m_vTipOffset; // 0x40
-	CUtlString m_metacarpalBoneName; // 0x50
-	Vector m_vSplayHingeAxis; // 0x58
-	float m_flSplayMinAngle; // 0x64
-	float m_flSplayMaxAngle; // 0x68
-	float m_flFingerScaleRatio; // 0x6c
-};
-
-// Aligment: 4
-// Size: 48
-class CWristBone
-{
-public:
-	CUtlString m_name; // 0x0
-	Vector m_vForwardLS; // 0x8
-	Vector m_vUpLS; // 0x14
-	Vector m_vOffset; // 0x20
-};
-
-// Aligment: 6
-// Size: 80
-class CVrSkeletalInputSettings
-{
-public:
-	CUtlVector< CWristBone > m_wristBones; // 0x0
-	CUtlVector< CFingerChain > m_fingers; // 0x18
-	CUtlString m_name; // 0x30
-	CUtlString m_outerKnuckle1; // 0x38
-	CUtlString m_outerKnuckle2; // 0x40
-	AnimVRHand_t m_eHand; // 0x48
-};
-
diff --git a/sdk/worldrenderer.hpp b/sdk/worldrenderer.hpp
index ddc25add..74768c33 100644
--- a/sdk/worldrenderer.hpp
+++ b/sdk/worldrenderer.hpp
@@ -4,7 +4,7 @@
 
 ///////////////////////////////////////////
 // Binary: worldrenderer.dll
-// Class Count: 22
+// Class Count: 21
 // Enum Count: 3
 ///////////////////////////////////////////
 
@@ -16,10 +16,9 @@ enum class EntityLumpFlags_t : uint32_t
 };
 
 // Aligment: 4
-// Size: 13
+// Size: 12
 enum class ObjectTypeFlags_t : uint32_t
 {
-	OBJECT_TYPE_NONE = 0x0,
 	OBJECT_TYPE_IMAGE_LOD = 0x1,
 	OBJECT_TYPE_GEOMETRY_LOD = 0x2,
 	OBJECT_TYPE_DECAL = 0x4,
@@ -65,21 +64,20 @@ public:
 	CUtlVector< EntityIOConnectionData_t > m_connections; // 0x18
 };
 
-// Aligment: 6
-// Size: 80
+// Aligment: 5
+// Size: 72
 struct PermEntityLumpData_t
 {
 public:
 	CUtlString m_name; // 0x0
-	CUtlString m_hammerUniqueId; // 0x8
-	EntityLumpFlags_t m_flags; // 0x10
-	CUtlString m_manifestName; // 0x18
-	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_childLumps; // 0x20
-	CUtlVector< EntityKeyValueData_t > m_entityKeyValues; // 0x38
+	EntityLumpFlags_t m_flags; // 0x8
+	CUtlString m_manifestName; // 0x10
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_childLumps; // 0x18
+	CUtlVector< EntityKeyValueData_t > m_entityKeyValues; // 0x30
 };
 
-// Aligment: 16
-// Size: 144
+// Aligment: 17
+// Size: 168
 struct SceneObject_t
 {
 public:
@@ -99,6 +97,7 @@ public:
 	int16_t m_nBoundsGroupIndex; // 0x78
 	CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x80
 	CStrongHandle< InfoForResourceTypeCRenderMesh > m_renderable; // 0x88
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCTextureBase > > m_externalTextures; // 0x90
 };
 
 // Aligment: 1
@@ -109,6 +108,15 @@ public:
 	uint32_t m_nSceneObjectIndex; // 0x0
 };
 
+// Aligment: 2
+// Size: 56
+struct BoneOverride_t : public BaseSceneObjectOverride_t
+{
+public:
+	CUtlVector< uint32 > m_boneHashes; // 0x8
+	CUtlVector< matrix3x4_t > m_boneTransforms; // 0x20
+};
+
 // Aligment: 4
 // Size: 32
 struct ExtraVertexStreamOverride_t : public BaseSceneObjectOverride_t
@@ -147,16 +155,20 @@ public:
 	int32_t m_nSequenceOverride; // 0x6c
 };
 
-// Aligment: 5
-// Size: 48
+// Aligment: 9
+// Size: 80
 struct BakedLightingInfo_t
 {
 public:
-	uint32_t m_nLightmapVersionNumber; // 0x0
-	uint32_t m_nLightmapGameVersionNumber; // 0x4
-	Vector2D m_vLightmapUvScale; // 0x8
-	bool m_bHasLightmaps; // 0x10
-	CUtlVector< CStrongHandle< InfoForResourceTypeCTextureBase > > m_lightMaps; // 0x18
+	CUtlVector< uint8 > m_PerVertexLightingDataPlainRGBM; // 0x0
+	uint32_t m_nPerVertexLightingDataPlainRGBMWidth; // 0x18
+	uint32_t m_nPerVertexLightingDataPlainRGBMHeight; // 0x1c
+	uint32_t m_nPerVertexLightingDataPlainRGBMDepth; // 0x20
+	uint32_t m_nLightmapVersionNumber; // 0x24
+	uint32_t m_nLightmapGameVersionNumber; // 0x28
+	Vector2D m_vLightmapUvScale; // 0x2c
+	bool m_bHasLightmaps; // 0x34
+	CUtlVector< CStrongHandle< InfoForResourceTypeCTextureBase > > m_lightMaps; // 0x38
 };
 
 // Aligment: 4
@@ -170,38 +182,8 @@ public:
 	CUtlVector< uint8 > m_pData; // 0x20
 };
 
-// Aligment: 8
-// Size: 56
-struct AggregateMeshInfo_t
-{
-public:
-	Vector4D m_vTintColor; // 0x0
-	Vector[2] m_vWorldBounds; // 0x10
-	uint16_t m_nDrawDescriptorIndex; // 0x28
-	uint16_t m_nVisClusterMemberOffset; // 0x2a
-	uint8_t m_nVisClusterMemberCount; // 0x2c
-	uint8_t _pad; // 0x2d
-	int32_t m_nCubeMapPrecomputedHandshake; // 0x30
-	ObjectTypeFlags_t m_objectFlags; // 0x34
-};
-
-// Aligment: 8
-// Size: 96
-struct AggregateSceneObject_t
-{
-public:
-	Vector[2] m_vWorldBounds; // 0x0
-	ObjectTypeFlags_t m_allFlags; // 0x18
-	ObjectTypeFlags_t m_anyFlags; // 0x1c
-	int16_t m_nLayer; // 0x20
-	int16_t m_nBoundsGroupIndex; // 0x22
-	CUtlVector< AggregateMeshInfo_t > m_aggregateMeshes; // 0x28
-	CUtlVector< uint16 > m_visClusterMembership; // 0x40
-	CStrongHandle< InfoForResourceTypeCModel > m_renderableModel; // 0x58
-};
-
 // Aligment: 13
-// Size: 320
+// Size: 352
 struct WorldNode_t
 {
 public:
@@ -209,7 +191,7 @@ public:
 	CUtlVector< InfoOverlayData_t > m_infoOverlays; // 0x18
 	CUtlVector< uint16 > m_visClusterMembership; // 0x30
 	CUtlVector< AABB_t > m_boundsGroups; // 0x48
-	CUtlVector< AggregateSceneObject_t > m_aggregateSceneObjects; // 0x60
+	CUtlVector< BoneOverride_t > m_boneOverrides; // 0x60
 	CUtlVector< ExtraVertexStreamOverride_t > m_extraVertexStreamOverrides; // 0x78
 	CUtlVector< MaterialOverride_t > m_materialOverrides; // 0x90
 	CUtlVector< WorldNodeOnDiskBufferData_t > m_extraVertexStreams; // 0xa8
@@ -220,8 +202,8 @@ public:
 	BakedLightingInfo_t m_nodeLightingInfo; // 0x110
 };
 
-// Aligment: 21
-// Size: 104
+// Aligment: 19
+// Size: 84
 struct WorldBuilderParams_t
 {
 public:
@@ -244,8 +226,6 @@ public:
 	bool m_bWrapInAtlas; // 0x48
 	bool m_bBuildBakedLighting; // 0x49
 	Vector2D m_vLightmapUvScale; // 0x4c
-	uint64_t m_nCompileTimestamp; // 0x58
-	uint64_t m_nCompileFingerprint; // 0x60
 };
 
 // Aligment: 8
@@ -264,14 +244,14 @@ public:
 };
 
 // Aligment: 4
-// Size: 200
+// Size: 216
 struct World_t
 {
 public:
 	WorldBuilderParams_t m_builderParams; // 0x0
-	CUtlVector< NodeData_t > m_worldNodes; // 0x68
-	BakedLightingInfo_t m_worldLightingInfo; // 0x80
-	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_entityLumps; // 0xb0
+	CUtlVector< NodeData_t > m_worldNodes; // 0x58
+	BakedLightingInfo_t m_worldLightingInfo; // 0x70
+	CUtlVector< CStrongHandleCopyable< InfoForResourceTypeCEntityLump > > m_entityLumps; // 0xc0
 };
 
 // Aligment: 2
@@ -283,33 +263,22 @@ public:
 	uint32_t m_nOffsetIntoBlock; // 0x4
 };
 
-// Aligment: 2
-// Size: 8
-struct voxel_vis_mergelist_t
-{
-public:
-	uint32_t m_nFirstCluster; // 0x0
-	uint32_t m_nClusterCount; // 0x4
-};
-
-// Aligment: 13
-// Size: 216
+// Aligment: 11
+// Size: 152
 class CVoxelVisibility
 {
 public:
-	CUtlVector< uint32 > m_blockOffset; // 0x40
-	CUtlVector< voxel_vis_cluster_t > m_clusters; // 0x58
-	CUtlVector< uint16 > m_mergeClusters; // 0x70
-	CUtlVector< voxel_vis_mergelist_t > m_mergeLists; // 0x88
-	Vector m_vMinBounds; // 0xa0
-	Vector m_vMaxBounds; // 0xac
-	float m_flGridSize; // 0xb8
-	int32_t m_nNodeCount; // 0xbc
-	int32_t m_nRegionCount; // 0xc0
-	voxel_vis_cluster_t m_skyVisibilityCluster; // 0xc4
-	voxel_vis_compression_t m_nPVSCompression; // 0xcc
-	uint32_t m_nTreeSize; // 0xd0
-	uint32_t m_nPVSSizeCompressed; // 0xd4
+	CUtlVector< uint32 > m_blockOffset; // 0x30
+	CUtlVector< voxel_vis_cluster_t > m_clusters; // 0x48
+	Vector m_vMinBounds; // 0x60
+	Vector m_vMaxBounds; // 0x6c
+	float m_flGridSize; // 0x78
+	int32_t m_nNodeCount; // 0x7c
+	int32_t m_nRegionCount; // 0x80
+	voxel_vis_cluster_t m_skyVisibilityCluster; // 0x84
+	voxel_vis_compression_t m_nPVSCompression; // 0x8c
+	uint32_t m_nTreeSize; // 0x90
+	uint32_t m_nPVSSizeCompressed; // 0x94
 };
 
 // Aligment: 0
@@ -328,15 +297,31 @@ public:
 // <no members described>
 };
 
-// Aligment: 2
-// Size: 40
+// Aligment: 4
+// Size: 56
 class CEntityInstance : public IHandleEntity
 {
 public:
+	// MNetworkDisable
+	CUtlSymbolLarge m_iszPrivateVScripts; // 0x8
 	// MNetworkEnable
 	// MNetworkPriority "112"
-	CEntityIdentity* m_pEntity; // 0x8
+	CEntityIdentity* m_pEntity; // 0x10
 	// MNetworkDisable
-	CUtlStringToken m_worldGroupId; // 0x10
+	CUtlStringToken m_worldGroupId; // 0x20
+	// MNetworkEnable
+	// MNetworkDisable
+	CScriptComponent* m_CScriptComponent; // 0x30
+};
+
+// Aligment: 1
+// Size: 56
+class CScriptComponent : public CEntityComponent
+{
+public:
+	CUtlSymbolLarge m_scriptClassName; // 0x30
+public:
+	static EntComponentInfo_t &Get_s_EntComponentInfo() { return *reinterpret_cast<EntComponentInfo_t*>(interfaces::g_schema->FindTypeScopeForModule("worldrenderer.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[0]->m_instance); }
+	static int32_t &Get_entity_component_error_class_decl_says_contained_but_impl_is_referenced() { return *reinterpret_cast<int32_t*>(interfaces::g_schema->FindTypeScopeForModule("worldrenderer.dll")->FindDeclaredClass("CScriptComponent")->m_static_fiels[1]->m_instance); }
 };