Work in progressPapyrus is under active development — expect breaking changes, incomplete features, and limited production support.
Skip to content

API Overview

Papyrus exposes the same plugin API as Paper. Maven coordinates remain io.papermc.paper for compatibility — only the display brand and server jar naming differ.

Maven dependency

kotlin
repositories {
    maven("https://repo.papermc.io/repository/maven-public/")
}

dependencies {
    compileOnly("io.papermc.paper:paper-api:26.1.2-R0.1-SNAPSHOT")
}

java {
    toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}

Check apiVersion in the Papyrus gradle.properties for the current API version string to use in paper-plugin.yml.

Papyrus does not publish its own Maven repository — use Paper's repo.papermc.io. The API matches Paper's published paper-api artifact.

Javadoc

The full API reference is identical to Paper's public API:

Papyrus ships the API in the papyrus-api module (published artifact: paper-api).

Key packages

PackageDescription
org.bukkitCore Bukkit API — events, blocks, entities, worlds
org.bukkit.pluginPlugin loading, commands, permissions
io.papermc.paperPaper extensions — registry, datapacks, dialogs, configuration
com.destroystokyo.paperLegacy Paper API additions
co.aikar.timingsTiming/profiling utilities

See Packages for a detailed breakdown.

Compatibility notes

  • Plugins checking ServerBuildInfo.brandId() for papermc:paper still work via isBrandCompatible()
  • Use ServerBuildInfo.BRAND_PAPYRUS_ID for Papyrus-specific behavior
  • Papyrus reports brand ID sushimc:papyrus
  • Avoid hard-coded brand string checks when possible

Next steps

GPL/MIT · Papyrus by SushiMC