What would be a way to Build Shipping UE project, so it would have ability to additionally load C++ files and run data from them with the Built blueprints?
Yes, this technically should be possible, if you didnt notice yet UE4 code is modular in very similar fashion as Linux kernel (if you ever delt with that), when you make C++ project in reality you make extra module which will be added to the engine (so technically you extending the engine itself). Those modules can be dynamically loaded and unloaded as long as you properly initiate on load them and clean up unload, there even console commands for that “module load”, “module unload” and “module list” to list all the modules, there also some other subcommends under “module”, so oyu cna play around and see how it works. As i said your module need proper init and clean up in module class to prevent crashes from sudden dissaperence of you module from memory, module thats made with the project usually omits this by using ready macro, read plugin guides as they usually cover how to set up module class, in general they the only once that cover modules, but you can also use them in the project just insted of doing that in uplugin you do that inside uproject file.
If you distribute module with product it self it is super easy to setup, all you need to do is set loading phase of your module (in uproject or uplugin) to None which will make you module unloaded by default:
And just use FModuleMenager to load it on moment you want, there refrence:
Just remember that assets dependent on that module should not be loaded as they imidietly spawn lot of error is not straight up crash the game. It’s probably better to keep them in sperate package (you can generate them by chunking, i think plugin the laso be cooked to sperate paks) and loaded them together with them module so asset registry wont see them when not needed and nullfy the risk. Packages can be also dynamiclly loaded and unloaded with LoadPackage functions or LoadPackageAsync.
For modules not distributed with the game you need to register the module first in to module manager, by guess is you need to manually to module manager add it with those function:
In both cases you might be interested to also look in plugin system from editor which is also accessible as it is in in Runtime folder which means you can use it in packaged game (i suspect it actully used to manage used plugins in packaged game), this system will also deal with additional dependent content:
This makes things a lot easier to as all you need to do is make a plugin with additional content and manage it using class mentioned above, so i might be the most straight up way to do this
Thanks, i’ll respond when’ll get through the options