👉👈 Contact Details (optional)
https://www.pochta.ru
🤔 What happened?
Hello, ancient Greeks!
Pred-message
I recently played on a public server that has all sorts of fps-limit plugins that cap FPS to a maximum of 200. A cheater joined and flew across the entire map at incredible speed, his strafe boost reaching significantly higher than at 200 FPS.
I observed this from spectator mode, and the server displayed the cheater's 200 FPS, with no hints of bypassing the fps-limit plugins.
Checking in own server
Also, a similar cheater joined my Portuguese kz server. I thoroughly checked to make sure it wasn't bypassing the fps-limit plugins or skip-frameing. I checked everything I could: cvars, cmd->msec, the number of clc_move calls, the number of PPS from the incoming IP. Everything matched the results of regular players playing at 100 FPS, but again, his strafe boost didn't match the 100 FPS boost.
Trying detect problem
I settled on the option of possibly exploiting the game's processing itself, and installed ReGameDll to check exactly what was happening in the PM_AirMove and PM_AirAccelerate functions.
I came across something strange in this function from these cheaters. If you're familiar with the Half-Life 2 situation (backward bunny hopping and acceleration), something similar is happening here.
How u known these cheaters:
- The camera didn't strafe (there was no movement with cmd->viewangles)
- There was a huge boost from strafes that didn't correspond to the FPS.
When checking the values in the above functions (PM_AirMove, PM_AirAccelerate), these player`s angles were closer to 360 degrees (not 180), meaning they were strafeing backwards.
The problem was solved in the usual way—simply normalizing the angles, these cheaters stopped boosting their strafe speeds.
My guesses
I don't fully understand how the entire calculation in the PM_AirAccelerate function works, but it's possible it's related to a bug from Half-Life 2 that no one noticed.
My guess is that when the "Y angle overflowed," the "real_t currentSpeed" variable was giving too low a value, causing the subsequent algorithm to heavily boost these cheaters.
I could be wrong about a complete fix by normalizing angles; cheaters might brute-force that same maximum 180-360 angle so that the subsequent algorithm with "currentSpeed" produces the lowest result and the end-result be same (very high boost).
⚠️ Meta-information
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.14.0.857-dev
Build date: 19:52:21 Mar 27 2025 (4002)
Build from: https://github.com/rehlds/ReHLDS/commit/89958d3
ReGameDLL version: 5.28.0.0-dev
Build date: 18:47:07 Feb 04 2026
Build from:
Metamod-r v1.3.0.149, API (5:13)
Metamod-r build: 11:31:17 Apr 23 2024
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/603a257
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] AMX Mod X RUN - amxmodx_mm_i386.so v1.10.0.5474 ini Start ANY
[ 2] Reunion RUN - reunion_mm_i386.so v0.2.0.25 ini Start Never
[ 3] Revoice RUN - revoice_mm_i386.so v0.1.0.34 ini Start Never
[ 4] ReSemiclip RUN - resemiclip_mm_i386.so v2.4.3 ini Chlvl ANY
[ 5] FakeMeta RUN - fakemeta_amxx_i386.so v1.10.0.5474 pl1 ANY ANY
[ 6] hackdetector RUN - hackdetector_amxx_i386.so v0.15.328.lite pl1 ANY ANY
[ 7] GeoIP RUN - geoip_amxx_i386.so v1.10.0.5474 pl1 ANY ANY
[ 8] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.10.0.5474 pl1 ANY ANY
[ 9] Fun RUN - fun_amxx_i386.so v1.10.0.5474 pl1 ANY ANY
[10] CStrike RUN - cstrike_amxx_i386.so v1.10.0.5474 pl1 ANY ANY
10 plugins, 10 running
Linux
📄 Relevant log output
👉👈 Contact Details (optional)
https://www.pochta.ru
🤔 What happened?
Hello, ancient Greeks!
Pred-message
I recently played on a public server that has all sorts of fps-limit plugins that cap FPS to a maximum of 200. A cheater joined and flew across the entire map at incredible speed, his strafe boost reaching significantly higher than at 200 FPS.
I observed this from spectator mode, and the server displayed the cheater's 200 FPS, with no hints of bypassing the fps-limit plugins.
Checking in own server
Also, a similar cheater joined my Portuguese kz server. I thoroughly checked to make sure it wasn't bypassing the fps-limit plugins or skip-frameing. I checked everything I could: cvars, cmd->msec, the number of clc_move calls, the number of PPS from the incoming IP. Everything matched the results of regular players playing at 100 FPS, but again, his strafe boost didn't match the 100 FPS boost.
Trying detect problem
I settled on the option of possibly exploiting the game's processing itself, and installed ReGameDll to check exactly what was happening in the PM_AirMove and PM_AirAccelerate functions.
I came across something strange in this function from these cheaters. If you're familiar with the Half-Life 2 situation (backward bunny hopping and acceleration), something similar is happening here.
How u known these cheaters:
When checking the values in the above functions (PM_AirMove, PM_AirAccelerate), these player`s angles were closer to 360 degrees (not 180), meaning they were strafeing backwards.
The problem was solved in the usual way—simply normalizing the angles, these cheaters stopped boosting their strafe speeds.
My guesses
I don't fully understand how the entire calculation in the PM_AirAccelerate function works, but it's possible it's related to a bug from Half-Life 2 that no one noticed.
My guess is that when the "Y angle overflowed," the "real_t currentSpeed" variable was giving too low a value, causing the subsequent algorithm to heavily boost these cheaters.
I could be wrong about a complete fix by normalizing angles; cheaters might brute-force that same maximum 180-360 angle so that the subsequent algorithm with "currentSpeed" produces the lowest result and the end-result be same (very high boost).
Protocol version 48 Exe version 1.1.2.7/Stdio (cstrike) ReHLDS version: 3.14.0.857-dev Build date: 19:52:21 Mar 27 2025 (4002) Build from: https://github.com/rehlds/ReHLDS/commit/89958d3 ReGameDLL version: 5.28.0.0-dev Build date: 18:47:07 Feb 04 2026 Build from: Metamod-r v1.3.0.149, API (5:13) Metamod-r build: 11:31:17 Apr 23 2024 Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/603a257 Currently loaded plugins: description stat pend file vers src load unload [ 1] AMX Mod X RUN - amxmodx_mm_i386.so v1.10.0.5474 ini Start ANY [ 2] Reunion RUN - reunion_mm_i386.so v0.2.0.25 ini Start Never [ 3] Revoice RUN - revoice_mm_i386.so v0.1.0.34 ini Start Never [ 4] ReSemiclip RUN - resemiclip_mm_i386.so v2.4.3 ini Chlvl ANY [ 5] FakeMeta RUN - fakemeta_amxx_i386.so v1.10.0.5474 pl1 ANY ANY [ 6] hackdetector RUN - hackdetector_amxx_i386.so v0.15.328.lite pl1 ANY ANY [ 7] GeoIP RUN - geoip_amxx_i386.so v1.10.0.5474 pl1 ANY ANY [ 8] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.10.0.5474 pl1 ANY ANY [ 9] Fun RUN - fun_amxx_i386.so v1.10.0.5474 pl1 ANY ANY [10] CStrike RUN - cstrike_amxx_i386.so v1.10.0.5474 pl1 ANY ANY 10 plugins, 10 running Linux📄 Relevant log output