On the face of things, the UE Editor and Engine appear to be intentionally separable. However, it appears, the non-standard C++ Reflection System seems to have blended the two halves back together. And if everyone who contributes to the project is not following the exact specification rules for how to maintain the two halves as separate and distinct. Then each time a new Epic release is published. Or each time an existing plugin is updated. Or each time a new plugin is published that you want to consider adding to your project. There is no way to know in advance if it is going to crash the project.
Apparently Epic reviews and compiles the Fab plugin code. Apparently, the plugin writer submits their code to Epic, and Epic compiles it for them. But then, Epic/Fab allows Editor modules to remain in the .Build.cs project files that lead to the two halves not being separable.
Apparently not even the Epic/Fab plugin compiler team knows the rules of how to keep the Editor and Engine separated. And so the transition from binary Editor builds to stand-alone and client and server builds can effectively force you to have to start all over when it comes time to build the game environment via the github source code build of the identical project.
The Reflection System seems to have glued the Editor together with the Engine. And the plugin team at Fab is not maintaining strict enforcement of the rules that must be followed to keep the two halves separable.
Which then seems to generally encourage more naive game developers (newbies) in to using the binary install Editor under the false belief that the switch over to source code builds is as easy as changing the drop down field in the VS 2022 build tools. But it is not.
It almost seems more like a fraudulent corrupted gotcha; a dead fall for those who would begin developing their game without first learning how to maintain the hidden Editor and Engine separability. Which impossibly includes knowing in advance whether the Fab third party plugins also followed the separability rules, before attempting to integrate them using the binary Launcher install.
Otherwise when you later attempt to transition to github source builds. You are confronted by a whole bunch of unexplained linking errors. And all because the rules, for maintaining separability between the Engine and the Editor were not clearly established and rigorously followed.
On my development team, I wouldn’t knowingly allow this type of architectural sabotage to occur, or to be maintained.
I imagine it may be able to be fixed through a well maintained and required set of construction rules that are enforced on the Fab developers prior to allowing plugins to be released on Fab.
I also think that it can be solved by way of splitting the two halves (the Editor and the Engine), then rethinking the interface between the two. So that separability is more cleanly established and maintained as part of the build environment.
My feeling is, for small development teams without deep pockets. The problem of Engine and Editor separability needs to be dealt with up front to avoid unexpected delays down the road. These effects can be seen from often evident project failures that many youtubers have demonstrated, usually after having worked on their game for 1 to 2 years. Their channels just seem to disappear, rather than publishing their game.
Unless the not easily identifiable separability rules are followed, including by all contributors. And for rules that seem to be completely unclear and not enforced by the Fab plugin compiler team. It then is not so that a game that seems to work fine in the Editor. That it will also then work as a stand-alone exe or client/server build by way of Visual Studio compiler.
Maybe the startup rule is: if you are going to eventually need client/server multiplayer, or if you are eventually going to need to compile to stand-alone exe (by way of Visual Studio or probably also LLVM). Then, if so, don’t bother getting started with the binary Launcher install version of the UE Editor.
Rather start with the github source code build. And that way you avoid the false belief that what works in the binary build, will also work in the github source build. And that way up front, you are forced to discover and follow the construction rules that maintain separability between the Engine and the Editor.
Just because your game seems to be working in the UE Editor. It is not true that the features you had working in the Editor will also work in the github source code build for the exact same source code.