The character moves in editor Play and can jump. You want a friend to try it, but their PC does not have Unreal Engine. This is where you need packaging — gathering the game into a distributable form.
For Windows, it outputs a .exe for launching plus the data the game needs. That output is a separate product from the project open in the editor, so the work includes launching the exported game and confirming it .
This article uses the Third Person template to build a package that runs locally, then ZIPs the whole folder. Doing one pass while your prototype is still small saves preparation right before distribution.
What You'll Learn
- The roles of Build, Cook, Stage, and Package inside packaging
- Setting the map that launches and the maps included in the game
- Verifying in Development and producing Shipping
- The folder you distribute, and how to investigate failures
What happens during packaging?
You choose "Package Project" once in the menu, but several stages run inside.

| Stage | Role |
|---|---|
| Build | Converts the needed code into a program the target OS can run |
| Cook | Converts maps, images, audio, and so on into data usable in the target environment |
| Stage | Gathers the executable and converted data into the output location |
| Package | Bundles the gathered files into something distributable |
Converting code into a runnable form is also called compiling . Cook is also "converting", but on the asset side. Windows and phones handle images and rendering differently, for instance, so it adapts to the environment you use.
The first run takes time for code and shader preparation, cooking, and so on. Some data can be reused afterwards, but the time depends on what changed and on your settings. Do not decide it failed from the wait alone; watch progress and the log.
Tools needed on the development side
If you need to compile C++ code or plugins on Windows, you need a supported compiler and the Windows SDK . An SDK is the set of tools for building programs for that OS.
Using Visual Studio, add "Game development with C++" and the required SDK in the Installer. Supported versions differ by UE version, so check the row for your UE in Epic's official table.
Blueprint templates on Launcher UE can have setups that proceed without an extra C++ development environment. Plugins vary too, depending on whether they need compiling or ship prebuilt. "Adding a plugin always requires Visual Studio" is not a fixed rule.
The map that launches and the maps you include
A packaged build does not look at the level you last had open in the editor. Settings decide which map opens first.
Check Game Default Map
Open "Edit → Project Settings → Maps & Modes".
| Item | When it applies |
|---|---|
| Editor Startup Map | The map opened when the editor launches |
| Game Default Map | The map opened by default when the game launches |
Point Game Default Map at your title level to start there, or at the first stage to drop players straight in. Templates sometimes come preset, but confirm it is what you want to launch.
Leaving it unset, or pointing it at an unintended level, is one cause of a black screen. Even with the right map, though, the visuals will not match your expectations without a camera or player. If fixing the setting changes nothing, move to the troubleshooting section later on.
Include the maps you need
Next find "List of maps to include in a packaged build" under "Project Settings → Packaging" and register the maps you use. Using title, stage, and results levels means including all three (see the level transition article).
Game Default Map specifies where it opens first ; the map list specifies what to include in the game . Separating the two makes "the first screen appeared but I cannot reach the next stage" easier to investigate. Custom build pipelines may use different map specifications, so do the final check with the exported game.

Asset "references" matter for inclusion too
A reference is a connection such as "this map uses this character". Cook gathers the assets it needs from maps and code, but additional specifications and exclusion settings matter too. "Only what is reachable from the startup map" is not a fixed rule.
Watch out especially for logic that builds a string at runtime to decide an asset's location. If the usage is unknown at cook time, the needed data may not be included. Simply choosing an asset for a Blueprint variable does not erase the reference.
To include a group of assets deliberately, specify folders in "Additional Asset Directories to Cook". Confirm why something is missing, then add the range you need. Starting with "Cook everything" tends to pull in unnecessary data as well (see organizing assets and references).
Choosing between Development and Shipping
Build Configuration decides which optimizations and investigation features go into the program. Start by alternating between these two.
| Setting | Suited stage | Difference when verifying |
|---|---|---|
| Development | Verifying during development | Easy to investigate with logs, the console, and debug displays |
| Shipping | Final distribution | Enables optimizations and usually removes the console and many investigation features |
The console is a field for entering commands while the game runs. Print String and debug lines help during development, but what you show players in Shipping is built with UMG and the like (see the UMG introduction).

