Eador. Masters of the Broken World

Eador. Masters of the Broken World

View Stats:
Jagulars Oct 27, 2018 @ 8:56am
Mod: Fixers of the Broken World
Hotfix 30th Dec 2018.
- Spells cast on a corpse of an ally unit (such as Resurrection) have been fixed.
- Ringleader/Raider hero no longer gets stuck in battle when conquering provinces.
- Spells are no longer cast with half duration when they're not supposed to.


Version 1.1 - Revamped hero classes. With a load of new abilities every hero class is viable and substantially different from each other. Also features some other changes and bug fixes.

Applies to already started shards and campaigns and can be reverted. Easy to install and un-install. Just one file.

Download here:
https://www.moddb.com/mods/fixers-of-the-broken-world


Enjoy and give feedback (for further refinement of the mod).

This game is still loved.


----------------------------------
Changes to hero classes:
----------------------------------

- Recruiting a hero class you have already is only twice as expensive, down from 10x.

- Combined hero classes can learn skills of both classes up to Mastery Level 5 after reaching level 20.



Pure Warrior

- Berserker gains Round Attack (Stamina Cost: 7).

- Chieftain gains Battlecry ability — Neighboring ally units gain +1 speed until the end of turn and up to 6 morale. Neighboring enemy units lose 2 morale. Does not expend turn but is deactivated until next melee attack.



Warrior / Scout

- Slayer gains the skills First Strike and Slayer (30) — Has 30% more attack against heroes and rank 4 units. 15% more against rank 3 units.

- Master Slayer gains Precise Shot (3) and Slayer (60).



Warrior / Commander

- Holy Knight gains 1 Resistance, Regeneration (1), Aura of Healing (2), Aura of Resistance (2) and Smite Evil value is now 2. In addition, he gains Faithful (3) — 3 extra Resistance against Sacred spells and they benefit from 3 extra spell power, duration and summoning power.

- Champion gains 2 Resistance, Regeneration (2), Aura of Healing (4), Aura of Resistance (3) and Smite Evil value is now 4.



Warrior / Wizard

- Dark Knight Soul Steal value is now 5, and he gains Madness (3) — 3 extra resistance against Chaos spells and they benefit from 3 extra spell power, duration and summoning power. In addition, every mortal unit in his army start battles with Dark Pact binding them — A demon of the same rank is summoned in their place when they die.

- Death Knight gains Master of the Undead — Units slain by him (excluding spells) are raised as undead. In addition, he gains Undead Summoning Power (8) — Raised undead are 8 levels higher.



Pure Scout

- Sharpshooter gains Precise Shot (5) and has its stamina cost reduction of Double Shot removed.



Scout / Warrior

- Adventurer gains 30% more experience and gains the skill Adventurous (15) — Morale lifted when clearing province locations. Can spread to other units in the army and reduces upkeep with mercenaries.

- Mercenary speed bonus reduced to 1 and he gains Agility — Enemies can't counterattack against him.



Scout / Commander

- Ringleader can plunder provinces after conquering them without spending an additional turn, and gains Infamous (1) — Reduces the morale of enemy defenders and lifts the morale of allied evil units when attacking provinces. Infamy increases by plundering provinces.

- Raider grants all units in the army +1 speed.



Scout / Wizard

- Ranger gains 3x random Terrain Knowledge (8), Stealth ability and grants temporary Stealth to all army units at the start of a battle unless he has lower initiative and is the defending party — The temporary Stealth wears off from all units without Stealth ability when they move on the battlefield.

- Ranger and Pathfinder province exploration bonus increased 15. Ranger gains Spiritual (2) and Pathfinder gains Spiritual (4) — Extra resistance against Elemental spells and they benefit from extra spell power, duration and summoning power.

- Sabotage bonus (which Ranger and Pathfinder have) is twice as effective with False Alarm and Raise Panic.



Pure Commander

- General and Marshal have their attack and counter-attack bonus removed.

- General gains Authority (50) — Medal upkeep cost of the army units is reduced by 50%.

- Units under Marshal gain 25% more experience.



Commander / Warrior

