===============================================================================
                              NO ONE LIVES FOREVER
                         NolfServ Readme Version 1.002
                               Feburary 26, 2001
===============================================================================

NolfServ Wizard
---------------

You can run a dedicated server on the Internet, or on your local LAN.  You must
have a FULL install of No One Lives Forever v1.002 to run NolfServ v1.002.  Ideally, 
the hosting system will exceed the minimum system spec for processor speed and 
RAM. Players will experience smoother gameplay on your server if it has more of 
both of these things. A high-bandwidth Internet connection (ISDN or faster) is 
also preferable.

Run the dedicated server either by clicking the NolfServ server icon in your 
start menu, or by double-clicking the NolfServ.exe in your Nolf installation 
folder. You will then go through a multiplayer setup wizard.  The pages of the 
wizard correspond to the in-game hosting menus.  Please refer to manual about 
the in game hosting server options.

New to NolfServ v1.002 is the Customization Options page of the setup Wizard.
This will be the first page displayed if you have a Custom folder containing
Add-on .rez files (see the No One Lives Forever Update 1.002 readme for more
information about custom levels).  The Customization Options page allows you
to run custom Add-on .rez files containing new levels/resources on your server.


The NOLF Server Setup Wizard page allows you to set the following settings:

    * Session Name: This is the name of your server as seen by players when 
                    they are looking for a server to join.

    * Game Type: This is either "H.A.R.M. vs. UNITY" or "Deathmatch"

    * Max Players: Maximum number of players allowed to play (2-16)

    * Port: This is the port the host server is on.  It can be a number between 
            1 and 65535.

    * Bandwidth: Target bytes per second to send over the network layer. This 
                 MUST be set correctly to avoid send overflow. For a detailed
                 explanation of how to use this feature, please see the section
                 of this document labeled "limiting bandwidth".
    
    * Password: This specifies whether the game is password protected and what 
                password to use.


The Options page allows you to set the following settings:

    * Run Speed: How fast the player runs.  This is a percentage between 50 and 
                 150 percent.

    * Respawn Scale: How fast powerups respawn.  This is a percentage between 
                     50 and 150 percent.

    * Default Weapon: This specifies the weapon that you are carrying when you 
                      respawn.

    * Weapon Stay: Do weapon powerups respawn immediately when picked up, or do 
                   they respawn based on the time set by the level designer.

    * Location Based Damage:  Is location based damage turned on (e.g., a head-shot
                              does more damage than a body shot).

    * Audio Taunts: Are audio taunts allowed.

    * Fall Damage: How much damage if caused by falling.  This is a percentage 
                   between 0 and 100.

    * Armor Health Bonus: A Health bonus that is given when armor powerups are
                          picked up.  This is a value between 0 and 100.


The Deathmatch Options page allows you to set the following settings:

    * Level Ending Condition: The condition that determines when the level should 
                              end.  This can be set to "Frag limit reached", "Time 
                              limit reached", "Frag or time limit reached", or "none".

    * Frag Limit: This indicates the number of frags (kills) a player must get for 
                  the Frag limit to be reached.  This must be a value between 5 and 
                  50.

    * Time Limit: This indicates the time (in minutes) that a level must be running 
                  before the time limit is reached.  This must be a value between 5 
                  and 60.


The H.A.R.M. vs UNITY Options page allows you to set the following settings:

    * Level Ending Condition: The condition that determines when the level should 
                              end.  This can be set to "Score reached", "Time limit
                              reached", "Score or time limit reached", or "none".

    * Time Limit: This indicates the time (in minutes) that a level must be running 
                  before the time limit is reached.  This must be a value between 5 
                  and 60.

    * Winning Score: This indicates the score that a team must reach for the winning
                     score to be reached.  This must be a value between 30 and 200.

    * Intelligence Score:  This is the score that is given for successfully 
                           "capturing" an Intelligence item.

    * Frag Scoring: This indicates if frags should add to a player/team's score.

    * Friendly Fire:  This indicates whether team mates can damage each other or not.


