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.

Hello folks!

I’m not a modder myself, but there are a few things I’d love to see in my favorite game. Been playing the complete edition mostly. Hopefully my suggestions are easy to achieve.

Starting with some much needed changes in Inferno!

1A. Flying imps. This change will boost their usage, give Inferno an early flyer, and send those guys to their demise faster. Win-win!

1B. Horned Demons have Protection from Fire (Basic effect)

1C. Pit Lords can summon IMPS 1/combat not from dead stack, but as the summon elemental spell. Summons vanish after the fight.

1D. Cerberi lose the “3 headed attack” ability. They gain “retaliates thrice” instead.

1E. Devil & Archdevil gain “3-headed attack” ability (rename to Scythe sweep" or something)

How do you like them? Seem possible? Any chance we can see those implemented?

Thank you for reading this!

And off with some more suggestions I’d personally love to see:

Tower & Conflux rework

Genies and Nagas never felt in line with Tower. And Conflux is the most frowned upon faction. I want to suggest a rework for these both as follows:

2.A. Magi become a lvl 5 creature. They can use their action to cast a random spell (exactly as Master Genie). They lose “no melee penalty” though and “no barrier penalty” abilities though.

2B. Instead of Genies, the Tower can build the Elemental Conflux building (a level 4 building since Magi are lvl 5 now), from where you can buy elementals of any kind desired. Whilst these cannot be upgraded (making the building unique in this), they grant tactical choices to the Tower through their spell immunities and various abilities:

  • Air elementals gain the Flier ability. Loses Vulnerable to Armageddon and Lightning spells. In fact becomes Immune to Lightning spells! (Insert Chain Lightning tactics)

  • Earth Elementals become immune to Meteor Shower, but lose other immunities.

  • Water elementals can additionally cast Ice Bolt 3 times per battle. They provide some ranged firepower with this.

  • Fire elementals are perfect as they are. Insert Armageddon tactics here!

2C. Instead of Nagas, the Tower gets Gold and Diamond golems as its 6th level creature. These are definitely not as powerful as the Nagas, but the whole idea is to have Tower be very magic dependant. And with creatures resistant or immune to spells, the possibilities are huge.

2D. Titans get the “no range penalty” in addition to the “no melee penalty” ability.

And now on Conflux.

Conflux is renamed to Oasis, and reworked as a Neutral desert themed town. This means that all creatures change, but we’ll use existing ones from the neutral list:

Lvl 1: Rogue (no Spying ability). Advancement: Assassin (has “no enemy retaliation” ability)
Lvl 2: Desert Archer. (Uses the Sharpshooter model. Stats can be similar to Lizardfolk. Advancement has the “no melee penalty” ability)
Lvl 3: Nomad. Advancement: Bedouin (no Sandwalker ability)
Lvl 4: Conjurer (uses the Archmage model, changes colours though). Advancement: Vizier (can cast Summon Earth Elemental 1 per combat with Power dependant on stack numbers)
Lvl 5: Genie. As normal, but in Oasis.
Lvl 6: Nagas. As normal, found in the desert as well.
Lvl 7: Firebird. The only default Conflux creature that made it here!

With this setup, the town is complete.

Please tell me what you think of this? Would it be easy to achieve? My efforts were to have everything adjusted from already developed things so that a modder would have an easy time doing it, whilst keeping the changes true to an original an interesting concept!

Thank you for reading!

Hey,
most of them seem to be easy to implement. Now you just need to spend few hours to learn how to code it and then 20 mins to actually write the code :wink:

Thank you very much for taking the time to respond, I really appreciate that!

As for your answer… Well, I’m not a PC guy, barely able to use it I’m afraid!

My thoughts were based precisely on ease of modding, as I don’t like mods that change the game so drastically it becomes hard to adjust.

Is there any way I could learn how to perform said changes? I’d deeply appreciate any help!

Thank you again for your answer, and I hope you have many happy games!!!

1 Like

The best way to learn is to download some mods that change existing parameters and browse files, especially .jsons
And join vcmi discord channels for help with explanations.

Thabk you very much! Got any link for those perhaps?

1 Like

As I am new here and this is my first post, I use this message to say “Hello!” and “Thank you for your work!” to the community, and allow myself to let my imagination run free and present bold, perhaps silly suggestions, without worrying too much about balance or limitations of which I have no knowledge at the moment. At the same time, I realize that the concepts below reach much deeper than mere modifications through JSON files.

1. Unit’s spell/skill book
A feature known from H4, where creatures had their personal spell books, and players could choose from a variety of unit abilities. I envision units’ spells/skills as mostly unique ones, which cannot be simply duplicated with magic guilds. For example, a lich could raise skeletons, zombies, or wraiths; a pit lord could summon demons, gogs, or imps; mages could create golems from mechanical corpses; an angel could turn same faction’s minor units to its side during a battle, etc.

2. Unit synergies
A feature that is somewhat opposite to the ‘hate’ attribute. Unit X could receive bonuses if unit Y is present in a hero’s army, or/and these bonuses would be stronger if X is right next to Y. A humorous example could be wooden elves and dwarves. They could both receive combat bonuses even if they hate each other at the same time. This concept reminds me a bit of the unicorn’s ability, which provides resistance to adjacent units, but I envision something mutual that works in one direction or benefits both.

3. Scrollable buildings screen
Unlimited space for new buildings, even if they don’t have a structural representation on the town screen. For example, a building called ‘Convert the Town’ could transform a town into a governor’s hero faction, but would turn it into a plain village during the process. I suppose it wouldn’t require much ‘graphical effort’.

4. Date of mod’s last update in the Launcher
I believe this would require a new mandatory property in the mod.json files, but it would be helpful for identifying which mods are actively developed or for trying out a new mod that hasn’t received stars yet.

It is possible that I will also mod the game and not just talk about it. :grinning:

  1. Actually already possible in 1.7. New unit actions panel on the right also shows spells that unit can cast. In h3 units can only cast single spell, but if mod were to give unit multiple spells, they will all show up in that panel. Unlike spellbook, that panel is not unlimited, but it has around 8 free slots

  2. Battle-wide effect should be possible to do, by giving unit a battle-wide bonus limited to a different unit. Adjacency limit would require c++ support, but I think possible to implement. Feel free to open suggestion on Github.

  3. Wog features like town conversion are not in plans at the moment. Eventually we’re planning to add scripting support for crazy ideas like this one.

  4. A bit tricky to implement considering how our mod repository works. Although I might have an idea on how to implement such feature. Will think about this

1 Like