Known Issues
This page collects known engine/packaging issues that affect mod builds and their fixes.
UE 5.8 packaging defaults
Unreal Engine 5.8 changed two cook/packaging defaults that break mod builds out of the box. Both are fixed with two lines in your project's Config/DefaultGame.ini, under the ProjectPackagingSettings section:
[/Script/UnrealEd.ProjectPackagingSettings]
bUseZenStore=False
+DirectoriesToNeverCook=(Path="/Landmass/Landscape/BlueprintBrushes")
These are project-level settings, not per-mod. Add them once to the game project that hosts ModKit and every mod built from that project is covered. Creating a new mod does not require re-adding them.
If the section [/Script/UnrealEd.ProjectPackagingSettings] already exists in your DefaultGame.ini, just add the two lines inside it — don't create a second section.
Problem 1 — Cook succeeds but no PAK is produced
Symptom
The mod build reports the cook as successful, then fails at the PAK step with:
LogModKitBuild: Error: Cooked dir not found (did cook succeed?):
.../Saved/Cooked/Windows/<Project>/Plugins/<Mod>/Content
In the cook log you'll also see the cook writing to a package store instead of loose files:
LogZenStoreWriter: Display: Fetched '…' package(s) from oplog
LogCook: Display: Found … cooked package(s) in package store.
LogCook: Display: Cooked packages 0 Packages Remain …
Cause
UE 5.8's engine default is bUseZenStore=True (BaseEngine/BaseGame.ini). With Zen enabled, the cook streams its output into the Zen storage server and writes no loose .uasset/.uexp files. The ModKit build pipeline packages a mod from loose cooked files on disk, so it finds nothing to pack.
Earlier engine versions (5.4 and below) defaulted to loose-file cooking, which is why this only appears after migrating a project to 5.8.
Fix
bUseZenStore=False
This forces the legacy loose-file cook writer. The cooked files then appear under Saved/Cooked/<Platform>/<Project>/Plugins/<Mod>/Content, exactly where ModKit expects them.
If you already ran a cook before applying this, delete Saved/Cooked/<Platform> once so the next build produces a clean loose-file cook instead of reusing stale Zen artifacts.
No. bUseZenStore (where the cook writes its intermediate output) and bUseIoStore (the final container format) are independent. IoStore .utoc/.ucas containers are built from the loose cooked files, so bUseZenStore=False and bUseIoStore=True work together. See IoStore Support.
Problem 2 — Cook fails on Landmass editor-only content
Symptom
The cook aborts with a wall of errors like:
LogCook: Error: Content is missing from cook. Source package referenced an object
in target package but the target package was marked NeverCook or is not cookable
for the target platform.
Source package: /Landmass/Landscape/BlueprintBrushes/Materials/Internal/BrushBounds
Target package: /Engine/EditorMaterials/TilingAALineIntegral
SourceInstigator: { StartupPackage } -> /Landmass/Landscape/BlueprintBrushes/...
Other source packages you may see: /Landmass/Landscape/BlueprintBrushes/Materials/Sprite/M_BrushSprite_01, referencing /Engine/EditorResources/S_Terrain, /Engine/EditorMaterials/TilingAAGrid, etc.
Cause
When the Landmass plugin is enabled, its landscape blueprint-brush materials reference editor-only assets (/Engine/EditorMaterials/*, S_Terrain) that are marked NeverCook. These brush materials are pulled into the cook as startup packages ({ StartupPackage }), independent of your mod's content, and the cook fails because the referenced editor assets can't be cooked for a shipping platform.
This has nothing to do with your mod — it's the host project's enabled engine plugins.
Fix
+DirectoriesToNeverCook=(Path="/Landmass/Landscape/BlueprintBrushes")
This excludes the offending source packages from the cook, so the dangling editor-only references disappear. It only affects cooking — the Landmass landscape tools still work normally in the editor.
If you see the same Content is missing from cook error for a different Source package (from another enabled plugin), add another +DirectoriesToNeverCook=(Path="/<Plugin>/<Folder>") line for that directory.
Verifying the fix
After adding both lines, re-run the mod build. A healthy cook writes loose files and the PAK step finds them:
LogModKitBuild: [<Mod>] PAK type: Type 2 (plugin content) - mount: ../../Plugins/<Mod>/Content/
LogModKitBuild: Running UnrealPak: …/UnrealPak.exe "…/<Mod>.pak" -Create=…
LogModKitBuild: Cook succeeded.