A modular feature framework and reusable API for your Paper server.
- Place
ServerFeatures.jarin your Paperplugins/directory. - Install optional dependencies required by the features you plan to run.
- Start the server once to generate runtime config files.
- Enable the features you want in
plugins/ServerFeatures/config.yml. - Use
/serverfeatures listand/serverfeatures info <feature>to verify state.
- Java 25
- Paper
26.2.build.65-beta - Feature-dependent optional plugins:
DataRegistry1.12.0DataProvider3.1.0packeteventsPlaceholderAPI- other integrations (for example Vault, LuckPerms, WorldGuard) only when using related features
Add GitHub Packages credentials for Maven server id github in ~/.m2/settings.xml:
<settings>
<servers>
<server>
<id>github</id>
<username>YOUR_GITHUB_USERNAME</username>
<password>YOUR_TOKEN</password>
</server>
</servers>
</settings>Use a token with read:packages (and repo if package source repositories are private), then run:
./mvnw -B -ntp verifyOutput jar: serverfeatures-platform-paper/target/ServerFeatures.jar
Run the real Paper acceptance gate (Docker required) with:
./mvnw -B -ntp -Pplatform-acceptance verifyIt boots the packaged ServerFeatures jar with DataProvider and DataRegistry, verifies their public runtime integration,
and requires a clean shutdown. Set PLATFORM_ACCEPTANCE_KEEP_WORK_DIRECTORY=true to retain logs.
serverfeatures-api: reusable feature, command, configuration, UI, and utility contracts.proxyfeatures-contracts: shared persistence and Redis wire schemas consumed withprovidedscope.serverfeatures: the installable Paper plugin; its jar keeps the historicalServerFeatures.jarname.
The testkit is reactor-internal and is not part of the supported production API. Maven consumers should use the API
artifact with provided scope when ServerFeatures supplies it at runtime.
<dependency>
<groupId>nl.hauntedmc.serverfeatures</groupId>
<artifactId>serverfeatures-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>serverfeatures-api: public contracts and reusable Paper-facing components.serverfeatures-testkit: common test infrastructure.serverfeatures-platform-paper: lifecycle framework, concrete features, and distributable jar.serverfeatures-platform-acceptance: API-only consumer and real Paper boot gate.