
GPExpansion
The ultimate add-on for GriefPrevention 3D Subdivisions
- Загрузки
- 377
- Подписчики
- 4
- Обновлён
- 26 июня 2026 г.
- Лицензия
- GPL-3.0-only
Опубликован 2 января 2026 г.
Extend GriefPrevention with rental signs, mailboxes, and more
GPExpansion adds powerful features to GriefPrevention including rental signs, claim mailboxes, global claims, rental snapshots, claim GUIs, sign protection, and more — all while maintaining the self-service philosophy.
Haven't heard of GriefPrevention 3D Subdivisions? Get it here to enable mailbox support. This is a fork that replaces the GriefPrevention jar.
Supported Platforms
Spigot, Paper, Purpur, and Folia
Requires GriefPrevention and optionally Vault for economy features.
Optionally, replace GriefPrevention with GriefPrevention3D for seamless mailboxes (1x1x1 subdivisions and public container trust). Mailboxes will work with regular GP and there is a config setting called mailbox-protocol: virtual that helps if you want to be able to stack mailboxes on top of each other.
Features
Rental Signs
Allow claim owners to rent out their claims to other players using signs.
- Set rental prices and durations
- Automatic trust/untrust on rental start/expiry
- Supports Vault economy, experience, claim blocks, and item-based payments
- Interactive setup wizard with
/rentclaimcommand - Rental Snapshots – Save and restore claim state between renters
Setting up a rental sign manually

Sell Signs
Allow claim owners to sell their claims to other players using signs.
- Set claim prices
- Automatic transfer of ownership of claim
- Supports Vault economy, experience, claim blocks, and item-based payments
- Interactive setup wizard with
/sellclaimcommand
Setting up a sell sign manually

Claim Mailboxes
Give each claim a mailbox where other players can deposit items.
- Owners have full access to retrieve items
- Non-owners see a virtual inventory (snapshot at open time)
- Changes save only when the menu closes
- Can take back items before closing (reversible deposits)
- Items returned if mailbox fills up while viewing
- Chest opening sound/animation on sign click
- Storage warnings when mailbox is nearly full
- Purchasable via signs with configurable prices
- Interactive setup wizard with
/mailboxcommand
Creating a self mailbox

Selling a mailbox to other players

Sharing a mailbox with other players

