Musings on Load Order
#1


I'm obviously biased, so this will all be written with <abbr title="Colonial Charter">CC</abbr> in mind, but it should be transferable to any mods.




First, a little background information.  Banished loads mods from the top down.  So the very top mod will be fully loaded, then the second from the top, and so on.  If two mods conflict, the mod that is one top will be fully loaded, while the lower one will not load the conflicting portions.




If you enable a mod, and it stays green, it doesn't matter where it is in the load order, because it will be fully loaded no matter what.  So the rest of this will be with conflicting mods in mind.




To know whether a mod has to go above or below <abbr title="Colonial Charter">CC</abbr>, you just need to do a little critical thinking.  There's basically two kinds of mods: an Override mod, and an Add-on mod.  I kind of just made these names up, but their descriptions are apt.




An Override mod is something that changes an already existing element of <abbr title="Colonial Charter">CC</abbr>.  An Add-on mod is something that adds a new function, like a new building or crop.




Override mods need to be loaded Above <abbr title="Colonial Charter">CC</abbr>, so that they are fully loaded, and the conflicting portion of <abbr title="Colonial Charter">CC</abbr> is not loaded, so only the Overrides code is running.




If you want to load, for example, the Ridiculous Storage mod, then you have to think, 'Is this an Override, or an Add-on'.  Since it changes an already existing element, namely the storage capacities of the buildings, it's an Override mod.  So you place it above <abbr title="Colonial Charter">CC</abbr>.




Add-on mods need to be loaded Below <abbr title="Colonial Charter">CC</abbr>, because they require a piece of the <abbr title="Colonial Charter">CC</abbr> code.  This actually brings up an interesting point.  One mod can borrow the resources of another mod, but only if it is loaded below it.




If you want load, for example, the new Stable mod, then you have to think 'Is this an Override, or an Add-on'.  Since it has a brand new building, with a brand new function, it's an Add-on mod.  So you place it below <abbr title="Colonial Charter">CC</abbr>. 




This is a good example of mods sharing code.  In the Stable mod, the code for the Domesticated Animal doesn't exist.  It's borrowing it from the main <abbr title="Colonial Charter">CC</abbr> mod.  But if you were to load the Stable above <abbr title="Colonial Charter">CC</abbr>, the game would crash because it can't find the Domesticated Animal.  In the code for the Stable, there exists an empty placeholder that says ""Here's the Domesticated Animal code"" but it's a big empty hole.  When the mod is compiled, it throws up an error that says ""Hey, this spot is empty"" and I just tell it to ignore the error.




So if it's placed below <abbr title="Colonial Charter">CC</abbr>, when <abbr title="Colonial Charter">CC</abbr> is loaded the Domesticated Animal code is loaded.  And then when Stable is loaded, since the Domesticated Animal is already loaded, the game won't load the empty Domesticated Animal code, and everything is good.  But, on the other hand, if Stable is loaded first, then the big empty hole is loaded first, and when <abbr title="Colonial Charter">CC</abbr> is loaded, it won't load the good code, because the game thinks it's already loaded, and it will crash when you build the Stable.




So.  If that makes any sense, then you should have a general understanding of whether or not to load things above of below <abbr title="Colonial Charter">CC</abbr>.




 




tl;dr: Overrides go above.  Add-ons go below.


  Reply
#2

It makes sense to me, but the problem is most of us won't know what code you have put in and what code you have left out of any particular mod. But if you write in your mod descriptions ADD-ON or OVERRIDE or STANDALONE and continue to let us know where to place it then all should be good. You could also put load order placement instructions in the mod description that is visible from the in-game mod screen. That should (hopefully) make it foolproof. [img]<fileStore.core_Emoticons>/emoticons/smile.png[/img]/emoticons/smile@2x.png 2x" title=":)" width="20" />
  Reply
#3

Quote:
11 hours ago, elemental said:




That should (hopefully) make it foolproof. [img]<fileStore.core_Emoticons>/emoticons/smile.png[/img]/emoticons/smile@2x.png 2x" title=":)" width="20" />



Well for me the proper word would be...




