24248951

7:56 pm (EST) · updated 2026-07-16 23:56 UTC

Full Counter-Strike 2 offset dump for build 14171, pulled 2026-07-16. Engine base offsets, entity system, player pawn / controller, weapon data, view + input buttons and the usual math primitives. Everything is RVA (add the module base to resolve at runtime).

Build info

build_number = 14171
timestamp    = 2026-07-16T23:45:25.838252700+00:00

client.dll — engine globals

struct client_dll_globals {
    uintptr_t dwGameEntitySystem_highestEntityIndex =    0x2090;  // member offset
    uintptr_t dwGlobalVars                          = 0x208FD60;
    uintptr_t dwWeaponC4                            = 0x231C9D0;
    uintptr_t dwLocalPlayerController               = 0x237EBA0;
    uintptr_t dwGlowManager                         = 0x23A0708;
    uintptr_t dwSensitivity                         = 0x23A1228;
    uintptr_t dwGameRules                           = 0x23A39D8;
    uintptr_t dwPrediction                          = 0x23A4140;
    uintptr_t dwLocalPlayerPawn                     = 0x23A4238;
    uintptr_t dwViewMatrix                          = 0x23A9340;
    uintptr_t dwViewRender                          = 0x23A9398;
    uintptr_t dwCSGOInput                           = 0x23B95F0;
    uintptr_t dwViewAngles                          = 0x23B9C78;
    uintptr_t dwEntityList                          = 0x254EE60;
    uintptr_t dwGameEntitySystem                    = 0x254EE60;
};

engine2.dll — network client + build

struct engine2_dll_globals {
    uintptr_t dwNetworkGameClient_localPlayer     =     0xF8;  // member offset
    uintptr_t dwNetworkGameClient_signOnState     =    0x230;  // member offset
    uintptr_t dwNetworkGameClient_maxClients      =    0x240;  // member offset
    uintptr_t dwNetworkGameClient_deltaTick       =    0x24C;  // member offset
    uintptr_t dwNetworkGameClient_serverTickCount =    0x24C;  // member offset
    uintptr_t dwNetworkGameClient_clientTickCount =    0x378;  // member offset
    uintptr_t dwBuildNumber                       = 0x60F594;
    uintptr_t dwNetworkGameClient                 = 0x90D4B0;
    uintptr_t dwWindowWidth                       = 0x9118D0;
    uintptr_t dwWindowHeight                      = 0x9118D4;
};

inputsystem.dll / matchmaking.dll / soundsystem.dll

struct aux_module_globals {
    uintptr_t inputsystem_dwInputSystem                =  0x45BA0;
    uintptr_t matchmaking_dwGameTypes                  = 0x1ADF80;
    uintptr_t soundsystem_dwSoundSystem_engineViewData =     0x7C;  // member offset
};

Input button base pointers (client.dll)

struct cs2_buttons {
    uintptr_t sprint       = 0x2093E60;
    uintptr_t reload       = 0x2093EF0;
    uintptr_t attack       = 0x2093F80;
    uintptr_t attack2      = 0x2094010;
    uintptr_t turnleft     = 0x20940A0;
    uintptr_t turnright    = 0x2094130;
    uintptr_t forward      = 0x20941C0;
    uintptr_t back         = 0x2094250;
    uintptr_t left         = 0x20942E0;
    uintptr_t right        = 0x2094370;
    uintptr_t use          = 0x2094400;
    uintptr_t jump         = 0x2094490;
    uintptr_t duck         = 0x2094520;
    uintptr_t showscores   = 0x23B93F0;
    uintptr_t zoom         = 0x23B9480;
    uintptr_t lookatweapon = 0x23B9510;
};

Key interfaces (module RVAs)