You can design separate Shipping log output, but with standard settings you cannot expect the same clues as Development. Investigate problems in Development first, then produce Shipping and confirm the same actions in the build you distribute .
Differences in size and speed depend on the project and settings. Do not judge success by "it got N MB smaller".
Hands-On: export the template for Windows
We make a Windows package from the Third Person template where the character walks and jumps. The project is named PackTest here.

1. Prepare a practice level
- Create a Blueprint project with "Games → Third Person". When a Variant is offered, use the basic "None"; extra Starter Content is unnecessary.
- Play the template level and confirm movement and jumping.
- Stop Play and save under a new name as
Content/Maps/L_PackPracticewith "File → Save Current Level As". Carry over the template's floor, Player Start, and GameMode settings. - Place one marker Cube near the player's front and "Save All".
Saving somewhere short and clear such as D:\UE\PackTest also makes paths in the log easier to follow.
2. Set the map and build configuration
Configure the following in "Project Settings".
| Location | Item | Value here |
|---|---|---|
| Maps & Modes | Game Default Map | L_PackPractice |
| Maps & Modes | Editor Startup Map | L_PackPractice (convenient during practice) |
| Packaging | List of maps to include in a packaged build | Add L_PackPractice |
| Packaging | Build Configuration | Development |
| Packaging | Include Prerequisites Installer | On. Confirm what actually ships when distributing |
Prerequisites are the shared components needed to run the game. They differ from development-side Visual Studio; the player's PC may need runtime components too.
3. Run Package Project
- Open "Platforms → Windows" in the toolbar.
- In the build configuration field, confirm "Use Project Setting (Development)" or an explicit "Development" is selected.
- Choose "Package Project".
- Set an output location outside the project, such as
D:\UEBuilds\PackTest\Development.
Item names and ordering shift a little between UE versions. Note whether it uses the project setting or the menu is overriding the configuration.
The notification at bottom right shows progress. On failure, open "Show Output Log". Do not treat it as finished until it completes, even if an exe is visible in the output location.
4. Play outside the editor
Open the finished output location and launch PackTest.exe inside the Windows folder or similar. Folder names can change with the configuration.
L_PackPracticeopens and the Cube you placed is visible.- Directing input at the game window lets you move with WASD and jump with Space.
Alt + F4exits.
Confirming those three means you have a game running separately from editor Play. Windowed versus fullscreen depends on settings, so do not judge success from the display mode.
As a small experiment, move the Cube elsewhere in the editor, save, and launch the old exe again. Until you re-export, the distributed Cube stays where it was. Package again with the same Development settings and it moves to the new position, confirming that "saving the project" and "updating the distributed build" are separate tasks.
5. Launch and confirm Shipping too
Change Build Configuration to Shipping and confirm Shipping is selected in the Platforms menu too. This time package to a different output location from Development, such as D:\UEBuilds\PackTest\Shipping .
Confirm the Cube, movement, jumping, and exiting in the Shipping exe as well. For your own game, also run a full loop of starting from the title, reaching results, and retrying. Do not confuse "Print String does not appear" with "the game logic is not running".
You distribute the whole folder
Standard Windows output looks roughly like this. Actual folder names and file counts vary with settings.

