[Tutorial]Things that may break your map in the Void and how to fix them

This post is to help you compatible your map with the Void. All experiences are based on the void beta client. (Though we don't have editor in the beta client, we can still use its SC2Switcher.exe to run our test maps locally)

This thread is not for maps of War3 Mod only, but for all the SC2 maps.

The length of thread would may grow in time. currently I only posted 1-2 things.

Behavior Typed Abilities

In the void beta, the BehaviorArray field of CAbilBehavior has changed its data type from CBehaviorLinkArray to CBehaviorArray.

In the void, CBehaviorLinkArray allow you to have multiple behaviors into same ability level, and press the ability would cycle these behaviors.

CBehaviorLinkArray partially downward compatibility with CBehaviorArray, so this change won't affect most of the maps if you didn't use any advanced XML skill in your maps.

But CBehaviorLinkArray don't support XML token. So this kind of default entry would no longger work in the Void.

All the Passives and Auras in the War3 Mod would be affected. So I already started to rewrite all the Passive abilties to use direct link, and remove the tokens.

Lighting SSAO fields change

If you have custom lighting set in your map. You may get erro message that tell you "Invaild field SSAONoOcclusion in Lighting data xxx" if you run them in the void. Since the void renamed all SSAO indexes in the Lighting Params.

All of the indexes the Lighting Params now have their Prefix "SSAO" renamed to "AO"

This can only be fixed by export the LightData.xml file of your map, and manually replace all <Param index="SSAO to <Param index="AO

For example

<Paramindex="SSAONoOcclusion"value="5.876000"/>

to

<Paramindex="AONoOcclusion"value="5.876000"/>

Of course, this change would make you map get error report in the Swarm client, since swarm still use the SSAO thing.

If you believe in your XML skill, you can directly use the numberic index to make your map work under both environment. It's not recommeded, unless if you know what your are doing.

e.g.

<Paramindex="28"value="5.876000"/>

Wait for Spend for Instant Abilites

The void changed how the Wait for Spend flag work for Instant Effect abilities.

With this flag check, the Unit can be issued order even while a instant abilities is still in cooldown or didn't meet resource/food requirement, The order would be queued until all conditionals are met.

The only problem is that the unit would be stoped in the place until he can cast this ability, so if you use a instant ability in combat while it is in cooldown, the unit would stop attack and stand motionless until it can use the ordered abilty.

This may be good for some abilites, but for most abilites it would not be desired.

You can fix it by uncheck the Wait for Spend flag of your Instant abilities.

(Even in the Swarm client, this flag still make the unit to enter such state, but it would work for queued orders before, while in the void, you can directly issue order to a ability in cooldown)

I will update this thread if I found more blocking compatibility issues. (Minor issues are ignored)

My client just updated to the latest patch.
I know this hasn't got much to do with your mod, but I wonder if you can help me with this problem -> Some of my unit's names appear as "BanditAssassin/Name" instead of "Bandit Assassin" or whatever its name is. I have to manually retype it all. I remember the same thing happened when HotS came. Same thing applies to any dialogs. They all have some "PARAM/VALUE/C75..." etc. Is there a fix to this?