struct cs2_interfaces {
    uintptr_t client_Source2Client002              = 0x239E6D0;
    uintptr_t client_Source2ClientPrediction001    = 0x23A4140;
    uintptr_t client_Source2ClientConfig001        = 0x230BA00;
    uintptr_t client_LegacyGameUI001               = 0x20A3D00;
    uintptr_t engine_Source2EngineToClient001      =  0x6125A0;
    uintptr_t engine_EngineServiceMgr001           =  0x90ECB0;
    uintptr_t engine_NetworkClientService_001      =  0x90D410;
    uintptr_t engine_InputService_001              =  0x8CE410;
    uintptr_t engine_GameResourceServiceClientV001 =  0x615460;
    uintptr_t engine_RenderService_001             =  0x90DB70;
    uintptr_t engine_SoundService_001              =  0x615670;
    uintptr_t engine_INETSUPPORT_001               =  0x60E960;
    uintptr_t panorama_PanoramaUIEngine001         =  0x50FD60;
    uintptr_t resource_ResourceSystem013           =   0x81680;
    uintptr_t scene_SceneSystem_002                =  0x911530;
    uintptr_t schema_SchemaSystem_001              =   0x75730;
    uintptr_t tier0_VEngineCvar007                 =  0x3A44F0;
    uintptr_t particles_ParticleSystemMgr003       =  0x5FEAD0;
    uintptr_t input_InputSystemVersion001          =   0x45BA0;
    uintptr_t network_NetworkSystemVersion001      =  0x285F60;
    uintptr_t filesystem_VFileSystem017            =  0x2113C0;
    uintptr_t localize_Localize_001                =   0x58100;
    uintptr_t vscript_VScriptManager010            =  0x13D430;
    uintptr_t vphysics2_VPhysics2_Interface_001    =  0x428E90;
    uintptr_t worldrenderer_WorldRendererMgr001    =  0x231DA0;
    uintptr_t materialsystem_VMaterialSystem2_001  =  0x15C800;
    uintptr_t rendersystem_RenderDeviceMgr001      =  0x42C550;
};

C_BaseEntity (core)

// Base of every game-world object. All player / weapon / observer
// classes ultimately inherit from this.
struct C_BaseEntity {
    uintptr_t m_iMaxHealth                 = 0x348;
    uintptr_t m_iHealth                    = 0x34C;
    uintptr_t m_lifeState                  = 0x354;
    uintptr_t m_iEFlags                    = 0x374;
    uintptr_t m_flAnimTime                 = 0x3B4;
    uintptr_t m_flSimulationTime           = 0x3B8;
    uintptr_t m_flCreateTime               = 0x3E0;
    uintptr_t m_iTeamNum                   = 0x3E7;
    uintptr_t m_hEffectEntity              = 0x51C;
    uintptr_t m_hOwnerEntity               = 0x520;
    uintptr_t m_MoveType                   = 0x525;
    uintptr_t m_hGroundEntity              = 0x530;
    uintptr_t m_flFriction                 = 0x538;
    uintptr_t m_flElasticity               = 0x53C;
    uintptr_t m_flGravityScale             = 0x540;
};

C_BaseModelEntity

struct C_BaseModelEntity {
    uintptr_t m_CRenderComponent  = 0xAF0;
    uintptr_t m_CHitboxComponent  = 0xAF8;
    uintptr_t m_bInitModelEffects = 0xC70;
    uintptr_t m_nRenderMode       = 0xC78;
    uintptr_t m_nRenderFX         = 0xC79;
    uintptr_t m_clrRender         = 0xC98;
    uintptr_t m_vecViewOffset     = 0xE78;
};

C_BasePlayerPawn

// Non-CS-specific player state. Camera, movement, view.
struct C_BasePlayerPawn {
    uintptr_t m_pWeaponServices     = 0x1208;
    uintptr_t m_pItemServices       = 0x1210;
    uintptr_t m_pAutoaimServices    = 0x1218;
    uintptr_t m_pObserverServices   = 0x1220;
    uintptr_t m_pWaterServices      = 0x1228;
    uintptr_t m_pUseServices        = 0x1230;
    uintptr_t m_pFlashlightServices = 0x1238;
    uintptr_t m_pCameraServices     = 0x1240;
    uintptr_t m_pMovementServices   = 0x1248;
    uintptr_t v_angle               = 0x12C0;
    uintptr_t v_anglePrevious       = 0x12CC;
    uintptr_t m_iHideHUD            = 0x12D8;
    uintptr_t m_skybox3d            = 0x12E0;
    uintptr_t m_flDeathTime         = 0x1370;
    uintptr_t m_vecPredictionError  = 0x1374;
    uintptr_t m_hController         = 0x13D0;
};

