UE Plugin Migration tool

Hey everyone,

A little context for those who aren’t aware.
I have created a Windows app that recompiles any UE *.uplugin file to any UE version of your choice (example from 4.27 to 5.3 and vice versa).
The app helps to simplify the process of migrating your plugins by doing the heavy lifting for you using a simple UI.
I’ve personally tested it by converting plugins from older UE4 versions to UE5.
Remember is not a flawless app and your mileage might vary, specially if the plugin has some engine dependencies that are exclusive to that version., but for most of the plugins works really well.
I’m happy to announce that the code and application binaries of the version 2.0 are available on my GitHub page.

Remember I have a tutorial posted on YouTube, the app works essentially the same as the one in the video, I only updated the UI to make it much more modern and easy to work with.

Any feedback is well received.
Enjoy!

2 Likes

Hey, thanks for this!

Have you had any luck going forward or backwards from 5.3? I can’t seem to get the .uasset files to show when I move from/to 5.3.

Also, I always get the ~“Plugin built with different engine” message every time I open the engine, even though a migration has been successful. Is there any way to stop that?

Thanks!

Hello
Thank you for this great app. I have successfully compiled Freetrack plugin for UE5.4, however when I tried to repeat the same process for UE5.3 it fails. Looking into the log file, I can’t identify what has gone wrong.
Can you please check my log file to se if you spot anything?
Thank you


Log started at 05/13/2024 09:31:11 (2024-05-13T08:31:11Z)
No config file at C:\Users\jarou\Documents\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml
Configuration will be read from:
C:\Users\jarou\AppData\Roaming\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml
Log file: C:\Users\jarou\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.3\UBT-UnrealEditor-Win64-Development.txt

