Module UBT Error ModuleType.External

When I set “Type = ModuleType.External” inside of the plugin’s build.cs file,
on build, there is an error: “‘Plugin’ is not a C++ module (referenced via default plugins → Plugin.uplugin)”

I am using the plugin for including third party include directories.

Wondering how to fix that error.
Thanks.

4 Likes

Like the original poster, I created a blank plugin and modified the .build.cs file according to the directions in the UnrealBuildTool/ThirdPartyLibraries docs.

This instructs us to add a Type = ModuleType.External; statement in the build file’s constructor. With that statement, builds fail with the error posted previously “‘Plugin’ is not a C++ module (reference via default plugins → Plugin.uplugin)”

If I remove the Type assignment, I instead get an unresolved external error when trying to link against the dll for the plugin.

If others have a solution to this build configuration challenge, I’d love to hear it. I’m now looking at the example third party library plugin generated from the plugins panel and will try replicating its configuration (so there is both a dll-generating plugin and a third-party build within the plugin structure).

2 Likes

Sorry, were you able to solve it?
thanks.

1 Like

Hi I am late to the conversation, but I was running into this issue as well. The way I solved it was removing the module name from the .uproject or .uplugin file (in my case, and in the ops case it was in a .uplugin file). After this unreal correctly links with the third-party library and does not complain about the “is not a C++ module” anymore.

Hope this helps anyone!

3 Likes

This fixed things for me, too! I also needed to add a reference to the module within the *.build.cs file(s) that used it for it to work. Got hung up on that for a bit.