C_CSPlayerPawnBase

// CS-specific pawn state shared between playable + observer pawns.
struct C_CSPlayerPawnBase {
    uintptr_t m_pPingServices          = 0x13F0;
    uintptr_t m_iPlayerState           = 0x13FC;
    uintptr_t m_bHasMovedSinceSpawn    = 0x1400;
    uintptr_t m_iProgressBarDuration   = 0x1408;
    uintptr_t m_flProgressBarStartTime = 0x140C;
    uintptr_t m_flFlashMaxAlpha        = 0x1424;
    uintptr_t m_flFlashDuration        = 0x1428;
    uintptr_t m_hOriginalController    = 0x1478;
};

C_CSPlayerPawn

// Main playable pawn. Aim, shots fired, active weapon, movement mods.
struct C_CSPlayerPawn {
    uintptr_t m_pBulletServices                 = 0x1490;
    uintptr_t m_pHostageServices                = 0x1498;
    uintptr_t m_pBuyServices                    = 0x14A0;
    uintptr_t m_pActionTrackingServices         = 0x14B0;
    uintptr_t m_flHealthShotBoostExpirationTime = 0x14C8;
    uintptr_t m_bInBuyZone                      = 0x1500;
    uintptr_t m_bInBombZone                     = 0x1509;
    uintptr_t m_bIsBuyMenuOpen                  = 0x150A;
    uintptr_t m_bIsWalking                      = 0x1C50;
    uintptr_t m_bIsScoped                       = 0x1C70;
    uintptr_t m_bIsDefusing                     = 0x1C72;
    uintptr_t m_bIsGrabbingHostage              = 0x1C73;
    uintptr_t m_iShotsFired                     = 0x1C84;
    uintptr_t m_flFlinchStack                   = 0x1C88;
    uintptr_t m_flVelocityModifier              = 0x1C8C;
    uintptr_t m_ArmorValue                      = 0x1C9C;
};

CCSPlayerController

// Player identity object. Name, steam id, team, ping. Links to pawn.
struct CCSPlayerController {
    uintptr_t m_iPing                             = 0x830;
    uintptr_t m_szCrosshairCodes                  = 0x840;
    uintptr_t m_iCompTeammateColor                = 0x850;
    uintptr_t m_bEverPlayedOnTeam                 = 0x854;
    uintptr_t m_szClan                            = 0x860;
    uintptr_t m_iCompetitiveRanking               = 0x888;
    uintptr_t m_iCompetitiveWins                  = 0x88C;
    uintptr_t m_iCompetitiveRankingPredicted_Win  = 0x894;
    uintptr_t m_iCompetitiveRankingPredicted_Loss = 0x898;
    uintptr_t m_iCompetitiveRankingPredicted_Tie  = 0x89C;
    uintptr_t m_hPlayerPawn                       = 0x914;
    uintptr_t m_bPawnIsAlive                      = 0x91C;
    uintptr_t m_iPawnHealth                       = 0x920;
    uintptr_t m_iPawnArmor                        = 0x924;
    uintptr_t m_bPawnHasDefuser                   = 0x928;
    uintptr_t m_bPawnHasHelmet                    = 0x929;
    uintptr_t m_iPawnLifetimeStart                = 0x92C;
    uintptr_t m_iPawnLifetimeEnd                  = 0x930;
    uintptr_t m_iPawnBotDifficulty                = 0x934;
    uintptr_t m_hOriginalControllerOfCurrentPawn  = 0x938;
    uintptr_t m_iScore                            = 0x93C;
    uintptr_t m_bMvpNoMusic                       = 0x94A;
    uintptr_t m_iMVPs                             = 0x958;
};

C_CSWeaponBase

