Setup Dedicated Server to DL from Map Server - mrhip - 10-15-2023
I have a Xonotic server running on a Linux host on my LAN. I'm trying to set it up to download random maps from a map server, namely http://xonotic.fps.gratis/ . According to the instructions at https://gitlab.com/xonotic/xonotic/-/wik...-downloads , it should be just a matter of adding the following line in my server.cfg:
Code: "sv_curl_defaulturl" "http://xonotic.fps.gratis/"
...but apparently I don't know what I'm doing, because I'm only getting the set of default local maps. What am I missing?
Below is the complete server.cfg (most of the customizations are at the end), followed by the output of the server when strarting up and before any players connect:
Code: // This is an example config, to actually use it, copy it to ~/.xonotic/data on linux
// or the equivalent directory on your OS (https://xonotic.org/faq/#config).
// Two slashes start a comment until the end of the line.
// Surround settings with double quotes (e.g. cvar_name "some value") unless they're a single number or word.
// Cvar means console variable.
// Just "" means empty string.
// Semicolon separates commands (in console or in aliases).
// Search for settings and descriptions using the 'search' command in console
// or online: https://xonotic.org/tools/cacs/
/////////////////////////////////////////////////////////////////////
// Things you SHOULD change to make the server "yours" (remove the // and change the value):
//sv_public 1 // 0 or -1 (see description) if the server should not be on the public servers list
//hostname "BUZZARD 'Xonotic $g_xonoticversion Server" // this name will appear on the server list (the $g_xonoticversion gets replaced with the current version)
//sv_motd "" // displayed on connect - good place for contact info (IRC, forum nick, etc.) so players can reach you when something is wrong with your server
//sv_termsofservice_url "https://yourdomain.tld/path/to/tos" // URL for the Terms of Service for playing on your server
// It is RECOMMENDED to supply such a document containing information about if and how you collect and process user data (bridging to IRC, player stats etc),
// contact information, rules and similar information.
// This document will be shown in the server join dialog.
// This sets the remote console password on the server, you also need to set the cvar to the same value on your client to use the 'rcon' command.
// Empty means rcon is disabled.
//rcon_password ""
/////////////////////////////////////////////////////////////////////
// Everything below has some sensible defaults so you don't really need to change anything.
// It's meant as examples for people who want to customize the server more.
// The values shown are either defaults or examples (for up to date defaults, see 'search' (or 'apropos') in console.
//maxplayers 8 // number of player slots on the server (including spectators)
//net_address 0.0.0.0 // ONLY change this if you have problems with your server. Specifies the network interface used by the engine. Set it to one of your internal IPs
//port 26000 // the port used by the server
// You are RECOMMENDED to change this value to a free port number on your server
// above 1024. The reason is that some bad ISPs might filter "gaming" ports, and
// changing the port your server runs on may make your server available to these
// people. Changing the port breaks nothing, the default simply matches Quake as
// we use a Quake-derived protocol and didn't do our own IANA port assignment yet
// (if anyone wants to go through that process, we'd be glad).
//log_file "server.log" // server console output will also be copied to this file. This: "${serverconfig}.log" uses variable substitution to make the logfile have the same name as your config file with .log appended which is useful if you run several servers
//g_start_delay 15 // delay before the game starts to let players join the server first
// List of maps to play on the server. Set to "" to autodetect (which would enumerate ALL maps. Maps that don't support the current game mode will be skipped, so you don't need to remove them here.
//g_maplist "afterslime atelier boil catharsis courtfun dance drain erbium finalrage fuse geoplanetary glowplant implosion leave_em_behind nexballarena oilrig runningman runningmanctf silentsiege solarium space-elevator stormkeep techassault vorix warfare xoylent"
//g_maplist_shuffle 1 // 0 always selects the next map out of g_maplist (but then better set g_maplist_votable 0 below to prevent repetitive votes), 1 will select random maps each time
//g_maplist_mostrecent_count 3 // number of maps that have to be played before a map can be repeated
// LIMITS: how long a match will last before the next map starts (-1 means use the map default, 0 = unlimited, please note that the variables fraglimit/timelimit can NOT be globally used for this but only DURING a match is being played)
timelimit_override 1 //timelimit_override -1 // global timelimit for all maps and gametypes
fraglimit_override 5 //fraglimit_override -1 // global frag/point limit for all maps and gametypes
//capturelimit_override -1 // capture limit for CTF
//g_domination_point_limit -1 // frag/point limit for DOM
//g_keyhunt_point_limit -1 // frag/point limit for KH
//g_lms_lives_override -1 // lives for LMS
//g_nexball_goallimit -1 // goals for NEXBALL
//g_ctf_ignore_frags 0 // set to 1 to ignore kills except for FC kills
// TEAMS for key hunt (change this to 2, 3, 4 to set a fixed keyhunt style)
//g_keyhunt_teams_override -1 // teams for KH
// GAME MODE: what type of server do you want to host?
// possible values: dm (deathmatch), tdm (team deathmatch), ctf (capture the flag), ca (clan arena), ft (freeze tag), kh (keyhunt), as (assault), dom (domination), lms (last man standing), ka (keepaway), inv (invasion), ons (onslaught), rc (race), cts (complete the stage), nb (nexball)
gametype dm // default gamemode
// TIPS: uncomment this if you want help messages on your server - one per match 20 seconds after the map loads
//alias sv_hook_gamestart_all "defer 20 help_next"
/////////////////////////////////////////////////////////////////////
// Some settings you MIGHT want to change. Again IF so remove the //
// from the line start and change them to your liking.
skill 7 //skill 8 // the bots skill level
// if changing either of these two minplayers settigs, you should consider editing the `bots` alias so that the `bots` vote adds the right number of bots
minplayers 5 // 0 // add bots if less then that number of players playing
//minplayers_per_team 0 // add bots to each team if less than that number of players playing
//alias bots "minplayers 4; minplayers_per_team 2"
//g_maxplayers 0 // above this player count, only allow spectators
bot prefix "" //bot_prefix [BOT] // prepend this to all botnames
bot suffix ".bot" //bot_suffix "" // append this to all botnames
//g_maplist_check_waypoints 0 // set this to 1 to skip maps without waypoints if there aren't enough players to play without bots
//g_maplist_votable 6 // number of maps to vote between. set to 0 to disable the map voting screen (please enable g_maplist_shuffle above when this is enabled, or votes will be repetitive)
//g_maplist_votable_suggestions 2 // number of suggestions to accept using the suggestmap command
//g_maplist_votable_abstain 0 // when 1, people get a "don't care" selection in the vote screen
//g_maplist_votable_nodetail 1 // when 1, people can't see how many voted for what (to thwart abusive "influential" first votes)
sv_vote_gametype 1 // set to 1 to enable voting for gametypes after every match
sv_vote_gametype_options "dm" //sv_vote_gametype_options "dm kh dom tdm mycustom" // the gametypes to vote for, custom gametypes are supported (max 9 chars for the gametype identifier because sv_vote_gametype_hook_* can have max 31 chars)
//set sv_vote_gametype_mycustom_name "My Custom Mode" // Name displayed for the custom gametype "mycustom" (replace "mycustom" with the name you set in sv_vote_gametype_options)
//set sv_vote_gametype_mycustom_type "ft" // the basetype that the custom gametype is derived from
//set sv_vote_gametype_mycustom_description "This is my custom gametype" // the description for the custom gametype
// Custom icons for custom gametypes are supported and have to be located in a server pk3 as gfx/menu/default/gametype_mycustom
//sv_vote_commands "restart fraglimit gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto shuffleteams bots nobots" // players can vote for those commands or use them if they are masters. You can also add 'g_grappling_hook' for hook voting, and 'sv_fbskin_green sv_fbskin_red sv_fbskin_orange sv_fbskin_off' for fbskin voting.
//sv_vote_master_commands "movetored movetoblue movetoyellow movetopink" // add commands masters can use if logged in or elected. You may want to put 'kickban' here, so masters can keep out punks. It may be good to also put "sv_status_privacy 0" then...
//rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban\" status \"sv_cmd teamstatus\" movetoauto movetored movetoblue movetoyellow movetopink" // commands for the (stronger) rcon restricted
//rcon_restricted_password "" // put here the password for a "restricted" rcon user (see below)
//sv_vote_call 1 // 0 will disable the normal voting
//sv_vote_master 1 // 0 will disable voting to become master, good if you prefer to use the master password instead
//sv_vote_master_password "" // when set, vlogin PWD will allow people to become master to run master commands directly using vdo
//sv_vote_majority_factor 0.5 // What percentage of the PLAYERS constitute a majority to win a vote? must be at least 0.5
//sv_vote_majority_factor_of_voted 0 // What percentage of the VOTERS who already voted constitute a majority to win a vote? must be at least 0.5
// note: to JUST support simple majorities, set these two factors equal
//sv_maxidle 0 // idle time in seconds after which players will get kicked
//sv_taunt 1 // 0 to disallow taunts
//sv_autotaunt 1 // 0 to disallow autotaunts
/////////////////////////////////////////////////////////////////////
// Settings you MIGHT want to change for PRIVACY reasons.
//sv_status_privacy 1 // 1 hides IP addresses from "status" replies shown to clients, 0 shows them. Enables players to identify wellknown punks on your server OR is a threat to anonymity.. depending on your point of view :)
// This line sends the following data to our servers:
// - Date and time
// - Your server IP address
// - Your server ID hash, which is a fingerprint of the public key of your
// server and does not impact security of your private key (use "crypto_keys"
// on the console to show it)
// - Your server name ("hostname")
// - Current game type
// - Current map
// - Balance settings you have modified from defaults (only those that make
// your server "impure")
// - For each weapon pairing (A, B), separately for player-player, player-bot,
// bot-player, bot-bot pairings:
// - Number of hits of players/bots holding A against players/bots holding B
// - Number of frags of players/bots holding A against players/bots holding B
// - Total damage of players/bots holding A against players/bots holding B
//
// We use this data to:
// - Optimize the game balance for future releases
// - Identify problems in the bot AI and improving it
// - Find settings that make servers "impure" that should not, so we can
// whitelist them in future releases
//
// We will or might publish:
// - Global weapon pairing statistics for players vs players, or bots vs bots,
// or any vs any, on a selection of servers
// - Per-gametype and per-map weapon pairing statistics players vs players, or
// bots vs bots, or any vs any, on a selection of servers
// - Lists of commonly changed cvars, together with counts on how often they
// are modified
//
// No information about the players on the server is sent, so as a server admin
// you need no permission of your players for this.
//
// No information about your server will be published - all published data sets
// will include data from multiple servers.
//
sv_weaponstats_file "http://www.xonotic.org/weaponbalance/"
/////////////////////////////////////////////////////////////////////
// Some more advanced settings. You probably are not interested in changing them at all.
//sv_ready_restart_after_countdown 0 // if set to 1 the players and map items are reset after the countdown ended, otherwise they're reset already at the beginning of the countdown
//sv_autoscreenshot 0 // 1 will force a screenshot for all clients when the map ends. Useful for competitions or the ladder.
//g_antilag 2 // 0 to disable the antilag feature, 1 and 2 use different methods
//sv_maxrate 1000000 // limits client connections to this rate in bytes/seconds
sys_ticrate 0.0166667 //sys_ticrate 0.0333333 // 0.0166667 for twice as many server frames per second; smoother gameplay but somewhat higher CPU use.
// see Docs/mapdownload.txt for more info
//sv_curl_defaulturl http://www.xonotic.org/contentdownload/getmap.php?file= //fallback download URL
//sv_defaultcharacter 0 // 1 will force a specific model for all players
//sv_defaultplayermodel models/player/erebus.iqm // this model will be used
//sv_defaultplayerskin 0 // this skin number will be forced for all players
//sv_defaultplayercolors "" // you can even force player colors here (16*shirt+pants)
//g_fullbrightplayers 0 // 1 to make players fullbright
//g_fullbrightitems 0 // 1 to make items fullbright
//g_balance_teams 1 // 0 will show players the team selection menu after joining instead of automaticly putting them on the smaller team
//g_balance_teams_prevent_imbalance 1 // 0 to prevent switchint to a bigger/begger team
//g_ban_sync_uri "http://46.38.241.138/~xonotic/bans/" // sync bans using this ban list provider (disabled by default, uncomment this line to enable)
//g_ban_sync_trusted_servers "" // accept bans that were initially set on the server IPs listed here (if not set, your bans are just sent to the sync URIs, but no bans are retrieved from there)
g_spawnshieldtime 1.5 // time for which players are protected after spawn
/////////////////////////////////////////////////////////////////////
// "Obvious" mutators that are allowed on a "pure" server
//g_instagib 0 // set to 1 for InstaGib
//g_weapon_stay 0 // set to 1, 2 or 3 for different weapon-stay modes (1 = traditional, 2 = no ammo but allow throwing, 3 = ghost weapon stay)
//g_powerups -1 // set to 0 to turn off strength/quad and shield/invincible, and set to 1 to turn them on even in game modes that normally have them turned off
/////////////////////////////////////////////////////////////////////
// Overkill mod settings
// To enable Overkill, put 'exec ruleset-overkill.cfg' at the top of this file (above any other cvar changes), don't use 'g_overkill 1' directly.
/////////////////////////////////////////////////////////////////////
// WARNING: anything below this line makes your server "impure"!
// enable some mutators you'd like
//g_cloaked 0 // set to 1 for transparent hard to see players
//g_grappling_hook 0 // set to 1 to enable the hook (allowed on "pure" server in InstaGib)
//g_jetpack 0 // set to 1 to enable the jetpack (allowed on "pure" server in InstaGib)
//g_midair 0 // set to 1 to make only midair damage count
//g_vampire 0 // set to 1 to give players the damage they cause as health
//sv_gravity 800 // for low gravity, set this somewhere between 50 and 400
// select AT MOST one of these arena mutators (if you didn't select g_instagib)
//g_nix is "0" ["0"] No Items Xonotic - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon, and so on
//g_nix_with_healtharmor is "0" ["0"] when 1, health and armor still show up in NIX
//g_nix_with_blaster is "0" ["0"] always carry the blaster as an additional weapon in NIX
//g_nix_with_powerups is "0" ["0"] when 1, powerups still show up in NIX
// try these tuba mods for fun on maps with edge dropoffs!
seta "g_balance_tuba_damage" "1"
seta "g_balance_tuba_force" "1000"
seta "g_balance_tuba_refire" "0.15"
seta "g_balance_tuba_weaponstart" "1"
seta "g_balance_vortex_weaponreplace" "rifle"
// bots heavily abuse shotgun melee, so damage is reduced
seta "g_balance_shotgun_secondary_damage" "7"
seta "g_balance_shotgun_secondary_force" "20"
seta "g_balance_shotgun_secondary_melee_nonplayerdamage" "4"
// campers will be slapped by an invisible flying monkey
seta "g_campcheck" "1"
seta "g_campcheck_damage" "50"
// seta "g_configversion" "7"
// seta "menu_forced_saved_cvars" "g_balance_shotgun_secondary_damage g_balance_shotgun_secondary_force g_balance_shotgun_secondary_melee_nonplayerdamage g_balance_tuba_weaponstart g_balance_tuba_force g_balance_tuba_damage g_balance_tuba_refire g_campcheck g_balance_vortex_weaponreplace g_campcheck_damage"
// I'm trying everything!
"sv_curl_defaulturl" "http://xonotic.fps.gratis/"
"sv_curl_maxspeed" 500000
"sv_curl_serverpackages" "csprogs-xonotic-v0.8.6.dat"
"cl_curl_enabled" 1
"cl_curl_maxdownloads" 5
"cl_curl_maxspeed" 500000
g_maplist ""
Code: Game is Xonotic using base gamedir data
gamename for server filtering: Xonotic
Xonotic Linux 03:14:05 Jun 20 2023 - release
Current nice level is below the soft limit - cannot use niceness
Skeletal animation uses SSE code path
execing quake.rc
execing default.cfg
execing xonotic-common.cfg
execing xonotic-client.cfg
Warning: Could not expand $vid_width
Warning: Could not expand $vid_height
Warning: Could not expand $vid_pixelheight
Warning: Could not expand $vid_desktopfullscreen
execing sRGB-disable.cfg
execing binds-xonotic.cfg
execing effects-normal.cfg
execing crosshairs.cfg
execing gamemodes-client.cfg
execing notifications.cfg
execing _hud_common.cfg
execing _hud_descriptions.cfg
execing hud_luma.cfg
execing xonotic-server.cfg
execing testing.cfg
execing balance-xonotic.cfg
execing bal-wep-xonotic.cfg
execing physicsX.cfg
execing turrets.cfg
execing vehicles.cfg
execing gamemodes-server.cfg
execing ctfscoring-samual.cfg
execing mutators.cfg
execing randomitems-xonotic.cfg
execing monsters.cfg
execing minigames.cfg
execing physics.cfg
execing cdtracks.cfg
execing commands.cfg
Warning: Could not expand $qport in alias _if_dedicated
execing help.cfg
execing config.cfg
"maxplayers" set to "16"
execing data/campaign.cfg
execing config_update.cfg
execing font-xolonium.cfg
Warning: Could not expand $scr_loadingscreen_barheight
Warning: Could not expand $scr_infobar_height
This command only works on clients: cl_cmd hud scoreboard_columns_set
execing autoexec/empty.cfg
execing autoexec.cfg
Loaded public key key_0.d0pk (fingerprint: Xon//***************************************)
Loaded private ID key_0.d0si for key_0.d0pk (public key fingerprint: ********************************************)
there is already a signed private key for 0
execing post-config.cfg
Server using port 26000
Server listening on address 0.0.0.0:26000
Server listening on address [0:0:0:0:0:0:0:0]:26000
execing server.cfg
Game type successfully switched to dm
Maplist contains no usable maps! Resetting it to default map list.
Switching to map nexuiz_[evilspace]
menu: unknown program name
Server using port 26000
Server listening on address 0.0.0.0:26000
Server listening on address [0:0:0:0:0:0:0:0]:26000
Invalid gametype setting in mapinfo for gametype dm: 30
Invalid gametype setting in mapinfo for gametype dm: 20
RE: Setup Dedicated Server to DL from Map Server - Freddy - 10-16-2023
The server will not download any maps. You need to download them manually to ~/.xonotic/data (or a different gamedir in case of more complex setups).
The cvar sv_curl_defaulturl is there to instruct clients where to download missing maps (or pk3s of all sorts to be precise). http://xonotic.fps.gratis/ is just a searchable list of maps. You should use https://dl.xonotic.fps.gratis/ instead.
I think that windows clients nowadays can use https, but I'm not sure.
Cvars starting with "cl" are for the client, so they will not work on the server.
Lastly, if you're using a release version for the server, you don't need to specify the "csprogs*.dat" in sv_curl_serverpackages. This is only intended for git/autobuild versions and requires you to host a pk3 containing the csprogs file on your download server.
|