From 241ecd7aeb319688dc80d0b98af6fbe01810b858 Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Thu, 9 Jul 2026 07:32:31 +0200 Subject: [PATCH 1/3] Some fixes after update (windows only now) --- AMBuilder | 1 + cs_scriptExt.cs2.vcxproj | 1 + gamedata/cs_scriptExt.games.txt | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/AMBuilder b/AMBuilder index 3d1a307..1a67d44 100644 --- a/AMBuilder +++ b/AMBuilder @@ -76,6 +76,7 @@ for sdk_target in MMSPlugin.sdk_targets: os.path.join(sdk['path'], 'common', 'source2_steam_stats.proto'), os.path.join(sdk['path'], 'common', 'netmessages.proto'), os.path.join(sdk['path'], 'common', 'networkbasetypes.proto'), + os.path.join(sdk['path'], 'common', 'valveextensions.proto'), os.path.join(sdk['path'], 'game', 'shared', 'usermessages.proto'), os.path.join(sdk['path'], 'networksystem', 'networksystem_protomessages.proto'), ]) diff --git a/cs_scriptExt.cs2.vcxproj b/cs_scriptExt.cs2.vcxproj index b75c1c8..4fa3094 100644 --- a/cs_scriptExt.cs2.vcxproj +++ b/cs_scriptExt.cs2.vcxproj @@ -40,6 +40,7 @@ sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\common" -I sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\common\netmessages.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\netmessages.proto.d" sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\common\networkbasetypes.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\networkbasetypes.proto.d" sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\common\engine_gcmessages.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\engine_gcmessages.proto.d" +sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\common\valveextensions.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\valveextensions.proto.d" sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\gcsdk" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\gcsdks\hl2sdk-cs2\steammessages.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\steammessages.proto.d" sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\gcsdk" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\gcsdks\hl2sdk-cs2\gcsdk_gcmessages.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\gcsdk_gcmessages.proto.d" sdks\hl2sdk-cs2\devtools\bin\protoc.exe --proto_path="sdks\hl2sdk-cs2\game\shared" -I="sdks\hl2sdk-cs2\thirdparty/protobuf-3.21.8/src" -I="sdks\hl2sdk-cs2\public" -I="sdks\hl2sdk-cs2\public/engine" -I="sdks\hl2sdk-cs2\public/mathlib" -I="sdks\hl2sdk-cs2\public/tier0" -I="sdks\hl2sdk-cs2\public/tier1" -I="sdks\hl2sdk-cs2\public/entity2" -I="sdks\hl2sdk-cs2\public/game/server" -I="sdks\hl2sdk-cs2\game/shared" -I="sdks\hl2sdk-cs2\game/server" -I="sdks\hl2sdk-cs2\common" -I="sdks\hl2sdk-cs2\gcsdk" -I="E:\Projekty\CSGO\cs2\ScriptExtensions\." --cpp_out="$(ProjectDir)cs_scriptExt.cs2 - Default" "sdks\hl2sdk-cs2\game\shared\gameevents.proto" --dependency_out="$(ProjectDir)cs_scriptExt.cs2 - Default\gameevents.proto.d" diff --git a/gamedata/cs_scriptExt.games.txt b/gamedata/cs_scriptExt.games.txt index 0719fcb..af593fb 100644 --- a/gamedata/cs_scriptExt.games.txt +++ b/gamedata/cs_scriptExt.games.txt @@ -122,9 +122,9 @@ "windows" "\x8B\x05\x2A\x2A\x2A\x2A\x85\xC0\x7E\x2A\xFF\xC8\x48\x63\xC8\x48\x8B\x2A\x2A\x2A\x2A\x01\x48\x8B\x04\xC8\xC3" "linux" "\x8B\x05\x2A\x2A\x2A\x2A\x31\xD2\x85\xC0" } - // Look for string "OutputConnection:" + // Look for xrefs to string "OutputConnection:" // There you'll see an object being created with some string values, like 'activator' etc... - // The function right before the one using a string is creating the actual V8 object by just passing in an entity handle. + // The function right before the one using a string (like 'activator') is creating the actual V8 object by just passing in an entity handle. // On Windows you'll certainly see a few string here that are cs_script's classes. // On Linux these seem to be separated into a few subroutines. "CSScript_AssignEntityToObject" @@ -139,16 +139,23 @@ "CSScript_CreateEntityObjectFromTemplate" { "library" "server" - "windows" "\x48\x89\x5C\x24\x2A\x55\x56\x57\x48\x83\xEC\x2A\x49\x8B\xE8" + "windows" "\x48\x89\x5C\x24\x2A\x55\x56\x57\x48\x83\xEC\x2A\x49\x8B\xE8\x48\xC7\x44\x24" "linux" "\xE8\x2A\x2A\x2A\x2A\x48\x8B\x7D\x2A\x4C\x89\xE2\xBE\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x4C\x8B\x6D\x2A\xE8\x2A\x2A\x2A\x2A\x4C\x89\xE6\x48\x89\xC7\xE8\x2A\x2A\x2A\x2A\xBE\x2A\x2A\x2A\x2A\x4C\x89\xEF\x48\x89\xC2\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xBE" } - // the function is the one containing these strings: "Loading script", ".vts_c", "Invalid script." + // the function is the one containing these strings: "Loading script", "Failed to compile cs_script" "CSScript_RunScript" { "library" "server" - "windows" "\x48\x89\x5C\x24\x2A\x55\x56\x57\x41\x54\x41\x55\x41\x56\x41\x57\x48\x8D\x6C\x24\x2A\x48\x81\xEC\x2A\x2A\x2A\x2A\x48\x8B\xDA\x4C\x8B\xF9" + "windows" "\x48\x8B\xC4\x55\x53\x56\x41\x54\x48\x8D\x68" "linux" "\x55\x48\x89\xE5\x41\x57\x41\x56\x49\x89\xF6\xBE\x2A\x2A\x2A\x2A\x41\x55\x49\x89\xFD" } + + "IsJumpThrow" + { + "library" "server" + "windows" "\x40\x53\x48\x83\xEC\x2A\x48\x8B\x51\x2A\x48\x8B\xD9\x0F\x29\x74\x24\x2A\x48\x8D\x4C\x24\x2A\x0F\x28\xF1\x8B\x52\x2A\xE8\x2A\x2A\x2A\x2A\x0F\x28\xD6\x48\x8D\x54\x24\x2A\x48\x8D\x4C\x24\x2A\xE8\x2A\x2A\x2A\x2A\x48\x8B\xC8" + "linux" "\x55\x48\x89\xE5\x53\x48\x89\xFB\x48\x83\xEC\x2A\x48\x8B\x47\x2A\xF3\x0F\x11\x45\x2A\x8B\x78\x2A\xE8\x2A\x2A\x2A\x2A\xF3\x0F\x58\x45\x2A\x31\xC0" + } } "Offsets" { From 6b2927b8ba051e1ed8bdf00f0340798cc8d427ae Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Thu, 9 Jul 2026 12:45:37 +0200 Subject: [PATCH 2/3] Update SDK --- sdks/hl2sdk-cs2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdks/hl2sdk-cs2 b/sdks/hl2sdk-cs2 index a664950..41d5adc 160000 --- a/sdks/hl2sdk-cs2 +++ b/sdks/hl2sdk-cs2 @@ -1 +1 @@ -Subproject commit a664950956626e7690ee9c84f37a18ccbeb6fc7a +Subproject commit 41d5adc58d9ef45b3de02fb32275c50efcb55cef From 9f69e33aed3c9d44c34630e0b774ec4e6076f140 Mon Sep 17 00:00:00 2001 From: Lion Doge Date: Thu, 9 Jul 2026 14:14:26 +0200 Subject: [PATCH 3/3] Update signatures and offsets for Linux --- gamedata/cs_scriptExt.games.txt | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/gamedata/cs_scriptExt.games.txt b/gamedata/cs_scriptExt.games.txt index af593fb..9170862 100644 --- a/gamedata/cs_scriptExt.games.txt +++ b/gamedata/cs_scriptExt.games.txt @@ -23,7 +23,7 @@ { "library" "server" "windows" "\x48\x89\x5C\x24\x2A\x48\x89\x74\x24\x2A\x57\x48\x83\xEC\x2A\x49\x8B\xF0\x48\x8B\xD9\x48\x8B\x0D" - "linux" "\x55\x48\x89\xF0\x48\x89\xE5\x41\x57\x49\x89\xFF\x41\x56\x48\x8D\x7D" + "linux" "\x55\x48\x89\xE5\x41\x56\x49\x89\xFE\x41\x55\x48\x8D\x7D" } // "multi_manager" is passed to this "CGameEntitySystem_FindEntityByClassName" @@ -147,14 +147,7 @@ { "library" "server" "windows" "\x48\x8B\xC4\x55\x53\x56\x41\x54\x48\x8D\x68" - "linux" "\x55\x48\x89\xE5\x41\x57\x41\x56\x49\x89\xF6\xBE\x2A\x2A\x2A\x2A\x41\x55\x49\x89\xFD" - } - - "IsJumpThrow" - { - "library" "server" - "windows" "\x40\x53\x48\x83\xEC\x2A\x48\x8B\x51\x2A\x48\x8B\xD9\x0F\x29\x74\x24\x2A\x48\x8D\x4C\x24\x2A\x0F\x28\xF1\x8B\x52\x2A\xE8\x2A\x2A\x2A\x2A\x0F\x28\xD6\x48\x8D\x54\x24\x2A\x48\x8D\x4C\x24\x2A\xE8\x2A\x2A\x2A\x2A\x48\x8B\xC8" - "linux" "\x55\x48\x89\xE5\x53\x48\x89\xFB\x48\x83\xEC\x2A\x48\x8B\x47\x2A\xF3\x0F\x11\x45\x2A\x8B\x78\x2A\xE8\x2A\x2A\x2A\x2A\xF3\x0F\x58\x45\x2A\x31\xC0" + "linux" "\x55\x48\x89\xE5\x41\x57\x41\x56\x41\x55\x41\x54\x49\x89\xFC\x53\x48\x81\xEC\x2A\x2A\x2A\x2A\x8B\x3D" } } "Offsets" @@ -224,8 +217,8 @@ } "CCSPlayerController_Respawn" { - "windows" "273" - "linux" "275" + "windows" "270" + "linux" "272" } // CBaseTrigger "PassesTriggerFilters" @@ -244,8 +237,8 @@ // 2976 (372 * 8) is the offset "CBasePlayerPawn_CommitSuicide" { - "windows" "390" - "linux" "390" + "windows" "384" + "linux" "384" } "GameEntitySystem" {