// Anything the player can shoot with. Reload state, spread, timing.
struct C_CSWeaponBase {
    uintptr_t m_fAccuracyPenalty             = 0x17F0;
    uintptr_t m_iRecoilIndex                 = 0x17FC;
    uintptr_t m_flRecoilIndex                = 0x1800;
    uintptr_t m_bBurstMode                   = 0x1804;
    uintptr_t m_bInReload                    = 0x1814;
    uintptr_t m_bIsHauledBack                = 0x1824;
    uintptr_t m_bSilencerOn                  = 0x1825;
    uintptr_t m_flTimeSilencerSwitchComplete = 0x1828;
    uintptr_t m_iOriginalTeamNumber          = 0x1830;
    uintptr_t m_flNextAttackRenderTimeOffset = 0x183C;
};

C_CSWeaponBaseGun

struct C_CSWeaponBaseGun {
    uintptr_t m_zoomLevel            = 0x1CE0;
    uintptr_t m_iBurstShotsRemaining = 0x1CE4;
    uintptr_t m_iSilencerBodygroup   = 0x1CE8;
};

CCSWeaponBaseVData

// Static per-weapon data pulled from the schema. Damage, range, recoil.
struct CCSWeaponBaseVData {
    uintptr_t m_WeaponType                    = 0x520;
    uintptr_t m_WeaponCategory                = 0x524;
    uintptr_t m_GearSlot                      = 0x700;
    uintptr_t m_GearSlotPosition              = 0x704;
    uintptr_t m_nPrice                        = 0x70C;
    uintptr_t m_nKillAward                    = 0x710;
    uintptr_t m_nPrimaryReserveAmmoMax        = 0x714;
    uintptr_t m_nSecondaryReserveAmmoMax      = 0x718;
    uintptr_t m_flCycleTime                   = 0x740;
    uintptr_t m_flCycleTimeWhenInBurstMode    = 0x748;
    uintptr_t m_flMaxSpeed                    = 0x750;
    uintptr_t m_flSpread                      = 0x758;
    uintptr_t m_flInaccuracyCrouch            = 0x760;
    uintptr_t m_flInaccuracyStand             = 0x768;
    uintptr_t m_flInaccuracyJump              = 0x770;
    uintptr_t m_flInaccuracyLand              = 0x778;
    uintptr_t m_flInaccuracyLadder            = 0x780;
    uintptr_t m_flInaccuracyFire              = 0x788;
    uintptr_t m_flInaccuracyMove              = 0x790;
    uintptr_t m_flRecoilAngle                 = 0x798;
    uintptr_t m_flRecoilAngleVariance         = 0x7A0;
    uintptr_t m_flRecoilMagnitude             = 0x7A8;
    uintptr_t m_flRecoilMagnitudeVariance     = 0x7B0;
    uintptr_t m_nTracerFrequency              = 0x7B8;
    uintptr_t m_flInaccuracyJumpInitial       = 0x7C0;
    uintptr_t m_flInaccuracyJumpApex          = 0x7C4;
    uintptr_t m_flInaccuracyReload            = 0x7C8;
    uintptr_t m_nZoomLevels                   = 0x7FC;
    uintptr_t m_nZoomFOV1                     = 0x800;
    uintptr_t m_nZoomFOV2                     = 0x804;
    uintptr_t m_flZoomTime0                   = 0x808;
    uintptr_t m_flZoomTime1                   = 0x80C;
    uintptr_t m_flZoomTime2                   = 0x810;
    uintptr_t m_flIronSightPullUpSpeed        = 0x814;
    uintptr_t m_flIronSightPutDownSpeed       = 0x818;
    uintptr_t m_flIronSightFOV                = 0x81C;
    uintptr_t m_nDamage                       = 0x828;
    uintptr_t m_flHeadshotMultiplier          = 0x82C;
    uintptr_t m_flArmorRatio                  = 0x830;
    uintptr_t m_flPenetration                 = 0x834;
    uintptr_t m_flRange                       = 0x838;
    uintptr_t m_flRangeModifier               = 0x83C;
    uintptr_t m_flFlinchVelocityModifierLarge = 0x840;
    uintptr_t m_flFlinchVelocityModifierSmall = 0x844;
    uintptr_t m_flRecoveryTimeCrouch          = 0x848;
    uintptr_t m_flRecoveryTimeStand           = 0x84C;
    uintptr_t m_flRecoveryTimeCrouchFinal     = 0x850;
    uintptr_t m_flRecoveryTimeStandFinal      = 0x854;
    uintptr_t m_szAnimClass                   = 0x870;
};

