PDA

View Full Version : Quake 3 Dedicated server frontend for Linux


SumDog
01/17/01, 06:35 pm
I've searched everywhere for a decent Q3A Dedicated server front end for Linux. I've run across some really awesome ones only to discover they're for Windows and not Linux. I hate MicroCrap. Anyway, all I need is a server that will cycle maps! That's it. A server that can cycle maps after each game (this is for a college LAN server).
There a lot of good Linux frontends out there, but I have yet to find one that will cycle maps. Any help is appericated.

SumDog

Aslan
01/22/01, 04:04 pm
You are prob. not finding one because no self-respecting linux weenie running a dedicated server would use a front end :-) It is an affront to our unix sense of what is right and proper :-)

Set up a config file and a little batch script to start your server and off you go.

Here is what I do:

In my shell rc file (.bashrc in my case), I have the following aliases defined:

alias q3="cd /home/quake3;screen -S q3a ./q3.bat"
alias rq3="screen -r q3a"

This uses the screen command to allow detaching/reattaching to the console session at will. Typing "q3" launches the server. CTL-A-D detaches from the screen session and "rq3" resumes the screen session that contains the console.

The q3.bat batch file that starts the server and is called by the alias just contains the following:

cd /home/quake3
./q3ded +set dedicated 2 +set net_port 27960 +com_hunkMegs 16 +exec myserver.cfg

And myserver.cfg looks something like this, which has map rotation built in:

//Default Free For All Server Configuration File
//Double slashes are used for comments and to keep commands from running. Remove the slashes before a specific to run that command.
//set Gametype to 0 for Free for All Mode

g_gametype 0

//Free For All Settings Below
//set ffa fraglimit. Set to 0 for no limit.

fraglimit 30

//set ffa timelimit. Set to 0 for no limit.

timelimit 25

//set Maximum number of clients and leave 4 ports reserved for admins
//Admins put a "set password "xxxx" in their personal config files so
//they don't have to type it when joining the server.
//This will result in the server showing 16 slots open (the four for admins don't show up)

sv_maxclients 20
sv_privateclients "4"
sv_privatepassword "xxxx"

//set host name that shows up in server list.

sv_hostname "Lion's Den FFA"

//set message of the day that players see while connecting to the server. Must be set before level loads.

g_motd "Welcome to the Lion's Den!"

//set remote console password
rconpassword "xxxx"
//turn on/off pak cheat check. 1=on, 0=off (Default: 1)
sv_pure 1
//set max allowable rate for a client. 8000 to 10000 recommended. Max: 25000
(Default: 0)
sv_maxRate 8000
//add up to 4 additional master servers to report to (As you can see the ingame configs don't report to id automatically)
sv_master2 ""
sv_master3 ""
sv_master4 ""
sv_master5 ""
//Set map selection, cycle order, and load first map for free for all
set d1 "map q3dm2 ; set nextmap vstr d2"
set d2 "map q3dm3 ; set nextmap vstr d3"
set d3 "map q3dm4 ; set nextmap vstr d4"
set d4 "map q3dm5 ; set nextmap vstr d5"
set d5 "map q3dm6 ; set nextmap vstr d6"
set d6 "map q3dm7 ; set nextmap vstr d7"
set d7 "map q3dm8 ; set nextmap vstr d8"
set d8 "map q3dm9 ; set nextmap vstr d9"
set d9 "map q3dm10 ; set nextmap vstr d10"
set d10 "map q3dm11 ; set nextmap vstr d11"
set d11 "map q3dm12 ; set nextmap vstr d12"
set d12 "map q3dm13 ; set nextmap vstr d13"
set d13 "map q3dm14 ; set nextmap vstr d14"
set d14 "map q3dm15 ; set nextmap vstr d15"
set d15 "map q3dm16 ; set nextmap vstr d16"
set d16 "map q3dm17 ; set nextmap vstr d17"
set d17 "map q3dm18 ; set nextmap vstr d18"
set d18 "map q3dm19 ; set nextmap vstr d1"
vstr d1
//set weapon respawn times for free for all in seconds. May need to decrease for large number of clients. (Default: 5)
g_weaponrespawn 5
//set voting. 1=on, 0=off (Default: 1)
g_allowvote 1
//set power multiples for quad damage (Default: 3)
g_quadfactor 3

//additions by Aslan- Anything with sets will be seen in the server settings in gamespy
//and in game for server settings.
//If you are using special maps here would be a good place to add where to download them!!
sets "Administrator" "Aslan"
sets "Email" "lionsden@216.242.107.101"
sets "URL" "http://216.242.107.101/~lionsden/"
sets "Location" "South Florida"
sets "CPU" "PII 450"
//sets "mappack" "http://216.242.107.101/~lionsden"

