the mod support is a very important part of the gaming landscape especially for independent developers, adding mod support to unreal is a very complex task that requires resources that are rarely available in small studios or for solo devs that’s why I think adding official unreal mod support (like an easy way to load uasset in runtime or at launch) would benefit a lot of indie developers and gaming as a whole.
You can define
EXCLUDE_NONPAK_UE_EXTENSIONS = 0 from Build.cs to allow loading uassets outside of pak files.
Those uassets still have to be cooked though, but users can cook assets from a blank project using the same UE version as the game, and then drop them into the game content folder.
Alternatively I think the engine loads all paks present in game folder by default, so you don’t even need that define for assets to be theoretically load-able from custom paks, but I haven’t tested that personally so don’t take my word for it. Also it might not work if you are using pak encryption/signing.
Regarding providing means for users to load those custom assets in some way or another, you could provide ini entries for overridable class paths. Alternatively (or additionally), any scripting language (lua, js…) built on top of the reflection system can be very powerful as well, just like blueprints themselves.
For something even more involved you can provide an editor build of your game, from which users can extend upon, but that pretty much means opening your entire project. There are important legal considerations there, especially if you are using marketplace.
There’s something related I’d like to ask whoever may know : what’s the current state of Modular link mode ? Is it still officially supported in shipping builds ?
UT4 shipped in UE4.15 in modular mode which means instead of a monolithic 200mb exe, every module is built as a dll and linked dynamically. All symbols can be resolved at runtime so you can build dll plugins and load them into the game without requiring any sort of ugly hacks. Even without game source code available, you can build engine-level plugins, and access game systems through the reflection system. In modular mode the FModuleManager arbitrary loads any plugin located in Plugins folder.
I haven’t seen any UE game outside UT ship like this, and there’s little to no documentation online, which is why I’m curious : is it still possible / properly supported in 4.27+ / UE5 ? If anyone knows please comment (and to be clear I’m talking about shipping builds, not editor).
did you got more ressources on your first solution ? that looks interesting