# Making your game moddable.

**URL:** <https://forums.unrealengine.com/t/making-your-game-moddable/34858>\
**Category:** Modding\
**Tags:** unreal-engine\
**Created:** [July 10, 2015, 4:20am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858 "2015-07-10T04:20:47Z")\
**Posts on this page:** 20\
**Page:** 7

<div class="post-metadata">

**Author:** ![TAN](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@TAN](https://forums.unrealengine.com/u/TAN)\
**Post date:** [October 4, 2018, 4:11pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/138 "2018-10-04T16:11:03Z")

</div>

> [@Zeblote](#):
>
> From what I’ve been told by [USER=“14973”] [/USER], it’s a straight forward process with no extra costs. If you’re making a mod editor you should send him a message aswell

Thank you very much for this post.

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [November 11, 2018, 6:36pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/139 "2018-11-11T18:36:35Z")

</div>

We’ve been working on mod support on our side here, and we’re still trying to get modding to work.

On a basic level, I understand that mods are plugins, built as DLC on top of a base game. The resulting pak file is then placed into the GameName/Content/Paks/, which is then automatically loaded. I’ve done this, confirmed that the game loads the pak…

> [@](#):
>
> LogPakFile: Display: Found Pak file …/…/…/HeliumRain/Content/Paks/ExampleMod.pak attempting to mount.  
> LogPakFile: Display: Mounting pak file …/…/…/HeliumRain/Content/Paks/ExampleMod.pak.

But then, AssetRegistry appears unable to actually find the assets. What’s wrong ? Calling SearchAllAssets(), then GetAssetsByClass() only returns base assets, no mod assets included. Why’s that ?

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [November 13, 2018, 8:17am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/140 "2018-11-13T08:17:48Z")

</div>

Well, I’ve spent a week investigating modding support, and as far as I’m concerned, there currently isn’t any.

4.19 has an obvious breaking bug - it can’t build DLC. So modding is entirely impossible on that version, unless you fix a regression in the engine code yourself.

4.20 doesn’t have that bug, but despite dozens of hours of work, I’ve never been able to detect mod content from a mod pak, despite trying many different methods.

- The asset registry works perfectly fine for the base pak, but won’t detect content loaded using OnMountPak().
- The same issue happens if you let the engine load a mod pak from next to the default pak (which is not a practical method with Steamworks, anyway).
- Loading assets manually with LoadSynchronous() won’t find mod assets.

I’ve confirmed that the basics of reading a pak file still work - I can dump the contents of my mod file and check that the assets are there. It all appears good and consistent. Actually making use of these, as of 4.20, appears impossible.

I’d love to be proven wrong, but I’d advise going with a different engine if modding is required.

---

<div class="post-metadata">

**Author:** ![looter\_udn](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@looter\_udn](https://forums.unrealengine.com/u/looter_udn)\
**Post date:** [December 28, 2018, 4:30pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/141 "2018-12-28T16:30:55Z")

</div>

> [@Gwenn](#):
>
> Well, I’ve spent a week investigating modding support, and as far as I’m concerned, there currently isn’t any.
> 
> 4.19 has an obvious breaking bug - it can’t build DLC. So modding is entirely impossible on that version, unless you fix a regression in the engine code yourself.
> 
> 4.20 doesn’t have that bug, but despite dozens of hours of work, I’ve never been able to detect mod content from a mod pak, despite trying many different methods.
> 
> - The asset registry works perfectly fine for the base pak, but won’t detect content loaded using OnMountPak().
> - The same issue happens if you let the engine load a mod pak from next to the default pak (which is not a practical method with Steamworks, anyway).
> - Loading assets manually with LoadSynchronous() won’t find mod assets.
> 
> I’ve confirmed that the basics of reading a pak file still work - I can dump the contents of my mod file and check that the assets are there. It all appears good and consistent. Actually making use of these, as of 4.20, appears impossible.
> 
> I’d love to be proven wrong, but I’d advise going with a different engine if modding is required.

I believe you must still manually merge the asset registries of each pak file when loaded, similar to how it is described [here](https://forums.unrealengine.com/development-discussion/modding/47062-making-your-game-moddable?p=967635#post967635). It was stated to be added to a future release over a year ago but doesn’t look like it ever made it in. It seems after investigating modding support again before we move into 4.22, it’s still barely supported natively and requires lots of custom code to get functioning, on top of the legal barriers mentioned in this thread related to distribution.

---

<div class="post-metadata">

**Author:** ![TechLord](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/techlord/32/1040563_2.png) [@TechLord](https://forums.unrealengine.com/u/TechLord)\
**Post date:** [December 28, 2018, 11:49pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/142 "2018-12-28T23:49:57Z")

</div>

> [@Gwenn](#):
>
> It is possible, but Epic’s restriction on redistributing the editor makes it a non-starter.
> 
> You need to either have your game released through the Epic launcher with the editor, or you need to provide your modding SDK a source code, some assets, and the build artifacts from every release. I think mods need to be re-built for every release you do, too.

Why is the Editor required for Modding? Would it not just be adding prefab Media and Code modules?

---

<div class="post-metadata">

**Author:** ![anon24734432](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anon24734432](https://forums.unrealengine.com/u/anon24734432)\
**Post date:** [January 5, 2019, 8:18am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/143 "2019-01-05T08:18:33Z")

</div>

Anything new?

---

<div class="post-metadata">

**Author:** ![ZioYuri78](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/zioyuri78/32/1194615_2.png) [@ZioYuri78](https://forums.unrealengine.com/u/ZioYuri78)\
**Post date:** [March 14, 2019, 1:05pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/144 "2019-03-14T13:05:39Z")

</div>

> [@Gwenn](#):
>
> Well, I’ve spent a week investigating modding support, and as far as I’m concerned, there currently isn’t any.
> 
> 4.19 has an obvious breaking bug - it can’t build DLC. So modding is entirely impossible on that version, unless you fix a regression in the engine code yourself.
> 
> 4.20 doesn’t have that bug, but despite dozens of hours of work, I’ve never been able to detect mod content from a mod pak, despite trying many different methods.
> 
> - The asset registry works perfectly fine for the base pak, but won’t detect content loaded using OnMountPak().
> - The same issue happens if you let the engine load a mod pak from next to the default pak (which is not a practical method with Steamworks, anyway).
> - Loading assets manually with LoadSynchronous() won’t find mod assets.
> 
> I’ve confirmed that the basics of reading a pak file still work - I can dump the contents of my mod file and check that the assets are there. It all appears good and consistent. Actually making use of these, as of 4.20, appears impossible.
> 
> I’d love to be proven wrong, but I’d advise going with a different engine if modding is required.

I see you released the modding editor for Elium Rain, how you solved your problems? 🙂

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [March 14, 2019, 2:33pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/145 "2019-03-14T14:33:11Z")

</div>

We’ve found that manual mounting doesn’t work, and mounting mods outside /gamename/Mods in the packaged game doesn’t work, so we’ve made a lightweight launcher that synchronizes the Steam mod folder with that specific folder.

---

<div class="post-metadata">

**Author:** ![Jorhoto](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Jorhoto](https://forums.unrealengine.com/u/Jorhoto)\
**Post date:** [April 21, 2019, 3:54pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/146 "2019-04-21T15:54:28Z")

</div>

Hello, so are mods definitely possible for those without the resources to hire a team of programmers?

What does it involve to add a new map to a game?  
Would be a matter to tell the player: download ue engine, open this level-template, modify it as you wish and copy it into game\mods\maps folder and voila?

In general what considerations should be made to make your game modable since the first day?

Thanks 🙂

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [April 25, 2019, 8:53am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/147 "2019-04-25T08:53:11Z")

</div>

Modding support in UE4 is very constrained, limited, hard to set up, hard to use.

First, you will need to release a significant part of your project. Here’s why.

- You will need to distribute at least the release information for the latest version, basically the cook manifest, so that people can cook against it, hard requirement here.
- Any Blueprint that you want people to be able to use (game mode, custom player start, any kind of Blueprint used in levels) will need to be distributed as well
- Since people will need to test the level, they need to play it, so your mod kit needs playable code & content

Our mod kit for Helium Rain is the full game project minus most of the playable “characters” and most of the levels.

Some additional constraints follow.

- No redistributing Marketplace assets, hope none of that is used for gameplay, can’t distribute it, unless you’re a packaging wizard and understand how to cook editor assets
- No redistributing any editor outside Epic store, so no “mod editor” launch option on Steam
- If you use Steam modding, you will at least need some kind of C++ code to copy mods from the Steam workshop directory on your PC to the game install dir

“Don’t do it” is how I’d put it at that point. UE4 is not meant for modding.

---

<div class="post-metadata">

**Author:** ![Jorhoto](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Jorhoto](https://forums.unrealengine.com/u/Jorhoto)\
**Post date:** [April 25, 2019, 1:36pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/148 "2019-04-25T13:36:10Z")

</div>

But modding (or UGC) is so important!!  
/SRyUpR4qOxU

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [April 26, 2019, 7:50am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/149 "2019-04-26T07:50:59Z")

</div>

If UGC is going to be a large part of your game, all of the things I described above are feasible. We did and and our modkit is available. It’s just never going to be a day’s work to have modding in your game, so you should be sure your game revolves around modding, like some Valve games do.

---

<div class="post-metadata">

**Author:** ![Jorhoto](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Jorhoto](https://forums.unrealengine.com/u/Jorhoto)\
**Post date:** [April 26, 2019, 9:16am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/150 "2019-04-26T09:16:03Z")

</div>

What I’m searching for is some guidelines to make my game moddble since day 0.  
E.g.: Instead of “hard-code” a new map in the game code, why not doing it already as a mod? Same for new races, enemy types, resources, items, etc.  
Let’s say you hire a level designer. Give him your modding tools directly instead of having to give him access to full source.

I think this is one of the pillars to develop a game the right way since day 0.

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [April 26, 2019, 9:36am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/151 "2019-04-26T09:36:57Z")

</div>

Mods in UE4 are patches over a full released game. Technically, they actually rely on the engine support for DLC. So no, you shouldn’t work like that at all.

Making your game moddable, as far as the game code goes, isn’t particularly hard. Just use the asset registry to discover assets, as opposed to hardcoding lists of content in the code, which you shouldn’t do anyway.

---

<div class="post-metadata">

**Author:** ![Zeblote](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Zeblote](https://forums.unrealengine.com/u/Zeblote)\
**Post date:** [April 26, 2019, 11:15am UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/152 "2019-04-26T11:15:18Z")

</div>

Does the default modding only handle adding new content then? For example, can a mod override the jump height of the player without replacing the entire player?

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [April 26, 2019, 12:28pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/153 "2019-04-26T12:28:53Z")

</div>

I’m not really sure, but I don’t believe you can do that, no.

---

<div class="post-metadata">

**Author:** ![Jorhoto](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Jorhoto](https://forums.unrealengine.com/u/Jorhoto)\
**Post date:** [April 26, 2019, 1:35pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/154 "2019-04-26T13:35:11Z")

</div>

> [@Zeblote](#):
>
> Does the default modding only handle adding new content then? For example, can a mod override the jump height of the player without replacing the entire player?

In such case wouldn’t it be a matter to implement a file containing this info? (SQLite, XML, or just plain text).

For a localization mod, wouldn’t it be something like an external table as well?

---

<div class="post-metadata">

**Author:** ![StrangerGwenn](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/strangergwenn/32/983202_2.png) [@StrangerGwenn](https://forums.unrealengine.com/u/StrangerGwenn)\
**Post date:** [April 26, 2019, 1:54pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/155 "2019-04-26T13:54:12Z")

</div>

A localization mod is exactly what the UE4 modding support should be stellar at. Provided, of course, that your modding kit includes the po files and your modder understand UE4 well enough to import the translated version, set up a new language and cook it as a mod.

The basic problem with UE4 modding is just that - the cooking and patching infrastructure is quite powerful, but you need to understand every bit of it to truly offer mod support and spend weeks or months on it.

---

<div class="post-metadata">

**Author:** ![Ichinose](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/ichinose/32/561593_2.png) [@Ichinose](https://forums.unrealengine.com/u/Ichinose)\
**Post date:** [June 9, 2019, 6:20pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/156 "2019-06-09T18:20:10Z")

</div>

UE4 games made by Bamco (Bandai Namco ICYMI) doesn’t have the modkit provided by the devs yet it manages to have mod applied all over the place, at least cosmetic mods. [Especially Soulcalibur 6](http://modderbase.com/forumdisplay.php?fid=53).  
Without the official toolkit/dumbed down UE4 SDK, active modders (those who create mods for your game) will inevitably have to get their hands to UE4 SDK and U4Pak to make/replace custom content especially custom meshes. Passive modders (those who just apply mods to their installation of your game) just have to deal with U4Pak.

If you just want to allow mesh mods or audio mods, or any cosmetic mods, really, you can leave it that way and let the modders do their job with U4Pak and making the cosmetic mod in a fresh UE4 SDK, and you can leave your game in Shipping build then call it a day.  
This results you unable to integrate your game with Steam Workshop, but then Grand Theft Auto V is still moddable without Steam Workshop and the mods are collected independently.

On the other hand, if you want to allow custom script to be added to your game, that is where things can get confusing real quick and I’m sure we’re scratching our head around it. [The wiki provided by](https://wiki.unrealengine.com/Modding:_Adding_mod-support_to_your_Unreal_Engine_4_project)seems to get around this case, but I still don’t know how to obtain the profile in a shipped game or providing the profile in the game files.

---

<div class="post-metadata">

**Author:** ![JonDavis99](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@JonDavis99](https://forums.unrealengine.com/u/JonDavis99)\
**Post date:** [June 11, 2019, 11:20pm UTC](https://forums.unrealengine.com/t/making-your-game-moddable/34858/157 "2019-06-11T23:20:32Z")

</div>

> [@StrangerGwenn](#):
>
> Modding support in UE4 is very constrained, limited, hard to set up, hard to use.
> 
> First, you will need to release a significant part of your project. Here’s why.
> 
> - You will need to distribute at least the release information for the latest version, basically the cook manifest, so that people can cook against it, hard requirement here.
> - Any Blueprint that you want people to be able to use (game mode, custom player start, any kind of Blueprint used in levels) will need to be distributed as well
> - Since people will need to test the level, they need to play it, so your mod kit needs playable code & content
> 
> Our mod kit for Helium Rain is the full game project minus most of the playable “characters” and most of the levels.
> 
> Some additional constraints follow.
> 
> - No redistributing Marketplace assets, hope none of that is used for gameplay, can’t distribute it, unless you’re a packaging wizard and understand how to cook editor assets
> - No redistributing any editor outside Epic store, so no “mod editor” launch option on Steam
> - If you use Steam modding, you will at least need some kind of C++ code to copy mods from the Steam workshop directory on your PC to the game install dir
> 
> “Don’t do it” is how I’d put it at that point. UE4 is not meant for modding.

You can have the materials and code notarized and legally signed with copyright… I know it can seem damning to release source-code for anything but having a notarized and copyrighted source-code is the way to go.

[Previous page](https://forums.unrealengine.com/t/making-your-game-moddable/34858.md?page=6)

[Next page](https://forums.unrealengine.com/t/making-your-game-moddable/34858.md?page=8)
