Since players have started to explore modding now, they've come upon one crucial decision: do I put it in my installation folder or do I create a new folder in the /mods/ folder?
The mods we've seen so far have mostly been put in the installation directory. This is bad for any number of reasons. It makes it impossible to have several mods installed at once. It makes it difficult to uninstall mods. It makes it messy when you include graphics files.
So why are people doing it? Because putting stuff in the /mods/ folder is ridden with bugs. These have been here since E:wom and it is basically a quagmire that you need to navigate to make it properly.
I'm going to list some examples below. If you are confused by the description, I am explaining it like I am in the /mods/ folder.
GameItemType - I'm starting with these because they are the basis of what I'd expect. Whenever I create a mod for one of these types that already exist, all tags that were previously defined in the old type are deleted. So, if there is a sword I can easily overwrite it with my own definition. Except... if I overwrite all the items, the system that arranges random loot (using <Likelihood>) completely breaks down from monsters (not goodiehuts).
ImprovementType and AbilityBonus and AbilityBonusOption - unlike the GameItemType/UnitType, the ImprovementType does not forget any tags previously defined in the old version, when it is being overwritten. So, we are unable to remove a modifier from an ImprovementType (rather, we have to block it, and create a new one, which is a work-around).
SpellDef - SpellDefs are like a mix of the two above - we can overwrite it, and everything from the old SpellDef is lost when we do this - except those <SpellResourceCost> and <Prereq> tags that are not deleted but stay saved. Edit: It appears <SpellDefEffect> tags are also not deleted.
UnitType - All tags appear to be lost when overwritten except <SelectedAbilityBonusOption>.
TechDef - this type is straight up not overwriteable or even modifiable from /mods/. If I attempt to modify a TechDef from a mod file, the result is always that nothing happens at all.
TerrainType - I'm not sure about these, but I think they appear to be overwritable, but when overwriting TerrainTypes you must copy the entirety of the original TerrainTypes.xml file. GameModifiers are also not deleted from the old type. And there is also a major difference between modding the TerrainTypes from the mod folder, and from the installation folder. When doing it from the mod folder, no new Terraintypes can be added - instead of adding more, the game goes back to the start - if I add one single TerrainType, the game will overwrite the first defined TerrainType (Land) in the map files. When modding from the installation directory, I can add new terraintypes without being picky. (fixed in 1.12)
EnvironmentType - this type is straight up not moddable. For some reason, EnvironmentTypes are hardcoded in the exe, and adding new ones just creates environments that you can't actually use anywhere.
ElementalDefs.xml - another container that requires you to copy all the contents of the files if you wish to mod a single one. Most tags in this file should be treated like a top-level node.
UnitGroupingType - only moddable from installation directory, not a mod file. Like the TechDef, nothing is changed if I attempt to alter it from a mod file.
ElementalMap - this type is one of the strangest types, because it requires that they be put in special folders. Strategic maps must be in /Maps/ and tactical maps in /Maps/TacticalMaps/. What is the logic here? It's really dumb because it means we have to spread our /mods/ out over several folders.
Speaking of separate folders, why does /Mods/Gfx/ even exist? It is the only folder scanned for graphics files (.hkb .dds .dds). Whyyy? Again, it just means we have to spread our mods out over another folder.
The above comments are simply "what we've discovered". There could be all kinds of bugs we haven't even found yet because noone tried a certain something.
What you've accomplished with XML in this game is quite crazy, it allows for a surprisingly deep level of modding given that we can only change or alter data. But these things I've described above are just examples of the painful boobytraps that new modders have to navigate when changing the game from the /mods/ folder. Most people start by changing a unittype or a gameitemtype - either a saved unit design, or some new fancy weapon they want to test. Those "just work", because old versions (mostly) get overwritten. But after that, there are many different things you must take into consideration which appear to have no reasoning behind them.
FE needs a much more consistent way to overwrite installation content from the /mods/ folder - call it object sanity if you will. XML needs to be treated in one way across the board. Nothing that is expressed in XML should be hardcoded or irrevocably bound to a certain system. Otherwise, people will just continue to modify the installation directory and modding will continue to suffer from the same problems I spoke of in the start - difficult to share, difficult to combine, difficult to install and un-install.
Here is a "case-in-point", the installation instructions from my mod Stormworld 1.5a
To install the Stormworld mod, extract the folders you wish to use (read more below) to Documents/My Games/FallenEnchantress/Mods
So you should end up with the structure looking like this (example):
Documents/My Games/FallenEnchantress/Mods/Stormworld_ExpandedFactions
Documents/My Games/FallenEnchantress/Mods/Gfx/
Documents/My Games/FallenEnchantress/Mods/Stormworld_Rivermod
Make sure that you turn on "Use Mods" in the in-game Options menu (under Gameplay). Note that whenever you change that option, you are required to restart the game for changes to take effect.
If you are using the Stormworld_Rivermod module, you must also do the following after extracting the folder as described above: open the /Stormworld_Rivermod/ folder, and then open the TerrainTypes.rar file. This .rar file contains two files, one named simply TerrainTypes.xml and one named TerrainTypes_Backup.xml. Extract the one named TerrainTypes.xml into C:\Program Files\Stardock Games\FallenEnchantress\data\English\ so that it overwrites the version already present there.
If you are running into problems with missing forests or swamps in-game, run the game as Administrator (right-click shortcut -> Run as Administrator).