Toolchain for generating Point-of-interests maps of Unreal Tournament levels.
It can obtain almost every UT level made in the past 25 years, by searching for download links in various sources.
- Python 3.10+ with venv
- PHP 8.2+
- Composer
- Git
- Unreal Tournament installation with
UCC.exe
orucc-bin
(OldUnreal) - 7-zip (recommended)
Rename config.yaml.dist
file to config.yaml
. Edit the configuration file,
pointing to folder with Unreal Tournament:
# examples:
main: "C:\\games\\UnrealTournament\\" # Windows
main: "/mnt/sda/UnrealTournament" # Linux
In the cloned directory, run:
python -m venv .venv
.venv/Scripts/activate
python -m pip install pyyaml pyquery patool aiohttp
composer install --working-dir "./renderer/unrealpoi-php"
UnrealPOI runs as a continuous process, which is launched by:
.venv/Scripts/activate
python .
On the first run, the app is going to create a local index of levels available for download. The data is fetched from Unreal Archive's Git repository, and might take up to 20 minutes to process.
An HTTP server is started on the port 39801. The app is ready to take requests for generating maps.
The server provides a single endpoint:
POST /download
The request body consists of a JSON object, containing name of the level to be processed:
{"map": "CTF-Face"}
If the request was successful, a 200 OK response is returned instantly:
{"status": "Download request successful"}
The level is added to the queue, and will be processed in the background.
All the products of the generation will be available in directory Storage/MapContent/(name_of_level), unless configured otherwise.