Skip to content

Purpur

Purpur Image

MIT License  Github Actions Build CodeFactor  Join us on Discord 

Purpur's Stargazers  Purpur Forks  Purpur Watchers 

Welcome to the official documentation source for the Purpur project.

This documentation is current to Build #2202 (be47af0)

Purpur is a drop-in replacement for Paper servers that's designed for configurability, and new fun and exciting gameplay features.

Contact Discord shield.io🔗

Join us on Discord!

Downloads🔗

You can download Purpur from the downloads page or the downloads API.

Downloads API endpoints:

  • List versions of Minecraft with builds available:
    https://api.purpurmc.org/v2/purpur/
  • List builds for a version of Minecraft:
    https://api.purpurmc.org/v2/purpur/<version>
  • Download a specific build of a specific version:
    https://api.purpurmc.org/v2/purpur/<version>/<build>/download
  • Download the latest build for a version of Minecraft:
    https://api.purpurmc.org/v2/purpur/<version>/latest/download

License MIT License🔗

This project licenses all patches under the MIT license, unless the patch headers note otherwise.

See PaperMC/Paper for the license of material this project uses.

bStats🔗

API🔗

Javadoc🔗

You can find the Javadocs for Purpur at: https://purpurmc.org/javadoc

Dependency Information🔗

1
2
3
4
5
6
7
8
9
<repositories>
    <!-- other repos... -->
    <repository>
        <id>purpur</id>
        <name>Purpur Maven Repo</name>
        <url>https://repo.purpurmc.org/snapshots</url>
    </repository>
    <!-- other repos... -->
</repositories>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<dependencies>
    <!-- other dependencies -->
    <dependency>
        <groupId>org.purpurmc.purpur</groupId>
        <artifactId>purpur-api</artifactId>
        <version>1.20.6-R0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <!-- other dependencies -->
</dependencies>

1
2
3
4
5
6
7
8
repositories {
    //... other repos ...//

    //Add this somewhere after mavenCentral()
    maven("https://repo.purpurmc.org/snapshots")

    //... other repos ...//
}
1
2
3
4
5
6
7
dependencies {
    //... other dependencies ...//

    compileOnly("org.purpurmc.purpur", "purpur-api", "1.20.6-R0.1-SNAPSHOT")

    //... other dependencies ...//
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
repositories {
    //... other repos ...//

    //Add this somewhere after mavenCentral()
    maven {
        url "https://repo.purpurmc.org/snapshots"
    }

    //... other repos ...//
}
1
2
3
4
5
6
7
dependencies {
    //... other dependencies ...//

    compileOnly "org.purpurmc.purpur:purpur-api:1.20.6-R0.1-SNAPSHOT"

    //... other dependencies ...///
}

Importing Purpur into your project also includes all APIs provided by Pufferfish, Paper, Spigot, and Bukkit.

Building and setting up🔗

Initial setup🔗

Run the following command in the root of the project directory:

1
./gradlew applyPatches

Creating a patch🔗

Patches are effectively just commits in either Purpur-API or Purpur-Server. To create one, just add a commit to either repo and run ./gradlew rebuildPatches, and Gradle will place a patch in the patches folder. Modifying commits will also modify their corresponding patch file(s).

See CONTRIBUTING.md for more detailed information.

Compiling🔗

Use the command ./gradlew build to build the api and server. Gradle will place compiled jars under Purpur-API/build/libs and Purpur-Server/build/libs.

To get a purpurclip jar, run ./gradlew paperclip. To install the purpur-api and purpur dependencies to your local maven repo, run ./gradlew publishToMavenLocal