Self Mailboxes (Instant Creation)
- Owners and renters can place
[Mailbox]wall signs directly on containers in claims they own or rent - Configurable limit via
defaults.max-self-mailboxes-per-claim
| Protocol Type | Subdivision Created | Non-Owner View | Live Updates | Stackable |
|---|---|---|---|---|
| Real Protocol | 1x1x1 (GP3D) or 1x1 2D (regular GP) | Real chest with public container trust | Yes | No |
| Virtual Protocol | None | Virtual snapshot inventory | No (snapshot at open time) | Yes |
Global Claims
Allow claims to be listed in a global claim list, viewable to all.
- Set global settings like icon, description, name, spawn point, and more
- Allows users to teleport to global claims via GUI by default
- Allows
[global]claim signs to instantly set spawn and list as global - Simple
/claim global <true|false>command to manage global listing status
Sign Protection
Protect your rental and mailbox signs from unauthorized modification.
- Admin-only sign breaking for active rentals
- Automatic cleanup on sign removal
Rental Restoration Snapshots
Admins with griefprevention.restoresnapshot can save and restore claim block state for rentals. When a rental or eviction ends, the claim can be restored to a saved snapshot so the next renter sees the original build.
- Create – Save the current claim blocks as a snapshot (e.g., before listing for rent)
- List – View snapshots for a claim or for all claims
- Restore – On eviction or rental end, the latest snapshot is applied automatically
Commands
/claim snapshot create [claimId]– Create a snapshot/claim snapshot list [claimId|all]– List snapshots/claim snapshot remove <snapshotId>– Delete a snapshot
Claim Management & GUIs
Interactive claim management with fully configurable GUIs:
/claim name <name>- Set claim name (supports color codes with permissions)/claim desc <description>- Set claim description (uses same color permissions as name)/claim icon <material>- Set claim icon for GUI display/claim spawn- Set the teleport spawn point for your claim/claim tp [claimId]- Teleport to a claim's spawn point/claim flags [claimId]- Open the claim flags GUI (GPFlags)/claim options [claimId]- Open the claim options GUI/claim ban <player>- Ban players from your claims/claim unban <player>- Unban players from your claims/claim info [claimId]- View detailed claim information/mailbox- Manage your mailboxes/gpx reload- Reload configuration and language files/gpx max- Manage player sign creation limits
Claim GUI Features
- Visual claim map editor – Resize, subdivide, and manage claims via interactive GUI
- Customizable layouts, icons, and permissions
- Teleport to claims, view claim info, and manage settings from one interface
- Integration with GPFlags for claim flag management
Configurable Tax System
Optional tax system for claim maintenance:
- Configurable tax rates per claim block
- Multiple payment methods (money, claim blocks, experience)
- Grace periods before claim deletion
- Tax exemptions via permissions
Documentation
Sign formats, configuration, permissions, and detailed guides All here
Support
- Issue Tracker - Report bugs or problems
- Discussions - Feature requests and questions
- Wiki - Detailed documentation and guides
- Discord - Join our community
Building from Source
git clone https://github.com/castledking/GPExpansion.git
cd GPExpansion
mvn clean install
The compiled jar will be in target/.
Ченджлог
1.1.9Релиз26.1.1, 26.1.2, 26.2 · 26 июня 2026 г.
GPExpansion v1.1.9
New Features
Claim Ban Bypass Permission
- Added
griefprevention.claim.ban.bypasspermission node allowing moderators and staff to bypass all claim ban enforcement (entry, teleport, and interact restrictions) - Configurable via
claim-customization.bans.bypass-permissioninconfig.yml(default:griefprevention.claim.ban.bypass) - This is a more granular alternative to the existing
admin-bypass-permission(default:griefprevention.admin) — grant it to specific roles without giving full admin access
1.1.7Релиз26.1, 26.1.1, 26.1.2 · 12 июня 2026 г.
GPExpansion v1.1.7
Changes
Ban Enforcement Refactor
- Extracted ejection logic into reusable
ejectFromClaimmethod - Added
getClaimMinY/getClaimMaxYhelpers toGPBridgefor vertical bounds - Simplified
BanEnforcementListenerusing the new GPBridge methods - Added
banlistsubcommand support in tab completion and command list
Bug Fixes
- Config overwrite on restart: Fixed a bug where the
Configclass andVersionManageroperated on separate in-memory configs. WhenVersionManagercalledplugin.saveConfig(), it would overwrite disk changes made by theConfigclass — resetting values likeclaim-flight.passive-modeto their defaults on server restart. - Prevent repeated config backups:
ensureVersion112Structure()now only runs when the config version is older than 1.1.2, preventing unnecessary backup files from being created on every server restart.
Migration
If you had the 1.1.2 config migration bug and ended up with multiple config.yml.backup_* files:
- The oldest backup is your pre-1.1.2 config (before any migration).
- The second oldest is your first post-migration 1.1.2 config (before the repeated backup bug kicked in).
- Any newer backups were created unintentionally each restart because the
defaults:section was missing from the migrated file, causingensureVersion112Structure()to re-trigger. With this fix, that no longer happens.
You can safely delete all backup files except the second oldest (which preserves your migrated config if anything goes wrong). If you prefer, you can also manually re-apply any custom config values like claim-flight.passive-mode: true — they will persist across restarts now.
1.1.6Релиз26.1, 26.1.1, 26.1.2 · 10 июня 2026 г.
GPExpansion v1.1.6
Wiki: https://github.com/castledking/GPExpansion/wiki
Fixes
- GP3D trust detection —
isTrusted()now falls back tohasExplicitPermission(UUID, ClaimPermission)when the standard reflection patterns (e.g.getBuilders(),getBuildTrusted()) aren't found. GP3D'sClaimclass never had those methods — it uses a UUID/Enum-based permission model. This fixes claim flight, the trust editor GUI pre-selection, and any other feature relying ongetTrustLevels(). - String/UUID mismatch in trust lookups —
isTrusted()now normalises collection entries vianormalizeTrustedEntries()before checking containment. GP stores player names asStringin trust lists; comparing aUUIDagainst aStringcollection always missed. /gpx reloadpicks up rent sign limits —signLimitManager.reloadConfig()is now called inreloadAll(), so changes tosigns.rent.limits.max-signstake effect without a server restart./claim evict//cancelrentsubclaim resolution —resolveClaimContext()now callsfindSubclaimAt()to use the subclaim ID instead of the parent claim ID when a rental sign is on a subdivision.
Migration
- No config changes needed.
1.1.5Релиз26.1, 26.1.1, 26.1.2 · 9 июня 2026 г.
GPExpansion v1.1.5
Wiki: https://github.com/castledking/GPExpansion/wiki
Fixes
- Claim fly in subclaims —
/claimflynow respects trust inherited from the parent claim. Previously, players trusted on the main claim but standing in a subclaim would be denied flight because the trust check only looked at the subclaim's own trust list. - Manager flag access — Players with
permissiontrust(manager-level trust) can now toggle claim flags via/claim flags. Previously only the owner or.otherpermission holders could access the flags GUI. - Rental ID resolution —
/claim evictand/cancelrentnow correctly resolve rental data by the subclaim ID instead of the parent claim ID. If a rental sign was placed on a subclaim, operations targeting it failed because the rental was stored under the subclaim ID but the code was looking it up under the parent. - Sign limit config defaults — Added
signs.rent.limits.max-signs,signs.sell.limits.max-signs,signs.mailbox.limits.max-signs,signs.mailbox.limits.max-self-mailboxes-per-claim, andsigns.global.limits.max-claims-per-playerto the config defaults system so they are automatically added to existing configs on upgrade.
Migration
- No config changes needed. Existing
defaults.max-rent-signsand similar legacy keys continue to work as fallbacks.
1.1.4Релиз26.1, 26.1.1, 26.1.2 · 8 июня 2026 г.
GPExpansion v1.1.4
Wiki: https://github.com/castledking/GPExpansion/wiki
Fixes
- Paper 1.21+ compatibility — Fixed
IncompatibleClassChangeErrorwhen resolvingSoundandParticlefrom config. Paper 1.21 changedSoundandParticlefrom enums to interfaces, breakingvalueOf()lookups. Replaced withRegistry.SOUNDS/Registry.PARTICLE_TYPElookups viaNamespacedKey.
Migration
- Compatible with Paper 1.20.6 through 1.21.x — no config changes needed.
1.1.3Релиз26.1, 26.1.1, 26.1.2 · 8 июня 2026 г.
GPExpansion v1.1.3
Wiki: https://github.com/castledking/GPExpansion/wiki
Fixes
- Claim flight disable-on-leaving-claim now works correctly —
/claimflytoggling inside a claim no longer causes players to retain flight when leaving the claim. The command was granting flight but not tracking it internally, causing the periodic reconciler to misidentify claimfly-granted flight as external (Essentials/fly). - Creative/spectator mode players bypass unsafe teleport confirmations (staff QoL).
Improvements
teleport.safe-location.staff-ignore-unsafe-locationconfig option added (default:true) — players in CREATIVE or SPECTATOR game mode skip unsafe location confirmation when teleporting to claims.
Migration
- Automatic config.yml migration to 1.1.3 structure with backup.
1.1.2Релиз26.1, 26.1.1, 26.1.2 · 6 июня 2026 г.
GPExpansion v1.1.2
Wiki: https://github.com/castledking/GPExpansion/wiki
New Commands
/cancelrent [claimId]— Renters can forfeit their rental. Supportsgriefprevention.claim.cancelrent.anywhereandgriefprevention.claim.cancelrent.otherpermissions. Admins can cancel rentals on behalf of renters./globalclaimslist— Browse publicly listed claims in a GUI with sorting, search, and teleport.
Configuration Overhaul
The config.yml has been fully reorganized around feature areas with automatic migration from v1.1.0.
Check it out here: config.yml
Fixes
- Config migration no longer drops resource-introduced sub-keys when preserving user values
- Lang missing-key detection uses
isSet()instead ofcontains()to avoid false-positives from JAR defaults - Mailbox listener, sign protection, and sign display fixes
- Claim abandonment blocked during active eviction
Migration & Compatibility
- Automatic config.yml migration to 1.1.2 structure with backup
- Automatic lang.yml key sync from JAR resource defaults
- GP3D 17.5.2 support
- Paper API compatibility updates for GriefPrevention3D
1.1.1Релиз26.1, 26.1.1, 26.1.2 · 21 мая 2026 г.
GPExpansion v1.1.1
Wiki: https://github.com/castledking/GPExpansion/wiki/Claim-Block-Accruals
Highlights
- Added permission-based claim block accrual profiles - Servers can now configure different claim block accrual rates, maximum accrued claim blocks, and maximum claim counts for default players, VIP groups, or one-off reward permissions.
- Added
/gpx accrualsadmin tools - Admins can inspect effective limits, edit configured groups, create/delete accrual groups, and apply per-player overrides without hand-editing config every time. - Added LuckPerms-aware group creation - New accrual groups can be sorted by LuckPerms weight, and
*can inherit the highest value from lower-weighted groups when creating a new profile. - Added config repair for existing installs - Servers missing
accruals.groupsnow get the new section inserted during config version migration instead of being left with an incomplete config. - Added GP3D event integration - Accrual profiles are applied when GriefPrevention3D accrues claim blocks and when players create top-level claims.
Feature
GPExpansion now manages GriefPrevention3D claim block accruals from config.yml:
accruals:
groups:
- name: default
blocks-per-hour: 100
max-blocks: 80000
max-claims: 0
- name: vip
blocks-per-hour: 20
max-blocks: 250000
max-claims: 10
- name: elite
blocks-per-hour: 50
max-blocks: 1000000
max-claims: 20
permission: elite-reward
Profiles can match by Vault/LuckPerms group name, by griefprevention.accruals.<group>, or by an optional one-off permission such as griefprevention.accruals.elite-reward.
max-claims: 0 disables the claim count cap for that profile.
Commands
New admin commands:
/gpx accruals check [player]
/gpx accruals group <group> set|add|remove <per-hour|max-blocks|max-claims|all> <amount>
/gpx accruals player <name> set|add|remove|reset <per-hour|max-blocks|max-claims|all> [amount]
/gpx accruals creategroup <name> [blocks-per-hour] [max-blocks] [max-claims] [permission]
/gpx accruals deletegroup <name>
Per-player overrides take precedence over the player's matched group profile and are only written after an admin sets them.
Pairing
This release should be paired with GriefPrevention3D v17.5.2.
Migration
Existing configs should receive the missing accruals.groups section automatically when GPExpansion updates its config version. If a config already has a valid accruals.groups section, GPExpansion leaves it untouched.
Комментарии
Загружаем…