- Warlord gains Parry (2) and Battlecry ability — Neighboring ally units gain +1 speed until the end of turn and up to 6 morale. Neighboring enemy units lose 2 morale. Does not expend turn but is deactivated until next melee attack.

- Warlord grants 3 Attack and 2 Counter-Attack to all units in the army instead of 1 Defence/Ranged Defence.

- Battlemaster gains Parry (4) and grants Recuperation (2) and 2 Defence and Ranged Defence to all units in the army, and has its regeneration bonus removed.



Commander / Scout

- Tactician and Strategist ranged attack bonus for units removed.

- Tactician gains Volley ability — All ranged units fire simultaneously at a 7-hex area damaging all units within and gaining bonuses depending on how many units are in the area and how many shots are fired.

- Strategist gains +15 Siege and grants +1 Ammo to all units that use any type of ammo, excluding summoned units.



Commander / Wizard

- Priest bestows Smite Evil (1) on non-evil units and Regeneration (1) upon living units in the army, and gains Faithful (2) — 2 extra Resistance against Sacred spells and they benefit from 2 extra spell power, duration and summoning power.

- High Priest gains Faithful (4) and bestows Regeneration (2) upon living units in the army.



Pure Wizard

- When recruiting a new wizard he gains random spell school expertise — 1 extra resistance against spells from that school and they benefit from 1 extra spell power, duration and summoning power.

- Mage gains three randomly distributed spell school expertise points.

- Archmage's second cast gem cost is multiplied by the spell level of the first cast. Furthermore, the combined levels of both spells cannot exceed 6.



Wizard / Warrior

- Battlemage gains Spell Imbuement ability — Can imbue melee weapon and armor of himself and allied units with spells that are unleashed every time the unit attacks or takes damage until the spell is worn out.



Wizard / Scout

- Necromancer reduces undead upkeep cost by 1 gem per unit rank, heals undead 10% per turn outside combat and gains Magic Shot. In addition, he gains Occultism (2) — 2 extra resistance against Necromancy spells and they benefit from 2 extra spell power, duration and summoning power.

- Master Necromancer reduces undead upkeep cost by 2 gems per unit rank, heals undead 20% per turn outside combat, gains Occultism (4) and inflicts Disease on melee and ranged attack.

- Spell cost reduction removed from Necromancer and Master Necromancer.



Wizard / Commander

- Enchanter gains the skill Group Enchanter — Enchantment spells are cast on 7-hex area where the perimeter targets get half the duration of the spell. Gem cost is increased based on the number of targets.

- Enchanter's spell duration bonus reduced to 2 and Master Enchanter's spell duration bonus reduced to 4.



------------------
Skill changes:
------------------

- Precise Strike no longer affects Round Attack.

- Round Attack now requires full movement points.

- Precise Shot no longer affects Double Shot.

- Double Shot has its range reduced by 2.

- Master of the Undead now raises slain rank 3 and 4 units as Ghouls instead of Skeletons.

- Stealth mode no longer depletes 5 Stamina at the start of every turn.

- Attacks and spells ignore the respective enemy defence/resistance by 3 when done from stealth mode.

- Stealth is revealed and cannot be reactivated if there are enemies in neigbouring hex cells at the start of turn.

- AI seeks stealthed units only if there are no visible units present on the battlefield.

- Marauder now takes a fixed amount of looting gold and no gems.

- Web (Giant Spider skill) duration now depends entirely on the target's attack, stamina and morale. Furthermore, Web now exhausts 1 stamina every turn and no longer grants extra defense.

- Entanglement (Centaur Huntsman skill) no longer works on units with Entanglement Immunity and its duration is reduced on units with over 20 attack or 50 hit points.


--------------------------
Hero perk changes:
--------------------------

- Combat (warrior perk) no longer grants Round Attack and instead gives +2 Parry at level 5.

- Constitution (Warrior perk) grants 1 more Hit Point at level 1, 2 and 4. In addition, 1 more Stamina at level 2 and 1 less Stamina at level 5. Furthermore, 1 extra Regeneration at level 5.

- Willpower (Warrior perk) grants 1 more Morale every level.

