Support for simple mods - additional / replacement assets: textures, meshes, skeletal meshes

Hi,

I am looking around for an engine to use for a little hobby project I’m planning on developing in the next year or so, and one of the features I would really like to have is a relatively simple mechanism for adding and/or replacing textures, static meshes and, hopefully, even skeletal meshes by the end users. (Note: scripting was left out of the list intentionally, this is not something I need.)

To clarify, I’m OK with the mod/resource pack creation process being not-so-trivial (for example, requiring the modders to download UE and use the editor to pre-process the resources somehow, etc, is fine), but on the end user’s machine I would like the process to be ideally as simple as dropping files in a folder known by the game, then having an in game/pre-launch process for enabling/disabling the use of the individual mods/resource packs.

The problem is only with the loading of the assets; the logic for which of the assets to use in place of the vanilla assets, and which ones to use for creating new items/player skins, etc, and how to do that - that is not the problem.

I’ve been playing around with UE4 in little toy projects and I feel quite comfortable with it, to the point where I’m sure the other aspects of the project won’t be a problem, but the part with using additional assets, besides those that have been cooked & packed by the editor alongside the game - that I’m totally unsure about.

Now, it does seem like there are reasonable solutions for loading textures that were not packed alongside the game from arbitrary data sources ( e.g. A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums ), and for static meshes ( e.g. A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums , GitHub - GameInstitute/RuntimeMeshLoader: RuntimeMeshLoader for UE4 , GitHub - TriAxis-Games/RuntimeMeshComponent: Unreal Engine 4 plugin component for rendering runtime ge ), though they may be not as efficient as using the cooked/packaged assets. But I have not seen something like this for skeletal meshes.

So, my questions are, given that I’m fine with doing things in C++, since that is what will be mostly used for the game anyway, and I’m fine with requiring modders to get and use the UE Editor:

  1. Is something along the lines of the manual “UTexture2D* UImageLoader::CreateTexture” method described in A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums the best I can do for textures?
  2. Is loading the static mesh data manually and treating it basically like a procedurally generated mesh when handing it off to UE the best I can do for static meshes?
  3. Is there, at least theoretically, something equivalent for skeletal meshes?
  4. Is all of the above unnecessary, and there is some way to let UE look for assets in multiple places - the original package distributed with the game, plus any additional packages/locations with resources prepared by UE Editor, that fully take advantage of any offline cooking/optimizations, just like in the original package?
  5. If the answer to #4 is no, is something like that planned for future UE releases? Or is this something that will never happen because of something inherent in the asset packaging/cooking/optimization process, that really requires all the usable assets to be packed at one time, into one package?
  6. Am I confused and totally missing something in my thinking about this?

OK, don’t I feel dumb now. Here is a process that seems to do exactly what I need, & more: A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums

hey @JamesGG is that article available somewhere, the wiki is off, and it is missing from the downloadable zip. or can you give me some info about how to create modding support?

Little late now but if you are looking for this link it is Legacy/Modding: Adding mod-support to your Unreal Engine 4 project | UE4 Community Wiki