DyClaim 1.1.0
This is the largest DyClaim update so far. Ranks can get their own claim limits. Owners can greet visitors and keep unwanted players out. Claims appear in PlaceholderAPI and on BlueMap, Dynmap and squaremap. Servers can bring their claims over from GriefPrevention or ClaimChunk. Other plugins can use a developer API, and messages now come in five languages. Every new system has its own switch in config.yml. Claim data, existing commands and permissions are unchanged, and servers can upgrade from any earlier version by replacing the JAR.
Claim limits by permission
What changed. Until now every player had the same claim.max-claims-per-player limit. Servers with ranks had no simple way to give VIPs more land. Now a permission sets the limit:
| Permission | Claim limit |
|---|---|
dyclaim.limit.5 | 5 |
dyclaim.limit.50 | 50 |
dyclaim.limit.unlimited | No limit |
- Give the permission to a group in LuckPerms or any other permission plugin. Any number works.
- If a player has several, the highest one wins.
- The permission replaces the default limit, so a lower number can also restrict a group, for example new players.
- Players without a
dyclaim.limitpermission keep the default limit, so nothing changes on servers that do not use it. - Per-world limits under
claim-rules.worldsstill apply. A world without its own limit uses the player's effective total. /claim listshows the effective limit, for example3/10, or∞for unlimited.- Being OP does not grant these permissions; they must be given explicitly.
- Switch:
claim.permission-limits.enabled.
Claim messages
What changed. Owners can now set a short message that visitors see in chat when they walk into the claim, for example [Alex] Welcome to the market!.
/claim message <text>sets the message./claim message clearremoves it.- Owners and coowners can set it. They do not see it themselves when they walk in.
- The message is shown when a player enters from outside or from another owner's land, not on every step inside.
/claim infoshows the current message.claim-messages.maximum-lengthsets the longest message, 1 to 128 characters (default 64).claim-messages.allow-colorsdecides whether&colour codes are allowed (default: off).- Section signs and control characters are always rejected.
- Permission
dyclaim.message(everyone by default). Switch:claim-messages.enabled.
Visitor bans
What changed. Trust decides who can build, but until now there was no way to keep a specific player from walking in. Owners can now ban a player from one claim.
/claim ban <player>bans permanently./claim ban <player> 30m,2hor7dbans for a time./claim unban <player>lifts the ban./claim banlistshows active bans and when each one ends.- A banned player cannot walk or teleport into the claim and sees "You are banned from Alex's claim."
- A player who is inside when banned is moved to a safe unclaimed spot nearby, using the same exit search as visitor warnings.
- Banning removes the player's trust in that claim. Trusting them again lifts the ban.
- Owners, coowners, administrators, players with active bypass and players with
dyclaim.ban.exemptcannot be banned. claim-entry-bans.maximum-per-claimlimits bans per claim (default 50).- When ownership changes through a transfer or a market sale, the old owner's bans and message are cleared.
- Permission
dyclaim.ban(everyone by default). Switch:claim-entry-bans.enabled.
The existing admin "claim-entry-ban" sanction for warnings is separate and works as before.
PlaceholderAPI
With PlaceholderAPI installed, DyClaim registers its own dyclaim expansion. No /papi ecloud download is needed.
| Placeholder | Value |
|---|---|
%dyclaim_claims% | Claims the player owns or coowns |
%dyclaim_claims_owned% | Claims the player owns |
%dyclaim_limit% | Effective claim limit (∞ when unlimited) |
%dyclaim_remaining% | Claims the player can still get |
%dyclaim_in_claim% | true or false for the current chunk |
%dyclaim_owner% | Owner of the current chunk |
%dyclaim_name% | Name of the current claim |
%dyclaim_pvp% | PvP in the current claim |
%dyclaim_can_build% | Whether the player can build here |
%dyclaim_role% | owner, coowner, trusted or visitor |
%dyclaim_total% | Claims on the whole server |
Use them in scoreboards, tab lists, holograms or chat formats. Switch: integrations.placeholderapi.enabled.
Claims on the web map
DyClaim now draws claims on BlueMap, Dynmap and squaremap.
- Each owner's neighbouring chunks are joined into a few areas instead of one square per chunk.
- Every owner keeps the same colour, so land is easy to tell apart.
- Hovering or clicking shows the owner and any claim names.
- The layer is refreshed every 60 seconds by default (
integrations.maps.refresh-seconds, 10 to 3600) and after/claim admin reload. - A refresh works out the claim areas off the main server thread and sends the map plugins only what was added or removed. When nothing changed, the maps are not touched, so even servers with tens of thousands of claims do not lag on each refresh.
layer-name,fill-opacity,line-opacityandhidden-worldscontrol the look and which worlds are shown.- Each map plugin has its own switch, plus a master switch
integrations.maps.enabled. - On the Folia build only BlueMap is used, because Dynmap and squaremap do not run on Folia.
Import from GriefPrevention and ClaimChunk
What changed. Moving to DyClaim used to mean every player had to claim again. Now DyClaim can copy existing claims.
- Install DyClaim next to the old plugin and start the server.
- Run
/dyclaim admin import griefprevention(orclaimchunk). This only shows a preview: how many claims were found, how many new chunks they cover and what will be skipped. - Run the same command with
confirmto import. DyClaim writes a backup of its claim file first. - Remove or disable the old plugin.
How claims are converted:
- GriefPrevention: every chunk that a player claim touches becomes a DyClaim claim for the same owner. Builder and manager trust become full trust, container trust becomes containers, entities, doors, trapdoors and redstone, and access trust becomes doors, trapdoors and redstone. Admin claims, subclaims, public trust and group trust are skipped.
- ClaimChunk: every claimed chunk is copied with its owner, and per-player access maps to the closest DyClaim rights.
- Chunks DyClaim already owns, chunks in blacklisted worlds and chunks claimed by two different owners in the source are skipped.
- Imported claims have no purchase price, so selling them back refunds nothing. Limits and prices are not checked during import.
- The old plugin's data is never changed. Running the import again only adds what is still missing.
Use /dyclaim (or dyclaim in the console) instead of /claim for this command, because GriefPrevention also registers /claim. Import requires dyclaim.admin.
Developer API
Other plugins can now read DyClaim claims and react to changes. The API is part of the normal JAR, in the dev.dyclaim.api package.
DyClaimAPI.getClaimAt(location),getClaims(player),getClaimCount(player),getClaimLimit(player),canBuild(player, location)andgetAllClaims().- A
Claimgives the owner, coowner, name, location, claim date, trusted players and each permission right. - Events:
ClaimCreateEvent(by player, admin or import),ClaimRemoveEvent,ClaimTransferEventandClaimTrustChangeEvent. - The API is read-only; changes still go through DyClaim's commands with all their checks.
- Event objects are only created when another plugin listens, so servers without such plugins pay nothing.
The full guide with examples is at docs/api.md.
German, Spanish and Russian
DyClaim now ships complete message files in German, Spanish and Russian, next to English and Turkish.
- With
lang: auto, players get these languages from their Minecraft language setting. - Players can choose with
/claim lang de,esorru. Administrators can force one for everyone with/claim admin lang de|es|ru. - Commands stay English in these languages. Turkish keeps its translated command words.
- The new files
messages_de.yml,messages_es.ymlandmessages_ru.ymlare created in the plugin folder and can be edited like the others.
bStats
DyClaim now sends anonymous statistics to bStats: server and player counts, Minecraft and plugin versions, and a few DyClaim charts (language mode, platform, economy on or off, claim count range, PlaceholderAPI use and active map plugins). No player names, claim locations or chat are sent. Turn it off with metrics.enabled: false, or for every plugin in plugins/bStats/config.yml.
Smaller changes
- Claim changes such as trust, settings, names, messages and bans are now written to disk in the background, so servers with very large claim files no longer pause. Steps that involve money, imports, inactive cleanup and shutdown still save immediately.
/claim admin diagnoselists active PlaceholderAPI and map hooks, and shows Floodgate with its correct name.- Help shows the new commands only to players who have the permission and only while the feature is on.
- TAB suggests player names, durations and
clearfor the new commands, and the import sources andconfirmfor administrators.
Performance
The four-plugin, 50-claim comparison was repeated with the 1.1.0 JAR on 24 October 2026, with the same method, server, plugin versions and order as before. Values are milliseconds per 1,000 block-break checks, median of six windows (observed range in brackets).
| Plugin | Owner allowed | Visitor blocked | 50% / 50% mixed |
|---|---|---|---|
| DyClaim 1.1.0 | 0.677 (0.595–0.841) | 10.194 (6.647–12.506) | 5.430 (3.621–6.674) |
| GriefPrevention 16.18.3 | 0.479 (0.369–0.696) | 12.409 (8.943–17.313) | 6.443 (4.674–9.005) |
| ClaimChunk 0.0.25-FIX3 | 1.032 (0.921–1.150) | 39.302 (28.809–49.809) | 20.167 (14.872–25.453) |
| Towny 0.103.2.0 | 3.720 (3.228–4.639) | 37.772 (31.086–43.227) | 20.752 (17.169–23.641) |
How to read the results:
- DyClaim had the lowest median in the mixed workload. GriefPrevention was faster when only owners were checked.
- The DyClaim and GriefPrevention ranges overlap, and so do the ClaimChunk and Towny ranges.
- Claim messages and visitor bans are checked when players move, not when blocks are broken, so this test does not cover them. Block protection itself did not change in 1.1.0.
- These are event-processing times, not CPU or RAM usage, and they do not prove DyClaim is faster in every situation. Differences from the 22 October numbers are normal run-to-run variation on a desktop machine.
Upgrading
- Stop the server.
- Back up the old JAR and the complete
plugins/DyClaimfolder. - Replace the JAR with
DyClaim-1.1.0.jar, orDyClaim-1.1.0-Folia.jaron Folia. Remove the old JAR. - Start the server. New settings are added to
config.ymlwith their defaults, and the new language files are created.
Claim messages and visitor bans are on by default. To turn them off, set claim-messages.enabled: false or claim-entry-bans.enabled: false.
To go back to 1.0.4, put the 1.0.4 JAR back. Claims stay compatible. 1.0.4 ignores claim messages and visitor bans and drops them the next time it saves.
Verification
-
Automated tests. 328 tests passed: the 299 from 1.0.4 and 29 new ones for every new system.
-
Upgrade from 1.0.4. A Purpur 1.20.4 server with LuckPerms, PlaceholderAPI, BlueMap, Dynmap and squaremap passed 18 of 18 checks:
- claims were kept;
- rank limits, placeholders, claim messages and visitor bans worked;
- German, Spanish and Russian help appeared;
- map markers and reload worked.
-
Upgrade from older versions. Real data made by the Beta and by 1.0.3 passed 12 of 12 checks each:
- claims, trust and names were kept, and the Beta file was backed up first;
- untouched messages switched to the new wording while edited ones were kept;
- the new features worked on the old claims.
-
Economy, market, clans and API: 32 of 32 checks, with Vault and EssentialsX:
- Prices. A claim cost $1,500 and selling it refunded $900. A market sale for $1,000 paid the seller $950 after the 5% tax and cleared the old owner's message and bans.
- Timed bans. A 1-minute ban stopped both walking and
/tpinto the claim, then ran out on time. - SimpleClans.
/claim trust clan:<tag>let clan members build, and/claim untrust clan:<tag>took it back. - API. A test plugin received every API event on the main thread and read the right values.
-
Import. 50 real GriefPrevention claims and 50 real ClaimChunk claims arrived with the right owners, and a second run added nothing. Trust given with
/trust,/containertrust,/accesstrust,/permissiontrustor/chunk accessbecame the matching DyClaim rights. -
Web maps. With BlueMap's download terms accepted on the test server:
- Purpur: 12 of 12 checks. BlueMap, Dynmap and squaremap showed new claims and dropped sold ones, and the hidden-world and on/off switches worked.
- Folia: 6 of 6 with BlueMap 5.5.
-
Large servers. With 10,000 claims and all three map plugins, the longest server tick was 5.8 ms (5.3 ms without maps). In an extreme test with 49,807 scattered claims, map refreshes no longer cause lag spikes: the longest tick dropped from 685 ms in the first test build to 19.8 ms.
-
Saving. A claim message was on disk 3 seconds after it was set, even when the server process was killed right after. A claim made just before
/stopwas also kept. -
Minecraft versions. 10 of 10 checks passed on each of these servers: claiming, protection, claim message, bans, German help and reload.
Server Versions Paper 1.20.1, 1.20.6, 1.21.1, 1.21.4, 1.21.8, 1.21.11, 26.1.2, 26.2, 26.3 Purpur 26.2 Spigot 26.2, 26.3 Folia 26.2, 26.3 -
PlaceholderAPI on Folia returned the right values for a real player.
-
bStats. One real submission was sent with the right plugin ID and charts, and with no player data.
-
Not tested: Bedrock players through Floodgate.

