Note: the downloads are available through the history.
Enhanced Mechanics Mod (EMM)
A collection of fixes and improvements over the original game I've been gathering for quite a while now. I tried to keep the changes at the minimum, so that you can use it with your own mods (or if you like to enjoy the original game at most).
This mod consists of two parts:
- DLL fixes: This is the base, required for everything to work. This also includes the updated editor (please, note, that the editor saves files in an incompatible format), and the python code.
- XML fixes: This is optional. You can use the original XML or from your own mod (in this case for some new features to work you'll need add them to the XML manually (if so it will be mentioned in the description)). This XML mostly contains balance tweaks, but you'll also notice that it has a couple of new units and buildings from the addons.
The optional switches (starting with the EM_) are placed to the GlobalDefinesEM.xml, you may edit them as you wish to switch the new features on and off.
DLL features summary:
Involved (gameplay) fixes:
- Can now found cities closer to other cities. Mode 0 - is off (uses the old behavior), mode 1 - cannot found within city radius, mode 2 - even closer..
EM_FOUND_CITY_CITY_RADIUS_MODE 0|1|2
- (testing) Can found cities on enemy territory (when at war).
EM_FOUND_CITY_WAR_OWNED 0|1
- Free city commerce. I used it to add 1 culture to each city in the new XML (it serves as a nerf for the creative leaders, and also makes the city start (until you build an obelisk) less irritating).
EM_CITY_COMMERCE_GOLD value
EM_CITY_COMMERCE_RESEARCH value
EM_CITY_COMMERCE_CULTURE value
- Golden age num units does not increase with each golden age
EM_NO_GOLDEN_AGE_NUM_UNITS_INCREASE 0|1
- Great people now have a per era modifier. To EraInfo:
iUnitDiscoverPercent
iUnitHurryPercent
iUnitTradePercent
iUnitGreatWorkPercent
- No certain random events: global warming, random bonus discoveries
EM_NO_GLOBAL_WARMING 0|1
EM_NO_RANDOM_BONUSES 0|1
- Using the Bombard action now finishes the moves
- Using the Pillage action now sets the made attack flag; cannot pillage after having made an attack
- Promoting a unit now doesn't change its health
EM_NO_PROMOTION_HEAL 0|1
- The occupation timer is now clamped to a constant. This is done because some cities could have a ridiculously high occupation timer. The value of 0 will leave it unclamped.
EM_MAX_OCCUPATION_TIMER value
- Revolt is now 1 turn
- (testing) No world map trading.
EM_WORLD_MAP_TRADING 0|1
- (testing) New combat (no random)
EM_NEW_COMBAT 0|1
General fixes:
- Barbs are now on the minimap too..
- The plot info now shows the percentage for every player
- Fixed a bug (?) where a player could have been left without settlers and cities and still remain alive
- CvCity::doTurn fixes (doCulture after changeOccupationTimer and other, other)
- bPermanent flag added to FeatureInfo (the feature can't be cleared, for example when a city is created on it; also a feature with this flag is doesn't count as removable when calculating the plot yield)
NOTE: when not using the new XML, this flag should be added manually
- No declare war popup when moving units in neutral lands
- Upgraded unit now continues its predecessor activity
- Added tech progress and item costs to the diplomacy help
- (pathfinding) Flat move on unrevealed plots: galleons now won't tend to bend the path around the black tiles.
- (pathfinding) Path through enemy city fix
- Unit heal and fortify fixes (now is performed in the right order)
- UnitCombatAttackModifier, UnitCombatDefenseModifier added to UnitInfo. The old way was to use unit classes (instead of unit combat) to do the separate (attack or defense) modifiers.
NOTE: when not using the new XML, these tags should be added manually
- Promotions are now cleared on unit upgrade if the unit can't have them. If the promotion is cleared, then you can choose another one (the prerequisite is that it wasn't a free promotion).
- City names are now chosen randomly (except for the capital)
EM_RANDOM_CITY_NAMES 0|1
- Can connect shore bonuses (on small islands). This was added because it wasn't possible to incorporate bonuses on small islands without building a city on such an island.
- The unit now won't stop its mission if there's an enemy unit nearby and the group can defend (prevents clearing the generated path when passing an enemy unit).
- Collateral combat damage is now scaled by the unit HP
AI tweaks and fixes:
- Fixed the disproportional tech trade values on player difficulties other than NOBLE: the AI literally wanted more for a technology which was already offesetted by the higher (or lower) research costs on these difficulties.
- "Traded with our worst enemies" now only when has met. It was a bug when you meet a new civilization and they are already annoyed to you, because you've traded with their "worst enemies"
- The AI counters now only work when has met (see above)
- Explorers now enter the barbarian (and other enemy players) territory (when automated). Otherwise it was preventing the AI from exploring the map.
EM_AI_EXPLORE_ENEMY 0|1
- AI vote: force civic fix (the old one was to always vote for a civic if the civic was already forced)
- Open borders tweaks: the AI now will consider more circumstances before opening the borders.
EM_AI_TRADE_DENIAL_MYSTERY 0|1 -- includes the borders and the maps
- AI world map trade: mystery refuse
EM_AI_TRADE_DENIAL_MYSTERY 0|1 -- includes the borders and the maps
- (testing) The AI will settle faster (especially on terra like maps)
EM_AI_FAST_SETTLE 0|1
- (testing) AI war mechanics changed a bit, the decisions now should be more strategical
EM_AI_NEW_WAR_MECHANICS 0|1
Barbarians:
- Barbarians now only appear if the area has some cities (this is to prevent from spawning those on the poles)
- Barbs can build culture producing buildings now.
- Prevent barbs from training units the nearby civilizations don't have a tech for. This is a fix for the Earth1000AD (and other such like) scenario, where you play for the Aztecs and start to encounter macemans (and even more advanced units) when you still have jaguar warriors. The barbarians' "advancedness" is now also more local in general.
- Barbarians now upgrade units slower... this works in conjunction with the above, to don't let the player be overwhelmed by the "too advanced" barbarians.
EM_BARBARIAN_UPGRADE_RAND value -- the bigger the slower the upgrade
- No barb defenders at goodies. It was preventing the AI from creating cities on goodies (even though it might have been the best location).
Brought here from the addons (Warlords and BTS):
- Added "War with" and "Worst enemy of" to the context leader help
- River crossing code (it was a bug in CivIV that have never been fixed but in the addons)
- Workers handle dangers properly. The workers are now more exposed, but it helps the AI to develop quicker, without the workers being stuck in a city for no apparent reason.
World Builder:
- Added more options to the diplomacy screen: open borders, has met, defensive pact, etc. This feature works (without troubles) only when saving to file, using it in-game may lead to unexpected effects.
- Force[XXX]MaxedOut to WBSave. Allows to "max out" certain buildings, units, projects, religions. Can be used to disable building the ancient wonders in medieval scenarios, etc. The full list consists of:
ForceUnitClassMaxedOut
ForceBuildingClassMaxedOut
ForceProjectMaxedOut
ForceReligionFounded
NOTE: You have to add these manually to the saved file (no option in the editor), see the Raging Barbs scenario for the example.
- (Python) Changing the city's culture now affects only the currently selected player
- (Python) The barbarian cities now can have culture (saved)
- (Python) Bonus count: now displays the total amount of the selected bonus type on the map
- (Python) River placing code fixes
- (Python) Tech picker just like the in-game one
In plans (DLL):
- To rework the air and the collateral combats
- To add some special abilities
- Improve the AI strategy
- Minor fixes to AI movement and units management
XML changes summary:
Units:
- Unit strengths and costs have been tweaked a bit: scout, warrior, archer, spearman, pikeman, galley and some other units (especially the unique ones) are now more powerful; catapults, mech infantry are less (the catapults got a 100% chance to withdraw though, which is planned to be replaced later with a special ability); modern ships and planes are much more expensive now;
- Unit upgrade tree has been tweaked for certain units
- Spy abilities were cut (now is just an invisible explorer)
- Added Trebuchet (from Warlords)
- Quechua is now an axeman
- Submarine now cannot see other submarines
- Gunship now requires Computers; Marine - Radio; Cannon - Military tradition and Gunpowder
- Cannon got a 50% defense bonus against guns, Artillery - 50% defense bonus against armor; these both can fortify now (and use the defensive bonuses as well)
- Bombers +50% vs land units
Buildings:
- Costs tweaked for some buildings
- Jail -50% war
- Colosseum +2 happy
- Kremlin +6 culture
- Added The University of Sankore wonder (from Warlords)
Techs:
- Chemistry now requires Education and costs higher; Education does not lead to Gunpowder
- Astronomy cost lowered down
Promotions:
- Promotion to unit combat type assignments and promotion prerequisites a bit reworked
- Some promotions now require a tech (mostly to not allow choosing them too early)
- Some promotions got removed at all: Drill, Formation and some others (the first strike and withdrawal mechanics are considered to be removed in this mod in the future)
General fixes:
- Lowered unit upgrade cost
- Golden age: required num units - 1 (was 2), length - 7 (was 8); also the DLL disables the increase in the required unit count (so it will always be 1)
- The handicap values are more sensible now (so that you can REALLY play at Deity)
- The barbarian cities will now be less frequent, and the barbarian activities are cut a bit
- Financial trait - yield (commerce) threshold changed to 4 (was 2)
- The AI now gets lesser bonus against the barbarians
- The barbarian player now can build and train almost everything what a civilized one can (the exceptions are: wonders, settlers, missionaries, some units)
- Flood plains will stay in city now (the DLL adds a flag for this)
- Culture level infos got tweaked, so that the initial city culture expansion now requires more culture
- The specialist infos are bit reworked (some nerfed)
- The map generator was tweaked to produce more rivers
- The map generator was changed to generate grass next to tundra (instead of plains)
- (testing) Player spawn min range. On densely populated maps this helps to distribute the players more evenly (though I suppose it works poorly when the opposite)
- (testing) Terra: don't spawn players in tundra (can be easily reproduced in other maps, see Terra.py)
How to install:
Unpack the contents of the archive to the Civilization IV Mods folder. The mod should be now loadable from the game menu. Alternatively you can edit the game config file to specify the mod directly: 'Mod = Mods\EMM'. This is the way I prefer. Note that this mod is for the vanilla game (not Beyond the Sword; there are plans to port it to Beyond the Sword too though). Also this version is for the patch 1.74 (the current Steam version of the game).
Enhanced Mechanics Mod (EMM)
A collection of fixes and improvements over the original game I've been gathering for quite a while now. I tried to keep the changes at the minimum, so that you can use it with your own mods (or if you like to enjoy the original game at most).
This mod consists of two parts:
- DLL fixes: This is the base, required for everything to work. This also includes the updated editor (please, note, that the editor saves files in an incompatible format), and the python code.
- XML fixes: This is optional. You can use the original XML or from your own mod (in this case for some new features to work you'll need add them to the XML manually (if so it will be mentioned in the description)). This XML mostly contains balance tweaks, but you'll also notice that it has a couple of new units and buildings from the addons.
The optional switches (starting with the EM_) are placed to the GlobalDefinesEM.xml, you may edit them as you wish to switch the new features on and off.
DLL features summary:
Involved (gameplay) fixes:
- Can now found cities closer to other cities. Mode 0 - is off (uses the old behavior), mode 1 - cannot found within city radius, mode 2 - even closer..
EM_FOUND_CITY_CITY_RADIUS_MODE 0|1|2
- (testing) Can found cities on enemy territory (when at war).
EM_FOUND_CITY_WAR_OWNED 0|1
- Free city commerce. I used it to add 1 culture to each city in the new XML (it serves as a nerf for the creative leaders, and also makes the city start (until you build an obelisk) less irritating).
EM_CITY_COMMERCE_GOLD value
EM_CITY_COMMERCE_RESEARCH value
EM_CITY_COMMERCE_CULTURE value
- Golden age num units does not increase with each golden age
EM_NO_GOLDEN_AGE_NUM_UNITS_INCREASE 0|1
- Great people now have a per era modifier. To EraInfo:
iUnitDiscoverPercent
iUnitHurryPercent
iUnitTradePercent
iUnitGreatWorkPercent
- No certain random events: global warming, random bonus discoveries
EM_NO_GLOBAL_WARMING 0|1
EM_NO_RANDOM_BONUSES 0|1
- Using the Bombard action now finishes the moves
- Using the Pillage action now sets the made attack flag; cannot pillage after having made an attack
- Promoting a unit now doesn't change its health
EM_NO_PROMOTION_HEAL 0|1
- The occupation timer is now clamped to a constant. This is done because some cities could have a ridiculously high occupation timer. The value of 0 will leave it unclamped.
EM_MAX_OCCUPATION_TIMER value
- Revolt is now 1 turn
- (testing) No world map trading.
EM_WORLD_MAP_TRADING 0|1
- (testing) New combat (no random)
EM_NEW_COMBAT 0|1
General fixes:
- Barbs are now on the minimap too..
- The plot info now shows the percentage for every player
- Fixed a bug (?) where a player could have been left without settlers and cities and still remain alive
- CvCity::doTurn fixes (doCulture after changeOccupationTimer and other, other)
- bPermanent flag added to FeatureInfo (the feature can't be cleared, for example when a city is created on it; also a feature with this flag is doesn't count as removable when calculating the plot yield)
NOTE: when not using the new XML, this flag should be added manually
- No declare war popup when moving units in neutral lands
- Upgraded unit now continues its predecessor activity
- Added tech progress and item costs to the diplomacy help
- (pathfinding) Flat move on unrevealed plots: galleons now won't tend to bend the path around the black tiles.
- (pathfinding) Path through enemy city fix
- Unit heal and fortify fixes (now is performed in the right order)
- UnitCombatAttackModifier, UnitCombatDefenseModifier added to UnitInfo. The old way was to use unit classes (instead of unit combat) to do the separate (attack or defense) modifiers.
NOTE: when not using the new XML, these tags should be added manually
- Promotions are now cleared on unit upgrade if the unit can't have them. If the promotion is cleared, then you can choose another one (the prerequisite is that it wasn't a free promotion).
- City names are now chosen randomly (except for the capital)
EM_RANDOM_CITY_NAMES 0|1
- Can connect shore bonuses (on small islands). This was added because it wasn't possible to incorporate bonuses on small islands without building a city on such an island.
- The unit now won't stop its mission if there's an enemy unit nearby and the group can defend (prevents clearing the generated path when passing an enemy unit).
- Collateral combat damage is now scaled by the unit HP
AI tweaks and fixes:
- Fixed the disproportional tech trade values on player difficulties other than NOBLE: the AI literally wanted more for a technology which was already offesetted by the higher (or lower) research costs on these difficulties.
- "Traded with our worst enemies" now only when has met. It was a bug when you meet a new civilization and they are already annoyed to you, because you've traded with their "worst enemies"
- The AI counters now only work when has met (see above)
- Explorers now enter the barbarian (and other enemy players) territory (when automated). Otherwise it was preventing the AI from exploring the map.
EM_AI_EXPLORE_ENEMY 0|1
- AI vote: force civic fix (the old one was to always vote for a civic if the civic was already forced)
- Open borders tweaks: the AI now will consider more circumstances before opening the borders.
EM_AI_TRADE_DENIAL_MYSTERY 0|1 -- includes the borders and the maps
- AI world map trade: mystery refuse
EM_AI_TRADE_DENIAL_MYSTERY 0|1 -- includes the borders and the maps
- (testing) The AI will settle faster (especially on terra like maps)
EM_AI_FAST_SETTLE 0|1
- (testing) AI war mechanics changed a bit, the decisions now should be more strategical
EM_AI_NEW_WAR_MECHANICS 0|1
Barbarians:
- Barbarians now only appear if the area has some cities (this is to prevent from spawning those on the poles)
- Barbs can build culture producing buildings now.
- Prevent barbs from training units the nearby civilizations don't have a tech for. This is a fix for the Earth1000AD (and other such like) scenario, where you play for the Aztecs and start to encounter macemans (and even more advanced units) when you still have jaguar warriors. The barbarians' "advancedness" is now also more local in general.
- Barbarians now upgrade units slower... this works in conjunction with the above, to don't let the player be overwhelmed by the "too advanced" barbarians.
EM_BARBARIAN_UPGRADE_RAND value -- the bigger the slower the upgrade
- No barb defenders at goodies. It was preventing the AI from creating cities on goodies (even though it might have been the best location).
Brought here from the addons (Warlords and BTS):
- Added "War with" and "Worst enemy of" to the context leader help
- River crossing code (it was a bug in CivIV that have never been fixed but in the addons)
- Workers handle dangers properly. The workers are now more exposed, but it helps the AI to develop quicker, without the workers being stuck in a city for no apparent reason.
World Builder:
- Added more options to the diplomacy screen: open borders, has met, defensive pact, etc. This feature works (without troubles) only when saving to file, using it in-game may lead to unexpected effects.
- Force[XXX]MaxedOut to WBSave. Allows to "max out" certain buildings, units, projects, religions. Can be used to disable building the ancient wonders in medieval scenarios, etc. The full list consists of:
ForceUnitClassMaxedOut
ForceBuildingClassMaxedOut
ForceProjectMaxedOut
ForceReligionFounded
NOTE: You have to add these manually to the saved file (no option in the editor), see the Raging Barbs scenario for the example.
- (Python) Changing the city's culture now affects only the currently selected player
- (Python) The barbarian cities now can have culture (saved)
- (Python) Bonus count: now displays the total amount of the selected bonus type on the map
- (Python) River placing code fixes
- (Python) Tech picker just like the in-game one
In plans (DLL):
- To rework the air and the collateral combats
- To add some special abilities
- Improve the AI strategy
- Minor fixes to AI movement and units management
XML changes summary:
Units:
- Unit strengths and costs have been tweaked a bit: scout, warrior, archer, spearman, pikeman, galley and some other units (especially the unique ones) are now more powerful; catapults, mech infantry are less (the catapults got a 100% chance to withdraw though, which is planned to be replaced later with a special ability); modern ships and planes are much more expensive now;
- Unit upgrade tree has been tweaked for certain units
- Spy abilities were cut (now is just an invisible explorer)
- Added Trebuchet (from Warlords)
- Quechua is now an axeman
- Submarine now cannot see other submarines
- Gunship now requires Computers; Marine - Radio; Cannon - Military tradition and Gunpowder
- Cannon got a 50% defense bonus against guns, Artillery - 50% defense bonus against armor; these both can fortify now (and use the defensive bonuses as well)
- Bombers +50% vs land units
Buildings:
- Costs tweaked for some buildings
- Jail -50% war
- Colosseum +2 happy
- Kremlin +6 culture
- Added The University of Sankore wonder (from Warlords)
Techs:
- Chemistry now requires Education and costs higher; Education does not lead to Gunpowder
- Astronomy cost lowered down
Promotions:
- Promotion to unit combat type assignments and promotion prerequisites a bit reworked
- Some promotions now require a tech (mostly to not allow choosing them too early)
- Some promotions got removed at all: Drill, Formation and some others (the first strike and withdrawal mechanics are considered to be removed in this mod in the future)
General fixes:
- Lowered unit upgrade cost
- Golden age: required num units - 1 (was 2), length - 7 (was 8); also the DLL disables the increase in the required unit count (so it will always be 1)
- The handicap values are more sensible now (so that you can REALLY play at Deity)
- The barbarian cities will now be less frequent, and the barbarian activities are cut a bit
- Financial trait - yield (commerce) threshold changed to 4 (was 2)
- The AI now gets lesser bonus against the barbarians
- The barbarian player now can build and train almost everything what a civilized one can (the exceptions are: wonders, settlers, missionaries, some units)
- Flood plains will stay in city now (the DLL adds a flag for this)
- Culture level infos got tweaked, so that the initial city culture expansion now requires more culture
- The specialist infos are bit reworked (some nerfed)
- The map generator was tweaked to produce more rivers
- The map generator was changed to generate grass next to tundra (instead of plains)
- (testing) Player spawn min range. On densely populated maps this helps to distribute the players more evenly (though I suppose it works poorly when the opposite)
- (testing) Terra: don't spawn players in tundra (can be easily reproduced in other maps, see Terra.py)
How to install:
Unpack the contents of the archive to the Civilization IV Mods folder. The mod should be now loadable from the game menu. Alternatively you can edit the game config file to specify the mod directly: 'Mod = Mods\EMM'. This is the way I prefer. Note that this mod is for the vanilla game (not Beyond the Sword; there are plans to port it to Beyond the Sword too though). Also this version is for the patch 1.74 (the current Steam version of the game).