API Overview
Paper provides a comprehensive API for plugin development, combining the mature Bukkit API with extensive Paper-specific enhancements.API Documentation
The complete Paper API javadocs are available at: papermc.io/javadocs This includes both the Bukkit API and all Paper-specific additions.API Structure
Paper’s API consists of two main components:Bukkit API
The core Minecraft server API that Paper inherits and maintains
Paper API
Paper-specific enhancements, optimizations, and new features
Key API Components
Core APIs
Events
Event system for listening to and modifying game events
Entities
Entity management, customization, and AI control
World
World manipulation, chunk management, and environment control
Registry
Data-driven content and registry access
Additional APIs
- Adventure - Modern text components and chat API
- Commands - Command registration and execution
- Configuration - Plugin configuration management
- Permissions - Permission system integration
- Scheduler - Task scheduling and async operations
Maven Dependency
Add Paper API to your project:API Stability
The Paper API follows semantic versioning. The API version is specified in your
paper-plugin.yml file.Breaking Changes
Paper maintains API stability within major Minecraft versions. Breaking changes are:- Clearly documented in release notes
- Deprecated before removal when possible
- Only introduced in major version updates
Experimental APIs
Some Paper APIs are marked as experimental:Package Structure
Bukkit Packages
org.bukkit.*- Core Bukkit APIorg.bukkit.entity.*- Entity types and managementorg.bukkit.event.*- Event systemorg.bukkit.plugin.*- Plugin managementorg.bukkit.command.*- Command system
Paper Packages
io.papermc.paper.event.*- Paper-specific eventsio.papermc.paper.entity.*- Entity enhancementsio.papermc.paper.configuration.*- Configuration systemio.papermc.paper.registry.*- Registry accessio.papermc.paper.datapack.*- Datapack managementcom.destroystokyo.paper.*- Legacy Paper APIs
Adventure Packages
net.kyori.adventure.text.*- Text componentsnet.kyori.adventure.audience.*- Message recipientsnet.kyori.adventure.sound.*- Sound playback
Getting Started
- Add the dependency to your build configuration
- Create a plugin class extending
JavaPlugin - Create a paper-plugin.yml with plugin metadata
- Implement your features using the API
- Test with the test-plugin module or on a server
API Resources
Javadocs
Complete API reference documentation
Paper Forums
Community support and discussions
Discord
Real-time help and community
GitHub
Source code and issue tracking
Next Steps
Bukkit API
Learn about the core Bukkit API
Paper API
Explore Paper-specific features
Events
Work with the event system