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
| Field | Value |
|---|---|
| Faction | solaris (baseline fallback) |
| Hull faction tag | Prism |
| Rarity | epic |
| Display grade | S |
| Outline color | cc66ff |
| Accent color | aa44dd |
| Ship class | medium |
| Starting weapon | flame L1 |
| Passive ID | jack_of_all |
| Passive name | Jack 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
| Stat | Value |
|---|---|
| HP | 165 |
| Shield | 165 |
| Armor | 2 |
| Speed | 185 |
| Acceleration | 320 |
| Drag | 0.50 |
| Turn rate | 0.14 |
| Weapon slots | 4 |
| Upgrade slots | 3 |
| Weapon damage % | 10 |
| Fire rate % | 5 |
| Heat buildup | 0 |
| Heat cooldown | 0 |
| Heat curve | linear |
| Burnout severity | 0.35 |
| Shield regen rate | 6 |
| Shield regen delay | 4 |
| HP regen | 0 |
| Melee mult | 1.0 |
| Luck | 8 |
| Magnet range | 130 |
| Currency bonus | 6 |
| Ship scale | 1.0 |
Star deltas
| Stat | Star-1 | Star-5 |
|---|---|---|
| HP | 165 | 206 |
| Shield | 165 | 206 |
| Weapon damage % | 10 | 12.5 |
| Acceleration | 320 | 400 |
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
| Field | Value |
|---|---|
| Rotates | false |
| Fixed angle (deg) | 180 |
| Accel curve | linear |
| Drag curve | front_loaded |
| Stop shake intensity | 0 |
| Heat shake intensity | 0 |
| Heat shake threshold | 0.85 |
| Stop spring amount | 0 |
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.
| Property | Value |
|---|---|
| Source | HULL_HITBOXES[‘Prism_Ruby’] |
| Vertex count | 23 |
| X range | -0.932 to 0.932 |
| Y range | -0.95 to 0.95 |
Polygon vertices (x, y), in order:
| # | X | Y |
|---|---|---|
| 1 | -0.280 | 0.950 |
| 2 | -0.317 | 0.914 |
| 3 | -0.425 | 0.787 |
| 4 | -0.498 | 0.697 |
| 5 | -0.932 | 0.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 |
| 13 | 0.280 | -0.932 |
| 14 | 0.371 | -0.841 |
| 15 | 0.443 | -0.751 |
| 16 | 0.498 | -0.679 |
| 17 | 0.932 | -0.009 |
| 18 | 0.932 | 0.009 |
| 19 | 0.914 | 0.045 |
| 20 | 0.498 | 0.697 |
| 21 | 0.425 | 0.787 |
| 22 | 0.335 | 0.896 |
| 23 | 0.280 | 0.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
| Field | Value |
|---|---|
| Passive ID | jack_of_all |
| Passive name | Jack of All Trades |
| Effect | +{value}% to all stats |
| Stat target | all |
| Is percent | true |
| 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
| Star | XP required (cumulative dupes) | Mod backpack grid | Grid cells |
|---|---|---|---|
| ★1 | 0 | 3 × 3 | 9 |
| ★2 | 1 | 4 × 3 | 12 |
| ★3 | 3 | 4 × 4 | 16 |
| ★4 | 7 | 5 × 4 | 20 |
| ★5 | 17 | 5 × 5 | 25 |
Lerped per-star values for the four endpoints that differ between Star-1 and Star-5 (lerp factor t = (star − 1) / 4):
| Star | HP | Shield | Weapon damage % | Acceleration |
|---|---|---|---|---|
| ★1 | 165 | 165 | 10 | 320 |
| ★2 | 175.25 | 175.25 | 10.625 | 340 |
| ★3 | 185.5 | 185.5 | 11.25 | 360 |
| ★4 | 195.75 | 195.75 | 11.875 | 380 |
| ★5 | 206 | 206 | 12.5 | 400 |
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 sharefixedAngleDeg: 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 onships.mdor 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 onships.mdthat 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
weaponDamagePctshape. Contrast with the Bomber/Shard pattern (where Star-5 re-states every Star-1 value). Authoring-guide candidate onhow to add a new ship: the Crystal/Ruby shape is the canonical clean form. jack_of_allbaseline 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 onpassives.mdorships.mdand 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: 0andheatCooldown: 0match Citrine, Crystal, Jade, Pearl, and Shard — the full Prism faction opts out of the overheat-boost loop. Worth a faction-identity paragraph onships.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.14on a non-rotating ship is dead config. Ruby setsrotates: 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.mdthat 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 onships.mdto surface which Prism hulls have which collision shape, since the visual silhouette differs but the runtime collider may not.