Skip to main content

ProtocolLib

Packet-level library that allows plugins to read and modify network packets. Required by many plugins for advanced features.

by dmulloy2Admin

Dependencies

No dependencies required.

What is ProtocolLib?

ProtocolLib is a developer library that gives other plugins controlled access to Minecraft's network packets — letting them read, modify, cancel and send packets that the normal Bukkit API does not expose. This is what powers effects like fake blocks and entities, custom GUIs, glowing players, per-player block changes and many anti-cheat checks. It carries almost nothing player-facing; its value is entirely as a dependency. If a plugin's description says it needs ProtocolLib, it is using packet-level features that cannot be done with the standard API alone.

Who it's for: Installed as a dependency, not chosen for itself. Required by a wide range of cosmetic, anti-cheat, GUI and effect plugins that operate below the standard API. It is built and maintained by dmulloy2 and sits in the admin category.

Key features of ProtocolLib

  • Packet interception
  • Packet modification
  • Packet sending
  • Async packet listeners
  • Struct wrappers
  • Plugin dependency

How to install ProtocolLib

ProtocolLib runs on Bukkit, Spigot or Paper servers. dmulloy2 maintains ProtocolLib for current Spigot/Paper versions, updating it after each Minecraft release because packet structures change between versions and dependent plugins rely on it tracking them.

  1. 1Stop your server, or have it ready to restart. Always back up your world and plugins folder before adding a new plugin.
  2. 2Download ProtocolLib.jar (a build matching your server version) and place it in your server's /plugins folder.
  3. 3ProtocolLib has no required dependencies, so it runs on its own once the jar is in place.
  4. 4Start the server fully. ProtocolLib generates its configuration files on first launch — stop the server, edit them to taste, then start again.
  5. 5Confirm it loaded by checking the console for ProtocolLib on startup, or by running one of its commands in-game.

Note: Drop ProtocolLib.jar into /plugins and restart — there is nothing to configure for normal use. Keep it updated promptly when you update your server version, because plugins that depend on it will fail if ProtocolLib is older than the Minecraft version's packet format.

ProtocolLib commands and permissions

Main commands

/protocol
Shows ProtocolLib status and version; mainly used to confirm it loaded and matches the server version.

Permission nodes

protocol.admin
Grants ProtocolLib's diagnostic commands; not needed by normal players.

ProtocolLib FAQ

What is ProtocolLib for?

It lets other plugins manipulate network packets — reading, editing, cancelling and sending them — which the standard Bukkit API does not allow. Features like fake entities, per-player block changes, custom GUIs and many anti-cheat checks need this packet access, so those plugins depend on ProtocolLib.

Do I configure ProtocolLib?

No. For typical use it has no meaningful configuration and no player commands beyond a status check. You install it because another plugin requires it, and it works silently in the background providing packet access to those plugins.

Why did a plugin stop working after a server update?

If that plugin depends on ProtocolLib, an outdated ProtocolLib is the likely cause. Packet formats change between Minecraft versions, so ProtocolLib must be updated to match your new server version before the dependent plugins function again. Update ProtocolLib first.

Is ProtocolLib safe to run?

Yes — it is one of the most widely used and long-maintained libraries in the ecosystem. It only does what the plugins using it ask. As with any low-level library, keep it current with your server version so dependent plugins behave correctly.

Can I remove ProtocolLib?

Only if nothing depends on it. Check your other plugins' requirements first — removing ProtocolLib while a plugin needs it will break that plugin or stop it loading. If no installed plugin lists it as a dependency, it is safe to remove.

Features

  • Packet interception
  • Packet modification
  • Packet sending
  • Async packet listeners
  • Struct wrappers
  • Plugin dependency

Commands

/protocol/packet

Permissions

protocol.admin

Tags

librarypacketsapinetworkdependency