HomeJavaModsNormalShops
NormalShops
ModsJava

NormalShops

by DevEx · on Modrinth

NormalShops — Player & admin guide Thanks to - Clickism In-world shop (storefront) Villager Menus used as trading Custom display: item showcase…

⬇ Download on Modrinth
NormalShops — screenshot 1NormalShops — screenshot 2NormalShops — screenshot 3NormalShops — screenshot 4NormalShops — screenshot 5NormalShops — screenshot 6NormalShops — screenshot 7NormalShops — screenshot 8

NormalShops — Player & admin guide

Thanks to https://github.com/Clickism/ClickShop - Clickism

In-world shop (storefront)

Outside view of a NormalShops storefront

Villager Menus used as trading

Outside view of a NormalShops storefront

Outside view of a NormalShops storefront

Custom display: item showcase, glass/base blocks, and optional sale-style floating text.

/shops — public shop browser

Minecraft GUI for the /shops command

Paginated list of in-stock shops; click entries to teleport (when enabled).

GUI overview (main menus)

Collage of NormalShops GUI menus

Create/change listing, owner panel, access chooser, buy flow, stock, settings, and more.

Admin / delete hub (shift + right-click)

NormalShops admin menu

Force edit, force change owner, delete, history, emulate sale — sensitive actions require op in addition to normalshops.delete.

Creating a shop (walkthrough)

Animated walkthrough: how to make a shop

GIF: interact with an empty chest/barrel with a sign, set price and products, and open for business. (Exact flow matches your server’s messages and GUI version.)

Metrics

bstats


Why NormalShops?

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 — history, emulation, ownership transfer — backed by optional CoreProtect integration.

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.



Feature overview

Core shop experience

Capability Description
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.
Price & products Set a currency item (and amount) plus one or more products — including custom items, heads, and NBT-heavy goods when full-nbt-check is enabled.
Buy flow Customers use either a Buy GUI or a villager merchant interface (configurable via villager-trading-menu).
Stockpiles Link remote chest inventories so sold items pull from real storage — with per-shop limits and optional stockpile protection.
Earnings Sales credit internal earnings; owners withdraw through a paged earnings chest (partial pickups, stacked bundles).
Custom displays Glass and item-frame style shop displays, themes, colors, and optional sale text on glass.
Sounds & themes Per-shop buy sounds and menu color themes for personality.

Owner & team tools

Capability Description
Trusted players Grant trusted access so helpers can manage stock and settings without owning the shop.
Access choice menu Owners/trusted users pick Editor vs customer trade view so they can preview exactly what buyers see.
Unlimited internal stock Internal stock is not capped at 27 slots — use paged stock chest editing (45 slots per page + navigation).
Lifetime analytics Revenue, sales count, products sold, impressions, stock added/removed, net change, utilization, conversion rate.
Buyer insights Unique buyers and top buyers derived from real purchase history.
Market comparison See how other shops price overlapping products and open a paginated competitor list.
Shop info card Quick stats lore in the editor (including total impressions).


Detailed feature guide

Creating & editing shops
  1. Hold any sign and right-click an empty chest or barrel (not sneaking, not a double chest) to open the creation GUI.
  2. Place your price (what buyers pay) and products (what they receive) in the designated areas.
  3. Click Create Shop to finalize.

Editor controls (create / change product menus):

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.

Buying — GUI mode vs villager mode

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 — no ghost purchases.

Impressions: Opening buy/trade flows can increment lifetime impressions for conversion analytics.

Stock management (paged stock chest)
Earnings (paged earnings chest)
Stockpiles & earnings piles
Customization & polish
Administration & audit trail

Shift + right-click a shop with normalshops.delete to open the admin / delete hub — including on your own shops.

Important: Force edit, force change owner, deleting someone else’s shop, history, and emulate sale require normalshops.delete and server operator (isOp()). Without op, those actions are denied and logged.

Admin control What it does
Delete shop Remove the listing (with optional operator earnings collection via operator-delete-shop-collect).
Force edit Open the full owner editor as staff to adjust price, stock, display, etc.
Force change owner Prompts for a username in chat; transfers ownership safely via ShopManager.
Shop history Paginated persistent per-shop log (buys, edits, connects, emulated sales, villager buys, …). Falls back to CoreProtect block lookup when needed.
Emulate sale Runs a synthetic transaction (stock + earnings + stats + logging) for testing or moderation — tagged distinctly in logs (NormalShops-EmulatedSale).

