Tags
Creators
Details
1.9.0
Compatibility
Changes
v1.5.0 — QoL & Polish
- Hex color support in ward names and entry messages (&#FF5500 syntax)
- Custom entry messages per ward — visitors see a configurable message when entering; placeholders: %ward% %owner% %tier% %radius%
- Ward compass — /ward compass [id|name] points your compass at a ward (nearest owned by default)
- Ownership transfer — /ward transfer [id] <player>, notifies the new owner
- Ward pickup — Sneak+right-click the ward block to pick it up (with a configurable confirmation window, default 5s)
- Config hot-reload — /ward reload reloads config.yml and re-registers crafting recipes
- Tab completion for all commands
v1.5.1 — Performance
- Shape cache avoids reading config on every block/move event
- Persistent SQLite connection + WAL journal mode + async writes
- Spatial chunk index — containment checks are now O(1) instead of O(N)
v1.5.2 — Scale (10k+ wards)
- Batch DB loading — startup uses 4 queries total regardless of ward count (was 2N+1)
- Owner index — /ward list, ward limits, and member counts are O(1)
- Name/short-ID indexes — /ward tp, /ward info, and similar lookups are O(1)
- Particle task rewritten to iterate loaded chunks instead of all wards
v1.6.0 — MySQL Support
- Optional MySQL/MariaDB backend — set database.type: mysql in config.yml and fill in credentials; SQLite remains the default
- MySQL driver auto-downloaded via Paper's library system (no manual install)
- /ward admin migrate mysql — copies all ward data from SQLite to MySQL in the background
v1.7.0 — Protection Gaps + Admin Tools
- Piston protection — pistons can't push/pull blocks across ward boundaries
- Entity grief protection — blocks Endermen, silverfish, Wither, Ravagers, etc. from changing blocks inside wards
- Fluid flow protection — lava and water can't flow into a ward
- Hanging entity protection — non-members can't break item frames or paintings inside wards
- /ward info [id|name] — shows tier, radius, owner, member count, and your role
- EntryListener rewritten to use chunk index (O(1) per player move tick)
- All new protections are toggleable in config.yml
v1.8.0 — PVP & Mob Protection + Per-Ward Flags
- PVP protection — outsiders can't attack players inside wards
- Entity damage protection — outsiders can't damage animals/mobs inside wards
- Crop trample protection — non-members can't trample farmland inside wards
- Per-ward flags (toggled in the ward GUI):
- Allow PVP — enable PVP inside a specific ward
- Allow Mob Damage — enable mob damage inside a specific ward
- /ward admin stats — shows total wards, per-world breakdown, total members, and owner count
v1.9.0 — Nearby Search + Sounds + Block Index
- /ward nearby [radius] — lists wards within radius blocks (default 100, max 500), sorted by distance with owner and tier info
- /ward admin tp <id|name> — teleport to any ward (admin only), with tab completion
- Sound effects — configurable sounds on ward place, break, pickup, and when a visitor enters (config.yml → sounds:)
- Ward block break/interact now uses an O(1) block position index instead of scanning all wards in the world
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:SX98EKcZ:AQ3PVwcv"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:SX98EKcZ:AQ3PVwcv"
}

