Skip to content

BungeeCord Plugins

OPaperStream edited this page Oct 6, 2026 · 1 revision

BungeeCord Plugins

BungeeCord and Waterfall plugins run on the original BungeeCord API, implemented on top of Velocity. They sit in the same plugins/ folder as Velocity plugins.

What works

  • Loading through BungeeCord's own plugin manager: dependencies, libraries in bungee.yml, lifecycle
  • Players, servers, commands with tab completion, permissions (LuckPerms-Bungee works)
  • Titles, action bars, tab list header and footer, cookies, server links
  • Scheduler, YAML and JSON config
  • Login, ping, connect, kick, chat, command, plugin message and settings events, including async intents
  • getServers().put(...) registers servers like on BungeeCord
  • unsafe().sendPacket: scoreboards, teams, tab list entries and boss bars are encoded for the player's version (clients up to 1.21.7, the newest version the BungeeCord protocol classes know)

The layer runs in its own class loader and only starts when a BungeeCord plugin is present. Velocity plugins never see BungeeCord classes.

What does not work

  • Plugins that hook into the Netty pipeline or read packets
  • Reading the backend's scoreboard through getScoreboard()
  • Dialogs

Such calls log a clear message naming the plugin.

Checking plugins

The Plugin Checker scans your jars in the browser (nothing is uploaded) and tells you which plugins will work.

Clone this wiki locally