I’m making a C++ plugin and I’m building it against version 4.27.2. By that, I mean that I have engine 4.27.2 installed and I have a project, ProductionGameProj, that builds against it, and my plugin is in ProductionGameProj/Plugins
.
I’m interested in giving this plugin to someone else, but when I do (by copying it to their Plugins/
dir in their game project), and their game project is also referencing engine 4.27.2, and then they start the project, they get a dialog that pops up and says…
The following modules are missing or build with a different engine version:
… and if they click “no”, then unreal doesn’t start.
The engine we’re both using is definitely 4.27.2. I can create a new game project and I have the same problem when transplanting the plugin from ProductionGameProj to the new game project. All of our projects have a .uproject file with
"EngineAssociation": "4.27",
My plugin has a .uplugin file with
"EngineVersion": "4.27.0"
I’ve played around with the “EngineVersion” entry in my .uplugin file, and depending on what I put for “EngineVersion”, I’ll either get the “different engine version” pop-up, or I’ll get a popup that says,
The <myplugin> plugin was designed for build X.XX.X. Attempt to load it anyway?
…but unreal still loads if you click “no”.
When I set “EngineVersion” to be:
NOTHING (I get rid of “EngineVersion” in .uplugin) => “The following modules are missing or build with a different engine version”
“4” => “The following modules are missing or build with a different engine version”
“4.26” => “The following modules are missing or build with a different engine version”
“4.27” => “The following modules are missing or build with a different engine version”
“4.26.0” => “The plugin was designed for build 4.26.0. Attempt to load it anyway?”
“4.26.X” (where X is any number) => “The plugin was designed for build 4.26.X. Attempt to load it anyway?”
“4.27.0” => “The following modules are missing or build with a different engine version”
“4.27.1” => “The plugin was designed for build 4.27.1. Attempt to load it anyway?”
“4.27.2” => “The plugin was designed for build 4.27.2. Attempt to load it anyway?”
“4.27.3” => “The plugin was designed for build 4.27.3. Attempt to load it anyway?”
What’s the deal here? Why is my plugin so poisonous? Why is unreal 4.27.2 so unhappy with loading a plugin built against 4.27.2 headers?