Tags
Creators
Details
0.0.7
Compatibility
Changes
Pocket Dimensions 0.0.7-ALPHA
A full four-way codebase audit (storage, world lifecycle, commands/GUI, compatibility) — this release fixes everything it found. Upgrade is drop-in; existing configs/data are untouched on load.
Critical
- The config auto-updater actually works now. A Bukkit quirk (
contains()resolving through jar defaults) made it a silent no-op, so upgrades never received new config keys on disk. Fixed withisSet(). - Accepting an invite while inside any pocket dimension no longer corrupts your main-world return point (which could soft-lock you out of the overworld via
/pdleave, kick, or the key item).
Economy & load order
- Removed
load: STARTUP, which silently broke the Vault economy hook on every boot — creation costs and upgrades work now. - Creation cost +
PocketDimensionCreateEventfire only when a world is genuinely created — reloading an unloaded world is free (previously each re-entry after auto-unload charged again). Failed creations are refunded.
World lifecycle
- Unloaded dimensions reload with their preset generator re-attached — VOID worlds no longer regenerate new chunks as vanilla terrain after an auto-unload or
/pdtp. - Logging out inside your own dimension now saves your exact position; rejoin restores you there (not your last exit point) and re-applies border + gamerules.
- Failed teleports say so instead of playing success feedback while not moving.
Protection hardening
- Projectiles no longer bypass mob protection (the shooter is tier-checked).
- Fire is covered (
protection.block-fire: true): visitor ignition and all non-player ignition are cancelled, and fire no longer consumes blocks inside dimensions. - Item frames / paintings / armor stands / leash knots / chested horses / chest & hopper minecarts / chest boats are protected from visitors; leashing, shearing and farmland trampling blocked below builder.
- Protection fails closed on malformed world names instead of failing open.
Mob teleporting
- Trust gate: visitors can no longer teleport mobs out of someone else's dimension into their own.
- Failed mob teleports report a message.
Storage
- Corrupt JSON files are quarantined (
*.corrupt-<timestamp>) and un-quarantineable files refuse writes — one bad file can never wipe a store. - JSON → SQL migration is complete: trusts, settings and meta flags are imported too, malformed keys no longer crash startup, and source files are renamed only after a fully successful migration (failures retry).
- Trust/settings caches no longer poison themselves after a database blip.
Commands & GUI
/pdadmin delete|reset|cleanupeach require their own permission node; admin unloads clear empty-dimension bookkeeping./pdgameruleaccepts both new (26.x) and legacy gamerule names.features.gui-menuandfeatures.admin-toolsconfig switches are honoured.- Placeholders are
%pd_in_pd%,%pd_border%,%pd_visitors%,%pd_dimension_loaded%(the expansion previously registered under a name the docs didn't match).
Smaller fixes
First-join key drops at your feet on a full inventory · malformed crafting recipes warn instead of crashing startup · the key item no longer also opens the chest behind it · /pdreload warns when storage.type needs a restart · /pdlist shows "never" instead of the epoch · MySQL driver SPI registration preserved in the shaded jar · flattened world-name fallback in kick/invite/teleport/gamerule paths · dead message keys removed.
Requires Java 17+. Full permission and config reference in the README.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:2sir62f0:cniIl95R"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:2sir62f0:cniIl95R"
}

