Configuration
ShadowAcidIsland
Skyblock with an acid sea instead of the void, and a tide the whole server feels.
Where the files are
plugins/ShadowAcidIsland/ The plugin creates them on first start and updates them by itself on new versions, keeping your changes.
Applying changes
/island admin reload Reloads the files without restarting the server.
No setting found
Try another word, or search every plugin.
Settings
The files that decide how the plugin behaves. Start here.
config.yml
General settings 109 settings
config.ymlplugins/ShadowAcidIsland/config.yml File notes
The island module of the Shadow suite.
A note on language
This file, like every other config, is written in English: keys, values and comments. The only text that is translated is the text a player reads - messages, menu titles, item names and lore - and that lives in its own file (see "messages.language" further down).
Keep reading
WORKING WITH THE REST OF THE SUITE
There is nothing to set up: ShadowAcidIsland finds ShadowEssentials, ShadowPermissions, ShadowRegions and an economy plugin by itself when they are there, and works just the same when they are not. To see what it hooked into and what it did not, in game: /island suite
UPDATING
On update your files are moved to the new version automatically: everything you changed is kept, new options arrive with their defaults. The files as they were before are in backup/<date>/, and if something needs your attention you will find PORTING-<version>.txt in this folder, saying what to fix by hand.
Where islands, members, upgrades and missions are stored
Out of the box: an H2 database inside plugins/ShadowAcidIsland/data/. Nothing to install, nothing to configure, works straight away.
Keep reading
Move to MySQL (mysql.enabled: true) if you run a real server, if you want the backups to sit with those of your other plugins, or if several servers have to share the same islands. The database you name must already exist and the user must be allowed to create tables in it: the plugin does the rest.
storage5 keysstorage.mysql7 keysenabledfalsehost"127.0.0.1"port3306database"shadowacidisland"username"root"password""parameters"useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8"Appended to the JDBC connection string.
storage.h21 keyauto-serverfalsetrue = you can open the file with DBeaver while the server is running.
storagefallback-to-localtruetrue = when MySQL is configured but does not answer, the plugin falls back to the local database instead of refusing to start. Set it to false only if you would rather have a failed start than islands saved in the wrong place.
table-prefix"sai_"Prefix put in front of every table the plugin creates. Useful when the same database is shared with other plugins or services. KEEP IT DIFFERENT from the other island modules of the suite (ShadowSkyBlock uses "ssb_"): two game modes sharing one MySQL database must not share their tables, or one mode's islands end up inside the other's.
storage.pool5 keysmaximum-pool-size10minimum-idle2connection-timeout-ms10000idle-timeout-ms600000max-lifetime-ms1800000island29 keysstarting-radius20Starting radius of an island, in blocks from its centre.
spacing250Distance between the centres of two islands side by side on the world grid. It has to be more than twice the largest radius reachable, or neighbouring islands could touch and their protections overlap.
height101The height (Y) islands are generated at. In this mode it is not a free number: it has to sit ABOVE "acid.world.sea-level" further down, or the starting island is generated underwater and a new player drowns in acid the moment they arrive. Sea level 100 + 1 = 101 puts the island's grass exactly one block clear of the water, which is the classic look.
world-name"acidisland_world"Name of the world given over to acidisland. Created if it is not there.
island.delete-cooldown3 keysHow long a player waits between deleting one island and the next, so nobody can create and delete on repeat (to farm the starter chest, for one). The first deletions are free: the wait starts from the "after-deletions"-th onwards.
enabledtrueafter-deletions2From which deletion the wait kicks in (2 = the first is free, from the second onwards there is a wait).
seconds600island.default-rules8 keysWhat the rules of an island start as. Every owner can then change them for their own island from /island settings -> Island Rules; until they do, the island follows what is written here - so changing a value here changes it for every island nobody has touched.
NOTE: these are not Minecraft gamerules. A gamerule covers a whole world and every island shares the same world, so the plugin applies these island by island by watching the events.
mob-griefingfalseMobs that break or change blocks: creepers, endermen, ghasts, sheep eating grass, villagers farming.
hostile-spawningtrueNatural spawning of hostile mobs inside the island. Spawners, eggs and breeding stay allowed even with this off.
animal-spawningtrueNatural spawning of animals and other passive mobs inside the island.
pvpfalseWhether players can hit each other on the island.
fire-spreadfalseFire spreads and eats blocks.
tnt-damagefalsePlayer explosions (TNT, beds in the Nether) break blocks.
leaf-decaytrueLeaves cut off from a log decay on their own.
keep-inventoryfalseDying on your OWN island does not cost you your inventory. See "allow-keep-inventory-choice" below: whether the owner gets to choose it, or whether it stays locked to this value for everybody.
islandallow-keep-inventory-choicetrueWith false, the "keep-inventory" rule above is locked for the whole server: the button disappears from the Island Rules menu and only the default just written counts, ignoring whatever owners had saved before. With true (the default) every island turns it on and off for itself.
allow-sethometrueWith true, the owner - or a member holding SET_HOME - can move with /island sethome the exact spot the island brings them back to: respawn after death, falling into the void under the island, coming back from a private portal and /island home all point there instead of the island's centre. With false the command is off and the centre is always used.
clear-drops-on-home-teleporttrueWith true, every time a player is brought back to their island's home - death, a fall into the void, the way back from a private portal, /island home - the plugin first clears every item lying on the ground of that island: no mess and no lag piling up over time. CAREFUL: it only touches items on the ground, never what is inside a chest or any other container, but it destroys them for good even when they were left there on purpose (a swap between members, say). Turn it off if you would rather tidy up by hand.
island.portals2 keysThe server's SHARED Nether and End - the real ones, belonging to the main world - are not this plugin's business: set them up yourself with Multiverse or another world plugin if you want them. By default a portal built on an island stays decorative: it lights up but takes nobody anywhere, which is deliberate now that each island has its own PRIVATE Nether and End (see below). A portal that does nothing beats players dropped into the shared Nether of an ordinary survival server.
allow-netherfalseWith true, a Nether portal lit on an island really does lead to the server's Nether (the one tied to the "island.world-name" world).
allow-endfalseWith true, an End portal or gateway lit on an island really does lead to the server's End.
islandprivate-nether-world-name"acidisland_world_nether"When allow-nether/allow-end are false (the default), every island gets a small PRIVATE platform in the Nether and in the End instead, inside two void worlds shared by all the islands - not one world each, far too heavy. They are reached through a real portal lit on your own island (12 Ender eyes for the End, exactly as usual): the plugin builds both the platform and the way back, already lit. /island end stays a direct shortcut, handy before a real End portal has been built.
private-end-world-name"acidisland_world_the_end"private-platform-radius-nether2Radius of the two private platforms (2 = 5x5, 4 = 9x9), each on its own.
private-platform-radius-end4private-platform-material-nether"NETHERRACK"Materials the private platform and portal are built from. Each has to be a valid Bukkit Material name ("NETHERRACK", "END_STONE", "OBSIDIAN"); a misspelt one is reported in the log and the default is used.
private-platform-material-end"END_STONE"private-portal-frame-material"OBSIDIAN"private-nether-schematic"PrivateNether.schem"The name of a file inside plugins/WorldEdit/schematics/ (WorldEdit or FastAsyncWorldEdit needed) to paste in place of the plain flat platform, centred on X/Z over the centre of the private structure, its base at the right level, the FIRST time that island needs one. Leave it empty ("") for the classic flat platform, which is always available even without WorldEdit. In the Nether every non-air block pasted is recoloured using "private-nether-block-mix" below; in the End the schematic is left exactly as you made it, with no portal added by the plugin.
private-end-schematic"PrivateEnd.schematic"private-nether-structure-radius15A horizontal radius used ONLY to work out whether the schematic was already pasted once, since its real size is unknown until it is pasted the first time: it has to cover at least half the width of your structure. Ignored when no schematic is configured, where the flat platform's own radius is used instead.
private-end-structure-radius15island.private-nether-block-mix6 keysThe mix of typical Nether blocks used to recolour the private Nether schematic after pasting. Every number is a relative weight rather than an exact percentage: the higher, the more common. Leave the section empty to keep the schematic's own blocks.
NETHERRACK70BLACKSTONE10BASALT8SOUL_SAND6SOUL_SOIL4MAGMA_BLOCK2islandprivate-nether-keep-inventorytrueDying in the private Nether or End does not cost the inventory. This is a server-wide switch, not a per-island one like "default-rules.keep-inventory" above, and it ships on because death in those two dimensions is nearly always a fall, not a risk the player chose to take.
private-end-keep-inventorytruevoid-catch-min-y30Below this Y - in the main island world, or on a private Nether/End platform - a falling player is put back at the home of THEIR island, or at spawn when they have none, instead of falling through the void forever. It does not cover the hub area, which has its own threshold in spawn.region.min-y. Keep it BELOW "acid.world.sea-bottom-y": with an ocean floor there is nothing left to fall into, and a value inside the sea would teleport away anybody who swims deep enough instead of only somebody falling.
leaderboard-size10How many rows each /island top leaderboard shows.
island.starter-platform8 keysThe classic starter platform, used when WorldEdit/FAWE is not installed or the player picks no schematic from island_schematics/: a lump of dirt with a tree and a chest. Every Material below has to be a valid Bukkit name; a misspelt one is reported in the log and the default is used.
surface-material"GRASS_BLOCK"subsurface-material"SAND"log-material"OAK_LOG"leaves-material"OAK_LEAVES"chest-material"CHEST"sign-material"OAK_SIGN"include-water-bucketfalseOFF here, unlike the skyblock this mode comes from, and on purpose: a bucket of water is a gift only where there is no water. Here the player is standing in the middle of an ocean and can fill a bucket anywhere - what the acid takes away is the SAFETY of that water, not the water. Turn it on if you would rather have the block already placed next to the chest.
water-material"WATER"islandspawn-anchor-material"DIRT"The material forced under a player's feet when they first appear at the centre of an island made from a SCHEMATIC - not the classic platform above. The highest solid block found there (leaves ignored, so a tree over the centre does not spawn them in the canopy) is replaced with this, so the spawn is always the same predictable block instead of whatever the schematic happened to put exactly in the middle.
disable-thunderstormstrueWith true, no thunderstorms in the acidisland world. Weather in Minecraft belongs to a whole world rather than to one area, so this covers all of "world-name", islands included; but since every island still has its own PERSONAL weather (see island.default-rules above, shown to that player only), real lightning stays a nuisance worth switching off here.
Acid
What makes this an AcidIsland and not a Skyblock.
acid12 keysThe whole island engine below this line is shared with the rest of the suite. This section is the difference: the world is an ocean instead of a void, and that ocean burns.
Keep reading
Two things build on it, each with its own file:
- acid_tides.yml the acidity rises and falls in a cycle everybody
sees, and the worst phase is the only one that pays
- purifier.yml an island can push the acid back, a ring at a time,
as long as it keeps the purifier runningenabledtrueThe master switch. With false the ocean is ordinary water and this plugin behaves exactly like the skyblock it comes from - useful to compare, or to run the island engine without the mode on top of it.
check-interval-ticks10How often the plugin looks at who is standing in the acid, in ticks. 10 = twice a second. Lower is not "more damage", it is more damage ticks: raise "damage" to hurt more, lower this only if half a second of grace after diving in feels too generous.
damage2.0Damage per check, in half-hearts (2.0 = one full heart). At the default settings a player with no protection loses about two hearts a second.
damage-bypasses-armourtrueWith true the damage ignores armour, which is what makes the protective suit and the purifier worth having: without it a diamond set alone would already answer the whole mode. With false acid behaves like any ordinary damage and armour soaks it up.
effectstrueBubbles and a hiss when the acid bites. Pure feedback, no gameplay.
hub-is-safetrueThe water inside the hub area (see the "spawn.region" section) does not burn. Leave this on unless you know why you are turning it off: the hub sits at sea level, so anybody who steps off its edge lands in the water, and a floating player never sinks far enough for the hub's own safety net to fetch them back - they would just burn next to spawn, usually before they even have the leather suit. The acid starts where the hub ends.
crystal-island-points5How many island points a harvested acid crystal is worth (see acid_tides.yml). 0 = crystals pay money and items only.
acid.rain2 keysenabledtrueAcid rain: standing in the open while it rains hurts too. A roof - even a single slab - is enough to stop it, and an island set to "always clear" from /island rules does not take it (what a player sees is what hurts them).
damage1.0acid.mobs2 keysenabledfalseOFF out of the box, and not out of caution: with this on, every animal that wanders into the sea dies and leaves its drop, so the world slowly fills with items nobody put there. Fish, squid, dolphins and guardians are always spared - they live in this water, and burning them would make sea farming impossible in a mode made of sea.
damage1.0acid.protection4 keysboattrueA boat keeps you out of the water, so it keeps you out of the acid.
armour-materials[LEATHER_HELMET, LEATHER_CHESTPLATE, LEATHER_LEGGINGS, LEATHER_BOOTS]+2
The hazmat suit. Wearing "armour-pieces-for-immunity" of these makes a player immune; wearing fewer does NOT reduce the damage, on purpose - three pieces out of four has to be a problem to solve, not a discount to shrug at. Leather is the classic choice: cheap enough to be the first real goal of a new island, and useless in a fight.
armour-pieces-for-immunity4immune-effects[CONDUIT_POWER]Potion effects that make a player immune while they last.
acid.affliction3 keyseffect"SLOWNESS"What the acid leaves behind besides the damage. "none" for nothing. A short slowness is the point: being caught in the open water has to be harder to escape than to enter.
duration-ticks40amplifier0The ocean itself
READ THIS BEFORE CHANGING ANY OF IT: these values are baked into the world the first time it is generated. Chunks already on disk keep the shape they were born with, so changing sea level or depth later only affects chunks nobody has visited yet - and the seam between the old and the new is permanent. To really change the sea, change "island.world-name" and start a new one.
acid.world5 keyssea-level100Y of the last water block: the first block of air is one above. "island.height" has to be above this or islands generate underwater.
sea-bottom-y40Y of the first water block from the bottom. The default gives a sea sixty blocks deep, which reads as bottomless while you are swimming in it and costs a fraction of an ocean drawn from the world floor.
water-material"WATER"The liquid the sea is made of. WATER is the mode; put LAVA here and you have written a different game, which is allowed.
floor-material"BEDROCK"A single layer right under the sea, at "sea-bottom-y" - 1. BEDROCK on purpose: it closes the world downwards - no endless fall, no void-catch firing at somebody who is only diving - and gives away nothing. Sand or stone here would hand every player an infinite mine and end the island economy in an afternoon. Leave it empty ("") for a bottomless ocean with the void underneath.
biome"WARM_OCEAN"Only decides the colour of the water, which in a mode built around the sea is not a detail: a frozen ocean and a tropical one tell two different stories.
spawn10 keysWhere a player is sent when they have no island to go back to - right after /island delete confirm, for instance. CAREFUL: islands are laid out along the X axis starting at x=0.5 (slot 0) and only ever go positive (slot*spacing), so keeping "x" below negative guarantees this point never falls inside an island, present or future. When there is no block under it yet, the plugin builds a small platform itself on the first start (see ShadowAcidIslandPlugin#ensureSpawnPlatform). Change these to send players to your real hub or lobby.
world"acidisland_world"x-499.5NOTE: to stand in the middle of block X=-500 the right value is -499.5, not -500.5 (a Location rounds down: -500.5 falls in block -501). Always check it this way when changing these numbers: you want block N, you write N + 0.5, never N - 0.5.
y101.0One block above sea level, so the hub platform sits flush with the water instead of floating over it: the plugin builds that platform at y - 1 (see ensureSpawnPlatform), which lands exactly on the surface of the acid. Raise both this and "region.min-y" together if you would rather have the hub high above the sea.
z2.5yaw0.0pitch0.0schematic""The name of a file inside plugins/WorldEdit/schematics/ (WorldEdit or FastAsyncWorldEdit needed) pasted here automatically - centred on X/Z, its base at "y" - the FIRST time the block at these coordinates is still air. It is the same check used for the safety platform under spawn, which is indeed skipped when something is written here. Leave it empty ("") for the plain quartz platform. To change it or paste it again later, use /island admin pasteschem rather than editing this value, which only counts on the first start.
Keep reading
Empty out of the box: a hub schematic is built for a given height, and this mode puts spawn at sea level rather than up in the air. Paste your own with /island admin pasteschem once you have one that fits, or write its name here before the first start.
platform-material"SMOOTH_QUARTZ"Material and radius of the plain safety platform built under spawn when "schematic" above is empty. Ignored when it is set.
platform-radius4spawn.region4 keysThe protected hub area: a rectangle centred on the x/z above, for the full height of the world. Inside it players can use what is already placed - furnaces, enchanting tables, levers - but not break it or place anything new, no mob spawns (hostile or peaceful), and ender pearls do not work. Anyone who drops below "min-y", by falling off the edge of the hub, is brought back here to spawn: it replaces the old invisible barrier blocks, with nothing left to place by hand in the world.
enabledtrueradius-x60radius-z60min-y90IMPORTANT: it has to sit BELOW the "y" above, the floor players walk on, or they are teleported at every step instead of only when they really fall out of the structure. The plugin never lets it go past "y - 1" anyway, as a safety net. Here it doubles as the "the acid spat you back out" line: somebody who falls off the edge of the hub sinks a few blocks and is returned to spawn rather than being left to swim.
messages2 keyslanguage"en"The language the plugin speaks to players in. It names a file inside plugins/ShadowAcidIsland/lang/, so "en" reads lang/en.yml and "it" reads lang/it.yml: the plugin ships these two, English by default.
Keep reading
Only what a player reads is translated: chat messages, menu titles, item names and lore. Commands, config keys and comments stay English everywhere, so a guide, a macro or a support answer works whatever language a server runs in.
To add your own: copy lang/en.yml to lang/<code>.yml, translate the values - never the keys - and write that code here.
prefix"&b[ShadowAcidIsland] &r"Licence
ShadowAcidIsland is a Premium plugin. With no valid key it does not start: the console says why at start-up, and /island license is the only command that answers, so the key can be activated. Then restart the server.
Keep reading
The key does NOT go here. You activate it in game with
/island license claim <purchase code>
and it ends up in license.yml, a separate file on purpose - so a support request that says "send me your config" does not arrive with your licence inside it. The "key" field below is only for people who would rather ship the same configuration to several servers.
license4 keysTHE KEY LIVES IN license.yml (same folder as this file), or in the central plugins/ShadowControl/licenses.yml for the whole suite. The 'key' below is only a fallback for deploy systems that generate config.yml: leave it empty.
The key does NOT live here: it lives in license.yml, in this folder, written at first start (or in plugins/ShadowControl/licenses.yml for the whole suite).
grace-days7Days of grace before the licence stops counting when a subscription has just run out or the address does not match - far more often a NAT or a proxy than a theft. 0-60.
activation-url""Base address of the activation service. The plugin appends /claim and /check itself. Empty = manual activation with a key only.
resolve-public-iptrueAsks the ShadowMC licence service which public address this server has: activation-url + /ip, or https://shadow-licences.riccardobotins.workers.dev/ip while activation-url is empty. It answers with the address it sees, and nothing about the server is sent. It is the only reliable way to know from behind a NAT, and it is what makes a licence sold for "play.example.net" work on a machine whose local addresses are all 10.x. false = never ask. Only when a licence is installed: a server without a key asks nobody.
server-ip""The address this server is known by, when it differs from the ones it can see for itself. Only needed when a licence looks tied to another address despite being the right one.
bStats (anonymous usage statistics, https://bstats.org)
What is sent, every 30 minutes: how many servers run the plugin, the plugin version, the Minecraft/Paper version, the Java version, the operating system and core count, how many players are online (a number, nothing else), the edition of the licence in use and which economy moves the island money (ShadowEconomy, Vault or none). The server is identified only by a random serverUuid, generated once and stored in plugins/bStats/config.yml.
Keep reading
No player data leaves at all: no names, no UUIDs, no addresses, no coordinates. With no valid licence the plugin does not start, and nothing is sent either.
false here turns off only ShadowAcidIsland. enabled: false in plugins/bStats/config.yml - the file shared by every plugin that uses bStats - turns them all off at once. Read at start-up: a change takes effect at the next restart.
metrics1 keyenabledtrue acid_tides.yml
Acid tides 13 settings
acid_tides.ymlplugins/ShadowAcidIsland/acid_tides.yml File notes
This file ships in English. Its Italian version is esempi/it/acid_tides.yml, next to this one in the plugin folder, and the plugin never reads it: to run the Italian one, copy it over this file and use /island admin reload. The messages and menus follow "messages.language" in config.yml on their own; this file is content you write, so it stays as it is.
ShadowAcidIsland - acid_tides.yml
The acid tide: the ocean's acidity rises and falls, and everybody on the server lives through the same phase at the same time.
Why it exists
An acid ocean with one fixed damage number is learned in ten minutes: you find out how much it hurts, you put the right armour on, and from then on the sea is scenery. The tide gives that same sea a decision again every time a player looks at it - cross now, or wait? Finish the build on the edge, or come inside? - without asking them to learn a single new mechanic. It only changes how dangerous something they already understand is, and it always says so in advance.
Keep reading
AND THE OTHER HALF
The worst phase is the only one that pays: during a storm the acid crystallises on the surface and can be harvested for money. Risk and reward rise together, so the storm is an event to take part in rather than a tax to sit out.
FREE. This is not a Premium feature and it is not cut down in any way without a licence key: the tide is what the mode IS, and charging for it would mean selling the game rather than the scale.
enabledtrueThe master switch for the whole cycle.
bossbartrueThe bar at the top of the screen with the phase in progress and how long is left of it. Only shown to players inside the island world: to anybody else the tide does nothing, and a bar that does not concern them would take the space of one that does.
announcetrueAnnounce a phase change in chat, and warn before it happens.
warning-seconds60How many seconds before a phase ends players are told what is coming. This is the number that makes the tide fair: a punishment nobody saw coming is unfair, one you watched approach is a choice. 0 = no warning.
The cycle
The phases run in the order written here and then start again from the top. Nothing is random, on purpose: a player has to be able to say "the storm is in ten minutes, I had better wrap up", and a tide that rolls dice takes exactly that away.
Keep reading
Per phase:
id internal name, used by %sai_tide_id%
name what the player reads, with colour codes
color the bar's colour: PINK, BLUE, RED, GREEN,
YELLOW, PURPLE, WHITE
duration-seconds how long it lasts
damage-multiplier multiplies acid.damage from config.yml
(0 = harmless water for this phase)
rain-damage-multiplier the same, for acid.rain.damage
crystals true = crystals surface during this phase
purifier-drain-multiplier how much faster an island's purifier burns
through its charge, and how much its bubble
shrinks while the phase lasts
force-storm true = the sky is put to rain when the phase
begins (no thunder: see
island.disable-thunderstorms)The cycle below is written as one hour: forty quiet minutes, ten of warning, ten of storm. Keep that shape if you change the numbers - the dangerous part has to be the short part, or players simply stop going outside.
phases[{ id: bassa-marea, name: "&aLow tide", color: GREEN, duration-seconds: 1200, damage-multiplier: 0.5, rain-damage-multiplier: 0, crystals: false, purifier-drain-multiplier: 0.5, force-storm: false }, { id: marea-normale …+3
Acid crystals
During a phase with "crystals: true", glowing blocks form on the water around every island that has somebody online. Breaking one pays; the block itself is never dropped, so it is not a mine. What is left when the storm ends dissolves back into water, and anything a crash leaves behind is cleaned up on the next start.
crystals8 keysenabledtruematerialSEA_LANTERNThe block a crystal is made of. Pick something that glows and that nobody would mistake for part of a build.
per-island3How many can exist at once around one island. The cap is per island, so a big server does not end up with a sea of lanterns.
spawn-interval-seconds45How often the plugin tops each island back up to that cap.
min-distance-from-centre8Crystals never form closer than this to the island's centre: the point is to make the player swim for it, and one that surfaces on the doorstep is picked up without ever entering the water.
money-reward150Paid to the player who harvests it, not to the island bank: the person who swam into the acid is who took the risk.
item-rewards[PRISMARINE_SHARD, PRISMARINE_CRYSTALS, NAUTILUS_SHELL]+1
Drawn at random, one per crystal, on top of the money. Leave the list empty for money only.
item-reward-amount1 economy.yml
The island economy 5 settings
economy.ymlplugins/ShadowAcidIsland/economy.yml File notes
Everything money-related in one file, kept out of config.yml so you do not have to hunt for it among unrelated settings.
ShadowAcidIsland ships no economy of its own. Money features need an economy: ShadowEconomy, or Vault with an economy plugin. - ShadowEconomy is used directly whenever it is installed, with or
without Vault.
- Otherwise any economy plugin registered in Vault: EssentialsX, CMI
and the like (see the manual).
With neither, everything below (island bank, money costs and rewards of upgrades/missions/perks/purifier, acid crystal money) switches itself off in the menus instead of throwing errors. /island suite shows which economy was hooked.
currency''The ShadowEconomy currency island money is counted in: bank, costs, rewards and the balance placeholders. Leave it empty ('') for ShadowEconomy's default currency. A name ShadowEconomy does not have falls back to the default one, with a warning in the console. Vault has a single currency, so with Vault this setting is ignored.
bank4 keysstarting-balance0Starting balance of the shared bank when an island is created.
min-transaction0.01Smallest and largest amount for a single deposit or withdrawal, both from /island bank deposit|withdraw and from the bank menu.
max-transaction1000000history-size200How many movements the bank menu keeps available in its history (/island bank -> History). Display only: every transaction is stored in the database for good either way.
generators.yml
Generators 5 settings
generators.ymlplugins/ShadowAcidIsland/generators.yml File notes
This file ships in English. Its Italian version is esempi/it/generators.yml, next to this one in the plugin folder, and the plugin never reads it: to run the Italian one, copy it over this file and use /island admin reload. The messages and menus follow "messages.language" in config.yml on their own; this file is content you write, so it stays as it is.
The island ore generator.
When lava and water meet inside an island, the block that would normally be cobblestone is replaced with one drawn from this table. Every island has its own "prestige" level: the higher it is, the richer the table of materials. Prestige is bought from the generator menu (/island generator) and counts for every member of the island.
The numbers under "materials" are WEIGHTS and do not have to add up to 100: they are normalised on their own. 50/30/20 and 5/3/2 give the same result. The menu always shows the real percentage it worked out.
How this table is meant to progress: each prestige takes 4 points off cobblestone, gives 2 to the ore the previous prestige unlocked, and lets the new ore in at 2%. The item cost of a prestige always asks for the ore of the prestige BEFORE it - never the one it is about to unlock - so you are never asked for an ore you have no way of getting yet.
enabledtruefallback-materialCOBBLESTONEUsed only when a prestige has no valid material (a config typo): this way the generator never stops working altogether.
prestiges9 keysprestiges.02 keysdisplay-name"&7Basic"prestiges.0.materials2 keysWhere every island starts: free, there is nothing to buy.
COBBLESTONE97COAL_ORE30:
1, 2, 3, 4, 5, 6, 7, 8 island_levels.yml
Island levels 11 settings
island_levels.ymlplugins/ShadowAcidIsland/island_levels.yml File notes
Sets how an island's "level" is worked out. The level is shown on the scoreboard (%island_level%) and comes from the points an island collects.
Every time a member places one of the blocks listed below inside their own island, the island earns the points shown; breaking it takes them back (never below zero). Blocks that are not listed are worth 0 points, so they do not move the level at all. The level itself is simply:
level = island_points / points-per-level (rounded down)
NOTE: this is an incremental count - it follows what players place and break from the moment the feature is on - and not a full scan of the blocks already standing. An island built before this was switched on starts from zero and grows from there.
points-per-level100blocks10 keysDIRT1COBBLESTONE1STONE2OAK_LOG3OAK_PLANKS1IRON_BLOCK25GOLD_BLOCK50DIAMOND_BLOCK200EMERALD_BLOCK150NETHERITE_BLOCK500 island_scoreboard.yml
The island scoreboard 5 settings
island_scoreboard.ymlplugins/ShadowAcidIsland/island_scoreboard.yml File notes
The side panel with the island's statistics.
This one ships switched off, and that is on purpose
Minecraft gives a player one sidebar, and on this suite one plugin owns it: ShadowEssentials, everywhere - lobby, survival, minigames and islands. On an island it does not show lobby things: it draws its own "acidisland" board, and asks us for the level, the members, the radius and the bank. One sidebar, consistent across the server, and neither plugin fighting the other for it every tick.
This one is still worth having in two cases:
- ShadowEssentials is not installed (acidisland without the hub); - you want it, different from the hub's, on the islands only.
For either: set "enabled: true" below and, if ShadowEssentials is there, "scoreboard.yield-to-acidisland: true" in its modules/tablist.yml. If the plugin spots a clash it cannot settle on its own it switches its own board off and writes in the console what to change: you will never find both of them on at once.
enabledfalseThe master switch for this scoreboard.
only-in-acidisland-worldtrueOnly read when "enabled" above is true. It says WHERE a board that shows shows, and a board that is off has nothing to place: with "enabled: false" this scoreboard appears nowhere, whatever is written here.
true = only in the island world (island.world-name in config.yml)
false = in every world. Use it only once ShadowEssentials' own board is off,
or the two overlap outside the acidisland world.enabled-by-defaulttrueWhat a player who has never chosen from /island settings (or /island scoreboard) sees the first time they join.
update-interval-ticks20title"&b&lShadowAcidIsland"The lines, top to bottom (15 at most, Minecraft's own limit). They are text a player reads, so they are not written here: they come from the language file, in the server's language ("scoreboard.lines" in lang/<language>.yml, the one "messages.language" in config.yml picks). To draw your own board, write "lines:" in this file - yours win, in every language. The placeholder names stay English. For instance:
lines: - "&7" - "&f%player_name%" - "&7Money: &a%player_money%" - "&7" - "&fIsland: &b%island_name%" - "&7Level: &e%island_level%"
Player placeholders:
%player_name% the name of whoever is looking at the board %player_money% their own money (needs an economy plugin) %has_island% yes/no in the server language (lang: scoreboard.has-island-yes/-no)
Rank placeholders, read through the suite (ShadowEssentials -> ShadowPermissions, LuckPerms or Vault). Empty when none is installed:
%rank_prefix% the rank's prefix %rank_suffix% the rank's suffix %rank_group% the name of the main group
Island placeholders:
%island_name% the island's name (built from its owner) %island_owner% the owner's name %island_role% the role of whoever is looking (lang: scoreboard.owner-role if theirs) %island_level% the island's level (see island_levels.yml) %island_members% members right now, owner included %island_max_members% the member limit %island_radius% the island's protected radius, in blocks %island_bank% money in the island's shared bank
Acid mode placeholders:
%tide% the tide phase in force ("-" when tides are off)
%tide_time% how long is left of it
%island_purifier_radius% blocks of safe water around the island now
%island_purifier_time% how much charge the purifier has leftA line whose placeholder does not apply - %island_level% for somebody with no island - is skipped on its own.
missions.yml
Missions 8 settings
missions.ymlplugins/ShadowAcidIsland/missions.yml File notes
This file ships in English. Its Italian version is esempi/it/missions.yml, next to this one in the plugin folder, and the plugin never reads it: to run the Italian one, copy it over this file and use /island admin reload. The messages and menus follow "messages.language" in config.yml on their own; this file is content you write, so it stays as it is.
Missions shown in the "Missions" menu (reached from the control panel, /island panel). Add, remove or change as many as you like: the menu adapts itself.
Every mission has:
display: material/name/lore shown in the menu. Name and lore are text
a player reads, written right here: this file ships in
English (see the top of the file for the Italian one).
scope: who carries the progress:
PLAYER - every player has their own separate progress
ISLAND - progress is shared by every member of the island
objective: what has to be done.
type: one of the many types available (full list below).
material: optional - when present it filters for that block/item
(type: BREAK_BLOCK + material: STONE = stone only).
Left out, the event counts whatever the material is.
custom-name: optional, ONLY for type: CUSTOM_ITEM_OBTAIN - asks for an
item carrying this exact name (from any item plugin, Oraxen
for instance) instead of any vanilla material.
amount: how many times it has to be done - or how much has to pile
up, for the "cumulative" types listed below - to finish it.
rewards: rewards handed out ONCE on completion. Every reward has a
"type":
MONEY - { type: MONEY, amount: 500 } (needs ShadowEconomy, or Vault with an economy plugin)
COMMAND - { type: COMMAND, command: "..." } (run from the console, %player% replaced)
MESSAGE - { type: MESSAGE, text: "..." }
ITEM - { type: ITEM, material: DIAMOND, amount: 3 }Objective types available (type):
BREAK_BLOCK, PLACE_BLOCK, PLANT_SEED, HARVEST_CROP, FISH_CATCH, CRAFT_ITEM, SMELT_ITEM, ENCHANT_ITEM, TAME_ANIMAL, BREED_ANIMAL, SHEAR_SHEEP, FILL_BUCKET, EMPTY_BUCKET, EAT_FOOD, KILL_MOB, KILL_PLAYER, DIE, JUMP, SHOOT_ARROW, HIT_ARROW_TARGET, OPEN_CONTAINER, RIDE_ENTITY, SLEEP_IN_BED, PURCHASE_UPGRADE, INVITE_MEMBER, CUSTOM_ITEM_OBTAIN - "cumulative" (amount adds up the real value, not always +1): DEAL_DAMAGE, TAKE_DAMAGE (damage points), WALK_DISTANCE, SWIM_DISTANCE, ELYTRA_DISTANCE (blocks travelled), GAIN_EXPERIENCE (experience points), LEVEL_UP (levels gained), DEPOSIT_BANK_MONEY (coins deposited)
missions5 keysmissions.break_stone_14 keysmissions.break_stone_1.display3 keysmaterialSTONEname"&fNovice Miner"lore["&7Break &e100 &7stone blocks"]missions.break_stone_1scopeISLANDmissions.break_stone_1.objective3 keystypeBREAK_BLOCKmaterialSTONEamount100missions.break_stone_1rewards[{ type: MONEY, amount: 500 }, { type: MESSAGE, text: "&aMission complete: Novice Miner!" }]+1
break_stone_1:
place_dirt_1, fisherman_1, walker_1, gladiator_1 player_upgrades.yml
Player upgrades 8 settings
player_upgrades.ymlplugins/ShadowAcidIsland/player_upgrades.yml File notes
This file ships in English. Its Italian version is esempi/it/player_upgrades.yml, next to this one in the plugin folder, and the plugin never reads it: to run the Italian one, copy it over this file and use /island admin reload. The messages and menus follow "messages.language" in config.yml on their own; this file is content you write, so it stays as it is.
Personal perks (temporary boosts). Unlike island upgrades, these belong to the single player who bought them - or was given them - and the other members of the same island do NOT get them unless they buy or receive their own. You can buy one for yourself (cost-self), for every member of your island at once (cost-team, usually dearer), or gift one to a named player (same price as cost-self).
Every perk has:
display: material/name/lore shown in the menu. Name and lore
are text a player reads, written right here: this
file ships in English (see the top of the file for
the Italian one).
effect: a Minecraft PotionEffectType (JUMP_BOOST, SPEED,
HASTE, REGENERATION, FIRE_RESISTANCE, WATER_BREATHING,
NIGHT_VISION, SATURATION, LUCK, and so on)
amplifier: the level of the effect (0 = level I, 1 = level II, ...)
duration-seconds: how long it lasts (86400 = one day)
cost-self / cost-team: same format as upgrades.yml -> costperks4 keysperks.jump_boost6 keysperks.jump_boost.display3 keysmaterialRABBIT_FOOTname"&dJump Boost II"lore["&7Jump higher for 2 days"]perks.jump_boosteffectJUMP_BOOSTamplifier1duration-seconds172800perks.jump_boost.cost-self1 keymoney2000perks.jump_boost.cost-team1 keymoney15000jump_boost:
speed_boost, haste_boost, regeneration_boost purifier.yml
The purifier 26 settings
purifier.ymlplugins/ShadowAcidIsland/purifier.yml File notes
The island purifier: the bubble of safe water an island builds around itself, and has to keep running.
Why it exists
In an acid mode the sea is a wall. You reach it, you find out it burns, and the answer ends up being the same every time: stay out of it. The island grows upwards and the ocean - which is where this mode is supposed to be played - stays a painted backdrop.
Keep reading
The purifier turns that around. Acid becomes something you can PUSH BACK, one ring at a time, and every level is a piece of sea you have won and can finally build in, swim in, farm in.
WHY IT BURNS FUEL INSTEAD OF STAYING ON
An upgrade you buy once and forget moves the line once and then becomes scenery, exactly like the sea it replaced. A purifier that consumes is something the island has to look after: it is recharged with material somebody has to go and get, and when it runs dry the acid takes back what it had been pushed out of. Not to punish - to make that piece of sea something you OWN rather than something you unlocked.
And this is where the two mechanics of this mode meet: during an acid storm (see acid_tides.yml) the purifier drains faster AND its bubble shrinks, so a stockpile that lasted a quiet week may not last one bad night.
FREE. Like the acid and the tides, the purifier costs nothing and is not cut down without a licence key. What is Premium in this plugin is what a full server needs - missions, upgrades, bank, leaderboards - never what makes an AcidIsland an AcidIsland.
enabledtruetide-drain-applies-from1.0Below which tide drain multiplier the bubble keeps its full radius. With the default cycle only "alta marea" (1.5) and "tempesta acida" (3.0) go past 1.0, so the bubble is full size for two thirds of the hour and visibly tightens for the rest - which is a warning a player reads without reading anything. Set it very high to make the radius fixed and have the tide affect the drain alone.
Fuel
material: how many seconds of running it is worth. Anything not listed here is not fuel. The panel always spends the BEST fuel the player is carrying, so listing a cheap one and an expensive one is safe.
Keep reading
The three below are deliberate: kelp is farmed from the sea itself (the early game answer, slow but endless), coal is bought or traded (the middle), and a block of coal is the one you stockpile for a storm.
fuels4 keysDRIED_KELP60COAL240CHARCOAL240COAL_BLOCK2400Levels
Bought in order: level 2 cannot be reached without level 1. Per level:
radius blocks of safe water around the island's home
drain-per-second seconds of charge burnt per second of running.
Above 1.0 a bigger bubble genuinely costs more to
hold, which is what keeps the last level a goal
rather than an obvious purchase
money-cost what reaching this level costs, once
max-charge-seconds the size of the tank: how much fuel can be stored
ahead of a stormKeep reading
Level 1 is built already half charged: a purifier bought and switched off looks exactly like one never bought, and the player would think they had wasted their money.
levels5 keyslevels.14 keysradius12drain-per-second1.0money-cost2500max-charge-seconds3600levels.24 keysradius20drain-per-second1.25money-cost10000max-charge-seconds7200levels.34 keysradius30drain-per-second1.5money-cost30000max-charge-seconds10800levels.44 keysradius45drain-per-second2.0money-cost75000max-charge-seconds14400levels.54 keysradius64drain-per-second3.0money-cost200000max-charge-seconds21600 roles.yml
Island roles 7 settings
roles.ymlplugins/ShadowAcidIsland/roles.yml File notes
Roles you can give to island members. The island owner ALWAYS holds every permission, so there is no need (and no way) to list them here.
Every role has:
display-name: the name shown in menus and messages. It is text a player
reads, so the roles below take theirs from the language
file (roles.<role>.display-name in lang/<language>.yml),
in the server's language. Write one here to use your own
instead: it wins, in every language. A role you add
yourself needs one, or it shows its id. Colour codes with
"&" work (&e = yellow).
priority: ordering in the menus only (higher = further up)
permissions: what this role is allowed to do, out of:
BREAK_BLOCKS - break blocks
PLACE_BLOCKS - place blocks
USE_BUCKET - use buckets (water/lava/milk)
USE_CONTAINERS - open chests/barrels/furnaces/other containers
USE_DOORS - open doors/trapdoors/gates
INTERACT_REDSTONE - use levers/buttons/pressure plates
PVP - hit other players on the island
DAMAGE_ANIMALS - hit animals/passive mobs on the island
INTERACT_ENTITIES - interact with entities (villagers, panels...)
INVITE_MEMBERS - invite new members
KICK_MEMBERS - kick members out
MANAGE_ROLES - change another member's role
MANAGE_UPGRADES - buy and manage island upgrades
MANAGE_SETTINGS - change the island rules (mob griefing, spawning,
PvP, fire, time, weather...)
SET_HOME - move the island's teleport point
DELETE_ISLAND - delete the islandAdd or remove roles freely: the roles menu shapes itself around whatever is in this file.
default-rolememberroles3 keysroles.co_owner2 keyspriority80permissions[BREAK_BLOCKS, PLACE_BLOCKS, USE_BUCKET, USE_CONTAINERS, USE_DOORS, INTERACT_REDSTONE, DAMAGE_ANIMALS, INTERACT_ENTITIES, INVITE_MEMBERS, KICK_MEMBERS, MANAGE_UPGRADES, MANAGE_SETTINGS, SET_HOME]+10
roles.member2 keyspriority50permissions[BREAK_BLOCKS, PLACE_BLOCKS, USE_BUCKET, USE_CONTAINERS, USE_DOORS, DAMAGE_ANIMALS, INTERACT_ENTITIES]+4
roles.visitor2 keyspriority0permissions[ ] starter_chest.yml
The starter chest 1 setting
starter_chest.ymlplugins/ShadowAcidIsland/starter_chest.yml File notes
What goes into the starter chest of a new island. It applies both to the built-in generation (IslandGenerator, when you are not using schematics) and to ANY schematic picked from the menu: once the schematic is pasted, the plugin looks for the FIRST chest near the island's spawn point and fills it with these items (a schematic made for acidisland usually already has an empty chest inside, waiting to be filled).
Every entry is a Minecraft material plus an amount.
items[{ material: LAVA_BUCKET, amount: 1 }, { material: ICE, amount: 2 }, { material: CACTUS, amount: 1 }, { material: SAND, amount: 8 }, { material: BREAD, amount: 16 }, { material: CARROT, amount: 2 }, { material: POTATO, …+11
If the chosen schematic has NO chest anywhere near the spawn point, the plugin puts one there for you (holding the "items" above) and stands a welcome sign on top of it. Up to 4 lines; an empty line "" writes nothing. This is text a player reads, so it comes from the language file, in the server's language ("starter-chest.fallback-sign" in lang/<language>.yml). To write your own, add it here - yours wins, in every language:
fallback-sign: - "&6&lWelcome!" - "&7Your starter" - "&7chest" - ""
upgrades.yml
Island upgrades 24 settings
upgrades.ymlplugins/ShadowAcidIsland/upgrades.yml File notes
This file ships in English. Its Italian version is esempi/it/upgrades.yml, next to this one in the plugin folder, and the plugin never reads it: to run the Italian one, copy it over this file and use /island admin reload. The messages and menus follow "messages.language" in config.yml on their own; this file is content you write, so it stays as it is.
Upgrades a player can buy from the "Upgrades" menu (reached from the control panel, /island panel). Add, remove or change as many as you like, and give each one AS MANY LEVELS as you like: the menu adapts itself both to the number of upgrades and to the number of levels of each.
Every upgrade has:
display: material/name/lore shown in the menu. Name and lore are text a
player reads, written right here: this file ships in English
(see the top of the file for the Italian one).
type: what it does when it goes up a level. Possible values:
RADIUS - grows the island's protected radius by "amount" blocks
MEMBER_LIMIT - raises the member limit by "amount"
levels: one entry per level (1, 2, 3, ...). Every level has:
amount: what THAT level adds - not a hand-written running total: if
level 1 gives +10 and level 2 gives +15, a player who reaches
level 2 has been given +25 altogether
cost: what buying that level takes. "money" needs an economy:
ShadowEconomy, or Vault with an economy plugin. "items" can
also ask for a CUSTOM item (from any plugin, Oraxen for
instance) by adding "custom-name" with the exact name shown
on the item.
rewards: EXTRA rewards handed out on reaching that level, on top of
the effect itself. Same format as missions.yml.
There is no level "after the last one": once a player has bought the
highest level defined here, the upgrade reads as maxed out.upgrades2 keysupgrades.radius3 keysupgrades.radius.display3 keysmaterialGOLDEN_SHOVELname"&6Island Expansion"lore["&7Raises the protected radius", "&7of your island"]+1
upgrades.radiustypeRADIUSupgrades.radius.levels3 keysupgrades.radius.levels.13 keysamount10upgrades.radius.levels.1.cost1 keymoney5000upgrades.radius.levels.1rewards[ ]upgrades.radius.levels.23 keysamount15upgrades.radius.levels.2.cost1 keymoney15000upgrades.radius.levels.2rewards[ ]upgrades.radius.levels.33 keysamount20upgrades.radius.levels.3.cost2 keysmoney40000items[{ material: DIAMOND_BLOCK, amount: 5 }]upgrades.radius.levels.3rewards[{ type: MESSAGE, text: "&aIsland expanded to…]upgrades.member_limit3 keysupgrades.member_limit.display3 keysmaterialPLAYER_HEADname"&bMore Members"lore["&7Raises the highest number", "&7of members of your island"]+1
upgrades.member_limittypeMEMBER_LIMITupgrades.member_limit.levels2 keysupgrades.member_limit.levels.13 keysamount2upgrades.member_limit.levels.1.cost1 keymoney8000upgrades.member_limit.levels.1rewards[{ type: MESSAGE, text: "&aYou can now invite…]upgrades.member_limit.levels.23 keysamount2upgrades.member_limit.levels.2.cost1 keymoney20000upgrades.member_limit.levels.2rewards[ ]Languages
The texts the plugin shows to players, one file per language.
lang/
Texts and messages 2 files
lang/plugins/ShadowAcidIsland/lang/ File notes
Every message a player reads, editable without touching the code.
The plugin's own language: English is the default, and lang/it.yml holds the Italian (set "messages.language: it" in config.yml to use it). Translating the plugin means copying this file and rewriting the values - never the keys.
Minecraft colour codes: & followed by a character (&a = green, &c = red).
Every message the plugin shows to players, one file per language. The keys are not listed one by one: here are the files, how many texts they hold and the placeholders they use.
| File | Language | Texts |
|---|---|---|
lang/en.yml reference | — | 534 |
lang/it.yml | — | 534 |
Most used placeholders
The plugin replaces them with the right value: leave them written as they are.
%value%%level%%name%%player%%plugin%%max%<player>%phase%%reason%%seconds%%material%%time%%role%%state%
Message groups
island23general6command16help2scoreboard10chat1time2bank9generator4upgrades2perks6portal4admin166hub1license52locked5suite29acid10tide10purifier20economy2menus84roles3starter-chest1gui66