Upgrade Grief Prevention with a sleek GUI, claim TP, custom flags, and more!
New Flag: Prevent auto portal creation when switching worlds via portals.
Stops Minecraft from automatically creating linked portals (e.g., Nether → Overworld) which could interfere with regions.
⚠️ Future update planned to allow redirecting portal coordinates instead of blocking creation.
Not fully tested — please report any issues.
Claim Name Flag: Added a character limit for claim names.
Configurable in FlagSettings.yml
.
Default: 30
characters.
/transferclaim command has been reworked and is now handled by Grief Prevention GUI (overrides GriefPrevention’s default).
Usage:
/transferclaim <player> [claimid]
[claimid]
is optional — defaults to the claim at the executor’s location.
Admin claim transfers require /ignoreclaims
.
Permission: griefprevgui.command.transfer
Not fully tested — please report any issues.
Fixed: ClaimFly flag not disabling properly when players used Elytra to leave a claim. Flight and gliding are now consistently disabled on exit.
Fixed: noMobSpawnType
flag incorrectly blocking all mobs instead of just selected types.
Fixed: /claimlist
incorrectly requiring permission to view personal claims.
Fixed: Chat input mode for editing flags (e.g., Enter Message) now properly intercepts input instead of showing it publicly in chat.
Fixed: Error java.lang.IllegalArgumentException: name cannot be empty
.
Fixed: Issues with /unclaim
.
Improved: Compatibility with SkinsRestorer — added username validation and safer exception handling to reduce DataRequestException
spam when invalid usernames are used.
✅ This release focuses on new flag functionality, command improvements, and bug fixes for more reliable claim management.
✅ Status: Release Candidate
🧪 Includes major internal changes — please report any issues!
Tiny Text Config:
Introduced new section in language.yml
:
tiny_text:
enabled: true
convert_gui_title: true
Allows finer control over where tiny text is applied (e.g., disable it for GUI titles).
Deprecated: enable_auto_text_conversion_to_tiny_text
— support will be dropped soon.
Mob Heads Configuration:
Added new file: mobheads.yml
Includes pre-filled decorative heads.
Used in the No Mob Spawn Type flag's GUI for mob selection.
Fixed GUI head textures not loading correctly (previously defaulted to STONE
).
Fixed placeholders not working in the Action Bar Message flag.
Fixed NullPointerException
when unclaiming admin claims.
Fixed console spam when teleporting between worlds while balloon effect is active.
Player Data System Rework:
Completely restructured how player data is loaded and cached.
Improves performance, especially on large servers during startup.
⚠️ Some features may behave differently — testing and feedback are encouraged!
🧱 Visualizer Initialization Error
Fixed an IllegalArgumentException
that could occur during region visualizer initialization under certain conditions.
💥 Server Crash on /untrust
Resolved a critical issue where using the /untrust
command could cause the server to crash.
This was due to an internal bug in placeholder handling introduced in the previous update.
The plugin no longer supports Spigot due to delays and compatibility issues with essential libraries like Adventure.
➡️ Please use Paper, Purpur, or other API-compatible forks.
Added full compatibility for Minecraft 1.21.7.
Initial support for Bedrock players using GeyserMC and Floodgate.
Enable in config.yml
:
gui:
bedrockGuiSupport:
enable: true
color_replace: '&7'
New bedrock_supported
GUI item option:
goback:
material: OAK_DOOR
display_name: '&7⟰ &aGo Back'
slot: 45
bedrock_supported: true
Disable explicitly if needed:
claiminfo:
material: MAP
display_name: '&7Info &7(&aView&7)'
slot: 49
bedrock_supported: false
✅ Some GUI items have already been updated for Bedrock compatibility.
⚠️ Limitations:
Hex color codes are not supported for Bedrock
Claim visualization not yet functional for Bedrock clients
All &7
colors are auto-converted to &8
for visibility
🧪 Safe to test — you can disable it anytime, and Bedrock players will return to classic chest GUIs.
Improved console messages when using an older pre-release and a newer version is available.
🛑 SkinRestorer Missing Handling
Fixed a critical issue causing startup loop if SkinRestorer was not installed, even when disabled in config.
🧱 Region Handling Errors
Resolved errors caused by uninitialized region systems.
🧩 GUI Formatting on Missing Claim ID
GUIs opened without a claim ID (e.g., /claiminfo
) will now display properly based on the player's current claim.
📄 GUI Pagination Fix
Resolved an issue where GUI page navigation failed.
🧩 Placeholder Parsing
Fixed improper placeholder handling in EnterActionbar
and EnterMessage
for custom flags (not GPFlags).
🗺️ Claim Visualization Cleanup
Claim visuals now despawn correctly when chunks unload mid-animation.
📋 GUI Filter Formatting
Corrected GUI formatting issues in filtered menus.
Now supports hex color customization:
claim_visualization:
enable: true
disable_gp_visualization: true
default_display_block: GRAY_STAINED_GLASS
color: '#FF4646' # Main claims
color_sub_claim: '#50C878' # Subdivisions
Add vibrancy and clarity to your claim visuals 🎨
Improved loading of default values for Grief Prevention GUI flags from FlagDefaults.yml
.
⚠️ Does not apply to GPFlags.
🔄 Changes require a server restart (live reload planned in future).
Player data now loads faster, boosting server performance.
Internal placeholders now handled natively, reducing dependency on PlaceholderAPI and increasing speed + stability.
Consistent tiny text formatting now works across placeholders and GUI elements.
Significant internal refactoring and cleanup:
✅ Smaller file size
✅ Better performance
✅ Easier maintainability
🧪 This version includes major internal reworks and introduces Bedrock support as a stable feature.
While thoroughly tested, edge cases may still exist — please report bugs or feedback.
🆕 New Features
🎭 SkinRestorer Integration
Enhanced support for the SkinRestorer plugin:
Skins are now displayed in the trust list menu and add player menus.
If an offline-mode (cracked) player joins using a premium username, the plugin will use SkinRestorer to generate and display the correct skin.
💾 Skin Caching has been implemented to eliminate lag when loading player lists in GUIs.
🔧 This feature is disabled by default. To enable it, set the following in your config.yml
:
gui:
player_list_format:
# If enabled, the player list will use SkinsRestorer to get player skins.
# If disabled, it will use the default Bukkit skin system.
skin_restorer: true
ℹ️ If SkinRestorer is installed on a proxy (e.g., BungeeCord/Velocity) and misconfigured, support will be automatically disabled to prevent issues.
➤ To fix this, follow the official guide:
https://skinsrestorer.net/docs/troubleshooting/proxy-mode
🪂 Toggle-Based Claim Fly System
Players must manually toggle flight using /claim fly
or /claimfly
when entering a claim with flight enabled.
🛠️ Enable this feature in your FlagSettings.yml
:
fly:
requirePlayerToggleFlight: true
🌐 New Language Support for Claim Fly System
Added customizable messages:
message.player_flight_toggled_on
message.player_flight_toggled_off
message.This_feature_disabled
message.Claim_flag_fly_toggle_required
📋 Advanced Claim Listing
/claimlist all
— View all claims on the server. (Requires permission: griefprev.gui.claims.all
)
/claimlist <player>
— View claims owned by a specific player. (Requires permission: griefprev.gui.claims.other
)
🧱 New Visualizer Permission
Added permission: gpgui.visualization.atplayer
Allows spawning the region visualizer at the player’s current location.
🔄 Changes
🎨 Default Visualizer Style Updated
Changed the default region visualizer to wall style, now 3 blocks tall for better visibility.
🧩 Placeholder Logic Overhaul
%griefprevgui_isclaimed%
and %griefprevgui_claimedby%
now check the block the player is standing in.
➕ Added new placeholders:
%griefprevgui_isclaimed_lookingat%
— Checks if the block the player is looking at is claimed.
%griefprevgui_claimedby_lookingat%
— Returns the owner of the block the player is looking at.
⚙️ Improvements
🚀 Performance Optimization
Improved internal caching systems for faster GUI loading and flag checks.
🛠️ Fixes
🎯 GUI Priority Fix
Fixed an issue where the wrong GUI item was selected in the "this_claim_*"
section due to incorrect priority.
🛑 GUI Stability
Fixed a rare NullPointerException
that could occur when closing a GUI.
📋 Advanced Claim Listing
Use /claimlist all to view all claims on the server.
Requires permission: griefprev.gui.claims.all
Use /claimlist <playername> to view claims owned by a specific player.
Requires permission: griefprev.gui.claims.other
🚀 Performance Optimization
Improved internal caching for faster and more efficient performance, especially during flag checks and claim interactions.
🧱 Subdivision Support Enhancements
The owner_only: true option in FlagOptions.yml now works correctly with subdivisions, hiding flags from non-owners.
🎨 Model Data Support for Flags
You can now define custom model data for flag items via flagoptions.yml, allowing for more visual flexibility and custom design.
🐲 Fix for Flag Bypass via Custom Mounting (MythicMobs / ModelEngine / McPets)
Added experimental support for plugins like MythicMobs, ModelEngine, and McPets that allow custom entity mounting and movement.
These plugins often bypass PlayerMoveEvent and VehicleMoveEvent, leading to potential flag bypasses (e.g. NoEnter).
This update adds a workaround to better detect and prevent unauthorized movement.
⚠️ This is an experimental feature — please report any issues or edge cases you encounter.
🧱 Model Data Support for Flags
You can now assign custom model data to flag items via flagoptions.yml
, allowing for more advanced and visually distinct GUI designs.
🗺️ Full Region Visualization Overhaul
Visualization has been revamped:
Previously shown as lines on corners, regions are now fully visualized, making boundaries clearer and more immersive.
🎯 Visualization Alignment Fix
Corrected an off-by-one block issue where the region display was slightly misaligned.
⚙️ General Region Visualization Fixes
Addressed various bugs and inconsistencies in how regions were being visualized.
✈️ Timed Flight Command Permission
Added permission **gpgui.timedflight**
required to use the /claim timedflight
command.
Make sure to grant this permission to the appropriate roles/groups!
🧪 Added Support for Minecraft 1.21.5
The plugin now supports Minecraft 1.21.5. Please report any version-specific issues!
🗺️ New Flag: ClaimMapFlag
Adds experimental support for Dynmap and BlueMap.
This flag is in early stages and will be refined in future updates. Please report any issues!
⚙️ New Config Option: show_only_trusted_and_owned_claims_when_sorted_as_all
Allows you to hide public claims when the claim list is sorted by "All".
🔄 Editable Reload Message
You can now customize the plugin's successful reload message.
✅ Re-added support for %gpextension...% placeholders.
Placeholders starting with %gpextension now function as expected.
❗ Fixed a bug where trying to unclaim an admin claim would cause an error.
🛑 Fixed an issue where players could mine/build outside a claim while standing inside it, even with only_allow_building_in_claimed_areas and only_allow_mining_in_claimed_areas enabled.
📛 Improved error message when a claim with the specified claimid is not found.
📍 Using here outside of a claim when updating a flag now shows a proper warning.
🔧 Fixed an ArrayIndexOutOfBoundsException caused by setting GUI items to AIR.
🧼 Prevented AIR items from overwriting GUI elements like claim flags or list entries.
🔁 Fixed errors when configuring menu controls.
📌 Fixed an issue where sorting by permission would freeze after reaching public claims.
🛠️ Fixes related to the new show_only_trusted_and_owned_claims_when_sorted_as_all option.
🧨 Fixed NullPointerException and NoClassDefFoundError on startup when GPFlags is not installed.
- Fixed paginated GUI not working ( claimlist, claim upgrade, etc )
Fixed an issue where default files still use old GPExtension placeholders instead of the new griefprevgui format.
🧠 Official Wiki Launched!
A brand new GitBook wiki is now available with guides and main features.
More content will be added soon!
👉 https://toonystank.gitbook.io/grief-prevention-gui-addon
Version 4.6 - Major Update & Plugin Rename
🚨 Breaking Change Notice
This version is not backwards compatible with older versions.
To update safely:
Rename your GPExtension folder (inside the plugins directory) to GriefPrevGUI before updating.
If you have already updated and a new GriefPrevGUI folder was created, delete it and rename your existing GPExtension folder instead.
✨ Changes & Improvements
Plugin Renamed:
The plugin has been renamed from GPExtension to GriefPrevGUI.
Internally, it still uses the name GPExtension for backwards compatibility with older versions and placeholders.
Modernized Plugin Look:
Updated the plugin prefix and GUI titles for a cleaner, more modern aesthetic.
Improved Plugin Load Without GPFlags:
Fixed an issue where the plugin would fail to load correctly if GPFlags was not installed.
ClaimList Stability Fixes:
Resolved a NullPointerException and fixed issues where some claims would not show up in the claim list.
Custom NoMobSpawnsType Flag:
Introduced a new NoMobSpawnsType custom flag, replacing the GPFlags version.
If you're already using GPFlags' NoMobSpawnsType, your data will be migrated automatically.
A brand-new GUI interface allows selecting specific mobs to block from spawning.
It supports filtering by spawn reasons (e.g., natural, spawner).
GUI type can be changed using the filter toggle at the top.
Fixed issue where NoMobSpawnsType flag fails to load, Corrected issue where the NoMobSpawnsType flag fails to load, resulting in claims not being displayed in the GUI
🛠️ Fixed an issue where the plugin would crash on Minecraft 1.19 and below.
🖼️ Fixed GUI title not displaying correctly.
📍 Fixed region visualization not working as expected.
✨ Improvements
/claim reload now reloads all files by default.
No need to use /claim reload all
anymore – a simple /claim reload
does it all.
New Config Option: disable_anvil_mode
Added disable_anvil_mode
in config.yml
.
When set to true
, the plugin will use chat input instead of the anvil GUI for inputs.
Input messages can be customized in language.yml
.
🧹 Other
General code cleanup and minor internal optimizations.
✨ Improvements
🛠️ Fixes
/claimlist expirelist
.