lakwsh / l4dtoolz

A source plugin to unlock the maximum player and tickrate limit on L4D2.
94 stars 13 forks source link

Tickrate enabler function is not working #12

Closed deprid closed 1 month ago

deprid commented 1 month ago

I've just found the culprit. Your l4dtoolz fork's tickrate enabler function is not working, at least in my case. As side note, I use two cvars differently than the old l4dtoolz: sv_force_unreserved 0 (old value is 1), sv_steam_bypass 1 (old value is none).

I also have installed the recommended plugin a2s_fix along with it for Bypass SteamID Verification feature (the main reason I use your l4dtoolz is because my clients keep getting No Steam logon error, but somehow, now my clients get some timed out error more frequently, although the old l4dtoolz have the timed out error as well as No Steam logon).

I reinstalled the old tickrate_enabler and enabled both sm_cvar sv_minrate 60000, sm_cvar sv_maxrate 60000 (because without them enabled, it will be 30000 too). And then combined with your l4dtoolz fork, boom, status console command showed 60000. I finished about 5+ test and re-test to confirm the issue.

Meaning, without the outside tickrate_enabler, using ONLY your l4dtoolz fork, the value is always 30000. To get 60000 value and to get rid of No Steam logon, I have to use both the old tickrate_enabler and your l4dtoolz fork. I even saw one of my client oddly got 10000value (using your l4dtoolz only)?! How did he even got such value since the server was set (unintendedly) 30000.

So I hope you could fix this issue so that I don't need to install the old tickrate_enabler to get 60000.

Originally posted by @deprid in https://github.com/lakwsh/l4dtoolz/issues/11#issuecomment-2349947624

lakwsh commented 1 month ago

Please provide more information to help me locate the issue. First, pay attention to the entire server startup process and check if there are any messages with the prefix [L4DToolZ]. If so, please share them with me. Then, please execute the following commands on the server and provide the results: plugin_print, meta list.

deprid commented 1 month ago

On server startup:

Server console log: ``` 10.0 fps 0/31 on map c1m2_streets #Console initialized. #Using breakpad minidump system #Steam is not active, running in -insecure mode. #Loading unsigned module server.dll Access to secure servers is disabled. #Game.dll loaded for "Left 4 Dead 2" Server is hibernating ConVarRef test_progression_loop doesn't point to an existing ConVar Parent cvar in server.dll not allowed (spit_scaling_min_scale) [L4DToolZ] tickrate: 60 Unable to load plugin "addons/metamod/bin/win64/server" Game supporting (2) split screen players maxplayers set to 18 CAsyncWavDataCache: 0 .wavs total 0 bytes, 0.00 % of capacity Unknown command "cl_engine_reload_rosetta" Unknown command "hud_reloadscheme" Server logging enabled. Server logging data to file logs\L000_000_000_000_0_202409151221_000.log L 09/15/2024 - 12:21:40: Log file started (file "logs\L000_000_000_000_0_202409151221_000.log") (game "D:\steamcmd\l4d2\left4dead2") (version "9309") Server logging enabled. L 09/15/2024 - 12:21:40: Log file closed Server logging data to file logs\L000_000_000_000_0_202409151221_001.log L 09/15/2024 - 12:21:40: Log file started (file "logs\L000_000_000_000_0_202409151221_001.log") (game "D:\steamcmd\l4d2\left4dead2") (version "9309") Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "server" Unknown command "can" Unknown command "server" Unknown command "can" [L4DToolZ] sv_steam_bypass init error [L4DToolZ] sv_steam_bypass init error Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Writing cfg/banned_user.cfg. Writing cfg/banned_ip.cfg. Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "Related" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "2" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "sm_cvar" Unknown command "z_resolve_collision" Unknown command "z_resolve_collision_debug" Unknown command "z_resolve_zombie_climb_up_ledge" Unknown command "z_resolve_zombie_climb_up_ledge_debug" Unknown command "z_resolve_zombie_collision" Unknown command "z_resolve_zombie_collision_multiplier" Unknown command "z_resolve_zombie_collision_auto_multiplier" [L4DToolZ] maxplayers set to 31 Unknown command "mat_bloom_scalefactor_scalar" Unknown command "cl_engine_reload_rosetta" Unknown command "hud_reloadscheme" NET_GetBindAddresses found 192.168.1.111: 'Realtek Gaming 2.5GbE Family Controller #2' Network: IP 0.0.0.0, mode MP, dedicated Yes, ports 27016 SV / 0 CL ---- Host_NewGame ---- Server logging data to file logs\L000_000_000_000_27016_202409151221_000.log CAsyncWavDataCache: 0 .wavs total 0 bytes, 0.00 % of capacity Host_NewGame on map c1m2_streets [charger_collision_patch] Enabled "CCharge::HandleCustomCollision()::MarkSurvivor" patch GrenadeLauncher_AmmoPile_patch: Ammo pile allow use for GrenadeLauncher M60_NoDrop_AmmoPile_patch:Prevent drop patch applied 'CRifle_M60::PrimaryAttack' M60_NoDrop_AmmoPile_patch:Ammo piles allow use 'CWeaponAmmoSpawn::Use_M60_Patch' WitchPatch Targeting patch applied 'WitchAttack::GetVictim' WitchPatch Targeting patch applied 'WitchAttack::OnStart' WitchPatch Targeting patch applied 'WitchAttack::OnAnimationEvent' WitchPatch Targeting patch applied 'WitchAttack::Update' Executing dedicated server config file VSCRIPT: Running mapspawn.nut SCRIPT PERF WARNING --- "main" ran long at 2.697826ms CSpeechScriptBridge initializing... SCRIPT PERF WARNING --- "main" ran long at 10.061551ms HSCRIPT loaded successfully SCRIPT PERF WARNING --- "ScriptMode_Init" ran long at 11.546240ms Initializing Director's script >>> Loading addon script d:\steamcmd\l4d2\left4dead2\addons\friendly fire reflector split.vpk\scripts\vscripts\director_base_addon.nut Friendly Fire Reflector Loaded. v02/02/2023 SCRIPT PERF WARNING --- "main" ran long at 13.139849ms Map Bug: spotlight_beam4 has SpotLightWidth 256.000000 > 102.300003, clamping value an info_changelevel points to the current map ERROR: Tried to create bone follower on invalid bone joint27 store_doors has Door model (models/props_doors/door_rotate_112.mdl) with no door_options! Verify that SKIN is valid, and has a corresponding options block in the model QC file store_doors has Door model (models/props_doors/door_rotate_112.mdl) with no door_options! Verify that SKIN is valid, and has a corresponding options block in the model QC file InstanceAuto10-trafficmessage_script executing script: c1_3_trafficmessage_frequency Commentary: Loading commentary data from maps/c1m2_streets_commentary.txt. VSCRIPT: Running anv_mapfixes.nut SCRIPT PERF WARNING --- "ScriptMode_Init" ran long at 3.019948ms Initializing Director's script >>> Loading addon script d:\steamcmd\l4d2\left4dead2\addons\friendly fire reflector split.vpk\scripts\vscripts\director_base_addon.nut Friendly Fire Reflector Loaded. v02/02/2023 [MapChanger] Current map is: (new round) material models/weapons/melee/electric_guitar has a normal map and $basealphaenvmapmask. Must use $normalmapalphaenvmapmask to get specular. material models/weapons/melee/pitchfork/pitchfork has a normal map and $basealphaenvmapmask. Must use $normalmapalphaenvmapmask to get specular. material models/weapons/melee/shovel/shovel has a normal map and $basealphaenvmapmask. Must use $normalmapalphaenvmapmask to get specular. [MapChanger] Current map is: c1m2_streets Unknown command "cl_engine_reload_rosetta" Unknown command "hud_reloadscheme" Server logging enabled. Server logging data to file logs\L000_000_000_000_27016_202409151221_001.log Unknown command "server" Unknown command "can" Unknown command "server" Unknown command "can" Writing cfg/banned_user.cfg. Writing cfg/banned_ip.cfg. Unknown command "Related" Unknown command "2" Connection to Steam servers successful. VAC secure mode is activated. ```

