One item in the left hand — and instead of a one-time buff, the player gets a permanently working build: strength, speed, and resurrection at once on a single artifact. CloudSpheres is not an enchantment on top of vanilla limits but a separate progression system: drops from mobs and bosses, crafting at a crafting table, and an NPC spell forge. Inside are 8 effects with their own size scales, 11 unique status stones, and 5 sphere quality tiers that limit all of it. The plugin is custom-written for Paper 1.19.4, with dupe protection, a flexible config, and soft integration with MythicMobs.
At the center of the system is the sphere: an item based on heart_of_the_sea that accumulates several effects and statuses at once. It's not a consumable or a one-time potion — a sphere works constantly while it's in the offhand, and its power grows as the player finds stones, raises quality, and orders new spells from the Enchanter. The player builds the setup themselves, stone by stone.
The item has two states. An empty shell is an ordinary stackable item. As soon as the first effect or status is applied to a sphere, it gets a unique serial number and stops being "just an item" — a background anti-dupe scans the inventories of online players every 30 seconds and removes duplicates by serial number, and cuts any extra copies in a stack of finished spheres down to one.
The main rule: a sphere works only while it's in the left hand. Take it off and the effects and statuses switch off, while the sphere stays an ordinary item: into a chest, onto the auction, to another player. Effects don't fade abruptly: they're recalculated once a second with a duration buffer of about 2.5 seconds, so the buff smolders for a moment after you remove it. They apply "quietly" — without a thick cloud of particles, just the icon — and don't overwrite someone else's stronger effect of the same type.
The recipe is vanilla and works on any crafting table; a config flag can disable it entirely if the shell should only come as a drop or a reward.
The stone's size is the effect's level, and not all eight types have all five sizes. Eight identical stones merge at the Enchanter into one stone of a larger size — up to the type's ceiling. The stone's color always matches the effect.
| Effect | What it gives | Sizes |
|---|---|---|
| Strength | Strength | 1–5 |
| Speed | Movement speed | 1–5 |
| Haste | Haste | 1–5 |
| Vitality | Health Boost | 1–5 |
| Protection | Damage resistance | 1–3 |
| Fire | Lvl 1 — fire resistance; lvl 2 — plus attacks set the target on fire | 1–2 |
| Ichthyander | Lvl 1 — water breathing; lvl 2 — plus dolphin's grace | 1–2 |
| Saturation | Saturation | 1 |
Classic Strength: melee damage grows from I to V. The stone's size is the potion's amplifier directly, with no hidden multipliers.
Movement speed, five sizes from I to V — the most straightforward effect of the eight, with no side mechanics.
Mining haste, five levels. It pairs well with Strength on one sphere for farming, if the quality lets you hold both at once.
Health Boost — hearts above the regular ten, five sizes. It doesn't heal current health but raises the maximum cap while the sphere is in hand.
Damage resistance per stone level, but the scale is shorter than the rest — only three sizes.
Size here is not effect strength but a mechanic switch: the amplifier is always zero. Level 1 is fire resistance. Level 2 adds a combat extension: the owner's hit sets the target on fire for 100 ticks by default (5 seconds, adjustable in the config). Maximum — 2 sizes.
Also no amplifier. Level 1 is water breathing, level 2 adds "dolphin's grace" — faster swimming. Maximum 2 sizes.
Saturation is a scale with a single size. The stone is either on the sphere or not: there's nowhere to merge 8 into 1 here.
A unique stone is assembled from 8 identical shards and applied to the sphere whole, with no sizes or levels — one is enough for the status to work.
| Stone | Property |
|---|---|
| Softness | Completely removes fall damage |
| Radius | The sphere's effects are passed to allies within 3 blocks |
| Fury | Owner's health below 50% — all of the sphere's effects are boosted by 1 level |
| Resurrection | Single-use: on lethal damage it restores 30% health, like a totem, and crumbles |
| End | An ender pearl isn't consumed when thrown |
| Charisma | Hostile mobs don't attack the owner — the status lapses as soon as the owner hits a mob |
| Vampirism | Killing another player restores 100% health |
| Lord of Darkness | Health below 25% — summons an immortal allied wither (doesn't damage blocks) that disappears when health goes above 30%; the owner is immune to withering |
| Immunity | Removes blindness, nausea, slowness, poison, wither, fatigue, and hunger |
| Execution | The opponent has no more than 10% health left — instant death, the rule applies between players too |
| Pack | Summons an allied pack of wolves (three by default) while the sphere is in the left hand — the wolves protect the owner and attack enemies |
Fully and unconditionally cancels fall damage — the damage event is suppressed on the fly. No height threshold, no chance.
Once per recalculation tick (once a second by default), the sphere hands out its effects — not the special stones, just the eight regular ones — to all allied players within 3 blocks by default; a separate flag can limit the handout to players on the same scoreboard team.
When the owner's health is below the threshold (0.5 by default, i.e. 50%), all of the sphere's current effects get a level bonus, +1 by default. Fully dynamic: once health rises above half, the bonus is removed by itself on the next recalculation.
A single-use totem in your pocket. A lethal hit (except falling into the Void — otherwise you'd get a death loop) is canceled, health is restored to 30% of the maximum by default (not less than 1 HP), fire and the negative Wither/Poison effects are removed, and totem particles and sound play — and the stone immediately crumbles and vanishes from the sphere. One charge; after that you need a new one.
Throwing an ender pearl doesn't consume it — the pearl stays in your inventory while the sphere is in the left hand. Accompanied by portal particles and the ender chest sound.
Hostile mobs can't pick the owner as a target — until the owner strikes first: a hit marks that specific mob as "angered" (the mark is on the mob itself, not global), and charisma no longer works on it, while continuing to work on the others around. One config flag decides whether a hit breaks charisma at all (yes by default), another whether the "boss" tag makes a mob immune to charisma (no by default, so charisma works on bosses too).
Works only on a real player kill: kill another player and health is restored to 100% of the maximum by default. It doesn't react to mobs.
When the owner's health is below 25% by default, an immortal allied Wither appears nearby, without gravity and without a boss bar, hovering 3 blocks above the head and re-targeting the nearest hostile entity within 25 blocks every 2 ticks, ignoring other withers and the Enchanter itself. It disappears — with smoke and a death sound — when health rises above 30% by default, or the stone is removed, or the owner leaves or dies; the 25/30% gap is there to prevent flickering summon-disappear at the boundary. The owner is fully protected from their "own" wither, and skull explosions don't damage blocks.
Every recalculation removes effects from a configurable list from the owner — by default blindness, nausea, slowness, poison, wither, fatigue, and hunger, seven types. This is a sweep once per tick, not true invulnerability: a debuff can theoretically flicker for a fraction of a second.
After a hit, if the target has no more than 10% health left by default, a control check runs on the next tick — in case they healed — and if the threshold is still not exceeded, health is zeroed instantly. A separate flag decides whether execution works on players — yes by default, so in PvP too.
While the sphere is in hand, a pack of tamed wolves, 3 by default, stays nearby — spawned, bound to the owner, ordinary tamed mobs. If the sphere is removed, or the player leaves or dies, the whole pack is removed in that same cleanup tick.
A sphere has a quality — five tiers that set the slot limit for effects and unique stones. The limits are hardcoded into the quality table rather than read from a separate setting: the config has a block with "max effects" and "max special" fields, but the code never reads it — dead lines left over from an earlier balance version. The real limits are only those in the table below, and they change only together with the tier.
| Quality | Effects | Special |
|---|---|---|
| Common | 1 | 0 |
| Uncommon | 2 | 1 |
| Rare | 2 | 2 |
| Epic | 3 | 2 |
| Legendary | 3 | 3 |
Quality is raised at the Enchanter: the sphere in the center, a "Quality Core" in the ring — the slot limit goes up a tier, and the applied effects and statuses stay in place. The Core (a firework star) drops from mobs on a separate, even stingier chance line, or is issued directly by command. The sphere's name color changes along with quality — from gray "Common" to gold "Legendary". An admin can immediately spawn a shell of the desired quality with the give command, skipping the whole upgrade chain.
The Enchanter is an NPC based on the Evoker illager: no AI, invulnerable, no collision (you can walk through it), with a glow and a circling magical aura of particles. It stands wherever the admin places it, is persistent, and doesn't despawn with distance — but it's built on a vanilla hostile mob, so on Peaceful difficulty it vanishes along with all monsters; Easy or higher is required. Mobs don't target it, and damage to it is always canceled. The position is set and removed with a single command at the player's location, stored in the config, and survives a server restart.
A right-click opens the GUI pattern: a 54-slot chest where nine slots are reserved for stones — the center and a ring of eight around it — and everything else is a grid of glass panes plus a sign with the rules, an "ENCHANT" button, and a live preview slot. The preview updates on the fly with every change to the grid and shows a ghost copy of the future result or a barrier with the reason for refusal ("effect already present", "effect limit", "already max size") — before you even press the button. Stones can only be placed and taken one at a time: shift-click, double-click, and number-key transfer are blocked on purpose, and closing the window returns to the player everything left in the center and ring.
The "Enchant" button recognizes the operation by itself from the contents of the center and ring:
| Center | Ring (8 slots) | Result |
|---|---|---|
| Sphere | 8 identical effect stones (same type and size) | Apply an effect of the corresponding size |
| Sphere | Exactly 1 unique stone | Apply a status |
| Sphere | Exactly 1 "Quality Core" | Raise quality by one tier |
| Empty | 8 identical effect stones or 8 identical shards | Merge into a stone one size up / assemble a unique stone |
Each layout is validated on the spot: you can't apply an effect the sphere already has — only a different type. You can't exceed the slot limit of the current quality — the Enchanter states the limit number right in the refusal message. You can't merge a stone that has already hit the size ceiling for its type. Applying an effect or status is confirmed by a purple message, an enchanting sound, and enchantment particles with a totem; merging and raising quality sound different — an anvil strike and a level-up with magic particles; failure is a dull thud and a red message with the reason.
Shards are the small change of unique stones: 8 identical ones, arranged in the pattern's ring with an empty center, turn into one full unique stone. All shards share one material (an amethyst shard) and differ only in name and texture for the specific type. They drop on a separate, rarer chance line — their own drop, separate from effect stones.
Effect stones merge by the same "empty center + 8 identical" pattern: eight stones of size N give one stone of size N+1, up to the type's ceiling. For effects with a scale up to five (Strength, Speed, Haste, Vitality), a size-five stone crafted honestly from scratch requires 8 size-four stones, under those 64 of size three, under those 512 of size two, and at the base 4096 tiny size-one stones. In practice these are finds from mobs mixed with merges, not pure farming of a single size.
Three independent rolls on each qualifying death: an effect stone, a shard, and a quality core. Each roll is random and doesn't affect the others — theoretically the same boss can drop all three categories at once, but the chance of that jackpot is vanishingly small.
| Drop | From a regular mob | From a tagged boss (×25) |
|---|---|---|
| Effect stone (size 1, random type) | 1% | 25% |
| Shard (random type) | 0.4% | 10% |
| Quality Core | 0.2% | 5% |
A regular drop triggers only from hostile mobs — passive creatures don't drop stones, even if a player happens to kill them. The boss tag lifts this restriction: a tagged entity drops stones even if it isn't formally hostile — you can declare any custom MythicMobs mob or a unique entity from a third-party event a boss. The drop can be limited to specific worlds — by default it works on all maps.
CloudSpheres has a soft dependency on MythicMobs — without it the plugin works as is, without a single error. The hook is built through reflection rather than a direct build dependency: at startup the plugin checks whether MythicMobs is installed, and if so, finds its mob manager through class reflection. If MythicMobs is installed, all its mobs are automatically treated as bosses and give an increased drop chance with no configuration at all. Any other entity can also be marked as a boss manually — via a custom key in its data, and by default the plugin already understands the BossArena tag.
Separately, the sphere system works as a ready-made reward layer for any third-party event: the random-give command returns a stone, a shard, a quality core, a unique stone, or the shell itself — callable from any airdrop, crate, or quest plugin as an ordinary reward command. The result weights are hardcoded in the command itself and don't depend on mob drops:
| Result | Chance |
|---|---|
| Effect stone (random type, size skewed toward small) | 55% |
| Unique stone shard | 20% |
| Quality Core | 13% |
| Finished unique stone | 9% |
| Sphere shell | 3% |
The stone size in the first row isn't a uniformly random number: the roll starts at size 1 and with a 30% chance at each step goes up another tier, so the vast majority of rewards are the smaller sizes.
Quality limits directly dictate how much you can carry on one sphere: Common is basically a demo version with one effect, and a full "combine" of three effects and three statuses is available only on Legendary.
You can't put together a build with four effects at once: no quality gives more than three main ones — either trim the list or push the sphere to Legendary.
| Command | What it does |
|---|---|
/sphere give <игрок> core [качество] | Give a sphere shell; without a parameter — Common |
/sphere give <игрок> stone <эффект> <размер> | Give an effect stone of the given type and size |
/sphere give <игрок> unique <тип> | Give a finished unique stone |
/sphere give <игрок> shard <тип> [кол-во] | Give unique stone shards, up to 64 at a time |
/sphere give <игрок> quality [кол-во] | Give a "Quality Core", up to 64 at a time |
/sphere give <игрок> random [качество] | A random weighted reward — for airdrops, bosses, events |
/sphere npc set | Place the Enchanter at the current position |
/sphere npc remove | Remove the Enchanter |
/sphere list | List effects, unique stones, and sizes in chat |
/sphere book | Give the "Sphere Catalog" guide book — a reference for the whole system |
/sphere reload | Reload the config without restarting the server |
Example: /sphere give Steve stone strength 3 — a medium Strength stone; /sphere give Steve core legendary — an empty shell of legendary quality, without a single core. Command aliases: /spheres, /sfera, /сфера, /сферы.
| Permission | Default | What it opens |
|---|---|---|
sphere.admin | op | Admin commands: give, npc, reload |
sphere.use | true (everyone) | Interacting with the Enchanter (right-click on the NPC) |
Permission checks in the code are narrower than the description suggests: sphere.use is really checked only on a click on the Enchanter. The /sphere list and /sphere book commands don't check any permission at all and are available to any player without exception.
Almost all of the mechanics are in the config and applied with /sphere reload without a server restart. The thresholds and chances covered above for each stone are the defaults of that same file, and each can be adjusted individually.
| Item category | Material | CustomModelData |
|---|---|---|
| Sphere / sphere shell | heart_of_the_sea | base number |
| Effect stone, any type and size | its own per type (redstone, sugar, glowstone dust, and others) | base + 100 × (effect number + 1) + size |
| Unique stone | its own per type (phantom membrane, echo shard, and others) | base + 900 + type number |
| Shard | amethyst_shard | base + 950 + type number |
| Quality Core | firework_star | base + 970 |
CloudSpheres is not a single enchantment but a whole economy around one item: drops, crafting, an Enchanter forge, and its own rarity system that counts limits honestly, recognizes bosses by any tag, and doesn't let the result be duped.
The Sphere Chest is a free add-on to CloudSpheres. It isn't sold separately: when you buy CloudSpheres, you get it too.
Coordinates drop into chat — and the server jumps into action. Some drop the mine, some the build, everyone runs to one point on the map, because a chest with a purple glow, a beam into the sky, and a dragon's roar across the whole world grows out of nowhere there. Not just anyone can open it — only someone holding a Sphere Key. And even with a key, success isn't guaranteed to anyone.
CloudSphereChest is not a lootbox on a button but a full event with an announcement, a countdown, zone protection, and a server-wide payoff. One chest, one key per attempt — and whether you get lucky or not isn't up to the player.
The plugin places a chest on the map themed after Lovecraft and Cthulhu: purple-and-black highlighting, a ring of "dragon's breath" particles, and a beam into the sky above an ordinary CHEST block. There is no magic in the block — it's a vanilla chest with no model swap, and the effect is held by the bundle of the event manager, the claim zone, and the loot table around it. The look can only be changed with a resource pack; the custom-model-data field in the config is reserved for this but unused in the code — the config itself warns about this with a comment.
The chest appears on its own by timer or instantly by command and waits until it's opened the one correct way — with a Sphere Key. The plugin is built for Paper 1.19.4; the author in plugin.yml is listed as Vitaly.
The key must be in the main hand specifically: the code always checks getItemInMainHand() and doesn't look at the offhand — if the key is there, a click on the chest won't count it. The key itself is neither a name nor a texture but a tag inside the item: a PersistentDataContainer with the key spherechest:sphere_key. You can't rename a random tripwire hook in an anvil and pass it off as a key — the detector checks the PDC tag, not the name or lore.
A right-click on the event chest never opens the vanilla interface — the plugin always cancels that, even without a key: the player only gets the message "a Sphere Key is required", and you can't peek inside before it's opened. With a key, a roll happens: the key is spent always, regardless of the outcome — one is taken from the stack, and if it was the last one, the hand empties. And only after it's deducted is it decided whether you got lucky: the chance is set by event.unlock-chance (0.25 by default, i.e. 25%).
Everything is counted from the pause between events — event.interval-minutes, 120 minutes by default, counted not from the announcement but from the moment the previous event actually ended (by being opened or by expiring). The next spawn point is chosen immediately, at the start of the pause — the server stays silent for 105 minutes before announcing it.
announce.lead-minutes) the appearance — the first server-wide broadcast with the coordinates and the wait time.announce.update-minutes step (5 minutes by default): at the "10 minutes" and "5 minutes" marks before the appearance.spawn.center-x/z), not a circle: the offset on X and Z is independent within ±spawn.radius (200 by default) — i.e. a 400×400 block zone, not a circle of radius 200 (the code explicitly marks this as a simplification). The height is the topmost non-empty block of the column plus one, so on water the chest sits right on the surface.event.duration-minutes, 60 minutes by default. The key can be tried any number of times by any number of different players: there is no attempt limit or cooldown between them.event.unlock-chance chance (25% by default).cleanup.after-open-seconds (300 seconds by default, 5 minutes) — time to finish looking over the haul.The hologram above the chest (requires DecentHolograms) shows the status: while waiting, a countdown via %time%; while the chest is active, a hint to use the key. A nuance: it hangs not over the future spawn point but over the zone center (spawn.center-x/z) — a permanent landmark, not a hint about where to run.
A successful opening fills the chest: the inventory is cleared first, then loot-slots (12 by default, range 1–27) weighted rolls are made across the whole table. The same entry can drop several times in a row, another not at all. Items are placed not left to right in order but into a pre-shuffled list of 27 cells — you can't guess from the first couple of slots what turned up.
There are three entry types. material is a regular item with a quantity range (min–max). command is a console command with %player% substitution that takes no slot at all: the effect goes straight to the player, bypassing the inventory. key is another Sphere Key, placed as a regular item. Hence a point: if a command entry comes up several times among 12 rolls, there will be fewer than twelve physical items in the chest — a command "eats" a roll but not a slot.
| Entry | Category | Weight | Chance per roll |
|---|---|---|---|
sphere give core | Sphere, empty shell | 30 | ~12% |
sphere give random | Sphere with a random effect | 20 | ~8% |
| Sphere Key | Key | 10 | ~4% |
| Diamond ×1–3 | Valuable | 15 | ~6% |
| Emerald ×1–4 | Valuable | 12 | ~5% |
| Enchanted Golden Apple | Valuable, rare | 3 | ~1% |
| Golden Apple ×1–2 | Valuable | 10 | ~4% |
| Bottle o' Enchanting ×5–20 | Valuable | 20 | ~8% |
| Rotten Flesh ×2–8 | Themed "junk" | 25 | ~10% |
| Bone ×2–6 | Themed "junk" | 20 | ~8% |
| String ×3–10 | Themed "junk" | 18 | ~7% |
| Poisonous Potato ×1–3 | Themed "junk" | 15 | ~6% |
| Iron Ingot ×2–8 | Themed "junk" | 25 | ~10% |
| Gold Ingot ×1–4 | Themed "junk" | 18 | ~7% |
A telling detail of the config: iron and gold ingots sit in the same comment block as rotten flesh and potatoes — "themed junk". Next to diamonds and spheres they're ballast, not a reward. The list, weights, and loot-slots are ordinary fields; the set that ships is just an example.
A ring of 24 "dragon's breath" points rotates around the chest, and an END ROD beam stretches 30 blocks up — both effects, like all particles in Minecraft, are visible only up close and their range isn't configurable. The three notification channels — chat, sound, and title — work on different radii, though, and that isn't always obvious from a simple event description.
spawn.world.effects.title-radius (80 blocks by default) of the appearance point.Hence a notable asymmetry specifically on a failed attempt. The failure text ("the key crumbled to dust") is seen only by the unlucky player themselves — as a private message, with no chat broadcast. But the enderman scream at that moment is heard by the entire world, not just whoever stands at the chest: the cry carries across the whole map anonymously, and only nearby players will see with their own eyes who exactly tried their luck and was left with nothing.
Part of the loot isn't an item but a command that the plugin executes from the server console on the tick after a successful roll. By default the table has two such entries: sphere give %player% core (an empty sphere shell with no effect, weight 30) and sphere give %player% random (a random sphere with a random effect, weight 20) — together about a fifth of all loot table rolls. %player% is substituted automatically with the name of whoever opened it, and the command bypasses the chest inventory entirely — the sphere arrives to the player directly through the Spheres plugin.
Notably, CloudSpheres itself isn't declared as a dependency anywhere — neither hard nor soft: the plugin's softdepend lists only WorldEdit and DecentHolograms. CloudSphereChest simply calls the sphere command by name, relying on it being registered somewhere; if CloudSpheres isn't installed, the console gets an unknown-command error, and the rest of the event runs as if nothing happened — the sphere just won't arrive. The result is a companion showcase: spheres enter circulation not as a quiet line in a give menu but as a one-off event — although the link between the plugins rests on the config's word, not on a dependency.
The claim is a cube around the chest block whose side depends on region.size (15 by default). It's calculated through the half-size: size ÷ 2 rounded down (15 ÷ 2 = 7), and the cube is ±7 blocks on all axes from the chest, i.e. 15×15×15 at the default value. An odd number gives exactly that edge; an even one is always a block larger (14 and 15 give the same cube, 16 is already 17×17×17).
Inside the cube, ProtectionListener blocks breaking and placing blocks, clicks (except on the chest itself — a separate listener handles that), buckets, and for explosions — both block and entity ones — it removes the affected blocks from the destruction list without canceling the explosion entirely. The spherechest.bypass permission (op by default) lifts all restrictions.
The protection isn't permanent: it turns on exactly when the block appears and is lifted immediately when the event ends. In the announcement phase (those 15 minutes) it isn't there yet — you can build or break freely at the future spawn point. After success it's the opposite: the claim is lifted instantly, but the block stays for another cleanup.after-open-seconds (300 seconds by default) — for that whole time it's an ordinary, unprotected chest that can be smashed, not just looted with a click. A few minutes after the win is a fair race for whatever the winner didn't take.
event.auto-enabled: true alone — the plugin keeps the rhythm itself: announcement, spawn, an hour to open it, a pause, around again. It's worth checking the spawn zone's center and radius in advance so the point doesn't end up in the ocean or beyond the inhabited territory: the height comes from the topmost block of the column, and that can be water. The center is also the point over which the waiting hologram hangs./spherechest start without coordinates is an instant spawn at a random point in the zone, skipping the 15-minute announcement. /spherechest start 250 -400 does the same at a specific point: for example, by a freshly built location or in the middle of a separate event. If an auto-event waiting phase was already running at that moment, the manual launch resets its schedule — a second chest won't stand on top of the first, the plugin will refuse and ask you to stop first./spherechest key PlayerName 3 gives keys bypassing the usual chest find — a convenient reward for a separate contest: the player gets not guaranteed loot but attempts, each still with the same 25% chance, so an element of risk remains even in a gift./spherechest stop silences the current event and, with it, the whole auto-start timer: the next cycle won't pick up by itself, because the pause recalculation is written only at the "success" and "time expired" points, not in the manual stop. To bring autopilot back, you either run one more event to the end — with either outcome, both restart the timer themselves — or reload the plugin or the server.| Command | What it does |
|---|---|
/spherechest start [x z] | Start the event instantly — at the given coordinates or at a random point in the zone |
/spherechest stop | Force-end the active event (and silence the auto timer too, see the scenarios above) |
/spherechest reload | Reload the config and loot table without a server restart |
/spherechest key <игрок> [n] | Give a player a Sphere Key (one by default, a maximum of 64 at a time) |
/spherechest info | Status: whether the chest is active, its point and world, a region summary, whether the auto-event is on, the current opening chance |
Short aliases are /sc and /schest. Example: /sc key Виталий 5 gives five keys to the player Vitaly, and /sc start 100 -50 places the chest at X=100 Z=−50 — the height is calculated from the terrain. Without arguments the command prints a list of subcommands. All subcommands, including info, require the spherechest.admin permission — without it the plugin refuses before parsing the arguments.
Keep in mind that in waiting mode info doesn't calculate the real time until the next spawn — the command only points you to check event.interval-minutes in the config. A live countdown via %time% is shown only by the hologram, if DecentHolograms is installed.
spherechest.admin — access to all /spherechest subcommands (op by default)spherechest.bypass — ignores the claim protection of the zone around the chest while the event is active (op by default)The plugin is built for Paper 1.19.4 (api-version: "1.19"). DecentHolograms isn't required but enables the timer hologram if installed — the plugin checks for it itself at startup. WorldEdit is listed as a soft dependency in plugin.yml but isn't called in the code — a historical leftover. Neither is needed for the event to launch and work fully.
Almost everything the player sees can be changed in the config: event (auto-start, interval, chance, duration), spawn (world, center, zone radius), announce (when and how often to announce), region (claim cube size), cleanup (time after opening), key (the key's material, name, lore), loot-slots and loot (the table itself), effects (hologram, particles, per-phase sounds, title radius and text). In the Java fields only the region size and the loot table are cached — reload explicitly rebuilds them; everything else is read from the config on the fly, so a single /spherechest reload updates everything at once, with no restart.
The license check is built in the same way as in other Cloud Delight plugins and runs as the first line at plugin startup — before any managers are initialized. With license.enabled: true, the plugin sends a POST to license.url with the key and plugin name and waits up to 5 seconds for a reply; if the license server is unavailable or returns an error, the local cache in the plugin folder is used, but for no longer than license.grace-hours (24 hours by default) since the last successful check. An explicit server rejection — invalid key, used from another IP, revoked — disables the plugin immediately, with no grace period. For a private server, the protection is turned off with one line: license.enabled: false.
CloudSphereChest turns ordinary loot into a server-wide event: an announcement, a countdown, a fair risk of losing the key for nothing — and the haul goes to whoever ran there and took the risk first.