← back cs2 · 14168
Fresh cs2-dumper output for build **14168** (2026-07-09).  Module base RVAs, button state addresses, interface pointers, and the schema fields cheat authors actually reach for.  Verbose class dumps trimmed to the useful subset — full `client_dll.hpp` is 6k lines, this pull is what you'd copy-paste into an offset header anyway.

## Module offsets

Absolute RVAs from each module's base — resolve `client.dll` etc. and add these.

```cpp
namespace client_dll {
    constexpr std::ptrdiff_t dwCSGOInput                          = 0x23B85E0;
    constexpr std::ptrdiff_t dwEntityList                         = 0x254DE50;
    constexpr std::ptrdiff_t dwGameEntitySystem                   = 0x254DE50;
    constexpr std::ptrdiff_t dwGameEntitySystem_highestEntityIndex= 0x2090;
    constexpr std::ptrdiff_t dwGameRules                          = 0x23A29D8;
    constexpr std::ptrdiff_t dwGlobalVars                          = 0x208ED60;
    constexpr std::ptrdiff_t dwGlowManager                         = 0x239F708;
    constexpr std::ptrdiff_t dwLocalPlayerController               = 0x237DBA0;
    constexpr std::ptrdiff_t dwLocalPlayerPawn                     = 0x23A3238;
    constexpr std::ptrdiff_t dwPrediction                          = 0x23A3140;
    constexpr std::ptrdiff_t dwSensitivity                         = 0x23A0228;
    constexpr std::ptrdiff_t dwViewAngles                          = 0x23B8C68;
    constexpr std::ptrdiff_t dwViewMatrix                          = 0x23A8340;
    constexpr std::ptrdiff_t dwViewRender                          = 0x23A8398;
    constexpr std::ptrdiff_t dwWeaponC4                            = 0x231B9D0;
}

namespace engine2_dll {
    constexpr std::ptrdiff_t dwBuildNumber                       = 0x60F594;
    constexpr std::ptrdiff_t dwNetworkGameClient                 = 0x90D490;
    constexpr std::ptrdiff_t dwNetworkGameClient_clientTickCount = 0x378;
    constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick       = 0x24C;
    constexpr std::ptrdiff_t dwNetworkGameClient_localPlayer     = 0xF8;
    constexpr std::ptrdiff_t dwNetworkGameClient_maxClients      = 0x240;
    constexpr std::ptrdiff_t dwNetworkGameClient_serverTickCount = 0x24C;
    constexpr std::ptrdiff_t dwNetworkGameClient_signOnState     = 0x230;
    constexpr std::ptrdiff_t dwWindowHeight                      = 0x9118BC;
    constexpr std::ptrdiff_t dwWindowWidth                       = 0x9118B8;
}

namespace inputsystem_dll {
    constexpr std::ptrdiff_t dwInputSystem = 0x45BA0;
}

namespace matchmaking_dll {
    constexpr std::ptrdiff_t dwGameTypes = 0x1ADF80;
}

namespace soundsystem_dll {
    constexpr std::ptrdiff_t dwSoundSystem_engineViewData = 0x7C;
}
```

## Button state

client.dll addresses for the current input state bitflags (attack/jump/etc.).

```cpp
namespace buttons {
    constexpr std::ptrdiff_t attack       = 0x2092F80;
    constexpr std::ptrdiff_t attack2      = 0x2093010;
    constexpr std::ptrdiff_t back         = 0x2093250;
    constexpr std::ptrdiff_t duck         = 0x2093520;
    constexpr std::ptrdiff_t forward      = 0x20931C0;
    constexpr std::ptrdiff_t jump         = 0x2093490;
    constexpr std::ptrdiff_t left         = 0x20932E0;
    constexpr std::ptrdiff_t lookatweapon = 0x23B8500;
    constexpr std::ptrdiff_t reload       = 0x2092EF0;
    constexpr std::ptrdiff_t right        = 0x2093370;
    constexpr std::ptrdiff_t showscores   = 0x23B83E0;
    constexpr std::ptrdiff_t sprint       = 0x2092E60;
    constexpr std::ptrdiff_t turnleft     = 0x20930A0;
    constexpr std::ptrdiff_t turnright    = 0x2093130;
    constexpr std::ptrdiff_t use          = 0x2093400;
    constexpr std::ptrdiff_t zoom         = 0x23B8470;
}
```

## Interface pointers

The subset most cheats actually resolve.  Full list is in the raw a2x dump.

```cpp
namespace interfaces_client_dll {
    constexpr std::ptrdiff_t Source2Client002              = 0x239D6D0;
    constexpr std::ptrdiff_t Source2ClientConfig001        = 0x230AA00;
    constexpr std::ptrdiff_t Source2ClientPrediction001    = 0x23A3140;
    constexpr std::ptrdiff_t Source2ClientUI001            = 0x20A1210;
    constexpr std::ptrdiff_t GameClientExports001          = 0x208F400;
    constexpr std::ptrdiff_t EmptyWorldService001_Client   = 0x206E480;
    constexpr std::ptrdiff_t LegacyGameUI001               = 0x20A2D00;
    constexpr std::ptrdiff_t ClientToolsInfo_001           = 0x2092760;
}

namespace interfaces_engine2_dll {
    constexpr std::ptrdiff_t Source2EngineToClient001             = 0x6125A0;
    constexpr std::ptrdiff_t Source2EngineToClientStringTable001  = 0x612600;
    constexpr std::ptrdiff_t Source2EngineToServer001             = 0x612678;
    constexpr std::ptrdiff_t Source2EngineToServerStringTable001  = 0x6126A0;
    constexpr std::ptrdiff_t EngineServiceMgr001                   = 0x90EC90;
    constexpr std::ptrdiff_t EngineGameUI001                        = 0x612C70;
    constexpr std::ptrdiff_t GameEventSystemClientV001              = 0x90EF70;
    constexpr std::ptrdiff_t GameResourceServiceClientV001          = 0x615460;
    constexpr std::ptrdiff_t INETSUPPORT_001                        = 0x60E960;
    constexpr std::ptrdiff_t InputService_001                       = 0x8CE3F0;
    constexpr std::ptrdiff_t NetworkClientService_001               = 0x90D3F0;
    constexpr std::ptrdiff_t RenderService_001                      = 0x90DB50;
    constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005         = 0x612D00;
}

namespace interfaces_inputsystem_dll {
    constexpr std::ptrdiff_t InputStackSystemVersion001 = 0x43E90;
    constexpr std::ptrdiff_t InputSystemVersion001       = 0x45BA0;
}

namespace interfaces_networksystem_dll {
    constexpr std::ptrdiff_t FlattenedSerializersVersion001 = 0x26C810;
    constexpr std::ptrdiff_t NetworkMessagesVersion001       = 0x294A30;
    constexpr std::ptrdiff_t NetworkSystemVersion001         = 0x285F60;
    constexpr std::ptrdiff_t SerializedEntitiesVersion001    = 0x286050;
}

namespace interfaces_schemasystem_dll {
    constexpr std::ptrdiff_t SchemaSystem_001 = 0x75730;
}

namespace interfaces_materialsystem2_dll {
    constexpr std::ptrdiff_t VMaterialSystem2_001 = 0x15C800;
}

namespace interfaces_particles_dll {
    constexpr std::ptrdiff_t ParticleSystemMgr003 = 0x5FEAD0;
}

namespace interfaces_rendersystemdx11_dll {
    constexpr std::ptrdiff_t RenderDeviceMgr001            = 0x42C550;
    constexpr std::ptrdiff_t VRenderDeviceMgrBackdoor001   = 0x42C5F0;
}

namespace interfaces_resourcesystem_dll {
    constexpr std::ptrdiff_t ResourceSystem013 = 0x81680;
}

namespace interfaces_soundsystem_dll {
    constexpr std::ptrdiff_t SoundSystem001    = 0x54B600;
    constexpr std::ptrdiff_t SoundOpSystem001  = 0x54BC90;
}

namespace interfaces_tier0_dll {
    constexpr std::ptrdiff_t VEngineCvar007        = 0x3A44F0;
    constexpr std::ptrdiff_t VStringTokenSystem001 = 0x3CB1F0;
}

namespace interfaces_localize_dll {
    constexpr std::ptrdiff_t Localize_001 = 0x58100;
}

namespace interfaces_vphysics2_dll {
    constexpr std::ptrdiff_t VPhysics2_Interface_001 = 0x428E90;
}

namespace interfaces_worldrenderer_dll {
    constexpr std::ptrdiff_t WorldRendererMgr001 = 0x231DA0;
}
```

