build_number = 14173
timestamp = 2026-07-29T07:15:39.785964400+00:00
struct client_dll_globals {
uintptr_t dwGameEntitySystem_highestEntityIndex = 0x2090; // member offset
uintptr_t dwGlobalVars = 0x2090D60;
uintptr_t dwWeaponC4 = 0x231DB10;
uintptr_t dwLocalPlayerController = 0x237FB70;
uintptr_t dwGlowManager = 0x23A1708;
uintptr_t dwSensitivity = 0x23A2228;
uintptr_t dwGameRules = 0x23A49D8;
uintptr_t dwPrediction = 0x23A5140;
uintptr_t dwLocalPlayerPawn = 0x23A5238;
uintptr_t dwViewMatrix = 0x23AA340;
uintptr_t dwViewRender = 0x23AA398;
uintptr_t dwCSGOInput = 0x23BA790;
uintptr_t dwViewAngles = 0x23BAE18;
uintptr_t dwEntityList = 0x254FE70;
uintptr_t dwGameEntitySystem = 0x254FE70;
};
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;
};
struct aux_module_globals {
uintptr_t inputsystem_dwInputSystem = 0x45BA0;
uintptr_t matchmaking_dwGameTypes = 0x1ADF80;
uintptr_t soundsystem_dwSoundSystem_engineViewData = 0x7C; // member offset
};
struct cs2_buttons {
uintptr_t sprint = 0x2094E60;
uintptr_t reload = 0x2094EF0;
uintptr_t attack = 0x2094F80;
uintptr_t attack2 = 0x2095010;
uintptr_t turnleft = 0x20950A0;
uintptr_t turnright = 0x2095130;
uintptr_t forward = 0x20951C0;
uintptr_t back = 0x2095250;
uintptr_t left = 0x20952E0;
uintptr_t right = 0x2095370;
uintptr_t use = 0x2095400;
uintptr_t jump = 0x2095490;
uintptr_t duck = 0x2095520;
uintptr_t showscores = 0x23BA590;
uintptr_t zoom = 0x23BA620;
uintptr_t lookatweapon = 0x23BA6B0;
};
struct cs2_interfaces {
uintptr_t client_Source2Client002 = 0x239F6D0;
uintptr_t client_Source2ClientPrediction001 = 0x23A5140;
uintptr_t client_Source2ClientConfig001 = 0x230CA00;
uintptr_t client_LegacyGameUI001 = 0x20A4CD0;
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;
};
// 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;
};
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;
};
// 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;
};
// 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;
};
// 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;
};
// 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;
};
// 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;
};
struct C_CSWeaponBaseGun {
uintptr_t m_zoomLevel = 0x1CE0;
uintptr_t m_iBurstShotsRemaining = 0x1CE4;
uintptr_t m_iSilencerBodygroup = 0x1CE8;
};
// 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;
};
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;
};
// Free-cam / dead spectator pawn.
struct C_CSObserverPawn {
uintptr_t m_hDetectParentChange = 0x1480;
};
// 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;
};
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;
};
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;
};
struct CBodyComponent {
uintptr_t m_pSceneNode = 0x8;
uintptr_t __m_pChainEntity = 0x48;
};
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;
};
// 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;
};
// 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;
};
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;
};
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;
};