Modding suggestions

VCMI is doing well, but I hope it can be more flexible. Here are my suggestions.

Event subscription

Can be used to configure something advanced.

Configurable creature abilities

So that we can create custom "abilities" in mods without VCMI source code support.

Actions & Value calculators & Value referrers

As a mechanism to improve flexibility.

Example: Based on those features we can configure the FIRE_SHIELD ability like this.

A complicated configuration
"FIRE_SHIELD": {
"events": {
    "postHurt": { // Event subscription
        "actions": [
            {
                "action": "hurt",
                "animation": [ ... ],
                "condition": [ ... ],
                "target": { "source": "event", "value": "attacker" },
                "amount": {
                    "source": "multiply", // Value calculator that multiplies the values together
                    "value": [
                        0.2,
                        { "source": "event", "value": "damageDealt" }, // Value referrer
                        {
                            "source": "predefinedCalculation", // Predefined value calculator
                            "value": {
                                "type": "damageCoefficient",
                                "attacker": { "source": "event", "value": "defender" }
                                "defender": { "source": "event", "value": "attacker" }
                            }
                        },
                        {
                            "source": "predefinedCalculation",
                            "value": {
                                "type": "fireMagicCoefficient",
                                "target": { "source": "event", "value": "attacker" }
                            }
                        }
                    ]
                }
            }
        ]
    }
}
}
I know it is not easy to implement those feaures, so I don't expect this can come out soon. But (as far as I am concerned) they are great features to have. OR IS THERE ANY ALTERNATIVE FOR THAT?

Event subscription

Can be used to configure something advanced.

This is basically scripting these events. Which is desired, but not planned anytime soon.

Configurable creature abilities

So that we can create custom “abilities” in mods without VCMI source code support.

We have a plenty of configuration already, and modders use it in creative ways.
But adding more configuration options to existing ones won’t help creating totally new abilities that the author of the code did not foresee.

Well, okay then. (Those requests are given because another project supports that, though it is still in very early stage and haven’t released yet.)

And one more thing, will there be better localization support? Currently I have to “sync” translated copies from time to time. Separated files containing translations would be good enough. For example, “Content/Translation/1033.json” for English translation, “Content/Translation/1049.json” for Russian translation, and so on. Thus we can use a “key” in the mod, and let VCMI decide which translation should be used.

Translations support will be in 1.2.
There are still some thing that can be improved, but base support is in.

Example using our built-in “vcmi” mod:
mod.json: vcmi/mod.json at develop · vcmi/vcmi · GitHub
localization files: vcmi/Mods/vcmi/config/vcmi at develop · vcmi/vcmi · GitHub

That looks nice.