You are breaking the custom maps because of your ignorance, not because you need to break them. When you change the war3.w3mod\Units\AbilityData.slk for melee, you could keep the old version of the same file in _balance\Custom_V1.w3mod\Units\AbilityData.slk which is automatically used by custom maps unless they go out of their way to specify the usage of unstable, constantly changing melee balance data.
A lot of World Editor users are telling you to âcopy the abilityâ but that idea is a World-Editor-centric way of thinking. It works well if you write more C++ code.
I am on vacation and I canât look at your PTR yet, but the space aliens gave me the source code, purely for their own amusement. In the War3 source folder, at Source/Units/Ability/CAbilityOrb.h there is a C++ class called CAbilitySpellEffectBonus. This ability is spawned from AbilityData.slk if the code column of the spreadsheet is set to AIsb. You donât care about that and arenât changing C++, right? Because you just want to play the game, right? You didnât change the C++ so you donât actually need to add an ability to World Editor. I assume you changed AIos in the UnitID column of the row labeled with alias key column (first column) as AIsb. And now instead of AIos you are using some Shadowstrike based thing, which is a row you can add by choosing a new alias and using the code column again as AEsh for the new row, and then putting that new alias as the UnitID column value of the row for AIsb.
Frozen Throne already solved the problem youâre facing. The entire purpose of _balance\Custom_V1.w3mod\Units\ folder is that when you make an slk change like this, the campaign missions and the custom maps stay the same because they always use the duplicate file in _balance\Custom_V1.w3mod\. But the people who worked before you in 2020-2022, who have since been sacked, also struggled to understand this system and often did it wrong. Because they [and/or you] did it wrong, custom maps were incentivized to flag themselves as Melee maps and use the latest balance instead of the stable one. This is wrong and the proper way to help those maps is for you to better maintain the _balance\Custom_V1.w3mod\Units\ folder and not for all custom maps to flag themselves as Melee. For example, if you were copying CAbilitySpellEffectBonus class to make a new ability class in C++, similar to how CAbilityHealMultiplier was added to Source/Units/Ability/CAbilityOrb.h in the last 5 or so years by other new people (you can see this on your git blame stuff, Iâd imagine â it wasnât in the 2005 game), in that case if you make a new C++ class then you want to add a new row to war3.w3mod\Units\AbilityData.slk to declare an ability alias for that class functionality. But the people who worked here before you, sometimes when they did that, they forgot to also add the ability alias row to _balance\Custom_V1.w3mod\Units\AbilityData.slk for the customs. And that is because they were ignorant. If you look at the Firelord hero added in a 2005 patch to the 2003 game, the way his abilities such as Volcano were added, after these are added in C++ in Source\Unit\Ability\CAbilityFireLord.h then the alias row for ANvc (âVolcanoâ) was added to war3.w3mod\Units\AbilityData.slk. But these were also made available in the _balance\Custom_V1.w3mod\Units folder. The difference was that the link to the new alias was not provided â so Tavern would not sell Firelords in custom maps, and they wouldnât change, but newly made custom maps on the stable balance could create Firelord based characters, or copy the ANvc rowâs âCustom_V1â stable balance equivalent. In a similar way, the recent California kiddos added that CAbilityHealMultipler class in C++ that I mentioned before, and then they added a row with alias='AIf2', and code='AIhu' to both of war3.w3mod\Units\AbilityData.slk and _balance\Custom_V1.w3mod\Units\AbilityData.slk. And then they also added a new item ofr2 to be this new version of Orb of Fire, and this was added in both war3.w3mod\Units\ItemData.slkand also _balance\Custom_V1.w3mod\Units\ItemData.slk, but then if we look at HumanUnitFunc.txt in both of these two folders, it seems like someone changed hvlt the Arcane Vault to have ofr2 on its Makeitems= property, even in the stable balance file _balance\Custom_V1.w3mod\Units\HumanUnitFunc.txt and this seems really wrong, since the link to change the lowest level (which version of item is sold by shop) should have only been added to the melee file war3.w3mod\Units\HumanUnitFunc.txt.
So, I wrote this on mobile, Iâm not at my Windows PC, space aliens probably arenât really the ones who gave me the C++ source it was probably somebodyâs AI intuition, but what Iâm saying is nevertheless accurate. Do not change 'AIsb' row in the Custom_V1 stable balance folders, only change it in the melee balance folders. If you cannot do this, the problem is not that âthe game is complicated,â rather in such case, the problem is you. In such case, if you want to know how I really feel, take a look at the file encoded in the game at Units/Human/Peasant/PeasantPissed1.flac.