{"id":138823,"date":"2026-06-08T08:13:10","date_gmt":"2026-06-08T05:13:10","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/"},"modified":"2026-06-08T08:13:10","modified_gmt":"2026-06-08T05:13:10","slug":"shopshelves","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/","title":{"rendered":"ShopShelves"},"content":{"rendered":"<p>## **ShopShelves &#8211; Admin Shops &#038; Player-Owned Shops**<\/p>\n<p>The Plugin version can be read about at the SpigotMc page.<\/p>\n<p>Client side mod that improves the shopping experience!! WIITS<\/p>\n<p>![t](https:\/\/cdn.modrinth.com\/data\/cached_images\/6ab7dcddfe1bfb9c4a887b5e14286460def36553.png)<\/p>\n<p>**ShopShelves** transforms the new **Shelf Block** (added in Minecraft 1.21.9) into flexible, server-friendly shops! This powerful server-side Fabric mod for Minecraft 1.21.9 allows administrators to create permanent, fixed-price shops and gives players the ability to set up their own chest-linked &#8220;Player Shelves&#8221; with custom prices, all powered by a configurable in-game economy.<\/p>\n<p>## **Pictures explained:**<br \/>\n**The Following pictures depict the ingame shelf blocks in order:**<\/p>\n<p>Buy Shop | Sell Shop | Buy &#038; Sell Shop | Custom Label | Player Shop<\/p>\n<p>Statistics Book \u2192 Shows the total money earned \/ lost per slot&#8217;s item.<\/p>\n<p>Custom Price GUI \u2014 shift right-click a shelf to set custom prices per slot.<\/p>\n<p>Customer-friendly viewer GUI to inspect the full item (potions, enchantments, etc.)<\/p>\n<p>![](https:\/\/cdn.modrinth.com\/data\/cached_images\/83a240115fead92b975226afaf59fe04a67db4f7.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/9df090184f943a215c4f37aeb29ebc16004e3541.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/7d4590fade322af89adc0bc33433753478a83b8e.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/d6053d9ba1e151e817e1ef34b38ddac71536f4ff.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/5b900c7efd15ee4486c259ddec6b35884b031133.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/c749b5e1a5b65d6b7b6580b8e4ce2ab48364ee94.png)<br \/>\n![](https:\/\/cdn.modrinth.com\/data\/cached_images\/0297e0bfd121848d1cdf95696bd053791d5f6502.png) ![](https:\/\/cdn.modrinth.com\/data\/cached_images\/548c52e95efe815d7bead14c444ac081081da06c.png)<\/p>\n<details>\n<summary>\ud83d\udce7 Contact Me &#038; Support Information<\/summary>\n<p>### \ud83d\udcac Primary Support Channel (Preferred)<\/p>\n<p>**All general questions, feature requests, and non-urgent bug reports should be posted in the appropriate channels on our Discord Server.** We actively monitor the server and will respond as soon as possible. This ensures that the whole community can benefit from the discussion and solutions.<\/p>\n<p>### \ud83c\udd98 Urgent Private Messaging (PM) Policy<\/p>\n<p>While we prefer all issues to be handled via the Discord server first, you are welcome to PM me directly under **specific urgent circumstances**:<\/p>\n<p>* **Allowed Reason:** Your server is **crashing** or experiencing **critical, game-breaking errors** directly related to one of my mods\/plugins.<br \/>\n* **Requirement:** You must be the **owner** of the server.<br \/>\n* **Time Zone:** I am operating in the **(CET\/CEST) Time Zone**.<br \/>\n* **PM Hours:** Please only send private messages between **10:00 AM and 10:00 PM (Brussels Time)**.<\/p>\n<p>I will endeavor to answer your PM as soon as I can to be helpful and see what I can do to resolve your urgent issue. However, please understand that immediate responses are not guaranteed, and **private messaging is a professional courtesy, not an entitlement.** Thank you for your understanding and cooperation!<\/p>\n<\/details>\n<p>&#8212;<\/p>\n<details>\n<summary>\ud83d\udee0\ufe0f API Integration Guide: The ShopshelvesApi<\/summary>\n<p>For mod developers, **ShopShelves** exposes shop shelf functions via the `ShopshelvesApi` class.<\/p>\n<p>&#8220;`java<br \/>\npackage me.andy.shopshelves.api;<\/p>\n<p>import me.andy.shopshelves.logic.ShopHelper;<br \/>\nimport me.andy.shopshelves.util.ShopShelf;<br \/>\nimport net.minecraft.block.entity.BlockEntity;<br \/>\nimport net.minecraft.block.entity.ShelfBlockEntity;<br \/>\nimport org.jetbrains.annotations.Nullable;<\/p>\n<p>import java.util.Optional;<br \/>\nimport java.util.UUID;<\/p>\n<p>\/**<br \/>\n * Public API for the ShopShelves mod.<br \/>\n * Other mods should use this class to safely check and interact with ShopShelves entities.<br \/>\n *\/<br \/>\npublic final class ShopshelvesApi {<\/p>\n<p>    private static final ShopshelvesApi INSTANCE = new ShopshelvesApi();<\/p>\n<p>    private ShopshelvesApi() {}<\/p>\n<p>    public static ShopshelvesApi getInstance() {<br \/>\n        return INSTANCE;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Checks if a given BlockEntity is an active ShopShelf (any mode other than NONE).<br \/>\n     *\/<br \/>\n    public boolean isShopShelf(@Nullable BlockEntity blockEntity) {<br \/>\n        if (!(blockEntity instanceof ShelfBlockEntity) || !(blockEntity instanceof ShopShelf shopShelf)) {<br \/>\n            return false;<br \/>\n        }<br \/>\n        return shopShelf.getShopMode() != ShopHelper.ShopMode.NONE;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Gets the current shop mode for a BlockEntity, if it is an active ShopShelf.<br \/>\n     *\/<br \/>\n    public Optional<ShopHelper.ShopMode> getShopMode(@Nullable BlockEntity blockEntity) {<br \/>\n        if (blockEntity instanceof ShopShelf shopShelf &#038;&#038; isShopShelf(blockEntity)) {<br \/>\n            return Optional.of(shopShelf.getShopMode());<br \/>\n        }<br \/>\n        return Optional.empty();<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Gets the UUID of the owner of the shop, if it is an active ShopShelf.<br \/>\n     *\/<br \/>\n    public Optional<UUID> getShopOwner(@Nullable BlockEntity blockEntity) {<br \/>\n        if (blockEntity instanceof ShopShelf shopShelf &#038;&#038; isShopShelf(blockEntity)) {<br \/>\n            return shopShelf.getOwner();<br \/>\n        }<br \/>\n        return Optional.empty();<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<\/details>\n<p>![](https:\/\/modrinth.com\/mod\/ecobal) **Required Mod: EcoBal Economy API**<\/p>\n<p>&#8212;<\/p>\n<p>## Features<\/p>\n<p>### Robust Shop Types<br \/>\n* **Admin Shops (Buy \/ Sell \/ Dual):** Admins can set up persistent shops using the Shelf Block for **buying**, **selling**, or **dual** trade. Admin shops are never restricted by the world allowlist and cannot be broken from the front face&#8217;s item slots.<br \/>\n* **Player Shops (PlayerShelves):** Players can create their own shops by **Sneaking + Placing** a Shelf Block against a chest, barrel, or copper chest.<br \/>\n    * Automatically links to the container, including **double chests**, for stock management.<br \/>\n    * Supports **custom prices** set per slot via the in-game Price GUI (shift right-click the shelf).<br \/>\n    * Configurable **single-type mode**: lock a player shop to one item type across all three slots with a shared price, or allow each slot to hold a different item independently.<br \/>\n    * Limits player shop creation based on **permission nodes** and a configurable **default limit**.<br \/>\n    * When the linked container is broken, the player shelf automatically resets to a plain vanilla shelf \u2014 no leftover floating text or stale data.<\/p>\n<p>### Custom Shop Labels<br \/>\n* Shop owners and admins can set a **custom floating label** on any shelf via the Price GUI.<br \/>\n* Labels support **legacy color codes** (`&#038;c`, `&#038;l`, etc.), **hex color codes** (`&#038;#RRGGBB`), and a **newline marker** (`n` or `&#038;n`) to split the label across two lines.<br \/>\n* Surrounding spaces around `n` \/ `&#038;n` are stripped automatically.<br \/>\n* The **length limit** (`label_max_length` in `config.yml`, default 64) counts only visible characters \u2014 color codes and the newline marker are ignored entirely.<br \/>\n* **Bracket formatting** for both admin and player shelf labels is fully configurable per type in `messages.yml`, including open\/close bracket text, color, and a `brackets_per_line` toggle:<br \/>\n    * `true` (default) \u2014 brackets wrap every line.<br \/>\n    * `false` \u2014 opening bracket on the first line only, closing bracket on the last line only.<br \/>\n* Right-click the label button in the Price GUI to **clear the label instantly**, without closing the GUI.<\/p>\n<p>### Dynamic Item Pricing<br \/>\n* **Global Pricing (`pricing.yml`):** Set default **buy** and **sell** prices for items, including data-rich items like **potions**, **enchanted books**, **goat horns**, and **player heads**.<br \/>\n* **Custom Price Stamps:** Use the `\/shops price` command to apply a one-time price stamp to a held item. That item can then configure a PlayerShelf or set custom slot prices on Admin Shops.<br \/>\n* **Flexible Pricing Ratios:** Define prices based on quantity (e.g., $10 for 64 dirt) using the `amount` argument; the shop calculates the correct unit price per transaction.<br \/>\n* **In-GUI Price Editing:** Shift right-click any shelf to open the Price GUI and adjust buy\/sell prices with increment\/decrement buttons or by typing an exact value in chat.<br \/>\n* **Price Reset:** Reset any slot&#8217;s custom price back to config defaults from within the Price GUI. In single-type mode, resetting clears all three slots at once with a clean, slot-agnostic confirmation message.<\/p>\n<p>### Statistics Book<br \/>\n* Open the **Stats Book** from the viewer GUI or the price GUI to see a full breakdown of **total money earned and lost** per slot for both Admin Shops and Player Shelves.<br \/>\n* Profit and loss are tracked separately per slot and persist through server restarts.<\/p>\n<p>### Advanced Text Display &#038; Aesthetics<br \/>\n* **Dynamic Floating Text:** Shop information is displayed using **Minecraft Text Display Entities**, which automatically update when stock changes, prices are modified, or a shop goes &#8220;Out of Order.&#8221;<br \/>\n* **Customizable Scaling:** Configure the scale of the main mode display, amount display, and price display independently (values 1\u201310).<br \/>\n* **Range Control:** Independently set the **render distance** (in blocks) for the main shop display and the price display.<br \/>\n* **Two Price Display Modes:**<br \/>\n    * **`TRIPLEPRICE`:** Shows the price per slot \u2014 ideal for multi-item Admin Shops.<br \/>\n    * **`SINGLEPRICE`:** Shows one merged price for the shelf \u2014 forced for Player Shelves.<br \/>\n* **Rich Text Formatting:** All display text and chat messages support legacy color codes and hex color codes throughout.<br \/>\n* **Item Language:** Localize item names in displays using any Minecraft locale (`en_us`, `de_de`, `fr_fr`, etc.), fetched asynchronously from GitHub on startup.<\/p>\n<p>### Shop Management &#038; Protection<br \/>\n* **Player Shop Limits:** Restrict the number of PlayerShelves a player can create using permission nodes (e.g., `shopshelves.playershelves.5` for a limit of 5) or grant unlimited creation.<br \/>\n* **World Allowlist:** Restrict player shop creation to specific worlds. Admin shops are never affected by this list.<br \/>\n* **Admin Mode:** Operators enter a special &#8220;Admin Mode&#8221; (`\/shops admin`) to bypass all shop protections and quickly configure shops.<br \/>\n* **Break Protection:** The front-face item slots of both Admin Shops and Player Shelves cannot be broken by clicking within the 8\u00d716 pixel slot area \u2014 owners and admins must target the top or bottom band of the shelf face to break it.<br \/>\n* **Container Protection:** Linked containers are protected from non-owners and cannot be broken while linked to a PlayerShelf.<br \/>\n* **Explosion Immunity:** Shop shelves and their linked containers are immune to TNT, creepers, fireballs, and wither explosions.<br \/>\n* **Config Auto-Migration:** On every startup, both `config.yml` and `messages.yml` are automatically updated to add any new keys introduced in an update \u2014 old config files are never broken or reset.<br \/>\n* **Config Reload:** Use `\/shops reload` to refresh all settings, prices, and messages without a server restart.<br \/>\n* **Full Update:** Use `\/shops update` to re-render all floating text displays across all worlds.<\/p>\n<p>&#8212;<\/p>\n<p>## Commands<\/p>\n<p>* `\/shops`, `\/shopshelves` \u2014 Displays the main help page with clickable commands.<br \/>\n* `\/shops admin` \u2014 Toggles admin mode to bypass shop protection and configure shops.<br \/>\n* `\/shops reload` \u2014 Reloads `config.yml`, `pricing.yml`, and `messages.yml`.<br \/>\n* `\/shops update` \u2014 Forces a re-render of all floating text displays.<br \/>\n* `\/shops mode [mode_name]` \u2014 Views or sets the **Message Delivery Mode** (`CHAT` | `ACTIONBAR` | `BOTH`) or **Price Display Mode** (`SINGLEPRICE` | `TRIPLEPRICE`).<\/p>\n<p>### Global Pricing Commands (Requires `shopshelves.itemprice`):<br \/>\n* `\/shops itemprice` \u2014 Shows the current global price settings for the held item.<br \/>\n* `\/shops itemprice <price> <type> <amount>` \u2014 Sets the global price for the held item.<br \/>\n    * `<type>`: `buy`, `sell`, or `both`<br \/>\n    * `<amount>`: The quantity the price applies to (e.g., `64`)<\/p>\n<p>### Custom Price Stamp Command (Requires `shopshelves.price`):<br \/>\n* `\/shops price <price> <type> <amount>` \u2014 Creates or modifies a one-time price stamp on the held item.<br \/>\n    * Note: Only one stamped item is allowed in a player&#8217;s inventory at a time.<\/p>\n<p>&#8212;<\/p>\n<p>## Permissions<\/p>\n<details>\n<summary>Click to view all permission nodes and their descriptions<\/summary>\n<p>* `shopshelves.command` \u2014 Access to the base `\/shops` help command. *(Default: all players)*<br \/>\n* `shopshelves.admin` \u2014 Usage of `\/shops admin` mode. *(OP Level 2)*<br \/>\n* `shopshelves.reload` \u2014 Usage of `\/shops reload`. *(OP Level 2)*<br \/>\n* `shopshelves.update` \u2014 Usage of `\/shops update`. *(OP Level 4)*<br \/>\n* `shopshelves.mode` \u2014 Usage of `\/shops mode`. *(OP Level 4)*<br \/>\n* `shopshelves.itemprice` \u2014 Usage of `\/shops itemprice` to manage global pricing. *(OP Level 2)*<br \/>\n* `shopshelves.price` \u2014 Usage of `\/shops price` to create custom price stamps. *(OP Level 2)*<br \/>\n* `shopshelves.playershelf` \u2014 Allows a player to create PlayerShelves. *(OP Level 0 by default)*<br \/>\n* `shopshelves.playershelves.unlimited` \u2014 Grants unlimited PlayerShelf creation. *(OP Level 4)*<br \/>\n* `shopshelves.playershelves.<number>` \u2014 Sets the maximum number of PlayerShelves a player can own (e.g., `shopshelves.playershelves.10` for a limit of 10). *(OP Level 2)*<br \/>\n* `shopshelves.setlabel` \u2014 Allows setting a custom label on a shop. *(OP Level 2)*<br \/>\n* `shopshelves.setlabel.color` \u2014 Allows using color codes and hex colors in custom labels. *(OP Level 4)*<\/p>\n<\/details>\n<p>&#8212;<\/p>\n<p>## Modpack Policy<\/p>\n<p>* You **ARE PERMITTED** to include ShopShelves in any modpack.<br \/>\n* Credit is appreciated but not strictly required.<br \/>\n* Please do not modify the mod&#8217;s JAR file directly.<br \/>\n* The modpack itself, or access to this mod within the modpack, **must not be sold**.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>New advanced way of admin shops and playershops. ShopShelves and PlayerShelves<\/p>\n","protected":false},"featured_media":138824,"template":"","meta":{"_minecraft_slug":"shopshelves","_minecraft_project_id":"SmwrUlZx","_minecraft_author":"official.andy","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":2661,"_minecraft_follows":23,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"shopshelves.zip","_minecraft_size_bytes":3308284,"_minecraft_version_count":19,"_minecraft_updated_at":"2026-05-15T18:13:22.540866Z","_minecraft_date_created":"2025-10-19T07:18:02.323572Z","_minecraft_date_modified":"2026-05-01T06:08:23.335455Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/shopshelves","_minecraft_icon_attachment_id":138824,"_minecraft_imported_at":"2026-06-08T05:13:13+00:00","_minecraft_import_hash":"ba67624493b0b6e5bd67eba885bdafc7","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,844,97,89,126,90,127,128,129,123],"mod_loader":[130,99,132,133,134],"minecraft_version":[40,41,82,83,167,163],"class_list":["post-138823","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-economy","mod_category-fabric","mod_category-game-mechanics","mod_category-management","mod_category-optimization","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-technology","mod_loader-bukkit","mod_loader-fabric","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ShopShelves - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ShopShelves - Minecraft\" \/>\n<meta property=\"og:description\" content=\"New advanced way of admin shops and playershops. ShopShelves and PlayerShelves\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/\",\"name\":\"ShopShelves - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp\",\"datePublished\":\"2026-06-08T05:13:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/shopshelves\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"ShopShelves\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ShopShelves - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/","og_locale":"en_US","og_type":"article","og_title":"ShopShelves - Minecraft","og_description":"New advanced way of admin shops and playershops. ShopShelves and PlayerShelves","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/","name":"ShopShelves - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp","datePublished":"2026-06-08T05:13:10+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/shopshelves-icon-44e8eb67d4e788cb4a05f372148e55b9cb6cee44_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/shopshelves\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"ShopShelves"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/138823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/138824"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=138823"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=138823"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=138823"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=138823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}