How is engine version determined for projects and plugins?

I am having some problems with the way the UE Editor determines whether a project is the right version or not, including how it determines if the plugins are the right version or not. Essentially it says the versions are different even when they are exactly the same. I built my project and editor from source. I then copied the entire unreal directory to a new one, and ran that copy and then selected my project and the editor said it was a different version.

Being an exact copy I don’t see how it can be a different version, and this is really biting us due to the way we handle installations of the editor in house. We build the editor from source, and maintain one copy for developers to use and another copy is trimmed down and then made available for artists to install locally. We started having a problem where the artist versions were claiming to be different (even though they came from the exact same source), so I started looking into it and that was when I found that I could trigger the probelm simply by making a copy, without even pruning it down.

So the bottom line here is I am trying to understand what mechanism is used to determine if a given project matches a given editor runtime, and the same for plugins in the project.

Still really stuggling with this and it is driving me nuts. I take a set of plugins compiled against the “dev” version, then switch the project to use the “artist” version and boom Unreal complains they are incompatible. They are the same darned thing! Both dev and artist built from the exact same source! Just a copy with some files removed to keep the footprint down.

Have you posted this issue to the AnswerHub?

Honestly no because I’ve never gotten a reply to a post on answerhub ever unless I was reporting a bug.

It is very uclear which avenue to use.

Did you try placing the project folder, with the same name as the uproject file, inside the root UE4 folder?

AFAIK each copy of a custom editor self assigns an unique ID that is written to the registry. This ID is written to the uproject file to let it know which editor installation it’s using. When copying the editor to different paths or machines, each one will get its own installation ID, which will cause problems if you use the same uproject file across different machines.

When the project folder is placed in the root of the UE folder, the project will use that engine instead, regardless of installation ID.