AT-MailBox logoAT-MailBox

Overflow capture

How items a player cannot pick up with a full inventory are saved to the mailbox instead of dropping.

When a player walks over an item but their inventory has no room for it, that item normally stays on the ground and despawns. AT-MailBox catches that case and stores the item in the player's mailbox instead, so nothing is lost.

How it works

  1. A player picks up an item.
  2. AT-MailBox checks if there is room: a free slot, or a matching stack that is not yet full.
  3. If there is room, the pickup happens as normal.
  4. If there is no room, the pickup is cancelled and the item is moved to the player's mailbox.
  5. The player gets a message telling them the item went to their mailbox.

This covers both vanilla item drops and items dropped by other plugins.

When a large amount arrives split across many stacks at once (for example a big /give into a full inventory, which the server hands over as many 64-item drops), the chat lines are combined into one summary per item type, like "5000x Grass Block has been sent to your mailbox", instead of one line per stack.

The master switch

mailbox.capture-ground-drops turns the whole ground-capture feature on or off. It must be true for the mailbox to catch anything dropped at a full player's feet, including crate and vote rewards and /give overflow. It ships true.

If crate or vote rewards land on the ground instead of the mailbox, check capture-ground-drops first. When it is false, the mailbox ignores every ground drop before the mailbox.triggers switches are even read, so plugin-rewards: true has no effect. See Configuration.

Choosing which sources are captured

Not every server wants every overflow queued. mailbox.triggers turns each source on or off independently: pickup (farming, mining, mob loot), commands (/give and friends), plugin-rewards (crates, votes, quests, kits) and api.

A disabled source behaves as if AT-MailBox were not installed, so the item stays on the ground exactly as vanilla would leave it. Servers that sell backpack space usually run pickup: false, which limits the mailbox to handed-out items so it never replaces the backpack during normal play. See Configuration.

Sources are told apart from what happened right before the item appeared. Anything that follows a block break, a right-click harvest, a mob death, leaves dropping or an explosion counts as pickup, including crops taken by a farm or harvester plugin that handles the break itself. Harvester plugins hand their crops over gradually, so a block break keeps counting as farming for a second afterwards, and a player who just broke a block for three seconds. What is left is commands when the receiving player threw it, and plugin-rewards otherwise.

Set general.debug to true to have the console name the trigger behind every captured item, for example [capture] 3x CARROT source=world-drop trigger=pickup enabled=false via=break-spot -> left on the ground. The via part names the evidence: block-drop, break-spot, recent-breaker, thrown-by-recipient, or no-world-loot-evidence for a plugin reward. This is the fastest way to see why something was or was not captured.

Drops that are deliberately left alone are logged too, as source=skipped reason=... -> left on the ground. The reason is one of capture-ground-drops-off, mailbox-full-overflow, player-threw-it, never-pickup, never-pickup-flicker, infinitebags-drop, recipient-has-room or gone, so an item that stays on the floor is as traceable as one that does not.

Items the player throws away

An item a player drops with the drop key is never taken into the mailbox. On some server versions the game hands out command items through the same mechanism, so the two are separated by the re-pickup delay instead: a thrown item keeps the couple of seconds the game gives the player to walk away from it, while an item handed to a player is immediately pickable. Only the second kind is captured.

Ground stacking plugins

A plugin that stacks dropped items on the ground (RoseStacker) merges nearby drops into one pile with its own count, and it does that merging itself instead of letting the server do it. Without care that turns a player's own pile on the floor into part of the drop the mailbox is about to take.

AT-MailBox detects RoseStacker automatically, with nothing to configure, and holds a drop apart from its neighbours for the single tick it takes to decide on it. The hold is released as soon as the mailbox decides not to take it, so every other item on the server keeps stacking exactly as before. Where a pile was already merged, only the amount that was actually handed to the player is taken and the rest is left on the ground.

The startup log says RoseStacker: hooked when it is found.

When the mailbox is also full

If the mailbox itself is at capacity, the mailbox.full-overflow.drop-at-feet setting decides what happens:

SettingResult
true (default)The item is dropped at the player's feet.
falseThe item is rejected and the player is told. The item is not stored.

Capacity is set per rank through tiers. A higher rank can hold more before the mailbox is full. See Capacity tiers.

  • mailbox.triggers.* decides which sources may fill the mailbox at all.
  • mailbox.stack-similar-items merges identical items into one slot.
  • mailbox.full-overflow.drop-at-feet decides the full-mailbox behaviour.
  • Capacity comes from Capacity tiers.
  • Stored items can expire. See Item expiry.

See the full file on the Configuration page.

On this page