Tips for Battlezone 2 Multiplayer
This document was written by Nathan Mates, email nathan.j.mates@gmail.com . As this document may be updated over time, please do not copy out its contents to other websites. A link to http://www.matesfamily.org/bz2/nettips.html is acceptable. Note: this information is NOT provided as an official source; please refer to the game manual for that. Please do not call or email Tech Support for help with anything contained below. 
Last updated April 14, 2009

Table of contents
Important links for patches, discussion boards, etc. 
Ports required to be open to play games 
The role of Gamespy, and pings 
Chat, pregame and ingame 
Pregame options 
Ingame multiplay-specific items 
Commandline options 
Miscellaneous 

1. Important links for patches, discussion boards, etc.
Battlezone II first shipped in December, 1999 in North America. The European versions released some months later used the 1.1 patch. A 1.2 patch was completed by Pandemic Studios, and was translated by Activision into French and German, but was not given the title of being 'official' by them. You may download that patch (English, French or German) from http://www.pandemicstudios.com/games/bz2/ or http://www.planetbattlezone.com , as well as other sites. This is the most commonly used patch online, and is has necessary support for Windows 2000/XP. 

A newer patch, 1.3, has been in development since 2001 in the spare time of some of the original programmers, Nathan Mates & Ken Miller. You can check out http://www.matesfamily.org/bz2/ for the latest release of the 1.3 public beta patches. It is hoped that most of the BZ2 community will move to this patch when it is declared 'done'.
2. Ports you must forward to play games
Here's the skinny – you shouldn't need to forward ports to be a client. To host/create a game, have your router forward port 17770, UDP to your computer, and ensure there's no firewall blocking packets. If you need more handholding, read on...
2a) Joining other networked games of Battlezone II
If you want to join another game, then most of the time, you don't have to make any changes. Virtually all routers should allow BZ2 to be a client w/o any changes. The only possible problems usually come when you have a firewall that's too-suspicious and doesn't allow Battlezone II to communicate over the network. The 1.3 patch installer has an option to train the Windows firewall (part of XP Service pack 2 or later Microsoft OSs) to allow Battlezone II (bzone.exe) to send and receive packets. If you're using that Windows firewall, and told it to allow bzone.exe, you're set. 
If you're using another firewall, e.g. something like ZoneAlarm, Norton, Kaspersky, or something else, you'll need to tell it to allow BZ2 packets. The best way to do that is to run BZ2 windowed. At the login screen, hit Alt-Enter (i.e. hold down the 'alt' key, press and release the 'enter' key, then finally release the 'alt' key). Then, if you go into the Multiplayer area, your software firewall will usually pop up a dialog asking you if you want to bzone.exe to have permission to talk to the network. You'll want to do allow bzone.exe. Once you do that, you should be good.

2b) Creating/hosting networked games of Battlezone II
It is first recommended that you successfully join a game before you try to host a game. This is so that you can ensure that you have no firewall(s) blocking sending and receiving packets.
If you have some form of broadband internet (e.g. Cable Modem, DSL, satellite, wireless, or the like), you usually (over 98% of the time) have a router that can mess with packets sent thru it. This router usually sits between your computer(s) and where your broadband internet arrives -- sometimes, it's part of where your broadband internet arrives. By default, routers, firewalls, and the like take a maximally secure policy, and drop unsolicited packets sent to your computer. This is great for security, but will prevent hosting a game until you train them to allow packets through to Battlezone II. 
There are thousands of routers available, and they all have different instructions on how to train them to allow packets through. Fortunately, there's a website dedicated to collecting instructions. Please visit http://www.portforward.com/ for a fairly comprehensive list of them, and how to change things. [Note: that is a 3rd party site; no guarantees if it'll still be functional or useful when you read this.] On that website, (1) follow their instructions for setting up a static IP for your computer (i.e. not a static IP for your broadband connection, just one on the computer you're running BZ2 on), and (2) follow their instructions for your particular router for how to forward ports. If their database of programs does not list Battlezone 2, then follow their generic instructions for forwarding port 17770 UDP, to be forwarded to the machine you are playing BZ2 on. You don't need to forward the ports for Gamespy online. Just the port mentioned above-- 17770 UDP.

2c) For more info 
http://docs.google.com/View?id=dxfchh5_7g5nh5qdp is a lot of reading, but good info.

