[NuclearDawn] Team Balancer
by databomb
How does it work?
Every 30 seconds a check is performed to see if the total skill level on each team is within an acceptable margin. If it's not then the least skilled and most skilled players are swapped. Allowances are given so players who are swapped once are less likely to be swapped in the future.
If the teams are of balanced skill then it next compares player count. If the count is unbalanced then it will swap the player with the least connection time.
Skill is determined by an exponential algorithm based on rank. This system is designed so a team of rank 59 and 1 would not be considered the same as a team of two rank 30s. (The default settings make it so a rank 59 and 1 would be equivalent to two rank 15s.)
Special Thanks:
Snivilous for explaining some initial pitfalls with compnerds's team balancer.
Kateana for testing and help.
Features:
Admin command (sm_stacked | !stacked) to check team skill levels.
Admin command (sm_swap | !swap) to manually swap players.
Light-weight algorithms quickly determine the relative skill of all players.
Warns a player they're about to be swapped in 30 seconds.
Provides visual feedback to the players who are swapped.
Future Plans:
Add cvars to fine-tune the balancing algorithms.
Add admin immunity.
Listen for feedback.
Change History:
v 1.0.0 Initial Release
v 1.0.1 Added admin commands to check skill and manually swap
v 1.0.2 Prevents stats hit from swapping, Displays spawn menu after swap, and Makes swapped players less likely to get swapped in the future
v 1.0.3 Added new check for unbalanced but unstacked condition and changed the least skilled algorithm
Attached Files

Wyświetl pełny artykuł