Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Advanced Delivery Drones is a comprehensive Minecraft plugin for real-time item and animal transp
Early development
๐ฆ Advanced Delivery Drones
Please join the Discord if you have questions or need support!Version 1.0.5
Licensed under the Apache 2.0 License.
Physical drone deliveries for Minecraft Paper servers: visible flight, package inventories, sockets, animal transport, blacklists, Discord webhooks, and fully configurable GUIs.
๐บ๏ธ Roadmap
- โ Hierarchical permission system โ fine-grained permissions for all commands
- โ Feature toggles โ enable/disable sockets and player-to-player deliveries
- โ Translation files โ
languages/*.yml(de_DE, en_EN, es_ES, fr_FR, ru_RU, zh_CN)- โ Cross-dimension delivery โ drones between Overworld, Nether, and End
- โ Landing improvements (1.0.1) โ elytra/airborne follow, pre-landing safety check, distance-based landing notification
- ๐ Future: Mysql support for Database saving
โจ Features
๐ Physical drone flight
- Armor-stand drone with custom skull texture flies from sender to target in real time
- Launch animation (optional): rise, spin, particles, and sound (
launch-animation.*) - Startup phase: slow acceleration for
startup-secondsatstartup-speed - Cruise: main speed via
speed(blocks per tick) - Approach: slower final segment inside
approach-distanceatapproach-speed - Smooth landing: eased descent into the delivery zone (not an instant snap)
- Pre-landing safety check: landing spot is recomputed once before touchdown so the drone does not hover in unsafe air
- Virtual progress continues when chunks are unloaded; the drone reappears at the correct position when the chunk loads again
- Admin coordinate sends can preload the destination chunk before arrival
- Cross-dimension flight: arc path between worlds (Overworld โ Nether โ End)
๐ช Elytra & airborne follow (player deliveries)
- Elytra follow (
follow-gliding-player): while the receiver glides, the drone tracks them in the air; when they land, the target is relocated once and the drone lands there - Airborne follow (
follow-airborne-player-before-landing): before landing, if the receiver is significantly in the air (e.g. long fall, not a normal jump), the drone follows until they touch the ground, relocates once, then lands โ controlled byairborne-follow-min-height(default5blocks above solid ground)
๐ฆ Package & inventory
- Compose GUI (9โ54 slots, multiple of 9) โ close to send
- Receiver opens the package after landing (right-click drone)
- Preview incoming drones read-only (
/drone preview <uuid>) with item and animal summary - Despawn timer starts after landing (
despawn-time-minutes) - Despawn modes:
DELETE(remove contents) orCOLLECT(return unopened items to sender) - Collection animation when the receiver picks up the drone (
collection-animation.enabled)
๐จ Hologram & boss bar
- Hologram above landed drones: recipient name + despawn countdown (
hologram.*) - Boss bar for the receiver: distance and ETA (
bossbar.*)
โจ Particles & sound
- Configurable particle trail (including
DUST:R,G,B:SIZE) - Flight sound while airborne (
flight-sound) - Receiver beacon particles after landing
๐ Locate landed drones
/drone locateโ particle trail toward your nearest landed drone in the current world (locate-particles.*, permissiondrone.locate)
๐ซ Receive toggle, decline & cancel
- Toggle whether you accept drones (
/drone toggle, GUI) - Decline all incoming deliveries โ items returned to senders (
/drone decline) - Cancel your own outgoing drones (
/drone cancel) - Clickable chat links for cancel and preview
๐ข Limits & worlds
- Max active outgoing drones per sender (
max-active-per-sender) - Blocked worlds list (
blocked-worlds)
โ๏ธ Feature toggles
players-enabledโ allow/disable player-to-player deliveries (GUI + commands)sockets-enabledโ allow/disable socket system
โ Player blacklist
- Block specific players from sending direct deliveries to you
- Commands and GUI (
/drone blacklist โฆ)
๐ Delivery sockets
- Place personal delivery points (
/drone socket place <name>) - Send to any socket by global name (
/drone socket send <name>) - Trust list: trusted players may pick up socket deliveries
- Per-socket blacklist for blocked senders
- Rename, relocate, remove; management GUI (
/drone socket manage) - Exact landing on socket coordinates
- Container integration: auto-unload package into hoppers/chests below the socket (
container-integration.*) - Pending returns if the socket owner is unreachable (
socket-pending-returns.yml)
๐พ Animal transport
- Optional leashed-animal delivery (
carry-leashed-animals) - Send-mode GUI: animals only vs items
- Animals removed on send, respawned at delivery; invulnerable in transit
- Limits via
max-leashed-animals-per-drone
๐ Discord webhooks
- Optional notifications: sent, delivered, declined/cancelled, expired
- Embeds with items/animals (
discord.*inconfig.yml)
๐ฅ GUIs (gui.yml)
- Main menu: send, preview, socket manage, toggle, decline, blacklist
- Player & socket target selection
- Socket edit: rename (sign UI), relocate, trust, blacklist, delete
- Blacklist add/remove player pickers
- Send-mode inventory (animals vs items)
- Live reload via
/drone reload(no restart)
๐พ Persistence & safety
players.ymlโ receive toggleblacklists.ymlโ player blacklistssockets.ymlโ sockets, trust, socket blacklistssocket-pending-returns.ymlโ stranded socket deliveriesdrones.ymlโ active in-flight/landed drones (survives restarts where applicable)- Server restart: returns items/animals to senders, cleans orphaned entities
- Receiver offline / dimension change: outgoing drone cancelled, items returned
- Flying drone armor stand cannot be manipulated
โก Performance
PerformanceOptimizer: throttling when many drones are active- Distance-culled particles and rate-limited boss bar / hologram updates
- Chunk preload and flight path math cached per drone
๐ Languages
- Messages in
plugins/AdvancedDeliveryDrones/languages/(not inconfig.yml) - Select locale via
language:inconfig.yml(de_DE,en_EN,es_ES,fr_FR,ru_RU,zh_CN) - MiniMessage formatting; reload with
/drone reload - Landing notification shows distance to the drone in metres (
<distance>), not delivery radius
๐ฎ Commands
Root command: /drone (players only โ opens the main GUI when run without arguments).
๐ค Sending & receiving
| Command | Description | Permission |
|---|---|---|
/drone send <player> |
Open compose flow and send to a player | drone.send.players |
/drone cancel |
Cancel all your outgoing drones | drone.cancel |
/drone preview <uuid> |
Preview an incoming drone (read-only) | drone.preview |
/drone toggle |
Enable/disable receiving drones | drone.toggle |
/drone decline |
Decline all incoming drones | drone.decline |
/drone locate |
Particle trail to nearest landed drone (this world) | drone.locate |
โ Player blacklist
| Command | Description | Permission |
|---|---|---|
/drone blacklist |
Open blacklist GUI | drone.blacklist |
/drone blacklist player add [player] |
Block a player (GUI if name omitted) | drone.blacklist.player.add |
/drone blacklist player remove [player] |
Unblock a player | drone.blacklist.player.remove |
/drone blacklist player list |
List blocked players | drone.blacklist.player.list |
๐ Sockets
| Command | Description | Permission |
|---|---|---|
/drone socket place <name> |
Place a socket at your location | drone.socket.place |
/drone socket remove <name> |
Remove your socket | drone.socket.remove |
/drone socket list |
List your sockets | drone.socket.list |
/drone socket send <name> |
Send to a socket (global name) | drone.socket.send |
/drone socket manage |
Socket management GUI | drone.socket.manage |
/drone socket rename <old> <new> |
Rename a socket | drone.socket.rename |
/drone socket trust <socket> <player> |
Allow pickup on your socket | drone.socket.trust |
/drone socket untrust <socket> <player> |
Revoke trust | drone.socket.untrust |
/drone socket blacklist add <socket> [player] |
Block sender for a socket | drone.socket.blacklist |
/drone socket blacklist remove <socket> [player] |
Unblock sender | drone.socket.blacklist |
/drone socket blacklist list <socket> |
List socket blacklist | drone.socket.blacklist |
๐ Admin
| Command | Description | Permission |
|---|---|---|
/drone admin send <x> <y> <z> [world] |
Send to coordinates (admin as receiver) | drone.admin.send |
/drone list |
List active drones + teleport links | drone.admin.list |
/drone reload |
Reload config.yml, gui.yml, and language files |
drone.admin.reload |
Parent permissions (drone.send, drone.use, drone.socket, drone.admin, drone.blacklist) grant their children โ see plugin.yml.
๐ Permissions
| Permission | Description | Default |
|---|---|---|
drone.send |
Send and cancel drones (parent) | true |
drone.send.players |
Send to players | true |
drone.cancel |
Cancel outgoing drones | true |
drone.use |
Preview, toggle, decline, blacklist (parent) | true |
drone.preview |
Preview incoming drones | true |
drone.toggle |
Toggle receiving drones | true |
drone.decline |
Decline incoming drones | true |
drone.locate |
Locate landed drones | true |
drone.blacklist |
Blacklist management (parent) | true |
drone.blacklist.player.* |
Add / remove / list player blacklist | true |
drone.socket |
All socket commands (parent) | true |
drone.socket.* |
Individual socket subcommands | true |
drone.admin |
Admin commands (parent) | OP |
drone.admin.send |
Admin coordinate send | OP |
drone.admin.list |
List active drones | OP |
drone.admin.reload |
Reload configs | OP |
โ๏ธ Configuration
| File | Purpose |
|---|---|
config.yml |
Flight, particles, sounds, hologram, boss bar, Discord, feature toggles, follow settings |
gui.yml |
Menu layouts, items, titles |
languages/*.yml |
All player-facing messages (MiniMessage) |
players.yml |
Per-player receive toggle (auto-generated) |
blacklists.yml |
Player blacklists (auto-generated) |
sockets.yml |
Sockets, trust, socket blacklists (auto-generated) |
socket-pending-returns.yml |
Pending socket returns (auto-generated) |
drones.yml |
Active drones (auto-generated) |
Pinned Versions
Pages
Members
Owner