// Custom Votes Redux
// By: ReFlexPoison
//
// Thank you for downloading Custom Votes Redux. If you like my work and want to help out send me a donation.
https://forums.alliedmods.net/member.php?u=149090
//
// For full plugin documentation, go to:
https://forums.alliedmods.net/showthread.php?p=2097623
//
// How to edit this file: (Not all values will effect every type of vote. Ex: "currentmap" won't change anything in "players" type votes)
//
// "Custom Votes" <-- Leave this alone
// { <-- Add all votes after first bracket (Leave this alone)
// "Say something funny!" <-- Name of vote
// {
// "type" "list" <-- Type of vote (Valid types: players, map, list, simple)
// players - Populates the vote with a list of the online players
// map - Populates the vote with a list of maps from a specific map list
// list - Populates the vote with a custom list of choices
// simple - Doesn't populate the vote with anything
//
// "vote" "1" <-- Determine if a vote is called to determine the result of the selection, or if each selection is chosen manually by the players
// "cvar" "sm_cvar" <-- Control variable being changed
//
// "options" <-- These are your list options
// {
// "lol" "LOL" <-- Option name: lol | Option result: LOL
// "rofl" "ROFL" <-- Option name: rofl | Option result: ROFL
// }
//
// "override" "sm_lol" <-- Admin override (Use this with admin_overrides.cfg to prohibit access from specific players)
// "immunity" "0" <-- Admins with equal or higher immunity are removed from the vote
//
// "delay" "60" <-- Delay in seconds before players can cast a selecting after the map has changed
// "cooldown" "5" <-- Delay in seconds before players can vote again after casting a selection
// "team" "0" <-- Restricts players to only casting selections on team members
// "bots" "0" <-- Allows/disallows casting selections on bots
// "ratio" "0.6" <-- Ratio of players required to cast a selection
// "multiple" "0" <-- Allow/disallow players from casting a selection on more than one option
// "minimum" "4" <-- Minimum votes required for the vote to pass (Overrides ratio)
// "maxcalls" "3" <-- Maximum times a player can cast a selection (0 = No Limit)
// "maxpasses" "3" <-- Maximum amount of times the vote can be passed
// "command" "sm_csay {OPTION_RESULT}" <-- Command(s) ran when a vote is passed
//
// "start_notify" "Started vote. <-- Printed to everyone's chat when a player starts a vote
// "call_notify" "Voted for {OPTION_NAME}. <-- Printed to everyone's chat when a player casts a selection
// "pass_notify" "Vote passed!" <-- Printed to everyone's chat when the vote passes
// "fail_notify" "Vote failed!" <-- Printed to everyone's chat when the vote fails to pass
//
// "maplist" "default" <-- List of maps to populate the selection list (See maplist.cfg)
// "currentmap" "0" <-- Allows/disallows casting selections on the current map
// "recentmaps" "3" <-- How many recent maps will be removed from the vote selections
//
// "chattrigger" "vote" <-- Chat trigger to open the vote selections (Do not include ! or / in the trigger)
// } <-- Leave this alone
// } <-- Leave this alone
//
// Formatting:
//
// Place these in command, call_notify, pass_notify to your liking
// {VOTE_AMOUNT} - Amount of votes called for that item
// {VOTE_REQUIRED} - Required vote calls for that vote to pass
//
// {VOTER_INDEX} - Voter client index
// {VOTER_ID} - Voter user id
// {VOTER_STEAMID} - Voter steam id
// {VOTER_NAME} - Voter name
//
// {TARGET_INDEX} - Target client index
// {TARGET_ID} - Target user id
// {TARGET_STEAMID} - Target steam id
// {TARGET_NAME} - Target name
//
// {MAP_NAME} - Map name
// {CURRENT_MAP_NAME} - Current map name
//
// {OPTION_NAME} - Option name
// {OPTION_RESULT} - Option result
//
// {On|Off} - Control variable is On or Off
// {on|off} - Control variable is on or off
//
// {Yes|No} - Voter selected Yes or No
// {yes|no} - Voter selected yes or no
//
// Formatting Examples:
//
// "call_notify" "{olive}[SM] {VOTER_NAME}{default} voted to kick {green}{TARGET_NAME}{default}."
// "command" "kickid {TARGET_ID};sm_csay Kicked {TARGET_NAME}"
//
"Custom Votes"
{
"Set map time"
{
"type" "list"
"vote" "1"
"ratio" "0.6"
"minimum" "0"
"command" "mp_timelimit {OPTION_RESULT}"
"options"
{
"15 minutes" "15"
"30 minutes" "30"
"45 minutes" "45"
"60 minutes" "60"
}
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to set the map time to {OPTION_NAME}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "votemaptime"
}
"Turn all talk {on|off}"
{
"type" "simple"
"vote" "1"
"ratio" "0.6"
"minimum" "4"
"command" "sv_alltalk {on|off}"
"cvar" "sv_alltalk"
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to turn all-talk {on|off}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "votealltalk"
}
"Change the map"
{
"type" "map"
"vote" "1"
"ratio" "0.5"
"minimum" "4"
"command" "sm_map {MAP_NAME}"
"maplist" "default"
"recentmaps" "3"
"currentmap" "0"
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to change the map to {MAP_NAME}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "votemap"
}
"Kick player"
{
"type" "players"
"vote" "1"
"minimum" "4"
"ratio" "0.6"
"command" "sm_kick {TARGET_NAME}"
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to kick {TARGET_NAME}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "votekick"
"immunity" "1"
}
"Ban player"
{
"type" "players"
"vote" "1"
"minimum" "4"
"ratio" "0.8"
"command" "sm_ban {TARGET_ID}"
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to ban {TARGET_NAME}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "voteban"
"immunity" "1"
}
"Mute player"
{
"type" "players"
"vote" "1"
"minimum" "4"
"ratio" "0.6"
"command" "sm_silence {TARGET_ID}"
"start_notify" "[SM] {VOTER_NAME} ({VOTER_STEAMID}) started a vote to mute {TARGET_NAME}."
"call_notify" "[SM] Vote cast for {yes|no}."
"pass_notify" "[SM] Vote passed."
"fail_notify" "[SM] Vote failed. Received: {VOTE_AMOUNT} Required: {VOTE_REQUIRED}"
"chattrigger" "votemute"
"immunity" "1"
}
}