How delivery works
How a paid order becomes commands on your server, how players who are offline are handled, retries, timing and the order statuses.
When a player pays, the commands of what they bought have to run on your server. This page explains the path from payment to the game, so you know what to expect and what the statuses on an order mean.
From payment to the game
- The player pays on your store through Stripe.
- Once Stripe confirms the payment, the order turns Paid and every command is put in a queue as a delivery.
- The plugin on your server asks for new deliveries every 10 seconds.
- It runs each command in the server console, in the order you set them, and reports the result straight away.
- When every delivery has run, the order turns Delivered.
The platform never connects to your server. The plugin asks, so it works behind any firewall, and nothing gets lost when your server is down. Deliveries wait in the queue until the server asks again.
What a delivery is
A delivery is one command, filled in for one order line, for one server.
- The placeholders, like
{player}and{quantity}, are filled in at the moment of payment. If you change a product later, orders that are already paid keep the command as it was. See Commands. - A command runs once per order line. If a player buys 3 keys,
{quantity}is 3 and the command runs once, not three times. - A command for All servers becomes one delivery for each active server. See Multiple servers.
On the order page, under In the game, you see each delivery with its command, the product, the server and its status.
Players who are offline
Some commands only work when the player is in the game, like giving items. Tick Wait until the player is online on those commands in the product form. Commands like a LuckPerms rank work while the player is offline, so leave it off there.
How it works:
- A delivery that does not wait runs as soon as the plugin asks.
- A delivery that waits is only handed to the plugin when the player is on that server. The plugin reports who is online when someone joins or leaves, and every minute.
- If a server stops reporting, its list of online players expires after 3 minutes. A delivery then never goes to a server that crashed.
- If the player leaves just before the command runs, the delivery goes back in the queue and is tried again a minute later. This does not count as a failed try.
The player sees on their order page that some items need them online, and that they arrive within a minute after they join.
When a command fails
A command fails when the server does not accept it, for example an unknown command or wrong usage, or when it does not run within 30 seconds. The plugin reports the reason.
A failed delivery is tried again, waiting longer each time: after 1, 2, 4 and 8 minutes. After 5 failed tries it stays Failed and you see it on the order with what the server said. Fix the cause and click Try again. See When a purchase does not arrive.
If the plugin crashes or loses its connection after it took a delivery but before it reported back, the delivery goes back in the queue after 10 minutes. In that rare case a command can run twice. We chose this over the other risk: a command that never runs for a player who paid.
Delivery statuses
Each delivery on the order page has one of these statuses:
| Status | What it means |
|---|---|
| Queued | Waiting for the plugin, or for the next try |
| Running | The plugin took it and is running it |
| Delivered | The command ran |
| Failed | It failed 5 times and stopped trying |
| Cancelled | The order was refunded before it ran |
Order statuses
The order status follows from its deliveries:
| Order status | When |
|---|---|
| Paid | Deliveries are still open, or the order has no commands |
| Delivered | Every delivery ran |
| Partially delivered | Some ran, the rest failed for good |
| Failed | Every delivery failed for good |
A refunded order stays Refunded. A refund cancels the deliveries that have not run yet. See Refunds and chargebacks.
When an order turns Partially delivered or Failed, you get a mail with what the server said. You can turn this mail off under Notifications in your account, at An order did not arrive in the game. You can also get an alert in a Discord channel, see Discord.
Timing
With a connected server and a player who does not need to be online, a purchase arrives within seconds of payment. The plugin asks every 10 seconds, and asks again right away when there was more to do.
Things that add time:
- The player needs to be online and is not.
- The server is offline. Deliveries wait until it comes back.
- The server is disabled on the Servers page. It gets no deliveries until you enable it again.
- The plugin cannot reach the platform. It waits longer each time, from 5 seconds up to 5 minutes, and carries on by itself. A result it could not send goes first once the connection is back.
Taking your store offline does not stop delivery. Orders that were already paid still arrive.
Still stuck? Mail us at hello@minecraftstore.io and a person answers.