## Scene node / skeleton

Position and bone data.  Everything renders off `m_pGameSceneNode` → `m_vecAbsOrigin`.  Bone matrices live in `m_modelState`.

```cpp
namespace CGameSceneNode {
    constexpr std::ptrdiff_t m_nodeToWorld              = 0x10;   // CTransformWS
    constexpr std::ptrdiff_t m_pOwner                   = 0x30;   // CEntityInstance*
    constexpr std::ptrdiff_t m_pParent                  = 0x38;   // CGameSceneNode*
    constexpr std::ptrdiff_t m_pChild                   = 0x40;   // CGameSceneNode*
    constexpr std::ptrdiff_t m_pNextSibling             = 0x48;   // CGameSceneNode*
    constexpr std::ptrdiff_t m_hParent                  = 0x70;   // CGameSceneNodeHandle
    constexpr std::ptrdiff_t m_vecOrigin                = 0x80;   // CNetworkOriginCellCoordQuantizedVector
    constexpr std::ptrdiff_t m_angRotation              = 0xB8;   // QAngle
    constexpr std::ptrdiff_t m_flScale                  = 0xC4;   // float32
    constexpr std::ptrdiff_t m_vecAbsOrigin             = 0xC8;   // VectorWS  — world-space position
    constexpr std::ptrdiff_t m_angAbsRotation           = 0xD4;   // QAngle
    constexpr std::ptrdiff_t m_flAbsScale               = 0xE0;   // float32
    constexpr std::ptrdiff_t m_nParentAttachmentOrBone  = 0x100;  // int16
    constexpr std::ptrdiff_t m_bDormant                 = 0x103;  // bool     — skip when true
    constexpr std::ptrdiff_t m_nHierarchicalDepth       = 0x107;  // uint8
    constexpr std::ptrdiff_t m_name                     = 0x10C;  // CUtlStringToken
    constexpr std::ptrdiff_t m_flClientLocalScale       = 0x124;  // float32
}

namespace CSkeletonInstance {
    constexpr std::ptrdiff_t m_modelState                       = 0x140;  // CModelState — bone matrices in here
    constexpr std::ptrdiff_t m_bUseParentRenderBounds           = 0x3F0;  // bool
    constexpr std::ptrdiff_t m_bDisableSolidCollisionsForHierarchy = 0x3F1;
    constexpr std::ptrdiff_t m_materialGroup                    = 0x3F8;  // CUtlStringToken
    constexpr std::ptrdiff_t m_nHitboxSet                       = 0x3FC;  // uint8
}

namespace CBodyComponent {
    constexpr std::ptrdiff_t m_pSceneNode      = 0x8;   // CGameSceneNode*
    constexpr std::ptrdiff_t __m_pChainEntity  = 0x48;  // CNetworkVarChainer
}

namespace CBodyComponentSkeletonInstance {
    constexpr std::ptrdiff_t m_skeletonInstance = 0x80;  // CSkeletonInstance
}
```

## C_BaseEntity

Every entity in the world derives from this.  Health, team, velocity, scene node all live here.

