Open Road MP

Running a server

Download the server, start it and make it reachable for players.

Anyone can host an Open Road MP server. The server is a single program for Windows and Linux and needs no game installation.

Download

Download the server for your system (Windows or Linux) from the download page and extract it into a folder of its own. The package contains:

openroadmp-server(.exe)   the server
server.cfg                the configuration - every setting explained in it
gamemodes/freeroam/       the gamemode that comes with it (free driving)
scripting/                API types for your editor and the type check of gamemodes
README.txt                the short version of this page

Requirements

  • Windows 10/11 or Linux, 64-bit
  • Node.js 22.18 or newer for gamemodes. Without Node.js the server runs, but no gamemode (no start money, no chat commands, ...).
  • A public IP address or port forwarding on your router

First start

  1. Create a server key under Your servers in your account and put it into server.cfg as master_key = srv_.... Set name, password and so on there too (see Configuration).
  2. Start openroadmp-server (Windows: double-click openroadmp-server.exe). Without a server.cfg it writes one with the default values next to it. Changes to the file take effect at the next start (stop in the server window).
  3. Open the ports in your router and firewall:
PortProtocolUsed for
42420UDPthe game connection of the players
42420TCPlive map, status API and the check of the public server list

Players connect with Direct connect in the Open Road MP menu, e.g. 1.2.3.4:42420.

On Linux

chmod +x openroadmp-server
./openroadmp-server

To keep it running after you log out, start it in screen/tmux or as a systemd service. The server reads commands from its standard input (see Console).

Server key and slots

Every Open Road MP server needs a server key from Your servers in your account (up to 3 keys per account). Without a valid key the server does not start. The key decides how many players may join (32 by default; max_players in server.cfg is lowered to it) - for more slots, ask the Open Road MP team. One key is for one server at a time: start a second server with the same key and it is turned away. New key there replaces a leaked key; the old one stops working at once. If the team disables a key, its server stops within a minute.

Public server list

With public = true in server.cfg, your server appears in every player's server list. The list checks your server through its status API, so the TCP port must be reachable from the internet. Without public, players reach the server only by direct connect or as a favourite.

Players and Steam

Every player signs in with their Open Road MP account - Open Road MP asks for it on the first start. The account has an ID of its own (like oprmp:KXQTRB-4821, on the player's account page) and is linked to the player's Steam account. When a player joins, your server has the sign-in confirmed by the Open Road MP master server, so the server needs to reach the internet (outgoing, over IPv4 - the server list and joining work by its IPv4 address). Gamemodes know each player's account ID (player.accountId), e.g. for admin rights or bans that survive a new name.

Accounts the Open Road MP team bans are banned on every server: your server fetches the global ban list from openroadmp.com every minute, kicks banned players with the reason and does not let them join. Your own bans (ban in the console, mp.bans) only apply to your server.

With required_dlcs (see Configuration) only players who own those DLCs can join - useful for map DLCs. The server list shows them before connecting.

Gamemodes

Gamemodes decide what happens on your server: start money, chat commands, reactions to speed cameras and much more. The package comes with freeroam: start money and a welcome mail, deliveries and speed cameras in the chat, companies (/company), any truck (/garage), freight jobs (/job), meeting points with navigation (/meet, /navi), repair, licence plates, teleport to friends and private messages - in German or English for each player. Moderators set the time and the weather, post announcements and kick (/time, /weather, /announce, /kick); give the role with mp.roles.set(player, "moderator"), admins from server.cfg always have it. Start money and which features are on are in gamemodes/freeroam/settings.ts, the full list in its README.md. Which ones run is set in server.cfg:

gamemodes = [freeroam]

Writing your own is described under Scripting.

Live map

The server has a live map with all players built in: open http://<server>:42420/ in a browser. The map data (roads and companies, also used for the safe zones) is part of the server - there is nothing to install. public_map = false hides it from others.

Console

Type commands into the server window:

CommandAction
listall players with id
kick <id> [reason]remove a player
ban <id> [reason]remove and ban a player (bans.txt)
say <text>server message to everyone
rulescurrent game rules
rule <name> <value>change a rule, e.g. rule police off
gamemodestate of all gamemodes
gamemode restart [name]restart one gamemode or all (after changing its code)
gamemode stop <name>stop a gamemode
stopshut the server down

Updates

Your server hears about new versions from openroadmp.com with its heartbeat. When there is a newer one, it writes Update available: Open Road MP <version> into server.log, and admins (admins in server.cfg) get a chat message when they enter the world. The server does not replace itself: download the new package from the download page, stop the server, replace openroadmp-server and scripting/ and start it again - server.cfg, your gamemodes and their data stay as they are.

Status API

For your own website or tools, the server answers on its TCP port:

  • GET /api/status - name, MOTD, game and required version, players and slots, tick rate, password protection, game rules, gamemodes and mods (JSON)
  • GET /api/playerlist - who is online: id, name and truck, no positions (JSON) - the server lists show it when a player opens your server's details
  • GET /api/players - the players with position, truck, job and radio (JSON; only with public_map = true)

Files

FileContents
server.cfgconfiguration
server.logeverything the server and its gamemodes log
bans.txtbanned players

On this page