minqlx-plugins

wipeout.py

This adds a gametype to QL that runs under the Clan Arena mode. To win a round a team has to have the entire enemy team dead at the same time. When a player dies they remain in spectate for a period of time before respawning. The time in spectate increases with each team mate death, so as the round progresses it becomes more likely that the entire enemy team can be dead at the same time.
LOGGING is disabled by default. If you would like logging enabled, change the ENABLE_LOG setting,near the top of the file, to True. Logs are written to the fs_homepath in a logs sub-directory.
Chat '!wipeout' in game and read the description, in the console, about the game and the player needed setup.
Chat '!binds' in game to get just the 2 needed binds.
Read the top of the wipeout.py file for server settings, though the default settings seem good to me.
If you want want to use the wipeout as a factory get the wipeout.factories from the scripts folder.
There is a short mappool.txt in there as well, to help you get started.
Check out instructions for the players HERE on reddit.

getmap.py

Allows downloading and removing of maps to/from your QL server from within the server or from rcon. See the description at the top of the getmap.py

specqueue.py

This is a queueing plugin for the minqlx admin bot.
This plugin can be used alone or with the serverBDM.py plugin.

This plugin is intended to help keep the game as enjoyable as possible,
without the hassles of people making teams uneven, or someone joining later than others,
but happening to hit the join button first and cutting in line when a play spot opens.

The plugin will also attempt to keep team games even, when adding 2 players at once,
by putting players into the most appropriate team, based on team scores or player BDMs.

This plugin will spectate people when teams are uneven. It will, by default settings,
first look at player times then player scores to determine who, on the team with more players,
gets put to spectate. When a player gets put to spectate they will automatically get put into the
queue at the beginning of the line.

There is also the option to have the players in spectate for too long (set with qlx_queueMaxSpecTime)
to be kicked. This will only kick the player, not do any kind of ban, so the player can reconnect immediately.
This feature will not kick people with permission levels at or above the qlx_queueAdmin level,
or people who are in the queue.

Use the command '!fix' to fix a player that is shown as sarge and not seen as an enemy or a team mate.
This will set each player's model the the model recorded when they joined the server.

Read the top of the file to know how to set the required cvars for your server once the default values are not desired.
There are a lot of settings to help server admins set up the server to better admin the server how they desire.

Commands:
!q or !queue: displays the players currently in the queue
!s or !specs: Displays the players currently set to spectate only
!addqueue or !addq: puts a player into the next available queue slot
!qversion or !qv: displays the queue version number
!ignore: will ignore uneven teams for the next round start
!latch <ignore|spec|setting>: will latch the ignore setting to the action included (setting tells current state)
!fix : sets all players models to what was recorded by the script when the player connected (sarge bug fix)

serverBDM.py

This script collects data on the players on the server and calculates a Basic Damage Metric (BDM) rating. It works for game types Clan Arena, Freeze Tag, Free For All, Capture The Flag, Instagib Capture the Flag, and Team Death Match.

The script will do balancing and switch recommendations.
*** WARNING: If you use this with other scripts that use !teams or !balance when they are enabled in serverBDM the commands in the other scripts will be unloaded. (This includes the balance.py that comes with the minqlx bot)***
This script, by default, will automatically the commands from the other scripts that use !teams or !balance. The actions can be turned on/off when desired.
Initial player BDM will be set based on elo gotten from qlstats.net or from the default bdm cvar setting if qlstats does not respond

Read the top of the file to know how to set the required cvars for your server once the default values are not desired.

Commands

!bdmversion or !bdmv: displayes the script version in chat
!bdm: displays the reqestors BDM in chat (can be used with ID number as well)
!bdmhor !bdmhistory: displays the requstors BDM, Quit percentage and previous 5 BDM ratings.
!bdms: displays the BDMs of the players on the server
!bteams: analyzes the teams and recommends player swaps to better even the teams based on BDM
!teams: (if enabled) will work just like !bteams
!a: how players agree to the switch recommendation from !bteams
!do: how a server admin forces the switch recommedation made by !bteams
!bbalance: will balance the teams based on BDM
!balance: (if enabled) will work just like !bbalance
!setbdm: set a players BDM

