> For the complete documentation index, see [llms.txt](https://esmp-fun.gitbook.io/plugins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://esmp-fun.gitbook.io/plugins/better-storage/using-it/hoppers.md).

# Hopper filters

A hopper with a filter only lets chosen items through, so you can sort a stream of items into the right chests with nothing but hoppers.

## Setting one up

**Right-click a hopper.** Its filter screen opens instead of the normal hopper screen. (If the server switched that off, sneak and right-click it with an empty hand.)

* **Shift-click an item** in your inventory to add it.
* **Left-click** an added item to match its whole group instead, like all logs. Click again for the next group it belongs to.
* **Right-click** it to remove it.

## The switches

| Switch                    | Off                                       | On                                                                 |
| ------------------------- | ----------------------------------------- | ------------------------------------------------------------------ |
| **Mode**                  | Block-list: everything except these items | Allow-list: only these items go through                            |
| **Match item data**       | Item type only                            | Name, description and damage must match too                        |
| **Match enchantments**    | Enchantments don't matter                 | Enchantments must match                                            |
| **Vacuum**                | Only takes items that fall in             | Pulls in matching items dropped nearby                             |
| **Destroy blocked items** | Blocked items stay where they are         | Blocked items are destroyed, including the ones in the chest above |

{% hint style="warning" %}
**Destroy blocked items is for operators** unless the server gives you `betterstorage.filter.void`. Destroyed items are gone for good.
{% endhint %}

## Vacuum hoppers

With **Vacuum** on, the hopper pulls in matching items lying on the ground in its chunk: fresh drops from mobs and broken blocks straight away, and older ones every couple of seconds.

It never picks up the items a player drops when they die, and never takes items from inside somebody else's claim.

The server decides how far it reaches. By default that is the hopper's own chunk; see **collection** in [Settings](/plugins/better-storage/reference/settings.md).

## One hopper, many chests

A hopper that feeds a chest can fill a whole row of sorted chests. As soon as any chest in that chunk has a job, a filter or a fill order, each item the hopper passes on goes to the chest that asks for it, in the same order Quick Dump uses.

Example: one hopper under a farm feeds a chest. Next to it sit a chest with a filter for potatoes, one for carrots and one for wheat. Every crop lands in its own chest, with no extra hoppers.

* Chests in other chunks don't count, so keep the row inside one chunk (**F3 + G** shows the borders).
* A hopper feeding an upgraded chest or a Keepsakes chest only ever fills that chest.
* Changing a chest's job or filter can take a few seconds to reach the hoppers.
* In a chunk where no chest has a job, filter or fill order, hoppers work exactly like vanilla. The server can turn this off with `routing.hoppers`.
