Tips for Battlezone 2 Multiplayer Note: this information is NOT provided as an official source; please refer to the game manual for that. Please do not call or email Activision Customer Support for help with anything contained below. For the official BZ2 discussion boards, please see http://www.pandemicstudios.com/bzii/ Version 1.12 . Last Updated: January 9, 2000. [What's new? Scroll down to the bottom.] _________________________________________________________________ Ports, Firewalls, IPMasq/NAT/Internet Connection Sharing Battlezone2's network traffic runs under TCP/IP only. By default, it uses UDP ports 17770 and 17771. If you have a firewall in place between your computer and the network, you will have to allow traffic to freely travel in both directions along those ports. Consult the documentation for the firewall to allow that to happen. If you are using some sort of address-translation setup (IPMasq/NAT/Internet Connection Sharing), and are having troubles connecting to games, first check firewall settings. Additionally, you may want to manually forward traffic on the BZ2 ports to the computers in question. Once again, consult the documentation for your setup. _________________________________________________________________ In-game chat While you can chat in Battlezone 2 from the non-pausing escape-screen, it's faster and easier to simply hit the Enter key, type what you want to say, and hit Enter again. _________________________________________________________________ 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. _________________________________________________________________ Chat commands 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 asap. An explanation may be given on the line, but it's not necessary. * /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. _________________________________________________________________ Sync Join Noted as 'Sync (Off) (On)' in the server's shell interface, this option allows the server to have all players start playing at the same time. In deathmatch, such an option is not normally chosen, but for strategy games, it may be desirable to do this. (Note: selecting another map will reset this option (and others) to what the map's defaults are.) If Sync Join is on, when the server launches, it'll wait for all other clients to launch as well. When all clients have reported in, the server will send the gamestate to them, and gameplay will begin. However, 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: Allow/Forbid' option to prevent further joins after a sync join. _________________________________________________________________ Vehicle Randomizer In Deathmatch (and similar, such as CTF and Loot) games, the server has the option of randomizing vehicles. The shell option looks like this: 'Vehicle [Fixed|Race|Random]'. (Note: selecting another map will reset this option (and others) to what the map's defaults are.) 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 vehicle of the same race as that player's shell selection is chosen. (Of course, that randomizing is within the list of allowed vehicles by the server.) If the selection is set to 'Random', a random vehicle of any race allowed by the server is chosen. _________________________________________________________________ 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. _________________________________________________________________ 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. _________________________________________________________________ Non-pausing servers By default, a BZ2 game will pause when a new client joins. This is designed to give modem servers a chance to have more bandwidth available to send the gamestate to new clients without being overloaded. However, if the game is hosted from a faster (i.e. ISDN, Cable Modem, DSL, T1, T3, OC-48) network connection, you may want to turn this off. Note: this information is provided to you without any guarantees of support or stability. It is an officially unsupported option, and should be used at your own risk. [In other words: don't gripe if it doesn't work for you. You're on your own.] To set this up, as a server, when you're in the MP shell (i.e. choosing a map/vehicle), go to the console (see above), and type the following 'network.session.ivar10 1'. [The default setting is 0, i.e. pausing] That preference will be used until you quit and start another game. _________________________________________________________________ Playing on a LAN Only BZ2 supports non-gamespy games among machines connected on a single subnet. To do this, all machines must have the same first 3 sections of their IP address (e.g. 192.168.1.*), and a valid subnet mask (usually 255.255.255.0 for such a class-C network). Next, from the game servers list window, there's a button in the top-right of that window marked 'Gamespy'. Press that button and it'll change to 'LAN Only'. [See command line options below for how to set this by default] This button must be set the same on all machines you want to play a game with. With a server set to LAN Only, it will not broadcast game information to Gamespy, and thus cannot be seen by a machine outside of your subnet. That is why a client must also be set to the LAN Only. _________________________________________________________________ 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. * +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 [i.p.add.ress: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 17771. For example, "+connect 192.168.1.4:17771" 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. _________________________________________________________________ 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. _________________________________________________________________ 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. _________________________________________________________________ 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. _________________________________________________________________ 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. _________________________________________________________________ Free for all Strat This is possible on certain strategy maps to have more than 2 recyclers, but this requires turning off teamplay. Select a map like 'ST: River4', which hits at 4 commanders, but you can't turn off teamplay. Like the no-pause servers above, when you're in the MP shell (i.e. choosing a map/vehicle) as the server, go to the console (see above), and type the following 'network.session.ivar11 0'. [The default setting is 1, i.e. teamplay locked to being on] If you select another map, it'll read the default value for that ivar out, and reset it. Most strategy maps shipped with BZ2 have only 2 spawnpoints and not enough scrap pools that it is highly recommended that you not do this on any map that doesn't suggest 4 commanders, i.e. River4 and Ground Four.