Current Version:
3.9 (Release)

What is it for?

This plugin allows players to store books, maps, and more into those once useless bookshelves - just like chests! It encourages players to write books and store them in shelves, and can build onto your economy with libraries and bookstores by using the built in Vault support. Unlimited bookshelves make rule walls a thing of the past; store rule books inside an unlimited shelf, and every player can have one! Book Shelves are opened like a chest, by right clicking on the shelf. This opens a chest-like inventory that only allows the storage of books, maps, records, and paper. The items are stored in an SQLite database, so no setup is required to use this plugin! MySQL support is optional. These are just a few of the many features of BookShelf.

What are the Features?

  • Store books, maps, records (music discs), and paper in bookshelves!
  • Right click on shelves to open a familiar chest-like inventory!
  • Configurable top/bottom access. Disable it, and hide the shelves in your floor!
  • Create unlimited shelves that give out infinite copies! - Great for rule books, libraries, newspapers, city maps, and more!
  • Create shop shelves that work with any Economy! (Using Vault)
  • Combine unlimited and shop shelves to create a shop that has unlimited copies! - Great for server stores!
  • Create a donation shelf type that allows the owner to add/remove books, while other players can only add books! Good for library submissions!
  • You can only store books, maps, paper, and records.
  • Items maintain their position in the shelf; none of that "auto-sorting" business.
  • Runs on SQLite - No setup!
  • Can be configured to use MySQL instead of SQLite!!
  • Configurable shelf sizes! (Rows of 9, Max 6 rows)
  • Configurable default shelf names!
  • Each shelf can be individually named - Great for naming library sections!
  • Configure what types of books can be put into shelves!
  • When the shelf is broken, books drop like a chest - nothing is lost!
  • Reloading does not break the plugin!!
  • Support for LWC!
  • Support for Towny!
  • Support for WorldEdit!
  • Support for WorldGuard!
  • Simple Permissions!
  • Easy-to-remember Commands!
  • Signs can be placed on shelves!
  • Enable/disable certain shelves, all shelves with the same name, or Enable/Disable all shelves by default!
  • Multiple players can access the same shelf at the same time!
  • Disable selling books/paper to villagers!
  • Allow books/maps/paper/etc to only be stored in shelves! (No chests!)
  • Shelves have ownership!! Ops are owners of every shelf.


Check out other videos by bizburns01 (Luigi_Vampa)!

Usage and FAQ

Click here to learn about the Config, Permissions, Commands, Economy, and read the FAQ!

Parlez-vous français?

Cliquez ici! (Merci, nefald!)

Last notes

Thanks to Deathmarine for his awesomeness and code samples he let me learn off of!

Thanks to all the awesome people who made videos about BookShelf!

Thanks to lvk and softvelvet for the donations!

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of luigi_vampa luigi_vampa Jun 28, 2015 at 01:21 UTC - 0 likes

    Hey. I've noticed an issue with the bookshelf. Place a piece of paper with lore on the shelf, type /bsu and the paper that comes off the shelf has no lore. That an issue you can fix? Thanks.

  • Avatar of madtomic madtomic May 13, 2015 at 11:17 UTC - 1 like

    Great plugin!


  • Avatar of xDizasterCYx xDizasterCYx Apr 26, 2015 at 20:46 UTC - 1 like

    add support for griefprevention pleasee

    Project "Ender's Infinty" coming soon and aims to be the best RPGMMO minecraft server.

    YouTube Channel

  • Avatar of LuckyRedPepper LuckyRedPepper Mar 29, 2015 at 02:39 UTC - 0 likes

    Someone pleeeeease update this!

  • Avatar of u7uu7u7 u7uu7u7 Mar 26, 2015 at 12:09 UTC - 0 likes

    awesome face
    1.8 Hardcore server Minecraft
    CraftBukkit version git-Spigot-4c7d0c0-96c2c39 (MC: 1.8.3) (Implementing API version 1.8.3-R0.1-SNAPSHOT)

  • Avatar of AncientTom AncientTom Mar 06, 2015 at 17:35 UTC - 0 likes

    Has anyone else had DataBase problems with BookShelf?
    My server will not run BookShelf configured for SQLite.
    While it does run very well using mySQL, I have to restart my server when the DB connection is automatically closed.

    I submitted tickets on these problems if anybody would care to take a look.
    Error with QSLite BookShop on server start.
    Problem with Bookshelf and mySQL on my server.

  • Avatar of AncientTom AncientTom Mar 04, 2015 at 00:05 UTC - 0 likes

    As an administrator of a server that hosts multiple Minecraft games, I'd like to suggest that when BookShelf initializes it's tables in the mySQL server, rather than using such generic names that could be stepped on by other plugins using the same database, that BookShelf prepend the table names to make them non-generic. Examples: bs_donate, bs_enable, bs_items, etc. Some plugins even give a setting like prefix: "bs_" in their batabase setup in their config.yml. This allows the game admin to set the desired prefix.

    For those who have there games on a hosting service, it might be hard or impossible for them to get multiple databases assigned to them.

    Last edited Mar 04, 2015 by AncientTom
  • Avatar of AncientTom AncientTom Mar 03, 2015 at 21:45 UTC - 0 likes

    What BookShelf commands can be run from the console?
    Is it possible to use commands from the console on a shelf using it's title?
    Example: /bsdonate <bookshelf_name>?
    I need to be able to set a bookshelf to donate once the player removes a book to keep him from removing another copy until he returns the copy he has to the shelf.

    After studying BookShelf's use of the mySQL database, I now realize that I can do all this through the database.

    Last edited Mar 04, 2015 by AncientTom
  • Avatar of DrkMatr1984 DrkMatr1984 Feb 27, 2015 at 06:18 UTC - 0 likes

    @datarat001: Go

    I am getting this error also. However, that's not the whole error homey.

    Caused by: java.lang.NullPointerException
    	at org.bukkit.craftbukkit.v1_8_R1.inventory.CraftMetaEnchantedBook.addStoredEnchant( ~[spigot-1.8.jar:git-Spigot-b73910a-726656b]
    	at me.MitchT.BookShelf.Shelves.ItemGenerator.generateEnchantedBook( ~[?:?]
    	at me.MitchT.BookShelf.Shelves.BookShelf.getInventory( ~[?:?]
    	at me.MitchT.BookShelf.Shelves.BookShelf.getInventory( ~[?:?]
    	at me.MitchT.BookShelf.BookListener.onClick( ~[?:?]
    	at sun.reflect.GeneratedMethodAccessor344.invoke(Unknown Source) ~[?:?]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke( ~[?:1.8.0_31]
    	at java.lang.reflect.Method.invoke( ~[?:1.8.0_31]
    	at$1.execute( ~[spigot-1.8.jar:git-Spigot-b73910a-726656b]
    	... 16 more

    It seems to be caused by Enchanted Books in specifically.

  • Avatar of lululombard lululombard Feb 17, 2015 at 15:12 UTC - 0 likes

    Duplication bug : if two players open the same bookshelf, both can take one item and duplicate.


Date created
Aug 07, 2012
Last update
Apr 26, 2015
Development stage
GNU General Public License version 2 (GPLv2)
Curse link
Recent files