Why isn't UE4 as moddable as UDK?

While looking through the old UDK documentation I noticed an area on making Mods even Total Conversion mods.

For Unreal Engine games, modifications can be broken down into three categories:

Gameplay - affects the rules of the game
    Mutators - minor tweaks to gameplay rules within a given Game Type or set of Game Types
    Game Types - major rule changes within the game 
Total Conversions - complete overhaul of the game; often built with completely new content
Content Additions - levels, characters, weapons, vehicles 

Now for this to be possible tons of access to different gameplay mechanics has to be given for people to make things as crazy as Air Buccaneers for the old UT2004. I looked around for mod tutorials on UE4 and it seems that developers have to make all this functionality themselves, and even then it barely gives modders access to mechanics of the engine. What has happened to the Unreal Engine why was older mods able to modify more aspects of the game while the new UE4 barely gives access, I am just missing something?

UE4 is more moddable than UDK. You have access to the entire source code of the Engine. Nothing can top that!

However it is up to each game developer to decide how much moddable they want their games to be. They can decide to make it completely moddable/un-moddable if they choose. ARK is a UE4 game that is moddable.

The new Unreal Tournament is open source and you can create any mods for it.

Not all UE3/UDK games were moddable.

I’m questioning though why I would have to modify the source code to make a moddable core like the past versions of the engine. Has it really changed that much?
Even ARK has limits on how you can mod it, you even need to download their SDK. There’s even a bug with the map system that prevents modders from being able to remove certain assets and workarounds need to be made to fix the problem.

I’m more of referring to how the idTech games were just huge core mods and player mods would be loaded on the side after the main game “mod” loaded. Ut2k4 kind of has it more separated but even conversions like Air Buccaneers, Alien Swarm, Red Orchestra, Domain 2049 change core mechanics of the way Unreal Plays without needing source access to the main engine. From what I have seen you have to manually add in handles for mods to utilize.

What I wanted to do was setup a system like what idTech, and UT2003/2004 had where the core game is just one huge mod and then it systematically loads 3rd party mods on the side. Instead of having to make the core gameplay part of the actual engine and then having to give modders access to specific parts, including an SDK like what Ark ended up having to do. This would allow modders to have full control of as much of the game mechanics as the core game mod since they both would be considered “mods”. How would I go about doing this because as of now it looks like you make the main game with Epics tools and specifically expose certain parts to modders where instead I would like to have the entire game function as a mod so there isn’t that separation.

I’m a UE4 Noob still stuck in idTech4, UDK ways. So I probably am missing something on how to expose huge chunks of gameplay to modders.

Having the “sdk” (editor) available for modding should be a huge improvement though. Modern assets are way more complex than loading a mesh and texture, and it would absolutely suck to tweak them by replacing raw files and restarting the game.

There’s also this project, with plans to make modding the way you expect it to work: https://sandbox.facepunch.com/

I see it quite differently.

As a developer you have access to the source code but that doesn’t make the engine moddable in itself

true, but the engine doesn’t make it easy. unless things have changed recently the engine doesn’t help with things like file discovery (i.e. extracting a custom made package somewhere and having the game be aware of it), “understanding” and integration of such external files into the game, actual creation of mod packages, etc. as it is right now it’s not only hard for us at the developer side to make a game moddable, it’s also hard for the end users on the modding side (they pretty much have to become developers themselves)

pretty sure that modifying the source of a game and re-compiling your own game exe doesn’t really qualify as a moddable game. and I hope you’re not implying that making each our games open-source is the proper way to have modding :smiley:

I agree with Chosker. For example, if you have ever played any idTech based game, UT2004, or even Divinity Original Sin they setup a mod loading folder and have a “core base” mod. This mod basically is all the gameplay mechanics of the basegame. Then all the other mod folders load, then the packs. I was hoping to setup the engine to behave in this fashion.

Some games made it so you could load additional packages, but besides that the modable ones usually had a version of the editor available for you to use to modify them.

If you don’t write all of the gameplay mechanics in c++, you could consider the assets in the game content folder to be the “base” mod. There isn’t much missing for good mod support, but it’s also not there yet…

UT had it’s limits too. Ark’s blueprint is more or less the same as UT’s Unrealscript; it serves the exact same purpose.

The limitations on mod SDKs lie largely in what developers choose to make accessible and how - that’s literally where the limitation lies.

I was talking more about the programming side of modding. For example Quake 3 Arena would have you write raw C in 3rd party software and compile it to qvm though an engine compile argument. This raw binary file would be loaded up as the engine started letting you modify or add more gameplay mechanics at a low level without depending on a limited mod API designated to just this purpose.

In the engines I mentioned they put the compiled code in the base mods and load them up to power the gameplay mechanics. idTech engines load “qvm” files (compiled c or ++ files), UT2004 used “u” files now I understand this is just compiled Unreal Script but the concept is still there. Divinity has a scripting system in place as well but the main point I was making was, they all have some form of compiled binary that gets loaded into the engine at runtime from the mods folder and this powers the gameplay.

I was hoping to find some kind of mod loading system for UE4 that gives you enough power to make “total conversions” like Killing Floor, Red Orchestra, Air Buccaneers, Alien Swarm through a robust enough API that the core game was made entirely off it.

The beauty of this is since the main game was made on top of the mod system, modders will have the same level of access (and power) as the devs and not limited access to dedicated mod functions. Since everything was based on the same mod API there won’t be discrepancies and caveats for the modders to deal with. Is there anything like this for UE4, or any ideas on how to implement it?