What is NexaShop?#
A complete shop system for server shops, sell flows, player markets, physical shops, stock and economy controls.
NexaShop is a premium server shop and player-shop economy platform with multi-currency products, stock, dynamic pricing, transaction logs and network sync.
Product purpose, target audience, main systems, dependencies and quick links.
A complete shop system for server shops, sell flows, player markets, physical shops, stock and economy controls.
Economy, survival, skyblock, prison and network owners replacing basic shop menus with a production commerce layer.
Survival, SkyBlock, Prison, Lifesteal, SMP and network economy servers.
Installation gets the plugin to boot. First Setup prepares it for production use.
Recommended first configuration pass after the plugin has generated its files.
Commands, permissions, and usage examples.
/shopCommandOpen and manage NexaShop.
Not declared in plugin.yml
/shop
/sellCommandSell items to NexaShop.
Not declared in plugin.yml
/sell
/sellguiCommandOpen the NexaShop sell GUI.
Not declared in plugin.yml
/sellgui
/playershopCommandCreate, search, and browse player-owned shops.
Not declared in plugin.yml
/playershop
Permission nodes are based on plugin.yml. Assign admin and bypass permissions carefully.
/lp group admin permission set nexashop.admin true/lp group default permission set nexashop.use trueConfiguration YAML files below contain short bundled default excerpts, not full files. Message YAML is documented only in Messages & Language.
Main runtime settings, license, modules, limits, storage and feature behavior.
config.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from config.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
settings:
default-currency: "vault"
language: "en"
debug: false
transaction-log-file: true
license-key: "LICENSE"
storage:
type: "sqlite"
sqlite-file: "nexashop.db"
mysql:
host: "localhost"
port: 3306
database: "nexashop"
username: "root"
password: ""
use-ssl: false
mariadb:
host: "localhost"
port: 3306
database: "nexashop"
username: "root"
password: ""
use-ssl: false
network:
enabled: false
server-id: "server-1"
require-production-database: true
heartbeat-seconds: 10
stock-sync: true
player-shop-sync: true
redis:
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/config.yml to review every setting.
# ...Top-level keyssettings, license-key, storage, network, gui, sell-all
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Plugin-specific YAML settings used by this product.
currencies.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from currencies.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
default: "vault"
currencies:
vault:
type: "vault"
display-name: "$"
experience:
type: "experience"
display-name: "EXP"
emeralds:
type: "item"
display-name: "Emeralds"
material: "EMERALD"
playerpoints:
type: "playerpoints"
display-name: "Points"
coinsengine:
type: "coinsengine"
display-name: "Coins"
currency-id: "coins"
tokenmanager:
type: "tokenmanager"
display-name: "Tokens"
withdraw-command: "tokens remove {player} {amount_int}"
deposit-command: "tokens add {player} {amount_int}"
gemseconomy:
type: "gemseconomy"
display-name: "Gems"
withdraw-command: "gems take {player} {amount_int}"
deposit-command: "gems give {player} {amount_int}"
ultraeconomy:
type: "ultraeconomy"
display-name: "Ultra"
withdraw-command: "ultraeconomy remove {player} {amount}"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/currencies.yml to review every setting.
# ...Top-level keysdefault, currencies
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Inventory layout, titles, slots, materials, names, lore and click behavior.
layouts.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from layouts.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
default:
content-slots:
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 28
- 29
- 30
- 31
- 32
- 33
- 34
filler:
material: "BLACK_STAINED_GLASS_PANE"
name: " "
back:
slot: 45
material: "ARROW"
name: "<yellow>Back"
previous:
slot: 48
material: "ARROW"
name: "<yellow>Previous Page"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/layouts.yml to review every setting.
# ...Top-level keysdefault, sell-gui, hub
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Feature modules and ready setup presets.
modules.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from modules.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
server-shops: true
player-shops: true
stock-system: true
dynamic-pricing: true
rotating-items: true
seasonal-pricing: true
temporary-sales: true
shop-stands: true
npc-shops: true
discord-logs: false
transaction-export: true
migration-tools: true
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/modules.yml to review every setting.
# ...Top-level keysserver-shops, player-shops, stock-system, dynamic-pricing, rotating-items, seasonal-pricing
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Economy, product, currency, marketplace or limit behavior.
shops.yml. The generated file contains more options than this docs excerpt.# ...
# Short documentation excerpt from shops.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
categories:
building:
title: "<aqua>Blocks</aqua>"
currency: "vault"
item: "BRICKS"
slot: 10
lore:
- "<gray>Building blocks and decoration materials."
- "<dark_gray>{products} products available"
ores:
title: "<blue>Ores</blue>"
currency: "vault"
item: "DIAMOND"
slot: 11
lore:
- "<gray>Ingots, gems, blocks and mine drops."
- "<dark_gray>{products} products available"
farming:
title: "<green>Farming</green>"
currency: "vault"
item: "WHEAT"
slot: 12
lore:
- "<gray>Crops, seeds and farm materials."
- "<dark_gray>{products} products available"
food:
title: "<gold>Food</gold>"
currency: "vault"
item: "COOKED_BEEF"
slot: 13
lore:
- "<gray>Cooked meals, raw food and snacks."
- "<dark_gray>{products} products available"
mobs:
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/shops.yml to review every setting.
# ...Top-level keyscategories
Production handlingBack up this file, edit the generated copy under the plugin folder, then run the product reload command or restart for startup-level settings.
Translation and formatting guidance based on the product's bundled resources.
This product ships messages.yml. Edit the generated copy in the plugin folder, keep placeholders intact, then reload the plugin command or restart for startup-level changes.
<red>Error message</red>
&cLegacy color message
{player} {amount} {reason}messages.yml. The generated file contains more message keys than this docs excerpt.# ...
# Short documentation excerpt from messages.yml.
# This is not the complete YAML file.
# Lines before and after this preview are omitted from the docs.
# ...
prefix: "<aqua>NexaShop</aqua> <dark_gray>|</dark_gray> "
missing-message: "<red>Missing message: <key>"
no-permission: "<red>You do not have permission."
player-only: "<red>Only players can use this command."
reload-complete: "<green>NexaShop reloaded."
module-disabled: "<red>The <module> module is disabled."
shop-not-found: "<red>Shop not found."
product-not-found: "<red>Product not found."
item-not-found: "<red>Item not found."
category-not-found: "<red>Category not found."
shop-or-item-not-found: "<red>Shop or item not found."
shop-or-category-not-found: "<red>Shop or category not found."
currency-unavailable: "<red>Currency provider is unavailable."
transaction-success: "<green>Transaction complete."
transaction-failed: "<red>Transaction failed: <reason>"
operation-success: "<green><message>"
operation-warning: "<yellow><message>"
operation-failed: "<red><message>"
status-ok: "ok"
status-enabled: "<green>enabled"
status-disabled: "<red>disabled"
status-enabled-plain: "enabled"
status-disabled-plain: "disabled"
usage-sell: "<red>Usage: /sell <hand|handall|all|inventory|gui>"
sell-unknown-mode: "unknown sell mode"
sell-all-total: "<gray>Sell-all total: <green><total>"
sell-all-summary-line: "<dark_gray>- <gray><line>"
license-header: "<gold>NexaShop License"
license-status-line: "<gray>Status: <white><status>"
network-header: "<gold>NexaShop Network"
# ...
# More options continue in the generated plugin YAML file.
# Open plugins/<plugin-folder>/messages.yml to review every setting.
# ...GUI cards describe the actual menus available in this product build.
Shop layout definition used by the GUI service for category placement, product browsing and marketplace presentation.
PlaceholderAPI examples available for this product.
Identifier: nexashop. The expansion covers stock, player stock, buy/sell prices, total spent, bought/sold counts and top buyer/seller stats.
| Placeholder | Example output | Description |
|---|---|---|
%nexashop_stock_blocks:diamond% | 128 | Returns stock for a shop item key. |
%nexashop_buyprice_blocks:diamond% | 250 | Returns the current buy price for a product. |
%nexashop_sellprice_blocks:diamond% | 125 | Returns the current sell price for a product. |
%nexashop_total_spent% | 18,420 | Returns the player's total spend value. |
%nexashop_top_buyer% | RitoMasss | Returns the leading buyer tracked by shop stats. |
Storage docs explain YAML, SQLite, MySQL, MariaDB and backup expectations when supported.
Use SQLite starter mode for testing. Use MySQL/MariaDB for production and Redis when cross-server stock/player-shop sync is enabled.
Each integration explains purpose, required/optional status, setup steps and troubleshooting.
Purpose: Provides economy withdrawals, deposits, prices, banks or metadata through Vault.
Troubleshooting: If balances, rewards or banks do not work, confirm Vault has an active economy provider and that no economy plugin loads after this product.
Purpose: Registers or consumes PlaceholderAPI values for scoreboards, formats and external displays.
Troubleshooting: If values stay blank, reload expansions and verify the identifier exactly matches the placeholder shown in this docs page.
Purpose: Provides a named currency provider for prices, rewards, trades or shop transactions.
Troubleshooting: If transactions fail, verify the currency id, provider startup order and whether the player has enough balance or inventory space.
Purpose: Provides custom item, glyph or resource-pack integration.
Troubleshooting: If visuals are missing, check asset ids, resource-pack generation and provider reload order.
Purpose: Provides custom item, glyph or resource-pack integration.
Troubleshooting: If visuals are missing, check asset ids, resource-pack generation and provider reload order.
Purpose: Provides custom item, glyph or resource-pack integration.
Troubleshooting: If visuals are missing, check asset ids, resource-pack generation and provider reload order.
Purpose: Connects gameplay behavior to claims, regions or group ownership rules.
Troubleshooting: If region or claim rules do not apply, check region priority, claim ownership, world names and whether the hook is enabled.
Purpose: Publishes logs or events to Discord channels or webhooks.
Troubleshooting: If Discord messages do not send, check webhook validity, rate limits and whether the event type is enabled.
Purpose: Provides NPC entities used by bot or combat punishment workflows.
Troubleshooting: If NPCs or bots fail, check Citizens startup errors, skin fetch warnings, disabled worlds and pathfinder restrictions.
Create one shop from currency setup to a verified player transaction.
currencies.yml and make sure its economy provider is available./shop editor create <shop> <currency> [title], then add a held item with /shop editor addhand <shop> <id> <buy> <sell>./shop as a normal player and verify buy, sell, amount selector, insufficient balance and transaction history.Make prices, limits, stock and failed transactions understandable to players.
/shop or a category./shop sellgui when bulk selling is enabled.Use editor, preset and import workflows without overwriting live pricing accidentally.
/shop preset install survival on staging.Keep catalog, currency and stock consistent during updates.
transactions: require-confirmation: true write-history: true rollback-on-delivery-failure: true stock: prevent-negative: trueUse NexaShop as a catalog pipeline: currency → shop/category → item → transaction → stock/log.
currencies.yml./shop editor create <shop> <currency> [title]./shop editor addhand <shop> <id> <buy> <sell>./shop or /shop <category>./shop amount ... for a controlled quantity./shop sellgui for bulk selling if enabled./shop preset install survival
/shop layout install compact
/shop import shopguiplus --dry-run
/shop import reportReview warnings, materials, currencies and price conversion before running the real import.
Set finite stock, refill/reset intervals and dynamic pricing together. A stock reset should not silently overwrite player-shop data; verify the selected shop/item scope first.
Ready-to-follow scenarios reduce support tickets and make the product easier to configure.
Use conservative defaults, SQLite or simple file storage, readable messages and relaxed limits for community servers.
Define currencies first, then prices, limits, permissions, logs and rollback or recovery behavior.
Define currencies first, then prices, limits, permissions, logs and rollback or recovery behavior.
Use stricter cooldowns, staff visibility, abuse protection and clear player feedback for high-conflict gameplay.
Use production SQL, unique server IDs, shared sync secrets and a controlled Redis or proxy transport.
Start with console logs, config diffs, plugin version and reproduction steps.
Check menu materials, category ids, command aliases and whether the economy/storage provider loaded before the GUI opened.
Verify buy price, stock, currency provider, inventory space, permission requirements and any WorldGuard/shop region restriction.
Check item matcher rules, NBT/custom item ids, price priority and whether the sell menu uses a different product key than the buy menu.
Confirm the selected storage/network backend is enabled on every server and that product ids are identical across configs.
Check Vault/CoinsEngine startup order, currency id casing and whether the provider is enabled in hooks/config.
Verify database writes, owner UUID storage, shutdown save logs and whether the shop world is excluded.
Short answers for common buyer and staff questions.
Yes. The product descriptor or docs metadata marks this product as Folia-oriented; keep third-party hook thread-safety in mind during production testing.
This page targets Paper/Folia with Java 21. Legacy 1.8 support is not part of this docs page.
Use SQLite starter mode for testing. Use MySQL/MariaDB for production and Redis when cross-server stock/player-shop sync is enabled.
Yes. Use the Configuration section to manage the product modules and behavior exposed by YAML.
Yes. Edit messages.yml and reload or restart according to the setting changed.
Yes. The documented identifier and examples are listed in the Placeholders section.
Product release notes grouped by version. Major public changes are written for buyers and server owners, not as raw commit logs.
Latest documented update: 2026-04-29.
Send enough information to reproduce the issue.
Plugin: NexaShop
Plugin version:
Server version:
Java version:
Server software:
Database type:
Installed hooks:
Error log:
Steps to reproduce:
Expected behavior:
Screenshots/video: