<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Migration</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Migration/</link><description>Recent changes to Migration</description><atom:link href="https://sourceforge.net/p/griefprevention3d/wiki/Migration/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 02 Jul 2026 13:04:30 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/griefprevention3d/wiki/Migration/feed" rel="self" type="application/rss+xml"/><item><title>Migration modified by Jack Korte</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Migration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -14,6 +14,7 @@
 | Area | What | Default |
 |------|------|---------|
 | 3D Subdivisions | `/3dsubdivideclaims` — subclaims with real Y-level bounds | Available always |
+| 3D Admin Claims | `/3dadminclaims` — free, height-bounded admin claims with exact Y bounds. Also `/aclaim mode admin3d`. | Permission-gated (`griefprevention.adminclaims`) |
 | Shaped Claims | `/shapedclaims`, `/shapedclaim` — orthogonal polygon parent claims | **Off** (`AllowShapedClaims: false`) |
 | Nested Subclaims | Subdivisions inside subdivisions | **Off** (`AllowNestedSubClaims: false`) |
 | Visualization Glow | Glowing claim borders (1.19.3+) | **Off** (`VisualizationGlow: false`) |
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jack Korte</dc:creator><pubDate>Thu, 02 Jul 2026 13:04:30 -0000</pubDate><guid>https://sourceforge.net623591bbe7f352a70da68636a8eb6a07c10defd3</guid></item><item><title>Migration modified by Jack Korte</title><link>https://sourceforge.net/p/griefprevention3d/wiki/Migration/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-migration-from-upstream-griefprevention"&gt;Migration from Upstream GriefPrevention&lt;/h1&gt;
&lt;p&gt;This page summarizes what is &lt;strong&gt;new, different, or worth double-checking&lt;/strong&gt; when moving from the original GriefPrevention (RoboMWM) to GriefPrevention3D. It is intentionally short — the goal is to help server owners recognize what has changed without reading the whole wiki.&lt;/p&gt;
&lt;h2 id="h-tldr"&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Claims are &lt;strong&gt;backwards compatible&lt;/strong&gt;. Existing rectangle claims load without modification.&lt;/li&gt;
&lt;li&gt;Most &lt;strong&gt;commands and permissions are identical&lt;/strong&gt; to upstream. GP3D adds a few new ones.&lt;/li&gt;
&lt;li&gt;Several features are &lt;strong&gt;off by default&lt;/strong&gt; and must be opted into in &lt;code&gt;config.yml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;There is now a &lt;strong&gt;unified &lt;code&gt;/claim &amp;lt;subcommand&amp;gt;&lt;/code&gt;&lt;/strong&gt; surface on top of the existing standalone commands.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h-whats-new"&gt;What's New&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3D Subdivisions&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/3dsubdivideclaims&lt;/code&gt; — subclaims with real Y-level bounds&lt;/td&gt;
&lt;td&gt;Available always&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shaped Claims&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/shapedclaims&lt;/code&gt;, &lt;code&gt;/shapedclaim&lt;/code&gt; — orthogonal polygon parent claims&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Off&lt;/strong&gt; (&lt;code&gt;AllowShapedClaims: false&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nested Subclaims&lt;/td&gt;
&lt;td&gt;Subdivisions inside subdivisions&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Off&lt;/strong&gt; (&lt;code&gt;AllowNestedSubClaims: false&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visualization Glow&lt;/td&gt;
&lt;td&gt;Glowing claim borders (1.19.3+)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Off&lt;/strong&gt; (&lt;code&gt;VisualizationGlow: false&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unified &lt;code&gt;/claim&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/claim create&lt;/code&gt;, &lt;code&gt;/claim trust&lt;/code&gt;, &lt;code&gt;/claim abandon&lt;/code&gt;, etc.&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;On&lt;/strong&gt; in &lt;code&gt;alias.yml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/makeadmin&lt;/code&gt; / &lt;code&gt;/makebasic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Convert claims to/from admin&lt;/td&gt;
&lt;td&gt;Permission-gated (&lt;code&gt;griefprevention.adminclaims.convert&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/witherexplosions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Per-claim wither explosion toggle&lt;/td&gt;
&lt;td&gt;Permission-gated (&lt;code&gt;griefprevention.witherexplosions&lt;/code&gt;, default &lt;code&gt;true&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boundary Violation Alerts&lt;/td&gt;
&lt;td&gt;Warn claim owners when pistons/liquids are blocked at their border&lt;/td&gt;
&lt;td&gt;On (smart deduplication + burst detection)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="h-whats-changed"&gt;What's Changed&lt;/h2&gt;
&lt;h3 id="h-claim-selection-after-resize"&gt;Claim Selection After Resize&lt;/h3&gt;
&lt;p&gt;When a player &lt;strong&gt;resizes a claim&lt;/strong&gt;, that claim becomes the "selected claim" for their session. Commands like &lt;code&gt;/trust&lt;/code&gt;, &lt;code&gt;/untrust&lt;/code&gt;, &lt;code&gt;/trustlist&lt;/code&gt;, &lt;code&gt;/abandonclaim&lt;/code&gt;, &lt;code&gt;/claimexplosions&lt;/code&gt;, and &lt;code&gt;/witherexplosions&lt;/code&gt; then run against the selected claim even if the player is no longer standing inside it. This removes the old "stand in the claim, then type the command" dance for common admin flows.&lt;/p&gt;
&lt;h3 id="h-restrictsubclaim-from-a-parent-claim"&gt;&lt;code&gt;/restrictsubclaim&lt;/code&gt; from a Parent Claim&lt;/h3&gt;
&lt;p&gt;Running &lt;code&gt;/restrictsubclaim&lt;/code&gt; while standing in a &lt;strong&gt;top-level claim&lt;/strong&gt; (not inside a subdivision) now instantly restricts &lt;strong&gt;all&lt;/strong&gt; subdivisions inside that claim in one go. Previously this had to be done per-subclaim.&lt;/p&gt;
&lt;h3 id="h-trustlist-shows-inheritance"&gt;&lt;code&gt;/trustlist&lt;/code&gt; Shows Inheritance&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;/trustlist&lt;/code&gt; now displays &lt;strong&gt;inherited permissions&lt;/strong&gt; from the parent claim, not just explicit trusts on the current (sub)claim. This makes it obvious why a player has access somewhere.&lt;/p&gt;
&lt;h3 id="h-eavesdrop-permissions-split"&gt;Eavesdrop Permissions Split&lt;/h3&gt;
&lt;p&gt;The single &lt;code&gt;griefprevention.eavesdrop&lt;/code&gt; permission has been split for finer control:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;griefprevention.eavesdrop.pm&lt;/code&gt; — see &lt;code&gt;/tell&lt;/code&gt;-style private messages.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;griefprevention.eavesdrop.softmute&lt;/code&gt; — see soft-muted messages.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;griefprevention.eavesdrop.signs&lt;/code&gt; — see sign placements as chat messages (already existed upstream).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;griefprevention.eavesdrop.immune&lt;/code&gt; — exempt from being eavesdropped.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;griefprevention.eavesdrop&lt;/code&gt; still exists as a blanket/legacy permission.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you previously granted &lt;code&gt;griefprevention.eavesdrop&lt;/code&gt; to staff, they will keep the same behavior. If you want only PM eavesdropping or only softmute eavesdropping, use the narrower nodes.&lt;/p&gt;
&lt;h3 id="h-boundary-violation-alerts-new"&gt;Boundary Violation Alerts (New)&lt;/h3&gt;
&lt;p&gt;Pistons and liquids that get blocked at a claim boundary now send a &lt;strong&gt;chat message to the claim owner&lt;/strong&gt; (if they're online) explaining where the violation occurred. This covers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Piston pushing a block &lt;strong&gt;into&lt;/strong&gt; a claim.&lt;/li&gt;
&lt;li&gt;Piston pushing a block &lt;strong&gt;out of&lt;/strong&gt; the owner's own claim into someone else's.&lt;/li&gt;
&lt;li&gt;Water or lava trying to flow &lt;strong&gt;into&lt;/strong&gt; or &lt;strong&gt;out of&lt;/strong&gt; a claim.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Messages are deduplicated per-location, with spatial buffers (8 blocks for water, 5 blocks for lava in overworld/end, 8 for lava in the nether). Rapid sequential violations are burst-condensed into a single summary line. See &lt;a href="./Administrator-Guide#boundary-violation-alerts"&gt;Administrator's Guide › Boundary Violation Alerts&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: this is a &lt;strong&gt;feedback-only&lt;/strong&gt; system. The goal is helping players understand where flow is being blocked, not adding new protection switches.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="h-upgrading-steps"&gt;Upgrading Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Backup&lt;/strong&gt; your &lt;code&gt;plugins/GriefPreventionData/&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Replace the plugin jar with the GP3D build.&lt;/li&gt;
&lt;li&gt;Start the server and watch the console for migration-related log messages.&lt;/li&gt;
&lt;li&gt;Review &lt;code&gt;config.yml&lt;/code&gt; — the new toggles (&lt;code&gt;AllowShapedClaims&lt;/code&gt;, &lt;code&gt;AllowNestedSubClaims&lt;/code&gt;, &lt;code&gt;VisualizationGlow&lt;/code&gt;) will be appended if missing.&lt;/li&gt;
&lt;li&gt;Review &lt;code&gt;alias.yml&lt;/code&gt; for the unified command handler settings.&lt;/li&gt;
&lt;li&gt;Restart once more, or run &lt;code&gt;/gpreload&lt;/code&gt; if you only changed config values.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Existing claims, trust data, and claim block totals are preserved. Rectangle claims continue to work exactly as before; shaped polygon claims are only created when a player explicitly enters shaped mode (and only if &lt;code&gt;AllowShapedClaims: true&lt;/code&gt;).&lt;/p&gt;
&lt;h2 id="h-rollback"&gt;Rollback&lt;/h2&gt;
&lt;p&gt;The data format is forward-compatible for rectangle claims, so going back to upstream GP will usually work, &lt;strong&gt;but&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Any &lt;strong&gt;shaped (polygon) claims&lt;/strong&gt; created with GP3D will not round-trip back to upstream GP. Upstream does not understand polygon footprints and will reject or truncate the data.&lt;/li&gt;
&lt;li&gt;Any &lt;strong&gt;3D subclaims&lt;/strong&gt; with Y-level bounds will not round-trip back to upstream GP either.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you know you might roll back, keep &lt;code&gt;AllowShapedClaims: false&lt;/code&gt;. Or, more simply, take a full backup of &lt;code&gt;GriefPreventionData/&lt;/code&gt; before enabling those features.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jack Korte</dc:creator><pubDate>Thu, 02 Jul 2026 13:04:28 -0000</pubDate><guid>https://sourceforge.net775cfdd06843e6c506993172ad9acbf07fbfa666</guid></item></channel></rss>