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
30814open (TCP+UDP) - A BeamMP Server Key (free from beammp.com)
Get a server key
- Go to keymaster.beammp.com
- Log in or create a free account
- Click New Key → fill in your server name and IP
- Copy the generated key, you'll need it for the config
Create a dedicated user
sudo useradd -m -s /bin/bash beammp
sudo su - beammpDownload 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-ServerFirst run (generates config)
./BeamMP-ServerThe 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 path | Map name |
|---|---|
/levels/gridmap_v2/info.json | Gridmap V2 |
/levels/smallgrid/info.json | Small Grid |
/levels/johnson_valley/info.json | Johnson Valley |
/levels/automation_test_track/info.json | Automation Test Track |
/levels/east_coast_usa/info.json | East Coast USA |
/levels/hirochi_raceway/info.json | Hirochi Raceway |
/levels/italy/info.json | Italy |
/levels/jungle_rock_island/info.json | Jungle Rock Island |
/levels/industrial/info.json | Industrial |
/levels/utah/info.json | Utah |
/levels/west_coast_usa/info.json | West 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.targetEnable and start:
sudo systemctl daemon-reload
sudo systemctl enable beammp
sudo systemctl start beammp
sudo systemctl status beammpFirewall rules
sudo ufw allow 30814/tcp
sudo ufw allow 30814/udpAdd 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 automaticallyFor 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 beammpLogs
journalctl -u beammp -fLua 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