Quick answer: Set per-area priority. Higher priority area emits before lower.

Player walks into stacked damage + heal zones. Heal happens first; player ends with full HP from a damage zone. Order matters.

The Fix

DamageArea (Area2D):
  priority = 10

HealArea (Area2D):
  priority = 0

# Damage signal fires first; heal second.

Distinct priorities determine emission order. Same priority falls back to scene-tree order.

Verifying

Connect to body_entered on each Area2D. Damage logs before heal. Without priority: order varies.

“Higher priority. First emit.”

Related Issues

For Area2D fast mover, see fast mover. For StaticBody trigger, see StaticBody.

priority orders. Damage first.