← All plugins
GlymeraPlotWorld icon

GlymeraPlotWorld

PlotSquared-style plot world for Hytale: claim & protect plots, merge any shape, per-plot weather/time, trust/visitor rights, transfer, plus creature & liquid anti-grief — all via a clickable /plot menu.

v24.0.0 Hytale 0.6.x MiscellaneousQuality of LifeUtilityWorld GenGameplay

Gallery

Description

GlymeraPlotWorld

A complete plot world for Hytale — claim land, build freely, and stay protected. GlymeraPlotWorld turns a dedicated flat world into a clean grid of square plots separated by roads, the way plot servers have worked for years: every player claims their own plot, builds inside it, and nobody can touch it without permission. Includes merging, per‑plot weather & time, trust/visitor permissions, plot transfer, creature limits, full griefing protection, custom road designs (decorate ONE road piece in a private workshop world, and every road in the whole plot world gets your design) — plus borders that reach down to bedrock and ~100 border styles every owner can pick from. New in v16: every claimed plot spells its owner's name in golden letter blocks on its border, and two optional automations for busy servers — a free starter plot for first‑time joiners (assigned and teleported to, automatically) and automatic release of abandoned plots after a configurable number of days. All driven from a simple in‑game menu.

Read this first — plot size is fixed once the world exists

plotSize, roadWidth and floorHeight are written into every chunk at the moment it is generated. Choose them before the plot world is created. Changing them afterwards leaves all existing chunks on the old grid while everything newly generated uses the new one — the two grids then sit on top of each other and the world is unusable. This is not something the plugin can repair; the old grid is part of the saved chunks.

Setting up a new server

  1. Stop the server.
  2. Put the JAR into mods/.
  3. Start the server once — this writes mods/de.glymera_GlymeraPlotWorld/config.json.
  4. Stop the server.
  5. Set plotSize / roadWidth / floorHeight in that config.json.
  6. Start the server and create the world with /plotworld setup.

The config is read once at start‑up, so editing it while the server runs has no effect — hence the stop in step 4.

Changing the grid size later — this destroys the plot world and every plot in it

  1. Stop the server.
  2. Delete everything in mods/de.glymera_GlymeraPlotWorld/ except config.json — that is plots.json, active-roads.json and the templates/ folder.
  3. Delete the world folders universe/worlds/plotworld and universe/worlds/plotworld_workshop.
  4. Set the new value in config.json.
  5. Start the server and run /plotworld setup.

/world remove will not do this for you. It unloads the world but leaves the data on disk, because the plot world is deliberately created with Hytale's DeleteOnRemove: false — a world that dozens of players have built in should not be destroyable by a single console command with a typo. The plugin loads the very same world back on the next start. Deleting the folders with the server stopped is the only thing that works.

A saved road design belongs to the grid it was built for. A design saved at plotSize: 42 cannot be applied at plotSize: 100; the plugin refuses it rather than stamping the decoration onto the wrong columns. After a size change, rebuild the design in the workshop.

