PickupFilter icon
Public Plugin

PickupFilter

Let players decide exactly which items enter their inventory.

18Spigot downloads
1Modrinth downloads
5.0/51 Spigot ratings
1.2.1Current version
2 Jul 2026Last public update

Full overview

Let players decide exactly which items enter their inventory.

PickupFilter gives every player control over the items allowed into their inventory. It is aimed at the everyday frustration created by farms, mines, grinders and busy survival areas where unwanted drops repeatedly fill valuable slots.

Each player manages a personal filter through a clear GUI. Their choices are saved persistently, so the filter behaves like a real account preference rather than a temporary menu setting that disappears after a restart.

Best suited toSurvival servers with automated farms, grinders, resource worlds or players who prefer highly organised inventories.

How it works

Personal filtering without changing the rest of the server

Players open the management menu, choose the materials they do not want to collect and continue playing normally. Pickup events are checked before the item enters the inventory, preventing junk from becoming a cleanup problem later.

The system is intentionally player-specific. One player can ignore cobblestone while another collects it in the same area, making it suitable for shared farms and mixed playstyles.

  • Per-player choices instead of global blacklists
  • Persistent settings across relogs and restarts
  • Useful around farms, grinders and large mining sessions
  • Designed to remain reliable through normal item movement and storage

Administration

Configuration and live-server use

The plugin focuses on low-overhead event handling and straightforward configuration. It does not require a database or a large dependency stack, and its menu-driven approach is easier for both Java and Bedrock players than command-heavy filtering.

CompatibilityPaper/Spigot 1.20–1.21.x IntegrationsNo required integrations Version1.2.1

Feature breakdown

Everything included in PickupFilter

Each headline feature is expanded below so visitors can understand the real server use rather than seeing a short tag list.

Per-player item filters

Every player creates their own material list without affecting anyone else.

Persistent saved choices

Selections survive relogs and server restarts.

Simple management GUI

Items can be added or removed through a visual inventory menu.

Farm-friendly behaviour

Stops repetitive mob, crop and block drops before they flood inventories.

Restart-safe storage

Player filter data is written to disk and restored automatically.

Lightweight event handling

Checks are kept focused on pickup behaviour rather than running constant world scans.

Getting started

Installation and rollout

The platform buttons include downloads, changelogs and the original public resource discussion.

  1. 1

    Install the JAR and restart the server.

  2. 2

    Review the default GUI and message settings.

  3. 3

    Grant normal-use permissions to players where required.

  4. 4

    Test common farm drops and verify saved choices after a restart.

Tokens & placeholders

Text tokens found in the source

Availability depends on the feature that references each token.

%category%%item%%material_count%%materials%%max_page%%mode%%next_page%%page%%prefix%%pretty_item%%previous_page%%status%

Source architecture

18 Java classes across 9 packages

gui (5), models (3), utils (3), managers (2), commands (1), data (1), hooks (1), listeners (1)

Core systems

FilterGUI, Main, FilterCategory, FilterMode, MessageUtil, Metrics

Commands

FilterCommand

GUI & menus

FilterGUIHolder, GUIType, GuiItemConfig

Listeners & events

FilterGUIListener, PickupListener

Managers & services

PlayerDataManager, CategoryManager, FilterManager

Integrations & API

GeyserHook

Models & data

FilterProfile

Utilities

ColorUtil

Configuration reference

4 bundled YAML files

Top-level sections and defaults are summarised from the supplied resources.

categories.yml

  • Categories — 12 nested settings: Ores, Blocks, Food, Mob-Drops, Tools, Armor, Redstone…

config.yml

  • Settings — 7 nested settings: Prefix, Default-Enabled, Default-Mode, Notify-Blocked-Pickup, Notify-Cooldown-Seconds, Save-On-Change, Block-Pickup-When-GUI-Open
  • Geyser — 6 nested settings: Enabled, Use-Bedrock-Safe-GUI, Hide-Drag-Instructions-For-Bedrock, Disable-Shift-Click-Category-Actions-For-Bedrock, Add-Held-Button-Slot, Remove-Held-Button-Slot
  • Worlds — 3 nested settings: Enabled, Use-As-Whitelist, Disabled
  • GUI — 7 nested settings: Title, Size, Filter-Slots, Buttons, Category-Menu, Category-Items, Items
  • Admin-Defaults — 3 nested settings: Enabled, Mode, Materials

data.yml

  • Players — 0 nested settings:

messages.yml

  • Messages — 17 nested settings: No-Permission, Players-Only, Reloaded, Enabled, Disabled, Mode-Changed, Added-Held…

Permissions

4 declared permission nodes

Defaults and descriptions come directly from plugin.yml.

filter.use

Allows players to use PickupFilter.

Default: True

filter.gui

Allows players to use the filter GUI.

Default: True

filter.admin

Allows admin reload and admin actions.

Default: op

filter.bypass

Bypasses pickup filtering.

Default: not specified

Commands

1 declared command

Aliases, usage and permissions come directly from plugin.yml.

/

/filter

Main PickupFilter command.

Aliases: /pickupfilter, /pf, /itemfilter · Usage: /filter · Permission: None declared

Source-verified reference

Checked against PickupFilter 1.2.1

This static reference is built from the supplied plugin.yml, YAML resources and Java source. No browser-generated documentation is used.

Main classme.Ghoul.PickupFilter.MainAPI version1.21Java classes18 Hard dependenciesNoneSoft dependenciesfloodgate, Geyser-SpigotLoad beforeNone

Community feedback

Latest SpigotMC reviews

Live ratings and recent written reviews from the public Spigot resource page.

5.0/5 ★★★★★ 1 community ratings
Read all reviews on SpigotMC ↗
Loading the latest Spigot reviews…

Review data is loaded through Spiget. Static rating fallbacks remain visible if the service is unavailable.

Related projects

Continue exploring