Jump to content

A short guide on Unreal Engine 4 modding


r457

Recommended Posts

Greetings everyone,


We are Orange and Blue from Army of Two also known as r457 and gh057. We were getting several requests recently to explain how to mod Aliens: Dark Descent, so we set aside some time and put together this short guide on Unreal Engine 4 modding for games with no official mod support.


It is not a step by step guide on how to make a mod. It's a general info on UE4 modding and where to look for information and tools.


The most important part: to mod an UE4 game you need to know how UE4 works. And it means not just knowing which button to push in the editor. If you don't know anything about Unreal Engine, install it now and go check their knowledge base:



Complete all the beginner courses like First hour in Unreal Engine (doesn't matter that much at this point if it's UE4 or UE5). If you got errors, got stuck several times and had to resolve problems - that's good, it means you were actually learning something.


When you feel confident with basic unreal data structure and core concepts, you can start looking into modifying an existing game. A good place to start is here:


It should give you general understanding of the current modding capabilities as well as an ability to judge how moddable a game is.


UE modding tools are in numbers, but many are situational. Some are useful for some games, some for the others. There are almost no universal solutions for each and every game (apart from texture extractors) - you will need to try everything yourself. Starting place:



Most of the time you will start by unpacking the game. Quickbms is the most commonly used tool for that. You can also use native UE packer-unpacker. Some games might have custom serialization code. Some might use encryption. It's solvable, but you will need to search for it on the Internet yourself.


If the game is using pak and not ucas/utoc and you only need to change some numbers, you might be able to do it easily with Asset Editor/UAssetGUI and UnrealPak. Again, if the game uses custom serialization, asset editors might fail and you will need to do it manually using tools like HxD.


Everything else requires recreating a "dummy" project file for the game. If you learned about unreal packaging, you should realize by now that you don't actually need fully functioning sources (though modders wouldn't mind having them) - you need properly named references. It means you need definitions of custom classes, blueprints, etc and whatever is inside them. If you're trying to mod a popular game, chances are high someone will make such a project file available for the community in the first several days. If it's not the case, you will have to do it yourself.


UE4SS and it's ability do dump classes and objects is your main tool here. Here's the relevant part of its documentation: https://ue4ss-re.github.io/docs/guides/generating-uht-compatible-headers.html

For simple edits you might skip generating the full project and just manually create several c++ classes and blueprints you need containing only the variables and functions you intend to use.


You might be thinking "but how do I know what the game is using?" and yes, that's the main problem of modding. For that you will need to learn UE4SS, read script dumps, read (often partially) decompiled assets with tools like FModel. It's a process of looking through game files, trying to understand what they do and how they all work together. At this point general programming knowledge and good UE knowledge will be invaluable.


If you went the route of generating the whole UE project, keep in mind that the tools are not perfect and what they will give you won't compile. Your first step will be to go through all the c++ errors and resolve them one by one - Internet and UE dev forums are the place to look for help on those. Then your project will most probably give you errors when trying to package it - the process will be the same: one by one, searching for potential culprits and editing project files.


Another step is actually getting your new code into the game. For that several methods exist - from dll hooks (unsafe for obvious reasons) to various native loaders. At this point you should understand such UE core concepts as game instance and game mode and how to set them up. In most cases you can change the reference to one of those core objects in the ini file of the game to your custom one which you will make as a child of the game specific one. Which one and what exactly to do will depend on the specifics of a game you're modding.


And finally, when everything is working on your side you will need to make it usable by other people - i.e. think of an easy way of both mod users and mod creators to interface with your loader.


Aliens: Dark Descent is a fairly standard UE game, so it wasn't that much pain to unpack and work with. It's ucas/utoc, so editing numbers in not a trivial task - it's easier (not easy) to recreate the whole data table and just repack it as a patch. You can view the game assets with FModel. UE4SS works too using standard definitions, so you can dump the headers and recreate the UE project. There are several compile errors, but they are solvable.


Since we already made a loader and several mods, we did those steps. You can find project files, our loader and mods sources here: https://www.nexusmods.com/aliensdarkdescent/mods/7


So what are you still looking for, marines? A good picnic spot? Start reading and start writing some code!


Army of Two

07/01/2023

Edited by r457
  • Like 1
Link to comment
Share on other sites

  • 3 months later...

We encourage people to gather here and share their research as it was before with games like XCOM.

Three questions:

 

1: Do you two take mod commissions? Been sitting on an idea. And I don't have the time nor skills to make a mod on my own. The idea is pretty much inline with what can already be done (Looking to the Track On Line mod as an example on modifying what gets used for certain "Skills") to make the game more realistic and less... "Crutched".

 

2: Since the game is way more stable now and bugs aren't a major issue (That I've seen. I play it every day and have had minimal problems, and no game-breakers.) do ya'll plan to make more mods for it despite the Dev and Publishers being silent about anything and everything? I ask this because on your post on the Mod Loader, you mentioned this issue.

Edited by PiAndBlood
Link to comment
Share on other sites

  • 4 months later...

I need a quick tip. I'm modding a game in Unreal 4.26. Is there some easy way to discover whether unused boolproperty names exist that are still operational if added to a Uasset in a game? The reason I ask is I've been learning to mod on a game considered not to be "Mod Friendly" which is Marvel's Midnight Suns.

I've already released one mod since I started learning and the mod works well but I'm now exploring some new possibilities for additional mods. There are some high level character template uassets that dictate certain features the characters are entitled to where certain boolproperties are featured and set to "True". Whereas, other characters, rather than feature the same property being set to "False" simply don't have the boolproperty listed in the template AT ALL. If I add the boolproperty and set it to "True" then they suddenly have that feature available. So this makes me wonder what bool properties were created but not implemented on ANY of the characters and weren't even listed in the templates, period, and how would I discover their existence? Like would there be a repository of all such properties saved to another asset that I haven't discovered? 

Edited by Taerlach
Link to comment
Share on other sites

  • 2 weeks later...

I tried to extract the assets in this game with the Quickbms method last year about a month after it was released. But there wasn't a bms for this game that had been uploaded anywhere, so I was unable to. I also read various posts online about using the UnrealTournament Bms, but I kept getting messages that the game was encrypted whenever I tried. 😞

I tried another method but was only able to extract a few character textures and all of the cutscene FMVs and other motion videos. What bms was used to extract the files? 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...