Linux Dedi Reference
Required Packages
Install the required dependencies:
sudo apt update
sudo apt install -y lib32gcc-s1 tar wget
Step 1: Install SteamCMD
SteamCMD is used to download and update the Brickadia server files.
Download and Install SteamCMD
# Create a directory for SteamCMD
mkdir -p ~/steamcmd
cd ~/steamcmd
# Download SteamCMD
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
# Extract the archive
tar -xvzf steamcmd_linux.tar.gz
# Run SteamCMD once to update itself
./steamcmd.sh +login anonymous +quit
Step 2: Get Your Server Hosting Token
You need a hosting token to authenticate your server with Brickadia's backend.
Obtain a Hosting Token
- Go to your Brickadia account page: https://brickadia.com/account
- Navigate to the "Server Hosting" or "Hosting Token" section
- Generate or copy your hosting token
- Save this token securely - you'll need it to start your server
Note: You can also use email/password authentication, but a hosting token is the recommended method.
Step 3: Download the Brickadia Server
Use SteamCMD to download the Brickadia dedicated server files.
# Create a directory for your server
mkdir -p ~/brickadia-server
cd ~/steamcmd
# Download the Brickadia server (App ID: 3017590)
./steamcmd.sh \
+force_install_dir ~/brickadia-server \
+login anonymous \
+app_update 3017590 validate \
+quit
For beta branches:
./steamcmd.sh \
+force_install_dir ~/brickadia-server \
+login anonymous \
+app_update 3017590 -beta BRANCH_NAME validate \
+quit
The server files will be installed to ~/brickadia-server/Brickadia/
Step 4: Create Server Configuration
Create Server Directory Structure
# Create the server working directory
mkdir -p ~/my-brickadia-server/data/Saved/{Config/LinuxServer,Auth,Worlds,Builds}
cd ~/my-brickadia-server
Create Server Settings File
Create the file data/Saved/Config/LinuxServer/GameUserSettings.ini:
mkdir -p data/Saved/Config/LinuxServer
cat > data/Saved/Config/LinuxServer/GameUserSettings.ini << 'EOF'
[Server__BP_ServerSettings_General_C BP_ServerSettings_General_C]
ServerName=My Brickadia Server
ServerDescription=A dedicated Brickadia server
ServerPassword=
MaxPlayers=20
bPubliclyListed=True
WelcomeMessage="Welcome to my server!"
EOF
Configuration Options:
ServerName: The name displayed in the server browser
ServerDescription: Description shown in server details
ServerPassword: Leave empty for public, or set a password for private servers
MaxPlayers: Maximum number of players (default: 20)
bPubliclyListed: Set to True for public listing, False for unlisted
WelcomeMessage: Message shown to players when they join
Step 5: Run the Server
Basic Server Launch
The server binary is located at:
~/brickadia-server/Brickadia/Binaries/Linux/BrickadiaServer-Linux-Shipping
Minimum launch command:
cd ~/my-brickadia-server
stdbuf --output=L -- \
~/brickadia-server/Brickadia/Binaries/Linux/BrickadiaServer-Linux-Shipping \
-NotInstalled \
-log \
-UserDir="$PWD/data" \
-Token="YOUR_HOSTING_TOKEN_HERE" \
-port=7777 \
-Environment="Plate"
Launch Parameters Explained
| Parameter | Description | Required |
-NotInstalled | Skip installation check | Yes |
-log | Enable detailed logging | Recommended |
-UserDir="path" | Directory for server data (saves, auth, config) | Yes |
-Token="token" | Your hosting token from brickadia.com/account | Yes* |
-User="email" | Your Brickadia email (if not using token) | Yes* |
-Password="password" | Your Brickadia password (if not using token) | Yes* |
-port=7777 | Server port (default: 7777) | Optional |
-Environment="MapName" | Starting map (Plate, Space, Studio, Peaks) | Optional |
-World="WorldName" | Load a saved world instead of a map | Optional |
-OneThread | Use single-threaded mode (for WSL compatibility) | Optional |
*Either -Token OR both -User and -Password are required for authentication.
Available Maps
Choose one of these for the -Environment parameter:
Plate - Flat building plate (default)
Space - Space-themed map
Studio - Indoor studio environment
Peaks - Mountain peaks map
Complete Launch Script
Create a launch script for easy server management:
cat > ~/my-brickadia-server/start.sh << 'EOF'
#!/bin/bash
# Configuration
SERVER_DIR="$HOME/my-brickadia-server"
BRICKADIA_DIR="$HOME/brickadia-server/Brickadia"
BINARY="$BRICKADIA_DIR/Binaries/Linux/BrickadiaServer-Linux-Shipping"
# Server settings
PORT=7777
MAP="Plate"
HOSTING_TOKEN="YOUR_HOSTING_TOKEN_HERE"
# Change to server directory
cd "$SERVER_DIR"
# Launch the server with line-buffered output
stdbuf --output=L -- \
"$BINARY" \
-NotInstalled \
-log \
-UserDir="$SERVER_DIR/data" \
-Token="$HOSTING_TOKEN" \
-port="$PORT" \
-Environment="$MAP"
EOF
chmod +x ~/my-brickadia-server/start.sh
Edit the script to set your hosting token:
nano ~/my-brickadia-server/start.sh
# Replace YOUR_HOSTING_TOKEN_HERE with your actual token
Run the server:
~/my-brickadia-server/start.sh
Step 6: Loading Saved Worlds
To load a saved world instead of a default map:
- Place your
.brdb world file in data/Saved/Worlds/
- Use
-World="WorldName" instead of -Environment="MapName"
Example:
# Assuming you have data/Saved/Worlds/MyWorld.brdb
-World="MyWorld"
Step 7: Updating the Server
To update your server to the latest version, use SteamCMD again:
cd ~/steamcmd
./steamcmd.sh \
+force_install_dir ~/brickadia-server \
+login anonymous \
+app_update 3017590 validate \
+quit
Then restart your server.
Step 8: Running as a Background Service (Optional)
To run your server as a systemd service that starts automatically:
Create Service File
sudo nano /etc/systemd/system/brickadia.service
Add the following content (adjust paths for your user):
[Unit]
Description=Brickadia Dedicated Server
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/home/YOUR_USERNAME/my-brickadia-server
ExecStart=/home/YOUR_USERNAME/my-brickadia-server/start.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable brickadia
sudo systemctl start brickadia
View server logs:
sudo journalctl -u brickadia -f
Control the service:
sudo systemctl stop brickadia # Stop the server
sudo systemctl restart brickadia # Restart the server
sudo systemctl status brickadia # Check server status
Troubleshooting
Missing Libraries
If you get errors about missing libraries, install 32-bit support:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6
Port Already in Use
If port 7777 is in use, change the -port parameter to a different port (e.g., 7778):
-port=7778
Server Not Appearing in Browser
Ensure bPubliclyListed=True in GameUserSettings.ini
Check that your firewall allows incoming connections on your server port:
sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
Authentication Failures
- Verify your hosting token is correct
- Check that you copied the full token without extra spaces
- Ensure your account has server hosting permissions
Advanced Configuration
Environment Variables
You can set these environment variables before launching:
export BRICKADIA_PORT=7777 # Default server port
export BRICKADIA_TOKEN="token" # Your hosting token
export BRICKADIA_WORLD="MyWorld" # Auto-load a world
Custom Launch Arguments
Add custom arguments to the launch command:
# Example: Limit FPS to reduce CPU usage
-UseFixedFrameRate -FixedFPS=30
# Example: Disable steam networking
-NoSteam
Multiple Servers
To run multiple servers on the same machine:
- Create separate server directories
- Use different ports for each server
- Use different
-UserDir paths
Example:
# Server 1
cd ~/brickadia-server-1
./start.sh # Uses port 7777
# Server 2
cd ~/brickadia-server-2
./start.sh # Edit to use port 7778
Resources
File Structure Summary
~/my-brickadia-server/
├── start.sh # Your launch script
└── data/ # Server data directory (-UserDir)
└── Saved/
├── Config/LinuxServer/
│ └── GameUserSettings.ini # Server configuration
├── Auth/ # Authentication files (auto-generated)
│ ├── OfflinePayload.bin
│ ├── OfflineSignature.bin
│ └── SessionToken.bin
├── Worlds/ # Saved worlds (.brdb files)
└── Builds/ # Saved brick builds
~/brickadia-server/ # SteamCMD install directory
└── Brickadia/
└── Binaries/Linux/
└── BrickadiaServer-Linux-Shipping # Server executable