

Items Filter
Create simple and automatic sorting systems.
Forget about bulky and laggy redstone contraptions! Items Filter offers a modern alternative for automatic organization of your storage.
🪄 What is Items Filter?
Items Filter allows you to filter various types of items from a container located above it to a container placed below it. You can choose which items will pass through the filter by pre-placing them in an adjacent reference container.
Filters can also directly drop sorted items if there is a liquid block below them (air, water, or lava).
If you used version V.2, you might have noticed the datapack name change. This is because it no longer strictly depends on hoppers: you can directly transfer items from a chest or shulker box to another container.
🛠️ Crafting and Usage
To craft an item filter you will need:
- 6x Cobbled Deepslate
- 1x Hopper
- 1x Observer
- 1x Dropper
When placing the filter, a small gray button will appear on the side facing the player. Right-clicking it allows you to switch operation modes.
On the opposite side is an observer icon. Here you need to place a compatible container (all containers with direct Items
entry like chests, hoppers, barrels, shulker boxes, droppers, dispensers, etc.). This container should contain reference items - those you want to pass through the filter. Other items that don't match will remain in the upper container or continue their path through your system if it's a hopper connected to another.
For the filter to work, it requires:
- A compatible container above the filter
- A compatible container with the observer icon, containing items for filtering
- A compatible container below the filter to receive sorted items or a liquid block to drop them
I recommend watching the tutorial video for better understanding and examples.
🔖 Operation Modes
Item filters have two modes: Lax (default) and Strict. Modes are switched by clicking the small gray button.
Lax Mode
Lax mode is indicated by the gray button color. In this mode, the filter only considers items' id
and ignores all their potential NBT tags. For example, if you place an enchanted diamond sword in the reference container, all diamond swords, regardless of enchantments, damage, or other tags, will pass through the filter because they share the same id
(minecraft:diamond_sword
).
Strict Mode
Strict mode is indicated by the yellow button color. In this mode, the filter considers not only id
but also all (non-ignored) tags (before MC 1.20.5) or components (after MC 1.20.5) of items. In this case, returning to the previous example, only diamond swords with exactly the same data (enchantments, damage, etc.) will pass through the filter. This is useful for items like enchanted books, custom player heads, or custom items from other datapacks.
Strict mode also allows ignoring certain tags or components if needed.
⚙️ Settings
Ignored Components for Strict Mode (for V.3.1.0 or newer)
Strict mode allows ignoring some components during filter checks. By default, no components are ignored.
You can add, remove, or get the list of currently ignored components using the following commands respectively:
/function pk_it_fi:settings/mode/strict/ignored_components/add {id:"<id>"}
/function pk_it_fi:settings/mode/strict/ignored_components/remove {id:"<id>"}
/function pk_it_fi:settings/mode/strict/ignored_components/list
Example - ignoring the "minecraft:repair_cost"
component:
/function pk_it_fi:settings/mode/strict/ignored_components/add {id:"minecraft:repair_cost"}
There is also a premade sample containing the most common components usually wanted to be ignored: "minecraft:custom_name"
, "minecraft:lore"
, "minecraft:enchantments"
, "minecraft:damage"
, and "minecraft:repair_cost"
. You can activate it using the command:
/function pk_it_fi:settings/mode/strict/ignored_components/add_default_sample
Ignored Tags for Strict Mode (for V.3.0.1 or older)
Strict mode allows ignoring some tags during filter checks. By default, no tags are ignored.
You can add, remove, or get the list of currently ignored tags using the following commands respectively:
/function pk_it_fi:settings/mode/strict/ignored_tags/add {property:"<property>"}
/function pk_it_fi:settings/mode/strict/ignored_tags/remove {property:"<property>"}
/function pk_it_fi:settings/mode/strict/ignored_tags/list
Example - ignoring the repairCost
tag:
/function pk_it_fi:settings/mode/strict/ignored_tags/add {property:"repairCost"}
There is also a premade sample containing the most common tags usually wanted to be ignored: display
, Enchantments
, Damage
, and repairCost
. You can activate it using the command:
/function pk_it_fi:settings/mode/strict/ignored_tags/add_default_sample
Changing Transfer Cooldown
By default, item filters have a transfer cooldown of 4 ticks, making item transfer twice as fast as standard hoppers. It's recommended to keep this value for adequate item transfer from hoppers. However, if you want to change this value, you can set another value or get the current one using the following commands respectively:
/function pk_it_fi:settings/transfer_cooldown/get
/function pk_it_fi:settings/transfer_cooldown/set {value:<value>}
Example - setting item filter transfer cooldown to 1 tick:
/function pk_it_fi:settings/transfer_cooldown/set {value:1}
Note that transfer cooldown cannot be set lower than 1 tick.
Allowing Double Chests as Reference
You can allow item filters to search for reference items from double chests. By default, this feature is disabled as it's not always necessary and consumes almost twice the performance per check.
You can enable, disable, or get the current state of this setting using the following commands respectively:
/function pk_it_fi:settings/reference/allow_double_chest/true
/function pk_it_fi:settings/reference/allow_double_chest/false
/function pk_it_fi:settings/reference/allow_double_chest/get
🧰 Other Commands
Getting an Item Filter
If you're a server operator or cheats are enabled in your single-player world, you can get an item filter using the following commands:
(after V.3.1.0):
/function pk_it_fi:cmd/give/items_filter
(before V.3.1.0):
/function pk_it_fi:items/items_filter/give
Troubleshooting
Recreating All Item Filters from Database
If item filters were accidentally broken (for example, using the kill @e
command), you can run the following command to recreate all item filters from the database:
/function pk_it_fi:cmd/debug/recreate_all_items_filters
The process will automatically remove all remaining entities and blocks of broken item filters before placing fresh ones. All data (id, owner, filtering mode...) will be preserved.
The process may take some time, so make sure to receive the message about successful completion before interacting with or placing an item filter.
🔧 Update from V.2
You can convert all existing Hopper Sorters (from V.2) to Items Filters. To do this, do not uninstall V.2 in advance using the uninstallation process, as you need to keep its database.
Simply remove the V.2 datapack from your world's datapacks folder, update your world to a newer version of Minecraft if desired, and simultaneously install Items Filters V.3. Then use the following command to start the automatic update process:
(after V.3.1.1):
/function pk_it_fi:cmd/database/update_from_v2
(before V.3.1.1):
/function pk_it_fi:base/update/from_v2/start
And wait for the update process to complete.
Note that this process unfortunately will not preserve the filtering mode (lax or strict) of hopper sorters, as it wasn't previously stored in the database. However, they will retain all other data (their id, owner, and location).
🧹 Uninstallation
Items filters comes with an automatic uninstallation process. Running it will:
- Remove all item filters placed in your world, in all dimensions
- Remove all scores and storage specific to the Items Filter datapack
- If no more KawaMood datapacks are installed, also remove all common scores and storage
The uninstallation process may take several seconds. Make sure to wait for the message that you can safely remove the datapack from your world's folder before doing so.
The command to start the uninstallation process is:
/function pk_it_fi:base/uninstall/start
❓ Frequently Asked Questions
Do I need to install a resource pack?
No, this datapack does not require a resource pack. It uses display entities to render custom textures.
The block texture shows regular player heads, how can I fix this?
You need to be connected to the internet the first time you use a new type of filter. The textures of player heads used to create their appearance are indeed loaded and cached on the client side from (old or current) player skins stored on a Mojang server.
If you accidentally used content that required an internet connection the first time you used it, and now see regular player heads instead of the expected texture, you can still go to the ".minecraft/assets/skins/" folder, then sort subfolders by date and delete some recent folders. After that, if your game was already running, you will need to restart it to update the cached content.
⚠️ Exceptional issue in 1.20.2: Player heads may sometimes show default player skins (Steve & co.) rather than their actual texture even if the entire cache folder is cleared. This is a known issue of the game itself that struggles to load a texture depending on the signature value. This issue was fixed in 1.20.3.
🪠 Reporting an Issue
If you encounter an issue with this datapack, preferably join the Discord server and open a post in the dedicated #data-pack-issues channel to describe your problem. Please don't forget to provide all necessary information including:
- The Minecraft version you're using
- The version of the concerned datapack you're using
- Whether you're using any modified versions like Forge, Paper, or Spigot
- If so, the plugins or mods you're using that may alter datapack functioning
- The list of other datapacks you're using, if any
- A clear description of your issue and a way to reproduce it
- If necessary, a video or screenshot of the issue in the game
Before doing that, please read the FAQ section above. The issue you're facing may be common, and a way to fix it may already be provided there.