#!/usr/bin/env bash # Builds and packages the game through UAT. Usage: Scripts/build.sh [Platform] [Configuration] [-server] # Scripts/build.sh Win64 Development # -server needs the engine built from source (Decisions OD-04); the launcher build refuses the Server target. set -u UE_ROOT="${UE_ROOT:-D:/UE_5.8}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" PLATFORM="${1:-Win64}" CONFIG="${2:-Development}" TARGET_ARGS="" if [[ "${3:-}" == "-server" || "${1:-}" == "-server" ]]; then if [ ! -f "$UE_ROOT/Engine/Build/SourceDistribution.txt" ]; then echo "The engine at $UE_ROOT is a launcher build; it cannot compile SaltyServer (OD-04). Use the editor's Run Dedicated Server." >&2 exit 1 fi TARGET_ARGS="-server -serverplatform=$PLATFORM -noclient" fi PROJECT_W="$(cygpath -w "$ROOT/Salty.uproject" 2>/dev/null || echo "$ROOT/Salty.uproject")" ARCHIVE_W="$(cygpath -w "$ROOT/Build/$PLATFORM" 2>/dev/null || echo "$ROOT/Build/$PLATFORM")" "$UE_ROOT/Engine/Build/BatchFiles/RunUAT.bat" BuildCookRun -project="$PROJECT_W" -platform="$PLATFORM" \ -clientconfig="$CONFIG" -serverconfig="$CONFIG" -build -cook -stage -pak -archive -archivedirectory="$ARCHIVE_W" \ -nop4 -utf8output $TARGET_ARGS