← Back to the presentation Discord
What’s new and fixes
HordeTown is under active development. Here is what is coming next, then what changed lately, newest first.
In preparation
Coming soon: these features are not part of the delivered plugin yet.
-
A Discord bot to keep up with your server
HordeTown Bot relays what happens in game to Discord. There are two links: the server link (admin) sends the general events — waves, bosses, caravan, arms dealer, new conquerable outpost or dungeon, Citadel — and the town link (leader or second-in-command) sends the town’s own events: the Mayor’s death, imminent siege, night boss near the town, outpost under attack, arrivals and departures. Each line can be tuned (channel, role to ping, language FR/EN/IT) from a web panel, and the commands (/town, /ranking, /stats) only answer for the linked server or town. The bot can be invited to any Discord, including a town’s own.
-
The Citadel: a siege the other way round
A rare event the admin launches by hand (at most once a week): a fortress rises at a random spot of the already explored map, far from every town, and as long as it stands no town is besieged. This time the players attack: they ram the portcullis under boiling oil while defenders keep spawning in front of the gate, clear the courtyard held by an elite garrison, then storm the keep. Fragments and keys, won from caravans and the colossus, reveal where it stands or open a portal straight into its courtyard.
-
The Citadel: the Lord and the grand finale
In the great hall waits the Lord of the Citadel, a giant wither skeleton with four phases (a shield held by four banners to tear down, the duel, the flames, the fury), whose life follows the number of players present. When he falls, the hall seals after 60 seconds and the last camp standing, one town or allied towns, plants its flag; the admin chooses at launch whether this finale is played as PvP between towns, survival against the horde, or both. A captured Citadel can be looted for 24 hours, then crumbles and the land comes back exactly as it was; each capture makes the next one harder.
-
The Citadel: the spoils and the glory
A capture pays in Citadel Steel, kept in the town’s new prize chest (in the Mayor’s menu, for the leader and his seconds): at the Weapons Master it forges weapons to levels 6 and 7, buys an artefact of your choice or a steel horn with five blows. Every participant gets a share of a money pot, according to what he did during the assault. The best attacker becomes Champion of the Citadel, a title that passes on at every capture, with embers on his name unlocked for good; the winning towns wear the Crown ♔ for 7 days and keep a reserved banner pattern. The fortress’s chests open as the assault goes on, a leaderboard counts the Citadels taken, a week without a conquest makes the next one richer, and those who do not fight watch the battle from the stands, as spectators.
-
Open-ended seasons
No imposed length: the server decides how long a season lasts. It runs until an admin types the command that starts the countdown to its end.
-
The Last Rampart, the season’s grand finale
An admin command starts it, normally on the last day. Every town is besieged every night, by a horde that grows stronger fast and digs faster; nobody can join a town while it is on. The last towns standing win the season’s leaderboard.
New additions
What was added, and how it works.
-
Going home:
/ht town/ht townon its own now takes the player back to THEIR town. A cooldown applies (town.warp-cooldown) and the command is refused in the middle of a fight. The old town sheet is now/ht town info;/ht town warp [town]is still there to reach an allied town. HordeTown no longer uses an EssentialsX warp: it works without Essentials, and/warp Cityno longer exists. A server that still has a “City” warp can remove it with/delwarp City. -
Admin tools: bypass, items, earnings, catalog
/ht admin bypassmakes the admin a member of every claim and lets them use every villager./ht admin itemslets you take or forbid each item of the plugin (the list is written toitems-forbidden.json)./ht admin money <player> [days]shows what a player has earned (earnings.json)./ht admin catalogcan now edit the vanilla lists and the caravan merchant’s stock. -
Invitations: stored in the town, with a lifetime
An invitation is now saved in the town itself: it expires after
town.invite-daysdays and survives a server restart. As a reminder,guilds.open-joinis false by default: joining a town takes an invitation. -
Town PvP:
/ht town pvp on/offThe leader or the second-in-command turns the town’s PvP on or off with
/ht town pvp on/off, or with the button provided. Opening takes 10 seconds, closing is immediate. A title shows when you enter a claim. One setting to know about: the plugin never forces the world’s PvP, so the world’spvpgamerule must be true. -
Compass:
/ht compass <caravan|boss>/ht compass caravanor/ht compass boss(or the clickable [Compass] button) gives a compass that points to the caravan or the boss. One per map zone; it is taken back from everyone when the event ends. -
Mega: played with the town, a defeat resets it to zero
The mega is played with the town members within 50 blocks, with a leash of 50 then 35 blocks. A defeat no longer deletes the town: it sends it back to zero (3×3 territory, wave 0). A public event,
TownFellEvent, announces the fall to other plugins. -
Caravan: a stall at the Mayor’s, visible reputation, safe route
The caravan stall now sets up at the Mayor’s (3 sources of goods) and survives a restart. The caravan’s reputation is visible. The caravan spawns somewhere safe, its route is cleared, and it pauses when blocked instead of pushing on.
-
Locked dimensions and pitch-black night
A teleport to the Nether or the End locked by the town is refused, whichever plugin triggers it. In the pitch-black night, a torch, night vision or the new “Night Vision” helmet enchantment makes it bearable (26 enchantments in total).
-
Optional bridges: ModelEngine and Discord
A ModelEngine bridge is available, off by default (
models.enabled). A Discord webhook is too (discord.enabled, false by default); it receives two new public events: colossus appeared and caravan waiting. -
Horde AI: the flow field is on by default
At the horn, the horde works out the road to the Town Hall once for the whole siege (up to 128 blocks around): it goes round hills, lava and water, heads for a door or the weakest stretch of wall, and only breaks through walls near the town. Close to the Town Hall, or when a mob gets stuck, the old march takes over. Measured on a 2-core server with 5 sieges and about 830 mobs: no measurable cost, 20 TPS. Configurable:
wave.ai.flow.enabled. -
Night of the Fallen: the dead dig, dawn rebuilds
A Fallen stuck at the wall of whoever it hunts now digs through it like the horde (same hardness rules), and keeps hunting its quarry even when the wall hides it; those that shoot from afar (bow, crossbow, trident, spell) first walk up to the wall. Everything they break is put back at dawn, free, with no drops, and never over something built there since. They never touch a block with something inside it (chest, furnace, bed…), the colossus’s crate or a spawner; configurable:
fallen.dig,fallen.rebuild-at-dawn. -
13 events for other plugins
HordeTown fires its own Bukkit events: town about to be founded (cancellable), founded or disbanded, member joined or left, siege started or ended, boss killed, zone captured or lost, caravan arrived or lost, contract completed. A crate key after a won siege, a Discord announcement, a “win three sieges” quest: other plugins can listen for them. They are read-only, fired on the main thread and stable from one version to the next; HordeTown depends on none of the plugins that listen.
-
Caravan: a timed escort
The first player of a town to reach a caravan picks its road: the short cut (3 min of escort, more raiders, ×1.5 purse), the ford (4 min, ×1.2 purse) or the long way round (5 min, the calmest). Their town escorts it for that long; if the lead merchant is still alive at the end, the merchants dash for the Town Hall, the base $400 is shared among the escorts and a stall opens for 10 minutes. Raiders scale with the number of escorts (8 per stage at most), and since 30 September the escort golems no longer suffocate.
-
Admin tools: locate, contest, force
/ht admin locatefinds the plugin’s own dungeons from where you stand./ht admin contestruns the contest day on demand (up to 72 hours), so you can test zone captures without waiting for Sunday./ht admin forcewave <town>starts a wave right now: the target town is the first argument. -
A town’s land protects its animals, golems and villagers
On a town’s land, only its members and allies can harm its animals, golems, villagers (its own and the plugin’s) and tamed pets. Sword, arrow, TNT or potion: a player from another town is refused, with a message that says why. Horde mobs are not covered by this rule.
-
Zone defenders fight like the horde
The garrison and boss of an outpost or dungeon use the horde’s own AI: they dig, undermine pillars, climb and take turns attacking, while staying on a leash around their pedestal (24 blocks). Perching on a pillar next to the banner no longer keeps you safe. Can be switched off:
objective.defenders.ai. -
10 hand-built mini outposts
On open ground, the drawn outpost is one of 10 hand-built mini outposts (6 in the Overworld, 2 in the Nether, 2 in the End), picked to suit the biome and turned at random; where none fits, the plugin’s small camp takes over. Its chest follows the vanilla loot table of its dimension. It never goes up on a structure, a player’s build or a player, and when the zone is replaced the ground comes back as it was.
-
10 home-made dungeons, generated with the world
HordeTown writes its own datapack at startup (nothing third-party to install) and the world generates its 10 dungeons along with the chunks, like a trial chamber: a crypt, a marsh prison, ossuary catacombs, a basalt forge, a void observatory… The higher the tier, the bigger, deeper and richer they get;
/locate structurefinds them. They appear after the next restart, in chunks generated from then on; their frequency is configurable (dungeons.frequency, 50 by default, half the original density). -
Zones to conquer: a draw twice a week
Every Wednesday and Sunday (configurable), between 10:00 and 22:00, new zones appear, each at its own time and announced in chat: 3 outposts and 3 dungeons in the Overworld, plus 1 of each in the Nether and the End once those portals are open. Each zone is guarded by a boss; taking it pays a bounty, holding it pays a daily rent shared among all the town’s members ($900 a day at most). A zone stays with its town for 7 to 15 days, then the horde takes it back with stronger defenders; on Sunday, another town can already take the oldest half of its zones, and nothing is ever generated to place one.
-
Horde AI: squads, taking turns, undermining
Mobs from the same batch march in squads behind a leader (8 at most), and at most 4 are in contact with the same player: the rest wait their turn. The horde digs according to block hardness, climbs walls 3 blocks high or more, undermines the pillar of a perched defender and stays active even far from players, under a shared budget of 2 ms per tick. Measured on a bare 4-core server (Paper 1.21.11, no other plugin): 5 simultaneous sieges (about 235 mobs) cost 13 ms per tick; about 600 mobs, a 21 ms median, still 20 TPS.
-
Longer days, the night unchanged
The day now lasts 1.5 times longer (15 real minutes instead of 10) so there is time to build, mine and get ready; the night, which is the siege window, doesn’t move. Configurable:
cycle.day-factor(1.0 = vanilla). Beds and/time setwork as usual. -
90 original bosses in five hordes
The shipped catalogue holds 90 bosses in five hordes of rising difficulty, from level 1 to 100, with their names in English, French and Italian. They are small YAML sheets in
plugins/HordeTown/bosses/: you can add your own, and an update keeps any sheet you edited and never touches yours.
Fixes
Bugs fixed, exploits closed, balance adjusted.
-
Towns founded while the server runs: the machinery starts at once
The siege machinery of a town founded while the server is running starts immediately; before, a restart was needed, and the mega on the Mayor’s death did not trigger. The staff of towns founded live also starts, and night bosses are swept town by town.
-
Crash recovery: an interrupted wave finally resumes
A “wave in progress” flag is now kept per town. Before, a wave interrupted by a crash never resumed; the flaw had been there since September 16.
-
Counters and villagers: demand per town, customers restricted
Counter demand is computed PER TOWN. Villagers only serve town members, hired mercenaries and the admin in bypass; no bed, no trade.
-
Decor protected inside a claim, towns closed by default
Armor stands, item frames, paintings, minecarts and chest boats are protected inside a claim (
DecorGuard) and can no longer be emptied or broken by a stranger. Also,guilds.open-joinis false by default: joining a town takes an invitation. -
Welcome purse: two halves, a weekly quota, and only to catch up
A newcomer’s purse ($50 per wave the town has beaten, $2,000 at most) is paid in two halves: the first when they join a town, the second once they have really fought in one of that town’s sieges. It is a catch-up purse: a town that had nothing to catch up with when they joined it (fewer than 3 waves beaten, always the case for its founders) never pays it, not even later; it is kept for the day they join a town further ahead. A town hands out at most 2 a week; once they are gone, the purse waits for the end of one of its next sieges. Still one purse per account: farming throwaway accounts no longer pays.
-
Spawner farms braked
The items a spawner’s mobs drop go down as the hour goes on: 100% for its first 100 kills, 50% for the next 100, then 25%, back to 100% when the hour turns. XP and the number of mobs never change, and the rule is printed on the spawner’s page at the caravan stall. Since 27 September, only bought spawners can be picked up; a natural one (dungeon, mineshaft) is destroyed as in vanilla.
-
/ht admin night fallen: refused in daylight instead of failing silentlyThe command only changes the sky for the town’s players, while the server reads the world’s clock: typed in daylight, it raised the Fallen and the sun swept them away two seconds later, right after announcing they were raised. It now refuses in daylight and says what to do (wait for nightfall or set the world to night). The starry-night and omen commands also no longer bring the night down when they are refused.
-
Resetting one town no longer touches the others
/ht admin reset <town>used to wipe every town on the server by mistake. It now resets only the town you name: its Mayor, land, calendar, specialists, generators, zones, posted orders and mercenary contracts. Every other town, the market, and players’ money, skills and stats stay untouched. -
A dissolved town frees its zones at once
Zones held by a town that no longer existed used to stay “held” for the rest of their 7 to 15 days. They now fall back to the horde immediately, with a single announcement to the server, whether the town was dissolved by its last member, by an admin, or lost to a Mega Blood Moon.
-
Bigger, tougher bosses
Named bosses have 50% more health and, except the colossus, hit 25% harder, shots included. They also grow: ×1.4 for siege captains and zone champions, ×1.3 for the Fallen, ×2.5 for the colossus of the day (and on a giants night the captain stands 2.5 times normal size). A grown boss can’t suffocate inside a wall; configurable:
bosses.might. -
Zone guardians follow the server’s progress
A garrison’s level used to be frozen when the zone was drawn: on a young server everything stood at level 1, and a camp drawn early stayed weak for its whole time on the map. At every wake-up the garrison is now raised to the highest wave any town on the server has beaten, if that is higher than its own (never lower). Each tier also has a floor: easy 3, medium 5, hard 8, Nether 10, End 12.
-
Heavy hitters dig faster, the horde’s hearts show from afar
Ravagers, Wardens, polar bears, hoglins, zoglins, piglin brutes, vindicators and every boss break through a wall faster than their health alone would suggest. The Warden, which a wall used to stop for the whole night, now digs. The hearts and pillars the horde plants beyond the walls are also marked by a plume of particles visible from up to 512 blocks, instead of 32.
-
Money locked for brand-new accounts
On an offline-mode server, a new username is a new account. An account must now have played 120 minutes before its money can go to another player:
/ht pay, buying a player’s market offer, posting an order. Receiving, selling and delivering stay free; a tax and a daily cap are available as options (pay.*). -
Mercenaries capped and paid only if they fight
A town can now hire at most 3 mercenaries at a time (
mercenary.max-per-town). Each one earns their share (10%) only while online and after hitting the current siege’s horde, so spare accounts can no longer sign up just to collect. -
An unreadable data file is never overwritten
If a vital file (players, towns, zones, market, orders, mercenaries…) and its
.bakcopy are both unreadable, HordeTown now refuses to start and explains why in the console, instead of starting from zero and overwriting the file at the next save. A copy of the damaged file is set aside: you repair it, or start that part from scratch knowingly. -
Orders: only plain items are delivered
An order is delivered by right-clicking the Mayor with the goods in hand. The plugin could then take the first stack of that material it found in the inventory, enchanted, worn or renamed included. Only plain items (no enchantment, no custom name, no wear) are accepted now, and the stack in hand goes first.
-
Colossus crate: no more workarounds
The crate the colossus of the day drops is reserved for the town that hit it hardest. A rival could still empty or destroy it by indirect means (hoppers, explosions): that is closed, and the horde never breaks it either.
-
The horde no longer falls into open-trapdoor traps
Minecraft’s pathfinding reads an open trapdoor or fence gate as solid floor, the old flaw behind mob traps. The horde now spots that false floor on its path: it breaks it where it is allowed to dig, then plans a new route instead of walking onto it.
-
The horde leaves animals and ordinary villagers alone
A siege used to leave dead sheep, cows and ordinary villagers behind. Wave mobs now go only for players, the Mayor and the town’s specialists; everything else is spared, even when it strikes first. The one exception: a golem that hits a horde mob can be hit back for a few seconds.
-
Calling a wave: 5 real hours between two calls
/ht callwavemakes the next wave land at the next nightfall. Blowing the horn every few minutes made progression too easy, so a town now waits 5 real hours between two successful calls (wave.call-cooldown-hours, 0 to switch off).
Live demo on request
tomboliniwork@gmail.com