Skip to main content

EdenEffects

Network-wide cosmetics that follow your players everywhere.

EdenEffects is a cosmetics plugin for Paper networks behind a Velocity proxy. Players unlock trails, hats, wings, pets, gadgets, and join, leave, and death effects through permissions, and whatever they choose follows them onto every backend server. Selections live in MySQL and each change is announced through the proxy, so a pet picked on the hub is waiting for them when they join survival.

A player wearing a trail, wings, a halo and a pet

How it works​

  1. Every Paper backend runs the EdenEffects plugin, and all of them share one MySQL database.
  2. The proxy runs the small EdenEffects Velocity plugin, which passes change notices between backends.
  3. A player opens /cosmetics and clicks a cosmetic. It goes on straight away.
  4. That backend writes the change to MySQL and tells the proxy. Every other backend re-reads the player from MySQL and puts the new look on them.
  5. Each backend decides for itself which cosmetic types it shows, and in which worlds.

Key features​

  • Eight cosmetic types - particle trails, hats, and wings, vanilla-mob pets, hotbar gadgets, and one-shot join, leave, and death effects.
  • Follows players across the network - one MySQL database is the source of truth, and the proxy keeps every backend current. See Network Sync & Storage.
  • Per-server and per-world toggles - turn pets off on a busy survival server or death effects off in an arena. The player's selection is kept and comes back on a server that allows it.
  • Almost every mob as a pet - the pet list is built from the server's own entity types, so new mobs appear without an update. Pets walk around terrain, can be renamed, resized, and made to glow, and never take damage, push players, change blocks, or do anything their mob normally would.
  • Presets - save a whole look under a name and swap it back on from any server.
  • Safe gadgets - cooldowns, a movement toggle for servers where launching players is a problem, and any block a gadget changes is put back automatically.
  • LuckPerms-friendly unlocks - every cosmetic has its own permission node, so ranks, supporter tiers, and temporary event rewards all work the same way.
  • Vanish and spectator aware - a vanished or spectating player shows nothing, so a cosmetic never gives away where staff are.
  • Built for performance - one async render loop draws every worn cosmetic, culled by world and distance, and one-shot effects cost nothing until they fire.

Status​

In development

EdenEffects is under active development and was built for the Crafting For Christ network. A few things to know before deploying it:

  • There is no reload command. Changes to config.yml take effect after a server restart.
  • The cosmetic list is fixed in code, apart from pets, which are read from the server's entity types. The stock trails, hats, wings, gadgets, and effects are listed in Cosmetics.
  • edeneffects.use is declared but not checked. Every player can open the menu whatever that node is set to. Control what they can wear with the per-cosmetic nodes instead. See Permissions.
  • It needs MySQL. There is no SQLite or flat-file storage, and syncing between servers needs the Velocity relay plugin.

Where to go next​

EdenEffects is built on StoneLib, which provides its MySQL layer, message bus, render loop, menus, and dialogs.