BeamMP Servers
This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.
Install
- Installer image
- ghcr.io/ptero-eggs/installers:debian
- Install script
- 66 lines
Image
- Debian ghcr.io/ptero-eggs/yolks:debian
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
9 variables
Startup command
./BeamMP-ServerThe name of your server. This is what appears on the server list.
NAMEUsers can edit
required|string|max:128
Sets the server description
DESCRIPTIONUsers can edit
required|string|max:128
The BeamMP server version to be installed. Latest or invalid versions will default to latest. See all available versions at https://github.com/BeamMP/BeamMP-Server/releases example: v3.1.0 or v2.2.0 or latest
VERSIONUsers can edit
required|string|max:12
The authentication key for your server. A key can be obtained from the BeamMP keymaster at https://keymaster.beammp.com
AUTHKEYUsers can edit
required|string|max:64A value is required.
The maximum number of players allowed on the server.
MAX_PLAYERSUsers can edit
required|integer|max:100
Should the server be private?
PRIVATEUsers can edit
required|string|in:true,false
The maximum number of cars allowed to be spawned per player.
MAX_CARSUsers can edit
required|integer|max:10
The map for your server. Stock maps are listed below. /levels/gridmap_v2/info.json /levels/automation_test_track/info.json /levels/east_coast_usa/info.json /levels/hirochi_raceway/info.json /levels/italy/info.json /levels/jungle_rock_island/info.json /levels/industrial/info.json /levels/small_island/info.json /levels/smallgrid/info.json /levels/utah/info.json /levels/west_coast_usa/info.json /levels/driver_training/info.json /levels/derby/info.json
MAPUsers can edit
required|string|max:64
Enable chat logging by the server
LOGCHATUsers can edit
required|string|in:true,false
Wings
- Stop command
- exit
- Running when the console shows
- [INFO] Vehicle data network online
Files Wings edits
Wings sets these values in these files before each start.
ServerConfig.toml file
- Name =
- Name = "{{env.NAME}}"
- Port =
- Port = {{server.build.default.port}}
- AuthKey =
- AuthKey = "{{env.AUTHKEY}}"
- Private =
- Private = {{env.PRIVATE}}
- MaxPlayers =
- MaxPlayers = {{server.build.env.MAX_PLAYERS}}
- Description =
- Description = "{{env.DESCRIPTION}}"
- MaxCars =
- MaxCars = {{env.MAX_CARS}}
- Map =
- Map = "{{env.MAP}}"
- LogChat =
- LogChat = {{env.LOGCHAT}}
Readme
BeamMP
BeamMP Bringing Multiplayer to BeamNG.drive! With a smooth and enjoyable experience.
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 66 lines bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/bin/bash
#Create the server directory
mkdir -p /mnt/server
cd /mnt/server
#Remove any old versions
rm -f BeamMP-Server
#Check for latest release & download URLs
LATEST_JSON=$(curl --silent "https://api.github.com/repos/BeamMP/BeamMP-Server/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/BeamMP/BeamMP-Server/releases")
MATCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "Server.debian.12.x86_64" || echo "Server.debian.12.arm64")
if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
echo -e "Using latest BeamMP server version"
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i "${MATCH}" | head -1)
else
echo -e "Chosen version :${VERSION}. Verifying version from releases"
VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i "${MATCH}" | head -1)
else
echo -e "No valid versions found. Defaulting to the latest release"
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i "Server" | grep -i "debian" | grep -i "12" | grep -i "x" | grep -i "64" | head -1)
fi
fi
#Download the BeamMP server binary
echo -e "Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server"
curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server
chmod +x BeamMP-Server
#Create a default configuration file
echo "# This is the BeamMP-Server config file.
# Help & Documentation: `https://wiki.beammp.com/en/home/server-maintenance`
# IMPORTANT: Fill in the AuthKey with the key you got from `https://keymaster.beammp.com/` on the left under 'Keys'
[General]
Name = 'BeamMP Server'
Port = 30814
# AuthKey has to be filled out in order to run the server
AuthKey = ''
# Whether to log chat messages in the console / log
LogChat = true
# Add custom identifying tags to your server to make it easier to find. Format should be TagA,TagB,TagC. Note the comma seperation.
Tags = 'Freeroam'
Debug = false
Private = true
MaxCars = 1
MaxPlayers = 8
Map = '/levels/gridmap_v2/info.json'
Description = 'BeamMP Default Description'
ResourceFolder = 'Resources'
[Misc]
# Hides the periodic update message which notifies you of a new server version. You should really keep this on and always update as soon as possible. For more information visit https://wiki.beammp.com/en/home/server-maintenance#updating-the-server. An update message will always appear at startup regardless.
ImScaredOfUpdates = false
# You can turn on/off the SendErrors message you get on startup here
SendErrorsShowMessage = true
# If SendErrors is 'true', the server will send helpful info about crashes and other issues back to the BeamMP developers. This info may include your config, who is on your server at the time of the error, and similar general information. This kind of data is vital in helping us diagnose and fix issues faster. This has no impact on server performance. You can opt-out of this system by setting this to 'false'
SendErrors = true" > ServerConfig.toml
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"