halfd

Advanced server management for Linux Half-Life dedicated servers.

Installation process should be *much* easier, there's an install script now!

If you're impatient, an installation walkthrough is in the INSTALL.readme
file.


*NOTE*
There are two different logging standards, "new" and "old".
For information on the "new" logging, go here: http://www.hlstats.org/logs

If your mod doesn't support the "new" standard then you'll need to
set "oldhack=1" in your configuration file.  See halfd.cfg for details.

Sections
PREREQUISITES
INSTALLATION
QUICKSTART
NOTES
KNOWN BUGS
CHANGE LOG

PREREQUISITES

You must have Extended Tcl/Tk installed on your system.  The GUI has been
tested with Tcl/Tk v7.6 and v.8.0.

The install script will check for a valid Tcl installation.

If you don't have Tcl/Tk, there are full install instructions at 
http://www.halfd.org/tclx.shtml.  (The instructions tell you how to build
from source; if you want to use RPMs you can do that too).


INSTALLATION:

Stop any halfd processes you may have running.  You can leave hlds_run
running, if it's being managed by a previous release of halfd.

If this is your first time installing halfd, you MUST stop all hlds_run
processes.

Type "perl install" to install halfd.  Follow the prompts.

NB: If you get an error on the install that looks something like this:
		syntax error at install line 728, near "} $cfg "
	Then you have an older version of perl (pre 5.6.0).  You will need
	to upgrade perl before you can use the install script.
	Perl can be obtained here: http://www.cpan.org

Any existing configuration files (halfd.cfg, halfd.cfg, etc) will
be backed up during the install process.

AFTER INSTALLATION, EDIT THE CONFIGURATION FILE(s) TO REFLECT YOUR
CONFIGURATION!

If you prefer French messages, you'll need to copy francais/halfd.txt
to $HLDIR.  Thanks to Guillaume Rousse for the French translation!

The install script will also tell you a line that you need to add
to your /etc/profile file.  Do what it says :-)

If you want real-time status updates for your server from a web page,
you'll want to install halfd.cgi.

See INSTALL-CGI for installation instructions.


QUICKSTART:
After installation as specified above,

READ THE FAQ.  It contains information you will need to review regarding
security.

Edit your halfd.cfg configuration file(s)!

Run halfd with a "-g" argument specifying which game you wish to manage.
	(e.g. 'halfd &' manages a Half-Life server)
	(e.g. 'halfd -g tfc &' manages a TFC server)
	(e.g. 'halfd -g cstrike &' manages a Counter-Strike server)

You now have a daemon running in the background managing your hlds_l server.
Now you can use the GUI to monitor/control your server.

Check the $HLDIR/<mod>/halfd.log file (type "less $HLDIR/cstrike/halfd.log")
for any errors that may have occurred during startup.

Run the GUI from X-Windows
	(e.g. 'hlgui &')

You'll need to examine the Options menu to make sure you have everythng
set up correctly.

The Windows client distribution contains it's own installation instructions.
Please read these if you plan to run the Windows client.


NOTES:

Comments, bug reports, etc. to forums at www.halfd.org

If a server crashes and produces a core file, a stack backtrace and
log file will be copied to the crashes/ directory under HLDIR.

See the 'About' boxes for more information on the GUI.

See http://www.halfd.org for latest versions and other information
about the tool.


KNOWN BUGS:
	None, if you find any please post to the halfd forums!


