Unreal Engine 4 and 5 - Update ANY Plugin To ANY Engine Version in less than 10 minutes!
Vložit
- čas přidán 19. 08. 2024
- This is a quick tutorial on how to convert any marketplace plugin to any engine version. Special thanks to / @dlpsdev for this method.
=================
Code:
=================
@echo off
set BATCHFILES="C:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles"
c:
cd %BATCHFILES%
set /p PLUGIN="Plugin directory that includes the .uplugin: "
set PLUGIN=%PLUGIN:"=%
set /p FOLDER="Folder name for the rebuilt plugin: "
RunUAT.bat BuildPlugin -plugin="%PLUGIN%" -package="C:\UnrealProjects\RebuiltPlugins\%FOLDER%"
=================
YOU MUST change the directories to align with where your folders are. So if you installed Unreal Engine to your D:\ drive for example, then you'll need to change line 3 to say d: instead of c: as well as where your BatchFiles folder is located on line 2 for example.
Great Job! This works like a charm! I updated a 4.27 plugin to 5.3. without an issue... At first, I got the "Engine modules cannot be compiled at runtime. Please build through your IDE" error, but that was because I used the 4.27 path instead of the 5.3 path for Batchfiles....
are you sure? There were many changes were made to the code from UE4 to UE5, I followed different video examples and keep getting errors. Will try this one as well.
@@YoungVeteran2023 yea def try it again, after I figured out what was going on, by calling the newest run bat file to update the old bat file, it kinda made more sense to me, and then any random updates you want to do can be done, in notepad or visual studio.
On 02:34 you can use Open file location on context menu.
You're right, I totally missed that :P
ONLY THREE WORDS can describe you. " A LIFE SAVER! "
Great tutorial! Thanks a lot. Works fine with UE 5.
How’d you get it working with UE5? I tried it following every step minus changing the directories to suit me and I just get the error
(The following modules are missing or built with a different engine version:
PowerIKTool
PowerIKRuntime
Engine modules cannot be compiled at runtime. Please build through your IDE.)
I went through every step several times to make sure I was getting it right I’m trying to put it in 5.1 which version are you using?
I tried this method for several plugins already, but it always ends with some C++ compilation error, even when plugin works with 5.2 it fails on 5.3, they always do some uncompatible changes. This is really lucky one that it works even on UE 5 🙂
Because PowerIK is now part of the engine as FullBodyIK node
Good to know :)
Unfortunately, think I am switching back to Unity
If you have your unreal engine installed in another drive (d) the code to help you execute the batch file correctly:
---------------------
@echo off
d:
set BATCHFILES="D:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles"
cd %BATCHFILES%
set /p PLUGIN="Plugin directory that includes the .uplugin: "
set PLUGIN=%PLUGIN:"=%
set /p FOLDER="Folder name for the rebuilt plugin: "
RunUAT.bat BuildPlugin -plugin="%PLUGIN%" -package="C:\UnrealProjects\RebuiltPlugins\%FOLDER%"
---------------------
Where d is the variable holding your name of the drive (ie D:\ E:\ etc). Replace it with your current drive name.
Happy to help
Yes, it is assumed that you would swap out the C: for whatever drive letter you're using. I even highlighted this in the description with the YOU MUST line.
The following modules are missing or built with a different engine version:
AssetsCleaner
Engine modules cannot be compiled at runtime. Please build through your IDE.
Not working unfortunately
When I enter the name it just closes and does nothing
exact same issue - thank you! :)
my cmd dissapears when im finished
That’s the expected behaviour. You can write “pause” without the quotes as the last line if you want it to stay open at the end.
Thank you
Glad I could help :)
Built it manually in the visual studio and it doesn't help
Can't compile Interactive World plugin, everything is correct, "please update your code to the new api before upgrading to the next release" build failed
Oh my finally. I had to create a new ik system for my ue4.27 game which works but isn't perfect (first time) now everything will be great with power ik. Thanks
Update: it didn't work it says following something is missing or built in another engine
I believe Power IK doesn't receive updates as of 4.26 because Control Rig has been made the de-facto method for adding IK to characters. Basically it's deprecated in favor of Control Rig.
Yeah, someone else pointed that out to me as well :)
i didnt understand, where do i select which version of unreal i want to use?
it still doesnt compile
am getting a visual studio code error
hmmm. Make sure you've written everything properly. I'm not really sure how to debug this sort of thing because I haven't had an issue with it.
Interesting. Usually you only get that error when you try to rebuild when launching a project. You sure you followed all the steps correctly? Just FYI, I tried using the Assets Cleaner module myself when I got it for free and it didn't really work as advertized because it couldn't tell what assets weren't being used. On the marketplace it's also supported from 4.23 up to 5.2 though so why are you trying to re-compile a plugin when you can just download it for whatever engine you're using? Are you trying it with 5.3? I've had better luck creating a new blank project and then migrating over the maps that I want to include if you're just trying to strip out unused assets.
Can you update a plugin which I have. I can give it to you and you can update it for me to ue5.3. Actually the problem is I don't have enough space to install visual studio for just one plugin but this plugin cost me too much
Command seems to work but I get the message BUILD FAILED and then it does not work if I place the plugin in the directory of the game's plugin folder
Make sure you've got Visual Studio Community installed and also install the C++ add on for VSC.
howo is that even possible
Seems to not be working, have triple checked the code and directories. Everything normal up until you press 'Enter' in the .bat file after setting it up. Sad, was looking forward to this. Thank you anyway.
Well, it works for 4.27 guaranteed, and someone else has tried it for 5.2, so you might still be doing something wrong.
9:21 I see you have the "MenuStarterKit" Plugin. That's the one I'm trying to install to UE5.2 but when I launch the engine, open plugs , click on it and restart I get the following message: Missing Modules: The following modules are missing or built with a different engine version:
MenuStarterKitPlugin
Engine modules cannot be compiled at runtime. Please build through your IDE.
Admittedly I'm going from UE4.27 to UE5.2 so theres a jump. I've tried this with Visual Studio 19 as well as Visual Studio 22. Any help is appreciated.
OK. So you were successfully able to update the plug-in to 5.2 following my tutorial, but then when you placed the rear compiled plug-in into the plug-ins folder in 5.2 and then tried to activate it inside the plug-ins settings in unreal it gave you this message?
You were sure that you used the 5.2 directory in your batch file when re-compiling the plug-in? Because in my tutorial and the code I put into the description are for doing this with 4.27. So I just want to make sure you didn’t accidentally recompile it with 4.27
@TorQueMoD Thanks for taking the time to reply. Basically I just wanted to know if your are actually able to use the Menu Starter Kit plugin with UE5.2 as I am not. I've tried this about 20 different times following your tutorial very closely. At this point I still get the error above when trying to use the plugin in UE 5.2. When I try to recompile in Visual Studio it says certain functions of the plug in have been depreciated and will not build (ie. "hover over" etc.)
In any event I've decided to go with a different menu system for UE5 and just keep current projects using the plug in at UE4.27. Again thank you for the turorial and for the help.
@@TheB00Man Apologies, I didn't see your reply here. I'm not using UE5 at all right now, so there's a good chance this won't work across engines :(
Awesome. Thanks! Is there a similar process for upgrading projects to a future engine version? I'm curious what your take on that is. (The easiest way to upgrade a project for future versions.)
I haven't started using UE5 (aside from glancing at it briefly), but I wouldn't recommend upgrading from 4 - 5 unless absolutely necessary. Heck, upgrading from some versions of 4 to another version of 4 can be painful. My suggestion is always finish your current project in the engine version you started in, and start a fresh new project in another version if you want :)
In my case I’m going from 5.1.1 to 5.3.1 specifically for improvements made to Geometry Collections. I’ve got the project upgraded already, just was curious what your process would look like if you found you required upgrading an in progress project for whatever reason like I did.
all i get is: "HostProject could not be compiled. Try rebuilding from source manually.", what that mean and what do i need to do now
hmm... Not sure to be honest. I've seen that error before, but I believe it was when I was trying to launch a project. Are you sure you followed everything step by step?
yeah, did the thing you showed, it made a project, but when i try to open it and make it rebuild the plugin, it fails, if i just use the lugin from the new project it made, it doesnt work and says i need to build in IDE same as before@@TorQueMoD
im new to this i had a problem that the .bat file wont work .i didnt install the epic on c: for me its in "l" disk so i neded to change the c: to l: on the 3 line to make it work. but the plugin dont work from 5.0 to 5.3
You can post your batch file here and I can look for any obvious mistakes, but to be honest, I haven't tested it in UE5 yet, so I'm not certain what would cause the issue. Is there a specific error you get?
@@TorQueMoD thanks it did do the .bat file after I changed the 3 line to l: but 5.3 don't open it after I tic the plug-in on ,it say it need to compile from ide or something.
can you try to change the "Procedural Midi" plugin that is free in the marketplace to 5.3 on your system ? just to see if can be done. that is if you have 5.3 on your system. thanks a lot.
Hello, I'm trying to update a UE4.25 to UE5.03 but when I run the bat file I've created (i'm sure I've used my correct directories) it won't finish and it close before creating the updated plugin folder. Can you give me some hints on maybe what I'm doing wrong? Thanks
Far as I know the only reason this would happen is if the directories are wrong. Triple check and try again
@@TorQueMoD Thanks for the answer, I'm sure I've used the correct directories, It stops after some sec after starting the 3/7 process and close the promt. I'm using VS2019 with all the supposed workloads. The Plugin i'm trying to recompile is Windows Audio Capture plugin.
@@TorQueMoD Is it possible for you, if I'll pay for your time, to recompile a project for 5.03 if I sent all the files? Can I contact you directly? Thanks
So confused! - Your Batch file seems to be in "C:\Unreal Projects" (time: 6.31) which has "RebuiltPlugins" and other folders in it, but you are directing to: set BATCHFILES="C:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles" - Help! - I take it I am missing the point completely.
The location of the batch file is irrelevant. You need it to point to the location of your unreal engine install location and then the build and bath files folders. Unless you changed the default install location, it should be in
C:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles
Just browse there with file explorer to check.
Hi ! Got a " 'MainFrame/Public/Interfaces/IMainFrameModule.h' : No such file or directory " error while on 2/6 action while running this script.
have you got an idea ?
Sounds like you didn't get the directory correct. Make sure you're updating the script to point to the location of where your engine is installed.
@@TorQueMoD I’ve checked multiple times unfortunately, it seems to have an issue when trying accessing a file into the folder *he* creates in the export destination (but successfully creates the others). Maybe an issue with the batch files in UE 5.3.2 ? (Porting from 5.2)
But thanks for your answer !
I tried taking a plugin from UE 4.25 and tried to take it to 5.0, do you think that's possible because all I'm getting right now is the common problem that it was created with a different engine version
I haven't tried going from 4 to 5 yet, but it should work. The name of the batch file is irrelevant. It's just for you to know which version you're upgrading to. The important part is that the first line is pointing to the UE5 engine install directory. This is loading the UE5 tool to convert the plugin to UE5.
@@TorQueMoD This is my batch file, everything works, it creates the new plugin and everything, but when I try to open a project with the rebuilt plugin, it doesn't let me, stating that it was created for a different engine version (oh I also didn't forget after everything to change the file to 5.0.0, in case you think that is the problem) Appreciate the help!: @echo off
set BATCHFILES="C:\Program Files\Epic Games\UE_4.25\Engine\Build\BatchFiles"
c:
cd %BATCHFILES%
set /p PLUGIN="Plugin directory that includes the .uplugin: "
set PLUGIN=%PLUGIN:"=%
set /p FOLDER="Folder name for the rebuilt plugin: "
RunUAT.bat BuildPlugin -plugin="%PLUGIN%" -package="C:\Documents\UnrealProjects\RebuiltPlugins\%FOLDER%"
I followed every step and got this
(The following modules are missing or built with a different engine version:
PowerIKTool
PowerIKRuntime
Engine modules cannot be compiled at runtime. Please build through your IDE.)
Strange. I haven't come across a plugin that wouldn't compile yet. Let me give it a shot and I'll let you know.
Everything works on my end. Are you trying to run the Project that's created? You don't need to. Just browse to the folder you specified for where your plugins should be placed after re-building them, open the HostProject folder - Plugins and copy the PowerIK folder. Then open your Unreal 4.27 install folder (C:\Program Files\Epic Games\UE_4.27) then open Engine - Plugins - Marketplace and paste the PowerIK folder in here. Then launch 4.27 and you'll see it listed when you go to Edit - Plugins.
@@TorQueMoD when I enable it from the list it gives me that error. I followed the video step by step multiple times.
bro next time please cut out where you kept messing up. it is highly confusing. appreciate the tutorial regardless though
I leave in the mistakes because it's usually a good way to learn how to fix issues.
@@TorQueMoD understandable. just a little frustrating but it’s ok😂. thanks again for the tutorial, working on it now to convert a 4.17 plugin to 5.2
I did the tutorial (with another plugin), and got this error while compiling:
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(28): error C2679: binary '=': no operator found which takes a right-hand operand of type 'FVector3f' (or there is no acceptable conversion)
\UE_5.2\Engine\Source\Runtime\Core\Public\Math\Vector.h(1185): note: could be 'UE::Math::TVector &UE::Math::TVector::operator =(UE::Math::TVector &&)'
\UE_5.2\Engine\Source\Runtime\Core\Public\Math\Vector.h(1185): note: or 'UE::Math::TVector &UE::Math::TVector::operator =(const UE::Math::TVector &)'
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(28): note: while trying to match the argument list '(UE::Math::TVector, FVector3f)'
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(36): error C2664: 'void USkinnedMeshComponent::GetCurrentRefToLocalMatrices(TArray &,int32) const': cannot convert argument 1 from 'TArray' to 'TArray &'
\UE_5.2\Engine\Source\Runtime\Engine\Classes\Components\SkinnedMeshComponent.h(1169): note: see declaration of 'USkinnedMeshComponent::GetCurrentRefToLocalMatrices'
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(36): note: while trying to match the argument list '(TArray, int32)'
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(37): error C2664: 'void USkeletalMeshComponent::ComputeSkinnedPositions(USkeletalMeshComponent *,TArray &,TArray &,const FSkeletalMeshLODRenderData &,const FSkinWeightVertexBuffer &)': cannot convert argument 2 from 'TArray' to 'TArray &'
\UE_5.2\Engine\Source\Runtime\Engine\Classes\Components\SkeletalMeshComponent.h(1882): note: see declaration of 'USkeletalMeshComponent::ComputeSkinnedPositions'
\HostProject\Plugins\BPLibrary\Source\BPLibrary\Private\BPLibraryFuncs.cpp(37): note: while trying to match the argument list '(USkeletalMeshComponent *, TArray, TArray, const FSkeletalMeshLODRenderData, const FSkinWeightVertexBuffer)
I don't really use C++, so do you have any idea?
Seems like it might be limited to updating plugins to UE 4 only. I’ll have to test it myself when I get a chance but it looks like the error is saying that something isn’t translating across engine versions properly.
cool
Spoiler alert, none of that garbage is necessary. Copy past your old plugin into your new folder, then change the plugin.uplugin with the version of your engine, regenerate solution and that's it.
If that actually works, cool :)
@@TorQueMoD Well maybe you could/should have checked that up to avoid wasting people's time?