mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-26 02:02:39 +00:00
847 lines
36 KiB
TOML
847 lines
36 KiB
TOML
##########
|
|
# README #
|
|
##########
|
|
#
|
|
# Paradise SS13 Config System
|
|
# This used to be 10+ different text files, now its all condensed into one toml file with sections and proper values
|
|
# This is serialized to json on world load by RUSTG, and then handled inside BYOND
|
|
# Editing this in an IDE such as VSCode is highly recommended so you can lint for errors
|
|
# Commenting out any value will make it use the game default (likely null)
|
|
# If you add new sections, keep them alphabetical
|
|
# Please be careful editing this, as you can break it all if youre not careful. -aa07
|
|
#
|
|
#
|
|
# SECTION LIST (Ctrl+F to jump to these)
|
|
# - admin_configuration
|
|
# - afk_configuration
|
|
# - custom_sprites_configuration
|
|
# - database_configuration
|
|
# - discord_configuration
|
|
# - event_configuration
|
|
# - gamemode_configuration
|
|
# - general_configuration
|
|
# - ipintel_configuration
|
|
# - job_configuration
|
|
# - logging_configuration
|
|
# - mc_configuration
|
|
# - metrics_configuration
|
|
# - movement_configuration
|
|
# - overflow_configuration
|
|
# - ruin_configuration
|
|
# - system_configuration
|
|
# - url_configuration
|
|
# - voting_configuration
|
|
# -
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[admin_configuration]
|
|
# This section contains all information regarding admin setup. This includes ranks, rights, and if you are using the database-backed admin system
|
|
|
|
# Set this to true if you are using database-based admins, or false if you want to define them in this file
|
|
# If the database fails, this file will be used as fallback
|
|
use_database_admins = false
|
|
# Auto authenticate localhost users as admin? Useful for test servers, disable in producation
|
|
enable_localhost_autoadmin = true
|
|
# List of admin rank assignments and their permissions
|
|
# These names ARE CASE SENSITIVE
|
|
# +BUILD (or +BUILDMODE) = the ability to use buildmode
|
|
# +ADMIN = general admin tools, verbs etc
|
|
# +BAN = the ability to ban, jobban and fullban
|
|
# +EVENT = Access to event related verbs
|
|
# +SERVER = higher-risk admin verbs and abilities, such as those which affect the server configuration.
|
|
# +DEBUG = debug tools used for diagnosing and fixing problems. It's useful to give this to coders so they can investigate problems on a live server.
|
|
# +PERMISSIONS (or +RIGHTS) = allows you to promote and/or demote people.
|
|
# +POSSESS = the ability to possess objects
|
|
# +STEALTH = the ability to stealthmin (make yourself appear with a fake name to everyone but other admins)
|
|
# +REJUV (or +REJUVINATE) = the ability to heal, respawn, modify damage and use godmode
|
|
# +VAREDIT = everyone may view viewvars/debugvars/whatever you call it. This keyword allows you to actually EDIT those variables.
|
|
# +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag
|
|
# +SOUND (or +SOUNDS) = allows you to upload and play sounds
|
|
# +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs
|
|
# +MOD = Access to low level moderation tools. Not used in Paradise production
|
|
# +MENTOR = Access only to the Question's Ahelp and has little way of metagaming the game.
|
|
# +PROCCALL = Access to call procs on anything. Be careful who you grant this too!
|
|
# +VIEWRUNTIMES = Allows a player to view the runtimes of the server, but not use other debug verbs
|
|
admin_ranks = [
|
|
# Format: {name = "My Rank", rights = ["+LIST", "+OF", "+RIGHTS"]}
|
|
{name = "Mentor", rights = ["+MENTOR"]},
|
|
{name = "Trial Admin", rights = ["+ADMIN", "+BAN", "+STEALTH", "+REJUVINATE"]},
|
|
{name = "Game Admin", rights = ["+ADMIN", "+BAN", "+STEALTH", "+REJUVINATE", "+DEBUG", "+BUILDMODE", "+EVENT", "+SERVER", "+POSSESS", "+PROCCALL", "+VAREDIT", "+SOUND", "+SPAWN"]},
|
|
{name = "Head of Staff", rights = ["+EVERYTHING"]},
|
|
{name = "Hosting Provider", rights = ["+EVERYTHING"]},
|
|
{name = "Maintainers", rights = ["+EVERYTHING"]}
|
|
]
|
|
# List of people and the admin rank they are assigned to
|
|
admin_assignments = [
|
|
#{ckey = "Your Name Here", rank = "Hosting Provider"}
|
|
]
|
|
# Allow admins to set their own OOC colour
|
|
allow_admin_ooc_colour = true
|
|
# Map of admin rank colours to their respective rank. Note you can use hex or colour name here.
|
|
admin_rank_colour_map = [
|
|
{name = "Head of Staff", colour = "#e74c3c"},
|
|
{name = "Maintainer", colour = "#992d22"},
|
|
{name = "Server Dev", colour = "#1abc9c"},
|
|
{name = "Community Manager", colour = "#e91e63"},
|
|
{name = "Game Admin", colour = "#238afa"},
|
|
{name = "Trial Admin", colour = "#7fb6fc"},
|
|
{name = "PR Reviewer", colour = "#c27c0e"},
|
|
{name = "Mentor", colour = "#f1c40f"},
|
|
]
|
|
# Map of common CIDs that should not be banned, plus their reasons
|
|
common_cid_map = [
|
|
{cid = "3923664137", reason = "Mass-Match related to Walmart branded prebuilt PCs"}
|
|
]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[afk_configuration]
|
|
# This section contains options for the auto AFK cryo system
|
|
|
|
# Amount of minutes that a person can be AFK for before they are warned
|
|
afk_warning_minutes = 15
|
|
# Amount of minutes that a person can be AFK for before they are auto cryo'd
|
|
afk_auto_cryo_minutes = 20
|
|
# Amount of minutes that a person can be AFK for before they are despawned
|
|
afk_auto_despawn_minutes = 21
|
|
# Amount of time before SSD people are auto cryo'd
|
|
ssd_auto_cryo_minutes = 15
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[custom_sprites_configuration]
|
|
# This section contains a list of information for people with custom sprites for mobs, if they donated
|
|
# It is split by mob type, and screens have their own system
|
|
# Make sure you use CKEYS not KEYS here (EG: affectedarc07 instead of AffectedArc07)
|
|
|
|
# List of ckeys who have a custom cyborg skin
|
|
cyborgs = ["ckeyhere"]
|
|
# List of ckeys who have a custom AI core style
|
|
ai_core = ["ckeyhere"]
|
|
# List of ckeys who have a custom AI holopad hologram sprite
|
|
ai_hologram = ["ckeyhere"]
|
|
# List of ckeys who have a custom pAI holoform sprite
|
|
pai_holoform = ["ckeyhere"]
|
|
# List of dictionary entries for ckeys with a custom IPC screean
|
|
ipc_screens = [
|
|
{ckey = "ckeyhere", screens = ["Icon State 1", "Icon State 2"]}
|
|
]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[database_configuration]
|
|
# This section contains all the settings for the ingame database
|
|
# If you are running in production, you will want to be using a database
|
|
|
|
# Enable/disable the database on a whole
|
|
sql_enabled = false
|
|
# SQL version. If this is a mismatch, round start will be delayed
|
|
sql_version = 53
|
|
# SQL server address. Can be an IP or DNS name
|
|
sql_address = "127.0.0.1"
|
|
# SQL server port
|
|
sql_port = 3306
|
|
# SQL server database name
|
|
sql_database = "paradise_gamedb"
|
|
# SQL server username
|
|
sql_username = "root"
|
|
# SQL server password
|
|
sql_password = "please use something secure in a production environment"
|
|
# Time in seconds for async queries to time out
|
|
async_query_timeout = 10
|
|
# How many threads is the async SQL engine allowed to open. 50 is normal. Trust me.
|
|
async_thread_limit = 50
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[discord_configuration]
|
|
# This section contains all the information related to Discord webhook sending from the code
|
|
# If you are using webhooks, please fill out this section in full
|
|
# All role IDs must be STRINGS as BYOND doesnt like ints that big
|
|
enable_discord_webhooks = false
|
|
# List of all webhooks for the primary feed (public channels)
|
|
main_webhook_urls = [
|
|
"https://webhook.one",
|
|
"https://webhook.two"
|
|
]
|
|
# List of all webhook URLs for the mentor feed (mentorhelps relay)
|
|
mentor_webhook_urls = [
|
|
"https://mentor.webhook.one",
|
|
"https://mentor.webhook.two"
|
|
]
|
|
# List of all webhook URLs for the admin feed (round alerts, ahelps, etc)
|
|
admin_webhook_urls = [
|
|
"https://admin.webhook.one",
|
|
"https://admin.webhook.two"
|
|
]
|
|
# Role ID for the admin role on the discord. Set to "" to disable.
|
|
# THESE MUST BOTH BE STRINGS. BYOND DOESNT LIKE NUMBERS THIS BIG
|
|
admin_role_id = ""
|
|
# Role ID for the mentor role on the discord. Set to "" to disable.
|
|
mentor_role_id = ""
|
|
|
|
# Forward all ahelps to the discord? If disabled, ahelps are only forwarded if admins are AFK/Offline
|
|
forward_all_ahelps = true
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[event_configuration]
|
|
# This section contains settings for ingame random events
|
|
|
|
# Disable this to disable all random events
|
|
allow_random_events = true
|
|
# Map of lower bounds for event delays. In minutes.
|
|
event_delay_lower_bounds = {mundane = 10, moderate = 30, major = 50}
|
|
# Map of upper bounds for event delays. In minutes.
|
|
event_delay_upper_bounds = {mundane = 15, moderate = 45, major = 70}
|
|
# Expected round length in minutes. Changes event weights
|
|
expected_round_length = 120
|
|
# Initial delays for the first events firing off. If any of these are commented, a random value based on above thresholds is used.
|
|
# You must specify an upper and lower bound, or the code cries a lot. The events system is so bad good god.
|
|
# Values are in minutes
|
|
event_initial_delays = [
|
|
#{severity = "mundane", lower_bound = 10, upper_bound = 15},
|
|
{severity = "moderate", lower_bound = 25, upper_bound = 40},
|
|
{severity = "major", lower_bound = 55, upper_bound = 75},
|
|
]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[gamemode_configuration]
|
|
# This section contains setups for the gamemodes, as well as their probabilities
|
|
|
|
# Should antags use account age restrictions?
|
|
antag_account_age_restrictions = false
|
|
# Gamemode probabilities map for if you are using secret or random
|
|
gamemode_probabilities = [
|
|
{gamemode = "abduction", probability = 0},
|
|
{gamemode = "changeling", probability = 3},
|
|
{gamemode = "cult", probability = 3},
|
|
{gamemode = "extend-a-traitormongous", probability = 2}, # Autotraitor
|
|
{gamemode = "extended", probability = 3},
|
|
{gamemode = "nuclear", probability = 2},
|
|
{gamemode = "raginmages", probability = 0},
|
|
{gamemode = "revolution", probability = 0},
|
|
{gamemode = "traitor", probability = 2},
|
|
{gamemode = "traitorchan", probability = 3},
|
|
{gamemode = "traitorvamp", probability = 3},
|
|
{gamemode = "vampire", probability = 3},
|
|
{gamemode = "wizard", probability = 2},
|
|
{gamemode = "trifecta", probability = 3},
|
|
]
|
|
# Do we want the amount of traitors to scale with population?
|
|
traitor_scaling = true
|
|
# Protect mindshielded roles from being antagonists
|
|
prevent_mindshield_antag = true
|
|
# Rounds such as rev, wizard and malf end instantly when the antag has won. Enable the setting below to not do that.
|
|
disable_certain_round_early_end = false
|
|
# Amount of objectives for traitors to get (Does not include escape or hijack)
|
|
traitor_objective_amount = 2
|
|
# Enable player limits on gamemodes. Disable if testing
|
|
enable_gamemode_player_limit = true
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[general_configuration]
|
|
# General setup for the server (branding, options, etc)
|
|
|
|
# Name for the server in the list
|
|
server_name = "ParaCode Test"
|
|
# Tag line for the server. This appears as supplementary text
|
|
# EG: The perfect mix of RP & action
|
|
server_tag_line = "ParaCode Testing Server"
|
|
# Server features. Shows in a newline
|
|
server_features = "Medium RP, varied species/jobs"
|
|
# Allow OOC character metadata notes
|
|
allow_character_metadata = true
|
|
# Lobby time before roundstart (Seconds)
|
|
lobby_time = 240
|
|
# Forbid people without a BYOND account joining the server
|
|
guest_ban = true
|
|
# Allow players to use antagHUD?
|
|
allow_antag_hud = true
|
|
# Forbid players from rejoining if they use antag hud
|
|
restrict_antag_hud_rejoin = true
|
|
# Do we want to allow player respawns?
|
|
respawn_enabled = false
|
|
# Enable/disable the buster for the CID randomiser DLL
|
|
enable_cid_randomiser_buster = false
|
|
# Prevent admins from possessing the singularity
|
|
prevent_admin_singlo_possession = false
|
|
# Force open a reply window whenever someone is admin PM'd. Quite annoying.
|
|
popup_admin_pm = false
|
|
# Announce holidays ingame (such as halloween, christmas, happy [whatever] day)
|
|
allow_holidays = true
|
|
# Enable auto muting in all chat channels
|
|
enable_auto_mute = false
|
|
# Show a warning to players to make them accept a popup if they try to interact with SSD players
|
|
ssd_warning = true
|
|
# Allow ghosts to spin chairs
|
|
ghost_interaction = false
|
|
# Enable/disable starlight to make space without areas be lit up
|
|
starlight = true
|
|
# Disable lobby music on the server
|
|
disable_lobby_music = false
|
|
# Disable ambient noise and white noise
|
|
disable_ambient_noise = false
|
|
# Enable this if you want to disable the popup alert for people on the same CID
|
|
disable_cid_warning_popup = false
|
|
# Amount of loadout points people should get
|
|
base_loadout_points = 5
|
|
# Respawnability loss penalty if you cryo below this threshold (Minutes)
|
|
cryo_penalty_period = 30
|
|
# Observers count as roundstart if they join from the main menu before this time (in minutes). Set to 0 to allow only-pregame start observers.
|
|
roundstart_observer_period = 5
|
|
# Enable twitter emojis in OOC?
|
|
enable_ooc_emoji = true
|
|
# Auto start the game if running a local test server
|
|
developer_express_start = false
|
|
# Minimum client build for playing the server. Keep above 1421 due to exploits
|
|
minimum_client_build = 1421
|
|
# Give a confirmation when pressing "Start Now". Useful for avoiding starting the live server early
|
|
start_now_confirmation = false
|
|
# BYOND accounts younger than this threshold (days) will cause alerts on first login
|
|
byond_account_age_threshold = 3
|
|
# Maximum CIDs a client can have attached to them before they trip a warning
|
|
max_client_cid_history = 20
|
|
# Enable automatic profiling of rounds to profile.json
|
|
enable_auto_profiler = false # REVERT THIS AFTER 515 BECOMES NOT BUSTED
|
|
# Auto disable OOC when round starts?
|
|
auto_disable_ooc = true
|
|
# Enable/disable the breaking of bones
|
|
breakable_bones = true
|
|
# Enable/disable revival pod plants
|
|
enable_revival_pod_plants = true
|
|
# Enable/disable cloning
|
|
enable_cloning = true
|
|
# Randomise shift time instead of it always being 12:00
|
|
randomise_shift_time = true
|
|
# Enable night shift for night lighting
|
|
enable_night_shifts = true
|
|
# Cap for monkeys spawned from monkey cubes
|
|
monkey_cube_cap = 32
|
|
# Make explosions react to obstacles (walls+doors) instead of ignoring them
|
|
reactionary_explosions = true
|
|
# Bomb cap for explosions (Outer devastation. Other values calculate from this)
|
|
bomb_cap = 20
|
|
# Amount of time (deciseconds) for a brain to keep its "spark of life". Set to -1 to disable.
|
|
revival_brain_life = 6000 # 10 minutes
|
|
# Enable random silicon lawset (If said lawset has default = TRUE in the code). Disable for always crewsimov
|
|
random_ai_lawset = true
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[ipintel_configuration]
|
|
# This section contains all the information for IPIntel (The Anti VPN system)
|
|
|
|
# Enable or disable IPIntel entirely
|
|
ipintel_enabled = false
|
|
# Whitelist mode. If true, people on proxies/VPNs will need whitelisting if they arent past the threshold below. If false, admins are merely warned with no automatic action
|
|
whitelist_mode = true
|
|
# Threshold to kick people out (0-1 percentage float)
|
|
bad_rating = 0.98
|
|
# Contact email (required, leaving blank disables this)
|
|
contact_email = "ch@nge.me"
|
|
# How many hours to save good matches for (IPIntel has rate limits)
|
|
hours_save_good = 72
|
|
# How many hours to save bad matches for (IPIntel has rate limits)
|
|
hours_save_bad = 24
|
|
# IPIntel Domain. Do not put http:// in front of it
|
|
ipintel_domain = "check.getipintel.net"
|
|
# Ignore checking IPs with more hours than the threshold below. Requires EXP tracking to be enabled
|
|
playtime_ignore_threshold = 10
|
|
# Details URL for more info on an IP (such as ASN). IP is tacked on the end.
|
|
details_url = "https://iphub.info/?ip="
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[job_configuration]
|
|
# This section contains information on job configuartion, as well as the jon amounts
|
|
|
|
# Require account agre restrictions for job? Requires the database
|
|
restrict_jobs_on_account_age = false
|
|
# Allow admins to bypass all job age restrictions
|
|
restrict_jobs_on_account_age_admin_bypass = true
|
|
# Enable job EXP tracking (playtime)? Requires the database
|
|
enable_exp_tracking = false
|
|
# Enable job EXP-based restrictions (EG: require X hours as officer before warden)? Requires the database
|
|
enable_exp_restrictions = false
|
|
# Allow admins to bypass all EXP restrictions
|
|
enable_exp_admin_bypass = true
|
|
# Allow non-admins to play the AI job
|
|
allow_ai = true
|
|
# Prevent guests (people without BYOND accounts) from playing following positions
|
|
# Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, AI
|
|
guest_job_ban = true
|
|
# Should assistants have maint access?
|
|
assistant_maint_access = true
|
|
# Should the amount of assistants be limited?
|
|
assistant_limit = false
|
|
# If they above setting is enabled, specify a ratio of how many assistants can be allowed per security officers onboard
|
|
assistant_security_ratio = 2
|
|
# Enable to use the custom job amounts here, disable to use the code ones
|
|
enable_job_amount_overrides = true
|
|
# Job slot amount map. These are overrides. If you dont specify a value here, the code will be used as default. -1 is infinite
|
|
job_slot_amounts = [
|
|
# Commmand
|
|
{name = "Captain", lowpop = 1, highpop = 1},
|
|
{name = "Head of Personnel", lowpop = 1, highpop = 1},
|
|
{name = "Head of Security", lowpop = 1, highpop = 1},
|
|
{name = "Chief Engineer", lowpop = 1, highpop = 1},
|
|
{name = "Research Director", lowpop = 1, highpop = 1},
|
|
{name = "Chief Medical Officer", lowpop = 1, highpop = 1},
|
|
# Engineering
|
|
{name = "Life Support Specialist", lowpop = 3, highpop = 4},
|
|
{name = "Station Engineer", lowpop = 5, highpop = 6},
|
|
# Medical
|
|
{name = "Chemist", lowpop = 2, highpop = 2},
|
|
{name = "Geneticist", lowpop = 2, highpop = 2},
|
|
{name = "Medical Doctor", lowpop = 5, highpop = 6},
|
|
{name = "Virologist", lowpop = 1, highpop = 1},
|
|
# Science
|
|
{name = "Roboticist", lowpop = 2, highpop = 2},
|
|
{name = "Scientist", lowpop = 6, highpop = 7},
|
|
# Security
|
|
{name = "Detective", lowpop = 1, highpop = 1},
|
|
{name = "Security Officer", lowpop = 8, highpop = 9},
|
|
{name = "Warden", lowpop = 1, highpop = 1},
|
|
{name = "Internal Affairs Agent", lowpop = 2, highpop = 2},
|
|
# Service
|
|
{name = "Bartender", lowpop = 1, highpop = 1},
|
|
{name = "Botanist", lowpop = 2, highpop = 2},
|
|
{name = "Chaplain", lowpop = 1, highpop = 1},
|
|
{name = "Chef", lowpop = 1, highpop = 1},
|
|
{name = "Janitor", lowpop = 1, highpop = 2},
|
|
{name = "Librarian", lowpop = 1, highpop = 1},
|
|
# Cargo/Supply
|
|
{name = "Quartermaster", lowpop = 1, highpop = 1},
|
|
{name = "Shaft Miner", lowpop = 6, highpop = 6},
|
|
{name = "Cargo Technician", lowpop = 3, highpop = 4},
|
|
# Silicon
|
|
{name = "AI", lowpop = 1, highpop = 1},
|
|
{name = "Cyborg", lowpop = 1, highpop = 1},
|
|
# Misc
|
|
{name = "Assistant", lowpop = -1, highpop = -1},
|
|
]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[logging_configuration]
|
|
# Configuration for all things related to logging data to disk
|
|
# If you are in production you will want most of these on
|
|
|
|
# Log OOC messages
|
|
enable_ooc_logging = true
|
|
# Log ingame say messages
|
|
enable_say_logging = true
|
|
# Log admin actions
|
|
enable_admin_logging = true
|
|
# Log client access (login/logout)
|
|
enable_access_logging = true
|
|
# Log game events (roundstart, results, a lot of other things)
|
|
enable_game_logging = true
|
|
# Enable logging of votes and their results
|
|
enable_vote_logging = true
|
|
# Enable logging of whipers
|
|
enable_whisper_logging = true
|
|
# Enable logging of emotes
|
|
enable_emote_logging = true
|
|
# Enable logging of attacks between players
|
|
enable_attack_logging = true
|
|
# Enable logging of PDA messages
|
|
enable_pda_logging = true
|
|
# Enable runtime logging
|
|
enable_runtime_logging = true
|
|
# Enable world.log output logging
|
|
enable_world_logging = false
|
|
# Log hrefs
|
|
enable_href_logging = true
|
|
# Log admin warning messages
|
|
enable_admin_warning_logging = true
|
|
# Log asay messages
|
|
enable_adminchat_logging = true
|
|
# Log debug messages
|
|
enable_debug_logging = true
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[metrics_configuration]
|
|
# This section contains values for all metrics storing.
|
|
# This is designed for ElasticSearch but you might be able to make it work with other things.
|
|
# Metrics form a JSON body which is sent by POST to a HTTP/HTTPS endpoint with API key authentication
|
|
|
|
# Do we want to enable metrics sending
|
|
enable_metrics = false
|
|
# Metrics endpoint. Include protocol, host and ingest path
|
|
metrics_endpoint = "http://elastic-host:9200/your_index/_doc"
|
|
# Metrics API token. Placed into the auth header
|
|
metrics_api_token = "your_base64_encoded_thingy=="
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[mc_configuration]
|
|
# This section is settings for the MC
|
|
# Dont change these unless you know what you are doing
|
|
|
|
# Defines world tick lag. 0.5 is default for 20 TPS/FPS (10 * ticklag = TPS/FPS)
|
|
ticklag = 0.5
|
|
# Tick usage percentage limit for the MC during initialization.
|
|
world_init_mc_tick_limit = 500
|
|
# Base MC tick rate. 1 = once per BYOND tick
|
|
base_mc_tick_rate = 1
|
|
# Highpop MC tick rate. Increased to account for lag
|
|
highpop_mc_tick_rate = 1.1
|
|
# Threshold to enable MC highpop mode
|
|
mc_highpop_threshold_enable = 65
|
|
# Threshold to disable MC highpop mode
|
|
mc_highpop_threshold_disable = 60
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[movement_configuration]
|
|
# This section contains values for all mob movement stuff.
|
|
# We suggest VVing ingame till you get values you like.
|
|
# In context of this, speed = delay. Lower number = higher speed.
|
|
|
|
# Base run speed before modifiers
|
|
base_run_speed = 1
|
|
# Base walk speed before modifiers
|
|
base_walk_speed = 4
|
|
# Move delay added from crawling
|
|
crawling_speed_reduction = 4
|
|
# Move delay for humanoids
|
|
human_delay = 1.5
|
|
# Move delay for cyborgs
|
|
robot_delay = 2.5
|
|
# Move delay for xenomorphs
|
|
alien_delay = 1.5
|
|
# Move delay for slimes (xenobio, not slimepeople)
|
|
slime_delay = 1.5
|
|
# Move delay for other simple animals
|
|
animal_delay = 2.5
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[overflow_configuration]
|
|
# This contains information for re-routing players to an overflow server
|
|
# We dont use this in production, but you may find it useful
|
|
|
|
# Cap of players before we start to re-route to the overflow server. 0 to disable
|
|
player_reroute_cap = 0
|
|
# Overflow server location
|
|
overflow_server = "byond://yourdomain.com:1111"
|
|
# List of ckeys who will not get rerouted to the overflow server
|
|
overflow_whitelist = ["keyhere", "anotherhere"]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[redis_configuration]
|
|
# This section contains all the settings for using redis.
|
|
# This is heavily tied into the Paradise production architecture and you probably dont need it.
|
|
|
|
# Enable/disable redis
|
|
redis_enabled = false
|
|
# Redis connection string. Include your passphrase if needed
|
|
redis_connstring = "redis://127.0.0.1/"
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[ruin_configuration]
|
|
# This section contains configuration for all space ruins and lava ruins
|
|
|
|
# Whether to load the lavaland Z-level.
|
|
enable_lavaland = true
|
|
# Globally enable and disable placing of all ruins, including lavaland ruins and lavaland tendrils.
|
|
enable_space_ruins = false
|
|
# Minimum number of extra zlevels to generate and fill with ruins
|
|
minimum_zlevels = 2
|
|
# Maximum number of extra zlevels to generate and fill with ruins
|
|
maximum_zlevels = 4
|
|
# List of all space ruins that can generate in the world
|
|
# Commenting something out in here DISABLES IT FROM SPAWNING
|
|
active_space_ruins = [
|
|
"_maps/map_files/RandomRuins/SpaceRuins/way_home.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/asteroid1.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/asteroid4.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/derelict1.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/derelict2.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/derelict3.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/voyager.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm",
|
|
|
|
### The following ruins are based from past pre-spawned Zlevel content ###
|
|
"_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/dj.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/syndicatedruglab.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm",
|
|
"_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm",
|
|
|
|
|
|
# The following is the white ship ruin. Its force-spawned and is required to stop SSshuttle runtiming on startup
|
|
# Its also important incase a white-ship console is ever built midround
|
|
# DO NOT DISABLE THIS UNLESS YOU HAVE A GOOD REASON
|
|
"_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm",
|
|
|
|
# The following is a force-spawned ruin consisting mostly of empty space with a shuttle docking port for the free golem shuttle
|
|
# Disabling it will lead to the free golem shuttle sometimes being stuck on lavaland.
|
|
"_maps/map_files/RandomRuins/SpaceRuins/golemtarget.dmm",
|
|
]
|
|
# List of all ruins that can generate on lavaland
|
|
# Commenting something out in here DISABLES IT FROM SPAWNING
|
|
active_lava_ruins = [
|
|
##BIODOMES
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm",
|
|
##RESPAWN
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm",
|
|
##SIN
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_envy.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm",
|
|
# Greed blacklisted on production because its reward (dice) has a 1/20 chance of making you a wizard
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pride.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm",
|
|
##MEGAFAUNA
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm",
|
|
# Re-removed 7/24/2020, I ran a month-long test of hierophant Jun-Jul and the staff was still too strong. https://github.com/ParadiseSS13/Paradise/pull/13542
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm",
|
|
|
|
##MISC
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_elite_tumor.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_fountain_hall.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_monster_nest.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_puzzle.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_random_ripley.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_watcher_grave.dmm",
|
|
"_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm",
|
|
]
|
|
# Budget for lavaland ruins. A higher number means more will spawn
|
|
lavaland_ruin_budget = 60
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[system_configuration]
|
|
# This contains stuff that the host should fill out, relating to backend stuff
|
|
|
|
# Communications password for authorising world/Topic requests. Comment out to disable
|
|
#communications_password = "generateSomeLongRandomStringHere"
|
|
# Do we want to kill the world on reboot instead of restarting it?
|
|
shutdown_on_reboot = false
|
|
# If true to above, an optional shell command can be ran. Defaults to killing DD on windows
|
|
#shutdown_shell_command = "taskkill /im dreamdaemon.exe /f"
|
|
# URL for the internal API host. See https://github.com/ParadiseSS13/ParadiseInternalAPI Do not use https:// or a trailing slash. Comment out to disable
|
|
#api_host = "http://127.0.0.1:8080"
|
|
# Access key for the internal API.
|
|
#api_key = "your_secret_here"
|
|
# List of IP addresses to be ignored by the world/Topic rate limiting. Useful if you have other services
|
|
topic_ip_ratelimit_bypass = ["127.0.0.1"]
|
|
# Turn this to true if you are running a production server
|
|
is_production = false
|
|
# Server instance ID. This is used for tagging the server in the database
|
|
# You do NOT want to change this once you are running in production
|
|
instance_id = "paradise_main"
|
|
# Enable the below setting if you plan to run multiple instances of the server
|
|
# Enabling this if you dont run multiple instances wont cause problems, but will add a **TINY** amount more lag at times
|
|
enable_multi_instance_support = false
|
|
# Server internal IP. Used if you are splitting instances over multiple internal IPs.
|
|
# In most cases this is just 127.0.0.1
|
|
internal_ip = "127.0.0.1"
|
|
# Are we handling TOS consents on an external service?
|
|
external_tos_handler = false
|
|
# Path to the map datum to load, overriding the defaults and `data/next_map.txt`.
|
|
# Do not use in production.
|
|
# Comment out to disable.
|
|
#override_map = "/datum/map/test_tiny"
|
|
# Regional servers.
|
|
# This is not for separate DD instances per region, but if you have a geo-routing setup deployed to optimise routing for players
|
|
# I am 99.9% certain you will never need to fill this out
|
|
regional_servers = [
|
|
#{name = "UK", ip = "byond://uk.paradisestation.org:6666"},
|
|
]
|
|
# Send a toast on server init completion. You probably dont need this on in production
|
|
toast_on_init_complete = true
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[url_configuration]
|
|
# Configuration for all the URLs used by the server
|
|
# If you are in production you will want to tweak these to your servers
|
|
# If you comment any of these out, they will be null ingame
|
|
|
|
# Location of server resources. Used to offload sending the paradise.rsc from DD to a webserver
|
|
# NOTE: This wants paradise.rsc inside a zip file, and it is HTTP ONLY. NO HTTPS
|
|
#rsc_urls = ["http://www.paradisestation.org/windows/paradise.rsc.zip"]
|
|
# Link URL to link forum accounts to ckeys. If set to an empty string, no link option will be offered
|
|
# Token is appended right on the end, so set parameters as needed
|
|
#forum_link_url = "https://example.com/link.php?token="
|
|
# URL for accessing player info from admin webtools
|
|
# Ckey is appended right on the end, so set parameters as needed
|
|
#forum_playerinfo_url = "https://example.com/info.php?ckey="
|
|
# Server location for world reboot. Don't include the byond://, just give the address and port.
|
|
#reboot_url = "byond.paradisestation.org:6666"
|
|
# Forum address
|
|
forum_url = "https://www.paradisestation.org/forum/"
|
|
# Wiki address
|
|
wiki_url = "https://www.paradisestation.org/wiki"
|
|
# Rules address
|
|
rules_url = "https://www.paradisestation.org/rules"
|
|
# Github address
|
|
github_url = "https://github.com/ParadiseSS13/Paradise"
|
|
# Exploit address
|
|
exploit_url = "https://www.paradisestation.org/forum/179-exploit-reports/"
|
|
# Discord address
|
|
#discord_url = "http://example.org"
|
|
# Discord address (forum-based invite)
|
|
discord_forum_url = "https://www.paradisestation.org/forum/discord/invite/general/"
|
|
# Donations address
|
|
donations_url = "https://www.patreon.com/ParadiseStation"
|
|
# Ban appeals URL - usually for a forum or wherever people should go to contact your admins
|
|
ban_appeals_url = "https://www.paradisestation.org/forum/55-unban-requests/"
|
|
# URL for the CentComm ban DB. Doesnt change much. Ckey is slapped on the end
|
|
centcomm_ban_db_url = "https://centcom.melonmesa.com/ban/search/"
|
|
# URL for the game stats page, if applicable. Round ID is appended right on the end. Include a trailing slash if necessary.
|
|
#round_stats_url = "https://affectedarc07.github.io/ParaStats/#/round/"
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[voting_configuration]
|
|
# This section contains all settings relating to the ingame voting system
|
|
|
|
# Time that a vote will last for (deciseconds)
|
|
vote_time = 600
|
|
# Time before the first auto crew transfer vote (deciseconds)
|
|
autotransfer_initial_time = 72000
|
|
# Interval after the first auto transfer vote for the next to be called (deciseconds)
|
|
autotransfer_interval_time = 18000
|
|
# Prevent dead players from voting or starting votes
|
|
prevent_dead_voting = false
|
|
# Default to players not voting by default
|
|
disable_default_vote = true
|
|
# Enable voting for a map on end round
|
|
enable_map_voting = false
|
|
# Set to true to prevent the same map from being voted on twice in a row
|
|
non_repeating_maps = true
|
|
# Setup configuration here for specific rotation modes on specific days
|
|
# This will trump above options
|
|
# day_number = Numeric day of the week (1 = Mon, 7 = Sun)
|
|
# rotation_type = Rotation mode.
|
|
# - "Vote" = regular voting
|
|
# - "Nodupes" = voting wont include current map
|
|
# - "Random" = no vote, map is random
|
|
# If you dont enter one correctly, it will whine on startup
|
|
map_vote_day_types = [
|
|
{ day_number = 1, rotation_type = "Vote" }, # Monday
|
|
{ day_number = 2, rotation_type = "Random" }, # Tuesday
|
|
{ day_number = 3, rotation_type = "Vote" }, # Wednesday
|
|
{ day_number = 4, rotation_type = "Random" }, # Thursday
|
|
{ day_number = 5, rotation_type = "Vote" }, # Friday
|
|
{ day_number = 6, rotation_type = "Nodupes" }, # Saturday
|
|
{ day_number = 7, rotation_type = "Nodupes" }, # Sunday
|
|
]
|
|
|
|
|
|
################################################################
|
|
|
|
|
|
[asset_cache_configuration]
|
|
# Browser assets are any file included in interfaces. css, images, javascript, etc.
|
|
# This handles configuring how we get these to the player so interfaces can access them.
|
|
|
|
# The normal way of getting assets to clients is to use the internal byond system. This can be slow and delay the opening of interface windows. It also doesn't allow the internal IE windows byond uses to cache anything.
|
|
# You can instead have the server save them to a website via a folder within the game server that the web server can read. This could be a simple webserver or something backed by a CDN.
|
|
# Valid values: simple, webroot. Simple is the default.
|
|
asset_transport = "simple"
|
|
# Uncomment this to have the server passively send all browser assets to each client in the background. (instead of waiting for them to be needed)
|
|
# This should be uncommented in production and commented in development
|
|
asset_simple_preload = true
|
|
# Local folder to save assets to.
|
|
# Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/ as ASSET_FILE_NAME or asset.MD5HASH.EXT
|
|
# asset_cdn_webroot = "data/asset-store/"
|
|
# for best results the webserver powering this should return a long cache validity time, as all assets sent via this transport use hash based urls
|
|
# if you want to test this locally, you simpily run the `localhost-asset-webroot-server.py` python3 script to host assets stored in `data/asset-store/` via http://localhost:58715/
|
|
# asset_cdn_url = "http://localhost:58715/"
|
|
|
|
|
|
# Congratulations. You reached the end. heres a cookie.
|