Trailblazer

What it is

Bullet + fire legendary forged by merging one level-20 bullet-tag weapon with one level-20 fire-tag weapon. Spits a wide, chaotic spray of pulse-ball rounds at very high fire rate. Each round flies long-range, pierces every enemy in its line, paints a dense burning lane along its flight path, and drops a tiny short-lived flame patch at every impact point so enemies keep cooking after the hit.

Merge recipe

Parent AParent BResult
Any L20 bullet-tag weaponAny L20 fire-tag weaponTrailblazer (L1)

One parent slot must carry the bullet damage tag and the other must carry the fire damage tag. The resulting legendary starts at level 1 and levels up via the normal level-up pool from L1 to L20. See legendary damage baseline for why a fresh legendary already hits as hard as a non-legendary at L20.

Stats

Raw spec values, before the global damage multiplier, low-level buff, legendary baseline, and horizontal modifiers. See weapons for the level-scaling formula and damage multiplier curve for the multipliers stacked on top.

StatL1L10L20
Damage per round600600600
Fire rate (shots/s)18.0025.2033.20
Rounds per shot3.03.94.9
Projectile speed720792872
Projectile size22.0026.9532.45
Acquire range110012621442
Travel range multiplier14.0×14.0×14.0×
Spread28°28°28°
Random spreadYesYesYes
Homing strength000
Can retargetNoNoNo
Warmup0.05 s0.05 s0.05 s
Cadence step0.05 s0.05 s0.05 s
Impact-ember damage fraction30% of round30% of round30% of round
Impact-ember radius30 px30 px30 px
Impact-ember duration0.4 s0.4 s0.4 s

Identity

FieldValue
FamilyProjectile
RarityLegendary
Damage tagBullet
Secondary damage tagFire
Merge parentsBullet + Fire
Scaling curveLinear
Target modeClosest
Collision modePierce all
Area modeSplash
BehaviorFire trail
Bullet archetypePulse ball
Can hit destructiblesYes

Behavior

  • Auto-aim picks the closest enemy at fire time. See target modes for the full definitions.
  • Each shot releases a cone of pulse-ball rounds — three at L1, scaling up to roughly five at L20. Rounds spread randomly across a 28° arc, so the cone fills with chaotic flame rather than evenly fanning out.
  • Pierce-all collision: every round punches through every enemy along its line and continues out of the screen rather than stopping on first contact. See collision modes.
  • Travel range is set very long via a 14× multiplier on acquire range, well beyond the player’s visible viewport, so rounds keep applying damage until they fully leave the world.
  • Rounds cannot retarget once fired and travel in a straight line within their randomly-rolled spread angle.
  • Every round emits a dense multi-layer particle trail in flight — white-hot core, orange flame band, deep red embers, and rising smoke — that visually paints a wide burning lane along its path. This trail is VFX only and does not deal damage on its own.
  • On every round impact, an “Impact Ember” flame patch spawns at the hit point with a 30 px radius and 0.4 s duration. The patch deals damage-over-time totalling roughly 30% of the round’s damage across its lifetime, reusing the shared flame-zone primitive so it stacks with other persistent fire patches. See collision modes.
  • Rounds and impact embers can damage destructible props in addition to enemies.
  • The primary damage tag is bullet and the secondary damage tag is fire, so every hit emits both tag signals — any artifact or effect keyed on either tag procs from the same round. See damage tags.
  • A short 0.05 s warmup gates the first shot at the start of a run.
  • The cadence pattern is eight back-to-back fire steps at 0.05 s spacing, which keeps the rapid-fire rhythm tight when fire-rate cooldown allows it.