Highlights

  • Own plot world — the plugin creates and manages its own world (default plotworld). You create it once with the /plotworld setup menu; restart‑safe, and the world stays loaded so teleports are instant. Enter it any time with /plotworld.
  • Custom road designs — don't settle for flat sandstone roads: the Road Workshop is a tiny private design world containing exactly one road piece. Decorate it — lamps, fences, hedges, planters, arches, even a different road surface — save it as a named design, and every road in the whole world converts to it (existing chunks included), protected against griefing just like the road itself. Switch designs any time; the old decoration cleans itself up.
  • Claim & build — stand on a free plot and claim it. Everything you place inside is yours; everyone else is blocked from building, breaking, or interacting unless you allow it.
  • Borders down to bedrock (v15) — the wall ring no longer stops at the surface: a solid boundary continues under every border all the way to bedrock, so even deep underground everyone can see exactly where a plot ends. Existing worlds upgrade themselves automatically after the update.
  • Border styles (v15) — plot owners restyle their border: pick a wall style (~50 choices — real connecting stone walls in fifteen materials, a fence, crystals, metals, coloured blocks) and an underground style (~50 solid blocks, including glowing crystals in eight colours) from a menu that shows every block with its item icon. Walls come out properly connected and oriented, corners included. A change costs one craftable Style Permit (configurable); merging or unmerging resets the look to default. Both style lists are admin‑editable.
  • Name labels (v16) — every claimed plot carries its owner's name in golden letter blocks built into the border wall: an engraved gold serif on a dark stone plaque, always on the plot's north edge, readable from the road. The label maintains itself — claiming writes it, transferring respells it, merging moves it to the group's outer edge, giving up removes it — and existing plots get theirs automatically after the update. Admin switch plotLabels (default on).
  • Free plot for first‑time joiners (v16, optional) — with firstJoinFreePlot enabled, every genuinely new player automatically gets the next free plot claimed for them (no Deed consumed), a welcome message and — with firstJoinTeleport — a teleport onto it. Everyone who ever played before the feature went live is marked as already served, and nobody is ever handed a second free plot. Assignments spiral outward from the centre, so newcomers settle next to each other around spawn. Off by default — enable it when the plot world is your server's main world.
  • Automatic release of abandoned plots (v16, optional) — with autoUnclaimEnabled, plots whose owner has not been online for autoUnclaimDays days (default 365) are released and fully reset, a merge as one unit. The check runs after every server start and then daily; areas in unloaded chunks are queued and cleaned with their chunks loaded on demand, paced so nothing stutters. Absence is judged carefully: players from before the feature are covered by the server's own player‑file timestamps, and a player with no data at all is never expired blindly. Off by default — the release is final, builds included.
  • Point‑and‑click menu — just type /plot to open the GUI. Claim, teleport home, visit others, manage trust/bans, set visitor permissions, change weather/time, transfer, merge/unmerge, clear or give up a plot — all clickable. Prefer typing? Every action also has a command (/plot help).
  • Merge any shape — combine your adjacent plots into one big build area. Flood‑fill merging handles lines, L/T/plus shapes and rings in a single click, and the geometry is footprint‑exact: foreign or empty plots inside a merge bounding box are never touched. A merge counts as one entry in your list.
  • Per‑plot weather & time — give your plot its own weather and a frozen time of day. Only people standing on your plot see it; the rest of the world is unaffected. Reset cleanly on merge/unmerge/release.
  • Trust & visitor permissions — trust players (group‑wide across a whole merge) to give them full build access, or fine‑tune what all visitors may do: build, break, interact with doors/chests, and damage animals — each toggleable on/off. Entry itself is controlled purely by bans.
  • Bans — ban a player from your plot (group‑wide); unban any time.
  • Transfer ownership — hand a plot — or an entire merge, kept intact — to another player. Blocked if the recipient is already at their plot limit.
  • Creature control (anti‑grief) — creatures hit an invisible wall at the plot/merge edge: a plot's animals stay inside instead of wandering onto the road, just like a fenced plot. Your animals also stay put over time: Hytale despawns idle creatures by default (like Minecraft mobs leaving), but animals on a claimed plot are now kept permanently, so a farm doesn't quietly dissolve. Anything that spawns on a road (for example a mob spawner placed near a border whose radius spilled over) is cleared automatically, so roads stay clean. Ridden mounts and your companion pets are never affected. Each plot has a maximum number of creatures (default 20; a merge adds the limits together), the plot menu shows a live animal count, and /plot clear removes a plot's animals along with the build.
  • Liquid containment (anti‑grief) — water and lava cannot spread across plot borders onto roads or neighbouring plots, and any liquid is removed when a plot is cleared or given up. No more flooding or lava‑griefing the grid.
  • Indestructible roads & boundaries (anti‑grief) — roads and the boundary stones that frame every plot (and the ground beneath them) are kept indestructible against any source: explosions, area‑of‑effect tools, other plugins, even operators. If something does manage to alter a road or border block, it is restored within about a second. Merge‑aware — the opened seams inside a merge stay buildable for the owner, the merged outer frame stays protected. Plot interiors are never touched.
  • Safe reset — clearing, deleting or unmerging restores the affected area cleanly. The reset writes only what actually changed, is paced over time and pins the involved chunks, so even very large merges never cause a lag spike or crash.
  • Plot limit — normal players may own up to a configurable number of plots (default 9); merging cannot bypass the cap. Operators are exempt.
  • Token items (required to claim, merge & restyle, by default) — by default a player must own and spend a craftable "Plot Deed" to claim a plot, a "Merge Permit" to merge plots, and a "Style Permit" to restyle a border. Each requirement and each recipe can be turned off separately in the config. See The three tokens below.

The three tokens

By default, claiming a plot costs one Plot Deed, merging plots costs one Merge Permit, and restyling a border costs one Style Permit — so land (and looks) are something players earn, not grab for free. All three are crafted at the Alchemy bench:

  • Plot Deed / Merge Permit: 4× Concentrated Life Essence (Ingredient_Life_Essence_Concentrated) each.
  • Style Permit: 2× Concentrated Life Essence — cheaper, it is cosmetic.
  • Right‑clicking any token also opens the plot menu.
  • Server options — all three are controlled independently: claimRequiresToken / mergeRequiresToken / styleRequiresToken turn each requirement off (that action becomes free), and claimRecipeEnabled / mergeRecipeEnabled / styleRecipeEnabled disable each recipe while keeping the requirement — crafting is then blocked and admins hand tokens out with /plot give <player> claim|merge|style. This lets a server e.g. keep Plot Deeds craftable but sell Merge or Style Permits, or price them differently in a shop.
  • Operators never need a token.
  • Updating from an older version? Nothing changes for players: existing Plot Deeds stay valid for claiming, and an old config with the previous requireToken / recipeEnabled keys keeps working (the value is applied to both claim/merge switches automatically).

Commands

/plotworld — teleport into the plot world.

/plotworld setup (operator) — the creation menu: create the plot world instantly with default roads, or start the road designer first.

/plotworld roads ... (operator) — the road designer: edit (go to the workshop), save <name>, apply <name>, list, help.

/plot — open the management menu. Sub‑commands (also usable directly):

Command What it does
/plot claim Claim the plot you are standing on
/plot auto Find and claim the next free plot
/plot home Teleport to your plot
/plot list List the plots you own
/plot info Show info about the current plot
/plot visit <player> Visit another player's plot
/plot trust / untrust <player> Give / remove full build access
/plot ban / unban <player> Ban / unban a player from your plot
/plot public Toggle visitor permissions (build/break/interact/damage animals)
/plot weather / time Set this plot's weather / frozen time
/plot style <wall\|under> <name\|default> Restyle your wall ring / underground boundary (menu has the picker)
/plot merge / unmerge Merge adjacent plots / split them again
/plot setspawn Set where home/visit drops you
/plot clear Wipe the plot's interior and remove its animals
/plot delete Give up the plot (a whole merge is released together)
/plot transfer <player> Transfer the plot/merge to another player
/plot give <player> [claim\|merge\|style] (OP) Hand out a Plot Deed / Merge Permit / Style Permit

Configuration