CoreProtect (optional): If CoreProtect is present and its API is enabled, NormalShops records interaction-style logs for creates, deletes, buys (GUI & villager), stockpile changes, earnings collection, connects/disconnects, and more — while also appending structured lines to in-plugin history for the GUI.

Safety & anti-dupe design

Installation

  1. Server: Paper or Spigot 1.20.x (API 1.20 as declared in plugin.yml).
  2. Java: 17.
  3. Drop NormalShops-*.jar into plugins/.
  4. Optional: Install CoreProtect for external block history and richer audit trails.
  5. Restart once, then tune plugins/NormalShops/config.yml, gui.yml, and language files under plugins/NormalShops/messages/.


Quick start

Step Action
1 Get a sign and right-click an empty chest or barrel (not sneaking).
2 Set price and products in the GUI, then Create Shop.
3 Right-click the shop block to manage or preview the buyer view.
4 Use Stock chest in the editor to add paged internal stock.
5 Use Collect to open the earnings chest and withdraw profits.
6 Link stockpiles / earnings piles from the editor when you outgrow a single block.


Permissions

All nodes are prefixed with normalshops..

Permission Default Purpose
normalshops.create true Create new shops
normalshops.buy true Purchase from shops
normalshops.customize true Open customization flows
normalshops.display true Build advanced displays (needs customize)
normalshops.sale-text true Edit floating sale text (needs customize)
normalshops.stockpile true Connect stockpiles
normalshops.earnings-pile true Connect earnings piles
normalshops.delete op Shift-sneak admin hub; dangerous actions also need op
normalshops.bypass-stockpile op Open protected foreign stockpiles
normalshops.unlimited-stock op Toggle dangerous unlimited stock
normalshops.reload op /normalshops reload
normalshops.version true /normalshops version (Modrinth compare)
normalshops.viewshops true /viewshops, /normalshops view
normalshops.shops true /shops browser + teleports
normalshops.region op /normalshops region …, /setpoint
normalshops.restore op /normalshops restore
normalshops.stats-holograms op /normalshops stats-holograms …
normalshops.update-notify op Chat when a newer release is on Modrinth
normalshops.coreprotect-test op Developer API self-test
normalshops.coreprotect-debug op Verbose CoreProtect diagnostics


Commands

Command Description
/normalshops / /nshops Root: view, reload, version, delete, restore, stats-holograms, region
/normalshops reload Reload config.yml, gui.yml, and messages
/normalshops version Jar version + Modrinth update status
/normalshops delete Look at a shop (≤12 blocks); removes it (permission + staff workflow)
/normalshops restore Restore from shop-backups.yml onto targeted chest/barrel
/normalshops stats-holograms list | cleanup private stats displays
/normalshops region make | cancel — pairs with /setpoint for /shops regions
/viewshops List your shops + trusted shops; remote open
/shops Public in-stock browser; optional item filter

For full syntax and defaults, see plugin.yml in the jar or the README command table.



Configuration

Key files live in plugins/NormalShops/ (or plugins/ClickShop/ if that legacy folder already exists — data migrates there automatically).

File Role
config.yml Language, limits, stockpile protection, piston rules, recovery mode, villager GUI toggle, NBT strictness, distances, display range, /shops regions, backups, …
gui.yml Menu layouts and icon materials
messages/*.yml Localizable strings (bundled en_US, de_DE, tr_TR; other codes seed from English)
data.yml + shops/*.yml Serialized ShopManager, per-player managers, and per-shop files

Highlighted options:

Key What it controls
language Message bundle (en_US, de_DE, …).
check-update Modrinth version check on startup (join notify for ops / update-notify).
protect-stockpiles Lock foreign access to linked supply chests.
villager-trading-menu Use merchant UI vs classic buy GUI for customers.
full-nbt-check Stricter matching for advanced items (economy servers).
max-connection-distance How far connectors can reach.
shop-limit-per-player / pile limits Hard caps to protect performance.
recover-shop-files Emergency resync — auto-disables after one run.


Support & contributing


Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more