Island Modes
IgniteSky ships three island modes in one plugin. You do not install three plugins or run three servers; you decide which modes are available and which one new players get by default. A player picks a mode when they create an island with /is create <mode>, or takes the server default with a plain /is create.
The three modes
Skyblock
The classic. A void world with a pasted starter island. Build out from nothing.
OneBlock
A single block that regenerates forever, advancing through themed phases as you mine.
ChunkBlock
Real generated terrain, fenced to one chunk, unlocked outward over time.
Skyblock
The mode everyone knows. Each island is a small starter platform floating in an otherwise empty void world. Everything you have comes from what you can make with what you start with. It is the most familiar mode and the safest default for a new server.
OneBlock
You stand on a single block. Mine it and it comes back, and as you go it advances through phases, each with its own loot and theme. There is no spreading island to manage at first, just one block and the question of what comes out of it next. It rewards momentum and is very approachable for newer players.
The phases are fully authored in modes/oneblock.yml: each phase has a weighted block table, an optional mob table with a spawn chance, a reward for reaching it, and a length (blocks mined before the next phase). loop restarts the cycle after the last phase. The phase reward is the shared reward object (bare number = island-bank shorthand); since a phase advance has no single triggering player, personal money falls back to the bank and items are skipped, but commands and bank/effects apply.
oneblock:
loop: true
phases:
plains:
display: "<green>Plains"
length: 50 # blocks mined in this phase before the next
reward: 50.0 # paid into the island bank on reaching it
mob-chance: 0.04 # 0..1 odds a phase mob spawns per break
jackpot-chance: 0.01 # 0..1 odds a break hits a "super-block" bonus
jackpot-reward: { money: 500 } # shared reward object, paid to the breaker
blocks: # weighted random (weights are relative)
GRASS_BLOCK: 35
DIRT: 25
OAK_LOG: 12
COAL_ORE: 8
mobs:
CHICKEN: 4
PIG: 4A floating progress hologram can hover over the source block, showing the current phase and how far through it the island is - it refreshes as the block is mined, with no resource pack (a vanilla text display). Lines are MiniMessage with {phase}, {progress}, {length}, {count} and {total} placeholders.
progress-hologram:
enabled: true
height: 1.5 # blocks above the source block
lines:
- "<red><bold>OneBlock"
- "<gray>Phase: <white>{phase}"
- "<gray>Progress: <yellow>{progress}<gray>/<white>{length}"ChunkBlock
ChunkBlock starts you on natural, vanilla generated terrain, but boxed into a single accessible chunk. The rest of your claim is locked behind a visible border. You expand by unlocking neighbouring chunks one at a time, through money, progression or quests.
Stand in a locked chunk and run /is unlock, or right click the floating "BUY CHUNK" marker over it. A particle border shows your current claim, and an optional WorldBorder draws the outer wall.
The whole chunklock behaviour is configured under chunklock in config.yml, with the unlock price under economy:
chunklock:
block-entry: true # physically stop players walking into locked chunks
starting-radius: 0 # chunks unlocked around spawn on create (0 = 1 chunk, 1 = 3x3, 2 = 5x5)
world-border: true # a per-player WorldBorder square around the whole claim (the red wall)
border:
enabled: true # draw a particle border at the edge of the unlocked claim
interval-ticks: 10 # how often the border particles refresh (lower = smoother, costlier)
particle: FLAME # which particle the claim border is drawn with (any Bukkit Particle)
buy-hologram: # the floating "BUY CHUNK" marker over each buyable chunk
enabled: true
height: 1.6 # blocks above the ground the text floats
view-range: 0.6 # how close a player must be before it renders (lower = closer)
interaction-width: 2.0 # clickable box width, in blocks
interaction-height: 2.0
economy:
chunk-unlock-cost: 1000.0 # Vault cost to unlock one chunkBoth the WorldBorder wall and the particle border are vanilla (no resource pack); turn either off independently. Set chunk-unlock-cost to 0 to make unlocking free, or gate it behind quests/progression instead of money.
Per-mode files
Each mode owns one file, modes/<mode>.yml (modes/skyblock.yml, modes/oneblock.yml, modes/chunkblock.yml). That file is the whole story for the mode: how it appears in the create menu, the starter kit a new island of that mode hands out, and any mode-specific logic (OneBlock's phase table lives in the same file). Tuning one mode never touches another.
Every file starts with the same presentation block. Leave a field blank to fall back to the language file and the built-in icon.
selectable: true # false hides the mode from the create menu (existing islands keep working)
display-name: "" # MiniMessage, e.g. "<green><bold>Skyblock"; blank = language file
icon: "" # e.g. GRASS_BLOCK; blank = built-in default icon
description: [] # MiniMessage lines; blank = language fileselectable: false is the clean way to run a single-mode server or stage a mode before launch: the mode still works for any island already on it, it just stops appearing in the picker.
Per-mode rules
Each mode can override a handful of global rules just for its own islands, under a rules: block. Omit a key to inherit the global config.yml value, so you only write what differs.
rules:
max-per-player: 1 # islands of THIS mode a player may own (global total still applies)
locked-by-default: false # new islands start locked to visitors
public-warps-default: false # new warps are listed publicly straight away
nether: true # this mode's islands get a Nether
end: true # this mode's islands get an End
starting-balance: 0.0 # money seeded into the island bank when a new island of this mode is created
base-size: 32 # base build/protection radius (blocks) when no island-size upgrade is set
drops-multiplier: 1.0 # multiply block/mob drops on this mode's islands (needs world-rules on)
limit-multiplier: 1.0 # scale the global block/entity limits for this mode (2.0 = double the caps)drops-multiplier lets one mode pay out richer than another (a "×3 drops" event mode, say); it needs the global world-rules feature enabled. limit-multiplier scales the global block/entity limits for the mode (so OneBlock can run looser caps than Skyblock). base-size is the default island radius for the mode; if you run the island-size upgrade it takes over from there. Both sizes are clamped just inside the grid cell so neighbouring islands never overlap.
OneBlock phases also support a rare jackpot ("super-block"): set jackpot-chance (0..1) and a jackpot-reward and that fraction of breaks pays the breaker a bonus on top of the normal block -a slot-machine thrill while mining.
That makes things like "Skyblock has a Nether, ChunkBlock does not", "players may own three OneBlocks but only one ChunkBlock", or "ChunkBlock islands start with 5,000 in the bank" pure config. Beyond these, a mode can also default its own flags (PvP, mob spawning and the rest).
Per-mode island effects
A mode can grant its own passive island effects on top of the global ones - members standing on an island of that mode get them. Perfect for theming a mode (a mining mode with Haste, say).
island-effects:
- HASTE:0 # TYPE:amplifier, amplifier 0 = level I
- SPEED:0Island generation
How a new island is physically built is configured per mode under generation: in its file. There are two paths:
- A schematic, if you set one and have a paste engine (WorldEdit or FastAsyncWorldEdit) installed. The
.schemfile (underplugins/IgniteSky/schematics/) is pasted on the island home. - The built-in code build, used when no schematic is set or no paste engine is present. This is the fallback, and it is fully configurable too.
generation:
schematic: "" # e.g. "skyblock-start.schem"; blank = use the code build below
platform-top: GRASS_BLOCK
platform-base: DIRT
platform-radius: 1 # 1 = 3x3, 2 = 5x5, 0 = a single block
platform-depth: 2 # layers of platform-base under the top
platform-bottom: "" # e.g. BEDROCK; blank = none
tree: true
tree-log: OAK_LOG
tree-leaves: OAK_LEAVES
tree-height: 4So you can ship a hand-built island as a schematic, or design the classic platform-and-tree start entirely from config without any schematic at all. The two are complementary: the schematic is the polished option, the code build the always-works fallback.
For Skyblock a pasted schematic replaces the code platform entirely. For OneBlock the source block is still placed (the schematic can decorate around it) via safe-platform-radius / safe-platform-material, and for ChunkBlock the terrain already exists, so its generation only sets the surface-cap material used when a spawn lands on water.
Starter content
Starter content is the chests and signs stamped onto a brand new island the instant it is created, and it is configured per mode under starter-content in that mode's file. A fresh Skyblock island and a fresh OneBlock island can therefore hand out entirely different gear. Offsets are whole blocks relative to the island home; sign lines are MiniMessage; each chest item is slot / material / amount. Containers may be CHEST, BARREL, SHULKER_BOX, and so on. This kit is layered on top of whatever terrain the mode generates, so leave enabled: false to ship only the generated start.
starter-content:
enabled: false
chests:
- material: CHEST
offset: { x: 1, y: 0, z: 0 }
items:
- { slot: 0, material: OAK_LOG, amount: 16 }
- { slot: 1, material: ICE, amount: 2 }
- { slot: 2, material: LAVA_BUCKET, amount: 1 }
- { slot: 3, material: BONE_MEAL, amount: 16 }
signs:
- offset: { x: 0, y: 1, z: 1 }
lines: ["<gold>Welcome!", "<gray>Good luck on", "<gray>your island.", ""]An unplaceable block, an unknown material, or an offset outside the world is skipped silently; the rest of the kit still places. Block edits run on the island's own region thread, so this is Folia-safe.
Hosting and Nether / End
How a mode's islands are physically stored is a separate decision from the mode itself, covered on World Hosting Strategies. In short: grid packs many islands into one shared world, world_per_island gives every island its own world copied from a template, and server_shared spreads them across a network.
Per island Nether and End are on by default. Each island's Nether sits directly under its overworld claim, reachable with /is nether, /is end, or /is home nether. Portals inside an island relink to that island's own cell.
Per-island Ender Dragon
With the End enabled, the island owner can summon a real Ender Dragon into their own End cell with /is dragon. Because the vanilla pillar fight is a single per-world boss anchored at 0,0, IgniteSky spawns a self-contained dragon instead and anchors it inside the island's cell so it never drifts into a neighbour. On death it pays out a configurable reward, optionally drops a dragon egg, then the island goes on cooldown.
dragon:
enabled: true
cooldown-minutes: 60
health: 200.0 # vanilla dragon is 200
drop-egg: true
spawn-height: 25 # blocks above the End cell floor it spawns / is recalled to
anchor: # how far the dragon may stray before being pulled back into its cell
y-below: 8
y-above: 90
check-ticks: 40 # watchdog interval (20 ticks = 1s)
reward:
bank: 50000
commands:
- "broadcast {owner} slew their island dragon!"The reward uses the shared reward object, so it can grant money, a bank deposit, items, console commands and sound/title effects. Cooldowns reset on a server restart.
Setting the default and the lineup
island:
# skyblock | oneblock | chunkblock
default-mode: skyblock
modes:
skyblock:
hosting: grid
oneblock:
hosting: grid
chunkblock:
hosting: world_per_islandThe modes block decides which modes exist and how each is hosted. To take a mode off the create menu without removing its hosting, set selectable: false in its modes/<mode>.yml file (see Per-mode files).
Maps
A map is a selectable template within a mode: after a player picks a mode they pick a map, each with its own world and look. ChunkBlock uses the map's seed to give genuinely different natural terrain (Highlands vs Badlands); the void modes mostly use it to distinguish worlds and the selection tile. Maps live in islands/maps.yml.
maps:
classic:
mode: skyblock
display: "<green><bold>Classic"
icon: GRASS_BLOCK
description: ["<gray>The original skyblock start."]
seed: 0 # chunkblock: terrain seed; others cosmetic. 0 = fixed-random
previewable: true # show a "Preview" orbit button before creating
badlands:
mode: chunkblock
display: "<gold><bold>Badlands"
icon: RED_SAND
description: ["<gray>Mesa canyons, rich gold."]
seed: 1234567
previewable: falseEach map id must be unique across all modes (it names the world folder). Remove every map of a mode to fall back to a synthesized default. Offer several maps per mode to give players a real choice of start.