There is a great post here listing lot of known bugs, but I’d focus on some of the new systems in 5.0 (lot of them aren’t listed above).
This obviously isn’t a full list, but its ones that can really cause certain systems unusable, or deter new users. For sure I missed some high impact ones, would be happy to update if more are found.
-
UnitAbilityRemove
function may not remove an ability. In order for it to work you need to remove abilities in reverse order compared to the order you’ve added them in withUnitAbilityAdd
. IIRC something like 32 is max amount, so if you haven’t been adding/removing in the above order problems will occur (when attempting to add more abilities than max it will either fail or potentially cause a crash). -
Data Table Instance API has a high chance of causing a crash to specific players. It seems to happen if one player played any game where instances are set, and then joins another game where you create a new data table instance. It will have different values for different players, because probably some internal value isn’t reset properly. Since players have some value different, it will cause a desync.
-
PlayerRemoveResponse
function doesn’t work at all. -
PlayerClearResponse
can be a good replacement for removing all responses of certain type, but trigger GUI doesn’t have a preset for unit birth type. However checkingPlayerResponse.galaxy
it does have it defined:const int c_classIdCPlayerResponseUnitBirth = 4;
I’ve tested it in pure galaxy and appears to work fine. -
Ability level accumulator is broken in certain fields. One known example is
Chance
andMissing Chance
field in i.e. dmg response. It will only take first level’s value and ignore the rest (this also means some of the war3 mod is bugged). -
Ability level accumulator is broken with
$AccumulatedValue$
text tag (i.e. trying to get accumulated value in damage field that uses abil level accumulator); weird thing is that damage itself is correct, but the text is wrong (also just puts first levels value). -
[GUI] Arithmetic accumulator’s Parameters dissapear in GUI sometimes (i.e. add 2 parameters, and then add accumulator to any of them, and other param will disappear).
-
Behavior accumulator types Damage Modify Remaining and Damage Modify Limit are inverted.
-
AdditiveAttackSpeedFactor
behavior field isn’t updated automatically if used with accumulators (if accumulator value changes, speed factor won’t unless you re-apply the behavior). -
RunAccumulators
text tag requires a unit to be selected in order to work, which makes sense since most of them are related to units, however it also doesn’t work forCAccumulatorTrackedUnitCount
when using it as a global unit tracker rather than unit tracker. The unit selected really isn’t relevant in this case since result is always same. -
Data collections
@
character breaks Expression view in requirements (is just removed from it). -
Attack Modifier (behavior) damage multipliers don’t work at all/properly if
DamageModifierSource
is set to anything in damage effect (i.e. caster). -
Missing Chance
field in damage response does manage to always nullify the damage, but it doesn’t always prevent Pre/Post impact effect in attack modifier behavior (I believe the same holds true if you hardcode apply behavior effect in weapon). It fails to do so if the i.e. debuff is attempted to be applied in same game tick when attack happens: For example using effects to move onto next tick (CP or LM type effects) and then use apply behavior it works. -
PreImpactEffect
in attack modifier doesn’t manage to update the damage before main attack lands. So lets say it calls an effect to apply a buff that modifies damage dealt, it won’t be taken into the account until next attack, even if you put dmg modifier source to caster. -
Is Heal
flag in ModifyUnit effect can cause a crash even in local games. It happens if a reference to caster is lost. A way to replicate this would be caster applying a behavior that calls some modify unit effect by any means, with is heal flag on. If caster of that behavior is removed from game, and the behavior executed that effect on source unit, game crashes. -
In upgrades, Add/Subtract Base Multiply doesn’t appear to calculate properly always.
-
If using
Attribute Factor
on damage effect, and then also using newFraction
field, the result is very confusing. One would expect original damage to be adjusted based on targets attribute and then fraction applied (well order doesn’t matter), but instead some weird results happen. For example assume 146 damage amount, fraction 0.5 and attribute factor that sets it to do 70% of damage. It appears to do this: (146 * 0.5) - (146 * 0.3), which becomes a problem very fast with lower fractions. -
There are many weird things with damage response when Location is set to Attacker. Older bug is the fact
Fatal
doesn’t work. When you attempt to transfer damage onto effect tree and pickHandledValue="Remaining"
it still transfers Original. When set to Defender you can get Remaining but you must put priority to be lower than where your damage reductions are (so for example priority=-1 works). Sadly for Attacker it just doesn’t. Its kinda annoying that its so difficult to get damage dealt in data, it should be a simple thing . You can apply a 2nd dmg response to target thats actually defensive and get remaining that way, but eh doesn’t sound like an ideal approach compared to just using triggers with damage taken event…