- Scouting (Scout perk) now grants +10 Province Exploration at every level. Scouting cost reduced to 10 gold. Poison water supplies default poison strength is now 2 damage per turn for 3 turns.

- Diplomacy (Scout perk) now grants +20% reward bonus at every level.

- Discipline (Commander perk) grants 1 more Hit Point at level 2.

- Concentration (Wizard perk) grants 1 more First Aid at level 3 and 5.

- Necromancy (Wizard perk) undead summoning power bonus at level 5 reduced to 1.


------------------
Unit changes:
------------------

- Shaman gold upkeep reduced to 4 gold and gem upkeep increased to 2 gems.

- Crossbowman Hit Points increased to 14.

- Ballista gains Tireless and its Range is increased to 6.

- Catapult gains Tireless and its Range is increased to 7.

- Skeletons are unaffected by armor-piercing shots.

- Ghost now has 100 Defence and Ranged Defence making it actually immune to physical attacks.

- Vampire gem upkeep increased to 20.


-------------------
Spell changes:
-------------------

- Extra turn granted by spells can only be gained once per player turn.

- Spell effect durations can now stack with diminishing returns.

- Web spell's duration now depends on the target's resistance, attack, stamina and morale. Furthermore, Web now exhausts 1 stamina every turn and no longer grants extra defense.

- Information about the magnitude of non-damage non-duration spells is now given when hovering over the spell target.

- Area spell highlighting now differentiates between empty space, immune targets and potential targets.


--------------------
Other changes:
--------------------

- Resurrecting heroes is 30% cheaper.

- Mercenaries are now only 50% more expensive, don't require extra resources and their price is unaffected by stronghold buildings.


-------------
Bug fixes:
-------------

- Guards will now resurrect over time at a maximum rate of one unit per turn per squad.
The chance to resurrect is the inverse of current HP% of the squad + 10% (e.g. 20% hp squad has 90% chance to resurrect a unit while 70% HP squad has 40% chance and so on.)
If the guard squad consists of different ranks of units lower ranks have a higher chance of resurrection.

- Swiftness ability no more allows casting spells after attacking.

- Battlecry now correctly depletes stamina.

- Foreign Quarter building descriptions corrected.

- Medal of Resilience description corrected.

Report any bugs, although for people who experience invalid access errors, the root cause is somewhere in the game engine so on script level which all these changes are, there is little do about that. It's been said that it's more prevalent for computers with an Nvidia graphics card.

Also note that this mod was created and tested for latest Steam version with Allied Forces DLC. How it behaves with other versions is unknown to me.

Furthermore, in-game tooltips are available only for English language. While it should work perfectly with any other language setting, the instructions will be the same as in non-modded game.
Last edited by Jagulars; Jan 2 @ 12:20am
< >
Showing 1-15 of 199 comments
Karol13 Oct 28, 2018 @ 8:32am 
Didn't know that this is actually modable game. I knew that most of the data file can be unpacked, but I thought that the source code itself is locked in the .exe file...

KUDOS!

Thank you.
Jagulars Oct 28, 2018 @ 8:54am 
Once you unpack the -pak files, most of the game code is in readable form and can be edited with Notepad++ for example. Only a few core things, like the game engine, are in .exe file.
Ins Oct 28, 2018 @ 9:54am 
I don't play anymore and came across this randomly but I'd like to point out something about this:
"- Guards will now resurrect over time at a maximum rate of one unit per turn per squad. "

I remember playing a Guard World and the only way for me to beat it was to repeatedly attack one square and having my hero die while taking out a few (some kinda OP ogres) at a time.

I'm not sure how much your fix changes or affects this, but, I feel for the person who has to do the guard world if those mobs resurrect too fast.

Just a thought.
Jagulars Oct 28, 2018 @ 10:32am 
Points such as yours now, are good.

I spent quite a lot of time to think what would be reasonable resurrection time so that three things happen: 1. You cannot defeat any guard regardless of your strength just by being persistent. 2. gradually whittling out troops is still viable tactic. 3. A guard you have lost previously to can still pose a challenge afterwards.