3. The role of Gamespy, and pings
Gamespy is used by Battlezone 2 as a matchmaking service-- in short, it is used to give prospective clients a list of servers, and then Gamespy gets out of the way. Contrary to some misconceptions I've seen floating around, BZ2 game packets do NOT get sent to/from Gamespy servers. 
A BZ2 server will keep an open connection to Gamespy matchmaking servers so that it lets those servers know that the game is still running. When a BZ2 client wants to play a game, it asks the Gamespy matchmaking servers for a list of BZ2 servers, then disconnects from Gamespy. The BZ2 client then pings each of the BZ2 servers in turn, and retrieves the game info from each BZ2 server. Thus, the pings shown in the list of sessions are from that machine directly to each individual server. 
This means that a machine's ping to the Gamespy matchmaking servers will have little to no effect on the actual gameplay-- the session list may show up a little later, but that's no huge loss. If two machines in say Outer Mongolia want to play, each with a ping of say 1200 to the Gamespy matchmaking server, but only a ping of 50 to each other directly, then the pregame and ingame ping should be close to 50, as that is the way packets are sent. 
3.1 What is the difference between LAN Only and Gamespy?
Those are two ways of registering/searching for sessions. When LAN Only is set for a server, it does not register that session with the Gamespy matchmaking servers. Clients wishing to join a LAN Only server must be on the same LAN (i.e. where a broadcast packet can reach), and the prospective clients must also have LAN Only set. 
A server set to Gamespy will register itself with the Gamespy master servers, as long as it can get reliable 2-way traffic to those servers. [See the section above about opening ports.] Prospective clients for such a server must use Gamespy if they are not on the same LAN as that server. If they are on the same LAN, then either setting should allow them to find the server. 

