Gaming Servers

BeamMP

Install and configure a BeamMP dedicated server for BeamNG.drive multiplayer on Linux

BeamMP is a free multiplayer mod for BeamNG.drive. It runs a dedicated server that players connect to using the BeamMP launcher. This guide covers Linux server setup.

Requirements

  • Ubuntu 22.04 / Debian 12 (64-bit)
  • 2 GB RAM minimum (4 GB recommended for 10+ players)
  • 5 GB disk space
  • Port 30814 open (TCP+UDP)
  • A BeamMP Server Key (free from beammp.com)

Get a server key

  1. Go to keymaster.beammp.com
  2. Log in or create a free account
  3. Click New Key → fill in your server name and IP
  4. Copy the generated key, you'll need it for the config

Create a dedicated user

sudo useradd -m -s /bin/bash beammp
sudo su - beammp

Download the server

mkdir -p /home/beammp/server
cd /home/beammp/server

# Download latest BeamMP Server release
wget https://github.com/BeamMP/BeamMP-Server/releases/latest/download/BeamMP-Server-linux -O BeamMP-Server
chmod +x BeamMP-Server

First run (generates config)

./BeamMP-Server

The server will create a ServerConfig.toml and exit (or run briefly). Stop it with Ctrl+C.


Configure the server

nano /home/beammp/server/ServerConfig.toml
[General]
# Your server name shown in the server list
Name = "My BeamMP Server"

# Port (default 30814)
Port = 30814

# Max players
MaxPlayers = 10

# Server description
Description = "Hosted on DeluxHost"

# Your key from keymaster.beammp.com
AuthKey = "YOUR_KEY_HERE"

# Set to true to show in the public server list
Private = false

# Max car count per player
MaxCars = 3

# Debug logging (set to false for production)
Debug = false

# Map to load (default: gridmap_v2)
# See map list below
Map = "/levels/gridmap_v2/info.json"

# Resource folder (mods/maps for the server)
ResourceFolder = "Resources"

Available default maps

Map config pathMap name
/levels/gridmap_v2/info.jsonGridmap V2
/levels/smallgrid/info.jsonSmall Grid
/levels/johnson_valley/info.jsonJohnson Valley
/levels/automation_test_track/info.jsonAutomation Test Track
/levels/east_coast_usa/info.jsonEast Coast USA
/levels/hirochi_raceway/info.jsonHirochi Raceway
/levels/italy/info.jsonItaly
/levels/jungle_rock_island/info.jsonJungle Rock Island
/levels/industrial/info.jsonIndustrial
/levels/utah/info.jsonUtah
/levels/west_coast_usa/info.jsonWest Coast USA

Run as systemd service

Exit back to root:

exit
sudo nano /etc/systemd/system/beammp.service
[Unit]
Description=BeamMP Server
After=network.target

[Service]
Type=simple
User=beammp
WorkingDirectory=/home/beammp/server
ExecStart=/home/beammp/server/BeamMP-Server
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable beammp
sudo systemctl start beammp
sudo systemctl status beammp

Firewall rules

sudo ufw allow 30814/tcp
sudo ufw allow 30814/udp

Add mods and custom maps

Place server-side mods in the Resources/Server folder:

mkdir -p /home/beammp/server/Resources/Server
# Copy mod .zip files here: they are sent to clients automatically

For custom maps, place the map .zip in Resources/Server/ and update the config:

Map = "/levels/your_custom_map/info.json"

Clients must have BeamNG.drive installed with the matching map DLC or mod. Server-side mods in Resources/Server are automatically downloaded by players when they join.


Server updates

sudo systemctl stop beammp
sudo -u beammp wget https://github.com/BeamMP/BeamMP-Server/releases/latest/download/BeamMP-Server-linux \
  -O /home/beammp/server/BeamMP-Server
sudo -u beammp chmod +x /home/beammp/server/BeamMP-Server
sudo systemctl start beammp

Logs

journalctl -u beammp -f

Lua server scripts (advanced)

BeamMP supports Lua scripts for server-side gameplay logic. Place .lua files in Resources/Server/:

-- Resources/Server/mygamemode/main.lua
local M = {}

function M.onInit()
    print("Gamemode loaded!")
end

function M.onPlayerJoining(playerID)
    print("Player " .. playerID .. " is joining")
end

return M

On this page