{"id":29182574,"url":"https://github.com/jodermo/unrealenginegameserver","last_synced_at":"2026-04-07T21:32:09.319Z","repository":{"id":302062283,"uuid":"1009787647","full_name":"jodermo/UnrealEngineGameServer","owner":"jodermo","description":"Unreal Engine dedicated Linux server as Docker container with included Django backend and database for admin tools and dynamic REST-API","archived":false,"fork":false,"pushed_at":"2025-06-30T11:00:26.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-30T11:34:05.288Z","etag":null,"topics":["backend","bash","build-tool","cpp","django","game","game-development","game-server","linux","postgresql","python","rest-api","unreal-engine"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jodermo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-27T17:58:03.000Z","updated_at":"2025-06-30T11:01:09.000Z","dependencies_parsed_at":"2025-06-30T11:37:09.703Z","dependency_job_id":"e38011de-0ca8-4d8c-89dc-66a88f0ed0db","html_url":"https://github.com/jodermo/UnrealEngineGameServer","commit_stats":null,"previous_names":["jodermo/unrealenginegameserver"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/jodermo/UnrealEngineGameServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jodermo%2FUnrealEngineGameServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jodermo%2FUnrealEngineGameServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jodermo%2FUnrealEngineGameServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jodermo%2FUnrealEngineGameServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jodermo","download_url":"https://codeload.github.com/jodermo/UnrealEngineGameServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jodermo%2FUnrealEngineGameServer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263029214,"owners_count":23402354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","bash","build-tool","cpp","django","game","game-development","game-server","linux","postgresql","python","rest-api","unreal-engine"],"created_at":"2025-07-01T20:06:48.224Z","updated_at":"2026-04-07T21:32:09.299Z","avatar_url":"https://github.com/jodermo.png","language":"Python","readme":"# Unreal Engine Dedicated Server (Dockerized)\r\n\r\n**Author:** [Moritz Petzka](https://github.com/jodermo) • [petzka.com](https://petzka.com) • [info@petzka.com](mailto:info@petzka.com)\r\n\r\nA complete solution for running an Unreal Engine dedicated Linux server as a Docker container with included Django backend and PostgreSQL database for admin tools and dynamic REST API.\r\n\r\n## Features\r\n\r\n- Headless Unreal Engine dedicated server\r\n- Docker and Docker Compose support\r\n- Persistent volumes for saved data/logs\r\n- Configurable map, port, and logging settings\r\n- PostgreSQL database with Django REST API\r\n- Admin interface for server management\r\n- Minimal base image (Ubuntu 22.04)\r\n- Automated build scripts for different scenarios\r\n\r\n## Prerequisites\r\n\r\n- Docker and Docker Compose\r\n- Access to [Unreal Engine GitHub repository](https://www.unrealengine.com/en-US/ue-on-github)\r\n- Linux or WSL with required build tools\r\n- Unreal Engine 5.6+ (recommended)\r\n- Minimum 32GB RAM, 200GB+ free disk space\r\n- Multi-core CPU (8+ cores recommended)\r\n\r\n## Project Structure\r\n\r\n```\r\nUnrealEngineGameServer/            # This repository\r\n    .env                           # Environment configuration\r\n    docker-compose.yml             # Service orchestration\r\n    Dockerfile                     # Server container image\r\n    GameServer.sh                  # Server startup script\r\n    DjangoBackend/                 # Django REST API\r\n        Dockerfile                 # Django container image\r\n        entrypoint.sh              # Django startup script\r\n        config/                    # Django configuration\r\n    Scripts/                       # Build automation scripts\r\n        build.sh                   # Main build script\r\n        check_build.sh             # Build verification\r\n        clear_all.sh               # Clear all builds\r\n        clear_build.sh             # Clear build cache\r\n        clear_engine.sh            # Clear engine cache\r\n        debug_server.sh            # Debug server script\r\n        gen_server_target.sh       # Generate server target\r\n        startup.sh                 # Startup script\r\n    UnrealProjects/                # Source code and builds\r\n        UnrealEngine/              # Engine source code\r\n        \u003cProjectName\u003e/             # Your game project\r\n            Binaries/              # Compiled binaries\r\n            Build/                 # Build output directory\r\n            Config/                # Project configuration\r\n            Content/               # Game content assets\r\n            Source/                # C++ source code\r\n            \u003cProjectName\u003e.uproject # Project file\r\n    logs/                          # Runtime and build logs\r\n        abs/                       # Absolute logs\r\n        crashes/                   # Crash reports\r\n        logs/                      # General logs\r\n        server/                    # Server logs\r\n        ue/                        # Unreal Engine logs\r\n    backups/                       # Database backups\r\n```\r\n\r\n## Quick Start\r\n\r\n### 1. Environment Configuration\r\n\r\nCreate a `.env` file in the project root:\r\n\r\n```env\r\n# Unreal Server Settings\r\nPROJECT_NAME=\u003cProjectName\u003e\r\nUE_PORT=7777\r\nUE_QUERY_PORT=27015\r\nUE_DEBUG=1\r\nUE_LOGGING=1\r\n\r\n# Database Configuration\r\nDB_NAME=uegame\r\nDB_USER=admin\r\nDB_PASSWORD=securepassword\r\n\r\n# Django Admin (Optional)\r\nCREATE_SUPERUSER=1\r\nDJANGO_SUPERUSER_USERNAME=admin\r\nDJANGO_SUPERUSER_EMAIL=admin@example.com\r\nDJANGO_SUPERUSER_PASSWORD=admin123\r\n\r\n# Build Configuration\r\nUNREAL_VERSION=5_6\r\nBUILD_CONFIG=Development # or Shipping\r\nUNREAL_ENGINE_PATH=UnrealProjects/UnrealEngine\r\nPROJECT_DIR=UnrealProjects/\u003cProjectName\u003e\r\nBINARIES_DIR=UnrealProjects/\u003cProjectName\u003e/Binaries\r\nBUILD_DIR=UnrealProjects/\u003cProjectName\u003e/Build\r\nUE_MAPS=/Game/Maps/StartMap,/Game/Maps/FirstLevel # all cooked maps\r\nUE_MAP=/Game/Maps/StartMap # default start map\r\n\r\n# Build Optimization\r\nUBT_NO_UBT_BUILD_ACCELERATOR=1\r\nUE_BUILD_DISABLE_ISPC=1\r\n```\r\n\r\n### 2. Build and Run\r\n\r\n```bash\r\n# Build the containers\r\ndocker-compose build\r\n\r\n# Start all services\r\ndocker-compose up -d\r\n\r\n# View logs\r\ndocker-compose logs -f\r\n```\r\n\r\n### 3. Access Services\r\n\r\n- **Game Server**: UDP port 7777 (configurable)\r\n- **Django Admin**: http://localhost:8000/admin\r\n- **REST API**: http://localhost:8000/api/\r\n- **PostgreSQL**: localhost:5432\r\n\r\n## Complete Setup Guide\r\n\r\n### Step 0: Initial Linux Environment Setup\r\n\r\nBefore beginning with Unreal Engine, ensure your Linux system is properly configured with all required dependencies and tools.\r\n\r\n#### System Requirements Check\r\n```bash\r\n# Check available disk space (need 200GB+ free)\r\ndf -h\r\n\r\n# Check RAM (32GB+ recommended)\r\nfree -h\r\n\r\n# Check CPU cores (8+ recommended)\r\nnproc\r\n\r\n# Check Linux distribution and version\r\nlsb_release -a\r\n```\r\n\r\n#### Update System and Install Base Dependencies\r\n```bash\r\n# Update package lists and upgrade system\r\nsudo apt update \u0026\u0026 sudo apt upgrade -y\r\n\r\n# Install essential development tools\r\nsudo apt install -y \\\r\n    curl wget git vim nano \\\r\n    software-properties-common \\\r\n    apt-transport-https \\\r\n    ca-certificates \\\r\n    gnupg \\\r\n    lsb-release\r\n\r\n# Install build essentials\r\nsudo apt install -y \\\r\n    build-essential \\\r\n    clang \\\r\n    lld \\\r\n    cmake \\\r\n    make \\\r\n    ninja-build \\\r\n    pkg-config\r\n```\r\n\r\n#### Install Unreal Engine Specific Dependencies\r\n```bash\r\n# Install required libraries for UE compilation\r\nsudo apt install -y \\\r\n    libncurses5-dev \\\r\n    libssl-dev \\\r\n    libx11-dev \\\r\n    libxcursor-dev \\\r\n    libxinerama-dev \\\r\n    libxrandr-dev \\\r\n    libxi-dev \\\r\n    libglib2.0-dev \\\r\n    libpulse-dev \\\r\n    libsdl2-dev \\\r\n    libfontconfig1-dev \\\r\n    libfreetype6-dev \\\r\n    libgtk-3-dev \\\r\n    libasound2-dev \\\r\n    libjpeg-dev \\\r\n    libpng-dev \\\r\n    libtiff-dev \\\r\n    libvorbis-dev \\\r\n    libogg-dev \\\r\n    libtheora-dev \\\r\n    libvpx-dev \\\r\n    libxss1 \\\r\n    libgconf-2-4\r\n\r\n# Install additional runtime libraries\r\nsudo apt install -y \\\r\n    libglib2.0-0 \\\r\n    libsm6 \\\r\n    libice6 \\\r\n    libxcomposite1 \\\r\n    libxrender1 \\\r\n    libfontconfig1 \\\r\n    libxtst6 \\\r\n    libxi6 \\\r\n    libnss3 \\\r\n    libatk-bridge2.0-0 \\\r\n    libdrm2 \\\r\n    libxcomposite1 \\\r\n    libxdamage1 \\\r\n    libxrandr2 \\\r\n    libgbm1 \\\r\n    libgtk-3-0 \\\r\n    libasound2\r\n```\r\n\r\n#### Install Mono (Required for UE Build Tools)\r\n```bash\r\n# Add Mono repository\r\nsudo apt install -y dirmngr gnupg apt-transport-https ca-certificates\r\nsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF\r\necho \"deb https://download.mono-project.com/repo/ubuntu stable-focal main\" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list\r\n\r\n# Update and install Mono\r\nsudo apt update\r\nsudo apt install -y mono-devel mono-complete\r\n\r\n# Verify Mono installation\r\nmono --version\r\n```\r\n\r\n#### Install Docker and Docker Compose\r\n```bash\r\n# Remove old Docker versions if they exist\r\nsudo apt remove -y docker docker-engine docker.io containerd runc\r\n\r\n# Add Docker's official GPG key\r\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\r\n\r\n# Add Docker repository\r\necho \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\r\n\r\n# Install Docker Engine\r\nsudo apt update\r\nsudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin\r\n\r\n# Add current user to docker group (avoid using sudo with docker)\r\nsudo usermod -aG docker $USER\r\n\r\n# Verify Docker installation\r\ndocker --version\r\ndocker compose version\r\n\r\n# Test Docker (run this after logging out and back in)\r\ndocker run hello-world\r\n```\r\n\r\n#### Install Additional Build Tools\r\n```bash\r\n# Install Python (needed for some UE scripts)\r\nsudo apt install -y python3 python3-pip python3-dev\r\n\r\n# Install Node.js (for potential web interfaces)\r\ncurl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -\r\nsudo apt install -y nodejs\r\n\r\n# Install additional utilities\r\nsudo apt install -y \\\r\n    dos2unix \\\r\n    unzip \\\r\n    p7zip-full \\\r\n    tree \\\r\n    htop \\\r\n    screen \\\r\n    tmux \\\r\n    netcat-openbsd\r\n```\r\n\r\n#### Configure Git (Required for UE Repository Access)\r\n```bash\r\n# Configure Git with your credentials\r\ngit config --global user.name \"Your Name\"\r\ngit config --global user.email \"your.email@example.com\"\r\n\r\n# Generate SSH key for GitHub (if using SSH)\r\nssh-keygen -t ed25519 -C \"your.email@example.com\"\r\n\r\n# Add SSH key to ssh-agent\r\neval \"$(ssh-agent -s)\"\r\nssh-add ~/.ssh/id_ed25519\r\n\r\n# Display public key to add to GitHub\r\ncat ~/.ssh/id_ed25519.pub\r\n```\r\n\r\n#### Setup Epic Games GitHub Access\r\nBefore proceeding, you must link your Epic Games account to GitHub:\r\n\r\n1. **Link Accounts**: Visit your [Epic Games account page](https://www.epicgames.com/account/connected)\r\n2. **Connect GitHub**: Find the \"Connections\" tab and link your GitHub account\r\n3. **Join Organization**: Check your email for an invitation to join the Epic Games GitHub organization\r\n4. **Accept Invitation**: Accept the invitation to gain access to the UnrealEngine repository\r\n\r\n#### Test GitHub Access\r\n```bash\r\n# Test SSH access to GitHub (if using SSH)\r\nssh -T git@github.com\r\n\r\n# Test HTTPS access (if using HTTPS)\r\ngit ls-remote https://github.com/EpicGames/UnrealEngine.git\r\n\r\n# You should see repository information if access is working\r\n```\r\n\r\n#### Create Project Directory Structure\r\n```bash\r\n# Create main project directory\r\nmkdir -p ~/UnrealEngineGameServer\r\ncd ~/UnrealEngineGameServer\r\n\r\n# Create subdirectories\r\nmkdir -p {logs/{server,crashes,abs,ue},backups,Scripts,DjangoBackend,UnrealProjects}\r\n\r\n# Set proper permissions\r\nchmod 755 ~/UnrealEngineGameServer\r\n```\r\n\r\n#### System Optimization for Large Builds\r\n```bash\r\n# Increase file descriptor limits for large builds\r\necho \"* soft nofile 65536\" | sudo tee -a /etc/security/limits.conf\r\necho \"* hard nofile 65536\" | sudo tee -a /etc/security/limits.conf\r\n\r\n# Increase virtual memory for linking\r\necho \"vm.max_map_count=262144\" | sudo tee -a /etc/sysctl.conf\r\n\r\n# Increase swap if you have less than 32GB RAM\r\nsudo fallocate -l 16G /swapfile\r\nsudo chmod 600 /swapfile\r\nsudo mkswap /swapfile\r\nsudo swapon /swapfile\r\necho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab\r\n\r\n# Apply sysctl changes\r\nsudo sysctl -p\r\n```\r\n\r\n#### Verify Installation\r\n```bash\r\n# Create a verification script\r\ncat \u003c\u003c 'EOF' \u003e ~/verify_setup.sh\r\n#!/bin/bash\r\necho \"=== System Verification ===\"\r\necho \"OS: $(lsb_release -d | cut -f2)\"\r\necho \"Kernel: $(uname -r)\"\r\necho \"CPU Cores: $(nproc)\"\r\necho \"RAM: $(free -h | grep Mem: | awk '{print $2}')\"\r\necho \"Disk Space: $(df -h ~ | tail -1 | awk '{print $4}') available\"\r\necho \"\"\r\necho \"=== Tool Versions ===\"\r\necho \"GCC: $(gcc --version | head -1)\"\r\necho \"Clang: $(clang --version | head -1)\"\r\necho \"CMake: $(cmake --version | head -1)\"\r\necho \"Git: $(git --version)\"\r\necho \"Docker: $(docker --version)\"\r\necho \"Mono: $(mono --version | head -1)\"\r\necho \"\"\r\necho \"=== GitHub Access ===\"\r\nif ssh -T git@github.com 2\u003e\u00261 | grep -q \"successfully authenticated\"; then\r\n    echo \"GitHub SSH: ✓ Working\"\r\nelse\r\n    echo \"GitHub SSH: ✗ Not configured or not working\"\r\nfi\r\necho \"\"\r\necho \"=== Directory Structure ===\"\r\ntree ~/UnrealEngineGameServer -L 2 2\u003e/dev/null || ls -la ~/UnrealEngineGameServer\r\nEOF\r\n\r\nchmod +x ~/verify_setup.sh\r\n~/verify_setup.sh\r\n```\r\n\r\n**Important Notes:**\r\n- Log out and log back in after adding yourself to the docker group\r\n- Ensure you have accepted the Epic Games GitHub organization invitation\r\n- The initial Unreal Engine build will take 4-8 hours depending on your hardware\r\n- Monitor disk space during builds as they can consume 100GB+ temporarily\r\n\r\n### Step 1: Install Prerequisites (Linux/WSL)\r\n\r\n```bash\r\nsudo apt update\r\nsudo apt install -y \\\r\n    clang lld cmake make git build-essential \\\r\n    libncurses5 libssl-dev libx11-dev libxcursor-dev \\\r\n    libxinerama-dev libxrandr-dev libxi-dev \\\r\n    libglib2.0-dev libpulse-dev libsdl2-dev \\\r\n    mono-devel dos2unix unzip wget\r\n```\r\n\r\n### Step 2: Install Unreal Engine\r\n\r\n**Note**: Requires [GitHub access to Epic Games repository](https://www.unrealengine.com/en-US/ue-on-github)\r\n\r\n```bash\r\n# Create project directory\r\nmkdir -p ~/UnrealProjects\r\ncd ~/UnrealProjects\r\n\r\n# Clone Unreal Engine (choose one method)\r\n# Method A: SSH\r\ngit clone --depth=1 -b 5.6 git@github.com:EpicGames/UnrealEngine.git\r\n\r\n# Method B: HTTPS\r\ngit clone --depth=1 -b 5.6 https://github.com/EpicGames/UnrealEngine.git\r\n\r\n# Build Unreal Engine (this takes a long time!)\r\ncd UnrealEngine\r\n./Setup.sh\r\n./GenerateProjectFiles.sh\r\nmake\r\n```\r\n\r\n### Step 3: Install ISPC (Required for UE 5.6)\r\n\r\n```bash\r\n# Download and install ISPC\r\ncd ~/Downloads\r\nwget https://github.com/ispc/ispc/releases/download/v1.21.0/ispc-v1.21.0-linux.tar.gz\r\ntar -xvzf ispc-v1.21.0-linux.tar.gz\r\ncd ispc-v1.21.0-linux\r\n\r\n# Install globally\r\nsudo cp bin/ispc /usr/local/bin/\r\nchmod +x /usr/local/bin/ispc\r\n\r\n# Verify installation\r\nispc --version\r\n```\r\n\r\n### Step 4: Prepare Your Game Project\r\n\r\n```bash\r\n# Copy your project to the UnrealProjects directory\r\nmkdir -p ~/UnrealProjects/\u003cProjectName\u003e\r\n# Copy your Windows project files here or clone from repository\r\n\r\n# Make build scripts executable\r\nchmod +x Scripts/*.sh\r\n```\r\n\r\n### Step 5: Generate Server Target (If Not Exists)\r\n\r\n```bash\r\n./Scripts/gen_server_target.sh\r\n```\r\n\r\nThis creates `\u003cProjectName\u003eServer.Target.cs`:\r\n\r\n```csharp\r\nusing UnrealBuildTool;\r\nusing System.Collections.Generic;\r\n\r\npublic class \u003cProjectName\u003eServerTarget : TargetRules\r\n{\r\n    public \u003cProjectName\u003eServerTarget(TargetInfo Target) : base(Target)\r\n    {\r\n        Type = TargetType.Server;\r\n        DefaultBuildSettings = BuildSettingsVersion.V2;\r\n        IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6;\r\n        ExtraModuleNames.Add(\"\u003cProjectName\u003e\");\r\n    }\r\n}\r\n```\r\n\r\n## Build Scripts Usage\r\n\r\nThe included build scripts provide different build modes for various scenarios:\r\n\r\n```bash\r\n# Rebuild C++ code only (fastest)\r\n./Scripts/build.sh code\r\n\r\n# Blueprint changes only\r\n./Scripts/build.sh blueprints\r\n\r\n# Content-only changes (textures, meshes, etc.)\r\n./Scripts/build.sh content\r\n\r\n# Server binaries only\r\n./Scripts/build.sh server\r\n\r\n# Full package (default - everything)\r\n./Scripts/build.sh full\r\n\r\n# Clean build (removes all cached files)\r\n./Scripts/clean_build.sh\r\n```\r\n\r\n### Build Modes Comparison\r\n\r\n| Mode         | Description                   | Cook | Build | Pak | Archive | Speed    |\r\n|--------------|-------------------------------|------|-------|-----|---------|----------|\r\n| `code`       | C++ only, no content changes | -    | X     | -   | -       | Fastest  |\r\n| `blueprints` | Blueprint changes only        | X    | -     | X   | -       | Fast     |\r\n| `content`    | Content-only changes          | X    | -     | X   | -       | Medium   |\r\n| `server`     | Server binaries only          | -    | X     | -   | -       | Fast     |\r\n| `full`       | Complete cook + pak + archive | X    | X     | X   | X       | Slowest  |\r\n\r\n## Django Backend Configuration\r\n\r\nThe Django backend provides a REST API for game data management and admin interface.\r\n\r\n### Dynamic Entity Generation\r\n\r\nConfigure your game entities in `DjangoBackend/config/entities.json`:\r\n\r\n```json\r\n{\r\n    \"Player\": {\r\n        \"fields\": {\r\n            \"username\": \"CharField(max_length=50, unique=True)\",\r\n            \"email\": \"EmailField()\",\r\n            \"score\": \"IntegerField(default=0)\",\r\n            \"is_active\": \"BooleanField(default=True)\"\r\n        }\r\n    },\r\n    \"Match\": {\r\n        \"fields\": {\r\n            \"match_id\": \"CharField(max_length=32, unique=True)\",\r\n            \"start_time\": \"DateTimeField()\",\r\n            \"end_time\": \"DateTimeField(null=True, blank=True)\",\r\n            \"winner\": \"ForeignKey('Player', on_delete=models.DO_NOTHING, null=True)\"\r\n        }\r\n    }\r\n}\r\n```\r\n\r\nThe system automatically generates:\r\n- Django models\r\n- REST API endpoints\r\n- Admin interface\r\n- Database migrations\r\n\r\n## Troubleshooting\r\n\r\n### ISPC (Intel Implicit SPMD Program Compiler) Issues\r\n\r\n**The most common build issue in UE 5.5+ is ISPC-related errors. Here are the solutions:**\r\n\r\n#### Method 1: Disable ISPC in Build Configuration (Recommended)\r\nFor persistent ISPC errors during engine builds, disable ISPC compilation by editing the build configuration file:\r\n\r\n```bash\r\n# Edit the Linux build configuration\r\nnano ~/UnrealProjects/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/UEBuildLinux.cs\r\n\r\n# Around line 273, change:\r\nTarget.bCompileISPC = true;\r\n# to:\r\nTarget.bCompileISPC = false;\r\n```\r\n\r\n#### Method 2: Install Compatible ISPC Version\r\n```bash\r\n# Download ISPC 1.21.0 (LLVM 15.x compatible with UE 5.6)\r\ncd ~/Downloads\r\nwget https://github.com/ispc/ispc/releases/download/v1.21.0/ispc-v1.21.0-linux.tar.gz\r\ntar -xvzf ispc-v1.21.0-linux.tar.gz\r\ncd ispc-v1.21.0-linux\r\n\r\n# Install globally\r\nsudo cp bin/ispc /usr/local/bin/\r\nchmod +x /usr/local/bin/ispc\r\n\r\n# Verify installation\r\nispc --version\r\n```\r\n\r\n#### Method 3: Environment Variable Override\r\n```bash\r\n# Disable ISPC via environment variable\r\nexport UE_BUILD_DISABLE_ISPC=1\r\n./Scripts/build.sh full\r\n```\r\n\r\n### Docker Memory and Storage Issues\r\n\r\n#### Container Memory Exhaustion\r\nDocker containers don't enforce memory limits by default, which can cause them to consume all available system memory. Add memory limits to your `docker-compose.yml`:\r\n\r\n```yaml\r\nservices:\r\n  ue-game-server:\r\n    # ... other configuration\r\n    mem_limit: 8g  # Adjust based on your system\r\n    memswap_limit: 8g\r\n    deploy:\r\n      resources:\r\n        limits:\r\n          memory: 8G\r\n        reservations:\r\n          memory: 4G\r\n```\r\n\r\n#### Zen Server Storage Issues\r\nFor \"insufficient storage\" errors from Zen server, modify the cache location:\r\n\r\n```bash\r\n# Edit BaseEngine.ini in your Unreal Engine installation\r\nnano ~/UnrealProjects/UnrealEngine/Engine/Config/BaseEngine.ini\r\n\r\n# Find [Zen.AutoLaunch] section and change:\r\nDataPath=%ENGINEVERSIONAGNOSTICINSTALLEDUSERDIR%Zen/Data\r\n# to:\r\nDataPath=%GAMEDIR%/Saved/ZenCache\r\n```\r\n\r\n#### Docker Desktop Storage Limits\r\nIncrease Docker's maximum container disk size to accommodate large Unreal Engine builds:\r\n\r\n```json\r\n// Edit Docker daemon.json (usually in ~/.docker/daemon.json)\r\n{\r\n  \"storage-opts\": [\r\n    \"size=300G\"\r\n  ]\r\n}\r\n```\r\n\r\n### Common Build Issues\r\n\r\n#### Missing Dependencies\r\n```bash\r\nsudo apt-get update \u0026\u0026 sudo apt-get install -y \\\r\n    libglib2.0-0 libsm6 libice6 libxcomposite1 \\\r\n    libxrender1 libfontconfig1 libxss1 libxtst6 libxi6 \\\r\n    libncurses5 libssl-dev libx11-dev libxcursor-dev \\\r\n    libxinerama-dev libxrandr-dev libxi-dev \\\r\n    libglib2.0-dev libpulse-dev libsdl2-dev\r\n```\r\n\r\n#### UE4Server Target Not Found\r\nIf you get \"Couldn't find target rules file for target 'UE4Server'\" error, ensure your server target file exists:\r\n\r\n```bash\r\n# Generate server target if missing\r\n./Scripts/gen_server_target.sh\r\n\r\n# Verify the server target file exists\r\nls -la Source/\u003cProjectName\u003eServer.Target.cs\r\n```\r\n\r\n#### Vulkan/Graphics Driver Issues\r\nFor VulkanRHI crashes in containers, use software rendering:\r\n\r\n```bash\r\n# Add to your GameServer.sh or container startup\r\n-opengl  # Force OpenGL instead of Vulkan\r\n-nullrhi # Use null rendering (no graphics output)\r\n```\r\n\r\n### Build Cache Issues\r\n\r\n#### Complete Clean Build\r\n```bash\r\n# Clean everything and rebuild\r\ncd ~/UnrealProjects/\u003cProjectName\u003e\r\nrm -rf Binaries/ Intermediate/ DerivedDataCache/ Saved/\r\n\r\n# Clean Unreal Engine build cache\r\ncd ~/UnrealProjects/UnrealEngine\r\nrm -rf Engine/Intermediate Engine/Binaries/Linux\r\n\r\n# Rebuild from scratch\r\n./Scripts/clean_build.sh\r\ndocker-compose down -v\r\ndocker-compose up --build\r\n```\r\n\r\n#### Incremental Build Issues\r\n```bash\r\n# For faster incremental builds, only clean project-specific files\r\nrm -rf Binaries/ Intermediate/\r\n# Keep DerivedDataCache/ and Saved/ for faster subsequent builds\r\n```\r\n\r\n### Container Runtime Issues\r\n\r\n#### Server Not Starting\r\n```bash\r\n# Check detailed logs\r\ndocker-compose logs -f ue-game-server\r\n\r\n# Check if binary exists and is executable\r\ndocker-compose exec ue-game-server ls -la ./LinuxServer/\r\ndocker-compose exec ue-game-server file ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development\r\n\r\n# Test binary dependencies\r\ndocker-compose exec ue-game-server ldd ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development\r\n```\r\n\r\n#### Permission Issues\r\n```bash\r\n# Fix ownership issues\r\nsudo chown -R 1000:1000 UnrealProjects/\r\nsudo chown -R 1000:1000 logs/\r\n\r\n# Ensure scripts are executable\r\nchmod +x Scripts/*.sh\r\nchmod +x GameServer.sh\r\n```\r\n\r\n#### Network/Port Issues\r\n```bash\r\n# Check if ports are accessible\r\ndocker-compose exec ue-game-server netstat -tulpn\r\ndocker-compose exec ue-game-server nc -z -u 127.0.0.1 7777\r\n\r\n# Test from host\r\nnc -z -u localhost 7777\r\n```\r\n\r\n### Database Issues\r\n\r\n#### Connection Problems\r\n```bash\r\n# Check database health\r\ndocker-compose exec ue-database pg_isready -U admin -d uegame\r\n\r\n# View database logs\r\ndocker-compose logs ue-database\r\n\r\n# Connect manually to test\r\ndocker-compose exec ue-database psql -U admin -d uegame\r\n```\r\n\r\n#### Django Migration Issues\r\n```bash\r\n# Reset Django database\r\ndocker-compose exec ue-django-backend python manage.py migrate --fake-initial\r\ndocker-compose exec ue-django-backend python manage.py migrate\r\n```\r\n\r\n### Performance Optimization\r\n\r\n#### WSL2 Memory Management\r\nIf using WSL2, create `~/.wslconfig` to limit resource usage:\r\n\r\n```ini\r\n[wsl2]\r\nmemory=8GB\r\nprocessors=4\r\n```\r\n\r\n#### Build Performance\r\n```bash\r\n# Use multiple cores for faster builds\r\nexport MAKEFLAGS=\"-j$(nproc)\"\r\n\r\n# Reduce memory usage during builds\r\nexport UBT_PARALLEL_EXECUTOR=false\r\n```\r\n\r\n### Debugging Tips\r\n\r\n#### Enable Debug Mode\r\n```bash\r\n# Set debug environment variables\r\nUE_DEBUG=1\r\nUE_LOGGING=1\r\nBUILD_CONFIG=Development\r\n\r\n# Run with GDB for crash analysis\r\ndocker-compose exec ue-game-server gdb ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development\r\n```\r\n\r\n#### Monitor Resource Usage\r\n```bash\r\n# Monitor container resources\r\ndocker stats\r\n\r\n# Check disk usage\r\ndocker system df\r\ndocker system prune -a  # Clean unused resources\r\n```\r\n\r\n#### Binary Analysis\r\n```bash\r\n# Check binary dependencies\r\nldd ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development\r\n\r\n# Verify binary architecture\r\nfile ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development\r\n\r\n# Check for symbols\r\nnm ./LinuxServer/\u003cProjectName\u003e/Binaries/Linux/\u003cProjectName\u003eServer-Linux-Development | head\r\n```\r\n\r\n### Performance Optimization\r\n\r\n#### For Development\r\n```bash\r\n# Use development build for faster iteration\r\nBUILD_CONFIG=Development docker-compose up --build\r\n```\r\n\r\n#### For Production\r\n```bash\r\n# Use shipping build for optimal performance\r\nBUILD_CONFIG=Shipping docker-compose up --build\r\n```\r\n\r\n## Maintenance Commands\r\n\r\n```bash\r\n# View real-time logs\r\ndocker-compose logs -f\r\n\r\n# Restart specific service\r\ndocker-compose restart ue-game-server\r\n\r\n# Update containers\r\ndocker-compose pull\r\ndocker-compose up -d\r\n\r\n# Backup database\r\ndocker-compose exec ue-database pg_dump -U admin uegame \u003e backup.sql\r\n\r\n# Clean up unused containers/images\r\ndocker system prune -a\r\n```\r\n\r\n## Advanced Configuration\r\n\r\n### Custom Game Maps\r\nUpdate `.env` to change the default map:\r\n```env\r\nUE_MAP=/Game/Maps/YourMap\r\n```\r\n\r\n### Port Configuration\r\n```env\r\nUE_PORT=7777          # Game port\r\nUE_QUERY_PORT=27015   # Query port\r\n```\r\n\r\n### Logging Configuration\r\n```env\r\nUE_LOGGING=1          # Enable file logging\r\nUE_DEBUG=1            # Enable debug mode with GDB\r\n```\r\n\r\n## Security Considerations\r\n\r\n- Change default database passwords in production\r\n- Use environment-specific `.env` files\r\n- Consider firewall rules for exposed ports\r\n- Regularly update base images and dependencies\r\n- Monitor logs for suspicious activity\r\n\r\n## Support\r\n\r\nFor issues and questions:\r\n- Check the troubleshooting section above\r\n- Review Docker and Unreal Engine logs\r\n- Ensure all prerequisites are installed\r\n- Verify your Unreal Engine GitHub access\r\n\r\n## License\r\n\r\nThis project is provided as-is for educational and development purposes. Unreal Engine usage is subject to Epic Games' licensing terms.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjodermo%2Funrealenginegameserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjodermo%2Funrealenginegameserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjodermo%2Funrealenginegameserver/lists"}