If you compile Unreal Engine from source and open a project, it might complain that some plugin modules “are missing or built with a difference engine version,” despite being built with the same semantic version.
If your plugin includes its source, rebuild and carry on friend. But if not — if it’s a binaries-only distribution — you need to edit a file to make it work.1
Unreal determines if a plugin is compatible with the engine in
FModuleManager::IsModuleUpToDate. Step through the code and you see that it does so by comparing the plugin build ID with the engine’s.2 Make these build IDs match and your project will open without complaint.
The engine build ID is stored in Engine/Binaries/Win64/UE4Editor.modules. This value is 13144385 in Epic’s 4.25 build. In a version compiled from source it’s a UUID, e.g. 5f645f3f-d8d1-4fbf-a1e6-866a7c8bb809. A plugin’s build ID is likewise stored in PLUGIN_NAME/Binaries/Win64/UE4Editor.modules.3
All you need to do is update the plugin’s UE4Editor.modules file with the engine build ID. Easy peasy.
This scenario — building the engine yourself but lacking the source to plugins you use — is probably rare. Epic’s marketplace guidelines require that plugins include their source to avoid this problem.
Customers should have the plugin source code that’s dependent on Unreal Engine source code so that they may attempt to compile it against source-built versions of the engine.
Replace Win64 with the platform you run Unreal on. ↩