Skip to main content

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:

Config/DefaultGame.ini
[/Script/UnrealEd.ProjectPackagingSettings]
bUseZenStore=False
+DirectoriesToNeverCook=(Path="/Landmass/Landscape/BlueprintBrushes")
Where to put this

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.

Clean stale Zen output

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.

Does this break IoStore?

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.

Other plugins can trigger the same error

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.