Configuration

config.yml holds the global defaults for UltimateAirdrops. Most of these values act as the fallback for every airdrop that does not override the corresponding setting in its own editor, so server-wide defaults can be defined here and individual airdrops adjusted only when necessary. See Airdrop Options for the per-airdrop settings.

Changes to the file are applied with /airdrops reload.

Text written in brackets [] within a comment indicates the plugin dependency required for that setting to work.


Customization

Config:
    block-type: "CHEST"                 # Block used for the airdrop (any Bukkit Material that is a block).
    inventory-rows: 3                   # Rows (1-5) of the airdrop loot inventory.
    public-location-offset-x: 15        # Players are told a fuzzy location within this X range.
    public-location-offset-z: 15        # Players are told a fuzzy location within this Z range.
    broadcast-spawn-remove: true        # Broadcast a message when an airdrop fails to find a safe spawn.
    spectator-can-open-airdrop: false   # Allow spectator-mode players to open airdrops.

    create-holograms: true              # Info holograms above airdrops. [HolographicDisplays/DecentHolograms/FancyHolograms]
    hologram-height: 2.0                # Vertical offset of the hologram above the block.

The public location offset determines how imprecise the announced position is: instead of exact coordinates, players receive a randomised centre within the configured range, so the airdrop has to be located within an area.


Compass

An optional tracker compass that, while held, points to the nearest spawned airdrop in the player’s world. It is distributed with /airdrops compass [player].

    compass:
        enabled: true                   # Enables the tracker compass and the /airdrops compass command.
        item-name: "&b&lAirdrop Tracker"
        item-lore:
          - "&7Points to the nearest airdrop"
          - "&7in your current world."
        custom-model-data: 0            # For resource packs (0 = none).

Schematic

Pastes a WorldEdit schematic as decoration around the airdrop block. An empty file value disables the feature. [WorldEdit / FastAsyncWorldEdit]

    schematic:
        file: ""                        # Schematic file (in the /schematics folder), empty = disabled.
        offset-x: 0                     # Paste offset on X relative to the airdrop block.
        offset-y: 0                     # Vertical fine-tune (the schematic's lowest layer sits on the surface).
        offset-z: 0                     # Paste offset on Z relative to the airdrop block.
        ignore-air-blocks: true         # Skip the schematic's air blocks when pasting.
        despawn-mode: "RESTORE"         # On despawn: RESTORE terrain, REMOVE it (leaves a hole), or KEEP it.

When copying the schematic in WorldEdit, stand exactly where the airdrop block is intended to appear. The schematic’s base rests on the surface and the block is placed at the copy position.


Cooldowns

    airdrop-spawn-delay: 72000          # Base delay between spawns, in seconds (0 = disable auto-spawning).
    delay-treshold: 3000               # Random +/- jitter added to the delay, in seconds (0 = disable).
    airdrop-despawning-time: 6000       # How long an airdrop stays before despawning, in seconds (0 = never).
    airdrop-empty-despawn-time: 0       # Seconds an opened airdrop despawns after being emptied of loot (0 = disable).
    time-to-unlock-airdrop: 30          # Lock time before players can open it, in seconds (0 = no lock).
    start-unlocking-on-interaction: true # true = countdown starts on interaction; false = starts on spawn.
    consume-unlock-item: false          # true = the per-airdrop "Unlock Item" is taken from the player's hand on unlock.
    price-to-unlock: 0                  # Money charged when a player starts unlocking an airdrop. Requires Vault (0 = free).

The interval between drops is airdrop-spawn-delay plus or minus a random value up to delay-treshold, which makes spawn times unpredictable.

airdrop-empty-despawn-time is an independent timer. It only runs once an airdrop has been opened and its inventory is empty, so looted airdrops are removed promptly while untouched ones keep their full airdrop-despawning-time.

The unlock item itself is configured per airdrop, through the Unlock Item option in the editor. consume-unlock-item and price-to-unlock are its global defaults. Two restrictions apply, both detailed in Unlock resolution order: an unlock item overrides start-unlocking-on-interaction, and price-to-unlock is only charged when the unlock is initiated by a player. The price is ignored when Vault is not installed, when start-unlocking-on-interaction is false, and when no lock time is configured.


Conditions

    min-players-to-spawn-airdrop: 0     # Minimum players online for an airdrop to spawn (0 = disable).

Spawn location

The world and the bounding box within which airdrops can spawn. maxY and minY must remain within the world’s build limits.

    world: "world"
    maxX: 100000
    maxZ: 100000
    maxY: 319
    minX: -100000
    minZ: -100000
    minY: -63