commands.py

This script lists the loaded plugins and the commands available for each plugin.

CVARS
//Server Config cvars
//Set the permission level needed to list the commands
set qlx_commandsAdmin "0"
//Enable to show only the commands the calling player can use, disable to show all commands (0=disable, 1=enable)
set qlx_commandsOnlyEligible "1"

Commands
!plugins: displays the loaded plugins
!lc or listcmds or listcommands: <plugin_name> will list the minqlx commands on the server an optional
plugin search limiter can be included

bots.py

This is a plugin for the minqlx admin bot. This keeps the server populated with bots (up to the set number) and will kick a bot to replace with a human player when they join. This is intended to give people a place to play even when no one else is playing.

NOTE: THIS SCRIPT IS WILL NOT WORK WITHOUT THE SPECQUEUE.PY SCRIPT ON THIS PAGE.

Read the top of the file to know how to set the required cvars for your server once the default values are not desired.

battleroyale.py

This is a plugin for the minqlx admin bot. It makes a last man standing game style played in FFA with some default weapons.

NOTE: THIS SCRIPT IS NOT COMPATIBLE WITH ANY OTHER QUEUE SCRIPT. IT PERFORMS QUEUEING ACTIONS TO FACILITATE A LAST MAN STANDING GAME.

Read the top of the file to know how to set the required cvars for your server once the default values are not desired.

Commands available with battleroyale.py:
!q or !queue: displays the players currently in the queue
!s or !specs: Displays the players currently set to spectate only
!score: Displays current round win standings
!rules: Displays an abbreviated description of the game rules
!addqueue or !addq: puts a player into the next available queue slot
!brversion or !brv: displays the battelroyale.py version number
!restart: reloads the SETTINGS and loads the default map
!gamestatus: Shows the current game win standings in SERVER CONSOLE

funwarmup.py

It modifies the game CVARs to make warmup time a little different and hopefully more fun. Be careful modifying the setting too much. Too many projectiles needing to be kept track of by the server may result in server crashes. Use/Modify this at your own risk.

Read the top of the file to know how to set the required cvars for your server once the default values are not desired.



Commands available with funwarmup.py listed with the set permission levels

• Permission level 3 (set with qlx_fwAdminLevel)

!setfun

If the server is in warmup this will enable the Fun Warmup Mode.

Usage: !setfun

!unsetfun

Turns off the Fun Warmup Mode.

Usage: !unsetfun

mapmonitor.py

This is a script to monitor the server when a map changes. If the server boots everyone due to a bad map it will change the map to the default map. It can also monitor for the server emptying out and change to the default map.

set qlx_mmDefaultMap "almostlost ca" //set the default map and factory type
set qlx_mmCheckTime "60" //The amount of time the script will check after a map change for a bad map
set qlx_mmChangeWhenEmpty "1" //Enable to change to default map when all players disconnect (1=enabled, 0=disabled)

Commands:
!setfun

Protect.py

I created this plugin to allow server admins to put people on a list that would not allow them to be kicked from a server.

I also added the ability to vote players to spectator if they are AFK. I added that because I didn't want someone who can't be kicked to go AFK and get stuck taking up a play slot because he/she can't be kicked. It is used by "/cv afk 'player id'" in the console.

I get tired of people being in the server that are just annoying with their chat messages or talking. I added the ability for people to callvote MUTE players on the server. It is used with "/cv mute 'player id'" in the console. To callvote to unmute someone use "/cv unmute 'plyer id'". A player can't callvote to unmute themselves.

The script also stops map voting once a match has gone active. Voting maps during warm-up still works. I wanted a way to still allow voting during a match but to not allow voting different maps throughout the match because one or two people didn't like the map.