For any guard with, for example 6 units, the fastest time to get full squad is 6 turns minus how many you have killed last attempt. However, realistically that's unlikely since when the squad is at half strength the chance to resurrect is 60%, and after that the next unit has 43% and when the squad has 5 out of 6 units, the chance is roughly 27% meaning, on average, 4 turns have to pass to resurrect the last unit. Furthermore, the higher ranks have a lower chance to be resurrected. Meaning the last unit who takes its time is often the strongest. This poses the player with a choice when engaging the guard the first time: try to go for a victory, or focus on taking out the strongest unit.

Also, another strategy is to take units down in their hp instead of killing them. I haven't changed the regeneration rate so this strategy ignores the resurrection rate, if for example, you're just fighting a few really strong units.
Hasefrexx Oct 29, 2018 @ 1:15pm 
Now that's interesting. Can I ask you how to unpack files and wether or not the AI is moddable (strategic and tactic?).
Jagulars Oct 29, 2018 @ 1:35pm 
I used this tool: http://www.fayloobmennik.net/6938461 The site is in russian but there's clear "Скачать" which means download.

The tool also works on Imperium data.

Note that there are many .pak files and the later versions dont contain all the files so you have to take everything from older .pak files first and then unpack the newer files and merge them.

If you want to redo AI I highly encourage to do so. Especially the strategic AI which only checks the province guard strength and distance and nothing else.

I recommend using some directory search program such as grepWin to find the files you're looking for since there are a ton and often their name doesnt exactly tell you what they do. The core strategy file for AI would be called "FillTargets.inc" in scripts folder, though.

The main tactical AI file is called "MakeTurn.inc" although note that there are many files with the same name so it's the one in scripts\units\unit.inc folder.
Last edited by Jagulars; Oct 29, 2018 @ 1:44pm
Hasefrexx Oct 29, 2018 @ 2:12pm 
Originally posted by Jagulars:
I used this tool: http://www.fayloobmennik.net/6938461 The site is in russian but there's clear "Скачать" which means download.

The tool also works on Imperium data.

Note that there are many .pak files and the later versions dont contain all the files so you have to take everything from older .pak files first and then unpack the newer files and merge them.

If you want to redo AI I highly encourage to do so. Especially the strategic AI which only checks the province guard strength and distance and nothing else.

I recommend using some directory search program such as grepWin to find the files you're looking for since there are a ton and often their name doesnt exactly tell you what they do. The core strategy file for AI would be called "FillTargets.inc" in scripts folder, though.

The main tactical AI file is called "MakeTurn.inc" although note that there are many files with the same name so it's the one in scripts\units\unit.inc folder.

Thanks a lot for the detailed answer. Yes, I've noticed that the strategic AI is really bad, it's easy to check when you defend your shard, it only relies on massive income bonus (on high difficulty levels) to throw every couple of turns heroes that die until the guards are weak enough to lose. I think it will be hard to find a viable system for the AI that is bound to auto-resolve but I'll see what I can do.
Jagulars Oct 30, 2018 @ 1:37am 
Excellent. If you need help with the code, ask me. I've become quite acquainted with it.
Very interesting Mod. As epected, Mercenary hero (Scout/Warrior lvl 20+) has been nerfed the ability to gain mutilple extra turns/attack/movement as well as Archmage (pure wizard lvl 20+) double cast ability.
Jagulars Nov 10, 2018 @ 3:48am 
Indeed. I felt the class choices were more of difficulty level choices since some hero classes were more powerful in every situation than others. Instead, I wanted to base the class choice on the current situation of the game so that the best option depends on the circumstances, and that the player can always pursue the best option without fear of making the game too easy.

