Are there any plans for a mod loader of sorts. Or at the minimum giving us a way to combine multiple mods from the workshop without needing to bake it into one mod and letting us deal with the ID conflictions? Currently users are forced to choose one over the other.
basically its up to the server owner to choose a map, add in the mods, and cook it.
Ideally a server owner could pick a mod that is polished in gameplay that matches their needs, attached to a map (or map generator) that meets the goals of the mod collection. Mods can be published and used by any developer, combined and refactored and simply attach to override or extend the base functionality of the engine and its core blueprints. That way devs can continue to enrich the core functionality of the game with out gameplay hackers having to update their settings.
In an ideal scenario you would offload game logic to external services so the server doesn’t have to handle it. I haven’t worked with Unreal for a while but I don’t see why the UI cannot be dynamic and downloaded from rest JSON, think of a auctionhouse that is supported for every server that allows it, you don’t need to place an ATM machine in the game - or at this point hook into any of the core game mechanics unless you want to post an auction (delete inventory item) or collect an auction (add inventory item). The rest of the search, storage, transaction logic for bidding and auction time limits - are all very easily handled by lucene search backends.
This also works for global chat, or perhaps constantly posting your location on the map - so you can have a website showing whatever map you are running but the real-time coordinates of all the players. So many things that can be done with out having to interopt with the core game code that can ultimately change and break downstream forks.
In order to support multiple mods, they would need to change the generic mod functionality they’ve given us to use something else that is similar. I immediately think of a parent/child system of GameData and TestGameMode rather than having modders entirely override these two files. In a Parent/Child method, a hierarchy could be established such that a mod loaded first would be the parent of lower priority mods for GameData and TestGameMode. Hypothetically I think this could work, but the complication of getting this fully to work is a process of somehow ensuring that every other asset a parent has is not replaced by a child or automating a parent/child process for duplicate assets.
Sorry if I am confusing, but it makes sense in my little head
Say you have two mods you want to load, Mod_A and Mod_B. Mod_A is selected to have the highest priority.
Mod_A contains: PrimalGameData_BP_A (all of which are children of the assets in the devkit to allow developers to still be able to push changes that the mods don’t already change)
Mod_B contains: PrimalGameData_BP_B and TestGameMode_B (all of which are children of the assets in the devkit to allow developers to still be able to push changes that the mods don’t already change)
Mod loader loads Mod_A normally as it would for Generic Mods now.
Mod loader then loads Mod_B and sees a duplicate asset by noticing that PrimalGameData_BP_A and PrimalGameData_BP_B both have the same parent. Now for the difficult part, since it detected duplicates, it will now attempt to make a child of PrimalGameData_BP_A and then merge differences from PrimalGameData_BP_B in to PrimalGameData_BP_A_Child. It also sees a second file which is loaded normally.
Mod loader then bakes this super mod together so long as there were no errors along the way.
It is beyond me at the moment to create a tool like this yet, if even possible, but maybe a dev or some other modder can take up the challenge.
Otherwise there may be other methods such as possibly mutators for mods instead, but I do not know anything about them.
Basically that’s how Bethesda’s implementation of Gymbroyo works, so you are onto something. Each mod has a ‘master’ file (the parent), and that mod then overrides any classes/objects/scripts it needs to for that parent. it works well, until you get a LOT of mods, or mods that do different things to the same object. No reason Ark couldn’t act in a similar way (though the conflicting object edits are going to be hard to avoid). Mod loading order would be important, though.
I would be fine with that though, there is really no middle ground for when two mods want to change the same asset - only to give priority to one mod or the other.