Join messages about the map voting and the use of voting people to spectator are displayed to players upon connect to the server. These messages can be disabled seperately so both, either, or no messages will be sent upon connect.

I received requests to be able to set a teamsize to any size, even it the teamsize you want is lower than the current teamsize actually on each team. With the !forcets command you can do just that.

See below for the command and cvars used with my protect script.



Commands available with protect.py listed with the set permission levels

• Permission level 4

!forceteamsize (alternatively !forcets)

Sets the teamsize to the desired level. Will put all players to spectate if there are more players on a team than the desired teamsize.

Usage: !forcets <wanted teamsize>

• Permission level 5

!protect

Usage: !protect 'add|del|check|list' 'player id|steam id'

!setpass

Sets the server join password.

Usage: !setpass 'password'

!unsetpass

Removes the server join password.

Usage: !unsetpass

• Permission level set with qlx_protectPermissionLevel

!protectversion

Checks the current protect script version that is running against the version on the GitHub website.

Usage: !protectversion



CVARs The following bot settings used in the protect script can be set with the rest of the minqlx bot settings:
Default settings are listed.

set qlx_protectMapVoting “1” - Enabling does not allow map voting during match play but does not affect map voting during warm-up. ("1" on, "0" off)
set qlx_protectAfkVoting “1” - Enabling will allow players to be voted into spectator. ("1" on, "0" off)
set qlx_protectJoinMapMessage “1” - Sends join message to players if map voting protection is enabled. ("1" on, "0" off)
set qlx_protectJoinAfkMessage “1” - Sends join message to players if voting players to spectator is enabled. ("1" on, "0" off)
set qlx_protectPermissionLevel “5” - Sets the lowest level bot permission level to automatically protect. This means anyone with the set permission level or higher will be automatically protected from being kicked.
set qlx_protectMuteVoting “1” - Allows voting muting and unmuting of a player. ("1" on, "0" off)
set qlx_protectJoinMuteVoting “1” - Sends join message to players if mute voting is enabled. ("1" on, "0" off)
set qlx_protectAdminLevel "5" - Sets the minqlx server permission level needed to add/del/list the protect list, and display the protect.py version number.
set qlx_protectPassLevel "5" - Sets the minqlx server permission level needed to set/unset the server join password.
set qlx_protectFTS "5" - Sets the minqlx server permisson level needed to force teamsize.



ClanMembers.py

This script was added to help admins manage who wears their clan's tag.

There is no need to load the clan.py script that comes with the minqlx bot if you are using this plugin, but it wont' hurt if you forget.

This works with players trying to set their tag on the server using the !clan command.

It does not protect if people are putting the tag in their steam name. You can ban them if they won't stop.

The protected tags can be stored as you want them to appear when you are listing the protected tags, so store them with colors and case settings of your choice. If the TagColors and LetterCase CVARs are not enabled (set to "0" as is the default), then the colors and case you stored with the tag and that the player is trying to add are ignored and just the lettering and punctuation is compared. (SO: ^2Tag would equal ^3tAG or tag or ^5tag etc...). Coloring and Letter Case can be enforced individually if only one of the CVARs is turned on. NOTE: Remember that turning on the Color and Lettering CVARs will make tag enforcement color and/or lettering specific.



Commands available with clanmembers.py listed with the default settings

• Permission level 0

!clan (alternatively !setclan)

Usage: !clan 'tag'

• Permission level 5

!acm (alternatively !add_clanmember)

Adds a player to your clan member list which will allow them to set their clan tag to any of the protected tags.

Usage: !acm 'client_id|steam_id name'

!dcm (alternatively !del_clanmember or !remove_clanmember)

Removes a player from your clan member list.

Usage: !dcm 'client_id|steam_id'

!cml (alternatively !listclanmembers or !list_clanmembers)

Lists players added to your clan member list.

