Secondary Skills Modding

I propose to discuss new secondary skills that could be made using current bonus system wiki.vcmi.eu/index.php?title=List_of_all_bonus_types#SPELL_DAMAGE (not some imaginable things possible in future.

Darkness

{
"type":"DARKNESS",
"val": n
}

Creates a vail of darkness around hero, hiding his movements from enemy.
Basic: radius of darkness is 2
Advanced: 3
Expert: 4 (think can cover all town visited by hero.

Elementalist

{
"type":"SPECIFIC_SPELL_DAMAGE",
"val":n,
"subtype":"spell.earthElemental"  / "spell.airElemental" / "spell.fireElemental" / "spell.waterElemental"
}

Increases power of elemental summoning spells (maybe also grants these summoning spells to spell book)
Basic: by 15%
Advanced: by 30%
Expert: by 50%

Hardiness

{
"type":"STACK_HEALTH",
"val": n,
"valueType":"PERCENT_TO_BASE"
}

Increases HP of troops due to hard and harassing training:
Basic: by 10%

Holiness

{
"type":"OPENING_BATTLE_SPELL",
"val": n,
"subtype":"spell.prayer"
}

Casting mass Prayer at start of the battle
Basic: 1st level prayer
Advanced: 2nd level prayer
Expert: 3rd level prayer

Supply

{
"type":"SHOTS",
"val": n,
"valueType":"PERCENT_TO_BASE"
}

Increases number of shots of shooting troops
Basic: 20%
Advanced: 30%
Expert: 50%

Slayer

{
"type":"SLAYER",
"val": n}

All troops become experienced in killing monsters.
Basic: basic slayer (more damage to KING1)
Advanced: advanced slayer (more damage to KING2)
Expert: expert slayer (more damage to KING3)

Defender

{
"type":"DEFENSIVE_STANCE",
"val": n
}

When troops gain defensive stance instead of moving, they get bonus to defence.
Basic: 15%
Advanced: 25%
Expert: 35%

Fencing

{
"type":"ADDITIONAL_RETALIATION",
"val": n
}

Troops are trained to fence and receive additional retaliations to enemy attacks.
Basic: 1 retaliation
Advanced: 2 retaliations
Expert: 3 retaliations

Minery

{
"type":"GENERATE_RESOURCE",
"subtype":"resource.ore",
"val": n
}

Your hero produces amount of ore each day
Basic: 1 ore
Advanced: 2 ore
Expert: 3 ore

So on with other resources: wood (Cuttery), gems (Diving), crystals (Speleology), sulfur (Hell Gating?),
mercury (Alchemy), for gold we already have Estates.

Breeding

{
"type":"CREATURE_GROWTH",
"val":n,
"valueType":"PERCENT_TO_ALL"
"propagator":"VISITED_TOWN_AND_VISITOR"
}

When hero sits in town, creature growth in town is increased:
Basic: by 10%,
Advanced: by 20%,
Expert: by 30%

Wizard Slayer

{
"type":"LEVEL_SPELL_IMMUNITY",
"val":n
}

All troops gain immunity to spells of some level
Basic: 1st level spells immunity
Advanced: 2nd level spells immunity
Advanced: 3rd level spells immunity

Some ideas was good but the percent on some skills was maybe too high.
ex breeding on expert 50% wow that is very much, maybe more like 8 or 10% on expert would be more naturell and better or els you could easily overpower your enemy.

Is there currently a way to mod secondary skills (possibly new but at least existing ones)? If not it would be a very useful thing to have - currently secondary skills are grossly imbalanced (IMO), so I’d welcome the ability to rectify that (without touching the source code).

Well they are not. Every secondary skills is different so eahc of them is individually hardcoded.We would need full-blown scriptng to do anything about that.

I don’t think full-blown scripting would be needed, depending on how much flexibility you need. For a less ambitious customization system you could
[ul]
] Reference existing skill bonuses via some constants, e.g. TACTICS_RANGE, ARMOR_PERCENT, etc./:m]
] Have a JSON file that re-configures the bonuses granted by skills (including other existing bonuses not necessarily related to secondary skills)./:m][/ul]

E.g. a boost to tactics & armory skills may then look like this:

