
Barrel PC

Barrel PC turns vanilla barrels into tiered storage you can actually live with — bigger inventories, paginated menus, portable storage drives, hopper automation with per-barrel import and export rules, purchasable per-barrel upgrades (extra slots, disguise, hopper I/O, break-into-drives, shulker-style persistence), and shaped upgrade recipes, all on Paper 26.2 without asking players to install a resource pack.
Each tier is a real barrel block dressed up with display-entity overlays: metal trim, tier-colored bands, and a front-facing PC terminal (bezel, screen, LEDs, keyboard). Break and place behaviour stays familiar; the magic is in the menus and persistence behind the block.
Installation
- Server: Paper 26.2 (or a fork targeting API
26.2).
- Download the latest barrel-pc
- Drop the JAR into your server’s
plugins/ folder.
- Start or restart the server once so Barrel PC creates its data folder.
- Optional but recommended on Shirecraft-style networks: install Compressy and/or Alloys if you use compressed items or astral ingots — Barrel PC integrates with the shared catalog identity used by Compressy and ShireSell for precise item matching on hopper export filters.
Data folder: plugins/barrel-pc/
Player data: plugins/barrel-pc/barrels.db (SQLite — inventories, upgrade progress, and per-barrel settings)
Config: plugins/barrel-pc/config.yml (missing keys merge from jar defaults on startup)
No client mod, no resource pack, no datapack required for core gameplay.
Quick start (players)
- Craft or receive an Iron Barrel (surround a vanilla barrel with iron blocks — see recipe guide).
- Place the barrel item like a normal block; right-click to open paginated storage.
- Use the control bar at the bottom: previous/next page, search, configure.
- Open Configure (comparator) for hopper import/export rules, access control, and Upgrades (when enabled on the tier).
- Open Storage Drives from the control bar (music disc icon) to export barrel stacks into drives or import from a placed drive.
- Run
/barrel-pc or /bpc anytime for the home menu and recipe guide.
Tip: Shift-click items from your inventory into the barrel — it works across pages.
Quick start (admins)
/barrelpc give iron <player> 1
/barrelpc reload
Tab-complete lists every tier id defined under barrels: in config.yml (defaults: iron, gold, diamond, netherite, astral).
Tiers
Craft your way up the ladder, or let admins hand out tiers with /barrelpc give.
| Tier |
Default capacity |
Upgrade cap (bonus slots) |
Notes |
| Iron Barrel |
72 slots |
144 |
Entry tier — surround a barrel with iron blocks; hopper I/O and storing drives inside require upgrades |
| Gold Barrel |
108 slots |
108 |
Upgrade from iron; same hopper/drive-storage rules as iron |
| Diamond Barrel |
144 slots |
288 |
Upgrade from gold; hopper I/O built in; cannot store physical drive items inside |
| Netherite Barrel |
216 slots |
432 |
Upgrade from diamond; hopper I/O built in; can store storage drives in the barrel inventory |
| Astral Computer |
432 slots |
486 |
Top tier; front terminal; break-into-drives built in; can store drives; expandable via upgrades |
Default slot counts, per-tier flags (hopper-io-enabled, store-drives-enabled, break-into-drives), recipes, drive behaviour, display materials, upgrade costs, and messages are fully configurable in config.yml. Reload with /barrelpc reload.
Custom tiers: add any new key under barrels: — set slots, page-slots, recipes, and optional display: material mappings. Built-in palettes apply when display is omitted; use display.extends: iron (or any tier id) to inherit and override individual parts.
Features
Paginated storage menus
Large barrels open in pages so the GUI stays readable. Set exact slots per tier; partial last rows show blocked panes automatically. Navigate with the control bar (soul torch = previous page, redstone torch = next page, redstone repeater = sort, hopper = hopper I/O status, spyglass = search, music disc = storage drives, comparator = configure). Shift-click works across pages.

Item search
Search inside a barrel from the menu — click the spyglass, type in the anvil search prompt, and jump straight to matching stacks (fuzzy name / namespace search).