Weapon / camera / movement services

struct CPlayer_WeaponServices {
    uintptr_t m_hMyWeapons    = 0x48;
    uintptr_t m_hActiveWeapon = 0x60;
    uintptr_t m_hLastWeapon   = 0x64;
    uintptr_t m_iAmmo         = 0x68;
};

struct CPlayer_CameraServices {
    uintptr_t m_vecCsViewPunchAngle         = 0x48;
    uintptr_t m_nCsViewPunchAngleTick       = 0x54;
    uintptr_t m_flCsViewPunchAngleTickRatio = 0x58;
    uintptr_t m_PlayerFog                   = 0x60;
    uintptr_t m_hColorCorrectionCtrl        = 0xA0;
    uintptr_t m_hViewEntity                 = 0xA4;
    uintptr_t m_hTonemapController          = 0xA8;
    uintptr_t m_audio                       = 0xB0;
    uintptr_t m_PostProcessingVolumes       = 0x128;
    uintptr_t m_flOldPlayerZ                = 0x140;
    uintptr_t m_flOldPlayerViewOffsetZ      = 0x144;
    uintptr_t m_CurrentFog                  = 0x148;
    uintptr_t m_hOldFogController           = 0x1B0;
    uintptr_t m_bOverrideFogColor           = 0x1B4;
    uintptr_t m_OverrideFogColor            = 0x1B9;
    uintptr_t m_bOverrideFogStartEnd        = 0x1CD;
    uintptr_t m_fOverrideFogStart           = 0x1D4;
    uintptr_t m_fOverrideFogEnd             = 0x1E8;
    uintptr_t m_hActivePostProcessingVolume = 0x1FC;
    uintptr_t m_angDemoViewAngles           = 0x200;
};

struct CPlayer_MovementServices {
    uintptr_t m_nImpulse                    = 0x48;
    uintptr_t m_nButtons                    = 0x50;
    uintptr_t m_nQueuedButtonDownMask       = 0x70;
    uintptr_t m_nQueuedButtonChangeMask     = 0x78;
    uintptr_t m_nButtonDoublePressed        = 0x80;
    uintptr_t m_pButtonPressedCmdNumber     = 0x88;
    uintptr_t m_nLastCommandNumberProcessed = 0x188;
    uintptr_t m_nToggleButtonDownMask       = 0x190;
    uintptr_t m_flCmdForwardMove            = 0x1A0;
    uintptr_t m_flCmdLeftMove               = 0x1A4;
    uintptr_t m_flCmdUpMove                 = 0x1A8;
    uintptr_t m_flMaxspeed                  = 0x1AC;
    uintptr_t m_arrForceSubtickMoveWhen     = 0x1B0;
    uintptr_t m_flForwardMove               = 0x1C0;
    uintptr_t m_flLeftMove                  = 0x1C4;
    uintptr_t m_flUpMove                    = 0x1C8;
    uintptr_t m_vecLastMovementImpulses     = 0x1CC;
    uintptr_t m_vecOldViewAngles            = 0x240;
};

struct CCSPlayerBase_CameraServices {
    uintptr_t m_iFOV          = 0x290;
    uintptr_t m_iFOVStart     = 0x294;
    uintptr_t m_flFOVTime     = 0x298;
    uintptr_t m_flFOVRate     = 0x29C;
    uintptr_t m_hZoomOwner    = 0x2A0;
    uintptr_t m_flLastShotFOV = 0x2A4;
};