Spawn checks

How a candidate location is validated before an airdrop is placed.

    max-random-location-checks: 25      # How many times the server tries to find a valid location.
    avoid-block-types:                  # Blocks an airdrop cannot spawn on top of.
        - WATER
        - FLOWING_WATER
        - LAVA
        - FLOWING_LAVA
    avoid-biomes:                       # Biomes where airdrops cannot spawn.
        #- OCEAN
        #- DEEP_OCEAN
    clearance-margin: 1                 # Extra air blocks required around the airdrop's footprint. 0 = just enough to fit.

The clearance margin is measured around the entire footprint, which is the full schematic when one is configured and the single airdrop block otherwise. This prevents decorated airdrops from spawning embedded in the terrain.


Messages

All player-facing text is stored in messages.yml and supports & colour codes and full hex colours in &#RRGGBB format. Behaviors can reference a message by its key through the lang action parameter, as described in Behaviors.


PlaceholderAPI

When PlaceholderAPI is installed, the plugin registers an ultimateairdrops expansion automatically. Its placeholders work anywhere PlaceholderAPI is resolved: scoreboards, tab lists, holograms and chat formats.

Spawn timer

Placeholder Value
%ultimateairdrops_spawn_time% Formatted countdown until the next airdrop lands, or the airdrop-never-spawning-label message when automatic spawning is disabled.
%ultimateairdrops_spawn_time_seconds% The same countdown as a plain number of seconds, for sorting and comparisons. -1 when automatic spawning is disabled.

Live airdrops

Several airdrops can be live at the same time and in different worlds, so a placeholder that reads one of them has to say which one:

%ultimateairdrops_spawned_<selector>_<field>%

The selector picks the airdrop, the field picks what to read from it. The selector is mandatory: %ultimateairdrops_spawned_x% is not a valid placeholder and is left untouched in the text, so a mistake stays visible instead of rendering as a blank.

Selectors

Selector The airdrop it addresses
nearest The one closest to the player the placeholder is being resolved for.
near_<x>_<z> The one closest to a fixed point, in that player’s world.
near_<world>_<x>_<z> The same, in a named world. This form needs no player, so it also works from the console and on server-wide displays.
latest The most recently spawned one.
oldest The first one spawned, that is, the closest to despawning.
world_<name> The nearest one in a given world, or the most recent one there when the viewer is elsewhere.
type_<name or id> The nearest one of a given airdrop type. Names are written in lower case with their spaces as _, so &6Epic Drop is type_epic_drop.
id_<id> One specific live airdrop. Live ids are reused as airdrops despawn, so this is meant for testing rather than for a permanent display.
all The whole set. Only valid together with count.

Fields

Field Value
x y z Real coordinates of the airdrop block.
min_x max_x min_z max_z Corners of the public, approximate location box built from the Public Location Offset X/Z airdrop options. Identical to the real position when those are 0.
center_x center_z Centre of that box.
world The world the airdrop is in.
name The name of its airdrop type.
id The id of the live airdrop.
type_id The id of its airdrop type.
distance Distance in blocks from the selector’s reference point: the coordinates of a near_ selector, or otherwise the player the placeholder is resolved for.
time_left despawn_seconds Despawn countdown, formatted and as plain seconds.
locked_time_left locked_seconds Unlock countdown, formatted and as plain seconds.
locked opened State flags, as true or false.
count How many live airdrops the selector matches.
%ultimateairdrops_spawned_nearest_name%                     The nearest airdrop's type name
%ultimateairdrops_spawned_nearest_distance%                 How far the viewer is from it
%ultimateairdrops_spawned_near_world_0_0_time_left%         Countdown of the one nearest to spawn
%ultimateairdrops_spawned_world_the_nether_count%           How many are live in the nether
%ultimateairdrops_spawned_all_count%                        How many are live in total

When a placeholder is valid but no live airdrop matches its selector, it renders the placeholder-no-airdrop message from messages.yml, which is - by default.

Two details are worth knowing when building a scoreboard:

  • Which airdrop counts as the nearest is decided horizontally, ignoring height. The distance field measured from a player is the full three-dimensional distance, matching what the player reads in F3, and it declines to answer when the airdrop is in another world.
  • A selector that is not anchored with near_ falls back to the most recently spawned airdrop it matches when there is no player, or when the player’s world holds none. For nearest and type_ that airdrop may be in a different world, so pair the coordinates with the world field when it matters, or anchor the selector with near_<world>_<x>_<z>, which never leaves its own world.