Storage drives
Export barrel contents into storage drives — physical items that look like music discs (default: C418 — 13; pick another disc during export when enabled). Drives are soulbound to the player who created them. Grant export access to trusted players when you want shared logistics without handing over the whole barrel.
Export flow (default): select stacks → confirm → optional name (anvil) → optional disc icon picker → drives drop with rich lore (label, group, contents summary, export time, enscribed notes, access list). Toggle name/disc prompts per tier or globally in storage-drives:.
Import: place a drive in the import slot, choose stacks, import into the barrel. Inspect opens a read-only view without removing items.
Tier rules: lower tiers cannot keep physical drive items in barrel storage unless store-drives-enabled is on (netherite+ by default). Attempting to insert a drive where it is forbidden shows a chat message. Storage drives cannot be played in jukeboxes.
Break behaviour: with the Break Into Drives upgrade (or astral’s built-in flag), breaking a barrel can pack contents into soulbound drives instead of scattering items. Shulker Persistence (upgrade) packs covered slots into the barrel item on break; add bonus slots later and pay a proportional maintenance top-up to extend coverage.




Hopper automation
Hoppers can insert into and pull from Barrel PC storage across all backing slots — the full tier capacity (plus purchased bonus slots), not just the first GUI page. Items route into the plugin’s real backing inventory, not a shallow vanilla barrel cache. Hoppers scan slot order 0 → n (same linear array as pagination), so deeper pages are reachable once earlier slots empty out — like a large chest.
On iron and gold, hopper connections are locked until the Hopper I/O upgrade is purchased (or use a tier with hopper-io-enabled: true). Diamond, netherite, and astral include hopper I/O by default.
Open barrel GUIs refresh live while hoppers move items in or out — no need to close and reopen to see updates.
Hopper export filter (per barrel, Configure → Hopper Export):
| Mode |
Behaviour |
| Allow all |
Default — hoppers withdraw like a vanilla barrel |
| Allow list only |
Hoppers may withdraw only listed item types |
| Deny list |
Hoppers withdraw everything except listed types |
Hopper import filter (per barrel, Configure → Hopper Import):
| Mode |
Behaviour |
| Allow all |
Default — hoppers insert like a vanilla barrel |
| Allow list only |
Hoppers may insert only listed item types |
| Deny list |
Hoppers insert everything except listed types (block junk) |
Filter entries on both import and export use full catalog identity — the same resolution path as Compressy and ShireSell (minecraft:cobblestone, fingerprinted custom items, structured plugin ids). Add items by:
- Browse items — pick from contents in the barrel or from the vanilla + market catalog list
- Add held item — add whatever you are holding in your main hand
Storage drives cannot be inserted by hoppers. Inserts still respect normal stacking and barrel capacity.
Per-barrel access
Restrict who can open a barrel or use its drives. Lock the barrel and manage an allow-list from Configure → Access Control. Toggle break protection (only owner + allowed players may break). After purchasing Block Disguise, hide the PC overlays and show the tier’s disguise-block material instead. Drive export can inherit barrel access or use a custom list.








In-game recipe guide
Run /barrel-pc or /bpc for the home menu, or /barrel-pc recipes for the guide directly. The guide shows shaped upgrade recipes and unlock progress. Recipes also register with the vanilla recipe book when criteria are met.
Iron

Gold

Diamond

Netherite

Astral

