The Source of Common Mod-Related Multiplayer Bugs (and a limited workaround)

Hello reader. I sorted out the cause of some multiplayer bugs a while back and thought I’d share it here since it doesn’t seem to be common knowledge.

The Bug

  1. Clients see their melee skills hit at least twice as many times as they should
  2. Clients see their projectile skills generate at least four times as many projectiles as they should (or maybe it’s twice as many projectiles that each hit twice - this is difficult to see)
  3. Client skills that create a unit do nothing or might not update when they add/remove points (fixed by leaving/rejoining the game)

The Consequences

  1. Adding/removing points from some skills causes them to break until you relog.
  2. Clients see themselves dealing a ton of damage (too many hits) so enemy life becomes desynced. This results in all kinds of issues that can really ruin the multiplayer experience (enemies that won’t die, etc.).

The Cause

  • If a client has any skill with a built-in celestial power (blue star icon) then they will experience this bug. Item skills and celestial powers from devotion are fine.
  • Many mods have these built-in celestial powers in their custom or modified skills (use tags autoCastController and autoCastSkill)
  • Some mods add hidden skills to all players. If one of these skills has a built-in celestial power then all clients may experience this bug. An example of this is the D3 Barbarian (leap_mod_cast_earthquake).

Limited Workaround

  • Client players should not invest in the skills with built-in celestial powers. This is certainly limiting, but makes for a much better multiplayer experience overall. If someone really wants to use these skills then they should host.
  • Do not use mods that automatically add hidden skills with auto casts. Consider talking to the mod developers about this.

I hope that this helps. :slight_smile:

Results of some additional testing:

  1. Pet’s skills that have autoCast (e.g., some totems) do not cause this issue
  2. Adding the proc ability to the player skill list (similar to how devotion skills work) does not fix the issue
  3. Every type of autoCastController (self, enemy, enemy position, ally) that I have tested produces this issue