Upgrades

In short

16 items bought with coins in the between-innings shop. Each sits in a slot: Bat, Glove and Cleats hold one item (buying another replaces it); Charms stack, even copies of the same charm. Their effects are stat modifiers, and their tags feed Synergies. Two Epic items start locked and are unlocked with meta points under PERKS.

How it works

  • Shop pool: every upgrade that is unlocked (unlockedByDefault, or bought under PERKS). See Shop and Economy.
  • Offers: RunConfig.shopOfferCount (3) offers per visit, drawn without repeats by rarity weight: Common 6, Rare 3, Epic 1. Bat / Glove / Cleats items you already own are left out; Charms can be offered again.
  • Price: ceil(cost x shop multiplier): x1 Normal, x1.25 Medium, x1.5 Hard (see Difficulty).
  • Stacking: RunState.AddUpgrade removes whatever is in the same slot unless it is a Charm (Stacks => slot == Charm). All modifiers then stack through one rule: final = (base + sum of Adds) x (1 + sum of Percents), never below 0. Percent values add together, they do not multiply. See Upgrades and Synergies and Stats System.
  • Buttons (#38 currency icons): the shop’s BUY and REROLL buttons show a coin icon and the price; the PERKS popup’s buttons show the purple points gem and the price.
  • Index: the main menu INDEX lists every upgrade under EQUIPMENT, in sub tabs BATS, CLEATS, GLOVES and CHARMS, Common first, then Rare, then Epic, with its modifiers and tags (Index Screen).
  • PERKS popup (lobby top bar): “PERK UNLOCKS” lists locked upgrades with a points-price button; the PERKS tab shows a marker when you can afford one. See Meta Progression.

Numbers

idNameSlotRarityPrice N / M / HTagsModifiersUnlock
maple_batMaple BatBatCommon5 / 7 / 8Power+8% Powerdefault
corked_batCorked BatBatRare9 / 12 / 14Power, Risky+18% Power, -10% Contactdefault
launch_batLaunch Pad BatBatRare8 / 10 / 12Lift+5 Launch Angle (flat, degrees), +4% Powerdefault
titanium_batTitanium BatBatEpic14 / 18 / 21Power, Risky+30% Power80 PTS
sweet_tapeSweet Spot TapeGloveCommon5 / 7 / 8Contact+20% Contactdefault
batting_glovesBatting GlovesGloveCommon5 / 7 / 8Timing+15% Timing Windowdefault
pine_tarPine Tar GripGloveRare8 / 10 / 12Power, Contact+6% Power, +10% Contactdefault
sweet_spot_stickerSweet Spot StickerGloveRare7 / 9 / 11Green, Contact+0.15 Green HR Score (flat, +15%), +10% Contactdefault
spikesSpiked CleatsCleatsCommon5 / 7 / 8Power+6% Power, +2 Launch Angle (flat)default
comfy_cleatsComfy CleatsCleatsRare9 / 12 / 14Endurance+2 Extra Outs (flat)default
lucky_pennyLucky PennyCharmCommon4 / 5 / 6Greed+1 Coins per HR (flat)default
showboatShowboat ChainCharmRare8 / 10 / 12Style+25% HR Multiplierdefault
couponReroll CouponCharmCommon3 / 4 / 5Greed+1 Reroll Discount (flat)default
green_lightGreen LightCharmCommon5 / 7 / 8Green+0.25 Green HR Score (flat, +25%)default
hot_streakHot Streak WristbandCharmRare8 / 10 / 12Green, Style+0.15 Green Streak Score (flat, +15% per green in a row)default
metronomePocket MetronomeCharmEpic12 / 15 / 18Timing, Style+25% Timing Window, +15% HR Multiplier60 PTS

Descriptions: Maple Bat “Solid wood.”, Corked Bat “Don’t tell the umpire.”, Launch Pad Bat “Built for lift.”, Titanium Bat “Definitely not league legal.”, Sweet Spot Tape “Bigger barrel feel.”, Batting Gloves “Quicker hands.”, Pine Tar Grip “Sticky and powerful.”, Sweet Spot Sticker “You can feel the barrel.”, Spiked Cleats “Dig in and drive.”, Comfy Cleats “Stay in the box longer.”, Lucky Penny “Finders keepers.”, Showboat Chain “Admire every dinger.”, Reroll Coupon “Clipped from the program.”, Green Light “Perfect swings pay more.”, Hot Streak Wristband “Keep the greens coming.”, Pocket Metronome “Perfect rhythm.”

CountValue
By slotBat 4, Glove 4, Cleats 2, Charm 6
By rarityCommon 7, Rare 7, Epic 2
Rarity weights in the shopCommon 6, Rare 3, Epic 1 (ShopService.RarityWeight)

In the code

FileWhat it does
Assets/_Project/Scripts/Data/DefaultContent.csUpgrade(id, name, slot, rarity, cost, description, tags, modifiers...); Metronome and Titanium Bat locks
Assets/_Project/Scripts/Data/UpgradeDefinition.csEquipmentSlot, Rarity, Stacks, Describe()
Assets/_Project/Scripts/Upgrades/ShopService.csOffers, rarity weights, buying, rerolls
Assets/_Project/Scripts/Run/RunState.csAddUpgrade (slot replace / charm stack), PriceOf, RecalculateStats
Assets/_Project/Scripts/UI/LobbyNav.csPERKS tab and PERK UNLOCKS popup
Assets/_Project/Scripts/Data/IndexCatalog.csLists upgrades as Equipment in the INDEX

Gotchas

  • Bat upgrades also pick the 3D bat model shown (BatModelLibrary has entries for all four), unless a bat cosmetic is equipped, which overrides the look. See Cosmetics.
  • Buying a new Bat, Glove or Cleats item throws away the old one with no refund.
  • Green HR Score and Green Streak Score are flat Adds even though they read as percentages.
  • Coins per HR, Extra Outs and Reroll Discount are read with GetInt (rounded), so a fractional value would round.
  • “Perks” in the lobby means locked shop upgrades; batter “level perks” are a different thing (see Batters).