tl;dr Need to know the map path? Want to list maps? Check the "Easy approach" (script file) or shell/bash script
Preamble:
The engine uses pak files. Most of the pak files consist of important data for the engine (versioning etc.) but also a single map file. This map file is a *.umap similar to the umap from the editor. Exactly this file is required to open a map. Let's take a look on how to retieve these filenames / file paths.
The trivial approach
Ask the author for the path
The lazy approach
The technical approach (Editor/Git version required)
The easy approach (as long as you have python / Windows executable)
Step by step
.
Drag'n'drop bat / one-liner command
Here is a better usage of the UnrealPak program.
For proper usage in Windows:
The last approach
If any previous approach isn't something for you, let's just face the fact, strings are stored plain text in a pak file.
The bash/shell script (Linux/Mac/Cygwin required)
Note:
Signed/compressed packages might look different. I might check how they look and update the steps
Preamble:
The engine uses pak files. Most of the pak files consist of important data for the engine (versioning etc.) but also a single map file. This map file is a *.umap similar to the umap from the editor. Exactly this file is required to open a map. Let's take a look on how to retieve these filenames / file paths.
The trivial approach
Ask the author for the path

The lazy approach
- Install the file and start the game
- Select any gametype to list that map and start it
- Close the game
- Open your log file
- Windows: %userprofile%\Documents\UnrealTournament\Saved\Logs\UnrealTournament.log
- Linux: ?
- Mac: ?
- Search for the string "LoadMap:" which will forward to a line like this:
The map file is mostly the first parameter until the character "?".LogLoad: LoadMap: /Game/RestrictedAssets/Maps/DM-Outpost23?Name=Player?VersionCheck=1?Hat=
The technical approach (Editor/Git version required)
- Browse to the binaries folder of your editor version of UT:
.UnrealTournamentEditor\Engine\Binaries\Win64\ - Open the command prompt from that path
(hold shift and then rightclick on an empty place, choose "Open command window here")
. - Enter the following line and replace PAKFILE with your full path of your pak file. This file doesn't need to be installed.
[ATTACH=CONFIG]19491[/ATTACH]UnrealPak.exe "PAKFILE" -list
. - This will output a long list of files included in the pak file. Check for a string like this:
LogPakFile:Display: "Content/Maps/DM-MalevolenceUT4-V09.umap" 20240422 bytes.
This is path can be used by replacing "Content/" with "/Game/"
/Game/Maps/DM-MalevolenceUT4-V09.umap
The easy approach (as long as you have python / Windows executable)
Step by step
.
- Setup
- For Windows you can either use python or use the exe file
(Keep in mind: never actually run exe from anyone from the internet)
. - Using Python:
- Download the Python runtime
- Setup your environment
- Download the script file ListMaps.py (from this repo)
- For Windows you can either use python or use the exe file
- Place the file into your Paks folder (or anywhere you like)
- Open the console (in order to start the script) and use the following command
Note:py ./ListMaps.py <FILE|FOLDER> Windows Exe: ListMaps.exe <FILE|FOLDER>
For Windows, you can just drag and drop any file/folder from within the explorer.
. - An output looks like this:
Drag'n'drop bat / one-liner command
Here is a better usage of the UnrealPak program.
- Copy the following line and adjust the path to fit your needs
cmd /S /K " "C:\Program Files\Epic Games\UnrealTournamentEditor\Engine\Binaries\Win64\UnrealPak" "C:\Program Files\Epic Games\UnrealTournamentDev\UnrealTournament\Content\Paks\UnrealTournament-WindowsNoEditor.pak" -list | find ".umap" " - Press Win+R
- Paste the (modified) line and press Enter
- A new Windows prompt will open with the listed maps.
For proper usage in Windows:
- Create a text file and paste the following content (adjust the install location to your needs) [or download this file]
Code:@echo off set InstallLocation=C:\Program Files\Epic Games\UnrealTournamentEditor set UnrealPak=Engine\Binaries\Win64\UnrealPak.exe set file=%* set file=%file:/=\% set file=%file:\\=\% set EXE=%InstallLocation%\%UnrealPak% set EXE=%EXE:\\=\% ECHO.%file%| FIND /I ":\">Nul && ( set file=%file% ) || ( set file=%cd%\%1 ) set file=%file:"=% set file="%file%" echo Maps for %~n1%~x1 echo -------------------------- "%EXE%" %file% -list | find ".umap" echo. pause
- Save as *.bat/*.cmd (such as ListMaps.bat)
- Use it from a command prompt or drag a pak-file onto it
Note: The parameters are automatically quoted.
The last approach
If any previous approach isn't something for you, let's just face the fact, strings are stored plain text in a pak file.
- Just open the pak in a Hex editor or any text editor which opens large files
- Search for ".umap"
- Copy the text to the left (until a NUL character is there)
- That path might look like this:
or for custom maps:UnrealTournament/Content/RestrictedAssets/Tutorials/TUT-WeaponTraining.umap
.Content/RestrictedAssets/Tutorials/TUT-WeaponTraining.umap - There you have your path / name
(keep in mind the path needs to be corrected, replace "Content/" or "UnrealTournament/Content/" with "Game/")
The bash/shell script (Linux/Mac/Cygwin required)
- Create a file and paste the following content (adjust the install location to your needs) [or download this file]
(credits to samarties for his initial script)
Code:#!/bin/bash listmaps() { # Specify map path. inpak=$1 # Retrieve raw map path from file. rawMapPath=$(tac $inpak | grep -m 1 -oUaP "[^\x00]+\x2e\x75\x6d\x61\x70" | grep -m 1 -oUaP ".*[^\x2e\x75\x6d\x61\x70]"); # Replace portions of map path. mapPath=$(echo $rawMapPath | sed "s/^\(UnrealTournament\/\)\?Content/Game/g"); # Generate md5 checksum. mapChecksum=$(md5sum $inpak | awk '{ print $1 }'); echo "$(basename $inpak) $mapPath $mapChecksum"; } args=$@ if [ -d $args ] ; then paksDir=$args for pak in $(find $paksDir -name "*.pak" ! -name "UnrealTournament-*.pak"); do listmaps $pak done else if ! [ -f "$args" ] ; then echo "No such file/folder: $args" return 1 fi listmaps $args fi
- Save as *.sh/*.bash (such as listmaps.sh)
- Use it from a bash/shell/terminal:
You can specify a custom path/file as parameter:bash ./listmaps.sh
Note: You can also set the executable flag in order to call the script directly.bash ./listmaps.sh /my/path/myfile
. - This will output a long list of files with the path and the MD5 checksum:
The output comes in the format of "Filename Filepath Checksum" with each line being a map.
Note:
Signed/compressed packages might look different. I might check how they look and update the steps
Comment