Microsoft MechWarrior 4: Mercenaries System Operators Readme File
September 2002
© 1998-2002 Microsoft Corporation. All rights reserved.
This file contains information to help you set up and run a multiplayer server for use with MechWarrior 4: Mercenaries. For information about installing, playing, and troubleshooting MechWarrior 4: Mercenaries, see the Readme.rtf file.

Warning: This Readme is for advanced users only. The information contained here is not supported by Microsoft Product Support Services and is intended only for system operators.

Contents
A.Setting Up a Multiplayer Server
Editing the ServerCycle.txt File
Editing Map .nfm Files
Working with Map File Variables
B.Local Game-Logging Options  
Additional Command-Line Options
C.ZoneMatch Issues
Internet Play
Internet Network Connectivity
Dynamic Range Port Reference Chart
ICS Configuration

A.Setting Up a Multiplayer Server
The following guidelines show the number of players recommended at different bandwidths for MechWarrior 4: Mercenaries dedicated servers. Exceeding the recommended number of players for a particular bandwidth results in the degradation of game play and a greater number of checks against the host server (pings).
Server bandwidth (upload minimum)Number of players
Modem6
128 to 256 KB 12
256 KB or greater16
Take uploading and downloading speeds for your network into account when hosting a game. Poor uploading speeds degrade performance on multiplayer games. Note also that if you are running a nondedicated server, the server counts as a player.  
You can set up either dedicated or nondedicated servers to cycle maps. In addition, you can customize the maps in the rotation to offer whatever type of gameplay you want. To turn on basic map cycling, click Use Map Cycle List in the Host Setup screen. This option allows the file ServerCycle.txt (located in the MechWarrior Mercenaries root folder) to determine what section of the map .nfm files to use. Both ServerCycle.txt and the individual map .nfm files can be edited for more control over the map and gameplay. If you do not want to edit the ServerCycle.txt and individual map .nfm files by hand, you can use the NFM File Editor (double-click NFMEditor.exe, located in the MechWarrior Mercenaries root folder).

Note: If you set up your multiplayer server with a minimum installation of MechWarrior 4: Mercenaries and your games have problems loading missions or maps at startup, try using a full game installation instead.

Editing the ServerCycle.txt File
The Missions folder (located in the Resource folder in the MechWarrior Mercenaries root folder) holds a set of files with the extension .nfm. Each .nfm file corresponds to one map. In each .nfm file, there are a number of different game configurations, each contained within braces (that is, curly brackets). All of the contents within one set of braces correspond to one game/map configuration.
To add a map to the map cycle, in the ServerCycle.txt file under the line [cycle] add a line or point one of the existing lines to a configuration name in the .nfm file. For example, to add the map Alpine1 you add the following line:

[cycle]
map=Alpine.nfm::Alpine1
This line instructs MechWarrior 4: Mercenaries to look in the Alpine.nfm map file and load the game according to the variables set in Alpine1.
If a line adding a map to the map cycle is entered incorrectly, instabilities can occur, although the more likely situation is that the game will simply ignore the line. No limit exists to the number of entries you can add or remove. Be sure to place each entry on its own line.

Note: A predetermined set of map cycles exists by default. The user may leave these as is for a variety of different games or edit this set of maps to point to other game types listed in the .nfm files. For information on advanced map file editing, see the next section.

Editing Map .nfm Files
In Alpine.nfm, the parameters for the game Alpine1 might be as follows:

Alpine1={
[server]
RuleSet=$(StockDestruction)
TeamAllowed=0
TeamCount=0
ScenarioText=resource\missions\des.txt
RadarMode=1
IsNight=1
MaximumTonnage=90
}
The parameters used in this example have the following meanings.

[server]    Do not edit or remove this line.

RuleSet    Do not edit or remove this line. If you want to change the game type, use one of the other game definers in the file or create a new game type, such as Alpine2. Some maps do not work correctly with some game types. If you combine a game type with a map that doesn’t support it, your game may be unstable or not run at all.

TeamAllowed    0 means that teams are not allowed, and 1 means that teams are allowed. Only add or change this line when you are sure that the corresponding map supports team games. Otherwise, your game may be unstable or not run at all.

TeamCount    1 means that one team is allowed, 2 means that two teams are allowed, and so on. The maximum number of teams allowed is eight. However, not all maps support eight teams, because many maps have a limited number of team drop points. If TeamAllowed is 0, then this parameter has no effect.

ScenarioText    Do not edit or delete this line.

RadarMode    0 means the default radar can be used, 1 means team radar can be used, and 2 means no radar can be used.

IsNight    0 means always day, and 1 means always night.

MaximumTonnage    Number indicates the maximum drop weight (in tons) allowed.
Additional possible game parameters are as follows.

Visibility    0 is default visibility, 1 means light fog, 2 means heavy fog, and 3 means heaviest fog.

KillLimit    0 means there is no kill limit, and 1 means there is a kill limit.

KillLimitNumber    1 means the kill limit is one, 2 means the kill limit is two, and so on. If the value of KillLimit is 0, then the value for this parameter has no effect.

NoRespawn    0 means players can respawn, and 1 means players cannot respawn.

