Skip to content

Instantly share code, notes, and snippets.

@kwadroke
Last active September 10, 2023 19:14
Show Gist options
  • Save kwadroke/fa978290d86a606de3875fa853d79334 to your computer and use it in GitHub Desktop.
Save kwadroke/fa978290d86a606de3875fa853d79334 to your computer and use it in GitHub Desktop.
LibreQuake + FTEQW server.cfg with optional ktx.cfg
#!/bin/sh
# Create maplist.cfg from the file names in lq1/maps and place it in lq1
# This will remove the old maplist
cd lq1/maps
if [ -e ../maplist.cfg ]; then
## Delete the current maplist.cfg file so that there is not double (or more) entries
rm ../maplist.cfg
fi
## Generate the map list
declare -a files=(lqdm*.bsp)
for (( i = 0; i < ${#files[*]}; ++ i )); do
## Need to remove the .bsp from map name
echo serverinfo \"$(echo ${files[$i-1]}|cut -d'.' -f1)\" \"$(echo ${files[$i]}|cut -d'.' -f1)\" >> ../maplist.cfg
done
// KTX Options for FTEQW (does not use FTEQW qwprogs)
// KTX Github repo: https://github.com/QW-Group/ktx
// More info - https://github.com/marcusgadbem/nquakesv/tree/master/ktx
com_gamedirnativecode 1 // KTX option for FTEQW
// Download KTX qwprogs from https://github.com/QW-Group/ktx/releases/ (or compile from source) - overrides other qwprogs.dat
progs "qwprogs_linux_amd64" // KTX option for FTEQW - qwprogs file name here without file extension
set k_mode ffa // server mode (1 = duel, 2 = team, 3 = ffa, 4 = ctf)
set k_defmode ffa // server mode (1 = duel, 2 = team, 3 = ffa, 4 = ctf)
// matchless settings
set k_matchless 1 // run ktx as a regular match server or as a matchless (ffa) server (0 = regular, 1 = matchless)
set k_matchless_countdown 0 // countdown in matchless mode (0 = off, 1 = on)
set k_pow_min_players 1 // number of players on server required for powerups to be turned on
set k_pow_check_time 10 // how often should ktx check if the k_pow_min_players requirement has been met (seconds)
set k_no_vote_map 0 // allow map voting (0 = allow map voting, 1 = disallow map voting)
set k_no_vote_break 0 // allow vote break (0 = allow vote break, 1 = disallow vote break)
//-- Map List (overrides map list from server.cfg)
set k_ml_1 lqdm2_a6
set k_ml_2 lqdm3_a3
set k_ml_3 lqdm4_a6
set k_ml_4 lqdm6_a6
//set k_ml_5 lqdm9_a7 //Currently broken in KTX, leave commented
set k_ml_6 lqdm10_a3
set k_ml_7 lqdm13_a3
set k_ml_8 lqdm14_a1
//Manual map list
// The map loaded in server.cfg will determine which map is loaded first and will progress to its matching line and will continue from there
//-- format: serverinfo currentmap nextmap
serverinfo "lqdm9_a7" "lqdm10_a4" // "currentmap" needs to match "map" above to load "nextmap" at end of round
serverinfo "lqdm10_a4" "lqdm11_a3"
serverinfo "lqdm11_a3" "lqdm12_a2"
serverinfo "lqdm12_a2" "lqdm13_a4"
serverinfo "lqdm13_a4" "lqdm1_a5"
serverinfo "lqdm1_a5" "lqdm2_a6"
serverinfo "lqdm2_a6" "lqdm3_b3"
serverinfo "lqdm3_b3" "lqdm4_a8"
serverinfo "lqdm4_a8" "lqdm5_a4"
serverinfo "lqdm5_a4" "lqdm6_a7"
serverinfo "lqdm6_a7" "lqdm7_a1"
serverinfo "lqdm7_a1" "lqdm8_b2"
serverinfo "lqdm8_b2" "lqdm9_a7"
// FTEQW LibreQuake Server configuration
// FTEQW Wiki https://fte.triptohell.info/wiki/index.php/Main_Page
// Change to your servername
hostname "LibreQuake Server"
// Your MOTD here
sv_motd1 "Welcome to the LibreQuake Server"
exec ktx.cfg // Load the KTX Configs for FTEQW - comment out to NOT use KTX
allow_download 1 // Allow clients to download files from server
//-- teamplay (https://quakewiki.org/wiki/teamplay)
// 0 = no teams
// 1 = Teamplay on. No friendly fire
// 1 = Teamplay on. Friendly fire on
teamplay 0
//-- deathmatch
// 1 - Does not leave weapons on the map. You can pickup weapons and items and they will respawn.
// 2 - Leaves weapons on the map. You can only pick up a weapon once. Picked up items will not respawn.
// 3 - Leaves weapons on the map. You can only pick up a weapon once. Picked up items will respawn.
deathmatch 1
samelevel 0 // 0 = disabled (default), 1 = stay on the same level (this can be commented out to leave disabled)
fraglimit 20 // Max frags before next map
timelimit 15 // Max time before next map
//-- Make server public
// 0 = Disable (Not published to master servers - Good for LAN/Local Play)
// 1 = announce to master server(s)
// 2 = 1 with holepunching (FTEQW only)
sv_public 0
pausable 0 // 0 = no pause allowed, 1 = able to pause game
gamedir lq1 // librequake files
sv_gamedir lq1 // librequake files
sv_voip 1 // 0 = VOIP Disable, 1 = VOIP Enabled
maxclients 16 // Total number of clients
maxspectators 6 // Total number of spectator clients allowed
sv_nqplayerphysics 0 // 0 = no prediction, 1 = prediction - advised for singleplayer, 2 = bad prediction
//-- sv_antilag (for FTEQW - https://quakewiki.org/wiki/FTEQW_Modding#Server_side_anti-lag)
// 0 = No Antilag performed
// 1 = MOVE_LAGGED and FL_LAGGEDMOVE bit flags are valid,
// 2 = server will act as 1, but ALL tracelines will have laggedmove set (but not traceboxes), and ALL movetype_flymissile or movetype_bounce entities will act as if they have FL_LAGGEDMOVE set. This value is to force anti-lag within a mod, without any mod changes
sv_antilag 2
serverinfo dq 1 // Drop Quad when player dies
serverinfo dr 1 // Drop Ring of Shadows when a player dies
map lqdm1_aa5 // First Map -- this filename has and will change
// Load the map list from a file that is either manually created for via script as LQ replaces map names often
// Map Rotation - requires qwprogs.dat compiled from https://github.com/fte-team/fteqw/tree/master/quakec/basemod
// Will not be used if "exec ktx.cfg" is enabled above ask KTX uses its own map list format
exec maplist.cfg
@kwadroke
Copy link
Author

kwadroke commented Aug 18, 2023

Run dedicated server with

./fteqw-sv64 +exec server.cfg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment