Castanet Communications banner image

Medal of Honor: Allied Assault (MOHAA) Server Setup Guide
Author: Craig "hachiroku" Mercer
Date Created:2002-01-23
Operating System(s):Windows Logo imageWindows 9X/2000/XP MacOS Logo imageMacOS OS X Linux Logo imageLinux
  MOHAA Server Guide image

If you are having trouble with setting up a MOHAA Server and it has to do with maps, firewalls and console things then here is my small contribution...

cg_drawFPS 1


Guide Quick Navigation


Getting Started - MOHAA.exe and server.cfg are your friends!

Step 1
Create a shortcut on the desktop to the MOHAA.exe and then add the following to the Target field in the properties (right-hand mouse click on the shortcut) window.

It will look something like this: Target: X:\Games\MOHAA\MOHAA.exe

Add the following after MOHAA.exe and make sure these is a space between them:
+set dedicated 1 +exec server.cfg

+set dedicated 1
// make it a dedicated server (1=ON 0=OFF)

+exec server.cfg
// Name of the server script you wish to execute. NOTE: Be sure it is in your X:\MOHAA\main\ directory or it will not work

You now should have a shortcut named MOHAA on your desktop with properties that look like this:

Target: X:\Games\MOHAA\MOHAA.exe +set dedicated 1 +exec server.cfg

Click apply. Now onto step 2.

Step 2
Create a server.cfg (create a text file with notepad/editpad whatever, and change the file extent ion to .cfg) script and put it into the MOHAA\main\ directory. The contents of the server.cfg file should be most of the following:

// LANage (example) MoHAA Server Config File

seta sv_hostname LANage_MOHAA_Server
sets Admin hachiroku
sets URL
sets Connection T1
seta sv_gamespy 1

net_noipx 1
net_port 12203

set rconpassword your_password_here
seta sv_floodProtect 1
seta flood_waitdelay 10
seta flood_persecond 4
seta flood_msgs 4
set sv_pure 1

seta sv_allowDownload 0
seta sv_maxRate 9000
seta sv_fps 20
seta sv_maxping 200

set sv_maxclients 16
set sv_privateClients 3
set sv_privatepassword insert_your_private_password

seta timelimit 20
seta fraglimit 0
set g_gametype 4
set g_teamdamage 0
set g_inactiveSpectate 30
set g_inactiveKick 60

seta sv_maplist "obj/obj_team1 obj/obj_team2 obj/obj_team3 obj/obj_team4"
map obj/obj_team3

Save this file as server.cfg (or whatever name as long as it matches your shortcut from Step 1) and save it in your MOHAA\main\ folder. To start the server - just double click the MOHAA shortcut on your desktop ...experiment as necessary ...and...ENOJY!

Server .CFG File Descriptions

// LANage (example) MoHAA Server Config File

seta sv_hostname LANage_MOHAA_Server
//Set your server name

sets Admin hachiroku
// Display your admin name

sets URL
// Display your website URL. Not needed for LAN.

sets Connection T1
// Advertises what speed your Internet server is. Not needed for LAN.

seta sv_gamespy 1
// Advertises your server on Gamespy (1=ON 0=OFF)


net_noipx 1
// disables the IPX protocol

net_port 12203
// specifies port 12203 for client connections


set rconpassword your_password_here
//Set password for the remote console

seta sv_floodProtect 1
//Don't allow players to flood server

seta flood_waitdelay 10

seta flood_persecond 4

seta flood_msgs 4

set sv_pure 1
//Will not allow clients with non-standard pak files to connect.


seta sv_allowDownload 0
// Allow players to download the maps if they don't have them.
// Handy if you are server modded maps (1=ON 0=OFF)

seta sv_maxRate 9000
// Allow players to pull up to 9,000 bps

seta sv_fps 20
// Process 20 frames per second

seta sv_maxping 200
// Players must ping below 200 to connect


set sv_maxclients 16
// Maximum of 16 players on server

set sv_privateClients 3
// 3 of 16 slots require a password

set sv_privatepassword insert_your_private_password
// the password for the private slots


seta timelimit 20
// Games will run for 20 minutes
// Use for Objective maps

seta fraglimit 0
// Games will not end based on frags
// Use for Death Match maps

set g_gametype 4
// Type of game the server will host
// 1 - Free for All
// 2 - Team Deathmatch
// 3 - Round Based
// 4 - Objective

set g_teamdamage 0
// Friendly fire is off (1=ON 0=OFF)

set g_inactiveSpectate 30
// Players become spectators after 30s of inactivity

set g_inactiveKick 60
// Players get kicked after 60s of inactivity

// MAP LIST - The list of maps in order that the server will run
// If you change the gametype to something other than Objective,
// don't forget to change the maps (i.e.: dm/mohdm1) as well
// Do not remove the "" as the maps will not rotate without them.

seta sv_maplist "obj/obj_team1 obj/obj_team2 obj/obj_team4"

map obj/obj_team1
// the first map to run

// TDM/DM Round Based Maps
// mohdm1 Southern France
// mohdm2 Destroyed Village
// mohdm3 Remagen
// mohdm4 The Cross Roads
// mohdm5 Snowy Parks
// mohdm6 Stalingrad
// mohdm7 Algiers