Idiotproof  [img]<fileStore.core_Emoticons>/emoticons/biggrin.png[/img]/emoticons/biggrin@2x.png 2x" title=":D" width="20" />[img]<fileStore.core_Emoticons>/emoticons/biggrin.png[/img]/emoticons/biggrin@2x.png 2x" title=":D" width="20" />[img]<fileStore.core_Emoticons>/emoticons/biggrin.png[/img]/emoticons/biggrin@2x.png 2x" title=":D" width="20" />

  Reply
#4

huh did someone call me?

  Reply
#5


<a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/3-kralyerg/&do=hovercard" data-mentionid="3" href="<___base_url___>/index.php?/profile/3-kralyerg/">@Kralyerg</a> thank you very much [img]<fileStore.core_Emoticons>/emoticons/smile.png[/img]/emoticons/smile@2x.png 2x" title=":)" width="20" />  That is a great help.




Question is, mods like <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/5518-necora/&do=hovercard" data-mentionid="5518" href="<___base_url___>/index.php?/profile/5518-necora/">@Necora</a> Maritime & Pine sets, where he is using elements of <abbr title="Colonial Charter">CC</abbr>, where do they go (I will ask in his thread, but for example sake, I'm posting here).  I always put them Over <abbr title="Colonial Charter">CC</abbr> because the new buildings etc.  BUT, in reading this, because he has used resources from <abbr title="Colonial Charter">CC</abbr>, should it then be loaded UNDER <abbr title="Colonial Charter">CC</abbr>?




Same as a couple of <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/6338-discrepancy/&do=hovercard" data-mentionid="6338" href="<___base_url___>/index.php?/profile/6338-discrepancy/">@Discrepancy</a> & <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/3183-ketchup/&do=hovercard" data-mentionid="3183" href="<___base_url___>/index.php?/profile/3183-ketchup/">@Ketchup</a> mods, where they use some resources.  OR, are the resources fully loaded in their mods, and not relying on shared parts?




Very interesting post, thank you again. [img]<fileStore.core_Emoticons>/emoticons/smile.png[/img]/emoticons/smile@2x.png 2x" title=":)" width="20" />

  Reply
#6


That's a good question and brings up a completely third group of mods not mentioned above.




Inter-operable mods.




Basically, mods that are fully standalone but at the same time, interconnect with <abbr title="Colonial Charter">CC</abbr>. Many of RedKetchups, Necoras, Disrepancys and Kids mods interconnect with <abbr title="Colonial Charter">CC</abbr> in some way, but work 100% without <abbr title="Colonial Charter">CC</abbr>.  Most of the time, everything is exactly the same, so it doesn't matter which is above and which is below, because both mods have the exact same files, so it doesn't matter which one steps on which.




Sometimes things are slightly different and so things would slightly change based on which is above. But in a vast majority of the cases, its not really going to affect your gameplay that much. I can't even think of one off the top of my head that is different.




So, normally, it doesn't really matter.


  Reply
#7


With my stuff, anything that is in both Maritimes and <abbr title="Colonial Charter">CC</abbr> will be identical at least function wise. There are a few visual differences, such as the model used for domesticated animal and lumber, and icons etc. But in terms of value and functionality, they are intended to be interchangeable and so it doesn't matter which one is on top.




The way I see it, if you like things to look good, put <abbr title="Colonial Charter">CC</abbr> on top! That way you don't have to see my crappy models and icons [img]<fileStore.core_Emoticons>/emoticons/wink.png[/img]/emoticons/wink@2x.png 2x" title=";)" width="20" />



 


  Reply
#8


Thank you both <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/3-kralyerg/&do=hovercard" data-mentionid="3" href="<___base_url___>/index.php?/profile/3-kralyerg/">@Kralyerg</a> & <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/5518-necora/&do=hovercard" data-mentionid="5518" href="<___base_url___>/index.php?/profile/5518-necora/">@Necora</a> that helps immensely.




I do like <a contenteditable="false" data-ipshover="" data-ipshover-target="<___base_url___>/index.php?/profile/2413-elemental/&do=hovercard" data-mentionid="2413" href="<___base_url___>/index.php?/profile/2413-elemental/">@elemental</a>'s idea of where possible modders add a <abbr title="Colonial Charter">CC</abbr> note.  Not mandatory, but, if it alters <abbr title="Colonial Charter">CC</abbr> or <abbr title="MegaMod">MM</abbr> in any way, maybe have it as a standard "note".


  Reply