```cpp
namespace C_BaseEntity {
    constexpr std::ptrdiff_t m_CBodyComponent           = 0x30;   // CBodyComponent*
    constexpr std::ptrdiff_t m_NetworkTransmitComponent = 0x38;

    constexpr std::ptrdiff_t m_nLastThinkTick           = 0x328;  // GameTick_t
    constexpr std::ptrdiff_t m_pGameSceneNode           = 0x330;  // CGameSceneNode*  — world position lives here
    constexpr std::ptrdiff_t m_pRenderComponent         = 0x338;  // CRenderComponent*
    constexpr std::ptrdiff_t m_pCollision               = 0x340;  // CCollisionProperty*
    constexpr std::ptrdiff_t m_iMaxHealth               = 0x348;  // int32
    constexpr std::ptrdiff_t m_iHealth                  = 0x34C;  // int32
    constexpr std::ptrdiff_t m_flDamageAccumulator      = 0x350;  // float32
    constexpr std::ptrdiff_t m_lifeState                = 0x354;  // uint8   — 0 alive, 2 dead
    constexpr std::ptrdiff_t m_bTakesDamage             = 0x355;  // bool
    constexpr std::ptrdiff_t m_nTakeDamageFlags         = 0x358;  // TakeDamageFlags_t

    constexpr std::ptrdiff_t m_iEFlags                  = 0x374;  // int32
    constexpr std::ptrdiff_t m_nWaterType               = 0x378;  // uint8
    constexpr std::ptrdiff_t m_bInterpolateEvenWithNoModel = 0x379;

    constexpr std::ptrdiff_t m_flAnimTime               = 0x3B4;  // float32
    constexpr std::ptrdiff_t m_flSimulationTime         = 0x3B8;  // float32

    constexpr std::ptrdiff_t m_flCreateTime             = 0x3E0;  // GameTime_t
    constexpr std::ptrdiff_t m_iTeamNum                 = 0x3E7;  // uint8   — 2 T, 3 CT
    constexpr std::ptrdiff_t m_spawnflags               = 0x3E8;  // uint32
    constexpr std::ptrdiff_t m_nNextThinkTick           = 0x3EC;  // GameTick_t
    constexpr std::ptrdiff_t m_fFlags                   = 0x3F4;  // uint32
    constexpr std::ptrdiff_t m_vecAbsVelocity           = 0x3F8;  // Vector
    constexpr std::ptrdiff_t m_vecServerVelocity        = 0x404;  // CNetworkVelocityVector
    constexpr std::ptrdiff_t m_vecVelocity              = 0x430;  // CNetworkVelocityVector
    constexpr std::ptrdiff_t m_vecBaseVelocity          = 0x510;  // Vector

    constexpr std::ptrdiff_t m_hEffectEntity            = 0x51C;  // CHandle
    constexpr std::ptrdiff_t m_hOwnerEntity             = 0x520;  // CHandle
    constexpr std::ptrdiff_t m_MoveCollide              = 0x524;  // MoveCollide_t
    constexpr std::ptrdiff_t m_MoveType                 = 0x525;  // MoveType_t
    constexpr std::ptrdiff_t m_nActualMoveType          = 0x526;  // MoveType_t
    constexpr std::ptrdiff_t m_flWaterLevel             = 0x528;  // float32
    constexpr std::ptrdiff_t m_fEffects                 = 0x52C;  // uint32
    constexpr std::ptrdiff_t m_hGroundEntity            = 0x530;  // CHandle
    constexpr std::ptrdiff_t m_flFriction               = 0x538;  // float32
    constexpr std::ptrdiff_t m_flGravityScale           = 0x540;  // float32
    constexpr std::ptrdiff_t m_flTimeScale              = 0x544;  // float32
    constexpr std::ptrdiff_t m_bAnimatedEveryTick       = 0x548;  // bool
    constexpr std::ptrdiff_t m_bGravityDisabled         = 0x549;  // bool
    constexpr std::ptrdiff_t m_hThink                   = 0x550;  // uint16

    constexpr std::ptrdiff_t m_flActualGravityScale     = 0x564;  // float32
    constexpr std::ptrdiff_t m_bPredictable             = 0x569;  // bool
    constexpr std::ptrdiff_t m_bRenderWithViewModels    = 0x56A;  // bool
    constexpr std::ptrdiff_t m_vecAngVelocity           = 0x5A8;  // QAngle
    constexpr std::ptrdiff_t m_nCreationTick            = 0x5D0;  // int32
    constexpr std::ptrdiff_t m_nBloodType               = 0x5F8;  // BloodType
}
```

## C_BaseModelEntity

Adds the render / hitbox / collision / glow story on top of `C_BaseEntity`.

```cpp
namespace C_BaseModelEntity {
    constexpr std::ptrdiff_t m_CRenderComponent   = 0xAF0;  // CRenderComponent*
    constexpr std::ptrdiff_t m_CHitboxComponent   = 0xAF8;  // CHitboxComponent
    constexpr std::ptrdiff_t m_pChoreoComponent   = 0xB10;  // CChoreoComponent*

    constexpr std::ptrdiff_t m_iOldHealth         = 0xC74;  // int32
    constexpr std::ptrdiff_t m_nRenderMode        = 0xC78;  // RenderMode_t
    constexpr std::ptrdiff_t m_nRenderFX          = 0xC79;  // RenderFx_t
    constexpr std::ptrdiff_t m_bAllowFadeInView   = 0xC7A;  // bool
    constexpr std::ptrdiff_t m_clrRender          = 0xC98;  // Color
    constexpr std::ptrdiff_t m_vecRenderAttributes= 0xCA0;

    constexpr std::ptrdiff_t m_bRenderToCubemaps  = 0xD20;  // bool
    constexpr std::ptrdiff_t m_bNoInterpolate     = 0xD21;  // bool
    constexpr std::ptrdiff_t m_Collision          = 0xD28;  // CCollisionProperty
    constexpr std::ptrdiff_t m_Glow               = 0xDE0;  // CGlowProperty
    constexpr std::ptrdiff_t m_flGlowBackfaceMult = 0xE38;  // float32
    constexpr std::ptrdiff_t m_fadeMinDist        = 0xE3C;  // float32
    constexpr std::ptrdiff_t m_fadeMaxDist        = 0xE40;  // float32
    constexpr std::ptrdiff_t m_flFadeScale        = 0xE44;  // float32
    constexpr std::ptrdiff_t m_flShadowStrength   = 0xE48;  // float32
    constexpr std::ptrdiff_t m_nObjectCulling     = 0xE4C;  // uint8

    constexpr std::ptrdiff_t m_vecViewOffset      = 0xE78;  // CNetworkViewOffsetVector
    constexpr std::ptrdiff_t m_pClientAlphaProperty = 0xF58;  // CClientAlphaProperty*
    constexpr std::ptrdiff_t m_ClientOverrideTint = 0xF60;  // Color
    constexpr std::ptrdiff_t m_bUseClientOverrideTint = 0xF64;
    constexpr std::ptrdiff_t m_bvDisabledHitGroups = 0xFA0;  // uint32[1]
}

namespace CGlowProperty {
    constexpr std::ptrdiff_t m_fGlowColor            = 0x8;   // Vector
    constexpr std::ptrdiff_t m_iGlowType             = 0x30;  // int32
    constexpr std::ptrdiff_t m_iGlowTeam             = 0x34;  // int32
    constexpr std::ptrdiff_t m_nGlowRange            = 0x38;  // int32
    constexpr std::ptrdiff_t m_nGlowRangeMin         = 0x3C;  // int32
    constexpr std::ptrdiff_t m_glowColorOverride     = 0x40;  // Color
    constexpr std::ptrdiff_t m_bFlashing             = 0x44;  // bool
    constexpr std::ptrdiff_t m_flGlowTime            = 0x48;  // float32
    constexpr std::ptrdiff_t m_flGlowStartTime       = 0x4C;  // float32
    constexpr std::ptrdiff_t m_bEligibleForScreenHighlight = 0x50;  // bool
    constexpr std::ptrdiff_t m_bGlowing              = 0x51;  // bool
}
```

## Player pawn

