View attachment 939141
VisualShop
A modern, easily configurable Minecraft shop plugin - no more config file editing (mostly).
FeaturesVisualShop
A modern, easily configurable Minecraft shop plugin - no more config file editing (mostly).
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
- 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
- Minecraft server (Spigot/Paper) 1.20+
- Java 17 or higher
- Vault plugin
- An economy plugin (e.g., EssentialsX, CMI, etc.)
- 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
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.
- /shop admin button prevpage <material> - Create a previous page button
- /shop admin button nextpage <material> - Create a next page button
- /shop admin button filler <material> - Create a GUI filler item
- /shop admin button balance <material> - Create a balance display item
- /shop admin button back <material> - Create a back button
- /shop admin category create <id> <name> - Create a new shop category
- /shop admin category <id> rename <name> - Rename an existing category
- /shop admin category <id> delete - Delete a category
- /shop admin category <id> edit - Open the category editor GUI
- /shop admin category <id> icon <material> - Set a category's display icon
- /shop admin category <id> button <material> - Create a category button for the menu
- /shop admin editcategorymenu - Edit the category selection menu
- /shop admin item buyprice <price> - Set buy price for the item in hand
- /shop admin item sellprice <price> - Set sell price for the item in hand
- /shop admin item rename <newName...> - Rename the item in hand
- /shop admin item info - Display detailed information about the item in hand
- /shop admin item addcommand <command...> - Add commands to execute when purchasing the item
- /shop admin item removecommand <index|all> - Remove commands from the item
- /shop admin item description add <text...> - Add a description line to the item
- /shop admin item description remove <lineNumber> - Remove a description line
- /shop admin item description set <lineNumber> <text...> - Update a description line
- /shop admin item description clear - Clear all description lines
- /shop admin item description list - List all description lines
Code:
[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.
System Commands
- /shop admin reload - Reload the configuration file
- /shop admin help - Display help information
- visualshop.command.shop - Access to /shop command
- visualshop.command.shop.admin - Access to /shop admin commands
- visualshop.command.sell - Access to /sell commands
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
Code:
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)
- 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)
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
- %buyPrice% - Item's buy price
- %sellPrice% - Item's sell price
- %name% - Item/category name
- %id% - Category ID
- %material% - Material type
- %slot% - Slot position
VisualShop supports:
- Legacy color codes: &c, &a, etc.
- Hex colors: <#RRGGBB> format
- Gradient colors through MiniMessage formatting
For Server Administrators
Setting Up Your First Shop
- Create a category:
Code:/shop admin category create food Food & Drinks - Get the item you want to sell and set prices:
- Hold the item in your hand
- /shop admin item buyprice 10 (players can buy for 10)
- /shop admin item sellprice 5 (players can sell for 5)
- /shop admin item description add &7A delicious item! (optional description)
- Open the category editor:
Code:/shop admin category food edit - 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:/shop admin editcategorymenu- Place category buttons in the menu
- Add navigation buttons as needed
Edit config.yml to change:
- Button positions (row/col)
- Button materials
- Button labels and lore
- Quantity controls (add/remove buttons)
- Maximum purchase limits
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
Sell one item:
- Hold the item in your hand
- Run /sell
- The item will be sold
- Run /sell all
- All sellable items in your inventory will be sold automatically
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
If items aren't matching:
- Use /shop admin item info to inspect the item
- Check that buy prices match sell prices
- Ensure PDC data isn't interfering
- Check server logs for mismatch details
- Run /shop admin reload to refresh configurations
- Ensure you saved changes in the editor GUI
- Check for errors in console
- Verify Vault is installed and running
- Ensure an economy plugin (EssentialsX, etc.) is installed
- Check plugin load order in console
- Vault
- PlaceholderAPI
For issues, suggestions, or contributions, please join my Discord.
Migration from ShopGUI+
Overview
- VisualShop includes a migration tool to convert ShopGUI+ category files to VisualShop format.
- Place ShopGUI+
.ymlcategory files in the migration folder and run the migrate command in-game. - Migration supports migrating all files at once or a single file.
- ShopGUI+ category files typically have a root key with the category name and subkeys like
name,buttons,fillItem, anditems. - The migration imports item material, name, lore, quantity, buy/sell prices and commands (command items are converted to VisualShop command format). Buttons and filler items are also migrated.
- Create the migration folder (once):
Code:plugins/VisualShop/migration/ - Copy the ShopGUI+
.ymlcategory files you want to migrate into that folder (for exampleblocks.yml,abilities.yml, ...). - Backup your server before running the migration.
- Migrate all files
Code:/shop admin migrate ShopGuiPlus - Migrate a single file
Code:/shop admin migrate ShopGuiPlus blocks.yml
- After typing
/shop admin migratepress TAB to get the supported migration sources (currently:ShopGuiPlus). - After typing
/shop admin migrate ShopGuiPluspress TAB to list.ymlfiles inplugins/VisualShop/migration/(suggests filenames).
- Item material/name/lore/quantity
- Buy and sell prices
- Command-type items (commands are converted and placeholders adjusted)
- Navigation buttons (prev/next/back) and filler items
- Verify the migration results: the command prints a summary (categories created, items migrated, warnings and errors).
- Open the category editor for each migrated category to verify layout and pages:
(orCode:
/shop admin category <id> edit/shop <category>) - Use
/shop admin editcategorymenuto add and configure category menu and buttons appropriately - If some items landed on an unexpected page, use the editor to move them across pages or adjust
pagevalues in the source file and re-migrate that single file.
- No files found or File not found
- Ensure files are in
plugins/VisualShop/migration/and have.ymlextensions. - If migrating a single file, include the filename (e.g.,
blocks.yml).
- Ensure files are in
- Missing or unknown materials
- If a material name in ShopGUI+ doesn't match a valid Material in your server version, migration will fall back to
STONE(a warning will be shown). Update materials after migration.
- If a material name in ShopGUI+ doesn't match a valid Material in your server version, migration will fall back to
- Navigation or page issues
- ShopGUI+ may have pages that contain only buttons or fillers. Migration preserves
pagefields; if an intermediate page looks empty, inspect the migrated items and buttons (/shop admin item infoand use the category editor). - If navigation appears to get stuck, check that prev/next/back buttons were migrated to every page (migration duplicates navigation buttons to each page automatically).
- ShopGUI+ may have pages that contain only buttons or fillers. Migration preserves
- Commands not executing / placeholders
- Commands are converted and
%PLAYER%becomes%player_name%(VisualShop placeholder). Ensure PlaceholderAPI and your economy plugin are installed.
- Commands are converted and
- Always test migration on a staging server first.
- If you need different behavior, you can migrate only a single file, inspect the results and re-run on a single file after adjusting the source.
- After successful migration and verification, remove migrated files from the
migration/folder to avoid accidental re-runs.
