Voting
“ | America wins again!
Click to listen
— The Soldier celebrating democracy at work
|
” |
Voting is a game feature added in the Hatless Update on April 14, 2011 Patch. It enables any player to call a vote to enact a change on the server. The various voting options enable players to vote on a map change, to kick a particular player or to scramble the teams. Any player can initiate a vote by clicking on the checkbox icon in the main menu. A vote type can then be selected and the vote is put to all players present in the server.
The voting system was first introduced into the Team Fortress 2 Beta on March 9, 2011 Patch (Beta). Two later updates that included tweaks to the system were made available in the beta, before the system went live in Team Fortress 2 on April 14. Before this feature was added, the only way to change maps, kick, or ban players was via console commands, or using server mods.
The voting system can be disabled by setting the server command sv_allow_votes
to 0
. Particular voting types can also be disabled by specific server commands.
Voting types
There are five types of votes that can be called:
- Kick: Kick a selected player out of the server and bans the player from joining the server temporarily. The ban time is determined by
sv_vote_kick_ban_duration
. - RestartGame: Restarts the current round. If this comes to pass, then a notification will be given out to all players that the round will restart. A set number of seconds pass before a new round begins, neither team getting any points.
- ChangeLevel: The current map changes to the selected map.
- NextLevel: The next map is changed to the selected map. Unlike ChangeLevel, the current map doesn't end.
- ScrambleTeams: The players are put in a random team. Note that this will immediately scramble the teams, rather than wait until the end of the round. A notification is given to all players that a scramble will commence before it happens.
Client commands
- F1
- Votes "Yes" on the current vote or chooses a map in a level vote. Client command is "vote option1".
- F2
- Votes "No" on the current vote or chooses a map in a level vote. Client command is "vote option2".
- F3
- Chooses a map in a level vote. Client command is "vote option3".
- F4
- Chooses a map in a level vote. Client command is "vote option4".
- F5
- Chooses a map in a level vote or extends the current map in a
NextLevel
vote. Client command is "vote option5".
- "callvote"
- Opens the dialog to call a vote. Is not bound by default.
Server commands
Server-side variables can be set to adjust several elements of the voting engine. The following commands are made available:
sv_allow_votes
- Enables or disables the voting system entirely. Defaults to
1
(enabled).
sv_vote_allow_spectators
- Allow spectators to participate in votes. Defaults to
0
(disabled).
sv_vote_failure_timer
- Cooldown time (in seconds); the time that must pass after a vote fails for another to be initiated. Defaults to
300
(5 minutes).
sv_vote_issue_kick_allowed
- Allow kick votes to be called. Defaults to
0
(disabled).
sv_vote_kick_ban_duration
- The length of time (in minutes) of the ban on the player if the kick vote is successful. Defaults to
5
. Set to0
to disable the ban entirely and instead only kick the player.
sv_vote_issue_nextlevel_allowed
- Allow the next level to be determined by vote. Defaults to
1
(enabled). If called during a round, the map will change on round end. Not at the end of the timelimit for the map. Disabling this also disables the automatic end of map vote.
sv_vote_issue_nextlevel_allowextend
- Allow the next level vote to include an 'Extend' option. Defaults to
1
(enabled).
sv_vote_issue_nextlevel_choicesmode
- Allow players to be presented with a list of lowest playtime maps to choose from. Defaults to
1
(enabled).
sv_vote_issue_changelevel_allowed
- Allow a vote that changes the map to the next level immediately to be initiated. Defaults to
0
(disabled).
sv_vote_issue_restart_game_allowed
- Allow a vote that restarts the round to be initiated. Defaults to
1
(enabled).
sv_vote_issue_scramble_teams_allowed
- Allow a vote that scrambles the teams to be initiated. Defaults to
1
(enabled).
sv_vote_ui_hide_disabled_issues
- Suppress listing of disabled issues in the vote setup screen. Default to
1
(enabled).
MVM Voting
sv_vote_issue_kick_allowed_mvm
- Allow kick votes to be called. Defaults to
1
(enabled).
sv_vote_issue_changelevel_allowed_mvm
- Allow a vote that changes the map to the next level immediately to be initiated. Defaults to
0
(disabled).
sv_vote_issue_kick_min_connect_time_mvm
- Allow the kicking of anyone that isn't team invaders and haven't joined a team in Mann vs. Machine as long as they've passed the time set.
- Defaults to
0
(enabled).
sv_vote_failure_timer_mvm
- Cooldown time (in seconds); the time that must pass after a vote fails for another to be initiated. Defaults to
120
(2 minutes).
sv_vote_issue_mvm_challenge_allowed
- Allow to change MvM game mode difficulty level.
- Defaults to
1
(enabled).
Sounds
The voting system uses a few sound clips to help show the progress of the voting, taken from The Art of War.
- A vote was started.
- A player has voted yes.
- A player has voted no.
- Vote passed sucessfully.
- Vote failed to pass.
Update history
- Added a new vote system
- Server convars added to control the vote system
- Fixed a server crash caused by the vote system
- Updated the voting system.
- Added a convar to prevent voting on the next level if one has already been set (
sv_vote_issue_nextlevel_prevent_change
) - Fixed scrambleteams resetting how many rounds have been played
- Updated
mp_scrambleteams
to support a parameter of2
, which prevents resetting the number of rounds that have been played
- Updated
- Fixed the server automatically creating votes while in training or using itemtest
- Added a convar to prevent voting on the next level if one has already been set (
- Fixed a problem with clients seeing the incorrect vote options after changing servers
- Added an entry for "Call Vote" to the Options->Keyboard Settings, so you can bind a key to it
- Fixed being able to call server votes for training maps
- Vote caller history is now tracked by SteamID to prevent vote cooldown exploits
- Fixed players being able to disconnect before a successful kickvote to avoid being banned
- Votes created by a dedicated server no longer trigger a failed vote cooldown
- Allow kicking of connected players that haven't joined a team in Mann vs. Machine
- Added sv_vote_issue_kick_spectators_mvm (default 0) which allows players to kick anyone that isn't team invaders, as long as they've passed the sv_vote_issue_kick_min_connect_time_mvm timer, if enabled