`C_BasePlayerPawn` → `C_CSPlayerPawnBase` → `C_CSPlayerPawn`.  Services pointers live on `C_BasePlayerPawn`; CS-specific state on the `Base`/final classes.

```cpp
namespace C_BaseCombatCharacter {
    constexpr std::ptrdiff_t m_hMyWearables         = 0x1180;  // C_NetworkUtlVectorBase<CHandle<C_EconWearable>>
    constexpr std::ptrdiff_t m_leftFootAttachment   = 0x1198;  // AttachmentHandle_t
    constexpr std::ptrdiff_t m_rightFootAttachment  = 0x1199;
    constexpr std::ptrdiff_t m_flWaterWorldZ        = 0x11A0;  // float32
}

namespace C_BasePlayerPawn {
    constexpr std::ptrdiff_t m_pWeaponServices       = 0x1208;  // CPlayer_WeaponServices*
    constexpr std::ptrdiff_t m_pItemServices         = 0x1210;  // CPlayer_ItemServices*
    constexpr std::ptrdiff_t m_pAutoaimServices      = 0x1218;
    constexpr std::ptrdiff_t m_pObserverServices     = 0x1220;
    constexpr std::ptrdiff_t m_pWaterServices        = 0x1228;
    constexpr std::ptrdiff_t m_pUseServices          = 0x1230;
    constexpr std::ptrdiff_t m_pFlashlightServices   = 0x1238;
    constexpr std::ptrdiff_t m_pCameraServices       = 0x1240;  // CPlayer_CameraServices*
    constexpr std::ptrdiff_t m_pMovementServices     = 0x1248;  // CPlayer_MovementServices*

    constexpr std::ptrdiff_t v_angle                 = 0x12C0;  // QAngle
    constexpr std::ptrdiff_t v_anglePrevious         = 0x12CC;  // QAngle
    constexpr std::ptrdiff_t m_iHideHUD              = 0x12D8;  // uint32

    constexpr std::ptrdiff_t m_flDeathTime           = 0x1370;  // GameTime_t
    constexpr std::ptrdiff_t m_vecPredictionError    = 0x1374;  // Vector
    constexpr std::ptrdiff_t m_flPredictionErrorTime = 0x1380;  // GameTime_t
    constexpr std::ptrdiff_t m_vecLastCameraSetupLocalOrigin = 0x13A0;  // Vector
    constexpr std::ptrdiff_t m_flLastCameraSetupTime = 0x13AC;  // GameTime_t
    constexpr std::ptrdiff_t m_flFOVSensitivityAdjust= 0x13B0;  // float32
    constexpr std::ptrdiff_t m_flMouseSensitivity    = 0x13B4;  // float32
    constexpr std::ptrdiff_t m_vOldOrigin            = 0x13B8;  // Vector
    constexpr std::ptrdiff_t m_flOldSimulationTime   = 0x13C4;  // float32
    constexpr std::ptrdiff_t m_nLastExecutedCommandNumber = 0x13C8;  // int32
    constexpr std::ptrdiff_t m_nLastExecutedCommandTick   = 0x13CC;  // int32
    constexpr std::ptrdiff_t m_hController           = 0x13D0;  // CHandle<CBasePlayerController>
    constexpr std::ptrdiff_t m_hDefaultController    = 0x13D4;  // CHandle<CBasePlayerController>
}

namespace C_CSPlayerPawnBase {
    constexpr std::ptrdiff_t m_pPingServices               = 0x13F0;
    constexpr std::ptrdiff_t m_previousPlayerState         = 0x13F8;  // CSPlayerState
    constexpr std::ptrdiff_t m_iPlayerState                = 0x13FC;  // CSPlayerState
    constexpr std::ptrdiff_t m_flLastSpawnTimeIndex        = 0x1404;  // GameTime_t
    constexpr std::ptrdiff_t m_flClientDeathTime           = 0x1410;  // GameTime_t
    constexpr std::ptrdiff_t m_flFlashBangTime             = 0x1414;  // float32
    constexpr std::ptrdiff_t m_flFlashScreenshotAlpha      = 0x1418;  // float32
    constexpr std::ptrdiff_t m_flFlashOverlayAlpha         = 0x141C;  // float32
    constexpr std::ptrdiff_t m_bFlashBuildUp               = 0x1420;  // bool
    constexpr std::ptrdiff_t m_flFlashMaxAlpha             = 0x1424;  // float32
    constexpr std::ptrdiff_t m_flFlashDuration             = 0x1428;  // float32
    constexpr std::ptrdiff_t m_flClientHealthFadeChangeTimestamp = 0x142C;  // GameTime_t
    constexpr std::ptrdiff_t m_flCurrentMusicStartTime     = 0x143C;  // float32
    constexpr std::ptrdiff_t m_flMusicRoundStartTime       = 0x1440;  // float32
    constexpr std::ptrdiff_t m_hOriginalController         = 0x1478;  // CHandle<CCSPlayerController>
}

namespace C_CSPlayerPawn {
    constexpr std::ptrdiff_t m_pBulletServices             = 0x1490;
    constexpr std::ptrdiff_t m_pHostageServices            = 0x1498;
    constexpr std::ptrdiff_t m_pBuyServices                = 0x14A0;
    constexpr std::ptrdiff_t m_pGlowServices               = 0x14A8;
    constexpr std::ptrdiff_t m_pActionTrackingServices     = 0x14B0;
    constexpr std::ptrdiff_t m_pAimPunchServices           = 0x14B8;
    constexpr std::ptrdiff_t m_pDamageReactServices        = 0x14C0;

    constexpr std::ptrdiff_t m_flHealthShotBoostExpirationTime = 0x14C8;  // GameTime_t
    constexpr std::ptrdiff_t m_flLastFiredWeaponTime       = 0x14CC;  // GameTime_t
    constexpr std::ptrdiff_t m_flVelocityModifier          = 0x1C8C;  // float32
    constexpr std::ptrdiff_t m_iShotsFired                 = 0x1C84;  // int32
    constexpr std::ptrdiff_t m_flFlinchStack               = 0x1C88;  // float32

    constexpr std::ptrdiff_t m_bInBuyZone                  = 0x1500;  // bool
    constexpr std::ptrdiff_t m_bInHostageRescueZone        = 0x1508;  // bool
    constexpr std::ptrdiff_t m_bInBombZone                 = 0x1509;  // bool
    constexpr std::ptrdiff_t m_bInLanding                  = 0x1502;  // bool
    constexpr std::ptrdiff_t m_flLandingStartTime          = 0x1504;  // float32
    constexpr std::ptrdiff_t m_bIsBuyMenuOpen              = 0x150A;  // bool

    constexpr std::ptrdiff_t m_bIsWalking                  = 0x1C50;  // bool
    constexpr std::ptrdiff_t m_bIsScoped                   = 0x1C70;  // bool
    constexpr std::ptrdiff_t m_bResumeZoom                 = 0x1C71;  // bool
    constexpr std::ptrdiff_t m_bIsDefusing                 = 0x1C72;  // bool
    constexpr std::ptrdiff_t m_bIsGrabbingHostage          = 0x1C73;  // bool
    constexpr std::ptrdiff_t m_bInNoDefuseArea             = 0x1C7C;  // bool
    constexpr std::ptrdiff_t m_nWhichBombZone              = 0x1C80;  // int32
    constexpr std::ptrdiff_t m_bWaitForNoAttack            = 0x1C90;  // bool
    constexpr std::ptrdiff_t m_bKilledByHeadshot           = 0x1C99;  // bool
    constexpr std::ptrdiff_t m_ArmorValue                  = 0x1C9C;  // int32
    constexpr std::ptrdiff_t m_unCurrentEquipmentValue     = 0x1CA0;  // uint16
    constexpr std::ptrdiff_t m_unRoundStartEquipmentValue  = 0x1CA2;  // uint16
    constexpr std::ptrdiff_t m_unFreezetimeEndEquipmentValue = 0x1CA4;  // uint16
    constexpr std::ptrdiff_t m_nLastKillerIndex            = 0x1CA8;  // CEntityIndex
    constexpr std::ptrdiff_t m_bHasDeathInfo               = 0x1CAD;  // bool
    constexpr std::ptrdiff_t m_vecDeathInfoOrigin          = 0x1CB4;  // VectorWS

    // View / eye
    constexpr std::ptrdiff_t m_angEyeAngles                = 0x3340;  // QAngle  — server-authoritative viewangles
    constexpr std::ptrdiff_t m_iIDEntIndex                 = 0x341C;  // CEntityIndex
    constexpr std::ptrdiff_t m_iTargetItemEntIdx           = 0x3438;  // CEntityIndex

    // Viewmodel personalisation
    constexpr std::ptrdiff_t m_bLeftHanded                 = 0x1B8C;  // bool
    constexpr std::ptrdiff_t m_flViewmodelOffsetX          = 0x1B94;  // float32
    constexpr std::ptrdiff_t m_flViewmodelOffsetY          = 0x1B98;  // float32
    constexpr std::ptrdiff_t m_flViewmodelOffsetZ          = 0x1B9C;  // float32
    constexpr std::ptrdiff_t m_flViewmodelFOV              = 0x1BA0;  // float32
}
```

