DRG Mods: An Introduction to Modding

Please do not hesitate to ask for help on the DRG Modding Discord in #mod-questions!

Credits:
Rauliken - Originally wrote guide.
Jen Walter - Original guide contributor.
Pacagma - Original guide contributor.
NaturalBornCamper - Original guide contributor.
Akira Fudo - Original guide contributor.
Buckminsterfullerene - Maintains guide and moved to mod.io.
Fancyneer - Update with common issues and new tools.


Contents

  • 1. Introduction and tools
    • 1.1 The basic knowledge
    • 1.2 The basic tools
  • 2. Things to learn before modding
    • 2.1 Unpacked the game's files
    • 2.2 Checking the content of the files
    • 2.3 Using mod_lint to check if your mod will auto-verify
    • 2.4 Packing your mod files
      • 2.4.1 Preparing your project for packaging 
      • 2.4.2 File packing method
      • 2.4.3 Mod installation and uploading
  • 3. How to mod
    • 3.1 Hex mods
    • 3.2 Other mods
  • 4. Common issues and how to solve them
    • 4.1 My mod isn't working/vanilla files are still playing or present
    • 4.2 My mod is crashing when I go to test it
  • 5. Conclusion

1. Introduction and tools

1.1 The basic knowledge

There’s still a lot of things to do in DRG even if you have all the cosmetics and promoted all characters to the max level. Welcome to DRG modding, you are going to like this game even more after learning how to mod it. If you find it too difficult just try the current mods that the modders have released and have some fun. I’m at 1k hours myself and I would have stopped playing if it wasn’t for the amazing mods.

Some VERY IMPORTANT THINGS before starting:

  1. Make sure you’ve read the official info about DRG’s mod support in the links below. I’m not going to go into details here so make sure you read them to understand the basics. The main post here. The FAQ with some additional info here. You can also check the 3 guides created by GSG in the mod.io guides section.
  2. Mods are only hosted here on mod.io. Use the modding menu inside the game to create an account automatically so you can upload your mods.
  3. Your vanilla or modded save files are safe because mods will not corrupt/mess with it unless you use the tools maliciously. If you are concerned about this use the save clone and backup feature that the game provides in the menu.
  4. This guide only covers the bare minimum so if you want to learn more make sure you check all the other guides in the #learn-guides channel in the DRG Modding Discord.

I highly recommend reading sections 1. and 2. from top to bottom if it’s your first time.

1.2 Basic tools

First you are gonna need some tools to start modding. You can find all of the tools explained here on this lovely site. This is an overview of the basic tools, and then in the next section I will show you how to use them.

1. FSD-WindowsNoEditor.pak

This is the main file of the game, which contains all the rest of the files. It’s “paked” with Unreal Engine so we need to extract the files if we want to modify them.

You can find it in …\Program Files (x86)\Steam\steamapps\common\Deep Rock Galactic\FSD\Content\Paks. You obviously need the game installed and NEVER DELETE THIS FILE, just copy it if you need it later. If you don’t know how to access this folder go to Steam library -> right click DRG > Properties > Local Files > Browse Local Files. If you want to make a lot of mods it is recommended to make a dedicated space for the extracted files inside it when we get to that point.

2. DRG Packer

This tool will allow us to extract the files from FSD-WindowsNoEditor.pak and will also let us pack our own files. The files that you extract will have the extensions .uexp and .uasset which are Unreal Engine files. More on this on 2.1 Unpacking the game’s files.

For older users of the guide: you don’t need UEE anymore with the new version of the packer if you just want to make hex mods.

3. UAssetGUI

This is used to see the contents of the files and change values. You are going to need it if you want to make mods that change a value/s inside the game files. There will be an example in 3.1 Hex mods.  If the tools don’t work then you may need to download the .NET Runtime. You can find the Github repository for this open-source tool here.

4. EmptyContentHierarchy

These are all the folders inside an extracted FSD-WindowsNoEditor.pak but empty, just the folders. This will be useful later to pack files and for UEE in other guides. Each major update will have a different one, so make sure you get the one from the most recent version of the DRG Modding tools website.

ech 1

5. UModel

This tool will allow you to extract the audio files, textures, 3D models etc. This is different from DRG Packer because that just extracts the cooked .uexp and .uasset files whereas if you want to dive deeper and get the raw original sounds, textures, etc. you are going to need this. You can find it in the modding tools website as well as at the official website.

6. FModel

This tool will give you "readable" files (JSON) from the .uexp and .uasset pair files. UAssetGUI already parses the files but they may have problems and in my opinion it’s easier to search for that value you want to change in FModel before you edit it. It can also extract raw sounds but not as well or as easily as with UModel. Again, you can find this at their official website.

