Mods concept.
Mod is a set of files and folders, including graphics, audio, video, scripts, plugins, patches and custom files. Era introduces "Mods" folder where each folder is called a mod and treated as game root directory. It means that files and folders in mods should be arranged in the same way as in the root directory.

Original: Data
Mod: Mods\My Mod Name\Data

Mod contents.
The contents of mods is not supposed to be modified at run-time. All files which are subjects to be modified at run-time (like settings, logs, temporary files) should be placed in real game folders during installation. Several mods can exist in Mods folder at the same time providing they are compatible. Every mod can have unlimited number of in-game resources (snd/vid/pac archives in Data) which will be automatically loaded.

If any mod has file with the same name as in original game, the file from mod is used instead of original one. If several mods have file with the same name, then mod with the highest priority is used. To assign a priority to a mod, add a number to the beginning of it's name, separated from the rest text by space(s). The higher number is, the higher the priority is. Example: "100 MyMod". If no priority is specified, it's assumed to be 0. In case of equal priority, the creation time of mods folders is checked and the most recent folder is preferred during file search. This mechanism guarantees that mods installed later will have priority over older ones.

Hint how to give a folder the most recent creation/modification time.
Execute "Tools\installmod.exe" with mod folder name as the only argument.

Original snd/vid archives are loaded in the following order:

WoG Mod.
WoG is now distributed as regular mod and thus does not change any game resources. Most of WoG resources are located in "Data\hmm35wog.pac". All WoG dialogs read directly this archive and ignore other mods.  The only not recommended way to fix it is to import new data in hmm35wog.pac. WoG contains fixed first aid tent def which ensuring no game freezing.

Additional optional modifications:
Yona Mod.
Yona is an open-source mod written in pure Delphi using Era SDK. It's ideology is total optionality ("Data\Yona\settings.ini"), native support of all new features by game, AI and multiplayer code. It's compatible with other mods, does not store anythings in savings and does not modify ERM scripts. To delete the mod, delete "Mods\Yona" folder.

New battle log hint in heroes style describing possible kill count, average values, fatality values and new abilities used in attack.

New abilities:

"Secondary skills scrolling" Mod.
Adds scrolling buttons to the right of secondary skills list in hero screen and allows scrolling [if more than 8].


The game became fully portable. All game settings are stored in "heroes3.ini" file. Default CD scanning mechanism is turned off. Era automatically loads files ".\Heroes3\Data\heroes3.vid" and ".\Heroes3\Data\heroes3.snd" if any. If "LoadCD" option in "heroes3.ini" is set to 1, Era scans all CD drives seeking for "Heroes3" folder. If above mentioned snd/vid archives are not found in the game folder, Era will try to load them from CD, providing the "LoadCD" option is on.

Debug mode.
To enable debug mode set option "Debug" to 1. The file "eralog.txt" will be automatically recreated at game start.

All erm files (and ert files with the same names) are automatically loaded from "Data\s" folder at map start or when F12 is pressed. WoG options dialog does not validate the existence of files on disk anymore. The number of scripts is limited only by the amount of internal memory. If a valid (negative or positive) number is found before script name (ex. "50 Test.erm"), it's treated as loading priority. If the file "load only these scripts.txt" exists in "Data\s" then only those scripts which are written there (one script name per line) are loaded. In this case loading order is the order in which files appear in the list. WoG ini option "Alternate_Script_Location" is not used anymore.

Original editors (h3maped.exe and h3ccmped.exe) work fine. WoG editors (h3wmaped.exe and h3wcmped.exe) may require special fix. WoG map editor correctly opens maps and loads mods. It also applies all memory patches and loads dll's from EraEditor folder. Extended editor functionality provided by GrayFace editor patch requires resources to be located in h3sprite.lod and h3bitmap.lod. WoG campaign editor does not support mods. To enable MapEdPatch functionality for new WoG objects and to enable WoG campaign editor, the mapmaker can run "Tools\Fix Editor\Fix Editor.bat". This will import all crucial data in h3sprite.lod and h3bitmap.lod.

Custom buttons support.
It is possible now for any mod or script to have custom buttons in most of in-game screens. MoP's original plugin (Buttons.dll) was modified and became a part of Era. Custom buttons are described in *.btn files. All *.btn files are loaded from "Data\Buttons" folder at game start.

All documentation, changelogs, updated ERM and Era manuals can be found in the "Help" folder.


Technical details.

Custom buttons support.
Each *.btn file (plain txt) contains lines (one per button) in the following format:
[Button screen];[Unique Button Name];[Button Def];[X];[Y];[Width];[Height];[Long description];[Short description],
where "Button screen" is one of the following values:
Every button automatically obtains  ID which can be retrieved by calling stdcall "GetButtonID" function from Era.dll with the only argument of button name. If specified name was not registered, the function returns -1.

Virtual File System ("Mods" folder support).
The following file system functions working with names are supported:
New event "OnStackToStackDamage" (!?FU77012).
The event occurs when one stack attacks/shoots at another one.

New event "OnAICalcStackAttackEffect" (!?FU77013).
New event "OnChat" (!?FU77014).
The first argument determine event type and the rest arguments: