Warfork has a voting system built-in that lets players change certain server settings, punish misbehaving players and modify game rules.
Types of votes
Warfork has multiple votes by default. Some gametypes have their own votes. Default Warfork votes:
|allow_falldamage||<0/1>||Toggles fall damage. 0 - disabled, 1 - enabled.|
|allow_selfdamage||<0/1>||If enabled, players can hurt themselves with their own weapons. 0 - disabled, 1 - enabled.|
|allow_teamdamage||<0/1>||Toggles friendlyfire. 0 - disabled, 1 - enabled.|
|allow_uneven||<0/1>||Allows the teams to be uneven. If enabled, allows players to switch teams anytime. 0 - disabled, 1 - enabled.|
|allready||Makes all players ready, thus forcing a match to start. Only works during warmup.|
|extended_time||Changes the overtime's length to x minutes. 0 to disable.|
|gametype||<gametype>||Changes the gametype. Resets the match.|
|instajump||<0/1>||If enabled, Instagun can be used for weapon jumping (Instagib only).|
|instashield||<0/1>||Enables Instashield (Instagib only).|
|kick||<player>||Kicks a player from the server.|
|kickban||<player>||Bans a player's IP address for 15 minutes.|
|lock||Locks the teams so that noone else can join during the game (doesn't affect warmup).|
|map||<map>||Changes the map.|
|maxteamplayers||<value>||Changes how many players can a single team have.|
|mute||<player>||Mutes a player. Prevents them from using text chat.|
|nextmap||Changes the current map to the next one from map rotation list.|
|numbots||<value>||Changes the amount of bots on the server. 0 to disable.|
|rebalance||Rebalances teams (based on the stats). Wipes player stats.|
|remove||<player>||Puts a player into Spectators team.|
|restart||Restarts the match.|
|scorelimit||Sets the amount of points required to obtain by a player / team to end the match.|
|shuffle||Shuffles teams. Wipes player stats.|
|timein||Resumes a match. Only works during timeouts.|
|timelimit||<value>||Sets the duration of matches (in minutes).|
|timeout||Pauses a match for 180 seconds.|
|unlock||Unlocks teams so other players can join during the game.|
|unmute||<player>||Unmutes a player. Allows them to use text chat.|
|vmute||<player>||Mutes player's voice commands.|
|vunmute||<player>||Unmutes player's voice commands.|
|warmup_timelimit||<value>||Sets how long do warmups take (in minutes). 0 to make warmups infinite.|
There are two ways of calling a vote: using HUD and using the console.
Calling votes using the HUD is easy and straightforward. Some players prefer to use the console, which allows utilizing opcalls.
To call a vote using HUD, click the Escape key once you're in-game and then Call a vote button.
A window with available callvotes will appear.
To call a vote, choose one of them, fill the argument if present and click Call a vote.
It's a bit tricker to call votes from the console because you need to type both the vote name and the optional argument, however it also lets you see the current value of a certain command unlike the HUD option and lets you utilize opcalls.
Click ` to open the console. Type callvote and hit Enter to access the list of votes.
To call a vote, type callvote followed by a name of the callvote and an optional argument: callvote <name> [argument].
- callvote map wfca1
- callvote mute Player
- callvote allow_uneven 1
- callvote gametype dm
- callvote numbots 5
- callvote nextmap
- callvote rebalance
Some gametypes have custom votes, which aren't stated in the Types of votes section. They appear at the top of the list when callvote is executed. Same syntax applies to custom votes: callvote <name> [argument].
The console method lets you view the current value of certain commands. If you type the name of the vote without additional arguments, it'll show you the current value it's set to. For example, callvote allow_uneven will display the current value, same with any other vote that has an argument.
You can view the list of maps you can vote on with callvote map, as long as you execute the command with no additional parameter.
Typing vote yes or vote no in the console lets you submit a vote without having to bind two separate keys for those actions.
Opcalls are special votes that can only be called by game operators. They have one major difference - they always pass immidiately. They're used by server operators to enforce server rules and punish rulebreakers instantly. To use opcalls, you first need to become an operator. The syntax is identical to callvote, examples:
- opcall map wfca1
- opcall mute Player
- opcall allow_uneven 1
- opcall gametype dm
- opcall numbots 5
- opcall nextmap
- opcall rebalance
Opcall has an ability to pass and cancel pending votes. To do so, type opcall passvote or opcall cancelvote.
Default rules of voting system
- Voting system: Enabled
- Delay between votes: 5 seconds
- Callvotes last for: 20 seconds
- Maximum amount of yes/no changes: 3
- Percentage required for vote to pass: 55%
- All votes are allowed by default
Additional information & bugs
- Server administrators can set their own rules of votes via g_vote_* cvars and disable voting system, doing so also disables opcalls.
- Server operators cannot be kicked or kickbanned. However operators can still get muted by other players if they act fast enough.
- Server administrators can disable specific votes one by one by setting g_disable_vote_* 1 where * stands for the name of vote(s). Disabling votes this way doesn't affect opcalls.
- There are separate variables that can disable opcalls (g_disable_opcall_* 1).