7. Unreal Engine Editor (UEE)

If you want to make mods to replace audio and textures you need this. You can also create your own Unreal Engine blueprints (which are way more complex than hex editing mods or audio mods but can do more stuff). You can find it here. Unfortunately you need to download the Epic Games Store even though we just want Unreal Engine and not the games but if you want to avoid downloading the store, or use Linux, you will need to build from source, which you can google how to do.

You are going to need to download the version that DRG is made with, which is version 4.27.2.

Go to the Library, add a new version with the + symbol -> click the arrow next to install -> and the version. You only need the basic installation so you can configure it and remove everything but the basic stuff so the installation takes only like 13 GB of storage instead of 30+ GB.

ue

8. Other tools

Those are the main tools you need but there’s way more in the tools channel in the modding discord (tools for specific types of mods, console unlocker, research tools etc).


2. Things to learn before modding

2.1 Unpacking the game's files

First you are going to need to download DRG Packer from our modding tools site. This is our fresh DRG Packer folder after extraction:

drgpacker 1

Now we want to extract all the files from FSD-WindowsNoEditor.pak. Simply copy drag and drop FSD-WindowsNoEditor.pak into _Unpack.bat.

drgpacker 2

Now wait for the extraction to complete. The command line window will say “Press any key to continue…” when it’s done you will see a new folder called FSDWindowsNoEditor. The files of the game are inside it.

We are not going to use the contents of the Engine subfolder and the other folders
inside FSD that are not Content.

You need to re-extract the files again for each update the game receives.

2.2 Checking the content of the files

If you go to the FSD/Content folder, you will find the extracted files. All of these contain the pairs of .uexp and .uasset files that we are going to need.

drgpacker 3

For example, if we go to FSD\Content\WeaponsNTools\FlameThrower we can see all the files for the flamethrower. For editing values like upgrades or base stats we can open some of the files using a software like FModel or UAssetGUI to have more readable text.

We are going to be working on this file later in 3.1 Hex mods to learn how to search for and change the values inside. If you want to extract other things like sounds or textures you will need to use UModel and extract the desired file/s. For example, we open it to get one of Molly’s sound files.

Select the FSD-WindowsNoEditor\FSD\Content folder, select these settings and press OK:

umodel 1

We navigate the folder tree until we find our file or a folder with all the files we need (you can extract the whole Audio folder for example if you want all the sounds in the game), and after selecting extract we select an output folder:

umodel 2

If it’s a sound, 3D model, texture file etc you will get a few files in the extraction folder.

2.3 Using mod_lint to check if your mod will auto-verify

Mod_lint is an invaluable tool developed by AssemblyStorm. which can be used to check if your mod will pass the mod.io verification check. You can download it from here. To use it, simply open up Windows Powershell/command prompt, drag mod_lint.exe into it, press space, then drag your packed mod’s zip file into it as well, and press enter. The tool will now go through your mod and give you a list of all the assets you’re replacing and if they’re eligible for auto-verification.

A single No flag in your file will make it ineligible for auto-verification, and you have to either remove those files if you don’t need them, or wait for manual verification if said files are required for your mod.

2.4 Packing your mod files

2.4.1 Preparing your project for packaging

First and foremost, before we pack our mod files, we need to tweak a few options in the Packaging Settings. Go to File -> Package Project and click Packaging Settings.

Untick Use Pak File.

Use the search bar at the top and type “shader” and then untick Share Material Shader Code

Use the search bar again and type “cook”. This will take you to the packaging settings and in it you will see a field called “Directories to never cook”. This is your project’s directory blacklist. Configure it in a way that is appropriate for your mod. For example with sound mods, you will want to put SoundControl in this list.

As a side note, if you are using the FSD-Template project, you will need to clear out the blacklist of any entries you don’t need, as it is set to blacklist everything by default.

2.4.2 File packing method

I’m going to use the example from the flamethrower file before (imagine we already edited it even though that comes later in the tutorial). You should probably read about Empty Content Hierarchy if you haven’t already.

In the flamethrower example, the file is UPG_FlameThrower_A_RangeIncrease which is inside FSD\Content\WeaponsNTools\FlameThrower. To pack mods correctly we are going to need to replicate the same folder structure that we got on the output folder (unpacked FSD-WindowsNoEditor.pak) but inside the Input folder.

You can just open the .zip from Empty Content Hierarchy (which has all the folders from the game but empty) and drop the Content folder in it inside Input and replace the placeholder one there:

ech 2

In this case we just want to work with 1 weapon so you don’t need to have the rest of the folders. You can just drop the WeaponsNTools folder inside Input -> Content.

