Skip to content

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.

egg-beammp-servers.json

updated

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-Server
  • The 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.

Changes

  1. Add standalone games

    · Daniel Barton · 74c706a

All changes on GitHub

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
#!/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 "-----------------------------------------"