struct CCSPlayer_WeaponServices {
    uintptr_t m_flNextAttack                       = 0xD0;
    uintptr_t m_nOldTotalShootPositionHistoryCount = 0xD4;
    uintptr_t m_nOldTotalInputHistoryCount         = 0x370;
    uintptr_t m_networkAnimTiming                  = 0x1588;
    uintptr_t m_bBlockInspectUntilNextGraphUpdate  = 0x15A0;
};

struct CCSPlayer_BulletServices {
    uintptr_t m_totalHitsOnServer = 0x48;
};

struct CCSPlayer_ActionTrackingServices {
    uintptr_t m_hLastWeaponBeforeC4AutoSwitch = 0x48;
    uintptr_t m_bIsRescuing                   = 0x4C;
    uintptr_t m_weaponPurchasesThisMatch      = 0x50;
    uintptr_t m_weaponPurchasesThisRound      = 0xC0;
};

struct CCSPlayer_ItemServices {
    uintptr_t m_bHasDefuser = 0x48;
    uintptr_t m_bHasHelmet  = 0x49;
};

C_CSObserverPawn

// Free-cam / dead spectator pawn.
struct C_CSObserverPawn {
    uintptr_t m_hDetectParentChange = 0x1480;
};

C_CSGameRules

// Match state. Round timing, phase, warmup, freezetime.
struct C_CSGameRules {
    uintptr_t m_bFreezePeriod                = 0x40;
    uintptr_t m_bWarmupPeriod                = 0x41;
    uintptr_t m_fWarmupPeriodEnd             = 0x44;
    uintptr_t m_fWarmupPeriodStart           = 0x48;
    uintptr_t m_bTerroristTimeOutActive      = 0x4C;
    uintptr_t m_bCTTimeOutActive             = 0x4D;
    uintptr_t m_flTerroristTimeOutRemaining  = 0x50;
    uintptr_t m_flCTTimeOutRemaining         = 0x54;
    uintptr_t m_nTerroristTimeOuts           = 0x58;
    uintptr_t m_nCTTimeOuts                  = 0x5C;
    uintptr_t m_bTechnicalTimeOut            = 0x60;
    uintptr_t m_bMatchWaitingForResume       = 0x61;
    uintptr_t m_iRoundTime                   = 0x68;
    uintptr_t m_fRoundStartTime              = 0x70;
    uintptr_t m_flRestartRoundTime           = 0x74;
    uintptr_t m_bGameRestart                 = 0x78;
    uintptr_t m_flGameStartTime              = 0x7C;
    uintptr_t m_timeUntilNextPhaseStarts     = 0x80;
    uintptr_t m_gamePhase                    = 0x84;
    uintptr_t m_totalRoundsPlayed            = 0x88;
    uintptr_t m_nRoundsPlayedThisPhase       = 0x8C;
    uintptr_t m_nOvertimePlaying             = 0x90;
    uintptr_t m_iHostagesRemaining           = 0x94;
    uintptr_t m_bAnyHostageReached           = 0x98;
    uintptr_t m_bMapHasBombTarget            = 0x99;
    uintptr_t m_bMapHasRescueZone            = 0x9A;
    uintptr_t m_bMapHasBuyZone               = 0x9B;
    uintptr_t m_bIsQueuedMatchmaking         = 0x9C;
    uintptr_t m_bIsValveDS                   = 0xA4;
    uintptr_t m_bLogoMap                     = 0xA5;
    uintptr_t m_bPlayAllStepSoundsOnServer   = 0xA6;
    uintptr_t m_iSpectatorSlotCount          = 0xA8;
    uintptr_t m_MatchDevice                  = 0xAC;
    uintptr_t m_bHasMatchStarted             = 0xB0;
    uintptr_t m_nNextMapInMapgroup           = 0xB4;
    uintptr_t m_szTournamentEventName        = 0xB8;
    uintptr_t m_szTournamentEventStage       = 0x2B8;
    uintptr_t m_szMatchStatTxt               = 0x4B8;
    uintptr_t m_flCMMItemDropRevealStartTime = 0x8BC;
    uintptr_t m_flCMMItemDropRevealEndTime   = 0x8C0;
    uintptr_t m_bIsDroppingItems             = 0x8C4;
    uintptr_t m_bIsQuestEligible             = 0x8C5;
    uintptr_t m_bIsHltvActive                = 0x8C6;
    uintptr_t m_nMatchAbortedEarlyReason     = 0xD78;
    uintptr_t m_bHasTriggeredRoundStartMusic = 0xD7C;
    uintptr_t m_bSwitchingTeamsAtRoundReset  = 0xD7D;
    uintptr_t m_iRoundStartRoundNumber       = 0xF48;
};

