Examples

Start with code that looks like your plugin.

Focused patterns adapted from the example modules in the Quantum source tree.

QuantumGUI

Define a locked, typed menu and open it for a player.

A fast, cross-version inventory interface framework.

Open product guide
QuantumGUIExample.javajava
Menu shop = QuantumGUI.menu()    .key("credits-shop")    .title("<gradient:#8B5CF6:#22D3EE>Credits Shop</gradient>")    .rows(6)    .policy(MenuPolicy.locked())    .item(22, GuiItem.builder()        .material(MaterialKey.of("EMERALD"))        .name("<green>Your Credits")        .onClick(context -> context.open("credit-packages"))        .build())    .build();shop.open(player);

QuantumCommandAPI

Compose typed arguments and permissions into a clean command tree.

A strongly typed command framework with arguments, suggestions, permissions, and clean command trees.

Open product guide
QuantumCommandAPIExample.javajava
commands.command("quantum")    .description("Quantum administration")    .permission("quantum.admin")    .literal("gui")        .literal("open")            .argument("player", BukkitArguments.player())            .argument("menu", Arguments.word())            .executes(context -> {                Player target = context.get("player");                String menu = context.get("menu");                return CommandResult.success("Opened " + menu);            })        .end()    .end()    .register();

QuantumConfig

Load a typed model and reload without exposing partial state.

A type-safe configuration framework with validation, migrations, comments, and safe reloads.

Open product guide
QuantumConfigExample.javajava
try (ConfigManager manager = QuantumConfig.builder()    .directory(Path.of("config"))    .format(ConfigFormat.YAML)    .build()) {    ConfigHandle<PluginSettings> handle =        manager.load(PluginSettings.class);    PluginSettings settings = handle.value();    handle.reloadAsync();}

QuantumScheduler

Do background work, then return safely to the player context.

A unified scheduler API for Spigot, Paper, Purpur, and Folia.

Open product guide
QuantumSchedulerExample.javajava
QuantumScheduler.async()    .supply(() -> profileStore.load(player.getUniqueId()))    .thenOnEntity(player, profile -> {        player.sendMessage("Welcome, " + profile.name());    })    .exceptionally(error -> {        logger.log(Level.SEVERE, "Profile load failed", error);        return null;    });

Runnable examples live with the source

Browse the QuantumMCDevelopment organization on GitHub.

View source on GitHub

Build your next plugin foundation

Build better. Build Quantum.

Start with one focused library, then compose the ecosystem as your plugin grows.