Usage: !cml

!act (alternatively !add_clantag)

Adds a clan tag that you want protected so only players on the clan member list can wear the tag on your server.

Usage: !act 'clan_tag'

!dct (alternatively !del_clantag)

Deletes a clan tag that you had protected.

Usage: !dct 'clan_tag'

!ctl (alternatively !listclantag or !listclantags)

Lists clan tags added to your clan tag protection list.

Usage: !ctl

!rlcm (alternatively !reload_clanmembers or !load_clanmembers)

Reloads the clan members list and the protected clan tags list.

Usage: !rlcm

!cmv (alternatively !clanmembersversion or !clanmembers_version)

Checks to see if your server is running the latest version of the clanmembers.py plugin.

Usage: !cmv



CVAR(s) The following bot setting(s) used in the clanmembers script can be set with the rest of the minqlx bot settings:
The setting(s) are shown with the default settings.

set qlx_clanmembersAdmin "5" - Sets the minqlx server permisson level needed to use the clanmembers.py admin commands.
set qlx_clanmembersTagColors "0" - If on: Tag enforcement will check for exact color matching. If off: tag colors are ignored and only the text is compared. (0 = off, 1 = on)
set qlx_clanmembersLetterCase "0" - If on: Tag enforcement will check for exact case matching. If off: upper/lower case is ignored. (0 = off, 1 = on)
set qlx_clanmembersCheckSteamName "1" - Checks for clan tag(s) in player's steam name and renames the player without the clan tag. (0 = off, 1 = on)


Handicap.py

I created this script to be able to handicap people who join the server based on their ELO. That means you could uncap your server and just have it auto handicap people as they join. It will not let the client change their handicap without admin permission.



Commands available with handicap.py listed with the default settings

• Permission level 'qlx_handicapAdminLevel'

!handicap (alternatively !handi)

Sets the players handicap on the server, overriding the handicap calculated by the script. This setting is good until the player connects again.

Usage: !handicap 'clientID' 'number[1-100]'

!handicapon (alternatively !handion)

Turns on the handicap limiting of the script. Only useful after a !handicapoff.

Usage: !handicapon

!handicapoff (alternatively !handioff)

Turns off the handicap limiting of the script. Effective until server restart or script reload.

Usage: !handicapoff

• Permission level 0

!hversion

Lists the script version running on the server.

Usage: !hversion

""" The handicap given to players above the LOWER_ELO setting. The severity of the handicap given can be adjusted by changing the UPPER_ELO setting. Increase it to reduce the severity of the handicap and lower it to increase the severity. It should not be lowered further than the highest ELO connected to the server. *Adjust the LOWER_ELO to the level you want the script to start giving handicaps *Adjust the UPPER_ELO to adjust the amount of handicap it gives. The higher the UPPER_ELO *the less severe the handicap.
Edit the PING_ADJUSTMENT setting to set at what ping the adjustments for high ping will start.
Edit the handicap.py file to change these settings. """



CVARs The following bot settings used in the voteban script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels or on/off status.

set qlx_handicapAdminLevel "3" - Sets the minqlx server permisson level needed execute admin level minqlx script commands.
set qlx_handicapMsgPlayer "1" - Turns on/off the server sending messages to players who have been handicapped by the server.


Voteban.py

I created this script to be able to ban the annoying players from voting on the server.

The vote ban is set with an expiration time, set a long time if you want it to be effectively permanent.



Commands available with voteban.py listed with the default settings

• Permission level 5

!voteban (alternatively !vote_ban)

Bans a player from voting for the set time period.

Usage: !voteban 'clientID|steamID' 'number[0-9]' 'scale[seconds?|minutes?|hours?|days?|weeks?|months?|years?]' 'name'

!voteunban (alternatively !vote_unban)

Unbans a player from voting.

Usage: !voteunban 'clientID|steamID'

!listvoteban (alternatively !list_voteban)