The Worlds page allows you to add/remove maps to/from the rotation.  When hit the 
Finish button on the Worlds page, there will be a pause while the server starts and 
the first world is loaded.  When the server starts running, you will see the 
dedicated-server main window.  This window is broken up into 5 sections that are 
described below:

    SERVER INFO

        * Name: This is the name of your server as seen by players when they are 
                looking for a server to join.

        * Running Time: This shows the total time your server has been running.

        * Total Players: This shows the total number of players that have visited 
                         your server.

        * Peak Players: This shows the highest number of players that were on your 
                        server at one time.

    GAME INFO

        * Players: This shows the number of players currently on your server.

        * Time in Level: Shows the time the current level has been running.

        * Average Ping: Shows the average ping of the players currently in your 
                        level.

    PLAYERS

    This shows the list of players that are currently on your server.  The list has 
    the following columns that describe each player:

        * Name: The name of the player.

        * Ping: The ping from the player to the server.

        * Kills: The number of kills the player has scored in this level.

        * Time: The length of time this player has been on the server.

    There is a button below the list of players labeled "Boot".  Use this button to 
    remove a player from your server.

    LEVELS

    This shows a list of levels that the server will be running and the order they 
    will run in.  The current level is indicated with a black dot to the left of 
    the level name. Below the list of levels, there are three buttons which are 
    described below:

        * Next Level:  Go to the next level immediately without having to wait for 
                       the level ending conditions to be met.

        * Select Level:  Go to the currently highlighted level immediately without 
                         having to wait for the level ending conditions to be met.  
                         You can also just double click the level.

        * Stop Server:  This will stop the server and close NolfServ.

    CONSOLE

    This shows a scrolling display of the server's internal commands and status. 
    Chat messages from players will also appear here.  To send players messages from 
    the command line interface at the bottom, precede the message with "say" and 
    enclose the message in quotes.  For instance if you entered: say "hello 
    everyone!" all clients would see the message "hello everyone!" from "Host". 
    Advanced users can enter Lithtech console commands in this command line. 
    To clear the display entirely, click the Clear button.


    ADVANCED SERVER:  For advanced server setup, the following commands are available:

      General Commands (compiled by "ShagnWagn"):
      -------------------------------------------

        * NetDefaultWeapon:  This is used to set the default weapon players get when
                             the respawn.  Valid values:
             
                                  20 = None
                                  21 = Shepard Arms P38 9mm Pistol
                                  22 = Petri .38 Airweight Revolver
                                  23 = Braun 9mm Parabellum
                                  24 = Gordon 9mm SMG
                                  25 = Hampton MPL 9mm SMG
                                  26 = AK-47 Assault Rifle
                                  27 = Sportsman EX Crossbow
                                  28 = Hampton Carbine
                                  29 = Geldmacher SVD Sniper Rifle
                                  30 = Morris Model 14 Spear Gun
                                  31 = Laser Gun
                                  32 = Super Atomic Laser Weapon
                                  33 = Bacalov Corrector
                                  34 = M79 Grenade Launcher
                                  35 = Briefcase
                                  36 = Lipstick Impact Explosive
                                  37 = Lipstick Proximity Explosive
                                  38 = Lipstick Timed Explosive
                                  39 = Sleeping Gas
                                  40 = Stun Gas
                                  41 = Acid Gas
                                  42 = Belt Buckle/Zipcord

        * NetMaxPlayers:  Sets the maximum number of players that can join the server.
                          NOTE:  User with caution:  if you set it with 16 players 
                          in the server wizard then lower it with this to 4 (or any 
                          other amount), Gamespy still allows people to join even 
                          when full).  Valid values: 2-16

        * NetHitLocation:  Turns location-based damage on/off (0=off, 1=on).

        * NetFragScore: Turns frag scoring in H.A.R.M. vs UNITY games on/off (0=off,
                        1=on).

        * RunSpeed: Used to adjust the run speed.  This value represents a percent
                    of the normal run speed.  Valid values: 0.5-1.5 (i.e., 50-150%).

        * NetFallDamageScale:  Percentage of fall damage players take.  Valid values:
                               0.0-1.0 (i.e., 0-100%)

        * RespawnScale:  Used to adjust the rate at which powerups respawn.  This
                         value represents a percent of the normal respawn time.
                         Valid values: 0.5-1.5 (i.e., 50-150%).
        
        * NetArmorHealthPercent:  Used to give players a health bonus when they pick
                                  up armor powerups.  This value represents a percent
                                  of the armor value that should be given to the player
                                  as a health bonus.  Valid values: 0.0-1.0 (i.e.,
                                  0-100%).

        * NetFriendlyFire: Turns friendly-fire on/off in H.A.R.M. vs UNITY games
                           (0=off, 1=on).

        * NetIntelScore:  This represents how much "capturing" on intelligence item
                          is worth in H.A.R.M. vs UNITY games.  Valid values: 5-50.

        * NetAudioTaunts:  This is used to enable/disable audio taunts. (0=off, 1=on).

        * NetUsePassword:  This is used to toggle password protection. (0=off, 1=on)

        * NetEndFrags:  This represents the winning score in Deathmatch games.  Valid
                        values: 5-50.

        * NetEndScore:  This represents the winning score in H.A.R.M. vs UNITY games.
                        Valid values: 30-200

        * NetEndTime:  This represents the length of time (in minutes) each level 
                       last.  Valid values: 5-60

        * NetSessionName:  Name of the server.  Valid value: (<= 24 Characters).  For
                           example: NetSessionName MyCoolServer.

        * NetCAGameEnd:  Level ending conditions for H.A.R.M. vs UNITY games.  Valid
                         values:

                              0 = Score Reached
                              1 = Time Limit Reached
                              2 = Score or Time Limit Reached
                              3 = None

        * NetDMGameEnd:  Level ending conditions for Deathmatch games.  Valid values:

                              0 = Frag Limit Reached
                              1 = Time Limit Reached
                              2 = Frag or Time Limit Reached
                              3 = None

        * NetWeaponStay:  Toggles weapons instantly respawning after they are picked
                          up. (0=off, 1=on).


      Advanced Commands:
      ------------------

        * LeashLen: Specifies the allowable distance between the client's position 
                    and where the server thinks the client should be. Defaults to 2.0.

        * LeashSpring: Specifies the distance inside of which the server will 
                       interpolate the server's position to match the client's
                       position. Outside of this distance, the server's position will
                       be forced to the client's position. Defaults to 150.0. 

        * LeashSpringRate: Defines how quickly the interpolation will happen between 
                           the server and client positions, in the range 0.0-1.0. 
                           Lower numbers lead to slower interpolation.  (Which gives 
                           smoother movement, but greater error.) 0.0 will stay at 
                           the server's position, and 1.0 will teleport the server 
                           object to the client's position.  The default value is 0.1.

        * SendBandwidth BPS: Target bytes per second to send over the network layer.
                             This MUST be set correctly to avoid send overflow. For a
                             detailed explanation of how to use this feature, please
                             see the section of this document labeled "limiting
                             bandwidth".

      Debug Commands:
      ---------------

        * IPDebug: Show debug messages for the TCP/IP layer (addresses & ports for 
                   connection/disconnection/etc.)  (0 or 1)

        * ShowConnStats: Turn on the connection bandwidth usage spew. (0 or 1)




