You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Plugin alerts can be sent to a Discord webhook. Detection already worked
and every alert already landed in the database, but nothing ever read that
table - so the only way to learn about a cheater was to open SQLite, which
means nobody learned about anything. Set alert_webhook in the config.
Alerts carry the evidence the detector based its call on and a link to the
replay they came from.
Plugins can be switched on from the config file (plugins_config), not only
from the command line. On a deployment whose start command belongs to an
image or a unit file somebody else manages, the detectors could not be
enabled at all - which is why they had never run anywhere.
scripts/plugin_replay.py runs the detectors over recorded matches offline.
A detector is an accusation generator, and until now the only way to find
out what its thresholds did on your server was to switch it on and watch a
channel fill with names. Now it can be measured against the archive instead.
Fixed
Cheat detection measured "sustained for N ticks", which only meant what it
says at one tick rate. The inherited value meant 16 seconds at 0.5 Hz and
2.7 seconds at 3 Hz - and a parachute landing or a bail from a moving
vehicle lasts about that long, which is a false accusation waiting for a
config nobody thought to rescale. Durations are now measured in seconds from
the game's own clock and mean the same thing at any rate.
The 4 Hz position sampler could write a non-finite coordinate. Its gate was
a magnitude test, and abs(nan) > 5e6 is false by IEEE rules, so a torn
read passed straight through into the recording; z was never checked at
all.
A recording whose layer the recorder could not identify - a scrim layer a
community named after itself - now draws its map instead of a bare grid.