// Objective Maps
// obj_team1 The Hunt
// obj_team2 Rocket Facility
// obj_team3 Omaha Beach
// obj_team4 The Bridge

Serving MOHAA (Medal of Honor) Behind a Firewall
(Putting your server behind a firewall is a BEST PRACTICE)

If you plan on putting your MOHAA Server behind a firewall (ie: residential ones D-Link, Linksys, SMC) you will need to open and forward the following UDP (not TCP) ports in order for Medal of Honor to work.

UDP 12201 MOHAA Monitoring Port
UDP 12202 MOHAA Alternate Monitoring Port
UDP 12203 MOHAA Default Server Port *
UDP 12210 MOHAA Alternate Game Port
UDP 12300 GameSpy Monitoring Port *
UDP 13139 GameSpy UDP Pings
UDP 27900 GameSpy Master Server Heartbeat
TCP 28900 GameSpy Master Server List
TCP 29900 GameSpy Connection Manager
TCP 29901 GameSpy Search Manager
UDP 6500 GameSpy Query Port
UDP 6515 GameSpy DPlay Port
UDP 3783 GameSpy Voice Chat
UDP 6667 GameSpy IRC Chat

* denotes ports that absolutely have to be open and forwarded to the Server in order for MOHAA to work online. You don't have to have any of the other ports open in order to serve games via the in game Gamespy server list, but you may want to open them for other reasons.

Setting the RCON password on the Server for remote Admin
(do this in your server config file "server.cfg")

rconpassword - sets remote console password so clients may change server settings without direct access to the server console. The default is set to none. Client can control the server by entering commands on the console with the format of /rconpassword <mypass> and then adding server commands after the /rcon command.

Now you can issue other rcon commands such as:

/rconpassword password" - Logs you into the server. password is the rcon password from your server config.
/rcon status - status (gives client numbers)
/rcon clientkick "#" - kicks individual client by client number. The easiest way to kick players that use name scripts to change their names to letters that are hard to type in and clients with spaces in their names.
/rcon kick "playername" - kicks individual client by playername.
/rcon timelimit 20 - map will cycle in 20 minutes, change number to whatever you want
/rcon map obj/obj_team1 - changes map to Objective Map "The Hunt".
/rcon map dm/mohdm1 - changes map to Death Match "Southern France"

Calling a Vote
Open the console ( ~ key) and call for a vote, to change maps, turn team damage on or off, or KICK someone. To call a vote to kick someone called JerkWad, enter the console and type the following:

/callvote kick JerkWad

It will be broadcast to everyone in the game that a vote has been called for. Anyone who has the ui_console option enabled can now enter one of these two very simple options:

vote yes
vote no

Server Console Commands
Remember to open the console by hitting the "~" also known as the tilde key.

Commands Comment
cd "folder" - change current directory to folder
cheats "0 or 1" - sets cheats off (0) or on (1)
cmdlist - list all console commands
dir - list all files in current directory
echo - echoes text to the console
fdir "filter" - list all files in current directory, applying filter (ex. fdir *.bsp)
kick all - kicks all players
kick "player" - kicks player
killserver - kills the server
maplist - list maps
meminfo - gives info about memory
path - echo current search path to console
reload - reload current weapon
restart - restarts server
say "message" - send message to all players in the game
serverinfo - echo server information to console
status - echo status/player info to console
systeminfo - echo system information to console
(var) add "var" "amount" - add amount to var
(var) append "var" "string" - append string to var
(var) reset "var" - set var to its default
(var) set "var" "value" - sets var to value
(var) subtract "var" "amount" - subtract amount from var
(var) toggle "var" - toggle var value to 0 or 1


Client Console Commands
Remember to open the console by hitting the "~" also known as the tilde key.

Commands Comment
launchgamespy - launches gamespy
bind "key" "command" - bind command to a key
bindlist - list all key bindings
altbind "key" "command" - bind command to alt+key
ctrlbind "key" "command" - bind command to ctrl+key
altbindlist - list all alt+key bindings
ctrlbindlist - list all ctrl+key bindings
unbind "key" - unbind key
unaltbind "key" - unbind alt+key
unctrlbind "key" - unbind ctrl+key
unbindall - unbind all keys
say "message" - send message to all players in the game
sayteam "message" - send message to all players in your team
exec "file.cfg" - execute commands in file.cfg
kill - suicide
quit - exit moh
cvarlist - list all variables
name "myname" - sets your player name to myname
sensitivity "<number>" - sets your mouse sensitivity (5-20)
m_filter "0 or 1" - set mouse filter off (0) or on (1)
fps "0 or 1" - toggle fps info display off (0) or on(1)
map "mymap" - change to map mymap
pause - pause/unpause game
scale "var" "amount" - multiply var by amount
savegame - save current game
autosavegame - save current game as autosave
loadgame - load saved game
loadlastgame - load last saved game
gamemap "mymap" - change to map mymap
connect "ip" - connects to server at ip
difficultyHard - sets difficulty to hard
difficultyMedium - sets difficulty to medium
difficultyEasy - sets difficulty to easy
clear - clear all text from the console
error - exits moh with error message