Command Line Arguments
----------------------

Launching NolfServ can be automated by the command line parameter "-nowiz".  This 
forces NolfServ to skip the setup wizard and use the options that were chose the 
last time the wizard was used.  So, the full command line would look like:

     NolfServ.exe -nowiz

There are additional command line parameters, but they are for advanced users only.

The additional command line parameters set values that appear in the setup wizard.  
To set parameters and not show the wizard, combine the "-nowiz" parameter as show 
above.  The full command line syntax is:

     NolfServ.exe [Parameter1 [Value1]] [Parameter2 [Value2]]

Most parameters must be followed by a value for that parameter.  Values that require 
strings can be surrounded by double quotes so that they may contain spaces.  An 
example value that requires double quotes is:  "My Server".  Here is a table of the 
available command line parameters:

Parameter         Description                     Value Type    Value Default
---------------------------------------------------------------------------------
-NetSessionName | Server name seen when joining	| String      | "Good vs. Evil" |
-NetUsePassword | Lock server with password     | Float       | 0.0f (FALSE)    | 
-NetPassword    | Server password               | String      | "password"      |
-NetMaxPlayers  | Maximum number of players     |             |                 | 
                | allowed on server at once     | Float       | 16              | 
-NetPort        | Port to host server on        | Float       | 27888           |
-nowiz          | Skip the setup wizard         | -none-      | -none-          |
---------------------------------------------------------------------------------



Recommended Player Limits
-------------------------

Connection              Machine Spec                   # of Players 
-----------------------------------------------------------------------------
56K                   | Minimum Server (Host)          | 2 (including host) | 
ISDN (128 kb up/down) | Fast Server (Dedicated)        | 4                  | 
DSL/Cable*            | Fast Server (Dedicated)        | 4-8                |  
T1                    | Minimum Server (Dedicated)     | 8-16               | 
T3                    | Minimum Server (Dedicated)     | 8-16               | 
T3                    | Fast Server** (Host/Dedicated) | 16                 | 
-----------------------------------------------------------------------------

* Dependant on upload speed, Cable and DSL connections vary.
** Fast Server system requirements are above a P3 550 + 256 MB RAM 



Limiting Bandwidth
------------------

New to version 1.002 is the ability to restrict upload bandwidth.  This feature
was implemented to give server operators the ability to limit the amount of data
that's being sent to players on high bandwidth connections.  When used correctly,
this feature can greatly improve performance.

There are two ways to change your bandwith limit with NOLFserv.  The first and
easiest way is to use the bandwith option in the setup wizard.  Here, you can use
one of 5 preset values, or enter a custom value.

The list of available connection types and the values used for each are as follows:

56k modem: 4,000 bytes per second
Cable:     16,000 bytes per second	
DSL:       32,000 bytes per second
T1:        1,000,000 bytes per second
T3:        10,000,000 bytes per second

Since the actual upload bandwidth of your connection may vary greatly from these,
you can also enter a custom value.  To determine this value, just follow these steps:

Determine your maximum upload bandwidth.  This information can be obtained from your ISP.
Multiplay this value by 1024.
Divide the result by 8.

For example, if your upstream bandwidth is 128k:

128 x 1024 = 131072
131072 / 8 = 16384

So, to avoid send overflow on a 128kbps upload bandwidth connection, you would set your
custom value to 16384.  

To fine tune this setting while the server is actually running, just type "SendBandwidth"
and the value you wish to use in the console, and then press <Enter>.
(i.e. SendBandwidth 16384)

NOTE:  It is VERY imporant that you set this value correctly.  Setting the limit too high 
       may result in very poor performance for players with a high ping.  Similarly, setting
       it too low may result in choppiness for low ping players.  You should experiment with
       different values to find the best setting for your particular situation!