## Player services

Camera, item, movement, weapon.  All hang off `C_BasePlayerPawn`'s service pointers.

```cpp
namespace CCSPlayerBase_CameraServices {
    constexpr std::ptrdiff_t m_iFOV          = 0x290;  // uint32
    constexpr std::ptrdiff_t m_iFOVStart     = 0x294;  // uint32
    constexpr std::ptrdiff_t m_flFOVTime     = 0x298;  // GameTime_t
    constexpr std::ptrdiff_t m_flFOVRate     = 0x29C;  // float32
    constexpr std::ptrdiff_t m_hZoomOwner    = 0x2A0;  // CHandle<C_BaseEntity>
    constexpr std::ptrdiff_t m_flLastShotFOV = 0x2A4;  // float32
}

namespace CCSPlayer_ItemServices {
    constexpr std::ptrdiff_t m_bHasDefuser = 0x48;  // bool
    constexpr std::ptrdiff_t m_bHasHelmet  = 0x49;  // bool
}

namespace CCSPlayer_MovementServices {
    constexpr std::ptrdiff_t m_bDucked                     = 0x408;  // bool
    constexpr std::ptrdiff_t m_flDuckAmount                = 0x40C;  // float32
    constexpr std::ptrdiff_t m_flDuckSpeed                 = 0x410;  // float32
    constexpr std::ptrdiff_t m_bDuckOverride               = 0x414;  // bool
    constexpr std::ptrdiff_t m_bDesiresDuck                = 0x415;  // bool
    constexpr std::ptrdiff_t m_bDucking                    = 0x416;  // bool
    constexpr std::ptrdiff_t m_flLastDuckTime              = 0x420;  // float32

    constexpr std::ptrdiff_t m_bSpeedCropped               = 0x650;  // bool
    constexpr std::ptrdiff_t m_vecForward                  = 0x65C;  // Vector
    constexpr std::ptrdiff_t m_vecLeft                     = 0x668;  // Vector
    constexpr std::ptrdiff_t m_vecUp                       = 0x674;  // Vector

    constexpr std::ptrdiff_t m_flStamina                   = 0x694;  // float32
    constexpr std::ptrdiff_t m_flHeightAtJumpStart         = 0x698;  // float32
    constexpr std::ptrdiff_t m_flMaxJumpHeightThisJump     = 0x69C;  // float32
    constexpr std::ptrdiff_t m_flMaxJumpHeightLastJump     = 0x6A0;  // float32
    constexpr std::ptrdiff_t m_flStaminaAtJumpStart        = 0x6A4;  // float32
    constexpr std::ptrdiff_t m_nLastJumpTick               = 0x700;  // GameTick_t
    constexpr std::ptrdiff_t m_flLastJumpVelocityZ         = 0x708;  // float32
    constexpr std::ptrdiff_t m_bJumpApexPending            = 0x70C;  // bool
    constexpr std::ptrdiff_t m_bWasSurfing                 = 0x714;  // bool
}

namespace CCSPlayer_WeaponServices {
    constexpr std::ptrdiff_t m_flNextAttack                          = 0xD0;    // GameTime_t
    constexpr std::ptrdiff_t m_nOldTotalShootPositionHistoryCount    = 0xD4;    // uint32
    constexpr std::ptrdiff_t m_nOldTotalInputHistoryCount            = 0x370;   // uint32
    constexpr std::ptrdiff_t m_networkAnimTiming                     = 0x1588;  // C_NetworkUtlVectorBase<uint8>
    constexpr std::ptrdiff_t m_bBlockInspectUntilNextGraphUpdate     = 0x15A0;  // bool
}
```

## Player controller

Owns the pawn, holds name / steamid / rank / mvp counts.  `m_hPlayerPawn` is the handle you deref to reach the actual pawn.