Settings live in mods/de.glymera_GlymeraPlotWorld/config.json (created on first start, fully commented):

  • maxPlotsPerPlayer (default 9, -1 = unlimited; operators always exempt)
  • claimRequiresToken (default true) — consume a Plot Deed on claim
  • mergeRequiresToken (default true) — consume a Merge Permit on merge
  • styleRequiresToken (default true) — consume a Style Permit on a border restyle
  • claimRecipeEnabled (default true) — allow crafting the Plot Deed
  • mergeRecipeEnabled (default true) — allow crafting the Merge Permit
  • styleRecipeEnabled (default true) — allow crafting the Style Permit
  • underBoundaryBlock (default Rock_Stone) — the default underground boundary block
  • plotLabels (default true) — spell the owner's name in letter blocks on every claimed plot's border
  • firstJoinFreePlot (default false) — auto‑claim a free plot for genuinely new players on their first join
  • firstJoinTeleport (default true) — also teleport the newcomer onto the granted plot (only with firstJoinFreePlot)
  • autoUnclaimEnabled (default false) — automatically release plots whose owner stayed away too long (final, area reset)
  • autoUnclaimDays (default 365) — the absence threshold in days for the automatic release
  • wallStyles / underStyles — the curated block lists offered in the style picker (admin‑editable; entries that are not valid blocks are ignored with a console warning)
  • maxCreaturesPerPlot (default 20, -1 = no cap; a merge sums the limits)
  • keepPlotAnimals (default true) — keep a plot's animals from despawning over time (strip Hytale's native idle‑NPC despawn on claimed plots)
  • confineCreatures (default true) — hold creatures inside their plot/merge at an invisible wall
  • deleteCreaturesOnRoads (default true) — remove creatures that end up standing on a road (mounts + exemptRoles are spared)
  • confineMode (default active) — the native per‑tick confine engine; set off to fall back to the legacy scheduled pass
  • confineIntervalMs (default 33) — legacy pass only (used when confineMode is not active)
  • exemptRoles (default the pet + pet-shop roles) — NPC roles never confined or removed; ridden mounts are always exempt anyway
  • containLiquids (default true) — stop water/lava crossing plot borders
  • protectStructure (default true) — keep roads + boundary stones (and the ground beneath them) indestructible against any source
  • templateMaxHeight (default 16, max 64) — how high above the road surface a road design may reach
  • plus plot size, road width, floor height, block types, grass tint and world names (plot world + workshop world).

Notes

  • Designed for and tested on Hytale Stable 5.
  • Admin/world‑modifying actions are operator‑only by default.
  • Install: drop the JAR into your server's mods/ folder and start the server, then run /plotworld setup in‑game (operator) to create your plot world — instantly with default roads, or with your own road design. Upgrading from an older version? Your existing world and plots are picked up unchanged (data migrates automatically from the old plugins/ folder to mods/).
Changelog

GlymeraPlotWorld — Changelog

v24.0.0 (2026-09-19) — Animal protection now works no matter which other mods are installed

Fixed — Visitors could kill animals on someone else's plot

  • On servers running PlotWorld alone, or with only a few other mods, the plot's animal protection had no effect: a visitor could hit and kill the owner's animals even with the "Damage entities (animals)" visitor permission switched off. The plugin did refuse the hit, but too late - the server had already taken the health off. Whether it came in time depended on which other mods were loaded, so many servers never saw the problem while others had no protection at all.
  • The check now has a fixed place among the server's own damage filters (next to PvP and invulnerability), so a refused hit never reaches the animal: no health loss, no knockback, no hit effects.
  • Rules are unchanged: owner, trusted players and operators may always hit animals on the plot; visitors only if the owner turns on "Damage entities (animals)" (Plot Menu > Public permissions, or /plot public entities on); roads and unclaimed plots stay open. Damage dealt by NPCs or the environment is not affected, and PvP still follows the world settings.
  • No configuration change, no world change - just replace the jar.

v23.0.0 (2026-09-18) — Plot letter blocks no longer clutter the creative inventory

  • The 40 plot letter blocks (0-9, A-Z, dash, dot, underscore, blank) are hidden from the creative item library. They are only meant for the name labels the plugin writes onto plot borders, yet they showed up at the very front of the block list (Discord report by redsnake). They are now marked as variants, the same flag Hytale uses for its own connected-block variants.
  • Still available if you want them for building: turn on "show variants" in the creative library, or use /give.
  • Nothing else changes. Block ids, existing labels in the world, configs and code are untouched; the jar differs from 22.0.0 only in those 40 item files.

v22.0.0 — changes since v21.0.0

Added — Rank-based plot limits (optional)

  • New config switch plotLimitMode. "fixed" (default) keeps today's behaviour: maxPlotsPerPlayer applies to every normal player. "rank" lets each rank have its own limit, the way plots.maximum.<N> works on Minecraft plot servers.
  • In "rank" mode the limit comes from a permission node on the player's rank: glymera.plots.max.<N> (for example glymera.plots.max.5; the highest N a player holds wins, N up to 200) or glymera.plots.max.unlimited. Players whose rank carries no such node fall back to maxPlotsPerPlayer.
  • No rank names in the config. Attach the node to your own ranks with Hytale's built-in permissions (/perm group add <group> glymera.plots.max.5, then /setgroup <player> <group>) or with LuckPerms (/lp group <group> permission set glymera.plots.max.5 true) — both are read through the same server API.
  • Applies everywhere the limit is checked: claiming, the plot menu's "You own X of Y plots" line, and plot transfers (the recipient's own limit counts). Operators stay exempt in both modes.
  • Existing servers: a config.json without the new key behaves exactly as before — nothing changes until you set plotLimitMode to "rank".