CGlowProperty

struct CGlowProperty {
    uintptr_t m_fGlowColor                  = 0x8;
    uintptr_t m_iGlowType                   = 0x30;
    uintptr_t m_iGlowTeam                   = 0x34;
    uintptr_t m_nGlowRange                  = 0x38;
    uintptr_t m_nGlowRangeMin               = 0x3C;
    uintptr_t m_glowColorOverride           = 0x40;
    uintptr_t m_bFlashing                   = 0x44;
    uintptr_t m_flGlowTime                  = 0x48;
    uintptr_t m_flGlowStartTime             = 0x4C;
    uintptr_t m_bEligibleForScreenHighlight = 0x50;
    uintptr_t m_bGlowing                    = 0x51;
};

C_PlantedC4

struct C_PlantedC4 {
    uintptr_t m_bBombTicking                = 0x11A0;
    uintptr_t m_nBombSite                   = 0x11A4;
    uintptr_t m_nSourceSoundscapeHash       = 0x11A8;
    uintptr_t m_entitySpottedState          = 0x11B0;
    uintptr_t m_flNextGlow                  = 0x11C8;
    uintptr_t m_flNextBeep                  = 0x11CC;
    uintptr_t m_flC4Blow                    = 0x11D0;
    uintptr_t m_bCannotBeDefused            = 0x11D4;
    uintptr_t m_bHasExploded                = 0x11D5;
    uintptr_t m_flTimerLength               = 0x11D8;
    uintptr_t m_bBeingDefused               = 0x11DC;
    uintptr_t m_bTriggerWarning             = 0x11E0;
    uintptr_t m_bExplodeWarning             = 0x11E4;
    uintptr_t m_bC4Activated                = 0x11E8;
    uintptr_t m_bTenSecWarning              = 0x11E9;
    uintptr_t m_flDefuseLength              = 0x11EC;
    uintptr_t m_flDefuseCountDown           = 0x11F0;
    uintptr_t m_bBombDefused                = 0x11F4;
    uintptr_t m_hBombDefuser                = 0x11F8;
    uintptr_t m_AttributeManager            = 0x1200;
    uintptr_t m_hDefuserMultimeter          = 0x16D0;
    uintptr_t m_flNextRadarFlashTime        = 0x16D4;
    uintptr_t m_bRadarFlash                 = 0x16D8;
    uintptr_t m_pBombDefuser                = 0x16DC;
    uintptr_t m_fLastDefuseTime             = 0x16E0;
    uintptr_t m_pPredictionOwner            = 0x16E8;
    uintptr_t m_vecC4ExplodeSpectatePos     = 0x16F0;
    uintptr_t m_vecC4ExplodeSpectateAng     = 0x16FC;
    uintptr_t m_flC4ExplodeSpectateDuration = 0x1708;
};

CBodyComponent

struct CBodyComponent {
    uintptr_t m_pSceneNode     = 0x8;
    uintptr_t __m_pChainEntity = 0x48;
};

CSkeletonInstance

struct CSkeletonInstance {
    uintptr_t m_modelState                           = 0x140;
    uintptr_t m_bUseParentRenderBounds               = 0x3F0;
    uintptr_t m_bDisableSolidCollisionsForHierarchy  = 0x3F1;
    uintptr_t m_bDirtyMotionType                     = 0x3F2;
    uintptr_t m_bIsGeneratingLatchedParentSpaceState = 0x3F3;
    uintptr_t m_materialGroup                        = 0x3F8;
    uintptr_t m_nHitboxSet                           = 0x3FC;
};

