Skip to content

AssaultCube

AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine. Taking place in realistic environments, with fast, arcade gameplay, it's addictive and fun!

Report an issue
updated
variables
8
images
1
author
holeintheseat@gmail.com
sha256
a7a6c5f35f29

Readme

AssaultCube

assault.cubers.net

AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine.

Taking place in realistic environments, with fast, arcade gameplay, it's addictive and fun!

With efficient bandwidth usage, it's low-latency and can even run over a 56 Kbps connection. It's tiny too, weighing in at a lightweight about 50 MB package available for Windows, Mac and Linux. On the correct settings, it can even run on old hardware (Pentium III and above).


Server Ports

Ports required to run the server.

Port default
Game 28763
Game +1 28764

The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.)

Must be Game +1!

Notes

28763 & 28764 is the default ports, but any port can be used.

Startup command

./bin_unix/linux_64_server -Y{{ASSAULT_SERVER_KEY}} -n"{{ASSAULT_SERVER_DESCRIPTION}}" -o"{{ASSAULT_SERVER_MOTD}}" -c{{ASSAULT_SERVER_MAXPLAYERS}} -x{{ASSAULT_SERVER_ADMINPASSWORD}} -f{{SERVER_PORT}} -p{{ASSAULT_SERVER_PLAYERPASSWORD}} -m{{ASSAULT_SERVER_MASTERSERVER}}

The parts in blue are filled in by the panel when the server starts, from the variables below.

Docker image

  • Debian ghcr.io/ptero-eggs/yolks:debian

1 contributor

Variables

8 settings

  • Server Auth Key

    You must provide your own key for the server to register on the masterserver. To generate a key you can run the client and issue the command: authkey new server See: (https://assault.cubers.net/docs/server.html)

    env
    ASSAULT_SERVER_KEY
    default
    none
    rules
    nullable|required|string|max:64
    • viewable
    • editable
  • Server Description

    env
    ASSAULT_SERVER_DESCRIPTION
    default
    none
    rules
    nullable|string|max:512
    • viewable
    • editable
  • Message of the Day

    env
    ASSAULT_SERVER_MOTD
    default
    none
    rules
    nullable|string|max:512
    • viewable
    • editable
  • Max Players

    Set the limit on amount of players able to join (MAX 16)

    env
    ASSAULT_SERVER_MAXPLAYERS
    default
    16
    rules
    required|string|integer|max:16
    • viewable
    • editable
  • Admin Password

    env
    ASSAULT_SERVER_ADMINPASSWORD
    default
    none
    rules
    required|string|max:512|min:5
    • viewable
    • editable
  • Player Password

    Password need to join the server.

    env
    ASSAULT_SERVER_PLAYERPASSWORD
    default
    none
    rules
    nullable|string|max:512
    • viewable
    • editable
  • Master Server

    Forces the server to register with the hostname or IP address of a different masterserver. The default is ms.cubers.net If you want your server to be hidden and not report to the masterserver, use -mlocalhost

    env
    ASSAULT_SERVER_MASTERSERVER
    default
    ms.cubers.net
    rules
    required|string|max:512
    • viewable
    • editable
  • Version

    The version of the engine you want to download.

    env
    VERSION
    default
    latest
    rules
    required|string|max:20
    • viewable
    • editable
Installation script 53 lines container ghcr.io/ptero-eggs/installers:debian entrypoint bash show
#!/bin/bash
# AssaultCube Server Egg (By HoleInTheSeat) <|-|> (https://assault.cubers.net/)
#
# Server Files: /mnt/server

#######-|Dependencies|-#######
apt update
apt -y install tar make bzip2 build-essential clang libclang-dev libclang1 llvm llvm-dev clang-tools libz-dev curl jq

#######-|Downloading files|-#######
cd /mnt/server
## get release info and download links

LATEST_JSON=$(curl --silent "https://api.github.com/repos/assaultcube/AC/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/assaultcube/AC/releases")
MATCH=tar.bz2

if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
    DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else
    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})
    else
        echo -e "defaulting to latest release"
        DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | head -1)
    fi
fi


curl -sSL -o AssaultCube.tar.bz2 ${DOWNLOAD_URL}
tar -xf AssaultCube.tar.bz2
rm AssaultCube.tar.bz2

#######-|Setting Up Server|-#######
mkdir -p /mnt/server
cd /mnt/server
rm -rf bin_win32/ *.sh

if [ "$(uname -m)" = "x86_64" ]; then
    echo -e "x86 System"
else
    cd /mnt/server/source/src
    make server_install
fi
#######-|Insert Server Authkey|-#######
cd /mnt/server
sed -i 's/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/{{ASSAULT_SERVER_KEY}}/' ./config/servercmdline.txt

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"