Home - Z0rdak/Yet-Another-World-Protector GitHub Wiki

Yet Another World Protector

Yet Another World Protector, or YAWP for short, is a server-side mod (plugin), for Fabric, Forge and NeoForge, which allows you to protect your creations against various different events/actions of players, mobs and the environment.

It was inspired by the forge mod WorldProtector and the WorldGuard plugin.

The mod is currently in its beta state and active development - with many features not yet implemented, but to come. These features will, beside others, include most of the things you know from WorldProtector and WorldGuard.

Supported versions

MC-Version Forge NeoForged Fabric Hybrid (Magma/Mohist/etc.)
1.16.5 ☑️ (0.0.4.1-beta5) No! ❌
1.18.2 ✔️ ✔️ Please, ❌
1.19.2 ✔️ ✔️ don't ❌
1.19.3 ✔️ ✔️ ask ❌
1.19.4 ✔️ ✔️ for ❌
1.20.1 ☑️ ☑️ it! ❌
1.20.2 ✔️ ✔️ Thank ❌
1.20.4 ✔️ ✔️ you ❌
1.21.1 ☑️ ☑️ ☑️ very ❌
1.21.4 ☑️ ☑️ ☑️ much! ❌
1.21.5 ☑️ ☑️ ☑️

Legend

  • ☑️ - actively in development
  • ✔️ - available, but no longer updated/maintained
  • ❌ - not available
  • 🔜 - in progress

Notes

  • The latest YAWP version can always be found at the main branch of the repository. It is available for the versions marked with ☑️
  • The Wiki is up-to-date with the latest version. If you are using an earlier version, things might be different. If you have questions visit the discord server and ask for help - thanks!

You can find all commands here.

But why bother with typing commands when you instead can use the Interactive CLI for almost anything.

Commands Fact List

  • Permissions to use YAWP commands can be changed in the yawp-common.toml config.
  • Owners of a region can always execute commands considering their region.
  • All players can see the YAWP commands, but the permission to use the commands are checked at execution.
  • The config setting disable_cmd_for_non_op disables the usage of the YAWP commands for non OPs.
  • The config setting op_bypass_flags allows OPs and players with UUID entry to bypass flags.
  • The config setting hierarchy_ownership allows owners to have permissions for child regions as well.

There are three different types of regions to protect your server:

  • Local Regions: Also known as Claims or Plots are area restricted zones in your world. The area of a region can be defined using a Cuboid or Sphere (more shapes are planned for the future!). More details here.
  • Dimensional Regions: Dimensional Regions have no area restrictions. They work like Local Regions, but are tied to a whole dimension. More details here.
  • The Global Region: The Global Region affects the whole server. It is the parent region to all Dimensional Regions. More details here.

Region Fact List

  • Flags can be added to regions to prevent various actions and events.
  • Regions can have groups to manage permissions. There are currently two default groups : owners, members.
  • You are able to assign vanilla teams and/or specific players to a group.
  • Regions can be de/-activated. The same is true for their flag alerts.
  • Local Regions have a priority to manage overlapping regions and region hierarchy. More info about region hierarchy here.
  • Dimensional Regions can't be created manually. They are in fact automatically generated with each new dimension.

Flags are rules you can add to any region. If the flag is initially added, it prevents the associated action (see Flag list).

Take a look at the Flags page for more details about flag management.

There will be more flags (and type of flags) in the future. If you have a suggestion for a flag, feel free to add it to the suggestion list on github or share your idea in the #suggestions channel on discord.

Flag Fact List

  • You can add flags with
    • /yawp local <dim> <region> add flag <flag> for Local Regions
    • /yawp dim <dim> add flag <flag> for Dimensional Regions
    • /yawp global add flag <flag> for the Global Region
  • You can optionally define the flag state and the override option when adding flags:
    • /yawp local <dim> <region> add flag <flag> [flagstate] [override].
    • by default those are flagstate = Denied and override = false
  • A Flag has an alert when its action is denied. Those alerts can be muted.
  • A Flag has a flag state. There are three: Denied, Allowed or Disabled.
  • Set the flag state to Denied to prevent the action associated with the flag.
  • Set the flag state to Allowed to allow the action associated with the flag.
  • Set the flag state to Disabled to not consider the flag in checks.
  • You can customize the message displayed by the flag alert.
  • Manage the properties of flags by using
    • /yawp flag local <dim> <region> <flag> ... for Local Regions
    • /yawp flag dim <dim> <flag> ... for Dimensional Regions
    • /yawp flag global <flag> ... for the Global Region

Groups

Regions can have owners and normal members. Owners are allowed to manage the region and bypass the flags, members are only allowed to bypass the flags set in the region.

Owners/Members can be individual players or a team.

This allows you to create regions and assign players as their owners. They can then manage their regions themselves and add other players to them, as well as create their own sub-regions within their regions.

If you have trouble with setting up regions, visit the discord for help.

There are more granular features planned for region groups in the future - each group with different permissions (looking at you LuckPerms integration!).

Groups Fact List

  • Regions can have groups to manage permissions. There are currently two default groups : owners, members.
  • You are able to assign vanilla teams and/or specific players to a group.
  • Owners and members bypass flags.
  • Owners are allowed to manage their region (use commands)
  • The config setting hierarchy_ownership allows owners and members to have permissions for child regions as well.
  • Groups will be customizable in the future - stay tuned!

Development Roadmap

There are many more features to come. The mod is in active development. Checkout the roadmap!

The following list is not comprehensive and not in any particular order. Visit the project website on Github to get an up-to-date overview of planned features. It'll try to keep it up to date with my work.

  • Highlighting Region boundaries
  • Granular Flags to allow/deny specific blocks, entities, items, etc.
  • Different shapes for Local Regions (Sphere, Cylinder, Prism, 3DPolygon,...)
  • Region Templates (save region setups in templates to apply them to other regions)
  • Region triggers for entering/leaving a region (for displaying messages, executing commands, etc)
  • More granular permission system with custom affiliations (most likely with LuckyPerms integration)
  • More flags (see Flag Suggestions)
  • ...
⚠️ **GitHub.com Fallback** ⚠️