Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
Auto Pickup for Fabric
Auto Pickup is a highly configurable server-side Fabric mod that automates the collection of items and experience orbs. It features session tracking, a multi-tier permission system, and extensive mod compatibility to ensure drops are attributed to the correct players, even when using high-speed mining mods or engaging in group combat.
⨠Features
Core Functionality
- š Seamless Collection: Items from broken blocks and mob kills are instantly added to your inventory
- ā Smart Experience Handling: Experience is cached and applied after a short delay, ensuring tools take durability damage before Mending activates
- š Lag-Free: Prevents item and experience orb entities from spawning, reducing server load
- š¦ Overflow Protection: If your inventory is full, items safely drop at your feet
- š§ Granular Control: Toggle individual features independently via commands or config GUI
Advanced Features
- š„ Mob Loot Splitting: Share mob drops and XP with nearby players who participated in the kill
- š® Per-Player Permissions: Server admins can override settings for specific players
- š¾ Client Profiles: Automatic per-server/world configuration profiles for seamless server switching
- š Extensive Mod Compatibility: Works automatically with VeinMiner, TreeHarvester, Traveler's Backpack, and more

āļø Configuration
Auto Pickup uses a flexible three-tier permission system:
- Server Defaults - Global fallback settings
- Admin Overrides - Per-player forced settings (highest priority)
- Client Preferences - Individual player choices (only if server allows)
š„ļø Mod Menu Integration (Client)
If you have Mod Menu and YetAnotherConfigLib (YACL) installed, you can configure your personal preferences via the Mods menu.
Settings available:
- Master Toggle
- Block Item Pickup
- Block Experience Pickup
- Mob Loot Pickup
- Mob Experience Pickup
- Split Mob Loot (share drops with nearby attackers)
- Split Mob XP (share experience with nearby attackers)
Note: Your client settings only apply if the server admin has enabled the corresponding "Allow" setting for that feature.

š Commands (Server Admin)
Server operators (OP Level 2+) can manage global defaults and player overrides using /autopickup.
Global Configuration
| Command | Description | Default |
|---|---|---|
/autopickup |
Display current configuration status | - |
/autopickup master <true|false> |
Master toggle - disables mod entirely if false | true |
/autopickup blocks <true|false> |
Auto-pickup items from broken blocks | true |
/autopickup blockxp <true|false> |
Auto-pickup experience from broken blocks | true |
/autopickup mobloot <true|false> |
Auto-pickup loot from killed mobs | false |
/autopickup mobxp <true|false> |
Auto-pickup experience from killed mobs | false |
/autopickup splitmobloot <true|false> |
Share mob loot among nearby attackers | false |
/autopickup splitmobxp <true|false> |
Share mob XP among nearby attackers | false |
Client Control Allowances
These commands determine whether players can override server defaults with their client settings.
| Command | Description | Default |
|---|---|---|
/autopickup allow master <true|false> |
Allow clients to toggle master switch | false |
/autopickup allow blocks <true|false> |
Allow clients to toggle block item pickup | false |
/autopickup allow blockxp <true|false> |
Allow clients to toggle block XP pickup | false |
/autopickup allow mobloot <true|false> |
Allow clients to toggle mob loot pickup | false |
/autopickup allow mobxp <true|false> |
Allow clients to toggle mob XP pickup | false |
/autopickup allow splitmobloot <true|false> |
Allow clients to toggle mob loot splitting | false |
/autopickup allow splitmobxp <true|false> |
Allow clients to toggle mob XP splitting | false |
Per-Player Overrides
Force specific settings for individual players (overrides both server defaults and client preferences).
| Command | Description |
|---|---|
/autopickup override <player> master <true|false|default> |
Override player's master toggle |
/autopickup override <player> blocks <true|false|default> |
Override player's block pickup |
/autopickup override <player> blockxp <true|false|default> |
Override player's block XP |
/autopickup override <player> mobloot <true|false|default> |
Override player's mob loot |
/autopickup override <player> mobxp <true|false|default> |
Override player's mob XP |
/autopickup override <player> splitmobloot <true|false|default> |
Override player's loot splitting |
/autopickup override <player> splitmobxp <true|false|default> |
Override player's XP splitting |
/autopickup override <player> clear |
Remove all overrides for a player |
Use
defaultto remove a specific override while keeping others.
š Configuration Files
Server Config: config/AutoPickup/global_config.json
{
"autoPickup": true,
"autoPickupBlocks": true,
"autoPickupBlockXp": true,
"autoPickupMobLoot": false,
"autoPickupMobXp": false,
"autoPickupSplitMobLoot": false,
"autoPickupSplitMobXp": false,
"allowMaster": false,
"allowBlocks": false,
"allowBlockXp": false,
"allowMobLoot": false,
"allowMobXp": false,
"allowSplitMobLoot": false,
"allowSplitMobXp": false
}
Client Config: config/AutoPickup/client_default.toml (or per-server profiles in presets/)
# AutoPickup Client Configuration
master = true
blocks = true
blockXp = true
mobLoot = false
mobXp = false
splitMobLoot = false
splitMobXp = false
Player Overrides: config/AutoPickup/player_overrides.json
{
"player-uuid-here": {
"overrideMaster": true,
"overrideBlocks": null,
...
}
}
š¦ Installation
Client & Server
- Install Fabric Loader
- Download Fabric API and place in
mods/ - Download Auto Pickup from the releases page
- Place
auto-pickup-x.x.x.jarin yourmods/folder
Optional But Recommended Client Dependencies
- Mod Menu - Access config screen in-game
- YetAnotherConfigLib (YACL) - Required for config GUI (fallback notice shown if missing)
ā Compatibility
Auto Pickup hooks into core Minecraft mechanics and works seamlessly with most mods out of the box.
š§ Explicitly Supported Mods
| Mod | Status | Notes |
|---|---|---|
| VeinMiner | ā Full | All vein blocks picked up instantly with XP |
| TreeHarvester | ā Full | Logs/leaves collected; saplings auto-replanted if enabled |
| Traveler's Backpack | ā Full | Items route to backpack filter first (1.21.9+ with Auto Pickup upgrade) |
| General Block Breakers | ā Compatible | Any mod using vanilla break hooks |
š Technical Details
Auto Pickup intercepts drops at these injection points:
Block.dropStacks()- Primary block drop handlingServerWorld.spawnEntity()- Item entity spawningLivingEntity.dropLoot()- Mob loot generationBlock.dropExperience()- Block XP orbsLivingEntity.dropExperience()- Mob XP orbs
This broad compatibility means most mods work automatically without explicit support.

