PSA - Mod IDs and Mod Compatibility

Sozin

Friendly Neighborhood Fire Lord
Jul 9, 2016
697
1,357
505
Each official Steam Workshop mod is assigned a Mod ID by the creator. Each mod is identified uniquely in-game by that Mod ID.

If two mods both have the same Mod ID (e.g. Test), then only one of them will be loaded. Which of them is loaded is semi-random.

I'm currently working on something that will mitigate that

So, unless you explicitly want your mod to act as a replacement for another mod, choose a unique mod ID.

There are several mods on the Steam Workshop with the Mod ID of Untitled Mod and Test. Only one of each will be loaded at any one time.

Untitled Mod:
Test:
There are not yet duplicates of the following Mod IDs, but they are examples of Mod IDs that are too common/generic:
  • skin
  • skins
  • better future
How can you find out the Mod ID of an existing mod?
  • Download it, go to the installed folder. You will see a file named <Mod ID>_bundle
Does this mean I have to check the mod ID of every mod on the workshop to be sure?
  • Technically, yes.
  • You can, however, be reasonably sure your Mod ID is unique if you give it a unique name similar to the mod name (what's displayed on the Workshop page), and search for any other mods with a similar name
    You can be even more sure if you include your username in the Mod ID

    Given how tedious this process is, I am considering making a tool to help you search for currently used Mod IDs
It's very important that block modders especially get the Mod ID right on their first upload.

Any changes to the Mod ID after it's uploaded mean that any snapshots anyone has made with the old Mod ID will instantly break. The same goes for Block IDs within a block mod.

* I am singling out block modders here because that's the segment of mod loading that I am most familiar with, and I know for a fact it will cause problems. I do not know how much Skins/Corps modders will be impacted, but I assume they're in a similar position.

On the other hand, if you do want to make a mod that's a replacement of another mod (e.g. tuning down, or up stat values of blocks), then:

  • Make sure the Mod ID is identical to the mod you want to be a replacement for, and make sure every Block ID is also identical.
  • The Block ID is not the name of the block in-game. It's what shows up in the mod creator window in the Unity Editor
    If you fail to do that, then the game counts the mods as different, and will treat the blocks as entirely different blocks. This means that any snapshots users of the old mod made will be incompatible with your mod, and vice versa