Quake Control Centre

""


NAME
qcontrol -- dedicated *nix-quake wrapper
qcentre -- qcontrol XWindows frontend (xforms-based)


DESCRIPTION
qcontrol launches *nix-quake and accepts telnet connections
to the password protected quake console for remote server administration.


INSTALLATION



COMMANDLINE OPTIONS

-ini <inifile>
All values that are "/set"-able can be put here. Also, instead of using command line parameters, put them here one parameter per line: <variable> <value>. Take note that you cannot speficy "exename" in the inifile for security reasons, use the commandline parameter instead. qcontrol will try to save the current values to the inifile every time a qcontrol variable is modified if "autosave" is set to 1. Command-line parameters override values from the inifile. You may put comments at the inifile by putting "#" at the beginning of the line. Default: "qcontrol.ini".

-autoexec <configfile>
*will automatically send the commands from the file "configfile" to the server after startup. This may be omitted if you have configured quake to start with a map and your server variables (i.e. with autoexec.cfg). If not specified, qcontrol will (try to)
read and send to the quake server the file "qcontrol.cfg". You may need to delete/edit this file if you have configured your non-qtest server to use the "autoexec.cfg" loading feature. You may put comments at the configfile by putting "#" at the beginning of the line.

-maxplayers <N>
*will launch quake with the commandline "-dedicated N". If not specified in the commandline, the default number 8 will be used.

-game <gamename>
*will launch quake with the commandline "-game <gamename>". If not specified in the commandline, the default game "id1" will be used.

-udpport <portnumber>
*tells which port xquake will accept connections. Useful if you have several games running on a single machine. Default: 26000.

-port <portnumber>
*tells which port qcontrol will accept connections. I suggest that you use the same port that your quake server is using. This will make it easier for server status seekers to find and connect to qcontrol. You don't have to worry about port conflicts because quake uses UDP while qcontrol uses TCP for console connections. Defaults to 26000.

-logfile <filename>
*specifies the filename for logging. If no filename is used, the default "qcontrol-%d.log" will be used, where %d is the port nuber used by qcontrol.

-loglevel <N>
*sets the behaviour of the logging facility, where N is:



You can dynamically set the level of logging using the "/set loglevel" command. However, if the console-server is started with loglevel 0, the logfile will not be opened and setting the loglevel to a higher level from the console server will have no effect. The default loglevel is 7.

-exename <filename>
specifies the executable filename of the quake server. Do not include the absolute path -- you must set the path in the Makefile. Defaults to "xquake".

-connectime <seconds>
*specifies maximum qcontrol connection time in seconds. Default: 600.

-passwordtries <N>
*sets the maximum number of invalid password tries before disconnecting client. Default: 3.

-autosave <0|1>
*if set to 1, qcontrol will automatically try to save the configuration to the inifile every time a qcontrol variable is changed. Default: 1.


CONSOLE+STATUS-SERVER COMMANDS

All qcontrol commands start with a "/" to avoid conflict with the quake console commands.

/stat
will report the console's answer to a "status" command.

/vars
will list server specific variables. The console's answers to the /stat and /vars command are not recorded in the logfile to avoid bloated logs.

/banner
will display a single-line banner message.

/god <password>
Entering the admin mode with /god and the correct password will give you access to the quake server console.

/crypt <crypted-password>
same as /god except for the encryption scheme. This implements a simple password protection scheme using UNIX crypt. The server will send a random 2 letter salt at the qcontrol login (enclosed in parenthesis). Use the function "crypt(password, salt)" to get the crypted password. Remove the salt from the crypted password (first two chars) and use the "/crypt <crypted-password>" command.

IMPORTANT: SET YOUR CONSOLE PASSWORD IN THE FILE qcontrol.h
The password entry in the inifile will override this default.

/restart
will restart your quake server (and disconnect you from the console).

/shutdown
will shutdown qcontrol, quaked and your quake server (and disconnect you from the console).

/set <varname> <value>
can be used only for setting qcontrol specific variables. It cannot affect your quake server settings except for the game, maxplayers and udpport (will take effect in the next /restart). You must enter admin mode with /god and use the quake console to set quake-specific variables.
Typing "/set" only without the variable name and value will list all the qcontrol specific variables. The current qcontrol specific variables with their default values are:



FAQ (with answers)
Q. Why do I get the message "Sock_Open: bind: Address already in use"?
A. Maybe there is another program, qcontrol or xquake using the same port.
If you can't find the conflicting program, wait for a minute and retry.

Q. Where can I get linux-quake?
A.


Q. I only have the shareware version of quake, can I still use qcontrol?
A. Yes, comment out the line "REG=-DREGISTERED" in the Makefile.
Register now.

Q. Can you cheat in multi-player quake?
A. No.

Q. Why not use /satan instead of /god?
A. It's harder to type.

Q. Is there a God?
A. Yes.

Q. How do I log IP addresses each time a player enters my server?
A.

  1. Edit the Makefile and uncomment the lines enabling logging of IP addresses
  2. Edit qtcp-v1.01/Makefile
  3. Follow normal compilation/installation instructions
  4. Patch your Quake version 1.06 progs.dat to print player names at connection -- using the client.qc (in the "qc" directory) as sample.


SOURCE
ftp://ftp.cdrom.com/pub/quake/utils/network_serial/remote_control/
ftp://aiko.upd.edu.ph/incoming/qcontrol-v0.04.tar.gz


CHANGES

v0.04
- fixed hangup bug related with connecttime timeout
- removed "logfile" in /set-able vars (security -- to avoid overwriting files, use "-logfile" in cmdline instead)
- changed connecttime default to 3600 seconds (one hour, for qcentre connections)
- ported to Solaris 2.4 and SunOS 4.1.3 (in anticipation for Quake ports to these platforms)
- distributed with an XWindows/xforms frontend program: qcentre v0.04a (Linux ELF binary only, dynamically linked)
- added option for logging IP address of game connections (must install a QuakeC patch to work)

v0.03
- detects and restarts after xquake crashes
- added simple challenge-based password encryption using UNIX crypt
- added support for patch loading: -game <gamename>
- added support for using another udpport for quake: -udpport <port>
- added /shutdown command for stopping your server
- added /restart command for restarting your server w/ new config
- added inifile for setting config from a file
- kills running quake server when exiting/aborting qcontrol
- included XWindows frontend program: qcentre
- added console connection timeout: connecttime
- added maximum number of password tries: connecttime
- fixed permissions of logfile (logs may contain password)
- cleaned up code, added -Wall for more warnings from gcc
- new variables, new commands

v0.02
- squashed the newline logfile bug
- added step in the README on how to connect to the server :)

v0.01
- initial release


AUTHOR
A.Oliver De Guzman <oliber@aiko.upd.edu.ph>