
SellGUI
A selling system for MMORPGS, with no need for shops
- Загрузки
- 10K
- Подписчики
- 21
- Обновлён
- 6 июня 2026 г.
- Лицензия
- BSD-3-Clause
Опубликован 27 июля 2025 г.
SellGUI v3
A quick announcement: This project was originally By Aoov, but after realizing its potential, I took over updating this plugin. You can support me through donations :3 as that's how your donations help me and this project.
SellGUI is a Minecraft selling plugin with a configurable GUI, /sellall, autosell, price setting tools, price evaluation, and support for custom item plugins. Version 3 focuses on cleaner configuration, multiple sell menus, menu-specific item rules, and safer item stacking behavior.
What's New In v3
- Added multiple sell menus through the
gui/sell_menus/folder. - Each sell menu can live in its own YAML file, for example
default.ymlandfishing.yml. - Added
/sellgui <menu>to open a specific menu. - Added
/sellgui <player> <menu>so admins can open a specific menu for another player. - Added per-menu item filters:
allowed-itemsallows only specific items.denied-itemsblocks specific items.exclusive: truelocks listed items to that menu only.
/sellalland autosell now skip items locked to exclusive menus.- Split the old root
gui.ymlinto a cleanergui/folder. - Added item stack normalization to fix items not stacking after smelting, joining, leaving, or server restart.
- Bundled
libs/shopgui-api-3.1.0.jarso Maven builds work from a fresh clone. - Addon Plugin Support
Requirements
Required
| Component | Notes |
|---|---|
| Java | Java 21 recommended for modern Paper/Spigot 1.20.6+ servers |
| Server | Paper/Spigot 1.20.6+, optimized for 1.21+ |
| Vault | Required for economy support |
| Economy plugin | EssentialsX, CMI, or any Vault-compatible economy plugin |
| NBTAPI | Required dependency in plugin.yml |
Optional
| Plugin | Purpose |
|---|---|
| EssentialsX | Use Essentials worth prices |
| ShopGUIPlus | Use ShopGUI+ sell prices |
| MMOItems | Detect and price MMOItems |
| Nexo | Detect and price Nexo items |
| MythicLib | Extra item/NBT metadata support |
| PlaceholderAPI | Registers %sellgui_*% placeholders |
| PacketEvents | Displays item worth lore through packets when enabled |
Installation
- Download the SellGUI v3 jar.
- Place the jar in your server
plugins/folder. - Make sure Vault, NBTAPI, and an economy plugin are installed.
- Restart the server so SellGUI can generate its files.
- Edit files inside
plugins/SellGUI/. - Run
/sellgui reloador restart the server after editing configuration files.
Build From Source
git clone https://github.com/NguyenSonhoa/SellGUI.git
cd SellGUI
git checkout v3.0
mvn -q -DskipTests package
Jar output:
target/SellGUI-3.0.1.jar
libs/shopgui-api-3.1.0.jar is committed so Maven can build immediately after cloning.
Commands
Aliases for /sellgui: /sg, /sell
| Command | Description | Permission |
|---|---|---|
/sellgui |
Open the default sell menu | sellgui.use |
/sellgui <menu> |
Open a specific sell menu, for example /sellgui fishing |
sellgui.use and the menu permission |
/sellgui <player> |
Open the default menu for another player | sellgui.others |
/sellgui <player> <menu> |
Open a specific menu for another player | sellgui.others |
/sellgui help |
Show in-game help | sellgui.use |
/sellgui reload |
Reload configs and GUIs | sellgui.reload |
/sellgui evaluate |
Open the Price Evaluation GUI | sellgui.evaluate |
/sellgui autosell |
Open the Autosell Settings GUI | sellgui.autosell |
/autosell |
Open the Autosell Settings GUI | sellgui.autosell |
/sellgui setprice <amount> |
Set a fixed price for the item in hand | sellgui.setprice |
/sellgui setrange <min> <max> |
Set a random price range for the item in hand | sellgui.setrange |
/sellguiprice |
Open the Price Setter GUI | sellgui.setprice |
/sellguiprice <price> |
Enter a price for the item in the open Price Setter GUI | sellgui.setprice |
/sellall |
Preview selling all valid inventory items | sellgui.sellall |
/sellall confirm |
Confirm /sellall |
sellgui.sellall |
Permissions
| Permission | Default | Description |
|---|---|---|
sellgui.* |
plugin manager/op | Access to all declared SellGUI permissions |
sellgui.use |
true | Use the basic SellGUI command |
sellgui.admin |
op | General admin permission |
sellgui.others |
manual grant | Open SellGUI for other players |
sellgui.reload |
op | Reload the plugin |
sellgui.setprice |
op | Use the Price Setter and fixed price commands |
sellgui.setrange |
op | Set random price ranges |
sellgui.evaluate |
op | Use the Price Evaluation GUI |
sellgui.sellall |
true | Use /sellall |
sellgui.autosell |
true | Open the autosell GUI |
sellgui.menu.* |
true | Access all configured menus declared in plugin.yml |
sellgui.menu.default |
true | Open the default menu |
sellgui.menu.fishing |
true | Open the example fishing menu |
sellgui.bonus.<number> |
false | Adds a sell bonus, depending on the pricing path |
sellgui.multiplier.<number> |
false | Multiplies sell prices |
Examples:
sellgui.multiplier.2.0
sellgui.bonus.30
sellgui.menu.fishing
When adding a new menu, give it its own permission in the menu file, for example sellgui.menu.mining, then grant that permission to the ranks that should use it.
v3 Configuration Layout
After the first server start, SellGUI creates files under plugins/SellGUI/.
plugins/SellGUI/
config.yml
itemprices.yml
mmoitems.yml
nexo.yml
customitems.yml
custommenuitems.yml
random-prices.yml
messages.yml
sounds.yml
autosell_data.yml
gui/
sell_menus/
default.yml
fishing.yml
price_setter.yml
price_evaluation.yml
autosell_settings.yml
The old root gui.yml has been removed in v3. GUI layouts and sell menus now live in the gui/ folder.
SellGUI loads and merges all .yml and .yaml files inside gui/, including files in subfolders. The recommended layout is one sell menu per file under gui/sell_menus/.
Multi-Menu System
Default menu:
plugins/SellGUI/gui/sell_menus/default.yml
Example fishing menu:
plugins/SellGUI/gui/sell_menus/fishing.yml
Example mining menu:
sell_menus:
mining:
name: "Mining"
permission: "sellgui.menu.mining"
title: "&8/sellgui > Mining"
size: 36
item-filter:
allowed-items:
- "IRON_INGOT"
- "GOLD_INGOT"
- "DIAMOND"
- "EMERALD"
denied-items: []
exclusive: true
positions:
sell_button: [31]
confirm_button: [31]
filler_slots: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 26, 27, 28, 29, 30, 32, 33, 34, 35]
item_slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25]
items:
sell_button:
material: "EMERALD"
custom-model-data: 0
name: "&a&lCalculate Mining Sale"
lore:
- "&7Only mining items can be sold here."
- "&eTotal Value: &a$0.00"
glow: true
confirm_button:
material: "GREEN_CONCRETE"
custom-model-data: 0
name: "&a&lConfirm Mining Sale"
lore:
- "&fTotal: &e$%total%"
glow: true
filler:
material: "GRAY_STAINED_GLASS_PANE"
custom-model-data: 0
name: " "
lore: []
no_items:
material: "BARRIER"
custom-model-data: 0
name: "&c&lNo Items To Sell"
lore:
- "&7Add mining items to this menu."
item_total_format: "&7%amount%x &f%item% &8= &e$%total%"
evaluation_required_format: "&7%amount%x &f%item% &cNeeds Evaluation"
Open it with:
/sellgui mining
Item Filters And Exclusive Items
Each menu can define:
item-filter:
allowed-items: []
denied-items: []
exclusive: false
| Key | Description |
|---|---|
allowed-items |
If empty, the menu accepts any valid item except denied items and items locked to another exclusive menu. If populated, the menu only accepts listed items. |
denied-items |
Blocks specific items in that menu. |
exclusive |
When true, listed allowed items can only be sold in this menu. |
With exclusive: true, those items are:
- Blocked from other sell menus.
- Skipped by
/sellall. - Skipped by autosell.
Item Identifier Format
Vanilla items can be written by material name:
allowed-items:
- "COD"
- "SALMON"
Full identifiers are also supported:
allowed-items:
- "VANILLA:COD"
- "MMOITEMS:SWORD.EXCALIBUR"
- "NEXO:CUSTOM_FISH"
| Item type | Format |
|---|---|
| Vanilla | VANILLA:MATERIAL or just MATERIAL |
| MMOItems | MMOITEMS:TYPE.ID |
| Nexo | NEXO:ITEM_ID |
Price System
SellGUI can read prices from multiple sources:
itemprices.ymlfor vanilla items.mmoitems.ymlfor MMOItems.nexo.ymlfor Nexo items.- Essentials worth when
use-essentials-price: true. - ShopGUI+ when
use-shopguiplus-price: true. - NBT/PDC prices when
prices.nbt-pricing: true. - Random/evaluation prices from
random-prices.yml.
Main price config:
prices:
nbt-pricing: true
calculation-method: "auto"
default-price: 0.0
multipliers:
enabled: true
permission-based: true
default-multiplier: 1.0
max-multiplier: 5.0
random-pricing:
enabled: false
variation-percent: 10.0
prices.calculation-method values:
| Value | Description |
|---|---|
auto |
Automatically choose the best available price source |
config |
Use SellGUI config prices only |
essentials |
Use Essentials worth only |
nbt |
Use NBT price only |
shopguiplus |
Use ShopGUI+ only |
Price Setter
Open the GUI:
/sellguiprice
Workflow:
- Place an item in the center slot.
- Use the GUI or chat input to enter a price.
- Click save to write the price.
Quick command:
/sellgui setprice 10
In most price-setting flows, price 0 can be used to remove the saved price.
Price Evaluation
Open the GUI:
/sellgui evaluate
Use this when items must be evaluated before they can be sold. Related files:
plugins/SellGUI/gui/price_evaluation.yml
plugins/SellGUI/random-prices.yml
If general.allow-player-evaluation-stack: false, players cannot evaluate a whole stack at once.
Autosell
Open the GUI:
/autosell
/sellgui autosell
Autosell lets players toggle automatic selling for priced items. Player data is stored in:
plugins/SellGUI/autosell_data.yml
In v3, autosell skips items locked to exclusive sell menus so category-specific items are not sold accidentally.
SellAll
Commands:
/sellall
/sellall confirm
/sellall calculates a preview. The player then confirms with /sellall confirm.
In v3, /sellall skips:
- Items with no price.
- Enchanted items when
sell-all-command-sell-enchanted: false. - Items that require evaluation but have not been evaluated.
- Items locked to an exclusive sell menu.
Item Stack Normalization
V3 adds stack normalization to fix vanilla items that stop stacking because of temporary SellGUI metadata or lore.
Config:
stacking:
enabled: true
normalize-on-join: true
normalize-on-quit: true
normalize-on-plugin-disable: true
normalize-smelt-results: true
normalize-after-furnace-extract: true
This removes temporary SellGUI metadata such as current_price, evaluated, and Evaluated: ... lore when appropriate, then merges similar stacks in the player's inventory.
It does not intentionally remove custom NBT or metadata from other plugins, so custom items with real metadata stay intact.
PlaceholderAPI
When PlaceholderAPI is installed, SellGUI registers the sellgui identifier and processes PlaceholderAPI placeholders in supported GUI text.
SellGUI PlaceholderAPI Placeholders
| Placeholder | Description |
|---|---|
%sellgui_pricehand% |
Price of the item in the player's main hand |
%sellgui_pricehandfull% |
Item name and price of the item in hand |
Built-In Placeholders
These placeholders can be used in SellGUI text/config values. If PlaceholderAPI is installed, SellGUI lets PlaceholderAPI process placeholders first. If PlaceholderAPI is missing or fails, SellGUI falls back to these built-in placeholders.
| Placeholder | Description |
|---|---|
%player% |
Player name |
%player_name% |
Player name |
%player_displayname% |
Player display name |
%player_uuid% |
Player UUID |
%player_world% |
Player world name |
%player_x% |
Player block X position |
%player_y% |
Player block Y position |
%player_z% |
Player block Z position |
%player_health% |
Current player health |
%player_max_health% |
Max player health |
%player_food% |
Player food level |
%player_level% |
Player XP level |
%player_exp% |
Player XP progress percent |
%vault_eco_balance% |
Player Vault economy balance |
%player_balance% |
Player Vault economy balance |
%server_name% |
Server name |
%server_version% |
Full server version |
%server_bukkit_version% |
Bukkit version |
%server_online% |
Online player count |
%server_max_players% |
Max player count |
%sellgui_version% |
SellGUI plugin version |
%sellgui_author% |
SellGUI plugin authors |
%time% |
Current server local time |
%date% |
Current server local date |
%timestamp% |
Current server local date and time |
Worth Lore Through PacketEvents
Enable in config.yml:
general:
add-worth-lore: true
PacketEvents is required. SellGUI displays worth lore through packets so the real inventory item is not constantly rewritten with lore.
GUI titles where worth lore should not be shown:
general:
worth-lore-blacklist-gui-titles:
- "ah"
- "Auction House"
- "My Chest"
Migration From Older Versions
If you are upgrading from a pre-v3 build:
- Back up
plugins/SellGUI/. - Stop the server.
- Install the v3 jar.
- Start the server to generate the new
gui/folder. - Move old GUI layout/menu settings from
gui.ymlinto files undergui/. - Put each sell menu in its own file under
gui/sell_menus/<menu>.yml. - Run
/sellgui reload.
Important changes:
| Old | New |
|---|---|
Root gui.yml |
gui/ folder |
| One sell GUI | Multiple sell menus under gui/sell_menus/ |
| Items sold anywhere | Items can be locked to one menu with exclusive: true |
Troubleshooting
/sellgui fishing says the player has no permission
Make sure the player has the menu permission:
sellgui.menu.fishing
An item cannot be sold in the default menu
Check whether the item belongs to another exclusive menu. For example, fish in fishing.yml has exclusive: true, so fish can only be sold through /sellgui fishing.
/sellall does not sell some items
Check:
- The item has a price in
itemprices.yml,mmoitems.yml,nexo.yml, Essentials, or ShopGUI+. - The item is enchanted while
sell-all-command-sell-enchanted: false. - The item requires evaluation.
- The item is locked to an exclusive menu.
Maven build fails because of ShopGUI API
Make sure this file exists:
libs/shopgui-api-3.1.0.jar
Then build again:
mvn -q -DskipTests package
Important Files
| File | Description |
|---|---|
src/main/resources/config.yml |
Default core config |
src/main/resources/gui/sell_menus/default.yml |
Default sell menu |
src/main/resources/gui/sell_menus/fishing.yml |
Example fishing sell menu |
src/main/resources/gui/price_setter.yml |
Price Setter GUI layout |
src/main/resources/gui/price_evaluation.yml |
Price Evaluation GUI layout |
src/main/resources/gui/autosell_settings.yml |
Autosell Settings GUI layout |
src/main/resources/itemprices.yml |
Vanilla item prices |
src/main/resources/mmoitems.yml |
MMOItems prices |
src/main/resources/nexo.yml |
Nexo item prices |
src/main/resources/random-prices.yml |
Random/evaluation prices |
CHANGELOG.md |
v3 changelog |
Changelog
See CHANGELOG.md.
Support
When reporting issues, include:
- Server version.
- SellGUI version.
- Related economy/item plugins.
- Related config or menu files.
- Console error logs.
- Steps to reproduce the issue.
Ченджлог
3.1Релиз26.1, 26.1.1, 26.1.2 · 6 июня 2026 г.
SellGUI 3.1
Added
- External SellGUI price provider API for addon plugins.
- SellGUI-DynaShop addon support for ShopGUIPlus-DynaShop dynamic sell prices.
- Addon loading from
plugins/SellGUI/addons/.
Fixed
- Sound lookup compatibility on Youer/Paper-NeoForge hybrid servers.
3.0.4Релиз26.1, 26.1.1, 26.1.2 · 13 мая 2026 г.
Fixed
- Skips Nexo items during stack normalization so SellGUI does not rewrite custom Nexo metadata during cleanup passes.
- Preserves Nexo item presentation better during join, quit, smelt-result cleanup, and plugin shutdown normalization.
Included from 3.0.3
- Worth lore packet handling now updates only the packet lore component instead of rebuilding Bukkit item meta.
- Fixes Nexo custom attribute displays resetting to default-style formatting when worth lore is shown.
3.0.2Релиз26.1, 26.1.1, 26.1.2 · 11 мая 2026 г.
Added
- Added
item-model,hide-tool-tip, andtooltip-stylesupport forcustommenuitems.ymlentries. - Added example comments for modern item component fields in
custommenuitems.yml.
Changed
- Updated plugin and Maven version to
3.0.2.
3.0.1Бета26.1, 26.1.1, 26.1.2 · 10 мая 2026 г.
Changelog
3.0.1 - 2026-05-10
Added
- Added
menus:support documentation and examples incustommenuitems.ymlso custom menu buttons can be limited to specific sell menus. - Added
worth-lore-whitelist-guiandworth-lore-whitelist-gui-titlestoconfig.yml. - Added worth-lore GUI title normalization for plain titles, legacy hex colors, and MiniMessage-style hex color tags.
Changed
- Updated plugin and Maven version to
3.0.1. - Worth lore can now run in blacklist mode as before, or whitelist mode when
worth-lore-whitelist-guiis enabled. - Price evaluation now stores an explicit
evaluatedmarker alongsidecurrent_price. - Stacking normalization now preserves evaluated item lore and
current_priceinstead of treating them as temporary data.
Fixed
- Fixed sell button lore replacing lines such as
Click to review the total.and causing duplicateTotal Valuelines. - Fixed evaluated/random-price items losing their evaluated lore during stacking normalization.
- Fixed evaluated/random-price items losing sellability when
current_pricewas removed during normalization. - Fixed evaluated item detection so
current_priceis recognized as an evaluated state.
3.0.0 - 2026-05-09
Added
- Added multi-menu sell GUI support through separate files in
gui/sell_menus/. - Added default sell menu:
gui/sell_menus/default.yml. - Added fishing-only sell menu example:
gui/sell_menus/fishing.yml. - Added
/sellgui <menu>support so players can open a specific sell menu. - Added
/sellgui <player> <menu>support for opening a specific menu for another player. - Added tab completion for available sell menu IDs.
- Added exclusive menu item rules so configured items can only be sold in their assigned menu.
- Added item stack normalization after furnace smelting, furnace extraction, player join, player quit, and plugin disable.
- Added
stackingconfig section to control item stack normalization behavior. - Added bundled
libs/shopgui-api-3.1.0.jarso Maven builds work after cloning the repository.
Changed
- Reworked SellGUI core logic around
SellMenuConfigfor cleaner multi-menu handling. - Split the old root
gui.ymlinto agui/folder:gui/sell_menus/default.ymlgui/sell_menus/fishing.ymlgui/price_setter.ymlgui/price_evaluation.ymlgui/autosell_settings.yml
- Updated config loading to merge all GUI YAML files from the
gui/folder at runtime. - Cleaned
config.ymlso core settings stay separate from GUI layout settings. - Updated plugin version to
3.0.0. - Updated Maven configuration to use the bundled ShopGUI API jar.
- Updated sell GUI rendering and confirm flow to respect the active menu.
- Updated autosell settings GUI to fit the cleaned config structure.
Fixed
- Fixed
/sellallselling items that should be locked to an exclusive sell menu. - Fixed autosell selling items that should be locked to an exclusive sell menu.
- Fixed intermittent item stacking problems caused by temporary SellGUI evaluation metadata and lore.
- Fixed evaluated item metadata causing vanilla items to stay split after smelting, join/leave, or server restart.
- Fixed GUI config generation so new installs create the new
gui/folder structure instead of a rootgui.yml. - Fixed build portability by committing the ShopGUI API dependency used by
pom.xml.
Migration Notes
src/main/resources/gui.ymlhas been removed.- Server configs should now use the generated
plugins/SellGUI/gui/folder. - Each sell menu should live in its own YAML file under
plugins/SellGUI/gui/sell_menus/. - Items configured as exclusive to one menu will be skipped by other sell menus,
/sellall, and autosell.
2.9.6.2Релиз1.21.11, 26.1, 26.1.1 · 6 апреля 2026 г.
!
work all section item in gui.yml
Fixed issues permission multiplier
Fixed item special nbt price issue.
2.9.5Бета1.21.9, 1.21.10, 1.21.11 · 5 марта 2026 г.
- Fixed calculation for Shulker Boxes, including items' worth in lore and the sell GUI.
- Added price support for items with custom display names, model data, custom lore, etc.
- Updated format for messages and GUI.
- Fixed some issues with the /sellall command.
- Added dependency on NBTAPI (this plugin requires it to function).
- Added settings to enable/disable custom menu items in custommenuitem.yml.
- Added 'worth-lore-blacklist-gui-titles' option in config.yml.
- Worth display now appears anywhere in the GUI.
MAKE SURE UPDATE YOUR CONFIG.YML, GUI.YML, CUSTOMMENUITEMS.YML
https://github.com/NguyenSonhoa/SellGUI/tree/main/src/main/resources to UPDATE YOUR YML
2.9.1Бета1.20.6 · 26 февраля 2026 г.
Fixed Display Worth Lore Issues
2.9Релиз1.20.6 · 13 января 2026 г.
FIXED METHOD CALCULATION.
FIXED AUTOSELL SETTINGS GUI WRONG SLOT.
FIXED AUTOSELL SETTINGS GUI GETTING WRONG ITEM & PRICES WHEN YOU CHANGE METHOD.
NEW FEATURES: WORTH LORE.
FIXED DEPEND PLACEHOLDERAPI.
SUPPORT 1.21.11.
BACKUP YOUR CONFIG.YML, GUI.YML, MESSAGES.YML
Комментарии
Загружаем…