Added — Plot backups: undo a mistaken delete, clear or unmerge

  • A copy is taken right before every destructive reset — /plot delete, /plot clear, /plot unmerge and the automatic release of abandoned plots (snapshotBeforeReset, default on). The newest 3 such copies are kept per plot.
  • Periodic copies of changed plots — every snapshotIntervalHours (default 6) the plugin copies the plots whose builds changed since their last copy; untouched plots cost nothing and an unchanged copy is never stored twice. snapshotKeep (default 12) copies are kept per plot; 0 hours turns the periodic copies off.
  • What a copy contains: every block with its rotation, chest contents and all other block data (signs, benches — the same per-block data the world save keeps), fluids, the claim itself, trust and ban lists, visitor flags, weather/time, border styles, spawn point and the merge. Statues, item displays and animals are not part of a copy.
  • Operator commands: stand on the plot (claimed or not) and run /plot backups to list the copies, /plot restore <number> to put one back (--force=true also overwrites cells that meanwhile belong to someone else), /plot backup to save a copy right now. A restored merge comes back as a merge, re-claimed for its old owner.
  • Restoring is paced like the reset — small steps per tick, chunks pinned, only differing blocks written — so a huge merge takes longer but never stalls the server.
  • Copies live in the plugin's data folder under snapshots/<plot>/ as compressed files (typically 20–100 KB per copy of a built plot) with an index.json per plot.

Changed — Delete asks twice

  • /plot delete and the menu's Delete button now require a second /plot delete (or a second click) within 30 seconds before anything is given up.
  • Wiping a chest no longer spills its contents. Delete, clear and a restore empty every container before its block is replaced, so nothing drops onto the plot (previously the engine dropped the items; with backups that would have duplicated them on restore).

v21.0.0 — changes since v20.0.0

