A Minecraft plugin that allows players to create a centralized storage network.
- Create a network of chests to store your items.
- Access all your items from a single terminal.
- Trust other players to access your network.
- Track player deposits and withdrawals
- Wireless access to your network with a wireless terminal.
- Configurable Network Modes: Choose between individual player networks or a single, server-wide global network.
- Optional Trust System: Make networks publicly accessible, perfect for cooperative servers.
Use /ns or /ns help for the shared command help. /storage, /network, and /networkstorage use the same command surface; existing short aliases still work. Network actions such as /ns select, /ns list, and /ns create live alongside player actions. Administrative diagnostics and settings use /ns admin <command> (for example, /ns admin storage or /ns admin reload) and require admin permission.
/ns wand: Get the storage wand./ns info: View your network information./ns trust <player>: Trust a player to your network./ns untrust <player>: Untrust a player from your network./ns wireless: Get a wireless terminal.
- Use
/ns wandto get a storage wand. - Right-click with the wand to create a new network.
- Left-click on chests with the wand to add them to your network.
- Place a terminal to access all your items in one place.
In the config.yml, you can choose between two modes:
PLAYER(Default): Each player has their own private network. This is the classic behavior.GLOBAL: There is only one, single, massive network for the entire server. All players share this one network. Commands like/ns trustor/networkare disabled in this mode.
This option is only relevant in PLAYER mode:
true(Default): Only the owner and players they have added via/ns trustcan use a network.false: The trust system is completely disabled. Every player can use every network. Ideal for small, private servers where everyone works together.
Trust grants usage access through terminals, wireless terminals, and protected containers. It does not grant management access: only the owner or an admin can add, remove, break, rename, or delete network components. Physical storage chests remain normal Minecraft chests when protect-network-containers is disabled, so use your server's land-claim or block-protection plugin if needed.
wireless-terminal-durability controls how many networks a newly issued wireless terminal can open. Set wireless-terminal-break-on-zero: true to remove the terminal after its final use. The first click at the final use warns without opening; a second click opens the final session, and the terminal is removed when that session closes, including after a search. The default is false.
The terminal's Deposit inventory button previews a deposit and requires a separate confirmation within 15 seconds. It deposits only the 27 main inventory slots. Hotbar, armor, offhand, wireless terminals, and storage wands are excluded. Changing eligible inventory contents, closing the terminal, or using another control cancels confirmation. Items that do not fit remain in your inventory, and the terminal stays open.
Wireless terminals and storage wands are also protected from individual player deposits. If a terminal was deposited using an older build, obtain a replacement with /ns wireless (requires permission), or use a physical terminal to retrieve the stored items.
- Storage wands and wireless terminals must be created by this plugin. Items that only match the display name are rejected intentionally, because renamed legacy items cannot be distinguished from forged items.
- New network names are limited to 1-32 characters: letters, numbers, spaces, underscores, hyphens, and apostrophes.
NetworkStorage uses SQLite as its only runtime storage backend. On the first startup after upgrading, existing networks.yml and player-state.yml files are strictly validated and imported into a temporary database. The database is integrity-checked and atomically promoted before listeners or gameplay tasks start. The YAML files are retained as timestamped .pre-sqlite-* recovery copies and then archived as .migrated-*; a failed migration leaves the original files, a recoverable temporary database, and migration.lock, and the plugin stays disabled until the failure is inspected.
SQLite is configured for WAL mode, full synchronous durability, foreign-key enforcement, and a 5-second busy timeout. Keep networks.db and its backups on local storage; do not put the plugin data directory on NFS, SMB, or another network filesystem because SQLite WAL requires local shared-memory semantics.
The plugin creates three verified point-in-time SQLite backups by default (storage.backup-interval-hours). Backups use SQLite's online backup command and are checked before older copies are rotated. Before the first production rollout, stop the server and retain a complete copy of the plugin data directory.
- Display: The names of items in the terminal are always displayed in the language you have set in your Minecraft client (e.g., German, French, etc.).
- Search: The search function works with the internal, English material names (e.g.,
diamond,stone,iron_ingot) or with custom names you have given an item using an anvil. This means you must search in English, even if the items are displayed in your own language.
Found a bug or have a feature request? Just open an issue and I'll take a look.