HomeJavaModsDuckyZones
DuckyZones
ModsJava

DuckyZones

by Barpad · on Modrinth

DuckyZones is a simple Minecraft plugin that lets you define custom zones for events, protection, or gameplay features using region selection tools.

Which build do you need?

This mod ships a separate file for every mod loader and every version of the game. Pick both, then download — the wrong build installs fine and then does nothing in the game.

Mod loader

Minecraft version

⬇ Download for 1.21.11–26.2 · Bukkit⬇ Download for 1.21.6–1.21.10 · Bukkit⬇ Download for 1.21.11–26.2 · Paper⬇ Download for 1.21.6–1.21.10 · Paper⬇ Download for 1.21.11–26.2 · Purpur⬇ Download for 1.21.6–1.21.10 · Purpur⬇ Download for 1.21.11–26.2 · Spigot⬇ Download for 1.21.6–1.21.10 · Spigot
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.
DuckyZones — screenshot 1DuckyZones — screenshot 2DuckyZones — screenshot 3DuckyZones — screenshot 4DuckyZones — screenshot 5

DuckyZones

Create custom zones with powerful rules and effects in your Minecraft world!
Highly configurable, efficient, and perfect for custom maps, events, or gameplay control.


Description

DuckyZones allows you to define specific rectangular areas (zones) in your world where certain rules and effects apply.
Whether you're building PvP arenas, adventure maps, or controlled environments, this plugin gives you full control over player behavior inside defined areas.


Features


Configuration

config.yml

# List of Items (1.21.11) : https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# List of Effects (1.21.11) : https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html
region-flags:
  mob-entry:
    knockback-strength: 0.6
    knockback-y: 0.15
    cooldown-ms: 250
zones:
  spawn: # Zone name
    priority: 0 # Higher priority wins when regions overlap
    flags:
      pvp: DENY
      build: DENY
      greeting: "&aWelcome to %region%!"
    world: world # World where zone is
    corner1: world,100,64,100 # First Zone Corner
    corner2: world,110,70,110 # Second Zone Corner
    elytra-disabled: false # Should be elytra disabled in that zone? This will remove the elytra from the player
    elytra-disabled-message: "Elytra is disabled in this zone!"
    blocked-items: # Player with these items in inventory cannot enter the zone
      - TNT
      - ENDER_PEARL
    blocked-effects: # Player with these effects cannot enter the zone, after leaving it they will disappear separator; means the power of the effect, e.g. SPEED;1 = Speed 1 in the game, if you want to block all powers of effect, you must do ;-1
      - SPEED;-1
      - INVISIBILITY;1
    required-items: # Only Player with these items in inventory can enter the zone
      - DIAMOND
      - TOTEM_OF_UNDYING
    required-effects: # Only Players with these effects can enter the zone, after leaving it they will disappear separator; means the power of the effect, e.g. SPEED;1 = Speed 1 in the game, if you want to block all powers of effect, you must do ;-1
      - NIGHT_VISION;1
    zone-effects: # Effects that will be applied after entering the zone, after leaving it they will disappear separator; means the power of the effect, e.g. SPEED; 1 = Speed 1 in the game
      - STRENGTH;2
    min-health: 5.0 # Players who do not have this number of hearts cannot enter
    max-health: 20.0 # Players who have this number of hearts or more cannot enter
    min-level: 5 # Players who do not have this amount of exp level cannot enter
    max-level: 100 # Players who have this amount of exp level or more cannot enter
    deny-message: "&cYou can't enter this area!" # Players who are unable to enter the zone will receive this message in chat when trying to enter
    zone-teleport-back-command: "spawn %player%" # The command that will be executed when the player enters the zone e.g. through teleportation, to call the player's nickname, just type %player%
    entry-deny-title: "&cEntrance prohibited" # Title that will appear on the screen when a player tries to enter the zone without meeting the requirements
    entry-deny-subtitle: "%reason%" # SubTitle that will appear on the screen when a player tries to enter the zone without meeting the requirements
    entry-deny-actionbar: "&eGet away from the zone!" # ActionBar that will appear on the screen when a player tries to enter the zone without meeting the requirements
    entry-deny-bossbar: "&4Entrance to the zone blocked!" # BossBar that will appear on the screen when a player tries to enter the zone without meeting the requirements
    entry-deny-sound: ENTITY.VILLAGER.NO # Sound that will play on the screen when a player tries to enter the zone without meeting the requirements
    afk-zone:
      enabled: false # Is this an AFK zone with rewards?
      actionbar-format: "&eRewards: {rewards}"  # Main ActionBar format which will be shown in actionbar inside an AFK zone
      rewards:
        reward1:
          interval: 60 # Time in seconds between rewards
          chance: 10.0 # Default chance for players without specific permissions (0-100%)
          permission-chances: # Override chance based on player permissions
            "duckyzones.afk.vip": 50.0
            "duckyzones.afk.premium": 75.0
          bossbar-format: "&eReward 1 in {time}"     # Bossbar
          commands: # Commands to execute when reward is given
            - "give %player% diamond 1"
            - "tellraw %player% {\"text\":\"You received a reward for being AFK!\",\"color\":\"green\"}"
        reward2:
          interval: 300 # 5 minutes
          chance: 50.0 # 50% default chance
          bossbar-format: "&eReward 2 in {time}"     # Bossbar
          permission-chances:
            "duckyzones.afk.premium": 100.0 # Premium players always get this reward
          commands:
            - "give %player% emerald 1"

Commands


PlaceholderAPI

DuckyZones soft-depends on PlaceholderAPI. When PlaceholderAPI is installed and enabled, DuckyZones registers the duckyzones expansion and also parses PlaceholderAPI placeholders in configured DuckyZones messages.

Supported external placeholders:

Any region-readable placeholder can target a configured region by adding region_<region-id>_ after the duckyzones identifier. Examples:

Region ids are matched case-insensitively. If a region id contains hyphens, underscores are also accepted in placeholders, so main-spawn can be used as main_spawn.

Native DuckyZones message placeholders include %player%, %player_uuid%, %world%, %x%, %y%, %z%, %block_x%, %block_y%, %block_z%, %region%, %regions%, %region_count%, and %priority%. Region-scoped placeholders use the same syntax without the PlaceholderAPI identifier, for example %region_spawn_priority%, %region_spawn_flag_build%, or %region_spawn%.


Plugin API

Other plugins can access DuckyZones through the Bukkit service or the convenience provider:

import pl.barpad.duckyzones.api.DuckyZonesApi;
import pl.barpad.duckyzones.api.DuckyZonesProvider;

DuckyZonesApi api = DuckyZonesProvider.get();
boolean insideRegion = api.isInsideRegion(player.getLocation());
String currentRegion = api.getPrimaryRegionAt(player.getLocation())
        .map(region -> region.getId())
        .orElse("");

The same API is also available through Bukkit services:

DuckyZonesApi api = Bukkit.getServicesManager().load(DuckyZonesApi.class);

Use depend: [DuckyZones] or softdepend: [DuckyZones] in your plugin.yml, depending on whether your plugin can run without DuckyZones.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more