Packaging Project: Error missing precompiled manifest for plugin

I am experiencing an issue packaging a project that uses a code plugin I also created.

The steps I have taken are as follows:

  • Created a project
  • Created a project plugin within that project, and developed the plugin
  • Set plugin platform whitelist to Win32 and Win64
  • Confirmed plugin compiles correctly by compiling all platforms in VS, and packaging the plugin in the editor
  • Copied the plugin into Engine/Plugins/Runtime
  • Edited the uplugin file, set engine version and Installed to true
  • Created another project (examples project), enabled the custom plugin
  • Created content in the examples project that uses objects from the code plugin
  • Tested content as working correctly in PIE
  • Successfully cooked examples project in windows

However, when I attempted to package the examples project itself, I receive the following error:

ERROR: Missing precompiled manifest for ‘TestPlugin’. This module was most likely not flagged for being included in a precompiled build - set ‘PrecompileForTargets = PrecompileTargetsType.Any;’ in TestPlugin.build.cs to override

I am unable to resolve this problem.

I tried adding ‘PrecompileForTargets = PrecompileTargetsType.Any’ into the plugin build cs file, but it didn’t make any difference. The uproject file for the example does list the plugin in the Plugins section, which is set to enabled. The uplugin file defines the plugin module, sets the type to runtime, sets loading phase to default, and has the whitelisted platforms.

I am unable to find any other threads regarding “precompiled manifest” other than this one (Packaging is not successful - Platform & Builds - Epic Developer Community Forums), but that doesn’t resolve my problem, because the plugin is already included in the example project.

Has anyone else experienced this issue and know how to resolve it?

Wish I could help, but I want to say that I have experienced the same thing as well.

I will let you know if I figure anything out today.

Hi! And i have this problem…

I had the same issue when I tried to package for Linux.
I fixed it by copying the plugin in the project folder (it may need to be in both folders).

I hope it’ll help you.

7 Likes

Yep, that worked for me! We shouldn’t have to do that anyway, really stupid.

I’m having the
problem. The only “solution” I found is by manualy changing Enabled to false in my .uproject file.
I need to find out more about this issue.

{
“FileVersion”: 3,
“EngineAssociation”: “4.22”,
“Category”: “”,
“Description”: “”,
“Plugins”: [
{
“Name”: “HoudiniEngine”,
“Enabled”: false
}
]
}

The strategy about plugin developing is always changing from UE4.14 to UE4.24, I’ve had enough.

After UE4.20(inclusive), if you want to release your plugin as binary built style, and let users can use your plugins by putting them under project folder, you can try this:

  1. Package your plugin. Open Edit->Plugins, in the plugins list, locate your plugin, click the [package] text, and pick a destination folder, then your plugin will be packaged very well. Notice: this compiling method is more strict than visual studio does, so you may need to modify your c++ code a little bit, especially the #include statements.
  2. After you have packaged your plugin, add bUsePrecompiled = true; to your plugin build.cs file. Save it.
  3. Zip the packaged plugin, send to user.

For me, the above instructions works well for users’ BP projects. But for users’ C++ projects, exactly for Debug configuration C++ project, it not work! Because, the package operation above is only package the Develop/DevelopEditor configuration for your plugin. I was in great pain about this ■■■■. Finally, I choose to modify the UBT C# code to let the package operation also build the Debug/DebugEditor configuration for plugin. If some one need, then I paste the modifications at here.

1 Like

u will lose the plugin content or programmer support when you disable the plugin it is not the solution for engine plugin dev.

your answer is the totally correct answer !!!
Thanks a lot dude!
多谢了 哥们儿~ 帅哥 留个微信吗?哈哈哈

what about Missing precompiled manifest for ‘AdvancedSessions’?
Ive tried what I understand here but with no results? Not using C++

1 Like

can you show how to make this modification. I downloaded someones plugin and Im having this issue. I have no clue how to use C# or where to add this line. Thanks : )

After UE4.24(inclusive), I recommend that users put plugins under (EngineInstalledPath )/Engine/Plugins folder.

Where is this plugin build.cs because I can’t find it anywhere…

go to the folder of your plugin, then to the folder that says “Source” and go to where it says the name of your plugin and you will find the .Build.cs file

Hey if you’re still struggling follow this short video. Take the precompile folders and add it directly to the server folder for your specific Project (309) Missing Precompiled manifest ’ ’ his module was most likely not flagged for being ----- - YouTube

cheers that worked, was the exact issue with Linux here

I just ran into a similar issue and wanted to document the fix since it’s a bit different from above.

I was trying to package an editor-only plugin and was getting the following error:

Missing precompiled manifest for ‘MessageLog’, ‘C:\Program Files\Epic Games\UE_5.3\Engine\Intermediate\Build\Win64\UnrealGame\Shipping\MessageLog\MessageLog.precompiled’. This module was most likely not flagged for being included in a precompiled build - set ‘PrecompileForTargets = PrecompileTargetsType.Any;’ in MessageLog.build.cs to override. If part of a plugin, also check if its ‘Type’ is correct.

The issue in my case was that this plugin needs to depend on UnrealEd module. The fix required 2 changes:

  1. In the [Plugin].Build.cs file conditionally depend on the UnrealEd module:
		if (Target.bCompileAgainstEditor && Target.Configuration != UnrealTargetConfiguration.Shipping)
		{
			PrivateDependencyModuleNames.Add("UnrealEd");
			PrecompileForTargets = PrecompileTargetsType.Any;
		}
  1. In the [Plugin].uplugin file under “Modules” for the plugins main module I had incorrectly set the “Type” to “Runtime” instead of “Editor”.

I’m not completely sure if this is the “correct” way to make a plugin that’s editor-only, but it seems to work.

Minor additions:

  • the solution is indeed to remove editor-only modules from the shipping build in *.build.cs, like by guarding them by
if (Target.bBuildEditor) {}

This should be done for all your modules: as plugins as well as your main game module.

  • this time it took a some time for me to realize what module i have to remove, so note that: UnrealEd and FunctionalTesting does reffer MessageLog and UnrealEdMessages.