
--------------------------------------------------
L-Fire DM Version 1.11 - Release February 17, 1999
--------------------------------------------------


Info
----
L-Fire DM is a server-side Quake2 mod that adds many
significant features to Quake2 DM.

You can visit the L-Fire Development website at
http://www.planetquake.com/LFire or email to LFire@yyz.com.


Documentation
-------------
Comprehensive documentation is in the file LFireDMManual100.pdf,
which is available from the L-Fire Development website.


Getting Started
---------------
To run an L-Fire DM server you will need to download two archives:

For Windows:
   LFireDM_v1_11.zip            (gamex86.dll)
   LFireDM_v1_11_Config.zip     (configuration files)

For Linux:
   LFireDM_v1_11_Linux.tar.gz   (gamei386.so)
   LFireDM_v1_11_Config.tar.gz  (configuration files)

For Solaris Sparc:
   LFireDM_v1_11_Sparc.tar.gz   (gamesparc.so)
   LFireDM_v1_11_Config.tar.gz  (configuration files)


1) You can choose to run L-Fire DM directly out of your quake2/baseq2
   directory, or you can give the mod its own directory, such
   as quake2/lfiredm.  Use baseq2 if you want L-Fire DM to show up as a
   standard DM mod in server query tools such as GameSpy.

   Place the gamex86.dll, gamei386.so, or gamesparc.so in your chosen
   directory - quake2/baseq2 or quake2/lfiredm.

2) The LFireDM_v1_11_Config.zip and LFireDM_v1_11_Config.tar.gz archives
   contain L-Fire DM configuration files.  The two archives contain the
   exact same files.  The only difference is whether the archives
   are zip or tar.gz.

   The contents of the configuration archives are as follows:

   LFireCfg/Ent                        Directory for entity files
   LFireCfg/HighScores                 Directory for highscore files
   LFireCfg/Logs                       Directory for log files
   LFireCfg/TempScores                 Directory for temporary score files
   
   LFireCfg/HighScores/NewScores.txt   Empty highscore file template
   LFireCfg/HighScores/q2dm1.txt       Empty highscore file for q2dm1
      (Highscore files included for q2dm1-q2dm8)
   
   LFireCfg/Admin.cfg                  File for admin permissions
   LFireCfg/Banned.cfg                 File for IP banning
   LFireCfg/ChangeMap.cfg              File for validating "changemap" command
   LFireCfg/LHelp.txt                  File for "LHelp" command
   LFireCfg/MapLoop.cfg                File for defining the custom map loop
   LFireCfg/MOTD.cfg                   File for defining the message of the day
   LFireCfg/ScorePreload.cfg           File for preloading level scores
   LFireCfg/Shutup.cfg                 File for silencing users
   LFireCfg/TextFilter.cfg             File for filtering words and phrases
   

   Extract the configuration archive into your chosen directory (quake2/baseq2
   or quake2/lfiredm), so you will have an LFireCfg subdirectory under
   your mod directory.  Be sure to restore all pathnames that are stored in
   the archive.

   For example, under Windows you might have C:\Quake2\baseq2\LFireCfg or
   C:\Quake2\lfiredm\LFireCfg.  Under Linux you might have
   /usr/games/quake2/baseq2/lfirecfg or /usr/games/quake2/lfiredm/lfirecfg.



--------------------------------------
Differences from L-Fire DM Version 1.1
--------------------------------------

Note that version 1.1 was not publicly released.


Enhancements
------------

Added new ZBot detection code to boot players that send impulse commands to
the server.  Impulses are typically used in Quake2 to control ZBots.  There
doesn't appear to be any widely played Quake2 mods that use impulses for
mod-specific features so impulse commands that are sent to the server are
usually due to players controlling ZBots or the players had once used the
ZBot and they still have the impulse commands bound in their configurations.

Since the ZBots are being hacked to remove some of their other "footprints",
booting on impulses seems to be the only remotely reliable way of detecting
them now.  For the time being, the hacked ZBots are still controlled by
impulses so we can key off of them to detect the ZBot.  The problem with
this method is that people who aren't using the ZBot can accidentally send
impulses to the server if they had previously used the ZBot and they still
have keys bound to the ZBot impulses.  To handle this possibility, the server
boots players that send impulses, but the server does not broadcast "zzz
was using a ZBot" to all of the other players.  Instead, the player is
politely disconnected and sent a message indicating that impulses are not
permitted and they are allowed to reconnect to the server as long as they
don't send impulses.  A decent way to handle a thorny problem.



