Control/block access to vote types - Access to each vote type can be granted for different admin levels.
Kick votes can obey SourceMod admin immunity - If activated anyone with a higher admin immunity level is immune from being votekicked by someone with a lower admin immunity level (or none).
Kick votes cannot be started by spectators
- I can't think of any reason a spectator should be allowed to kick, it's only abused.
Kick votes cannot be started against a tank
- I've seen too many people attempt to kick the tank just so they can take control. This is now optional and controlled by a cvar.
Allows admins to pass/veto a vote - I have implemented the `veto` and `passvote` console command. This will set all remaining uncast votes to No or Yes respectively.
Vote spam blocking
- Can set a minimum time limit between votes and can set the admin access levels it doesn't apply to. The voting timeout resets with each map.
Allows admins to start a custom vote
- I have implemented the `custom_vote "<issue>"` command. It starts a vote using the L4D built in voting system. All connected players are allowed to vote on the issue.
Blocks Voting Exploit
- This plugin now blocks a common exploit in the voting mechanism by enforcing a 5 second wait between votes.
- Settings allow all player or just admins to see who called votes.
Survival Mode Access
- Special access levels for survival games allows access to votes to change the level to another survival map, restart the game or return to lobby.
The following cvars are stored in:
Access cvars (use admin access levels such as “z” or “az” or ""):
l4d_vote_lobby_access - Access level needed to start a return to lobby votel4d_vote_difficulty_access - Access level needed to start a change difficulty votel4d_vote_level_access - Access level needed to start a change level vote l4d_vote_restart_access - Access level needed to start a restart level vote
l4d_vote_kick_access - Access level needed to start a kick vote
l4d_vote_veto_access - Access level needed to veto a vote
l4d_vote_pass_access - Access level needed to pass a vote
l4d_vote_no_timeout_access - Access level needed to not have vote timeout.
l4d_custom_vote_access - Access level needed to do custom votes.
l4d_vote_notify_access - Access level needed to see vote notifications. If blank all players see all messages.
l4d_vote_surv_lobby_access - Access level needed to return to lobby in survival mode.
l4d_vote_surv_map_access - Access level needed to change the chapter in survival mode.
l4d_vote_surv_restart_access - Access level needed to restart in survival mode.
Cvars that control settings:
l4d_vote_timeout - Players must wait (timeout) this many seconds between votes. 0 = no timeout
True/False cvars (use 1 or 0 to turn on or off):
l4d_vote_kick_immunity - Make votekick respect admin immunity
l4d_vote_tank_kick_immunity - Make tanks immune to vote kicking
l4d_vote_log - Log voting data to SM logs
The default values are that nothing is restricted or enabled except veto and passvote which requires 'z' access and kick immunity is enabled. The first time you run the plugin you will get a file ~/cfg/sourcemod/sm_plugin_votemanager2.cfg that you can configure for the exact features you want.
1.0 - Release
1.1 - Implemented vote spam blocking.
1.2 - Custom vote added.
1.3 - Exploit fix, passvote and admin only notification added.
1.4 - Updated for survival mode.
1.5.1 - Updated survival cvars, new version numbering system.
1.5.2 - Default immunity to on.
1.5.3 - Correctly handle kick votes when target is invalid.
1.5.4 - Added a version cvar for stats tracking.
1.5.5 - Updated notification text and added tank immunity cvar.