This prevents players from emptying servers by spinning in a circle in survival mode and doing nothing to progress the map. AFK-killing plugins are easily bypassed and kill votes don't work if stallers outnumber real players (or if one player has multiple accounts connected).
The way it works is by killing all players if no progress is made within X seconds (120 by default). An "Excitement" meter is shown when no progress has been made for a while. Players need to make progress to refill the excitement meter. Actions that count as progress:
- Move to an area for the first time (repeatable per-player).
- Damage or kill enemies.
- Destroy breakable objects
- Open doors and push buttons for the first time.
Wandering around the same areas forever eventually gets you killed. With many players alive, the timer almost never decreases, but the last living player might feel rushed if being extra careful for minutes on end (think hardcore servers).
The default timer and time bonuses are probably too high to be effective against stallers. Stallers shouldn't have the freedom to make a little progress and then do nothing for a full minute, but there should be enough time to get through cutscene sections like hl_c13_a4. I think 90 max excitement is probably the sweet spot, but that needs lots more testing.
as_command antistall.maxExcitement 120
sets the excitement limit.
.boring
Enables debug mode. The excitement meter is shown at all times and messages are shown in the notifcation area whenever exciting things happen.
- Copy the script to
scripts/plugins/AntiStall.as
- Add this to default_plugins.txt:
"plugin"
{
"name" "AntiStall"
"script" "AntiStall"
"concommandns" "antistall"
}