The all-in-one essentials plugin for Paper & Folia 1.21+. Homes, warps, economy, chat, holograms, trade, auction house, moderation — and cross-server everything.
OreoEssentials is a custom, all-in-one server essentials plugin written in Java for Paper and Folia 1.21+. It replaces multiple standalone plugins (EssentialsX, economy plugins, hologram plugins, etc.) with a single, deeply integrated system built around a multi-server network architecture.
Every major feature — teleportation, homes, warps, economy, chat, holograms, inventory tools, moderation, and player syncing — is built in as a module. Features that need to work across multiple servers in a BungeeCord or Velocity network (teleports, messages, ender chests, trades, inventory sync) communicate via RabbitMQ and Redis automatically, with no extra configuration per feature.
Per-player homes with configurable limits, server warps, player-owned public warps, admin warp GUIs, and cross-server teleportation to any of them.
Vault-compatible economy with /pay, /balance, /baltop, paper cheques, and an admin money command. Supports multiple custom currencies alongside Vault.
Full GUI shop with per-player price modifiers, a network-wide Auction House, and a Market Orders system for buy/sell order books. All cross-server.
MiniMessage-formatted channels (global, local, trade, help, staff), cross-server private messages, per-player ignore lists, Discord webhook integration, and a full Afelius chat format system.
Teleports, private messages, ender chests, inventory sync, trades, and more all work transparently across every server in your BungeeCord / Velocity network via RabbitMQ packets.
Full hologram management using 1.21 Display entities. Text, item, and block holograms with MiniMessage + legacy colors, multi-line, FancyNPCs linking, and per-player visibility.
Virtual anvil, workbench, furnace, quick-cook, trash can, invsee/invlook, ecsee, tiered ender chests (3–6 rows), personal vaults, player inventory sync with per-category toggles.
Temporary/permanent bans, kicks, mutes, warnings, punishment history, freeze, vanish, god mode, player jails with cell management, and silent moderation flags. Discord notifications included.
Real-time player-to-player GUI trade with item and money exchange, cross-server support, leader election, and session management to prevent item duplication.
AFK detection, boss bar toggling, /sit, /top, /bottom, /near, /ping, /skin changes, temporary flight with timers, random teleport with tier-based radius, and more.
In-game settings GUI, runtime alias editor (no YAML needed), command toggle system, maintenance mode, clearlag controls, killall-radius with logging, custom recipe designer, and shard world management.
Kit system with cooldowns and a GUI, playtime milestone rewards, daily login rewards, and a website registration reward tied to the OreoStudios web panel.
Set time and weather per-world or globally, cuboid portals, jump pads, world teleportation, sharding for distributing worlds across servers, and Interactive Commands bound to blocks, entities, or signs.
A companion Spring Boot web panel (oreoessentials-web) with JWT auth, per-server MongoDB, player data sync via REST API, and Discord OAuth linking.
| Dependency | Type | Purpose |
|---|---|---|
| Paper 1.21+ | Required | Server software. Must be Paper (not Spigot or vanilla). Folia is also supported for multi-threaded regional servers. |
| Java 21+ | Required | Minimum Java version. The plugin uses Java 21 language features including records, sealed classes, and pattern matching. |
| RabbitMQ | Required (network) | Message broker for all cross-server communication — teleports, chat, packets, inventory sync. Only needed if running multiple servers. |
| Redis | Required (network) | Fast key-value store used for player directory, online state, and shared caches across servers. |
| MongoDB | Required (features) | Primary document database for economy, homes, warps, player data, auction house, and market orders. |
| Vault | Soft-depend | Economy API bridge. Required if you want /pay, /balance, /baltop, and shop pricing to work with a standard economy. |
| PlaceholderAPI | Soft-depend | Adds %oreoessentials_*% placeholders for use in other plugins (scoreboards, chat formatters, etc.). |
| LuckPerms | Recommended | Not a declared dependency, but strongly recommended for managing the plugin's permission system across your network. |
| PacketEvents | Soft-depend | Used for some packet-level features. Optional — the plugin degrades gracefully without it. |
| ItemsAdder / Nexo | Soft-depend | Custom item integration. If present, OreoEssentials can reference custom items from these plugins in shop configs, kits, etc. |
| SmartInvs | Soft-depend | GUI library used for some interactive inventory menus. Load order is managed automatically. |
| BungeeCord / Velocity | Network only | Required if you want cross-server teleportation and server switching (/oeserver). Plugin messaging channel is used in addition to RabbitMQ. |
| PostgreSQL | Web panel only | Used by the companion oreoessentials-web Spring Boot application for its own data. Not required by the Bukkit plugin itself. |
Drop OreoEssentials-4.7c-SNAPSHOT.jar into your server's plugins/ folder. Make sure you are running Paper 1.21+ with Java 21+.
If you want economy features, drop Vault (and a Vault economy provider like EssentialsX Economy or CMI) into plugins/. Add PlaceholderAPI for placeholder support.
Start your server. OreoEssentials will generate plugins/OreoEssentials/ with all default config files. Errors at this stage usually mean a missing Java version or incompatible server software.
Stop the server. Open plugins/OreoEssentials/config.yml and fill in your MongoDB URI, Redis host/port/password, and (if running a network) your RabbitMQ host/port/credentials. These are required for most features to work correctly.
Browse the generated sub-folders in plugins/OreoEssentials/. Each module (homes, shop, chat, etc.) has its own config file. Edit the ones relevant to your server. The defaults are sane starting points.
Use LuckPerms (recommended) to assign permission nodes to ranks. The oreo.* node grants all permissions and defaults to OP. See the Full Permissions Table for every individual node.
Once in-game, go to your desired spawn location and run /setspawn. Players will be sent here when they use /spawn or join for the first time.
After changing any config, run /oereload in-game (or from console) to apply changes without a full restart. A full restart is recommended after changing storage connection settings.
OreoEssentials is built around independent modules. Each one can be configured or disabled separately.
OreoEssentials uses multiple storage backends, each chosen for what it does best.
Primary document database for persistent player data.
In-memory key-value store for fast, shared, ephemeral data.
Message broker for real-time cross-server events.
Local file storage for configuration and non-critical data.
Relational database for the web panel only.
Embedded database for optional local module storage.
Every feature that needs to work across servers uses the same underlying architecture. You do not need to configure anything per-feature — just set up RabbitMQ and Redis once.
/msg, /tp, /invsee) queries this directory to know which server the player is on before sending a packet.Packet with write() and read() methods. All packets are registered deterministically at startup so IDs are consistent across all servers in the network.