Minecraft SkyBlock server · Store

Aetheria

A Java port of a Bedrock Minecraft server, starting with SkyBlock, with a companion store and a staff panel that share one database.

Status
In development

Version 0.9.0. The port has not been play-tested yet, and the server is not confirmed to be online. Prices in the store are placeholders.

Role
Sole developer: Paper plugin, network setup, store, staff panel, tooling
Platforms
Minecraft Java & Bedrock · Web
Year
2026
  • 45,926lines of Java
  • 423test methods
  • 71 / 71enchantments matching legacy
  • 288crate prizes
01

The objective

The original server ran on Bedrock (PocketMine-MP, PHP). The goal is to rebuild it on Java (Paper) without inventing behaviour: the legacy PHP is the specification, and where a question comes up the answer is read from it.

Alongside the game, the project needs a store players can trust and a staff panel. Both read the same data, without either one being able to corrupt game state.

02

What it does

  1. 01

    SkyBlock first

    Islands, crates, 71 custom enchantments, pets that follow you in the world, 138 commands and 68 GUI screens. Prison, PvP and Lobby are not started.

  2. 02

    Java and Bedrock players together

    A Velocity proxy fronts a hub and an island server. Geyser and Floodgate inside the proxy let Bedrock clients join the same network.

  3. 03

    Catalogues generated, not typed

    Crate prizes, enchantments and pets are extracted from the legacy source by tools, and the plugin refreshes them when the shipped copy changes. The enchantment audit reports 71 of 71 matching legacy.

  4. 04

    A store that cannot touch the game

    Checkout only writes a grant row. The plugin's poller is the one thing that turns it into a rank or keys, about every 30 seconds. The store's database user cannot read or alter grants at all.

  5. 05

    Gifts and claim codes

    A cart can hold several products, each delivered to yourself, gifted to another player, or turned into a code anyone can redeem. Warden is a monthly subscription and checks out alone.

  6. 06

    Identity in two steps

    Discord sign-in says who you are on Discord; a one-time code typed in game proves which Minecraft account is yours. Store customers and staff live in separate tables.

03 · Interactive

One network, one source of truth

Select a part of the system to see what it owns. The arrows follow the data paths described in the project's documentation.

Selected

Aetheria store

Carts, gifts and claim codes. It can insert a grant row and nothing more. Its database user cannot read, change or mark grants as applied.

The rank ladder · store artwork

  1. Endermite
  2. Enderman
  3. Blaze
  4. Ghast
  5. Wither
  6. Enderdragon
  7. Warden · monthly
04

How it's built

Two backends share one MariaDB database. Documents now merge on write: each save applies only the keys that server changed since its own last write, inside a transaction holding the row. A rank granted on the hub is no longer erased when the island server shuts down.

Docs that state numbers are generated by tools in the repository rather than typed, because a hand-written status page goes stale. The counts on this page come from that generated report.

The store is Next.js with Stripe Checkout and the billing portal; it never handles card numbers. Every grant carries an external reference, so a retried webhook cannot pay out twice.

The staff panel signs in with the same two-step proof, reads permission tiers live from the game's staff hierarchy, and fails closed: until every secret is configured, pages show setup steps instead of data.

Verified technologies

  • Java
  • Paper
  • Velocity
  • Geyser & Floodgate
  • MariaDB
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Stripe
  • Framer Motion
  • Python tooling
05

Worth knowing

  • No server address is listed: the source contains two different addresses and neither is confirmed.
  • None of the port has been play-tested yet. Counts describe what is written, not what is proven to work.
  • The source repository is private, so there is no public link.