Lists players in the vote ban list, even expired bans that have not been removed.

Usage: !listvoteban

!votebanversion

checks to see if the voteban.py is up to date and lists the version running on the server.

Usage: !votebanversion



CVARs The following bot settings used in the voteban script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels or on/off status.

set qlx_votebanAdmin "5" - Sets the minqlx server permisson level needed to add and remove someones server voting privilage. Voting privilage can only be removed from players below the qlx_votebanProtectionLevel setting.
set qlx_votebanProtectionLevel "5" - If the person being added to the vote ban list has this minqlx server permission level, they can't be added to the vote ban list.
set qlx_votebanVoteBan "1" - Turns on/off vote banning. Vote banning will remove voting privilages from a player on the server (1 is on, 0 is off).
set qlx_votebanRedisStorage "0" - Set to "1" if you would rather use the Redis database for tracking vote bans.



InviteOnly.py

This script was dut to a request I received that would allow you to have an invite only server that wouldn't reply on passwords that can be given to anyone.

The inviteonly.py script will allow an admin to add people to the invite only list which allows them to play on the server.

Anyone not on the invite only list will be kicked from the server or confined to spectator, depending on the script settings.

Players can be allowed to spectate for a settable amount of minutes (default is 3) to allow a server admin to easily add them to the invite only list with the connected player's client id (goten from the !id command or the /players command).

The script can also be set to kick people not on the invite only list as soon as they connect to the server.

The permission level needed to admin the invite only list is settable. See the CVAR section below for instructions.



Commands available with inviteonly.py listed with the default settings

• Permission level 5

!add_inviteonly (alternatively !addinviteonly or !aio)

Adds a player to the invite only list to allow them to play on the server.

Usage: !add_inviteonly 'player id|steam id' 'name'

!del_inviteonly (alternatively !delinviteonly or !dio)

Removes a player from the invite only list.

Usage: !del_inviteonly 'player id|steam id'

!list_inviteonly (alternatively !listinviteonly or !iol)

Lists players in the invite only list.

Usage: !list_inviteonly

!reload_inviteonly (alternatively !load_inviteonly)

Reloads the invite only list.

Usage: !reload_inviteonly

!inviteonlyversion

checks to see if the inviteonly.py is up to date and lists the version running on the server.

Usage: !inviteonlyversion



CVARs The following bot settings used in the inviteonly script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings.

set qlx_inviteonlyAdmin "5" - Sets the minqlx server permisson level needed to add and remove someone to/from the invote only list.
set qlx_invoteonlyAllowSpectator "0" - Set to "1" to allow spectators to remain on the server indefiniltely even when not on the invite only list (1 is on, 0 is off).
set qlx_inviteonlySpectatorTime "3" - Sets the amount of time (in minutes) a player can be a spectaror before being kicked if not on the invote only list.
Set qlx_invoteonlyAllowSpectator and qlx_inviteonlySpectatorTime to "0" to kick players immediately.



Kills.py

I created this script using mattiZed's pummel.py script located here: https://github.com/mattiZed/minqlx-plugins/blob/master/pummel.py.

IMPORTANT This script is designed to use the same recording style as pummel.py. Do not run both of these scripts. You won't lose any previously recorded pummel kills if you had pummel.py loaded.

This script is meant to give the players a little more fun by having some extra goals to try for in the game. It records any pummel/gauntlet kill, any direct grenade kill, any air rocket, and any air plasma kill. It records who you killed and how any times you have killed that person and displays the ratio of your kills to your victims kills on you.

You can look at each of the recorded types of kills with the commands !pummel, !grenades, !rockets, !plasma. These commands will show you a total kill amount you have for each kind of kill and your kill ratio against any player connected to the server at the time.

There are also end of the match stats posted when the map ends. These stats are per-map stats, not lifetime stats like the stats gotten with the above commands.

NOTE To disable the sounds this script plays type !sounds This uses the built-in minqlx sounds feature.

