作者:rebot | 分类:模组
Minecraft 版本: 1.21.9 1.21.10 1.21.11
平台: neoforge
标签: game-mechanics mobs utility
AutoPickup is a highly configurable server-side 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.

AutoPickup uses a flexible three-tier permission system:
You can configure your personal preferences via the menu. Use Mod Menu for a easy access on Fabric.
Otherwise, use /autopickup gui
Settings available:
Note: Your client settings only apply if the server admin has enabled the corresponding "Allow" setting for that feature.

Server operators (OP Level 2+) can manage global defaults and player overrides using /autopickup.
| Command | Description |
|---|---|
/autopickup gui |
Access to configuration menu via command |
| Command | Description | Default |
|---|---|---|
/autopickup |
Display current configuration status | - |
/autopickup master <true\|false> |
Master toggle - disables mod entirely if false | true |
/autopickup blocks <true\|false> |
Autopickup items from broken blocks | true |
/autopickup blockxp <true\|false> |
Autopickup experience from broken blocks | true |
/autopickup mobloot <true\|false> |
Autopickup loot from killed mobs | false |
/autopickup mobxp <true\|false> |
Autopickup 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 |
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 |
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.
Server Config: config/AutoPickup/global_config.json
{
"autoPickup": true,
"autoPickupBlocks": true,
"autoPickupBlockXp": true,
"autoPickupMobLoot": false,
"autoPickupMobXp": false,
"autoPickupSplitMobLoot": false,
"autoPickupSplitMobXp": false,
"allowMaster": true,
"allowBlocks": true,
"allowBlockXp": true,
"allowMobLoot": true,
"allowMobXp": true,
"allowSplitMobLoot": true,
"allowSplitMobXp": true
}
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,
...
}
}
AutoPickup hooks into core Minecraft mechanics and works seamlessly with most mods out of the box.
| 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 (If the Auto Pickup upgrade is there it works) |
| FallingTree | Full | Tree items handle the different break modes |
| Panda's Falling Trees | Full | Tree items are handled by AutoPickup after fall animation |
| RightClickHarvest | Full | Right-click crop harvests (including tall sugarcane) picked up automatically |
| General Block Breakers | Compatible | Any mod using vanilla break hooks |
AutoPickup intercepts drops at these injection points:
Block.dropStacks() - Primary block drop handlingServerWorld.spawnEntity() - Item entity spawning and falling block entity tracking (FallingTree)LivingEntity.dropLoot() - Mob loot generationBlock.dropExperience() - Block XP orbsLivingEntity.dropExperience() - Mob XP orbsServerPlayerGameMode.useItemOn() - Right-click harvesting (sweet berries, jukebox disc ejection, crops via the RightClickHarvest mod, etc.)ItemFrame.hurt() - Items removed from item frames by left-clickingThis broad compatibility means most mods work automatically without explicit support.

When Split Mob Loot or Split Mob XP is enabled, rewards from mob kills are shared among participants:
Player A (killer), B, and C all damaged a zombie. Settings:
Result: Only A and B receive split loot. Player C gets nothing because they disabled splitting.
Gradle:
dependencies {
compileOnly(files("libs/autopickup-platform-x.x.x.jar"))
}
import com.lukarbonite.autopickup.AutoPickupApi;
public class QuestRewards {
public void giveReward(Player player, List<ItemStack> items, int xp) {
if (!isModLoaded("autopickup")) {
// Fallback: manual drops
items.forEach(stack -> player.dropItem(stack, false));
player.addExperience(xp);
return;
}
// AutoPickup 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));
// AutoPickup handles:
// - Mending calculations
// - Config checks
AutoPickupApi.tryPickupBlockExperience(player, xp);
}
// For mob-related rewards
public void giveMobReward(Player player, List<ItemStack> loot, int xp) {
List<ItemStack> remaining = AutoPickupApi.tryPickupFromMob(player, loot);
remaining.forEach(stack -> player.dropItem(stack, false));
AutoPickupApi.tryPickupMobExperience(player, xp);
}
}
| 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 autopickup 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).
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
You are free to:
See the LICENSE file for full details.
请登录后举报
暂无评论,抢个沙发吧~