Docs/Game Server Plugin/Plugin Installation

Plugin Installation

Install the Storra plugin on your Minecraft server so deliverables fire automatically.

The Storra plugin is the bridge between your Minecraft server and Storra's delivery queue. When a customer pays for a package, Storra queues any game-command deliverables; the plugin pulls them and runs them on your server within a few seconds.

Why a plugin (and not RCON)?The plugin polls outbound to Storra over HTTPS. That means it works behind any firewall, on any host, with zero inbound network configuration. RCON requires opening a TCP port on the public internet — fine for testing, but not the production-grade option.

Requirements

  • Minecraft Java Edition server: Spigot, Paper, or Purpur (Bukkit derivatives). Forge / Fabric are not currently supported as first-party.
  • Server version 1.16+ (1.20.x is recommended).
  • Java 17 or newer (Java 21 is fine).
  • Outbound HTTPS (port 443) to storra.xyz — most hosts allow this by default. If your firewall is restrictive, allowlist *.storra.xyz.
Bedrock + GeyserBedrock players can use a Geyser-based proxy in front of a Java server. Storra's plugin runs on the Java server behind Geyser — no special config needed; usernames are handled correctly via Geyser's UUID translation.

Step 1 — Register your server in Storra

  1. In Storra, go to Game Servers.
  2. Click Add server.
  3. Give it a name (e.g. "Survival", "Creative", "Skyblock"). This is just a label for you.
  4. Click Create. Storra generates a Server ID (UUID) and a Pairing secret (long random token).
  5. Copy both values. The pairing secret is shown once — if you lose it, regenerate from the server card.

Step 2 — Download the plugin JAR

On the new server card in Storra, click Download plugin. The JAR file is named Storra-x.y.z.jar (with the current version embedded). Save it to your computer.

Step 3 — Install on your Minecraft server

  1. Stop your Minecraft server (or be ready to restart it; live install via /reload works but is brittle, not recommended).
  2. Upload the JAR into your server's plugins/ directory. If you use a panel like Pterodactyl, use the file manager. If you SSH in, use scp.
  3. Start (or restart) the server. Watch the console — you should see [Storra] Plugin enabled v<version>.
  4. The plugin generates plugins/Storra/config.yml on first boot. Open that file.

Step 4 — Configure config.yml

The default config.yml looks like this:

server-id: ""
pairing-secret: ""
poll-interval-seconds: 30
debug: false

Paste in your Server ID and Pairing secret from step 1. Save the file.

Step 5 — Connect

From the server console, run:

/storra reload

The plugin re-reads config.yml, connects to Storra, and registers itself. Within ~10 seconds, your dashboard's Game Servers page flips the card to Online with live heartbeat info (player count, TPS, plugin version).

Step 6 — Run a test order

Create a $0.50 test package with a simple game command deliverable like:

say Hello {{ username }}, your test order worked!

Open Test Checkout, complete the order using a Stripe test card (4242 4242 4242 4242), and watch your server console. You should see the say command fire within a few seconds. If it does, you're done.

Updating the plugin

The plugin sends its version on every heartbeat. When a newer release ships, the dashboard's server card shows an upgrade banner.

  1. Click Download latest in the upgrade banner.
  2. Replace the old JAR in plugins/ with the new one.
  3. Restart the server (or run /storra reload for a hot-swap).

Configuration in config.yml is preserved across updates.

Running multiple servers

If you operate multiple Minecraft servers (Survival + Creative + Skyblock), add a separate Game Server entry for each. Each gets its own server ID and pairing secret. Then on each Minecraft instance, install the same plugin JAR but with that server's credentials in config.yml.

When you create a package, the deliverable can target:

  • One specific server (e.g. "Survival only")
  • Multiple servers (e.g. "All survival modes")
  • "Any server the customer is on" — Storra fires on whichever server detects the player's session first

BungeeCord and Velocity

If you run a proxy network, install the plugin on each backend server (not the proxy). Commands need to run on the actual game server, not the proxy. The proxy's job is routing — it doesn't run commands like give.

One exception: if you use luckperms with database synchronization, you can install the plugin on a single backend server and rank commands will still propagate network-wide via LuckPerms's sync. But item-grant commands need to run on the player's current server.

Troubleshooting

Card shows "Offline" after install

Check, in order:

  • Server console: did [Storra] Plugin enabled appear?
  • Server console: any [Storra] Connection error messages? (Look for "401 Unauthorized" — pairing secret mismatch — or "ConnectException" — outbound HTTPS blocked.)
  • config.yml values: did you paste the Server ID and Pairing secret from the same server card?
  • Outbound HTTPS to storra.xyz: try curl https://storra.xyz from your server's shell.

"Plugin won't start, NoClassDefFoundError"

Java version too old. Run java -version on your server host — if it's below 17, upgrade. On Pterodactyl, change the Docker image to a Java 17+ variant in your egg config.

"Commands fire on console, not on the player"

Game commands always run as the server console, with the player's username substituted. If your plugin requires the command to run as the player, prefix it with execute as <player> run ... or use the plugin's "console alias" feature.

"Pairing secret leaked / I want to rotate"

On the server card in Storra, click the kebab menu → Regenerate pairing secret. The old one is invalidated immediately. Update config.yml and run /storra reload.

FAQ

Does the plugin keep a connection open or poll?

Both. By default it opens a Server-Sent Events stream so it gets push-notified when new commands are queued. As a fallback (and for older networks that block long-lived HTTP connections), it also polls every 30 seconds.

Does the plugin send any data Storra doesn't need?

The heartbeat includes player count, TPS, plugin version, and free memory — used for the dashboard's server-health indicator. No chat, no IPs, no player names beyond what's needed for command delivery. See Privacy Policy for full details.

What happens if Storra is down?

Pending commands queue on Storra's side. Once Storra is back, the plugin picks up the backlog on the next heartbeat. Customers don't lose their items — they just wait until Storra is reachable.

Can I write my own integration without using the plugin?

Yes — see Plugin API reference for the underlying HTTP endpoints. The plugin is open source, so you can also fork it.

Was this page helpful?Suggest an edit →

Updated recently