CloudSpheres — the sphere system: the shell, effect stones, and the Enchanter

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.

What it is

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.

How it works

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.

  • Craft a sphere shell at a crafting table: 8 gold blocks in a ring and a nether star in the center.
  • Obtain effect stones and shards of unique stones — they drop from mobs and bosses with a small chance.
  • Go to the "Enchanter" NPC and arrange a 3×3 pattern: the sphere in the center, 8 identical stones around the ring.

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.

Effects

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.

EffectWhat it givesSizes
StrengthStrength1–5
SpeedMovement speed1–5
HasteHaste1–5
VitalityHealth Boost1–5
ProtectionDamage resistance1–3
FireLvl 1 — fire resistance; lvl 2 — plus attacks set the target on fire1–2
IchthyanderLvl 1 — water breathing; lvl 2 — plus dolphin's grace1–2
SaturationSaturation1

Strength

Classic Strength: melee damage grows from I to V. The stone's size is the potion's amplifier directly, with no hidden multipliers.

Speed

Movement speed, five sizes from I to V — the most straightforward effect of the eight, with no side mechanics.

Haste

Mining haste, five levels. It pairs well with Strength on one sphere for farming, if the quality lets you hold both at once.

Vitality

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.

Protection

Damage resistance per stone level, but the scale is shorter than the rest — only three sizes.

Fire

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.

Ichthyander

Also no amplifier. Level 1 is water breathing, level 2 adds "dolphin's grace" — faster swimming. Maximum 2 sizes.

Saturation

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.

Unique status stones

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.

StoneProperty
SoftnessCompletely removes fall damage
RadiusThe sphere's effects are passed to allies within 3 blocks
FuryOwner's health below 50% — all of the sphere's effects are boosted by 1 level
ResurrectionSingle-use: on lethal damage it restores 30% health, like a totem, and crumbles
EndAn ender pearl isn't consumed when thrown
CharismaHostile mobs don't attack the owner — the status lapses as soon as the owner hits a mob
VampirismKilling another player restores 100% health
Lord of DarknessHealth below 25% — summons an immortal allied wither (doesn't damage blocks) that disappears when health goes above 30%; the owner is immune to withering
ImmunityRemoves blindness, nausea, slowness, poison, wither, fatigue, and hunger
ExecutionThe opponent has no more than 10% health left — instant death, the rule applies between players too
PackSummons an allied pack of wolves (three by default) while the sphere is in the left hand — the wolves protect the owner and attack enemies

Stone of Softness

Fully and unconditionally cancels fall damage — the damage event is suppressed on the fly. No height threshold, no chance.

Stone of Radius

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.

Stone of Fury

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.

Stone of Resurrection

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.

Stone of the End

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.

Stone of Charisma

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).

Stone of Vampirism

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.

Stone of the Lord of Darkness

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.

Stone of Immunity

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.

Stone of Execution

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.

Stone of the Pack

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.

Sphere size and quality

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.

QualityEffectsSpecial
Common10
Uncommon21
Rare22
Epic32
Legendary33

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" NPC

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.

Four pattern layouts

The "Enchant" button recognizes the operation by itself from the contents of the center and ring:

CenterRing (8 slots)Result
Sphere8 identical effect stones (same type and size)Apply an effect of the corresponding size
SphereExactly 1 unique stoneApply a status
SphereExactly 1 "Quality Core"Raise quality by one tier
Empty8 identical effect stones or 8 identical shardsMerge 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 and merging

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.

Drops from mobs and bosses

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.

DropFrom a regular mobFrom a tagged boss (×25)
Effect stone (size 1, random type)1%25%
Shard (random type)0.4%10%
Quality Core0.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.

Integrations

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:

ResultChance
Effect stone (random type, size skewed toward small)55%
Unique stone shard20%
Quality Core13%
Finished unique stone9%
Sphere shell3%

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.

How to put together a build

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.

  • Scout-support: a useful effect (for example, Speed) + the Stone of Radius — buffs automatically spread to allies within 3 blocks.
  • PvP finisher: a high-size Strength or Speed + the Stone of Execution + the Stone of Vampirism — execution finishes off a target who dropped below 10% health, and vampirism immediately heals the owner for the kill.
  • Solo survival on the edge: the Stone of Fury + the Stone of Resurrection + the Stone of the Lord of Darkness — three rescue mechanics at different health thresholds that don't interfere with each other: below 50% effects grow, below 25% a defender arrives, and a lethal hit at any moment is absorbed by Resurrection.
  • Farming sphere: Haste + Vitality, and Softness in the third slot if the quality allows.

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.

Commands