```cpp
namespace CBasePlayerController {
    constexpr std::ptrdiff_t m_CommandContext           = 0x608;  // C_CommandContext
    constexpr std::ptrdiff_t m_nInButtonsWhichAreToggles= 0x6B0;  // uint64
    constexpr std::ptrdiff_t m_nTickBase                = 0x6B8;  // uint32
    constexpr std::ptrdiff_t m_hPawn                    = 0x6BC;  // CHandle<C_BasePlayerPawn>
    constexpr std::ptrdiff_t m_hPredictedPawn           = 0x6C4;  // CHandle<C_BasePlayerPawn>
    constexpr std::ptrdiff_t m_nSplitScreenSlot         = 0x6C8;  // CSplitScreenSlot
    constexpr std::ptrdiff_t m_hSplitOwner              = 0x6CC;  // CHandle<CBasePlayerController>
    constexpr std::ptrdiff_t m_bIsHLTV                  = 0x6E8;  // bool
    constexpr std::ptrdiff_t m_iConnected               = 0x6EC;  // PlayerConnectedState
    constexpr std::ptrdiff_t m_iszPlayerName            = 0x6F4;  // char[128]
    constexpr std::ptrdiff_t m_steamID                  = 0x780;  // uint64
    constexpr std::ptrdiff_t m_bIsLocalPlayerController = 0x788;  // bool
    constexpr std::ptrdiff_t m_bNoClipEnabled           = 0x789;  // bool
    constexpr std::ptrdiff_t m_iDesiredFOV              = 0x78C;  // uint32
}

namespace CCSPlayerController {
    constexpr std::ptrdiff_t m_pInGameMoneyServices     = 0x810;
    constexpr std::ptrdiff_t m_pInventoryServices       = 0x818;
    constexpr std::ptrdiff_t m_pActionTrackingServices  = 0x820;
    constexpr std::ptrdiff_t m_pDamageServices          = 0x828;
    constexpr std::ptrdiff_t m_iPing                    = 0x830;  // uint32

    constexpr std::ptrdiff_t m_szCrosshairCodes         = 0x840;  // CUtlSymbolLarge
    constexpr std::ptrdiff_t m_iPendingTeamNum          = 0x848;  // uint8
    constexpr std::ptrdiff_t m_iCompTeammateColor       = 0x850;  // int32
    constexpr std::ptrdiff_t m_szClan                   = 0x860;  // CUtlSymbolLarge
    constexpr std::ptrdiff_t m_sSanitizedPlayerName     = 0x868;  // CUtlString
    constexpr std::ptrdiff_t m_nPlayerDominated         = 0x878;  // uint64
    constexpr std::ptrdiff_t m_nPlayerDominatingMe      = 0x880;  // uint64
    constexpr std::ptrdiff_t m_iCompetitiveRanking      = 0x888;  // int32
    constexpr std::ptrdiff_t m_iCompetitiveWins         = 0x88C;  // int32
    constexpr std::ptrdiff_t m_iCompetitiveRankType     = 0x890;  // int8

    constexpr std::ptrdiff_t m_hPlayerPawn              = 0x914;  // CHandle<C_CSPlayerPawn>
    constexpr std::ptrdiff_t m_hObserverPawn            = 0x918;  // CHandle<C_CSObserverPawn>
    constexpr std::ptrdiff_t m_bPawnIsAlive             = 0x91C;  // bool
    constexpr std::ptrdiff_t m_iPawnHealth              = 0x920;  // uint32
    constexpr std::ptrdiff_t m_iPawnArmor               = 0x924;  // int32
    constexpr std::ptrdiff_t m_bPawnHasDefuser          = 0x928;  // bool
    constexpr std::ptrdiff_t m_bPawnHasHelmet           = 0x929;  // bool
    constexpr std::ptrdiff_t m_nPawnCharacterDefIndex   = 0x92A;  // uint16
    constexpr std::ptrdiff_t m_iPawnLifetimeStart       = 0x92C;  // int32
    constexpr std::ptrdiff_t m_iPawnLifetimeEnd         = 0x930;  // int32
    constexpr std::ptrdiff_t m_iPawnBotDifficulty       = 0x934;  // int32
    constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x938;  // CHandle<CCSPlayerController>
    constexpr std::ptrdiff_t m_iScore                   = 0x93C;  // int32
    constexpr std::ptrdiff_t m_iMVPs                    = 0x958;  // int32
}

namespace CCSPlayerController_InGameMoneyServices {
    constexpr std::ptrdiff_t m_iAccount            = 0x40;  // int32
    constexpr std::ptrdiff_t m_iStartAccount       = 0x44;  // int32
    constexpr std::ptrdiff_t m_iTotalCashSpent     = 0x48;  // int32
    constexpr std::ptrdiff_t m_iCashSpentThisRound = 0x4C;  // int32
}
```

## Weapons

`C_EconEntity` → `C_CSWeaponBase` → `C_CSWeaponBaseGun`.  Static per-weapon data lives on the `VData` object hanging off the model.