Scaling

  • Damage and per-shot identity (spread, warmup, cadence step, impact-ember radius and duration) are flat — they do not grow with level. All damage growth comes from the layered multipliers, not the spec base.
  • Fire rate grows linearly: +0.80 shots/s per level above 1, from 18.0/s at L1 to 33.2/s at L20.
  • Rounds per shot grows linearly: +0.10 per level above 1, from 3.0 at L1 to 4.9 at L20. Fractional counts are probabilistic — at L10 the shot fires 3 rounds 10% of the time and 4 rounds 90% of the time.
  • Projectile speed grows linearly: +8 px/s per level above 1, from 720 to 872.
  • Projectile size grows linearly: +0.55 px per level above 1, from 22 to ~32.45.
  • Acquire range grows linearly: +18 px per level above 1, from 1100 to 1442. Final round travel distance is acquireRange × 14.0.
  • Travel range multiplier, spread angle, warmup, cadence step, and impact-ember stats are constant across all levels.
  • The damage stat is multiplied by the global damage curve (1.00× at L1 → 7.50× at L20), the low-level damage buff (+30% at L1 decaying to 0% at L7), and the legendary baseline multiplier of 7.50×.
  • Horizontal damage modifiers add another +4% per step on top, and horizontal fire-rate modifiers add +10% per step.
  • Area horizontal modifiers grow the splash radius (area mode: splash).
  • Because the round carries both bullet and fire tags, both horizontal bullet-damage and horizontal fire-damage tracks apply, and any affix keyed on either tag procs from the same hit.

EXTRACT-CANDIDATE flags (shared facts not yet on a canonical page, or worth promoting):

  • Impact-ember on-hit echo. Trailblazer is the only weapon with an “Impact Ember” on-hit hook in the collision resolver: every hit spawns a 30 px / 0.4 s flame patch dealing 30% of the round damage as DoT, reusing the shared flame-zone primitive. The hook lives outside the weapon spec (in collision-resolver.ts keyed on weaponId). No canonical page describes these per-legendary on-hit echoes (also seen on Mega Bullet / Hellrain / Carpet Bomber / Trailblazer — each has its own resolver-side echo).
  • Behavior string as bullet-VFX hook. Trailblazer’s behavior: 'fire_trail' is not routed by the main behavior dispatcher (which falls through to fireProjectiles). Instead the string is pushed onto the spawned bullet’s behaviors array, where the bullet-side BulletBehaviors.register('fire_trail', ...) registration turns it into a per-frame particle-emission hook. Same pattern likely applies to other legendaries whose behavior name does not appear in the weapons.ts dispatcher. No canonical page distinguishes “weapon-fire behaviors” (dispatcher-routed) from “bullet behaviors” (per-bullet behaviors-array hooks).
  • Random spread vs evenly-fanned spread. randomSpread: true rolls each round’s angle independently inside the spread cone, producing a chaotic fill instead of an evenly-divided fan. Belongs on a spread/cone concept page.
  • Mixed-tag legendary double-tag behavior. Trailblazer (and Railstorm / Carpet Bomber etc.) carry two distinct damage tags rather than the same tag twice. Both tag signals still fire on hit, but each tag procs its own artifact set. No canonical page distinguishes single-tag legendaries (Mega Bullet, Hellrain, Phoenix, etc. — double-fires one tag’s signals) from mixed-tag legendaries (Trailblazer, Railstorm, etc. — fires two different tag signals).
  • Fractional projectile count probabilistic resolution. With scaling: 0.10 on projectileCount, intermediate levels resolve to fractional counts (e.g. 3.9 at L10). The engine treats the fractional part as a per-shot probability of firing the extra round. Worth noting on the scaling curves page and on the weapons hub.
  • Cadence pattern of all-1s. A cadencePattern of [1,1,1,1,1,1,1,1] is a no-op rhythm — there is no rest step, so the pattern only matters as a hook for VFX/audio cadence beats rather than for shot-rate gating. Different from Mega Bullet’s [1,1,1,0,0,0,0,0,0,0] burst-then-rest pattern. Belongs on a cadence-pattern concept page.
  • Pulse-ball bullet archetype. bulletArchetype: 'pulse_ball' is a renderer hook that picks a sprite/particle preset distinct from the weapon’s behavior. Same archetype field as Mega Bullet’s mega_bullet. Not documented anywhere in the wiki.
  • Legendary VFX scale rule. Spatial parameters on legendaries (acquireRange, travelRangeMult, projectileSize, blastRadius, etc.) are ×5 their base-weapon counterparts; postFxSec is ×2 only. Currently only documented as a comment at the top of the legendaries source file. Worth promoting to a concept page.
  • Travel range × acquire range product. Final projectile lifetime/range for non-arc weapons resolves from acquireRange × travelRangeMult / projectileSpeed. Currently documented inline on the travel-range page but worth cross-linking from every pierce-all weapon row.
  • canRetarget flag. Trailblazer sets canRetarget: false, meaning rounds lock to their initial line and ignore later enemy movement. No canonical page describes which weapons retarget mid-flight.