{
    "tactics" : {
        "basic" : 
            { "type" : "TACTICS_RANGE", "val" : 6 }
        ],
        "advanced" : 
            { "type" : "TACTICS_RANGE", "val" : 6 },
            { "type" : "STACKS_SPEED", "val" : 1, "valueType" : "BASE_NUMBER" }
        ],
        "expert" : 
            { "type" : "TACTICS_RANGE", "val" : 6 },
            { "type" : "STACKS_SPEED", "val" : 2, "valueType" : "BASE_NUMBER" }
        ]
    },
    "armorer" : {
        "basic" : 
            { "type" : "ARMOR_PERCENT", "val" : 5 }
        ],
        "advanced" : 
            { "type" : "ARMOR_PERCENT", "val" : 10 }
        ],
        "expert" : 
            { "type" : "ARMOR_PERCENT", "val" : 20 }
        ]
    }
}

While this wouldn’t enable the creation of arbitrary new secondary skill effects, but you could still do a fair few things with it.

This solution will be most easy to make. I like it. So we can than create new sec. skills using current bonus system.

It’s in the works - see :grin:

1 Like

Great! Are thid changes in latest development build already to start modding, testing and experimenting?

Not yet, but I have no doubt code is good enough to be merged ASAP.
I still wish to make sure it doesn’t break anything.

Now it’s merged. Should be available in daily builds soon.

Yuppi!:soccer:

new_skills-mod.zip (2.2 KB)

Got last daily build and created a mod for rebalancing old skills.
But in game I see only old descriptions and get no new values bonuses (checked for Estates, for example).
What am I doing wrong?
Mod loads without errors reporting.
I use GOG Heroes 3.

you should type “core:scouting” insted of “base:scouting” etc, I think :slight_smile:

new_skills-mod.zip (2.8 KB)

My bad… Now it works.
Seems that it’s still only old secondary skills configuration.
I tried to add new secondary skill “Villainy” and it was met with error reporting.
And there is no icon configuration for skill levels yet.
It must be something like
“graphics”:{“iconBig”:"…", “iconSmall”:"…"}, in level entry.

And in new/old skills we need to have “affinity”:“magic/might” entry to let engine choose which skill is to go with high probability to hero with selected affinity type.

That’s true. For now this code only allow to modify existing skills.

Too cosmetics changes as for your imagination :slight_smile: I count for more challenge for useless skills :slight_smile:

I’ll try creating new secondary skills and for debugging them will replace some old skills.
For example, I replaced Learning skill with Villainy skill:

{

// “villainy” : {
“core:learning” : {
“name”:“Villainy”,
“base” : {
“effects” : {

			"main" : {
				"type" : "MORALE",
				"valueType" : "ADDITIVE_VALUE",
				//"effectRange":"ONLY_ENEMY_ARMY",
				"propagator":"BATTLE_WIDE",
				"val":-1
			},
							"mainNeutralize" : {
				"type" : "MORALE",
				"valueType" : "ADDITIVE_VALUE",
				//"effectRange":"ONLY_ENEMY_ARMY",
				//"propagator":"BATTLE_WIDE",
				"val":1
			}
		}
	},
	"basic" : {
	"description":"{Basic Villainy}\n\nBasic Villainy allows your hero to inspire fear in enemy troops, decreasing their morale by 1.",		
		"effects" : {
			"main" : { "val" : -1 },
			"mainNeutralize" : { "val" : 1 },
		}
	},
	"advanced" : {
	"description":"{Advanced Villainy}\n\nAdvanced Villainy allows your hero to inspire fear in enemy troops, decreasing their morale by 2.",		
		"effects" : {
			"main" : { "val" : -2 },
			"mainNeutralize" : { "val" :2 },
		}
	},
	"expert" : {
	"description":"{Expert Villainy}\n\nExpert Villainy allows your hero to inspire fear in enemy troops, decreasing their morale by 3.",	
		"effects" : {
			"main" : { "val" : -3 },
			"mainNeutralize" : { "val" : 3 },
		}
	}
},

}

By the way, “effectRange”:“ONLY_ENEMY_ARMY” did not worked, so I had to use propagators.

It’s possible to completely replace old secondary skills by new skills now.

This thing have very limited usage

Now we need artists to draw icons for secondary skills in style of hmm3.
I’ll try to make some skills from first post (replacing old ones) and will upload results here.

By the way, i made skill Gouvernor in place of Eatates. It gives creature growth bonuses. In town interface added growth is printed “estates +6” in creature info panel, not a name of skill but its internal id.

new_skills-mod.zip (9.7 KB)
About 14 new skills (replacing old), that can be made with current bonuses system.
I didn’t do skills that generate resources, yet.
This is for testing only, cause I replaced good skills also,