Protection
Official compatibility
| Element | Reference |
|---|---|
TypeWriter | Required. Use the official TypeWriter release supported by the extension release. |
| Related extensions | Install the related extensions listed on this page before using entries that depend on them. |
The Protection Extension provides a robust and flexible alternative to traditional land claim plugins. It allows for the creation of intricate zones with specific rules (Flags) governing player behavior, environmental events, and mob mechanics.
- Source Code — View source on GitHub.
- Official release v1.2 — Download the published JAR.
Features
- Geometric Regions — Support for Cuboid, Cylinder, and Polygon (Prism) shapes.
- Hierarchical Priority — Regions can overlap, with higher priority zones overriding lower ones.
- Inheritance System — Child regions can inherit flags from parent regions or override them.
- Comprehensive Flags — Over 60 flags for build permissions, PvP, mob spawning, and more.
Entries
Core Elements
- Region Definition — Defines the shape, priority, and default flags for a zone.
- Region Artifact — Stores the specific coordinates and owner/member data.
- Global Artifact — Manage world-wide protections and behaviors.
Events & Logic
- Enter/Exit Region — Triggers logic when a player crosses a region border.
- In Region Fact — Checks if a player is currently within specific protected zones.
- Region Audience — Displays persistent visual or audio content to everyone inside the zone.
User guide
- 1. Create Storage — Add artifact entries to persist data: global. → global
- 2. React to Events — Use event entries to trigger mechanics when things happen: boundary. → boundary
- 3. Check State with Facts — Use fact entries as conditions: check levels, counts, or player state before triggering actions. → in_region
Commands
All commands are under the /protection prefix (aliases: /pt, /region).
| Command | Description | Permission |
|---|---|---|
/protection list | List all active regions and their priorities | typewriter.protection |
/protection edit <id> | Enter selection mode for a specific region | typewriter.protection |
/protection apply | Save your current selection and finalize region | typewriter.protection |
/protection info <id> | View technical details and location of a region | typewriter.protection |
/protection flags <id> | Analyze the effective, inherited, and blocked flags | typewriter.protection |
/protection inspect | Toggle debug visualizers for region boundaries | typewriter.protection |
/protection import-we <id> | Import current WorldEdit selection to a region | typewriter.protection |
Placeholders
All placeholders use the prefix %typewriter_regions:%.
| Placeholder | Description |
|---|---|
%typewriter_regions:count% | Number of regions the player is currently inside |
%typewriter_regions:list% | Comma-separated list of active region IDs |
%typewriter_regions:primary:name% | Name of the highest priority region at current location |
%typewriter_regions:flag:<flag_id>% | The effective value of a specific flag (e.g., pvp) |
%typewriter_regions:has:<id1>,<id2>% | true if player is in any of the specified regions |
%typewriter_regions:active:<index>:id% | ID of the N-th region in the stack |
External Dependencies
| Extension | Type | Functionality |
|---|---|---|
FastAsyncWorldEdit | Optional | Region selection and geometric operations. |
MythicMobs | Optional | Advanced mob spawning control in regions. |
BtcMobs | Optional | Advanced mob spawning control in regions. |
Permissions
| Permission | Description |
|---|---|
typewriter.protection | Base access to protection commands. |
typewriter.protection.admin | Administrate protected regions. |
typewriter.protection.bypass | Bypass protection restrictions. |
Troubleshooting
The extension is not visible
Check that the installed release matches the supported TypeWriter release and that the related extensions listed in the compatibility section are present.
An entry is missing
In the Typewriter Web panel, use the Search bar or the + button to find or create the entry with its exact identifier. Entry IDs and field names are case-sensitive; do not translate them.
The entry saves but nothing happens
Check that the entry is connected to the trigger, command, objective, event, or menu interaction required by its type. Test with optional permissions and criteria removed, then add them back one at a time.
An integration does not work
Verify the dependency and version shown in the extension card, then check the server log for the first error. Do not replace a missing dependency with a similarly named plugin unless the extension source explicitly supports it.