{"id":113554,"date":"2026-06-06T19:29:44","date_gmt":"2026-06-06T16:29:44","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/"},"modified":"2026-06-06T19:29:44","modified_gmt":"2026-06-06T16:29:44","slug":"normalshops","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/","title":{"rendered":"NormalShops"},"content":{"rendered":"<p># NormalShops \u2014 Player &#038; admin guide<\/p>\n<p>### In-world shop (storefront)<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"400\" alt=\"Outside view of a NormalShops storefront\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/shop.png\" \/>\n<\/p>\n<p>### Villager Menus used as trading<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"400\" alt=\"Outside view of a NormalShops storefront\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/refs\/heads\/main\/imgs\/trade1.png\" \/>\n<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"400\" alt=\"Outside view of a NormalShops storefront\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/refs\/heads\/main\/imgs\/trade2.png\" \/>\n<\/p>\n<p>*Custom display: item showcase, glass\/base blocks, and optional sale-style floating text.*<\/p>\n<p>### `\/shops` \u2014 public shop browser<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"560\" alt=\"Minecraft GUI for the \/shops command\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/shops-command.webp\" \/>\n<\/p>\n<p>*Paginated list of in-stock shops; click entries to teleport (when enabled).*<\/p>\n<p>### GUI overview (main menus)<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"720\" alt=\"Collage of NormalShops GUI menus\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/gui-overview.webp\" \/>\n<\/p>\n<p>*Create\/change listing, owner panel, access chooser, buy flow, stock, settings, and more.*<\/p>\n<p>### Admin \/ delete hub (shift + right-click)<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"520\" alt=\"NormalShops admin menu\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/admin%20menu.webp\" \/>\n<\/p>\n<p>*Force edit, force change owner, delete, history, emulate sale \u2014 sensitive actions require **op** in addition to `normalshops.delete`.*<\/p>\n<p>### Creating a shop (walkthrough)<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"640\" alt=\"Animated walkthrough: how to make a shop\" src=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/imgs_make-shop%281%29.gif\" \/>\n<\/p>\n<p>*GIF: interact with an empty chest\/barrel with a sign, set price and products, and open for business. (Exact flow matches your server\u2019s messages and GUI version.)*<\/p>\n<p>### Metrics<\/p>\n<p align=\"center\">\n<img decoding=\"async\" width=\"640\" alt=\"bstats\" src=\"https:\/\/bstats.org\/signatures\/bukkit\/normalshops.svg\" \/>\n<\/p>\n<p>&#8212;<\/p>\n<p>## Why NormalShops?<\/p>\n<p>NormalShops turns chests and barrels into **fully interactive player shops** without forcing players through obscure commands. Owners get a **polished editor**, buyers get a **clear purchase flow** (classic GUI *or* villager-style trading), and staff get **real tools** \u2014 history, emulation, ownership transfer \u2014 backed by optional **CoreProtect** integration.<\/p>\n<p>Whether you run a survival economy or a mini-game hub, NormalShops is built to feel **native to Minecraft**: signs, chests, sounds, and inventories players already understand.<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Feature overview<\/p>\n<table>\n<tr>\n<td width=\"50%\" valign=\"top\">\n<p>### Core shop experience<\/p>\n<p>| Capability | Description |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| **Block-based shops** | Create shops on **chests** or **barrels** using a **sign** (any sign type). The container must be **empty** and **not** a double chest. |<br \/>\n| **Price &#038; products** | Set a currency item (and amount) plus one or more products \u2014 including custom items, heads, and NBT-heavy goods when `full-nbt-check` is enabled. |<br \/>\n| **Buy flow** | Customers use either a **Buy GUI** or a **villager merchant** interface (configurable via `villager-trading-menu`). |<br \/>\n| **Stockpiles** | Link remote chest inventories so sold items pull from real storage \u2014 with per-shop limits and optional **stockpile protection**. |<br \/>\n| **Earnings** | Sales credit **internal earnings**; owners withdraw through a **paged earnings chest** (partial pickups, stacked bundles). |<br \/>\n| **Custom displays** | Glass and item-frame style **shop displays**, themes, colors, and optional **sale text** on glass. |<br \/>\n| **Sounds &#038; themes** | Per-shop **buy sounds** and **menu color themes** for personality. |<\/p>\n<\/td>\n<td width=\"50%\" valign=\"top\">\n<p>### Owner &#038; team tools<\/p>\n<p>| Capability | Description |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| **Trusted players** | Grant **trusted** access so helpers can manage stock and settings without owning the shop. |<br \/>\n| **Access choice menu** | Owners\/trusted users pick **Editor** vs **customer trade view** so they can preview exactly what buyers see. |<br \/>\n| **Unlimited internal stock** | Internal stock is **not capped** at 27 slots \u2014 use **paged stock chest** editing (45 slots per page + navigation). |<br \/>\n| **Lifetime analytics** | Revenue, sales count, products sold, impressions, stock added\/removed, net change, utilization, conversion rate. |<br \/>\n| **Buyer insights** | **Unique buyers** and **top buyers** derived from real purchase history. |<br \/>\n| **Market comparison** | See how **other shops** price overlapping products and open a **paginated competitor list**. |<br \/>\n| **Shop info card** | Quick **stats lore** in the editor (including **total impressions**). |<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Detailed feature guide<\/p>\n<details open>\n<summary><strong>Creating &#038; editing shops<\/strong><\/summary>\n<p><\/p>\n<p>1. Hold **any sign** and **right-click** an **empty** **chest** or **barrel** (not sneaking, not a double chest) to open the creation GUI.<br \/>\n2. Place your **price** (what buyers pay) and **products** (what they receive) in the designated areas.<br \/>\n3. Click **Create Shop** to finalize.<\/p>\n<p>**Editor controls (create \/ change product menus):**<\/p>\n<p>&#8211; **Left-click** with an item to place it in a slot.<br \/>\n&#8211; **Right-click** with an **empty hand** to halve the amount in a slot.<br \/>\n&#8211; **Right-click** with the **same item** as the slot to increase the amount by one.<\/p>\n<p>After creation, **right-click** your shop block as the owner (or trusted player) to open the **access menu**: choose **Open Editor** for management or **Open Trade** for the buyer-facing experience.<\/p>\n<\/details>\n<details>\n<summary><strong>Buying \u2014 GUI mode vs villager mode<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; **`villager-trading-menu: true` (default):** Buyers interact through a **merchant** window. Multi-product bundles appear as a **highlighted chest** recipe (contents stored in block state meta) with **preview-only** rows using a **barrier** as the fake \u201cprice\u201d so the real product stays obvious.<br \/>\n&#8211; **`false`:** Buyers use the classic **BuyMenu** chest GUI instead.<\/p>\n<p>**Out of stock:** Buyers can still **open** the trade view for transparency. The title reflects stock state (e.g. in stock vs out of stock). For non-admin shops, **fulfilling trades is blocked** when there is nothing to deliver \u2014 no ghost purchases.<\/p>\n<p>**Impressions:** Opening buy\/trade flows can increment **lifetime impressions** for conversion analytics.<\/p>\n<\/details>\n<details>\n<summary><strong>Stock management (paged stock chest)<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; Internal stock is stored as a **logical list** with **pagination** (45 item slots per page + prev\/next\/info\/**back to editor**).<br \/>\n&#8211; **One player at a time** may view a shop\u2019s stock GUI to reduce exploit surface.<br \/>\n&#8211; Opening stock is **blocked** while another player has an **active villager trade session** on that shop (and vice versa).<br \/>\n&#8211; **Revision counters** detect external changes (e.g. a sale while editing) and **refresh or invalidate** stale views.<br \/>\n&#8211; Stockpile-backed removal still integrates with **Transaction** logic.<\/p>\n<\/details>\n<details>\n<summary><strong>Earnings (paged earnings chest)<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; **Collect** opens a **dedicated earnings inventory** instead of dumping everything into the player\u2019s inventory at once.<br \/>\n&#8211; Owners take **partial withdrawals**; bundles can **stack** in the GUI for readability.<br \/>\n&#8211; The **top (earnings) inventory is withdraw-only** \u2014 players cannot deposit or shift-click **into** earnings slots; their **own inventory** remains freely movable.<br \/>\n&#8211; Same **single-viewer** and **revision** philosophy as stock.<\/p>\n<\/details>\n<details>\n<summary><strong>Stockpiles &#038; earnings piles<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; **Stockpiles:** Connect additional chests to supply sold items. Optional **`protect-stockpiles`** keeps foreign players from opening linked chests (bypass: `normalshops.bypass-stockpile`).<br \/>\n&#8211; **Earnings piles:** Central **ender chest** \u201cbanks\u201d that aggregate payouts from multiple shops (subject to limits in `config.yml`).<br \/>\n&#8211; **Tethers:** Optional **particle \/ rope visualization** while linking (`visualize-tethers`).<br \/>\n&#8211; **Double chests:** Pile locations are **canonicalized** so left\/right halves resolve to one logical pile.<\/p>\n<\/details>\n<details>\n<summary><strong>Customization &#038; polish<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; **Menu colors**, **custom shop names** (length-limited), **sale text** on displays.<br \/>\n&#8211; **Frame &#038; glass displays** with lights, layering, and \u201cmove to top\u201d style controls.<br \/>\n&#8211; **Per-shop notifications** and **low-stock warnings** in settings.<br \/>\n&#8211; **Unlimited stock** mode exists for special cases (gated behind **`normalshops.unlimited-stock`** \u2014 intentionally dangerous on economy servers).<\/p>\n<\/details>\n<details>\n<summary><strong>Administration &#038; audit trail<\/strong><\/summary>\n<p><\/p>\n<p>**Shift + right-click** a shop with **`normalshops.delete`** to open the **admin \/ delete hub** \u2014 including on **your own** shops.<\/p>\n<p>**Important:** Force edit, force change owner, deleting someone else\u2019s shop, history, and **emulate sale** require **`normalshops.delete`** and **server operator** (`isOp()`). Without op, those actions are denied and logged.<\/p>\n<p>| Admin control | What it does |<br \/>\n|&#8212;&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| **Delete shop** | Remove the listing (with optional operator earnings collection via `operator-delete-shop-collect`). |<br \/>\n| **Force edit** | Open the full **owner editor** as staff to adjust price, stock, display, etc. |<br \/>\n| **Force change owner** | Prompts for a **username in chat**; transfers ownership safely via `ShopManager`. |<br \/>\n| **Shop history** | Paginated **persistent** per-shop log (buys, edits, connects, emulated sales, villager buys, \u2026). Falls back to **CoreProtect block lookup** when needed. |<br \/>\n| **Emulate sale** | Runs a **synthetic transaction** (stock + earnings + stats + logging) for testing or moderation \u2014 tagged distinctly in logs (`NormalShops-EmulatedSale`). |<\/p>\n<p>**CoreProtect (optional):** If CoreProtect is present and its API is enabled, NormalShops records **interaction-style** logs for creates, deletes, buys (GUI &#038; villager), stockpile changes, earnings collection, connects\/disconnects, and more \u2014 while also appending structured lines to **in-plugin history** for the GUI.<\/p>\n<\/details>\n<details>\n<summary><strong>Safety &#038; anti-dupe design<\/strong><\/summary>\n<p><\/p>\n<p>&#8211; **Editor session lock:** Only one management session \u201cowns\u201d deep edits at a time; submenus respect the same lock messaging.<br \/>\n&#8211; **Management access checks** on open and click: if a trusted player is **removed** while online, GUIs **stop accepting actions** and can close safely.<br \/>\n&#8211; **Stock \/ earnings revisions** + **exclusive viewers** reduce race windows between GUIs, merchants, and async saves.<br \/>\n&#8211; **Fulfillment checks** on villager trades ensure stock is actually removed before counting revenue or sales.<\/p>\n<\/details>\n<p>&#8212;<\/p>\n<p>## Installation<\/p>\n<p>1. **Server:** Paper or Spigot **1.20.x** (API `1.20` as declared in `plugin.yml`).<br \/>\n2. **Java:** **17**.<br \/>\n3. Drop **`NormalShops-*.jar`** into `plugins\/`.<br \/>\n4. **Optional:** Install **CoreProtect** for external block history and richer audit trails.<br \/>\n5. Restart once, then tune `plugins\/NormalShops\/config.yml`, `gui.yml`, and language files under `plugins\/NormalShops\/messages\/`.<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Quick start<\/p>\n<p>| Step | Action |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;&#8211;|<br \/>\n| 1 | Get a **sign** and **right-click** an **empty** **chest** or **barrel** (not sneaking). |<br \/>\n| 2 | Set **price** and **products** in the GUI, then **Create Shop**. |<br \/>\n| 3 | **Right-click** the shop block to manage or preview the buyer view. |<br \/>\n| 4 | Use **Stock chest** in the editor to add paged internal stock. |<br \/>\n| 5 | Use **Collect** to open the **earnings chest** and withdraw profits. |<br \/>\n| 6 | Link **stockpiles** \/ **earnings piles** from the editor when you outgrow a single block. |<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Permissions<\/p>\n<p>All nodes are prefixed with **`normalshops.`**.<\/p>\n<p>| Permission | Default | Purpose |<br \/>\n|&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;|<br \/>\n| `normalshops.create` | `true` | Create new shops |<br \/>\n| `normalshops.buy` | `true` | Purchase from shops |<br \/>\n| `normalshops.customize` | `true` | Open customization flows |<br \/>\n| `normalshops.display` | `true` | Build advanced displays *(needs customize)* |<br \/>\n| `normalshops.sale-text` | `true` | Edit floating sale text *(needs customize)* |<br \/>\n| `normalshops.stockpile` | `true` | Connect stockpiles |<br \/>\n| `normalshops.earnings-pile` | `true` | Connect earnings piles |<br \/>\n| `normalshops.delete` | `op` | Shift-sneak admin hub; dangerous actions also need **op** |<br \/>\n| `normalshops.bypass-stockpile` | `op` | Open protected foreign stockpiles |<br \/>\n| `normalshops.unlimited-stock` | `op` | Toggle dangerous unlimited stock |<br \/>\n| `normalshops.reload` | `op` | `\/normalshops reload` |<br \/>\n| `normalshops.version` | `true` | `\/normalshops version` (Modrinth compare) |<br \/>\n| `normalshops.viewshops` | `true` | `\/viewshops`, `\/normalshops view` |<br \/>\n| `normalshops.shops` | `true` | `\/shops` browser + teleports |<br \/>\n| `normalshops.region` | `op` | `\/normalshops region \u2026`, `\/setpoint` |<br \/>\n| `normalshops.restore` | `op` | `\/normalshops restore` |<br \/>\n| `normalshops.stats-holograms` | `op` | `\/normalshops stats-holograms \u2026` |<br \/>\n| `normalshops.update-notify` | `op` | Chat when a newer release is on Modrinth |<br \/>\n| `normalshops.coreprotect-test` | `op` | Developer API self-test |<br \/>\n| `normalshops.coreprotect-debug` | `op` | Verbose CoreProtect diagnostics |<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Commands<\/p>\n<p>| Command | Description |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| **`\/normalshops`** \/ **`\/nshops`** | Root: `view`, `reload`, `version`, `delete`, `restore`, `stats-holograms`, `region` |<br \/>\n| **`\/normalshops reload`** | Reload `config.yml`, `gui.yml`, and messages |<br \/>\n| **`\/normalshops version`** | Jar version + Modrinth update status |<br \/>\n| **`\/normalshops delete`** | Look at a shop (\u226412 blocks); removes it *(permission + staff workflow)* |<br \/>\n| **`\/normalshops restore`** | Restore from `shop-backups.yml` onto targeted chest\/barrel |<br \/>\n| **`\/normalshops stats-holograms`** | `list` | `cleanup` private stats displays |<br \/>\n| **`\/normalshops region`** | `make` | `cancel` \u2014 pairs with **`\/setpoint`** for `\/shops` regions |<br \/>\n| **`\/viewshops`** | List **your** shops + trusted shops; remote open |<br \/>\n| **`\/shops`** | Public in-stock browser; optional item filter |<\/p>\n<p>For full syntax and defaults, see **`plugin.yml`** in the jar or the [README](README.md) command table.<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Configuration<\/p>\n<p>Key files live in **`plugins\/NormalShops\/`** (or **`plugins\/ClickShop\/`** if that legacy folder already exists \u2014 data migrates there automatically).<\/p>\n<p>| File | Role |<br \/>\n|&#8212;&#8212;|&#8212;&#8212;|<br \/>\n| `config.yml` | Language, limits, stockpile protection, piston rules, recovery mode, **villager GUI toggle**, NBT strictness, distances, display range, `\/shops` regions, backups, \u2026 |<br \/>\n| `gui.yml` | Menu layouts and icon materials |<br \/>\n| `messages\/*.yml` | Localizable strings (bundled **en_US**, **de_DE**, **tr_TR**; other codes seed from English) |<br \/>\n| `data.yml` + `shops\/*.yml` | Serialized `ShopManager`, per-player managers, and per-shop files |<\/p>\n<p>**Highlighted options:**<\/p>\n<p>| Key | What it controls |<br \/>\n|&#8212;&#8211;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|<br \/>\n| `language` | Message bundle (`en_US`, `de_DE`, \u2026). |<br \/>\n| `check-update` | Modrinth version check on startup (join notify for ops \/ `update-notify`). |<br \/>\n| `protect-stockpiles` | Lock foreign access to linked supply chests. |<br \/>\n| `villager-trading-menu` | Use merchant UI vs classic buy GUI for customers. |<br \/>\n| `full-nbt-check` | Stricter matching for advanced items (economy servers). |<br \/>\n| `max-connection-distance` | How far connectors can reach. |<br \/>\n| `shop-limit-per-player` \/ pile limits | Hard caps to protect performance. |<br \/>\n| `recover-shop-files` | **Emergency** resync \u2014 auto-disables after one run. |<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p>## Support &#038; contributing<\/p>\n<p>&#8211; **PRs:** Keep changes focused; match existing code style and avoid unrelated refactors.<br \/>\n&#8211; **Downloads:** NormalShops on Modrinth<\/p>\n<p>&#8212;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Item Based Trading \/ Shops. Best for item based economies!<\/p>\n","protected":false},"featured_media":113555,"template":"","meta":{"_minecraft_slug":"normalshops","_minecraft_project_id":"DNLfdXJm","_minecraft_author":"DevEx","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":51,"_minecraft_follows":3,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"normalshops.zip","_minecraft_size_bytes":4142604,"_minecraft_version_count":10,"_minecraft_updated_at":"2026-05-15T21:26:30.477940Z","_minecraft_date_created":"2026-05-07T22:03:16.767114Z","_minecraft_date_modified":"2026-05-12T05:08:31.841425Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/normalshops","_minecraft_icon_attachment_id":113555,"_minecraft_imported_at":"2026-06-06T16:29:45+00:00","_minecraft_import_hash":"a9358e08d1c058f043264a8767b06ff6","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,844,89,126,127,128,129,91],"mod_loader":[130,132,133,134],"minecraft_version":[59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,83,167,163],"class_list":["post-113554","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-economy","mod_category-game-mechanics","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-spigot","mod_category-storage","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","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>NormalShops - 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\/normalshops\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NormalShops - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Item Based Trading \/ Shops. Best for item based economies!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/shop.png\" \/>\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\\\/normalshops\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/\",\"name\":\"NormalShops - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp\",\"datePublished\":\"2026-06-06T16:29:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/normalshops\\\/#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\":\"NormalShops\"}]},{\"@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":"NormalShops - 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\/normalshops\/","og_locale":"en_US","og_type":"article","og_title":"NormalShops - Minecraft","og_description":"Item Based Trading \/ Shops. Best for item based economies!","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/raw.githubusercontent.com\/gamerchamper\/NormalShops\/main\/imgs\/shop.png","type":"","width":"","height":""}],"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\/normalshops\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/","name":"NormalShops - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp","datePublished":"2026-06-06T16:29:44+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/normalshops-icon-1500019b964991310a392a267247c9b7e309c4d0_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/normalshops\/#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":"NormalShops"}]},{"@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\/113554","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\/113555"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=113554"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=113554"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=113554"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=113554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}