Features
Core Functionality
- GUI-Based Shopping: Intuitive inventory-based interface for browsing and purchasing items.
- Category Organization: Organize shop items into customizable categories
- Bulk Transactions: Support for buying/selling multiple items at once with configurable quantity controls
Administrative Tools
- In-Game GUI Editor: Edit shop categories and items directly through a visual interface
- Web Editor: Web based shop editor - create items, categories, organize. Modify source files as needed (HTML/CSS/JS). Changes can be synced instantly or manually.
- Item Configuration: Set prices, rename items, and configure special properties via commands
- Category Management: Create, rename, delete, and reorder shop categories
- Flexible Layout System: Configure GUI button positions, materials, and labels
Requirements
- Minecraft server (Spigot/Paper) 1.20+
- Java 17 or higher
- Vault plugin
- An economy plugin (e.g., EssentialsX, CMI, etc.)
Installation
- Download the latest release of VisualShop
- Install Vault and your preferred economy plugin
- Place VisualShop.jar in your server's plugins folder
- Restart the server
- Configure the plugin using /shop admin commands
Commands
Player Commands
- /shop - Open the main shop category menu
- /shop <category> - Open a specific shop category
- /sell - Sell the item in your hand
- /sell all - Sell all sellable items from your inventory
Admin Commands
- /shop admin webeditor - Creates a web editor session with clickable link.
Category Management
- /shop admin createcategory <id> <name> - Create a new shop category
- /shop admin renamecategory <id> <newName> - Rename an existing category
- /shop admin deletecategory <id> - Delete a category
- /shop admin editcategory <category> - Open the category editor GUI
- /shop admin editcategorymenu - Edit the category selection menu
- /shop admin categoryicon <category> <material> - Set a category's display icon
- /shop admin categoryslot <category> <slot> - Set a category's position in the menu
Since 1.0.1:
- /shop admin createpage <categoryId> - Create a new page
- /shop admin deletepage <categoryId> <pageNumber> - Delete a page
Item Configuration
- /shop admin buyprice <price> - Set buy price for the item in hand
- /shop admin sellprice <price> - Set sell price for the item in hand
- /shop admin itemname <newName> - Rename the item in hand
- /shop admin iteminfo - Display detailed information about the item in hand
Since 1.0.1:
- /shop admin addcommand <commandToExecute> - Add commands to execute instead of purchasing the item.
- /shop admin removecommand <commandId/(all)> - Remove commands
Available command actions:
Code (Text):
[MESSAGE] - Sends a message to the player: [MESSAGE] Hello, %player_name%!
[CHAT] - Sends a chat message to the player: [CHAT] Hello, %player_name%!
-TITLE] - Sends a title to the player: [TITLE] Hello, %player_name%!, 20, 60, 20
[ACTIONBAR] - Sends an action bar message to the player: [ACTIONBAR] Hello, %player_name%!
[SOUND] - Plays a sound to the player: [SOUND] ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1
[PLAYER] - Executes a command as the player: [PLAYER] /command %player_name%
[CONSOLE] - Executes a command as the console: [CONSOLE] /command %player_name%
[BROADCAST] - Broadcasts a message to the server: [BROADCAST] Hello, %player_name%!
[PARTICLE] - Spawns a particle at the player's location: [PARTICLE] FLAME, 1, 0, 0, 0
Supports all PlaceholderAPI placeholders.
Special Items
- /shop admin getfiller <material> - Create a GUI filler item
- /shop admin getbalanceitem <material> - Create a balance display item
- /shop admin getbackbutton <material> - Create a back button
- /shop admin getprevbutton <material> - Create a previous page button
- /shop admin getnextbutton <material> - Create a next page button
- /shop admin getcategorybutton <categoryId> [material] - Create a category button
System
- /shop admin reload - Reload the configuration file
- /shop admin help - Display help information
Permissions
- visualshop.command.shop - Access to /shop command
- visualshop.command.shop.admin - Access to /shop admin commands
- visualshop.command.sell - Access to /sell commands
Configuration
The plugin uses a single
config.yml file with two main sections:
messages and
layout.
Messages Section
All text displayed to players is configurable through the messages section. This includes:
- Command usage messages
- Success/error messages
- GUI titles and button labels
- Help text
Example:
Code (Text):
messages:
buy:
success: "<#5DB16E>Purchased &e%quantity%x <#2D9C3B>for &e%total%"
not-enough-money: "<#E33939>You don't have enough money."
Layout Section
The layout section controls the visual appearance of buy/sell GUIs.
Buy GUI Layout Configuration:
Controls Section:
- current: Display for current quantity (row, col, material, name)
- maxStack: Maximum items that can be bought at once
- decrements: List of buttons to decrease quantity (amount, row, col, material, name)
- sets: List of buttons to set exact quantities (value, row, col, material, name, lore)
- increments: List of buttons to increase quantity (amount, row, col, material, name)
Button Section:
- back: Back button configuration (row, col, material, name, lore)
- buy: Buy button configuration (row, col, material, name, lore)
- balance: Balance display configuration (row, col, material, name, lore)
Example:
Code (YAML):
layout:
buy:
controls:
current:
row
: 3
col
: 5
material
: PAPER
name
:
"<#5DB16E>Quantity: %quantity%"
maxStack
: 128
decrements:
- amount
: 10
row
: 3
col
: 2
material
: RED_CONCRETE
name
:
"&c-10"
sets:
- value
: 64
row
: 3
col
: 6
material
: LIME_CONCRETE
name
:
"&b64"
increments:
- amount
: 1
row
: 3
col
: 7
material
: GREEN_CONCRETE
name
:
"&a+1"
buy:
row
: 5
col
: 7
material
: EMERALD
name
:
"<#5DB16E>Buy"
lore:
- "&7Total
: <
#5DB16E>%total%€"
-
"&7Click to buy!"
Placeholders
The following placeholders are available in messages and layout configurations:
General:
- %balance% - Player's current balance
- %quantity% - Item quantity
- %total% - Total price
- %price% - Price per item
- %amount% - Amount available
Item-specific:
- %buyPrice% - Item's buy price
- %sellPrice% - Item's sell price
- %name% - Item/category name
- %id% - Category ID
- %material% - Material type
- %slot% - Slot position
Color Codes
VisualShop supports:
- Legacy color codes: &c, &a, etc.
- Hex colors: <#RRGGBB> format
- Gradient colors through MiniMessage formatting
Usage Guide
For Server Administrators
Setting Up Your First Shop
- Create a category:
Code (Text):
/shop admin createcategory food Food & Drinks
- Get the item you want to sell and set prices:
- Hold the item in your hand
- /shop admin buyprice 10 (players can buy for 10)
- /shop admin sellprice 5 (players can sell for 5)
- Open the category editor:
Code (Text):
/shop admin editcategory food
- Place items in the GUI:
- Items in your inventory will appear in the editor
- Click to place them in the shop
- Use filler items to organize the layout
- Save your changes:
- Click the save button in the editor GUI
- Set up the category menu:
Code (Text):
/shop admin editcategorymenu
- Place category buttons in the menu
- Add navigation buttons as needed
Customizing the GUI Layout
Edit
config.yml to change:
- Button positions (row/col)
- Button materials
- Button labels and lore
- Quantity controls (add/remove buttons)
- Maximum purchase limits
After editing, run
/shop admin reload to apply changes.
For Players
Buying Items
- Open the shop: /shop
- Select a category
- Click an item to open the buy menu
- Use +/- buttons to adjust quantity
- Click the buy button to complete purchase
Selling Items
Sell one item:
- Hold the item in your hand
- Run /sell
- The item will be sold
Sell all items:
- Run /sell all
- All sellable items in your inventory will be sold automatically
Data Storage
Shop data is stored in YAML format in the
plugins/VisualShop/ directory:
- shops.yml - Contains all shop categories, items, and configurations
- config.yml - Plugin configuration and messages
Troubleshooting
If items aren't matching:
- Use /shop admin iteminfo to inspect the item
- Check that buy prices match sell prices
- Ensure PDC data isn't interfering
- Check server logs for mismatch details
GUI not updating
- Run /shop admin reload to refresh configurations
- Ensure you saved changes in the editor GUI
- Check for errors in console
Economy not working
- Verify Vault is installed and running
- Ensure an economy plugin (EssentialsX, etc.) is installed
- Check plugin load order in console
Dependencies
Support
For issues, suggestions, or contributions, please join our Discord community.