Summary from above console log:

plugin_print
Loaded plugins:
---------------------
0:      "L4DToolZ v2.3.2, https://github.com/lakwsh/l4dtoolz"
1:      "Metamod:Source 1.11.0-dev+1155"
---------------------
meta list
Listing 9 plugins:
  [01] Pounce Damage Uncap (1.1.0.0) by Michael "ProdigySim" Busby
  [02] SourceMod (1.11.0.6964) by AlliedModders LLC
  [03] Stripper (1.2.2) by BAILOPAN
  [04] Actions (3.8.8) by BHaType
  [05] CollisionHook (1.3) by VoiDeD, Adrianilloo, A1m`
  [06] Resolve Collision Fix (1.10.1) by BHaType
  [07] SDK Tools (1.11.0.6964) by AlliedModders LLC
  [08] SDK Hooks (1.11.0.6964) by AlliedModders LLC
  [09] DHooks (1.11.0.6964) by AlliedModders LLC
status
hostname: Red Herring Asia
version : 2.2.4.1 9309 secure  (unknown)
udp/ip  : 0.0.0.0:27016 [ public xx:27016 ]
os      : Windows Dedicated
map     : c1m2_streets
players : 1 humans, 0 bots (8 max) (not hibernating) (unreserved)

# userid name uniqueid connected ping loss state rate adr
#  2 1 "steeg" STEAM_1:0:59550968 00:54 26 0 active 30000 192.168.1.111:27005
# 3 "Coach" BOT active
# 4 "Ellis" BOT active
# 5 "Rochelle" BOT active
#end
lakwsh commented 1 month ago

Thank you for your feedback. After verification, I was able to reproduce this issue on the Windows server and will release a patch to fix it shortly. Regarding the other issues you mentioned, maxplayers set to 18 is the default value set by the game engine during startup, which refers to the maximum number of clients and can be modified using sv_setmax, though it differs from the concept of maximum players (excluding bots). [L4DToolZ] maxplayers set to 31 indicates that maxplayers has been overwritten to 31. Additionally, the [L4DToolZ] sv_steam_bypass init error is due to the server not yet establishing a connection with Steam during startup, which is normal. Initialization usually succeeds after the prompt Connection to Steam servers successful. appears.

lakwsh commented 1 month ago

Please try version 2.3.3.

deprid commented 1 month ago

Thanks for the quick update. I have tried the version 2.3.3 (l4dtoolz-2.3.3-31.zip), the tickrate now correctly displays 60000 (with or without sm_cvar sv_minrate 60000, sm_cvar sv_maxrate 60000), the issue has been fixed!!

Now I can get rid of the old tickrate_enabler...

By the way, is it a normal behavior that you cannot get last players list anymore on Steam (Steam › View › Players) when using sv_steam_bypass 1? Or should I open new issue for this one?

steamwebhelper_9zS5YYEW6p

lakwsh commented 1 month ago

Because after enabling sv_steam_bypass, when players connect to the server, the server does not connect to Steam to verify the player’s ticket, so this is normal behavior.

deprid commented 1 month ago

Okay, got it, I still can see player's steam ID in the chat log plugin, so I'm okay with it as long as no more No Steam logon error.

lakwsh commented 1 month ago

According to feedback from other users, there might still be a few No Steam logon errors, but it has significantly decreased compared to when the feature was not enabled.