Ruby (Prism)

What it is

An epic-rarity Prism hovercraft hull — non-rotating, omnidirectional thrust, locked to face-down (180°) at mission start with a front-loaded drag profile. Carries a mid-tier 165/165 HP/shield pool on a four-weapon-slot mount, the flame starting weapon, modest 320 acceleration paired with 185 top speed and a 0.50 drag coefficient. Turn rate of 0.14 matches the Prism-family standard but is unused at runtime because the hull does not rotate. Heat curve is fully disabled (0 buildup / 0 cooldown), so the overheat-boost loop never engages. Ruby is one of two non-rotating Prism hulls (alongside Crystal) and the only one that is not legendary.

Identity

FieldValue
Factionsolaris (baseline fallback)
Hull faction tagPrism
Rarityepic
Display gradeS
Outline colorcc66ff
Accent coloraa44dd
Ship classmedium
Starting weaponflame L1
Passive IDjack_of_all
Passive nameJack of All Trades
Passive effect+{value}% to all stats
Passive values per rank (1–5)3, 6, 10, 15, 22

The Faction enum in code is the four-faction set (angel_corp, crystal_casino, solaris, wrongsiders) and Prism hulls have no per-hull faction override, so the baseline solaris faction value is carried through. The Prism label here describes the hull-family prefix used in the sprite filename and rarity table, not a runtime Faction enum value. Rarity color is the epic purple outline baked into the v5 sprite asset.

Star-1 stats

StatValue
HP165
Shield165
Armor2
Speed185
Acceleration320
Drag0.50
Turn rate0.14
Weapon slots4
Upgrade slots3
Weapon damage %10
Fire rate %5
Heat buildup0
Heat cooldown0
Heat curvelinear
Burnout severity0.35
Shield regen rate6
Shield regen delay4
HP regen0
Melee mult1.0
Luck8
Magnet range130
Currency bonus6
Ship scale1.0

Star deltas

StatStar-1Star-5
HP165206
Shield165206
Weapon damage %1012.5
Acceleration320400

All other Star-5 fields match Star-1 (the per-hull Star-5 override only delta-pins the four numerics above). No Star-2 / Star-3 / Star-4 pins exist for Ruby, so intermediate stars lerp linearly between the four endpoints; every other stat is constant across all five stars.

Drive feel

FieldValue
Rotatesfalse
Fixed angle (deg)180
Accel curvelinear
Drag curvefront_loaded
Stop shake intensity0
Heat shake intensity0
Heat shake threshold0.85
Stop spring amount0

Hovercraft behavior — the ship does not rotate to face the input direction and stays pinned at 180° (facing down) for the entire run. Thrust applies along the input vector directly (omnidirectional). Linear thrust ramp into a front-loaded brake: when thrust is released, the deceleration is strong at first and then eases off, producing an arcade-car coast that bleeds the top end fast and lets the ship glide the last bit of speed before settling. The 0.14 turn-rate value is stored but never read by physics, since rotation is disabled. Heat curve is fully disabled (0 buildup / 0 cooldown), so the overheat-boost loop never engages.

Hitbox

Custom 23-vertex polygon, sprite-traced from the v5 Ruby asset. Convex hull simplified to ~32 vertices via Visvalingam-Whyatt, shrunk 5% for tight-but-fair collisions, rotated -90° from sprite-south to engine-right convention. The ship scale multiplier of 1.0× is applied on top.

PropertyValue
SourceHULL_HITBOXES[‘Prism_Ruby’]
Vertex count23
X range-0.932 to 0.932
Y range-0.95 to 0.95

Polygon vertices (x, y), in order:

#XY
1-0.2800.950
2-0.3170.914
3-0.4250.787
4-0.4980.697
5-0.9320.027
6-0.932-0.027
7-0.516-0.660
8-0.461-0.733
9-0.353-0.860
10-0.280-0.932
11-0.081-0.950
12-0.063-0.950
130.280-0.932
140.371-0.841
150.443-0.751
160.498-0.679
170.932-0.009
180.9320.009
190.9140.045
200.4980.697
210.4250.787
220.3350.896
230.2800.950

The silhouette is nearly square (X span 1.864, Y span 1.900) with a long horizontal axis from -0.932 to 0.932 at near-zero Y — a tapered diamond pointing left-and-right, narrower at top and bottom and broadest at the equator. The polygon is roughly mirror-symmetric across both the X and Y axes.

Passive

FieldValue
Passive IDjack_of_all
Passive nameJack of All Trades
Effect+{value}% to all stats
Stat targetall
Is percenttrue
Values per rank (1–5)3, 6, 10, 15, 22

The default baseline passive (no per-hull override). Resolved at the hull’s rarity tier — Ruby is epic, one tier below legendary on the rarity ladder. The passive’s rank on a pull is driven by hull rarity, not by stars accumulated on the same copy.

Star progression notes

StarXP required (cumulative dupes)Mod backpack gridGrid cells
★103 × 39
★214 × 312
★334 × 416
★475 × 420
★5175 × 525

Lerped per-star values for the four endpoints that differ between Star-1 and Star-5 (lerp factor t = (star − 1) / 4):

