366 lines
11 KiB
TOML
366 lines
11 KiB
TOML
# server name - displayed on master server
|
|
name = "onFOSS"
|
|
|
|
# messages sent when user joins server
|
|
motd = [
|
|
"Welcome to %(server_name)s",
|
|
"Map: %(map_name)s by %(map_author)s",
|
|
"Game mode: %(game_mode)s",
|
|
"Server powered by piqueserver and buildandshoot.com"
|
|
]
|
|
|
|
# info displaying when user types the /help command
|
|
# String interpolation is allowed. Possible values are:
|
|
# 'server_name', 'map_name', 'map_author', 'map_description', 'game_mode'
|
|
help = [
|
|
"Server name: %(server_name)s", "Map: %(map_name)s by %(map_author)s",
|
|
"Game mode: %(game_mode)s",
|
|
"/commands Prints all available commands",
|
|
"/help <command_name> Gives description and usage info for a command",
|
|
"/help Prints this message"
|
|
]
|
|
|
|
# list of messages to send when the user sends the /rules command
|
|
rules = [
|
|
"Cheating isn't welcome. Griefing is frowned upon. Have fun!"
|
|
]
|
|
|
|
# random lines from this list are shown at a specified frequency in-game
|
|
tips = [
|
|
"You are playing %(game_mode)s on %(server_name)s",
|
|
"Type /help for info & commands"
|
|
]
|
|
|
|
# how often the tips should display
|
|
tips_frequency = "5min"
|
|
|
|
# SERVER
|
|
# set this if the server should register on the master server list
|
|
master = false
|
|
|
|
# limit max number of players who can join.
|
|
# must be 0 < max_players <= 32
|
|
max_players = 32
|
|
|
|
# messages from the server in-game will be prefixed with this string
|
|
server_prefix = ""
|
|
|
|
# limit number of players who can connect from the same ip address
|
|
# 0 disables the limit (default: 0)
|
|
#max_connections_per_ip = 0
|
|
max_connections_per_ip = 3
|
|
|
|
# port the server will listen on (default: 32887)
|
|
port = 32887
|
|
|
|
# interface the server will listen on (default: all interfaces)
|
|
# TODO: document enet specific strangeness
|
|
network_interface = ""
|
|
|
|
# url that is used to request the server's public ip address
|
|
# it should be a url that returns only the requester's public ip in the response body
|
|
# Set to an empty string if you wish to disable ip requesting
|
|
# WARNING: do not change unless you are sure you know what you are doing
|
|
# other tools if the default is down:
|
|
# https://icanhazip.com/
|
|
# https://api.ipify.org
|
|
#ip_getter = "https://services.buildandshoot.com/getip"
|
|
|
|
# note: scripts are loaded in order entered here. Some scripts may depend on
|
|
# other scripts being loaded before them.
|
|
scripts = [
|
|
"piqueserver.scripts.rollback",
|
|
"piqueserver.scripts.protect",
|
|
"piqueserver.scripts.map_extensions",
|
|
"piqueserver.scripts.disco",
|
|
"piqueserver.scripts.votekick",
|
|
"piqueserver.scripts.trusted",
|
|
"piqueserver.scripts.ratio",
|
|
"piqueserver.scripts.passreload",
|
|
"piqueserver.scripts.blockinfo",
|
|
"piqueserver.scripts.squad",
|
|
"piqueserver.scripts.afk"
|
|
]
|
|
|
|
# number of /login attempts allowed before players are auto-kicked (default: 1)
|
|
login_retries = 3
|
|
|
|
# MAP
|
|
# maps listed in the rotation
|
|
# these names are the name of the map vxl/txt files without the file extensions
|
|
# eg. if you have hallway.txt and hallway.vxl, you can add "hallway" to the rotation
|
|
# Note: you can still load a map in-game that isn't on this rotation list with commands
|
|
rotation = [
|
|
# "classicgen",
|
|
"random"
|
|
]
|
|
|
|
# whether next map for a new game will be chosen at random
|
|
# if this is false, maps will cycle in order listed in the rotation list
|
|
random_rotation = false
|
|
|
|
# GAME
|
|
# set the game mode. "ctf" and "tc" are built in game modes; others are custom
|
|
# game modes specified by python module or python script in the config game_modes
|
|
# directory (without the '.py' extension).
|
|
# Examples: "piqueserver.game_modes.push", "mygame" (where you have config/game_modes/mygame.py)
|
|
game_mode = "ctf"
|
|
|
|
# default time limit to set per map. When the time limit runs out, the map rotation is advanced
|
|
default_time_limit = "2hours"
|
|
# advances the map rotation when the game ends, if set to true
|
|
advance_on_win = true
|
|
|
|
# time between player respawn waves
|
|
# (default: 8 seconds)
|
|
respawn_time = "16sec"
|
|
|
|
# if respawns should happen in waves, or respawn_time seconds after the players death
|
|
respawn_waves = true
|
|
|
|
# whether friendly fire is allowed by default
|
|
friendly_fire = false
|
|
|
|
# allow friendly fire if player destroys blocks (helpful if you want to kill
|
|
# griefers
|
|
friendly_fire_on_grief = true
|
|
|
|
# duration a player is vulnerable to friendly fire if
|
|
# friendly_fire_on_grief enabled
|
|
grief_friendly_fire_time = "5sec"
|
|
|
|
# If friendly fire should be enabled for the spade too. This is disabled by default,
|
|
# because it frequently causes accidental teamkills
|
|
spade_teamkills_on_grief = false
|
|
|
|
# If 0, any permutation of teams is allowed. If 1 or greater, team balance is enforced with the algorithm:
|
|
# `abs(team1_players - team2_players) <= balanced_teams`
|
|
# The value is thus the maximum player number difference allowed between teams
|
|
balanced_teams = 2
|
|
|
|
# time players must wait before switching teams again
|
|
# 0sec disables cooldown time
|
|
teamswitch_interval = "0sec"
|
|
# whether players are allowed to switch teams at all
|
|
teamswitch_allowed = true
|
|
|
|
# attempt to detect speedhacking. This might cause false positives.
|
|
speedhack_detect = true
|
|
|
|
# distance the server tolerates between the place it thinks the client is to where the client actually is.
|
|
rubberband_distance = 10
|
|
|
|
# The amount of damage dealt by a melee hit
|
|
melee_damage = 80
|
|
|
|
# controls whether players receive damage by falling from height
|
|
fall_damage = true
|
|
|
|
# disable users ability to affect the map's initial blocks
|
|
user_blocks_only = false
|
|
|
|
# puts the player into god build mode automatically when entering god mode, if set to true
|
|
set_god_build = false
|
|
|
|
# time in seconds remaining when the time remaining should be announced
|
|
time_announcements = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 30, 60, 120, 180, 240, 300, 600, 900, 1200, 1800, 2400, 3000]
|
|
|
|
# number of intel captures to win the game (default: 10)
|
|
cap_limit = 10
|
|
|
|
|
|
# Set this to true to automatically log all players in as admin on join.
|
|
# Possibly useful for testing purposes.
|
|
#everyone_is_admin = false
|
|
|
|
[team1]
|
|
# information about the team1
|
|
# name of the team to be displayed in-game
|
|
name = "Blue"
|
|
# color of the players
|
|
color = [ 0, 0, 255]
|
|
|
|
[team2]
|
|
# information about team2 - same settings as for team1
|
|
name = "Green"
|
|
color = [ 0, 255, 0]
|
|
|
|
[passwords]
|
|
# server management passwords
|
|
# players can login using these to execute privileged commands (kicking,
|
|
# changing maps, etc.)
|
|
# authenticate with: /login <password>
|
|
# supports a list of passwords so you can give different passwords to different
|
|
# people for easy password management.
|
|
# logging in as admin or trusted also disables being votekicked (if that script is enabled)
|
|
# For security reasons, logins are disabled by default.
|
|
#
|
|
#admin = ["adminpass1", "adminpass2"]
|
|
#moderator = ["modpass"]
|
|
#guard = ["guardpass"]
|
|
#trusted = ["trustedpass"]
|
|
|
|
|
|
[bans]
|
|
# default duration a banned player will be banned for
|
|
default_duration = "1day"
|
|
|
|
# location the bans are saved and loaded from (relative to the config
|
|
# directory)
|
|
#file = "bans.txt"
|
|
|
|
# Ban publish allows you to synchronize bans between servers. When enabled,
|
|
# the server listens on the given port and respnds 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 = "http://www.blacklist.spadille.net/subscribe.json", whitelist = []},
|
|
#]
|
|
|
|
|
|
|
|
[rights]
|
|
# Rights allow you to specify the roles available and what permissions they have
|
|
moderator = [
|
|
"advancemap", "cancel", "dban", "fog",
|
|
"from", "hackinfo", "hban",
|
|
"invisible", "ip", "kick", "kickafk",
|
|
"kill", "map", "master", "move", "moves",
|
|
"mute", "resetgame", "switch", "teleport",
|
|
"teleport_other", "tpsilent", "togglebuild", "togglekill",
|
|
"togglevotekick", "trust", "undoban", "unmute",
|
|
"unstick", "where", "whowas"
|
|
]
|
|
guard = [
|
|
"cancel", "fog", "from",
|
|
"hackinfo", "hban", "ip", "kick",
|
|
"kickafk", "kill", "move", "moves", "mute",
|
|
"switch", "teleport", "teleport_other", "togglebuild",
|
|
"togglekill", "togglevotekick", "trust", "unmute",
|
|
"unstick", "where", "whowas"
|
|
]
|
|
|
|
[logging]
|
|
# set log level
|
|
# various log levels in decending order: debug, info, warn, error, critical
|
|
loglevel = "info"
|
|
|
|
# the logfile to log to if logging enabled
|
|
# relative paths are resolved relative to the config directory; parent
|
|
# directories are created as necessary
|
|
logfile = "./logs/log.txt"
|
|
|
|
# writes a new log file each day
|
|
rotate_daily = true
|
|
|
|
profile = false
|
|
|
|
|
|
# the web server which provides a json api and webpage to view a summary of the
|
|
# game (including map, players, and server information)
|
|
[status_server]
|
|
enabled = true
|
|
port = 32886
|
|
logging = true
|
|
|
|
|
|
# settings for the irc chatbot that can report server events and respond to commands
|
|
# disabled by default
|
|
[irc]
|
|
enabled = false
|
|
nickname = "piqueserver"
|
|
username = "piqueserver"
|
|
realname = "piqueserver"
|
|
server = "irc.quakenet.org"
|
|
port = 6667
|
|
channel = "#MyServerChannel"
|
|
password = ""
|
|
|
|
# prefixes irc users must use for bot to process as command or to send to game chat
|
|
commandprefix = "!"
|
|
chatprefix = "."
|
|
|
|
|
|
|
|
[ssh]
|
|
# enable the ssh manhole server
|
|
# gives ssh access to a python repl connected to the running server
|
|
# Do not enable unless you are sure you want to use this!
|
|
#enabled = false
|
|
#port = 32887
|
|
|
|
[ssh.users]
|
|
# 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"
|
|
|
|
|
|
###############################################################################
|
|
# Script specific config
|
|
#
|
|
# Each section corresponds to the script that uses said section. These
|
|
# settings are only used by enabled scripts, and will be ignored by the core
|
|
# server.
|
|
###############################################################################
|
|
|
|
|
|
# piqueserver.scripts.squad
|
|
[squad]
|
|
respawn_time = "32sec"
|
|
size = 4
|
|
auto_squad = false
|
|
|
|
|
|
# piqueserver.scripts.savemap
|
|
# allows automatically saving a snapshot of the map on server close
|
|
[savemap]
|
|
|
|
# automatically load the saved map on map load
|
|
load_saved_map = false
|
|
|
|
|
|
# piqueserver.scripts.rollback
|
|
[rollback]
|
|
rollback_on_game_end = false
|
|
|
|
|
|
# piqueserver.scripts.afk
|
|
[afk]
|
|
# duration player must be inactive for to be auto-kicked for afk
|
|
time_limit = "30min"
|
|
|
|
|
|
# piqueserver.scripts.votekick
|
|
[votekick]
|
|
|
|
# percentage of total number of players in the server required to vote to
|
|
# successfully votekick a player
|
|
percentage = 35
|
|
|
|
# duration that votekicked player will be banned for
|
|
ban_duration = "30min"
|
|
|
|
public_votes = true
|
|
|
|
|
|
# piqueserver.scripts.votemap
|
|
[votemap]
|
|
|
|
# publically display which map players voted for
|
|
public_votes = true
|
|
|
|
# extend current map (meaning?)
|
|
extension_time = "15min"
|
|
|
|
# players can initiate voting for a new map with /votemap
|
|
player_driven = false
|
|
autoschedule = false
|
|
percentage = 80
|