****** How to set which kill types are recorded ****** Add the values for each type of kill listed below and set that value to the qlx_killsMonitorKillTypes in the same location as the rest of your minqlx cvar's.

Kill Monitor Values
Pummel: 1 (records any pummel/gauntlet kill)
Air Pummel: 2 (records any pummel/gauntlet kill where killer and victim are airborne)
Direct Grenade: 4 (records any kills with direct grenade hits)
Air Rockets: 8 (records any Air Rocket kills)
Air Plasma: 16 (records any Air Plasma kills)
Air Rails: 32 (records any Air Rails kills where both the killer and victim are airborne)
Telefrag: 64 (records any enemy telefrag)
Telefrag TeamKill: 128 (records any teamkill telefrag)
Speed Kill: 256 (records any kill when the killer is traveling over the set speed)

The Default value is 'set qlx_killsMonitorKillTypes "511"' which enables all the kill monitor types.



Commands available with kills.py

• Permission level 3

!kgt (alternatively !killsgametype)

Shows your the gametype being currently played on the server for purposes of adding the gametype to the supported gametypes.

Usage: !kgt

• Permission level 0

!pummel (alternatively !gauntlet)

Shows your total pummel kills on the server and your kill ratio against any connected player.

Usage: !pummel

!airgauntlet (alternatively !airpummel)

Shows your total air gauntlet kills on the server and your kill ratio against any connected player. This is achieved when both the killer and the victim are in the air during the gauntlet kill.

Usage: !airgauntlet

!grenades (alternatively !grenade)

Shows your total direct grenade kills on the server and your kill ratio against any connected player. NOTE: The kill does not record if it is reported as a shrapnel kill.

Usage: !grenades

!rockets (alternatively !rocket)

Shows your total air rocket kills on the server and your kill ratio against any connected player. NOTE: This kill type looks at how the server reports the kill. If it is a direct rocket kill and the victim is reported as in the air, the kill will record.

Usage: !rockets

!plasma

Shows your total air plasma kills on the server and your kill ratio against any connected player. NOTE: This kill type looks at how the server reports the kill. If it is a direct plasma kill and the victim is reported as in the air, the kill will record.

Usage: !plasma

!airrail (alternatively !airrails)

Shows your total air rail kills on the server and your kill ratio against any connected player. NOTE: This kill type looks at how the server reports the kill. If it is a rail kill where both the killer and the victim is reported as in the air, the kill will record.

Usage: !airrail

!telefrag

Shows your total telefrag kills on enemies on the server and your kill ratio against any connected player.

Usage: !telefrag

!teamtelefrag (alternatively !teamtele)

Shows your total telefrag kills on teammates on the server and your kill ratio against any connected player.

Usage: !teamtelefrag

!speed (alternatively !speedkill)

Shows your total speed kills on the server and your kill ratio against any connected player.

Usage: !speed

!speedlimit

Shows the minimum speed a player must be traveling when killing someone to record a speed kill.

Usage: !speedlimit



CVAR(s) The following bot settings used in the kills script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings.

set qlx_killsMonitorKillTypes "255" Enables/Disables the kill monitor types. See Kill Monitor Values above.
set qlx_killsSpeedMinimum "800" Sets the minimum speed needed to record a speed kill set qlx_killsPlaySounds "1" Enables/Disables the sounds played when a monitored kill happens.
Players can individually turn off sounds with !sounds.



Listmaps.py

I created this script to be able to list all the maps loaded on the server.

This script creates a map list when the server starts, the plugin is reloaded, or the admin enters the '!getmaps' command. The people on the server are able to use the '!listmaps' command to see all the maps loaded on the server. If the command is used like '!listmaps <search string>' it will search for maps with the search string in the names. Ex: '!listmaps ra3' will display all the maps with ra3 in the name.

To use the !mapname function put the Map_Names.txt in the Map_Names folder in your /qlds (install directory).

