Egg Repository

Pterodactyl Community Egg Repository

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.

Read Me

BeamMP

BeamMP Bringing Multiplayer to BeamNG.drive! With a smooth and enjoyable experience.

Yolks
NameTag
Debianghcr.io/ptero-eggs/yolks:debian
Variables
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Server NameThe name of your server. This is what appears on the server list.NAMEBeamMP ServerYesYes
Server DescriptionSets the server descriptionDESCRIPTIONBeamMP Default DescriptionYesYes
BeamMP Server VersionThe 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 latestVERSIONlatestYesYes
Authentication KeyThe authentication key for your server. A key can be obtained from the BeamMP keymaster at https://keymaster.beammp.comAUTHKEYYesYes
Max PlayersThe maximum number of players allowed on the server.MAX_PLAYERS6YesYes
PrivateShould the server be private?PRIVATEfalseYesYes
Max CarsThe maximum number of cars allowed to be spawned per player.MAX_CARS1YesYes
MapThe 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.jsonMAP/levels/gridmap_v2/info.jsonYesYes
Chat loggingEnable chat logging by the serverLOGCHATtrueYesYes
Install Script
#!/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 "-----------------------------------------"