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.
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.).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.