Merge branch 'a2x:main' into main

This commit is contained in:
Jannes 2025-04-22 10:58:18 +03:00 committed by GitHub
commit 85feb6ba1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
92 changed files with 2180 additions and 2894 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
/.idea
/.vscode
/.vs
/target
Cargo.lock

View File

@ -2,7 +2,7 @@
name = "cs2-dumper"
version = "0.1.2"
authors = ["a2x"]
edition = "2021"
edition = "2024"
readme = "README.md"
repository = "https://github.com/a2x/cs2-dumper"
license = "MIT"

View File

@ -3,27 +3,34 @@
An external offset/interface dumper for Counter-Strike 2, with support for both Windows & Linux. Powered
by [memflow](https://github.com/memflow/memflow).
The native Linux version is available in the [linux](https://github.com/a2x/cs2-dumper/tree/linux) branch.
The native Linux version is available in the [linux](https://github.com/a2x/cs2-dumper/tree/linux) branch (currently
outdated).
For a work-in-progress offline version, please check out [cs2-analyzer](https://github.com/a2x/cs2-analyzer) and the web demo here: https://a2x.github.io/cs2-analyzer
For a work-in-progress offline version, check out the [cs2-analyzer](https://github.com/a2x/cs2-analyzer) repository or
view its included web demo [here](https://a2x.github.io/cs2-analyzer).
## Getting Started
You can download the latest release from [Releases](https://github.com/a2x/cs2-dumper/releases) or compile it yourself.
Note that compiling it yourself requires your Rust compiler version to be at least 1.74.0 or newer, and the nightly
toolchain must be installed.
Note that compiling it yourself requires your Rust compiler version to be at least 1.74.0 or newer.
## Usage
1. Ensure the game process is running (Being in the main menu should suffice).
2. Run the `cs2-dumper` executable (Note that some memflow connectors may require elevated privileges).
1. Ensure the game is running (Being in the main menu should suffice).
2. Run the `cs2-dumper` executable.
_Note:_ If you run the executable without specifying an optional memflow connector name, it will automatically use the
[memflow-native](https://github.com/memflow/memflow-native) OS layer to read the memory of the game process. If you
wish to use an existing memflow connector instead, you can pass the `connector` and optional `connector-args` arguments
to the program.
wish to use an existing memflow connector instead, such as **pcileech** or **kvm**, you can pass the `connector` and
optional `connector-args` arguments to the program. These connectors can be installed and managed using
the [memflowup](https://github.com/memflow/memflowup) tool.
E.g. `sudo ./cs2-dumper -c pcileech -a :device=FPGA -vvv`
E.g (for pcileech). `cs2-dumper -c pcileech -a :device=FPGA -vv`
Certain connectors, such as the [kvm](https://github.com/memflow/memflow-kvm) connector on Linux or
the [pcileech](https://github.com/memflow/memflow-pcileech) / [winio](https://github.com/a2x/memflow-winio)
connectors on Windows, require elevated privileges to work. So either run the `cs2-dumper` executable with `sudo` on
Linux or as an administrator on Windows.
### Available Arguments
@ -39,7 +46,7 @@ E.g. `sudo ./cs2-dumper -c pcileech -a :device=FPGA -vvv`
## Running Tests
To run tests, use the following command: `cargo test -- --nocapture`.
To run the few basic provided tests, use the following command: `cargo test -- --nocapture`.
## License

View File

@ -1,5 +1,5 @@
02:16:56 [INFO] found 16 buttons
02:16:56 [INFO] found 130 interfaces across 33 modules
02:16:57 [INFO] found 33 offsets across 5 modules
02:16:57 [INFO] found 2468 classes and 368 enums across 17 modules
02:16:57 [INFO] analysis completed in 1.05s
13:06:03 [INFO] found 16 buttons
13:06:03 [INFO] found 130 interfaces across 33 modules
13:06:04 [INFO] found 33 offsets across 5 modules
13:06:04 [INFO] found 2468 classes and 368 enums across 17 modules
13:06:04 [INFO] analysis completed in 1.02s

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: animationsystem.dll
@ -30,7 +30,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum BoneTransformSpace_t : uint {
BoneTransformSpace_Invalid = 0xFFFFFFFFFFFFFFFF,
BoneTransformSpace_Invalid = unchecked((uint)-1),
BoneTransformSpace_Parent = 0x0,
BoneTransformSpace_Model = 0x1,
BoneTransformSpace_World = 0x2
@ -72,7 +72,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 1
// Member count: 6
public enum MovementGait_t : byte {
eInvalid = 0xFFFFFFFFFFFFFFFF,
eInvalid = unchecked((byte)-1),
eSlow = 0x0,
eMedium = 0x1,
eFast = 0x2,
@ -343,7 +343,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum ModelBoneFlexComponent_t : uint {
MODEL_BONE_FLEX_INVALID = 0xFFFFFFFFFFFFFFFF,
MODEL_BONE_FLEX_INVALID = unchecked((uint)-1),
MODEL_BONE_FLEX_TX = 0x0,
MODEL_BONE_FLEX_TY = 0x1,
MODEL_BONE_FLEX_TZ = 0x2
@ -671,7 +671,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 2
// Member count: 3
public enum AnimScriptType : ushort {
ANIMSCRIPT_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
ANIMSCRIPT_TYPE_INVALID = unchecked((ushort)-1),
ANIMSCRIPT_FUSE_GENERAL = 0x0,
ANIMSCRIPT_FUSE_STATEMACHINE = 0x1
}
@ -725,7 +725,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum HandshakeTagType_t : uint {
eInvalid = 0xFFFFFFFFFFFFFFFF,
eInvalid = unchecked((uint)-1),
eTask = 0x0,
eMovement = 0x1,
eCount = 0x2
@ -733,7 +733,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 18
public enum ParticleAttachment_t : uint {
PATTACH_INVALID = 0xFFFFFFFFFFFFFFFF,
PATTACH_INVALID = unchecked((uint)-1),
PATTACH_ABSORIGIN = 0x0,
PATTACH_ABSORIGIN_FOLLOW = 0x1,
PATTACH_CUSTOMORIGIN = 0x2,
@ -887,7 +887,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 5
public enum ModelConfigAttachmentType_t : uint {
MODEL_CONFIG_ATTACHMENT_INVALID = 0xFFFFFFFFFFFFFFFF,
MODEL_CONFIG_ATTACHMENT_INVALID = unchecked((uint)-1),
MODEL_CONFIG_ATTACHMENT_BONE_OR_ATTACHMENT = 0x0,
MODEL_CONFIG_ATTACHMENT_ROOT_RELATIVE = 0x1,
MODEL_CONFIG_ATTACHMENT_BONEMERGE = 0x2,

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,24 +1,24 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper {
// Module: client.dll
public static class Buttons {
public const nint attack = 0x1866610;
public const nint attack2 = 0x18666A0;
public const nint back = 0x18668E0;
public const nint duck = 0x1866BB0;
public const nint forward = 0x1866850;
public const nint jump = 0x1866B20;
public const nint left = 0x1866970;
public const nint lookatweapon = 0x1A8E4F0;
public const nint reload = 0x1866580;
public const nint right = 0x1866A00;
public const nint showscores = 0x1A8E3D0;
public const nint sprint = 0x18664F0;
public const nint turnleft = 0x1866730;
public const nint turnright = 0x18667C0;
public const nint use = 0x1866A90;
public const nint zoom = 0x1A8E460;
public const nint attack = 0x186C850;
public const nint attack2 = 0x186C8E0;
public const nint back = 0x186CB20;
public const nint duck = 0x186CDF0;
public const nint forward = 0x186CA90;
public const nint jump = 0x186CD60;
public const nint left = 0x186CBB0;
public const nint lookatweapon = 0x1A92F10;
public const nint reload = 0x186C7C0;
public const nint right = 0x186CC40;
public const nint showscores = 0x1A92DF0;
public const nint sprint = 0x186C730;
public const nint turnleft = 0x186C970;
public const nint turnright = 0x186CA00;
public const nint use = 0x186CCD0;
public const nint zoom = 0x1A92E80;
}
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once
@ -8,21 +8,21 @@
namespace cs2_dumper {
// Module: client.dll
namespace buttons {
constexpr std::ptrdiff_t attack = 0x1866610;
constexpr std::ptrdiff_t attack2 = 0x18666A0;
constexpr std::ptrdiff_t back = 0x18668E0;
constexpr std::ptrdiff_t duck = 0x1866BB0;
constexpr std::ptrdiff_t forward = 0x1866850;
constexpr std::ptrdiff_t jump = 0x1866B20;
constexpr std::ptrdiff_t left = 0x1866970;
constexpr std::ptrdiff_t lookatweapon = 0x1A8E4F0;
constexpr std::ptrdiff_t reload = 0x1866580;
constexpr std::ptrdiff_t right = 0x1866A00;
constexpr std::ptrdiff_t showscores = 0x1A8E3D0;
constexpr std::ptrdiff_t sprint = 0x18664F0;
constexpr std::ptrdiff_t turnleft = 0x1866730;
constexpr std::ptrdiff_t turnright = 0x18667C0;
constexpr std::ptrdiff_t use = 0x1866A90;
constexpr std::ptrdiff_t zoom = 0x1A8E460;
constexpr std::ptrdiff_t attack = 0x186C850;
constexpr std::ptrdiff_t attack2 = 0x186C8E0;
constexpr std::ptrdiff_t back = 0x186CB20;
constexpr std::ptrdiff_t duck = 0x186CDF0;
constexpr std::ptrdiff_t forward = 0x186CA90;
constexpr std::ptrdiff_t jump = 0x186CD60;
constexpr std::ptrdiff_t left = 0x186CBB0;
constexpr std::ptrdiff_t lookatweapon = 0x1A92F10;
constexpr std::ptrdiff_t reload = 0x186C7C0;
constexpr std::ptrdiff_t right = 0x186CC40;
constexpr std::ptrdiff_t showscores = 0x1A92DF0;
constexpr std::ptrdiff_t sprint = 0x186C730;
constexpr std::ptrdiff_t turnleft = 0x186C970;
constexpr std::ptrdiff_t turnright = 0x186CA00;
constexpr std::ptrdiff_t use = 0x186CCD0;
constexpr std::ptrdiff_t zoom = 0x1A92E80;
}
}

View File

@ -1,20 +1,20 @@
{
"client.dll": {
"attack": 25585168,
"attack2": 25585312,
"back": 25585888,
"duck": 25586608,
"forward": 25585744,
"jump": 25586464,
"left": 25586032,
"lookatweapon": 27845872,
"reload": 25585024,
"right": 25586176,
"showscores": 27845584,
"sprint": 25584880,
"turnleft": 25585456,
"turnright": 25585600,
"use": 25586320,
"zoom": 27845728
"attack": 25610320,
"attack2": 25610464,
"back": 25611040,
"duck": 25611760,
"forward": 25610896,
"jump": 25611616,
"left": 25611184,
"lookatweapon": 27864848,
"reload": 25610176,
"right": 25611328,
"showscores": 27864560,
"sprint": 25610032,
"turnleft": 25610608,
"turnright": 25610752,
"use": 25611472,
"zoom": 27864704
}
}

View File

@ -1,26 +1,26 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, unused)]
pub mod cs2_dumper {
// Module: client.dll
pub mod buttons {
pub const attack: usize = 0x1866610;
pub const attack2: usize = 0x18666A0;
pub const back: usize = 0x18668E0;
pub const duck: usize = 0x1866BB0;
pub const forward: usize = 0x1866850;
pub const jump: usize = 0x1866B20;
pub const left: usize = 0x1866970;
pub const lookatweapon: usize = 0x1A8E4F0;
pub const reload: usize = 0x1866580;
pub const right: usize = 0x1866A00;
pub const showscores: usize = 0x1A8E3D0;
pub const sprint: usize = 0x18664F0;
pub const turnleft: usize = 0x1866730;
pub const turnright: usize = 0x18667C0;
pub const r#use: usize = 0x1866A90;
pub const zoom: usize = 0x1A8E460;
pub const attack: usize = 0x186C850;
pub const attack2: usize = 0x186C8E0;
pub const back: usize = 0x186CB20;
pub const duck: usize = 0x186CDF0;
pub const forward: usize = 0x186CA90;
pub const jump: usize = 0x186CD60;
pub const left: usize = 0x186CBB0;
pub const lookatweapon: usize = 0x1A92F10;
pub const reload: usize = 0x186C7C0;
pub const right: usize = 0x186CC40;
pub const showscores: usize = 0x1A92DF0;
pub const sprint: usize = 0x186C730;
pub const turnleft: usize = 0x186C970;
pub const turnright: usize = 0x186CA00;
pub const r#use: usize = 0x186CCD0;
pub const zoom: usize = 0x1A92E80;
}
}

View File

@ -1,9 +1,9 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: client.dll
// Class count: 427
// Class count: 414
// Enum count: 7
public static class ClientDll {
// Alignment: 4
@ -200,7 +200,7 @@ namespace CS2Dumper.Schemas {
public static class C_WeaponM249 {
}
// Parent: C_TeamplayRules
// Field count: 100
// Field count: 101
//
// Metadata:
// NetworkVarNames: m_bFreezePeriod (bool)
@ -367,38 +367,39 @@ namespace CS2Dumper.Schemas {
public const nint m_vMinimapMaxs = 0xC2C; // Vector
public const nint m_MinimapVerticalSectionHeights = 0xC38; // float32[8]
public const nint m_bSpawnedTerrorHuntHeavy = 0xC58; // bool
public const nint m_nEndMatchMapGroupVoteTypes = 0xC5C; // int32[10]
public const nint m_nEndMatchMapGroupVoteOptions = 0xC84; // int32[10]
public const nint m_nEndMatchMapVoteWinner = 0xCAC; // int32
public const nint m_iNumConsecutiveCTLoses = 0xCB0; // int32
public const nint m_iNumConsecutiveTerroristLoses = 0xCB4; // int32
public const nint m_bMarkClientStopRecordAtRoundEnd = 0xCD0; // bool
public const nint m_nMatchAbortedEarlyReason = 0xD78; // int32
public const nint m_bHasTriggeredRoundStartMusic = 0xD7C; // bool
public const nint m_bSwitchingTeamsAtRoundReset = 0xD7D; // bool
public const nint m_pGameModeRules = 0xD98; // CCSGameModeRules*
public const nint m_RetakeRules = 0xDA0; // C_RetakeGameRules
public const nint m_nMatchEndCount = 0xEB8; // uint8
public const nint m_nTTeamIntroVariant = 0xEBC; // int32
public const nint m_nCTTeamIntroVariant = 0xEC0; // int32
public const nint m_bTeamIntroPeriod = 0xEC4; // bool
public const nint m_iRoundEndWinnerTeam = 0xEC8; // int32
public const nint m_eRoundEndReason = 0xECC; // int32
public const nint m_bRoundEndShowTimerDefend = 0xED0; // bool
public const nint m_iRoundEndTimerTime = 0xED4; // int32
public const nint m_sRoundEndFunFactToken = 0xED8; // CUtlString
public const nint m_iRoundEndFunFactPlayerSlot = 0xEE0; // CPlayerSlot
public const nint m_iRoundEndFunFactData1 = 0xEE4; // int32
public const nint m_iRoundEndFunFactData2 = 0xEE8; // int32
public const nint m_iRoundEndFunFactData3 = 0xEEC; // int32
public const nint m_sRoundEndMessage = 0xEF0; // CUtlString
public const nint m_iRoundEndPlayerCount = 0xEF8; // int32
public const nint m_bRoundEndNoMusic = 0xEFC; // bool
public const nint m_iRoundEndLegacy = 0xF00; // int32
public const nint m_nRoundEndCount = 0xF04; // uint8
public const nint m_iRoundStartRoundNumber = 0xF08; // int32
public const nint m_nRoundStartCount = 0xF0C; // uint8
public const nint m_flLastPerfSampleTime = 0x4F18; // float64
public const nint m_ullLocalMatchID = 0xC60; // uint64
public const nint m_nEndMatchMapGroupVoteTypes = 0xC68; // int32[10]
public const nint m_nEndMatchMapGroupVoteOptions = 0xC90; // int32[10]
public const nint m_nEndMatchMapVoteWinner = 0xCB8; // int32
public const nint m_iNumConsecutiveCTLoses = 0xCBC; // int32
public const nint m_iNumConsecutiveTerroristLoses = 0xCC0; // int32
public const nint m_bMarkClientStopRecordAtRoundEnd = 0xCE0; // bool
public const nint m_nMatchAbortedEarlyReason = 0xD88; // int32
public const nint m_bHasTriggeredRoundStartMusic = 0xD8C; // bool
public const nint m_bSwitchingTeamsAtRoundReset = 0xD8D; // bool
public const nint m_pGameModeRules = 0xDA8; // CCSGameModeRules*
public const nint m_RetakeRules = 0xDB0; // C_RetakeGameRules
public const nint m_nMatchEndCount = 0xEC8; // uint8
public const nint m_nTTeamIntroVariant = 0xECC; // int32
public const nint m_nCTTeamIntroVariant = 0xED0; // int32
public const nint m_bTeamIntroPeriod = 0xED4; // bool
public const nint m_iRoundEndWinnerTeam = 0xED8; // int32
public const nint m_eRoundEndReason = 0xEDC; // int32
public const nint m_bRoundEndShowTimerDefend = 0xEE0; // bool
public const nint m_iRoundEndTimerTime = 0xEE4; // int32
public const nint m_sRoundEndFunFactToken = 0xEE8; // CUtlString
public const nint m_iRoundEndFunFactPlayerSlot = 0xEF0; // CPlayerSlot
public const nint m_iRoundEndFunFactData1 = 0xEF4; // int32
public const nint m_iRoundEndFunFactData2 = 0xEF8; // int32
public const nint m_iRoundEndFunFactData3 = 0xEFC; // int32
public const nint m_sRoundEndMessage = 0xF00; // CUtlString
public const nint m_iRoundEndPlayerCount = 0xF08; // int32
public const nint m_bRoundEndNoMusic = 0xF0C; // bool
public const nint m_iRoundEndLegacy = 0xF10; // int32
public const nint m_nRoundEndCount = 0xF14; // uint8
public const nint m_iRoundStartRoundNumber = 0xF18; // int32
public const nint m_nRoundStartCount = 0xF1C; // uint8
public const nint m_flLastPerfSampleTime = 0x4F28; // float64
}
// Parent: CBodyComponent
// Field count: 1
@ -1418,10 +1419,6 @@ namespace CS2Dumper.Schemas {
public const nint m_iEffectName = 0x6C; // uint16
public const nint m_nExplosionType = 0x6E; // uint8
}
// Parent: C_BaseCSGrenadeProjectile
// Field count: 0
public static class C_SensorGrenadeProjectile {
}
// Parent: C_BaseCSGrenade
// Field count: 0
public static class C_MolotovGrenade {
@ -1823,10 +1820,6 @@ namespace CS2Dumper.Schemas {
// Field count: 0
public static class C_Flashbang {
}
// Parent: C_CSWeaponBase
// Field count: 0
public static class CBumpMine {
}
// Parent: None
// Field count: 13
//
@ -2454,14 +2447,6 @@ namespace CS2Dumper.Schemas {
public const nint m_bRagdollClientSide = 0xE40; // bool
public const nint m_bHasAnimatedMaterialAttributes = 0xE50; // bool
}
// Parent: C_CSWeaponBase
// Field count: 0
public static class C_Melee {
}
// Parent: C_BaseGrenade
// Field count: 0
public static class CBreachChargeProjectile {
}
// Parent: C_BaseEntity
// Field count: 0
public static class C_PointEntity {
@ -3483,10 +3468,6 @@ namespace CS2Dumper.Schemas {
public const nint m_flObserverChaseDistance = 0x50; // float32
public const nint m_flObserverChaseDistanceCalcTime = 0x54; // GameTime_t
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
public static class CWeaponZoneRepulsor {
}
// Parent: CPlayerPawnComponent
// Field count: 0
public static class CPlayer_WaterServices {
@ -3965,14 +3946,6 @@ namespace CS2Dumper.Schemas {
// Field count: 0
public static class C_WeaponMAC10 {
}
// Parent: C_CSWeaponBaseGun
// Field count: 1
//
// Metadata:
// NetworkVarNames: m_flDisplayHealth (float)
public static class C_WeaponShield {
public const nint m_flDisplayHealth = 0x1B40; // float32
}
// Parent: C_PointClientUIWorldPanel
// Field count: 1
//
@ -4768,10 +4741,6 @@ namespace CS2Dumper.Schemas {
// Field count: 0
public static class C_WeaponHKP2000 {
}
// Parent: C_BaseCSGrenade
// Field count: 0
public static class CTripWireFire {
}
// Parent: C_BaseFlex
// Field count: 6
public static class C_CSGO_PreviewModel {
@ -4883,10 +4852,6 @@ namespace CS2Dumper.Schemas {
public const nint m_hCarriedHostage = 0x40; // CHandle<C_BaseEntity>
public const nint m_hCarriedHostageProp = 0x44; // CHandle<C_BaseEntity>
}
// Parent: C_CSWeaponBase
// Field count: 0
public static class CBreachCharge {
}
// Parent: C_LightEntity
// Field count: 0
public static class C_LightDirectionalEntity {
@ -5058,10 +5023,6 @@ namespace CS2Dumper.Schemas {
// MPulseLibraryBindings
public static class CPathSimpleAPI {
}
// Parent: C_BaseCSGrenade
// Field count: 0
public static class C_SensorGrenade {
}
// Parent: C_CSWeaponBaseGun
// Field count: 2
//
@ -5071,16 +5032,6 @@ namespace CS2Dumper.Schemas {
public const nint m_fFireTime = 0x1B40; // GameTime_t
public const nint m_nLastAttackTick = 0x1B44; // int32
}
// Parent: C_CSWeaponBase
// Field count: 2
//
// Metadata:
// NetworkVarNames: m_bPlayingUninterruptableAct (bool)
// NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
public static class C_Fists {
public const nint m_bPlayingUninterruptableAct = 0x1B20; // bool
public const nint m_nUninterruptableActivity = 0x1B24; // PlayerAnimEvent_t
}
// Parent: C_PhysicsProp
// Field count: 0
public static class C_PhysicsPropMultiplayer {
@ -6210,12 +6161,8 @@ namespace CS2Dumper.Schemas {
public const nint m_nJustifyVertical = 0xFF0; // PointWorldTextJustifyVertical_t
public const nint m_nReorientMode = 0xFF4; // PointWorldTextReorientMode_t
}
// Parent: C_BaseGrenade
// Field count: 0
public static class CBumpMineProjectile {
}
// Parent: CBasePlayerController
// Field count: 65
// Field count: 66
//
// Metadata:
// MNetworkUserGroupProxy
@ -6303,41 +6250,42 @@ namespace CS2Dumper.Schemas {
public const nint m_iDraftIndex = 0x7E0; // int32
public const nint m_msQueuedModeDisconnectionTimestamp = 0x7E4; // uint32
public const nint m_uiAbandonRecordedReason = 0x7E8; // uint32
public const nint m_bCannotBeKicked = 0x7EC; // bool
public const nint m_bEverFullyConnected = 0x7ED; // bool
public const nint m_bAbandonAllowsSurrender = 0x7EE; // bool
public const nint m_bAbandonOffersInstantSurrender = 0x7EF; // bool
public const nint m_bDisconnection1MinWarningPrinted = 0x7F0; // bool
public const nint m_bScoreReported = 0x7F1; // bool
public const nint m_nDisconnectionTick = 0x7F4; // int32
public const nint m_bControllingBot = 0x800; // bool
public const nint m_bHasControlledBotThisRound = 0x801; // bool
public const nint m_bHasBeenControlledByPlayerThisRound = 0x802; // bool
public const nint m_nBotsControlledThisRound = 0x804; // int32
public const nint m_bCanControlObservedBot = 0x808; // bool
public const nint m_hPlayerPawn = 0x80C; // CHandle<C_CSPlayerPawn>
public const nint m_hObserverPawn = 0x810; // CHandle<C_CSObserverPawn>
public const nint m_bPawnIsAlive = 0x814; // bool
public const nint m_iPawnHealth = 0x818; // uint32
public const nint m_iPawnArmor = 0x81C; // int32
public const nint m_bPawnHasDefuser = 0x820; // bool
public const nint m_bPawnHasHelmet = 0x821; // bool
public const nint m_nPawnCharacterDefIndex = 0x822; // uint16
public const nint m_iPawnLifetimeStart = 0x824; // int32
public const nint m_iPawnLifetimeEnd = 0x828; // int32
public const nint m_iPawnBotDifficulty = 0x82C; // int32
public const nint m_hOriginalControllerOfCurrentPawn = 0x830; // CHandle<CCSPlayerController>
public const nint m_iScore = 0x834; // int32
public const nint m_recentKillQueue = 0x838; // uint8[8]
public const nint m_nFirstKill = 0x840; // uint8
public const nint m_nKillCount = 0x841; // uint8
public const nint m_bMvpNoMusic = 0x842; // bool
public const nint m_eMvpReason = 0x844; // int32
public const nint m_iMusicKitID = 0x848; // int32
public const nint m_iMusicKitMVPs = 0x84C; // int32
public const nint m_iMVPs = 0x850; // int32
public const nint m_bIsPlayerNameDirty = 0x854; // bool
public const nint m_bFireBulletsSeedSynchronized = 0x855; // bool
public const nint m_eNetworkDisconnectionReason = 0x7EC; // uint32
public const nint m_bCannotBeKicked = 0x7F0; // bool
public const nint m_bEverFullyConnected = 0x7F1; // bool
public const nint m_bAbandonAllowsSurrender = 0x7F2; // bool
public const nint m_bAbandonOffersInstantSurrender = 0x7F3; // bool
public const nint m_bDisconnection1MinWarningPrinted = 0x7F4; // bool
public const nint m_bScoreReported = 0x7F5; // bool
public const nint m_nDisconnectionTick = 0x7F8; // int32
public const nint m_bControllingBot = 0x808; // bool
public const nint m_bHasControlledBotThisRound = 0x809; // bool
public const nint m_bHasBeenControlledByPlayerThisRound = 0x80A; // bool
public const nint m_nBotsControlledThisRound = 0x80C; // int32
public const nint m_bCanControlObservedBot = 0x810; // bool
public const nint m_hPlayerPawn = 0x814; // CHandle<C_CSPlayerPawn>
public const nint m_hObserverPawn = 0x818; // CHandle<C_CSObserverPawn>
public const nint m_bPawnIsAlive = 0x81C; // bool
public const nint m_iPawnHealth = 0x820; // uint32
public const nint m_iPawnArmor = 0x824; // int32
public const nint m_bPawnHasDefuser = 0x828; // bool
public const nint m_bPawnHasHelmet = 0x829; // bool
public const nint m_nPawnCharacterDefIndex = 0x82A; // uint16
public const nint m_iPawnLifetimeStart = 0x82C; // int32
public const nint m_iPawnLifetimeEnd = 0x830; // int32
public const nint m_iPawnBotDifficulty = 0x834; // int32
public const nint m_hOriginalControllerOfCurrentPawn = 0x838; // CHandle<CCSPlayerController>
public const nint m_iScore = 0x83C; // int32
public const nint m_recentKillQueue = 0x840; // uint8[8]
public const nint m_nFirstKill = 0x848; // uint8
public const nint m_nKillCount = 0x849; // uint8
public const nint m_bMvpNoMusic = 0x84A; // bool
public const nint m_eMvpReason = 0x84C; // int32
public const nint m_iMusicKitID = 0x850; // int32
public const nint m_iMusicKitMVPs = 0x854; // int32
public const nint m_iMVPs = 0x858; // int32
public const nint m_bIsPlayerNameDirty = 0x85C; // bool
public const nint m_bFireBulletsSeedSynchronized = 0x85D; // bool
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
@ -6601,10 +6549,6 @@ namespace CS2Dumper.Schemas {
// Field count: 0
public static class C_IncendiaryGrenade {
}
// Parent: C_CSWeaponBase
// Field count: 0
public static class CTablet {
}
// Parent: CBasePulseGraphInstance
// Field count: 1
//
@ -6644,10 +6588,6 @@ namespace CS2Dumper.Schemas {
public const nint m_hOldAttached = 0x590; // CHandle<C_BaseEntity>
public const nint m_bCheapEffect = 0x594; // bool
}
// Parent: C_BaseGrenade
// Field count: 0
public static class CTripWireFireProjectile {
}
// Parent: C_BaseModelEntity
// Field count: 0
public static class C_Breakable {

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once
@ -8,7 +8,7 @@
namespace cs2_dumper {
namespace schemas {
// Module: client.dll
// Class count: 427
// Class count: 414
// Enum count: 7
namespace client_dll {
// Alignment: 4
@ -205,7 +205,7 @@ namespace cs2_dumper {
namespace C_WeaponM249 {
}
// Parent: C_TeamplayRules
// Field count: 100
// Field count: 101
//
// Metadata:
// NetworkVarNames: m_bFreezePeriod (bool)
@ -372,38 +372,39 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_vMinimapMaxs = 0xC2C; // Vector
constexpr std::ptrdiff_t m_MinimapVerticalSectionHeights = 0xC38; // float32[8]
constexpr std::ptrdiff_t m_bSpawnedTerrorHuntHeavy = 0xC58; // bool
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xC5C; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xC84; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xCAC; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xCB0; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xCB4; // int32
constexpr std::ptrdiff_t m_bMarkClientStopRecordAtRoundEnd = 0xCD0; // bool
constexpr std::ptrdiff_t m_nMatchAbortedEarlyReason = 0xD78; // int32
constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0xD7C; // bool
constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0xD7D; // bool
constexpr std::ptrdiff_t m_pGameModeRules = 0xD98; // CCSGameModeRules*
constexpr std::ptrdiff_t m_RetakeRules = 0xDA0; // C_RetakeGameRules
constexpr std::ptrdiff_t m_nMatchEndCount = 0xEB8; // uint8
constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0xEBC; // int32
constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0xEC0; // int32
constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0xEC4; // bool
constexpr std::ptrdiff_t m_iRoundEndWinnerTeam = 0xEC8; // int32
constexpr std::ptrdiff_t m_eRoundEndReason = 0xECC; // int32
constexpr std::ptrdiff_t m_bRoundEndShowTimerDefend = 0xED0; // bool
constexpr std::ptrdiff_t m_iRoundEndTimerTime = 0xED4; // int32
constexpr std::ptrdiff_t m_sRoundEndFunFactToken = 0xED8; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndFunFactPlayerSlot = 0xEE0; // CPlayerSlot
constexpr std::ptrdiff_t m_iRoundEndFunFactData1 = 0xEE4; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData2 = 0xEE8; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData3 = 0xEEC; // int32
constexpr std::ptrdiff_t m_sRoundEndMessage = 0xEF0; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndPlayerCount = 0xEF8; // int32
constexpr std::ptrdiff_t m_bRoundEndNoMusic = 0xEFC; // bool
constexpr std::ptrdiff_t m_iRoundEndLegacy = 0xF00; // int32
constexpr std::ptrdiff_t m_nRoundEndCount = 0xF04; // uint8
constexpr std::ptrdiff_t m_iRoundStartRoundNumber = 0xF08; // int32
constexpr std::ptrdiff_t m_nRoundStartCount = 0xF0C; // uint8
constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x4F18; // float64
constexpr std::ptrdiff_t m_ullLocalMatchID = 0xC60; // uint64
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xC68; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xC90; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xCB8; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xCBC; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xCC0; // int32
constexpr std::ptrdiff_t m_bMarkClientStopRecordAtRoundEnd = 0xCE0; // bool
constexpr std::ptrdiff_t m_nMatchAbortedEarlyReason = 0xD88; // int32
constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0xD8C; // bool
constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0xD8D; // bool
constexpr std::ptrdiff_t m_pGameModeRules = 0xDA8; // CCSGameModeRules*
constexpr std::ptrdiff_t m_RetakeRules = 0xDB0; // C_RetakeGameRules
constexpr std::ptrdiff_t m_nMatchEndCount = 0xEC8; // uint8
constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0xECC; // int32
constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0xED0; // int32
constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0xED4; // bool
constexpr std::ptrdiff_t m_iRoundEndWinnerTeam = 0xED8; // int32
constexpr std::ptrdiff_t m_eRoundEndReason = 0xEDC; // int32
constexpr std::ptrdiff_t m_bRoundEndShowTimerDefend = 0xEE0; // bool
constexpr std::ptrdiff_t m_iRoundEndTimerTime = 0xEE4; // int32
constexpr std::ptrdiff_t m_sRoundEndFunFactToken = 0xEE8; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndFunFactPlayerSlot = 0xEF0; // CPlayerSlot
constexpr std::ptrdiff_t m_iRoundEndFunFactData1 = 0xEF4; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData2 = 0xEF8; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData3 = 0xEFC; // int32
constexpr std::ptrdiff_t m_sRoundEndMessage = 0xF00; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndPlayerCount = 0xF08; // int32
constexpr std::ptrdiff_t m_bRoundEndNoMusic = 0xF0C; // bool
constexpr std::ptrdiff_t m_iRoundEndLegacy = 0xF10; // int32
constexpr std::ptrdiff_t m_nRoundEndCount = 0xF14; // uint8
constexpr std::ptrdiff_t m_iRoundStartRoundNumber = 0xF18; // int32
constexpr std::ptrdiff_t m_nRoundStartCount = 0xF1C; // uint8
constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x4F28; // float64
}
// Parent: CBodyComponent
// Field count: 1
@ -1423,10 +1424,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_iEffectName = 0x6C; // uint16
constexpr std::ptrdiff_t m_nExplosionType = 0x6E; // uint8
}
// Parent: C_BaseCSGrenadeProjectile
// Field count: 0
namespace C_SensorGrenadeProjectile {
}
// Parent: C_BaseCSGrenade
// Field count: 0
namespace C_MolotovGrenade {
@ -1828,10 +1825,6 @@ namespace cs2_dumper {
// Field count: 0
namespace C_Flashbang {
}
// Parent: C_CSWeaponBase
// Field count: 0
namespace CBumpMine {
}
// Parent: None
// Field count: 13
//
@ -2459,14 +2452,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_bRagdollClientSide = 0xE40; // bool
constexpr std::ptrdiff_t m_bHasAnimatedMaterialAttributes = 0xE50; // bool
}
// Parent: C_CSWeaponBase
// Field count: 0
namespace C_Melee {
}
// Parent: C_BaseGrenade
// Field count: 0
namespace CBreachChargeProjectile {
}
// Parent: C_BaseEntity
// Field count: 0
namespace C_PointEntity {
@ -3488,10 +3473,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_flObserverChaseDistance = 0x50; // float32
constexpr std::ptrdiff_t m_flObserverChaseDistanceCalcTime = 0x54; // GameTime_t
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
namespace CWeaponZoneRepulsor {
}
// Parent: CPlayerPawnComponent
// Field count: 0
namespace CPlayer_WaterServices {
@ -3970,14 +3951,6 @@ namespace cs2_dumper {
// Field count: 0
namespace C_WeaponMAC10 {
}
// Parent: C_CSWeaponBaseGun
// Field count: 1
//
// Metadata:
// NetworkVarNames: m_flDisplayHealth (float)
namespace C_WeaponShield {
constexpr std::ptrdiff_t m_flDisplayHealth = 0x1B40; // float32
}
// Parent: C_PointClientUIWorldPanel
// Field count: 1
//
@ -4773,10 +4746,6 @@ namespace cs2_dumper {
// Field count: 0
namespace C_WeaponHKP2000 {
}
// Parent: C_BaseCSGrenade
// Field count: 0
namespace CTripWireFire {
}
// Parent: C_BaseFlex
// Field count: 6
namespace C_CSGO_PreviewModel {
@ -4888,10 +4857,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_hCarriedHostage = 0x40; // CHandle<C_BaseEntity>
constexpr std::ptrdiff_t m_hCarriedHostageProp = 0x44; // CHandle<C_BaseEntity>
}
// Parent: C_CSWeaponBase
// Field count: 0
namespace CBreachCharge {
}
// Parent: C_LightEntity
// Field count: 0
namespace C_LightDirectionalEntity {
@ -5063,10 +5028,6 @@ namespace cs2_dumper {
// MPulseLibraryBindings
namespace CPathSimpleAPI {
}
// Parent: C_BaseCSGrenade
// Field count: 0
namespace C_SensorGrenade {
}
// Parent: C_CSWeaponBaseGun
// Field count: 2
//
@ -5076,16 +5037,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_fFireTime = 0x1B40; // GameTime_t
constexpr std::ptrdiff_t m_nLastAttackTick = 0x1B44; // int32
}
// Parent: C_CSWeaponBase
// Field count: 2
//
// Metadata:
// NetworkVarNames: m_bPlayingUninterruptableAct (bool)
// NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
namespace C_Fists {
constexpr std::ptrdiff_t m_bPlayingUninterruptableAct = 0x1B20; // bool
constexpr std::ptrdiff_t m_nUninterruptableActivity = 0x1B24; // PlayerAnimEvent_t
}
// Parent: C_PhysicsProp
// Field count: 0
namespace C_PhysicsPropMultiplayer {
@ -6215,12 +6166,8 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_nJustifyVertical = 0xFF0; // PointWorldTextJustifyVertical_t
constexpr std::ptrdiff_t m_nReorientMode = 0xFF4; // PointWorldTextReorientMode_t
}
// Parent: C_BaseGrenade
// Field count: 0
namespace CBumpMineProjectile {
}
// Parent: CBasePlayerController
// Field count: 65
// Field count: 66
//
// Metadata:
// MNetworkUserGroupProxy
@ -6308,41 +6255,42 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_iDraftIndex = 0x7E0; // int32
constexpr std::ptrdiff_t m_msQueuedModeDisconnectionTimestamp = 0x7E4; // uint32
constexpr std::ptrdiff_t m_uiAbandonRecordedReason = 0x7E8; // uint32
constexpr std::ptrdiff_t m_bCannotBeKicked = 0x7EC; // bool
constexpr std::ptrdiff_t m_bEverFullyConnected = 0x7ED; // bool
constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x7EE; // bool
constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x7EF; // bool
constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x7F0; // bool
constexpr std::ptrdiff_t m_bScoreReported = 0x7F1; // bool
constexpr std::ptrdiff_t m_nDisconnectionTick = 0x7F4; // int32
constexpr std::ptrdiff_t m_bControllingBot = 0x800; // bool
constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x801; // bool
constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x802; // bool
constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x804; // int32
constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x808; // bool
constexpr std::ptrdiff_t m_hPlayerPawn = 0x80C; // CHandle<C_CSPlayerPawn>
constexpr std::ptrdiff_t m_hObserverPawn = 0x810; // CHandle<C_CSObserverPawn>
constexpr std::ptrdiff_t m_bPawnIsAlive = 0x814; // bool
constexpr std::ptrdiff_t m_iPawnHealth = 0x818; // uint32
constexpr std::ptrdiff_t m_iPawnArmor = 0x81C; // int32
constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x820; // bool
constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x821; // bool
constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x822; // uint16
constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x824; // int32
constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x828; // int32
constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x82C; // int32
constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x830; // CHandle<CCSPlayerController>
constexpr std::ptrdiff_t m_iScore = 0x834; // int32
constexpr std::ptrdiff_t m_recentKillQueue = 0x838; // uint8[8]
constexpr std::ptrdiff_t m_nFirstKill = 0x840; // uint8
constexpr std::ptrdiff_t m_nKillCount = 0x841; // uint8
constexpr std::ptrdiff_t m_bMvpNoMusic = 0x842; // bool
constexpr std::ptrdiff_t m_eMvpReason = 0x844; // int32
constexpr std::ptrdiff_t m_iMusicKitID = 0x848; // int32
constexpr std::ptrdiff_t m_iMusicKitMVPs = 0x84C; // int32
constexpr std::ptrdiff_t m_iMVPs = 0x850; // int32
constexpr std::ptrdiff_t m_bIsPlayerNameDirty = 0x854; // bool
constexpr std::ptrdiff_t m_bFireBulletsSeedSynchronized = 0x855; // bool
constexpr std::ptrdiff_t m_eNetworkDisconnectionReason = 0x7EC; // uint32
constexpr std::ptrdiff_t m_bCannotBeKicked = 0x7F0; // bool
constexpr std::ptrdiff_t m_bEverFullyConnected = 0x7F1; // bool
constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x7F2; // bool
constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x7F3; // bool
constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x7F4; // bool
constexpr std::ptrdiff_t m_bScoreReported = 0x7F5; // bool
constexpr std::ptrdiff_t m_nDisconnectionTick = 0x7F8; // int32
constexpr std::ptrdiff_t m_bControllingBot = 0x808; // bool
constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x809; // bool
constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x80A; // bool
constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x80C; // int32
constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x810; // bool
constexpr std::ptrdiff_t m_hPlayerPawn = 0x814; // CHandle<C_CSPlayerPawn>
constexpr std::ptrdiff_t m_hObserverPawn = 0x818; // CHandle<C_CSObserverPawn>
constexpr std::ptrdiff_t m_bPawnIsAlive = 0x81C; // bool
constexpr std::ptrdiff_t m_iPawnHealth = 0x820; // uint32
constexpr std::ptrdiff_t m_iPawnArmor = 0x824; // int32
constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x828; // bool
constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x829; // bool
constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x82A; // uint16
constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x82C; // int32
constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x830; // int32
constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x834; // int32
constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x838; // CHandle<CCSPlayerController>
constexpr std::ptrdiff_t m_iScore = 0x83C; // int32
constexpr std::ptrdiff_t m_recentKillQueue = 0x840; // uint8[8]
constexpr std::ptrdiff_t m_nFirstKill = 0x848; // uint8
constexpr std::ptrdiff_t m_nKillCount = 0x849; // uint8
constexpr std::ptrdiff_t m_bMvpNoMusic = 0x84A; // bool
constexpr std::ptrdiff_t m_eMvpReason = 0x84C; // int32
constexpr std::ptrdiff_t m_iMusicKitID = 0x850; // int32
constexpr std::ptrdiff_t m_iMusicKitMVPs = 0x854; // int32
constexpr std::ptrdiff_t m_iMVPs = 0x858; // int32
constexpr std::ptrdiff_t m_bIsPlayerNameDirty = 0x85C; // bool
constexpr std::ptrdiff_t m_bFireBulletsSeedSynchronized = 0x85D; // bool
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
@ -6606,10 +6554,6 @@ namespace cs2_dumper {
// Field count: 0
namespace C_IncendiaryGrenade {
}
// Parent: C_CSWeaponBase
// Field count: 0
namespace CTablet {
}
// Parent: CBasePulseGraphInstance
// Field count: 1
//
@ -6649,10 +6593,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_hOldAttached = 0x590; // CHandle<C_BaseEntity>
constexpr std::ptrdiff_t m_bCheapEffect = 0x594; // bool
}
// Parent: C_BaseGrenade
// Field count: 0
namespace CTripWireFireProjectile {
}
// Parent: C_BaseModelEntity
// Field count: 0
namespace C_Breakable {

View File

@ -579,26 +579,6 @@
],
"parent": "C_BaseTrigger"
},
"CBreachCharge": {
"fields": {},
"metadata": [],
"parent": "C_CSWeaponBase"
},
"CBreachChargeProjectile": {
"fields": {},
"metadata": [],
"parent": "C_BaseGrenade"
},
"CBumpMine": {
"fields": {},
"metadata": [],
"parent": "C_CSWeaponBase"
},
"CBumpMineProjectile": {
"fields": {},
"metadata": [],
"parent": "C_BaseGrenade"
},
"CBuoyancyHelper": {
"fields": {
"m_flFluidDensity": 28,
@ -755,30 +735,31 @@
},
"CCSPlayerController": {
"fields": {
"m_bAbandonAllowsSurrender": 2030,
"m_bAbandonOffersInstantSurrender": 2031,
"m_bCanControlObservedBot": 2056,
"m_bCannotBeKicked": 2028,
"m_bControllingBot": 2048,
"m_bDisconnection1MinWarningPrinted": 2032,
"m_bEverFullyConnected": 2029,
"m_bAbandonAllowsSurrender": 2034,
"m_bAbandonOffersInstantSurrender": 2035,
"m_bCanControlObservedBot": 2064,
"m_bCannotBeKicked": 2032,
"m_bControllingBot": 2056,
"m_bDisconnection1MinWarningPrinted": 2036,
"m_bEverFullyConnected": 2033,
"m_bEverPlayedOnTeam": 1884,
"m_bFireBulletsSeedSynchronized": 2133,
"m_bHasBeenControlledByPlayerThisRound": 2050,
"m_bFireBulletsSeedSynchronized": 2141,
"m_bHasBeenControlledByPlayerThisRound": 2058,
"m_bHasCommunicationAbuseMute": 1860,
"m_bHasControlledBotThisRound": 2049,
"m_bIsPlayerNameDirty": 2132,
"m_bMvpNoMusic": 2114,
"m_bPawnHasDefuser": 2080,
"m_bPawnHasHelmet": 2081,
"m_bPawnIsAlive": 2068,
"m_bScoreReported": 2033,
"m_eMvpReason": 2116,
"m_bHasControlledBotThisRound": 2057,
"m_bIsPlayerNameDirty": 2140,
"m_bMvpNoMusic": 2122,
"m_bPawnHasDefuser": 2088,
"m_bPawnHasHelmet": 2089,
"m_bPawnIsAlive": 2076,
"m_bScoreReported": 2037,
"m_eMvpReason": 2124,
"m_eNetworkDisconnectionReason": 2028,
"m_flForceTeamTime": 1876,
"m_flPreviousForceJoinTeamTime": 1888,
"m_hObserverPawn": 2064,
"m_hOriginalControllerOfCurrentPawn": 2096,
"m_hPlayerPawn": 2060,
"m_hObserverPawn": 2072,
"m_hOriginalControllerOfCurrentPawn": 2104,
"m_hPlayerPawn": 2068,
"m_iCoachingTeam": 1912,
"m_iCompTeammateColor": 1880,
"m_iCompetitiveRankType": 1944,
@ -788,24 +769,24 @@
"m_iCompetitiveRankingPredicted_Win": 1948,
"m_iCompetitiveWins": 1940,
"m_iDraftIndex": 2016,
"m_iMVPs": 2128,
"m_iMusicKitID": 2120,
"m_iMusicKitMVPs": 2124,
"m_iPawnArmor": 2076,
"m_iPawnBotDifficulty": 2092,
"m_iPawnHealth": 2072,
"m_iPawnLifetimeEnd": 2088,
"m_iPawnLifetimeStart": 2084,
"m_iMVPs": 2136,
"m_iMusicKitID": 2128,
"m_iMusicKitMVPs": 2132,
"m_iPawnArmor": 2084,
"m_iPawnBotDifficulty": 2100,
"m_iPawnHealth": 2080,
"m_iPawnLifetimeEnd": 2096,
"m_iPawnLifetimeStart": 2092,
"m_iPendingTeamNum": 1872,
"m_iPing": 1856,
"m_iScore": 2100,
"m_iScore": 2108,
"m_msQueuedModeDisconnectionTimestamp": 2020,
"m_nBotsControlledThisRound": 2052,
"m_nDisconnectionTick": 2036,
"m_nBotsControlledThisRound": 2060,
"m_nDisconnectionTick": 2040,
"m_nEndMatchNextMapVote": 1960,
"m_nFirstKill": 2112,
"m_nKillCount": 2113,
"m_nPawnCharacterDefIndex": 2082,
"m_nFirstKill": 2120,
"m_nKillCount": 2121,
"m_nPawnCharacterDefIndex": 2090,
"m_nPlayerDominated": 1920,
"m_nPlayerDominatingMe": 1928,
"m_nQuestProgressReason": 1968,
@ -813,7 +794,7 @@
"m_pDamageServices": 1848,
"m_pInGameMoneyServices": 1824,
"m_pInventoryServices": 1832,
"m_recentKillQueue": 2104,
"m_recentKillQueue": 2112,
"m_sSanitizedPlayerName": 1904,
"m_szClan": 1896,
"m_szCrosshairCodes": 1864,
@ -3843,11 +3824,6 @@
"metadata": [],
"parent": "C_Sprite"
},
"CTablet": {
"fields": {},
"metadata": [],
"parent": "C_CSWeaponBase"
},
"CTakeDamageInfoAPI": {
"fields": {},
"metadata": [
@ -3911,26 +3887,11 @@
],
"parent": "IntervalTimer"
},
"CTripWireFire": {
"fields": {},
"metadata": [],
"parent": "C_BaseCSGrenade"
},
"CTripWireFireProjectile": {
"fields": {},
"metadata": [],
"parent": "C_BaseGrenade"
},
"CWaterSplasher": {
"fields": {},
"metadata": [],
"parent": "C_BaseModelEntity"
},
"CWeaponZoneRepulsor": {
"fields": {},
"metadata": [],
"parent": "C_CSWeaponBaseGun"
},
"C_AK47": {
"fields": {},
"metadata": [],
@ -6228,7 +6189,7 @@
"fields": {
"m_MatchDevice": 168,
"m_MinimapVerticalSectionHeights": 3128,
"m_RetakeRules": 3488,
"m_RetakeRules": 3504,
"m_TeamRespawnWaveTimes": 2844,
"m_arrProhibitedItemIndices": 2244,
"m_arrTournamentActiveCasterAccounts": 2444,
@ -6240,7 +6201,7 @@
"m_bFreezePeriod": 64,
"m_bGameRestart": 116,
"m_bHasMatchStarted": 172,
"m_bHasTriggeredRoundStartMusic": 3452,
"m_bHasTriggeredRoundStartMusic": 3468,
"m_bIsDroppingItems": 2240,
"m_bIsHltvActive": 2242,
"m_bIsQuestEligible": 2241,
@ -6250,20 +6211,20 @@
"m_bMapHasBombTarget": 149,
"m_bMapHasBuyZone": 151,
"m_bMapHasRescueZone": 150,
"m_bMarkClientStopRecordAtRoundEnd": 3280,
"m_bMarkClientStopRecordAtRoundEnd": 3296,
"m_bMatchWaitingForResume": 97,
"m_bPlayAllStepSoundsOnServer": 162,
"m_bRoundEndNoMusic": 3836,
"m_bRoundEndShowTimerDefend": 3792,
"m_bRoundEndNoMusic": 3852,
"m_bRoundEndShowTimerDefend": 3808,
"m_bServerPaused": 76,
"m_bSpawnedTerrorHuntHeavy": 3160,
"m_bSwitchingTeamsAtRoundReset": 3453,
"m_bSwitchingTeamsAtRoundReset": 3469,
"m_bTCantBuy": 2480,
"m_bTeamIntroPeriod": 3780,
"m_bTeamIntroPeriod": 3796,
"m_bTechnicalTimeOut": 96,
"m_bTerroristTimeOutActive": 77,
"m_bWarmupPeriod": 65,
"m_eRoundEndReason": 3788,
"m_eRoundEndReason": 3804,
"m_eRoundWinReason": 2476,
"m_fMatchStartTime": 104,
"m_fRoundStartTime": 108,
@ -6273,7 +6234,7 @@
"m_flCMMItemDropRevealStartTime": 2232,
"m_flCTTimeOutRemaining": 84,
"m_flGameStartTime": 120,
"m_flLastPerfSampleTime": 20248,
"m_flLastPerfSampleTime": 20264,
"m_flNextRespawnWave": 2972,
"m_flRestartRoundTime": 112,
"m_flTerroristTimeOutRemaining": 80,
@ -6282,48 +6243,49 @@
"m_iMatchStats_PlayersAlive_CT": 2604,
"m_iMatchStats_PlayersAlive_T": 2724,
"m_iMatchStats_RoundResults": 2484,
"m_iNumConsecutiveCTLoses": 3248,
"m_iNumConsecutiveTerroristLoses": 3252,
"m_iRoundEndFunFactData1": 3812,
"m_iRoundEndFunFactData2": 3816,
"m_iRoundEndFunFactData3": 3820,
"m_iRoundEndFunFactPlayerSlot": 3808,
"m_iRoundEndLegacy": 3840,
"m_iRoundEndPlayerCount": 3832,
"m_iRoundEndTimerTime": 3796,
"m_iRoundEndWinnerTeam": 3784,
"m_iRoundStartRoundNumber": 3848,
"m_iNumConsecutiveCTLoses": 3260,
"m_iNumConsecutiveTerroristLoses": 3264,
"m_iRoundEndFunFactData1": 3828,
"m_iRoundEndFunFactData2": 3832,
"m_iRoundEndFunFactData3": 3836,
"m_iRoundEndFunFactPlayerSlot": 3824,
"m_iRoundEndLegacy": 3856,
"m_iRoundEndPlayerCount": 3848,
"m_iRoundEndTimerTime": 3812,
"m_iRoundEndWinnerTeam": 3800,
"m_iRoundStartRoundNumber": 3864,
"m_iRoundTime": 100,
"m_iRoundWinStatus": 2472,
"m_iSpectatorSlotCount": 164,
"m_nCTTeamIntroVariant": 3776,
"m_nCTTeamIntroVariant": 3792,
"m_nCTTimeOuts": 92,
"m_nEndMatchMapGroupVoteOptions": 3204,
"m_nEndMatchMapGroupVoteTypes": 3164,
"m_nEndMatchMapVoteWinner": 3244,
"m_nEndMatchMapGroupVoteOptions": 3216,
"m_nEndMatchMapGroupVoteTypes": 3176,
"m_nEndMatchMapVoteWinner": 3256,
"m_nHalloweenMaskListSeed": 2464,
"m_nMatchAbortedEarlyReason": 3448,
"m_nMatchEndCount": 3768,
"m_nMatchAbortedEarlyReason": 3464,
"m_nMatchEndCount": 3784,
"m_nNextMapInMapgroup": 176,
"m_nOvertimePlaying": 140,
"m_nQueuedMatchmakingMode": 156,
"m_nRoundEndCount": 3844,
"m_nRoundStartCount": 3852,
"m_nRoundEndCount": 3860,
"m_nRoundStartCount": 3868,
"m_nRoundsPlayedThisPhase": 136,
"m_nServerQuestID": 3100,
"m_nTTeamIntroVariant": 3772,
"m_nTTeamIntroVariant": 3788,
"m_nTerroristTimeOuts": 88,
"m_nTournamentPredictionsPct": 2228,
"m_numBestOfMaps": 2460,
"m_pGameModeRules": 3480,
"m_sRoundEndFunFactToken": 3800,
"m_sRoundEndMessage": 3824,
"m_pGameModeRules": 3496,
"m_sRoundEndFunFactToken": 3816,
"m_sRoundEndMessage": 3840,
"m_szMatchStatTxt": 1204,
"m_szTournamentEventName": 180,
"m_szTournamentEventStage": 692,
"m_szTournamentPredictionsTxt": 1716,
"m_timeUntilNextPhaseStarts": 124,
"m_totalRoundsPlayed": 132,
"m_ullLocalMatchID": 3168,
"m_vMinimapMaxs": 3116,
"m_vMinimapMins": 3104
},
@ -9807,25 +9769,6 @@
],
"parent": "CBaseAnimGraph"
},
"C_Fists": {
"fields": {
"m_bPlayingUninterruptableAct": 6944,
"m_nUninterruptableActivity": 6948
},
"metadata": [
{
"name": "m_bPlayingUninterruptableAct",
"type": "NetworkVarNames",
"type_name": "bool"
},
{
"name": "m_nUninterruptableActivity",
"type": "NetworkVarNames",
"type_name": "PlayerAnimEvent_t"
}
],
"parent": "C_CSWeaponBase"
},
"C_Flashbang": {
"fields": {},
"metadata": [],
@ -10796,11 +10739,6 @@
],
"parent": "C_BaseEntity"
},
"C_Melee": {
"fields": {},
"metadata": [],
"parent": "C_CSWeaponBase"
},
"C_ModelPointEntity": {
"fields": {},
"metadata": [],
@ -12639,16 +12577,6 @@
"metadata": [],
"parent": null
},
"C_SensorGrenade": {
"fields": {},
"metadata": [],
"parent": "C_BaseCSGrenade"
},
"C_SensorGrenadeProjectile": {
"fields": {},
"metadata": [],
"parent": "C_BaseCSGrenadeProjectile"
},
"C_ShatterGlassShardPhysics": {
"fields": {
"m_ShardDesc": 4384
@ -13802,19 +13730,6 @@
"metadata": [],
"parent": "C_CSWeaponBase"
},
"C_WeaponShield": {
"fields": {
"m_flDisplayHealth": 6976
},
"metadata": [
{
"name": "m_flDisplayHealth",
"type": "NetworkVarNames",
"type_name": "float"
}
],
"parent": "C_CSWeaponBaseGun"
},
"C_WeaponTaser": {
"fields": {
"m_fFireTime": 6976,

View File

@ -1,12 +1,12 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]
pub mod cs2_dumper {
pub mod schemas {
// Module: client.dll
// Class count: 427
// Class count: 414
// Enum count: 7
pub mod client_dll {
// Alignment: 4
@ -210,7 +210,7 @@ pub mod cs2_dumper {
pub mod C_WeaponM249 {
}
// Parent: C_TeamplayRules
// Field count: 100
// Field count: 101
//
// Metadata:
// NetworkVarNames: m_bFreezePeriod (bool)
@ -377,38 +377,39 @@ pub mod cs2_dumper {
pub const m_vMinimapMaxs: usize = 0xC2C; // Vector
pub const m_MinimapVerticalSectionHeights: usize = 0xC38; // float32[8]
pub const m_bSpawnedTerrorHuntHeavy: usize = 0xC58; // bool
pub const m_nEndMatchMapGroupVoteTypes: usize = 0xC5C; // int32[10]
pub const m_nEndMatchMapGroupVoteOptions: usize = 0xC84; // int32[10]
pub const m_nEndMatchMapVoteWinner: usize = 0xCAC; // int32
pub const m_iNumConsecutiveCTLoses: usize = 0xCB0; // int32
pub const m_iNumConsecutiveTerroristLoses: usize = 0xCB4; // int32
pub const m_bMarkClientStopRecordAtRoundEnd: usize = 0xCD0; // bool
pub const m_nMatchAbortedEarlyReason: usize = 0xD78; // int32
pub const m_bHasTriggeredRoundStartMusic: usize = 0xD7C; // bool
pub const m_bSwitchingTeamsAtRoundReset: usize = 0xD7D; // bool
pub const m_pGameModeRules: usize = 0xD98; // CCSGameModeRules*
pub const m_RetakeRules: usize = 0xDA0; // C_RetakeGameRules
pub const m_nMatchEndCount: usize = 0xEB8; // uint8
pub const m_nTTeamIntroVariant: usize = 0xEBC; // int32
pub const m_nCTTeamIntroVariant: usize = 0xEC0; // int32
pub const m_bTeamIntroPeriod: usize = 0xEC4; // bool
pub const m_iRoundEndWinnerTeam: usize = 0xEC8; // int32
pub const m_eRoundEndReason: usize = 0xECC; // int32
pub const m_bRoundEndShowTimerDefend: usize = 0xED0; // bool
pub const m_iRoundEndTimerTime: usize = 0xED4; // int32
pub const m_sRoundEndFunFactToken: usize = 0xED8; // CUtlString
pub const m_iRoundEndFunFactPlayerSlot: usize = 0xEE0; // CPlayerSlot
pub const m_iRoundEndFunFactData1: usize = 0xEE4; // int32
pub const m_iRoundEndFunFactData2: usize = 0xEE8; // int32
pub const m_iRoundEndFunFactData3: usize = 0xEEC; // int32
pub const m_sRoundEndMessage: usize = 0xEF0; // CUtlString
pub const m_iRoundEndPlayerCount: usize = 0xEF8; // int32
pub const m_bRoundEndNoMusic: usize = 0xEFC; // bool
pub const m_iRoundEndLegacy: usize = 0xF00; // int32
pub const m_nRoundEndCount: usize = 0xF04; // uint8
pub const m_iRoundStartRoundNumber: usize = 0xF08; // int32
pub const m_nRoundStartCount: usize = 0xF0C; // uint8
pub const m_flLastPerfSampleTime: usize = 0x4F18; // float64
pub const m_ullLocalMatchID: usize = 0xC60; // uint64
pub const m_nEndMatchMapGroupVoteTypes: usize = 0xC68; // int32[10]
pub const m_nEndMatchMapGroupVoteOptions: usize = 0xC90; // int32[10]
pub const m_nEndMatchMapVoteWinner: usize = 0xCB8; // int32
pub const m_iNumConsecutiveCTLoses: usize = 0xCBC; // int32
pub const m_iNumConsecutiveTerroristLoses: usize = 0xCC0; // int32
pub const m_bMarkClientStopRecordAtRoundEnd: usize = 0xCE0; // bool
pub const m_nMatchAbortedEarlyReason: usize = 0xD88; // int32
pub const m_bHasTriggeredRoundStartMusic: usize = 0xD8C; // bool
pub const m_bSwitchingTeamsAtRoundReset: usize = 0xD8D; // bool
pub const m_pGameModeRules: usize = 0xDA8; // CCSGameModeRules*
pub const m_RetakeRules: usize = 0xDB0; // C_RetakeGameRules
pub const m_nMatchEndCount: usize = 0xEC8; // uint8
pub const m_nTTeamIntroVariant: usize = 0xECC; // int32
pub const m_nCTTeamIntroVariant: usize = 0xED0; // int32
pub const m_bTeamIntroPeriod: usize = 0xED4; // bool
pub const m_iRoundEndWinnerTeam: usize = 0xED8; // int32
pub const m_eRoundEndReason: usize = 0xEDC; // int32
pub const m_bRoundEndShowTimerDefend: usize = 0xEE0; // bool
pub const m_iRoundEndTimerTime: usize = 0xEE4; // int32
pub const m_sRoundEndFunFactToken: usize = 0xEE8; // CUtlString
pub const m_iRoundEndFunFactPlayerSlot: usize = 0xEF0; // CPlayerSlot
pub const m_iRoundEndFunFactData1: usize = 0xEF4; // int32
pub const m_iRoundEndFunFactData2: usize = 0xEF8; // int32
pub const m_iRoundEndFunFactData3: usize = 0xEFC; // int32
pub const m_sRoundEndMessage: usize = 0xF00; // CUtlString
pub const m_iRoundEndPlayerCount: usize = 0xF08; // int32
pub const m_bRoundEndNoMusic: usize = 0xF0C; // bool
pub const m_iRoundEndLegacy: usize = 0xF10; // int32
pub const m_nRoundEndCount: usize = 0xF14; // uint8
pub const m_iRoundStartRoundNumber: usize = 0xF18; // int32
pub const m_nRoundStartCount: usize = 0xF1C; // uint8
pub const m_flLastPerfSampleTime: usize = 0x4F28; // float64
}
// Parent: CBodyComponent
// Field count: 1
@ -1428,10 +1429,6 @@ pub mod cs2_dumper {
pub const m_iEffectName: usize = 0x6C; // uint16
pub const m_nExplosionType: usize = 0x6E; // uint8
}
// Parent: C_BaseCSGrenadeProjectile
// Field count: 0
pub mod C_SensorGrenadeProjectile {
}
// Parent: C_BaseCSGrenade
// Field count: 0
pub mod C_MolotovGrenade {
@ -1833,10 +1830,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod C_Flashbang {
}
// Parent: C_CSWeaponBase
// Field count: 0
pub mod CBumpMine {
}
// Parent: None
// Field count: 13
//
@ -2464,14 +2457,6 @@ pub mod cs2_dumper {
pub const m_bRagdollClientSide: usize = 0xE40; // bool
pub const m_bHasAnimatedMaterialAttributes: usize = 0xE50; // bool
}
// Parent: C_CSWeaponBase
// Field count: 0
pub mod C_Melee {
}
// Parent: C_BaseGrenade
// Field count: 0
pub mod CBreachChargeProjectile {
}
// Parent: C_BaseEntity
// Field count: 0
pub mod C_PointEntity {
@ -3493,10 +3478,6 @@ pub mod cs2_dumper {
pub const m_flObserverChaseDistance: usize = 0x50; // float32
pub const m_flObserverChaseDistanceCalcTime: usize = 0x54; // GameTime_t
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
pub mod CWeaponZoneRepulsor {
}
// Parent: CPlayerPawnComponent
// Field count: 0
pub mod CPlayer_WaterServices {
@ -3975,14 +3956,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod C_WeaponMAC10 {
}
// Parent: C_CSWeaponBaseGun
// Field count: 1
//
// Metadata:
// NetworkVarNames: m_flDisplayHealth (float)
pub mod C_WeaponShield {
pub const m_flDisplayHealth: usize = 0x1B40; // float32
}
// Parent: C_PointClientUIWorldPanel
// Field count: 1
//
@ -4778,10 +4751,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod C_WeaponHKP2000 {
}
// Parent: C_BaseCSGrenade
// Field count: 0
pub mod CTripWireFire {
}
// Parent: C_BaseFlex
// Field count: 6
pub mod C_CSGO_PreviewModel {
@ -4893,10 +4862,6 @@ pub mod cs2_dumper {
pub const m_hCarriedHostage: usize = 0x40; // CHandle<C_BaseEntity>
pub const m_hCarriedHostageProp: usize = 0x44; // CHandle<C_BaseEntity>
}
// Parent: C_CSWeaponBase
// Field count: 0
pub mod CBreachCharge {
}
// Parent: C_LightEntity
// Field count: 0
pub mod C_LightDirectionalEntity {
@ -5068,10 +5033,6 @@ pub mod cs2_dumper {
// MPulseLibraryBindings
pub mod CPathSimpleAPI {
}
// Parent: C_BaseCSGrenade
// Field count: 0
pub mod C_SensorGrenade {
}
// Parent: C_CSWeaponBaseGun
// Field count: 2
//
@ -5081,16 +5042,6 @@ pub mod cs2_dumper {
pub const m_fFireTime: usize = 0x1B40; // GameTime_t
pub const m_nLastAttackTick: usize = 0x1B44; // int32
}
// Parent: C_CSWeaponBase
// Field count: 2
//
// Metadata:
// NetworkVarNames: m_bPlayingUninterruptableAct (bool)
// NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
pub mod C_Fists {
pub const m_bPlayingUninterruptableAct: usize = 0x1B20; // bool
pub const m_nUninterruptableActivity: usize = 0x1B24; // PlayerAnimEvent_t
}
// Parent: C_PhysicsProp
// Field count: 0
pub mod C_PhysicsPropMultiplayer {
@ -6220,12 +6171,8 @@ pub mod cs2_dumper {
pub const m_nJustifyVertical: usize = 0xFF0; // PointWorldTextJustifyVertical_t
pub const m_nReorientMode: usize = 0xFF4; // PointWorldTextReorientMode_t
}
// Parent: C_BaseGrenade
// Field count: 0
pub mod CBumpMineProjectile {
}
// Parent: CBasePlayerController
// Field count: 65
// Field count: 66
//
// Metadata:
// MNetworkUserGroupProxy
@ -6313,41 +6260,42 @@ pub mod cs2_dumper {
pub const m_iDraftIndex: usize = 0x7E0; // int32
pub const m_msQueuedModeDisconnectionTimestamp: usize = 0x7E4; // uint32
pub const m_uiAbandonRecordedReason: usize = 0x7E8; // uint32
pub const m_bCannotBeKicked: usize = 0x7EC; // bool
pub const m_bEverFullyConnected: usize = 0x7ED; // bool
pub const m_bAbandonAllowsSurrender: usize = 0x7EE; // bool
pub const m_bAbandonOffersInstantSurrender: usize = 0x7EF; // bool
pub const m_bDisconnection1MinWarningPrinted: usize = 0x7F0; // bool
pub const m_bScoreReported: usize = 0x7F1; // bool
pub const m_nDisconnectionTick: usize = 0x7F4; // int32
pub const m_bControllingBot: usize = 0x800; // bool
pub const m_bHasControlledBotThisRound: usize = 0x801; // bool
pub const m_bHasBeenControlledByPlayerThisRound: usize = 0x802; // bool
pub const m_nBotsControlledThisRound: usize = 0x804; // int32
pub const m_bCanControlObservedBot: usize = 0x808; // bool
pub const m_hPlayerPawn: usize = 0x80C; // CHandle<C_CSPlayerPawn>
pub const m_hObserverPawn: usize = 0x810; // CHandle<C_CSObserverPawn>
pub const m_bPawnIsAlive: usize = 0x814; // bool
pub const m_iPawnHealth: usize = 0x818; // uint32
pub const m_iPawnArmor: usize = 0x81C; // int32
pub const m_bPawnHasDefuser: usize = 0x820; // bool
pub const m_bPawnHasHelmet: usize = 0x821; // bool
pub const m_nPawnCharacterDefIndex: usize = 0x822; // uint16
pub const m_iPawnLifetimeStart: usize = 0x824; // int32
pub const m_iPawnLifetimeEnd: usize = 0x828; // int32
pub const m_iPawnBotDifficulty: usize = 0x82C; // int32
pub const m_hOriginalControllerOfCurrentPawn: usize = 0x830; // CHandle<CCSPlayerController>
pub const m_iScore: usize = 0x834; // int32
pub const m_recentKillQueue: usize = 0x838; // uint8[8]
pub const m_nFirstKill: usize = 0x840; // uint8
pub const m_nKillCount: usize = 0x841; // uint8
pub const m_bMvpNoMusic: usize = 0x842; // bool
pub const m_eMvpReason: usize = 0x844; // int32
pub const m_iMusicKitID: usize = 0x848; // int32
pub const m_iMusicKitMVPs: usize = 0x84C; // int32
pub const m_iMVPs: usize = 0x850; // int32
pub const m_bIsPlayerNameDirty: usize = 0x854; // bool
pub const m_bFireBulletsSeedSynchronized: usize = 0x855; // bool
pub const m_eNetworkDisconnectionReason: usize = 0x7EC; // uint32
pub const m_bCannotBeKicked: usize = 0x7F0; // bool
pub const m_bEverFullyConnected: usize = 0x7F1; // bool
pub const m_bAbandonAllowsSurrender: usize = 0x7F2; // bool
pub const m_bAbandonOffersInstantSurrender: usize = 0x7F3; // bool
pub const m_bDisconnection1MinWarningPrinted: usize = 0x7F4; // bool
pub const m_bScoreReported: usize = 0x7F5; // bool
pub const m_nDisconnectionTick: usize = 0x7F8; // int32
pub const m_bControllingBot: usize = 0x808; // bool
pub const m_bHasControlledBotThisRound: usize = 0x809; // bool
pub const m_bHasBeenControlledByPlayerThisRound: usize = 0x80A; // bool
pub const m_nBotsControlledThisRound: usize = 0x80C; // int32
pub const m_bCanControlObservedBot: usize = 0x810; // bool
pub const m_hPlayerPawn: usize = 0x814; // CHandle<C_CSPlayerPawn>
pub const m_hObserverPawn: usize = 0x818; // CHandle<C_CSObserverPawn>
pub const m_bPawnIsAlive: usize = 0x81C; // bool
pub const m_iPawnHealth: usize = 0x820; // uint32
pub const m_iPawnArmor: usize = 0x824; // int32
pub const m_bPawnHasDefuser: usize = 0x828; // bool
pub const m_bPawnHasHelmet: usize = 0x829; // bool
pub const m_nPawnCharacterDefIndex: usize = 0x82A; // uint16
pub const m_iPawnLifetimeStart: usize = 0x82C; // int32
pub const m_iPawnLifetimeEnd: usize = 0x830; // int32
pub const m_iPawnBotDifficulty: usize = 0x834; // int32
pub const m_hOriginalControllerOfCurrentPawn: usize = 0x838; // CHandle<CCSPlayerController>
pub const m_iScore: usize = 0x83C; // int32
pub const m_recentKillQueue: usize = 0x840; // uint8[8]
pub const m_nFirstKill: usize = 0x848; // uint8
pub const m_nKillCount: usize = 0x849; // uint8
pub const m_bMvpNoMusic: usize = 0x84A; // bool
pub const m_eMvpReason: usize = 0x84C; // int32
pub const m_iMusicKitID: usize = 0x850; // int32
pub const m_iMusicKitMVPs: usize = 0x854; // int32
pub const m_iMVPs: usize = 0x858; // int32
pub const m_bIsPlayerNameDirty: usize = 0x85C; // bool
pub const m_bFireBulletsSeedSynchronized: usize = 0x85D; // bool
}
// Parent: C_CSWeaponBaseGun
// Field count: 0
@ -6611,10 +6559,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod C_IncendiaryGrenade {
}
// Parent: C_CSWeaponBase
// Field count: 0
pub mod CTablet {
}
// Parent: CBasePulseGraphInstance
// Field count: 1
//
@ -6654,10 +6598,6 @@ pub mod cs2_dumper {
pub const m_hOldAttached: usize = 0x590; // CHandle<C_BaseEntity>
pub const m_bCheapEffect: usize = 0x594; // bool
}
// Parent: C_BaseGrenade
// Field count: 0
pub mod CTripWireFireProjectile {
}
// Parent: C_BaseModelEntity
// Field count: 0
pub mod C_Breakable {

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: engine2.dll
@ -16,7 +16,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum EntityIOTargetType_t : uint {
ENTITY_IO_TARGET_INVALID = 0xFFFFFFFFFFFFFFFF,
ENTITY_IO_TARGET_INVALID = unchecked((uint)-1),
ENTITY_IO_TARGET_ENTITYNAME = 0x2,
ENTITY_IO_TARGET_EHANDLE = 0x6,
ENTITY_IO_TARGET_ENTITYNAME_OR_CLASSNAME = 0x7

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: host.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,4 +1,4 @@
{
"build_number": 14062,
"timestamp": "2025-01-22T02:16:57.488530400+00:00"
"build_number": 14074,
"timestamp": "2025-04-02T01:38:06.172164600+00:00"
}

View File

@ -1,57 +1,57 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Interfaces {
// Module: animationsystem.dll
public static class AnimationsystemDll {
public const nint AnimationSystemUtils_001 = 0x60EDC8;
public const nint AnimationSystem_001 = 0x606CF0;
public const nint AnimationSystemUtils_001 = 0x60FE08;
public const nint AnimationSystem_001 = 0x607D30;
}
// Module: client.dll
public static class ClientDll {
public const nint ClientToolsInfo_001 = 0x1865C00;
public const nint EmptyWorldService001_Client = 0x1820F00;
public const nint GameClientExports001 = 0x18628B8;
public const nint LegacyGameUI001 = 0x1883430;
public const nint Source2Client002 = 0x1A7DEE0;
public const nint Source2ClientConfig001 = 0x1A14570;
public const nint Source2ClientPrediction001 = 0x186DC80;
public const nint Source2ClientUI001 = 0x1881800;
public const nint ClientToolsInfo_001 = 0x186BE40;
public const nint EmptyWorldService001_Client = 0x1828090;
public const nint GameClientExports001 = 0x1868AF8;
public const nint LegacyGameUI001 = 0x18896A0;
public const nint Source2Client002 = 0x1A827A0;
public const nint Source2ClientConfig001 = 0x1A1B370;
public const nint Source2ClientPrediction001 = 0x1873ED0;
public const nint Source2ClientUI001 = 0x1887A70;
}
// Module: engine2.dll
public static class Engine2Dll {
public const nint BenchmarkService001 = 0x540CB0;
public const nint BugService001 = 0x5D9BA0;
public const nint ClientServerEngineLoopService_001 = 0x5419D0;
public const nint EngineGameUI001 = 0x53EB60;
public const nint EngineServiceMgr001 = 0x61AA30;
public const nint GameEventSystemClientV001 = 0x61AD30;
public const nint GameEventSystemServerV001 = 0x61AE70;
public const nint GameResourceServiceClientV001 = 0x540DB0;
public const nint GameResourceServiceServerV001 = 0x540E10;
public const nint GameUIService_001 = 0x5D9EA0;
public const nint HostStateMgr001 = 0x5418C0;
public const nint INETSUPPORT_001 = 0x53A060;
public const nint InputService_001 = 0x5DA1B0;
public const nint KeyValueCache001 = 0x541970;
public const nint MapListService_001 = 0x6191B0;
public const nint NetworkClientService_001 = 0x619340;
public const nint NetworkP2PService_001 = 0x5410C0;
public const nint NetworkServerService_001 = 0x6196D0;
public const nint NetworkService_001 = 0x541210;
public const nint RenderService_001 = 0x619930;
public const nint ScreenshotService001 = 0x619BD0;
public const nint SimpleEngineLoopService_001 = 0x541AE0;
public const nint SoundService_001 = 0x541250;
public const nint Source2EngineToClient001 = 0x53E1E0;
public const nint Source2EngineToClientStringTable001 = 0x53E240;
public const nint Source2EngineToServer001 = 0x53E2D8;
public const nint Source2EngineToServerStringTable001 = 0x53E300;
public const nint SplitScreenService_001 = 0x541530;
public const nint StatsService_001 = 0x61A000;
public const nint ToolService_001 = 0x5416F0;
public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x53EBF0;
public const nint VProfService_001 = 0x541730;
public const nint BenchmarkService001 = 0x546D30;
public const nint BugService001 = 0x5DFCC0;
public const nint ClientServerEngineLoopService_001 = 0x547A50;
public const nint EngineGameUI001 = 0x544B90;
public const nint EngineServiceMgr001 = 0x620BA0;
public const nint GameEventSystemClientV001 = 0x620EC0;
public const nint GameEventSystemServerV001 = 0x621000;
public const nint GameResourceServiceClientV001 = 0x546E30;
public const nint GameResourceServiceServerV001 = 0x546E90;
public const nint GameUIService_001 = 0x5DFFC0;
public const nint HostStateMgr001 = 0x547940;
public const nint INETSUPPORT_001 = 0x540060;
public const nint InputService_001 = 0x5E02D0;
public const nint KeyValueCache001 = 0x5479F0;
public const nint MapListService_001 = 0x61F320;
public const nint NetworkClientService_001 = 0x61F4B0;
public const nint NetworkP2PService_001 = 0x547140;
public const nint NetworkServerService_001 = 0x61F840;
public const nint NetworkService_001 = 0x547290;
public const nint RenderService_001 = 0x61FAA0;
public const nint ScreenshotService001 = 0x61FD40;
public const nint SimpleEngineLoopService_001 = 0x547B60;
public const nint SoundService_001 = 0x5472D0;
public const nint Source2EngineToClient001 = 0x544210;
public const nint Source2EngineToClientStringTable001 = 0x544270;
public const nint Source2EngineToServer001 = 0x544308;
public const nint Source2EngineToServerStringTable001 = 0x544330;
public const nint SplitScreenService_001 = 0x5475B0;
public const nint StatsService_001 = 0x620170;
public const nint ToolService_001 = 0x547770;
public const nint VENGINE_GAMEUIFUNCS_VERSION005 = 0x544C20;
public const nint VProfService_001 = 0x5477B0;
}
// Module: filesystem_stdio.dll
public static class FilesystemStdioDll {
@ -84,8 +84,8 @@ namespace CS2Dumper.Interfaces {
}
// Module: matchmaking.dll
public static class MatchmakingDll {
public const nint GameTypes001 = 0x1A41B0;
public const nint MATCHFRAMEWORK_001 = 0x1AC380;
public const nint GameTypes001 = 0x1A3190;
public const nint MATCHFRAMEWORK_001 = 0x1AB360;
}
// Module: materialsystem2.dll
public static class Materialsystem2Dll {
@ -112,7 +112,7 @@ namespace CS2Dumper.Interfaces {
}
// Module: panorama.dll
public static class PanoramaDll {
public const nint PanoramaUIEngine001 = 0x4E5260;
public const nint PanoramaUIEngine001 = 0x4E9250;
}
// Module: panorama_text_pango.dll
public static class PanoramaTextPangoDll {
@ -120,11 +120,11 @@ namespace CS2Dumper.Interfaces {
}
// Module: panoramauiclient.dll
public static class PanoramauiclientDll {
public const nint PanoramaUIClient001 = 0x28A850;
public const nint PanoramaUIClient001 = 0x28E840;
}
// Module: particles.dll
public static class ParticlesDll {
public const nint ParticleSystemMgr003 = 0x629CD0;
public const nint ParticleSystemMgr003 = 0x629C70;
}
// Module: pulse_system.dll
public static class PulseSystemDll {
@ -157,22 +157,22 @@ namespace CS2Dumper.Interfaces {
}
// Module: server.dll
public static class ServerDll {
public const nint EmptyWorldService001_Server = 0x1378BC0;
public const nint EntitySubclassUtilsV001 = 0x13293B0;
public const nint NavGameTest001 = 0x1418C08;
public const nint ServerToolsInfo_001 = 0x13CE548;
public const nint Source2GameClients001 = 0x13C8410;
public const nint Source2GameDirector001 = 0x14FC1C0;
public const nint Source2GameEntities001 = 0x13CE470;
public const nint Source2Server001 = 0x13CE2E0;
public const nint Source2ServerConfig001 = 0x15C6AD8;
public const nint customnavsystem001 = 0x130DB18;
public const nint EmptyWorldService001_Server = 0x1364D50;
public const nint EntitySubclassUtilsV001 = 0x13153E0;
public const nint NavGameTest001 = 0x1403E08;
public const nint ServerToolsInfo_001 = 0x13B9738;
public const nint Source2GameClients001 = 0x13B3600;
public const nint Source2GameDirector001 = 0x14E73A0;
public const nint Source2GameEntities001 = 0x13B9660;
public const nint Source2Server001 = 0x13B94D0;
public const nint Source2ServerConfig001 = 0x15B1CD8;
public const nint customnavsystem001 = 0x12F9B58;
}
// Module: soundsystem.dll
public static class SoundsystemDll {
public const nint SoundOpSystem001 = 0x39EC40;
public const nint SoundOpSystemEdit001 = 0x39EB10;
public const nint SoundSystem001 = 0x39E5E0;
public const nint SoundOpSystem001 = 0x3A1C50;
public const nint SoundOpSystemEdit001 = 0x3A1B20;
public const nint SoundSystem001 = 0x3A15F0;
public const nint VMixEditTool001 = 0x48289C6A;
}
// Module: steamaudio.dll
@ -181,33 +181,34 @@ namespace CS2Dumper.Interfaces {
}
// Module: steamclient64.dll
public static class Steamclient64Dll {
public const nint CLIENTENGINE_INTERFACE_VERSION005 = 0xFFFFFFFF8BAF705A;
public const nint IVALIDATE001 = 0x14A3108;
public const nint SteamClient006 = 0x14A0860;
public const nint SteamClient007 = 0x14A0868;
public const nint SteamClient008 = 0x14A0870;
public const nint SteamClient009 = 0x14A0878;
public const nint SteamClient010 = 0x14A0880;
public const nint SteamClient011 = 0x14A0888;
public const nint SteamClient012 = 0x14A0890;
public const nint SteamClient013 = 0x14A0898;
public const nint SteamClient014 = 0x14A08A0;
public const nint SteamClient015 = 0x14A08A8;
public const nint SteamClient016 = 0x14A08B0;
public const nint SteamClient017 = 0x14A08B8;
public const nint SteamClient018 = 0x14A08C0;
public const nint SteamClient019 = 0x14A08C8;
public const nint SteamClient020 = 0x14A08D0;
public const nint SteamClient021 = 0x14A08D8;
public const nint p2pvoice002 = 0x14E26BF;
public const nint p2pvoicesingleton002 = 0x147E0E0;
public static readonly nint CLIENTENGINE_INTERFACE_VERSION005 = unchecked((nint)0xFFFFFFFF8BB038DA);
public const nint IVALIDATE001 = 0x15246E8;
public const nint SteamClient006 = 0x1521E10;
public const nint SteamClient007 = 0x1521E18;
public const nint SteamClient008 = 0x1521E20;
public const nint SteamClient009 = 0x1521E28;
public const nint SteamClient010 = 0x1521E30;
public const nint SteamClient011 = 0x1521E38;
public const nint SteamClient012 = 0x1521E40;
public const nint SteamClient013 = 0x1521E48;
public const nint SteamClient014 = 0x1521E50;
public const nint SteamClient015 = 0x1521E58;
public const nint SteamClient016 = 0x1521E60;
public const nint SteamClient017 = 0x1521E68;
public const nint SteamClient018 = 0x1521E70;
public const nint SteamClient019 = 0x1521E78;
public const nint SteamClient020 = 0x1521E80;
public const nint SteamClient021 = 0x1521E88;
public const nint SteamClient022 = 0x1521E90;
public const nint p2pvoice002 = 0x14E297F;
public const nint p2pvoicesingleton002 = 0x14FF0E0;
}
// Module: tier0.dll
public static class Tier0Dll {
public const nint TestScriptMgr001 = 0x37EA50;
public const nint VEngineCvar007 = 0x38D4B0;
public const nint VProcessUtils002 = 0x37E960;
public const nint VStringTokenSystem001 = 0x3A5F00;
public const nint TestScriptMgr001 = 0x37FA70;
public const nint VEngineCvar007 = 0x38E4B0;
public const nint VProcessUtils002 = 0x37F980;
public const nint VStringTokenSystem001 = 0x3A6F00;
}
// Module: v8system.dll
public static class V8systemDll {

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once
@ -9,54 +9,54 @@ namespace cs2_dumper {
namespace interfaces {
// Module: animationsystem.dll
namespace animationsystem_dll {
constexpr std::ptrdiff_t AnimationSystemUtils_001 = 0x60EDC8;
constexpr std::ptrdiff_t AnimationSystem_001 = 0x606CF0;
constexpr std::ptrdiff_t AnimationSystemUtils_001 = 0x60FE08;
constexpr std::ptrdiff_t AnimationSystem_001 = 0x607D30;
}
// Module: client.dll
namespace client_dll {
constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x1865C00;
constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x1820F00;
constexpr std::ptrdiff_t GameClientExports001 = 0x18628B8;
constexpr std::ptrdiff_t LegacyGameUI001 = 0x1883430;
constexpr std::ptrdiff_t Source2Client002 = 0x1A7DEE0;
constexpr std::ptrdiff_t Source2ClientConfig001 = 0x1A14570;
constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x186DC80;
constexpr std::ptrdiff_t Source2ClientUI001 = 0x1881800;
constexpr std::ptrdiff_t ClientToolsInfo_001 = 0x186BE40;
constexpr std::ptrdiff_t EmptyWorldService001_Client = 0x1828090;
constexpr std::ptrdiff_t GameClientExports001 = 0x1868AF8;
constexpr std::ptrdiff_t LegacyGameUI001 = 0x18896A0;
constexpr std::ptrdiff_t Source2Client002 = 0x1A827A0;
constexpr std::ptrdiff_t Source2ClientConfig001 = 0x1A1B370;
constexpr std::ptrdiff_t Source2ClientPrediction001 = 0x1873ED0;
constexpr std::ptrdiff_t Source2ClientUI001 = 0x1887A70;
}
// Module: engine2.dll
namespace engine2_dll {
constexpr std::ptrdiff_t BenchmarkService001 = 0x540CB0;
constexpr std::ptrdiff_t BugService001 = 0x5D9BA0;
constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x5419D0;
constexpr std::ptrdiff_t EngineGameUI001 = 0x53EB60;
constexpr std::ptrdiff_t EngineServiceMgr001 = 0x61AA30;
constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x61AD30;
constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x61AE70;
constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x540DB0;
constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x540E10;
constexpr std::ptrdiff_t GameUIService_001 = 0x5D9EA0;
constexpr std::ptrdiff_t HostStateMgr001 = 0x5418C0;
constexpr std::ptrdiff_t INETSUPPORT_001 = 0x53A060;
constexpr std::ptrdiff_t InputService_001 = 0x5DA1B0;
constexpr std::ptrdiff_t KeyValueCache001 = 0x541970;
constexpr std::ptrdiff_t MapListService_001 = 0x6191B0;
constexpr std::ptrdiff_t NetworkClientService_001 = 0x619340;
constexpr std::ptrdiff_t NetworkP2PService_001 = 0x5410C0;
constexpr std::ptrdiff_t NetworkServerService_001 = 0x6196D0;
constexpr std::ptrdiff_t NetworkService_001 = 0x541210;
constexpr std::ptrdiff_t RenderService_001 = 0x619930;
constexpr std::ptrdiff_t ScreenshotService001 = 0x619BD0;
constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x541AE0;
constexpr std::ptrdiff_t SoundService_001 = 0x541250;
constexpr std::ptrdiff_t Source2EngineToClient001 = 0x53E1E0;
constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x53E240;
constexpr std::ptrdiff_t Source2EngineToServer001 = 0x53E2D8;
constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0x53E300;
constexpr std::ptrdiff_t SplitScreenService_001 = 0x541530;
constexpr std::ptrdiff_t StatsService_001 = 0x61A000;
constexpr std::ptrdiff_t ToolService_001 = 0x5416F0;
constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x53EBF0;
constexpr std::ptrdiff_t VProfService_001 = 0x541730;
constexpr std::ptrdiff_t BenchmarkService001 = 0x546D30;
constexpr std::ptrdiff_t BugService001 = 0x5DFCC0;
constexpr std::ptrdiff_t ClientServerEngineLoopService_001 = 0x547A50;
constexpr std::ptrdiff_t EngineGameUI001 = 0x544B90;
constexpr std::ptrdiff_t EngineServiceMgr001 = 0x620BA0;
constexpr std::ptrdiff_t GameEventSystemClientV001 = 0x620EC0;
constexpr std::ptrdiff_t GameEventSystemServerV001 = 0x621000;
constexpr std::ptrdiff_t GameResourceServiceClientV001 = 0x546E30;
constexpr std::ptrdiff_t GameResourceServiceServerV001 = 0x546E90;
constexpr std::ptrdiff_t GameUIService_001 = 0x5DFFC0;
constexpr std::ptrdiff_t HostStateMgr001 = 0x547940;
constexpr std::ptrdiff_t INETSUPPORT_001 = 0x540060;
constexpr std::ptrdiff_t InputService_001 = 0x5E02D0;
constexpr std::ptrdiff_t KeyValueCache001 = 0x5479F0;
constexpr std::ptrdiff_t MapListService_001 = 0x61F320;
constexpr std::ptrdiff_t NetworkClientService_001 = 0x61F4B0;
constexpr std::ptrdiff_t NetworkP2PService_001 = 0x547140;
constexpr std::ptrdiff_t NetworkServerService_001 = 0x61F840;
constexpr std::ptrdiff_t NetworkService_001 = 0x547290;
constexpr std::ptrdiff_t RenderService_001 = 0x61FAA0;
constexpr std::ptrdiff_t ScreenshotService001 = 0x61FD40;
constexpr std::ptrdiff_t SimpleEngineLoopService_001 = 0x547B60;
constexpr std::ptrdiff_t SoundService_001 = 0x5472D0;
constexpr std::ptrdiff_t Source2EngineToClient001 = 0x544210;
constexpr std::ptrdiff_t Source2EngineToClientStringTable001 = 0x544270;
constexpr std::ptrdiff_t Source2EngineToServer001 = 0x544308;
constexpr std::ptrdiff_t Source2EngineToServerStringTable001 = 0x544330;
constexpr std::ptrdiff_t SplitScreenService_001 = 0x5475B0;
constexpr std::ptrdiff_t StatsService_001 = 0x620170;
constexpr std::ptrdiff_t ToolService_001 = 0x547770;
constexpr std::ptrdiff_t VENGINE_GAMEUIFUNCS_VERSION005 = 0x544C20;
constexpr std::ptrdiff_t VProfService_001 = 0x5477B0;
}
// Module: filesystem_stdio.dll
namespace filesystem_stdio_dll {
@ -89,8 +89,8 @@ namespace cs2_dumper {
}
// Module: matchmaking.dll
namespace matchmaking_dll {
constexpr std::ptrdiff_t GameTypes001 = 0x1A41B0;
constexpr std::ptrdiff_t MATCHFRAMEWORK_001 = 0x1AC380;
constexpr std::ptrdiff_t GameTypes001 = 0x1A3190;
constexpr std::ptrdiff_t MATCHFRAMEWORK_001 = 0x1AB360;
}
// Module: materialsystem2.dll
namespace materialsystem2_dll {
@ -117,7 +117,7 @@ namespace cs2_dumper {
}
// Module: panorama.dll
namespace panorama_dll {
constexpr std::ptrdiff_t PanoramaUIEngine001 = 0x4E5260;
constexpr std::ptrdiff_t PanoramaUIEngine001 = 0x4E9250;
}
// Module: panorama_text_pango.dll
namespace panorama_text_pango_dll {
@ -125,11 +125,11 @@ namespace cs2_dumper {
}
// Module: panoramauiclient.dll
namespace panoramauiclient_dll {
constexpr std::ptrdiff_t PanoramaUIClient001 = 0x28A850;
constexpr std::ptrdiff_t PanoramaUIClient001 = 0x28E840;
}
// Module: particles.dll
namespace particles_dll {
constexpr std::ptrdiff_t ParticleSystemMgr003 = 0x629CD0;
constexpr std::ptrdiff_t ParticleSystemMgr003 = 0x629C70;
}
// Module: pulse_system.dll
namespace pulse_system_dll {
@ -162,22 +162,22 @@ namespace cs2_dumper {
}
// Module: server.dll
namespace server_dll {
constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x1378BC0;
constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x13293B0;
constexpr std::ptrdiff_t NavGameTest001 = 0x1418C08;
constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x13CE548;
constexpr std::ptrdiff_t Source2GameClients001 = 0x13C8410;
constexpr std::ptrdiff_t Source2GameDirector001 = 0x14FC1C0;
constexpr std::ptrdiff_t Source2GameEntities001 = 0x13CE470;
constexpr std::ptrdiff_t Source2Server001 = 0x13CE2E0;
constexpr std::ptrdiff_t Source2ServerConfig001 = 0x15C6AD8;
constexpr std::ptrdiff_t customnavsystem001 = 0x130DB18;
constexpr std::ptrdiff_t EmptyWorldService001_Server = 0x1364D50;
constexpr std::ptrdiff_t EntitySubclassUtilsV001 = 0x13153E0;
constexpr std::ptrdiff_t NavGameTest001 = 0x1403E08;
constexpr std::ptrdiff_t ServerToolsInfo_001 = 0x13B9738;
constexpr std::ptrdiff_t Source2GameClients001 = 0x13B3600;
constexpr std::ptrdiff_t Source2GameDirector001 = 0x14E73A0;
constexpr std::ptrdiff_t Source2GameEntities001 = 0x13B9660;
constexpr std::ptrdiff_t Source2Server001 = 0x13B94D0;
constexpr std::ptrdiff_t Source2ServerConfig001 = 0x15B1CD8;
constexpr std::ptrdiff_t customnavsystem001 = 0x12F9B58;
}
// Module: soundsystem.dll
namespace soundsystem_dll {
constexpr std::ptrdiff_t SoundOpSystem001 = 0x39EC40;
constexpr std::ptrdiff_t SoundOpSystemEdit001 = 0x39EB10;
constexpr std::ptrdiff_t SoundSystem001 = 0x39E5E0;
constexpr std::ptrdiff_t SoundOpSystem001 = 0x3A1C50;
constexpr std::ptrdiff_t SoundOpSystemEdit001 = 0x3A1B20;
constexpr std::ptrdiff_t SoundSystem001 = 0x3A15F0;
constexpr std::ptrdiff_t VMixEditTool001 = 0x48289C6A;
}
// Module: steamaudio.dll
@ -186,33 +186,34 @@ namespace cs2_dumper {
}
// Module: steamclient64.dll
namespace steamclient64_dll {
constexpr std::ptrdiff_t CLIENTENGINE_INTERFACE_VERSION005 = 0xFFFFFFFF8BAF705A;
constexpr std::ptrdiff_t IVALIDATE001 = 0x14A3108;
constexpr std::ptrdiff_t SteamClient006 = 0x14A0860;
constexpr std::ptrdiff_t SteamClient007 = 0x14A0868;
constexpr std::ptrdiff_t SteamClient008 = 0x14A0870;
constexpr std::ptrdiff_t SteamClient009 = 0x14A0878;
constexpr std::ptrdiff_t SteamClient010 = 0x14A0880;
constexpr std::ptrdiff_t SteamClient011 = 0x14A0888;
constexpr std::ptrdiff_t SteamClient012 = 0x14A0890;
constexpr std::ptrdiff_t SteamClient013 = 0x14A0898;
constexpr std::ptrdiff_t SteamClient014 = 0x14A08A0;
constexpr std::ptrdiff_t SteamClient015 = 0x14A08A8;
constexpr std::ptrdiff_t SteamClient016 = 0x14A08B0;
constexpr std::ptrdiff_t SteamClient017 = 0x14A08B8;
constexpr std::ptrdiff_t SteamClient018 = 0x14A08C0;
constexpr std::ptrdiff_t SteamClient019 = 0x14A08C8;
constexpr std::ptrdiff_t SteamClient020 = 0x14A08D0;
constexpr std::ptrdiff_t SteamClient021 = 0x14A08D8;
constexpr std::ptrdiff_t p2pvoice002 = 0x14E26BF;
constexpr std::ptrdiff_t p2pvoicesingleton002 = 0x147E0E0;
constexpr std::ptrdiff_t CLIENTENGINE_INTERFACE_VERSION005 = 0xFFFFFFFF8BB038DA;
constexpr std::ptrdiff_t IVALIDATE001 = 0x15246E8;
constexpr std::ptrdiff_t SteamClient006 = 0x1521E10;
constexpr std::ptrdiff_t SteamClient007 = 0x1521E18;
constexpr std::ptrdiff_t SteamClient008 = 0x1521E20;
constexpr std::ptrdiff_t SteamClient009 = 0x1521E28;
constexpr std::ptrdiff_t SteamClient010 = 0x1521E30;
constexpr std::ptrdiff_t SteamClient011 = 0x1521E38;
constexpr std::ptrdiff_t SteamClient012 = 0x1521E40;
constexpr std::ptrdiff_t SteamClient013 = 0x1521E48;
constexpr std::ptrdiff_t SteamClient014 = 0x1521E50;
constexpr std::ptrdiff_t SteamClient015 = 0x1521E58;
constexpr std::ptrdiff_t SteamClient016 = 0x1521E60;
constexpr std::ptrdiff_t SteamClient017 = 0x1521E68;
constexpr std::ptrdiff_t SteamClient018 = 0x1521E70;
constexpr std::ptrdiff_t SteamClient019 = 0x1521E78;
constexpr std::ptrdiff_t SteamClient020 = 0x1521E80;
constexpr std::ptrdiff_t SteamClient021 = 0x1521E88;
constexpr std::ptrdiff_t SteamClient022 = 0x1521E90;
constexpr std::ptrdiff_t p2pvoice002 = 0x14E297F;
constexpr std::ptrdiff_t p2pvoicesingleton002 = 0x14FF0E0;
}
// Module: tier0.dll
namespace tier0_dll {
constexpr std::ptrdiff_t TestScriptMgr001 = 0x37EA50;
constexpr std::ptrdiff_t VEngineCvar007 = 0x38D4B0;
constexpr std::ptrdiff_t VProcessUtils002 = 0x37E960;
constexpr std::ptrdiff_t VStringTokenSystem001 = 0x3A5F00;
constexpr std::ptrdiff_t TestScriptMgr001 = 0x37FA70;
constexpr std::ptrdiff_t VEngineCvar007 = 0x38E4B0;
constexpr std::ptrdiff_t VProcessUtils002 = 0x37F980;
constexpr std::ptrdiff_t VStringTokenSystem001 = 0x3A6F00;
}
// Module: v8system.dll
namespace v8system_dll {

View File

@ -1,51 +1,51 @@
{
"animationsystem.dll": {
"AnimationSystemUtils_001": 6352328,
"AnimationSystem_001": 6319344
"AnimationSystemUtils_001": 6356488,
"AnimationSystem_001": 6323504
},
"client.dll": {
"ClientToolsInfo_001": 25582592,
"EmptyWorldService001_Client": 25300736,
"GameClientExports001": 25569464,
"LegacyGameUI001": 25703472,
"Source2Client002": 27778784,
"Source2ClientConfig001": 27346288,
"Source2ClientPrediction001": 25615488,
"Source2ClientUI001": 25696256
"ClientToolsInfo_001": 25607744,
"EmptyWorldService001_Client": 25329808,
"GameClientExports001": 25594616,
"LegacyGameUI001": 25728672,
"Source2Client002": 27797408,
"Source2ClientConfig001": 27374448,
"Source2ClientPrediction001": 25640656,
"Source2ClientUI001": 25721456
},
"engine2.dll": {
"BenchmarkService001": 5508272,
"BugService001": 6134688,
"ClientServerEngineLoopService_001": 5511632,
"EngineGameUI001": 5499744,
"EngineServiceMgr001": 6400560,
"GameEventSystemClientV001": 6401328,
"GameEventSystemServerV001": 6401648,
"GameResourceServiceClientV001": 5508528,
"GameResourceServiceServerV001": 5508624,
"GameUIService_001": 6135456,
"HostStateMgr001": 5511360,
"INETSUPPORT_001": 5480544,
"InputService_001": 6136240,
"KeyValueCache001": 5511536,
"MapListService_001": 6394288,
"NetworkClientService_001": 6394688,
"NetworkP2PService_001": 5509312,
"NetworkServerService_001": 6395600,
"NetworkService_001": 5509648,
"RenderService_001": 6396208,
"ScreenshotService001": 6396880,
"SimpleEngineLoopService_001": 5511904,
"SoundService_001": 5509712,
"Source2EngineToClient001": 5497312,
"Source2EngineToClientStringTable001": 5497408,
"Source2EngineToServer001": 5497560,
"Source2EngineToServerStringTable001": 5497600,
"SplitScreenService_001": 5510448,
"StatsService_001": 6397952,
"ToolService_001": 5510896,
"VENGINE_GAMEUIFUNCS_VERSION005": 5499888,
"VProfService_001": 5510960
"BenchmarkService001": 5532976,
"BugService001": 6159552,
"ClientServerEngineLoopService_001": 5536336,
"EngineGameUI001": 5524368,
"EngineServiceMgr001": 6425504,
"GameEventSystemClientV001": 6426304,
"GameEventSystemServerV001": 6426624,
"GameResourceServiceClientV001": 5533232,
"GameResourceServiceServerV001": 5533328,
"GameUIService_001": 6160320,
"HostStateMgr001": 5536064,
"INETSUPPORT_001": 5505120,
"InputService_001": 6161104,
"KeyValueCache001": 5536240,
"MapListService_001": 6419232,
"NetworkClientService_001": 6419632,
"NetworkP2PService_001": 5534016,
"NetworkServerService_001": 6420544,
"NetworkService_001": 5534352,
"RenderService_001": 6421152,
"ScreenshotService001": 6421824,
"SimpleEngineLoopService_001": 5536608,
"SoundService_001": 5534416,
"Source2EngineToClient001": 5521936,
"Source2EngineToClientStringTable001": 5522032,
"Source2EngineToServer001": 5522184,
"Source2EngineToServerStringTable001": 5522224,
"SplitScreenService_001": 5535152,
"StatsService_001": 6422896,
"ToolService_001": 5535600,
"VENGINE_GAMEUIFUNCS_VERSION005": 5524512,
"VProfService_001": 5535664
},
"filesystem_stdio.dll": {
"VAsyncFileSystem2_001": 2147728,
@ -72,8 +72,8 @@
"Localize_001": 240336
},
"matchmaking.dll": {
"GameTypes001": 1720752,
"MATCHFRAMEWORK_001": 1753984
"GameTypes001": 1716624,
"MATCHFRAMEWORK_001": 1749856
},
"materialsystem2.dll": {
"FontManager_001": 1131312,
@ -95,16 +95,16 @@
"SerializedEntitiesVersion001": 2548720
},
"panorama.dll": {
"PanoramaUIEngine001": 5132896
"PanoramaUIEngine001": 5149264
},
"panorama_text_pango.dll": {
"PanoramaTextServices001": 2832608
},
"panoramauiclient.dll": {
"PanoramaUIClient001": 2664528
"PanoramaUIClient001": 2680896
},
"particles.dll": {
"ParticleSystemMgr003": 6462672
"ParticleSystemMgr003": 6462576
},
"pulse_system.dll": {
"IPulseSystem_001": 1563024
@ -130,53 +130,54 @@
"SchemaSystem_001": 399072
},
"server.dll": {
"EmptyWorldService001_Server": 20417472,
"EntitySubclassUtilsV001": 20091824,
"NavGameTest001": 21072904,
"ServerToolsInfo_001": 20768072,
"Source2GameClients001": 20743184,
"Source2GameDirector001": 22004160,
"Source2GameEntities001": 20767856,
"Source2Server001": 20767456,
"Source2ServerConfig001": 22833880,
"customnavsystem001": 19979032
"EmptyWorldService001_Server": 20335952,
"EntitySubclassUtilsV001": 20009952,
"NavGameTest001": 20987400,
"ServerToolsInfo_001": 20682552,
"Source2GameClients001": 20657664,
"Source2GameDirector001": 21918624,
"Source2GameEntities001": 20682336,
"Source2Server001": 20681936,
"Source2ServerConfig001": 22748376,
"customnavsystem001": 19897176
},
"soundsystem.dll": {
"SoundOpSystem001": 3796032,
"SoundOpSystemEdit001": 3795728,
"SoundSystem001": 3794400,
"SoundOpSystem001": 3808336,
"SoundOpSystemEdit001": 3808032,
"SoundSystem001": 3806704,
"VMixEditTool001": 1210621034
},
"steamaudio.dll": {
"SteamAudio001": 2177520
},
"steamclient64.dll": {
"CLIENTENGINE_INTERFACE_VERSION005": 18446744071758114906,
"IVALIDATE001": 21639432,
"SteamClient006": 21629024,
"SteamClient007": 21629032,
"SteamClient008": 21629040,
"SteamClient009": 21629048,
"SteamClient010": 21629056,
"SteamClient011": 21629064,
"SteamClient012": 21629072,
"SteamClient013": 21629080,
"SteamClient014": 21629088,
"SteamClient015": 21629096,
"SteamClient016": 21629104,
"SteamClient017": 21629112,
"SteamClient018": 21629120,
"SteamClient019": 21629128,
"SteamClient020": 21629136,
"SteamClient021": 21629144,
"p2pvoice002": 21898943,
"p2pvoicesingleton002": 21487840
"CLIENTENGINE_INTERFACE_VERSION005": 18446744071758166234,
"IVALIDATE001": 22169320,
"SteamClient006": 22158864,
"SteamClient007": 22158872,
"SteamClient008": 22158880,
"SteamClient009": 22158888,
"SteamClient010": 22158896,
"SteamClient011": 22158904,
"SteamClient012": 22158912,
"SteamClient013": 22158920,
"SteamClient014": 22158928,
"SteamClient015": 22158936,
"SteamClient016": 22158944,
"SteamClient017": 22158952,
"SteamClient018": 22158960,
"SteamClient019": 22158968,
"SteamClient020": 22158976,
"SteamClient021": 22158984,
"SteamClient022": 22158992,
"p2pvoice002": 21899647,
"p2pvoicesingleton002": 22016224
},
"tier0.dll": {
"TestScriptMgr001": 3664464,
"VEngineCvar007": 3724464,
"VProcessUtils002": 3664224,
"VStringTokenSystem001": 3825408
"TestScriptMgr001": 3668592,
"VEngineCvar007": 3728560,
"VProcessUtils002": 3668352,
"VStringTokenSystem001": 3829504
},
"v8system.dll": {
"Source2V8System001": 181376

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, unused)]
@ -7,54 +7,54 @@ pub mod cs2_dumper {
pub mod interfaces {
// Module: animationsystem.dll
pub mod animationsystem_dll {
pub const AnimationSystemUtils_001: usize = 0x60EDC8;
pub const AnimationSystem_001: usize = 0x606CF0;
pub const AnimationSystemUtils_001: usize = 0x60FE08;
pub const AnimationSystem_001: usize = 0x607D30;
}
// Module: client.dll
pub mod client_dll {
pub const ClientToolsInfo_001: usize = 0x1865C00;
pub const EmptyWorldService001_Client: usize = 0x1820F00;
pub const GameClientExports001: usize = 0x18628B8;
pub const LegacyGameUI001: usize = 0x1883430;
pub const Source2Client002: usize = 0x1A7DEE0;
pub const Source2ClientConfig001: usize = 0x1A14570;
pub const Source2ClientPrediction001: usize = 0x186DC80;
pub const Source2ClientUI001: usize = 0x1881800;
pub const ClientToolsInfo_001: usize = 0x186BE40;
pub const EmptyWorldService001_Client: usize = 0x1828090;
pub const GameClientExports001: usize = 0x1868AF8;
pub const LegacyGameUI001: usize = 0x18896A0;
pub const Source2Client002: usize = 0x1A827A0;
pub const Source2ClientConfig001: usize = 0x1A1B370;
pub const Source2ClientPrediction001: usize = 0x1873ED0;
pub const Source2ClientUI001: usize = 0x1887A70;
}
// Module: engine2.dll
pub mod engine2_dll {
pub const BenchmarkService001: usize = 0x540CB0;
pub const BugService001: usize = 0x5D9BA0;
pub const ClientServerEngineLoopService_001: usize = 0x5419D0;
pub const EngineGameUI001: usize = 0x53EB60;
pub const EngineServiceMgr001: usize = 0x61AA30;
pub const GameEventSystemClientV001: usize = 0x61AD30;
pub const GameEventSystemServerV001: usize = 0x61AE70;
pub const GameResourceServiceClientV001: usize = 0x540DB0;
pub const GameResourceServiceServerV001: usize = 0x540E10;
pub const GameUIService_001: usize = 0x5D9EA0;
pub const HostStateMgr001: usize = 0x5418C0;
pub const INETSUPPORT_001: usize = 0x53A060;
pub const InputService_001: usize = 0x5DA1B0;
pub const KeyValueCache001: usize = 0x541970;
pub const MapListService_001: usize = 0x6191B0;
pub const NetworkClientService_001: usize = 0x619340;
pub const NetworkP2PService_001: usize = 0x5410C0;
pub const NetworkServerService_001: usize = 0x6196D0;
pub const NetworkService_001: usize = 0x541210;
pub const RenderService_001: usize = 0x619930;
pub const ScreenshotService001: usize = 0x619BD0;
pub const SimpleEngineLoopService_001: usize = 0x541AE0;
pub const SoundService_001: usize = 0x541250;
pub const Source2EngineToClient001: usize = 0x53E1E0;
pub const Source2EngineToClientStringTable001: usize = 0x53E240;
pub const Source2EngineToServer001: usize = 0x53E2D8;
pub const Source2EngineToServerStringTable001: usize = 0x53E300;
pub const SplitScreenService_001: usize = 0x541530;
pub const StatsService_001: usize = 0x61A000;
pub const ToolService_001: usize = 0x5416F0;
pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x53EBF0;
pub const VProfService_001: usize = 0x541730;
pub const BenchmarkService001: usize = 0x546D30;
pub const BugService001: usize = 0x5DFCC0;
pub const ClientServerEngineLoopService_001: usize = 0x547A50;
pub const EngineGameUI001: usize = 0x544B90;
pub const EngineServiceMgr001: usize = 0x620BA0;
pub const GameEventSystemClientV001: usize = 0x620EC0;
pub const GameEventSystemServerV001: usize = 0x621000;
pub const GameResourceServiceClientV001: usize = 0x546E30;
pub const GameResourceServiceServerV001: usize = 0x546E90;
pub const GameUIService_001: usize = 0x5DFFC0;
pub const HostStateMgr001: usize = 0x547940;
pub const INETSUPPORT_001: usize = 0x540060;
pub const InputService_001: usize = 0x5E02D0;
pub const KeyValueCache001: usize = 0x5479F0;
pub const MapListService_001: usize = 0x61F320;
pub const NetworkClientService_001: usize = 0x61F4B0;
pub const NetworkP2PService_001: usize = 0x547140;
pub const NetworkServerService_001: usize = 0x61F840;
pub const NetworkService_001: usize = 0x547290;
pub const RenderService_001: usize = 0x61FAA0;
pub const ScreenshotService001: usize = 0x61FD40;
pub const SimpleEngineLoopService_001: usize = 0x547B60;
pub const SoundService_001: usize = 0x5472D0;
pub const Source2EngineToClient001: usize = 0x544210;
pub const Source2EngineToClientStringTable001: usize = 0x544270;
pub const Source2EngineToServer001: usize = 0x544308;
pub const Source2EngineToServerStringTable001: usize = 0x544330;
pub const SplitScreenService_001: usize = 0x5475B0;
pub const StatsService_001: usize = 0x620170;
pub const ToolService_001: usize = 0x547770;
pub const VENGINE_GAMEUIFUNCS_VERSION005: usize = 0x544C20;
pub const VProfService_001: usize = 0x5477B0;
}
// Module: filesystem_stdio.dll
pub mod filesystem_stdio_dll {
@ -87,8 +87,8 @@ pub mod cs2_dumper {
}
// Module: matchmaking.dll
pub mod matchmaking_dll {
pub const GameTypes001: usize = 0x1A41B0;
pub const MATCHFRAMEWORK_001: usize = 0x1AC380;
pub const GameTypes001: usize = 0x1A3190;
pub const MATCHFRAMEWORK_001: usize = 0x1AB360;
}
// Module: materialsystem2.dll
pub mod materialsystem2_dll {
@ -115,7 +115,7 @@ pub mod cs2_dumper {
}
// Module: panorama.dll
pub mod panorama_dll {
pub const PanoramaUIEngine001: usize = 0x4E5260;
pub const PanoramaUIEngine001: usize = 0x4E9250;
}
// Module: panorama_text_pango.dll
pub mod panorama_text_pango_dll {
@ -123,11 +123,11 @@ pub mod cs2_dumper {
}
// Module: panoramauiclient.dll
pub mod panoramauiclient_dll {
pub const PanoramaUIClient001: usize = 0x28A850;
pub const PanoramaUIClient001: usize = 0x28E840;
}
// Module: particles.dll
pub mod particles_dll {
pub const ParticleSystemMgr003: usize = 0x629CD0;
pub const ParticleSystemMgr003: usize = 0x629C70;
}
// Module: pulse_system.dll
pub mod pulse_system_dll {
@ -160,22 +160,22 @@ pub mod cs2_dumper {
}
// Module: server.dll
pub mod server_dll {
pub const EmptyWorldService001_Server: usize = 0x1378BC0;
pub const EntitySubclassUtilsV001: usize = 0x13293B0;
pub const NavGameTest001: usize = 0x1418C08;
pub const ServerToolsInfo_001: usize = 0x13CE548;
pub const Source2GameClients001: usize = 0x13C8410;
pub const Source2GameDirector001: usize = 0x14FC1C0;
pub const Source2GameEntities001: usize = 0x13CE470;
pub const Source2Server001: usize = 0x13CE2E0;
pub const Source2ServerConfig001: usize = 0x15C6AD8;
pub const customnavsystem001: usize = 0x130DB18;
pub const EmptyWorldService001_Server: usize = 0x1364D50;
pub const EntitySubclassUtilsV001: usize = 0x13153E0;
pub const NavGameTest001: usize = 0x1403E08;
pub const ServerToolsInfo_001: usize = 0x13B9738;
pub const Source2GameClients001: usize = 0x13B3600;
pub const Source2GameDirector001: usize = 0x14E73A0;
pub const Source2GameEntities001: usize = 0x13B9660;
pub const Source2Server001: usize = 0x13B94D0;
pub const Source2ServerConfig001: usize = 0x15B1CD8;
pub const customnavsystem001: usize = 0x12F9B58;
}
// Module: soundsystem.dll
pub mod soundsystem_dll {
pub const SoundOpSystem001: usize = 0x39EC40;
pub const SoundOpSystemEdit001: usize = 0x39EB10;
pub const SoundSystem001: usize = 0x39E5E0;
pub const SoundOpSystem001: usize = 0x3A1C50;
pub const SoundOpSystemEdit001: usize = 0x3A1B20;
pub const SoundSystem001: usize = 0x3A15F0;
pub const VMixEditTool001: usize = 0x48289C6A;
}
// Module: steamaudio.dll
@ -184,33 +184,34 @@ pub mod cs2_dumper {
}
// Module: steamclient64.dll
pub mod steamclient64_dll {
pub const CLIENTENGINE_INTERFACE_VERSION005: usize = 0xFFFFFFFF8BAF705A;
pub const IVALIDATE001: usize = 0x14A3108;
pub const SteamClient006: usize = 0x14A0860;
pub const SteamClient007: usize = 0x14A0868;
pub const SteamClient008: usize = 0x14A0870;
pub const SteamClient009: usize = 0x14A0878;
pub const SteamClient010: usize = 0x14A0880;
pub const SteamClient011: usize = 0x14A0888;
pub const SteamClient012: usize = 0x14A0890;
pub const SteamClient013: usize = 0x14A0898;
pub const SteamClient014: usize = 0x14A08A0;
pub const SteamClient015: usize = 0x14A08A8;
pub const SteamClient016: usize = 0x14A08B0;
pub const SteamClient017: usize = 0x14A08B8;
pub const SteamClient018: usize = 0x14A08C0;
pub const SteamClient019: usize = 0x14A08C8;
pub const SteamClient020: usize = 0x14A08D0;
pub const SteamClient021: usize = 0x14A08D8;
pub const p2pvoice002: usize = 0x14E26BF;
pub const p2pvoicesingleton002: usize = 0x147E0E0;
pub const CLIENTENGINE_INTERFACE_VERSION005: usize = 0xFFFFFFFF8BB038DA;
pub const IVALIDATE001: usize = 0x15246E8;
pub const SteamClient006: usize = 0x1521E10;
pub const SteamClient007: usize = 0x1521E18;
pub const SteamClient008: usize = 0x1521E20;
pub const SteamClient009: usize = 0x1521E28;
pub const SteamClient010: usize = 0x1521E30;
pub const SteamClient011: usize = 0x1521E38;
pub const SteamClient012: usize = 0x1521E40;
pub const SteamClient013: usize = 0x1521E48;
pub const SteamClient014: usize = 0x1521E50;
pub const SteamClient015: usize = 0x1521E58;
pub const SteamClient016: usize = 0x1521E60;
pub const SteamClient017: usize = 0x1521E68;
pub const SteamClient018: usize = 0x1521E70;
pub const SteamClient019: usize = 0x1521E78;
pub const SteamClient020: usize = 0x1521E80;
pub const SteamClient021: usize = 0x1521E88;
pub const SteamClient022: usize = 0x1521E90;
pub const p2pvoice002: usize = 0x14E297F;
pub const p2pvoicesingleton002: usize = 0x14FF0E0;
}
// Module: tier0.dll
pub mod tier0_dll {
pub const TestScriptMgr001: usize = 0x37EA50;
pub const VEngineCvar007: usize = 0x38D4B0;
pub const VProcessUtils002: usize = 0x37E960;
pub const VStringTokenSystem001: usize = 0x3A5F00;
pub const TestScriptMgr001: usize = 0x37FA70;
pub const VEngineCvar007: usize = 0x38E4B0;
pub const VProcessUtils002: usize = 0x37F980;
pub const VStringTokenSystem001: usize = 0x3A6F00;
}
// Module: v8system.dll
pub mod v8system_dll {

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: materialsystem2.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: networksystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,40 +1,40 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:31:49.938005200 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Offsets {
// Module: client.dll
public static class ClientDll {
public const nint dwCSGOInput = 0x1A8E5D0;
public const nint dwEntityList = 0x1A197E8;
public const nint dwGameEntitySystem = 0x1B3F728;
public const nint dwCSGOInput = 0x1A92FF0;
public const nint dwEntityList = 0x1A1F730;
public const nint dwGameEntitySystem = 0x1B43F58;
public const nint dwGameEntitySystem_highestEntityIndex = 0x20F0;
public const nint dwGameRules = 0x1A80188;
public const nint dwGlobalVars = 0x1861AA8;
public const nint dwGlowManager = 0x1A7F8D0;
public const nint dwLocalPlayerController = 0x1A6A210;
public const nint dwLocalPlayerPawn = 0x186DE00;
public const nint dwPlantedC4 = 0x1A88DA0;
public const nint dwPrediction = 0x186DC80;
public const nint dwSensitivity = 0x1A81018;
public const nint dwGameRules = 0x1A84170;
public const nint dwGlobalVars = 0x1867DB0;
public const nint dwGlowManager = 0x1A84190;
public const nint dwLocalPlayerController = 0x1A6E9C0;
public const nint dwLocalPlayerPawn = 0x1874050;
public const nint dwPlantedC4 = 0x1A8E4A0;
public const nint dwPrediction = 0x1873ED0;
public const nint dwSensitivity = 0x1A85768;
public const nint dwSensitivity_sensitivity = 0x40;
public const nint dwViewAngles = 0x1A8E9A0;
public const nint dwViewMatrix = 0x1A84890;
public const nint dwViewRender = 0x1A85208;
public const nint dwWeaponC4 = 0x1A1CA70;
public const nint dwViewAngles = 0x1A933C0;
public const nint dwViewMatrix = 0x1A89130;
public const nint dwViewRender = 0x1A89940;
public const nint dwWeaponC4 = 0x1A22630;
}
// Module: engine2.dll
public static class Engine2Dll {
public const nint dwBuildNumber = 0x53ABE4;
public const nint dwNetworkGameClient = 0x539CE0;
public const nint dwBuildNumber = 0x540BE4;
public const nint dwNetworkGameClient = 0x53FCE0;
public const nint dwNetworkGameClient_clientTickCount = 0x368;
public const nint dwNetworkGameClient_deltaTick = 0x27C;
public const nint dwNetworkGameClient_deltaTick = 0x244;
public const nint dwNetworkGameClient_isBackgroundMap = 0x281447;
public const nint dwNetworkGameClient_localPlayer = 0xF0;
public const nint dwNetworkGameClient_maxClients = 0x238;
public const nint dwNetworkGameClient_serverTickCount = 0x36C;
public const nint dwNetworkGameClient_signOnState = 0x228;
public const nint dwWindowHeight = 0x61D3E4;
public const nint dwWindowWidth = 0x61D3E0;
public const nint dwWindowHeight = 0x62354C;
public const nint dwWindowWidth = 0x623548;
}
// Module: inputsystem.dll
public static class InputsystemDll {
@ -42,12 +42,12 @@ namespace CS2Dumper.Offsets {
}
// Module: matchmaking.dll
public static class MatchmakingDll {
public const nint dwGameTypes = 0x1A41B0;
public const nint dwGameTypes = 0x1A3190;
public const nint dwGameTypes_mapName = 0x120;
}
// Module: soundsystem.dll
public static class SoundsystemDll {
public const nint dwSoundSystem = 0x39E5E0;
public const nint dwSoundSystem = 0x3A15F0;
public const nint dwSoundSystem_engineViewData = 0x7C;
}
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:31:49.938005200 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once
@ -9,37 +9,37 @@ namespace cs2_dumper {
namespace offsets {
// Module: client.dll
namespace client_dll {
constexpr std::ptrdiff_t dwCSGOInput = 0x1A8E5D0;
constexpr std::ptrdiff_t dwEntityList = 0x1A197E8;
constexpr std::ptrdiff_t dwGameEntitySystem = 0x1B3F728;
constexpr std::ptrdiff_t dwCSGOInput = 0x1A92FF0;
constexpr std::ptrdiff_t dwEntityList = 0x1A1F730;
constexpr std::ptrdiff_t dwGameEntitySystem = 0x1B43F58;
constexpr std::ptrdiff_t dwGameEntitySystem_highestEntityIndex = 0x20F0;
constexpr std::ptrdiff_t dwGameRules = 0x1A80188;
constexpr std::ptrdiff_t dwGlobalVars = 0x1861AA8;
constexpr std::ptrdiff_t dwGlowManager = 0x1A7F8D0;
constexpr std::ptrdiff_t dwLocalPlayerController = 0x1A6A210;
constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x186DE00;
constexpr std::ptrdiff_t dwPlantedC4 = 0x1A88DA0;
constexpr std::ptrdiff_t dwPrediction = 0x186DC80;
constexpr std::ptrdiff_t dwSensitivity = 0x1A81018;
constexpr std::ptrdiff_t dwGameRules = 0x1A84170;
constexpr std::ptrdiff_t dwGlobalVars = 0x1867DB0;
constexpr std::ptrdiff_t dwGlowManager = 0x1A84190;
constexpr std::ptrdiff_t dwLocalPlayerController = 0x1A6E9C0;
constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x1874050;
constexpr std::ptrdiff_t dwPlantedC4 = 0x1A8E4A0;
constexpr std::ptrdiff_t dwPrediction = 0x1873ED0;
constexpr std::ptrdiff_t dwSensitivity = 0x1A85768;
constexpr std::ptrdiff_t dwSensitivity_sensitivity = 0x40;
constexpr std::ptrdiff_t dwViewAngles = 0x1A8E9A0;
constexpr std::ptrdiff_t dwViewMatrix = 0x1A84890;
constexpr std::ptrdiff_t dwViewRender = 0x1A85208;
constexpr std::ptrdiff_t dwWeaponC4 = 0x1A1CA70;
constexpr std::ptrdiff_t dwViewAngles = 0x1A933C0;
constexpr std::ptrdiff_t dwViewMatrix = 0x1A89130;
constexpr std::ptrdiff_t dwViewRender = 0x1A89940;
constexpr std::ptrdiff_t dwWeaponC4 = 0x1A22630;
}
// Module: engine2.dll
namespace engine2_dll {
constexpr std::ptrdiff_t dwBuildNumber = 0x53ABE4;
constexpr std::ptrdiff_t dwNetworkGameClient = 0x539CE0;
constexpr std::ptrdiff_t dwBuildNumber = 0x540BE4;
constexpr std::ptrdiff_t dwNetworkGameClient = 0x53FCE0;
constexpr std::ptrdiff_t dwNetworkGameClient_clientTickCount = 0x368;
constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick = 0x27C;
constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick = 0x244;
constexpr std::ptrdiff_t dwNetworkGameClient_isBackgroundMap = 0x281447;
constexpr std::ptrdiff_t dwNetworkGameClient_localPlayer = 0xF0;
constexpr std::ptrdiff_t dwNetworkGameClient_maxClients = 0x238;
constexpr std::ptrdiff_t dwNetworkGameClient_serverTickCount = 0x36C;
constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x228;
constexpr std::ptrdiff_t dwWindowHeight = 0x61D3E4;
constexpr std::ptrdiff_t dwWindowWidth = 0x61D3E0;
constexpr std::ptrdiff_t dwWindowHeight = 0x62354C;
constexpr std::ptrdiff_t dwWindowWidth = 0x623548;
}
// Module: inputsystem.dll
namespace inputsystem_dll {
@ -47,12 +47,12 @@ namespace cs2_dumper {
}
// Module: matchmaking.dll
namespace matchmaking_dll {
constexpr std::ptrdiff_t dwGameTypes = 0x1A41B0;
constexpr std::ptrdiff_t dwGameTypes = 0x1A3190;
constexpr std::ptrdiff_t dwGameTypes_mapName = 0x120;
}
// Module: soundsystem.dll
namespace soundsystem_dll {
constexpr std::ptrdiff_t dwSoundSystem = 0x39E5E0;
constexpr std::ptrdiff_t dwSoundSystem = 0x3A15F0;
constexpr std::ptrdiff_t dwSoundSystem_engineViewData = 0x7C;
}
}

View File

@ -1,45 +1,45 @@
{
"client.dll": {
"dwCSGOInput": 27846096,
"dwEntityList": 27367400,
"dwGameEntitySystem": 28571432,
"dwCSGOInput": 27865072,
"dwEntityList": 27391792,
"dwGameEntitySystem": 28589912,
"dwGameEntitySystem_highestEntityIndex": 8432,
"dwGameRules": 27787656,
"dwGlobalVars": 25565864,
"dwGlowManager": 27785424,
"dwLocalPlayerController": 27697680,
"dwLocalPlayerPawn": 25615872,
"dwPlantedC4": 27823520,
"dwPrediction": 25615488,
"dwSensitivity": 27791384,
"dwGameRules": 27804016,
"dwGlobalVars": 25591216,
"dwGlowManager": 27804048,
"dwLocalPlayerController": 27716032,
"dwLocalPlayerPawn": 25641040,
"dwPlantedC4": 27845792,
"dwPrediction": 25640656,
"dwSensitivity": 27809640,
"dwSensitivity_sensitivity": 64,
"dwViewAngles": 27847072,
"dwViewMatrix": 27805840,
"dwViewRender": 27808264,
"dwWeaponC4": 27380336
"dwViewAngles": 27866048,
"dwViewMatrix": 27824432,
"dwViewRender": 27826496,
"dwWeaponC4": 27403824
},
"engine2.dll": {
"dwBuildNumber": 5483492,
"dwNetworkGameClient": 5479648,
"dwBuildNumber": 5508068,
"dwNetworkGameClient": 5504224,
"dwNetworkGameClient_clientTickCount": 872,
"dwNetworkGameClient_deltaTick": 636,
"dwNetworkGameClient_deltaTick": 580,
"dwNetworkGameClient_isBackgroundMap": 2626631,
"dwNetworkGameClient_localPlayer": 240,
"dwNetworkGameClient_maxClients": 568,
"dwNetworkGameClient_serverTickCount": 876,
"dwNetworkGameClient_signOnState": 552,
"dwWindowHeight": 6411236,
"dwWindowWidth": 6411232
"dwWindowHeight": 6436172,
"dwWindowWidth": 6436168
},
"inputsystem.dll": {
"dwInputSystem": 231392
},
"matchmaking.dll": {
"dwGameTypes": 1720752,
"dwGameTypes": 1716624,
"dwGameTypes_mapName": 288
},
"soundsystem.dll": {
"dwSoundSystem": 3794400,
"dwSoundSystem": 3806704,
"dwSoundSystem_engineViewData": 124
}
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:31:49.938005200 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, unused)]
@ -7,37 +7,37 @@ pub mod cs2_dumper {
pub mod offsets {
// Module: client.dll
pub mod client_dll {
pub const dwCSGOInput: usize = 0x1A8E5D0;
pub const dwEntityList: usize = 0x1A197E8;
pub const dwGameEntitySystem: usize = 0x1B3F728;
pub const dwCSGOInput: usize = 0x1A92FF0;
pub const dwEntityList: usize = 0x1A1F730;
pub const dwGameEntitySystem: usize = 0x1B43F58;
pub const dwGameEntitySystem_highestEntityIndex: usize = 0x20F0;
pub const dwGameRules: usize = 0x1A80188;
pub const dwGlobalVars: usize = 0x1861AA8;
pub const dwGlowManager: usize = 0x1A7F8D0;
pub const dwLocalPlayerController: usize = 0x1A6A210;
pub const dwLocalPlayerPawn: usize = 0x186DE00;
pub const dwPlantedC4: usize = 0x1A88DA0;
pub const dwPrediction: usize = 0x186DC80;
pub const dwSensitivity: usize = 0x1A81018;
pub const dwGameRules: usize = 0x1A84170;
pub const dwGlobalVars: usize = 0x1867DB0;
pub const dwGlowManager: usize = 0x1A84190;
pub const dwLocalPlayerController: usize = 0x1A6E9C0;
pub const dwLocalPlayerPawn: usize = 0x1874050;
pub const dwPlantedC4: usize = 0x1A8E4A0;
pub const dwPrediction: usize = 0x1873ED0;
pub const dwSensitivity: usize = 0x1A85768;
pub const dwSensitivity_sensitivity: usize = 0x40;
pub const dwViewAngles: usize = 0x1A8E9A0;
pub const dwViewMatrix: usize = 0x1A84890;
pub const dwViewRender: usize = 0x1A85208;
pub const dwWeaponC4: usize = 0x1A1CA70;
pub const dwViewAngles: usize = 0x1A933C0;
pub const dwViewMatrix: usize = 0x1A89130;
pub const dwViewRender: usize = 0x1A89940;
pub const dwWeaponC4: usize = 0x1A22630;
}
// Module: engine2.dll
pub mod engine2_dll {
pub const dwBuildNumber: usize = 0x53ABE4;
pub const dwNetworkGameClient: usize = 0x539CE0;
pub const dwBuildNumber: usize = 0x540BE4;
pub const dwNetworkGameClient: usize = 0x53FCE0;
pub const dwNetworkGameClient_clientTickCount: usize = 0x368;
pub const dwNetworkGameClient_deltaTick: usize = 0x27C;
pub const dwNetworkGameClient_deltaTick: usize = 0x244;
pub const dwNetworkGameClient_isBackgroundMap: usize = 0x281447;
pub const dwNetworkGameClient_localPlayer: usize = 0xF0;
pub const dwNetworkGameClient_maxClients: usize = 0x238;
pub const dwNetworkGameClient_serverTickCount: usize = 0x36C;
pub const dwNetworkGameClient_signOnState: usize = 0x228;
pub const dwWindowHeight: usize = 0x61D3E4;
pub const dwWindowWidth: usize = 0x61D3E0;
pub const dwWindowHeight: usize = 0x62354C;
pub const dwWindowWidth: usize = 0x623548;
}
// Module: inputsystem.dll
pub mod inputsystem_dll {
@ -45,12 +45,12 @@ pub mod cs2_dumper {
}
// Module: matchmaking.dll
pub mod matchmaking_dll {
pub const dwGameTypes: usize = 0x1A41B0;
pub const dwGameTypes: usize = 0x1A3190;
pub const dwGameTypes_mapName: usize = 0x120;
}
// Module: soundsystem.dll
pub mod soundsystem_dll {
pub const dwSoundSystem: usize = 0x39E5E0;
pub const dwSoundSystem: usize = 0x3A15F0;
pub const dwSoundSystem_engineViewData: usize = 0x7C;
}
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: panorama.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: particles.dll
@ -19,7 +19,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 7
public enum Detail2Combo_t : uint {
DETAIL_2_COMBO_UNINITIALIZED = 0xFFFFFFFFFFFFFFFF,
DETAIL_2_COMBO_UNINITIALIZED = unchecked((uint)-1),
DETAIL_2_COMBO_OFF = 0x0,
DETAIL_2_COMBO_ADD = 0x1,
DETAIL_2_COMBO_ADD_SELF_ILLUM = 0x2,
@ -30,7 +30,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum MissingParentInheritBehavior_t : uint {
MISSING_PARENT_DO_NOTHING = 0xFFFFFFFFFFFFFFFF,
MISSING_PARENT_DO_NOTHING = unchecked((uint)-1),
MISSING_PARENT_KILL = 0x0,
MISSING_PARENT_FIND_NEW = 0x1,
MISSING_PARENT_SAME_INDEX = 0x2
@ -38,7 +38,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 5
public enum ParticleFloatBiasType_t : uint {
PF_BIAS_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_BIAS_TYPE_INVALID = unchecked((uint)-1),
PF_BIAS_TYPE_STANDARD = 0x0,
PF_BIAS_TYPE_GAIN = 0x1,
PF_BIAS_TYPE_EXPONENTIAL = 0x2,
@ -93,7 +93,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 24
public enum ParticleFloatType_t : uint {
PF_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_TYPE_INVALID = unchecked((uint)-1),
PF_TYPE_LITERAL = 0x0,
PF_TYPE_NAMED_VALUE = 0x1,
PF_TYPE_RANDOM_UNIFORM = 0x2,
@ -175,7 +175,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 9
public enum ScalarExpressionType_t : uint {
SCALAR_EXPRESSION_UNINITIALIZED = 0xFFFFFFFFFFFFFFFF,
SCALAR_EXPRESSION_UNINITIALIZED = unchecked((uint)-1),
SCALAR_EXPRESSION_ADD = 0x0,
SCALAR_EXPRESSION_SUBTRACT = 0x1,
SCALAR_EXPRESSION_MUL = 0x2,
@ -236,12 +236,12 @@ namespace CS2Dumper.Schemas {
public enum ParticleLightingQuality_t : uint {
PARTICLE_LIGHTING_PER_PARTICLE = 0x0,
PARTICLE_LIGHTING_PER_VERTEX = 0x1,
PARTICLE_LIGHTING_PER_PIXEL = 0xFFFFFFFFFFFFFFFF
PARTICLE_LIGHTING_PER_PIXEL = unchecked((uint)-1)
}
// Alignment: 4
// Member count: 5
public enum ParticleFloatRoundType_t : uint {
PF_ROUND_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_ROUND_TYPE_INVALID = unchecked((uint)-1),
PF_ROUND_TYPE_NEAREST = 0x0,
PF_ROUND_TYPE_FLOOR = 0x1,
PF_ROUND_TYPE_CEIL = 0x2,
@ -302,7 +302,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 12
public enum ParticlePinDistance_t : uint {
PARTICLE_PIN_DISTANCE_NONE = 0xFFFFFFFFFFFFFFFF,
PARTICLE_PIN_DISTANCE_NONE = unchecked((uint)-1),
PARTICLE_PIN_DISTANCE_NEIGHBOR = 0x0,
PARTICLE_PIN_DISTANCE_FARTHEST = 0x1,
PARTICLE_PIN_DISTANCE_FIRST = 0x2,
@ -318,7 +318,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 7
public enum VectorFloatExpressionType_t : uint {
VECTOR_FLOAT_EXPRESSION_UNINITIALIZED = 0xFFFFFFFFFFFFFFFF,
VECTOR_FLOAT_EXPRESSION_UNINITIALIZED = unchecked((uint)-1),
VECTOR_FLOAT_EXPRESSION_DOTPRODUCT = 0x0,
VECTOR_FLOAT_EXPRESSION_DISTANCE = 0x1,
VECTOR_FLOAT_EXPRESSION_DISTANCESQR = 0x2,
@ -336,7 +336,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 9
public enum VectorExpressionType_t : uint {
VECTOR_EXPRESSION_UNINITIALIZED = 0xFFFFFFFFFFFFFFFF,
VECTOR_EXPRESSION_UNINITIALIZED = unchecked((uint)-1),
VECTOR_EXPRESSION_ADD = 0x0,
VECTOR_EXPRESSION_SUBTRACT = 0x1,
VECTOR_EXPRESSION_MUL = 0x2,
@ -399,7 +399,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 9
public enum ParticleFloatMapType_t : uint {
PF_MAP_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_MAP_TYPE_INVALID = unchecked((uint)-1),
PF_MAP_TYPE_DIRECT = 0x0,
PF_MAP_TYPE_MULT = 0x1,
PF_MAP_TYPE_REMAP = 0x2,
@ -438,7 +438,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum ParticleFloatInputMode_t : uint {
PF_INPUT_MODE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_INPUT_MODE_INVALID = unchecked((uint)-1),
PF_INPUT_MODE_CLAMPED = 0x0,
PF_INPUT_MODE_LOOPED = 0x1,
PF_INPUT_MODE_COUNT = 0x2
@ -482,7 +482,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum ParticleFloatRandomMode_t : uint {
PF_RANDOM_MODE_INVALID = 0xFFFFFFFFFFFFFFFF,
PF_RANDOM_MODE_INVALID = unchecked((uint)-1),
PF_RANDOM_MODE_CONSTANT = 0x0,
PF_RANDOM_MODE_VARYING = 0x1,
PF_RANDOM_MODE_COUNT = 0x2
@ -498,7 +498,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 19
public enum ParticleVecType_t : uint {
PVEC_TYPE_INVALID = 0xFFFFFFFFFFFFFFFF,
PVEC_TYPE_INVALID = unchecked((uint)-1),
PVEC_TYPE_LITERAL = 0x0,
PVEC_TYPE_LITERAL_COLOR = 0x1,
PVEC_TYPE_NAMED_VALUE = 0x2,
@ -534,7 +534,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 3
public enum ParticleSequenceCropOverride_t : uint {
PARTICLE_SEQUENCE_CROP_OVERRIDE_DEFAULT = 0xFFFFFFFFFFFFFFFF,
PARTICLE_SEQUENCE_CROP_OVERRIDE_DEFAULT = unchecked((uint)-1),
PARTICLE_SEQUENCE_CROP_OVERRIDE_FORCE_OFF = 0x0,
PARTICLE_SEQUENCE_CROP_OVERRIDE_FORCE_ON = 0x1
}
@ -634,7 +634,7 @@ namespace CS2Dumper.Schemas {
COLLISION_MODE_USE_NEAREST_TRACE = 0x2,
COLLISION_MODE_PER_FRAME_PLANESET = 0x1,
COLLISION_MODE_INITIAL_TRACE_DOWN = 0x0,
COLLISION_MODE_DISABLED = 0xFFFFFFFFFFFFFFFF
COLLISION_MODE_DISABLED = unchecked((uint)-1)
}
// Alignment: 4
// Member count: 2
@ -645,7 +645,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 3
public enum ParticleEndcapMode_t : uint {
PARTICLE_ENDCAP_ALWAYS_ON = 0xFFFFFFFFFFFFFFFF,
PARTICLE_ENDCAP_ALWAYS_ON = unchecked((uint)-1),
PARTICLE_ENDCAP_ENDCAP_OFF = 0x0,
PARTICLE_ENDCAP_ENDCAP_ON = 0x1
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: pulse_system.dll
@ -40,7 +40,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 21
public enum PulseValueType_t : uint {
PVAL_INVALID = 0xFFFFFFFFFFFFFFFF,
PVAL_INVALID = unchecked((uint)-1),
PVAL_BOOL = 0x0,
PVAL_INT = 0x1,
PVAL_FLOAT = 0x2,
@ -161,7 +161,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 4
public enum PulseDomainValueType_t : uint {
INVALID = 0xFFFFFFFFFFFFFFFF,
INVALID = unchecked((uint)-1),
ENTITY_NAME = 0x0,
PANEL_ID = 0x1,
COUNT = 0x2

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: rendersystemdx11.dll
@ -43,7 +43,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 1
// Member count: 8
public enum RenderMultisampleType_t : byte {
RENDER_MULTISAMPLE_INVALID = 0xFFFFFFFFFFFFFFFF,
RENDER_MULTISAMPLE_INVALID = unchecked((byte)-1),
RENDER_MULTISAMPLE_NONE = 0x0,
RENDER_MULTISAMPLE_2X = 0x1,
RENDER_MULTISAMPLE_4X = 0x2,
@ -63,7 +63,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 4
// Member count: 3
public enum RenderSlotType_t : uint {
RENDER_SLOT_INVALID = 0xFFFFFFFFFFFFFFFF,
RENDER_SLOT_INVALID = unchecked((uint)-1),
RENDER_SLOT_PER_VERTEX = 0x0,
RENDER_SLOT_PER_INSTANCE = 0x1
}

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: resourcesystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: scenesystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: schemasystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once
@ -8,7 +8,7 @@
namespace cs2_dumper {
namespace schemas {
// Module: server.dll
// Class count: 653
// Class count: 639
// Enum count: 139
namespace server_dll {
// Alignment: 4
@ -464,7 +464,7 @@ namespace cs2_dumper {
TrainVelocity_EaseInEaseOut = 0x2
};
// Alignment: 4
// Member count: 20
// Member count: 13
enum class CSWeaponType : uint32_t {
WEAPONTYPE_KNIFE = 0x0,
WEAPONTYPE_PISTOL = 0x1,
@ -478,14 +478,7 @@ namespace cs2_dumper {
WEAPONTYPE_GRENADE = 0x9,
WEAPONTYPE_EQUIPMENT = 0xA,
WEAPONTYPE_STACKABLEITEM = 0xB,
WEAPONTYPE_FISTS = 0xC,
WEAPONTYPE_BREACHCHARGE = 0xD,
WEAPONTYPE_BUMPMINE = 0xE,
WEAPONTYPE_TABLET = 0xF,
WEAPONTYPE_MELEE = 0x10,
WEAPONTYPE_SHIELD = 0x11,
WEAPONTYPE_ZONE_REPULSOR = 0x12,
WEAPONTYPE_UNKNOWN = 0x13
WEAPONTYPE_UNKNOWN = 0xC
};
// Alignment: 4
// Member count: 3
@ -747,26 +740,18 @@ namespace cs2_dumper {
eCount = 0x2
};
// Alignment: 4
// Member count: 18
// Member count: 10
enum class CSPlayerBlockingUseAction_t : uint32_t {
k_CSPlayerBlockingUseAction_None = 0x0,
k_CSPlayerBlockingUseAction_DefusingDefault = 0x1,
k_CSPlayerBlockingUseAction_DefusingWithKit = 0x2,
k_CSPlayerBlockingUseAction_HostageGrabbing = 0x3,
k_CSPlayerBlockingUseAction_HostageDropping = 0x4,
k_CSPlayerBlockingUseAction_OpeningSafe = 0x5,
k_CSPlayerBlockingUseAction_EquippingParachute = 0x6,
k_CSPlayerBlockingUseAction_EquippingHeavyArmor = 0x7,
k_CSPlayerBlockingUseAction_EquippingContract = 0x8,
k_CSPlayerBlockingUseAction_EquippingTabletUpgrade = 0x9,
k_CSPlayerBlockingUseAction_TakingOffHeavyArmor = 0xA,
k_CSPlayerBlockingUseAction_PayingToOpenDoor = 0xB,
k_CSPlayerBlockingUseAction_CancelingSpawnRappelling = 0xC,
k_CSPlayerBlockingUseAction_EquippingExoJump = 0xD,
k_CSPlayerBlockingUseAction_PickingUpBumpMine = 0xE,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup = 0xF,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Place = 0x10,
k_CSPlayerBlockingUseAction_MaxCount = 0x11
k_CSPlayerBlockingUseAction_EquippingHeavyArmor = 0x5,
k_CSPlayerBlockingUseAction_TakingOffHeavyArmor = 0x6,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup = 0x7,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Place = 0x8,
k_CSPlayerBlockingUseAction_MaxCount = 0x9
};
// Alignment: 4
// Member count: 3
@ -1478,16 +1463,14 @@ namespace cs2_dumper {
eDrop = 0x2
};
// Alignment: 4
// Member count: 8
// Member count: 6
enum class GrenadeType_t : uint32_t {
GRENADE_TYPE_EXPLOSIVE = 0x0,
GRENADE_TYPE_FLASH = 0x1,
GRENADE_TYPE_FIRE = 0x2,
GRENADE_TYPE_DECOY = 0x3,
GRENADE_TYPE_SMOKE = 0x4,
GRENADE_TYPE_SENSOR = 0x5,
GRENADE_TYPE_SNOWBALL = 0x6,
GRENADE_TYPE_TOTAL = 0x7
GRENADE_TYPE_TOTAL = 0x5
};
// Alignment: 4
// Member count: 2
@ -1762,21 +1745,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t fog = 0x20; // fogparams_t
constexpr std::ptrdiff_t m_nWorldGroupID = 0x88; // WorldGroupId_t
}
// Parent: CCSWeaponBase
// Field count: 7
//
// Metadata:
// NetworkVarNames: m_bPlayingUninterruptableAct (bool)
// NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
namespace CFists {
constexpr std::ptrdiff_t m_bPlayingUninterruptableAct = 0xF70; // bool
constexpr std::ptrdiff_t m_nUninterruptableActivity = 0xF74; // PlayerAnimEvent_t
constexpr std::ptrdiff_t m_bRestorePrevWep = 0xF78; // bool
constexpr std::ptrdiff_t m_hWeaponBeforePrevious = 0xF7C; // CHandle<CBasePlayerWeapon>
constexpr std::ptrdiff_t m_hWeaponPrevious = 0xF80; // CHandle<CBasePlayerWeapon>
constexpr std::ptrdiff_t m_bDelayedHardPunchIncoming = 0xF84; // bool
constexpr std::ptrdiff_t m_bDestroyAfterTaunt = 0xF85; // bool
}
// Parent: CBaseTrigger
// Field count: 1
namespace CTriggerRemove {
@ -1802,10 +1770,6 @@ namespace cs2_dumper {
namespace CPushable {
}
// Parent: CBaseTrigger
// Field count: 0
namespace CTriggerTripWire {
}
// Parent: CBaseTrigger
// Field count: 1
namespace CTriggerMultiple {
constexpr std::ptrdiff_t m_OnTrigger = 0x960; // CEntityIOOutput
@ -2316,20 +2280,20 @@ namespace cs2_dumper {
// NetworkVarNames: m_flNextHoldFrac (float)
// NetworkVarNames: m_hSwitchToWeaponAfterThrow (CHandle<CCSWeaponBase>)
namespace CBaseCSGrenade {
constexpr std::ptrdiff_t m_bRedraw = 0xF70; // bool
constexpr std::ptrdiff_t m_bIsHeldByPlayer = 0xF71; // bool
constexpr std::ptrdiff_t m_bPinPulled = 0xF72; // bool
constexpr std::ptrdiff_t m_bJumpThrow = 0xF73; // bool
constexpr std::ptrdiff_t m_bThrowAnimating = 0xF74; // bool
constexpr std::ptrdiff_t m_fThrowTime = 0xF78; // GameTime_t
constexpr std::ptrdiff_t m_flThrowStrength = 0xF7C; // float32
constexpr std::ptrdiff_t m_flThrowStrengthApproach = 0xF80; // float32
constexpr std::ptrdiff_t m_fDropTime = 0xF84; // GameTime_t
constexpr std::ptrdiff_t m_fPinPullTime = 0xF88; // GameTime_t
constexpr std::ptrdiff_t m_bJustPulledPin = 0xF8C; // bool
constexpr std::ptrdiff_t m_nNextHoldTick = 0xF90; // GameTick_t
constexpr std::ptrdiff_t m_flNextHoldFrac = 0xF94; // float32
constexpr std::ptrdiff_t m_hSwitchToWeaponAfterThrow = 0xF98; // CHandle<CCSWeaponBase>
constexpr std::ptrdiff_t m_bRedraw = 0xF68; // bool
constexpr std::ptrdiff_t m_bIsHeldByPlayer = 0xF69; // bool
constexpr std::ptrdiff_t m_bPinPulled = 0xF6A; // bool
constexpr std::ptrdiff_t m_bJumpThrow = 0xF6B; // bool
constexpr std::ptrdiff_t m_bThrowAnimating = 0xF6C; // bool
constexpr std::ptrdiff_t m_fThrowTime = 0xF70; // GameTime_t
constexpr std::ptrdiff_t m_flThrowStrength = 0xF74; // float32
constexpr std::ptrdiff_t m_flThrowStrengthApproach = 0xF78; // float32
constexpr std::ptrdiff_t m_fDropTime = 0xF7C; // GameTime_t
constexpr std::ptrdiff_t m_fPinPullTime = 0xF80; // GameTime_t
constexpr std::ptrdiff_t m_bJustPulledPin = 0xF84; // bool
constexpr std::ptrdiff_t m_nNextHoldTick = 0xF88; // GameTick_t
constexpr std::ptrdiff_t m_flNextHoldFrac = 0xF8C; // float32
constexpr std::ptrdiff_t m_hSwitchToWeaponAfterThrow = 0xF90; // CHandle<CCSWeaponBase>
}
// Parent: CBaseModelEntity
// Field count: 1
@ -2499,8 +2463,8 @@ namespace cs2_dumper {
// NetworkVarNames: m_SequenceCompleteTimer (CountdownTimer)
// NetworkVarNames: m_bRedraw (bool)
namespace CWeaponBaseItem {
constexpr std::ptrdiff_t m_SequenceCompleteTimer = 0xF70; // CountdownTimer
constexpr std::ptrdiff_t m_bRedraw = 0xF88; // bool
constexpr std::ptrdiff_t m_SequenceCompleteTimer = 0xF68; // CountdownTimer
constexpr std::ptrdiff_t m_bRedraw = 0xF80; // bool
}
// Parent: CPointEntity
// Field count: 0
@ -3131,10 +3095,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_nFlameModelIndex = 0x4F0; // int32
constexpr std::ptrdiff_t m_nFlameFromAboveModelIndex = 0x4F4; // int32
}
// Parent: CCSWeaponBase
// Field count: 0
namespace CBumpMine {
}
// Parent: CBaseModelEntity
// Field count: 7
//
@ -3708,7 +3668,7 @@ namespace cs2_dumper {
// Metadata:
// NetworkVarNames: m_bFirstAttack (bool)
namespace CKnife {
constexpr std::ptrdiff_t m_bFirstAttack = 0xF70; // bool
constexpr std::ptrdiff_t m_bFirstAttack = 0xF68; // bool
}
// Parent: CBaseModelEntity
// Field count: 37
@ -3914,10 +3874,6 @@ namespace cs2_dumper {
namespace CPhysTorque {
constexpr std::ptrdiff_t m_axis = 0x540; // Vector
}
// Parent: CBaseGrenade
// Field count: 0
namespace CBreachChargeProjectile {
}
// Parent: CBaseAnimGraph
// Field count: 27
//
@ -4455,13 +4411,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_bSpotted = 0x8; // bool
constexpr std::ptrdiff_t m_bSpottedByMask = 0xC; // uint32[2]
}
// Parent: CBaseCSGrenadeProjectile
// Field count: 3
namespace CSensorGrenadeProjectile {
constexpr std::ptrdiff_t m_fExpireTime = 0xB50; // GameTime_t
constexpr std::ptrdiff_t m_fNextDetectPlayerSound = 0xB54; // GameTime_t
constexpr std::ptrdiff_t m_hDisplayGrenade = 0xB58; // CHandle<CBaseEntity>
}
// Parent: CCSPlayerBase_CameraServices
// Field count: 0
namespace CCSPlayer_CameraServices {
@ -5100,10 +5049,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_iObserverLastMode = 0x48; // ObserverMode_t
constexpr std::ptrdiff_t m_bForcedObserverMode = 0x4C; // bool
}
// Parent: CCSWeaponBaseGun
// Field count: 0
namespace CWeaponZoneRepulsor {
}
// Parent: CPointEntity
// Field count: 3
namespace CPhysImpact {
@ -6791,10 +6736,6 @@ namespace cs2_dumper {
namespace CFilterClass {
constexpr std::ptrdiff_t m_iFilterClass = 0x538; // CUtlSymbolLarge
}
// Parent: CCSWeaponBase
// Field count: 0
namespace CMelee {
}
// Parent: CMultiplayRules
// Field count: 0
namespace CTeamplayRules {
@ -6914,7 +6855,7 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_nWorldGroupId = 0xC; // WorldGroupId_t
}
// Parent: CBasePlayerWeapon
// Field count: 65
// Field count: 64
//
// Metadata:
// MNetworkExcludeByName
@ -6965,54 +6906,53 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_bRequireUseToTouch = 0xE11; // bool
constexpr std::ptrdiff_t m_iState = 0xE14; // CSWeaponState_t
constexpr std::ptrdiff_t m_flLastTimeInAir = 0xE18; // GameTime_t
constexpr std::ptrdiff_t m_flLastDeployTime = 0xE1C; // GameTime_t
constexpr std::ptrdiff_t m_nLastEmptySoundCmdNum = 0xE20; // int32
constexpr std::ptrdiff_t m_nViewModelIndex = 0xE24; // uint32
constexpr std::ptrdiff_t m_bReloadsWithClips = 0xE28; // bool
constexpr std::ptrdiff_t m_flTimeWeaponIdle = 0xE48; // GameTime_t
constexpr std::ptrdiff_t m_bFireOnEmpty = 0xE4C; // bool
constexpr std::ptrdiff_t m_OnPlayerPickup = 0xE50; // CEntityIOOutput
constexpr std::ptrdiff_t m_weaponMode = 0xE78; // CSWeaponMode
constexpr std::ptrdiff_t m_flTurningInaccuracyDelta = 0xE7C; // float32
constexpr std::ptrdiff_t m_vecTurningInaccuracyEyeDirLast = 0xE80; // Vector
constexpr std::ptrdiff_t m_flTurningInaccuracy = 0xE8C; // float32
constexpr std::ptrdiff_t m_fAccuracyPenalty = 0xE90; // float32
constexpr std::ptrdiff_t m_flLastAccuracyUpdateTime = 0xE94; // GameTime_t
constexpr std::ptrdiff_t m_fAccuracySmoothedForZoom = 0xE98; // float32
constexpr std::ptrdiff_t m_fScopeZoomEndTime = 0xE9C; // GameTime_t
constexpr std::ptrdiff_t m_iRecoilIndex = 0xEA0; // int32
constexpr std::ptrdiff_t m_flRecoilIndex = 0xEA4; // float32
constexpr std::ptrdiff_t m_bBurstMode = 0xEA8; // bool
constexpr std::ptrdiff_t m_nPostponeFireReadyTicks = 0xEAC; // GameTick_t
constexpr std::ptrdiff_t m_flPostponeFireReadyFrac = 0xEB0; // float32
constexpr std::ptrdiff_t m_bInReload = 0xEB4; // bool
constexpr std::ptrdiff_t m_bReloadVisuallyComplete = 0xEB5; // bool
constexpr std::ptrdiff_t m_flDroppedAtTime = 0xEB8; // GameTime_t
constexpr std::ptrdiff_t m_bIsHauledBack = 0xEBC; // bool
constexpr std::ptrdiff_t m_bSilencerOn = 0xEBD; // bool
constexpr std::ptrdiff_t m_flTimeSilencerSwitchComplete = 0xEC0; // GameTime_t
constexpr std::ptrdiff_t m_iOriginalTeamNumber = 0xEC4; // int32
constexpr std::ptrdiff_t m_iMostRecentTeamNumber = 0xEC8; // int32
constexpr std::ptrdiff_t m_bDroppedNearBuyZone = 0xECC; // bool
constexpr std::ptrdiff_t m_flNextAttackRenderTimeOffset = 0xED0; // float32
constexpr std::ptrdiff_t m_bCanBePickedUp = 0xEE8; // bool
constexpr std::ptrdiff_t m_bUseCanOverrideNextOwnerTouchTime = 0xEE9; // bool
constexpr std::ptrdiff_t m_nextOwnerTouchTime = 0xEEC; // GameTime_t
constexpr std::ptrdiff_t m_nextPrevOwnerTouchTime = 0xEF0; // GameTime_t
constexpr std::ptrdiff_t m_nextPrevOwnerUseTime = 0xEF8; // GameTime_t
constexpr std::ptrdiff_t m_hPrevOwner = 0xEFC; // CHandle<CCSPlayerPawn>
constexpr std::ptrdiff_t m_nDropTick = 0xF00; // GameTick_t
constexpr std::ptrdiff_t m_donated = 0xF24; // bool
constexpr std::ptrdiff_t m_fLastShotTime = 0xF28; // GameTime_t
constexpr std::ptrdiff_t m_bWasOwnedByCT = 0xF2C; // bool
constexpr std::ptrdiff_t m_bWasOwnedByTerrorist = 0xF2D; // bool
constexpr std::ptrdiff_t m_bFiredOutOfAmmoEvent = 0xF2E; // bool
constexpr std::ptrdiff_t m_numRemoveUnownedWeaponThink = 0xF30; // int32
constexpr std::ptrdiff_t m_IronSightController = 0xF38; // CIronSightController
constexpr std::ptrdiff_t m_iIronSightMode = 0xF50; // int32
constexpr std::ptrdiff_t m_flLastLOSTraceFailureTime = 0xF54; // GameTime_t
constexpr std::ptrdiff_t m_iNumEmptyAttacks = 0xF58; // int32
constexpr std::ptrdiff_t m_flWatTickOffset = 0xF5C; // float32
constexpr std::ptrdiff_t m_nLastEmptySoundCmdNum = 0xE1C; // int32
constexpr std::ptrdiff_t m_nViewModelIndex = 0xE20; // uint32
constexpr std::ptrdiff_t m_bReloadsWithClips = 0xE24; // bool
constexpr std::ptrdiff_t m_flTimeWeaponIdle = 0xE40; // GameTime_t
constexpr std::ptrdiff_t m_bFireOnEmpty = 0xE44; // bool
constexpr std::ptrdiff_t m_OnPlayerPickup = 0xE48; // CEntityIOOutput
constexpr std::ptrdiff_t m_weaponMode = 0xE70; // CSWeaponMode
constexpr std::ptrdiff_t m_flTurningInaccuracyDelta = 0xE74; // float32
constexpr std::ptrdiff_t m_vecTurningInaccuracyEyeDirLast = 0xE78; // Vector
constexpr std::ptrdiff_t m_flTurningInaccuracy = 0xE84; // float32
constexpr std::ptrdiff_t m_fAccuracyPenalty = 0xE88; // float32
constexpr std::ptrdiff_t m_flLastAccuracyUpdateTime = 0xE8C; // GameTime_t
constexpr std::ptrdiff_t m_fAccuracySmoothedForZoom = 0xE90; // float32
constexpr std::ptrdiff_t m_fScopeZoomEndTime = 0xE94; // GameTime_t
constexpr std::ptrdiff_t m_iRecoilIndex = 0xE98; // int32
constexpr std::ptrdiff_t m_flRecoilIndex = 0xE9C; // float32
constexpr std::ptrdiff_t m_bBurstMode = 0xEA0; // bool
constexpr std::ptrdiff_t m_nPostponeFireReadyTicks = 0xEA4; // GameTick_t
constexpr std::ptrdiff_t m_flPostponeFireReadyFrac = 0xEA8; // float32
constexpr std::ptrdiff_t m_bInReload = 0xEAC; // bool
constexpr std::ptrdiff_t m_bReloadVisuallyComplete = 0xEAD; // bool
constexpr std::ptrdiff_t m_flDroppedAtTime = 0xEB0; // GameTime_t
constexpr std::ptrdiff_t m_bIsHauledBack = 0xEB4; // bool
constexpr std::ptrdiff_t m_bSilencerOn = 0xEB5; // bool
constexpr std::ptrdiff_t m_flTimeSilencerSwitchComplete = 0xEB8; // GameTime_t
constexpr std::ptrdiff_t m_iOriginalTeamNumber = 0xEBC; // int32
constexpr std::ptrdiff_t m_iMostRecentTeamNumber = 0xEC0; // int32
constexpr std::ptrdiff_t m_bDroppedNearBuyZone = 0xEC4; // bool
constexpr std::ptrdiff_t m_flNextAttackRenderTimeOffset = 0xEC8; // float32
constexpr std::ptrdiff_t m_bCanBePickedUp = 0xEE0; // bool
constexpr std::ptrdiff_t m_bUseCanOverrideNextOwnerTouchTime = 0xEE1; // bool
constexpr std::ptrdiff_t m_nextOwnerTouchTime = 0xEE4; // GameTime_t
constexpr std::ptrdiff_t m_nextPrevOwnerTouchTime = 0xEE8; // GameTime_t
constexpr std::ptrdiff_t m_nextPrevOwnerUseTime = 0xEF0; // GameTime_t
constexpr std::ptrdiff_t m_hPrevOwner = 0xEF4; // CHandle<CCSPlayerPawn>
constexpr std::ptrdiff_t m_nDropTick = 0xEF8; // GameTick_t
constexpr std::ptrdiff_t m_donated = 0xF1C; // bool
constexpr std::ptrdiff_t m_fLastShotTime = 0xF20; // GameTime_t
constexpr std::ptrdiff_t m_bWasOwnedByCT = 0xF24; // bool
constexpr std::ptrdiff_t m_bWasOwnedByTerrorist = 0xF25; // bool
constexpr std::ptrdiff_t m_bFiredOutOfAmmoEvent = 0xF26; // bool
constexpr std::ptrdiff_t m_numRemoveUnownedWeaponThink = 0xF28; // int32
constexpr std::ptrdiff_t m_IronSightController = 0xF30; // CIronSightController
constexpr std::ptrdiff_t m_iIronSightMode = 0xF48; // int32
constexpr std::ptrdiff_t m_flLastLOSTraceFailureTime = 0xF4C; // GameTime_t
constexpr std::ptrdiff_t m_iNumEmptyAttacks = 0xF50; // int32
constexpr std::ptrdiff_t m_flWatTickOffset = 0xF54; // float32
}
// Parent: CBaseEntity
// Field count: 0
@ -7382,7 +7322,7 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_state = 0x798; // int32
}
// Parent: CTeamplayRules
// Field count: 189
// Field count: 190
//
// Metadata:
// NetworkVarNames: m_bFreezePeriod (bool)
@ -7549,127 +7489,128 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_vMinimapMaxs = 0xCB4; // Vector
constexpr std::ptrdiff_t m_MinimapVerticalSectionHeights = 0xCC0; // float32[8]
constexpr std::ptrdiff_t m_bSpawnedTerrorHuntHeavy = 0xCE0; // bool
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xCE4; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xD0C; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xD34; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xD38; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xD3C; // int32
constexpr std::ptrdiff_t m_bHasHostageBeenTouched = 0xD58; // bool
constexpr std::ptrdiff_t m_flIntermissionStartTime = 0xD5C; // GameTime_t
constexpr std::ptrdiff_t m_flIntermissionEndTime = 0xD60; // GameTime_t
constexpr std::ptrdiff_t m_bLevelInitialized = 0xD64; // bool
constexpr std::ptrdiff_t m_iTotalRoundsPlayed = 0xD68; // int32
constexpr std::ptrdiff_t m_iUnBalancedRounds = 0xD6C; // int32
constexpr std::ptrdiff_t m_endMatchOnRoundReset = 0xD70; // bool
constexpr std::ptrdiff_t m_endMatchOnThink = 0xD71; // bool
constexpr std::ptrdiff_t m_iFreezeTime = 0xD74; // int32
constexpr std::ptrdiff_t m_iNumTerrorist = 0xD78; // int32
constexpr std::ptrdiff_t m_iNumCT = 0xD7C; // int32
constexpr std::ptrdiff_t m_iNumSpawnableTerrorist = 0xD80; // int32
constexpr std::ptrdiff_t m_iNumSpawnableCT = 0xD84; // int32
constexpr std::ptrdiff_t m_arrSelectedHostageSpawnIndices = 0xD88; // CUtlVector<int32>
constexpr std::ptrdiff_t m_nSpawnPointsRandomSeed = 0xDA0; // int32
constexpr std::ptrdiff_t m_bFirstConnected = 0xDA4; // bool
constexpr std::ptrdiff_t m_bCompleteReset = 0xDA5; // bool
constexpr std::ptrdiff_t m_bPickNewTeamsOnReset = 0xDA6; // bool
constexpr std::ptrdiff_t m_bScrambleTeamsOnRestart = 0xDA7; // bool
constexpr std::ptrdiff_t m_bSwapTeamsOnRestart = 0xDA8; // bool
constexpr std::ptrdiff_t m_nEndMatchTiedVotes = 0xDB0; // CUtlVector<int32>
constexpr std::ptrdiff_t m_bNeedToAskPlayersForContinueVote = 0xDCC; // bool
constexpr std::ptrdiff_t m_numQueuedMatchmakingAccounts = 0xDD0; // uint32
constexpr std::ptrdiff_t m_fAvgPlayerRank = 0xDD4; // float32
constexpr std::ptrdiff_t m_pQueuedMatchmakingReservationString = 0xDD8; // char*
constexpr std::ptrdiff_t m_numTotalTournamentDrops = 0xDE0; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMax = 0xDE4; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMaxTV = 0xDE8; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMaxLnk = 0xDEC; // uint32
constexpr std::ptrdiff_t m_bForceTeamChangeSilent = 0xDF8; // bool
constexpr std::ptrdiff_t m_bLoadingRoundBackupData = 0xDF9; // bool
constexpr std::ptrdiff_t m_nMatchInfoShowType = 0xE30; // int32
constexpr std::ptrdiff_t m_flMatchInfoDecidedTime = 0xE34; // float32
constexpr std::ptrdiff_t mTeamDMLastWinningTeamNumber = 0xE50; // int32
constexpr std::ptrdiff_t mTeamDMLastThinkTime = 0xE54; // float32
constexpr std::ptrdiff_t m_flTeamDMLastAnnouncementTime = 0xE58; // float32
constexpr std::ptrdiff_t m_iAccountTerrorist = 0xE5C; // int32
constexpr std::ptrdiff_t m_iAccountCT = 0xE60; // int32
constexpr std::ptrdiff_t m_iSpawnPointCount_Terrorist = 0xE64; // int32
constexpr std::ptrdiff_t m_iSpawnPointCount_CT = 0xE68; // int32
constexpr std::ptrdiff_t m_iMaxNumTerrorists = 0xE6C; // int32
constexpr std::ptrdiff_t m_iMaxNumCTs = 0xE70; // int32
constexpr std::ptrdiff_t m_iLoserBonusMostRecentTeam = 0xE74; // int32
constexpr std::ptrdiff_t m_tmNextPeriodicThink = 0xE78; // float32
constexpr std::ptrdiff_t m_bVoiceWonMatchBragFired = 0xE7C; // bool
constexpr std::ptrdiff_t m_fWarmupNextChatNoticeTime = 0xE80; // float32
constexpr std::ptrdiff_t m_iHostagesRescued = 0xE88; // int32
constexpr std::ptrdiff_t m_iHostagesTouched = 0xE8C; // int32
constexpr std::ptrdiff_t m_flNextHostageAnnouncement = 0xE90; // float32
constexpr std::ptrdiff_t m_bNoTerroristsKilled = 0xE94; // bool
constexpr std::ptrdiff_t m_bNoCTsKilled = 0xE95; // bool
constexpr std::ptrdiff_t m_bNoEnemiesKilled = 0xE96; // bool
constexpr std::ptrdiff_t m_bCanDonateWeapons = 0xE97; // bool
constexpr std::ptrdiff_t m_firstKillTime = 0xE9C; // float32
constexpr std::ptrdiff_t m_firstBloodTime = 0xEA4; // float32
constexpr std::ptrdiff_t m_hostageWasInjured = 0xEC0; // bool
constexpr std::ptrdiff_t m_hostageWasKilled = 0xEC1; // bool
constexpr std::ptrdiff_t m_bVoteCalled = 0xED0; // bool
constexpr std::ptrdiff_t m_bServerVoteOnReset = 0xED1; // bool
constexpr std::ptrdiff_t m_flVoteCheckThrottle = 0xED4; // float32
constexpr std::ptrdiff_t m_bBuyTimeEnded = 0xED8; // bool
constexpr std::ptrdiff_t m_nLastFreezeEndBeep = 0xEDC; // int32
constexpr std::ptrdiff_t m_bTargetBombed = 0xEE0; // bool
constexpr std::ptrdiff_t m_bBombDefused = 0xEE1; // bool
constexpr std::ptrdiff_t m_bMapHasBombZone = 0xEE2; // bool
constexpr std::ptrdiff_t m_vecMainCTSpawnPos = 0xF30; // Vector
constexpr std::ptrdiff_t m_CTSpawnPointsMasterList = 0xF40; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_TerroristSpawnPointsMasterList = 0xF58; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_bRespawningAllRespawnablePlayers = 0xF70; // bool
constexpr std::ptrdiff_t m_iNextCTSpawnPoint = 0xF74; // int32
constexpr std::ptrdiff_t m_flCTSpawnPointUsedTime = 0xF78; // float32
constexpr std::ptrdiff_t m_iNextTerroristSpawnPoint = 0xF7C; // int32
constexpr std::ptrdiff_t m_flTerroristSpawnPointUsedTime = 0xF80; // float32
constexpr std::ptrdiff_t m_CTSpawnPoints = 0xF88; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_TerroristSpawnPoints = 0xFA0; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_bIsUnreservedGameServer = 0xFB8; // bool
constexpr std::ptrdiff_t m_fAutobalanceDisplayTime = 0xFBC; // float32
constexpr std::ptrdiff_t m_bAllowWeaponSwitch = 0x1228; // bool
constexpr std::ptrdiff_t m_bRoundTimeWarningTriggered = 0x1229; // bool
constexpr std::ptrdiff_t m_phaseChangeAnnouncementTime = 0x122C; // GameTime_t
constexpr std::ptrdiff_t m_fNextUpdateTeamClanNamesTime = 0x1230; // float32
constexpr std::ptrdiff_t m_flLastThinkTime = 0x1234; // GameTime_t
constexpr std::ptrdiff_t m_fAccumulatedRoundOffDamage = 0x1238; // float32
constexpr std::ptrdiff_t m_nShorthandedBonusLastEvalRound = 0x123C; // int32
constexpr std::ptrdiff_t m_nMatchAbortedEarlyReason = 0x14B8; // int32
constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0x14BC; // bool
constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0x14BD; // bool
constexpr std::ptrdiff_t m_pGameModeRules = 0x14D8; // CCSGameModeRules*
constexpr std::ptrdiff_t m_BtGlobalBlackboard = 0x14E0; // KeyValues3
constexpr std::ptrdiff_t m_hPlayerResource = 0x1570; // CHandle<CBaseEntity>
constexpr std::ptrdiff_t m_RetakeRules = 0x1578; // CRetakeGameRules
constexpr std::ptrdiff_t m_arrTeamUniqueKillWeaponsMatch = 0x1710; // CUtlVector<int32>[4]
constexpr std::ptrdiff_t m_bTeamLastKillUsedUniqueWeaponMatch = 0x1770; // bool[4]
constexpr std::ptrdiff_t m_nMatchEndCount = 0x1798; // uint8
constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0x179C; // int32
constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0x17A0; // int32
constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0x17A4; // bool
constexpr std::ptrdiff_t m_fTeamIntroPeriodEnd = 0x17A8; // GameTime_t
constexpr std::ptrdiff_t m_bPlayedTeamIntroVO = 0x17AC; // bool
constexpr std::ptrdiff_t m_iRoundEndWinnerTeam = 0x17B0; // int32
constexpr std::ptrdiff_t m_eRoundEndReason = 0x17B4; // int32
constexpr std::ptrdiff_t m_bRoundEndShowTimerDefend = 0x17B8; // bool
constexpr std::ptrdiff_t m_iRoundEndTimerTime = 0x17BC; // int32
constexpr std::ptrdiff_t m_sRoundEndFunFactToken = 0x17C0; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndFunFactPlayerSlot = 0x17C8; // CPlayerSlot
constexpr std::ptrdiff_t m_iRoundEndFunFactData1 = 0x17CC; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData2 = 0x17D0; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData3 = 0x17D4; // int32
constexpr std::ptrdiff_t m_sRoundEndMessage = 0x17D8; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndPlayerCount = 0x17E0; // int32
constexpr std::ptrdiff_t m_bRoundEndNoMusic = 0x17E4; // bool
constexpr std::ptrdiff_t m_iRoundEndLegacy = 0x17E8; // int32
constexpr std::ptrdiff_t m_nRoundEndCount = 0x17EC; // uint8
constexpr std::ptrdiff_t m_iRoundStartRoundNumber = 0x17F0; // int32
constexpr std::ptrdiff_t m_nRoundStartCount = 0x17F4; // uint8
constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x5800; // float64
constexpr std::ptrdiff_t m_ullLocalMatchID = 0xCE8; // uint64
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteTypes = 0xCF0; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapGroupVoteOptions = 0xD18; // int32[10]
constexpr std::ptrdiff_t m_nEndMatchMapVoteWinner = 0xD40; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveCTLoses = 0xD44; // int32
constexpr std::ptrdiff_t m_iNumConsecutiveTerroristLoses = 0xD48; // int32
constexpr std::ptrdiff_t m_bHasHostageBeenTouched = 0xD68; // bool
constexpr std::ptrdiff_t m_flIntermissionStartTime = 0xD6C; // GameTime_t
constexpr std::ptrdiff_t m_flIntermissionEndTime = 0xD70; // GameTime_t
constexpr std::ptrdiff_t m_bLevelInitialized = 0xD74; // bool
constexpr std::ptrdiff_t m_iTotalRoundsPlayed = 0xD78; // int32
constexpr std::ptrdiff_t m_iUnBalancedRounds = 0xD7C; // int32
constexpr std::ptrdiff_t m_endMatchOnRoundReset = 0xD80; // bool
constexpr std::ptrdiff_t m_endMatchOnThink = 0xD81; // bool
constexpr std::ptrdiff_t m_iFreezeTime = 0xD84; // int32
constexpr std::ptrdiff_t m_iNumTerrorist = 0xD88; // int32
constexpr std::ptrdiff_t m_iNumCT = 0xD8C; // int32
constexpr std::ptrdiff_t m_iNumSpawnableTerrorist = 0xD90; // int32
constexpr std::ptrdiff_t m_iNumSpawnableCT = 0xD94; // int32
constexpr std::ptrdiff_t m_arrSelectedHostageSpawnIndices = 0xD98; // CUtlVector<int32>
constexpr std::ptrdiff_t m_nSpawnPointsRandomSeed = 0xDB0; // int32
constexpr std::ptrdiff_t m_bFirstConnected = 0xDB4; // bool
constexpr std::ptrdiff_t m_bCompleteReset = 0xDB5; // bool
constexpr std::ptrdiff_t m_bPickNewTeamsOnReset = 0xDB6; // bool
constexpr std::ptrdiff_t m_bScrambleTeamsOnRestart = 0xDB7; // bool
constexpr std::ptrdiff_t m_bSwapTeamsOnRestart = 0xDB8; // bool
constexpr std::ptrdiff_t m_nEndMatchTiedVotes = 0xDC0; // CUtlVector<int32>
constexpr std::ptrdiff_t m_bNeedToAskPlayersForContinueVote = 0xDDC; // bool
constexpr std::ptrdiff_t m_numQueuedMatchmakingAccounts = 0xDE0; // uint32
constexpr std::ptrdiff_t m_fAvgPlayerRank = 0xDE4; // float32
constexpr std::ptrdiff_t m_pQueuedMatchmakingReservationString = 0xDE8; // char*
constexpr std::ptrdiff_t m_numTotalTournamentDrops = 0xDF0; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMax = 0xDF4; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMaxTV = 0xDF8; // uint32
constexpr std::ptrdiff_t m_numSpectatorsCountMaxLnk = 0xDFC; // uint32
constexpr std::ptrdiff_t m_bForceTeamChangeSilent = 0xE08; // bool
constexpr std::ptrdiff_t m_bLoadingRoundBackupData = 0xE09; // bool
constexpr std::ptrdiff_t m_nMatchInfoShowType = 0xE40; // int32
constexpr std::ptrdiff_t m_flMatchInfoDecidedTime = 0xE44; // float32
constexpr std::ptrdiff_t mTeamDMLastWinningTeamNumber = 0xE60; // int32
constexpr std::ptrdiff_t mTeamDMLastThinkTime = 0xE64; // float32
constexpr std::ptrdiff_t m_flTeamDMLastAnnouncementTime = 0xE68; // float32
constexpr std::ptrdiff_t m_iAccountTerrorist = 0xE6C; // int32
constexpr std::ptrdiff_t m_iAccountCT = 0xE70; // int32
constexpr std::ptrdiff_t m_iSpawnPointCount_Terrorist = 0xE74; // int32
constexpr std::ptrdiff_t m_iSpawnPointCount_CT = 0xE78; // int32
constexpr std::ptrdiff_t m_iMaxNumTerrorists = 0xE7C; // int32
constexpr std::ptrdiff_t m_iMaxNumCTs = 0xE80; // int32
constexpr std::ptrdiff_t m_iLoserBonusMostRecentTeam = 0xE84; // int32
constexpr std::ptrdiff_t m_tmNextPeriodicThink = 0xE88; // float32
constexpr std::ptrdiff_t m_bVoiceWonMatchBragFired = 0xE8C; // bool
constexpr std::ptrdiff_t m_fWarmupNextChatNoticeTime = 0xE90; // float32
constexpr std::ptrdiff_t m_iHostagesRescued = 0xE98; // int32
constexpr std::ptrdiff_t m_iHostagesTouched = 0xE9C; // int32
constexpr std::ptrdiff_t m_flNextHostageAnnouncement = 0xEA0; // float32
constexpr std::ptrdiff_t m_bNoTerroristsKilled = 0xEA4; // bool
constexpr std::ptrdiff_t m_bNoCTsKilled = 0xEA5; // bool
constexpr std::ptrdiff_t m_bNoEnemiesKilled = 0xEA6; // bool
constexpr std::ptrdiff_t m_bCanDonateWeapons = 0xEA7; // bool
constexpr std::ptrdiff_t m_firstKillTime = 0xEAC; // float32
constexpr std::ptrdiff_t m_firstBloodTime = 0xEB4; // float32
constexpr std::ptrdiff_t m_hostageWasInjured = 0xED0; // bool
constexpr std::ptrdiff_t m_hostageWasKilled = 0xED1; // bool
constexpr std::ptrdiff_t m_bVoteCalled = 0xEE0; // bool
constexpr std::ptrdiff_t m_bServerVoteOnReset = 0xEE1; // bool
constexpr std::ptrdiff_t m_flVoteCheckThrottle = 0xEE4; // float32
constexpr std::ptrdiff_t m_bBuyTimeEnded = 0xEE8; // bool
constexpr std::ptrdiff_t m_nLastFreezeEndBeep = 0xEEC; // int32
constexpr std::ptrdiff_t m_bTargetBombed = 0xEF0; // bool
constexpr std::ptrdiff_t m_bBombDefused = 0xEF1; // bool
constexpr std::ptrdiff_t m_bMapHasBombZone = 0xEF2; // bool
constexpr std::ptrdiff_t m_vecMainCTSpawnPos = 0xF40; // Vector
constexpr std::ptrdiff_t m_CTSpawnPointsMasterList = 0xF50; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_TerroristSpawnPointsMasterList = 0xF68; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_bRespawningAllRespawnablePlayers = 0xF80; // bool
constexpr std::ptrdiff_t m_iNextCTSpawnPoint = 0xF84; // int32
constexpr std::ptrdiff_t m_flCTSpawnPointUsedTime = 0xF88; // float32
constexpr std::ptrdiff_t m_iNextTerroristSpawnPoint = 0xF8C; // int32
constexpr std::ptrdiff_t m_flTerroristSpawnPointUsedTime = 0xF90; // float32
constexpr std::ptrdiff_t m_CTSpawnPoints = 0xF98; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_TerroristSpawnPoints = 0xFB0; // CUtlVector<SpawnPoint*>
constexpr std::ptrdiff_t m_bIsUnreservedGameServer = 0xFC8; // bool
constexpr std::ptrdiff_t m_fAutobalanceDisplayTime = 0xFCC; // float32
constexpr std::ptrdiff_t m_bAllowWeaponSwitch = 0x1238; // bool
constexpr std::ptrdiff_t m_bRoundTimeWarningTriggered = 0x1239; // bool
constexpr std::ptrdiff_t m_phaseChangeAnnouncementTime = 0x123C; // GameTime_t
constexpr std::ptrdiff_t m_fNextUpdateTeamClanNamesTime = 0x1240; // float32
constexpr std::ptrdiff_t m_flLastThinkTime = 0x1244; // GameTime_t
constexpr std::ptrdiff_t m_fAccumulatedRoundOffDamage = 0x1248; // float32
constexpr std::ptrdiff_t m_nShorthandedBonusLastEvalRound = 0x124C; // int32
constexpr std::ptrdiff_t m_nMatchAbortedEarlyReason = 0x14C8; // int32
constexpr std::ptrdiff_t m_bHasTriggeredRoundStartMusic = 0x14CC; // bool
constexpr std::ptrdiff_t m_bSwitchingTeamsAtRoundReset = 0x14CD; // bool
constexpr std::ptrdiff_t m_pGameModeRules = 0x14E8; // CCSGameModeRules*
constexpr std::ptrdiff_t m_BtGlobalBlackboard = 0x14F0; // KeyValues3
constexpr std::ptrdiff_t m_hPlayerResource = 0x1580; // CHandle<CBaseEntity>
constexpr std::ptrdiff_t m_RetakeRules = 0x1588; // CRetakeGameRules
constexpr std::ptrdiff_t m_arrTeamUniqueKillWeaponsMatch = 0x1720; // CUtlVector<int32>[4]
constexpr std::ptrdiff_t m_bTeamLastKillUsedUniqueWeaponMatch = 0x1780; // bool[4]
constexpr std::ptrdiff_t m_nMatchEndCount = 0x17A8; // uint8
constexpr std::ptrdiff_t m_nTTeamIntroVariant = 0x17AC; // int32
constexpr std::ptrdiff_t m_nCTTeamIntroVariant = 0x17B0; // int32
constexpr std::ptrdiff_t m_bTeamIntroPeriod = 0x17B4; // bool
constexpr std::ptrdiff_t m_fTeamIntroPeriodEnd = 0x17B8; // GameTime_t
constexpr std::ptrdiff_t m_bPlayedTeamIntroVO = 0x17BC; // bool
constexpr std::ptrdiff_t m_iRoundEndWinnerTeam = 0x17C0; // int32
constexpr std::ptrdiff_t m_eRoundEndReason = 0x17C4; // int32
constexpr std::ptrdiff_t m_bRoundEndShowTimerDefend = 0x17C8; // bool
constexpr std::ptrdiff_t m_iRoundEndTimerTime = 0x17CC; // int32
constexpr std::ptrdiff_t m_sRoundEndFunFactToken = 0x17D0; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndFunFactPlayerSlot = 0x17D8; // CPlayerSlot
constexpr std::ptrdiff_t m_iRoundEndFunFactData1 = 0x17DC; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData2 = 0x17E0; // int32
constexpr std::ptrdiff_t m_iRoundEndFunFactData3 = 0x17E4; // int32
constexpr std::ptrdiff_t m_sRoundEndMessage = 0x17E8; // CUtlString
constexpr std::ptrdiff_t m_iRoundEndPlayerCount = 0x17F0; // int32
constexpr std::ptrdiff_t m_bRoundEndNoMusic = 0x17F4; // bool
constexpr std::ptrdiff_t m_iRoundEndLegacy = 0x17F8; // int32
constexpr std::ptrdiff_t m_nRoundEndCount = 0x17FC; // uint8
constexpr std::ptrdiff_t m_iRoundStartRoundNumber = 0x1800; // int32
constexpr std::ptrdiff_t m_nRoundStartCount = 0x1804; // uint8
constexpr std::ptrdiff_t m_flLastPerfSampleTime = 0x5810; // float64
}
// Parent: CPhysicsProp
// Field count: 0
@ -7944,10 +7885,10 @@ namespace cs2_dumper {
// NetworkVarNames: m_weaponPurchasesThisMatch (WeaponPurchaseTracker_t)
// NetworkVarNames: m_weaponPurchasesThisRound (WeaponPurchaseTracker_t)
namespace CCSPlayer_ActionTrackingServices {
constexpr std::ptrdiff_t m_hLastWeaponBeforeC4AutoSwitch = 0x200; // CHandle<CBasePlayerWeapon>
constexpr std::ptrdiff_t m_bIsRescuing = 0x22C; // bool
constexpr std::ptrdiff_t m_weaponPurchasesThisMatch = 0x230; // WeaponPurchaseTracker_t
constexpr std::ptrdiff_t m_weaponPurchasesThisRound = 0x288; // WeaponPurchaseTracker_t
constexpr std::ptrdiff_t m_hLastWeaponBeforeC4AutoSwitch = 0x218; // CHandle<CBasePlayerWeapon>
constexpr std::ptrdiff_t m_bIsRescuing = 0x244; // bool
constexpr std::ptrdiff_t m_weaponPurchasesThisMatch = 0x248; // WeaponPurchaseTracker_t
constexpr std::ptrdiff_t m_weaponPurchasesThisRound = 0x2A0; // WeaponPurchaseTracker_t
}
// Parent: CPointEntity
// Field count: 6
@ -8103,10 +8044,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_ScriptSpawnCallback = 0x560; // HSCRIPT
constexpr std::ptrdiff_t m_ScriptCallbackScope = 0x568; // HSCRIPT
}
// Parent: CBaseCSGrenade
// Field count: 0
namespace CTripWireFire {
}
// Parent: CPointEntity
// Field count: 6
namespace CPhysForce {
@ -8231,10 +8168,6 @@ namespace cs2_dumper {
// Field count: 0
namespace CWeaponSSG08 {
}
// Parent: CCSWeaponBase
// Field count: 0
namespace CBreachCharge {
}
// Parent: CLogicalEntity
// Field count: 4
namespace CLogicBranch {
@ -8355,16 +8288,6 @@ namespace cs2_dumper {
namespace CCSGOViewModel {
constexpr std::ptrdiff_t m_bShouldIgnoreOffsetAndAccuracy = 0x9F0; // bool
}
// Parent: CCSWeaponBaseGun
// Field count: 3
//
// Metadata:
// NetworkVarNames: m_flDisplayHealth (float)
namespace CWeaponShield {
constexpr std::ptrdiff_t m_flBulletDamageAbsorbed = 0xF90; // float32
constexpr std::ptrdiff_t m_flLastBulletHitSoundTime = 0xF94; // GameTime_t
constexpr std::ptrdiff_t m_flDisplayHealth = 0xF98; // float32
}
// Parent: CPointEntity
// Field count: 4
namespace CBlood {
@ -9046,8 +8969,8 @@ namespace cs2_dumper {
// Metadata:
// NetworkVarNames: m_fFireTime (GameTime_t)
namespace CWeaponTaser {
constexpr std::ptrdiff_t m_fFireTime = 0xF90; // GameTime_t
constexpr std::ptrdiff_t m_nLastAttackTick = 0xF94; // int32
constexpr std::ptrdiff_t m_fFireTime = 0xF88; // GameTime_t
constexpr std::ptrdiff_t m_nLastAttackTick = 0xF8C; // int32
}
// Parent: CBaseAnimGraph
// Field count: 0
@ -9453,15 +9376,15 @@ namespace cs2_dumper {
// NetworkVarNames: m_iBurstShotsRemaining (int)
// NetworkVarNames: m_bNeedsBoltAction (bool)
namespace CCSWeaponBaseGun {
constexpr std::ptrdiff_t m_zoomLevel = 0xF70; // int32
constexpr std::ptrdiff_t m_iBurstShotsRemaining = 0xF74; // int32
constexpr std::ptrdiff_t m_silencedModelIndex = 0xF80; // int32
constexpr std::ptrdiff_t m_inPrecache = 0xF84; // bool
constexpr std::ptrdiff_t m_bNeedsBoltAction = 0xF85; // bool
constexpr std::ptrdiff_t m_bSkillReloadAvailable = 0xF86; // bool
constexpr std::ptrdiff_t m_bSkillReloadLiftedReloadKey = 0xF87; // bool
constexpr std::ptrdiff_t m_bSkillBoltInterruptAvailable = 0xF88; // bool
constexpr std::ptrdiff_t m_bSkillBoltLiftedFireKey = 0xF89; // bool
constexpr std::ptrdiff_t m_zoomLevel = 0xF68; // int32
constexpr std::ptrdiff_t m_iBurstShotsRemaining = 0xF6C; // int32
constexpr std::ptrdiff_t m_silencedModelIndex = 0xF78; // int32
constexpr std::ptrdiff_t m_inPrecache = 0xF7C; // bool
constexpr std::ptrdiff_t m_bNeedsBoltAction = 0xF7D; // bool
constexpr std::ptrdiff_t m_bSkillReloadAvailable = 0xF7E; // bool
constexpr std::ptrdiff_t m_bSkillReloadLiftedReloadKey = 0xF7F; // bool
constexpr std::ptrdiff_t m_bSkillBoltInterruptAvailable = 0xF80; // bool
constexpr std::ptrdiff_t m_bSkillBoltLiftedFireKey = 0xF81; // bool
}
// Parent: None
// Field count: 13
@ -10043,12 +9966,8 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_PredictedDamageTags = 0x1AD0; // CUtlVectorEmbeddedNetworkVar<PredictedDamageTag_t>
constexpr std::ptrdiff_t m_nHighestAppliedDamageTagTick = 0x1B20; // int32
}
// Parent: CBaseGrenade
// Field count: 0
namespace CBumpMineProjectile {
}
// Parent: CBasePlayerController
// Field count: 90
// Field count: 91
//
// Metadata:
// MNetworkUserGroupProxy
@ -10144,58 +10063,59 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_iDraftIndex = 0x868; // int32
constexpr std::ptrdiff_t m_msQueuedModeDisconnectionTimestamp = 0x86C; // uint32
constexpr std::ptrdiff_t m_uiAbandonRecordedReason = 0x870; // uint32
constexpr std::ptrdiff_t m_bCannotBeKicked = 0x874; // bool
constexpr std::ptrdiff_t m_bEverFullyConnected = 0x875; // bool
constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x876; // bool
constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x877; // bool
constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x878; // bool
constexpr std::ptrdiff_t m_bScoreReported = 0x879; // bool
constexpr std::ptrdiff_t m_nDisconnectionTick = 0x87C; // int32
constexpr std::ptrdiff_t m_bControllingBot = 0x888; // bool
constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x889; // bool
constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x88A; // bool
constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x88C; // int32
constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x890; // bool
constexpr std::ptrdiff_t m_hPlayerPawn = 0x894; // CHandle<CCSPlayerPawn>
constexpr std::ptrdiff_t m_hObserverPawn = 0x898; // CHandle<CCSObserverPawn>
constexpr std::ptrdiff_t m_DesiredObserverMode = 0x89C; // int32
constexpr std::ptrdiff_t m_hDesiredObserverTarget = 0x8A0; // CEntityHandle
constexpr std::ptrdiff_t m_bPawnIsAlive = 0x8A4; // bool
constexpr std::ptrdiff_t m_iPawnHealth = 0x8A8; // uint32
constexpr std::ptrdiff_t m_iPawnArmor = 0x8AC; // int32
constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x8B0; // bool
constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x8B1; // bool
constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x8B2; // uint16
constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x8B4; // int32
constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x8B8; // int32
constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x8BC; // int32
constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x8C0; // CHandle<CCSPlayerController>
constexpr std::ptrdiff_t m_iScore = 0x8C4; // int32
constexpr std::ptrdiff_t m_iRoundScore = 0x8C8; // int32
constexpr std::ptrdiff_t m_iRoundsWon = 0x8CC; // int32
constexpr std::ptrdiff_t m_recentKillQueue = 0x8D0; // uint8[8]
constexpr std::ptrdiff_t m_nFirstKill = 0x8D8; // uint8
constexpr std::ptrdiff_t m_nKillCount = 0x8D9; // uint8
constexpr std::ptrdiff_t m_bMvpNoMusic = 0x8DA; // bool
constexpr std::ptrdiff_t m_eMvpReason = 0x8DC; // int32
constexpr std::ptrdiff_t m_iMusicKitID = 0x8E0; // int32
constexpr std::ptrdiff_t m_iMusicKitMVPs = 0x8E4; // int32
constexpr std::ptrdiff_t m_iMVPs = 0x8E8; // int32
constexpr std::ptrdiff_t m_nUpdateCounter = 0x8EC; // int32
constexpr std::ptrdiff_t m_flSmoothedPing = 0x8F0; // float32
constexpr std::ptrdiff_t m_lastHeldVoteTimer = 0xF998; // IntervalTimer
constexpr std::ptrdiff_t m_bShowHints = 0xF9B0; // bool
constexpr std::ptrdiff_t m_iNextTimeCheck = 0xF9B4; // int32
constexpr std::ptrdiff_t m_bJustDidTeamKill = 0xF9B8; // bool
constexpr std::ptrdiff_t m_bPunishForTeamKill = 0xF9B9; // bool
constexpr std::ptrdiff_t m_bGaveTeamDamageWarning = 0xF9BA; // bool
constexpr std::ptrdiff_t m_bGaveTeamDamageWarningThisRound = 0xF9BB; // bool
constexpr std::ptrdiff_t m_dblLastReceivedPacketPlatFloatTime = 0xF9C0; // float64
constexpr std::ptrdiff_t m_LastTeamDamageWarningTime = 0xF9C8; // GameTime_t
constexpr std::ptrdiff_t m_LastTimePlayerWasDisconnectedForPawnsRemove = 0xF9CC; // GameTime_t
constexpr std::ptrdiff_t m_nSuspiciousHitCount = 0xF9D0; // uint32
constexpr std::ptrdiff_t m_nNonSuspiciousHitStreak = 0xF9D4; // uint32
constexpr std::ptrdiff_t m_bFireBulletsSeedSynchronized = 0xFA79; // bool
constexpr std::ptrdiff_t m_eNetworkDisconnectionReason = 0x874; // uint32
constexpr std::ptrdiff_t m_bCannotBeKicked = 0x878; // bool
constexpr std::ptrdiff_t m_bEverFullyConnected = 0x879; // bool
constexpr std::ptrdiff_t m_bAbandonAllowsSurrender = 0x87A; // bool
constexpr std::ptrdiff_t m_bAbandonOffersInstantSurrender = 0x87B; // bool
constexpr std::ptrdiff_t m_bDisconnection1MinWarningPrinted = 0x87C; // bool
constexpr std::ptrdiff_t m_bScoreReported = 0x87D; // bool
constexpr std::ptrdiff_t m_nDisconnectionTick = 0x880; // int32
constexpr std::ptrdiff_t m_bControllingBot = 0x890; // bool
constexpr std::ptrdiff_t m_bHasControlledBotThisRound = 0x891; // bool
constexpr std::ptrdiff_t m_bHasBeenControlledByPlayerThisRound = 0x892; // bool
constexpr std::ptrdiff_t m_nBotsControlledThisRound = 0x894; // int32
constexpr std::ptrdiff_t m_bCanControlObservedBot = 0x898; // bool
constexpr std::ptrdiff_t m_hPlayerPawn = 0x89C; // CHandle<CCSPlayerPawn>
constexpr std::ptrdiff_t m_hObserverPawn = 0x8A0; // CHandle<CCSObserverPawn>
constexpr std::ptrdiff_t m_DesiredObserverMode = 0x8A4; // int32
constexpr std::ptrdiff_t m_hDesiredObserverTarget = 0x8A8; // CEntityHandle
constexpr std::ptrdiff_t m_bPawnIsAlive = 0x8AC; // bool
constexpr std::ptrdiff_t m_iPawnHealth = 0x8B0; // uint32
constexpr std::ptrdiff_t m_iPawnArmor = 0x8B4; // int32
constexpr std::ptrdiff_t m_bPawnHasDefuser = 0x8B8; // bool
constexpr std::ptrdiff_t m_bPawnHasHelmet = 0x8B9; // bool
constexpr std::ptrdiff_t m_nPawnCharacterDefIndex = 0x8BA; // uint16
constexpr std::ptrdiff_t m_iPawnLifetimeStart = 0x8BC; // int32
constexpr std::ptrdiff_t m_iPawnLifetimeEnd = 0x8C0; // int32
constexpr std::ptrdiff_t m_iPawnBotDifficulty = 0x8C4; // int32
constexpr std::ptrdiff_t m_hOriginalControllerOfCurrentPawn = 0x8C8; // CHandle<CCSPlayerController>
constexpr std::ptrdiff_t m_iScore = 0x8CC; // int32
constexpr std::ptrdiff_t m_iRoundScore = 0x8D0; // int32
constexpr std::ptrdiff_t m_iRoundsWon = 0x8D4; // int32
constexpr std::ptrdiff_t m_recentKillQueue = 0x8D8; // uint8[8]
constexpr std::ptrdiff_t m_nFirstKill = 0x8E0; // uint8
constexpr std::ptrdiff_t m_nKillCount = 0x8E1; // uint8
constexpr std::ptrdiff_t m_bMvpNoMusic = 0x8E2; // bool
constexpr std::ptrdiff_t m_eMvpReason = 0x8E4; // int32
constexpr std::ptrdiff_t m_iMusicKitID = 0x8E8; // int32
constexpr std::ptrdiff_t m_iMusicKitMVPs = 0x8EC; // int32
constexpr std::ptrdiff_t m_iMVPs = 0x8F0; // int32
constexpr std::ptrdiff_t m_nUpdateCounter = 0x8F4; // int32
constexpr std::ptrdiff_t m_flSmoothedPing = 0x8F8; // float32
constexpr std::ptrdiff_t m_lastHeldVoteTimer = 0xF9A0; // IntervalTimer
constexpr std::ptrdiff_t m_bShowHints = 0xF9B8; // bool
constexpr std::ptrdiff_t m_iNextTimeCheck = 0xF9BC; // int32
constexpr std::ptrdiff_t m_bJustDidTeamKill = 0xF9C0; // bool
constexpr std::ptrdiff_t m_bPunishForTeamKill = 0xF9C1; // bool
constexpr std::ptrdiff_t m_bGaveTeamDamageWarning = 0xF9C2; // bool
constexpr std::ptrdiff_t m_bGaveTeamDamageWarningThisRound = 0xF9C3; // bool
constexpr std::ptrdiff_t m_dblLastReceivedPacketPlatFloatTime = 0xF9C8; // float64
constexpr std::ptrdiff_t m_LastTeamDamageWarningTime = 0xF9D0; // GameTime_t
constexpr std::ptrdiff_t m_LastTimePlayerWasDisconnectedForPawnsRemove = 0xF9D4; // GameTime_t
constexpr std::ptrdiff_t m_nSuspiciousHitCount = 0xF9D8; // uint32
constexpr std::ptrdiff_t m_nNonSuspiciousHitStreak = 0xF9DC; // uint32
constexpr std::ptrdiff_t m_bFireBulletsSeedSynchronized = 0xFA81; // bool
}
// Parent: IEconItemInterface
// Field count: 13
@ -10354,10 +10274,6 @@ namespace cs2_dumper {
namespace CRuleEntity {
constexpr std::ptrdiff_t m_iszMaster = 0x790; // CUtlSymbolLarge
}
// Parent: CBaseCSGrenade
// Field count: 0
namespace CSensorGrenade {
}
// Parent: CBaseEntity
// Field count: 8
//
@ -10677,17 +10593,17 @@ namespace cs2_dumper {
// NetworkVarNames: m_bIsPlantingViaUse (bool)
// NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
namespace CC4 {
constexpr std::ptrdiff_t m_vecLastValidPlayerHeldPosition = 0xFA0; // Vector
constexpr std::ptrdiff_t m_vecLastValidDroppedPosition = 0xFAC; // Vector
constexpr std::ptrdiff_t m_bDoValidDroppedPositionCheck = 0xFB8; // bool
constexpr std::ptrdiff_t m_bStartedArming = 0xFB9; // bool
constexpr std::ptrdiff_t m_fArmedTime = 0xFBC; // GameTime_t
constexpr std::ptrdiff_t m_bBombPlacedAnimation = 0xFC0; // bool
constexpr std::ptrdiff_t m_bIsPlantingViaUse = 0xFC1; // bool
constexpr std::ptrdiff_t m_entitySpottedState = 0xFC8; // EntitySpottedState_t
constexpr std::ptrdiff_t m_nSpotRules = 0xFE0; // int32
constexpr std::ptrdiff_t m_bPlayedArmingBeeps = 0xFE4; // bool[7]
constexpr std::ptrdiff_t m_bBombPlanted = 0xFEB; // bool
constexpr std::ptrdiff_t m_vecLastValidPlayerHeldPosition = 0xF98; // Vector
constexpr std::ptrdiff_t m_vecLastValidDroppedPosition = 0xFA4; // Vector
constexpr std::ptrdiff_t m_bDoValidDroppedPositionCheck = 0xFB0; // bool
constexpr std::ptrdiff_t m_bStartedArming = 0xFB1; // bool
constexpr std::ptrdiff_t m_fArmedTime = 0xFB4; // GameTime_t
constexpr std::ptrdiff_t m_bBombPlacedAnimation = 0xFB8; // bool
constexpr std::ptrdiff_t m_bIsPlantingViaUse = 0xFB9; // bool
constexpr std::ptrdiff_t m_entitySpottedState = 0xFC0; // EntitySpottedState_t
constexpr std::ptrdiff_t m_nSpotRules = 0xFD8; // int32
constexpr std::ptrdiff_t m_bPlayedArmingBeeps = 0xFDC; // bool[7]
constexpr std::ptrdiff_t m_bBombPlanted = 0xFE3; // bool
}
// Parent: CHostageRescueZoneShim
// Field count: 0
@ -10782,10 +10698,6 @@ namespace cs2_dumper {
constexpr std::ptrdiff_t m_flClientLocalScale = 0x140; // float32
constexpr std::ptrdiff_t m_vRenderOrigin = 0x144; // Vector
}
// Parent: CCSWeaponBase
// Field count: 0
namespace CTablet {
}
// Parent: CPointEntity
// Field count: 7
namespace CTankTrainAI {
@ -10839,10 +10751,6 @@ namespace cs2_dumper {
// Field count: 0
namespace CWeaponSCAR20 {
}
// Parent: CBaseGrenade
// Field count: 0
namespace CTripWireFireProjectile {
}
// Parent: CFuncPlat
// Field count: 2
namespace CFuncPlatRot {

View File

@ -888,20 +888,20 @@
},
"CBaseCSGrenade": {
"fields": {
"m_bIsHeldByPlayer": 3953,
"m_bJumpThrow": 3955,
"m_bJustPulledPin": 3980,
"m_bPinPulled": 3954,
"m_bRedraw": 3952,
"m_bThrowAnimating": 3956,
"m_fDropTime": 3972,
"m_fPinPullTime": 3976,
"m_fThrowTime": 3960,
"m_flNextHoldFrac": 3988,
"m_flThrowStrength": 3964,
"m_flThrowStrengthApproach": 3968,
"m_hSwitchToWeaponAfterThrow": 3992,
"m_nNextHoldTick": 3984
"m_bIsHeldByPlayer": 3945,
"m_bJumpThrow": 3947,
"m_bJustPulledPin": 3972,
"m_bPinPulled": 3946,
"m_bRedraw": 3944,
"m_bThrowAnimating": 3948,
"m_fDropTime": 3964,
"m_fPinPullTime": 3968,
"m_fThrowTime": 3952,
"m_flNextHoldFrac": 3980,
"m_flThrowStrength": 3956,
"m_flThrowStrengthApproach": 3960,
"m_hSwitchToWeaponAfterThrow": 3984,
"m_nNextHoldTick": 3976
},
"metadata": [
{
@ -2753,16 +2753,6 @@
"metadata": [],
"parent": null
},
"CBreachCharge": {
"fields": {},
"metadata": [],
"parent": "CCSWeaponBase"
},
"CBreachChargeProjectile": {
"fields": {},
"metadata": [],
"parent": "CBaseGrenade"
},
"CBreakable": {
"fields": {
"m_CPropDataComponent": 1944,
@ -2920,16 +2910,6 @@
"metadata": [],
"parent": "CBaseModelEntity"
},
"CBumpMine": {
"fields": {},
"metadata": [],
"parent": "CCSWeaponBase"
},
"CBumpMineProjectile": {
"fields": {},
"metadata": [],
"parent": "CBaseGrenade"
},
"CBuoyancyHelper": {
"fields": {
"m_flFluidDensity": 28,
@ -2951,17 +2931,17 @@
},
"CC4": {
"fields": {
"m_bBombPlacedAnimation": 4032,
"m_bBombPlanted": 4075,
"m_bDoValidDroppedPositionCheck": 4024,
"m_bIsPlantingViaUse": 4033,
"m_bPlayedArmingBeeps": 4068,
"m_bStartedArming": 4025,
"m_entitySpottedState": 4040,
"m_fArmedTime": 4028,
"m_nSpotRules": 4064,
"m_vecLastValidDroppedPosition": 4012,
"m_vecLastValidPlayerHeldPosition": 4000
"m_bBombPlacedAnimation": 4024,
"m_bBombPlanted": 4067,
"m_bDoValidDroppedPositionCheck": 4016,
"m_bIsPlantingViaUse": 4025,
"m_bPlayedArmingBeeps": 4060,
"m_bStartedArming": 4017,
"m_entitySpottedState": 4032,
"m_fArmedTime": 4020,
"m_nSpotRules": 4056,
"m_vecLastValidDroppedPosition": 4004,
"m_vecLastValidPlayerHeldPosition": 3992
},
"metadata": [
{
@ -3302,195 +3282,196 @@
},
"CCSGameRules": {
"fields": {
"mTeamDMLastThinkTime": 3668,
"mTeamDMLastWinningTeamNumber": 3664,
"m_BtGlobalBlackboard": 5344,
"m_CTSpawnPoints": 3976,
"m_CTSpawnPointsMasterList": 3904,
"mTeamDMLastThinkTime": 3684,
"mTeamDMLastWinningTeamNumber": 3680,
"m_BtGlobalBlackboard": 5360,
"m_CTSpawnPoints": 3992,
"m_CTSpawnPointsMasterList": 3920,
"m_MatchDevice": 304,
"m_MinimapVerticalSectionHeights": 3264,
"m_RetakeRules": 5496,
"m_RetakeRules": 5512,
"m_TeamRespawnWaveTimes": 2980,
"m_TerroristSpawnPoints": 4000,
"m_TerroristSpawnPointsMasterList": 3928,
"m_TerroristSpawnPoints": 4016,
"m_TerroristSpawnPointsMasterList": 3944,
"m_arrProhibitedItemIndices": 2380,
"m_arrSelectedHostageSpawnIndices": 3464,
"m_arrTeamUniqueKillWeaponsMatch": 5904,
"m_arrSelectedHostageSpawnIndices": 3480,
"m_arrTeamUniqueKillWeaponsMatch": 5920,
"m_arrTournamentActiveCasterAccounts": 2580,
"m_bAllowWeaponSwitch": 4648,
"m_bAllowWeaponSwitch": 4664,
"m_bAnyHostageReached": 284,
"m_bBombDefused": 3809,
"m_bBombDefused": 3825,
"m_bBombDropped": 2604,
"m_bBombPlanted": 2605,
"m_bBuyTimeEnded": 3800,
"m_bBuyTimeEnded": 3816,
"m_bCTCantBuy": 2617,
"m_bCTTimeOutActive": 214,
"m_bCanDonateWeapons": 3735,
"m_bCompleteReset": 3493,
"m_bFirstConnected": 3492,
"m_bForceTeamChangeSilent": 3576,
"m_bCanDonateWeapons": 3751,
"m_bCompleteReset": 3509,
"m_bFirstConnected": 3508,
"m_bForceTeamChangeSilent": 3592,
"m_bFreezePeriod": 200,
"m_bGameRestart": 252,
"m_bHasHostageBeenTouched": 3416,
"m_bHasHostageBeenTouched": 3432,
"m_bHasMatchStarted": 308,
"m_bHasTriggeredRoundStartMusic": 5308,
"m_bHasTriggeredRoundStartMusic": 5324,
"m_bIsDroppingItems": 2376,
"m_bIsHltvActive": 2378,
"m_bIsQuestEligible": 2377,
"m_bIsQueuedMatchmaking": 288,
"m_bIsUnreservedGameServer": 4024,
"m_bIsUnreservedGameServer": 4040,
"m_bIsValveDS": 296,
"m_bLevelInitialized": 3428,
"m_bLoadingRoundBackupData": 3577,
"m_bLevelInitialized": 3444,
"m_bLoadingRoundBackupData": 3593,
"m_bLogoMap": 297,
"m_bMapHasBombTarget": 285,
"m_bMapHasBombZone": 3810,
"m_bMapHasBombZone": 3826,
"m_bMapHasBuyZone": 287,
"m_bMapHasRescueZone": 286,
"m_bMatchWaitingForResume": 233,
"m_bNeedToAskPlayersForContinueVote": 3532,
"m_bNoCTsKilled": 3733,
"m_bNoEnemiesKilled": 3734,
"m_bNoTerroristsKilled": 3732,
"m_bPickNewTeamsOnReset": 3494,
"m_bNeedToAskPlayersForContinueVote": 3548,
"m_bNoCTsKilled": 3749,
"m_bNoEnemiesKilled": 3750,
"m_bNoTerroristsKilled": 3748,
"m_bPickNewTeamsOnReset": 3510,
"m_bPlayAllStepSoundsOnServer": 298,
"m_bPlayedTeamIntroVO": 6060,
"m_bRespawningAllRespawnablePlayers": 3952,
"m_bRoundEndNoMusic": 6116,
"m_bRoundEndShowTimerDefend": 6072,
"m_bRoundTimeWarningTriggered": 4649,
"m_bScrambleTeamsOnRestart": 3495,
"m_bPlayedTeamIntroVO": 6076,
"m_bRespawningAllRespawnablePlayers": 3968,
"m_bRoundEndNoMusic": 6132,
"m_bRoundEndShowTimerDefend": 6088,
"m_bRoundTimeWarningTriggered": 4665,
"m_bScrambleTeamsOnRestart": 3511,
"m_bServerPaused": 212,
"m_bServerVoteOnReset": 3793,
"m_bServerVoteOnReset": 3809,
"m_bSpawnedTerrorHuntHeavy": 3296,
"m_bSwapTeamsOnRestart": 3496,
"m_bSwitchingTeamsAtRoundReset": 5309,
"m_bSwapTeamsOnRestart": 3512,
"m_bSwitchingTeamsAtRoundReset": 5325,
"m_bTCantBuy": 2616,
"m_bTargetBombed": 3808,
"m_bTeamIntroPeriod": 6052,
"m_bTeamLastKillUsedUniqueWeaponMatch": 6000,
"m_bTargetBombed": 3824,
"m_bTeamIntroPeriod": 6068,
"m_bTeamLastKillUsedUniqueWeaponMatch": 6016,
"m_bTechnicalTimeOut": 232,
"m_bTerroristTimeOutActive": 213,
"m_bVoiceWonMatchBragFired": 3708,
"m_bVoteCalled": 3792,
"m_bVoiceWonMatchBragFired": 3724,
"m_bVoteCalled": 3808,
"m_bWarmupPeriod": 201,
"m_eRoundEndReason": 6068,
"m_eRoundEndReason": 6084,
"m_eRoundWinReason": 2612,
"m_endMatchOnRoundReset": 3440,
"m_endMatchOnThink": 3441,
"m_fAccumulatedRoundOffDamage": 4664,
"m_fAutobalanceDisplayTime": 4028,
"m_fAvgPlayerRank": 3540,
"m_endMatchOnRoundReset": 3456,
"m_endMatchOnThink": 3457,
"m_fAccumulatedRoundOffDamage": 4680,
"m_fAutobalanceDisplayTime": 4044,
"m_fAvgPlayerRank": 3556,
"m_fMatchStartTime": 240,
"m_fNextUpdateTeamClanNamesTime": 4656,
"m_fNextUpdateTeamClanNamesTime": 4672,
"m_fRoundStartTime": 244,
"m_fTeamIntroPeriodEnd": 6056,
"m_fWarmupNextChatNoticeTime": 3712,
"m_fTeamIntroPeriodEnd": 6072,
"m_fWarmupNextChatNoticeTime": 3728,
"m_fWarmupPeriodEnd": 204,
"m_fWarmupPeriodStart": 208,
"m_firstBloodTime": 3748,
"m_firstKillTime": 3740,
"m_firstBloodTime": 3764,
"m_firstKillTime": 3756,
"m_flCMMItemDropRevealEndTime": 2372,
"m_flCMMItemDropRevealStartTime": 2368,
"m_flCTSpawnPointUsedTime": 3960,
"m_flCTSpawnPointUsedTime": 3976,
"m_flCTTimeOutRemaining": 220,
"m_flGameStartTime": 256,
"m_flIntermissionEndTime": 3424,
"m_flIntermissionStartTime": 3420,
"m_flLastPerfSampleTime": 22528,
"m_flLastThinkTime": 4660,
"m_flMatchInfoDecidedTime": 3636,
"m_flNextHostageAnnouncement": 3728,
"m_flIntermissionEndTime": 3440,
"m_flIntermissionStartTime": 3436,
"m_flLastPerfSampleTime": 22544,
"m_flLastThinkTime": 4676,
"m_flMatchInfoDecidedTime": 3652,
"m_flNextHostageAnnouncement": 3744,
"m_flNextRespawnWave": 3108,
"m_flRestartRoundTime": 248,
"m_flTeamDMLastAnnouncementTime": 3672,
"m_flTerroristSpawnPointUsedTime": 3968,
"m_flTeamDMLastAnnouncementTime": 3688,
"m_flTerroristSpawnPointUsedTime": 3984,
"m_flTerroristTimeOutRemaining": 216,
"m_flVoteCheckThrottle": 3796,
"m_flVoteCheckThrottle": 3812,
"m_gamePhase": 264,
"m_hPlayerResource": 5488,
"m_hostageWasInjured": 3776,
"m_hostageWasKilled": 3777,
"m_iAccountCT": 3680,
"m_iAccountTerrorist": 3676,
"m_iFreezeTime": 3444,
"m_hPlayerResource": 5504,
"m_hostageWasInjured": 3792,
"m_hostageWasKilled": 3793,
"m_iAccountCT": 3696,
"m_iAccountTerrorist": 3692,
"m_iFreezeTime": 3460,
"m_iHostagesRemaining": 280,
"m_iHostagesRescued": 3720,
"m_iHostagesTouched": 3724,
"m_iLoserBonusMostRecentTeam": 3700,
"m_iHostagesRescued": 3736,
"m_iHostagesTouched": 3740,
"m_iLoserBonusMostRecentTeam": 3716,
"m_iMatchStats_PlayersAlive_CT": 2740,
"m_iMatchStats_PlayersAlive_T": 2860,
"m_iMatchStats_RoundResults": 2620,
"m_iMaxNumCTs": 3696,
"m_iMaxNumTerrorists": 3692,
"m_iNextCTSpawnPoint": 3956,
"m_iNextTerroristSpawnPoint": 3964,
"m_iNumCT": 3452,
"m_iNumConsecutiveCTLoses": 3384,
"m_iNumConsecutiveTerroristLoses": 3388,
"m_iNumSpawnableCT": 3460,
"m_iNumSpawnableTerrorist": 3456,
"m_iNumTerrorist": 3448,
"m_iRoundEndFunFactData1": 6092,
"m_iRoundEndFunFactData2": 6096,
"m_iRoundEndFunFactData3": 6100,
"m_iRoundEndFunFactPlayerSlot": 6088,
"m_iRoundEndLegacy": 6120,
"m_iRoundEndPlayerCount": 6112,
"m_iRoundEndTimerTime": 6076,
"m_iRoundEndWinnerTeam": 6064,
"m_iRoundStartRoundNumber": 6128,
"m_iMaxNumCTs": 3712,
"m_iMaxNumTerrorists": 3708,
"m_iNextCTSpawnPoint": 3972,
"m_iNextTerroristSpawnPoint": 3980,
"m_iNumCT": 3468,
"m_iNumConsecutiveCTLoses": 3396,
"m_iNumConsecutiveTerroristLoses": 3400,
"m_iNumSpawnableCT": 3476,
"m_iNumSpawnableTerrorist": 3472,
"m_iNumTerrorist": 3464,
"m_iRoundEndFunFactData1": 6108,
"m_iRoundEndFunFactData2": 6112,
"m_iRoundEndFunFactData3": 6116,
"m_iRoundEndFunFactPlayerSlot": 6104,
"m_iRoundEndLegacy": 6136,
"m_iRoundEndPlayerCount": 6128,
"m_iRoundEndTimerTime": 6092,
"m_iRoundEndWinnerTeam": 6080,
"m_iRoundStartRoundNumber": 6144,
"m_iRoundTime": 236,
"m_iRoundWinStatus": 2608,
"m_iSpawnPointCount_CT": 3688,
"m_iSpawnPointCount_Terrorist": 3684,
"m_iSpawnPointCount_CT": 3704,
"m_iSpawnPointCount_Terrorist": 3700,
"m_iSpectatorSlotCount": 300,
"m_iTotalRoundsPlayed": 3432,
"m_iUnBalancedRounds": 3436,
"m_nCTTeamIntroVariant": 6048,
"m_iTotalRoundsPlayed": 3448,
"m_iUnBalancedRounds": 3452,
"m_nCTTeamIntroVariant": 6064,
"m_nCTTimeOuts": 228,
"m_nEndMatchMapGroupVoteOptions": 3340,
"m_nEndMatchMapGroupVoteTypes": 3300,
"m_nEndMatchMapVoteWinner": 3380,
"m_nEndMatchTiedVotes": 3504,
"m_nEndMatchMapGroupVoteOptions": 3352,
"m_nEndMatchMapGroupVoteTypes": 3312,
"m_nEndMatchMapVoteWinner": 3392,
"m_nEndMatchTiedVotes": 3520,
"m_nHalloweenMaskListSeed": 2600,
"m_nLastFreezeEndBeep": 3804,
"m_nMatchAbortedEarlyReason": 5304,
"m_nMatchEndCount": 6040,
"m_nMatchInfoShowType": 3632,
"m_nLastFreezeEndBeep": 3820,
"m_nMatchAbortedEarlyReason": 5320,
"m_nMatchEndCount": 6056,
"m_nMatchInfoShowType": 3648,
"m_nNextMapInMapgroup": 312,
"m_nOvertimePlaying": 276,
"m_nQueuedMatchmakingMode": 292,
"m_nRoundEndCount": 6124,
"m_nRoundStartCount": 6132,
"m_nRoundEndCount": 6140,
"m_nRoundStartCount": 6148,
"m_nRoundsPlayedThisPhase": 272,
"m_nServerQuestID": 3236,
"m_nShorthandedBonusLastEvalRound": 4668,
"m_nSpawnPointsRandomSeed": 3488,
"m_nTTeamIntroVariant": 6044,
"m_nShorthandedBonusLastEvalRound": 4684,
"m_nSpawnPointsRandomSeed": 3504,
"m_nTTeamIntroVariant": 6060,
"m_nTerroristTimeOuts": 224,
"m_nTournamentPredictionsPct": 2364,
"m_numBestOfMaps": 2596,
"m_numQueuedMatchmakingAccounts": 3536,
"m_numSpectatorsCountMax": 3556,
"m_numSpectatorsCountMaxLnk": 3564,
"m_numSpectatorsCountMaxTV": 3560,
"m_numTotalTournamentDrops": 3552,
"m_pGameModeRules": 5336,
"m_pQueuedMatchmakingReservationString": 3544,
"m_phaseChangeAnnouncementTime": 4652,
"m_sRoundEndFunFactToken": 6080,
"m_sRoundEndMessage": 6104,
"m_numQueuedMatchmakingAccounts": 3552,
"m_numSpectatorsCountMax": 3572,
"m_numSpectatorsCountMaxLnk": 3580,
"m_numSpectatorsCountMaxTV": 3576,
"m_numTotalTournamentDrops": 3568,
"m_pGameModeRules": 5352,
"m_pQueuedMatchmakingReservationString": 3560,
"m_phaseChangeAnnouncementTime": 4668,
"m_sRoundEndFunFactToken": 6096,
"m_sRoundEndMessage": 6120,
"m_szMatchStatTxt": 1340,
"m_szTournamentEventName": 316,
"m_szTournamentEventStage": 828,
"m_szTournamentPredictionsTxt": 1852,
"m_timeUntilNextPhaseStarts": 260,
"m_tmNextPeriodicThink": 3704,
"m_tmNextPeriodicThink": 3720,
"m_totalRoundsPlayed": 268,
"m_ullLocalMatchID": 3304,
"m_vMinimapMaxs": 3252,
"m_vMinimapMins": 3240,
"m_vecMainCTSpawnPos": 3888
"m_vecMainCTSpawnPos": 3904
},
"metadata": [
{
@ -4108,47 +4089,48 @@
},
"CCSPlayerController": {
"fields": {
"m_DesiredObserverMode": 2204,
"m_LastTeamDamageWarningTime": 63944,
"m_LastTimePlayerWasDisconnectedForPawnsRemove": 63948,
"m_bAbandonAllowsSurrender": 2166,
"m_bAbandonOffersInstantSurrender": 2167,
"m_DesiredObserverMode": 2212,
"m_LastTeamDamageWarningTime": 63952,
"m_LastTimePlayerWasDisconnectedForPawnsRemove": 63956,
"m_bAbandonAllowsSurrender": 2170,
"m_bAbandonOffersInstantSurrender": 2171,
"m_bAttemptedToGetColor": 1989,
"m_bCanControlObservedBot": 2192,
"m_bCannotBeKicked": 2164,
"m_bControllingBot": 2184,
"m_bDisconnection1MinWarningPrinted": 2168,
"m_bEverFullyConnected": 2165,
"m_bCanControlObservedBot": 2200,
"m_bCannotBeKicked": 2168,
"m_bControllingBot": 2192,
"m_bDisconnection1MinWarningPrinted": 2172,
"m_bEverFullyConnected": 2169,
"m_bEverPlayedOnTeam": 1988,
"m_bFireBulletsSeedSynchronized": 64121,
"m_bGaveTeamDamageWarning": 63930,
"m_bGaveTeamDamageWarningThisRound": 63931,
"m_bHasBeenControlledByPlayerThisRound": 2186,
"m_bFireBulletsSeedSynchronized": 64129,
"m_bGaveTeamDamageWarning": 63938,
"m_bGaveTeamDamageWarningThisRound": 63939,
"m_bHasBeenControlledByPlayerThisRound": 2194,
"m_bHasCommunicationAbuseMute": 1964,
"m_bHasControlledBotThisRound": 2185,
"m_bHasControlledBotThisRound": 2193,
"m_bHasSeenJoinGame": 1998,
"m_bInSwitchTeam": 1997,
"m_bJustBecameSpectator": 1999,
"m_bJustDidTeamKill": 63928,
"m_bMvpNoMusic": 2266,
"m_bPawnHasDefuser": 2224,
"m_bPawnHasHelmet": 2225,
"m_bPawnIsAlive": 2212,
"m_bPunishForTeamKill": 63929,
"m_bJustDidTeamKill": 63936,
"m_bMvpNoMusic": 2274,
"m_bPawnHasDefuser": 2232,
"m_bPawnHasHelmet": 2233,
"m_bPawnIsAlive": 2220,
"m_bPunishForTeamKill": 63937,
"m_bRemoveAllItemsOnNextRoundReset": 2001,
"m_bScoreReported": 2169,
"m_bShowHints": 63920,
"m_bScoreReported": 2173,
"m_bShowHints": 63928,
"m_bSwitchTeamsOnNextRoundReset": 2000,
"m_bTeamChanged": 1996,
"m_dblLastReceivedPacketPlatFloatTime": 63936,
"m_eMvpReason": 2268,
"m_dblLastReceivedPacketPlatFloatTime": 63944,
"m_eMvpReason": 2276,
"m_eNetworkDisconnectionReason": 2164,
"m_flForceTeamTime": 1980,
"m_flLastJoinTeamTime": 2004,
"m_flSmoothedPing": 2288,
"m_hDesiredObserverTarget": 2208,
"m_hObserverPawn": 2200,
"m_hOriginalControllerOfCurrentPawn": 2240,
"m_hPlayerPawn": 2196,
"m_flSmoothedPing": 2296,
"m_hDesiredObserverTarget": 2216,
"m_hObserverPawn": 2208,
"m_hOriginalControllerOfCurrentPawn": 2248,
"m_hPlayerPawn": 2204,
"m_iCoachingTeam": 2048,
"m_iCompTeammateColor": 1984,
"m_iCompetitiveRankType": 2080,
@ -4158,40 +4140,40 @@
"m_iCompetitiveRankingPredicted_Win": 2084,
"m_iCompetitiveWins": 2076,
"m_iDraftIndex": 2152,
"m_iMVPs": 2280,
"m_iMusicKitID": 2272,
"m_iMusicKitMVPs": 2276,
"m_iNextTimeCheck": 63924,
"m_iPawnArmor": 2220,
"m_iPawnBotDifficulty": 2236,
"m_iPawnHealth": 2216,
"m_iPawnLifetimeEnd": 2232,
"m_iPawnLifetimeStart": 2228,
"m_iMVPs": 2288,
"m_iMusicKitID": 2280,
"m_iMusicKitMVPs": 2284,
"m_iNextTimeCheck": 63932,
"m_iPawnArmor": 2228,
"m_iPawnBotDifficulty": 2244,
"m_iPawnHealth": 2224,
"m_iPawnLifetimeEnd": 2240,
"m_iPawnLifetimeStart": 2236,
"m_iPendingTeamNum": 1976,
"m_iPing": 1960,
"m_iRoundScore": 2248,
"m_iRoundsWon": 2252,
"m_iScore": 2244,
"m_iRoundScore": 2256,
"m_iRoundsWon": 2260,
"m_iScore": 2252,
"m_iTeammatePreferredColor": 1992,
"m_lastHeldVoteTimer": 63896,
"m_lastHeldVoteTimer": 63904,
"m_msQueuedModeDisconnectionTimestamp": 2156,
"m_nBotsControlledThisRound": 2188,
"m_nDisconnectionTick": 2172,
"m_nBotsControlledThisRound": 2196,
"m_nDisconnectionTick": 2176,
"m_nEndMatchNextMapVote": 2096,
"m_nFirstKill": 2264,
"m_nKillCount": 2265,
"m_nNonSuspiciousHitStreak": 63956,
"m_nPawnCharacterDefIndex": 2226,
"m_nFirstKill": 2272,
"m_nKillCount": 2273,
"m_nNonSuspiciousHitStreak": 63964,
"m_nPawnCharacterDefIndex": 2234,
"m_nPlayerDominated": 2056,
"m_nPlayerDominatingMe": 2064,
"m_nQuestProgressReason": 2104,
"m_nSuspiciousHitCount": 63952,
"m_nUpdateCounter": 2284,
"m_nSuspiciousHitCount": 63960,
"m_nUpdateCounter": 2292,
"m_pActionTrackingServices": 1944,
"m_pDamageServices": 1952,
"m_pInGameMoneyServices": 1928,
"m_pInventoryServices": 1936,
"m_recentKillQueue": 2256,
"m_recentKillQueue": 2264,
"m_szClan": 2008,
"m_szClanName": 2016,
"m_szCrosshairCodes": 1968,
@ -5314,10 +5296,10 @@
},
"CCSPlayer_ActionTrackingServices": {
"fields": {
"m_bIsRescuing": 556,
"m_hLastWeaponBeforeC4AutoSwitch": 512,
"m_weaponPurchasesThisMatch": 560,
"m_weaponPurchasesThisRound": 648
"m_bIsRescuing": 580,
"m_hLastWeaponBeforeC4AutoSwitch": 536,
"m_weaponPurchasesThisMatch": 584,
"m_weaponPurchasesThisRound": 672
},
"metadata": [
{
@ -5842,71 +5824,70 @@
},
"CCSWeaponBase": {
"fields": {
"m_IronSightController": 3896,
"m_OnPlayerPickup": 3664,
"m_bBurstMode": 3752,
"m_bCanBePickedUp": 3816,
"m_bDroppedNearBuyZone": 3788,
"m_bFireOnEmpty": 3660,
"m_bFiredOutOfAmmoEvent": 3886,
"m_bInReload": 3764,
"m_bIsHauledBack": 3772,
"m_IronSightController": 3888,
"m_OnPlayerPickup": 3656,
"m_bBurstMode": 3744,
"m_bCanBePickedUp": 3808,
"m_bDroppedNearBuyZone": 3780,
"m_bFireOnEmpty": 3652,
"m_bFiredOutOfAmmoEvent": 3878,
"m_bInReload": 3756,
"m_bIsHauledBack": 3764,
"m_bPlayerAmmoStockOnPickup": 3600,
"m_bReloadVisuallyComplete": 3765,
"m_bReloadsWithClips": 3624,
"m_bReloadVisuallyComplete": 3757,
"m_bReloadsWithClips": 3620,
"m_bRemoveable": 3488,
"m_bRequireUseToTouch": 3601,
"m_bSilencerOn": 3773,
"m_bUseCanOverrideNextOwnerTouchTime": 3817,
"m_bWasOwnedByCT": 3884,
"m_bWasOwnedByTerrorist": 3885,
"m_donated": 3876,
"m_bSilencerOn": 3765,
"m_bUseCanOverrideNextOwnerTouchTime": 3809,
"m_bWasOwnedByCT": 3876,
"m_bWasOwnedByTerrorist": 3877,
"m_donated": 3868,
"m_ePlayerFireEvent": 3508,
"m_ePlayerFireEventAttackType": 3512,
"m_fAccuracyPenalty": 3728,
"m_fAccuracySmoothedForZoom": 3736,
"m_fLastShotTime": 3880,
"m_fScopeZoomEndTime": 3740,
"m_flDroppedAtTime": 3768,
"m_fAccuracyPenalty": 3720,
"m_fAccuracySmoothedForZoom": 3728,
"m_fLastShotTime": 3872,
"m_fScopeZoomEndTime": 3732,
"m_flDroppedAtTime": 3760,
"m_flFireSequenceStartTime": 3496,
"m_flLastAccuracyUpdateTime": 3732,
"m_flLastDeployTime": 3612,
"m_flLastLOSTraceFailureTime": 3924,
"m_flLastAccuracyUpdateTime": 3724,
"m_flLastLOSTraceFailureTime": 3916,
"m_flLastTimeInAir": 3608,
"m_flNextAttackRenderTimeOffset": 3792,
"m_flPostponeFireReadyFrac": 3760,
"m_flRecoilIndex": 3748,
"m_flTimeSilencerSwitchComplete": 3776,
"m_flTimeWeaponIdle": 3656,
"m_flTurningInaccuracy": 3724,
"m_flTurningInaccuracyDelta": 3708,
"m_flWatTickOffset": 3932,
"m_flNextAttackRenderTimeOffset": 3784,
"m_flPostponeFireReadyFrac": 3752,
"m_flRecoilIndex": 3740,
"m_flTimeSilencerSwitchComplete": 3768,
"m_flTimeWeaponIdle": 3648,
"m_flTurningInaccuracy": 3716,
"m_flTurningInaccuracyDelta": 3700,
"m_flWatTickOffset": 3924,
"m_hCurrentThirdPersonSequence": 3552,
"m_hPrevOwner": 3836,
"m_iIronSightMode": 3920,
"m_iMostRecentTeamNumber": 3784,
"m_iNumEmptyAttacks": 3928,
"m_iOriginalTeamNumber": 3780,
"m_iRecoilIndex": 3744,
"m_hPrevOwner": 3828,
"m_iIronSightMode": 3912,
"m_iMostRecentTeamNumber": 3776,
"m_iNumEmptyAttacks": 3920,
"m_iOriginalTeamNumber": 3772,
"m_iRecoilIndex": 3736,
"m_iState": 3604,
"m_nDropTick": 3840,
"m_nDropTick": 3832,
"m_nFireSequenceStartTimeAck": 3504,
"m_nFireSequenceStartTimeChange": 3500,
"m_nLastEmptySoundCmdNum": 3616,
"m_nPostponeFireReadyTicks": 3756,
"m_nLastEmptySoundCmdNum": 3612,
"m_nPostponeFireReadyTicks": 3748,
"m_nSilencerBoneIndex": 3556,
"m_nViewModelIndex": 3620,
"m_nextOwnerTouchTime": 3820,
"m_nextPrevOwnerTouchTime": 3824,
"m_nextPrevOwnerUseTime": 3832,
"m_numRemoveUnownedWeaponThink": 3888,
"m_nViewModelIndex": 3616,
"m_nextOwnerTouchTime": 3812,
"m_nextPrevOwnerTouchTime": 3816,
"m_nextPrevOwnerUseTime": 3824,
"m_numRemoveUnownedWeaponThink": 3880,
"m_seqFirePrimary": 3520,
"m_seqFireSecondary": 3524,
"m_seqIdle": 3516,
"m_thirdPersonFireSequences": 3528,
"m_thirdPersonSequences": 3560,
"m_vecTurningInaccuracyEyeDirLast": 3712,
"m_weaponMode": 3704
"m_vecTurningInaccuracyEyeDirLast": 3704,
"m_weaponMode": 3696
},
"metadata": [
{
@ -6063,15 +6044,15 @@
},
"CCSWeaponBaseGun": {
"fields": {
"m_bNeedsBoltAction": 3973,
"m_bSkillBoltInterruptAvailable": 3976,
"m_bSkillBoltLiftedFireKey": 3977,
"m_bSkillReloadAvailable": 3974,
"m_bSkillReloadLiftedReloadKey": 3975,
"m_iBurstShotsRemaining": 3956,
"m_inPrecache": 3972,
"m_silencedModelIndex": 3968,
"m_zoomLevel": 3952
"m_bNeedsBoltAction": 3965,
"m_bSkillBoltInterruptAvailable": 3968,
"m_bSkillBoltLiftedFireKey": 3969,
"m_bSkillReloadAvailable": 3966,
"m_bSkillReloadLiftedReloadKey": 3967,
"m_iBurstShotsRemaining": 3948,
"m_inPrecache": 3964,
"m_silencedModelIndex": 3960,
"m_zoomLevel": 3944
},
"metadata": [
{
@ -9154,30 +9135,6 @@
"metadata": [],
"parent": "CBaseEntity"
},
"CFists": {
"fields": {
"m_bDelayedHardPunchIncoming": 3972,
"m_bDestroyAfterTaunt": 3973,
"m_bPlayingUninterruptableAct": 3952,
"m_bRestorePrevWep": 3960,
"m_hWeaponBeforePrevious": 3964,
"m_hWeaponPrevious": 3968,
"m_nUninterruptableActivity": 3956
},
"metadata": [
{
"name": "m_bPlayingUninterruptableAct",
"type": "NetworkVarNames",
"type_name": "bool"
},
{
"name": "m_nUninterruptableActivity",
"type": "NetworkVarNames",
"type_name": "PlayerAnimEvent_t"
}
],
"parent": "CCSWeaponBase"
},
"CFlashbang": {
"fields": {},
"metadata": [],
@ -10857,7 +10814,7 @@
},
"CKnife": {
"fields": {
"m_bFirstAttack": 3952
"m_bFirstAttack": 3944
},
"metadata": [
{
@ -11876,11 +11833,6 @@
"metadata": [],
"parent": "CLogicalEntity"
},
"CMelee": {
"fields": {},
"metadata": [],
"parent": "CCSWeaponBase"
},
"CMessage": {
"fields": {
"m_MessageAttenuation": 1260,
@ -15177,20 +15129,6 @@
"metadata": [],
"parent": "CBaseEntity"
},
"CSensorGrenade": {
"fields": {},
"metadata": [],
"parent": "CBaseCSGrenade"
},
"CSensorGrenadeProjectile": {
"fields": {
"m_fExpireTime": 2896,
"m_fNextDetectPlayerSound": 2900,
"m_hDisplayGrenade": 2904
},
"metadata": [],
"parent": "CBaseCSGrenadeProjectile"
},
"CServerOnlyEntity": {
"fields": {},
"metadata": [],
@ -15928,11 +15866,6 @@
],
"parent": "CBaseModelEntity"
},
"CTablet": {
"fields": {},
"metadata": [],
"parent": "CCSWeaponBase"
},
"CTakeDamageInfoAPI": {
"fields": {},
"metadata": [
@ -16583,11 +16516,6 @@
"metadata": [],
"parent": "CBaseTrigger"
},
"CTriggerTripWire": {
"fields": {},
"metadata": [],
"parent": "CBaseTrigger"
},
"CTriggerVolume": {
"fields": {
"m_hFilter": 1944,
@ -16596,16 +16524,6 @@
"metadata": [],
"parent": "CBaseModelEntity"
},
"CTripWireFire": {
"fields": {},
"metadata": [],
"parent": "CBaseCSGrenade"
},
"CTripWireFireProjectile": {
"fields": {},
"metadata": [],
"parent": "CBaseGrenade"
},
"CVoteController": {
"fields": {
"m_VoteOptions": 1656,
@ -16669,8 +16587,8 @@
},
"CWeaponBaseItem": {
"fields": {
"m_SequenceCompleteTimer": 3952,
"m_bRedraw": 3976
"m_SequenceCompleteTimer": 3944,
"m_bRedraw": 3968
},
"metadata": [
{
@ -16816,25 +16734,10 @@
"metadata": [],
"parent": "CCSWeaponBase"
},
"CWeaponShield": {
"fields": {
"m_flBulletDamageAbsorbed": 3984,
"m_flDisplayHealth": 3992,
"m_flLastBulletHitSoundTime": 3988
},
"metadata": [
{
"name": "m_flDisplayHealth",
"type": "NetworkVarNames",
"type_name": "float"
}
],
"parent": "CCSWeaponBaseGun"
},
"CWeaponTaser": {
"fields": {
"m_fFireTime": 3984,
"m_nLastAttackTick": 3988
"m_fFireTime": 3976,
"m_nLastAttackTick": 3980
},
"metadata": [
{
@ -16865,11 +16768,6 @@
"metadata": [],
"parent": "CCSWeaponBase"
},
"CWeaponZoneRepulsor": {
"fields": {},
"metadata": [],
"parent": "CCSWeaponBaseGun"
},
"CWorld": {
"fields": {},
"metadata": [],
@ -17749,24 +17647,16 @@
"CSPlayerBlockingUseAction_t": {
"alignment": 4,
"members": {
"k_CSPlayerBlockingUseAction_CancelingSpawnRappelling": 12,
"k_CSPlayerBlockingUseAction_DefusingDefault": 1,
"k_CSPlayerBlockingUseAction_DefusingWithKit": 2,
"k_CSPlayerBlockingUseAction_EquippingContract": 8,
"k_CSPlayerBlockingUseAction_EquippingExoJump": 13,
"k_CSPlayerBlockingUseAction_EquippingHeavyArmor": 7,
"k_CSPlayerBlockingUseAction_EquippingParachute": 6,
"k_CSPlayerBlockingUseAction_EquippingTabletUpgrade": 9,
"k_CSPlayerBlockingUseAction_EquippingHeavyArmor": 5,
"k_CSPlayerBlockingUseAction_HostageDropping": 4,
"k_CSPlayerBlockingUseAction_HostageGrabbing": 3,
"k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup": 15,
"k_CSPlayerBlockingUseAction_MapLongUseEntity_Place": 16,
"k_CSPlayerBlockingUseAction_MaxCount": 17,
"k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup": 7,
"k_CSPlayerBlockingUseAction_MapLongUseEntity_Place": 8,
"k_CSPlayerBlockingUseAction_MaxCount": 9,
"k_CSPlayerBlockingUseAction_None": 0,
"k_CSPlayerBlockingUseAction_OpeningSafe": 5,
"k_CSPlayerBlockingUseAction_PayingToOpenDoor": 11,
"k_CSPlayerBlockingUseAction_PickingUpBumpMine": 14,
"k_CSPlayerBlockingUseAction_TakingOffHeavyArmor": 10
"k_CSPlayerBlockingUseAction_TakingOffHeavyArmor": 6
},
"type": "uint32"
},
@ -17829,26 +17719,19 @@
"CSWeaponType": {
"alignment": 4,
"members": {
"WEAPONTYPE_BREACHCHARGE": 13,
"WEAPONTYPE_BUMPMINE": 14,
"WEAPONTYPE_C4": 7,
"WEAPONTYPE_EQUIPMENT": 10,
"WEAPONTYPE_FISTS": 12,
"WEAPONTYPE_GRENADE": 9,
"WEAPONTYPE_KNIFE": 0,
"WEAPONTYPE_MACHINEGUN": 6,
"WEAPONTYPE_MELEE": 16,
"WEAPONTYPE_PISTOL": 1,
"WEAPONTYPE_RIFLE": 3,
"WEAPONTYPE_SHIELD": 17,
"WEAPONTYPE_SHOTGUN": 4,
"WEAPONTYPE_SNIPER_RIFLE": 5,
"WEAPONTYPE_STACKABLEITEM": 11,
"WEAPONTYPE_SUBMACHINEGUN": 2,
"WEAPONTYPE_TABLET": 15,
"WEAPONTYPE_TASER": 8,
"WEAPONTYPE_UNKNOWN": 19,
"WEAPONTYPE_ZONE_REPULSOR": 18
"WEAPONTYPE_UNKNOWN": 12
},
"type": "uint32"
},
@ -18248,10 +18131,8 @@
"GRENADE_TYPE_EXPLOSIVE": 0,
"GRENADE_TYPE_FIRE": 2,
"GRENADE_TYPE_FLASH": 1,
"GRENADE_TYPE_SENSOR": 5,
"GRENADE_TYPE_SMOKE": 4,
"GRENADE_TYPE_SNOWBALL": 6,
"GRENADE_TYPE_TOTAL": 7
"GRENADE_TYPE_TOTAL": 5
},
"type": "uint32"
},

View File

@ -1,12 +1,12 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]
pub mod cs2_dumper {
pub mod schemas {
// Module: server.dll
// Class count: 653
// Class count: 639
// Enum count: 139
pub mod server_dll {
// Alignment: 4
@ -503,7 +503,7 @@ pub mod cs2_dumper {
TrainVelocity_EaseInEaseOut = 0x2
}
// Alignment: 4
// Member count: 20
// Member count: 13
#[repr(u32)]
pub enum CSWeaponType {
WEAPONTYPE_KNIFE = 0x0,
@ -518,14 +518,7 @@ pub mod cs2_dumper {
WEAPONTYPE_GRENADE = 0x9,
WEAPONTYPE_EQUIPMENT = 0xA,
WEAPONTYPE_STACKABLEITEM = 0xB,
WEAPONTYPE_FISTS = 0xC,
WEAPONTYPE_BREACHCHARGE = 0xD,
WEAPONTYPE_BUMPMINE = 0xE,
WEAPONTYPE_TABLET = 0xF,
WEAPONTYPE_MELEE = 0x10,
WEAPONTYPE_SHIELD = 0x11,
WEAPONTYPE_ZONE_REPULSOR = 0x12,
WEAPONTYPE_UNKNOWN = 0x13
WEAPONTYPE_UNKNOWN = 0xC
}
// Alignment: 4
// Member count: 3
@ -786,7 +779,7 @@ pub mod cs2_dumper {
eCount = 0x2
}
// Alignment: 4
// Member count: 18
// Member count: 10
#[repr(u32)]
pub enum CSPlayerBlockingUseAction_t {
k_CSPlayerBlockingUseAction_None = 0x0,
@ -794,19 +787,11 @@ pub mod cs2_dumper {
k_CSPlayerBlockingUseAction_DefusingWithKit = 0x2,
k_CSPlayerBlockingUseAction_HostageGrabbing = 0x3,
k_CSPlayerBlockingUseAction_HostageDropping = 0x4,
k_CSPlayerBlockingUseAction_OpeningSafe = 0x5,
k_CSPlayerBlockingUseAction_EquippingParachute = 0x6,
k_CSPlayerBlockingUseAction_EquippingHeavyArmor = 0x7,
k_CSPlayerBlockingUseAction_EquippingContract = 0x8,
k_CSPlayerBlockingUseAction_EquippingTabletUpgrade = 0x9,
k_CSPlayerBlockingUseAction_TakingOffHeavyArmor = 0xA,
k_CSPlayerBlockingUseAction_PayingToOpenDoor = 0xB,
k_CSPlayerBlockingUseAction_CancelingSpawnRappelling = 0xC,
k_CSPlayerBlockingUseAction_EquippingExoJump = 0xD,
k_CSPlayerBlockingUseAction_PickingUpBumpMine = 0xE,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup = 0xF,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Place = 0x10,
k_CSPlayerBlockingUseAction_MaxCount = 0x11
k_CSPlayerBlockingUseAction_EquippingHeavyArmor = 0x5,
k_CSPlayerBlockingUseAction_TakingOffHeavyArmor = 0x6,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Pickup = 0x7,
k_CSPlayerBlockingUseAction_MapLongUseEntity_Place = 0x8,
k_CSPlayerBlockingUseAction_MaxCount = 0x9
}
// Alignment: 4
// Member count: 3
@ -1575,7 +1560,7 @@ pub mod cs2_dumper {
eDrop = 0x2
}
// Alignment: 4
// Member count: 8
// Member count: 6
#[repr(u32)]
pub enum GrenadeType_t {
GRENADE_TYPE_EXPLOSIVE = 0x0,
@ -1583,9 +1568,7 @@ pub mod cs2_dumper {
GRENADE_TYPE_FIRE = 0x2,
GRENADE_TYPE_DECOY = 0x3,
GRENADE_TYPE_SMOKE = 0x4,
GRENADE_TYPE_SENSOR = 0x5,
GRENADE_TYPE_SNOWBALL = 0x6,
GRENADE_TYPE_TOTAL = 0x7
GRENADE_TYPE_TOTAL = 0x5
}
// Alignment: 4
// Member count: 2
@ -1864,21 +1847,6 @@ pub mod cs2_dumper {
pub const fog: usize = 0x20; // fogparams_t
pub const m_nWorldGroupID: usize = 0x88; // WorldGroupId_t
}
// Parent: CCSWeaponBase
// Field count: 7
//
// Metadata:
// NetworkVarNames: m_bPlayingUninterruptableAct (bool)
// NetworkVarNames: m_nUninterruptableActivity (PlayerAnimEvent_t)
pub mod CFists {
pub const m_bPlayingUninterruptableAct: usize = 0xF70; // bool
pub const m_nUninterruptableActivity: usize = 0xF74; // PlayerAnimEvent_t
pub const m_bRestorePrevWep: usize = 0xF78; // bool
pub const m_hWeaponBeforePrevious: usize = 0xF7C; // CHandle<CBasePlayerWeapon>
pub const m_hWeaponPrevious: usize = 0xF80; // CHandle<CBasePlayerWeapon>
pub const m_bDelayedHardPunchIncoming: usize = 0xF84; // bool
pub const m_bDestroyAfterTaunt: usize = 0xF85; // bool
}
// Parent: CBaseTrigger
// Field count: 1
pub mod CTriggerRemove {
@ -1904,10 +1872,6 @@ pub mod cs2_dumper {
pub mod CPushable {
}
// Parent: CBaseTrigger
// Field count: 0
pub mod CTriggerTripWire {
}
// Parent: CBaseTrigger
// Field count: 1
pub mod CTriggerMultiple {
pub const m_OnTrigger: usize = 0x960; // CEntityIOOutput
@ -2418,20 +2382,20 @@ pub mod cs2_dumper {
// NetworkVarNames: m_flNextHoldFrac (float)
// NetworkVarNames: m_hSwitchToWeaponAfterThrow (CHandle<CCSWeaponBase>)
pub mod CBaseCSGrenade {
pub const m_bRedraw: usize = 0xF70; // bool
pub const m_bIsHeldByPlayer: usize = 0xF71; // bool
pub const m_bPinPulled: usize = 0xF72; // bool
pub const m_bJumpThrow: usize = 0xF73; // bool
pub const m_bThrowAnimating: usize = 0xF74; // bool
pub const m_fThrowTime: usize = 0xF78; // GameTime_t
pub const m_flThrowStrength: usize = 0xF7C; // float32
pub const m_flThrowStrengthApproach: usize = 0xF80; // float32
pub const m_fDropTime: usize = 0xF84; // GameTime_t
pub const m_fPinPullTime: usize = 0xF88; // GameTime_t
pub const m_bJustPulledPin: usize = 0xF8C; // bool
pub const m_nNextHoldTick: usize = 0xF90; // GameTick_t
pub const m_flNextHoldFrac: usize = 0xF94; // float32
pub const m_hSwitchToWeaponAfterThrow: usize = 0xF98; // CHandle<CCSWeaponBase>
pub const m_bRedraw: usize = 0xF68; // bool
pub const m_bIsHeldByPlayer: usize = 0xF69; // bool
pub const m_bPinPulled: usize = 0xF6A; // bool
pub const m_bJumpThrow: usize = 0xF6B; // bool
pub const m_bThrowAnimating: usize = 0xF6C; // bool
pub const m_fThrowTime: usize = 0xF70; // GameTime_t
pub const m_flThrowStrength: usize = 0xF74; // float32
pub const m_flThrowStrengthApproach: usize = 0xF78; // float32
pub const m_fDropTime: usize = 0xF7C; // GameTime_t
pub const m_fPinPullTime: usize = 0xF80; // GameTime_t
pub const m_bJustPulledPin: usize = 0xF84; // bool
pub const m_nNextHoldTick: usize = 0xF88; // GameTick_t
pub const m_flNextHoldFrac: usize = 0xF8C; // float32
pub const m_hSwitchToWeaponAfterThrow: usize = 0xF90; // CHandle<CCSWeaponBase>
}
// Parent: CBaseModelEntity
// Field count: 1
@ -2601,8 +2565,8 @@ pub mod cs2_dumper {
// NetworkVarNames: m_SequenceCompleteTimer (CountdownTimer)
// NetworkVarNames: m_bRedraw (bool)
pub mod CWeaponBaseItem {
pub const m_SequenceCompleteTimer: usize = 0xF70; // CountdownTimer
pub const m_bRedraw: usize = 0xF88; // bool
pub const m_SequenceCompleteTimer: usize = 0xF68; // CountdownTimer
pub const m_bRedraw: usize = 0xF80; // bool
}
// Parent: CPointEntity
// Field count: 0
@ -3233,10 +3197,6 @@ pub mod cs2_dumper {
pub const m_nFlameModelIndex: usize = 0x4F0; // int32
pub const m_nFlameFromAboveModelIndex: usize = 0x4F4; // int32
}
// Parent: CCSWeaponBase
// Field count: 0
pub mod CBumpMine {
}
// Parent: CBaseModelEntity
// Field count: 7
//
@ -3810,7 +3770,7 @@ pub mod cs2_dumper {
// Metadata:
// NetworkVarNames: m_bFirstAttack (bool)
pub mod CKnife {
pub const m_bFirstAttack: usize = 0xF70; // bool
pub const m_bFirstAttack: usize = 0xF68; // bool
}
// Parent: CBaseModelEntity
// Field count: 37
@ -4016,10 +3976,6 @@ pub mod cs2_dumper {
pub mod CPhysTorque {
pub const m_axis: usize = 0x540; // Vector
}
// Parent: CBaseGrenade
// Field count: 0
pub mod CBreachChargeProjectile {
}
// Parent: CBaseAnimGraph
// Field count: 27
//
@ -4557,13 +4513,6 @@ pub mod cs2_dumper {
pub const m_bSpotted: usize = 0x8; // bool
pub const m_bSpottedByMask: usize = 0xC; // uint32[2]
}
// Parent: CBaseCSGrenadeProjectile
// Field count: 3
pub mod CSensorGrenadeProjectile {
pub const m_fExpireTime: usize = 0xB50; // GameTime_t
pub const m_fNextDetectPlayerSound: usize = 0xB54; // GameTime_t
pub const m_hDisplayGrenade: usize = 0xB58; // CHandle<CBaseEntity>
}
// Parent: CCSPlayerBase_CameraServices
// Field count: 0
pub mod CCSPlayer_CameraServices {
@ -5202,10 +5151,6 @@ pub mod cs2_dumper {
pub const m_iObserverLastMode: usize = 0x48; // ObserverMode_t
pub const m_bForcedObserverMode: usize = 0x4C; // bool
}
// Parent: CCSWeaponBaseGun
// Field count: 0
pub mod CWeaponZoneRepulsor {
}
// Parent: CPointEntity
// Field count: 3
pub mod CPhysImpact {
@ -6893,10 +6838,6 @@ pub mod cs2_dumper {
pub mod CFilterClass {
pub const m_iFilterClass: usize = 0x538; // CUtlSymbolLarge
}
// Parent: CCSWeaponBase
// Field count: 0
pub mod CMelee {
}
// Parent: CMultiplayRules
// Field count: 0
pub mod CTeamplayRules {
@ -7016,7 +6957,7 @@ pub mod cs2_dumper {
pub const m_nWorldGroupId: usize = 0xC; // WorldGroupId_t
}
// Parent: CBasePlayerWeapon
// Field count: 65
// Field count: 64
//
// Metadata:
// MNetworkExcludeByName
@ -7067,54 +7008,53 @@ pub mod cs2_dumper {
pub const m_bRequireUseToTouch: usize = 0xE11; // bool
pub const m_iState: usize = 0xE14; // CSWeaponState_t
pub const m_flLastTimeInAir: usize = 0xE18; // GameTime_t
pub const m_flLastDeployTime: usize = 0xE1C; // GameTime_t
pub const m_nLastEmptySoundCmdNum: usize = 0xE20; // int32
pub const m_nViewModelIndex: usize = 0xE24; // uint32
pub const m_bReloadsWithClips: usize = 0xE28; // bool
pub const m_flTimeWeaponIdle: usize = 0xE48; // GameTime_t
pub const m_bFireOnEmpty: usize = 0xE4C; // bool
pub const m_OnPlayerPickup: usize = 0xE50; // CEntityIOOutput
pub const m_weaponMode: usize = 0xE78; // CSWeaponMode
pub const m_flTurningInaccuracyDelta: usize = 0xE7C; // float32
pub const m_vecTurningInaccuracyEyeDirLast: usize = 0xE80; // Vector
pub const m_flTurningInaccuracy: usize = 0xE8C; // float32
pub const m_fAccuracyPenalty: usize = 0xE90; // float32
pub const m_flLastAccuracyUpdateTime: usize = 0xE94; // GameTime_t
pub const m_fAccuracySmoothedForZoom: usize = 0xE98; // float32
pub const m_fScopeZoomEndTime: usize = 0xE9C; // GameTime_t
pub const m_iRecoilIndex: usize = 0xEA0; // int32
pub const m_flRecoilIndex: usize = 0xEA4; // float32
pub const m_bBurstMode: usize = 0xEA8; // bool
pub const m_nPostponeFireReadyTicks: usize = 0xEAC; // GameTick_t
pub const m_flPostponeFireReadyFrac: usize = 0xEB0; // float32
pub const m_bInReload: usize = 0xEB4; // bool
pub const m_bReloadVisuallyComplete: usize = 0xEB5; // bool
pub const m_flDroppedAtTime: usize = 0xEB8; // GameTime_t
pub const m_bIsHauledBack: usize = 0xEBC; // bool
pub const m_bSilencerOn: usize = 0xEBD; // bool
pub const m_flTimeSilencerSwitchComplete: usize = 0xEC0; // GameTime_t
pub const m_iOriginalTeamNumber: usize = 0xEC4; // int32
pub const m_iMostRecentTeamNumber: usize = 0xEC8; // int32
pub const m_bDroppedNearBuyZone: usize = 0xECC; // bool
pub const m_flNextAttackRenderTimeOffset: usize = 0xED0; // float32
pub const m_bCanBePickedUp: usize = 0xEE8; // bool
pub const m_bUseCanOverrideNextOwnerTouchTime: usize = 0xEE9; // bool
pub const m_nextOwnerTouchTime: usize = 0xEEC; // GameTime_t
pub const m_nextPrevOwnerTouchTime: usize = 0xEF0; // GameTime_t
pub const m_nextPrevOwnerUseTime: usize = 0xEF8; // GameTime_t
pub const m_hPrevOwner: usize = 0xEFC; // CHandle<CCSPlayerPawn>
pub const m_nDropTick: usize = 0xF00; // GameTick_t
pub const m_donated: usize = 0xF24; // bool
pub const m_fLastShotTime: usize = 0xF28; // GameTime_t
pub const m_bWasOwnedByCT: usize = 0xF2C; // bool
pub const m_bWasOwnedByTerrorist: usize = 0xF2D; // bool
pub const m_bFiredOutOfAmmoEvent: usize = 0xF2E; // bool
pub const m_numRemoveUnownedWeaponThink: usize = 0xF30; // int32
pub const m_IronSightController: usize = 0xF38; // CIronSightController
pub const m_iIronSightMode: usize = 0xF50; // int32
pub const m_flLastLOSTraceFailureTime: usize = 0xF54; // GameTime_t
pub const m_iNumEmptyAttacks: usize = 0xF58; // int32
pub const m_flWatTickOffset: usize = 0xF5C; // float32
pub const m_nLastEmptySoundCmdNum: usize = 0xE1C; // int32
pub const m_nViewModelIndex: usize = 0xE20; // uint32
pub const m_bReloadsWithClips: usize = 0xE24; // bool
pub const m_flTimeWeaponIdle: usize = 0xE40; // GameTime_t
pub const m_bFireOnEmpty: usize = 0xE44; // bool
pub const m_OnPlayerPickup: usize = 0xE48; // CEntityIOOutput
pub const m_weaponMode: usize = 0xE70; // CSWeaponMode
pub const m_flTurningInaccuracyDelta: usize = 0xE74; // float32
pub const m_vecTurningInaccuracyEyeDirLast: usize = 0xE78; // Vector
pub const m_flTurningInaccuracy: usize = 0xE84; // float32
pub const m_fAccuracyPenalty: usize = 0xE88; // float32
pub const m_flLastAccuracyUpdateTime: usize = 0xE8C; // GameTime_t
pub const m_fAccuracySmoothedForZoom: usize = 0xE90; // float32
pub const m_fScopeZoomEndTime: usize = 0xE94; // GameTime_t
pub const m_iRecoilIndex: usize = 0xE98; // int32
pub const m_flRecoilIndex: usize = 0xE9C; // float32
pub const m_bBurstMode: usize = 0xEA0; // bool
pub const m_nPostponeFireReadyTicks: usize = 0xEA4; // GameTick_t
pub const m_flPostponeFireReadyFrac: usize = 0xEA8; // float32
pub const m_bInReload: usize = 0xEAC; // bool
pub const m_bReloadVisuallyComplete: usize = 0xEAD; // bool
pub const m_flDroppedAtTime: usize = 0xEB0; // GameTime_t
pub const m_bIsHauledBack: usize = 0xEB4; // bool
pub const m_bSilencerOn: usize = 0xEB5; // bool
pub const m_flTimeSilencerSwitchComplete: usize = 0xEB8; // GameTime_t
pub const m_iOriginalTeamNumber: usize = 0xEBC; // int32
pub const m_iMostRecentTeamNumber: usize = 0xEC0; // int32
pub const m_bDroppedNearBuyZone: usize = 0xEC4; // bool
pub const m_flNextAttackRenderTimeOffset: usize = 0xEC8; // float32
pub const m_bCanBePickedUp: usize = 0xEE0; // bool
pub const m_bUseCanOverrideNextOwnerTouchTime: usize = 0xEE1; // bool
pub const m_nextOwnerTouchTime: usize = 0xEE4; // GameTime_t
pub const m_nextPrevOwnerTouchTime: usize = 0xEE8; // GameTime_t
pub const m_nextPrevOwnerUseTime: usize = 0xEF0; // GameTime_t
pub const m_hPrevOwner: usize = 0xEF4; // CHandle<CCSPlayerPawn>
pub const m_nDropTick: usize = 0xEF8; // GameTick_t
pub const m_donated: usize = 0xF1C; // bool
pub const m_fLastShotTime: usize = 0xF20; // GameTime_t
pub const m_bWasOwnedByCT: usize = 0xF24; // bool
pub const m_bWasOwnedByTerrorist: usize = 0xF25; // bool
pub const m_bFiredOutOfAmmoEvent: usize = 0xF26; // bool
pub const m_numRemoveUnownedWeaponThink: usize = 0xF28; // int32
pub const m_IronSightController: usize = 0xF30; // CIronSightController
pub const m_iIronSightMode: usize = 0xF48; // int32
pub const m_flLastLOSTraceFailureTime: usize = 0xF4C; // GameTime_t
pub const m_iNumEmptyAttacks: usize = 0xF50; // int32
pub const m_flWatTickOffset: usize = 0xF54; // float32
}
// Parent: CBaseEntity
// Field count: 0
@ -7484,7 +7424,7 @@ pub mod cs2_dumper {
pub const m_state: usize = 0x798; // int32
}
// Parent: CTeamplayRules
// Field count: 189
// Field count: 190
//
// Metadata:
// NetworkVarNames: m_bFreezePeriod (bool)
@ -7651,127 +7591,128 @@ pub mod cs2_dumper {
pub const m_vMinimapMaxs: usize = 0xCB4; // Vector
pub const m_MinimapVerticalSectionHeights: usize = 0xCC0; // float32[8]
pub const m_bSpawnedTerrorHuntHeavy: usize = 0xCE0; // bool
pub const m_nEndMatchMapGroupVoteTypes: usize = 0xCE4; // int32[10]
pub const m_nEndMatchMapGroupVoteOptions: usize = 0xD0C; // int32[10]
pub const m_nEndMatchMapVoteWinner: usize = 0xD34; // int32
pub const m_iNumConsecutiveCTLoses: usize = 0xD38; // int32
pub const m_iNumConsecutiveTerroristLoses: usize = 0xD3C; // int32
pub const m_bHasHostageBeenTouched: usize = 0xD58; // bool
pub const m_flIntermissionStartTime: usize = 0xD5C; // GameTime_t
pub const m_flIntermissionEndTime: usize = 0xD60; // GameTime_t
pub const m_bLevelInitialized: usize = 0xD64; // bool
pub const m_iTotalRoundsPlayed: usize = 0xD68; // int32
pub const m_iUnBalancedRounds: usize = 0xD6C; // int32
pub const m_endMatchOnRoundReset: usize = 0xD70; // bool
pub const m_endMatchOnThink: usize = 0xD71; // bool
pub const m_iFreezeTime: usize = 0xD74; // int32
pub const m_iNumTerrorist: usize = 0xD78; // int32
pub const m_iNumCT: usize = 0xD7C; // int32
pub const m_iNumSpawnableTerrorist: usize = 0xD80; // int32
pub const m_iNumSpawnableCT: usize = 0xD84; // int32
pub const m_arrSelectedHostageSpawnIndices: usize = 0xD88; // CUtlVector<int32>
pub const m_nSpawnPointsRandomSeed: usize = 0xDA0; // int32
pub const m_bFirstConnected: usize = 0xDA4; // bool
pub const m_bCompleteReset: usize = 0xDA5; // bool
pub const m_bPickNewTeamsOnReset: usize = 0xDA6; // bool
pub const m_bScrambleTeamsOnRestart: usize = 0xDA7; // bool
pub const m_bSwapTeamsOnRestart: usize = 0xDA8; // bool
pub const m_nEndMatchTiedVotes: usize = 0xDB0; // CUtlVector<int32>
pub const m_bNeedToAskPlayersForContinueVote: usize = 0xDCC; // bool
pub const m_numQueuedMatchmakingAccounts: usize = 0xDD0; // uint32
pub const m_fAvgPlayerRank: usize = 0xDD4; // float32
pub const m_pQueuedMatchmakingReservationString: usize = 0xDD8; // char*
pub const m_numTotalTournamentDrops: usize = 0xDE0; // uint32
pub const m_numSpectatorsCountMax: usize = 0xDE4; // uint32
pub const m_numSpectatorsCountMaxTV: usize = 0xDE8; // uint32
pub const m_numSpectatorsCountMaxLnk: usize = 0xDEC; // uint32
pub const m_bForceTeamChangeSilent: usize = 0xDF8; // bool
pub const m_bLoadingRoundBackupData: usize = 0xDF9; // bool
pub const m_nMatchInfoShowType: usize = 0xE30; // int32
pub const m_flMatchInfoDecidedTime: usize = 0xE34; // float32
pub const mTeamDMLastWinningTeamNumber: usize = 0xE50; // int32
pub const mTeamDMLastThinkTime: usize = 0xE54; // float32
pub const m_flTeamDMLastAnnouncementTime: usize = 0xE58; // float32
pub const m_iAccountTerrorist: usize = 0xE5C; // int32
pub const m_iAccountCT: usize = 0xE60; // int32
pub const m_iSpawnPointCount_Terrorist: usize = 0xE64; // int32
pub const m_iSpawnPointCount_CT: usize = 0xE68; // int32
pub const m_iMaxNumTerrorists: usize = 0xE6C; // int32
pub const m_iMaxNumCTs: usize = 0xE70; // int32
pub const m_iLoserBonusMostRecentTeam: usize = 0xE74; // int32
pub const m_tmNextPeriodicThink: usize = 0xE78; // float32
pub const m_bVoiceWonMatchBragFired: usize = 0xE7C; // bool
pub const m_fWarmupNextChatNoticeTime: usize = 0xE80; // float32
pub const m_iHostagesRescued: usize = 0xE88; // int32
pub const m_iHostagesTouched: usize = 0xE8C; // int32
pub const m_flNextHostageAnnouncement: usize = 0xE90; // float32
pub const m_bNoTerroristsKilled: usize = 0xE94; // bool
pub const m_bNoCTsKilled: usize = 0xE95; // bool
pub const m_bNoEnemiesKilled: usize = 0xE96; // bool
pub const m_bCanDonateWeapons: usize = 0xE97; // bool
pub const m_firstKillTime: usize = 0xE9C; // float32
pub const m_firstBloodTime: usize = 0xEA4; // float32
pub const m_hostageWasInjured: usize = 0xEC0; // bool
pub const m_hostageWasKilled: usize = 0xEC1; // bool
pub const m_bVoteCalled: usize = 0xED0; // bool
pub const m_bServerVoteOnReset: usize = 0xED1; // bool
pub const m_flVoteCheckThrottle: usize = 0xED4; // float32
pub const m_bBuyTimeEnded: usize = 0xED8; // bool
pub const m_nLastFreezeEndBeep: usize = 0xEDC; // int32
pub const m_bTargetBombed: usize = 0xEE0; // bool
pub const m_bBombDefused: usize = 0xEE1; // bool
pub const m_bMapHasBombZone: usize = 0xEE2; // bool
pub const m_vecMainCTSpawnPos: usize = 0xF30; // Vector
pub const m_CTSpawnPointsMasterList: usize = 0xF40; // CUtlVector<SpawnPoint*>
pub const m_TerroristSpawnPointsMasterList: usize = 0xF58; // CUtlVector<SpawnPoint*>
pub const m_bRespawningAllRespawnablePlayers: usize = 0xF70; // bool
pub const m_iNextCTSpawnPoint: usize = 0xF74; // int32
pub const m_flCTSpawnPointUsedTime: usize = 0xF78; // float32
pub const m_iNextTerroristSpawnPoint: usize = 0xF7C; // int32
pub const m_flTerroristSpawnPointUsedTime: usize = 0xF80; // float32
pub const m_CTSpawnPoints: usize = 0xF88; // CUtlVector<SpawnPoint*>
pub const m_TerroristSpawnPoints: usize = 0xFA0; // CUtlVector<SpawnPoint*>
pub const m_bIsUnreservedGameServer: usize = 0xFB8; // bool
pub const m_fAutobalanceDisplayTime: usize = 0xFBC; // float32
pub const m_bAllowWeaponSwitch: usize = 0x1228; // bool
pub const m_bRoundTimeWarningTriggered: usize = 0x1229; // bool
pub const m_phaseChangeAnnouncementTime: usize = 0x122C; // GameTime_t
pub const m_fNextUpdateTeamClanNamesTime: usize = 0x1230; // float32
pub const m_flLastThinkTime: usize = 0x1234; // GameTime_t
pub const m_fAccumulatedRoundOffDamage: usize = 0x1238; // float32
pub const m_nShorthandedBonusLastEvalRound: usize = 0x123C; // int32
pub const m_nMatchAbortedEarlyReason: usize = 0x14B8; // int32
pub const m_bHasTriggeredRoundStartMusic: usize = 0x14BC; // bool
pub const m_bSwitchingTeamsAtRoundReset: usize = 0x14BD; // bool
pub const m_pGameModeRules: usize = 0x14D8; // CCSGameModeRules*
pub const m_BtGlobalBlackboard: usize = 0x14E0; // KeyValues3
pub const m_hPlayerResource: usize = 0x1570; // CHandle<CBaseEntity>
pub const m_RetakeRules: usize = 0x1578; // CRetakeGameRules
pub const m_arrTeamUniqueKillWeaponsMatch: usize = 0x1710; // CUtlVector<int32>[4]
pub const m_bTeamLastKillUsedUniqueWeaponMatch: usize = 0x1770; // bool[4]
pub const m_nMatchEndCount: usize = 0x1798; // uint8
pub const m_nTTeamIntroVariant: usize = 0x179C; // int32
pub const m_nCTTeamIntroVariant: usize = 0x17A0; // int32
pub const m_bTeamIntroPeriod: usize = 0x17A4; // bool
pub const m_fTeamIntroPeriodEnd: usize = 0x17A8; // GameTime_t
pub const m_bPlayedTeamIntroVO: usize = 0x17AC; // bool
pub const m_iRoundEndWinnerTeam: usize = 0x17B0; // int32
pub const m_eRoundEndReason: usize = 0x17B4; // int32
pub const m_bRoundEndShowTimerDefend: usize = 0x17B8; // bool
pub const m_iRoundEndTimerTime: usize = 0x17BC; // int32
pub const m_sRoundEndFunFactToken: usize = 0x17C0; // CUtlString
pub const m_iRoundEndFunFactPlayerSlot: usize = 0x17C8; // CPlayerSlot
pub const m_iRoundEndFunFactData1: usize = 0x17CC; // int32
pub const m_iRoundEndFunFactData2: usize = 0x17D0; // int32
pub const m_iRoundEndFunFactData3: usize = 0x17D4; // int32
pub const m_sRoundEndMessage: usize = 0x17D8; // CUtlString
pub const m_iRoundEndPlayerCount: usize = 0x17E0; // int32
pub const m_bRoundEndNoMusic: usize = 0x17E4; // bool
pub const m_iRoundEndLegacy: usize = 0x17E8; // int32
pub const m_nRoundEndCount: usize = 0x17EC; // uint8
pub const m_iRoundStartRoundNumber: usize = 0x17F0; // int32
pub const m_nRoundStartCount: usize = 0x17F4; // uint8
pub const m_flLastPerfSampleTime: usize = 0x5800; // float64
pub const m_ullLocalMatchID: usize = 0xCE8; // uint64
pub const m_nEndMatchMapGroupVoteTypes: usize = 0xCF0; // int32[10]
pub const m_nEndMatchMapGroupVoteOptions: usize = 0xD18; // int32[10]
pub const m_nEndMatchMapVoteWinner: usize = 0xD40; // int32
pub const m_iNumConsecutiveCTLoses: usize = 0xD44; // int32
pub const m_iNumConsecutiveTerroristLoses: usize = 0xD48; // int32
pub const m_bHasHostageBeenTouched: usize = 0xD68; // bool
pub const m_flIntermissionStartTime: usize = 0xD6C; // GameTime_t
pub const m_flIntermissionEndTime: usize = 0xD70; // GameTime_t
pub const m_bLevelInitialized: usize = 0xD74; // bool
pub const m_iTotalRoundsPlayed: usize = 0xD78; // int32
pub const m_iUnBalancedRounds: usize = 0xD7C; // int32
pub const m_endMatchOnRoundReset: usize = 0xD80; // bool
pub const m_endMatchOnThink: usize = 0xD81; // bool
pub const m_iFreezeTime: usize = 0xD84; // int32
pub const m_iNumTerrorist: usize = 0xD88; // int32
pub const m_iNumCT: usize = 0xD8C; // int32
pub const m_iNumSpawnableTerrorist: usize = 0xD90; // int32
pub const m_iNumSpawnableCT: usize = 0xD94; // int32
pub const m_arrSelectedHostageSpawnIndices: usize = 0xD98; // CUtlVector<int32>
pub const m_nSpawnPointsRandomSeed: usize = 0xDB0; // int32
pub const m_bFirstConnected: usize = 0xDB4; // bool
pub const m_bCompleteReset: usize = 0xDB5; // bool
pub const m_bPickNewTeamsOnReset: usize = 0xDB6; // bool
pub const m_bScrambleTeamsOnRestart: usize = 0xDB7; // bool
pub const m_bSwapTeamsOnRestart: usize = 0xDB8; // bool
pub const m_nEndMatchTiedVotes: usize = 0xDC0; // CUtlVector<int32>
pub const m_bNeedToAskPlayersForContinueVote: usize = 0xDDC; // bool
pub const m_numQueuedMatchmakingAccounts: usize = 0xDE0; // uint32
pub const m_fAvgPlayerRank: usize = 0xDE4; // float32
pub const m_pQueuedMatchmakingReservationString: usize = 0xDE8; // char*
pub const m_numTotalTournamentDrops: usize = 0xDF0; // uint32
pub const m_numSpectatorsCountMax: usize = 0xDF4; // uint32
pub const m_numSpectatorsCountMaxTV: usize = 0xDF8; // uint32
pub const m_numSpectatorsCountMaxLnk: usize = 0xDFC; // uint32
pub const m_bForceTeamChangeSilent: usize = 0xE08; // bool
pub const m_bLoadingRoundBackupData: usize = 0xE09; // bool
pub const m_nMatchInfoShowType: usize = 0xE40; // int32
pub const m_flMatchInfoDecidedTime: usize = 0xE44; // float32
pub const mTeamDMLastWinningTeamNumber: usize = 0xE60; // int32
pub const mTeamDMLastThinkTime: usize = 0xE64; // float32
pub const m_flTeamDMLastAnnouncementTime: usize = 0xE68; // float32
pub const m_iAccountTerrorist: usize = 0xE6C; // int32
pub const m_iAccountCT: usize = 0xE70; // int32
pub const m_iSpawnPointCount_Terrorist: usize = 0xE74; // int32
pub const m_iSpawnPointCount_CT: usize = 0xE78; // int32
pub const m_iMaxNumTerrorists: usize = 0xE7C; // int32
pub const m_iMaxNumCTs: usize = 0xE80; // int32
pub const m_iLoserBonusMostRecentTeam: usize = 0xE84; // int32
pub const m_tmNextPeriodicThink: usize = 0xE88; // float32
pub const m_bVoiceWonMatchBragFired: usize = 0xE8C; // bool
pub const m_fWarmupNextChatNoticeTime: usize = 0xE90; // float32
pub const m_iHostagesRescued: usize = 0xE98; // int32
pub const m_iHostagesTouched: usize = 0xE9C; // int32
pub const m_flNextHostageAnnouncement: usize = 0xEA0; // float32
pub const m_bNoTerroristsKilled: usize = 0xEA4; // bool
pub const m_bNoCTsKilled: usize = 0xEA5; // bool
pub const m_bNoEnemiesKilled: usize = 0xEA6; // bool
pub const m_bCanDonateWeapons: usize = 0xEA7; // bool
pub const m_firstKillTime: usize = 0xEAC; // float32
pub const m_firstBloodTime: usize = 0xEB4; // float32
pub const m_hostageWasInjured: usize = 0xED0; // bool
pub const m_hostageWasKilled: usize = 0xED1; // bool
pub const m_bVoteCalled: usize = 0xEE0; // bool
pub const m_bServerVoteOnReset: usize = 0xEE1; // bool
pub const m_flVoteCheckThrottle: usize = 0xEE4; // float32
pub const m_bBuyTimeEnded: usize = 0xEE8; // bool
pub const m_nLastFreezeEndBeep: usize = 0xEEC; // int32
pub const m_bTargetBombed: usize = 0xEF0; // bool
pub const m_bBombDefused: usize = 0xEF1; // bool
pub const m_bMapHasBombZone: usize = 0xEF2; // bool
pub const m_vecMainCTSpawnPos: usize = 0xF40; // Vector
pub const m_CTSpawnPointsMasterList: usize = 0xF50; // CUtlVector<SpawnPoint*>
pub const m_TerroristSpawnPointsMasterList: usize = 0xF68; // CUtlVector<SpawnPoint*>
pub const m_bRespawningAllRespawnablePlayers: usize = 0xF80; // bool
pub const m_iNextCTSpawnPoint: usize = 0xF84; // int32
pub const m_flCTSpawnPointUsedTime: usize = 0xF88; // float32
pub const m_iNextTerroristSpawnPoint: usize = 0xF8C; // int32
pub const m_flTerroristSpawnPointUsedTime: usize = 0xF90; // float32
pub const m_CTSpawnPoints: usize = 0xF98; // CUtlVector<SpawnPoint*>
pub const m_TerroristSpawnPoints: usize = 0xFB0; // CUtlVector<SpawnPoint*>
pub const m_bIsUnreservedGameServer: usize = 0xFC8; // bool
pub const m_fAutobalanceDisplayTime: usize = 0xFCC; // float32
pub const m_bAllowWeaponSwitch: usize = 0x1238; // bool
pub const m_bRoundTimeWarningTriggered: usize = 0x1239; // bool
pub const m_phaseChangeAnnouncementTime: usize = 0x123C; // GameTime_t
pub const m_fNextUpdateTeamClanNamesTime: usize = 0x1240; // float32
pub const m_flLastThinkTime: usize = 0x1244; // GameTime_t
pub const m_fAccumulatedRoundOffDamage: usize = 0x1248; // float32
pub const m_nShorthandedBonusLastEvalRound: usize = 0x124C; // int32
pub const m_nMatchAbortedEarlyReason: usize = 0x14C8; // int32
pub const m_bHasTriggeredRoundStartMusic: usize = 0x14CC; // bool
pub const m_bSwitchingTeamsAtRoundReset: usize = 0x14CD; // bool
pub const m_pGameModeRules: usize = 0x14E8; // CCSGameModeRules*
pub const m_BtGlobalBlackboard: usize = 0x14F0; // KeyValues3
pub const m_hPlayerResource: usize = 0x1580; // CHandle<CBaseEntity>
pub const m_RetakeRules: usize = 0x1588; // CRetakeGameRules
pub const m_arrTeamUniqueKillWeaponsMatch: usize = 0x1720; // CUtlVector<int32>[4]
pub const m_bTeamLastKillUsedUniqueWeaponMatch: usize = 0x1780; // bool[4]
pub const m_nMatchEndCount: usize = 0x17A8; // uint8
pub const m_nTTeamIntroVariant: usize = 0x17AC; // int32
pub const m_nCTTeamIntroVariant: usize = 0x17B0; // int32
pub const m_bTeamIntroPeriod: usize = 0x17B4; // bool
pub const m_fTeamIntroPeriodEnd: usize = 0x17B8; // GameTime_t
pub const m_bPlayedTeamIntroVO: usize = 0x17BC; // bool
pub const m_iRoundEndWinnerTeam: usize = 0x17C0; // int32
pub const m_eRoundEndReason: usize = 0x17C4; // int32
pub const m_bRoundEndShowTimerDefend: usize = 0x17C8; // bool
pub const m_iRoundEndTimerTime: usize = 0x17CC; // int32
pub const m_sRoundEndFunFactToken: usize = 0x17D0; // CUtlString
pub const m_iRoundEndFunFactPlayerSlot: usize = 0x17D8; // CPlayerSlot
pub const m_iRoundEndFunFactData1: usize = 0x17DC; // int32
pub const m_iRoundEndFunFactData2: usize = 0x17E0; // int32
pub const m_iRoundEndFunFactData3: usize = 0x17E4; // int32
pub const m_sRoundEndMessage: usize = 0x17E8; // CUtlString
pub const m_iRoundEndPlayerCount: usize = 0x17F0; // int32
pub const m_bRoundEndNoMusic: usize = 0x17F4; // bool
pub const m_iRoundEndLegacy: usize = 0x17F8; // int32
pub const m_nRoundEndCount: usize = 0x17FC; // uint8
pub const m_iRoundStartRoundNumber: usize = 0x1800; // int32
pub const m_nRoundStartCount: usize = 0x1804; // uint8
pub const m_flLastPerfSampleTime: usize = 0x5810; // float64
}
// Parent: CPhysicsProp
// Field count: 0
@ -8046,10 +7987,10 @@ pub mod cs2_dumper {
// NetworkVarNames: m_weaponPurchasesThisMatch (WeaponPurchaseTracker_t)
// NetworkVarNames: m_weaponPurchasesThisRound (WeaponPurchaseTracker_t)
pub mod CCSPlayer_ActionTrackingServices {
pub const m_hLastWeaponBeforeC4AutoSwitch: usize = 0x200; // CHandle<CBasePlayerWeapon>
pub const m_bIsRescuing: usize = 0x22C; // bool
pub const m_weaponPurchasesThisMatch: usize = 0x230; // WeaponPurchaseTracker_t
pub const m_weaponPurchasesThisRound: usize = 0x288; // WeaponPurchaseTracker_t
pub const m_hLastWeaponBeforeC4AutoSwitch: usize = 0x218; // CHandle<CBasePlayerWeapon>
pub const m_bIsRescuing: usize = 0x244; // bool
pub const m_weaponPurchasesThisMatch: usize = 0x248; // WeaponPurchaseTracker_t
pub const m_weaponPurchasesThisRound: usize = 0x2A0; // WeaponPurchaseTracker_t
}
// Parent: CPointEntity
// Field count: 6
@ -8205,10 +8146,6 @@ pub mod cs2_dumper {
pub const m_ScriptSpawnCallback: usize = 0x560; // HSCRIPT
pub const m_ScriptCallbackScope: usize = 0x568; // HSCRIPT
}
// Parent: CBaseCSGrenade
// Field count: 0
pub mod CTripWireFire {
}
// Parent: CPointEntity
// Field count: 6
pub mod CPhysForce {
@ -8333,10 +8270,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod CWeaponSSG08 {
}
// Parent: CCSWeaponBase
// Field count: 0
pub mod CBreachCharge {
}
// Parent: CLogicalEntity
// Field count: 4
pub mod CLogicBranch {
@ -8457,16 +8390,6 @@ pub mod cs2_dumper {
pub mod CCSGOViewModel {
pub const m_bShouldIgnoreOffsetAndAccuracy: usize = 0x9F0; // bool
}
// Parent: CCSWeaponBaseGun
// Field count: 3
//
// Metadata:
// NetworkVarNames: m_flDisplayHealth (float)
pub mod CWeaponShield {
pub const m_flBulletDamageAbsorbed: usize = 0xF90; // float32
pub const m_flLastBulletHitSoundTime: usize = 0xF94; // GameTime_t
pub const m_flDisplayHealth: usize = 0xF98; // float32
}
// Parent: CPointEntity
// Field count: 4
pub mod CBlood {
@ -9148,8 +9071,8 @@ pub mod cs2_dumper {
// Metadata:
// NetworkVarNames: m_fFireTime (GameTime_t)
pub mod CWeaponTaser {
pub const m_fFireTime: usize = 0xF90; // GameTime_t
pub const m_nLastAttackTick: usize = 0xF94; // int32
pub const m_fFireTime: usize = 0xF88; // GameTime_t
pub const m_nLastAttackTick: usize = 0xF8C; // int32
}
// Parent: CBaseAnimGraph
// Field count: 0
@ -9555,15 +9478,15 @@ pub mod cs2_dumper {
// NetworkVarNames: m_iBurstShotsRemaining (int)
// NetworkVarNames: m_bNeedsBoltAction (bool)
pub mod CCSWeaponBaseGun {
pub const m_zoomLevel: usize = 0xF70; // int32
pub const m_iBurstShotsRemaining: usize = 0xF74; // int32
pub const m_silencedModelIndex: usize = 0xF80; // int32
pub const m_inPrecache: usize = 0xF84; // bool
pub const m_bNeedsBoltAction: usize = 0xF85; // bool
pub const m_bSkillReloadAvailable: usize = 0xF86; // bool
pub const m_bSkillReloadLiftedReloadKey: usize = 0xF87; // bool
pub const m_bSkillBoltInterruptAvailable: usize = 0xF88; // bool
pub const m_bSkillBoltLiftedFireKey: usize = 0xF89; // bool
pub const m_zoomLevel: usize = 0xF68; // int32
pub const m_iBurstShotsRemaining: usize = 0xF6C; // int32
pub const m_silencedModelIndex: usize = 0xF78; // int32
pub const m_inPrecache: usize = 0xF7C; // bool
pub const m_bNeedsBoltAction: usize = 0xF7D; // bool
pub const m_bSkillReloadAvailable: usize = 0xF7E; // bool
pub const m_bSkillReloadLiftedReloadKey: usize = 0xF7F; // bool
pub const m_bSkillBoltInterruptAvailable: usize = 0xF80; // bool
pub const m_bSkillBoltLiftedFireKey: usize = 0xF81; // bool
}
// Parent: None
// Field count: 13
@ -10145,12 +10068,8 @@ pub mod cs2_dumper {
pub const m_PredictedDamageTags: usize = 0x1AD0; // CUtlVectorEmbeddedNetworkVar<PredictedDamageTag_t>
pub const m_nHighestAppliedDamageTagTick: usize = 0x1B20; // int32
}
// Parent: CBaseGrenade
// Field count: 0
pub mod CBumpMineProjectile {
}
// Parent: CBasePlayerController
// Field count: 90
// Field count: 91
//
// Metadata:
// MNetworkUserGroupProxy
@ -10246,58 +10165,59 @@ pub mod cs2_dumper {
pub const m_iDraftIndex: usize = 0x868; // int32
pub const m_msQueuedModeDisconnectionTimestamp: usize = 0x86C; // uint32
pub const m_uiAbandonRecordedReason: usize = 0x870; // uint32
pub const m_bCannotBeKicked: usize = 0x874; // bool
pub const m_bEverFullyConnected: usize = 0x875; // bool
pub const m_bAbandonAllowsSurrender: usize = 0x876; // bool
pub const m_bAbandonOffersInstantSurrender: usize = 0x877; // bool
pub const m_bDisconnection1MinWarningPrinted: usize = 0x878; // bool
pub const m_bScoreReported: usize = 0x879; // bool
pub const m_nDisconnectionTick: usize = 0x87C; // int32
pub const m_bControllingBot: usize = 0x888; // bool
pub const m_bHasControlledBotThisRound: usize = 0x889; // bool
pub const m_bHasBeenControlledByPlayerThisRound: usize = 0x88A; // bool
pub const m_nBotsControlledThisRound: usize = 0x88C; // int32
pub const m_bCanControlObservedBot: usize = 0x890; // bool
pub const m_hPlayerPawn: usize = 0x894; // CHandle<CCSPlayerPawn>
pub const m_hObserverPawn: usize = 0x898; // CHandle<CCSObserverPawn>
pub const m_DesiredObserverMode: usize = 0x89C; // int32
pub const m_hDesiredObserverTarget: usize = 0x8A0; // CEntityHandle
pub const m_bPawnIsAlive: usize = 0x8A4; // bool
pub const m_iPawnHealth: usize = 0x8A8; // uint32
pub const m_iPawnArmor: usize = 0x8AC; // int32
pub const m_bPawnHasDefuser: usize = 0x8B0; // bool
pub const m_bPawnHasHelmet: usize = 0x8B1; // bool
pub const m_nPawnCharacterDefIndex: usize = 0x8B2; // uint16
pub const m_iPawnLifetimeStart: usize = 0x8B4; // int32
pub const m_iPawnLifetimeEnd: usize = 0x8B8; // int32
pub const m_iPawnBotDifficulty: usize = 0x8BC; // int32
pub const m_hOriginalControllerOfCurrentPawn: usize = 0x8C0; // CHandle<CCSPlayerController>
pub const m_iScore: usize = 0x8C4; // int32
pub const m_iRoundScore: usize = 0x8C8; // int32
pub const m_iRoundsWon: usize = 0x8CC; // int32
pub const m_recentKillQueue: usize = 0x8D0; // uint8[8]
pub const m_nFirstKill: usize = 0x8D8; // uint8
pub const m_nKillCount: usize = 0x8D9; // uint8
pub const m_bMvpNoMusic: usize = 0x8DA; // bool
pub const m_eMvpReason: usize = 0x8DC; // int32
pub const m_iMusicKitID: usize = 0x8E0; // int32
pub const m_iMusicKitMVPs: usize = 0x8E4; // int32
pub const m_iMVPs: usize = 0x8E8; // int32
pub const m_nUpdateCounter: usize = 0x8EC; // int32
pub const m_flSmoothedPing: usize = 0x8F0; // float32
pub const m_lastHeldVoteTimer: usize = 0xF998; // IntervalTimer
pub const m_bShowHints: usize = 0xF9B0; // bool
pub const m_iNextTimeCheck: usize = 0xF9B4; // int32
pub const m_bJustDidTeamKill: usize = 0xF9B8; // bool
pub const m_bPunishForTeamKill: usize = 0xF9B9; // bool
pub const m_bGaveTeamDamageWarning: usize = 0xF9BA; // bool
pub const m_bGaveTeamDamageWarningThisRound: usize = 0xF9BB; // bool
pub const m_dblLastReceivedPacketPlatFloatTime: usize = 0xF9C0; // float64
pub const m_LastTeamDamageWarningTime: usize = 0xF9C8; // GameTime_t
pub const m_LastTimePlayerWasDisconnectedForPawnsRemove: usize = 0xF9CC; // GameTime_t
pub const m_nSuspiciousHitCount: usize = 0xF9D0; // uint32
pub const m_nNonSuspiciousHitStreak: usize = 0xF9D4; // uint32
pub const m_bFireBulletsSeedSynchronized: usize = 0xFA79; // bool
pub const m_eNetworkDisconnectionReason: usize = 0x874; // uint32
pub const m_bCannotBeKicked: usize = 0x878; // bool
pub const m_bEverFullyConnected: usize = 0x879; // bool
pub const m_bAbandonAllowsSurrender: usize = 0x87A; // bool
pub const m_bAbandonOffersInstantSurrender: usize = 0x87B; // bool
pub const m_bDisconnection1MinWarningPrinted: usize = 0x87C; // bool
pub const m_bScoreReported: usize = 0x87D; // bool
pub const m_nDisconnectionTick: usize = 0x880; // int32
pub const m_bControllingBot: usize = 0x890; // bool
pub const m_bHasControlledBotThisRound: usize = 0x891; // bool
pub const m_bHasBeenControlledByPlayerThisRound: usize = 0x892; // bool
pub const m_nBotsControlledThisRound: usize = 0x894; // int32
pub const m_bCanControlObservedBot: usize = 0x898; // bool
pub const m_hPlayerPawn: usize = 0x89C; // CHandle<CCSPlayerPawn>
pub const m_hObserverPawn: usize = 0x8A0; // CHandle<CCSObserverPawn>
pub const m_DesiredObserverMode: usize = 0x8A4; // int32
pub const m_hDesiredObserverTarget: usize = 0x8A8; // CEntityHandle
pub const m_bPawnIsAlive: usize = 0x8AC; // bool
pub const m_iPawnHealth: usize = 0x8B0; // uint32
pub const m_iPawnArmor: usize = 0x8B4; // int32
pub const m_bPawnHasDefuser: usize = 0x8B8; // bool
pub const m_bPawnHasHelmet: usize = 0x8B9; // bool
pub const m_nPawnCharacterDefIndex: usize = 0x8BA; // uint16
pub const m_iPawnLifetimeStart: usize = 0x8BC; // int32
pub const m_iPawnLifetimeEnd: usize = 0x8C0; // int32
pub const m_iPawnBotDifficulty: usize = 0x8C4; // int32
pub const m_hOriginalControllerOfCurrentPawn: usize = 0x8C8; // CHandle<CCSPlayerController>
pub const m_iScore: usize = 0x8CC; // int32
pub const m_iRoundScore: usize = 0x8D0; // int32
pub const m_iRoundsWon: usize = 0x8D4; // int32
pub const m_recentKillQueue: usize = 0x8D8; // uint8[8]
pub const m_nFirstKill: usize = 0x8E0; // uint8
pub const m_nKillCount: usize = 0x8E1; // uint8
pub const m_bMvpNoMusic: usize = 0x8E2; // bool
pub const m_eMvpReason: usize = 0x8E4; // int32
pub const m_iMusicKitID: usize = 0x8E8; // int32
pub const m_iMusicKitMVPs: usize = 0x8EC; // int32
pub const m_iMVPs: usize = 0x8F0; // int32
pub const m_nUpdateCounter: usize = 0x8F4; // int32
pub const m_flSmoothedPing: usize = 0x8F8; // float32
pub const m_lastHeldVoteTimer: usize = 0xF9A0; // IntervalTimer
pub const m_bShowHints: usize = 0xF9B8; // bool
pub const m_iNextTimeCheck: usize = 0xF9BC; // int32
pub const m_bJustDidTeamKill: usize = 0xF9C0; // bool
pub const m_bPunishForTeamKill: usize = 0xF9C1; // bool
pub const m_bGaveTeamDamageWarning: usize = 0xF9C2; // bool
pub const m_bGaveTeamDamageWarningThisRound: usize = 0xF9C3; // bool
pub const m_dblLastReceivedPacketPlatFloatTime: usize = 0xF9C8; // float64
pub const m_LastTeamDamageWarningTime: usize = 0xF9D0; // GameTime_t
pub const m_LastTimePlayerWasDisconnectedForPawnsRemove: usize = 0xF9D4; // GameTime_t
pub const m_nSuspiciousHitCount: usize = 0xF9D8; // uint32
pub const m_nNonSuspiciousHitStreak: usize = 0xF9DC; // uint32
pub const m_bFireBulletsSeedSynchronized: usize = 0xFA81; // bool
}
// Parent: IEconItemInterface
// Field count: 13
@ -10456,10 +10376,6 @@ pub mod cs2_dumper {
pub mod CRuleEntity {
pub const m_iszMaster: usize = 0x790; // CUtlSymbolLarge
}
// Parent: CBaseCSGrenade
// Field count: 0
pub mod CSensorGrenade {
}
// Parent: CBaseEntity
// Field count: 8
//
@ -10779,17 +10695,17 @@ pub mod cs2_dumper {
// NetworkVarNames: m_bIsPlantingViaUse (bool)
// NetworkVarNames: m_entitySpottedState (EntitySpottedState_t)
pub mod CC4 {
pub const m_vecLastValidPlayerHeldPosition: usize = 0xFA0; // Vector
pub const m_vecLastValidDroppedPosition: usize = 0xFAC; // Vector
pub const m_bDoValidDroppedPositionCheck: usize = 0xFB8; // bool
pub const m_bStartedArming: usize = 0xFB9; // bool
pub const m_fArmedTime: usize = 0xFBC; // GameTime_t
pub const m_bBombPlacedAnimation: usize = 0xFC0; // bool
pub const m_bIsPlantingViaUse: usize = 0xFC1; // bool
pub const m_entitySpottedState: usize = 0xFC8; // EntitySpottedState_t
pub const m_nSpotRules: usize = 0xFE0; // int32
pub const m_bPlayedArmingBeeps: usize = 0xFE4; // bool[7]
pub const m_bBombPlanted: usize = 0xFEB; // bool
pub const m_vecLastValidPlayerHeldPosition: usize = 0xF98; // Vector
pub const m_vecLastValidDroppedPosition: usize = 0xFA4; // Vector
pub const m_bDoValidDroppedPositionCheck: usize = 0xFB0; // bool
pub const m_bStartedArming: usize = 0xFB1; // bool
pub const m_fArmedTime: usize = 0xFB4; // GameTime_t
pub const m_bBombPlacedAnimation: usize = 0xFB8; // bool
pub const m_bIsPlantingViaUse: usize = 0xFB9; // bool
pub const m_entitySpottedState: usize = 0xFC0; // EntitySpottedState_t
pub const m_nSpotRules: usize = 0xFD8; // int32
pub const m_bPlayedArmingBeeps: usize = 0xFDC; // bool[7]
pub const m_bBombPlanted: usize = 0xFE3; // bool
}
// Parent: CHostageRescueZoneShim
// Field count: 0
@ -10884,10 +10800,6 @@ pub mod cs2_dumper {
pub const m_flClientLocalScale: usize = 0x140; // float32
pub const m_vRenderOrigin: usize = 0x144; // Vector
}
// Parent: CCSWeaponBase
// Field count: 0
pub mod CTablet {
}
// Parent: CPointEntity
// Field count: 7
pub mod CTankTrainAI {
@ -10941,10 +10853,6 @@ pub mod cs2_dumper {
// Field count: 0
pub mod CWeaponSCAR20 {
}
// Parent: CBaseGrenade
// Field count: 0
pub mod CTripWireFireProjectile {
}
// Parent: CFuncPlat
// Field count: 2
pub mod CFuncPlatRot {

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: soundsystem.dll
@ -33,7 +33,7 @@ namespace CS2Dumper.Schemas {
// Alignment: 2
// Member count: 10
public enum VMixFilterType_t : ushort {
FILTER_UNKNOWN = 0xFFFFFFFFFFFFFFFF,
FILTER_UNKNOWN = unchecked((ushort)-1),
FILTER_LOWPASS = 0x0,
FILTER_HIGHPASS = 0x1,
FILTER_BANDPASS = 0x2,

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: vphysics2.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
namespace CS2Dumper.Schemas {
// Module: worldrenderer.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper
// 2025-01-22 02:16:57.488530400 UTC
// 2025-04-02 01:38:06.172164600 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,9 +0,0 @@
comment_width = 100
format_code_in_doc_comments = true
format_macro_bodies = true
format_macro_matchers = true
normalize_comments = true
normalize_doc_attributes = true
reorder_impl_items = true
tab_spaces = 4
wrap_comments = true

View File

@ -1,6 +1,6 @@
use std::collections::BTreeMap;
use anyhow::{bail, Result};
use anyhow::{Result, bail};
use log::debug;
@ -13,7 +13,7 @@ use crate::source2::KeyButton;
pub type ButtonMap = BTreeMap<String, imem>;
pub fn buttons(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<ButtonMap> {
pub fn buttons<P: Process + MemoryView>(process: &mut P) -> Result<ButtonMap> {
let module = process.module_by_name("client.dll")?;
let buf = process
@ -35,17 +35,17 @@ pub fn buttons(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<ButtonMap>
}
fn read_buttons(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
module: &ModuleInfo,
list_addr: Address,
) -> Result<ButtonMap> {
let mut map = ButtonMap::new();
let mut cur_button = Pointer64::<KeyButton>::from(process.read_addr64(list_addr).data_part()?);
let mut cur_button = Pointer64::<KeyButton>::from(mem.read_addr64(list_addr).data_part()?);
while !cur_button.is_null() {
let button = process.read_ptr(cur_button).data_part()?;
let name = process.read_utf8(button.name.address(), 32).data_part()?;
let button = mem.read_ptr(cur_button).data_part()?;
let name = mem.read_utf8(button.name.address(), 32).data_part()?;
let rva = (cur_button.address() - module.base) + offset_of!(KeyButton.state) as imem;
debug!(

View File

@ -9,20 +9,16 @@ use memflow::prelude::v1::*;
use pelite::pe64::exports::Export;
use pelite::pe64::{Pe, PeView};
use crate::mem::read_addr64_rip;
use crate::source2::InterfaceReg;
pub type InterfaceMap = BTreeMap<String, BTreeMap<String, umem>>;
pub fn interfaces(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<InterfaceMap> {
pub fn interfaces<P: Process + MemoryView>(process: &mut P) -> Result<InterfaceMap> {
process
.module_list()?
.iter()
.filter(|module| module.name.as_ref() != "crashandler64.dll")
.filter_map(|module| {
if module.name.as_ref() == "crashhandler64.dll" {
return None;
}
let buf = process
.read_raw(module.base, module.size as _)
.data_part()
@ -39,9 +35,7 @@ pub fn interfaces(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<Interfa
.ok()?;
if let Export::Symbol(symbol) = ci_export {
let list_addr = read_addr64_rip(process, module.base + symbol)
.data_part()
.ok()?;
let list_addr = read_addr64_rip(process, module.base + symbol).ok()?;
return read_interfaces(process, module, list_addr)
.ok()
@ -55,18 +49,18 @@ pub fn interfaces(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<Interfa
}
fn read_interfaces(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
module: &ModuleInfo,
list_addr: Address,
) -> Result<BTreeMap<String, umem>> {
let mut ifaces = BTreeMap::new();
let mut cur_reg = Pointer64::<InterfaceReg>::from(process.read_addr64(list_addr).data_part()?);
let mut cur_reg = Pointer64::<InterfaceReg>::from(mem.read_addr64(list_addr).data_part()?);
while !cur_reg.is_null() {
let reg = process.read_ptr(cur_reg).data_part()?;
let name = process.read_utf8(reg.name.address(), 128).data_part()?;
let instance = read_addr64_rip(process, reg.create_fn.address())?;
let reg = mem.read_ptr(cur_reg).data_part()?;
let name = mem.read_utf8(reg.name.address(), 128).data_part()?;
let instance = read_addr64_rip(mem, reg.create_fn.address())?;
let value = instance.wrapping_sub(module.base).to_umem();
debug!(
@ -84,3 +78,9 @@ fn read_interfaces(
Ok(ifaces)
}
fn read_addr64_rip(mem: &mut impl MemoryView, addr: Address) -> Result<Address> {
let disp = mem.read::<i32>(addr + 0x3).data_part()?;
Ok(addr + 0x7 + disp)
}

View File

@ -24,7 +24,7 @@ pub struct AnalysisResult {
pub schemas: SchemaMap,
}
pub fn analyze_all(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<AnalysisResult> {
pub fn analyze_all<P: Process + MemoryView>(process: &mut P) -> Result<AnalysisResult> {
let buttons = analyze(process, buttons);
info!("found {} buttons", buttons.len());
@ -75,10 +75,10 @@ pub fn analyze_all(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<Analys
})
}
#[inline]
fn analyze<F, T>(process: &mut IntoProcessInstanceArcBox<'_>, f: F) -> T
fn analyze<P, F, T>(process: &mut P, f: F) -> T
where
F: FnOnce(&mut IntoProcessInstanceArcBox<'_>) -> Result<T>,
P: Process + MemoryView,
F: FnOnce(&mut P) -> Result<T>,
T: Default,
{
let name = type_name::<F>();

View File

@ -7,10 +7,10 @@ use log::{debug, error};
use memflow::prelude::v1::*;
use pelite::pattern;
use pelite::pattern::{save_len, Atom};
use pelite::pattern::{Atom, save_len};
use pelite::pe64::{Pe, PeView, Rva};
use phf::{phf_map, Map};
use phf::{Map, phf_map};
pub type OffsetMap = BTreeMap<String, BTreeMap<String, Rva>>;
@ -100,7 +100,7 @@ pattern_map! {
"dwBuildNumber" => pattern!("8905${'} 488d0d${} ff15${} 488b0d") => None,
"dwNetworkGameClient" => pattern!("48893d${'} 488d15") => None,
"dwNetworkGameClient_clientTickCount" => pattern!("8b81u4 c3 cccccccccccccccccc 8b81${} c3 cccccccccccccccccc 83b9") => None,
"dwNetworkGameClient_deltaTick" => pattern!("8983u4 8b41") => None,
"dwNetworkGameClient_deltaTick" => pattern!("89b3u4 8b45") => None,
"dwNetworkGameClient_isBackgroundMap" => pattern!("0fb681u4 c3 cccccccccccccccc 0fb681${} c3 cccccccccccccccc 48895c24") => None,
"dwNetworkGameClient_localPlayer" => pattern!("4883c0u1 488d0440 8b0cc1") => Some(|_view, map, rva| {
// .text 48 83 C0 0A | add rax, 0Ah
@ -127,7 +127,7 @@ pattern_map! {
},
}
pub fn offsets(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<OffsetMap> {
pub fn offsets<P: Process + MemoryView>(process: &mut P) -> Result<OffsetMap> {
let mut map = BTreeMap::new();
let modules: [(&str, fn(PeView) -> BTreeMap<String, u32>); 5] = [

View File

@ -1,7 +1,7 @@
use std::collections::BTreeMap;
use std::ffi::CStr;
use anyhow::{bail, Result};
use anyhow::{Result, bail};
use log::debug;
@ -60,7 +60,7 @@ pub struct TypeScope {
pub enums: Vec<Enum>,
}
pub fn schemas(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<SchemaMap> {
pub fn schemas<P: Process + MemoryView>(process: &mut P) -> Result<SchemaMap> {
let schema_system = read_schema_system(process)?;
let type_scopes = read_type_scopes(process, &schema_system)?;
@ -78,17 +78,17 @@ pub fn schemas(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<SchemaMap>
}
fn read_class_binding(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
binding_ptr: Pointer64<SchemaClassBinding>,
) -> Result<Class> {
let binding = process.read_ptr(binding_ptr).data_part()?;
let binding = mem.read_ptr(binding_ptr).data_part()?;
let module_name = process
let module_name = mem
.read_utf8_lossy(binding.module_name.address(), 128)
.data_part()
.map(|s| format!("{}.dll", s))?;
let name = process
let name = mem
.read_utf8_lossy(binding.name.address(), 4096)
.data_part()?;
@ -97,15 +97,15 @@ fn read_class_binding(
}
let parent = binding.base_classes.non_null().and_then(|ptr| {
let base_class = process.read_ptr(ptr).data_part().ok()?;
let parent_class = process.read_ptr(base_class.prev).data_part().ok()?;
let base_class = mem.read_ptr(ptr).data_part().ok()?;
let parent_class = mem.read_ptr(base_class.prev).data_part().ok()?;
let module_name = process
let module_name = mem
.read_utf8_lossy(parent_class.module_name.address(), 128)
.data_part()
.ok()?;
let name = process
let name = mem
.read_utf8_lossy(parent_class.name.address(), 4096)
.data_part()
.ok()?;
@ -119,8 +119,8 @@ fn read_class_binding(
}))
});
let fields = read_class_binding_fields(process, &binding)?;
let metadata = read_class_binding_metadata(process, &binding)?;
let fields = read_class_binding_fields(mem, &binding)?;
let metadata = read_class_binding_metadata(mem, &binding)?;
debug!(
"found class: {} at {:#X} (module name: {}) (parent name: {:?}) (metadata count: {}) (field count: {})",
@ -142,7 +142,7 @@ fn read_class_binding(
}
fn read_class_binding_fields(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
binding: &SchemaClassBinding,
) -> Result<Vec<ClassField>> {
if binding.fields.is_null() {
@ -150,28 +150,28 @@ fn read_class_binding_fields(
}
(0..binding.field_count).try_fold(Vec::new(), |mut acc, i| {
let field = process.read_ptr(binding.fields.at(i as _)).data_part()?;
let field = mem.read_ptr(binding.fields.at(i as _)).data_part()?;
if field.schema_type.is_null() {
if field.r#type.is_null() {
return Ok(acc);
}
let name = process
let name = mem
.read_utf8_lossy(field.name.address(), 4096)
.data_part()?;
let schema_type = process.read_ptr(field.schema_type).data_part()?;
let r#type = mem.read_ptr(field.r#type).data_part()?;
// TODO: Parse this properly.
let type_name = process
.read_utf8_lossy(schema_type.name.address(), 128)
let type_name = mem
.read_utf8_lossy(r#type.name.address(), 128)
.data_part()?
.replace(" ", "");
acc.push(ClassField {
name,
type_name,
offset: field.single_inheritance_offset,
offset: field.offset,
});
Ok(acc)
@ -179,7 +179,7 @@ fn read_class_binding_fields(
}
fn read_class_binding_metadata(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
binding: &SchemaClassBinding,
) -> Result<Vec<ClassMetadata>> {
if binding.static_metadata.is_null() {
@ -187,7 +187,7 @@ fn read_class_binding_metadata(
}
(0..binding.static_metadata_count).try_fold(Vec::new(), |mut acc, i| {
let metadata = process
let metadata = mem
.read_ptr(binding.static_metadata.at(i as _))
.data_part()?;
@ -195,15 +195,15 @@ fn read_class_binding_metadata(
return Ok(acc);
}
let name = process
let name = mem
.read_utf8_lossy(metadata.name.address(), 4096)
.data_part()?;
let network_value = process.read_ptr(metadata.network_value).data_part()?;
let network_value = mem.read_ptr(metadata.network_value).data_part()?;
let metadata = match name.as_str() {
"MNetworkChangeCallback" => unsafe {
let name = process
let name = mem
.read_utf8_lossy(network_value.value.name_ptr.address(), 4096)
.data_part()?;
@ -212,11 +212,11 @@ fn read_class_binding_metadata(
"MNetworkVarNames" => unsafe {
let var_value = network_value.value.var_value;
let name = process
let name = mem
.read_utf8_lossy(var_value.name.address(), 4096)
.data_part()?;
let type_name = process
let type_name = mem
.read_utf8_lossy(var_value.type_name.address(), 128)
.data_part()?
.replace(" ", "");
@ -233,12 +233,12 @@ fn read_class_binding_metadata(
}
fn read_enum_binding(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
binding_ptr: Pointer64<SchemaEnumBinding>,
) -> Result<Enum> {
let binding = process.read_ptr(binding_ptr).data_part()?;
let binding = mem.read_ptr(binding_ptr).data_part()?;
let name = process
let name = mem
.read_utf8_lossy(binding.name.address(), 4096)
.data_part()?;
@ -246,7 +246,7 @@ fn read_enum_binding(
bail!("empty enum name");
}
let members = read_enum_binding_members(process, &binding)?;
let members = read_enum_binding_members(mem, &binding)?;
debug!(
"found enum: {} at {:#X} (alignment: {}) (member count: {})",
@ -259,38 +259,36 @@ fn read_enum_binding(
Ok(Enum {
name,
alignment: binding.align_of,
size: binding.enumerator_count,
size: binding.enum_count,
members,
})
}
fn read_enum_binding_members(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
binding: &SchemaEnumBinding,
) -> Result<Vec<EnumMember>> {
if binding.enumerators.is_null() {
if binding.enums.is_null() {
return Ok(Vec::new());
}
(0..binding.enumerator_count).try_fold(Vec::new(), |mut acc, i| {
let enumerator = process
.read_ptr(binding.enumerators.at(i as _))
.data_part()?;
(0..binding.enum_count).try_fold(Vec::new(), |mut acc, i| {
let r#enum = mem.read_ptr(binding.enums.at(i as _)).data_part()?;
let name = process
.read_utf8_lossy(enumerator.name.address(), 4096)
let name = mem
.read_utf8_lossy(r#enum.name.address(), 4096)
.data_part()?;
acc.push(EnumMember {
name,
value: unsafe { enumerator.value.ulong } as i64,
value: unsafe { r#enum.value.ulong } as i64,
});
Ok(acc)
})
}
fn read_schema_system(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<SchemaSystem> {
fn read_schema_system<P: Process + MemoryView>(process: &mut P) -> Result<SchemaSystem> {
let module = process.module_by_name("schemasystem.dll")?;
let buf = process
@ -318,14 +316,14 @@ fn read_schema_system(process: &mut IntoProcessInstanceArcBox<'_>) -> Result<Sch
}
fn read_type_scopes(
process: &mut IntoProcessInstanceArcBox<'_>,
mem: &mut impl MemoryView,
schema_system: &SchemaSystem,
) -> Result<Vec<TypeScope>> {
let type_scopes = &schema_system.type_scopes;
(0..type_scopes.size).try_fold(Vec::new(), |mut acc, i| {
let type_scope_ptr = type_scopes.element(process, i as _)?;
let type_scope = process.read_ptr(type_scope_ptr).data_part()?;
let type_scope_ptr = type_scopes.element(mem, i as _)?;
let type_scope = mem.read_ptr(type_scope_ptr).data_part()?;
let module_name = unsafe { CStr::from_ptr(type_scope.name.as_ptr()) }
.to_string_lossy()
@ -333,16 +331,16 @@ fn read_type_scopes(
let classes: Vec<_> = type_scope
.class_bindings
.elements(process)?
.elements(mem)?
.iter()
.filter_map(|ptr| read_class_binding(process, *ptr).ok())
.filter_map(|ptr| read_class_binding(mem, *ptr).ok())
.collect();
let enums: Vec<_> = type_scope
.enum_bindings
.elements(process)?
.elements(mem)?
.iter()
.filter_map(|ptr| read_enum_binding(process, *ptr).ok())
.filter_map(|ptr| read_enum_binding(mem, *ptr).ok())
.collect();
if classes.is_empty() && enums.is_empty() {

View File

@ -5,20 +5,17 @@ use std::time::Instant;
use anyhow::Result;
use clap::*;
use clap::{ArgAction, Parser};
use log::{info, LevelFilter};
use log::{LevelFilter, info};
use memflow::prelude::v1::*;
use simplelog::{
ColorChoice, CombinedLogger, Config, SharedLogger, TermLogger, TerminalMode, WriteLogger,
};
use simplelog::*;
use output::Output;
mod analysis;
mod mem;
mod output;
mod source2;
@ -92,7 +89,7 @@ fn main() -> Result<()> {
.map(|s| ConnectorArgs::from_str(&s).expect("unable to parse connector arguments"))
.unwrap_or_default();
let os = match args.connector {
let mut os = match args.connector {
Some(conn) => {
let inventory = Inventory::scan();
@ -115,12 +112,11 @@ fn main() -> Result<()> {
}
};
let mut process = os.into_process_by_name(&args.process_name)?;
let mut process = os.process_by_name(&args.process_name)?;
let now = Instant::now();
let result = analysis::analyze_all(&mut process)?;
let output = Output::new(&args.file_types, args.indent_size, &args.output, &result)?;
output.dump_all(&mut process)?;

View File

@ -1,24 +0,0 @@
use memflow::prelude::v1::*;
pub trait PointerExt {
fn is_null(&self) -> bool;
}
impl<U: PrimitiveAddress, T> PointerExt for Pointer<U, T> {
#[inline]
fn is_null(&self) -> bool {
self.inner.is_null()
}
}
pub fn read_addr64_rip(
process: &mut IntoProcessInstanceArcBox<'_>,
addr: Address,
) -> PartialResult<Address> {
let displacement = match process.read::<i32>(addr + 0x3) {
Ok(d) => d,
Err(e) => return Err(PartialError::Error(e.into())),
};
Ok(addr + 0x7 + displacement)
}

View File

@ -3,7 +3,7 @@ use std::fmt::{self, Write};
use heck::{AsPascalCase, AsSnakeCase};
use super::{slugify, CodeWriter, Formatter, InterfaceMap};
use super::{CodeWriter, Formatter, InterfaceMap, slugify};
impl CodeWriter for InterfaceMap {
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
@ -16,7 +16,15 @@ impl CodeWriter for InterfaceMap {
false,
|fmt| {
for (name, value) in ifaces {
if *value > i32::MAX as u64 {
writeln!(
fmt,
"public static readonly nint {} = unchecked((nint){:#X});",
name, value
)?;
} else {
writeln!(fmt, "public const nint {} = {:#X};", name, value)?;
};
}
Ok(())

View File

@ -2,7 +2,7 @@ use std::fmt::{self, Write};
use std::fs;
use std::path::Path;
use anyhow::{anyhow, Result};
use anyhow::{Result, anyhow};
use chrono::{DateTime, Utc};
@ -28,7 +28,6 @@ enum Item<'a> {
}
impl<'a> Item<'a> {
#[inline]
fn write(&self, fmt: &mut Formatter<'a>, file_type: &str) -> fmt::Result {
match file_type {
"cs" => self.write_cs(fmt),
@ -48,7 +47,6 @@ trait CodeWriter {
}
impl<'a> CodeWriter for Item<'a> {
#[inline]
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
match self {
Item::Buttons(buttons) => buttons.write_cs(fmt),
@ -58,7 +56,6 @@ impl<'a> CodeWriter for Item<'a> {
}
}
#[inline]
fn write_hpp(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
match self {
Item::Buttons(buttons) => buttons.write_hpp(fmt),
@ -68,7 +65,6 @@ impl<'a> CodeWriter for Item<'a> {
}
}
#[inline]
fn write_json(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
match self {
Item::Buttons(buttons) => buttons.write_json(fmt),
@ -78,7 +74,6 @@ impl<'a> CodeWriter for Item<'a> {
}
}
#[inline]
fn write_rs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
match self {
Item::Buttons(buttons) => buttons.write_rs(fmt),
@ -90,7 +85,7 @@ impl<'a> CodeWriter for Item<'a> {
}
pub struct Output<'a> {
file_types: &'a Vec<String>,
file_types: &'a [String],
indent_size: usize,
out_dir: &'a Path,
result: &'a AnalysisResult,
@ -99,7 +94,7 @@ pub struct Output<'a> {
impl<'a> Output<'a> {
pub fn new(
file_types: &'a Vec<String>,
file_types: &'a [String],
indent_size: usize,
out_dir: &'a Path,
result: &'a AnalysisResult,
@ -115,7 +110,7 @@ impl<'a> Output<'a> {
})
}
pub fn dump_all(&self, process: &mut IntoProcessInstanceArcBox<'_>) -> Result<()> {
pub fn dump_all<P: MemoryView + Process>(&self, process: &mut P) -> Result<()> {
let items = [
("buttons", Item::Buttons(&self.result.buttons)),
("interfaces", Item::Interfaces(&self.result.interfaces)),
@ -132,7 +127,7 @@ impl<'a> Output<'a> {
Ok(())
}
fn dump_info(&self, process: &mut IntoProcessInstanceArcBox<'_>) -> Result<()> {
fn dump_info<P: MemoryView + Process>(&self, process: &mut P) -> Result<()> {
let file_path = self.out_dir.join("info.json");
let build_number = self

View File

@ -2,7 +2,7 @@ use std::fmt::{self, Write};
use heck::{AsPascalCase, AsSnakeCase};
use super::{slugify, CodeWriter, Formatter, OffsetMap};
use super::{CodeWriter, Formatter, OffsetMap, slugify};
impl CodeWriter for OffsetMap {
fn write_cs(&self, fmt: &mut Formatter<'_>) -> fmt::Result {

View File

@ -5,7 +5,7 @@ use heck::{AsPascalCase, AsSnakeCase};
use serde_json::json;
use super::{slugify, CodeWriter, Formatter, SchemaMap};
use super::{CodeWriter, Formatter, SchemaMap, slugify};
use crate::analysis::ClassMetadata;
@ -41,7 +41,17 @@ impl CodeWriter for SchemaMap {
.members
.iter()
.map(|member| {
format!("{} = {:#X}", member.name, member.value)
let hex = if member.value < 0
|| member.value > i32::MAX as i64
{
format!(
"unchecked(({}){})",
type_name, member.value
)
} else {
format!("{:#X}", member.value)
};
format!("{} = {}", member.name, hex)
})
.collect::<Vec<_>>()
.join(",\n");

View File

@ -6,8 +6,8 @@ use super::{SchemaMetadataEntryData, SchemaType};
#[repr(C)]
pub struct SchemaClassFieldData {
pub name: Pointer64<ReprCString>, // 0x0000
pub schema_type: Pointer64<SchemaType>, // 0x0008
pub single_inheritance_offset: i32, // 0x0010
pub r#type: Pointer64<SchemaType>, // 0x0008
pub offset: i32, // 0x0010
pub metadata_count: i32, // 0x0014
pub metadata: Pointer64<SchemaMetadataEntryData>, // 0x0018
}

View File

@ -1,9 +1,6 @@
use memflow::prelude::v1::*;
use super::{
SchemaBaseClassInfoData, SchemaClassFieldData, SchemaMetadataEntryData, SchemaStaticFieldData,
SchemaSystemTypeScope, SchemaType,
};
use super::*;
pub type SchemaClassBinding = SchemaClassInfoData;
@ -28,6 +25,6 @@ pub struct SchemaClassInfoData {
pad_0040: [u8; 0x8], // 0x0040
pub static_metadata: Pointer64<[SchemaMetadataEntryData]>, // 0x0048
pub type_scope: Pointer64<SchemaSystemTypeScope>, // 0x0050
pub schema_type: Pointer64<SchemaType>, // 0x0058
pub r#type: Pointer64<SchemaType>, // 0x0058
pad_0060: [u8; 0x10], // 0x0060
}

View File

@ -14,11 +14,11 @@ pub struct SchemaEnumInfoData {
pub size: u8, // 0x0018
pub align_of: u8, // 0x0019
pad_001a: [u8; 0x2], // 0x001A
pub enumerator_count: u16, // 0x001C
pub enum_count: u16, // 0x001C
pub static_metadata_count: u16, // 0x001E
pub enumerators: Pointer64<[SchemaEnumeratorInfoData]>, // 0x0020
pub enums: Pointer64<[SchemaEnumeratorInfoData]>, // 0x0020
pub static_metadata: Pointer64<SchemaMetadataEntryData>, // 0x0028
pub type_scope: Pointer64<SchemaSystemTypeScope>, // 0x0030
pub min_enumerator_value: i64, // 0x0038
pub max_enumerator_value: i64, // 0x0040
pub min_enum_value: i64, // 0x0038
pub max_enum_value: i64, // 0x0040
}

View File

@ -6,7 +6,7 @@ use super::{SchemaMetadataEntryData, SchemaType};
#[repr(C)]
pub struct SchemaStaticFieldData {
pub name: Pointer64<ReprCString>, // 0x0000
pub type_: Pointer64<SchemaType>, // 0x0008
pub r#type: Pointer64<SchemaType>, // 0x0008
pub instance: Pointer64<()>, // 0x0010
pub metadata_count: i32, // 0x0018
pad_001c: [u8; 0x4], // 0x001C

View File

@ -13,6 +13,6 @@ pub struct SchemaSystemTypeScope {
pub name: [c_char; 256], // 0x0008
pub global_scope: Pointer64<SchemaSystemTypeScope>, // 0x0108
pad_0110: [u8; 0x3F0], // 0x0110
pub class_bindings: UtlTsHash<Pointer64<SchemaClassBinding>>, // 0x0500
pub enum_bindings: UtlTsHash<Pointer64<SchemaEnumBinding>>, // 0x2D90
pub class_bindings: UtlTsHash<SchemaClassBinding>, // 0x0500
pub enum_bindings: UtlTsHash<SchemaEnumBinding>, // 0x2D90
}

View File

@ -85,7 +85,7 @@ pub struct SchemaType {
unsafe impl Pod for SchemaType {}
pub union SchemaTypeUnion {
pub schema_type: Pointer64<SchemaType>,
pub r#type: Pointer64<SchemaType>,
pub class_binding: Pointer64<SchemaClassBinding>,
pub enum_binding: Pointer64<SchemaEnumBinding>,
pub array: SchemaArrayT,

View File

@ -1,5 +1,3 @@
use anyhow::{bail, Result};
use memflow::prelude::v1::*;
#[repr(C)]
@ -10,26 +8,16 @@ pub struct UtlMemory<T> {
}
impl<T: Pod> UtlMemory<T> {
#[inline]
pub fn count(&self) -> i32 {
self.alloc_count
}
pub fn element(&self, process: &mut IntoProcessInstanceArcBox<'_>, idx: usize) -> Result<T> {
if idx >= self.count() as _ {
bail!("index out of bounds");
}
process
.read_ptr(self.mem.at(idx as _))
.data_part()
.map_err(Into::into)
}
#[inline]
pub fn is_externally_allocated(&self) -> bool {
self.grow_size < 0
}
}
unsafe impl<T: 'static> Pod for UtlMemory<T> {}
pub fn element(&self, mem: &mut impl MemoryView, index: usize) -> Result<T> {
if index >= self.alloc_count as usize {
return Err(ErrorKind::OutOfBounds.into());
}
mem.read_ptr(self.mem.at(index as _)).data_part()
}
}

View File

@ -29,7 +29,7 @@ pub struct UtlMemoryPoolBase {
pub grow_mode: MemoryPoolGrowType, // 0x0008
pub blocks_alloc: i32, // 0x000C
pub peak_alloc: i32, // 0x0010
pub alignment: u16, // 0x0014
pub align_of: u16, // 0x0014
pub blob_count: u16, // 0x0016
pub free_list_tail: Pointer64<Pointer64<FreeList>>, // 0x0018
pub free_list_head: Pointer64<FreeList>, // 0x0020
@ -38,10 +38,3 @@ pub struct UtlMemoryPoolBase {
pub total_size: i32, // 0x0078
pad_007c: [u8; 0x4], // 0x007C
}
impl UtlMemoryPoolBase {
#[inline]
pub fn size(&self) -> i32 {
self.total_size
}
}

View File

@ -1,16 +1,12 @@
use anyhow::Result;
use memflow::prelude::v1::*;
use super::UtlMemoryPoolBase;
use crate::mem::PointerExt;
#[repr(C)]
pub struct HashAllocatedBlob<D> {
pub next: Pointer64<HashAllocatedBlob<D>>, // 0x0000
pad_0008: [u8; 0x8], // 0x0008
pub data: D, // 0x0010
pub data: Pointer64<D>, // 0x0010
pad_0018: [u8; 0x8], // 0x0018
}
@ -27,7 +23,7 @@ pub struct HashBucket<D, K> {
pub struct HashFixedDataInternal<D, K> {
pub ui_key: K, // 0x0000
pub next: Pointer64<HashFixedDataInternal<D, K>>, // 0x0008
pub data: D, // 0x0010
pub data: Pointer64<D>, // 0x0010
}
unsafe impl<D: 'static, K: 'static> Pod for HashFixedDataInternal<D, K> {}
@ -40,11 +36,7 @@ pub struct UtlTsHash<D, const C: usize = 256, K = u64> {
pad_2881: [u8; 0xF], // 0x2881
}
impl<D, const C: usize, K> UtlTsHash<D, C, K>
where
D: Pod + PointerExt,
K: Pod,
{
impl<D: Pod, const C: usize, K: Pod> UtlTsHash<D, C, K> {
#[inline]
pub fn blocks_alloc(&self) -> i32 {
self.entry_mem.blocks_alloc
@ -60,7 +52,7 @@ where
self.entry_mem.peak_alloc
}
pub fn elements(&self, process: &mut IntoProcessInstanceArcBox<'_>) -> Result<Vec<D>> {
pub fn elements(&self, mem: &mut impl MemoryView) -> Result<Vec<Pointer64<D>>> {
let blocks_alloc = self.blocks_alloc() as usize;
let peak_alloc = self.peak_count() as usize;
@ -71,7 +63,7 @@ where
let mut cur_element = bucket.first_uncommitted;
while !cur_element.is_null() {
let element = process.read_ptr(cur_element).data_part()?;
let element = mem.read_ptr(cur_element).data_part()?;
if !element.data.is_null() {
allocated_list.push(element.data);
@ -89,7 +81,7 @@ where
Pointer64::<HashAllocatedBlob<D>>::from(self.entry_mem.free_list_head.address());
while !cur_blob.is_null() {
let blob = process.read_ptr(cur_blob).data_part()?;
let blob = mem.read_ptr(cur_blob).data_part()?;
if !blob.data.is_null() {
unallocated_list.push(blob.data);

View File

@ -1,5 +1,3 @@
use anyhow::{bail, Result};
use memflow::prelude::v1::*;
#[repr(C)]
@ -10,20 +8,12 @@ pub struct UtlVector<T> {
}
impl<T: Pod> UtlVector<T> {
#[inline]
pub fn count(&self) -> i32 {
self.size
pub fn element(&self, mem: &mut impl MemoryView, index: usize) -> Result<T> {
if index >= self.size as usize {
return Err(ErrorKind::OutOfBounds.into());
}
pub fn element(&self, process: &mut IntoProcessInstanceArcBox<'_>, idx: usize) -> Result<T> {
if idx >= self.count() as usize {
bail!("index out of bounds");
}
process
.read_ptr(self.mem.at(idx as _))
.data_part()
.map_err(Into::into)
mem.read_ptr(self.mem.at(index as _)).data_part()
}
}