Unofficial site, not affiliated with modrinth.com.What is this?

SellGUI v3

2028end

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.

WIKI

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.yml and fishing.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-items allows only specific items.
    • denied-items blocks specific items.
    • exclusive: true locks listed items to that menu only.
  • /sellall and autosell now skip items locked to exclusive menus.
  • Split the old root gui.yml into a cleaner gui/ folder.
  • Added item stack normalization to fix items not stacking after smelting, joining, leaving, or server restart.
  • Bundled libs/shopgui-api-3.1.0.jar so Maven builds work from a fresh clone.
  • Addon Plugin Support

Requirements

Required

ComponentNotes
JavaJava 21 recommended for modern Paper/Spigot 1.20.6+ servers
ServerPaper/Spigot 1.20.6+, optimized for 1.21+
VaultRequired for economy support
Economy pluginEssentialsX, CMI, or any Vault-compatible economy plugin
NBTAPIRequired dependency in plugin.yml

Optional

PluginPurpose
EssentialsXUse Essentials worth prices
ShopGUIPlusUse ShopGUI+ sell prices
MMOItemsDetect and price MMOItems
NexoDetect and price Nexo items
MythicLibExtra item/NBT metadata support
PlaceholderAPIRegisters %sellgui_*% placeholders
PacketEventsDisplays item worth lore through packets when enabled

Installation

  1. Download the SellGUI v3 jar.
  2. Place the jar in your server plugins/ folder.
  3. Make sure Vault, NBTAPI, and an economy plugin are installed.
  4. Restart the server so SellGUI can generate its files.
  5. Edit files inside plugins/SellGUI/.
  6. Run /sellgui reload or 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

CommandDescriptionPermission
/sellguiOpen the default sell menusellgui.use
/sellgui <menu>Open a specific sell menu, for example /sellgui fishingsellgui.use and the menu permission
/sellgui <player>Open the default menu for another playersellgui.others
/sellgui <player> <menu>Open a specific menu for another playersellgui.others
/sellgui helpShow in-game helpsellgui.use
/sellgui reloadReload configs and GUIssellgui.reload
/sellgui evaluateOpen the Price Evaluation GUIsellgui.evaluate
/sellgui autosellOpen the Autosell Settings GUIsellgui.autosell
/autosellOpen the Autosell Settings GUIsellgui.autosell
/sellgui setprice <amount>Set a fixed price for the item in handsellgui.setprice
/sellgui setrange <min> <max>Set a random price range for the item in handsellgui.setrange
/sellguipriceOpen the Price Setter GUIsellgui.setprice
/sellguiprice <price>Enter a price for the item in the open Price Setter GUIsellgui.setprice
/sellallPreview selling all valid inventory itemssellgui.sellall
/sellall confirmConfirm /sellallsellgui.sellall

Permissions

PermissionDefaultDescription
sellgui.*plugin manager/opAccess to all declared SellGUI permissions
sellgui.usetrueUse the basic SellGUI command
sellgui.adminopGeneral admin permission
sellgui.othersmanual grantOpen SellGUI for other players
sellgui.reloadopReload the plugin
sellgui.setpriceopUse the Price Setter and fixed price commands
sellgui.setrangeopSet random price ranges
sellgui.evaluateopUse the Price Evaluation GUI
sellgui.sellalltrueUse /sellall
sellgui.autoselltrueOpen the autosell GUI
sellgui.menu.*trueAccess all configured menus declared in plugin.yml
sellgui.menu.defaulttrueOpen the default menu
sellgui.menu.fishingtrueOpen the example fishing menu
sellgui.bonus.<number>falseAdds a sell bonus, depending on the pricing path
sellgui.multiplier.<number>falseMultiplies 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
KeyDescription
allowed-itemsIf 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-itemsBlocks specific items in that menu.
exclusiveWhen 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 typeFormat
VanillaVANILLA:MATERIAL or just MATERIAL
MMOItemsMMOITEMS:TYPE.ID
NexoNEXO:ITEM_ID

Price System

SellGUI can read prices from multiple sources:

  • itemprices.yml for vanilla items.
  • mmoitems.yml for MMOItems.
  • nexo.yml for 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:

ValueDescription
autoAutomatically choose the best available price source
configUse SellGUI config prices only
essentialsUse Essentials worth only
nbtUse NBT price only
shopguiplusUse ShopGUI+ only

Price Setter

Open the GUI:

/sellguiprice

Workflow:

  1. Place an item in the center slot.
  2. Use the GUI or chat input to enter a price.
  3. 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

PlaceholderDescription
%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.

PlaceholderDescription
%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:

  1. Back up plugins/SellGUI/.
  2. Stop the server.
  3. Install the v3 jar.
  4. Start the server to generate the new gui/ folder.
  5. Move old GUI layout/menu settings from gui.yml into files under gui/.
  6. Put each sell menu in its own file under gui/sell_menus/<menu>.yml.
  7. Run /sellgui reload.

Important changes:

OldNew
Root gui.ymlgui/ folder
One sell GUIMultiple sell menus under gui/sell_menus/
Items sold anywhereItems 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

FileDescription
src/main/resources/config.ymlDefault core config
src/main/resources/gui/sell_menus/default.ymlDefault sell menu
src/main/resources/gui/sell_menus/fishing.ymlExample fishing sell menu
src/main/resources/gui/price_setter.ymlPrice Setter GUI layout
src/main/resources/gui/price_evaluation.ymlPrice Evaluation GUI layout
src/main/resources/gui/autosell_settings.ymlAutosell Settings GUI layout
src/main/resources/itemprices.ymlVanilla item prices
src/main/resources/mmoitems.ymlMMOItems prices
src/main/resources/nexo.ymlNexo item prices
src/main/resources/random-prices.ymlRandom/evaluation prices
CHANGELOG.mdv3 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.

Совместимость

Minecraft: Java Edition

Платформы

Сведения

Лицензия:
Опубликован:10 месяцев назад
Обновлён:1 неделю назад
ID проекта:
Главная