AssaultCube
GamesAssaultCube 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!
README
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!
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.
Docker Images (1)
| Name | Image |
|---|---|
Debian | ghcr.io/ptero-eggs/yolks:debian |
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}} Variables (8)
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)
- Environment:
ASSAULT_SERVER_KEY- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|required|string|max:64
Server Description
- Environment:
ASSAULT_SERVER_DESCRIPTION- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:512
Message of the Day
- Environment:
ASSAULT_SERVER_MOTD- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:512
Max Players
Set the limit on amount of players able to join (MAX 16)
- Environment:
ASSAULT_SERVER_MAXPLAYERS- Default:
16- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|integer|max:16
Admin Password
- Environment:
ASSAULT_SERVER_ADMINPASSWORD- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:512|min:5
Player Password
Password need to join the server.
- Environment:
ASSAULT_SERVER_PLAYERPASSWORD- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:512
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
- Environment:
ASSAULT_SERVER_MASTERSERVER- Default:
ms.cubers.net- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:512
Version
The version of the engine you want to download.
- Environment:
VERSION- Default:
latest- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/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 "-----------------------------------------"