Game locked while casting Mass Healing Word

Frostbyte
Level 3
1 year ago (edited)

I am in the Madracht fight, I just cast Mass Healing Word after selecting my entire party (4 members) and clicking confirm. All targets are in LOS, all conscious, and all have the Beacon of Hope buff. 

The spell effect happened, but only one party member received healing, both on screen and in the combat log. 

The game is now in a locked state where the spell is not finished. The bottom screen UI is gone. I can open menus, and they act as though it is still my turn (can't switch characters or perform any more interactions). I can not press space to end my turn.

Otherwise, the game is still responsive. I can move the camera, and click things, and the sounds/music still play.


That is all! Good luck :)


Edit: It just happened again with a normal Healing Word. The exact same thing, but only one target this time (obviously). Again with Beacon of Hope up. I will experiment a bit more with this!

Edit: I've reloaded this combat several times now, and it happens every time I heal someone who has the Beacon of Hope buff.

Frostbyte
Level 3
1 year ago

I am trying the same combat again. This time my Cleric was healing herself with Healing Word, with Beacon of Hope active, and it triggered the exception below. I had just saved mid-combat, so I did a quick load and tried again, same parameters. The exception happens every time.

FYI, I tried healing my party with BOH outside of combat, and it worked fine. Something about this encounter is messing it up.

[Exception] ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index


System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) (at <fb001e01371b4adca20013e0ac763896>:0)

System.ThrowHelper.ThrowArgumentOutOfRangeException () (at <fb001e01371b4adca20013e0ac763896>:0)

DiceRollGroup.SwitchToState (DiceRollGroup+RollState state) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

DiceRollGroup.ConfirmValues (System.Collections.Generic.List`1[T] values, System.Int32 totalValue) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

DiceCollectionsModule.RollDiceGroup (System.Int32 groupIndex, System.Collections.Generic.List`1[T] values, System.Int32 total) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

EffectFormRollPanel.EffectFormsTriggered (RulesetEntity character, System.Collections.Generic.List`1[T] effectInfos) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

EffectFormRollPanel.HealingFormsTriggered (RulesetEntity character, System.Collections.Generic.List`1[T] effectInfos) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

RulesetImplementationManager.ApplyEffectForms (System.Collections.Generic.List`1[T] effectForms, RulesetImplementationDefinitions+ApplyFormsParams formsParams, System.Boolean retargeting, System.Boolean proxyOnly, System.Boolean forceSelfConditionOnly) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

CharacterActionMagicEffect.ApplyForms (GameLocationCharacter caster, RulesetActiveEffect activeEffect, System.Int32 addDice, System.Int32 addHP, System.Int32 addTempHP, System.Int32 effectLevel, GameLocationCharacter target, ActionModifier actionModifier, System.Boolean criticalSuccess, System.Boolean rolledSaveThrow, RuleDefinitions+RollOutcome saveOutcome, System.Int32 targetIndex, System.Int32 totalTargetsNumber, RulesetItem targetITem, RuleDefinitions+EffectSourceType sourceType) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

CharacterActionCastSpell.ApplyMagicEffect (GameLocationCharacter target, ActionModifier actionModifier, System.Int32 targetIndex, System.Int32 targetCount, RuleDefinitions+RollOutcome outcome, System.Boolean rolledSaveThrow, RuleDefinitions+RollOutcome saveOutcome) (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

CharacterActionMagicEffect+<MagicEffectExecuteOnTargets>d__66.MoveNext () (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

TA.Coroutine.Run () (at <9130be54a7504c83bb3ffc3c86a7e517>:0)

UnityEngine.Debug:LogException(Exception)

Trace:LogException(Exception)

TA.Coroutine:Run()

GameLocationActionManager:Update()


Strannik
Level 9
1 year ago (edited)

Sounds like array boundary exception or other collection. I wonder what is the internal buffs and debuffs representation.

Frostbyte
Level 3
1 year ago

Well, since we're getting speculative :)
The stacktrace looks like the error maybe happens inside a method that alters the state of a group of dice. I'm guessing it tries to iterate over the dice in the group, but for some reason it's empty.

DiceRollGroup.SwitchToState (DiceRollGroup+RollState state)

Now that I think about it, this is actually in-line with what I've seen a couple times when this happened. The gray dice box would show up on the bottom of the screen, and stay there for a while, with the rest of the UI hidden, but the dice-rolling effect would not happen.

It's like it couldn't find any dice to roll or something.

Strannik
Level 9
1 year ago

I'm guessing it tries to iterate over the dice in the group, but for some reason it's empty.

DiceRollGroup.SwitchToState (DiceRollGroup+RollState state)

Or the element it tries to handle doesn't exist in group with given index or index is correct but  by some reason the dice wasn't save (i.e. added to the group) properly.