Whenever the maps loaded on the server change the admin needs to re-run the '!getmaps' command to update the list.



Commands available with listmaps.py listed with the default settings

• Permission level 4

!getmaps

Creates a new map list based on the maps loaded on the server.

Usage: !getmaps

• Permission level 0

!listmaps (alternatively !listmap)

Lists the maps available for play on the server.

Usage: !listmaps <optional search string>

!mapname

Lists the map's name if it is listed in the Map_Name.txt file.

Usage: !mapname <map callvote name>



CVARs The following bot settings used in the listmaps script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels.

set qlx_listmapsAdmin "4" - Sets the minqlx server permisson level needed to admin the listmaps script (to use !getmaps).
set qlx_listmapsUser "0" - Permission level needed to use !listmaps, which show the user the map list generated by the !getmaps command.



MapLimiter.py

I created this script to limit the maps that can be voted for on a server. It does the same type of thing that setting qlx_enforceMappool '1'.

I wrote it for the practice and because I wanted to make the players able to search for specific maps and I wanted it listed more compactly.

By default the maps in the baseq3/mappool.txt will be used. Set the qlx_mapLimiterFile cvar to point to a different file. EXAMPLE: set qlx_mapLimiterFile "baseq3/myMapPool.txt"

The script will look in the qlds folder, so if you want to use the same map pool file for this script as you are using for your server for map voting at the end of the match, you need to point it to the baseq3 folder as the EXAMPLE shows.

The file used must be formatted the same way as the map pool files are for the Quake Live server. That is one map and factory per line. map|factory

EXAMPLE: #specify 1 map per line, mapname|factoryid #ex: aerowalk|ffa #see factories.txt for valid factory id values almostlost|ffa almostlost|ca arcanecitadel|tdm arkinholm|tdm asylum|ffa asylum|ca basesiege|ctf beyondreality|ctf bitterembrace|ffa blackcathedral|ca blackcathedral|dom brimstoneabbey|ffa brimstoneabbey|ca brimstoneabbey|dom

As the example shows, if you want more than one game type to be allowed per map then list the map on multiple lines with a different game type on each line.

• Permission level 0

!maps (alternatively !votablemaps, !votemaps, !allowedmaps, !mappool, !maplist)

Lists the maps available for play on the server.

Usage: !maps <optional search string>



CVARs The following bot settings used in the mapLimiter script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels.

set qlx_mapLimiterFile "baseq3/mappool.txt" - The file pointed to for map vote limiting.



Specall.py

This script was added to help admins running pickup games.

When the time to start picking teams arrives it can be hard to get everyone to go to spectator so the process can start. This script will put everyone to spectate wth a single command.

If the command is followed by a teamsize, the teamsize will be set to the desired size when everyone is put to spectator.



Commands available with specall.py listed with the default settings

• Permission level 5

!specall (alternatively !allspec)

Puts all players to spectator. Include teamsize if you also want to set/change the teamsize (teamsize is not required). This command will not work during an active match.

Usage: !specall 'teamsize'

!forcespecall (alternatively !forceallspec or !specallforce)

Puts all players to spectator. Include teamsize if you also want to set/change the teamsize (teamsize is not required). This command will work at any time, use with caution.

Usage: !forcespecall 'teamsize'

!v_specall (alternatively !versionspecall)

Checks to see if the current released version of specall.py is running on the server.

Usage: !v_specall



CVAR(s) The following bot setting(s) used in the specall script can be set with the rest of the minqlx bot settings:
The setting(s) are shown with the default settings.

qlx_specallAdminLevel "5" - Sets the minqlx server permisson level needed to use the specall.py commands.



Voicechat.py

I created this script to allow players to set the server to Global or Team voichat through a callvote.



Commands available with voicechat.py listed with the default settings

• Permission level 5

!gvoice (alternatively !globalvoice)

Sets server voicechat to GLOBAL chat.