Weather    0 means there are no weather effects, and 1 means there are weather effects.

OnlyStockMech    0 means variant ’Mechs are allowed, and 1 means only stock ’Mechs are allowed.

MaximumCBills    Number indicates the maximum amount, in C-Bills, that any individual ‘Mech owned by a player can cost. Possible values range from 10,000,000 through 25,000,000. Note that commas cannot be used in entering MaximumCBills values.

GameLength    Number indicates the maximum time, in minutes, allowed for the game. The largest value possible is 60 minutes.

Working with Map File Variables
Each variable in the map .nfm files that corresponds to a drop-down menu item in the user interface works in one of two ways:
·If an item in the menu corresponds to a flag such as RadarMode, Visibility, or Weather, then the possible values of the variable correspond to the order of the items in the menu, with the first instance being 0. For example, if RadarMode is a drop-down menu item and its value is 0, then RadarMode is the first item on the drop-down menu.
-or-
·If the values in the drop-down menu are numbers, then the possible variable values are those numbers. Using values that are invalid can have inconsistent and possibly unstable results.
Parameter variables may differ in the different places they can be set. The game looks for variable settings in the following order:
1.Options.ini
2.The .nfm file
3.User interface
In other words, the first place the game looks for variable settings is Options.ini. It then looks for variable settings in the .nfm files, and those settings override any values set in Options.ini. The game then looks for variables set in the game user interface on the host server, and these settings override both those in the Options.ini file and the .nfm files.

B.Local Game-Logging Options
In addition to using the ZoneStats service of Zone.com to collect worldwide statistics for online play, server operators have the option to generate local logging information for later processing. When using local logs, server operators can create parsing utilities that generate Web pages to show gameplay statistics for games played on their local server. The following parameters describe the local MechWarrior 4: Mercenaries logging and other command-line options. By default, local logging is disabled.
To use these options, type the parameters either in the Properties box for the game’s shortcut icon or in the Run command line reached from the Windows Start menu.
For example, the following command line starts the game in a window, creates and logs game events, serves the game from the command line, and sets the player name as azero and the game name as azeroserver:

C:\Program Files\Microsoft Games\MechWarrior Mercenaries\mw4mercs.exe -window -zlogstyle 1 -serve -gamename azeroserver -playername azero
Note:
To have stats posted to stats.Zone.com from behind a firewall, you must have Transmission Control Protocol (TCP) port 9999 open for outgoing connections.
The following are the MechWarrior 4: Mercenaries local game-logging parameters.

-zlogname logname    Provides the name of the local game-event log to generate, where logname is that name.

-zlogstyle style_value    Specifies the type of local logging to perform for in-game events, where style_value is one of the following options:

0    Disables local logging (default).

1    Creates or appends to the specified log file if the -zlogname option is used.

2    Overwrites any existing log file, or creates a new one if none exists.

3    Rotates game names. If the -zlogname named file exists, using this option creates a new log file with a unique identifier based on the name specified with -zlogname.

4    Uses a unique name and individual log for each game played. Note: Using this option creates a lot of logs, which require management.

Note: The -zlogstyle option has nothing to do with world statistics logging, which is specified in the MechWarrior 4: Mercenaries user interface or Options.ini file.

-zlogflush flush_format_value    Specifies how file flushing is performed for local logging, where flush_format_value is one of the following options:

0    Flushes on every write (default).

1    Flushes after the number of lines specified with the -zlogbuffer option (described following).

2    Waits for the system to write out the buffer.

-zlogbuffer buff_lines    Specifies the number of lines to buffer before flushing the log file, where buff_lines is that number of lines. The default is 10 lines. Specify fewer lines for the most timely log file updates and more lines for fast performance.

Additional Command-Line Options
The following are other command-line options.

/gosNoDialogs    Suppresses error dialog boxes. This option is useful when administering a dedicated server from another location. In this situation, you can write an application that checks whether a remote server process is running and that restarts the remote server if it is not. With /gosNoDialogs set, any critical error causes the remote server to quit (instead of presenting a dialog box) and allows your application to start the next remote server copy.

-advertiseport    Allows the user to specify which port ZoneMatch advertising should use. This is the port that ZoneMatch uses to advertise games and that client computers use to connect to the ZoneMatch server. The default value for this port is 27999.

-directplayprotocol    Adds the DPSESSION_DIRECTPLAYPROTOCOL flag to any DirectPlay session created (if your server is running that session). This option does not use TCP; it uses User Datagram Protocol (UDP) and implements its own guaranteed packet delivery algorithm as well as some other features.

-gamename    Sets the game name of the served game.

-ipx    Hosts a game on Internetwork Packet Exchange (IPX) instead of the default Transmission Control Protocol/Internet Protocol (TCP/IP), as long as you have both IPX and TCP/IP installed on your computer.

-lobby    Not supported as a direct command in the command line; only works in conjunction with the lobby launching out of the Zone.com Web pages.

-noautoconfig    Suppresses the autoconfiguration tool, Autoconfig_Mercs.exe.

-nosound    Disables sound.

-playername    Sets the player name of the served game.

-serve    Serves a game from the command line.

