
Wiki
Airdrops Wiki
Scheduled drops, flare call-ins, loot crates, admin tooling, and crash-safe cleanup for MCWAR Airdrops.
Getting Started
Start here for the current Paper build, first boot checks, and the runtime settings that affect every drop.
Crate Authoring
Learn how crate families are structured, where the loot really lives, and how zones and models fit into one crate definition.
Drop Pipeline and Effects
Run the scheduled event lane, manual call-ins, and the staged smoke signaling that tells players where to look.
Admin and Operations
Use the in-game tools, command surface, migration support, and cleanup systems that make the plugin maintainable on live servers.
crateTypes.yml is the real content library for Airdrops. Every drop family lives here.
What one crate entry actually contains
Each crate under crateTypes: can define:
- whether the crate is enabled
- its scheduler weight
- display name
- max active limit
- lifetime
- whether it despawns on open
- model strings
- spawn zones
- open restrictions
- open animation overrides
- open actions
- named item pools
At a minimum, the shape looks like this:
crateTypes:
example_crate:
enabled: true
weight: 100
displayName: Example Crate
maxActive: 1
lifetimeSeconds: 300
despawnOnOpen: false
models:
planeitem: minecraft:shears{CustomModelData:176}
crateItem: minecraft:shears{CustomModelData:155}
parachuteItem: minecraft:shears{CustomModelData:156}
openedCrateItem: minecraft:shears{CustomModelData:157}
cratePanels:
bottomItem: ''
sideItem: ''
topItem: ''
spawn:
areas: [item]
open:
deliveryMode: container
commands:
roll_each: [item]
items: {}The crate families already in the current source file
The current crateTypes.yml includes these live crate IDs:
fargo_general_1fargo_general_2fargo_general_3medical_crateraider_crate_1raider_crate_2raider_crate_3marauder_crate_1marauder_crate_2marauder_crate_3imc_crate_1imc_crate_2imc_crate_3duck_defense_crate_1duck_defense_crate_2duck_defense_crate_3trade_cratedesert_crateuniversity_crate- vehicle-oriented drops such as
gray_dirt_bike_drop,jeep_drop,caravan_truck_drop,imc_plane_drop,imc_helicopter_drop, andimc_tank_drop
That is why keeping the file organized matters. This plugin is already beyond the point where one giant unstructured loot list stays manageable.
The fields most people edit first
Core scheduling identity
These decide how often the crate is chosen and how long it stays relevant:
enabledweightmaxActivelifetimeSecondsdespawnOnOpen
player-side identity
These decide what players see:
displayNamemodels.*
World placement
This decides where the crate can land:
spawn.areas
Open behavior
This decides what happens when the crate is used:
open.deliveryModeopen.animationModeopen.shootDownAnimationModeopen.permissionopen.requiredItemopen.consumeRequiredItemopen.deniedMessageopen.commands.roll_each
Named item library
This gives you a local reusable item pool:
items
That is helpful when one crate reuses several named reward items and you do not want to duplicate every serialized stack line by line.
Model fields
The crate-level models section is where each crate tells the runtime what to render:
planeitemcrateItemparachuteItemopenedCrateItemcratePanels.bottomItemcratePanels.sideItemcratePanels.topItem
These per-crate values work with the global effects.plane, effects.parachute, and effects.crate settings from config.yml.
Spawn areas
Each crate can define multiple spawn zones. The current source supports at least:
circlerect
Typical area fields include:
nameworldshapecenterXcenterZradiusminXmaxXminZmaxZminYmaxY
Keep the world and altitude bounds honest. Many bad drops are really bad zone data.
Open restrictions
Per-crate restrictions belong inside open.
The current parser supports:
permissionrequiredItemconsumeRequiredItemdeniedMessage
That means one crate can be public while another requires a key item or a permission gate.
Keep legacy loot and modern runtime concerns separate
This is the biggest maintenance rule for Airdrops:
crateTypes.ymlis where the content identity and reward logic liveconfig.ymlis where the runtime behavior lives
Do not solve view range, physics, or cleanup problems by hacking crate reward entries. Solve those in the global config where they belong.
Next pages
Use these together:

