Voting

From Team Fortress Wiki
Revision as of 09:35, 29 November 2021 by Sloeber (talk | contribs) (Added missing commands, as well as removing ones that are no longer present (sv_vote_issue_pause_))
Jump to: navigation, search
Voting YYN.png
America wins again!
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, unless the vote is to kick a player in which case it will only be broadcast to the same team as the target player.

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.

Using default values, votes require a minimum of 60% of the team to vote Yes for the vote to succeed. This is controlled with the server command sv_vote_quorum_ratio.

Voting types

There are ten 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. Only players on the vote-initiator's team can be voted upon.
  • Restart Game: 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.
  • Change Level: The current map changes to the selected map.
  • Next Level: The next map is changed to the selected map. Unlike ChangeLevel, the current map doesn't end.
  • Extend Current Map: The current map being played will have more time added to it.
  • Scramble Teams: 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.
  • Disable Team Autobalance: Prevents the server from automatically changing players to the other team if there is an imbalance.
  • Enable Class Limits: Prevents the quantity of classes from going over a certain amount.
  • Eternaween: Allow Halloween-restricted items for two hours.
  • Pause: Vote to pause the game for a specified amount of seconds.

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_creation_timer
Cooldown time (in seconds); the time between votes if previous is successful. Defaults to 150 (2 minutes 30 seconds)
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_holder_may_vote_no
Allows the holder of the vote to have the chance to vote Yes or No on votes they call. Defaults to 0 (disabled).
sv_vote_issue_autobalance_allowed
Allow a vote to toggle autobalance to be called. Defaults to 0 (disabled).
sv_vote_issue_autobalance_cooldown
Cooldown timer (in seconds) the time between successful autobalance votes. Defaults to 300 (5 minutes).
sv_vote_issue_changelevel_allowed
Allow a vote to enable changing the map to be called, changing immediately if vote succeeds. Defaults to 1 (enabled).
sv_vote_issue_classlimits_allowed
Allow a vote to enable class limits to be called. Defaults to 0 (disabled).
sv_vote_issue_classlimits_cooldown
Cooldown timer (in seconds) the time between successful class limits votes. Defaults to 300 (5 minutes).
sv_vote_issue_classlimits_max
Set the maximum amount of each class that is allowed. Cannot control individual class limits; affects all 9 classes simultaneously. Defaults to 4.
sv_vote_issue_extendlevel_allowed
Allows a vote to be called to extend the current map, instead of going to the next one. Defaults to 1 (enabled).
sv_vote_issue_extendlevel_quorum
Controls the percentage (in decimal) of the minimum amount of people needed for the vote to succeed. Defaults to 0.6.
sv_vote_issue_kick_allowed
Allow kick votes to be called. Defaults to 0 (disabled).
sv_vote_issue_kick_namelock_duration
How long to prevent kick targets from changing their name (in seconds). Defaults to 120.
sv_vote_issue_mvm_challenge_allowed
Allows votes for difficulty level in MVM. Defaults to 1 (enabled).
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
Should allow the next level vote to include an 'Extend' option but doesn't seem to do anything. Defaults to 1 (enabled).
sv_vote_issue_nextlevel_choicesmode
Should allow players to be presented with a list of lowest playtime maps to choose from but doesn't seem to do anything. Defaults to 0 (disabled).
sv_vote_issue_nextlevel_prevent_change
Not allowed to vote for a nextlevel if one has already been set. Defaults to 1 (enabled).
sv_vote_issue_restart_game_allowed
Allow a vote that restarts the round to be initiated. Defaults to 0 (disabled).
sv_vote_issue_restart_game_cooldown
Controls cooldown (in seconds) between successful restart game votes. Defaults to 300 (5 minutes).
sv_vote_issue_scramble_teams_allowed
Allow a vote that scrambles the teams to be initiated. Defaults to 1 (enabled).
sv_vote_issue_scramble_teams_cooldown
Controls cooldown (in seconds) between scramble teams votes. Defaults to 1200 (20 minutes).
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 20. Set to 0 to disable the ban entirely and instead only kick the player.
sv_vote_late_join_cooldown
Controls the length of a cooldown (in seconds) applied to players joining a match in progress preventing them from creating vote kicks. Defaults to 300 (5 minutes).
sv_vote_late_join_time
Controls the grace period after the match starts before the cooldown is applied. Defaults to 90 (1 minute 30 seconds).
sv_vote_quorum_ratio
The percentage (in decimal) of Yes votes needed for a successful vote. Defaults to 0.6 (60%)
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_classlimits_allowed_mvm
In Mann vs. Machine, allow a vote to be called that enables class limits. Defaults to 0 (disabled).
sv_vote_issue_classlimits_max_mvm
Set the maximum amount of each class allowed in Mann vs. Machine. Defaults to 2.
sv_vote_issue_kick_min_connect_time_mvm
Sets the minimum connect time a player needs to have before issuing votes. Defaults to 300 (5 minutes).
sv_vote_issue_kick_spectators_mvm
Allow the kicking of spectators. Defaults to 1 (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).
sv_vote_issue_restart_game_allowed_mvm
Allow a vote that restarts the round to be initiated. 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.

