1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

How to make a mod without ModBuddy?

Discussion in 'Civ5 - Creation & Customization' started by RothX, Oct 2, 2015.

  1. RothX

    RothX Chieftain

    Joined:
    Sep 25, 2015
    Messages:
    5
    Hello everyone,
    I am interested in making a mod for Civ V, but the ModBuddy Program doesn't work for me because I have a Mac. I use WineBottler a lot, (a program that lets you run windows programs on a mac without actually running the Windows OS) so I figured that this would work for the SDK. The SDK did actually boot up with WineBottler, but when I clicked on the ModBuddy option, it said I needed Visual Studio. This framework was obviously made for Windows, and I tried, but installing frameworks/APIs doesn't really work with WineBottler. If anyone knows a way to get ModBuddy to work with WineBottler, that would be great, but I am guessing that there is not. I looked up some modding tutorials for Civ V, and it doesn't seem like ModBuddy does that much besides manage XML and Lua files. So I was wondering if I can just write XML and Lua in a normal text editor and then package them into a mod without ModBuddy. If this is indeed possible, I would like to know what I need to do that is different from the ModBuddy tutorials. Using Bootcamp or something similar would be an absolute LAST RESORT for me, and only recommend it if you say that creating a mod without ModBuddy is literally 100% IMPOSSIBLE.
    Thank you in advance for your help.
     
  2. AW Arcaeca

    AW Arcaeca Deus Vult

    Joined:
    Mar 10, 2013
    Messages:
    2,969
    Gender:
    Male
    Location:
    Operation Padlock ground zero
    It's completely possible without ModBuddy, but you'll have to create the .modinfo file - which is the only reason that the mods you use are recognized as mods at all by the game - yourself, whereas ModBuddy would do it for you. And there's no tutorial for making them AFAIK.

    As an example, here's what ModBuddy automatically created for me for my Magyar mod:
    Spoiler :
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Mod id="0544f06d-57ca-400f-9f3a-f059983b4cdb" version="1">
      <Properties>
        <Name>AW's Magyar Tribes Mod</Name>
        <Teaser>Adds the Magyars to the game as a playable civ.</Teaser>
        <Description>Adds the Magyars to the game as a playable civ.</Description>
        <Authors>AgressiveWimp</Authors>
        <HideSetupGame>0</HideSetupGame>
        <AffectsSavedGames>1</AffectsSavedGames>
        <MinCompatibleSaveVersion>0</MinCompatibleSaveVersion>
        <SupportsSinglePlayer>1</SupportsSinglePlayer>
        <SupportsMultiplayer>1</SupportsMultiplayer>
        <SupportsHotSeat>1</SupportsHotSeat>
        <SupportsMac>1</SupportsMac>
        <ReloadAudioSystem>1</ReloadAudioSystem>
        <ReloadLandmarkSystem>0</ReloadLandmarkSystem>
        <ReloadStrategicViewSystem>0</ReloadStrategicViewSystem>
        <ReloadUnitSystem>1</ReloadUnitSystem>
      </Properties>
      <Dependencies />
      <References />
      <Blocks />
      <Files>
        <File md5="C46ABA511FBE2C382280A2E6B4B0DA5C" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_128.dds</File>
        <File md5="320D5A439BBFDADC2980EE3960188DBB" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_16.dds</File>
        <File md5="4AB4C9A590ABE0C81963E098A5BC5749" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_24.dds</File>
        <File md5="70BEB1E7F78DEA35D93F6676EDAB9FA2" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_256.dds</File>
        <File md5="910FA5528B962CACC413C460C18728B9" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_32.dds</File>
        <File md5="BE698D91633129563001C4BCE84E3CC1" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_45.dds</File>
        <File md5="7DEFE159063A2687D736BCC5303BF7CD" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_48.dds</File>
        <File md5="84DC11E0DC6D6704D4C9F6E9DB8EDFC0" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_64.dds</File>
        <File md5="987C8670C02F59A0D6358D0C636D9FCF" import="1">Art/Civilization/AlphaIcons/AlphaMagyarIcon_80.dds</File>
        <File md5="7C063F48E7AAB58CDF648AEB3C29E7AB" import="1">Art/Civilization/Icons/MagyarIcon_128.dds</File>
        <File md5="E1FC8A17D62C5BAE74C71D020E8A13BE" import="1">Art/Civilization/Icons/MagyarIcon_256.dds</File>
        <File md5="EF80BC5D5278979DF3C9E172FE50CC4E" import="1">Art/Civilization/Icons/MagyarIcon_32.dds</File>
        <File md5="F702F023E0357519E70896B2DA885E8E" import="1">Art/Civilization/Icons/MagyarIcon_45.dds</File>
        <File md5="61D2E1BD61894F5B28588B159DF2D7E9" import="1">Art/Civilization/Icons/MagyarIcon_64.dds</File>
        <File md5="5A085AE4D81B8884C9FD3D89C1777FA4" import="1">Art/Civilization/Icons/MagyarIcon_80.dds</File>
        <File md5="FD69889F2358A84B9DC05A100CAADAD8" import="1">Art/Leader/Icons/ArpadIcon_128.dds</File>
        <File md5="D85A1B0622BC7FF6480CB3ED98B1094A" import="1">Art/Leader/Icons/ArpadIcon_256.dds</File>
        <File md5="22D2B9BFAFD4DD17491558423246D4EE" import="1">Art/Leader/Icons/ArpadIcon_64.dds</File>
        <File md5="1A32FCC44E0BF629AEFFFB19D10D53A6" import="1">Art/Leader/Screens/Arpad_Diplo.dds</File>
        <File md5="CD3AF18D2C071545A347B572C98719BC" import="1">Art/Leader/Screens/Arpad_DOM.dds</File>
        <File md5="920EEECED5BB000AF2DA3D0D97904E1D" import="1">Art/Leader/Screens/MagyarMap.dds</File>
        <File md5="3B7B2CC1B8D9127F812BFFF53C5E8CE9" import="1">Art/Units/Cuman/Graphics/Horseman_Russia.blend</File>
        <File md5="D6D94317793D02D265A464F700700C5E" import="1">Art/Units/Cuman/Graphics/Horseman_Russia.dds</File>
        <File md5="4639DC9CF22BACF2799A335831A0DD8A" import="1">Art/Units/Cuman/Graphics/Horseman_Russia.fxsxml</File>
        <File md5="FAF3D86793DFBC0CF5B5FE6687FDD3B7" import="1">Art/Units/Cuman/Graphics/Horseman_Russia.gr2</File>
        <File md5="ED628898FA18C31ED488EBA084FD8E6F" import="1">Art/Units/Cuman/Graphics/Horseman_Russia_gloss.dds</File>
        <File md5="7E0522289E2199CCC70BC5CEA852CEA3" import="1">Art/Units/Cuman/Graphics/Horseman_Russia_Horse.dds</File>
        <File md5="AC41C06BA721315512F26433220FEDF7" import="1">Art/Units/Cuman/Graphics/no_gloss.dds</File>
        <File md5="9B8823093559C9D34BBE22621BFD044A" import="1">Art/Units/Cuman/Icons/CumanFlag.dds</File>
        <File md5="A4D24CA622C0A5AB25ECFDCF31C635D7" import="1">Art/Units/Cuman/Icons/CumanIcon_128.dds</File>
        <File md5="2424512D53BF9478DD66022E6C62945A" import="1">Art/Units/Cuman/Icons/CumanIcon_256.dds</File>
        <File md5="C1A68AF9105783E2A83FA373C1C36F1A" import="1">Art/Units/Cuman/Icons/CumanIcon_45.dds</File>
        <File md5="A39E9BA31396CFAF6DA0CA88CA635CD1" import="1">Art/Units/Cuman/Icons/CumanIcon_64.dds</File>
        <File md5="FE3AA39DAB2987008027A91AC0378A73" import="1">Art/Units/Cuman/Icons/CumanIcon_80.dds</File>
        <File md5="43316B5B4D43A296BF29C4DB2DF86107" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia.blend</File>
        <File md5="26714268E8098A521ADDF329D3CB098D" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia.dds</File>
        <File md5="660603D3389399B97100AD75272AE5CC" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia.fxsxml</File>
        <File md5="96F24C9F2D78452991E23CDD72B1588E" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia.gr2</File>
        <File md5="EB50926F04084A480EE8EB4D00AA07E0" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia_gloss.dds</File>
        <File md5="9E816B74D9F7F95B750BACA69EAD0289" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia_Horse.dds</File>
        <File md5="3DEF48656240765A85BD0EB3CD43D6B2" import="1">Art/Units/Horka/Graphics/Early/Horseman_Persia_Horse_gloss.dds</File>
        <File md5="F379D2492D4E806A4D5E877CC18F2427" import="1">Art/Units/Horka/Graphics/Late/41M_Turan_II.blend</File>
        <File md5="562F101C4CC40A9A4F71E90D44EB36E1" import="1">Art/Units/Horka/Graphics/Late/41M_Turan_II.dds</File>
        <File md5="84C5641139B6E6D9D9980B75A2F631AB" import="1">Art/Units/Horka/Graphics/Late/41M_Turan_II.fxsxml</File>
        <File md5="B56DA6C4CCBEAF1E3A350945F1D19341" import="1">Art/Units/Horka/Graphics/Late/41M_Turan_II.gr2</File>
        <File md5="AC41C06BA721315512F26433220FEDF7" import="1">Art/Units/Horka/Graphics/Late/no_gloss.dds</File>
        <File md5="32CDDF7E0F27D92A39A7B65FF031B5F8" import="1">Art/Units/Horka/Icons/HorkaFlag.dds</File>
        <File md5="60AA0515D92058341BD6E010C6B68564" import="1">Art/Units/Horka/Icons/HorkaIcon_128.dds</File>
        <File md5="71B0B348F154D092F2D7E805E608F1ED" import="1">Art/Units/Horka/Icons/HorkaIcon_256.dds</File>
        <File md5="F86B4BFE0397114550DDAE34BC6A3EC1" import="1">Art/Units/Horka/Icons/HorkaIcon_45.dds</File>
        <File md5="F6148F69D42323A4A3CF58E976E7C8A7" import="1">Art/Units/Horka/Icons/HorkaIcon_64.dds</File>
        <File md5="1F1C199A58949D54A08E6838FADD8DF5" import="1">Art/Units/Horka/Icons/HorkaIcon_80.dds</File>
        <File md5="EF7C185FEA29380B6D80C5E8463C5C00" import="1">Audio/Magyars_Peace.mp3</File>
        <File md5="7B85FF20A731B68B422EE705037BA477" import="1">Audio/Magyars_War.mp3</File>
        <File md5="DE16AC1F94C6B44F7985729982974F08" import="1">Audio/Magyars_DOM.mp3</File>
        <File md5="1F51E4F4CA43EDED40A55A605B3FED6F" import="0">Compatibility/Civ IV Traits/CivIVTraits_cleanup.xml</File>
        <File md5="90EEF6131094A35937104458A49AA4E3" import="0">Compatibility/Civ IV Traits/Compatibility_CivIVTraits.sql</File>
        <File md5="F711C071E43FFE703AAED21721DB3FBB" import="0">Compatibility/Civ IV Traits/Compatibility_CivIVTraits_Text.xml</File>
        <File md5="5D11857F280C3E7CA14221D472149691" import="0">Compatibility/Cultural Diversity/Compatibility_CulturalDiversity.sql</File>
        <File md5="7D99DE7F1A2AB867E9099A18260D794A" import="0">Compatibility/Map Labels/Compatibility_MapLabels.sql</File>
        <File md5="27E797F379FEF46BE386DE87CF185975" import="0">Compatibility/Piety and Prestige/PietyAndPrestige.sql</File>
        <File md5="D6DEBEECEC685D9D0DB553F97BFFBFF7" import="1">GameInfo/Arpad_Scene.xml</File>
        <File md5="9485B57D2A4BE3394726851E6C693B38" import="0">GameInfo/AudioDefines.xml</File>
        <File md5="4F085347505FC98B8558BA317ACC863C" import="0">GameInfo/CumanArtDefines.xml</File>
        <File md5="8AC0D0B7E7EAB94EFB494ED9376E14B8" import="0">GameInfo/HorkaArtDefines.xml</File>
        <File md5="AA6D4A9B6E1B95A4C767FEDFAB8A878A" import="0">GameInfo/IconTextureAtlases.xml</File>
        <File md5="D63DC8BB6AA0F310DD55B264DB49C7E2" import="1">Lua/PlotIterators.lua</File>
        <File md5="D1D5AD9B58CF32BA39FB949B98DC1C32" import="0">Lua/UA_Functions.lua</File>
        <File md5="601506D10513383ECAFC93457417B8BC" import="0">Lua/UU_Functions.lua</File>
        <File md5="AF94F5E8388B10384546433B049C7C38" import="0">XML/Buildings/MagyarDummyBuilding.xml</File>
        <File md5="4624D6D4A7243A22FEF91DE65B8D438C" import="0">XML/Civilization/Civilization_Magyar.xml</File>
        <File md5="531FAC83EA712F3D0BE3E808F7BEED4D" import="0">XML/Interface/Colors_Magyar.xml</File>
        <File md5="F3763153DCFB5E9F159D43CFB8BBB64B" import="0">XML/Leader/Leader_Arpad.xml</File>
        <File md5="376B15A1A36FBA300061422883F1DE3A" import="0">XML/Leader/Trait/Trait_Arpad.xml</File>
        <File md5="E4E44614B7AD4655E5A91E74A3345D1E" import="0">XML/Text/Text_en_US.xml</File>
        <File md5="A79A88B1BA0373E8BA1864E894B61AB1" import="0">XML/Units/unitpromos/UnitPromos.xml</File>
        <File md5="45A664F2789FE8792133038495AFF04D" import="0">XML/Units/Unit_Cuman.xml</File>
        <File md5="789EDA8050CA88BCDF1A5E982CFA9C40" import="0">XML/Units/Unit_Horka.xml</File>
        <File md5="C3F3E26A72E57159A2D46AEA2E182CDA" import="0">XML/updateOtherCivs/updateCityStates/updateBudapest.xml</File>
      </Files>
      <Actions>
        <OnModActivated>
          <UpdateDatabase>GameInfo/AudioDefines.xml</UpdateDatabase>
          <UpdateDatabase>GameInfo/CumanArtDefines.xml</UpdateDatabase>
          <UpdateDatabase>GameInfo/HorkaArtDefines.xml</UpdateDatabase>
          <UpdateDatabase>GameInfo/IconTextureAtlases.xml</UpdateDatabase>
          <UpdateDatabase>XML/Civilization/Civilization_Magyar.xml</UpdateDatabase>
          <UpdateDatabase>XML/Interface/Colors_Magyar.xml</UpdateDatabase>
          <UpdateDatabase>XML/Leader/Trait/Trait_Arpad.xml</UpdateDatabase>
          <UpdateDatabase>XML/Leader/Leader_Arpad.xml</UpdateDatabase>
          <UpdateDatabase>XML/Buildings/MagyarDummyBuilding.xml</UpdateDatabase>
          <UpdateDatabase>XML/Text/Text_en_US.xml</UpdateDatabase>
          <UpdateDatabase>XML/Units/Unit_Cuman.xml</UpdateDatabase>
          <UpdateDatabase>XML/Units/Unit_Horka.xml</UpdateDatabase>
          <UpdateDatabase>XML/updateOtherCivs/updateCityStates/updateBudapest.xml</UpdateDatabase>
          <UpdateDatabase>Compatibility/Civ IV Traits/CivIVTraits_cleanup.xml</UpdateDatabase>
          <UpdateDatabase>Compatibility/Civ IV Traits/Compatibility_CivIVTraits.sql</UpdateDatabase>
          <UpdateDatabase>Compatibility/Civ IV Traits/Compatibility_CivIVTraits_Text.xml</UpdateDatabase>
          <UpdateDatabase>Compatibility/Cultural Diversity/Compatibility_CulturalDiversity.sql</UpdateDatabase>
          <UpdateDatabase>Compatibility/Map Labels/Compatibility_MapLabels.sql</UpdateDatabase>
          <UpdateDatabase>Compatibility/Piety and Prestige/PietyAndPrestige.sql</UpdateDatabase>
        </OnModActivated>
      </Actions>
      <EntryPoints>
        <EntryPoint type="InGameUIAddin" file="Lua/PlotIterators.lua">
          <Name>PlotIterators</Name>
          <Description>
          </Description>
        </EntryPoint>
        <EntryPoint type="InGameUIAddin" file="Lua/UA_Functions.lua">
          <Name>UA FUnctions</Name>
          <Description>
          </Description>
        </EntryPoint>
        <EntryPoint type="InGameUIAddin" file="Lua/UU_Functions.lua">
          <Name>UU Functions</Name>
          <Description>
          </Description>
        </EntryPoint>
      </EntryPoints>
    </Mod>
    Obviously, your code would have different values, but the overall structure should be the same.
    What I find most concerning is the file and mod IDs, which must be totally 100% unique not only within the context of the mod, but also within the context of all other mods. Exactly what the constraints are for how they should be formatted is beyond me.
    Have fun with that.
     
  3. PawelS

    PawelS Ancient Druid

    Joined:
    Dec 11, 2003
    Messages:
    2,803
    Location:
    Poland
    Whoward's My Changes is good as a mod template that you can use to build your own mod without ModBuddy.
     
  4. RothX

    RothX Chieftain

    Joined:
    Sep 25, 2015
    Messages:
    5
    Thanks for the quick response!
    Yeah, most of that file looks pretty simple and replicable, except those IDs. That seems like it might be bordering the impossible to do manually. This might just be worth a Bootcamp or VMware.
    Just to clarify, is the making the modinfo file for you the only reason that ModBuddy is more useful than just text files? Or are there other features?
     
  5. RothX

    RothX Chieftain

    Joined:
    Sep 25, 2015
    Messages:
    5
    Oh, I was responding to AW, but PawelS replied while I was writing.
    Thanks, I will check out that template, see how it works.
     
  6. AW Arcaeca

    AW Arcaeca Deus Vult

    Joined:
    Mar 10, 2013
    Messages:
    2,969
    Gender:
    Male
    Location:
    Operation Padlock ground zero
    Advantages of ModBuddy (other than the modinfo file):

    - When writing XML files it will automatically add in the end tag once you write the start tag, which basically speeds up total code writing time by upwards of 10% (since I'm assuming writing the markup between the tags takes everyone longer than writing the tags themselves)
    - Will alert you when you make an XML syntax error
    - Easier to organize files, plus when you move a file, you don't have to change the filepath in the modinfo - that's done automatically
    - syntax highlighting for most code
    - Don't remember if it automatically puts all files in the correct encoding or not, but that's definitely a "maybe"
    - Building the mod produces an up-to-date folder with the most recent version of the mod which will automatically overwrite your older version, so you don't have to manually delete it
    - Building the mod also, along with the folder version of the mod, packages the mod for use in convenient .civ5mod format
    - As part of the Civ5 SDK, comes with Nexus, FireTuner and World Builder; Personally I don't use any of those except FT which is invaluable for testing lua scripts
     
  7. Nutty

    Nutty Deity

    Joined:
    Mar 9, 2011
    Messages:
    3,181
    Gender:
    Male
    Location:
    Orange County, California, U.S.A.
    The mod ID is generated randomly. Just replace a few hex characters of an existing one. The md5="" entries in the files section can be left out completely.
     
  8. RothX

    RothX Chieftain

    Joined:
    Sep 25, 2015
    Messages:
    5
    Ok, thank you!
    You've been very helpful. I'm new here, and I can't believe how fast I got a detailed response.
     
  9. RothX

    RothX Chieftain

    Joined:
    Sep 25, 2015
    Messages:
    5
    Oh, Nutty did that post while I was typing again. Thanks I will try that.
    In case there is anyone else in a similar predicament as me, I will come back here later and post my results. And maybe I'll even have a shiny new mod...
     
  10. LeeS

    LeeS Imperator Supporter

    Joined:
    Jul 23, 2013
    Messages:
    7,174
    Location:
    Illinois, USA
    The only real outstanding constraint is that the Steam Workshop wants to work with ModBuddy and the xxxx.civ5mod file for uploading the mod to the workshop. But all the civ5mod file is is a 7z archive with a fancy name to it, so even not being able to generate that is not so much of an issue if you zip/upload to sites like this here one in order to share your work with others.

    BTW I never edit code of lua/xml/sql files from within the ModBuddy tool. The Modbuddy editor is too much a pile of smelly something....I just open the files in Notepad and edit. Copy/paste find/replace functionality of a plain old text editor far outweighs any advantages of editing directly within ModBuddy, and is generally faster because ModBuddy 'thinks' about the text of the code as it is being alterred and slows down your work. There isn't anything special about any of the lua, xml, sql files that requires them to be in some way 'packaged' or 'saved' from within modbuddy. It's just more convenient to use ModBuddy to set up all the activation methods (<UpdateDatabase>, import="1", EntryPoint type="InGameUIAddin", etc.)
     
    JA_Lamb likes this.
  11. onmy6

    onmy6 Prince

    Joined:
    Sep 25, 2014
    Messages:
    483
    Location:
    New Zealand
    I never use modcruddy I just looked at the structure of other mods and learned from that, the only tools I use are the logs and whowards "modtools" for verification if something goes wrong although that's not always 100% accurate but once you learn the program it's quite brilliant especially if you decide at some point to make a big mod as sometimes you might forget something or make a mistake then modtools will generally find it so you can correct it apart from that there are many people here who are more than willing to help you out if you get into difficulty
     
  12. jackgames

    jackgames Warlord

    Joined:
    Aug 10, 2013
    Messages:
    115
    I've never used ModBuddy and, although you have to make everything on your own, found it very simple. Here are the tools I'm used to:
    RJTextEd as text editor
    ChaosMD5 to generate MD5 from file
    SQLiteStudio to browse database and test SQL queries
    Tuto Modinfo tags meaning for creating modinfo file

    That's it.
     
  13. Nutty

    Nutty Deity

    Joined:
    Mar 9, 2011
    Messages:
    3,181
    Gender:
    Male
    Location:
    Orange County, California, U.S.A.
  14. SnowyNix

    SnowyNix At Least I Can Talk

    Joined:
    Sep 6, 2014
    Messages:
    709
    Location:
    My Aircraft
    you do realise you can find/replace in ModBuddy itself, right?
     
  15. LeeS

    LeeS Imperator Supporter

    Joined:
    Jul 23, 2013
    Messages:
    7,174
    Location:
    Illinois, USA
    editor within modbuddy is far less easy to use. copy/paste is a pain, etc., etc.
     
  16. PawelS

    PawelS Ancient Druid

    Joined:
    Dec 11, 2003
    Messages:
    2,803
    Location:
    Poland
    The ModBuddy editor is quite good for editing XML files. It's bad for SQL files (as it sometimes marks valid code as a syntax error), and for Lua files (as in case of large Lua files it becomes very slow).
     
  17. washy

    washy Chieftain

    Joined:
    Feb 9, 2015
    Messages:
    38
    One question, for uploading the mod to steam and having no issues in the unpaking, if you generate the MD5 with chaos it will work?
    But you generate a number, and when you put it again in the file it changes...
     
  18. Artisanix

    Artisanix Warlord

    Joined:
    Oct 6, 2013
    Messages:
    104
    Those file hashes game uses are not for checking file integrity, but for referencing mods - MD5s act as identifiers here.

    In ModBuddy you have Associations tab where you can add hashes (IDs) for dependences, references, or blockades for particular mods.

    For instance, any mod that requires the popular whowards' DLL, has a pointer to its ID in dependencies section of that tab. That ID for whoward's mod was generated only once, and stays intact through every version of that mod, so that other mods dependent on it could reference some unchanging value.

    Technically speaking, every released mod should have unique ID that never changes between its updates.
     
    Last edited: Aug 2, 2018

Share This Page