Gravity Well
What it is
Gravity Well is a world-roaming elite affix introduced in Slice 3. The host while alive carries a violet swirl-particle telegraph orbiting it; on death the host drops a Magnetar Pulse prop at its corpse position. The dropped prop then carries the gravity-pull payoff through its own 100%-break effect — the affix’s mechanical consequence lives in the prop, not on the host.
Identity
| Field | Value |
|---|---|
| Affix ID | gravity_well |
| Category | world-roaming elite |
| Priority | 55 |
| Hooks | onUpdate, onDeath |
| Roll pool | world-roaming elite |
| Halo palette entry | violet (r 160, g 90, b 255) |
| Slice introduced | Slice 3 (tick 23) |
Priority 55 places the affix in the mid-band, after damage filters and most behaviors. The affix produces no filterIncomingDamage hook, so its priority value is operationally near-cosmetic and exists only for log ordering.
What it does
| Phase | Effect |
|---|---|
| While host alive | Emit violet swirl particles around the host at a fixed cadence (telegraph only — no damage, no pull). |
| On host death | Spawn a Magnetar Pulse prop at the host’s exact x/y position. |
The host itself applies no pull, no damage aura, and no debuff during life. The mechanical payoff arrives only after the host dies, via the Magnetar Pulse’s break.
Live-host swirl
| Param | Value |
|---|---|
| Default emit interval | 0.25 s (4 particles/s) |
| Spawn radius range | host.radius × 1.2 to host.radius × 1.7 |
| Tangential speed | 70 to 100 world px/s |
| Inward speed bias | 25 to 45 world px/s |
| Particle lifetime | 0.5 to 0.7 s |
| Particle size | 1.5 |
| Particle color | violet (r 160, g 90, b 255) at alpha 0.85 |
| Particle kind | spark |
Each emit picks a random angle on a ring around the host, then sends the particle tangentially with a small inward bias so the cloud reads as orbital infall.
Death drop
| Trigger | Result |
|---|---|
| Host enters death state | One Magnetar Pulse prop spawns at the host’s x/y |
| Spawn fails (pool cap, denied) | The drop is silently skipped; no retry, no fallback prop |
The dropped Magnetar Pulse is the standard 35-HP destructible prop with its own break behavior — see the Magnetar Pulse prop page for break radius, pull strength, and orb yield.
Per-tier values
The affix has no per-tier scaling — values are fixed regardless of host tier or world level. There is no host-affix configuration block (no affixState.gravity_well keys consumed by the runtime).
How it interacts
With phasing
When a phasing affix on the same host is in its invuln window, the swirl emit interval halves from 0.25 s to 0.125 s, doubling particle density. This is a pure visual cue — no mechanical change to damage, hitbox, or drop. The denser swirl flags the un-hittable moments visually.
| Phasing state | Emit interval | Particles/sec |
|---|---|---|
| Inactive | 0.25 s | 4 |
| Invuln window active | 0.125 s | 8 |
With reflective_burst
When a reflective_burst affix on the same host triggers its return burst, the burst radius is multiplied by 1.5 and a violet outward ring of about 12 extra particles paints the enlarged area. The amplification is owned by the reflective_burst hook; gravity_well’s presence is the trigger.
| Burst state | Burst radius | Overlay |
|---|---|---|
| No gravity_well co-host | state.radius (baseline) | reflective_burst purple ring only |
| Gravity_well co-host | state.radius × 1.5 | reflective_burst ring plus 12 violet outward sparks at 150 to 210 px/s |
With summoner
When a summoner affix on the same host spawns minions, each minion’s spawn distance is 60% of the configured value, clumping the brood inward toward the host. Each spawn point also emits a 4-particle violet inward-biased burst. Mechanical: tighter clump that AoE weapons can clear in one sweep.
| Summoner state | Spawn distance | Per-spawn overlay |
|---|---|---|
| No gravity_well co-host | spawnDistancePx (baseline) | none |
| Gravity_well co-host | spawnDistancePx × 0.6 | 4 violet sparks biased toward host |
With the dropped prop
After the host dies and the Magnetar Pulse spawns, the prop is independent of the affix — it lives on the standard prop lifecycle (destructible HP, break VFX, gravity-pull payoff on 100% break). Killing the host does not auto-break the prop; the prop must take 35 HP from the player or fall to ambient damage.
Telemetry signals
| Event | Counter |
|---|---|
| Death-drop attempted | affix_proc:gravity_well_drops_magnetar (value 1 on success, 0 on null) |
| Phasing dense-swirl tick | affix_interaction:gravity_phasing_dense_swirl |
| Reflective_burst amplified | affix_interaction:reflective_gravity_amp |
| Summoner brood clumped | affix_interaction:summoner_gravity_clump |
EXTRACT-CANDIDATE
- A pair of constants for an inward pull (radius 150 world px, accel 60 px/s²) is declared alongside the affix’s palette data but is not read by the runtime. The live host applies no pull — the pull belongs to the dropped Magnetar Pulse prop. Either the affix is incomplete (missing a sustained pull on live hosts) or the constants are dead code. Flag for the affixes overview page and a runtime audit.
- The affix priority value (55) is described as near-cosmetic because the affix has no damage filter. If more world-roaming affixes ship with onUpdate/onDeath-only hook sets, the priority-band rule (filters near 100, behaviors mid-band, cosmetics low) becomes a candidate for the affixes overview page.
- The pattern “host telegraph while alive, mechanical payload drops on death as a reusable prop” is novel in the affix catalog. If more affixes ship in this shape, lift the pattern to the affixes overview as a recognized affix archetype.
- The three co-affix interactions (phasing, reflective_burst, summoner) follow a consistent shape: a visual overlay plus an optional mechanical multiplier, gated by hostHasAffix at the partner’s hook. Canonical home for the “affix × affix interaction” pattern is the affixes overview page.