//This logging stuff does not work as expected. Still trying to figure this out.
seta g_log "qconsole.log"
seta g_logSync "3"
logfile "1"

Zxel
01/22/01, 06:41 pm
Originally posted by Aslan:
//This logging stuff does not work as expected. Still trying to figure this out.
seta g_log "qconsole.log"
seta g_logSync "3"
logfile "1"



The problem here seems to be you have the game log confused with the console log.

g_log is the game log (usually games.log), it can be set to a path also (ex: seta g_log "logs/games.log), path must exist.

g_logSync has to do with how the console log file is written (qconsole.log) either buffered or unbuffered.

logfile is for turning on/off the console log (curently is cannot be renamed without a mod - and I haven't seen a mod that does that yet).

For more help on game variables see Commander Keen's variable and command list here on gameadmins.com at: http://www.gameadmins.net/guides/setupguides.htm (under the Quake3 section).

Pe@ce to you - i'm out

------------------
Jesus Is Lord, Zxel

Commander Keen
01/23/01, 10:54 am
LMAO@Aslan

unix sense? Most UNIX guys that I know think Linux is just a wannabe unix, and they dispise Linux, but I guess they would run Linux over Windows. Who knows none of them play games any way. They are as old as their precious O/S. MS-SQl is starting to edge out our unix boxes as a backend for WEB servers so we'll see.

------------------
Commander Keen (http://console.q3center.com)

Aslan
01/23/01, 02:40 pm
Well I am certainly confused, but it does not act the way everyone seems to think it does and, get this: you most certainly CAN have separate console log files for each game with their own unique name (games running from the same game dir, baseq3 in my case).

I am doing it right now with the following:

I run two FFA servers on my machine, both from baseq3 with unique port numbers called out on the command line. One is for modem players (minping set) and one for anyone (no ping limit). The configs are identical in all other respects except hostname :-)

Each server has it's own config file which is called on the q3ded command line with +exec filename.cfg

At the bottom of each config file are the following two lines:

for the open to everyone server:

seta g_log "qlpbconsole.log"
seta g_logsync "1"

and for the modem players server:

seta g_log "qmconsole.log"
seta g_logsync "1"

I then MANUALLY create empty log files of
the same names in .q3a:

cd ~/.q3a
cat > qlpbconsole.log
ctrl-d
cat > qmconsole.log
ctrl-d

I make sure the files are writable and then fire up the servers.

Nothing gets written into these files until after the first map change but then they are updated continuously with every single new console line that is generated by the game. And each file is indeed the unique console output of it's respective server. In my tests I have been forcing mapchange with the vstr command (since I have rotation set up as exampled here at gameadmins in the setup guides).

Upon changing maps, both qlpbconsole.log and qmconsole.log start filling up with the respective console text from each server.

Try it. You will like it.

And it sure is hell goes against anything I have seen documented to date :-)

But there it is: I have unique console log files for each baseq3 server filling up real time in the .q3a/baseq3 directory.

BTW, I get a games.log file even when I have NO logging commands in my server config files. And all that goes into the games.log file is and echo of the server config info at each map change. The same info is written to the console log files, but the console log files contain ALL the console log text too.

Aslan

Aslan
01/23/01, 02:45 pm
OOPS - you DO NOT need to manually create the log files as I indicated in my previous post.

Merely set g_log "uniqueconsole.log" and
set g_logsync "1" and start the server

Then change a map with the vstr command. The log file will be created and start to fill real time.

Woohoo!

Aslan

Zxel
01/26/01, 02:50 am
The data in those logs (set up your way) is the games and console data mixed or the game log only - yuk! yuk!. This is one sure way to mess up your game stats. - hehe http://gameadmins.com/ubb/smile.gif

Keep thinking http://gameadmins.com/ubb/wink.gif

Pe@ce and Knowledge to you - i'm out http://gameadmins.com/ubb/cool.gif

------------------
Jesus Is Lord, Zxel

Aslan
01/26/01, 09:51 am
Near as I can tell so far (have not spent a tremendous amount of time on this) it is exactly what you get with the qconsole.log that gets generated if you use the logfile command to create a logfile instead of g_log.

I am not so much concerned about stats - I used to do that heavily on my Quake servers using first Gibstats and then later ngWorldstats and it turned out that after a few weeks there wasn't much reason to update it anymore as all the regulars had pretty much attained the ranking relative to each other that they were going to keep forever (give or take a couple of rungs) and noone even bothered visiting the stats page anymore :-)

What I do care about is sorting out ingame activity on the individual servers to look for problems with server function and with the inevitable occasional problem player. This arrangement does that very well.

BTW, I wonder who added the lion icon to my profile? I like it :-)