CVar Changes
------------
 
New cvars have been added: logimpulses and impulsekick.

The logimpulses cvar controls whether impulse commands sent by players are
written to the connect log.  By default, this cvar is set to "1" (on).

The impulsekick cvar controls whether players are disconnected if they send
a ZBot impulse to the server.  ZBot impulses are impulses 169 through 175.
By default, this cvar is set to "1", which will cause the server to disconnect
players that send the ZBot impulses.  If you set this cvar to "2", the server
will disconnect players if they send any impulse whatsoever.  This is to
handle a future hacked ZBot that might appear in which the ZBot has been
hacked to use different impulses than 169 through 175.

The lognames cvar has also been changed to default to "1" instead of "0".
This means that connect logs (name, IP address, ZBot impulse) are now saved
by default.



Bug Fixes
------------
 
Fixed a bug in the code that lists player names when a command is given such
as "shutup <player>" or "ignore <player>".  If there were multiple matches
for <player>, the server sends the client a list of players that match the
player name that the client gave.  The list could sometimes contain random
garbage characters that could occasionally cause the client to get kicked
off.




----------------------------------------
Differences from L-Fire DM Version 1.04
----------------------------------------


Enhancements
------------

- Added random quad respawn option (quad respawns within a window of time)

- Added random power armor (power shield/screen) respawn option

- Added "gamestats" serverinfo cvar that is automatically updated by the
  server as the level progresses.  This cvar allows people to monitor
  important game statistics through server query tools like GameSpy.



Other Changes
-------------

- If the server has match options enabled, then match admin elections are now
  enabled by default.  Note that elections are still disabled if you have
  not enabled match options.

- The server no longer says "unknown command" if a match command is given
  and the server does not have match options enabled.  Instead, the server
  will say "match options are not enabled".

- The match admin permission flag (permission flag P) now automatically
  assigns all match-related permissions to the admin.
  
  Assigning the match admin flag to an admin automatically gives the admin
  the following permissions in addition to allowing match control:
 
  setdmflags, setweaponflags, setfraglimit, settimelimit, setspawnprotect,
  setminping, setmaxping, changemap, sethudtime, setitemflags 

- The "settings" command was enhanced to show the value of the new
  itemflags cvar.  The output has also been enhanced to
  highlight (in green text) any server settings that would change the id
  default gameplay.

- Changed the maximum number of players a person can ignore from 5 to 10.



Bug Fixes
---------

- Fixed bug in "ignore" command that could cause the server to crash.



New cvars
---------
itemflags
   Use to modify item behavior, such as making quad or power armor (power
   screen and power shield) respawn randomly within a time window.
   Default is "0" (no changes).

   The quad and power armor can respawn within a window (approximately 20
   seconds) instead of respawning at exactly 60 seconds after being
   picked up.  So the items will respawn at some random time between
   approximately 50 and 70 seconds after being picked up.

   The "random first quad" and "random first pa" flags set the quad and
   power armor so they are not present at the beginning of the level.
   Instead, they will spawn into the level from 1-60 seconds after the level
   starts.

   IF_QUAD_WINDOW          1
   IF_PA_WINDOW            2
   IF_RANDOM_FIRST_QUAD    4
   IF_RANDOM_FIRST_PA      8

gamestats
   This cvar displays stats on the current level and is automatically updated
   by the server as the game progresses.  This allows people to see a general
   status of matches by querying the server with programs like GameSpy.

   The cvar value appears as follows: "mm:ss p/s"

   mm = minutes remaining
   ss = seconds remaining
   p  = number of players
   s  = number of spectators



Removed cvars
-------------
uptime
   This cvar used to display the time that the server was started, which is
   somewhat useless.



Commands
--------
setitemflags
   Admin command to set the "itemflags" cvar.



Admin flags
-----------
Flag "Y"
   Change itemflags cvar.



Copyright/Permissions
---------------------
L-Fire DM is copyright (c) 1998-1999, Kai Kenner.
L-Fire DM was created solely for my own use, so it is distributed AS IS.
You may distribute this archive so long as this file and all other files
are distributed together.

You may only distribute L-Fire DM and its supporting files for free.

