IWD2's script action SpellCastEffect() is one of the few instances (or the only one?) that requires 3 string arguments:
289 SpellCastEffect(O:Source*,S:Voice*,S:Sound1*,S:Sound2*,I:Animation*sceffect,I:Speed*,I:Sequence*Sequence)
However, script bytecode only supports up to 2 separate string parameters. Additional arguments are added to the second string, separated by colon characters. WeiDU doesn't seem to add ':' characters, which results in a single merged string for the second string parameter.
Example:
Compiling
SpellCastEffect(Myself, "CAS_PP8M", "PRE_P02", "CAS_EN6", GLOW_ALTERATION, 1, ATTACK)
should generate the following bytecode:
AC
289OB
0 0 0 0 0 0 0 0 0 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
OB
0 0 0 0 0 0 0 0 1 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
OB
0 0 0 0 0 0 0 0 0 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
10 0 0 1 0"CAS_PP8M" "PRE_P02:CAS_EN6" AC
WeiDU generates
AC
289OB
0 0 0 0 0 0 0 0 0 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
OB
0 0 0 0 0 0 0 0 1 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
OB
0 0 0 0 0 0 0 0 0 0 0 0 0 [-1.-1.-1.-1] "" 0 0 OB
10 0 0 1 0"CAS_PP8M" "PRE_P02CAS_EN6" AC
instead, which in turn decompiles into
SpellCastEffect(Myself, "CAS_PP8M", "PRE_P02CAS_EN6", "", GLOW_ALTERATION, 1, ATTACK)