Download

Getting "Building would modify the following engine files" on plugin files I built with the engine

Hey everyone.

I’m trying to build the engine from source from the UE5-main branch

Why I’m doing that is simple, I wanted to add a plugin I bought from the marketplace for a UE4 engine and adapt it to the UE5 API.

That transition was a success.
However, if I need to recompile the binaries and intermediate folder (which I have to do a lot for my c++ project with my team), the unreal build tool wouldn’t allow it because it runs with that command:
UnrealBuildTool.exe Development Win64 -Project="D:/goh-dev 5.0/GoHDevProject.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE

The -NoEngineChanges command say that the .dll and other binary and intermediate files from my plugin would have to recompile and so it gives me an error.

The entire reason of why I’m compiling unreal with the plugin is to avoid to do that. I could create a bat file that would run the following command:
UnrealBuildTool.exe Development Win64 -Project="D:/goh-dev 5.0/GoHDevProject.uproject" -TargetType=Editor -Progress -NoHotReloadFromIDE

But still I’d like my team’s artists and designers to be able to just double click the .uproject and open it.

Why, even with a clean build, are my plugin file marked as built from a different version than the engine it WAS BUILT WITH?!

Does anyone have any clue, insights or places I could check what happened? It is the last thing that is preventing me from having a nice workflow throughout the team. I’ve tried a lot of stuff like building through RunUAT the plugin and drag and drop it in the engine, build the engine with the plugin, without it and there’s nothing that I do that would change the result.

If you’re curious here’s the command I run to build the engine:
Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:WithWin64=true -set:WithLinux=false -set:WithServer=true -set:HostPlatformDDCOnly=false -set:WithWin32=false -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithTVOS=false -set:WithLinuxArm64=false -set:WithPS4=false -set:WithXboxOne=false -set:WithSwitch=false -set:WithLumin=false -set:WithLuminMac=false -set:WithHoloLens=false

At the begining here is what it tells me it uses as SDK for the unrealbuildtool, UAT, buildgraph and so on:
Using bundled DotNet SDK
And when building the editor

Running: D:\unrealprojectfive\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe UnrealEditor Win64 DebugGame -Manifest=D:\unrealprojectfive\Engine\Intermediate\Build\Manifest.xml -nobuilduht -NoHotReload -xgeexport  -NoUBTMakefiles -nobuilduht -precompile -allmodules  -log="D:\unrealprojectfive\Engine\Programs\AutomationTool\Saved\Logs\UBT-UnrealEditor-Win64-DebugGame_2.txt"
  Win64 using Manual SDK 10.0.19041.0

If I disable the plugin, compile the game by double clicking the .uproject, and then activate the plugin, everything works fine, I use the plugin in all it can gives me and it doesn’t crash and works really well on UE5. The real issue are the .dll files marked as dirty or something, forcing the project to not compile.

Thank you to anyone wishing to help or give guidance

1 Like

OK, right when I was about to give up (explaing that post by the by), I DID IT!!!

It works! The files are not marked as dirty and I don’t know exactly why but it’s one of two thing, or both.

To fix it here are the two things I did:

  • I moved the Plugin root folder from Engine\Plugins\Marketplace to Engine\Plugins
  • In the build.cs plugin file, there were some inexisting PublicIncludePaths and PrivateIncludePaths variables that were set to inexisting folders. I removed those entries.

I’ll either send a new post or edit that one to explicitly say if it was either one or both.

Some news… Soon!!!

1 Like

I can’t find the edit button right now for some reason:

So the issue was either both, or either it was the fact the the plugin was inside the Marketplace folder like so :
Engine\Plugins\Marketplace

I tested a build like that without the inexisting folder references inside PublicIncludePaths and PrivateIncludePaths and for some reason, it marks the generated files of my plugin as dirty.

Right now I’m making a build with the inexisting folder references inside the build.cs files. I’ll tell you if it creates more problems or not.

I can confirm that placing the plugin inside a marketplace folder during compilation from source made the .dll files dirty. It wasn’t the missing folders reference inside the .build.cs