Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7149512
Simplify forced next map & FinishVote flows
Vauff May 21, 2026
ad89e67
Fix weapon parented entities migration being reset on some entities
Vauff May 22, 2026
93045c5
Migrate discord bot config to JSONC
Vauff May 22, 2026
be25b86
Remove KV1 admin config converter
Vauff May 22, 2026
ff451b8
Add a mode to zsounds to only hear infect scream (#446)
tilgep May 23, 2026
173fcb9
Add !motherzombies command (#447)
tilgep Jun 1, 2026
ced74d2
feat: duck spam (#448)
2vg Jun 2, 2026
9b1f777
Convert remaining unnecessary CUtlVector usages
Vauff Jun 4, 2026
3b486ca
Push fix may no longer need subtick movement disabled
Vauff Jun 24, 2026
ee2a118
Replace UTIL_Remove gamedata with runtime lookup
Vauff Jun 25, 2026
e55c96e
Fix Spawn hook crash after SDK update
Vauff Jun 25, 2026
ed2c286
Re-add support for full view angles in Teleport
Vauff Jun 25, 2026
3077bec
Split CMapMigrations::OnEntitySpawned into pre/post
Vauff Jun 25, 2026
cf6a9cf
Add !voicechat command (#451)
Faramour Jun 26, 2026
2e103e5
Fix health regen interval being accessed as an int
Vauff Jun 29, 2026
8d95caf
Add !mz alias
Vauff Jun 29, 2026
5516223
Prevent beacon spam
Vauff Jun 29, 2026
38bebf3
Include recent VC users in !voicechat as well
Vauff Jul 3, 2026
51370d5
Update signatures for 2026-07-08 CS2 update
Vauff Jul 9, 2026
111229b
Update SDK
Vauff Jul 9, 2026
a74093e
Update offsets for 2026-07-08 CS2 update
Vauff Jul 9, 2026
f6de81c
Fix compile errors
Vauff Jul 9, 2026
eddd4b7
Update CTakeDamageResult
Vauff Jul 9, 2026
740d354
Move m_flSpeed schema field
Vauff Jul 9, 2026
bc6393c
Update AddEntityIOEvent args too
Vauff Jul 9, 2026
e897446
remove todo comment
Vauff Jul 9, 2026
0f4cd74
Fix CGlowProperty's NetworkStateChanged
xen-000 Jul 9, 2026
3c1ac66
Update SDK
Vauff Jul 9, 2026
b9d8231
Update README (#452)
notkoen Jul 10, 2026
92ca0b7
Add prop damage multiplier configuration
Vauff Jul 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AMBuilder
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ for sdk_target in MMSPlugin.sdk_targets:
]

protoc_builder = builder.tools.Protoc(protoc = sdk_target.protoc, sources = [
os.path.join(sdk['path'], 'common', 'valveextensions.proto'),
os.path.join(sdk['path'], 'common', 'network_connection.proto'),
os.path.join(sdk['path'], 'common', 'source2_steam_stats.proto'),
os.path.join(sdk['path'], 'common', 'netmessages.proto'),
Expand Down
2 changes: 1 addition & 1 deletion PackageScript
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ for task in MMSPlugin.binaries:
mapcfg_folder = builder.AddFolder(os.path.join(packages[sdk_name].sdk_name, 'cfg', MMSPlugin.metadata['name'], 'maps'))
gamedata_folder = builder.AddFolder(os.path.join(packages[sdk_name].sdk_name, 'addons', MMSPlugin.metadata['name'], 'gamedata'))
builder.AddCopy(os.path.join('configs', 'admins.jsonc.example'), configs_folder)
builder.AddCopy(os.path.join('configs', 'discordbots.cfg.example'), configs_folder)
builder.AddCopy(os.path.join('configs', 'discordbots.jsonc.example'), configs_folder)
builder.AddCopy(os.path.join('configs', 'maplist.jsonc.example'), configs_folder)
builder.AddCopy(os.path.join('cfg', MMSPlugin.metadata['name'], 'cs2fixes.cfg'), cfg_folder)
builder.AddCopy(os.path.join('cfg', MMSPlugin.metadata['name'], 'maps', 'de_somemap.cfg'), mapcfg_folder)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ CS2Fixes is a Metamod plugin with fixes and features aimed but not limited to zo
- Download the [latest release package](https://github.com/Source2ZE/CS2Fixes/releases) for your OS
- Extract the package contents into `game/csgo` on your server
- Configure the plugin cvars as desired in `cfg/cs2fixes/cs2fixes.cfg`, many features are disabled by default
- OPTIONAL: If you want to setup admins, rename `admins.cfg.example` to `admins.cfg` which can be found in `addons/cs2fixes/configs` and follow the instructions within to add admins
- OPTIONAL: If you want to setup admins, rename `admins.jsonc.example` to `admins.jsonc` which can be found in `addons/cs2fixes/configs` and follow the instructions within to add admins

## Fixes and Features
You can find the documentation of the fixes and features [here](../../wiki/Home).
Expand Down
6 changes: 4 additions & 2 deletions cfg/cs2fixes/cs2fixes.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cs2f_stopsound_enable 0 // Whether to enable stopsound
cs2f_noblock_enable 0 // Whether to use player noblock, which sets debris collision on every player
cs2f_noblock_grenades 0 // Whether to use noblock on grenade projectiles
cs2f_block_team_messages 0 // Whether to block team join messages
cs2f_movement_unlocker_enable 0 // Whether to enable movement unlocker
cs2f_movement_unlocker_enable 0 // Whether to enable movement unlocker, clients will not predict
cs2f_use_old_push 0 // Whether to use the old CSGO trigger_push behavior (Necessary for surf and other modes that heavily use ported pushes)
cs2f_hide_enable 0 // Whether to enable hide (WARNING: randomly crashes clients since 2023-12-13 CS2 update)
cs2f_votemanager_enable 0 // Whether to enable votemanager features such as map vote fix, nominations, RTV and extends
Expand All @@ -26,6 +26,7 @@ cs2f_fix_game_bans 0 // Whether to fix CS2 game bans spreading to all new jo
cs2f_free_armor 0 // Whether kevlar (1+) and/or helmet (2) are given automatically
cs2f_block_particle_msgs 0 // Whether to block CUserMsg_ParticleManager messages to fix lag/crashes, experimental
cs2f_disable_setmodel 0 // Whether to disable SetModel usage from maps (custom input, cs_script function)
cs2f_allow_duck_spam 0 // Whether to allow duck spamming by removing the duck slowdown, clients will only partially predict [0 = disabled, 1 = both teams, 2 = T only, 3 = CT only]

cs2f_beacon_particle "particles/cs2fixes/admin_beacon.vpcf" // .vpcf file to be precached and used for player beacon
cs2f_motd_url "" // Server MOTD URL, shows up as a "Server Website" button in scoreboard
Expand All @@ -45,10 +46,11 @@ cs2f_flashlight_color "255 255 255 0" // What color to use for flashlights
cs2f_flashlight_attachment "clip_limit" // Which attachment to parent a flashlight to
cs2f_flashlight_particle "particles/cs2fixes/simple_flashlight.vpcf" // Path to flashlight particle

// Damage block settings
// Damage settings
cs2f_block_molotov_self_dmg 0 // Whether to block self-damage from molotovs
cs2f_block_all_dmg 0 // Whether to block all damage to players
cs2f_fix_block_dmg 0 // Whether to fix block-damage on players
cs2f_prop_dmg_scale 1.0 // Multiplier on prop damage

// Custom burn settings
cs2f_burn_particle "particles/cs2fixes/napalm_fire.vpcf" // The particle to use for burning players
Expand Down
14 changes: 0 additions & 14 deletions configs/discordbots.cfg.example

This file was deleted.

13 changes: 13 additions & 0 deletions configs/discordbots.jsonc.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"YourFirstBot":
{
"webhook": "DISCORD_WEBHOOK_1",
"override_name": false
},
"YourSecondBot":
{
"webhook": "DISCORD_WEBHOOK_2",
"avatar": "AVATAR_IMAGE_2",
"override_name": true
}
}
97 changes: 49 additions & 48 deletions gamedata/cs2fixes.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
{
"library": "engine",
"windows": "40 53 48 83 EC ? 48 8B D9 3B 51",
"linux": "55 48 89 E5 41 56 41 55 41 54 53 48 89 FB 39 77"
"linux": "55 48 89 E5 41 55 41 54 53 48 89 FB 48 83 EC ? 39 77"
},
// idk a good way to find this again, i just brute forced the vtable. offset is 136 on CTriggerPush
"TriggerPush_Touch":
{
"library": "server",
"windows": "40 55 53 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B 02 48 8B F9",
"windows": "40 55 53 57 48 8B EC 48 81 EC ? ? ? ? 48 8B 02",
"linux": "55 48 89 E5 41 57 41 56 41 55 49 89 F5 41 54 53 48 89 FB 48 83 EC ? E8 ? ? ? ? 84 C0"
},
// this is called in CTriggerPush::Touch, using IDA pseudocode look in an `if ( ( v & 0x80 ) != 0 )` and then `if ( v > 0.0 ) SetGroundEntity()`
Expand Down Expand Up @@ -56,13 +56,6 @@
"windows": "C8 42 EB ? 4C 8B 77 ? 4D 39 66",
"linux": "C8 42 41 C7 85 ? ? ? ? ? ? ? ? 41 C7 85 ? ? ? ? ? ? ? ? E9"
},
// Called right after "Removed %s(%s)\n"
"UTIL_Remove":
{
"library": "server",
"windows": "48 85 C9 74 ? 48 8B D1 48 8B 0D ? ? ? ?",
"linux": "48 89 FE 48 85 FF 74 ? 48 8D 05 ? ? ? ? 48"
},
// "SetPosition" is passed to this
"CEntitySystem_AddEntityIOEvent":
{
Expand All @@ -75,14 +68,14 @@
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 49 8B F0 48 8B D9 48 8B 0D",
"linux": "55 48 89 F0 48 89 E5 41 57 49 89 FF 41 56 48 8D 7D"
"linux": "55 48 89 E5 41 56 49 89 FE 41 55 48 8D 7D"
},
// Called by CEntityInstance_AcceptInput
"CEntityIdentity_AcceptInput":
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 48 8B 02",
"linux": "55 49 89 D3 48 89 E5 41 57 45 89 CF 41 56"
"windows": "48 89 5C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B 02",
"linux": "55 48 89 E5 41 57 41 56 4C 8D BD ? ? ? ? 4D 89 CE"
},
// func_pushable inside CTriggerBrush::Use calls CEntityIOOutput::FireOutputInternal
// Windows - https://imgur.com/a/A3zcxQm
Expand Down Expand Up @@ -113,13 +106,13 @@
{
"library": "server",
"windows": "40 55 53 56 57 41 54 48 8D 6C 24 ? 48 81 EC ? ? ? ? 4D 8B E0",
"linux": "55 48 89 E5 41 57 41 56 41 55 49 89 FD 31 FF"
"linux": "55 66 0F EF C0 48 89 E5 41 57 41 56 41 55 49 89 FD 31 FF"
},
// Should be xref'd right above "flGravity", takes a float arg
"CBaseEntity::SetGravityScale":
{
"library": "server",
"windows": "48 89 5C 24 ? 57 48 83 EC ? F3 0F 10 81 ? ? ? ? 48 8B F9 0F 29 74 24 ? 0F 28 F1 0F 2E C6 7A ? 74",
"windows": "48 89 5C 24 ? 57 48 83 EC ? F3 0F 10 81 ? ? ? ? 48 8B F9 0F 29 74 24 ? 0F 28 F1 0F 2E C6 7A ? 74 ? BA ? ? ? ? 41 B8 ? ? ? ? 48 81 C1 ? ? ? ? E8 ? ? ? ? 48 8B CF F3 0F 11 B7 ? ? ? ? E8 ? ? ? ? 48 8B 5C 24 ? 0F 28 74 24 ? 48 83 C4 ? 5F C3 CC CC CC CC CC 48 89 5C 24",
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 53 48 89 FB 48 81 EC ? ? ? ? 0F 2E 87 ? ? ? ? 7A ? 75 ? 48 81 C4 ? ? ? ? 5B 41 5C 41 5D 41 5E 41 5F 5D C3 0F 1F 40 ? 31 C9 BE ? ? ? ? 66 0F EF C9 F3 0F 11 85 ? ? ? ? 48 8D BD ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 0F 29 8D ? ? ? ? 4C 8D A5 ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? C7 85 ? ? ? ? ? ? ? ? 66 89 8D ? ? ? ? E8 ? ? ? ? 48 8B 85 ? ? ? ? 48 8D 15 ? ? ? ? 83 85 ? ? ? ? ? F3 0F 10 85 ? ? ? ? C7 00 ? ? ? ? 48 8B 03 48 8B 80 ? ? ? ? 48 39 D0 0F 85 ? ? ? ? 8B 95 ? ? ? ? 4C 8D 7B ? 85 D2 0F 85 ? ? ? ? 80 BB ? ? ? ? ? 75"
},
// "Game System %s is defined twice!\n"
Expand Down Expand Up @@ -157,8 +150,8 @@
"CNavMesh_GetNearestNavArea":
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 4C 8B 2D",
"linux": "55 48 89 E5 41 57 49 89 D7 41 56 41 55 49 89 FD 41 54 4D 89 C4"
"windows": "48 89 5C 24 ? 44 89 4C 24 ? 48 89 54 24 ? 48 89 4C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24",
"linux": "55 48 89 E5 41 57 49 89 FF 41 56 41 89 CE"
},
// Has "SetModel" string, but is also referenced by cs_script registration function using the same string
"CS_Script_SetModel":
Expand All @@ -175,16 +168,17 @@
"windows": "40 53 48 83 EC ? 48 8B D9 4C 8B C2 48 8B 0D ? ? ? ? 48 8D 54 24 ? 48 8B 01 FF 50 ? 48 8B 54 24 ? 48 8B CB E8 ? ? ? ? 48 83 C4 ? 5B C3 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC 48 89 5C 24",
"linux": "55 48 89 E5 53 48 89 FB 48 83 EC ? 48 8D 05 ? ? ? ? 48 8B 38 48 8B 07 FF 50 ? 48 89 DF 48 8B 5D ? C9 48 89 C6 E9 ? ? ? ? CC CC CC CC 55"
},
// "TerminateRound"
"CGameRules_TerminateRound":
{
"library": "server",
"windows": "48 8B C4 4C 89 48 ? 48 89 48 ? 55 56 41 56",
"linux": "55 48 89 E5 41 57 49 89 FF 41 56 41 55 41 54 53 48 81 EC ? ? ? ? 48 8D 05 ? ? ? ? F3 0F 11 85"
"windows": "48 8B C4 4C 89 48 ? 48 89 48 ? 55 41 54",
"linux": "55 48 89 E5 41 57 41 89 F7 41 56 48 8D 35"
},
"CCSPlayer_WeaponServices_CanUse":
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 54 41 55 41 56 41 57 48 83 EC ? 48 8B 01 48 8B FA",
"windows": "48 89 5C 24 ? 48 89 6C 24 ? 56 57 41 54 41 56 41 57 48 83 EC ? 48 8B 01 48 8B FA",
"linux": "55 48 8D 15 ? ? ? ? 48 89 E5 41 55 41 54 49 89 FC 53 48 89 F3 48 83 EC ? 48 8B 07 48 8B 80"
},
"CCSPlayer_WeaponServices_EquipWeapon":
Expand Down Expand Up @@ -274,8 +268,8 @@
"CGamePlayerEquip_InputTriggerForAllPlayers":
{
"library": "server",
"windows": "40 55 53 41 54 41 56 48 8B EC 48 83 EC ? 4C 8B F1",
"linux": "55 48 89 E5 41 57 41 56 41 55 49 89 FD 41 54 53 48 83 EC ? E8 ? ? ? ? C7 45"
"windows": "48 89 5C 24 ? 48 89 74 24 ? 55 57 41 54 41 56 41 57 48 8B EC 48 83 EC ? 4C 8B F1",
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 49 89 FC 53 48 83 EC ? E8 ? ? ? ? C7 45 ? ? ? ? ? 89 C7 66 89 45 ? 66 83 F8 ? 75 ? 48 C7 45 ? ? ? ? ? 66 83 FF ? 0F 84 ? ? ? ? 0F B7 7D ? E8 ? ? ? ? 66 89 45 ? 66 83 F8 ? 0F 84 ? ? ? ? 89 C7 E8 ? ? ? ? 0F B7 7D ? 48 89 C3 48 85 C0 74 ? 48 89 C7 E8 ? ? ? ? 48 8D 7D ? 48 89 C6 E8 ? ? ? ? 0F B7 7D ? 84 C0 0F 85 ? ? ? ? EB ? 66 0F 1F 44 00 ? E8 ? ? ? ? 48 89 C3 48 85 C0 0F 84 ? ? ? ? 48 89 C7 E8 ? ? ? ? 48 8D 7D ? 48 89 C6 E8 ? ? ? ? 84 C0 0F 84 ? ? ? ? 0F B7 7D ? 48 89 5D ? 66 83 FF"
},
"CGamePlayerEquip_InputTriggerForActivatedPlayer":
{
Expand All @@ -288,7 +282,7 @@
{
"library": "engine",
"windows": "48 89 54 24 ? 53 56 57 41 56 48 83 EC",
"linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 49 89 F4 53 48 81 EC ? ? ? ? 41 C6 01"
"linux": "55 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 53 48 83 EC ? 8B 87"
},
// The only function with "weapon_shield" and does fminf with 260.0 earlier
"CCSPlayerPawn_GetMaxSpeed":
Expand All @@ -303,7 +297,7 @@
{
"library": "server",
"windows": "4C 89 44 24 ? F3 0F 11 4C 24 ? 55 53 56",
"linux": "55 48 89 E5 41 57 49 89 FF 41 56 48 8D 3D ? ? ? ? 41 55 41 54 53 48 81 EC"
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 49 89 FC 53 48 8D 3D ? ? ? ? 48 81 EC ? ? ? ? 48 89 B5 ? ? ? ? BE ? ? ? ? F3 0F 11 85"
},
"TraceFunc":
{
Expand All @@ -315,20 +309,20 @@
"TraceShape":
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 4C 24 ? 55 57",
"linux": "55 48 89 E5 41 57 49 89 CF 41 56 49 89 F6 41 55 4D 89 C5"
"windows": "48 89 54 24 ? 48 89 4C 24 ? 55 53 56 57 41 56 41 57 48 8D AC 24 ? ? ? ? B8",
"linux": "55 48 89 E5 41 57 49 89 CF 41 56 49 89 F6 41 55 4D 89 C5 41 54 49 89 D4"
},
"CBasePlayerPawn_GetEyePosition":
{
"library": "server",
"windows": "48 89 74 24 ? 57 48 83 EC ? 48 8B F1 48 8B FA 48 8B 89 ? ? ? ? 48 85 C9 74 ? 48 8B 01",
"windows": "48 89 5C 24 ? 57 48 83 EC ? 48 8B F9 48 8B DA 48 8B 89 ? ? ? ? 48 85 C9 74 ? 48 8B 01",
"linux": "55 48 89 E5 53 48 89 FB 48 83 EC ? 48 8B BF ? ? ? ? 48 85 FF 0F 84"
},
"CBasePlayerPawn_GetEyeAngles":
{
"library": "server",
"windows": "48 89 5C 24 ? 57 48 81 EC ? ? ? ? 48 8B F9 48 8B DA 48 8B 89 ? ? ? ? 48 85 C9",
"linux": "55 48 89 E5 41 54 53 48 89 FB 48 83 EC ? 48 8B BF ? ? ? ? 48 85 FF 0F 84 ? ? ? ? 48 8B 07 48 8D 15"
"linux": "55 48 89 E5 41 54 53 48 89 FB 48 83 C4 ? 48 8B BF ? ? ? ? 48 85 FF"
},
// Only ever referenced right next to string "TestActivator"
"CBaseFilter_InputTestActivator":
Expand All @@ -342,15 +336,15 @@
{
"library": "server",
"windows": "41 54 48 81 EC ? ? ? ? BA ? ? ? ? 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0",
"linux": "55 48 8D 3D ? ? ? ? BE ? ? ? ? 48 89 E5 41 57 41 56 41 55 41 54 53 48 81 EC ? ? ? ? E8 ? ? ? ? 48 85 C0 0F 84 ? ? ? ? 8B 00"
"linux": "55 48 8D 3D ? ? ? ? BE ? ? ? ? 48 89 E5 41 57 41 56 41 55 41 54 53 48 83 EC"
},
// Location to CUtlMap unk that is referenced on Windows by function with "Notification about user penalty: %u/%u (%u sec)\n" string
// On Linux, a qword appears twice in GameSystem_Think_CheckSteamBan, and thrice in a sub-function of the function used for Windows (1 top, 2 bottom), the only other reference to this qword is some convar registration function with two unks above, sm_mapGcBanInformation is the unk further away
"CCSGameRules__sm_mapGcBanInformation":
{
"library": "server",
"windows": "48 8D 0D ? ? ? ? 48 89 45 ? 0F 11 45",
"linux": "48 8D 0D ? ? ? ? 48 63 51 ? 83 FA ? 0F 84 ? ? ? ? F7 41 ? ? ? ? ? 74"
"windows": "48 8D 0D ? ? ? ? 0F 11 44 24 ? 0F 11 44 24 ? E8",
"linux": "48 8D 35 ? ? ? ? 89 C2 48 63 46"
},
// Called right before "%d spawn groups:\n"
"GetSpawnGroups":
Expand Down Expand Up @@ -378,14 +372,21 @@
{
"library": "server",
"windows": "75 ? 48 8B 03 48 8B CB FF 90 ? ? ? ? 84 C0 74 ? 48 8D 05",
"linux": "75 ? 48 8B 03 48 8D 15 ? ? ? ? 48 8B 80 ? ? ? ? 48 39 D0 75 ? 48 83 C4"
"linux": "75 ? 48 8B 03 48 89 DF FF 90 ? ? ? ? 84 C0 74 ? 48 8D 05"
},
// "Going to intermission...\n"
"CCSGameRules_GoToIntermission":
{
"library": "server",
"windows": "48 89 5C 24 ? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ? ? ? ? 48 81 EC ? ? ? ? 4C 8B E9",
"linux": "55 31 C0 48 89 E5 41 57 41 56 41 55 41 54 41 89 F4"
"linux": "55 31 C0 48 89 E5 41 57 41 56 41 55 49 89 FD 41 54 48 8D 3D"
},
// Called in return by function with "Usage: setang_exact pitch yaw <roll optional> <prediction sync ticks optional>" string
"CBasePlayerPawn_SnapViewAngles":
{
"library": "server",
"windows": "48 89 5C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 55 48 8D 6C 24 ? 48 81 EC ? ? ? ? 48 8B DA 48 8B F1 48 8D 55",
"linux": "55 48 89 E5 41 57 49 89 FF 48 89 F7 41 56 41 55 41 54 53 48 81 EC ? ? ? ? E8"
}
},
"Offsets":
Expand Down Expand Up @@ -450,28 +451,28 @@
},
"CCSPlayerController_Respawn":
{
"windows": 273,
"linux": 275
"windows": 270,
"linux": 272
},
// CBaseTrigger
"PassesTriggerFilters":
{
"windows": 273,
"linux": 274
"windows": 269,
"linux": 270
},
// Actually a bit of a wrapper function now? Eventually calls a long function with "player_hurt" in the middle and then inserts userid, health, priority, attacker strings
"CCSPlayerPawn::OnTakeDamage_Alive":
{
"windows": 256,
"linux": 257
"windows": 252,
"linux": 253
},
// 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 + 2976LL))(v9, v27, 0LL);
// 2976 (372 * 8) is the offset
"CBasePlayerPawn_CommitSuicide":
{
"windows": 390,
"linux": 390
"windows": 384,
"linux": 384
},
"GameEntitySystem":
{
Expand All @@ -493,8 +494,8 @@
// "tried to sprint to a non-client", there will be a check above like this: if ( a2 >= *(v5 + 632) ), note that this is a CUtlVector
"CNetworkGameServer_ClientList":
{
"windows": 74,
"linux": 74
"windows": 73,
"linux": 73
},
// Right above "mapgroup workshop;" string there is a virtual call to this on g_pGameTypes using "workshop" string
"IGameTypes_CreateWorkshopMapGroup":
Expand All @@ -505,18 +506,18 @@
// There's no easy way to find this, but it's a function that checks entity flags (0x370) and ends by calling RemoveFlag with 0x800000 (FL_BASEVELOCITY)
"CCSPlayer_MovementServices::CheckMovingGround":
{
"windows": 41,
"linux": 42
"windows": 44,
"linux": 45
},
"CCSPlayer_WeaponServices::DropWeapon":
{
"windows": 25,
"linux": 26
"windows": 28,
"linux": 29
},
"CCSPlayer_WeaponServices::SelectItem":
{
"windows": 27,
"linux": 28
"windows": 30,
"linux": 31
},
// server.dll -> xref 'sv_phys_stop_at_collision' first __fastcall
"CVPhys2World::GetTouchingList":
Expand Down
2 changes: 1 addition & 1 deletion sdk
Submodule sdk updated 43 files
+3 −1 common/netmessages.proto
+13 −0 common/networkbasetypes.proto
+12 −0 common/source2_steam_stats.proto
+5 −0 common/valveextensions.proto
+0 −9 game/shared/base_gcmessages.proto
+0 −5 game/shared/clientmessages.proto
+1 −0 game/shared/cs/cs_gameevents.proto
+9 −0 game/shared/cs/cs_usercmd.proto
+18 −0 game/shared/cstrike15/cstrike15_gcmessages.proto
+1 −0 game/shared/cstrike15/cstrike15_usermessages.proto
+21 −0 game/shared/ehandle.h
+21 −0 game/shared/gameevents.proto
+31 −25 game/shared/igamesystem.h
+11 −0 game/shared/usercmd.proto
+6 −22 game/shared/usermessages.proto
+6 −2 interfaces/interfaces.cpp
+ lib/linux64/interfaces.a
+ lib/linux64/libtier0.so
+ lib/public/win64/interfaces.lib
+ lib/public/win64/tier0.lib
+16 −1 public/bitvec.h
+1 −0 public/const.h
+3 −1 public/datamap.h
+1 −4 public/eiface.h
+11 −6 public/entity2/entityclass.h
+2 −1 public/entity2/entityinstance.h
+10 −6 public/entity2/entitysystem.h
+15 −0 public/entityhandle.h
+3 −0 public/gametrace.h
+6 −7 public/icvar.h
+12 −4 public/interfaces/interfaces.h
+4 −2 public/iserver.h
+6 −6 public/mathlib/vector.h
+2 −2 public/mathlib/vector2d.h
+4 −4 public/mathlib/vector4d.h
+17 −0 public/mathlib/vectorws.h
+25 −12 public/tier0/logging.h
+15 −1 public/tier1/convar.h
+1 −1 public/tier1/keyvalues3.h
+6 −0 public/tier1/strtools.h
+1 −0 public/tier1/utlleanvector.h
+0 −5 public/tier1/utlstringtoken.h
+1 −1 tier1/keyvalues3.cpp
2 changes: 1 addition & 1 deletion src/addresses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ bool addresses::Initialize(CGameConfig* g_GameConfig)
RESOLVE_SIG(g_GameConfig, "CCSPlayerController_SwitchTeam", addresses::CCSPlayerController_SwitchTeam);
RESOLVE_SIG(g_GameConfig, "CBasePlayerController_SetPawn", addresses::CBasePlayerController_SetPawn);
RESOLVE_SIG(g_GameConfig, "CBaseModelEntity_SetModel", addresses::CBaseModelEntity_SetModel);
RESOLVE_SIG(g_GameConfig, "UTIL_Remove", addresses::UTIL_Remove);
RESOLVE_SIG(g_GameConfig, "CEntitySystem_AddEntityIOEvent", addresses::CEntitySystem_AddEntityIOEvent);
RESOLVE_SIG(g_GameConfig, "CEntityInstance_AcceptInput", addresses::CEntityInstance_AcceptInput);
RESOLVE_SIG(g_GameConfig, "CGameEntitySystem_FindEntityByClassName", addresses::CGameEntitySystem_FindEntityByClassName);
Expand All @@ -71,6 +70,7 @@ bool addresses::Initialize(CGameConfig* g_GameConfig)
RESOLVE_SIG(g_GameConfig, "CTakeDamageInfo", addresses::CTakeDamageInfo_Constructor);
RESOLVE_SIG(g_GameConfig, "CCSPlayer_WeaponServices_EquipWeapon", addresses::CCSPlayer_WeaponServices_EquipWeapon);
RESOLVE_SIG(g_GameConfig, "GetSpawnGroups", addresses::GetSpawnGroups);
RESOLVE_SIG(g_GameConfig, "CBasePlayerPawn_SnapViewAngles", addresses::CBasePlayerPawn_SnapViewAngles);

return InitializeBanMap(g_GameConfig);
}
Expand Down
Loading
Loading