Gallery

Update history

April 14, 2011 Patch (Hatless Update)
  • Added a vote system.
    • Server convars added to control the vote system.

May 25, 2011 Patch

  • Fixed a server crash caused by the vote system.

June 8, 2011 Patch

  • 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 of 2, which prevents resetting the number of rounds that have been played.
    • Fixed the server automatically creating votes while in training or using itemtest.

June 27, 2011 Patch

  • Fixed a problem with clients seeing the incorrect vote options after changing servers.

June 28, 2011 Patch

  • Added an entry for "Call Vote" to the Options->Keyboard Settings, so you can bind a key to it.

March 1, 2012 Patch

  • Fixed being able to call server votes for training maps.

April 18, 2012 Patch

  • 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.

June 27, 2012 Patch

  • Votes created by a dedicated server no longer trigger a failed vote cooldown.

October 9, 2012 Patch

  • 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.

May 13, 2013 Patch

  • [Undocumented] Player avatars will now appear in the Voting menus.

February 11, 2014 Patch

  • Fixed a case where players that are the target of a vote kick would not be banned from the server.

September 15, 2014 Patch

  • Fixed an exploit where players could circumvent successful kick votes.
  • Default value for convar sv_vote_issue_scramble_teams_cooldown has been increased to 20 minutes.

September 16, 2014 Patch

  • Fixed a server crash related to the vote kick system.

October 1, 2014 Patch

  • Added "Enable/Disable Auto Team balance" votes
    • Successful votes will enable/disable team player count balancing
    • Use sv_vote_issue_autobalance_allowed to control if this vote is enabled on the server
    • Votes not allowed in Mann vs. Machine, Medieval mode, Arena mode, Tournament Mode, or Training

October 15, 2014 Patch

  • Updated the vote system
    • Fixed team-specific vote sounds/notifications playing/showing for the ineligible team
    • sv_vote_issue_restart_game_allowed default changed to off
    • Added sv_vote_issue_restart_game_allowed_mvm (on by default)
    • Added "Enable/Disable Class Limits" vote
      • Controlled by sv_vote_issue_classlimits_allowed (off by default)
        • Limit controlled by sv_vote_issue_classlimits_max (default 4)
      • Controlled by sv_vote_issue_classlimits_allowed_mvm in Mann vs. Machine (off by default)
        • Limit controlled by sv_vote_issue_classlimits_max_mvm in Mann vs. Machine (default 2)

March 12, 2015 Patch

  • Fixed a bug with the vote system UI when sv_vote_ui_hide_disabled_issues was set to 0.

September 24, 2015 Patch

  • Updated the vote system so player can extend the current map using the "Extend Current Map" vote in the Vote Setup menu
  • Server admin can configure this new feature using the convars sv_vote_issue_extendlevel_allowed and sv_vote_issue_extendlevel_quorum

January 7, 2016 Patch

  • Updated the server log entry for kick votes to include the ID of the vote initiator.

July 28, 2016 Patch

  • Fixed players being able to avoid a vote-kick by reconnecting to the server at the right time.

May 15, 2017 Patch

  • Fixed the vote menu erroneously hiding itself when the main menu is opened.

August 2, 2017 Patch #1

  • Fixed a server crash related to vote-kick.

March 28, 2019 Patch

  • Improved how vote kicks work in matchmaking to reduce potential for abuse.
  • Fixed a case where vote-kicked players could rejoin a match.

June 22, 2021 Patch

  • Added a cooldown before a player can create a vote when they join a match already in-progress
    • sv_vote_late_join_time controls the grace period after the match starts before the cooldown is applied: default 90 secs
    • sv_vote_late_join_cooldown controls the length of the cooldown: default 5 min
  • Kick votes will end early and automatically pass if the vote target leaves the match during the vote
  • Updated the player list in the vote-kick dialog to show the time each player has been connected to the server