CHANGES
	v0.1  First release of hlds_l_admin


	v0.2  Added AMVS; some performance cleanup


	v0.23 AMVS cleanup
	      SZ_GetSpace recovery fixed
	      added nslookup button (sometimes I'm nosy ;-)


	v0.24 AMVS re-written, now uses timed events and kicks off at the
	      *end* of a map timer
	      SZ_GetSpace recovery fixed once-and-for-all


	v0.25 Voting now working on some servers that log only one line
	      for the 'say' command
		  Core files are now actually processed correctly
		  "Next Map" information broadcasted to clients
		  Added 'hlcmd' script


	v0.26 Voting system fixed for server release 3.0.1.4
		  Kick users by UID rather than name
		  hlcmd 'start' now works non-interactively
		  hlcmd interactive mode cleanup
		  

	v0.27 Fixed support for MODs (Counterstrike now works!)
		  Added ban functionality to kick - thanks for the idea / code
			Colin Corbett!
		  Added support for TFstats
		  Moved FIFOs to /tmp -- some users run their servers on vfat 
			partitions (ugh!)


	v1.02b First beta release of hlds_ld
		  Now uses a client/server model
		  Added a countdown timer for maps
		  Stops and restarts a hung server
		  Fixes to make voting work under cstrike
		  - fix is hard-coded now, will be generic/configurable after beta
		  Made TFstats support generic; you can now run *any* stat tool
		  after each map


	v1.03b Second beta release of hlds_ld
		  Added hlclustermon client
		  Added 'chat' mode for hlgui
		  Filter sv_password to clients authorized as 'user'
		  Use asynchronous socket connections for clients, with the
		  	exception of hlclustermon on windows
		  Updates to FAQ


	v1.04b Another beta release of hlds_ld
		  Removed asynchronous connections for all Windows clients
		  Make name tags configurable for future mods


	v1.05b Final(?) beta
		  Fixed another problem in hlgui with wonid enabled


	v1.06b Final beta, really :)
		  Fixed an issue with the countdown timer not resetting on some
		  conditions


	v1.07 GA!
		  Fixes to README and FAQ
		  Minor fix to hlds_ld-config


	v1.08 Fixed problems in hlds_ld-config where changing more than one
		  mod in a session would cause parameters to step on each other.
		  Thanks Andrew Pavlis for finding this.

		  Moved FIFOs back to $HLDIR/mod so that multiple instances of
		  the same mod can be run on one box.

		  Added ZAP functionality.  See the FAQ for more info.

		  Moved all text for hlds_ld and hlds_ld-config to external .txt
		  files in order to make non-English translations easier.
		  The GUIs will be moved later.

		  Added 'timeleft' command that users can execute.  It will
		  only respond once per minute to prevent spamming.


	v1.09 Beta release for 3.1.0.0 patch
	 	  Added CYCLE command
		  Added 'maplist' command for users
		  Works with 3.1.0.0 patch
		  Performance improvements (yay!)
		  Colorized hlgui


	v1.10 Release for 3.1.0.1/2 patch
	 	  Works with 3.1.0.1/2 patch
	 	  Added 'nextmap' command for users
	 	  Dropped support for hlds_ld-config and created an editable
		  configuration file.
		  Added 'autorotate' option for hlds_ld.log file
		  Added macros to hlgui
		  Added refresh button to hlclustermon

	v1.11b BETA release
		  Added foul-language kick/ban
		  Added client 'size <mapname>' command


	v1.20b BETA release
		  Added TK kick/ban

	v1.20 Release
		  Many bugfixes for kick/ban
		  Highlight and filter ADMIN-MOD messages
		  'fortune' feature
		  'votefreq' feature
		  Don't broadcast 'maplist' patterns

	v1.21 Release
		  TK-forgive bugfix
		  hlgui ban bugfix

	v1.22 Release
		  Install script!
		  TK-kick/ban bugfix

	v1.23 Release
		  TK works for TFC.
		  Decay logic continues to run on stop/start of server.

	v1.26b BETA Release
		  hlgui now resizeable!  (Thanks Rich Pennington)
		  Dynamic IP address determination
		  Handle 3.0.1.4 no-ip-from-status problem
		  Limit number of active connections
		  Tcl debugging option

	v1.27b BETA Release
		  "maxconns" option was broken

	v1.28b BETA Release
		  Find and report on player models (Alec Shaner)
		  Models column added to hlgui

	v1.29b BETA Release
		  Sentry-gun teamkill check added (Thanks congiman for testing!!)
		  Fix 'unknown' IP-address problem
		  Add 'getteam' - team parsing and reporting 
		  Ignore comments and directives in mapcycle.txt
		  Added check for password-protected servers
		  Added exclude list for TK and foul-language checks
		  Significant cleanup of logfile-processing logic
		  Optional team column added to hlgui
		  
	v1.30 Release
		  Clean up beta code and call it production :-)

	v1.31 Release
		  Close security hole related to players with ";" in their names
		  Support for Firearms
		  Support for FLF team-determination
		  Added 'fortunepath' option

	v1.40 Release
		  Fix a problem with name-matching code that caused REGEXP errors 
		  Add FOULON/FOULOFF commands
		  Add 'foulprefix' option
		  Use military time for logging rather than AM/PM
		  Add 'adminlog' option
		  Add support for bots (only tested with HPB bot)
		  Add support DoD team determination
		  Add 'voteignoretag' option (for bots)
		  Add 'novotemaps' and 'maxextend' options to limit voting
		  Add 'rotatetype' option
		  Add 'vehiclehack' option to work around CS vehicle-tk bug
		  Add weapon-limit options

	v1.70 Release
		  Product renamed to 'halfd'
		  Support VALVe's new logging standard
		  Workaround Firearms' non-standard logging
		  Add 'pingcheck' and associated options
		  Add 'votestatus' command
		  Add 'whattime' command
		  Add 'console' option
		  Add 'fun weapon' taunts
		  Add more options to tune MOD-voting functionality
		  Send version information to newly-connected clients
		  Add 'bindip' option
		  Add 'deletecust' option
		  Fixed 'rotatetype' logic
		  Fixed hlclustermon problems - servers would get mixed up if some
		  were not responding.

		  Big thanks to all that hung through the Alpha and Beta stages of 1.50.
		  The new logging standard required an extensive re-write of much of
		  the code!

	v2.00 Release
		  Add functionality to communicate with HLBP so we can run on Win32.
		  Note that HLBP (www.unitedadmins.com/hlbp) is currently in ALPHA.  

		  New config file options:
		  	votekwtime, votemaps, saycmd, saysleep, oldlogsdir, lowstatus,
			mypenalty, autovotetime, banlog, suicide.*, adminmod

		  New commands:
		  	DECAYPLAYER, PING, PENALTY

		  Allow for control from admin-mod via plugin_halfd.
		  In-game commands (e.g. 'nextmap') can now be executed by GUI clients.
		  Accept a second argument to support multiple servers in the same directory.
		  Add %T to warning messages (shows next penalty).
		  Fixed backtrace on server crash (linux only).
		  Last N lines of log on a server crash will go to halfd.log (linux only).
		  Added suicide taunts.
		  Many small bugfixes.

		  GUI changes:
		  	- hlgui: admin-mod commands (uli@spielviel.de)
			- hlgui: command-line history (felfert@to.com)
		  	- hlclustermon: average ping (uli@spielviel.de)
			- hlclustermon: command-line history (felfert@to.com)

		  Add 'cs-chatbot' in unsupported/, an IRC bot by Uli :)

	v2.10 Release 10-15-2001
		  Changed command-line parameters.  
		  HLDIR no longer a requirement.
		  Allow multiple args to admin_command penalties
		  'Last N lines on crash' bugfix
		  HalfBot added - triggers commands on player chat
		  Allow line breaks (%L) in all server-say messages
		  Ping-check fixed - problem with excluded players
		  Recognize dead player chat for CS 1.3
		  Add "maplistdisplay"
		  Add "vote restart" option
		  'getmodel' fixed if HLTV is connected
		  Add "teamcheck" to ban players trying to crash the server
		  Decay for "attackcheck" fixed
		  Add suicide penalties
		  Changed name of halfd_client.cfg to hlgui.cfg
		  Changed name of halfd_cluster.cfg to hlclustermon.cfg
		  Many other bugfixes
		  Some documentation updates

	v2.14 Attack decay fixed 
		  email-on-crash function added 
		  Support for hlds_boost 
		  Death count now displayed in hlgui 
		  New options: 
		  	quiet, enforcepass, getdeaths, getmodelsfromrole, rsattempts 
		  New commnads: PID, DECAYALL, DECAYPLAYERALL 
		  Several bug fixes 

	v2.15 Fixed bug with "-d" option

	v2.17 Full console support - you can now use SCREEN under linux!
		  New API for applications that have problems with keyed lists
		  Linux event handler much more responsive
		  Reset user information immediately upon map change
		  Correct messages for ATTACKON, ATTACKOFF, and TA forgives
		  Trap SIGQUIT, SIGTERM on linux
		  New options: fortuneargs, newapiauth, broadcastpen
		  New commands: CONSOLEOFF, HBON, HBOFF, TAUNTSON, TAUNTSOFF
		  As always, miscellaneous bug fixes
		  Thanks to folks that beta'd 2.16 :)

	v2.18 Runs with HL x109
		  New API for applications that have problems with keyed lists
		  If nextmap is 0, disable automated nextmap messages
		  Fix problem with concurrent newapi clients
		  Add 'sayquotes' option
		  Add ARGS command
		  Allow %K in weapon-taunt for killer name
		  Handle HLBP auto-restart of server
		  Add hostage-kill penalty
		  Fix 'halfd.gdb_commands' bug
		  Fix stats logfile function
		  Add "W:" (wait) command to HalfBot

	v2.19 Accomodate HLTV weirdness in x109
		  Add 'hostageroundlimit'
		  Add 'newapiusrauth'
		  Add 'ignoretkta'
		  Add 'voteignore2'
		  Add ABORTVOTE
		  Add 'votewinmsg'
		  Fix logfile deletion bug
		  Fix %L in HalfBot responses
		  Fix TK and TA decay issue (forgives were resetting decay timer)
		  Allow for blank authids (no more warning messages)
		  Count Admin-mod vote wins in stats
		  Updated French translation - thanks Y4nN1cK
		  New tools in unsupported/

	v2.20 Move everything to addons/halfd/
		  If map is out-of-cycle, don't announce nextmap
		  Fix hostage-check bugs
		  Add GETCONFIG command
		  Add CHAT2 command
		  Added "-k" option
		  Added "getteamfromuser" option
		  More "forgive" options
		  Add GPL command
		  Fix HalfBot "P:" directive
		  Make 'checkForHungServer' more forgiving
		  hlgui: Server output window text is now selectable
		  Check for unique passwords
		  halfbotauth
		  Parse 'stats' output in 3.1.1.1x
		  Determine binary to use based on CPU
		  Added SERVERSTATUS command
		  Fix logfile-deletion bug (due to 3.1.1.1x)
		  Add SETCONFIG command
		  Add 'timelimit1' option
		  Determine CPU for optimized binaries
		  Allow server-output text in hlgui to be selectable
		  Add 'patch' functionality for future beta-testing and fixes
		  Don't look for 'hlds' binary if -d option is used
		  Add 'amx_chat' for chatmode