StarHPShieldWeapon damage %Acceleration
★116516510320
★2175.25175.2510.625340
★3185.5185.511.25360
★4195.75195.7511.875380
★520620612.5400

Ruby has no per-hull Star-2 / Star-3 / Star-4 pin entries, so the lerp runs straight from Star-1 to Star-5 with no breakpoints. Star tier never changes the starting weapon (always flame L1), faction, rarity, hitbox polygon, drive feel, hovercraft non-rotation, fixed 180° facing, front-loaded drag curve, ship scale, weapon-slot count, armor, speed, drag, turn rate, or heat curve — only the four lerped numerics above and the mod backpack grid size.


EXTRACT-CANDIDATE

  • Ruby and Crystal are the only non-rotating Prism hulls. The Prism faction is six hulls (Citrine, Crystal, Jade, Pearl, Ruby, Shard); four of them are free-rotating (Citrine, Jade, Pearl, Shard) and only Crystal and Ruby set rotates: false. All six share fixedAngleDeg: 180, but the fixed-angle field is only honored by physics when rotation is disabled, so it is dead config on the four rotating Prism hulls and load-bearing on Crystal and Ruby. Worth a canonical note on ships.md or a Prism-faction page splitting the family into “hovercraft” (Crystal, Ruby) and “rotating with dead fixed-angle” (Citrine, Jade, Pearl, Shard) sub-groups.
  • Ruby is the only epic-rarity Prism hull that is not legendary or rare or below. Per ships-v4-rarity.ts, the Prism rarity ladder is Crystal/Pearl/Shard (legendary), Citrine and Ruby (epic), Jade (rare). Ruby is the lower-stat-tier counterpart to Crystal — same drive feel (non-rotating, front-loaded drag, fixedAngleDeg 180, turnRate 0.14, drag 0.50), but with hp/shield 165 vs Crystal 200, acceleration 320 vs 360, speed 185 vs 200, and the flame starter vs lightning. The ★5 endpoint deltas also scale down: Ruby hits 206/206 hp/shield and 400 acceleration at ★5 vs Crystal’s 250/250 and 450. Worth flagging on ships.md that the Prism faction has a designed “hovercraft tier ladder” (Crystal legendary → Ruby epic) where the silhouette and drive feel match but the stat block is downscaled — either intentional design (template-driven balance pass) or a copy-paste artifact awaiting per-hull tuning.
  • Star-5 override is a tight 4-field delta. Ruby’s Star-5 entry only pins hp, shield, weaponDamagePct, and acceleration — the same minimal correct form used by Crystal and Pearl’s weaponDamagePct shape. Contrast with the Bomber/Shard pattern (where Star-5 re-states every Star-1 value). Authoring-guide candidate on how to add a new ship: the Crystal/Ruby shape is the canonical clean form.
  • jack_of_all baseline passive on an epic hull. Ruby inherits the same baseline passive as every common-tier hull, with no per-hull epic-specific passive override. Same flag raised on Crystal, Pearl, Shard, Bomber, and Glyph. The +3/6/10/15/22% all-stats curve is undocumented on passives.md or ships.md and needs a single canonical block. Whether rarity tiers should grant unique passives is a design decision worth surfacing — currently rarity drives only the passive’s rank, not the passive’s identity.
  • Heat curve fully disabled across the entire Prism faction. Ruby’s heatBuildup: 0 and heatCooldown: 0 match Citrine, Crystal, Jade, Pearl, and Shard — the full Prism faction opts out of the overheat-boost loop. Worth a faction-identity paragraph on ships.md (or a Prism-faction page) describing “Prism ships do not overheat” as a deliberate faction trait, since this is currently buried in per-hull data and never surfaced to players. Solaris hulls partially set heat (some 0, some 14/48), so the contrast is real.
  • turnRate: 0.14 on a non-rotating ship is dead config. Ruby sets rotates: false + turnRate: 0.14. The physics path never reads turn rate when rotation is disabled, so the value is purely cosmetic data — same dead-config pattern that Crystal exhibits. Either harmless or evidence of intent-drift. The fix is either drop the field on non-rotating Prism hulls (Crystal, Ruby) or document that it’s a hint to UI / preview code (not runtime physics).
  • Flame starter is shared with no other Prism hull. The Prism faction starters are line (Citrine), lightning (Crystal), barrier (Jade), railgun (Pearl), flame (Ruby), shotgun (Shard) — six distinct weapons across six hulls, no overlaps. Ruby’s flame starter is the only flame starter in the entire Prism faction; the next-nearest flame-starter hull is in another faction. Worth flagging on ships.md that Prism starters are deliberately varied vs other factions (Industria heavily favors mortar/rifle, Junkrats varied) — could be a Prism faction-identity note.
  • Sprite-traced hitbox present, unlike Crystal/Shard. Ruby is one of the few Prism hulls with a custom polygon in HULL_HITBOXES (alongside Citrine, Crystalis, Gator, Jade, Pearl) — Crystal and Shard are absent and silently fall back to the octagon. The 23-vertex polygon is one of the more detailed in the Prism family. Worth a “regenerate hitboxes + table of fallback vs sprite-traced hulls” candidate on ships.md to surface which Prism hulls have which collision shape, since the visual silhouette differs but the runtime collider may not.