Fixed — Clearing, giving up or unmerging a plot now removes props and decoration entities too

  • /plot clear (and the menu's Clear) left every prop standing — statues, item displays, particle props, dropped items, anything a /paste or the prefab editor put on the plot. Props are now removed together with the blocks; /plot delete clears them from the whole reset area.
  • Unmerging removes only the props on the seams and walls that turn back into roads and wall rings — exactly the columns whose blocks are rebuilt; everything inside the member plots stays.
  • Animals keep their own handling (mounts, pets and exemptRoles spared); ridden mounts and players are never touched. Only loaded chunks are covered, like the block reset. No configuration change.

v20.0.0 — changes since v19.0.0

Fixed — Plot animals no longer vanish after a server restart

  • Animals standing right at the plot border when the server restarted were removed on the next load (flying creatures like crows most often, because they press against the invisible wall): the wall's memory of where each animal belongs lived only in RAM, so after a restart a border animal's first step outward looked exactly like a spawn on the road and was cleared - plot animals disappeared a few at a time, restart after restart.
  • Each animal's home is now persisted to disk (creature-homes.json, saved off the main thread every 30 seconds and on shutdown, atomically). After a restart the plugin knows immediately where every animal belongs and clamps border-standers back instead of deleting them. Verified headless: a wall-hugging test herd that previously lost 7 of 16 animals on one restart now survives with all 15 of 15 saved animals intact.
  • Genuine road spawns (e.g. a spawner whose radius spills over a plot border) are still cleared within a tick, exactly as before. As a safety net for an animal with no stored home yet, an old animal with a plot column within two blocks is adopted onto that plot instead of deleted.
  • Unmerging is the owner's responsibility: animals that end up standing on the re-appearing road when a merge is dissolved are removed (as they always were).
  • No configuration change. Homes of animals that no longer exist are forgotten automatically after 30 days.

Fixed — The two world scanners no longer stretch server ticks (performance)

  • The liquid containment scan cost a constant ~19 ms every 2 seconds on a water-rich world (its work cap was "64 wet chunks per pass", and a big world always has 64). It now runs on a ~4 ms time budget per pass and reads blocks through cached chunk sections; the rotating cursor resumes where it stopped, so nothing is skipped — fluid on a road is removed a few seconds later at most. Measured on a 99-plot production world copy: 19.3 ms → 4.8 ms per pass, zero ticks stretched.
  • The structure guard's per-pass repair budget dropped from 20 ms to 4 ms for the same reason (it only ever bit in the minute after players load new chunks).

Fixed — Shooting, throwing and spawn eggs now respect plot protection (security fix, please update)

  • Bows, thrown weapons, wands and spawn eggs bypassed the plot protection entirely: the engine's projectile interactions ("Projectile", "LaunchProjectile") and creature-spawn interaction ("SpawnNPC" — spawn eggs, coffins, egg sacks) fire no block events, so a visitor could shoot, lob bombs or pop hostile creatures onto anyone's plot. All three are now checked: on a claimed plot or merged area only the owner, trusted players and operators may shoot/throw or spawn creatures. Denied attempts fail cleanly — nothing spawns, nothing is consumed.
  • Nobody can shoot or throw while standing on a road or on a plot's border wall (owner and operators included) — standing on the wall ring was a loophole to lob shots across. Seams opened by a merge count as plot interior, as everywhere else.

New — No projectile crosses a plot boundary

  • Every projectile — arrows, bombs, thrown rocks, magic, mob shots alike — now ends at the plot boundary: the moment it passes from a plot (or merged group) to the outside or onto another plot, it is removed mid-flight. Shooting inside your own plot or across your merged area works as always; what happens on your plot stays on your plot, and nothing reaches it from outside.

New — Visitor permission "Drop items" (per plot)

  • Visitors can no longer drop items onto someone else's plot by default. The plot menu's Public Permissions page (and /plot public drop on|off) has a new "Drop items" toggle per plot/merge if you want to allow it. Death drops, container contents and creature loot are unaffected.

v18.0.0 — changes since v17.0.0

Fixed — Extending a merge no longer replaces what you built on the old seams

  • Adding plots to an existing merge left dirt where your blocks stood on the seams opened by the earlier merge — but only for blocks that also appear in the border style lists (marble, stone, sandstone, basalt bricks and so on): the redraw mistook them for leftover border styling and "cleaned them up", while anything else on the same seam was left alone.
  • Seams that were already open before the merge are now treated as the owner's floor and are never touched again — surface, wall level, road decoration and the underground boundary alike. Only the seams that open with the new merge get the usual structural clean-up.
  • No configuration change. Blocks lost to this before the update are not restored.

v17.0.0 — changes since v16.0.0

Fixed — Buckets now respect plot permissions (security fix, please update)

Pouring out or scooping up fluids with a bucket (the vanilla bucket as well as GlymeraBucket) bypassed the plot protection entirely: the engine's fluid mechanics do not go through the usual block events, so a visitor could pour lava or water onto anyone's plot or empty a plot's ponds and wells. Both actions are now checked like every other block action:

  • Pouring counts as building — allowed for the owner, trusted players and operators, or for everyone when the plot's visitor flag build is on.
  • Scooping counts as interacting — allowed for the owner, trusted players and operators, or for everyone when the visitor flag interact is on (so a public well is one /plot public toggle away).
  • Denied attempts show "You can't pour fluids here." / "You can't take fluids here." and nothing changes in the world.
  • Buckets behave exactly as before in every other world.

v16.0.0 — changes since v15.0.0

New — Name labels: every plot spells its owner's name on the border

  • Claimed plots now carry their owner's name in golden letter blocks, built right into the border wall — always on the plot's north edge, starting at the north-east corner, reading left-to-right from the road. The letters are real blocks (an engraved gold serif on a dark stone plaque, lettered face toward the road only), so the label is visible from a distance, costs nothing at runtime and is protected like the rest of the border.
  • The label maintains itself. Claiming writes it, giving up a plot removes it, transferring a plot respells it to the new owner, and merging/unmerging moves it to the merged group's outer edge and back. Existing claimed plots get their label automatically after the update.
  • Names are rendered in capitals; the letter set covers everything a Hytale name can contain (A–Z, 0–9, underscore, plus dash and dot).
  • Admin switch: plotLabels (default on). Turning it off reverts existing letters to normal border blocks by themselves.

New — Free plot for first-time joiners (optional)

  • firstJoinFreePlot (default off): every player who joins the server for the first time automatically gets the next free plot claimed for them — no Plot Deed consumed — plus a welcome message, and (with firstJoinTeleport, default on) a teleport onto their new plot a few seconds after they arrive.
  • Only genuinely new accounts qualify. When the feature is first enabled, everyone who ever played on the server is marked as already served; who received a free plot is remembered permanently. Neither veterans nor reconnecting players are ever handed a second one, and players who already own a plot are skipped.
  • Plots are assigned next to each other: the picker spirals outward from the world centre, so newcomers settle around the spawn plot instead of scattering.
  • Off by default because it pulls newcomers into the plot world — enable it when the plot world is your server's main world.

New — Automatic release of abandoned plots (optional)

  • autoUnclaimEnabled (default off) + autoUnclaimDays (default 365): plots whose owner has not been online for the configured number of days are released automatically — the whole merge counts as one plot. The release is final: the area is fully reset, builds included, with no token refund.
  • The check runs a few minutes after every server start and then once a day, so servers that are not running 24/7 are covered too. Areas whose chunks are not loaded are queued and cleaned with their chunks loaded on demand, one plot at a time and paced so nothing stutters; an interrupted cleanup simply resumes after the next start.
  • Absence is judged carefully. Last-seen comes from the plugin's own records and, for players from before this feature existed, from the server's player-file timestamps — a player with no data at all is treated as seen today and never expired blindly.

Fixed — Roads stay clear even without a road design

  • The structure guard used to police the space above roads only when a road design (template) was active. Without one, structural leftovers on road columns — e.g. from a merge that was dissolved by editing the data files directly — survived forever. The guard now enforces "nothing stands on a road but the active design's decoration" unconditionally; without a design that simply means clear air. Player furniture reaching over a plot edge is still left alone.

v15.0.0 — changes since v14.0.0

New — The plot border continues underground

  • Every plot border now runs from the boundary stone all the way down to bedrock — seamlessly. The single ring of boundary stones used to sit on a layer of grass, with plain dirt below, so underground it was impossible to tell where one plot ends and the next begins. The whole column under each boundary stone is now solid boundary block, with no grass/dirt layer in between, so digging players always see exactly where their plot ends.
  • Existing worlds upgrade themselves. After the update the structure guard notices the old dirt under every border and converts it to the boundary block on its own — no command needed, no world reset, and it is paced so the server does not stutter while it happens.
  • The default boundary block is configurable (underBoundaryBlock), and plot owners can restyle theirs — see below.

New — Border styles: restyle your wall ring and your underground boundary

  • Plot owners can now pick the look of their border. Two choices per plot, each from a curated list of ~50 blocks: the wall style (the visible ring framing the plot — including real stone walls and a fence that connect and orient themselves properly) and the underground style (the boundary below ground, full solid blocks only — including glowing crystal blocks in eight colours).
  • Pick via the plot menu: /plot → Manage → Wall style / Underground — a picker that shows every block with its real item icon, ten per page, so players see exactly what they are getting. Power users can also type /plot style <wall|under> <name|default>.
  • Walls and the fence come out properly connected and oriented: straight runs follow the ring, corners use real corner pieces — placed through the same engine path a hand placement uses.
  • Each change consumes one Style Permit — a new craftable token (2x Greater Essence of Life at the Alchemy bench; cheaper than a deed, it is cosmetic). Two admin switches control it: styleRequiresToken (charge a permit at all, default on) and styleRecipeEnabled (allow crafting the permit, default on — turn it off to hand permits out via /plot give <player> style instead). Operators never need a permit.
  • Styles are merge-aware: a merged group shares one look, and merging or unmerging resets the styles to the default look — the player is told so in the result message. Styled borders are protected exactly like the stock ones: the structure guard enforces the chosen blocks, from bedrock to the wall top.
  • The style lists themselves are configurable (wallStyles / underStyles). The defaults are curated so nothing can burn, fall, decay or let water through where it matters; if you add your own entries, stick to those rules.

Fixed — New players arrived in creative when the plot world was the first-join world

  • The world config the plugin writes when creating the plot world declared GameMode: Creative (inherited from a template). Hytale's game mode is global per player, so this almost never mattered — except when an admin made the plot world the server's first-join world: brand-new players then inherited the world's mode and arrived in creative. Newly created plot worlds now declare Adventure.
  • Existing worlds are not rewritten (we never touch a world you may have deliberately configured). If you are affected: stop the server, open universe/worlds/<your plot world>/config.json, change "GameMode": "Creative" to "GameMode": "Adventure", start again.

v14.0.0 — changes since v12.0.0

Changed — Claiming and merging now use separate tokens

  • The single claim/merge token has been split into two items. Claiming a plot consumes a Plot Deed (the existing item — every deed players already own stays valid for claiming). Merging plots now consumes a new item, the Merge Permit. Both recipes are identical (4x Greater Essence of Life at the Alchemy bench), so nothing gets cheaper or more expensive by default — but a server can now control the two independently.
  • Four config switches replace the old two (claimRequiresToken, mergeRequiresToken, claimRecipeEnabled, mergeRecipeEnabled). A server can e.g. make merging free while claiming still costs a deed, or disable one recipe and sell that token via /plot give. An old config with the previous requireToken / recipeEnabled keys keeps working: its value is applied to both new switches automatically, so behaviour is unchanged until you choose otherwise.
  • /plot give <player> [claim|merge] — the OP hand-out command now takes an optional token type (default claim).
  • Both tokens got proper custom 3D models and icons. The Plot Deed is now a parchment land deed with a rolled edge and a crimson wax seal (it previously reused Hytale's map scroll); the Merge Permit shows two joined parchments under a teal seal - same visual family, instantly distinguishable.

Fixed — Multi-block furniture in road designs (the "doubled benches")

  • Furniture larger than one block (benches, and any other multi-cell piece) no longer duplicates on roads. Saving a road design used to record such a piece once per cell its model covers — a village bench (two wide, two high) was stored as four separate benches, and applying the design then placed four real ones: stacked and shifted copies on every road, in new and existing chunks alike. A save now records only the piece's origin block; the engine builds the rest of the model from there, exactly as when you place it by hand.
  • The protection no longer dismantles legitimate furniture. The structure guard and the road cleaner now recognise the engine-made model cells of a placed piece (a bench's backrest and second seat) and leave them alone instead of treating them as foreign blocks.
  • After updating, re-save and re-apply your design once (/plotworld roads save <name>, then /plotworld roads apply <name>). That rewrites the stored design without the duplicated cells, and the guard then removes the existing duplicates from your roads by itself.

Fixed — Switching to a lower road design left the old one's tall parts standing

  • Applying a new design only cleaned old decoration up to the new design's height — switching from a tall design (say, lamps or fountains ten blocks up) to a low one (two-high benches) left everything above that height standing forever. The cleanup now always covers the full designer ceiling (16 blocks), so a design switch removes every leftover of the previous design.

Changed — Liquid containment rewritten (the "Task took NNms" console spam)

  • The road liquid cleaner no longer produces watchdog warnings on a quiet server. It used to re-scan every claimed plot's whole perimeter every two seconds — even with nobody online — so its cost grew with the number of claims, and on well-filled servers the console filled with "Task took …ms" warnings around the clock. It now looks at loaded chunks with a constant-time "any fluid here at all?" check and does real work only where fluid actually exists. A world with no loose fluid costs practically nothing, no matter how many plots are claimed or who is online.
  • Coverage got wider at the same time: all roads are cleaned now, not only those bordering claimed plots — and up to the full design height, so decoration that emits fluid from high up can no longer leave standing fluid columns behind on roads.
  • Road decoration healing is water-aware. Decoration that requires support (branches, for example) can be knocked off by fluid activity as a dropped item; the guard used to re-place it immediately while the spot was still wet, which could repeat. It now waits until the spot is dry, then restores the design once.

Removed — the autoMerge config key

  • The generated config advertised an autoMerge option ("a freshly claimed plot auto-merges..."), but no code ever implemented it — setting it to true silently did nothing (this is what prompted the CurseForge report "auto merge dont work"). The dead key is gone; merging remains an explicit action via /plot merge or the menu.

v12.0.0 — changes since v9.0.0

New: cross-plugin plot-border API (for block-moving plugins)
- Added a public integration point that other plugins can call to respect plot borders, so automation can never reach across a plot boundary. It answers — merge-aware — whether a block may be moved/placed/affected from one spot to another within the same plot (or merged group), treating the wall ring and the road as immovable structure everywhere.
- This is what now lets GlymeraBluestone (pistons & Applicator), GlymeraSpawner (mob spawners) and GlymeraTNT (explosions) keep their effects inside the plot they belong to — the road, the plot border and neighbouring plots are protected from all of them.
- No change for players: plots, claiming, protection, merging and everything else work exactly as before. This release only adds the integration point other plugins use; plugins that don't use it are unaffected.

v6.0.0 — changes since v5.0.0

Fixed — The generated config now lists every option

  • The config.json created on a fresh install now contains every setting the plugin actually supports. Six options that were already adjustable — keepPlotAnimals, confineMode, environment, workshopWorldKey, workshopFloorBlock and templateMaxHeight — were missing from the generated file, so they ran silently at their defaults and never appeared for you to change. They are now all present, each with its explanatory comment.
  • No behaviour changes. Every default stays exactly as it was; this release only makes the previously-hidden options visible and editable.
  • The version number stored inside the plugin had lagged behind the release name; it now matches (6.0.0).

Note

  • An existing config.json keeps working unchanged after the update — any option you never set is still filled with its default automatically, so updating is safe and requires no action.

v5.0.0 — changes since v4.0.0

Added — Plot animals: kept, counted, cleared

  • A plot's animals no longer vanish over time. Hytale despawns idle creatures by default (like Minecraft mobs leaving), which quietly dissolved players' farms. Animals standing on a claimed plot now keep their place permanently, so a farm survives. (Config: keepPlotAnimals, default on — set it false to let the engine despawn run.)
  • /plot clear now also removes the plot's animals, not just the build — and tells you how many it cleared. Ridden mounts and your own pets are kept, players are never touched, and on a merged plot it covers the whole group. The GUI "Clear this plot" button does the same.
  • The plot menu now shows a live animal count ("Animals: N / cap") for the plot, merge-summed and excluding mounts/pets — so you can see at a glance how full a plot is.

Changed — Creature confinement rewritten: far lighter on the server, same invisible wall

  • The plot-edge wall for animals now costs the server almost nothing. Confinement used to run as a scheduled pass that, dozens of times a second, scanned every creature and teleported strays back — on a busy world this was by far the single heaviest thing the plugin did. It is now a native per-tick system that does real work only for the few creatures actually near a plot's edge — the ones grazing safely in the middle are skipped with cheap arithmetic — and corrects a boundary crosser with a normal move (not a teleport). Measured on a test world under deliberate stress (herding animals into the borders), it uses about 90× less CPU than before — and produces none of the "task took too long" warnings the old pass generated.
  • Nothing changes that you can see. The wall holds exactly as before: animals stop cleanly at the edge with no snap, players and ridden mounts pass through freely, and it stays fully merge-aware (animals roam the whole merged footprint, including the opened seams). It simply no longer weighs on the server.
  • New config confineMode (default active) selects the new engine. Set it to off to fall back to the previous scheduled pass.

Changed — Structure guard no longer spikes when a lot of terrain loads at once

  • The road/boundary protection is gentler during world load. The guard re-asserts the entire column beneath roads and walls (so nobody can tunnel under them); that deep pass used to process a large batch of chunks in one go, causing a brief load spike. It is now spread across more passes. Visible protection is unchanged — roads and boundary stones are still re-asserted every pass; only rare under-road griefing restores a touch slower while a lot of terrain is streaming in at once.

Fixed — Liquids on roads and plot edges

  • Water no longer reaches your road decoration. Fluid is now caught and removed already at a plot's boundary stones, so it never spreads onto the road — and onto your road-design lamps, hedges and planters — in the first place.
  • Water sitting directly in a decoration block's cell is cleared too. The cleaner used to skip those cells entirely and leave the fluid behind; it now removes the fluid while keeping the decoration itself.
  • No more stone forming on the plot edge. Water and lava meeting on the boundary stones could fuse into stone where you normally can't build; the boundary ring is now kept fluid-free, and any such stone is removed.

v4.0.0 — changes since v3.0.0

Added — Custom Road Designs (the Road Designer)

  • Design your own roads — lamps, hedges, fences, planters, arches — and every road in the whole plot world gets your design. Run /plotworld setup (OP) and pick Create with custom roads: you are teleported into the Road Workshop, a tiny separate design world that contains exactly ONE road piece (a strip + its crossing) on a dark stage. Whatever you build on that road piece — up to 16 blocks high, you may even swap the road surface itself — becomes your design.
  • Save with /plotworld roads save <name>. During first-time setup the design is applied automatically; on an existing world you apply it deliberately with /plotworld roads apply <name>. Multiple named designs can be saved and switched any time (/plotworld roads list).
  • Applies to the WHOLE world, not just new chunks. Newly generated chunks are born with the design; already-generated chunks convert within seconds as they are loaded. Switching designs also cleans up the previous design's decoration automatically.
  • Your road decoration is protected like the road itself. The structure guard keeps it indestructible against players, TNT, third-party plugins — anyone. Block orientation (fences, stairs) is captured and reproduced faithfully.
  • Merge-aware: merging plots removes the decoration above the opened seam (precisely — player builds are never touched); unmerging restores road and decoration.
  • New commands: /plotworld setup (creation GUI), /plotworld roads edit | save <name> | apply <name> | list | help (all OP-only). New config: workshopWorldKey, templateMaxHeight (default 16, max 64).
  • Existing worlds are completely unaffected until you explicitly apply a design — without one, roads behave exactly as in v3.

Changed — Data directory moved to the standard location

  • Config and plot data now live in mods/de.glymera_GlymeraPlotWorld/ (the official per-plugin data directory) instead of plugins/GlymeraPlotWorld/. Existing installations migrate automatically on first start: your config.json and plots.json are adopted unchanged, and the old folder is renamed to GlymeraPlotWorld_migrated so nothing edits a dead config by accident. No data is lost. (Thanks to SonDereceTR for the report!)
  • The plot world is now created explicitly via /plotworld setup instead of silently at boot. Servers that already have a plot world are not affected — it keeps loading as always.

Fixed

  • "Trembling world": the structure guard no longer fights the engine's natural grass decay. Grass under boundary stones naturally turns to dirt; the guard used to restore it forever, causing a constant stream of block updates (a subtle world-wide shimmer). It now accepts naturally decayed soil under walls.
  • Road decoration no longer flickers around claimed plots. The liquid-containment pass treated ANY block above a road as foreign and removed it — correct before road designs existed, wrong afterwards. It now leaves the design's blocks alone (and still removes real liquids and foreign blocks).

v3.0.0 — changes since v2.0.0

Changed — Creature confinement is now a real wall

  • Animals walk into an invisible wall at the plot edge instead of straying onto the road. Confinement used to react a few times a second and then teleport a strayed animal back, which let it wander a good way onto the road first and snap back with a visible jump. It now runs as a fast pass that holds the animal at its plot's edge, so it simply can't step out — like the fence on a Minecraft/PlotSquared plot. No more jarring teleport.
  • Merge-aware — the wall sits at the outer edge of a merged group; animals roam the whole merged area freely, including the opened seams between merged plots.

Added — Roads are kept clear of stray creatures

  • Any creature that ends up standing on a road is removed. Because the wall keeps a plot's own animals inside, a creature found on a road must have spawned there — for example a mob spawner placed near a plot border whose spawn radius spilled over onto the road. Those are cleared automatically, so roads stay clean.
  • Player companions and mounts are never touched. A creature being ridden (any mount, detected via the engine itself) and our own companion pets / pet-shop NPC are always exempt — they may cross roads with their owner freely. You can add other NPC roles to the exemption list in the config.

Configuration

  • deleteCreaturesOnRoads (default true) — remove creatures that end up on a road.
  • confineIntervalMs (default 33) — how often the wall + road-clear pass runs (lower = tighter wall).
  • exemptRoles (default the pet + pet-shop roles) — NPC roles that are never confined or removed. Ridden mounts are always exempt regardless of this list.

Performance

  • The wall/road pass is pure arithmetic on the world thread (no block or world reads), iterates only actual creatures, and is skipped entirely when the plot world has no players online — so it stays cheap even with many plots and creatures. The heavier population-cap pass continues to run on its own slower schedule.

Fixed

  • The plot menu now recognises you're on your own plot when standing on an opened merge seam. Previously, standing on a former-road strip inside a merged plot, /plot showed "You're on a road" and hid the Manage / Merge / Unmerge buttons — it treated the opened seam as a road. It now correctly identifies the merged plot (and the same fix applies to every command that acts on "the plot under your feet").

v2.0.0 — changes since v1.0.0

Added — Structure Guard (anti-grief)

  • Roads and boundary stones are now truly indestructible — against any source. The roads between plots, the boundary stones that frame every plot, and the whole column of ground beneath them are continuously kept at their correct grid block. If anything alters them, it is restored within about a second.
  • Works no matter what caused the change — explosions (including TNT), area-of-effect tools, third-party plugins, the engine itself, even an operator. The guard never asks who changed a block (which can't be known for a foreign explosion); it only checks whether the structural block is still correct, so it cannot be bypassed.
  • Merge-aware — the opened seams inside a merge stay buildable for the owner, while the merged group's outer frame and the surrounding roads stay protected.
  • Plot interiors are never touched — owners build and dig freely inside their own plots.
  • Designed to stay light: the visible surface + boundary check runs everywhere every cycle, while the deeper "under the road" check is spread across cycles, so server cost stays low no matter how much of the world is loaded. At rest it only reads — it writes only the rare block that was actually changed.

Fixed

  • Merging no longer wipes builds on previously-opened seams. Re-merging — for example completing a square by adding a fourth plot — used to clear whatever you had built on the road areas that an earlier merge had already opened. Merging now only opens the seams and frames the boundary; it never resets the buildable space, so all your builds (and anything you dug underneath) are preserved. The look of a first-time merge is unchanged.

Configuration

  • New option protectStructure (default true) — set it to false to turn the structure guard off entirely.

Note

This protects the grid skeleton (roads + boundary stones + the ground under them) against everything. Protecting the interior of another player's plot against an unknown third-party plugin is not possible without an engine-level hook Hytale does not provide.


v1.0.0 — Initial release

  • PlotSquared-style plot world: a dedicated flat world split into a grid of square plots separated by roads, generated by a custom world generator. Restart-safe (the world stays loaded for instant teleports).
  • Claim & protect plots; full block/interaction protection.
  • Point-and-click /plot menu (every action also has a command).
  • Merge adjacent plots into any shape (flood-fill, footprint-exact); un-merge.
  • Per-plot weather and frozen time of day.
  • Trust / visitor permissions and group-wide bans; plot transfer.
  • Creature confinement and per-plot population cap; water/lava containment (anti-grief).
  • Craftable Plot Deed required to claim/merge (configurable); plot limit (default 9, operators exempt).
Public — visible to everyone. No account needed.

Only Marc can read this.