4. Chat, pregame and ingame
4.1 Pregame Chat
1.3 adds in an extra option from the session list screen to chat before joining a session. This will replace the top half of the screen (where server info would normally go) with a connection to an irc channel. BZ2 will automatically try to connect to an irc server and channel when you click this. To change the server and/or channel, then you can edit the file addon/config/GamePrefs.ini located under the folder BZ2 was installed to. It is possible to join this channel with other programs that provide irc services, like ircII, mIRC, etc. Please consult http://www.google.com for more information about irc in general or for help in finding an irc client that fits you if you don't want to use BZ2's irc. 
If the login name you used in BZ2 is already in use on the irc server, then BZ2 will automatically rename you with some numbers at the end of your name to ensure uniqueness. You may want to pick a more unique name if you run into this often. 
Within BZ2 irc, text can be entered, which is sent to everyone in the current channel by default. Entered text starting with a '/' (forward slash, no quotes) is treated as a command. Valid commands are: 
•	/join #Channel
•	Attempts to join the channel named, which must start with #. If the channel is not accepting new people or is passworded, the join will fail. If you try and join a channel which doesn't exist, it will be created and you'll be on it. BZ2 irc supports being in at most one channel at once. 
•	/leave
•	Leaves the current channel, if on one. 
•	/msg Nickname Some comment
•	Sends the comment to the specified nickname as a private message. Note that '@' is not part of a person's nickname, that's a flag that they're a channel operator with channel management abilities. 
•	/me Some comment
•	Sends a comment with the first word as your nickname. Most irc programs will display this differently, as an action. 
•	/whoami
•	Prints out your current irc nickname 
•	/nick NewNick
•	Attempts to change your nickname to the new one specified. If it is not unique, it will add digits to the end of it, as above. 
•	/names
•	Displays the names of people in the current channel. 
•	/clear
•	Clears the displayed box of irc text. 
•	
•	4.2 Ingame chat
•	Before the game launches, there is a chat window in the bottom left that allows you to communicate with other players in the game. There is no way to access the irc once a session has been joined. 
•	Once the game launches, there are two options to chat. First is to hit escape, and use the large chat window there. However, it's faster and easier to simply hit the Enter key, type what you want to say, and hit Enter again. 
•	While there's a lot of commands that you can execute with the GUI, at any of the 3 chatlines (shell, in-game Escape screen, in-game activated by 'Enter') have a number of commands that can be executed. Type "/help" (no "s) on a line by itself to see the mini-help, or use this list of commands. 
•	For commands that have a required parameter, it is marked below in []s; an optional parameter is in {}s. 
•	/help
•	Shows mini-help for most chat commands 
•	/list
•	>Shows a list of players. It will look something like this:
•	Players in game:
•	C: (0) GSH [Local] [Server]
•	The 'C:' up front identifies them as a team commander (if applicable). Next is a number in parentheses before the playername; it can be used as a shortcut to that player's name if you'd rather not type it out, e.g. "/info 0" or "/info GSH" will do the same thing. Finally, the local player (you) is identified, as well as the server by optional tags. 
•	/info [Name/ID#]
•	Shows info on a particular player. You must follow this command with either the player name, or the player number identifier. This command will have output like this:
•	Info on (0) Name: GSH [Local] [Server]
•	  Ping: 0 Deaths: 0 Kills: 0
•	  Commander of TeamGroup 1
•	The info presented above should be self-explanatory. 
•	/pinglist
•	Shows ping times to all players. The pingtime is the average round-trip time in milliseconds for packets to get to the server and back. Thus, a ping of 500 is 1/2 of a second. 
•	/leave {Explanation}
•	Leaves the game. If an explanation message is also on that command line, it will be sent to all first. 
•	/msg [Name/ID#] [Text]
•	Sends a private message to the specified player. This is always sent to just that player, no matter what the Chat with All|Team|One is set to. Private messages appear on the sender's chat window as follows:
•	-> GSH: This is a private message sent to GSH
•	
and on the receiving end as: 
•	GSH ->: This is a private message sent from GSH
•	/kick [Name/ID#] {Explanation}
•	A server-only command; it removes that player from the game immediately. An explanation may be given on the line, but it's not required. 
•	/ban [Name/ID#] {Explanation}
•	A server-only command; it removes that player from the game immediately, and prevents them from rejoining the session. An explanation may be given on the line, but it's not required. This command requires 1.3 
•	/nick [NewName]
•	Changes your in-game name to the new name specified. Spaces are not allowed in names, and the server may correct your name for legality and/or uniqueness. 
•	/lockdown
•	A server-only command; it prevents anyone from joining. Same functionality as the 'Joins: Deny' button in the shell and escape screen. 
•	/openjoin
•	A server-only command; it reverses the /lockdown and allows anyone to join. [Subject to passwords, player limits, etc]. Same functionality as the 'Joins: Deny' button in the shell and escape screen. 
•	/chatall
•	Sets further chat messages to be sent to all players in the game. Same functionality as the 'Chat with All' interface buttons. 
•	/chatteam
•	Sets further chat messages to be sent to all teammates. If teamplay is off, this setting acts like 'Chat with All'. Same functionality as the 'Chat with Team' interface buttons. 
•	/chatone [Name/ID#]
•	Sets further chat messages to be sent to the specified player, without having to use the /msg command above. Same functionality as the 'Chat with One' interface buttons. 
•	/chattype
•	Reports what the current chat type is-- chat with All, Team, or a single player. 
•	/commandlist
•	Shows all commands recognized by the chat system. 
•	/vehiclelist
•	Shows what each player has chosen for a vehicle. If DM vehicle randomizing is on (see below), this option will not show the current vehicle, but only what they chose in the shell. 
•	/ip [Name/ID#]
•	Shows the IP address for a given player other than the local player. Note: clients can only see the IP address of the server; they have no ability to see any other clients' info. Servers can see the IP address of anyone. 
•	/iplist
•	Shows the IP addresses of all players in game; once again clients can only see the IP address of the server; they have no ability to see any other clients' info. Servers can see the IP address of anyone. 
•	/gsoff
•	Server-only option; stops responding to all Gamespy queries received. This will effectively prevent anyone from seeing (and therefore joining) the game. This option may be most useful for modem-servers who don't want the possibility of extra bandwidth being used by mid-game Gamespy queries. 
•	/gson
•	Server-only option, and the default. Allows BZ2 to respond to all Gamespy queries received. If /gsoff had previously been done, this'll allow the game to be visible once again. 
•	/version
•	Shows the game version and gamespy version being used. This command requires 1.2 patch or higher 
•	/newserver [Name/ID#]
•	Switches the hosting of the current session to the specified player, under the following conditions: (1) You must be the existing server to change the server, (2) You can not switch server to self (duh), and (3) All players must be playing the game (i.e. not in shell). This command requires 1.2 patch or higher 
•	/takecmd
•	Attempts to become commander when teamplay is on. Does nothing if teamplay is not on, or there is already a commander. 
•	/givecmd
•	Gives up the commander role when teamplay is on. Does nothing if teamplay is not on, or you're not currently the commander. 
•	
•	5. Pregame options
•	Before a game, the options vary depending on whether you're a host or a client-- hosts have access to almost all options, while clients typically can only pick their team and vehicle. The host may restrict those choices so that there's not much to pick from, but as a client you can view all the choices to see if you wish to play under the host's setup. 
•	As a host, the first thing to do is to pick a map. Those are listed in the top-left of the screen, and the first part of the map's name should identify what type of map it is: 
•	CTF
•	Capture the flag (Deathmatch variant). Two teams (no more, no less) compete to pick up the flag from the enemy's spawn area, and return it to their flag. Points are awarded for capturing the enemy's flag and returning it to your base with your flag uncaptured. 
•	DM
•	Deathmatch. Combat without any basebuilding, etc. This may be a free-for-all, or two teams may be set up. In 1.3, it is possible to add in up to 32 AI 'bots' (computer-controlled players), see below for the 'Extra Options' items. Points are awarded for killing enemy craft; points are deducted for killing allied craft. In 1.3, it is also possible (via Extra Options) to turn on 'rabbit' mode where one player is 'it', and everyone is after that player. Whomever kills the rabbit gets points, and then becomes the new rabbit. 
•	KOTH
•	King-of-the-Hill, a Deathmatch variant. Like Deathmatch, but extra points are awarded for staying in the bonus region (usually the highest point on the map). To rack up points, get into that region, and keep everyone else away. 
•	Loot
•	Loot, a Deathmatch variant. Like Deathmatch, but extra points are awarded for picking up the moneybags scattered throughout the level-- a more dangerous position to be in. 
•	MPI
•	Multiplayer Instant Action -- one team of human players in a strategy game against a computer-controlled team. Both sides will be acquiring resources, building bases, and fighting it out. 1.3's Extra Options pages (see below) allow a large number of customizations to how the game is played, from additional starting vehicles on the human side to make it easier, to different starting recyclers which determine what can be built, to other difficulty tuning settings. MPI games are won when both the recycler and factory of a given side are destroyed. 
•	Race
•	Racing, a deathmatch variant. Go through a set of checkpoints to progress; if you die, you are respawned back at the most recent checkpoint you got through. First player to complete the specified number of laps wins. 
•	ST
•	Strategy -- human vs human games with acquiring resources, building bases, and fighting it out. Strategy games are won when both the recycler and factory of all sides but 1 are destroyed. Most Strategy maps require a team of 1-4 players versus another team, but 1.3 allows 'Free For All' maps with up to 6 commanders to play on a map, with optional alliances between some of the teams (see Extra Options below). 
•	
•	
•	After picking a map, the usual next choice is to pick a vehicle to play in. The server has a checklist where they can pick which vehicles are allowed on that map if they do not like the defaults. Clients and servers can then pick their vehicles out of the allowed list, with some caveats. In Free For All (non-team) games, everyone can pick what they want. In Team games, the commander, who has a '(C)' next to their name in the playerlist, can pick whatever they want, but all other players on that team must pick something of the same 'race' (first character of the ship ODF). If the commander switches races, then all teammates will be forced to switch races also. 
•	In teamplay games, players can also join either of the two teams by using the 'Join Team 1' and 'Join Team 2' buttons above the playerlist in the bottom right. Teams should have at most 4 players on them, but a 5th is allowed to give people space to switch around. If there are 5 players on a team, then it is not possible to also trade commanding/thug roles. 
•	5.1 Server options for all maps
•	Player Limit: Sets how many players can join a session. This should be from 1 (nobody else can join) to 8. In MPI/Strategy games, the number of possible players restricts the number of available F# keys for unit groups. Setting the number of players higher requires more space to be reserved for potential allies, even if they're not currently playing. 
•	Teamplay: On|Off. This setting is visible only when the map notes that it supports this, otherwise it is fixed. If teamplay is off, Free-For-All is on. 
•	Joins: On|Off, default 'on'. When this is on, then people are allowed to join the current session. If off, people cannot join. 
•	Change Team Names button, which is only visible in teamplay games. Allows you to enter team names for the sides if you don't like the defaults. 
•	Sync Join: On|Off. When on, then when the game launches for the first time, it will wait for all clients to load the map, and everyone starts playing at the same time. If it is off, or the initial join has been passed, then when a client joins, the game will allow them to join when they've loaded the map. For Strategy, sync join is on by default as it is the fairest setting-- everyone starts playing at the same time. If a client (taking a nap or something) doesn't hit the 'Enter Game' button within 120 seconds, they'll be kicked out. After the Sync Join is completed, by default, other players may join, as if Sync Join was off. Use the 'Joins: On|Off' option to prevent further joins after a sync join. 
•	Max Ping. This allows the server to set the max ping (response time) for clients. Clients exceeding this value will be automatically kicked from the session. 
•	Pause Joins: On|Off. When on, this makes BZ2 wait even longer when a client joins, in the hopes that this wait will allow them more time to resynchronize with the server. It defaults to off, however. 
•	Multiworld Frequency. This is a tuning value to adjust how fast BZ2 resynchronizes the visual appearance of units onscreen to the most accurate predicted positions. Smaller values tend to increase accuracy (reducing "popping"), but also increase the computational load on your CPU, which can cause lag if your computer is slow. Deathmatch and deathmatch variants default this value to 4, MPI/Strategy default to 10, as there are usually far more items in MPI/Strat maps. In 1.2, this setting was on a per-machine basis, but in 1.3, everyone must use the same value. 
•	5.2 Pregame Extra Options
•	With 1.3, there is another button, 'Extra Options' (located in the center-right of the screen) for all of the stock maps. Not all MODs may support this, so this may not be accessible for some fan-made maps. It is possible for each map to have its own Extra Options pages, but 1.3 breaks things down to the various map types, as above. Clients should be able to look at the Extra Options settings, but not change items. 
•	Hopefully, most of the options should be self-explanatory. Some deathmatch (and variants) settings include a kill/time limit; use 0 for unlimited. There is also the option of randomizing vehicles. The shell option looks like this: 'Vehicle respawn: [Fixed|Race|Random]'. If the selection is 'Fixed', a new craft for a player will always be identical to their vehicle selection within the shell.If the selection is set to 'Race', then a random allowed vehicle of the same race as that player's shell selection is chosen. If the selection is set to 'Random', a random vehicle of any race allowed by the server is chosen. 
•	Deathmatch Extra Options also allow setting the number of computer-controlled bots in multiplayer, and their skill level. It also allows you to turn on 1-shot-1-kill mode (if anyone gets shot by anything, they explode), or to tune all weapons up or down in damage. Rabbit mode is where one player is 'it', and everyone is after that player. Whomever kills the rabbit gets points, and then becomes the new rabbit. 
•	Strategy/MPI Extra Options allow you to pick a starting recycler, which is a mini-MOD that determines what vehicles/weapons/etc are available and how they behave. A number of starting recyclers are provided by default; see Extras\Help\Manual\Recycler_Descriptions.htm installed to your 1.3 BZ2 directory for info as to what the variants do. 
•	Strategy Extra Options vary depending on the teamplay setting. Free For All maps allow alliances between various teams to be set up-- the first 4 players can have any pair of teams allied. There is a 'crunch teams' button to ensure there are no gaps between players; this is useful if teamplay was on, which tends to introduce gaps. MPI has the highest set of extra options out of the box-- in addition to all of the above, it allows the human player to start with up to nearly two dozen free vehicles at the start of the game, should the game be too difficult. It also allows you to tweak the AI skill levels of human and computer units, change scrap cheats, etc. There is also the ability to change between AIP sets-- scheduling of what the computer team builds, in what order, how it attacks, etc. Several AIP sets are built in to 1.3. Experiment.
•	
•	6. Ingame multiplay-specific items
•	In-game score info
•	Control+Enter while playing BZ2 Multiplayer (though not with the Escape screen up) toggles the in-game score info on/off. 
•	Changing groups, sending units
•	In strategy, you can combine like units into one group. If you have a tank on the F1 group, and another tank on F3, you can unify them into the F1 group by pressing F3, releasing that key, then Control-F1. To split a group, say the F1 group, hit Control-F1 to open it up and you can access the individual units within. 
•	What's this mean for networking? In team strategy, you can send units back and forth between the commander and the wingmen the same way. Notice how there's icons for your allies, such as F10..F8? Select a group of units, then Control-F10 will send it to that ally. Not all units may be transferred-- recycler (vehicles) and constructors can not. But, you can give scavs to the wingmen in the early game so they can be escorted out to the scrap pools. 
•	Where's my tank!
•	When you are ejected from a destroyed tank in BZ2 Deathmatch, you may be wondering where your next ride will be. As long as you're in the air, a new ship will not be created for you. This would be a good time to find a safe spot to land. After you land, or are killed as a pilot, a new craft will be spawned in somewhere near you. It may be behind you, so use your radar to find it. If it appears on top of water, and you feel you can't get to it, remember that you have a jetpack that can be set off underwater-- and once you enter the tank, it'll refill the jetpack. 
•	Objectives window obscures chat
•	If you hit 'o' during multiplayer, an empty transparent gray box will appear on the right side of the screen. [CTF may put an actual objective in it.] This objectives window will hide the chat window which appears in the same place. Hit 'o' again to turn it off. 1.3 adds in a message reminding you to that effect. 
•	Chat messages timeout
•	By default, the in-game chat/messages window (not the escape screen) erases messages after 5 seconds. However, this is settable from the game console. While playing, hit Control-` (that's 2-keys, control and the key with ` and ~ marked on it) to pull up the console. [Chat messages are printed there as well, so some may just want to see that for a few seconds.] At the console, type 'network.session.messagesappearforseconds 99' to set it to 99 seconds (what I prefer). The number can be anywhere from 1 to 9999 seconds; outside that range and it'll be reset to the default of 5 seconds. Hit Control-` to hide the console again. 
•	The console does have tab-completion (if you don't know what that is, you should use unix more) of commands. So, you can hit 'net'[tab]'.ses'[tab]'.mes'[tab] to type that line a little faster. 
•	6.1 Resyncs
•	If you get a 'Checking Gamestate' message (especially as the server), that means that someone (or multiple someones) are out of sync from the server. This can be caused by either a bug, or someone trying to use a cheat program (commonly called a 'trainer'). The cheat codes for BZ2 Singleplayer won't work in MP, and they'd only desynchronize the game for everyone. So, if you are thinking of cheating, go away. 
•	6.2 Lag vs connection speed
•	As measured in BZ2, lag is the difference between where your machine is, and what it has received from the slowest machine in the game. It is not necessarily related to network connection speed-- a slow computer playing on a LAN can lag even though the LAN is physically capable of moving the data quickly enough. Much data is computed locally on every machine, and things must be drawn as well to keep up; you may not be able to speed up the gamestate calculations, but by lowering the graphic options, you may reduce lag. If the AI is bogged down handling commands from players, that will introduce "Lag", even on a LAN, as your CPU struggles to update things to where they should be. 
•	Lag is also affected by packet loss. A fast (Cable, DSL, T1, etc) line that loses every other packet is a worse candidate for playing the game on than a slower connection that actually delivers data reliably. While playing the game, hit escape to view the no-pause screen, and look in the ping column. Version 1.2 shows what percentage of move packets have had to be retransmitted, as a percentage. Thus, if that box says "152 (-3.4%)", the ping is 152ms, and 3.4% of recent (over about 30-40 seconds) movepackets have had to be retransmitted. If that loss percentage goes over about 15%, the connection is lousy and you should consider joining something with a more reliable connection. 
•	[/pinglist (see above) at the chatline also shows packet loss percentages; that % is always 0 for players in the shell as there are no movepackets transmitted to/from them to lose.] 
•	
•	7. Commandline Options
•	BZ2 supports several commandline options that Gamespy uses. To enter them, you'll either have to create a shortcut to bzone.exe, and edit that shortcut's properties, or add in the options via Start -> Run under Windows pointed at bzone.exe. 
•	For more information on more commandline items, see the Patch13.rtf file installed with BZ2 1.3. 
•	-name "Player Name"
•	Sets the initial Multiplayer player name to the value specified. If there is a space or other character in the name, it must be enclosed in "s, as above. However, BZ2 will still ensure the name conforms to limits. 
•	-lanonly
•	Sets the initial setting of the Gamespy/LAN Only button to be LAN Only; omitting this option uses the default of Gamespy. You may still change this setting in-game, though. 
•	-host [PortNum]
•	Starts up BZ2 as a host (i.e. server) of a game, and places you in the Multiplayer Game Options shell screen. Valid port numbers to host on are 1024 through 65534; if the portnum specified is outside that range, the default of 17770 is used. BZ2 always uses 2 ports that are adjacently numbered; the number specified is the first. 
•	-connect [aaa.bbb.ccc.ddd:PortNum]
•	Starts up BZ2 as a client to the game specified by IP address and port number; the port number should be the second BZ2 port number, usually 17770. For example, "+connect 192.168.1.4:17770" tries to join the game at 192.168.1.4. 
•	-password "TopSecretPassword"
•	For either a client or a server (see above), this commandline parameter sets the password used when creating or joining that game. 
•	/poweruser commandline switch
•	This option (not tweakable in the game; it must be added to the shortcut) was in previous versions, but really is most useful in version 1.2. This was my commandline switch to make the game work the way I want it to-- especially the first two options which put more text onscreen. Most of the things it does are individually editable in 1.3 with the new file addon\config\Gameprefs.ini . GamePrefs is probably a bit better to use that instead. 
•	For a short list of what /poweruser does:
•	Chat messages timeout is 99 seconds, not 5. Still editable with console command as above, or in 1.3's GamePrefs.ini 
•	In-game score screen is on by default. Use Control-Enter to turn it on/off, as usual. 
•	Server list shows much more information, such as: 
•	All games reported back by Gamespy are shown; a "(V)" is in the password column if the Gamespy version differs from your local one. Also, the 'Game Stats' box up top shows the actual GS version for a session.
•	Player list shows name, and 4 numbers; they are (in order) Deaths, Kills, Team number, Ping (host always has ping of -1) 
•	Player disconnect/leave reasons are printed to the messages boxes, such as the Winsock reason, or movelag. (Movelag is when moves are not received 23-28 seconds after they're due). Note: this is most useful for a server to do; clients are not told disconnect/leave reasons unless it's their own. Note: messages like this are also sent to the console, so if you're at the game over screen, you can hit control-~ to turn on the console and see the reasons printed, then control-~ to turn it off again. 
•	With /poweruser on, you can host a game with 14 players, not 8. This is most useful for some sort of lobby-style game which isn't launched. 14 players in an actual game would probably flood out modem users, but you can try it over a LAN. 
•	No warnings printed on changing the playerlimit or unit limit above normal. 
•	Probably some other tweaks as well. 

8. Miscellaneous
Bandwidth considerations
Since BZ2 is a client-server networking model, this optimizes each client's bandwidth, while pushes it towards the server. For a 4-player game with server 'S' and clients 'A', 'B', and 'C', the server must receive A's moves, and send them out to B and C. The server must send moves SBC to client A, SAC to client B, and SAB to client C. Thus, the server must send out N-1 moves per frame, where N is the number of players in the game. On the other hand, the clients only need to send their own moves towards the server. 
If at all possible, host a BZ2 game on the fastest network connections possible. 
Version 1.3 multiplayer enhancements
1.3 adds in support for many more items over 1.2. Extra Options, alliances in Free-For-All strat maps, DM bots, even more tuning values for MPI, security, and race-independence in MPI/Strat DLLs. For the full list of what 1.3 supports, read the 'Changelog.txt' file installed with 1.3. 
For the full set of what the ivars/svars do in MP, please read the 'vars.txt' file included in the 1.2/1.3 DLL source code release. 
Version 1.2+ Deathmatch Updates
BZ2 1.2's Deathmatch01.dll supports a new game type, 'Race'. One map, racepluto.bzn is included as an example of this. There are 16 checkpoints on a map you must reach to complete a lap, and the number of laps needed to win can be set in the shell. Besides the normal death/kills points system, one point is awarded for the first person to reach a checkpoint on a lap, and another point for completing a lap first. If killed as a pilot, you respawn back at the last checkpoint you completed. 
Tip: not all craft have many rear-firing weapons, so being the leader may mean you're getting shot up a lot. Also, on racepluto, if you take the longer routes around the outside, there's health powerups... it's all tradeoffs. 
How to make a race map: you must place 16 spawnpoints (odf name 'pspwn_1' on the map, and give them team numbers from 0 thru 15. Everyone starts at the spawnpoint w/ team 0, proceeds to 1, and so on. For the .inf file for the map, you can either clone the racepluto.inf file (under addon); ivar7 is set to 5 for a normal race, and set to 6 for vehicle-respawn race (don't eject as a pilot, you simply respawn in a new vehicle when you die). 

Version 1.2+ Multiplayer Strategy Updates
No real gameplay enhancements were made, though some features have been added for thugs and mapmakers. 
If the config variable 'network.seesion.ivar14' is set to 1 (the default), human players will get +1 point for killing an enemy AI unit. [And -1 for killing a friendly AI unit] Also, the config variable 'network.seesion.ivar15', when 1, will give +1 kill for killing an enemy AI unit. These settings can be overridden by the map's .inf file. 
For mapmakers, in BZ2 1.2 strategy, you can force a team (by number) to start in a specified place (no randomizing) by placing a spawnpoint (odf 'pspwn_1') down on the map with the specified team #. In teamplay games, teamgroup 1 is on team #1, and teamgroup 2 is on on team #6. 
Also, mapmakers can place some (optional) lines in the .inf to lock races: 
LockTeam1Race = "i"
LockTeam2Race = "f" 
The first character of the lock is used to restrict their vehicle selection to vehicle odfs starting with that character. If there is no lock line specified, the commander of that team can pick any allowable vehicle. 
Also, for those making really big expansion packs, the strategy dll should allow about 26 possible races-- it uses the first character of the team commander's vehicle odf, and tacks on 'vrecy_m' for the recycler ODF. So, if the commander's odf is "kvscout", it'll spawn in a "kvrecy_m" for them to command. [This feature has been in BZ2 since 1.0, but not documented until now.] 
Version 1.2+ Multiplayer Instant Action (MPI) Mode
BZ2 1.2 adds in a new multiplayer mode, with 1-4 humans on one team versus a computer-controlled team. These maps have 'MPI' by their name in the maps list, by default. When playing these maps, the playerlimit should remain at 4 (maybe 5, if you never want to switch commanders). The AI does get slightly tougher (more free scrap) as more humans play. 
Like a normal strategy game, the commander of the human teamgroup (always #1, the left group) picks their side's race. The teamgroup 2 box is hidden (only CPU), but a button is in its place to select the CPU's race: ISDF or Scion. Thus, you can set up any the 4 combos of ISDF and Scion games. 
For mapmakers, it should be fairly easy to convert your Instant Action maps to MPI ones. First, place just one spawnpoint (odf 'pspwn_1') on the map, where you want the humans to start. Secondly, change the DLL referenced to 'mpinstant.dll'. Finally, set up the .inf file like any other MP map; copy an existing one for reference if you want. 
MPI mapmakers have some new things they can use to tweak things. Beyond the normal pathpoints used by an IA map, by using a naming convention, you can place down race-specific items based on the CPU or human race. These pathpoints are of the form 'mpic_fvscav_ivscav' (spawns a Scavenger on the CPU team, appropriate to the CPU race) and 'mpih_fvtank_ivtank' (spawns a tank on the human team, appropriate to human race). The 'mpic' and 'mpih' parts are case sensitive, and you can place a number after those to make them unique, such as 'mpic1_fvscav_ivscav' and 'mpic2_fvscav_ivscav'. 1.3 adds in some new syntax to the mpic/mpih commands. With mpic/mpih, it can take just one odf listed if desired. For the ODF(s) listed on that line, the first character is checked against the first character of the CPU/human's recycler odf, and builds it only if they agree. For example: 
mpic1_fvscav_ivscav   - builds a scav if the CPU is ISDF or human
mpic2_ivscav_fvscav   - builds a scav if the CPU is ISDF or human (order doesn't matter!)
mpic3_ivscav          - builds an ISDF scav only if the CPU team is ISDF
In the above items, the number means nothing; it was created to make the pathpoints unique (as they must be). 1.3 also adds in two new forms, 'mpiC' and 'mpiH' which allows a the built vehicle to be built in whatever race the CPU or human is. For example: 
mpiC1_Xvscav          - builds a '_vscav' in the CPU's race
mpiH2_Xvturr          - builds a '_vturr' in the human's race
In the above items, the 'X' is used as a filler character; it could be any alphabetical character. It'll be read in, then replaced by the true race of the CPU/human team. 
Also, MPI mapmakers can completely override the default AIPs to get a different set of AI behaviors. I quote from the vars.txt file in the DLL source, where this is commented on: 
// Custom AIP name base. The MPInstant.dll will look for several files
// based on this base, with 3 characters tacked on. Those 3 are as
// follows: (1) CPU race (f=Scion, i=isdf), (2) Human race, (3) AIP
// Type (0=Start, 1-3 = begin game types, 'a' == anti-assault, 's' ==
// siege, 'l' = lategame).
//
// If an AIP file is not found, results may be unpredictable. [The AI
// will probably go to sleep, but haven't tested that.]
//
// For example, if svar3 == "foo", at the start of the game, the AIP
// used will be one of these 4 files:
// fooii0.aip  -- CPU ISDF, Human ISDF
// fooif0.aip  -- CPU ISDF, Human Scion
// foofi0.aip  -- CPU Scion, Human ISDF
// fooff0.aip  -- CPU Scion, Human Scion
// svar3 = "MyAIPs"  // Line commented out like this means default AIPs

Notes on networking
Short summary: BZ2 networking is based on a 'lockstep' model, where everything is updated all at once. And, given the same inputs, it should provide the same outputs. On multiple machines. So, BZ2 only transmits your keyboard/mouse inputs over the network, which saves a lot on bandwidth. And, is harder to hack. Lockstep works great for singleplayer, where we can guarantee that it can read inputs 10 times per second to run the simulation. But, on the internet, moves might be late. So, there's the 'multiworld' system to cover that up. There's a 'lockstep' world which is updated only when all inputs are ready for all players. There's a visual world, which is allowed to guess at the simulation 10 times per second in order to render *something*, even if networking can't get the moves transmitted in time. The problem with guessing is that eventually, it gets more and more wrong over time. So, it needs to occasionally rebuild the visual world from the lockstep world. That's what MWF is: how often it rebuilds the visual worlds from lockstep