CGameSceneNode

// Owns transforms. GetAbsOrigin, GetAbsRotation, bone matrices.
struct CGameSceneNode {
    uintptr_t m_bDirtyBoneMergeInfo = 0x0;
    uintptr_t m_bDirtyHierarchy     = 0x0;
    uintptr_t m_nodeToWorld         = 0x10;
    uintptr_t m_pOwner              = 0x30;
    uintptr_t m_pParent             = 0x38;
    uintptr_t m_pChild              = 0x40;
    uintptr_t m_hParent             = 0x70;
    uintptr_t m_vecOrigin           = 0x80;
    uintptr_t m_angRotation         = 0xB8;
    uintptr_t m_flScale             = 0xC4;
    uintptr_t m_vecAbsOrigin        = 0xC8;
    uintptr_t m_angAbsRotation      = 0xD4;
    uintptr_t m_flAbsScale          = 0xE0;
    uintptr_t m_nHierarchyType      = 0x108;
};

CModelState (bone data)

// Skeleton array is `m_hModel + m_boneCount ...` — walk from this base.
struct CModelState {
    uintptr_t m_hModel                         = 0xA0;
    uintptr_t m_ModelName                      = 0xA8;
    uintptr_t m_bClientClothCreationSuppressed = 0x110;
    uintptr_t m_MeshGroupMask                  = 0x208;
    uintptr_t m_nIdealMotionType               = 0x2A2;
    uintptr_t m_nForceLOD                      = 0x2A3;
    uintptr_t m_nClothUpdateFlags              = 0x2A4;
};

CCollisionProperty

struct CCollisionProperty {
    uintptr_t m_collisionAttribute          = 0x10;
    uintptr_t m_vecMins                     = 0x40;
    uintptr_t m_vecMaxs                     = 0x4C;
    uintptr_t m_usSolidFlags                = 0x5A;
    uintptr_t m_nSolidType                  = 0x5B;
    uintptr_t m_triggerBloat                = 0x5C;
    uintptr_t m_nSurroundType               = 0x5D;
    uintptr_t m_CollisionGroup              = 0x5E;
    uintptr_t m_nEnablePhysics              = 0x5F;
    uintptr_t m_flBoundingRadius            = 0x60;
    uintptr_t m_vecSpecifiedSurroundingMins = 0x64;
    uintptr_t m_vecSpecifiedSurroundingMaxs = 0x70;
};

C_EnvSky

struct C_EnvSky {
    uintptr_t m_hSkyMaterial             = 0xFB0;
    uintptr_t m_hSkyMaterialLightingOnly = 0xFB8;
    uintptr_t m_bStartDisabled           = 0xFC0;
    uintptr_t m_vTintColor               = 0xFC1;
    uintptr_t m_vTintColorLightingOnly   = 0xFC5;
    uintptr_t m_flBrightnessScale        = 0xFCC;
    uintptr_t m_nFogType                 = 0xFD0;
    uintptr_t m_flFogMinStart            = 0xFD4;
    uintptr_t m_flFogMinEnd              = 0xFD8;
    uintptr_t m_flFogMaxStart            = 0xFDC;
    uintptr_t m_flFogMaxEnd              = 0xFE0;
    uintptr_t m_bEnabled                 = 0xFE4;
};

Notes

  • All values above are RVAs relative to the module (client.dll, engine2.dll, etc.). Resolve at runtime with GetModuleHandleA(name) + offset.
  • dwLocalPlayerController and dwLocalPlayerPawn are direct pointers held inside client.dll. Deref once.
  • dwEntityList is a CEntitySystem*; walk +0x10 + (index >> 9) * 8 for the chunk pointer, then + (index & 0x1FF) * 0x78 for the entity.
  • dwViewMatrix is a 4x4 float matrix in row-major order. Use standard W2S with rows 0..3.
  • Button base addresses in the input section point to a 4-byte pressed / 4-byte held state block per key.
  • Fields flagged as heuristic or reverify above are auto-generated from schema names and may shift between minor updates — recheck once per patch.