Battlefield 1942(tm)
Server Admin FAQ
September 4, 2002
Server Admin FAQ v1.0
Make sure you\'re running a dedicated server and not playing on the server,
that will really impact performance on your \'net game (although LAN it
works okay).
SERVERS
Set your BANDWIDTH LIMIT on the ded. server. This limit is your total
allowed bandwidth for your server. So, if you\'re on a DSL connection,
you\'d limit your server to 256 kB/s.
CLIENTS
Set your connection type (under MULTIPLAYER>INTERNET) to reflect HOW
you\'re connecting to the \'net, or one step lower. If you\'re on a modem,
don\'t have this checked as a LAN...you won\'t enjoy the experience as much.
NOTE: Keep an eye on
http://www.ea.com/eagames/official/batt ... 2/home.jsp
for more information to be posted as we get it.
Thanks to g8 for the following FAQ. We\'ve taken the liberty of re-ordering
it and adding some more information
1. How many users can I have on my server? How big of a connection do
I need?
These are our current estimates, err on the high side, and aim for
best performance (sure you could get more on less but that\'s when you get
laggy/crummy servers):
\'How big\' primarily depends on bandwidth. A *good* DSL connection (1.5/768)
can handle about 8-10 players MAX. Slower DSL (such as residential 1.5/256)
would only be able to support about 4 players at best (same for cable as that
is usually 256 to 384 on the upload). If you have a 1 Mb SDSL connection (or
1 Mb on your cable upload) you should be able to support a 12 player server
As a rough rule of thumb, each player requires anywhere from 50 to 80 KBps.
You need a *minimum* of a T1 to support a 16 player server, dual T1 (3 Mb)
for a 32 player server, and just over 6 Mb for a 64 player server (although
that can hit up to 7 or 8 Mb/sec depending on how many people are connecting
and downloading maps). Basically you need some serious bandwidth for anything
over a 16 player server and it should be dedicated hardware (i.e. it\'s only a
server, no GUI or other apps running on it).
As far as the hardware, here is a rough estimate/guide of what kind of server
to host on what kind of bandwidth:
CPU/NETWORK 128kbit 256kbit 512kbit T1(1.4Mbit) > 2Mbit 10Mbit > T3(45Mbit)
PIII 500 2 4 8 12 12
PIII 800 2 4 8 20 20
PIII 1300 2 4 8 24 32
PIV 2000 2 4 8 24 64
General rule of thumb:
Cable Modem: 4 - 6 players.
DSL Line: 8 - 10 players
T1+ 16 - X players. (X is dependant on your connection)
THE SERVER WILL CONSUME 85 TO 100% OF YOUR CPU. This means YOU CANNOT RUN AN
INTERNET SERVER ON AND PLAY FROM THE SAME MACHINE. SERVERS MUST BE DEDICATED FOR
OPTIMAL AND PROPER PERFORMANCE.
2. How do I run a dedicated server without having to enter my info into the
DedicatedServer.exe every time?
You need to enter the server config parameters into its config file. The file is
called ServerSettings.con, located in Settings folder for the application
(usually C:\\Program Files\\EA GAMES\\Battlefield 1942 Multiplayer Demo\\Settings).
The DedicatedServer.exe can be used when first setting up the server, then you
can manually edit the ServerSettings.con after the first time it is run. See
this post from Saracen (thanks!):
pub30.ezboard.com/fceandbfcommunityfrm3.showMessage?topicID=1235.topic for a full
descrption of the server config file options.
DO NOT USE DedicatedServer.exe MORE THAN ONCE if you do not want to enter your info
every time you start the server. You must start the server from a shortcut which
starts the game as a server, or start the server as a service (more below), or write
a batch file to start the server (FAQ-todo). The simplest method is to modify the
shortcut file on your desktop to include the following switches:
+restart 1 +hostServer 1 +dedicated 1
So the Target for the shortcut would look like:
\"C:\\Program Files\\EA GAMES\\Battlefield 1942 Multiplayer Demo\\BF1942Demo.exe\" +restart
1 +hostServer 1 +dedicated 1
Rename that shortcut to something apropriate like \'BF1942 MP Demo Server\' and double
click it. The server should launch with the settings you entered into the
ServerSettings.com file.
3. How do I setup my server behind a firewall?
If you do not care about (or want) the server being listed in Ga*spy, then you only
need to open udp port 14567 into your network. If you are behind a firewall/router that
is also doing NAT, you will need to port forward udp port 14567 from your firewall/router
to your internal server. On some routers you may also make your server a \'DMZ\' host which
effectively puts the server on the outside of the firewall. However, please realize that
exposes your server and all of its potentially open ports (and exploitable code) to the rest
of the dirty public internet
If you do want your server to be listed in Gamespy you will need a number of additional ports
opened up:
allow udp port 14567
allow udp 22000 (THIS IS ONLY FOR LAN GAMES. If you don\'t want that accessible from the net,
don\'t open it)
allow udp range 23000 23009
# Gamespy Master Server UDP Heartbeat
allow udp port 27900
# Gamespy Master Server List Request
allow tcp port 28900
In addition you may or may not need to open the ports listed in the \"Working Around the
Firewall / Proxy\" section of this Gamespy page:
http://www.gamespyarcade.com/support/firewalls.shtml
(thanks to mibsc123 for the link)
4. How do I set the admin password and use remote commands?
You must first set the server admin password at the server console. Get in front of the server/black
window and hit the ` key to bring up the console (also called the ~ key). This will take the
console out of status display mode (where it shows you FPS) and into entry mode where you can
enter console commands. When you get the > prompt, type:
admin.enableremoteadmin
where is any password of your choice that is all numbers OR letters, BUT NOT BOTH
AND NO SPACES!
After you have set the password on the server console, you can use the same command from your
client when you connect to the server. So, fire up your game and connect to your server. Now
open the console ingame with the ` key and issue the following command:
admin.enableremoteadmin
where is the password you set before at the server console.
You should now be authed as an admin and able to issue remote commands. To issue a remote
command, use the following command:
admin.execremotecommand \"command\"
where command is any command you would normally run from the server console. For example,
to kick a user number 15 you would issue this:
admin.execremotecommand \"admin.kickplayer 15\" or to ban player 15:
admin.execremotecommand \"admin.banplayer 15\"
5. How do I kick/ban people from my server?
Read #2 again if you are not sitting in front of the server/console. If you are sitting in
front of your server/console (i.e. NOT remote), then you just issue the admin command right
into the console (i.e. game.listplayers and admin.kickplayer
)
All comments, changes, suggestions, and additions are welcome! Please contact me at the
address below or on the CE and BF Community forums - cebf.ws
-------------------------------
COPYRIGHT 2002
g8@the.whole.net
\"Restecp\" to the CE and BF Community -
http://cebf.ws/ Permission is granted to reproduce/repost
this FAQ as long as the entire contents and copyright are retained. Please give credit where it\'s due
--------------
To modify your server settings, see the following:
Server Settings
---------------
When hosting a server, the server settings are read from Settings/ServerSettings.con
they are as follows:
game.serverName \"Bf Server\"
> server name
game.serverDedicated 0
> 0 - non dedicated, 1 - dedicated
game.serverGamePlayMode GPM_CQ
> gameMode: GPM_CQ - Conquest, GPM_CTF - Capture the Flag, GPM_TDM - Team Death Match, GPM_COOP - Coop
game.serverGameTime 0
> round time limit in minutes. 0 = unlimited
game.serverMaxPlayers 32
game.serverScoreLimit 24
> score limit in TDM and CTF. 0 = unlimited
game.serverInternet 0
> 1 - internet server, 0 - local server
game.serverNumberOfRounds 3
> number of rounds before map change
game.serverSpawnTime 20
> spawn time in seconds, i.e. time between waves
game.serverSpawnDelay 10
> spawn delay in seconds, i.e. the time the wave is active
game.serverGameStartDelay 20
> delay before game starts
game.serverSoldierFriendlyFire 100
> friendly fire in percent versus soldiers
game.serverVehicleFriendlyFire 100
> friendly fire in percent versus vehicles
game.serverTicketRatio 100
> ticket ratio in percent. 100 % = default ticket settings. 200 % = twice the number of tickets
game.serverAlliedTeamRatio 1
game.serverAxisTeamRatio 1
> team ratio Allied versus Axis. 1-2, means twice the number of axis players
game.serverCoopAiSkill 75
> If Coop, this is the skill of the ai. (in percent)
game.serverCoopCpu 20
> If Coop, the amount of cpu time given to the ai. 15-25
game.serverPassword \"\"
> password (DO NOT USE ANY SPACES)
game.ServerBandwidthChokeLimit 0
> Limit: bytes / second. 0 = unlimited
game.ServerAllowNoseCam 1
> Nose cam on/off (1/0) when flying planes
game.ServerFreeCamera 0
> Free camera on/off (1/0)
game.ServerExternalViews 1
> external views on vehicles on/off (1/0)
game.ServerAutoBalanceTeams 0
> external views on vehicles on/off (1/0)
game.ServerNameTagDistance 50
> name tag distance
game.ServerNameTagDistanceScope 300
> name tag distance when using scope
game.ServerKickBack 0
> kickback. damage received when hurting teammates. (in percent)
game.ServerKickBackOnSplash 0
> kickback. splash damage received when hurting teammates. (in percent)
game.setServerSoldierFriendlyFireOnSplash 100
> friendly fire from splash damage in percent vs soldiers
game.setServerVehicleFriendlyFireOnSplash 100
> friendly fire from splash damage in percent vs vehicles
game.setServerIP
> Ip of server
game.setServerIP
game.setServerPort 14567
> port of server
GENERAL SERVERCOMMANDS:
- Game.listplayers
Every player has an ID number, which is used for kicking/voting
off the player. This command lists those numbers.
- Game.enablefreecamera *
This enables free look mode on clients who are waiting to spawn.
For *, 1 turns free look on, 0 turns it off. Note that this
command can only be run from the server, or by a user that has
remote server access.
- Game.killplayer *
* is equal to the player id number. Note that this command can
only be run from the server, or by a user that has remote server
access.
ADMIN COMMANDS:
- Admin.kickplayer *
* is equal to the player id number. Note that this command can
only be run from the server, or by a user that has remote server
access.
- Admin.banplayer *
* is equal to the player id number. Note that this command can
only be run from the server, or by a user that has remote server
access.
- Admin.removeaddressfrombanlist *
* is equal to the IP of a banned player. Note that this command
can only be run from the server, or by a user that has remote
server access.
- Admin.addaddresstobanlist *
* is equal to the IP address to the client that is to be banned.
Note that this command can only be run from the server, or by a
user that has remote server access.
- Admin.clearbanlist
This allows all users that were previously banned to once again
connect to the server. Note that this command can only be run
from the server, or by a user that has remote server access.
- Admin.externalviews *
This command enables/disables external camera views on clients
connected to the server. For *, 1 turns external views on, 0
turns it off. Note that this also disables the nose cam. Also,
note that this command can only be run from the server, or by a
user that has remote server access.
- Admin.listbannedaddresses
Lists the IP addresses that are banned from connecting to the
server. Note that this command can only be run from the server,
or by a user that has remote server access.
- Admin.allownosecam *
This command enables/disables the ability for clients to turn
off the airplane HUD. (Allows easier flying.) For *, 1 turns
nose cam on, 0 turns it off. Also note that if external views
are turned off, nose cam cannot be used. Note that this command
can only be run from the server, or by a user that has remote
server access.
VOTING COMMANDS:
- Game.votekickplayer *
This command will initiate/cast a vote to kick a player. Players
on both teams can participate in this vote. * is equal to the
player id number.
- Game.votekickteamplayer *
This command will initiate/cast a vote to kick a player. Voting
is restricted to the team of the player who initiated the vote.
* is equal to the player id number.
- Admin.votingtime *
This command sets the amount of time clients have to cast a vote
after it has been initiated. * is equal to the number of seconds
clients will have to vote. Note that this command can only be run
from the server, or by a user that has remote server access.
REMOTE CONSOLE ACCESS:
- Admin.enableremoteadmin password
The SERVER needs to have this command executed every map. The
password can include numbers OR letters, but not a combination
of the two. NOTE: DO NOT INCLUDE ANY SPACES IN YOUR PASSWORD.
The CLIENT that is to have remote admin access is to execute
this command. The password must be the same as the one set on
the server
- Admin.execremotecommand "command"
To execute a command from a client, one would type the
admin.execremotecommand, followed by the desired admin command
in quotation marks. For example, to kick someone with the player
id of 7 from a client machine, one would type the following
(after going through the first two steps of this section.)
Admin.execremotecommand "admin.kickplayer 7"
OTHER HELPFUL COMMANDS:
- Console.showfps *
This toggles the FPS display on and off. For *, 1 turns FPS on
and 0 turns it off.
- Console.showstats *
This toggles the debug stats display on and off. For *, 1 turns
the debug stats display on and 0 turns it off.
- Game.disconnect
This disconnects the player from the current game.
- Game.changeplayername *
This allows a user to quickly change his name. * is equal to the
player name.