!Machina Wards Banner
Protect your builds with configurable land claim wards — no grief, no drama.
MachinaWards lets players place physical ward blocks to claim and protect an area. Members can be added by the owner, events are logged, and outsiders are stopped cold. Three tiers of wards scale from starter bases to high-value infrastructure.
Craft a ward item and place it like any block. The block marks the center of your protected zone. Break or sneak+right-click to pick it back up — the ward item is returned to your inventory so you can relocate it any time.
Right-click the ward block to open the management menu.
| Tier | Block | Default Radius | Member Limit | Ward Intelligence |
|---|---|---|---|---|
| Basic | Lantern | 12 blocks | 5 | — |
| Advanced | Beacon | 20 blocks | 10 | — |
| Super | Crying Obsidian | 30 blocks | Unlimited | Yes |
!Basic Ward
!Advance Ward
!Super Ward
All tiers, recipes, radii, prices, and member limits are fully configurable in config.yml. Server operators can add or rename tiers freely.
Inside a ward the following are blocked for non-members (all individually toggleable in config.yml):
| Category | Config key | Notes |
|---|---|---|
| Block placing | block_place | |
| Block breaking | block_break | |
| Block interaction | interact | Buttons, chests, doors, etc. VISITOR trust members can still interact — see Trust Levels |
| Explosions | explosion | Creeper, TNT, etc. |
| Fire spread | fire | |
| Piston push/pull | piston | Blocks cannot be pushed or pulled across ward boundaries |
| Entity grief | entity_grief | Endermen, silverfish, Wither, Ravagers, and other griefing mobs cannot alter blocks |
| Fluid flow | fluid_flow | Lava and water cannot flow into a ward from outside |
| Hanging entities | hanging | Item frames and paintings are protected from non-members |
| PVP | pvp | Outsiders cannot attack players inside. Per-ward override: Allow PVP flag |
| Entity damage | entity_damage | Outsiders cannot damage animals or mobs inside. Per-ward override: Allow Mob Damage flag |
| Crop trampling | crop_trample | Non-members cannot trample farmland |
| Bucket pouring | bucket_pour | Non-members cannot pour lava or water buckets inside a ward |
| Entity placement | entity_place | Non-members cannot place armor stands, boats, or minecarts |
| Vehicle destruction | vehicle_destroy | Non-members cannot damage or destroy vehicles inside a ward |
| Block spread | block_spread | Fire, sculk, vines, etc. cannot spread into a ward from outside |
| Spawner type change | spawner_egg | (Purpur only) Non-members cannot change spawner types with spawn eggs |
The ward owner and all added members bypass all restrictions. Players with wards.admin bypass everything.
Wards cannot overlap — placement is blocked if the new ward's radius intersects an existing one, keeping protection zones unambiguous.
When adding a member to a ward, they receive a trust level that controls what they can do inside:
| Level | Can Do | Cannot Do |
|---|---|---|
| Member (default) | Build, break blocks, use all items | — |
| Visitor | Open doors, chests, buttons, containers | Place or break blocks, use buckets |
Trust levels are assigned and changed per-member from the Manage Members screen in the ward GUI. Click a member's skull to open their trust sub-menu and select a level. The change takes effect immediately.
Trust level enforcement can be disabled server-wide in config.yml (trust_levels.enabled: false), which makes Visitors behave identically to Members.
Right-clicking the ward block opens a management GUI. The menu adapts based on who is clicking:
Owner / Admin view — full management access:
| Item | Action |
|---|---|
| Name Tag — Rename | Set a custom name for this ward |
| Bell — Toggle Alerts | Turn entry notifications on/off for this ward |
| Player Head — Manage Members | View and manage all current members and their trust levels |
| Paper — History | Show the last 20 entry log entries |
| Spyglass — Show Radius | Draw a purple particle boundary for 10 seconds |
| Emerald — Add Member | Type a player name in chat to add them (enforces tier member limit) |
| Feather — Entry Message | Set a custom message visitors see on entry. Supports & color codes and &#RRGGBB hex. Placeholders: %ward%, %owner%, %tier%, %radius%. Type clear to remove |
| Allow PVP | Per-ward toggle to allow outsiders to PVP inside this ward |
| Allow Mob Damage | Per-ward toggle to allow outsiders to damage animals/mobs inside this ward |
| Nether Star — Ward Intelligence | (Super Ward only) Access the feature tracking system |
Member view — read-only access:
| Item | Action |
|---|---|
| Paper — History | View the last 20 entry log entries |
| Spyglass — Show Radius | Visualize the ward boundary |
From the Manage Members screen, each current member is shown as a player skull. Click a skull to open the Trust sub-menu:
Use the Add Member button (or /ward addmember <player>) to add new members. The ward's member limit is enforced at time of addition.
Super wards include a Ward Intelligence menu with five independently toggleable tracking features:
| Feature | What It Tracks |
|---|---|
| Creeper Alert | Alerts the owner when a creeper explodes inside the ward |
| Mob Kills Player | Logs and alerts when a mob kills a player inside the ward |
| Mob Kills Entity | Logs when a mob kills any non-player entity inside the ward |
| Player Death | Logs every player death inside the ward |
| Explosion Log | Logs all explosions inside the ward |
Each feature has its own sub-menu where you can toggle it on/off, view recent logs (last 20 entries), or clear the log history. All data is persisted to the database and wiped automatically when the ward is destroyed.
If Vault is installed with an economy provider (e.g. EssentialsX), players can purchase ward items directly using /ward shop. Prices are set per tier in config.yml. If a player's inventory is full, purchased items drop at their feet so they are never lost.
| Command | Description |
|---|---|
/ward | Show help |
/ward shop | Open the ward shop (requires Vault) |
/ward list | List your wards with names, tiers, worlds, and coords |
/ward tp <id|name> | Teleport to one of your wards |
/ward compass [id|name] | Point your compass at a ward |
/ward transfer <player> | Transfer your nearby ward to another player |
/ward transfer <id> <player> | Transfer a specific ward to another player |
/ward addmember <player> | Add a member to your nearby ward |
/ward removemember <player> | Remove a member from your nearby ward |
/ward info [id|name] | Show info about a nearby or specific ward |
/ward nearby [radius] | List wards within radius blocks (default 100, max 500), sorted by distance |
/ward admin list [player] | (admin) List all wards, optionally filtered by player |
/ward admin delete <id|name> | (admin) Delete a ward by ID or name |
/ward admin tp <id|name> | (admin) Teleport to any ward |
/ward admin stats | (admin) Show total wards, per-world breakdown, members, and owner count |
/ward admin migrate mysql | (admin) Copy all ward data from SQLite to MySQL |
/ward reload | (admin) Reload config and re-register recipes |
| Node | Description |
|---|---|
wards.admin | Full administrative access — bypass protection, delete any ward |
wards.place | Allows placing ward blocks (default: true for all players) |
wards.player.<N> | Cap how many wards a player can own (e.g. wards.player.3) |
Particles
END_ROD effect floats above each ward block so you always know where your wards are (configurable type and interval)Sounds (all configurable in config.yml → sounds:, set to "" to disable individually)
| Key | When It Plays |
|---|---|
ward_place | Ward block is placed |
ward_break | Ward is broken/removed |
ward_pickup | Ward is picked up via sneak+right-click |
entry_alert | Visitor enters a ward |
When a non-member enters a ward they see an action bar notification showing the ward name and owner. The ward owner can set a fully custom entry message from the ward menu with & color codes and &#RRGGBB hex colors. Supported placeholders: %ward%, %owner%, %tier%, %radius%. The visitor warning can be toggled globally in config.yml.
/ward compass sets your compass to point at your nearest ward in the current world. Specify an ID or name to target a specific ward. No special item required — any compass in your inventory works.
/ward transfer <player> while standing in a ward transfers ownership to another player. Use /ward transfer <id> <player> to transfer from anywhere. The new owner is notified immediately if online.
/ward nearby [radius] lists all wards within the given radius (default 100 blocks, max 500), sorted by distance. Shows each ward's name, tier, owner, and distance.
MachinaWards stores all ward data in a database. Two backends are supported:
SQLite (default — no setup required)
database:
type: sqlite
Data is stored in plugins/MachinaWards/MachinaWards.db.
MySQL / MariaDB
database:
type: mysql
mysql:
host: localhost
port: 3306
database: machinawards
username: root
password: ""
The MySQL driver must be available on the classpath. Use /ward admin migrate mysql to copy existing SQLite data to MySQL before switching.
Everything is configurable in config.yml:
| Section | Key | Default | Description |
|---|---|---|---|
database | type | sqlite | sqlite or mysql |
region | shape | column | column (square column, unlimited height) or sphere (3D radius) |
worlds | — | [] | Whitelist of worlds where wards can be placed. Empty = all worlds |
height | min_y / max_y | -64 / 320 | Restrict ward placement to a height range |
alerts | enabled | true | Master toggle for entry alerts |
alerts | cooldown_ms | 90000 | Minimum ms between alerts for the same intruder in the same ward |
alerts | title_format | &6Ward alert | Title shown to ward owner on entry |
alerts | actionbar_format | &e%player% entered &f%ward% | Action bar text shown to owner/members |
entry | show_warning_to_visitor | true | Show the entry action bar to the visitor |
entry | warning_format | &c⚠ Entering &f%ward% &c— owned by &f%owner% | Default visitor warning (overridden per-ward by Entry Message) |
pickup | confirm_ms | 5000 | Confirmation window in ms for sneak+click pickup |
protection | (see table above) | true | Individual protection category toggles |
trust_levels | enabled | true | If false, Visitors have full Member access |
members | notify_on_add | true | Notify players when they are added to a ward |
members | notify_on_remove | true | Notify players when they are removed from a ward |
sounds | ward_place etc. | (see above) | Sound effect per event, "" to disable |
particles | enabled | true | Toggle ambient ward particles |
particles | type | END_ROD | Bukkit Particle enum name |
particles | interval_ticks | 40 | Ticks between each particle pulse |
wards.<tier> | display_name | — | Display name with color codes |
wards.<tier> | result_material | — | Bukkit material for the ward block |
wards.<tier> | price | — | Economy price (requires Vault) |
wards.<tier> | radius | — | Protection radius in blocks |
wards.<tier> | max_members | — | Member cap; -1 = unlimited |
wards.<tier> | features | — | List of Ward Intelligence feature IDs to enable for this tier |
wards.<tier> | custom_recipe | — | 3×3 list of material names for the crafting recipe |
Color support: all text fields accept & color codes and &#RRGGBB hex colors.
!Lower banner

Physical land claim protection for Spigot, Paper & Purpur 26.1+. Place ward blocks to protect builds from griefing, manage members via GUI, track events with Ward Intelligence, and customize tiers, radii, and recipes in config.