I'm going to keep dumping important ideas which I probably mentioned before. Customizable lag limits have definitely been long-necessary, laggers commonly choosing fast classes in order to abuse a zone limit. You might have them in the cfg or some other file you make up, but I'm guessing the most flexible way is just through the C# scripts. Best function overloads are probably:
player.setLagLimit(ping)
player.setLagLimit(ping,ploss)
player.setLagLimit(ping,ploss, latency)
player.setLagCheckTimer(time)
player.checkLag()
Ping player.ping()
Ploss player.ploss()
Latency player.latency()
Lag player.lag()
where the subclasses are:
Lag.ping()
Lag.ploss()
Lag.latency()
Ping.average()
Ping.current()
Ploss.youtoserver()
etc.
Those I think are the minimum necessary, while other possibilities include customizing the force speccing criteria themselves.
Can't see any way to edit, so add
player.LagLimit() type functioins to check current lag limit.