Potions — Purchase-Triggered XP Buffs
Potions are real drinks (Liquid Death, coffee, etc.) sold at the register that grant short-duration XP buffs. Buy a drink, get a 15–30 minute XP multiplier. Simple, thematic, fun.
Concept
The buff system already exists — BuffDefinitions, ActiveBuffs, multiplicative stacking, timer refresh on re-tap. But buffs currently only trigger from check-ins (NFC, phone, QR). Potions add a purchase trigger: buy a specific item at POS → buff activates automatically.
Flow
Member buys Liquid Death at POS
→ Square webhook (payment.updated) fires
→ existing handler: creates purchase, awards points
→ NEW: check line items against potion-linked buff definitions
→ if match: activate buff on member (15-30 min, 2x XP)
What to Build
-
New field on BuffDefinitions:
squareCatalogItemIds— links a buff to specific Square catalog items. When present, the buff triggers on purchase of those items instead of on check-in. -
New trigger method: Add
purchaseto the trigger methods enum so it’s distinct from check-in-triggered buffs. -
Potion activation in Square webhook handler: After creating the purchase record, scan line items → match against any buff definitions with matching catalog item IDs → call
activateBuff()for each match. -
Seed a test potion: e.g. “Liquid Death” → 2x XP, 15 minutes.
Open Design Questions
- Stacking (same potion): If someone buys 2 Liquid Deaths in one transaction — refresh timer (current re-tap behavior) or extend duration (15 + 15 = 30 min)?
- Stacking (different potions): Buy a Liquid Death AND a coffee — multiplicative (2x × 2x = 4x, current buff behavior) or capped? 4x for 15 min is wild but maybe that’s fine.
- No member linked: If the Square customer isn’t linked to a guild member, skip silently.
- Duration vs quantity: One fixed duration per buff definition (already how it works), or should buying 2 = longer buff?
Guild Buffs — Social Currency Mechanic
A separate but related system: purchasable buffs that a member buys to benefit their party or the whole guild. The buyer pays real money; everyone else benefits. The purchase is attributed publicly in the guild activity feed.
The psychology is gift economy, not transaction. The buyer gets social status (visible generosity) and the guild gets a tangible benefit — same reason people buy rounds at bars. Cost is individual, goodwill is public. Maps directly to FFXIV’s Free Company Actions. See fictional-guild-references.
Party buffs
Small group (3–5 friends), stronger effect. A member buys a buff that gives their party double XP on purchases for 24 hours. Incentivizes forming parties, which means coordinating visits, which means foot traffic in groups rather than alone.
Guild-wide buffs
Weaker effect, broader reach. Someone drops a guild buff and every member gets 10% bonus XP for a week. The activity feed shows: “PlayerName activated Scholar’s Focus for the guild.” Public flex, real money, benefits everyone.
Stacking
If two members buy the same buff in the same window, it stacks or extends duration. Emergent cooperative spending.
Design constraint
If buffs are too strong or too frequent, they become expected rather than generous — the social status evaporates. Keep them occasional and visible. Scarcity is what makes the gesture meaningful.
Monetization note
Premium revenue via guild buffs doesn’t require a paywall tier. It comes from in-game actions that reinforce the fiction rather than breaking it.
Open questions
- Are party buffs a separate product from individual potions, or the same buff system with a different scope?
- How does party formation work? Discord party channels? In-portal party creation?
- Is a guild-wide buff purchased with real money (Stripe) or with accumulated points?
- At what point does stacking cap to prevent buff inflation?