Skip to content

t1k:designer:economy:shop-offering

FieldValue
Moduleeconomy
Version1.7.2
Efforthigh
Tools

Keywords: economy, offerings, shop, store

/t1k:designer:economy:shop-offering

  • Designing pick-N-of-M item offering mechanics
  • Implementing weighted rarity item draws
  • Adding pity timers for guaranteed rare drops
  • Making shops show synergistic or diverse offerings
  • Designing shop economy (gold budget, pricing scaling)
  • Implementing reroll or refresh mechanics
  • Tuning strategic choice difficulty in offers
Rarity | Base Weight | Adjusted Weight (depth 5+)
Common | 500 | 400
Uncommon | 300 | 300
Rare | 150 | 200
Epic | 40 | 80
Legendary | 10 | 20
  • Normalize weights to sum = 1000, draw with Random.Range(0, 1000)
  • Increase higher-rarity weights by depth to reward run persistence
  • 3 choices = optimal: enough diversity, not overwhelming
  • Mobile: 2 choices acceptable to reduce decision fatigue
  • Never offer 2 items of same rarity in same slot (guarantee variety)

→ See references/offering-algorithms.md for weighted draw code, diversity enforcement, exclusion lists

per-run counters:
shops_since_rare = 0 (reset on rare+ offer)
shops_since_legendary = 0 (reset on legendary offer)
on each offer generation:
if shops_since_rare >= 4: force at least 1 rare slot
if shops_since_legendary >= 12: force 1 legendary slot
  • Display pity progress (“Rare guaranteed in N shops”) — reduces anxiety
  • Pity resets per-run only; do NOT persist across runs (breaks tension arc)

→ See references/offering-algorithms.md for full pity implementation patterns

Scoring Each Candidate Item Against Current Inventory

Section titled “Scoring Each Candidate Item Against Current Inventory”
synergy_score = (adjacency_matches * 2) + (set_completion_bonus * 3) + (type_bonus * 1)
  • Sort candidates by synergy_score; pick top 60% slots from high-score pool
  • Reserve 1 of N slots for “wildcard” (0% synergy weight) — enables discovery
  • Cap synergy weight at 60% to prevent “obvious best choice” every offer
  • Track item type histogram for current run
  • Penalize item types player already has 3+: weight * 0.5
  • Bonus weight for item types player has 0 of: weight * 1.5

→ See references/offering-algorithms.md for synergy scoring, diversity formulas

gold_earned_per_floor = base_gold * (1 + depth * 0.1) + enemy_count * gold_per_kill
shop_price_common = gold_per_floor * 0.15
shop_price_uncommon = gold_per_floor * 0.25
shop_price_rare = gold_per_floor * 0.45
shop_price_legendary = gold_per_floor * 0.80
  • Player should afford 1 common item most floors, 1 rare every 3 floors
  • Price scaling ensures same relative cost throughout run
TypeCostLimitWhen to Use
Single item10% item priceUnlimitedWhen 1 offer is weak
Full refresh30% avg offer value1x/shopNo offers fit current strategy
Premium rerollHard currency1x/runHigh-stakes decision point

→ See references/shop-economy.md for pricing tables, reroll cost scaling, gold distribution

Too Easy: 1 great item + 2 useless items → player feels robbed of real choice
Too Hard: 3 roughly equal items → cognitive overload
Sweet Spot: 1 clearly good + 1 situationally good + 1 build-enabling wildcard
  • Aim for “hard choice” 30% of the time (memorable decisions)
  • “Easy choice” 50% (progression momentum)
  • “Trap choice” 20% (tests player knowledge; must be learnable)

→ See references/strategic-choice-patterns.md for difficulty tuning, trap item design

#Anti-PatternProblemFix
1Always synergistic itemsNo discovery; known meta onlyReserve 1 wildcard slot per offer
2No pity timerDry streaks cause rage-quitGuarantee rare after 4 shops
3Uniform rarity per offerNo hierarchy feelEnforce rarity diversity per slot
4Reroll too cheapPlayers reroll until perfectCost 20-30% of item value
5Price does not scaleLate-game gold meaninglessScale prices with depth
6Only 2 choices on PCFeels binaryUse 3 minimum on PC
  • game-economy-design — gold earn rates, sink/faucet balance for shop currency
  • game-roguelike-design — shop placement in run arc, gold budget per floor
  • game-synergy-combos — synergy scoring used in synergy-aware offering
  • rpg-game-design — item power tier definitions used in rarity weighting
  • puzzle-game-design — adjacency bonuses shown in offer UI (BackpackCrawler)
FileCoverage
references/offering-algorithms.mdWeighted draw, pity timers, synergy scoring, diversity
references/shop-economy.mdPricing formulas, gold budgets, reroll cost scaling
references/strategic-choice-patterns.mdChoice difficulty tuning, trap items, offer composition
  • Pity timers without visibility are wasted — players need to see the bar fill or the rare-drop guarantee shifts no behavior.
  • Reroll cost should scale with offering value — flat reroll defeats the strategic-choice goal; players just spam reroll until they like the offering.
  • Synergy-aware offerings require knowing the player’s build state — if your shop doesn’t read inventory, synergy-tags are decorative.