š® Mob Loot Splitting
When Split Mob Loot or Split Mob XP is enabled, rewards from mob kills are shared among participants:
How It Works
- Damage Tracking: The mod tracks the last 10 unique players who damaged each mob
- Eligibility Check: On mob death, only players who:
- Are online and not spectating
- Have Master enabled
- Have the specific Mob Pickup feature enabled
- Have the specific Split feature enabled
- Are in the same world as the killer
- Distribution:
- Items are split evenly; the killer receives any remainder
- Experience is split evenly; the killer receives any remainder
- Items that don't fit in inventories are dropped at the mob's location
Example
Player A (killer), B, and C all damaged a zombie. Settings:
- Player A: Master ā , Mob Loot ā , Split Mob Loot ā
- Player B: Master ā , Mob Loot ā , Split Mob Loot ā
- Player C: Master ā , Mob Loot ā , Split Mob Loot ā
Result: Only A and B receive split loot. Player C gets nothing because they disabled splitting.
š©āš» Developer API
Adding as a Dependency
Gradle:
dependencies {
modCompileOnly files("libs/auto-pickup-x.x.x.jar")
}
Using the API
import com.lukarbonite.autopickup.AutoPickupApi;
import net.fabricmc.loader.api.FabricLoader;
public class QuestRewards {
public void giveReward(PlayerEntity player, List<ItemStack> items, int xp) {
if (!FabricLoader.getInstance().isModLoaded("auto-pickup")) {
// Fallback: manual drops
items.forEach(stack -> player.dropItem(stack, false));
player.addExperience(xp);
return;
}
// Auto Pickup handles:
// - Inventory insertion
// - Traveler's Backpack routing
// - Config checks (Master, Blocks, etc.)
List<ItemStack> remaining = AutoPickupApi.tryPickup(player, items);
// Drop items that didn't fit
remaining.forEach(stack -> player.dropItem(stack, false));
// Auto Pickup handles:
// - Mending calculations
// - Config checks
AutoPickupApi.tryPickupBlockExperience(player, xp);
}
// For mob-related rewards
public void giveMobReward(PlayerEntity player, List<ItemStack> loot, int xp) {
List<ItemStack> remaining = AutoPickupApi.tryPickupFromMob(player, loot);
remaining.forEach(stack -> player.dropItem(stack, false));
AutoPickupApi.tryPickupMobExperience(player, xp);
}
}
API Methods
| Method | Description |
|---|---|
tryPickup(PlayerEntity, List<ItemStack>) |
Pickup items from blocks (respects Master + Blocks settings) |
tryPickupFromMob(PlayerEntity, List<ItemStack>) |
Pickup items from mobs (respects Master + MobLoot settings) |
tryPickupBlockExperience(PlayerEntity, int) |
Give block XP (respects Master + BlockXP settings) |
tryPickupMobExperience(PlayerEntity, int) |
Give mob XP (respects Master + MobXP settings) |
isMasterEnabled(PlayerEntity) |
Check if auto-pickup is enabled for player |
isBlocksEnabled(PlayerEntity) |
Check block item pickup setting |
isBlockXpEnabled(PlayerEntity) |
Check block XP pickup setting |
isMobLootEnabled(PlayerEntity) |
Check mob loot pickup setting |
isMobXpEnabled(PlayerEntity) |
Check mob XP pickup setting |
Note: All
try*methods return lists of items that could not be picked up (full inventory).
š License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
You are free to:
- ā Use in modpacks
- ā Modify for personal use
- ā Distribute modified versions (must also be AGPL-3.0)
See the LICENSE file for full details.