Setting temp directory to ‘C:\Users\jarou\AppData\Local\Temp\UnrealBuildTool\319625c3’
Registering build platform: UnrealBuildTool.AndroidPlatformFactory
Registering build platform: Android - buildable: False
Registering build platform: UnrealBuildTool.IOSPlatformFactory
Registering build platform: UnrealBuildTool.LinuxPlatformFactory
Registering build platform: UnrealBuildTool.MacPlatformFactory
Registering build platform: UnrealBuildTool.TVOSPlatformFactory
Registering build platform: UnrealBuildTool.WindowsPlatformFactory
Found Windows 10 SDK root at C:\Program Files (x86)\Windows Kits\10 (1)
Found Windows 10 SDK root at C:\Program Files (x86)\Windows Kits\10 (2)
Found Windows 10 SDK version 10.0.22621.0 at C:\Program Files (x86)\Windows Kits\10
Found Universal CRT version 10.0.22621.0 at C:\Program Files (x86)\Windows Kits\10
Win64 Installed SDK(s): MinVersion_Sdk=10.0.00000.0, MaxVersion_Sdk=10.9.99999.0, CurrentVersion_Sdk=10.0.22621.0, Version_AutoSdk=10.0.18362.0, CurrentVersion_AutoSdk=
Registering build platform: Win64 - buildable: True
Command line: “C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll” UnrealEditor Win64 Development “-Project=H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\HostProject.uproject” “-plugin=H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\Plugins\freetrack\freetrack.uplugin” -noubtmakefiles “-manifest=H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\Saved\Manifest-UnrealEditor-Win64-Development.xml” -nohotreload “-log=C:\Users\jarou\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.3\UBT-UnrealEditor-Win64-Development.txt”
Ignoring plugin ‘PythonScriptPlugin’ for platform/configuration
Ignoring plugin ‘XCodeSourceCodeAccess’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘PlanarCut’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘Interchange’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘OnlineSubsystemGooglePlay’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘OnlineSubsystemIOS’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘PythonScriptPlugin’ for platform/configuration
Ignoring plugin ‘XCodeSourceCodeAccess’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘PlanarCut’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘Interchange’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘OnlineSubsystemGooglePlay’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘OnlineSubsystemIOS’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘PythonScriptPlugin’ for platform/configuration
Ignoring plugin ‘XCodeSourceCodeAccess’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘PlanarCut’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘Interchange’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘OnlineSubsystemGooglePlay’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘OnlineSubsystemIOS’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘PythonScriptPlugin’ for platform/configuration
Ignoring plugin ‘XCodeSourceCodeAccess’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘PlanarCut’ for platform/configuration
Ignoring plugin ‘MeshModelingToolsetExp’ for platform/configuration
Ignoring plugin ‘ContentBrowserFileDataSource’ for platform/configuration
Ignoring plugin ‘Interchange’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MediaPlayerEditor’ for platform/configuration
Ignoring plugin ‘MeshModelingToolset’ for platform/configuration
Ignoring plugin ‘OnlineSubsystemGooglePlay’ due to unsupported platform in plugin descriptor
Ignoring plugin ‘OnlineSubsystemIOS’ due to unsupported platform in plugin descriptor
Skipping C:\Program Files\Epic Games\UE_5.3\Engine\Intermediate\Build\BuildRules\UE5Rules.dll: File is installed
Skipping C:\Program Files\Epic Games\UE_5.3\Engine\Intermediate\Build\BuildRules\UE5ProgramRules.dll: File is installed
Compiling H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\Intermediate\Build\BuildRules\HostProjectModuleRules.dll: Assembly does not exist
Adding event matcher: CompileEventMatcher
Adding event matcher: LinkEventMatcher
Adding event matcher: MicrosoftEventMatcher
Adding event matcher: XoreaxEventMatcher
Compiling H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\Plugins\freetrack\Intermediate\Build\BuildRules\freetrackModuleRules.dll: Assembly does not exist
Adding event matcher: CompileEventMatcher
Adding event matcher: LinkEventMatcher
Adding event matcher: MicrosoftEventMatcher
Adding event matcher: XoreaxEventMatcher
Found Visual Studio installation: C:\Program Files\Microsoft Visual Studio\2022\Community (Product=Microsoft.VisualStudio.Product.Community, Version=17.9.34728.123)
Found Visual Studio toolchain: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130 (Family=14.38.33130, FamilyRank=4, Version=14.38.33135, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error=False, Redist=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33135)
Found Visual Studio toolchain: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519 (Family=14.39.33519, FamilyRank=4, Version=14.39.33523, Is64Bit=True, ReleaseChannel=Latest, Architecture=x64, Error=False, Redist=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33135)
Building UnrealEditor - UnrealEditor - Win64 - Development
H:\Unreal Projects\VR_Test_06\Plugins\Migrated\HostProject\Plugins\freetrack\Source\freetrack\freetrack.Build.cs: warning: Referenced directory ‘C:\Program Files\Epic Games\UE_5.3\Engine\Source\freetrack\Public’ does not exist.
Total execution time: 2.09 seconds
Expecting to find a type to be declared in a module rules named ‘TDxUnrealEditor’ in UE5Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.
BuildException: Expecting to find a type to be declared in a module rules named ‘TDxUnrealEditor’ in UE5Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.
at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 480
at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 423
at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 423
at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 423
at UnrealBuildTool.RulesAssembly.CreateModuleRules(String ModuleName, ReadOnlyTargetRules Target, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\RulesAssembly.cs:line 423
at UnrealBuildTool.UEBuildTarget.CreateModuleRulesAndSetDefaults(String ModuleName, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5210
at UnrealBuildTool.UEBuildTarget.FindOrCreateModuleByName(String ModuleName, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5334
at UnrealBuildTool.UEBuildTarget.FindOrCreateCppModuleByName(String ModuleName, String ReferenceChain, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 5471
at UnrealBuildTool.UEBuildTarget.AddPlugin(PluginReferenceDescriptor Reference, String ReferenceChain, String ExcludeFolders, Dictionary2 NameToInstance, Dictionary2 NameToInfos, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 4511
at UnrealBuildTool.UEBuildTarget.SetupPlugins(ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 4312
at UnrealBuildTool.UEBuildTarget.PreBuildSetup(ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 3316
at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, Boolean bSkipRulesCompile, Boolean bForceRulesCompile, Boolean bUsePrecompiled, UnrealIntermediateEnvironment IntermediateEnvironment, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:line 1366
at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 1114
at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 396
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 252
at UnrealBuildTool.UnrealBuildTool.Main(String ArgumentsArray) in C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 659
WriteFileIfChanged() wrote 0 changed files of 0 requested writes.
Timeline:

[ 0.000]
0.000
[ 2.118]

Hi Cesar.
I started having issues after a few UE5.4 release updates… the tool keeps on failing even trying again with plugins I already successfully migrated before their official update was available. Is that a known issue for you? Any update planned anytime soon?
Thanks in advance.

Cheers!

1 Like