# Unity + Modding = impossible?

**URL:** https://discussions.unity.com/t/unity-modding-impossible/611700
**Category:** Asset & Content Management
**Created:** [January 7, 2016, 1:25pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700 "2016-01-07T13:25:47Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 7, 2016, 1:25pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/1 "2016-01-07T13:25:47Z")

</div>

Hi,

I am trying to evaluate some possibilities how we could make a moddable game. By “moddable”, I mean things like:

- User created Levels

- User created Models & Textures

- User created Scripts and game logic

- User created UI elements

- Ability to replace existing things (Models, textures, scenes, UI, scripts) in the game with user created stuff.

At the moment, we have most of the game in the “Unity standard way”, by which I mean: We got some FBX files with textures and materials, linked in prefabs. We have tons of .cs files as scripts added to lots of other prefabs and the UI is a prefab/direct scene placement mess (as it used to be without nested prefabs… _chrm_ ;)).

We don’t use AssetBundles (yet).

So, now I try to get my head around how this asset structure need to look like, if you want to support user-created content. Basically, I always end up with "we have to ditch _ **everything** _ and completely

- create our own scene file system (creating some XML/JSON/whatever description files and creating scenes from scratch)

- create our own prefab system (taking in some XML/… data files and building up GameObjects with Components and properties from scratch within code)