```cpp
namespace C_EconEntity {
    constexpr std::ptrdiff_t m_bAttributesInitialized  = 0x11A0;  // bool
    constexpr std::ptrdiff_t m_AttributeManager        = 0x11A8;  // C_AttributeContainer
    constexpr std::ptrdiff_t m_OriginalOwnerXuidLow    = 0x1678;  // uint32
    constexpr std::ptrdiff_t m_OriginalOwnerXuidHigh   = 0x167C;  // uint32
    constexpr std::ptrdiff_t m_nFallbackPaintKit       = 0x1680;  // int32
    constexpr std::ptrdiff_t m_nFallbackSeed           = 0x1684;  // int32
    constexpr std::ptrdiff_t m_flFallbackWear          = 0x1688;  // float32
    constexpr std::ptrdiff_t m_nFallbackStatTrak       = 0x168C;  // int32
    constexpr std::ptrdiff_t m_bClientside             = 0x1690;  // bool
    constexpr std::ptrdiff_t m_hViewmodelAttachment    = 0x16B0;  // CHandle<CBaseAnimGraph>
    constexpr std::ptrdiff_t m_iOldTeam                = 0x16B4;  // int32
}

namespace C_CSWeaponBase {
    constexpr std::ptrdiff_t m_iWeaponGameplayAnimState          = 0x1778;  // WeaponGameplayAnimState
    constexpr std::ptrdiff_t m_flWeaponGameplayAnimStateTimestamp= 0x177C;  // GameTime_t
    constexpr std::ptrdiff_t m_flInspectCancelCompleteTime       = 0x1780;  // GameTime_t
    constexpr std::ptrdiff_t m_bInspectPending                   = 0x1784;  // bool
    constexpr std::ptrdiff_t m_flCrosshairDistance               = 0x17B0;  // float32
    constexpr std::ptrdiff_t m_iAmmoLastCheck                    = 0x17B4;  // int32
    constexpr std::ptrdiff_t m_bFireOnEmpty                      = 0x17BC;  // bool
    constexpr std::ptrdiff_t m_weaponMode                        = 0x17D8;  // CSWeaponMode
    constexpr std::ptrdiff_t m_flTurningInaccuracyDelta          = 0x17DC;  // float32
    constexpr std::ptrdiff_t m_vecTurningInaccuracyEyeDirLast    = 0x17E0;  // Vector
    constexpr std::ptrdiff_t m_flTurningInaccuracy               = 0x17EC;  // float32
    constexpr std::ptrdiff_t m_fAccuracyPenalty                  = 0x17F0;  // float32
    constexpr std::ptrdiff_t m_flLastAccuracyUpdateTime          = 0x17F4;  // GameTime_t
    constexpr std::ptrdiff_t m_fAccuracySmoothedForZoom          = 0x17F8;  // float32
    constexpr std::ptrdiff_t m_iRecoilIndex                      = 0x17FC;  // int32
    constexpr std::ptrdiff_t m_flRecoilIndex                     = 0x1800;  // float32
    constexpr std::ptrdiff_t m_bBurstMode                        = 0x1804;  // bool
    constexpr std::ptrdiff_t m_flLastBurstModeChangeTime         = 0x1808;  // GameTime_t
    constexpr std::ptrdiff_t m_nPostponeFireReadyTicks           = 0x180C;  // GameTick_t
    constexpr std::ptrdiff_t m_flPostponeFireReadyFrac           = 0x1810;  // float32
    constexpr std::ptrdiff_t m_bInReload                         = 0x1814;  // bool
    constexpr std::ptrdiff_t m_nDeployTick                       = 0x1818;  // GameTick_t
    constexpr std::ptrdiff_t m_flDroppedAtTime                   = 0x181C;  // GameTime_t
    constexpr std::ptrdiff_t m_bIsHauledBack                     = 0x1824;  // bool
    constexpr std::ptrdiff_t m_bSilencerOn                       = 0x1825;  // bool
    constexpr std::ptrdiff_t m_flTimeSilencerSwitchComplete      = 0x1828;  // GameTime_t
    constexpr std::ptrdiff_t m_iOriginalTeamNumber               = 0x1830;  // int32
    constexpr std::ptrdiff_t m_iMostRecentTeamNumber             = 0x1834;  // int32
    constexpr std::ptrdiff_t m_bDroppedNearBuyZone               = 0x1838;  // bool
    constexpr std::ptrdiff_t m_bVisualsDataSet                   = 0x18E1;  // bool
    constexpr std::ptrdiff_t m_bUIWeapon                         = 0x18E2;  // bool
    constexpr std::ptrdiff_t m_bCanBePickedUp                    = 0x18F0;  // bool
    constexpr std::ptrdiff_t m_hPrevOwner                        = 0x18F8;  // CHandle<C_CSPlayerPawn>
    constexpr std::ptrdiff_t m_nDropTick                         = 0x18FC;  // GameTick_t
    constexpr std::ptrdiff_t m_fLastShotTime                     = 0x1928;  // GameTime_t
    constexpr std::ptrdiff_t m_bWasOwnedByCT                     = 0x192C;  // bool
    constexpr std::ptrdiff_t m_bWasOwnedByTerrorist              = 0x192D;  // bool
    constexpr std::ptrdiff_t m_flNextClientFireBulletTime        = 0x1930;  // float32
    constexpr std::ptrdiff_t m_IronSightController               = 0x1990;  // C_IronSightController
    constexpr std::ptrdiff_t m_iIronSightMode                    = 0x1A40;  // int32
    constexpr std::ptrdiff_t m_flLastLOSTraceFailureTime         = 0x1AB8;  // GameTime_t
}

namespace C_CSWeaponBaseGun {
    constexpr std::ptrdiff_t m_zoomLevel               = 0x1CE0;  // int32
    constexpr std::ptrdiff_t m_iBurstShotsRemaining    = 0x1CE4;  // int32
    constexpr std::ptrdiff_t m_iSilencerBodygroup      = 0x1CE8;  // int32
    constexpr std::ptrdiff_t m_silencedModelIndex      = 0x1CF8;  // int32
    constexpr std::ptrdiff_t m_inPrecache              = 0x1CFC;  // bool
    constexpr std::ptrdiff_t m_bNeedsBoltAction        = 0x1CFD;  // bool
    constexpr std::ptrdiff_t m_nRevolverCylinderIdx    = 0x1D00;  // int32
}
```

### CCSWeaponBaseVData

Static per-weapon data — resolve via `C_EconEntity::m_AttributeManager` → item def → model → vdata.  This is where damage / recoil / spread / range live.