You can also delete everything but the FlameThrower folder too. I recommend having a backup of each folder structure for each mod you make, for easier packing, instead of just having all of the empty folders and having to search where you put the files.

ech 3

This will be the final path of the flamethrower files:

2 3 1

You can do the process before for any number of files that you modded.

Be careful when leaving folders in Input -> Content after packing because maybe you’ll start making a new mod and forget you still had the old mod files in there.

Now just drag and drop the Input folder into _Repack.bat. (FSD here is just the extracted files from before, I recommend renaming them to the update where they are from).

drgpacker 4

Check the “Added x files” line. If you have for example 2 files in the mod check that the number is correct so it says “Added 2 files”. If there’s less than what you expect you forgot to put some files in the input folder, if it’s more than expected then you forgot to remove files from a previously packed mod.

drgpacker 5

So, the summary of packing is that we only need to add or remove files inside the Empty Content Hierarchy (FSD and subfolders) with the correct folder structure compared to the vanilla files. It can get pretty messy if you forget to add/remove files when making new mods so (again) I recommend having a backup of each folder structure for each mod you make, for better organization and future updating.

2.4.3 Mod installation and uploading

To install a mod for your own testing purposes before uploading, simply move the .pak than you made in the previous step to: …\Steam\steamapps\common\Deep Rock Galactic\FSD\Content\Paks. You MUST put _P at the end of the .pak name in order for the game to load it.

Unreal Engine automatically replaces the original file(s) in FSD-WindowsNoEditor.pak when the game loads, with the file(s) that you modified in your mod.

In the in-game modding menu, your mod will show up as "depreciated" and will force you into a sandbox save.

To upload your mod to mod.io after testing your modname_P.pak, first read the following guidelines if you have not already done so:

After that click on the + button on drg.mod.io and follow the simple steps.


3. How to mod

There’s different types of mods that you can make for DRG:

  1. Hex - can be used to edit values and are extremely easy to make
  2. Audio - is also easy but takes a bit more time as well as Unreal Engine Editor
  3. Model/texture - can be fiddly to make and ideally requires knowledge in the field before starting but leads to very appealing mods
  4. Blueprint - uses Unreal Engine blueprint to create complex behaviour as it has full logical capabilities and can interact with the game's underlying code

In this guide I’ll be explaining the basic hex mods. At the end I’ll mention a few of the other guides to get you started with more complex mods. As always you can find everything in the Tutorials channel category in our modding discord.

3.1 Hex mods

We have the hex mods, which edit values inside the .uasset and .uexp files (all files are in pairs of these types) and replace the original files with your new ones when the game loads. These values can be integers, text, booleans, floats etc. Most of the values should be easy to find just by using the armory inside DRG but you need to keep a few things in mind.

We need to know the value that we are going to change but also the file where it is located. You can check the File Prefix List made by Elythnwaen in the #learn-tools channel.

I’m gonna be working with the file that I used in the packing example before, in 2.3.1 File packing method. In this case our mod is going to have only one file which is called UPG_FlameThrower_A_RangeIncrease.uexp and as you can tell by the prefix UPG this is the file that controls the range upgrade for driller’s flamethrower.

I’m going to be using UAssetGUI. Open the .uasset and explore a bit. To change a value go one of the categories:

uagui 1

In the Amount field is the value we are looking for. It’s 500 because the upgrade of +5 in game is measured in meters and it's centimeters in the files. Some values can be more obvious than this. We’ll change it to 2000 so it becomes a 20 meter range upgrade.

If you can’t find the value try using FModel. Open the main .pak from the game, navigate to the folder, go to the Assets tab on the top right and open the file. Use CTRL+F to search stuff. This is pretty useful in other files that have a lot of stuff but isn’t really needed for this small change.

fmodel 2

Finally, we just save the file in UAssetGUI with CTRL+S or File -> Save and we are ready to pack our mod. You will get 2 new files and the tools might make a backup (.bak) of the original ones.

uagui 2

You should know how to pack that those file pairs with one of the methods that I showed you earlier in 2.3 Packing your mod files. I used these exact files in both examples to make it easier to understand the whole process.

After packing, just follow 2.3.2 Mod installation and you are ready to test your new flamethrower upgrade that will add +20 meters instead of +5. As you can see in the armory when I hover over the range upgrade it now gives us 20 extra range. You can try the range overclock too for some insane flame reach :P

demo 1