Windows/
├─ PackTest.exe for launching
├─ Engine/ engine-side runtime files
└─ PackTest/
├─ Binaries/ the game's executables and so on
└─ Content/
└─ Paks/ .pak, .utoc, .ucas, and so on
A .pak is a container that bundles data. Setups using "Use Io Store" line up .utoc and .ucas too. Rather than memorizing what each does, what matters first is handling the output as a whole without breaking it up .
Pulling out just the launcher exe leaves the needed data behind. ZIP the entire Windows folder and have the recipient extract all of it before opening the exe. Add a short instruction so they do not run the exe directly from inside the ZIP.
Try it on a PC without UE
Playing the game does not need the UE editor, but it does need supported Windows, GPU, and runtime components. Your development PC may have them while the other person's does not.
After enabling "Include Prerequisites Installer", confirm the installer for the required components is actually in the output. If the other side shows a message about something missing, install it from the bundled installer or another source depending on the message. Checking the setting does not complete the installation on their machine.
Finally, extract the ZIP into another folder and launch it, and if possible try another PC without UE. Adding a short note about "which exe to launch" and "how to move, jump, and exit" keeps first-time recipients from getting lost.
Where to look when it fails
First separate whether the export failed or the exported game misbehaves . You read different logs.

Packaging stopped partway
- Check the failing items under "Message Log → Packaging Results".
- Open the detail from "Show Output Log" or similar and read around the error.
- To read back later, open the original project's
Saved/Logs/or the build log the Output Log points to.
A trailing Unknown Error is a summary meaning "the process failed"; it is not itself the cause. Look before it for SDK names, Blueprint names, or paths to missing files. Search using those specific names plus your UE version.
| Clue in the log | What to check first |
|---|---|
| SDK or compiler not found | Development tools and SDK matching your UE |
| Blueprint compile error | Open the named Blueprint, compile, and fix the error site |
| Asset not found | References after moving or deleting, the specified path, required plugins |
| Writing or saving a file failed | Free space, the output location, permissions, the path in the log |
Packaging completed but the game does not play
Confirm reproduction in the Development build first.
| Symptom | What to check first |
|---|---|
| Black screen | Game Default Map and inclusion. If correct, camera, player spawning, lighting |
| Visible but not controllable | Whether input reaches the game, GameMode and input settings |
| Cannot advance to another level | The destination specification and whether the map is included |
| Some sounds or objects missing | Load errors, references and Cook settings. Also volume and display conditions |
| Exits immediately after launch | The runtime log, messages about missing components, the target PC's supported environment |
| Only Print String is missing | Whether it is Shipping. Production UI display is built separately |
Distinguish the runtime log from the source project's editor log. On Windows, check PackTest/Saved/Logs/ inside the package or %LOCALAPPDATA%\PackTest\Saved\Logs\ . The output location varies with build configuration and how you launch it.
If you cannot find it, open PowerShell in the folder containing the Development exe and launch it while specifying where to save.
.\PackTest.exe -log "-ABSLOG=D:\UEBuilds\PackTest\PackTest-run.log"
Create the folder first and replace it with somewhere you can write. This specifies the runtime log; it does not enable logging features disabled in Shipping. If it stops before logging is ready, no file may appear (see using Print String and logs).
Bonus: getting ready before distribution
Name, icon, and how to exit
The name shown on the window is "Project Displayed Title" under "Project Settings → Description", and the Windows icon is "Game Icon" under "Platforms → Windows". This practice ends with Alt+F4, but a product also needs an exit button and menu.
Output location and rebuild settings
Placing the project and the distributed build in separate folders keeps you from mixing up source data with the finished product. It also avoids accidentally adding the build to your development history (see the Git management article).
"Full Rebuild" redoes the code build from scratch. It is not an all-purpose repair button that clears cooked data or every file in the output location. When something fails, investigate the stage and cause in the log first, then choose what to rebuild.
A full loop, and checking on the destination
Try not just launching but exiting, relaunching, and retrying. If you have automated tests, run them before packaging too and combine them with hands-on checks of the exported game (see the automated testing introduction).
Run through packaging after updating UE or plugins as well. Update procedures are covered in the version upgrade article. Publishing to a store also needs that destination's own registration and upload steps.
Summary
Decide the map that opens first, include the maps and assets you need, and export for Windows. Investigate in Development, confirm the controls in Shipping too, then ZIP the entire output folder.
Once the character moves outside the editor, next confirm it in the recipient's environment. Connecting "I built it on my PC" to "they can play it" completes the first step of distribution.