```cpp
namespace CCSWeaponBaseVData {
    constexpr std::ptrdiff_t m_WeaponType                       = 0x520;  // CSWeaponType
    constexpr std::ptrdiff_t m_WeaponCategory                   = 0x524;  // CSWeaponCategory

    constexpr std::ptrdiff_t m_GearSlot                         = 0x700;  // gear_slot_t
    constexpr std::ptrdiff_t m_GearSlotPosition                 = 0x704;  // int32
    constexpr std::ptrdiff_t m_DefaultLoadoutSlot               = 0x708;  // loadout_slot_t
    constexpr std::ptrdiff_t m_nPrice                           = 0x70C;  // int32
    constexpr std::ptrdiff_t m_nKillAward                       = 0x710;  // int32
    constexpr std::ptrdiff_t m_nPrimaryReserveAmmoMax           = 0x714;  // int32
    constexpr std::ptrdiff_t m_nSecondaryReserveAmmoMax         = 0x718;  // int32
    constexpr std::ptrdiff_t m_bMeleeWeapon                     = 0x71C;  // bool
    constexpr std::ptrdiff_t m_bHasBurstMode                    = 0x71D;  // bool
    constexpr std::ptrdiff_t m_bIsRevolver                      = 0x71E;  // bool
    constexpr std::ptrdiff_t m_bCannotShootUnderwater           = 0x71F;  // bool
    constexpr std::ptrdiff_t m_szName                           = 0x720;  // CGlobalSymbol
    constexpr std::ptrdiff_t m_eSilencerType                    = 0x728;  // CSWeaponSilencerType
    constexpr std::ptrdiff_t m_nCrosshairMinDistance            = 0x72C;  // int32
    constexpr std::ptrdiff_t m_nCrosshairDeltaDistance          = 0x730;  // int32
    constexpr std::ptrdiff_t m_bIsFullAuto                      = 0x734;  // bool
    constexpr std::ptrdiff_t m_nNumBullets                      = 0x738;  // int32
    constexpr std::ptrdiff_t m_bReloadsSingleShells             = 0x73C;  // bool
    constexpr std::ptrdiff_t m_flCycleTime                      = 0x740;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flCycleTimeWhenInBurstMode       = 0x748;  // float32
    constexpr std::ptrdiff_t m_flTimeBetweenBurstShots          = 0x74C;  // float32
    constexpr std::ptrdiff_t m_flMaxSpeed                       = 0x750;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flSpread                         = 0x758;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyCrouch               = 0x760;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyStand                = 0x768;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyJump                 = 0x770;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyLand                 = 0x778;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyLadder               = 0x780;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyFire                 = 0x788;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flInaccuracyMove                 = 0x790;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flRecoilAngle                    = 0x798;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flRecoilAngleVariance            = 0x7A0;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flRecoilMagnitude                = 0x7A8;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_flRecoilMagnitudeVariance        = 0x7B0;  // CFiringModeFloat
    constexpr std::ptrdiff_t m_nTracerFrequency                 = 0x7B8;  // CFiringModeInt
    constexpr std::ptrdiff_t m_flInaccuracyJumpInitial          = 0x7C0;  // float32
    constexpr std::ptrdiff_t m_flInaccuracyJumpApex             = 0x7C4;  // float32
    constexpr std::ptrdiff_t m_flInaccuracyReload               = 0x7C8;  // float32
    constexpr std::ptrdiff_t m_flDeployDuration                 = 0x7CC;  // float32
    constexpr std::ptrdiff_t m_flDisallowAttackAfterReloadStartDuration = 0x7D0;  // float32
    constexpr std::ptrdiff_t m_nBurstShotCount                  = 0x7D4;  // int32
    constexpr std::ptrdiff_t m_nRecoilSeed                      = 0x7DC;  // int32
    constexpr std::ptrdiff_t m_nSpreadSeed                      = 0x7E0;  // int32
    constexpr std::ptrdiff_t m_flAttackMovespeedFactor          = 0x7E4;  // float32
    constexpr std::ptrdiff_t m_bUnzoomsAfterShot                = 0x7F8;  // bool
    constexpr std::ptrdiff_t m_bHideViewModelWhenZoomed         = 0x7F9;  // bool
    constexpr std::ptrdiff_t m_nZoomLevels                      = 0x7FC;  // int32
    constexpr std::ptrdiff_t m_nZoomFOV1                        = 0x800;  // int32
    constexpr std::ptrdiff_t m_nZoomFOV2                        = 0x804;  // int32
    constexpr std::ptrdiff_t m_flZoomTime0                      = 0x808;  // float32
    constexpr std::ptrdiff_t m_flZoomTime1                      = 0x80C;  // float32
    constexpr std::ptrdiff_t m_flZoomTime2                      = 0x810;  // float32
    constexpr std::ptrdiff_t m_flIronSightFOV                   = 0x81C;  // float32
    constexpr std::ptrdiff_t m_nDamage                          = 0x828;  // int32
    constexpr std::ptrdiff_t m_flHeadshotMultiplier             = 0x82C;  // float32
    constexpr std::ptrdiff_t m_flArmorRatio                     = 0x830;  // float32
    constexpr std::ptrdiff_t m_flPenetration                    = 0x834;  // float32
    constexpr std::ptrdiff_t m_flRange                          = 0x838;  // float32
    constexpr std::ptrdiff_t m_flRangeModifier                  = 0x83C;  // float32
    constexpr std::ptrdiff_t m_flFlinchVelocityModifierLarge    = 0x840;  // float32
    constexpr std::ptrdiff_t m_flFlinchVelocityModifierSmall    = 0x844;  // float32
    constexpr std::ptrdiff_t m_flRecoveryTimeCrouch             = 0x848;  // float32
    constexpr std::ptrdiff_t m_flRecoveryTimeStand              = 0x84C;  // float32
    constexpr std::ptrdiff_t m_flRecoveryTimeCrouchFinal        = 0x850;  // float32
    constexpr std::ptrdiff_t m_flRecoveryTimeStandFinal         = 0x854;  // float32
    constexpr std::ptrdiff_t m_nRecoveryTransitionStartBullet   = 0x858;  // int32
    constexpr std::ptrdiff_t m_nRecoveryTransitionEndBullet     = 0x85C;  // int32
    constexpr std::ptrdiff_t m_flThrowVelocity                  = 0x860;  // float32
    constexpr std::ptrdiff_t m_vSmokeColor                      = 0x864;  // Vector
}
```

## Bomb

```cpp
namespace C_C4 {
    constexpr std::ptrdiff_t m_bStartedArming        = 0x1CE8;  // bool
    constexpr std::ptrdiff_t m_fArmedTime            = 0x1CEC;  // GameTime_t
    constexpr std::ptrdiff_t m_bBombPlacedAnimation  = 0x1CF0;  // bool
    constexpr std::ptrdiff_t m_bIsPlantingViaUse     = 0x1CF1;  // bool
    constexpr std::ptrdiff_t m_entitySpottedState    = 0x1CF8;  // EntitySpottedState_t
    constexpr std::ptrdiff_t m_nSpotRules            = 0x1D10;  // int32
    constexpr std::ptrdiff_t m_bBombPlanted          = 0x1D1B;  // bool
}

namespace C_PlantedC4 {
    constexpr std::ptrdiff_t m_bBombTicking     = 0x11A0;  // bool
    constexpr std::ptrdiff_t m_nBombSite        = 0x11A4;  // int32
    constexpr std::ptrdiff_t m_flNextGlow       = 0x11C8;  // GameTime_t
    constexpr std::ptrdiff_t m_flNextBeep       = 0x11CC;  // GameTime_t
    constexpr std::ptrdiff_t m_flC4Blow         = 0x11D0;  // GameTime_t
    constexpr std::ptrdiff_t m_bCannotBeDefused = 0x11D4;  // bool
    constexpr std::ptrdiff_t m_bHasExploded     = 0x11D5;  // bool
    constexpr std::ptrdiff_t m_flTimerLength    = 0x11D8;  // float32
    constexpr std::ptrdiff_t m_bBeingDefused    = 0x11DC;  // bool
}
```

## Where the rest is

Full a2x dump for build 14168 has hundreds more classes (animation, particles, scene system, vphysics, server-side).  Nothing here is critical for a stock ESP/aimbot cheat, so it's not in this post — if you need a specific class add it to a follow-up build or fetch `client_dll.hpp` from the dumper directly.