- create an asset import pipeline (grabbing some C# import libraries for .obj/.fbx/.png/.animations!!)

- implement/use our own scripting language (Can you load MonoBehaviours from Assembly.LoadAssembly anyway?)

- create our own UI description language (or use the “our own prefab system” above, since then we could implement nested prefabs in a sane way anyway…)

Really? I mean… _REALLY?_

Couple of alternatives where I couldn’t find a (negative) answer yet:

- Is the AssetBundle binary format documented somewhere, so we could create AssetBundles and then load these? This would at least save us the work to write our own resource loading pipeline

- Anyone got the UnityEditor.dll and some binaries extracted from Unity installation package, so some parts of the pipeline could be used? Is that even legal?

- What are the most moddable Unity games out there? I talked briefly to the guys from City Skyline (like 5 minutes only ☹ ) and it seems, they basically did indeed implement my list above :(. (At least for asset import system. And they used their own scene file format anyway, IIRC)

- If everything fails, could it be an option to have the player download and install Unity - then provide some UnityPackage that sets up an AssetBundle creation tooling? Does anyone know anyone who did this before? Would still be very sad. I much prefer an in-game solution.

Thanks guys,  
Imi.

---

<div class="post-metadata">

### Author: ![Jaimi](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/jaimi/32/87653_2.png) [@Jaimi](https://discussions.unity.com/u/Jaimi)
#### Post date: [January 7, 2016, 6:23pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/2 "2016-01-07T18:23:42Z")

</div>

It sounds like you are seriously over-analyzing this.

If you want people to mod your game, give them tools to build it. Track what they did. Load it when the scene loads.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 7, 2016, 6:41pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/3 "2016-01-07T18:41:29Z")

</div>

Thanks for the reply, Jaimi. Opening the source code to [our game](http://www.dungeons-game.com/) for everyone is unfortunately not an option.

---

<div class="post-metadata">

### Author: ![Jaimi](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/jaimi/32/87653_2.png) [@Jaimi](https://discussions.unity.com/u/Jaimi)
#### Post date: [January 7, 2016, 8:51pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/4 "2016-01-07T20:51:21Z")

</div>

I’m not suggesting to open source your game. I’m asking – Do you really need free-form programmability in your game?  
implementing a level builder and loading .obj files isn’t that complicated, nor is building a set of predefined behaviors that can be attached to items. Is this not good enough?  
If not, then I have no real suggestion. Perhaps it would be possible to have the end user use Unity as your level builder, and create some editor helpers to generate asset bundles for them.

---

<div class="post-metadata">

### Author: ![orb](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/orb/32/197925_2.png) [@orb](https://discussions.unity.com/u/orb)
#### Post date: [January 7, 2016, 9:38pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/5 "2016-01-07T21:38:05Z")

</div>

Might & Magic X Legacy is very moddable. Here’s a video tutorial:

[![](https://europe1.discourse-cdn.com/unity/original/4X/9/7/e/97e93fe9148fdf33c579620dc5be4831a9580046.jpeg "Might & Magic X Legacy | Modding Kit Tutorial") ](https://www.youtube.com/watch?v=uI05pKeq-g0)

Exploring their SDK should give you some insights about making a Unity game moddable with Unity itself. Using the Unity editor also lets mods be compressed asset bundles, with optimised data formats for everything. If you make the modding kit good enough, you’ll end up using it yourselves for any further expansions. Hint, hint.

---

<div class="post-metadata">

### Author: ![zombiegorilla](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/zombiegorilla/32/948729_2.png) [@zombiegorilla](https://discussions.unity.com/u/zombiegorilla)
#### Post date: [January 7, 2016, 10:11pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/6 "2016-01-07T22:11:52Z")

</div>

Also check out skylines. Their system works very well.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 8:00am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/7 "2016-01-08T08:00:59Z")

</div>

> [@Jaimi](#):
>
> Do you really need free-form programmability in your game?  
> implementing a level builder and loading .obj files isn’t that complicated, nor is building a set of predefined behaviors that can be attached to items. Is this not good enough?

TBH, this answer makes me kindof sad. Because it means, that Unity is indeed not “moddable by default” (i.e. its structures are really mod-unfriendly) and the developer has to do everything by himself.

Unity already _has_ a level builder and already _can_ load obj files and _has_ the ability to script. So yes, of course, I can recreate these by myself. Did this before using Unity for another game. I was just kindof hoping, that I can actually use what I have with Unity instead…

> [@orb](#):
>
> Might & Magic X Legacy is very moddable. Here’s a video tutorial:

Awesome, thanks for the tip. I watched the video, it seems they implemented their own scripting “language” (based on a simple trigger/list of predefined actions system), but by having the user download Unity editor, at least they can re-use some of the Unity toolchain.

Do you happen to know whether they placed all the game art as raw assets into the mod kit? Because as I see it - without some heavy-weight Unity editor scripting - that would be necessary to state sentences like “You can edit the scene like any other Unity scene”.

I am not sure we can open up all our art as raw resources to the community (also because the download would be awefull big). So does anyone know of a good editor solution, that stores the game assets as compressed AssetBundle but still allows the user to work kindof normal in the editor (means he can use the “normal” Unity editor to create prefabs) ?

> [@zombiegorilla](#):
>
> Also check out skylines. Their system works very well.

Yes, I talked briefly to the dev from skylines. They basically bite the apple and re-implemented Unity (not really, but everything from my list above)

---

<div class="post-metadata">

### Author: ![orb](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/orb/32/197925_2.png) [@orb](https://discussions.unity.com/u/orb)
#### Post date: [January 8, 2016, 8:19am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/8 "2016-01-08T08:19:01Z")

</div>

> [@Immanuel Scholz](#):
>
> Do you happen to know whether they placed all the game art as raw assets into the mod kit? Because as I see it - without some heavy-weight Unity editor scripting - that would be necessary to state sentences like “You can edit the scene like any other Unity scene”.

I only just managed to download it again, after hunting for a while for the package ([https://static3.cdn.ubi.com/hmmxlegacy/hmmx\_legacy\_ModdingKit.rar](https://static3.cdn.ubi.com/hmmxlegacy/hmmx_legacy_ModdingKit.rar) in case you’re interested). It seems the game is sort of abandoned (the devs are making the next HoMM now, considering MMXL fully finished), and the opendev site is gone. Anyway, the archive is a hefty 1.65GB download, uncompressing to 3GB.

A cursory glance at the contents shows a crapton of CSV files, a few custom format asset files, models, textures and shaders for the example map and a bunch of custom assemblies with the meat of the editors + a decal system. I’m not sure how much of the actual game system is in there, but it looks like the editor stuff is its own world, and the CSV serialiser is probably key in the process, defining shops, quests, traps, events, dialog etc. The map editor basically prepares a grid and you try to make the terrain and walls fit around it, and a starting point is set somewhere in the middle of a grid square.

It can be done without exposing internals of the game, in other words, but you might need to adapt the game to use a lot of custom data assets.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 8:35am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/9 "2016-01-08T08:35:48Z")

</div>

> [@orb](#):
>
> but you might need to adapt the game to use a lot of custom data assets.

Well, that is one way of describing the words “create your own asset management, prefab system, scripting language and resource loading” ☹

But thanks dude for the info and effort. Downloading the kit now too. Also, Hessen is near my sisters place - maybe I go visit her some day and have a ring at Limbic’s door. 😄

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 9:37am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/10 "2016-01-08T09:37:37Z")

</div>

Finished the download too. I don’t own the game, so I can’t check whether some models are missing, but at first glance it seems, Limbic really put all their FBX and TGA files in raw format into the modkit… 😮

I guess that’s the reason the modkit is 1.6GB compressed. Not an option for us ☹

---

<div class="post-metadata">

### Author: ![QuantumRevenger](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/quantumrevenger/32/380865_2.png) [@QuantumRevenger](https://discussions.unity.com/u/QuantumRevenger)
#### Post date: [January 8, 2016, 10:02am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/11 "2016-01-08T10:02:10Z")

</div>

Unity is fully moddable, its limitation is your imagination. I have seen entire game engines made within Unity3d, though not as good as Unity itself (obviously) but means a fully moddable game is possible. Even code, you could write a simple language and processor to convert it.

It’s not an easy feat to implement, a big reason that large titles lack support for such a feature.

Overall, if I were you I’d sit down and write a list of moddable features and branch off into how could I achieve this?

Hope this helps out, it’s just my opinion and thoughts.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 11:05am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/12 "2016-01-08T11:05:54Z")

</div>

> [@QuantumRevenger](#):
>
> Unity is fully moddable, its limitation is your imagination. I have seen entire game engines made within Unity3d, though not as good as Unity itself (obviously) but means a fully moddable game is possible. Even code, you could write a simple language and processor to convert it.

Yes, I admit that maybe my title was a bit provocative… 😅. I know that - given enough time and effort - you can write anything.

The question is rather: How modding-_friendly_ is Unity? Unity provides a ton of features and tools to import assets, create scripting, create editors and tools, build, compress and load assets and resources etc… but none of these features seem to help in any way to support easier modding. (Except if you go the M&MX legacy way and require the user to use Unity editor… which is the way we will probably go for.)

---

<div class="post-metadata">

### Author: ![orb](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/orb/32/197925_2.png) [@orb](https://discussions.unity.com/u/orb)
#### Post date: [January 8, 2016, 11:25am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/13 "2016-01-08T11:25:42Z")

</div>

Yeah, it’s a bit of an undertaking. But apart from basically rewriting the entire foundation of the game, replicating every non-model/shader/sound type asset and creating a whole bunch of editors, it’s easy-peasy 😛

I think you have many long nights ahead of you poring over the problem, but perhaps you can figure out a way that makes it a little more straight-forward to mod things. The more 3rd-party code you rely on for the game, the more annoying it becomes though, and the more you need to abstract like MMXL. Any insights you get from the process would be interesting to read though 😉

---

<div class="post-metadata">

### Author: ![superpig](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/superpig/32/992213_2.png) [@superpig](https://discussions.unity.com/u/superpig)
#### Post date: [January 8, 2016, 12:10pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/14 "2016-01-08T12:10:40Z")

</div>

For modding at the scope you’ve described, having your mod community use Unity as the authoring tool - probably with a bunch of editor extensions specific to your project - is the intended workflow.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 12:14pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/15 "2016-01-08T12:14:35Z")

</div>

> [@superpig](#):
>
> For modding at the scope you’ve described, having your mod community use Unity as the authoring tool - probably with a bunch of editor extensions specific to your project - is the intended workflow.

Wow, thanks superpig for the confirmation… I already started to suspect that ;).

Is there any way of _direct referencing_ (like in “drag something into MeshFilter’s mesh property”) to an asset that is placed within a resource asset bundle - but without providing the original resource?

---

<div class="post-metadata">

### Author: ![superpig](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/superpig/32/992213_2.png) [@superpig](https://discussions.unity.com/u/superpig)
#### Post date: [January 8, 2016, 4:16pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/16 "2016-01-08T16:16:46Z")

</div>

> [@Immanuel Scholz](#):
>
> Is there any way of _direct referencing_ (like in “drag something into MeshFilter’s mesh property”) to an asset that is placed within a resource asset bundle - but without providing the original resource?

I think what I’d try for this is to use the AssetBundle Variant system to make a ‘placeholder’ variant. Then you give people all the source assets for the placeholder variant bundle and have them reference them. At runtime, you then load their bundles but with the “real” variant of the assets instead of the “placeholder” variant.

---

<div class="post-metadata">

### Author: ![Immanuel-Scholz](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/immanuel-scholz/32/244824_2.png) [@Immanuel-Scholz](https://discussions.unity.com/u/Immanuel-Scholz)
#### Post date: [January 8, 2016, 6:28pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/17 "2016-01-08T18:28:56Z")

</div>

yea, thanks superpig… I actually thought about that too, but that would mean, they don’t see the “correct” image/mesh in their editor, right? Also, they have to download the stub meshes again, although they probably already own the original game with all high-quality asset bundles right on their hard drive…

I was hoping for a solution, where we provide a mod kit, and the first thing the modkit does is asking for the installation directory of the real game. From there, it loads the original asset bundles published with the original game and loads meshes from them to show…

hm… Actually. as I write this… could that be possible in the editor with tooling already? Can you use an micro-tiny dummy asset to have a GUID/FileID link set in a prefab, but some editor tool loaded an asset bundle variant which replaces the asset rendering _directly in the editor windows_?

---

<div class="post-metadata">

### Author: ![superpig](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/superpig/32/992213_2.png) [@superpig](https://discussions.unity.com/u/superpig)
#### Post date: [January 8, 2016, 9:29pm UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/18 "2016-01-08T21:29:25Z")

</div>

> [@Immanuel Scholz](#):
>
> yea, thanks superpig… I actually thought about that too, but that would mean, they don’t see the “correct” image/mesh in their editor, right? Also, they have to download the stub meshes again, although they probably already own the original game with all high-quality asset bundles right on their hard drive…
> 
> I was hoping for a solution, where we provide a mod kit, and the first thing the modkit does is asking for the installation directory of the real game. From there, it loads the original asset bundles published with the original game and loads meshes from them to show…

Oh I see - when you said ‘without providing the original resource’ I thought you meant without them seeing the original assets in Unity _at all_ 🙂

You could write editor scripts that load the asset bundles from your game, and use them to ‘generate’ the placeholder bundle inside of Unity - using the exact same textures/meshes as the released game if you like. There has to be _something_ in the Assets folder for them to reference, though, you can’t just directly mount an AssetBundle and have it appear in the object browser, have the contents by drag-droppable, etc. It’d basically be unpacking the bundles into their mod project for them to use (and you don’t have to unpack _all_ of them, it’d work to just unpack the ones containing the assets they want to reference).

---

<div class="post-metadata">

### Author: ![Munumis](https://avatars.discourse-cdn.com/v4/letter/m/a88e4f/32.png) [@Munumis](https://discussions.unity.com/u/Munumis)
#### Post date: [March 22, 2017, 3:29am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/19 "2017-03-22T03:29:17Z")

</div>

I have a question regarding Might and Magic X. I have Unity Personal version downloaded and installed. I’d like to mod Might and Magic X but I’m not sure how to get started. Does anyone have any information on this subject please?

---

<div class="post-metadata">

### Author: ![SirHall](https://dub1.discourse-cdn.com/unity/user_avatar/discussions.unity.com/sirhall/32/151145_2.png) [@SirHall](https://discussions.unity.com/u/SirHall)
#### Post date: [June 19, 2017, 7:50am UTC](https://discussions.unity.com/t/unity-modding-impossible/611700/20 "2017-06-19T07:50:23Z")

</div>

Just putting this here in case someone in the future stumbles upon it, but I wrote up an article on how C# modding can be done here: [How I got C# modding to work in my game, and how you can too! FREE - Learn Content & Certification - Unity Discussions](https://forum.unity3d.com/threads/how-i-got-c-modding-to-work-in-my-game-and-how-you-can-too-free.476093/)

[Next page](https://discussions.unity.com/t/unity-modding-impossible/611700.md?page=2)