Of course, if there's a fear that the game becomes too easy, there's always a higher difficulty unless you already play on Overlord, but increased guard HP and more corruption isn't necessarily what people want when they ask for more challenge.
спасибо что всё на английском,всё прям нормально
Jagulars Nov 22, 2018 @ 6:41am 
Originally posted by Школатаус:
спасибо что всё на английском,всё прям нормально
You're welcome :)
Ostar Dec 5, 2018 @ 5:00pm 
How did you edit the .lng files in the locale\en folder? I'd like to figure out how to mod events. When I open those files with Notepad++, I get !ETX and NUL sections mixed with the readable language.
Jagulars Dec 6, 2018 @ 1:17am 
Originally posted by Ostar:
How did you edit the .lng files in the locale\en folder? I'd like to figure out how to mod events. When I open those files with Notepad++, I get !ETX and NUL sections mixed with the readable language.
You likely need a hex editor for that. You can edit them in raw text freely if you don't change the character amount.

Each string in the files is preceeded by four characters (these are what you see as a seemingly random character and three NULs without a hex editor). These characters determine the length of the string (in amount of letters/numbers the string has). If it's entered incorrectly even for one string, the whole file unlikely works.

Most of the time only the first is used and the other three are displayed as '00'. So, in the first of the four characters, enter the length of your string in hexadecimal number. i.e. 12 = 0C, 16 = 10, 32 = 20 and so on. Use a converter or a hex editor that gives the length of any highlighted area in hexadecimals. (I'm using HxD)

However, if your string length exceeds 256 in decimal, you must first deduct 256 from the count and then convert the result in hexadecimal and enter that value in the counter character. Furthermore, you have to add +1 in the next of the four counter characters for each 256 that is exceeded in the previous counter character.

For example, if your string length is 583 you first deduct 256. Now it's 327 (still exceeds 256), so again. Now it's 71, and in hexidecimal that's 47 so enter that as the first counter character, and 02 as the next counter character because 256 was exceeded twice. The third and fourth counter character are still 00 but they must be there.

After the counter characters comes your string name (can be anything and has to be included in the string length) ending with an equal sign (=). Then the actual string text which must always end in a 03 hexadecimal (which you see as ETX without hex editor). This cuts the string and informs the program that the next string starts from there. It must be there even if it's the last string in the file.

One more important note, is that at the start of each file exists four additional counter characters. These determine the amount of strings in the whole file. You must update them in the same manner each time you add or remove a complete string in the file.


It's also possible to edit the lng files with Notepad++ if you check what text character corresponds with the string length number from an ASCII table: http://www.asciitable.com/
and replace the counter characters with the correct one whenever you change the string length.

Last edited by Jagulars; Dec 7, 2018 @ 9:36am
Jagulars Dec 6, 2018 @ 4:02am 
Editing events can be tricky but the upside is that you can do alot without any programming.

There's a number called "gc_map_ProvinceEventFreq" in the dmscript.global file which is 3 by default. It means there's a 3% chance for any event to happen in each province each turn. Only one event per province per turn is possible.

You probably already found the "event.cfg" file where all the random events are. However, to know which eventID is what event you have to check another file: "query.event.dat". Find the same ID and take the number of the key and refer to the key number in "map.event.lng".

The event.cfg stores the functional data for the event while the query.event.dat stores the event choice tree, graphics, and language file keys.


event.cfg explanation:

Type means that the event is either beneficial or harmful (1,0 or -1) In action, this means that your karma level affects the chance that this event will happen as long as Possibility is larger than 0.

Possibility is not a percentage. If you have an event with 10 poss, and another event with 30 poss and both have their conditions met, then the first event has 25% chance to occur instead of the second event. An event must have higher than zero Possibility for it to happen randomly in a province.

Attacker is the guardtype ID (refer to guard_type.cfg) in case it's an event where the player engages in a combat.

Eventwin/Eventlose/Eventdraw is the ID of the event that takes place in case you win/lose/tie the event battle.

ProvType is the province type (Brigand Outlaws, Free Settlement, Lizardman Lands etc. refer to province_type.cfg) that the province transforms into if the event attacker wins.

Karma is simply the amount of Karma change for the player when the event takes place.

For EffectList (what happens when the event takes place), see the following indices (I found these on the GOG forums, they are for Eador: Genesis but they seem to be the same for MOTWB):

1 Get Power+Random(Param1) gold.
If Param2=
___1, multiply by province level
___2, change total gold by Power+Random(Param1)%
2 Changes mood by Power
3 Changes population by Power+Random(Param1)%
4 Answer ?Power will be available if Param1=
___1. Gold >= Param2
___2. Crystals >= Param2
___3. There are defender or hero in province
5 Changes income by Power+Random(Param1)
6 Get Power+Random(Param1) crystals
If Param2=
___1, multiply by population level
___2 - change total crystals by Power+Random(Param1)%
7 Karma + Power+Random(Param1)
8 unused
9 Generates new site Power. Param1>0 - hidden, Param1<0 - open. Param2=-1 no guards, 0-default, 1-protect.
10 changes total unrest by Power+Random(Param1)
11 calls event Power (If Param1>0 calls event Param1 if Random(100)>Param2 (Param1<0 - don't call))
12 Get Param1 schematics of outer building Power
13 Get Param1 scrolls of spell with index Power
14 Get random item with level Power, rarity >= Param1
15 Set attacker strength to Power.
16 Get Param1 items Power with Param2% durability
17 Set flag for event Power to Param1 + Random(Param2). (-1 enabled, 0 - disabled, ?>0 will happen in ? turn and will be disabled)
18 Set flag for event Power to Param1=
___0 random province(default),
___1 current province,
___2 demesne
19 Set defender Power, if Power=0 - dismiss guard
20 Destroy outer building Power
21 Build outer building Power
22 Change corruption by Power+Random(Param1)
23 change crystal income by Power+Random(Param1)
24 Destroy site Power in province
25 Destroy Power outer buildings in province
26 Change attitude to player in all provinces with title race Power by Param1.
27 Change cost for resource Power by Param1+Random(Param2)
28 will happen for each player, doesn't work currently.
29 Change health of hero and defenders in province by Power, if negative - will be decreased by resistance. Param1=0 - absolute, 1 - %, Param2=1 - only alive units
30 Change morale of hero and defenders by Power+Random(Power1). Param2>0 + to good units, - to evil, If Param2<0 -to good, + to evil, doesn't work on neutrals
31 Initiate rebellion
32 Repair/damage fortification by Power+Random(Param1)
33 set campaign flag Power to Param1
34 Add to player in campaign Power+Random(Param1) astral energy
35 grants access to building in campaign
36 add in garrison Param1(amount) units Power(type) with exp level from 0 to Param2
37 go to campaign event Power
38 gold loss can be decreased by special buildings
39 set province to neutral
40 get random item Power of level Param1, rarity >= Param2.
(1, 2, 9 melee weapons and shields, 3 bows, crossbows and arrows, 4 wands and spheres 5 Flags 6 light armor and belts 7 medium armor 8 heavy armor 10 spell scrolls 11 defender 12 schematic 13 ritual -1 cloth -2 jewellery )
41 Remove item Power from treasury
42 Get Param1 contracts with defender Power


ConditionList (what must be met in order to trigger the event in the province)
when Power is:
1 - population level >=Param1
2 - explored=Param1
3 - player's gold >=Param1
4 - there is place for hidden site
5 - mood <=Param1
6 - mood >=Param1
7 - population level <=Param1
8 - there are at least Param1 free slots in treasure
9 - player karma <=Param1
10 - player karma >=Param1
11 - only not in demesne
12 - coastal only
13 - only in province with title race Param1
14 - There is hero in province (or defender, if Param1>0)
15 - only in demesne
16 - If province don't have resource
17 - if province have place for site Param1 -1 open / Param1 1 hidden
18 - if province don't have defender (Param1=0), If param1<>0, if province have defender Param1
19 - if province have outer building Param1
20 - if province have free building slot (demesne protected against this)
21 - if province don't have outer building Param1
22 - if corruption >= Param1 %
23 - if player's gems >=Param1
24 - if player have access to resource Param1
25 - if player don't have access to resource Param1
26 - unused
27 - if province don't have hero
28 - if province don't' have site Param1
29 - if you have item Param1 in treasury



There are also encounter.cfg which stores events that happen during province exploration, and camp_event.cfg which stores astral events.


Happy modding.
Last edited by Jagulars; Dec 9, 2018 @ 2:05pm
< >
Showing 1-15 of 199 comments
Per page: 15 30 50