Three Paper plugins
Clay Mobs, Clay Duels and Clay Lobby. One jar each, no dependency chain, every feature in the free download.
See all threeClay Mobs, Clay Duels and Clay Lobby. One jar each, no dependency chain, every feature in the free download.
See all threeHow the plugins get built, how to configure them, and the occasional thing that went badly wrong on a live server.
Watch on YouTubeBlockbench models and texture packs made for my own servers, packaged up so you can drop them into yours.
Browse modelsPlugin support, model requests, release notes, and early builds before they land on the site.
discord.gg/bznMms5mPUWrite a boss in a file and it behaves like one. Config-driven mobs, ~110 mechanics, real pathfinder AI, and packs in two formats side by side.
Everything a duels server needs, in one jar. Ranked queues, replays, tournaments, wagers, and arenas that rebuild themselves exactly.
The lobby, the network glue and the editor — all in the box. Twelve modules, proxy companions, and forms instead of chest menus.
None of the three need Vault, WorldEdit, Citizens, a party plugin or a packet library. Optional integrations are detected at runtime and skipped when absent.
Every feature on this site is in the jar you download. No premium build, no paywalled module, no licence key, no unlock for the editor or the replay viewer, and no upsell in chat. Nothing calls home either.
No feature sits behind a GUI only — which also means Bedrock players are never stuck at a menu they cannot use.
Clay Mobs is the content, Clay Duels is the competition, Clay Lobby is the hub in front of both.
| Clay Mobs | Clay Duels | Clay Lobby | |
|---|---|---|---|
| Version | 0.1.0 | 1.13.0 | 1.0.0 |
| Server | Paper 1.21.4+ | Paper 1.21.4+, 1.8.8 build | Paper 1.21.9+ |
| Java | 21 | 21+ | 21 |
| Storage | YAML packs | SQLite / MySQL | Flatfile / SQLite / MySQL |
| Required dependencies | None | None | None |
| Licence | MIT | MIT | — |
Bug reports, config questions, feature arguments and release notes all live in the same place.
discord.gg/bznMms5mPUConfig-driven custom mobs, skills and spawning for Paper. Existing MythicMobs-format packs drop in unchanged; Clay Mobs' own format puts a whole boss in one file.
Servers that write their own content, keep it in version control, and want to know exactly which lines the plugin could not read.
A file is native because of its first line — effmobs: 1 — not its folder, so a server can convert one pack and keep the rest. /effmobs convert rewrites a pack without touching the original.
Damage, heal, potions, particles, summons, projectiles, teleports, auras, variables, signals, boss bars, commands — across ~30 triggers. /effmobs components prints the live registry.
Type:AI selectors compile into 19 real pathfinder goals and 12 target selectors. Threat tables drive targeting, factions carry a relation matrix and per-player standing, and targets: [] is how you write a mob that never attacks.
Random spawn rules, placed persistent spawners, vanilla spawn replacement rather than addition, and a distance/time despawn policy — each off by default and gated separately.
Every diagnostic carries a file and a line. Unknown mechanics are reported by name and frequency, so the gaps that matter to your packs are the visible ones.
effmobs-api has no platform dependencies. Register your own mechanics, targeters, conditions, placeholders and triggers into the same registries the core uses.
The skill lines are identical in both formats; what changes is the envelope. Options are grouped and schema-checked, and AI priority is list order rather than numbers you maintain by hand.
effmobs: 1
mob:
id: emberwarden
type: wither_skeleton
display: "<gradient:#c67139:#ffc6a5>Emberwarden</gradient>"
health: 420
damage: 9
ai:
goals: [float, melee_attack, look_at_player]
targets: [nearest_player]
skills:
- onTimer 60: ring{particle=flame;radius=3}
- onDamaged: cast{skill=ember_burst;chance=0.3}
drops:
- ember_core 1 0.15
$ /effmobs coverage
loaded mobs 41/43 skills 118/121 items 12/12
failed Mobs/legacy/warden.yml:24
unknown mechanic "disguise" (3 packs)
failed Skills/aoe.yml:11
composite condition "&&" not supported
failed DropTables/rare.yml:7
unknown targeter "@NearestStructure"
Disguises, health bars, and composite && / || conditions.
Paper 1.21.4 or newer · Java 21 · no required dependencies · MIT
Clay Mobs is an independent project, not affiliated with or endorsed by MythicMobs. It reads a compatible file format implemented from public documentation only. Version 0.1.0 is early: feature-rich, but younger than the other two plugins here.
Challenges, ranked queues, parties, kits, self-rebuilding arenas, spectating, replays, Elo, tournaments and wagers — without Vault, WorldEdit or a party plugin. Drop the jar in, make one arena, duel.
Competitive servers that want the whole package — and want their kits, modes and arenas to be files they can read.
First run writes a working config plus sixteen ready-made kits and modes: Classic, NoDebuff, Soup, Archer, UHC, Crystal, Combo, Sumo, Boxing, Build UHC, Bed Fight, The Bridge, Spleef, TNT Run, Rising Lava and Random Fortune.
Pause, speed, seek and jump between kills. The recording is a compact list of what changed, so ten minutes of a 2v2 costs tens of kilobytes. Retention is capped by both age and count.
Single-elimination, seeded by rating, byes to the top seeds, the best two kept apart until the final. Bouts start as arenas free up, so a sixteen-player event needs one. The bracket is written to disk on every result and survives a restart.
Combat, health, items, projectiles, movement, world editing, resets, round formats, win conditions and hazards. Click to edit or type the command. Modes and kits are plain YAML, so a competitive setup can live in git.
Every block change is journalled before it happens — fire, fluids, pistons, explosions — and replayed in reverse afterwards. If a journal is ever incomplete, the arena is rebuilt from a captured baseline.
Recorded as it happens against overall, duel, <mode>, ffa and <arena>, so a leaderboard is one indexed lookup. Averages have a ten-game floor. ~40 PlaceholderAPI placeholders expose all of it.
Duels move players' real inventories around, so those paths are built on hard rules rather than best effort.
The snapshot goes to the database first; only then is anyone teleported or given a kit. A crash mid-duel leaves an unambiguous record of who is owed what.
A killing blow is intercepted and turned into an elimination — no dropped inventories, no respawn screen to get stuck on.
In an inventory, in escrow, or in /duelinbox — never on the floor. Claiming takes the database row first, so a stack cannot be claimed twice.
One compare-and-set in the database. An unknown economy answer is never retried — the wager is parked for /dueladmin economy rather than guessed at.
One line of config. Integrated mode only ever makes Clay Duels do less, so it is safe to switch on partway through a server's life — duels, arenas, kits, modes, ratings, wagers and replays are identical in both.
| dedicated (default) | integrated | |
|---|---|---|
| Lobby hotbar and sidebar | Available | Never |
| Teleport on join | Available | Never |
/d, /queue, /ranks, /replay | Kept | Handed back to the server |
| Where a duel may start | Anywhere | Your allow and block lists |
It never takes a scoreboard away from another plugin, anything that pulls a player out of the world fires a cancellable event first, and if duels run their full length with nobody taking damage it says so instead of leaving you to guess.
Paper 1.21.4 or newer, Java 21+ · a separate Spigot 1.8.8 build from the same sources · 502 tests passing across 48 test classes
Optional integrations only: PlaceholderAPI, Vault and an economy, and a Discord webhook. SQLite by default; MySQL or MariaDB when several servers share data. Migrations are automatic and forward-only.
Twelve modules over Paper 1.21.9, with Velocity and BungeeCord companions and an in-game editor made of real form controls. No NMS, no packet library, no Citizens.
1.21.9 is where Mannequin — a first-party, player-shaped NPC entity — landed, and 1.21.8 is where Paper's Dialog API did. Between them they mean no NMS, no packet library, no Citizens, no capability probes or fallback code paths, and an editor made of real form controls rather than chest menus pretending to be them.
| Module | What it does |
|---|---|
| Lobbies | Named lobbies, several spawn points each, first / random / round-robin selection, and a safe teleport that will not drop somebody inside a wall |
| Regions | Cuboid, cylinder, sphere and global shapes over a chunk-bucketed spatial index, with thirteen protection rules and priority where they overlap |
| Menus | Chest GUIs that are dupe-proof by construction, not by remembering to cancel an event |
| Items | Hotbar items locked into their slots, with requirements and per-click actions |
| Display | Scoreboard, tab list, boss bar, and an action-bar arbiter so four features do not fight over one line |
| NPCs | Four engines — mannequin, floating item, floating block, floating text — all first-party, all click-routable |
| Holograms | TextDisplay holograms never written to the world save, so a crash cannot leave duplicates |
| Movement | Launch pads, double jump, portals |
| Player hider | See everyone, staff only, or nobody |
| Proxy | Velocity and BungeeCord companions with an authenticated channel and proxy-authoritative queues |
| Editor | Edit seven kinds of object in game, in real dialogs, and save back to YAML with the comments intact |
Every feature is a module with its own block under modules:, and enabled: false genuinely stops it — its listeners are never registered, and anything that wanted it is skipped with a line naming what it wanted.
A name, a chat line, a queue id off the wire: all inserted as literal characters, unable to introduce a colour or a clickable link. Enforced at construction by a three-level trust type, not by remembering to escape.
Per-type on purpose: a build team can be trusted with holograms and lobby spawns without also being handed the protection rules.
Flatfile, SQLite or MySQL behind one interface, all storing the same document — so switching needs no converter, and the flat file stays readable in a text editor.
Server software, Java version, player count, rough location, which modules are on. No world names, no player names, no IPs, nothing typed into a config. Opt out in either place; both are honoured.
apiCheck reads the compiled bytecode against an index of what Paper 1.21.9 actually had and fails the build on anything newer — which is why there are no capability probes anywhere in the plugin.
/veplobby-import reads another lobby plugin's setup and reports what it would do before it writes anything.
modules:
lobbies: { enabled: true }
regions: { enabled: true }
npcs: { enabled: true }
holograms: { enabled: true }
proxy:
enabled: true
secret: "<same value on every backend>"
player-hider:
enabled: false # listeners never registered
Paper 1.21.9 or newer · Java 21 · no required dependencies · 519 tests · boots a real Paper 1.21.9 in ~79 ms
Every phase is written, building and booting, with seventeen modules verified running together on a live server. What remains is a standing list of things that build, test and boot but have not yet been seen work with a client attached; docs/STATUS.md keeps that list and is the honest document of the project.
Boss rigs, weapons and armour, built for my own servers and packaged so they drop straight into yours. Spin any of them here before you download — each pack ships the model, the texture and the resource-pack files.
Animated Blockbench entities, texture sheet included.
156-cube boss rig with 13 animations. 1024×512 texture, Blockbench source included.
179 cubes, 12 animations and a 1024×1024 texture sheet.
199 cubes across a jointed rig, 10 animations, 1024×512 texture.
Each viewer reads the .bbmodel file itself — drag to spin, scroll to zoom. Animations are in the file but not played here. Full packs are placeholder links until you drop the zips into downloads/models/.
The Frostreaver set — a runeblade and the four regalia pieces that go with it. These are CraftEngine items: the pack ships the item definitions, the Java models and every texture, so the whole set drops into a server as one folder.
71-cube runeblade on a netherite sword. +9 attack damage, 2500 durability, 128×128 texture.
21 cubes, worn as a real 3D model rather than a flat armour layer. +4 armour, +3 toughness, 1400 durability.
25 cubes over a netherite chestplate. +9 armour, +3 toughness, 2000 durability.
20 cubes over netherite leggings. +7 armour, +3 toughness, 1900 durability.
22 cubes over netherite boots. +4 armour, +3 toughness, 1600 durability.
These viewers read the Minecraft Java model JSON and pull the textures straight out of models/items/, so what spins here is exactly what the client draws. Every button downloads the same fetzitems.zip — the whole set in one file, including the item configs, the flat 32px inventory icons and the worn armour layers, which are 2D by design and have no model to show.