Some mechanics change

I can, but I do it some later

now I can say only:
[ul]
each dataitem has a number
each package has a number
both numbers together is an unique ID of datanumber
number of dataitem has binded name in scripts
masterlist package number is based on master position on masterlis
game package number is a number based on position on modlist
masterlist package numbers are translated to game package numbers when starting new game
ruleset is a file with values to replace ones in mod so can customize a mod without repack
to adress other mod data by ID the mod contains data must be on masterlist and have listed imported IDs on list for those mod mastering
calls in package is by ID (the pair) based on masterlist
each ID changes when translating is saved to table
itself mod is “master” 0
the masterid:itemid is called from mod and it’s wrapper on game function for modid:itemid
dataitems can be adressed by ID (need mastering) or get from general function (function exports ID from general data like battle herostate etc)
/\ those part works almost same as oblivion plugin mechanic
if needed there can be xml menus for setting ruleset options ingame with classes like radiobox checkbox slider group EDIT: in game engine but before starting playing
there can be temporary files for current options to ease access to various things
[/ul]
rest i must think more and get more time

After some investigation I would opt for Python over Lua. It gives us everything that may be needed and much more, while the second reads:

:stuck_out_tongue:

The major advantage of Lua is that everyone knows it due to H5. I also learned that WoG team is planning to implement it in 3.89, but come on.

I think that referring to creatures or anything by their name is a bad idea - localization of texts + someone might want to change the name of the monster. I think each should have it’s number and some enum pointing to it (like if Gold Dragon is number 17 then CREATURE_GOLD_DRAGON = 17). This way you can access it easily and if needed you can change it`s name.

As far as modding is concerned - I guess each mod should have some form of string ID. This way you can check if some other incompatible mods are enabled and do something about it. Each WOG script would get its name (like WOGscript37 etc) and they would be checked in this way too so there would be no problem with Lua/Python scripts vs ERM scripts.

You should be able to turn on/off each mod (like scripts in WOG) + there should be some predefined groups of mods that turn a lot of them on at one click (like the multiplayer set). Ofcourse you can make your own sets and save/load them.

I`d suggest to keep ERM backward compatible but not to develop it more and swap to Lua/whatever. ERM is too heavy to understand for non-programmers.

Ive been working for quite some time with ERM so if you want some help with ERM, its capabilities, issues or bugs Im sure I`d be able to help with many things (but not with all probably :)).

I hope you get it done because my rebalancing scripts are still in my head, waiting to be done (creatures, spells, levels, abilities, classes) and it couldn`t be done in ERM due to bugs or lack of functionality.