From bb89e25159e9e712dfa104857fb18fbc23ce8037 Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 01:22:55 +0300 Subject: [PATCH 1/7] Update sigs --- gamedata/cs2fixes.games.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/gamedata/cs2fixes.games.txt b/gamedata/cs2fixes.games.txt index 7aea80d2..414b27e1 100644 --- a/gamedata/cs2fixes.games.txt +++ b/gamedata/cs2fixes.games.txt @@ -26,7 +26,7 @@ { "library" "server" "windows" "\x4C\x89\x44\x24\x18\x55\x53\x56\x57\x41\x55\x41\x56\x48\x8D\xAC\x24\xF8\xFE\xFF\xFF" - "linux" "\x55\x48\x89\xE5\x41\x57\x41\x56\x49\x89\xD6\x41\x55\x49\x89\xFD\x41\x54\x53\x48\x89\xF3\x48\x81\xEC\xD8\x01\x00\x00" + "linux" "\x55\x48\x89\xE5\x41\x57\x49\x89\xFF\x41\x56\x49\x89\xCE\x41\x55\x49\x89\xD5" } // String: "Noise removal", there should be 3 customermachine checks "HammerNoCustomerMachine" @@ -234,29 +234,29 @@ } "Teleport" { - "windows" "165" - "linux" "164" + "windows" "168" + "linux" "167" } "CollisionRulesChanged" { - "windows" "189" - "linux" "188" + "windows" "191" + "linux" "190" } "IsEntityPawn" { - "windows" "172" - "linux" "171" + "windows" "174" + "linux" "173" } "IsEntityController" { - "windows" "173" - "linux" "172" + "windows" "175" + "linux" "174" } // String: "%s<%i><%s><%s>" ChangeTeam() CTMDBG..." "CCSPlayerController_ChangeTeam" { - "windows" "106" - "linux" "105" + "windows" "109" + "linux" "108" } // Look for the kill command, go through its callback and you should a find call like this, with v9 being a pawn pointer: // return (*(*v9 + 2872LL))(v9, v27, 0LL); @@ -279,8 +279,8 @@ } "CCSPlayerController_Respawn" { - "windows" "275" - "linux" "277" + "windows" "277" + "linux" "279" } "GetHammerUniqueId" { From 44a52dc29811c68cb07debb4174fe81903797f53 Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 01:23:10 +0300 Subject: [PATCH 2/7] Update SDK --- sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk b/sdk index 0f84fcf1..8e3da65b 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit 0f84fcf129f20dcaed07f9628c3555ee9b0b0f6c +Subproject commit 8e3da65bdf33e2dfb04ad57208e85ffc9e93c048 From 63723296291abf6e10b4f3f995bfccf096b542d0 Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 01:33:27 +0300 Subject: [PATCH 3/7] Take CMoveData from cs2kz-metamod --- src/cs2_sdk/entity/services.h | 61 +++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/src/cs2_sdk/entity/services.h b/src/cs2_sdk/entity/services.h index 9e56e68c..2d73b851 100644 --- a/src/cs2_sdk/entity/services.h +++ b/src/cs2_sdk/entity/services.h @@ -261,15 +261,14 @@ struct SubtickMove bool pressed; }; -// Size: 0xE8 -class CMoveData +class CMoveDataBase { public: - CMoveData() = default; - - CMoveData(const CMoveData &source) + CMoveDataBase() = default; + CMoveDataBase(const CMoveDataBase &source) // clang-format off - : moveDataFlags {source.moveDataFlags}, + : m_bHasZeroFrametime {source.m_bHasZeroFrametime}, + m_bIsLateCommand {source.m_bIsLateCommand}, m_nPlayerHandle {source.m_nPlayerHandle}, m_vecAbsViewAngles {source.m_vecAbsViewAngles}, m_vecViewAngles {source.m_vecViewAngles}, @@ -279,23 +278,16 @@ class CMoveData m_flUpMove {source.m_flUpMove}, m_vecVelocity {source.m_vecVelocity}, m_vecAngles {source.m_vecAngles}, + m_vecUnknown {source.m_vecUnknown}, m_bHasSubtickInputs {source.m_bHasSubtickInputs}, + unknown {source.unknown}, m_collisionNormal {source.m_collisionNormal}, - m_groundNormal {source.m_groundNormal}, + m_groundNormal {source.m_groundNormal}, m_vecAbsOrigin {source.m_vecAbsOrigin}, m_nTickCount {source.m_nTickCount}, m_nTargetTick {source.m_nTargetTick}, - m_flSubtickEndFraction {source.m_flSubtickEndFraction}, m_flSubtickStartFraction {source.m_flSubtickStartFraction}, - m_outWishVel {source.m_outWishVel}, - m_vecOldAngles {source.m_vecOldAngles}, - m_flMaxSpeed {source.m_flMaxSpeed}, - m_flClientMaxSpeed {source.m_flClientMaxSpeed}, - m_flSubtickAccelSpeed {source.m_flSubtickAccelSpeed}, - m_bJumpedThisTick {source.m_bJumpedThisTick}, - m_bOnGround {source.m_bOnGround}, - m_bShouldApplyGravity {source.m_bShouldApplyGravity}, - m_bGameCodeMovedPlayer {source.m_bGameCodeMovedPlayer} + m_flSubtickEndFraction {source.m_flSubtickEndFraction} // clang-format on { for (int i = 0; i < source.m_AttackSubtickMoves.Count(); i++) @@ -330,7 +322,8 @@ class CMoveData } public: - uint8_t moveDataFlags; + bool m_bHasZeroFrametime: 1; + bool m_bIsLateCommand: 1; CHandle m_nPlayerHandle; QAngle m_vecAbsViewAngles; QAngle m_vecViewAngles; @@ -339,28 +332,42 @@ class CMoveData float m_flSideMove; // Warning! Flipped compared to CS:GO, moving right gives negative value float m_flUpMove; Vector m_vecVelocity; - Vector m_vecAngles; + QAngle m_vecAngles; + Vector m_vecUnknown; CUtlVector m_SubtickMoves; CUtlVector m_AttackSubtickMoves; bool m_bHasSubtickInputs; + float unknown; // Set to 1.0 during SetupMove, never change during gameplay. Is apparently used for weapon services stuff. CUtlVector m_TouchList; Vector m_collisionNormal; Vector m_groundNormal; // unsure Vector m_vecAbsOrigin; int32_t m_nTickCount; int32_t m_nTargetTick; - float m_flSubtickEndFraction; float m_flSubtickStartFraction; - bool m_nGameModeMovedPlayer; + float m_flSubtickEndFraction; +}; + +class CMoveData : public CMoveDataBase +{ +public: + CMoveData() = default; + + CMoveData(const CMoveData &source) + : CMoveDataBase(source), m_outWishVel {source.m_outWishVel}, m_vecOldAngles {source.m_vecOldAngles}, + m_vecAccelPerSecond {source.m_vecAccelPerSecond}, m_vecInputRotated {source.m_vecInputRotated}, m_flMaxSpeed {source.m_flMaxSpeed} + { + } + Vector m_outWishVel; - Vector m_vecOldAngles; + QAngle m_vecOldAngles; + Vector m_vecAccelPerSecond; // related to accel and friction + Vector m_vecInputRotated; float m_flMaxSpeed; float m_flClientMaxSpeed; - float m_flSubtickAccelSpeed; // Related to ground acceleration subtick stuff with sv_stopspeed and friction - bool m_bJumpedThisTick; // something to do with basevelocity and the tick the player jumps - bool m_bOnGround; - bool m_bShouldApplyGravity; + float m_flFrictionDecel; + bool m_bInAir; bool m_bGameCodeMovedPlayer; // true if usercmd cmd number == (m_nGameCodeHasMovedPlayerAfterCommand + 1) }; -static_assert(sizeof(CMoveData) == 256, "Class didn't match expected size"); \ No newline at end of file +static_assert(sizeof(CMoveData) == 296, "Class didn't match expected size"); \ No newline at end of file From ff823a3d3b7585106c501f57753c8a6742971cd9 Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 01:45:08 +0300 Subject: [PATCH 4/7] Revert "Take CMoveData from cs2kz-metamod" This reverts commit 63723296291abf6e10b4f3f995bfccf096b542d0. --- src/cs2_sdk/entity/services.h | 61 ++++++++++++++++------------------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/src/cs2_sdk/entity/services.h b/src/cs2_sdk/entity/services.h index 2d73b851..9e56e68c 100644 --- a/src/cs2_sdk/entity/services.h +++ b/src/cs2_sdk/entity/services.h @@ -261,14 +261,15 @@ struct SubtickMove bool pressed; }; -class CMoveDataBase +// Size: 0xE8 +class CMoveData { public: - CMoveDataBase() = default; - CMoveDataBase(const CMoveDataBase &source) + CMoveData() = default; + + CMoveData(const CMoveData &source) // clang-format off - : m_bHasZeroFrametime {source.m_bHasZeroFrametime}, - m_bIsLateCommand {source.m_bIsLateCommand}, + : moveDataFlags {source.moveDataFlags}, m_nPlayerHandle {source.m_nPlayerHandle}, m_vecAbsViewAngles {source.m_vecAbsViewAngles}, m_vecViewAngles {source.m_vecViewAngles}, @@ -278,16 +279,23 @@ class CMoveDataBase m_flUpMove {source.m_flUpMove}, m_vecVelocity {source.m_vecVelocity}, m_vecAngles {source.m_vecAngles}, - m_vecUnknown {source.m_vecUnknown}, m_bHasSubtickInputs {source.m_bHasSubtickInputs}, - unknown {source.unknown}, m_collisionNormal {source.m_collisionNormal}, - m_groundNormal {source.m_groundNormal}, + m_groundNormal {source.m_groundNormal}, m_vecAbsOrigin {source.m_vecAbsOrigin}, m_nTickCount {source.m_nTickCount}, m_nTargetTick {source.m_nTargetTick}, + m_flSubtickEndFraction {source.m_flSubtickEndFraction}, m_flSubtickStartFraction {source.m_flSubtickStartFraction}, - m_flSubtickEndFraction {source.m_flSubtickEndFraction} + m_outWishVel {source.m_outWishVel}, + m_vecOldAngles {source.m_vecOldAngles}, + m_flMaxSpeed {source.m_flMaxSpeed}, + m_flClientMaxSpeed {source.m_flClientMaxSpeed}, + m_flSubtickAccelSpeed {source.m_flSubtickAccelSpeed}, + m_bJumpedThisTick {source.m_bJumpedThisTick}, + m_bOnGround {source.m_bOnGround}, + m_bShouldApplyGravity {source.m_bShouldApplyGravity}, + m_bGameCodeMovedPlayer {source.m_bGameCodeMovedPlayer} // clang-format on { for (int i = 0; i < source.m_AttackSubtickMoves.Count(); i++) @@ -322,8 +330,7 @@ class CMoveDataBase } public: - bool m_bHasZeroFrametime: 1; - bool m_bIsLateCommand: 1; + uint8_t moveDataFlags; CHandle m_nPlayerHandle; QAngle m_vecAbsViewAngles; QAngle m_vecViewAngles; @@ -332,42 +339,28 @@ class CMoveDataBase float m_flSideMove; // Warning! Flipped compared to CS:GO, moving right gives negative value float m_flUpMove; Vector m_vecVelocity; - QAngle m_vecAngles; - Vector m_vecUnknown; + Vector m_vecAngles; CUtlVector m_SubtickMoves; CUtlVector m_AttackSubtickMoves; bool m_bHasSubtickInputs; - float unknown; // Set to 1.0 during SetupMove, never change during gameplay. Is apparently used for weapon services stuff. CUtlVector m_TouchList; Vector m_collisionNormal; Vector m_groundNormal; // unsure Vector m_vecAbsOrigin; int32_t m_nTickCount; int32_t m_nTargetTick; - float m_flSubtickStartFraction; float m_flSubtickEndFraction; -}; - -class CMoveData : public CMoveDataBase -{ -public: - CMoveData() = default; - - CMoveData(const CMoveData &source) - : CMoveDataBase(source), m_outWishVel {source.m_outWishVel}, m_vecOldAngles {source.m_vecOldAngles}, - m_vecAccelPerSecond {source.m_vecAccelPerSecond}, m_vecInputRotated {source.m_vecInputRotated}, m_flMaxSpeed {source.m_flMaxSpeed} - { - } - + float m_flSubtickStartFraction; + bool m_nGameModeMovedPlayer; Vector m_outWishVel; - QAngle m_vecOldAngles; - Vector m_vecAccelPerSecond; // related to accel and friction - Vector m_vecInputRotated; + Vector m_vecOldAngles; float m_flMaxSpeed; float m_flClientMaxSpeed; - float m_flFrictionDecel; - bool m_bInAir; + float m_flSubtickAccelSpeed; // Related to ground acceleration subtick stuff with sv_stopspeed and friction + bool m_bJumpedThisTick; // something to do with basevelocity and the tick the player jumps + bool m_bOnGround; + bool m_bShouldApplyGravity; bool m_bGameCodeMovedPlayer; // true if usercmd cmd number == (m_nGameCodeHasMovedPlayerAfterCommand + 1) }; -static_assert(sizeof(CMoveData) == 296, "Class didn't match expected size"); \ No newline at end of file +static_assert(sizeof(CMoveData) == 256, "Class didn't match expected size"); \ No newline at end of file From 54988119cafe7a384ace702f8047436e10975181 Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 02:23:51 +0300 Subject: [PATCH 5/7] Update PassesTriggerFilters offset --- gamedata/cs2fixes.games.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gamedata/cs2fixes.games.txt b/gamedata/cs2fixes.games.txt index 414b27e1..dbae9c83 100644 --- a/gamedata/cs2fixes.games.txt +++ b/gamedata/cs2fixes.games.txt @@ -274,8 +274,8 @@ } "PassesTriggerFilters" { - "windows" "269" - "linux" "270" + "windows" "271" + "linux" "272" } "CCSPlayerController_Respawn" { From ff2dd979b2c742c24d0798b98eeae5aab2134d4c Mon Sep 17 00:00:00 2001 From: Interesting-exe <52731127+Interesting-exe@users.noreply.github.com> Date: Fri, 17 Oct 2025 02:26:38 +0300 Subject: [PATCH 6/7] Update CMoveData using cs2kz-metamod as reference --- src/cs2_sdk/entity/services.h | 61 +++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/src/cs2_sdk/entity/services.h b/src/cs2_sdk/entity/services.h index 9e56e68c..2d73b851 100644 --- a/src/cs2_sdk/entity/services.h +++ b/src/cs2_sdk/entity/services.h @@ -261,15 +261,14 @@ struct SubtickMove bool pressed; }; -// Size: 0xE8 -class CMoveData +class CMoveDataBase { public: - CMoveData() = default; - - CMoveData(const CMoveData &source) + CMoveDataBase() = default; + CMoveDataBase(const CMoveDataBase &source) // clang-format off - : moveDataFlags {source.moveDataFlags}, + : m_bHasZeroFrametime {source.m_bHasZeroFrametime}, + m_bIsLateCommand {source.m_bIsLateCommand}, m_nPlayerHandle {source.m_nPlayerHandle}, m_vecAbsViewAngles {source.m_vecAbsViewAngles}, m_vecViewAngles {source.m_vecViewAngles}, @@ -279,23 +278,16 @@ class CMoveData m_flUpMove {source.m_flUpMove}, m_vecVelocity {source.m_vecVelocity}, m_vecAngles {source.m_vecAngles}, + m_vecUnknown {source.m_vecUnknown}, m_bHasSubtickInputs {source.m_bHasSubtickInputs}, + unknown {source.unknown}, m_collisionNormal {source.m_collisionNormal}, - m_groundNormal {source.m_groundNormal}, + m_groundNormal {source.m_groundNormal}, m_vecAbsOrigin {source.m_vecAbsOrigin}, m_nTickCount {source.m_nTickCount}, m_nTargetTick {source.m_nTargetTick}, - m_flSubtickEndFraction {source.m_flSubtickEndFraction}, m_flSubtickStartFraction {source.m_flSubtickStartFraction}, - m_outWishVel {source.m_outWishVel}, - m_vecOldAngles {source.m_vecOldAngles}, - m_flMaxSpeed {source.m_flMaxSpeed}, - m_flClientMaxSpeed {source.m_flClientMaxSpeed}, - m_flSubtickAccelSpeed {source.m_flSubtickAccelSpeed}, - m_bJumpedThisTick {source.m_bJumpedThisTick}, - m_bOnGround {source.m_bOnGround}, - m_bShouldApplyGravity {source.m_bShouldApplyGravity}, - m_bGameCodeMovedPlayer {source.m_bGameCodeMovedPlayer} + m_flSubtickEndFraction {source.m_flSubtickEndFraction} // clang-format on { for (int i = 0; i < source.m_AttackSubtickMoves.Count(); i++) @@ -330,7 +322,8 @@ class CMoveData } public: - uint8_t moveDataFlags; + bool m_bHasZeroFrametime: 1; + bool m_bIsLateCommand: 1; CHandle m_nPlayerHandle; QAngle m_vecAbsViewAngles; QAngle m_vecViewAngles; @@ -339,28 +332,42 @@ class CMoveData float m_flSideMove; // Warning! Flipped compared to CS:GO, moving right gives negative value float m_flUpMove; Vector m_vecVelocity; - Vector m_vecAngles; + QAngle m_vecAngles; + Vector m_vecUnknown; CUtlVector m_SubtickMoves; CUtlVector m_AttackSubtickMoves; bool m_bHasSubtickInputs; + float unknown; // Set to 1.0 during SetupMove, never change during gameplay. Is apparently used for weapon services stuff. CUtlVector m_TouchList; Vector m_collisionNormal; Vector m_groundNormal; // unsure Vector m_vecAbsOrigin; int32_t m_nTickCount; int32_t m_nTargetTick; - float m_flSubtickEndFraction; float m_flSubtickStartFraction; - bool m_nGameModeMovedPlayer; + float m_flSubtickEndFraction; +}; + +class CMoveData : public CMoveDataBase +{ +public: + CMoveData() = default; + + CMoveData(const CMoveData &source) + : CMoveDataBase(source), m_outWishVel {source.m_outWishVel}, m_vecOldAngles {source.m_vecOldAngles}, + m_vecAccelPerSecond {source.m_vecAccelPerSecond}, m_vecInputRotated {source.m_vecInputRotated}, m_flMaxSpeed {source.m_flMaxSpeed} + { + } + Vector m_outWishVel; - Vector m_vecOldAngles; + QAngle m_vecOldAngles; + Vector m_vecAccelPerSecond; // related to accel and friction + Vector m_vecInputRotated; float m_flMaxSpeed; float m_flClientMaxSpeed; - float m_flSubtickAccelSpeed; // Related to ground acceleration subtick stuff with sv_stopspeed and friction - bool m_bJumpedThisTick; // something to do with basevelocity and the tick the player jumps - bool m_bOnGround; - bool m_bShouldApplyGravity; + float m_flFrictionDecel; + bool m_bInAir; bool m_bGameCodeMovedPlayer; // true if usercmd cmd number == (m_nGameCodeHasMovedPlayerAfterCommand + 1) }; -static_assert(sizeof(CMoveData) == 256, "Class didn't match expected size"); \ No newline at end of file +static_assert(sizeof(CMoveData) == 296, "Class didn't match expected size"); \ No newline at end of file From 8181e632ab268b0de04f8a2fa7bff765ad459b01 Mon Sep 17 00:00:00 2001 From: rcnoob <139053812+rcnoob@users.noreply.github.com> Date: Thu, 16 Oct 2025 19:54:28 -0400 Subject: [PATCH 7/7] Update sdk --- sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk b/sdk index 8e3da65b..84a823db 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit 8e3da65bdf33e2dfb04ad57208e85ffc9e93c048 +Subproject commit 84a823db042b49d2f6934b770dafbf3a366cef26