CommandWhat 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 setPlace the Enchanter at the current position
/sphere npc removeRemove the Enchanter
/sphere listList effects, unique stones, and sizes in chat
/sphere bookGive the "Sphere Catalog" guide book — a reference for the whole system
/sphere reloadReload 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, /сфера, /сферы.

Permissions

PermissionDefaultWhat it opens
sphere.adminopAdmin commands: give, npc, reload
sphere.usetrue (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.

Configuration

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.

  • Visuals: toggles for the enchant glint, the circling aura around the owner, and a master switch for all particles and sounds — on a weak server the effects are simplified with one setting.
  • Crafting: the shell recipe is disabled entirely with a separate flag if you want only drops and events.
  • Slot limits: the "limits" block in the config does not affect the real limits — they're hardcoded in the quality table (see above), a leftover from an old balance version.
  • Anti-dupe: enabling the check and the scan period for online inventories (30 seconds by default).
  • Drops: chances and the boss multiplier are covered in the table above, plus the world list and auto-recognition of MythicMobs mobs as bosses.
  • Stone balance: recalculation tick, refresh duration, ignite ticks, radius and conditions for sharing with allies, fury threshold and bonus, resurrection/execution/vampirism percentages, three Lord of Darkness parameters, the effect list under Immunity, the wolf count for the Pack stone, charisma rules.
  • Resource pack: all stones and the sphere itself are already marked with CustomModelData on vanilla materials on top of one base number — attach your own texture on top without a single config edit.
Item categoryMaterialCustomModelData
Sphere / sphere shellheart_of_the_seabase number
Effect stone, any type and sizeits own per type (redstone, sugar, glowstone dust, and others)base + 100 × (effect number + 1) + size
Unique stoneits own per type (phantom membrane, echo shard, and others)base + 900 + type number
Shardamethyst_shardbase + 950 + type number
Quality Corefirework_starbase + 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.

CloudSphereChest — the Sphere Chest (included in the bundle)

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.

What it is

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.

Key mechanics

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%).

The full event cycle

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.

  • 15 minutes before (announce.lead-minutes) the appearance — the first server-wide broadcast with the coordinates and the wait time.
  • Next come two timer updates at the announce.update-minutes step (5 minutes by default): at the "10 minutes" and "5 minutes" marks before the appearance.
  • When 15 minutes run out, the chest appears at the point chosen at the start of the pause.
  • The spawn point is random within a square around the center (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.
  • The window to open it is 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.
  • Each attempt is an independent roll with the event.unlock-chance chance (25% by default).
  • On success, the chest instantly fills with loot and opens for the winner, the claim is lifted in that same second, but the block stays for another cleanup.after-open-seconds (300 seconds by default, 5 minutes) — time to finish looking over the haul.
  • If 60 minutes pass without it being opened, the chest disappears on its own, the server gets a failure message, and the pause until the next event is counted anew.

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.

Loot: entry types, weights, what drops

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.

EntryCategoryWeightChance per roll
sphere give coreSphere, empty shell30~12%
sphere give randomSphere with a random effect20~8%
Sphere KeyKey10~4%
Diamond ×1–3Valuable15~6%
Emerald ×1–4Valuable12~5%
Enchanted Golden AppleValuable, rare3~1%
Golden Apple ×1–2Valuable10~4%
Bottle o' Enchanting ×5–20Valuable20~8%
Rotten Flesh ×2–8Themed "junk"25~10%
Bone ×2–6Themed "junk"20~8%
String ×3–10Themed "junk"18~7%
Poisonous Potato ×1–3Themed "junk"15~6%
Iron Ingot ×2–8Themed "junk"25~10%
Gold Ingot ×1–4Themed "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.

Sound, light, and publicity — three different radii

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.

  • Chat. Announcements, the countdown, victory, and expiry all go through a server broadcast — to the entire server, including other worlds, not only spawn.world.
  • Sound. The dragon's roar on spawn and the luck chime on opening play for every player in the same world as the chest — regardless of distance: the sound is played at the listener's own coordinates, not the chest's, so there is no distance falloff at all.
  • On-screen title. The only effect with a real radius: the title with coordinates on spawn goes only to players within 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.

Connection with CloudSpheres

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.

Zone and protection

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.

How to run it: scenarios

  • A background cycle on autopilot. Leave 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.
  • An event right now. /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.
  • A key as a prize. /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.
  • After a manual stop — don't forget the auto cycle. /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.

Commands

CommandWhat it does
/spherechest start [x z]Start the event instantly — at the given coordinates or at a random point in the zone
/spherechest stopForce-end the active event (and silence the auto timer too, see the scenarios above)
/spherechest reloadReload 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 infoStatus: 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.

Permissions

  • 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)

Configuration and compatibility

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.