I am trying to write a plugin to rapidly place Actor blueprints (trees) in our maps in the editor.
After trying to make a plugin from various examples I decided to instead copy the UObjectPlugin example.
So I copied it to our project, moved the original to a safe place.
Then scribbled on the UO icon and bring up the editor.
The plugin shows up fine under Installed and has the scribbled on icon.
Then I removed only the UE4Editor-UObjectPlugin.dll
When I run the Unreal Editor it says the dll is missing and I click yes to rebuild it.
The build fails.
The error message is:
LogInit:Warning: Incompatible or missing module: UE4Editor-UObjectPlugin.dll
Running C:/Program Files/Epic Games/4.7/Engine/Binaries/DotNET/UnrealBuildTool.exe tdl Development Win64 -project="C:/GitRepos/tdl/tdl.uproject" -rocket -editorrecompile -progress
Target is up to date.
LogInit:Warning: Still incompatible or missing module: UE4Editor-UObjectPlugin.dll
I sync’d the Visual Studio project files then tell VS to build, and it builds with no errors.
But if I put an intentional typo in IUObjectPlugin.h it still builds fine, which means the plugins area is not viewed as part of the project.
Any ideas?
Solved - Ok, The plugin building process is very picky about names.
My plugin is called ActorPainterPlugin.
So the directory C:\GitRepos\mygame\Plugins\ActorPainterPlugin\Source\ActorPainterPlugin
is critical. The .uplugin file name matters too.
Then in the .uplugin file the name of you plugin matters.
So you have to be VERY consitent in naming or the plugin build does not find any files.
Thus the messages that it is out of data, but nothing builds.
I used the VictoryPlugin as an example and compared my files to the Victory Plugin’s files.
It is a good example of a plugin with two different parts, and shows where names matter in the files.
WARNING - I also ran into the issue where you make the plugin and it does not show up in Visual Studio.
You must pop the menu on your project and “Generate Visual Studio project files”.
1 Like
Additionally, it appears that UBT only pays attention to .cpp files, and ignores .cc files, so be sure to use the .cpp extension for your module files in particular, otherwise UBT will ignore them during the build process.
Looks like this sometime also happens if you are running another instance of build or game in UE editor.
Another note: The UHT (unreal header tool) uses filenames to create class/member names in some places. If your file name case doesn’t match your class/member name case and builds may fail on missing symbols. Source control can bite you here if a file is checked-in with the wrong case.