-window    Runs the game in a window.

C.ZoneMatch Issues
ZoneMatch is the Zone.com gaming matchmaker service. Using ZoneMatch, players search for, find, and play games over the Internet from within MechWarrior 4: Mercenaries. The following information helps you configure your server in order to use the ZoneMatch feature that MechWarrior 4: Mercenaries provides.

Internet Play
·The TCP/IP protocol for LAN and Dialup Networking must be installed in order for players to browse for games.
·To successfully participate in games, firewall users must open ports to use ZoneMatch and the DirectPlay port ranges for DirectX application programming interface version 8.1 or later. Matchmaking needs the following TCP ports opened: 27999, 28805, 28806, 28807, and 28808. For pings to work properly, UDP port 28800 must be opened. For information on ports needed for playing DirectX-based games, see http://support.microsoft.com/support/kb/articles/Q240/4/29.asp.

Internet Network Connectivity
This section describes the network configuration required to play MechWarrior 4: Mercenaries games with other players through a firewall, proxy server, Network Address Translation (NAT), or Internet Connection Sharing (ICS). This section does not apply if you are playing standalone or on a LAN.
If you are unable to find or advertise a MechWarrior 4: Mercenaries game on the Internet, then check with your network administrator, who must configure the firewall or proxy server to allow the games to pass information through the proxy server or firewall.
To verify that the appropriate ports are open, contact your network administrator or Internet service provider (ISP). If you are the administrator of the network, consult the documentation for your network software for information about how to open these ports.
For additional information about how to configure a network firewall or proxy server to play a DirectX-based game on the Internet, see the Microsoft Knowledge Base article “Q240429 DirectX: Ports Required to Play on a Network” at http://support.microsoft.com/support/kb/articles/Q240/4/29.asp.

Dynamic Range Port Reference Chart
The following chart shows which ports an administrator needs to open for a given style of play for applications using the dynamic range of DirectPlay.
ConnectionClient configurationHost configuration
Initial TCP connection47624 outbound47624 inbound
Subsequent inbound TCP connections2300-24002300-2400
Subsequent outbound TCP connections2300-24002300-2400
Subsequent inbound UDP connections2300-24002300-2400
Subsequent outbound UDP connections2300-24002300-2400
Unfortunately, some firewall solutions (including Microsoft Proxy Server 2.0) do not recognize additional inbound connections as subsequent connections. The workaround for this is to provide each port in the range 2300, 2301, 2302 (and so on as needed) its own protocol definition, as with an application-specified fixed port. Practically, only as many ports as active DirectPlay applications require need to be opened. In other words, to run both the applications SuperDuperGame and WackyFunGame at the same time, only ports 2300 and 2301 are used.

ICS Configuration
The following describes Internet Connection Sharing (ICS) and other Network Address Translation (NAT) support for MechWarrior 4: Mercenaries with different operating systems. The operating system in question must be running on your router computer (the one actually connected to the Internet) for the following to apply.

Windows 98 Second Edition    A single client running behind an ICS host running Windows 98 Second Edition (Windows 98 SE) can join a client-server session hosted outside of the ICS host. However, multiple clients behind a Windows 98 SE ICS host cannot join the same client-server session hosted outside of the ICS computer, although they can join different external client-server sessions. In other words, multiple clients behind a Windows 98 SE ICS host can all play MechWarrior 4: Mercenaries multiplayer games hosted on the Internet, but they must play games hosted on different servers.
Clients may encounter problems connecting to a multiplayer game hosted on a Windows 98 SE computer. To avoid these problems, disconnect the ICS hosts locally. External clients cannot connect to a game hosted behind a Windows 98 SE ICS computer.

Windows 2000    Clients behind an ICS host running Windows 2000 cannot join multiplayer games hosted on the Internet. However, the Windows 2000 ICS computer itself can join multiplayer games hosted on the Internet.
Clients may have problems connecting to a multiplayer game hosted on a Windows 2000 ICS computer. To avoid these problems, disconnect the ICS hosts locally. External clients cannot connect to a game hosted behind a Windows 2000 ICS computer.

Windows Millennium    Internal clients behind a Windows Millennium ICS host cannot connect to a game hosted behind another ICS host. Otherwise, no issues should arise with Windows Millennium ICS and multiplayer games. External clients that are not behind another ICS host can connect to a multiplayer game hosted behind a Windows Millennium ICS computer. A Windows Millennium ICS host itself can join client-server sessions on the Internet, whether or not they are hosted from behind another ICS computer. Multiple clients behind a Windows Millennium ICS host can join the same or different games on the Internet.

Windows XP Professional and Windows XP Home    Internal clients behind a Windows XP ICS host cannot connect to a game hosted behind another ICS host. Otherwise, no issues should arise with Windows XP ICS and multiplayer games. External clients that are not behind another ICS host can connect to a multiplayer game hosted behind a Windows XP ICS computer. A Windows XP ICS host itself can join client-server sessions on the Internet, whether or not they are hosted from behind another ICS computer. A Windows XP ICS host can also join client-server sessions on the local LAN. Multiple clients behind a Windows XP ICS host can join the same or different games on the Internet.