Base Configuration Options

These are the base configuration options available in piqueserver.


This section contains general information and configuration for the server


The Name of the server, as displayed on the master server list:

name = "piqueserver instance"

This config option supports Substitution.


A list of lines which should be sent when the player joins:

motd = [
   "Welcome to the server",
   "Have fun! <3",

This config option supports Substitution.


This is the text shown by the /help command. If not defined, /help will just display a list of the available commands.

This config option supports Substitution.


This is the text shown by the /rules command.

This config option supports Substitution.


A line picked at random from this text will be shown every tip_frequency minutes.

This config option supports Substitution.


How often the tip will be shown, in minutes. 0 means no tips. Default 5.


The maximum number of players on the server. Going over 32 players will break the vanilla AoS client, as is not designed to support more. Default 32.


The ctf for “Capture the Flag”, tc for “Territory Control”. or a script name for a custom game mode.


The number of captures that are required to end the game.


A list of maps to use


The default time limit to set per map. When the time limit runs out, the map rotation is advanced.


If true, advance the map rotation when the game ends.


false if the order should be as in rotation, true if the order should be shuffled. Default false.


Limits how many players can connect from the same IP address. 0 disables this limit. Default 0.


This section configures the teams:

# name of the team to be displayed in-game
name = "Blue"
# color of the players in RGB, 0-255
color = [ 0, 0, 255]

name = "Green"
color = [ 0, 255, 0]


This section defines the behaviour when admins ban players:

# default duration a banned player will be banned for
default_duration = "1day"

# location the bans are saved and loaded from
file = "bans.txt"

# Ban publish allows you to synchronize bans between servers. When enabled,
# the server listens on the given port and responds to any requests with a list
# of bans
publish = false
publish_port = 32885

# Bansubscribe allows you to inherit bans from another server with banpublish enabled.
# `url` is the URL returning the json list, `whitelist` is a list of names which should
# be exempt from the filter
bansubscribe = [
    { url = "", whitelist = []},

# how often the subscribed servers are frequented to update bans
bansubscribe_interval = "5min"


When true, respawn all dead players every respawn_time seconds. When false, respawn a player respawn_time seconds after their death. Spawning in groups decreases the effectiveness of spawnkilling. Default true.


see respawn_waves


The number of intel captures before the game is won. Default 10.


The number of seconds before a player respawns. Default 5.


‘true’ shows server on the master serverlist. ‘false’ disables this, for private games want a private game. Default false.


true: enables friendly fire. false: disables friendly fire.


if true, friendly fire is enabled temporarily if a player destroys a block.


If friendly fire should be enabled for the spade too. This is disabled by default, because it often causes accidental teamkills in tunnels.


The number of seconds a player is vulnerable to friendly fire after destroying a block when friendly_fire_on_grief is enabled.


Forces players to wait a set duration before being able to switch back again after they switched teams.

“0sec” disables the cooldown.


If true you only get to pick a team when you join.


If true, attempt to detect if users are speedhacking. This is not 100% accurate, so it might be a good idea to disable it for servers where the users are trusted.


Distance the server tolerates between the place it thinks the client is to where the client actually is. Default 10.


The amount of damage dealt by the spade. Default 80.


controls whether players receive damage by falling from height


This section contains roles and their associated passwords. When playing, a player may gain that role by typing:

/login <password>

Any name may be used for a role, but there are two special roles: admin and trusted. Users with the admin role have the maximum rights available, while trusted users are not affected by votekicks and similar.

Each account can have a list of passwords. It is usually a good idea to give out one password per person:

admin = ["password","sesame","watermelon"],
trusted = ["semi","coolness"]
custom = ["mypass"]


This section contains the commands each role can execute.


Piqueserver ships with a set of scripts you can use to customize the features of your server. They are loaded in order, “on top of” each other.

Scripts can either be absolute python import paths (piqueserver.scripts.aimbot2) or the name of scripts in the scripts folder, excluding the file extension (mycustomscript for a script at scripts/

scripts = [


Piqueserver can log events that happen to a text file:

# set log level
# log levels in decending order: debug, info, warn, error, critical
loglevel = "info"
# the logfile to log to
# relative paths are resolved relative to the config directory; parent
# directories are created as necessary
# empty string disables logging
logfile = "./logs/log.txt"

# Write a new log file each day
rotate_daily = true

# enable profiling
profile = false


This section controls SSH “manhole” access to the server. This allows you access to a python shell. This is mainly useful for debugging. If you don’t know what you are doing, you should leave it disabled:

enabled = false
port = 32887

# user = password
# pairs for credentials allowed to login to the ssh server
# WARNING: keep these credentials secure since this gives console access to the server
# on which piqueserver is running!
user1 = "ssh_pass_change_this"


The status server is a built-in web server that displays information about the server and connected players:

enabled = true
# the port to listen on
port = 32886
# write an access log
logging = false


When the server sends messages to users, the message is prefixed with the characters in server_prefix.


Controls whether users can affect the map’s initial blocks.


The file where the server log is recorded. Relative paths are resolved relative to the configuration directory. For example if the logfile is /logs/log.txt, this will be in the logs subdirectory of the config directory.


If 0, any permutation of teams is allowed. If 1 or greater, players are not allowed to join a team if that would mean the difference in players count between the two teams is more than the balanced_teams value. Default 2.


The number of /login attempts allowed before users are auto-kicked. Default 3.


This section configures an IRC chatbot that reports server events in the given channel:

enabled = false
# IRC login details
nickname = "piqueserver"
username = "piqueserver"
realname = "piqueserver"
server = ""
port = 6667

# channel to join into
channel = "#piquserver-bots"
# password for the channel
password = ""

# prefixes irc users must use for bot to process as command or to send to game chat
commandprefix = "!"
chatprefix = "."


Put the player into god build mode automatically when entering god mode


Configure the times that announcements about the remaining time should be made. This value is a list of times remaining in seconds.


Optionally override the service used to fetch the server’s public ip address. Eg. "". If this is set to an empty string, IP getting is disabled.

Note: this url must return solely the ip address in the response body.


Check github for new releases and notify admins if new releases are found. Default True.


Set everyone_is_admin to true to automatically log all players in as admin on join. Possibly useful for testing purposes.