From bc596ac9d4cdd00abf537b88d3c544be161330cc Mon Sep 17 00:00:00 2001 From: xolatile Date: Wed, 16 Jul 2025 23:07:05 +0200 Subject: [PATCH 1/1] Core stuff, broken... --- sauerbraten_unix | 65 +++++++++++++++++++++++ server-init.cfg | 133 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 198 insertions(+) create mode 100755 sauerbraten_unix create mode 100644 server-init.cfg diff --git a/sauerbraten_unix b/sauerbraten_unix new file mode 100755 index 0000000..2293d90 --- /dev/null +++ b/sauerbraten_unix @@ -0,0 +1,65 @@ +#!/bin/sh +# SAUER_DATA should refer to the directory in which Sauerbraten data files are placed. +#SAUER_DATA=~/sauerbraten +#SAUER_DATA=/usr/local/sauerbraten +SAUER_DATA=. + +# SAUER_BIN should refer to the directory in which Sauerbraten executable files are placed. +SAUER_BIN=${SAUER_DATA}/bin_unix + +# SAUER_OPTIONS contains any command line options you would like to start Sauerbraten with. +#SAUER_OPTIONS="-f" +SAUER_OPTIONS="-q${HOME}/.sauerbraten" + +# SYSTEM_NAME should be set to the name of your operating system. +#SYSTEM_NAME=Linux +SYSTEM_NAME=`uname -s` + +# MACHINE_NAME should be set to the name of your processor. +#MACHINE_NAME=i686 +MACHINE_NAME=`uname -m` + +case ${SYSTEM_NAME} in +Linux) + SYSTEM_NAME=linux_ + ;; +*) + SYSTEM_NAME=unknown_ + ;; +esac + +case ${MACHINE_NAME} in +i486|i586|i686) + MACHINE_NAME= + ;; +x86_64|amd64) + MACHINE_NAME=64_ + ;; +*) + if [ ${SYSTEM_NAME} != native_ ] + then + SYSTEM_NAME=native_ + fi + MACHINE_NAME= + ;; +esac + +if [ -x ${SAUER_BIN}/native_client ] +then + SYSTEM_NAME=native_ + MACHINE_NAME= +fi + +if [ -x ${SAUER_BIN}/${SYSTEM_NAME}${MACHINE_NAME}client ] +then + cd ${SAUER_DATA} + exec ${SAUER_BIN}/${SYSTEM_NAME}${MACHINE_NAME}client ${SAUER_OPTIONS} "$@" +else + echo "Your platform does not have a pre-compiled Sauerbraten client." + echo "Please follow the following steps to build a native client:" + echo "1) Ensure you have the SDL2, SDL2-image, SDL2-mixer, and OpenGL libraries installed." + echo "2) Change directory to src/ and type \"make install\"." + echo "3) If the build succeeds, return to this directory and run this script again." + exit 1 +fi + diff --git a/server-init.cfg b/server-init.cfg new file mode 100644 index 0000000..914b063 --- /dev/null +++ b/server-init.cfg @@ -0,0 +1,133 @@ +// basic server configuration script +// note that some commands are commented out with //, and need to be uncommented and set to a value to work + +// optional specific IP for server to use +// serverip N.N.N.N + +// optional specific port for server to use +// serverport 28785 + +// maximum number of allowed clients +maxclients 8 + +// maximum number of bots a master can add - admins are unaffected by this limit +// set to 0 to disallow bots +serverbotlimit 8 + +// controls whether or not the server is intended for "public" use +// when set to 0, allows "setmaster 1" and locked/private mastermodes (for coop-editing and such) +// when set to 1, can only gain master by "auth" or admin, and doesn't allow locked/private mastermodes +// when set to 2, allows "setmaster 1" but disallows private mastermode (for public coop-editing) +publicserver 0 + +// description server shows for the server browser +serverdesc "" + +// password required to connect to the server +// generally unnecessary unless you really don't want anyone connecting to your server +// using the serverauth option allows people with an appropriate local authkey to connect regardless +// serverpass "" + +// password that allows you to gain admin by "setmaster password_here" +// local authkeys are more secure than this and should be used instead if possible +// adminpass "" + +// domain to use for local authkeys to the server so people can authenticate by "auth domain_here" +// must be a non-empty string that should be unique to your server to prevent clashes with other servers +// serverauth "" + +// controls whether or not the server reports to the masterserver +updatemaster 1 + +// optional message of the day to send to players on connect +// servermotd "..." + +// controls whether admin privs are necessary to record a demo +// when 1 requires admin (default) +// when 0 only requires master +// restrictdemos 1 + +// maximum number of demos the server will store +// maxdemos 5 + +// maximum size a demo is allowed to grow to in megabytes +// maxdemosize 16 + +// whether or not to enable server-side demo recording automatically for every match +// when 1 will always record a server-side demo for every match +// when 0 will only record a demo for a match when requested (default) +// autorecorddemo 0 + +// controls whether admin privs are necessary to pause a game +// when 1 requires admin (default) +// when 0 only requires master +// restrictpausegame 1 + +// controls whether admin privs are necessary to change gamespeed +// when 1 requires admin (default) +// when 0 only requires master +// restrictgamespeed 1 + +// whether or not to allow players to vote on maps not in the rotation +// when 1 requires master +// when 2 requires admin +// when 0 allows any votes (default) +// lockmaprotation 0 + +// whether or not teams should persist across matches and avoid autobalancing +// when 1 teams persist across matches and don't autobalance +// when 0 teams automatically balance at the beginning of a match (default) +// persistteams 0 + +// whether or not overtime is enabled for matches +// when 1 enables overtime such that the match will keep going so long as scores are tied +// when 0 the match will always end after a fixed time whether or not anyone wins (default) +// overtime 0 + +// whether or not blue armour is enabled in regen capture +// when 1 players spawn with blue armour in regen capture as in other modes (default) +// when 0 players spawn without any armour in regen capture +// regenbluearmour 1 + +ffamaps = [ +complex douze ot academy metl2 metl3 justice turbine hashi mbt2 fanatic_quake dock renegade antel rm1 fdm6 spcr2 curvy_castle lost_soul nmp8 legacy carbide hektik +exist albatross toxicity tartech waltz anubis souls aard3c asthma cartel skrdm1 duel5 gorge bvdm_01 outpost park tumwalk abyss industry injustice mbt10 curvedm kalking1 +hog2 kffa fragplaza horus collusion duel8 akimiski averas sauerowalk alithia colony island sandstorm kastro frozen memento pariah asenatra frag-lab aod neondevastation +hdm3 alloy ruine stahlbox headroom purgatory helligsted crypta lost_world nmp10 insipid ferguson clash DM_BS1 shinmei1 dispute ghetto osiris exo sdm1 powerplant access oasis +metl4 ruby shindou dune gubo oldschool teahupoo rm5 church51 depot masdm janela maple orbe zamak torment legazzo hator ztn fury mbt9 refuge phrantic turmoil idyll3 shadowed +dirtndust force stronghold conflict nessus dopamine slingshot awoken catacombs unworld unworld2 killfactory moonlite ognjen castle_trap orion ogrosupply nucleus elegy shiva +arbana simplicity pitch_black duel7 infernal gothic-df zavial fallen hillfort fubuki mood roughinery stemple tejen pgdm deathtek hades corruption paradigm haze lostinspace +sauerstruck phosgene neonpanic memoria ventania zdm2 cavefire imhotep saffier akaritori suisei konkuri-to katrez_d oddworld frag2 guacamole wake5 frostbyte thor aqueducts +ksauer1 kmap5 thetowers darkdeath wdcd suburb c_lone skycastle-r +] +capturemaps = [ +urban_c nevil_c fb_capture collusion c_valley lostinspace fc3 face-capture nmp4 hallo croma waltz tempest pandora monastery gorge averas collide alithia luna turmoil +ruebli pariah fusion mc-lab hades fc4 relic akimiski fc5 paradigm corruption ruby asteroids ogrosupply reissen akroseum turbulence frostbyte c_egypt caribbean eris +aod dust2 asenatra campo dirtndust infernal risk gothic-df damnation arabic spcr nucleus rust genesis laucin evilness subterra snapper_rocks kopenhagen asgard mbt12 +cwcastle nitro fallen stronghold triforts disc metro harbor earthstation aastha suburb haste valhalla abbey ow venice meltdown2 mercury core_transfer hidden bklyn zamak +forge eternal_valley tortuga core_refuge infamy c_lone capture_night fragnostic new_energy destiny river_c river_keep serenity xenon disruption access anubis stadium +nmp9 ph-capture killcore3 twinforts ghetto imhotep duomo donya casa overdrive pul1ctf surge skycastle-r +] +ctfmaps = [ +hallo flagstone tempest siberia reissen tejen shipwreck authentic urban_c bt_falls croma valhalla garden mbt1 autumn ruebli pandora akroseum fusion luna regal +face-capture dust2 collide ra breakout mach2 laucin evilness turbulence l_ctf enigma twinforts akimiski mc-lab tectonic berlin_wall mbt12 europium abbey redemption +damnation eris forge campo nitro fragnostic infamy fortress triforts earthsea harbor stronghold catch22 rust meltdown2 subterra forgotten nucleus fire_keep bklyn ow +bad_moon snapper_rocks haste spcr destiny tubes risk metro asgard earthstation mill capture_night arbana tatooine disc hidden eternal_valley idris new_energy mercury +disruption aastha kopenhagen river_keep tortuga mbt4 core_refuge core_transfer daemex desecration recovery stadium warlock shellshock2 divine casa kiryu unworld3 +duomo wdcd suburb xenon sacrifice overdrive pul1ctf surge +] +spmaprot = [ +mpsp6a mpsp6b mpsp6c mpsp9a mpsp9b mpsp9c mpsp10 lost level9 skrsp1 crnsp1 +] + +maprotationreset +maprotation "*" $ffamaps +maprotation "?capture ?hold" $capturemaps +maprotation "?ctf ?protect ?collect" $ctfmaps +maprotation "SP" $spmaprot +maprotation "DMSP" $ffamaps + +teamkillkickreset +teamkillkick "*" 7 30 +teamkillkick "?capture" 10 30 + -- 2.39.5