Here’s a quick guide of all the steps for hex mods:

  1. Extract .pak files with DRG Packer by dragging the .pak into _Unpack.bat.
  2. (Optional) Read the files with FModel if you want more info about the value you want to change.
  3. Open the .uasset file you want to change with a UAssetGUI and edit the values you want.
  4. Now to turn it back into .pak again follow these steps: (an example for the barrel kick force mod that modifies only PST_BarrelKicking.uexp):
    1. Create the same folder structure inside DRGpacker -> Input -> Content as the original extracted files had and add the modified files, so: /GameElements/PawnStats/PST_BarrelKicking.uexp
    2. Drag and drop the Input folder to _Repack.bat and check that there are no errors.
  5. Put the generated new_P.pak file in to test it: …\Steam\steamapps\common\DeepRockGalactic\FSD\Content\Paks
  6. After testing it to make sure it works, rename it to InsertNameHere.pak, as you don’t need the _P anymore.
  7. Upload to mod.io after reading the guidelines. Write proper descriptions and choose the correct category. You should have no issue if you read the info links.

And there’s a few important things about mods:

  1. If your game crashes, DO NOT send the crash report to the devs. You probably changed the wrong value or changed file size.
  2. Most mods are client-side only (as opposed to mods that have the RequiredByAll tag on mod.io are meant to have server replication). Client side only means that installing these mods only effects stuff for your game, but not for other players in the lobby.
  3. As I explained in the packing tutorial, you can have more than 1 file in a mod. You don’t need to make 10 .pak files if you modify 10 files, just make a single one by adding more files with the correct paths to the Input -> Content folder.
  4. You can change a lot of things with hex editing, not only the weapon’s stats. If for example you change a perk, you will need to try the changes inside a mission to make sure they work because those don’t show up in the armory.
  5. This type of modding is the most basic but It will complement the others. For complex "hex style" mods like adding overclocks, changing character inventories… you should use blueprint modding with the reconstructed content to make it all very easy for you to edit.

3.2 Other mods

Now that you know the basics you are free to check all the other guides and tools.

For audio and blueprint mods the user Buckminsterfullerene#6666 has made some great ones.

For model and texture replacement Pacagma#1515 is your guy.

Fancyneer#1553 is also someone who is keen to help out with a wide array of mods such as audio, model replacement, and animation.

Make sure to checkout the modding tools site to find other tools.


4. Common issues and how to solve them

4.1 My mod isn't working/vanilla files are still playing or present

This issue is caused by your content folder hierarchy being incorrect and/or your file names not matching with the files you want to replace. Go back to your mod content folders and make absolutely sure the folder structure and names match. GSG’s naming conventions are a bit weird sometimes so you have to be very vigilant about this. Being just one letter off will make your mod not work. So double, triple, even quadruple check the names and hierarchy so that they match.

As an example; here I am replacing the Glyphid death scream sound cue, but my replacement isn’t working.

That is because my folder hierarchy isn’t correct. Here is the same file being replaced but this time it’s using the correct hierarchy:

Notice any difference? The one which isn’t working has a hierarchy of Content/Audio/Enemies/SpiderGrunt/DeathScream. However the correct hierarchy was actually Content/Audio/SFX/Enemies/SpiderGrunt/DeathScream. There needed to be an SFX folder after Audio and before Enemies in order for the replacement to work.

4.2 My mod is crashing when I go to test it

This largely depends on what kind of mod you’re making. With Blueprint mods it can be anything from null references to bad logic and those are often project specific things to troubleshoot. If it’s a simple asset replacement mod, then go to your packaging settings and make sure Share Material Shader Code is disabled.

If the problem still persists, and you’re creating a model replacer mod, you’ll have to go and find a common pattern to the crashing and work from there. Here are two common crashes and their causes;

If you’re replacing the model for the minigun and your game crashes when you start firing, this means you haven’t assigned the heat material to any part of your model. You will need to assign every base material somewhere in your model to avoid crashes. So go look at the material setup of the model you are trying to replace and see how many material slots it already has. Then assign all of them somewhere on your model.

If you’re replacing an enemy model and the game crashes when it despawns, this is because your model’s material lacks the dissolve logic the base glyphid material has. You will need to copy that material over to your own project and then edit it to fit your own model.


5. Conclusion

I hope you found the guide simple enough to understand and that you make many great mods. It’s been a long time, we started this community with 2-3 modders and a small private discord and now we have members in the thousands, the developers added official mod support and with this guide we have a new modder to welcome :) - Rauliken (Original author)

If you ever feel frustrated when making mods don’t forget that there’s always someone willing to help, it’s a very wholesome community. You can find a ton of info in the #mod-chat channel in our discord and there’s even a channel where people stream themselves making mods so you can all learn together.

If you ever want to check some old mods for inspiration, extracting the files to see which ones they changed etc, this is the Github repository where the old Update 33 mods were before the modding support update.

See you in discord and in the mines, ROCK AND STONE!