Skip to main content

Plugin Upgrades

Whilst it is generally considered bad practice to move live projects to the newest engine versions without waiting for the initial patches to roll out, sometimes an upgrade is required.

Upgrading can be done in multiple ways depending on the complexity of the plugin.

Plugin Engine Version

Each plugin contains an Unreal .uplugin file. Opening this in a text editor like Rider, Notepad, Visual Studio etc...

It will show you the details of the Plugin.

The key line to change is the Engine Version.

engine-version-uplugin.webp

Set this to your Unreal Engines MINOR version. You do not need to add the PATCH version.

For example, 5.3.3 would be 5.3.0. This allows it to work with any 5.3 versions of Unreal.

versioning.webp

Project plugin

Sometimes the easiest way to upgrade a plugin is to simply move it into your project and start the project.

Open your project in a File Explorer and next to the Content folder create a folder called Plugins.

plugins-folder.webp

Cut the plugin from your Engine (or other project) and paste it into this folder.

Finally, delete the Binaries and Intermediate folders. These are automatically generated by Unreal.

warning

Do NOT keep the plugin inside your engine if you are moving it to the project. You will get a lot of errors and misconfigurations.

Now try opening your project. Sometimes, Unreal can automatically build the plugin.

note

You may see an error about Unreal requiring to build the plugins. This is normal, just click Yes.

unreal-build-plugins.webp

C++ Project

Sometimes Unreal won't be able to automatically build the plugin. Whilst there are means around finding out why, sometimes it's easier to build the plugin in other methods.

A popular method is to use an existing C++ based Project and build the plugin that way.

Follow the steps above.

generate-vs-code-files.webp

Instead of opening the project, now generate the Visual Studio Code Files then open the .SLN file in JetBrains Rider or Visual Studio.

Build the project. If all goes well, it should start Unreal Engine with the plugin successfully built.

Unreal Build Tools

If all else fails, you can compile the plugin using the Unreal automated Build Tools.

Firstly, move the plugin outside any Engine AND Project folders. The build tool cannot compile when it exists inside one of these.

Next, you need to find the location of your Unreal Engine install. Now open a Terminal / Command Prompt and CD into your Unreal Engine install then into the Engine / Build / BatchFiles folder.

cd /home/NarrativeUser/Documents/UnrealEngine/5.5.5/Engine/Build/BatchFiles

note

If you need to change drives on Windows, simply type the drive letter and a colon D: for example.

Next, select your system below and modify the command to fit your parameters.

The key parameters are:

  • -Plugin - This is the location of the plugin you are trying to build. It needs to be given the uplugin directly
  • -Package - This is the output location of the plugin you are compiling. This cannot be the same as your plugin and must be a new location (not engine or project either). You do not need to give the uplugin location
  • -TargetedPlatforms - This is the platform you are building for. Unreal will automatically build for other platforms as you publish for that platform. This is just your current platform.

Windows command


./RunUAT.bat -Plugin="YourPluginLocation/YourPlugin.uplugin" -Package="YourOutputLocation" -TargetPlatforms="Win64"

Linux command


./RunUAT.sh -Plugin="YourPluginLocation/YourPlugin.uplugin" -Package="YourOutputLocation" -TargetPlatforms="Linux"

Mac command


./RunUAT.sh -Plugin="YourPluginLocation/YourPlugin.uplugin" -Package="YourOutputLocation" -TargetPlatforms="Mac"

Example command

A real world example for the Narrative Tales plugin is below running a Linux system:


cd /home/NarrativeUser/Documents/Unreal Engine/5.5.0/Engine/Build/BatchFiles;


./RunUAT.sh -Plugin="home/NarrativeUser/Documents/Plugins/Narrative/Narrative.uplugin" -Package="home/NarrativeUser/Documents/Plugins/NewCompiledPlugin" -TargetPlatforms="Linux"