Usage: !gvoice

!tvoice (alternatively !teamvoice)

Sets server voicechat to TEAM chat.

Usage: !tvoice

!voicechat_version (alternatively !voicechatversion)

Checks to see if the voicechat.py is up to date and lists the version running on the server.

Usage: !voicechat_version

!voicechat_status (alternatively !status or !settings)

Checks to see if the server is set to GLOBAL or TEAM voice chat.

Usage: !voicechat_status

• Permission level 0

!voicechat

Gives the player the instructions to use the callvote voichat commands and checks to see if the server is set to GLOBAL or TEAM voice chat.

Usage: !voicechat



CVARs The following bot settings used in the voicechat script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels or on/off status.

set qlx_voicechatAdminLevel "5" - Sets the minqlx server permisson level needed to use the admin level commands in this script.
set qlx_voicechatVoiceChatVoting "1" - Set to "1" to allow players to vote for changing the voice chat option to team/global.
set qlx_voicechatJoinMessage "1" - Set to "1" to display the script join message to connecting players.



votelimiter.py

I created this script to keep people from callvoting stupid votes and votes that mess up the server but the admin hadn't thought about. This script will keep people from being able to callvote something that has not been added to the Allowed Vote List.
This will stop any vote type, if enabled, that is not in the allowed vote list.
This will also count the amount of votes people make and will limit it to the valuer set with "qlx_votelimiterLimit". Quake Live has an included vote limiting feature that works well until the map changes, like in a callvote (map), then the Quake Live vote count resets. This script will keep that count until a game/match ends.

By default the following votes are allowed:
kick
clientkick
map
teamsize
cointoss
shuffle
map_restart
NOTE: Use !dv <vote> to remove any of the default vote types if they aren't wanted. This should only need to be done the first time the script is loaded on a server.

Commands available with votelimiter.py listed with the default settings

• Permission level 0

Callvote

Players can use '/cv voteban <player name/id>' to ban a player from being able to vote. The player is maintianed on the list until the plyer disconnects or the server is restarted.

Usage: '/cv voteban <player name/id>' in console

!voteslist (alternatively !listvotes or !votes)

Shows the votes that the script will allow.

Usage: !voteslist

• Permission level 'qlx_votelimiterAdmin'

!addvote (alternatively !allowvote or !av)

Adds votes to the allowed vote type list.

Usage: !addvote <vote>

!delvote (alternatively !deletevote or !dv)

Removes votes from the allowed vote type list.

Usage: !delvote <vote>

!reload_voteslist (alternatively !load_votelist or !rvl)

Reloads the vote type allowed list from the votelimiter file. Useful if the file was edited manually.

Usage: !reload_voteslist

!versionvotelimiter (alternatively !version_votelimiter or !vlv)

Checks to see if the votelimiter.py is up to date and lists the version running on the server.

Usage: !versionvotelimiter

!unvoteban

Removes a player from the votelimiter voteban list. This voteban list only maintains a player on the list until the player disconnects ro the server is restarted.

Usage: !unvoteban <id>

!addvoteban

Adds a player to the votelimiter voteban list. This voteban list only maintains a player on the list until the player disconnects ro the server is restarted.

Usage: !addvoteban <id>

!votebanlist

Lists the players on the votelimiter voteban list.

Usage: !votebanlist <vote>

CVARs The following bot settings used in the votelimiter script can be set with the rest of the minqlx bot settings:
The settings are shown with the default settings. Edit them to change the permission levels or on/off status.

set qlx_votelimiterAdmin "5" - Sets the minqlx server permisson level needed to use the admin level commands in this script.
set qlx_votelimiterLimit "5" - Sets the amount of votes each player is allowed to call before the end of a game/match
This count will carry through map changes. The built in limiter for Quake Live resets on map changes.
set qlx_votelimiterTypes "1" - Enable/Disable the restricting of vote types ("1" = Enable, "0" = Disable)