Skip to content

Implementation of VIP Role & Divination Credits System #11

@dalbrechtmartin

Description

@dalbrechtmartin

💎 Sub-Issue: VIP Role & Divination Credits System

🎯 Purpose

Implement a system where users can:

  • Access VIP privileges via role assignment
  • Buy divination credits using real money to access tarot interpretations powered by OpenAI (without needing VIP)

🧾 Requirements

🎟️ VIP Role

  • Create a role VIP
  • Grant access to /tarot multi-card spreads with AI interpretation
  • Automatically check for this role in the command logic

💰 Divination Credits

  • Users can buy divination credits (1 credit = 1 AI reading) with real money
  • Credits are consumed only if the player does not have the VIP role
  • Show number of available credits in the user profile (/profile)

🧭 Implementation Steps

1. In-Game Logic

  • Add divination_credits field to player JSON
  • Check if user.is_vip or user.credits > 0 to allow AI readings
  • If using a credit, deduct 1 from the total and confirm via embed

2. Admin Commands

  • /addcredits @user <amount> – Add credits manually
  • /credits – Show your current divination credits

🛒 Payment Integration (Real Money)

💸 Supported Services

Stripe + Custom Webhook*

  • Host a simple payment form (with Discord login or ID)
  • After payment, Stripe sends a webhook
  • Bot listens to this webhook and credits the correct user automatically

🔐 Security

  • Require users to authenticate with Discord to link purchase to account
  • Prevent abuse by validating payments with secure webhooks or receipts

⚠️ Legal Notes

  • Inform users about refund policies and terms of use
  • May need to declare income from credit sales

✅ Tasks

  • Create and check VIP role logic in /tarot
  • Implement divination credit system (storage, usage)
  • Add admin and user commands for credits
  • Integrate basic payment logic with external platform (Ko-fi/Stripe)
  • Secure the connection between payment and user identity

Metadata

Metadata

Labels

13Between 6 - 9 days of work estimatedBacklogUser story to doenhancementNew feature or requestuser storyObjective to achieve

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions