@echo off setlocal enabledelayedexpansion echo =================================== echo Eleri - Build, Upload and Notify echo =================================== :: ---- CONFIG — edit these ---- set UE_VERSION=5.8 set PROJECT_PATH=C:\Projects\ProjectEleri\ProjectEleri.uproject set PROJECT_NAME=Eleri set OUTPUT_DIR=C:\Projects\ProjectEleri\BUILD\Debug set MAX_BUILDS=10 set UAT_PATH=C:\Program Files\Epic Games\UE_%UE_VERSION%\Engine\Build\BatchFiles\RunUAT.bat :: ---- ARGUMENTS ---- set BUILD_VERSION=%1 set CHANGELOG=%~2 :: ---- PROMPT IF MISSING ---- if "%BUILD_VERSION%"=="" set /p BUILD_VERSION="Build version (e.g. 1.0.0-build.42): " if "%CHANGELOG%"=="" set /p CHANGELOG="Changelog / notes (optional, press Enter to skip): " :: ---- STEP SELECTION ---- echo. echo Which steps would you like to run? echo 1 - Build only echo 2 - Build + Zip echo. set /p RUN_STEPS="Enter choice (1-2): " if "%RUN_STEPS%"=="" set RUN_STEPS=2 if "%RUN_STEPS%" LSS "1" set RUN_STEPS=2 if "%RUN_STEPS%" GTR "4" set RUN_STEPS=2 echo. echo Running steps 1 through %RUN_STEPS%... set BUILD_TYPE=debug set DEST_FILENAME=%PROJECT_NAME%_%BUILD_VERSION%.zip set BUILD_OUTPUT=%OUTPUT_DIR%\%BUILD_VERSION%% :: ==================================== :: STEP 1 — BUILD :: ==================================== echo. echo [1/2] Building %PROJECT_NAME% in DebugGame mode... echo. call "%UAT_PATH%" BuildCookRun ^ -project="%PROJECT_PATH%" ^ -noP4 ^ -platform=Win64 ^ -clientconfig=DebugGame ^ -cook ^ -build ^ -stage ^ -pak ^ -archive ^ -archivedirectory="%BUILD_OUTPUT%" ^ -prereqs ^ -nodebuginfo set BUILD_EXIT=%errorlevel% echo. echo UAT exited with code: %BUILD_EXIT% if %BUILD_EXIT% neq 0 ( echo ERROR: Build failed! pause exit /b 1 ) echo Build succeeded! if %RUN_STEPS% EQU 1 goto :done :: ==================================== :: STEP 2 — ZIP :: ==================================== echo. echo [2/2] Zipping build... set ZIP_PATH=%OUTPUT_DIR%\%DEST_FILENAME% powershell -Command "Compress-Archive -Path '%BUILD_OUTPUT%\*' -DestinationPath '%ZIP_PATH%' -Force" if %errorlevel% neq 0 ( echo ERROR: Zipping failed. pause & exit /b 1 ) echo Zip created: %ZIP_PATH% echo Build folder kept at: %BUILD_OUTPUT% if %RUN_STEPS% EQU 2 goto :done :: ==================================== :done :: ==================================== echo. echo =================================== echo All done! (ran steps 1-%RUN_STEPS%) echo Build: %DEST_FILENAME% echo =================================== pause