Pre-built unreal plugin integration

Hello,

I’d like to create a pre-built unreal plugin/module, so that a project can be linked to it, without exposing its implementation.

Is it possible to make such a plugin, and if not, what kind of workaround would it require?

[Attachment Removed]

Hi,

From the details attached to your question, I assume you are using the UE 5.5 prebuilt version distributed from the Epic Game Launcher? In this case, this should be possible to create a prebuilt version for your plugin that would work with that launcher build. If you are using a manually built engine from source, this is a different story. Otherwise, once your plugin is packaged, you can remove the source code (I think the -Rocket command options would do that). When plugins are distributed on the Marketplace, the source code is required to allow customers to rebuild the plugin, but in your case, I assume it’s for some internal purpose? Anyways, I didn’t test, I need to install a 5.5 launcher version, but it should go as following:

Build your plugin, from your engine root:

./Engine/Build/BatchFiles/RunUAT.bat BuildPlugin -Plugin="<path>/MyPlugin.uplugin" -Package="<abs_dest_path_for_redist_plugin_outside_engine_tree>" -TargetPlatforms=Win64 -RocketDistribute a folder containing:

- The .uplugin descriptor

- Public headers (Public/*.h) — these must ship; they’re the API surface

- Compiled binaries (Binaries/<Platform>/…) — .dll/.lib/.pdb on Windows, .dylib/.a on Mac, etc.

- Intermediate build records (Intermediate/Build/…/UnrealHeaderTool/ outputs) so consumers don’t have to re-run UHT

- The Build.cs file (consumers still need this — it describes dependencies)

.cpp files and Private/ headers stay on your machine.

Here few useful links:

Give this a try and let me know how it goes. If you are using source builds, they are few possibilities depending on your use case.

Regards,

Patrick

[Attachment Removed]

Hi Patrick, thanks for your answer.

While your solutions will certainly be of help to us, we would also need to add these pre-build plugins to source builds of the engine.

What we would like is to minimally impact (or not impact at all, if possible) the versioning of those projects.

Adding the plugins to the `.gitignore` would not suffice, since they need to be added to the `.uproject`, which cannot be ignored.

If you could help or point us to the right direction, that would be great!

Sincerely,

Alessandro

[Attachment Removed]

Hi,

For a mixture of source engine build and prebuilt plugin, a colleague already responded on this thread: [Content removed] It’s not supported. You might be able to hack around this, but the main issue with an engine built from source and a prebuilt plugin is ABI compatibility. If you modify an engine header used by the plugin, you are likely going to break ABI compatibility. But you have alternatives:

  • If your plugin is barely using UE API, you can prebuild all your secret code in its own library outside UE, then expose your library through a plugin. This is how UE exposes prebuilt third party libraries.
  • If your plugin extensively uses UE API, you can use an installed build. i.e. you prebuild the entire engine from source (including your plugin) like we do to distribute the launcher build. Many teams use this approach to distribute the engine to their artists and anybody that doesn’t need to build the engine. You can update the installed build every night or once a week depending how often you change the engine and your plugin.

Regards,

Patrick

[Attachment Removed]

Hi,

thanks a lot for your answers and the time you dedicated to us.

We’ll figure out what is the best course of action for our case.

Best regards,

Alessandro

[Attachment Removed]