NoobBalance is a SourceMod plugin for Team Fortress 2 that helps teams remain balanced. It is designed for simplicity and robustness, rather than providing many optional features that many servers will not use.
Features include:
- Player-triggered scramble votes
- Admin-triggered scrambles, balancing, and scramble votes
- Automatic balancing of teams
- Configurable immunity from automatic balancing, including duel immunity
- Locking of switched players to their new team
- Admin menu category giving easy access to commands
There are five admin commands:
- sm_scramblenow: Scrambles the teams immediately.
- sm_scramblevote: Calls a vote asking players if teams should scramble now
- sm_forcebalance: Forcibly balances the teams immediately
- sm_toggleautobalance: Enables or disables the autobalance functionality.
- sm_swapplayer: Swaps a player to the opposite team; displays a menu asking which player to swap if a player is not given on the command line.
There are several ConVars that can be configured; see the sample (automatically-generated) configuration file for more information on these.
Several additional features are planned:
- Ability for immune players to opt out of their immunity by chat command, and store this persistently.
- Make team scrambles (not just autobalance) respect duel immunity (implementing this is contingent on support for duel checking in a released SourceMod version; see the release notes for more on this)
- Make the force-balancer a little less heavy-handed
- Add support for scrambling at the start of the next round (currently only instant scrambles are possible)
Release notes for 1.0.0 RC2:
Fixed stupid mistake on the team stacking check.
Release notes for 1.0.0 RC1:
This is a brand-new plugin, and has received only limited testing on high-player-count servers, though it has been extensively tested on low-player-count testing servers. There will probably be issues; I will do my best to resolve these as they come up, but my available time is limited and I can provide only best-effort support for NoobBalance. In particular, I expect the autobalancer's decision of which players to swap (around line 600) will need some tweaking.
Currently, providing immunity to players in duels is commented out, as the function it requires is only available in SourceMod versions newer than 1.3.6, the currently released version. To enable this functionality, uncomment the relevant code in IsImmuneClient(), currently located at line 1226. This functionality will be enabled in the provided, unmodified source code as soon as practically possible.
NoobBalance is inspired by and re-uses some code from two earlier balance plugins, gscramble and qautobalance. NoobBalance is licensed under the GNU General Public License, version 3 or later, and modification and redistribution of its code is encouraged. I would like to ask prospective developers to not release any future versions under the same name as long as I am still actively providing support for NoobBalance, but if in the future I am unable to do so, you are welcome to use the name as well as the code (though if this happens, I do ask that you bump the major version number).
Requests for new features are welcome, but I can't promise I will be able to implement them. Feedback (or, Robin Walker forbid, bug reports) from anyone who has deployed NoobBalance or is considering deploying it is greatly welcomed.