Subscriptions
Subscriptions let you sell packages with recurring payments. They automatically renew and deliver commands on a regular schedule. They’re ideal for ongoing perks like VIP ranks, monthly kits, or recurring currency drops.
Billing and renewals are handled by your connected payment provider (Stripe or PayPal).
Setting Up a Subscription Package
Create a package as usual from Products in your dashboard. In the pricing section, choose Subscription instead of one time purchase, then configure:
- Interval and Interval count: how often the customer is billed. Pick an interval (Daily, Weekly, Monthly, or Yearly) plus a number. For example, Monthly + 3 = billed every 3 months (quarterly); Monthly + 6 = every 6 months; Yearly + 1 = annual.
- Price: the amount charged each billing cycle
- Trial period (optional): number of days before the first charge. During the trial, delivery commands execute immediately but payment is deferred. If the customer cancels during the trial, no charge is made.
- Allow subscribers to change their server (optional): shown when Allow users to select server is also on. When enabled, subscribers can switch which server their subscription renews commands to from their purchase history page. See Changing the Renewal Server below.
A package’s pricing model (one time vs. subscription) cannot be changed after customers have purchased it. Create a new package if you need to switch models.
Subscription Lifecycle
| Stage | What happens |
|---|---|
| Active | The subscription is running. Payments are collected on schedule. |
| Renewal | At the end of each billing cycle, the payment provider charges the customer. On success, delivery commands execute again. |
| Past Due | A renewal payment failed. The payment provider will retry according to its retry schedule. |
| Cancelled | Cancellation requested. The subscription stays active until the end of the current paid period, then expires. |
| Expired | The subscription has ended. No further payments or command deliveries occur. |
Subscription Commands
Delivery commands execute twice: on the initial purchase and on each successful renewal. This means your commands need to be safe to run repeatedly.
Think about what “repeated execution” means for each command:
- Idempotent commands are safe. Running
lp user {player} parent set vipevery month just reapplies the same rank. Same for permission grants, rank assignments, and similar commands that set state. - Additive commands run every cycle. Running
give {player} diamond 32on each renewal gives 32 diamonds every billing cycle. This is often intentional for “monthly kit” packages, but make sure it matches what you’re selling. - Currency grants are additive too.
eco give {player} 1000adds 1000 each renewal. Great for a monthly allowance, but be aware it accumulates.
A typical monthly VIP subscription might combine both types:
lp user {player} parent set vip
give {player} diamond 32
eco give {player} 1000Make sure your commands match your intent. Idempotent commands (like setting a rank) are safe to repeat. Additive commands (like giving items or currency) will stack on every renewal.
Customer Self Service
Customers can manage their subscriptions through the Purchase History page on your storefront (or the cross-store My Account page at fluxstore.net/account). From there they can view active subscriptions and renewal dates, cancel, resume a cancelled subscription, and change the renewal server if you’ve enabled that.
Cancelling
When a customer clicks Cancel, they’re shown a confirmation dialog explaining that the subscription will stay active until the current billing period ends and no refund is issued. On confirm:
- Stripe subscriptions are set to cancel at period end. The customer can resume any time before the period ends (see below).
- PayPal subscriptions are cancelled immediately at the provider. The customer keeps access until the current period ends, but the cancel cannot be undone; they would need to subscribe again.
Customers are not charged again after cancelling. Their perks remain active until the end of the already paid billing period.
Resuming a Cancelled Subscription
If a Stripe subscription is scheduled to cancel at period end and the period hasn’t passed yet, the customer sees a Resume button on their Purchase History page. Clicking it removes the scheduled cancellation and renewals continue as normal.
Resume isn’t available for PayPal subscriptions because PayPal has no “cancel at period end” equivalent. The provider-side subscription is cancelled as soon as the customer clicks Cancel, and PayPal won’t reactivate it.
Changing the Renewal Server
When a package has Allow subscribers to change their server enabled, the subscription row on Purchase History shows a Change server button. The customer picks from the servers the package allows; future renewal commands targeting the customer-selected server run on the new one.
The current server is also shown on the subscription row for clarity.
Managing Subscriptions from the Dashboard
From Orders > Subscriptions in your dashboard, filter by subscription orders to see active, cancelled, and expired subscriptions. Click any subscription to view its full history, including renewal payments and command delivery logs. You can:
- Cancel a subscription on behalf of a customer.
- Open the Next Renewal tab to preview the commands that will execute next, including per-command server assignments.
- Change the renewal server from the Next Renewal tab. This works regardless of the package’s customer-facing Allow subscribers to change their server toggle, so admins can move any customer between allowed servers.
Next Steps
- Packages: learn about package configuration, commands, and variables
- Managing Orders: view order history and manage command deliveries