Tier upgrades (Configure → Upgrades)
Every default tier has upgrades-enabled: true and the same five upgrade tracks in the hub (active upgrades show an enchant glint). Astral slot expansion uses the +1 Storage Slot track up to that tier’s upgrade-max-slots.
| Track |
What it does |
| +1 Storage Slot |
Repeatable — raises capacity up to upgrade-max-slots for that tier |
| Block Disguise |
Unlock disguise toggle in Access Control |
| Break Into Drives |
Pack barrel contents into soulbound drives when the block is broken |
| Hopper I/O |
Enable hopper import/export on tiers that do not include it by default |
| Shulker Persistence |
Pack covered slots into the barrel item on break; maintenance top-up when capacity grows |
Deposit configured payment items (astral ingots, blocks, Compressy/ShireSell catalog ids, etc.) on each track’s screen. The deposit UI lists every accepted item with human-readable names and per-item progress share. Costs use shared templates in config.yml (upgrade-cost-templates) with per-tier overrides.
Default upgrade economy (1.1.35+ defaults; values are configurable):
| Track |
Payment total |
Astral ingot |
Other accepted items |
| +1 Storage Slot |
100 |
200% per ingot — one ingot completes one slot payment when Alloys is present |
Netherite, diamond, gold, iron, copper blocks at proportional rates |
| Block Disguise |
150 |
50% per ingot (optional shortcut, not a one-item unlock) |
Diamond, gold, iron, copper blocks |
| Break Into Drives |
250 |
40% per ingot |
Netherite, diamond, gold blocks |
| Hopper I/O |
125 |
40% per ingot |
Iron, copper, gold, diamond blocks |
| Shulker Persistence |
100 |
Not accepted |
~64 netherite blocks for initial unlock (or diamond/gold/iron grind); maintenance top-up scales with uncovered bonus slots |
The 200% astral shortcut applies only to +1 Storage Slot. Other tracks use standard economy pricing where astral is a premium option and block payments are the intended grind. Shulker Persistence is netherite-heavy by design.
Existing server configs merge missing payment items from jar defaults on startup/reload — if an upgrade screen shows only one accepted item, reload after updating the plugin.
The astral tier still supports the largest slot ceiling (486 by default) when Alloys is present for astral-ingot recipe tokens and slot-upgrade payments. Without Alloys, astral recipes that need astral ingots are disabled gracefully.

Commands
| Command |
Permission |
Description |
/barrel-pc |
barrelpc.use |
Home menu |
/barrel-pc recipes |
barrelpc.use |
Recipe guide (alias: guide) |
/barrelpc reload |
barrelpc.admin.reload |
Reload config |
/barrelpc give <tier> [player] [amount] |
barrelpc.admin.give |
Give barrel items |
Aliases: /bpc, /barrels, /barrelpc
Permissions
| Permission |
Default |
Purpose |
barrelpc.use |
true |
Place and open barrels; home menu |
barrelpc.craft |
true |
Craft barrel PC tiers via registered recipes |
barrelpc.admin.reload |
op |
Reload configuration |
barrelpc.admin.give |
op |
Give barrel items |
barrelpc.admin |
op |
All admin permissions |
barrelpc.* |
op |
Everything |
Requirements
- Paper 26.2 (or compatible fork targeting API
26.2)
- Java 25 toolchain for building from source
- Alloys (optional) — astral ingots and astral slot upgrades
- Compressy (optional) — shared custom-item catalog identity for hopper import and export filters on compressed / fingerprinted items
No client mod or resource pack is required for core gameplay.
Configuration
Data folder: plugins/barrel-pc/
On first run the plugin writes config.yml with:
- Per-tier
slots, page-slots, and upgrade-max-slots (exact slot counts; partial rows auto-blocked in the GUI)
- Per-tier
display: material mappings for block-display overlays (body hoops + front terminal)
- Shaped recipes and display names
kind: astral_computer for upgradeable astral tiers
upgrade-types + upgrade-cost-templates + per-tier upgrades: blocks (bonus slot, disguise, break into drives, hopper I/O, shulker)
- Storage drive limits and export UX (
storage-drives.max-slots-per-drive, export-prompt-name, export-prompt-disc, default-disc)
- Per-tier drives enabled, hopper-io-enabled, store-drives-enabled, break-into-drives, and drive export inherit access
- Alloys integration knobs for astral upgrade cost and max slots
- Customizable messages (new keys merge from jar defaults on startup)
Example custom tier snippet:
barrels:
copper:
display-name: "&6Copper Barrel"
slots: 37
page-slots: 45
display:
extends: iron
body:
band: COPPER_BLOCK
corner: CUT_COPPER
terminal:
trim: COPPER_BLOCK
activity-led: ORANGE_CONCRETE
Per-barrel settings (stored in barrels.db per placed block):
- Owner, lock, break protection, allowed players
- Disguise unlocked / enabled
- Upgrade progress and unlock flags (bonus slots, disguise, break into drives, hopper I/O, shulker coverage)
- Hopper export mode (
open / allow / deny) and export filter item list (catalog ids)
- Hopper import mode (
open / allow / deny) and import filter item list (catalog ids)
Reload after config edits: /barrelpc reload