Wyvern
A centralized storage management system for Minecraft. Basically Dragon, rewritten for sanity and improved networking/error handling. Requires Plethora Peripherals by SquidDev (as that's what allows item transfer by wired network).
Goals
- Support big, multi-user setups.
 - Work sanely and reliably even in bizarre edge cases.
 - Be pretty fast.
 - Function conveniently for end users.
 - Be relatively easy to connect other systems to.
 - Allow complex automation.
 
Setup
installer.lua is recommended for running everything.
Get it with wget https://osmarks.tk/git/osmarks/wyvern/raw/branch/master/installer.lua.
Run installer install to download everything. It will open an editor for the config file, allowing setup of a node.
When prompted for a program to run on startup, say client to configure it as a client or backend-chests to run the chest backend.
If you just want to update Wyvern, run installer update.
Networking & Hardware
Chests ───────┐
   │          │
Server ─── Buffer
   │          │
   └────┬─────┘
        │
        ├────────── Processing (not implemented yet)
        │
        │
   ┌────┴──┬───────┐
Client  Client  Client
- Chests is a set of chests and/or shulker boxes, connected via networking cables and modems, to the Server and Buffer. Cookie jars are not compatible.
 - Buffer is a dropper with a wired connection on the chests' side and clients' side.
 - Server is a computer running 
backend-chests. Other backends may eventually become available. It must be connected to the chests, clients, and both sides of the buffers. - Client is a crafty turtle running 
client. It must be connected to the server and external side of the buffers. - Processing will be used for autocrafting systems. It is not yet implemented.
 
Configuration
Configuration is stored in wyvern_config.tbl in lua table syntax as used by textutils.(un)serialise.
Client
network_name must contain the network name (thing displayed when modem beside it is rightclicked) of the client turtle.
Server
buffer_internal must contain the network name of the buffer on the chest side.
buffer_external must contain the network name of the buffer on the client side.
modem_internal can contain the network name of the server on the chest side. This is only required if your network contains chests on the client side which are connected.
Warnings
- Inserting/extracting items manually into/out of chests will result in the index being desynchronised with the actual items. To correct the index, run 
reindexin the CLI client. - If you try and extract items when the storage server is still starting up, it may fail, as not all chests will have been indexed yet.
 - There are currently small problems with extracting certain quantities of items from storage. Yes, it should probably be by stack.
 - Yes, I am kind of using git wrong, but editing networked CC programs sanely is very hard. Tell me if you find a better solution.
 
Usage
Once configured, the chest backend can just be plugged in and ignored, unless it explodes.
For help using the client, run help or h.
Coming Soon(ish) (maybe)
- Audit log on server - see when items were moved.
 - Overlay glasses/introspection module client.
 - Autocrafting (just a port from Dragon's).
 - Autosmelting (basically autocrafting).