Shops

You will learn step by step what every option in shop configs mean and how to configure/use it.

The file name defines the shop internal name and needs to match the filename for the section config inside the sections folder

General information about the shops configuration.

Since version v6 or Premium v5 of the plugin, sections are stored in their seperate config, instead of using a single sections.yml config to store all of them.

These configs store all items for the specific shop category(section) which are linked to the specific sections config. This config stores all contents of the shop including shop items and per page configurations.

  • Custom items from other plugins are only supported with ESGUI-Premium. (Unless they are created with keys available in the Free version)

We recommend you change the prices of the items to suit your server's economy. There are many different types of servers, such as skyblock, survival, factions, pvp, etc... Most servers will need to customize the shops to their needs and have different prices from other servers. If you choose to use the default configs as-is, you may. You may also check discord #Shop-Files-Sharing channel for shop files that may suit your needs.

Please read About YAML before editing your files! It DOES NOT tolerate any errors! Validate it!

  • TIP: Use the contents on the right side of this page to navigate quickly!

File format structure:

###### code formatting reference names: ######
pages:
  <page>:
    items:
      <itemIndex>:
        <key>: <value> #Single value key
        <key>: #List-format must support multiple values. (lore, enchants, etc..)
        - <value1>
        - <value2>
###### example: ######
pages:
  page1:
    gui-rows: 6
    items:
      item1:
        material: PAPER
        name: "Egyptian Papyrus"
        buy: 6
        sell: 2
        lore:
        - "Papyrus from ancinet Egypt"

Item settings/keys:

Item keys list:

  • material: - The item type (the block ID or Name_spaced name given to it by Mojang)

  • buy: - Price the item will cost to purchase.

  • sell: - Price the item is worth when sold to the shop/server.

  • name: - The name of the item

  • displayname: - The name shown on the item in the shop only, it is NOT applied to the given item

  • lore: - a list of custom text applied to the item.

  • displaylore: - a list of custom text applied to the shop item only, it is NOT applied to the given item.

  • hidePricingLore: - hide the default pricing lore for the item

  • slot: - This option is used to determine the slot inside the shop section

  • stack-size: - This option adds a custom stack size to the item

  • enchantment-glint: - This option lets u use a enchantment effect on the item.

  • enchantments: - a list of enchantments and level.

  • potiontypes: - a list of potion types

  • spawnertype: - the mob that a spawner is set to by ESGUI when placed. [ONLY for spawner material/item.

  • recipes: - the recipe(s) that a knowledge_book will give when used

  • skullowner: - the texture or player's skull that will be displayed by the player_head item.

  • armorcolor: - the rgb color of a leather armor piece.

  • duration:, colors:, fade-colors:, flicker:, trail:, shape: - these options can be used to create a firework

  • instrument: - Specifies the sound effect that comes from a Goat Horn

  • section: - Links the item to a shop section

  • stew-effect: - Gives a specific effect to a suspicious stew

  • armor-trim: Sets a armor trim to a armor piece

  • hidden: - Hides the item from the GUI but can still be sold to shop

  • max-buy: - Sets the maximum amount of items which can be bought per transaction

  • max-sell: - Sets the maximum amount of items which can be sold per transaction

  • prior-lore: - Whether or not to prioritize default pricing lore

  • close-menu: - Whether or not to close the shop GUI after a transaction has been made

  • display-item: - Can be used to create a different display item then the actual item received on buying/selling

Premium only item keys:

If the displayname or name is empty or not set, the item will have the vanilla name.

When only key name is specified and no displayname key, the item will use the name specified in the shop when you hover over it and when the item is bought.

When setting the sell/buy key to any negative number, the item cannot be bought/sold in the shop. (You can also remove the buy/sell price from the item for the same effect)

Creating a item with no buy and sell price will make it a filler item which you can use to decorate your shop.

Item keys breakdown:

  • A simple buy/sell able shop item only needs 3 keys specified: material, buy price, and sell price. Everything else is optional.

pages:
  pages1:
    items:
      1:
        material: milk_bucket
        buy: 20
        sell: 2

Leaving a buy/sell price unspeficied for the item will make it unbuyable/unsellable

Material:

  • This is the item or block ID that will be listed/sold in the shop.

  • It MUST be a valid name_spaced item for your version of Minecraft!

  • The material must be a valid item ID. Some lists to get these ID's from:

  • The 'Name Space' ID of an item is the code-given-name of the item.

  • It cannot have spaces or special characters and may contain underscores (_).

  • Ex: material: "experience_bottle"

  • The ID is NOT case-sensitive.

  • Direct plugin compatibility: *Premium feature

    • ItemsAdder items: material: "ia:<itemNamespace>"

    • HeadDatabase items: material: "hdb:<headID>"

    • Items from MMOItems: material: "MMOItem:<type>.<itemID>"

For compatibility reasons: any name given to items after the 1.13 'the flattening' update will work in the supported 1.8 - 1.12 versions of minecraft.

You can create a dummy spacer item in a shop by setting it's material to AIR (empty slot)

Buy:

  • This is the price or cost of the item that the player will have to pay to purchase or buy the item.

  • This can be any number.

  • This is the amount that will be removed or taken from the player's balance (stored in your vault-compatible economy plugin)

  • This value is only shown in the shop, and not on any bought item

Setting this to Any Negative Number will disable it, making it Not Purchasable/Not Buyable. Ex: buy: -1

Sell:

  • This is the value of the item when sold to the server.

  • This can be any number

  • This is the amount that will be given or paid to the player when the item is sold to the server (money is added to the player's balance.)

  • This value is only shown in the shop, and not on any bought item

Setting this to Any Negative Number will disable it, making it Not Sellable. Ex: sell: -1

Name:

  • This will specify a name for the item when it is bought from shop AND when no displayname option is specified it will also be the name for the item when hovering over it in shop.

#Example item with a name that is only shown in the shop, AND a name that is on the item bought.
pages:
  pages1:
    items:
      1:
        material: milk_bucket
        buy: 20
        sell: 2
        displayname: "&f&lGot Milk?" #this is what is shown in the shop.
        name: "&bWe got &f&lMilk!" #this is the name that will be on the item when purchased/bought.

Only specifing option name on the item will make it use the same displayname when hovering over it AND the name for the item when it is bought.

Displayname:

  • Do not confuse this option with name since this option will ONLY set the name for the display item inside the shop(When hovering over the item)

  • It will NOT be on the item when purchased/bought.

#Example item with a display name that is only shown in the shop, and not on the item bought
pages:
  pages1:
    items:
      1:
        material: milk_bucket
        buy: 20
        sell: 2
        displayname: "Got Milk?"

Lore:

#Example item with a name that is only shown in the shop, AND a name that is on the item bought.
pages:
  pages1:
    items:
      1:
        material: netherite_shovel
        buy: 2000000
        sell: 5000
        displayname: "&c&lDevil's Paw"
        name: "&c&lDevil's Paw"
        lore:
        - "&5This is the severed hand of"
        - "&5the devil himself. Be careful,"
        - "&5who can say what unholy powers"
        - "&5it may still contain..."

The lore/displaylore key work the same as the name/displayname key but instead it specifies the lore. Meaning that when only lore is specified, the item will use the lore as the lore when hovering over the item AND when you buy the item.

Displaylore:

  • Do not confuse this option with lore since this option will ONLY set the lore for the display item inside the shop(When hovering over the item)

  • Create custom text and info about the item!

  • You may use placeholder %buyPrice%/%sellPrice%

pages:
  pages1:
    items:
      1:
        material: AMETHYST_SHARD
        buy: 10
        sell: 5
        lore: # This is the lore of the item when bought from shop
        - '&cNotch'
        displaylore: # This is the lore of the item when hovering over it in shop
        - '&1Gypopo'

HidePricingLore:

  • Option hidePricingLore will do what the name suggests, it will hide the default pricing lore of the item so you could add your own for example

  • This will hide the pricing lore even if the item is still purchase/sell-able

  • This option comes in handy when you want to make dummy/display items

pages:
  pages1:
    items:
      1:
        material: LAVA_BUCKET
        buy: 200
        sell: 75
        hidePricingLore: true # This will make the prices not visible for the player
      2:
        material: WATER_BUCKET
        buy: -1
        sell: -1
        hidePricingLore: true # This will hide the default 'This item cannot be bought/sold' lore

This option allows to hide the default pricing lore as a per item setting but to fast forward it you can empty out the lore inside the language file which will do the same but for every item

Slot:

  • Option slot can determine the position of the item inside the shop section

  • This can be slot: 14 for example to put the item inside page one on item slot 14

  • This can be 'slot: 55' for example to put the item inside page two on item slot 10

pages:
  pages1:
    items:
      1:
        material: chainmail_chestplate
        buy: 25
        sell: 10
        name: "&d&lKnight's armor piece"
        slot: 11
      2:
        material: iron_chestplate
        buy: 35
        sell: 15
        name: "&d&lKnight's armor piece"
        slot: 13
      3:
        material: diamond_chestplate
        buy: 50
        name: "&d&lKnight's armor piece"
        slot: 15
      4:
        material: netherite_chestplate
        buy: 100
        name: "&d&lKnight's armor piece"
        slot: 17

The slot of the item determines the position of the item inside the whole shop section, not only the shop page! For example slot: 445 makes the item move to slot 5 of page 10 inside the shop section.

A item's slot can easly be calculated by multiplying the shop page times 45 and then just adding the item's position you want to have the item in. For example, I want my item to be at page 3 at slot 25, the formulla would be 3 x 45 = 135 + 25 = slot 160

Stack size:

  • Option stack-size sets the stack size of the shop item

  • When for example the stack size is set to 5, when the player purchases 2 stacks of this item, they will receive 10 items in total

pages:
  pages1:
    items:
      1:
        material: APPLE
        name: "&cA stack of 20 apples"
        buy: 200
        sell: 50
        stack-size: 20

Note: When setting a items stack-size, the prices of the item count for the whole stack. So meaning with the item above, 10 apples would be worth $100 and sell for $25.

Enchantment glint:

  • This option lets u add a enchantment glow effect to any item to give your shop items a more personal touch.

Note: This will add a 'dummy' enchantment of aqua affinity 1 to the item, but default lore will be removed.

pages:
  pages1: 
    items:
      1:
        material: BLAZE_ROD
        name: "&cShiny rod"
        buy: 50.0
        sell: 10.0
        enchantment-glint: true

Enchantments:

  • Add as many enchantments as you want to an item!

  • enchantments is a yml-list-format list of valid enchantments that are applied to the item when bought.

  • Enchantments must be in this format: <Enchantment>:<level> (without the "<>") if no level is specified (no :1, it will be level 1)

  • To enable enchants greater than default/vanilla you must enable allow-unsafe-enchants: true in the config.yml

  • Custom enchants from external plugins like EcoEnchants, AdvancedEnchantments, ExcelentEnchants are directly supported using the format of <plugin>:<enchantment>:<level> *Premium feature

#Example of an Enchanted item:
pages:
  pages1:
    items:
      1:
        material: diamond_pickaxe
        buy: 2000000
        sell: 5000
        displayname: "&4Silky Smooth"
        name: "&4Silky Smooth"
        lore:
        - "&5The smooooothest pick!"
        enchantments:
        - "silk_touch:1"
        - "efficiency:5"
        - "ecoenchants:blast_mining:3" # Example of a custom enchant from EcoEnchants

Potion Types:

Normal Potion Types:

Potion namespace (USE THIS)

Commonly known as:

Vanilla duration and strength

fire_resistance

Fire Resistance

180 sec | 1

harming

Instant Damage, Harming

0 sec | 1

healing

Instant Health, Instant Healing, Heal

0 sec | 1

invisibility

Invisibility

180 sec | 1

leaping

Leaping, Jumping, Jump Boost, Jump

180 sec | 1

night_vision

Night Vision

180 sec | 1

poison

Poison

45 sec | 1

regeneration

Regeneration, Healing

45 sec | 1

slow_falling

Slow Falling

90 sec | 1

slowness

Slowness

90 sec | 1

strength

Strength

180 sec | 1

swiftness

Swiftness, Speed

180 sec | 1

turtle_master

Turtle Master

20 sec | 1

water_breathing

Water Breathing,

180 sec | 1

weakness

Weakness

90 sec | 1

Extended Potion Types:

Potion namespace (USE THIS)

Commonly known as:

Vanilla duration and strength

long_fire_resistance

Fire Resistance

480 sec | 1

long_invisibility

Invisibility

480 sec | 1

long_leaping

Leaping, Jump Boost, Jump

long_night_vision

Night Vision

480 sec | 1

long_poison

Poison

120 sec | 1

long_regeneration

Regeneration

120 sec | 1

long_slow_falling

Slow Falling

240 sec | 1

long_slowness

Slowness

240 sec | 1

long_strength

Strength

480 sec | 1

long_swiftness

Swiftness, Speed

480 sec | 1

long_turtle_master

Turtle Master

40 sec | 1

long_water_breathing

Water Breathing

480 sec | 1

long_weakness

Weakness

240 sec | 1

Strong/Level 2 Potions:

Potion namespace (USE THIS)

Commonly known as:

Vanilla duration and strength

strong_harming

Harming II

0 sec | 2

strong_healing

Healing II

0 sec | 2

strong_leaping

Jump Boost II, Jump II, Leaping II

90 sec | 2

strong_poison

Poison II

22 or 60 sec | 2

strong_regeneration

Regeneration II

22 or 60 sec | 2

strong_strength

Strength II

90 or 240 sec | 2

strong_swiftness

Swiftness II, Speed II

90 or 240 sec | 2

strong_turtle_master

Turtle Master II

20 sec | 2

Potions available, but not craft-able:

Potion namespace (USE THIS)

Commonly known as:

Vanilla duration and strength

luck

Luck

300 sec | 1

  • Luck only obtainable as a tipped_arrow from a fletcher villager after receiving hero of the village status effect

Other Potions, but have no effects:

Potion namespace (USE THIS)

Commonly known as:

awkward

Awkward

empty

Empty

mundane

Mundane

thick

Thick

water

Water

NOTE: Potion duration listed is for a standard potion, not Tipped Arrows or lingering potions

Potions Examples:

pages:
  pages1:
    items:
      1:
        #a common craftable vanilla potion:
        material: POTION
        displayname: "Potion of Fire Resistance"
        buy: 11.9
        sell: 2.98
        potiontypes:
        - fire_resistance
      2: 
        #example of 'custom' potion: full list NOT Reccomended for survival servers!!
        material: POTION
        displayname: "&bSuperman Potion"
        name: "&bSuperman Potion"
        buy: 5000
        sell: 50
        potiontypes:
        - long_fire_resistance
        - long_night_vision
        - long_leaping
        - long_regeneration
        - long_strength
        - long_swiftness
        - long_water_breathing

Spawner Type:

Tip: When key name has been specified on the item, the spawner will have the specified name when mined by a player! :)

#Example Spawner item
pages:
  pages1:
    items:
      1:
        material: SPAWNER
        #you MUST specify a spawner type, otherwise they will always be pig(default) spawners
        spawnertype: BLAZE
        #the 'name' will also be applied to the item when MINED if the mined spawner's mobtype is specified in ESGUI (and spawner-break is enabled in in config)
        #the name is optional, however without it, you can't tell what mob the spawner is set too without showing nbt data on your client (it will just say 'spawner' to everyone)
        name: '&6&lBlaze &fSpawner'
        buy: 125000

Recipes:

  • A list of recipes that can be applied to the item and given to the player when the item is used.

  • Recipe books will give/learn the recipes for a player when they activate it(right click the book).

We will not be going in depth into recipes here. Please consult knowledge_book documentation here. However, the majority of recipes are written as minecraft:iron_ingot for example.

#Example Knowledge Book item:
pages:
  pages1:
    items:
      1:
        material: Knowledge_book
        name: "Get Rusty"
        recipes: 
        - "minecraft:iron_ingot"
        - "minecraft:furnace"
        - "minecraft:NETHERITE_SWORD"
        buy: 10

Skull Owner:

  • skullowner must be a valid mojang-account player's name.

  • If the playername is invalid/does not exist, the default/generic texture will be used.

#Example Playerhead item:
pages:
  pages1:
    items:
      1:
        material: player_head
        skullowner: notch
        buy: 500
        sell: 50

Armor Color:

#Example ArmorColor item:
pages:
  pages1:
    items:
      1:
        material: player_head
        armorcolor: "0x00FF00"
        buy: 500
        sell: 50

Firework options:

  • duration: is the flight duration of the firework

    • Valid options: 1, 2, 3 (Each value represents how much gunpowder would be used)

  • colors: a list of colors that are used inside the firework's main exploisen

    • Valid options are: White, Orange, Magenta, Light_Blue, Yellow, Lime, Pink, Gray, Light_Gray, Cyan, Purple, Blue, Brown, Green, Red, Black

  • fade-colors: a list of colors that are used inside the firework's fading

    • Valid options: White, Orange, Magenta, Light_Blue, Yellow, Lime, Pink, Gray, Light_Gray, Cyan, Purple, Blue, Brown, Green, Red, Black

  • flicker: true/false Whether or not this firework has the twinkle effect, this is the same as using glowstone when crafting

  • trail: true/false Whether or not this explosion has the trail effect, this is the same as using a diamond when crafting

  • shape: The shape of the explosion of the firework

    • Valid options: ball, ball_large, star, burst, creeper

If you want to add fade-colors, flicker, trail or shape you need to specify atleast one color

pages:
  pages1:
    items:
      1:
        material: FIREWORK
        buy: 38.50
        sell: 20
        duration: 2
        colors:
          - "cyan"
          - "purple"
        fade-colors:
          - "black"
          - "gray"
        flicker: true
        trail: true
        shape: BURST

Instrument:

  • Add this to goat horns to specify which sound they create

    • Valid sounds: PONDER, SING, SEEK, FEEL, ADMIRE, CALL, YEARN, DREAM

  • The item material needs to be a GOAT_HORN for this option to work

pages:
  pages1:
    items:
      19:  
        material: GOAT_HORN
        buy: 100  
        sell: 25  
        instrument: "dream"

Sub sections:

  • This item option will link the item to a shop section

    • Upon clicking the item the player will enter the section linked

pages:
  pages1:
    items:
      29:
        material: "COBBLESTONE"
        section: Cobblestones
        lore:
        - "&6&lClick to enter the CobbleStone section"

Stew effect:

  • Allows you to specify a potion effect on a suspicious stew

pages:
  pages1:
    items:
      Stew_1:
        material: SUSPICIOUS_STEW
        buy: 5
        sell: 2
        stew-effect: REGENERATION
Potion typeIDDuration

NIGHT_VISION

0

5s

JUMP_BOOST

1

6s

WEAKNESS

2

9s

BLINDNESS

3

8s

POISON

4

12s

SATURATION

6

0.35s

FIRE_RESISTANCE

7

4s

REGENERATION

8

8s

WITHER

9

8s

Armor Trim:

  • Allows the armor piece to have a preset armor trim effect

  • type: sets the armor trim material/type

    • Valid values are: AMETHYST, COPPER, DIAMOND, EMERALD, GOLD, IRON, LAPIS, NETHERITE, QUARTZ, REDSTONE

  • pattern: sets the armor trim pattern

    • Valid values are: COAST, EYE, DUNE, RIB, HOST, RAISER, SENTRY, SHAPER, SILENCE, SNOUT, SPIRE, TIDE, VEX, WARD, WAYFINDER, WILD

  • See this site for a armor trim generator: https://minetrim.com/

pages:
  page5:
    items:
      ArmorTrim1:
        material: NETHERITE_CHESTPLATE
        buy: 750
        sell: 200
        armor-trim:
          type: GOLD
          pattern: WARD

Hidden:

  • Whether or not to hide the item from displaying in shop.

Hidden items can still be sold to shop using /sellgui or /sellall.

pages:
  pages1:
    items:
      Hidden1:
        material: "ENCHANTED_GOLDEN_APPLE"
        hidden: true # The item is not displayed in the food section

Max buy:

  • When set to -1, allows players to purchase the item by just clicking it in shop without opening the buy screen!

  • Sets the maximum amount the item can be bought per transaction.

Since EconomyShopGUI v6.0.0 and EconomyShopGUI Premium v5.0.0 max-buy will require to be set to -1 instead of 1 to allow insta purchases.

pages:
  pages1:
    items:
      Item5:
        material: STONE
        stack-size: 32 # Will instant buy 32 stone without entering the buy screen
        max-buy: 1 # When set to 1, players will skip the buy screen
        buy: 5
        sell: 2.5

Max sell:

  • When set to -1, allows players to sell the item by just clicking it in shop without opening the sell screen!

  • Sets the maximum amount the item can be sold per transaction.

Since EconomyShopGUI v6.0.0 and EconomyShopGUI Premium v5.0.0 max-sell will require to be set to -1 instead of 1 to allow insta sells.

pages:
  pages1:
    items:
      Item6:
        material: STONE_CUTTER
        max-sell: 5 # Will only allow you to sell 5 items at a time
        buy: 5
        sell: 2.5

Prior lore:

  • Sets whether or not to prioritize item lore above default pricing lore

  • When enabled, will prioritize item lore defined with lore or displaylore

  • When disabled, the item's pricing lore will be displayed on top of item lore

  • This defaults to false

pages:
  pages1:
    items:
      Mob5:
        material: SPAWNER
        spawner-type: SKELETON
        buy: 8000
        displaylore:
        - "&c--------------"
        - "&2A magic block which can spawn skeletons"
        - "&c--------------"
        prior-lore: true # Displaylore will be above the pricing lore

Close menu:

  • Will close the shop GUI when this item has been purchased/sold

pages:
  pages1:
    items:
      Test1:
        material: STONE
        buy: 40
        stack-size: 128
        max-buy: 1 # Will enable quick-buy
        close-menu: true # Closes the menu when purchased

Display Items:

  • Display items are different then the actual item received upon buying/selling

  • Can be used to create a misleading shop item to trick players into buying a completely different item

pages:
  pages1:
    items:
      misleading_shopitem:
        material: APPLE
        buy: 2
        sell: 0.5
        displaylore:
        - '#FFC400&lA delicious apple'
        display-item:
          material: GOLDEN_APPLE
          displayname: '#FFC400&lA delicious apple'

This item will appear as a golden apple in shop, but will be a regular apple when purchased.

Premium only item keys:

Requirements:

  • Sets a list format of requirements for this specific shop item

  • A player requires to meet a item requirement before they will be able to purchase/sell the item

  • Multiple requirements can be used on a single shop item, making it required for the player to meet all of the requirements

A list of currently supported requirements is as follows(More to come):

TypeDescriptionFormatFormat example

Player level

Requires the level of the player to be higher or equal to the requirement

LEVEL::<number>

LEVEL::35

Player playtime

Requires the player's playtime to be higher or equal to the requirement.

PLAYTIME::<time>

PLAYTIME::5d 12h

pages:
  pages1:
    items:
      9:
        material: SPAWNER
        spawner-type: BLAZE
        display-lore:
        - "&aA advanced spawner only experienced players can use"
        buy: 1000000
        sell: 250000
        slot: 13
        requirements:
        - "LEVEL::35" # Requires a minimum level of 35
        - "PLAYTIME::15m" # Requires a minimum playtime of 15 minutes

Skull texture:

pages:
  pages1:
    items:
      1:
        material: PLAYER_HEAD
        skull-texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTU3YTU4NTdiZGFhYTBjNDZmYTMyN2RjNWVhYmZiYWRlNjVkMGJjMWZkYTg0NWZhMDE0ODZjYjBlYTZjNDczMCJ9fX0=
        buy: 1.0
        name: "§a§lMr. §c§lSwamp Monster"

When using a skull texture, the material of the item needs to be a player head

NBT Data:

  • NBTData is a Single-Line custom field for defining highly specific data on an item that you define

  • Please consult the minecraft wiki documentation and resources of your choice to generate this information.

A line of NBTData that contains double quotes (")and NO single quotes needs to start and end with a single quote Example: '{Enchantments:[{id:"knockback",lvl:50},{id:"sharpness",lvl:10}]}' But when there are single quotes (') located inside the NBTData, you will need to duplicate each single quote Example: ...''{display:{Name:''{"text":"...

#Example Nbt item:
pages:
  pages1:
    items:
      1:
        material: potion
        displayname: '&d&lPotion with the effects from a &6God Apple'
        name: '&d&lGod potion'
        buy: 25000
        sell: 2000
        NBTData: '{CustomPotionEffects:[{Id:10,Amplifier:2,Duration:400},{Id:22,Amplifier:4,Duration:2400},{Id:11,Amplifier:1,Duration:6000},{Id:12,Amplifier:1,Duration:6000}]}'
        #if ' are used in the data tags, you must use it TWICE inside the tag to 'escape' it and have it read by the code as a single ` on it's own.
        #Ex: 'tags:{customtags:[{''tag'':''thing''}]}'

Minecraft chat has a max character length of 255 characters. if you use commands to add this anything after this will be lost. If you need to add nbt data longer than this, please edit your YML file directly

Commands:

  • buy-commands and sell-commands are a list of commands that is executed when the item is bought or sold by a player.

    • Commands can also be delayed for a specific time after initial transaction.

  • Additionally using item option giveItem: true on a item with a buy command will make it so the command(s) get executed AND the player will receive the item itself

  • Additionally using item option requireItem: true on a item with a sell command will make it so the player requires the item in their inventory in order to execute the command AND the item will be taken

  • Different placeholders can be used inside the command:

    • %player%: The player name purchasing/selling the item.

    • %uuid%: The player UUID purchasing/selling the item.

    • %quantity%: The amount of items which were purchased/sold

    • %price%: The price which is deducted from the player's balance upon purchasing/selling this item

    • %buyPrice%: The current buy price of this shop item.

    • %sellPrice%: The current sell price of this shop item.

  • When the command starts with p: it will be executed as the player purchasing the command

  • When the command starts with o: it will be executed as the player having temp OP

Note that o: will give the player temp OP and this could be exploited. It is highly recommended that you give the player temp permissions using a permissions plugin like LuckPerms instead!

#Example Command item:
pages:
  pages1:
    items:
      1:
        material: "GOLD_INGOT"
        displayname: "&8&lGet rich or unlucky."
        buy: 1000000
        sell: 250000
        giveItem: true
        buy-commands:
        - "/minecraft:give %player% diamond 2"
        - "p: repair hand" # This command is executed as the player
        - "o: i netherite_ingot 5" # This command is executed as the player having temp OP
        requireItem: true
        sell-commands:
        - "20::/minecraft:give %player% MILK_BUCKET 1" # Will be delayed by 1 second
        - "eco reset %player%" # This command will get executed as the console
        - "effect give %player% minecraft:nausea 255 255"

Delayed commands:

Buy or sell commands can be executed a specified time after the item has been bought/sold by a player. These commands are called delayed commands.

  • The format of delayed commands is <delayInTicks>::<command>

    • Example: 6000::/broadcast This command is delayed by 5 minutes.

  • Delayed commands are saved over server restart, this allows the command to be executed weeks after initial trigger.

    • When the server is offline when a delayed command should have been executed, the command will be rescheduled to execute when the server next comes online.

It is still possible to use command placeholders inside a delayed command. (%player%, %uuid%, %price% or %quantity%)

Delayed commands cannot be executed if the player is offline, meaning that a command using p: or o: can only successfully execute if the player is online.

  • If a delayed command is scheduled to run as the player, but are not online when the delay ends, the command will be cancelled.

Global stock:

  • stock-limit-global: Specifies the amount of stock this item has available to purchase for the whole server.

  • auto-restock-global: Adds a time that starts to count down when the item is out of stock and should refill when the time ends.

  • auto-restock-global-frequency: Adds a scheduler with a timed interval which will restock the global stock limit at the specified time.

  • refill-stock: Will make the amount of stock left inside the shop refill when the item gets sold.

See the limited items page for more info on sell limits.

pages:
  pages1:
    items:
      1:
        material: NETHERITE_PICKAXE
        name: '&6&lUnbreakable Netherite pickaxe'
        displaylore:
        - '&aThis pickaxe also has efficiency 15.'
        buy: 1850000
        sell: 999000
        enchantments:
        - 'EFFICIENCY:15'
        NBTData: '{Unbreakable:1b}'
        stock-limit-global: 2 # This item can only be purchased twice on the server
        auto-restock-global: '2d' # This will make the item restock EVERY 2 days on your server
        refill-stock: true

You can leave the auto-restock-global: setting on the item and it won't be restocked EVER to make it a limited edition item.

Player stock:

  • stock-limit-player: Specifies the amount of items that there are in stock for each player individually to purchase.

  • auto-restock-player: Adds a time that starts to count down when the item is out of stock for a player for the item.

  • auto-restock-player-frequency: Adds a scheduler with a timed interval which will restock the player stock limit for all players at the specified time.

  • refill-stock: Will make the amount of stock left inside the shop refill when the item gets sold.

See the limited items page for more info on sell limits.

pages:
  pages1:
    items: 
      2:
        material: EXPERIENCE_BOTTLE
        displayname: '&e&lGet 50 levels in minecraft.'
        buy: 25000
        displaylore:
        - '&cDo you want 50 levels?'
        commands:
        - 'minecraft:experience add %player% 50 levels'
        stock-limit-player: 1 # Each player on the server can purchase this item once
        auto-restock-player: '7d 12h' # This item will be restocked for each player individually every week and 12 hours
        refill-stock: true

You can leave the auto-restock-player: setting on the item and it won't be restocked EVER to make it a limited edition item for each player individually.

Global sell limit:

  • sell-limit-global: Specifies the global sell limit for the whole server.

  • auto-restock-global-sell: Adds a time that starts counting down as soon as the sell limit is reached which will restore the sell limit after it completes.

  • auto-restock-global-sell-frequency: Adds a scheduler with a timed interval which will restore the global sell limit at the specified time.

See the limited items page for more info on sell limits.

pages:
  pages1:
    items:
      Special1:
        material: BOOKSHELF
        buy: 116.81
        sell: 29.21
        sell-limit-global: 5
        auto-restock-global-sell: 30s

Player sell limits:

  • sell-limit-player: Specifies the player sell limit for each player seperatly.

  • auto-restock-player-sell: Adds a time that starts counting down as soon as the sell limit is reached which will restore the sell limit after it completes.

  • auto-restock-player-sell-frequency: Adds a scheduler with a timed interval which will restore the player sell limit for all players at the specified time.

See the limited items page for more info on sell limits.

pages:
  pages1:
    items:  
      Special2:
        material: BOW
        sell: 700
        enchantments:
        - 'POWER:5'
        sell-limit-player: 10
        auto-restock-player-sell: 10m

Economy:

  • economy: Specifies a specific economy/currency to use for this item.

When this option is not specified or the provider couldn't be loaded, the item will use the section's default economy, when the section's economy is not specified or unable to load it will try to use the default economy.

pages:
  pages1:
    items: 
      Special3:
        material: ENCHANTED_GOLDEN_APPLE
        buy: 10 # Item will cost 10 gems
        sell: 5 # Item is sell-able for 5 gems
        economy: ULTRA_ECONOMY:Gems

Permission:

  • permission: allows you to set a per item permission.

  • Players who do not have this permission are not allowed to buy/sell this item.

The permission is only the sub part of the full permission, for default the defined permission will be prefixed with EconomyShopGUI.shop.<section>.item.<permission>

pages:
  pages1:
    items: 
      Special4:
        material: NETHERITE_SWORD
        buy: 25 # Item will cost 25 emeralds
        sell: 7 # Item is sell-able for 7 emeralds
        economy: ITEM:Emerald
        enchantments:
        - "SHARPNESS:3"
        - "UNBREAKING:3"
        - "MENDING"
        name: "&d&lGod's gift"
        lore:
        - "&aA mighty sword which"
        - "&aonly god's hands can control."
        permission: gods-gift # This will automatically translate to the permission:
                              # 'EconomyShopGUI.shop.Special_Items.item.gods-gift'

Permission requirement:

  • Sets whether the player requires the item permission

    • When disabled, allows players to purchase this item without needing the permission. But players will not be able to purchase the item if they already have the permission.

    • When enabled(default), requires the player to have this permission in order to purchase the item. This is the same as not setting this option at all.

  • Requires a item permission to be set

In the example below, the item can only be purchased once to give the player access to /warp dungeon

pages:
  pages1:
    items: 
      unlockable_item:
        material: GUNPOWDER
        NBTData: {CustomModelData:1003}
        buy: 40
        economy: LEVELS
        name: "&2&lDungeon key"
        lore:
        - '&bPurchase to get access to /warp dungeon'
        close-menu: true # Closes the GUI after the player has purchased the item
        permission: dungeon_access
        permission-requirement: false
        buy-commands:
        - 'lp user %player% permission set essentials.warps.dungeon true'
        - 'lp user %player% permission set economyshopgui.shop.<section>.item.dungeon_access true'
        

Hide util lore:

pages:
  pages1:
    items:
      Special4:
        material: NETHERITE_SWORD
        buy: 25 # Item will cost 25 emeralds
        sell: 7 # Item is sell-able for 7 emeralds
        economy: ITEM:Emerald
        enchantments:
        - "SHARPNESS:3"
        - "UNBREAKING:3"
        - "MENDING"
        name: "&d&lGod's gift"
        lore:
        - "&aA mighty sword which"
        - "&aonly god's hands can control."
        stock-limit-player: 1 # Each player can only buy this item once in its lifetime
        hideUtilLore: true # Players will not be able to see that they can buy this item only once

Dynamic pricing:

  • enabled:

    • Allows to enable or disable dynamic pricing for this item

    • Note that this only allows to disable DP for this item, you will have to enable global dynamic pricing for this to work.

  • max-stock:

    • The same as the DP max stock setting inside the config.yml, but instead this will strictly define the rate at which prices change when players buy/sell THIS SPECIFIC ITEM instead of having a max stock setting based on the item's price.

    • This is known to be more precise, lower values mean faster price changes compared to higher values.

pages:
  pages1:
    items:
      Item14:
        material: GOLD_NUGGET
        name: '&6&lCoin'
        lore:
        - '&cUsed to purchase ingame ranks'
        buy: 40
        sell: 20
        dynamic-pricing:
          enabled: false
          max-stock: 1000

Buy prices:

  • Used to add multiple payment options to a signle item

  • Economy types and the actual price are split using double colons (::).

    • Example: item:material:gold_nugget::80 where 80 is the amount/price of gold nuggets

  • The first payment option inside the list is used as the item's default payment option, meaning when someone tries to buy the item, it will default to this payment option.

  • Using option require-all: true makes it so that ALL buy prices are required to buy a item

    • When this is false(or not set), this will give the player the option to choosse which payment method they use to buy the specific item.

pages:
  pages1:
    items:
      11:
        material: MAGMA_CREAM
        buy-prices:
          require-all: true
          prices:
            - "Vault::40"
            - "item:material:diamond id:CRYSTAL::2"
            - "item:material:emerald id:Gems::30"
            - "item:material:gold_nugget id:Gold::5"
        sell: 30
  • Description from example above: Players need $40, 5 Gold Nuggets, 2 Diamonds AND 30 emeralds to buy the item

pages:
  pages1:
    items:
      12:
        material: GHAST_TEAR
        buy-prices:
          prices:
            - "ULTRA_ECONOMY:Gems::15"
            - "VAULT::40"
            - "item:material:emerald id:CRYSTAL::5"
        sell: -1
  • Description from example above: Players need 15 Gems from UltraEconomy, $40 OR 5 emeralds(aka crystals) to buy the item

    • Players can cycle thru the payment methods by right clicking the CONFIRM_TRANSACTION item inside the buy (stacks) screen.

Sell prices:

  • Used to add multiple sell prices to a signle item

  • Economy types and the actual price are split using double colons (::).

    • Example: ULTRA_ECONOMY:Gems::15 where 15 is the amount/price of the Gems currency inside Ultra Economy

  • The first payment option inside the list is used as the item's default sell price, meaning when someone sells the item, it will default to this payment option.

  • Using option give-all: true makes it so that ALL sell prices are are given to the player once the item is sold

    • When this is false(or not set), upon selling a item to the store the first sell price is used as default.

      • When selling the item thru /sellall or /sellgui and this option is false, the first sell price in the list will be used to give to the player.

      • When selling the item thru /shop and this option is false, the player will be given the option to change the payment type by right clicking the CONFIRM_TRANSACTION item.

pages:
  pages1:
    items:
      13:
        material: LEATHER
        buy: 50.0
        sell-prices:
          give-all: true
          prices:
            - "Vault::40"
            - "item:material:diamond id:CRYSTAL::2"
            - "item:material:emerald id:Gems::30"
  • Description from example above: Players will recieve $40, 2 Diamonds AND 30 emeralds for selling the item

pages:
  pages1:
    items:
      14:
        material: RABBIT_HIDE
        buy: 50.0
        sell-prices:
          prices:
            - "Vault::40"
            - "item:material:redstone::50"
  • Description from example above: Players will recieve $40 OR 50 redstone for selling the item

    • If the item is sold thru /sellgui or /sellall, the first payment type from the list of sell prices will be used to pay out the player.

Ignored tags:

Ignored NBT Tags are usefull for sold items which should be sold whether value is specified.

For example when the Enchantments tag has been added to the ignored tag list, players will be able to sell items regarding the enchantments the item has. If only the Enchantments tag is added, the item's material, name, lore and any other meta data the item has still needs to match with the ShopItem in order to successfully sell it.

This has the same affect as the global ignored NBT tags but this option doesn't affect other shop items.

In the example Recycle Shop below, players will be able to sell all the trash leahther armor regardless of the item enchantments or how far it has been damaged dropped by zombies while still getting a little bit of money for it while selling these items.

pages:
  pages1:
    items:
      1:
        material: LEAHTER_HELMET
        sell: 1.5
        ignored-tags:
        - "Enchantments"
        - "Damage"
      2:
        material: LEAHTER_CHESTPLATE
        sell: 2.5
        ignored-tags:
        - "Enchantments"
        - "Damage"
      3:
        material: LEAHTER_LEGGINGS
        sell: 2
        ignored-tags:
        - "Enchantments"
        - "Damage"
      4:
        material: LEAHTER_BOOTS
        sell: 1
        ignored-tags:
        - "Enchantments"
        - "Damage"

Transaction Message:

  • Whether to send a transaction message to the player and DiscordSRV(If enabled) when a shop item has been bought/sold from the shop

  • If this option is disabled, transaction messages won't be send to the player and DiscordSRV hook but will still log inside the console and the transaction-log.txt

  • Default value is true

pages:
  pages1:
    items:
      Test2:
        material: MOSSY_COBBLESTONE
        buy: 15
        transactionMessage: false

Display chance:

The sum of all display chances for items in a rotating shop should be 100, or anything below it. See example below

  • Specifies a custom display chance for this item

  • Specifying the display chance of only one item for example, will make the plugin try to automatically assign a display chance to all other items in this section. So you won't need to bother to reach a sum of 100%

    • In a case where a rotating shop with a total of 10 configured items, has only one item with a specific display chance of 20%, the plugin will give all other 9 items a display chance of (100-20)/9=8.88%

  • Altough the file strucure of a rotating shop is different as normal shop category's, all items in a rotating shop work the same way. And so, they can also have limited stock, dynamic pricing, discounts, sell multipliers, season multipliers, ... and all available item options

Unlike a regular shop category, a rotating shop requires a different config structure to work! Click the expandable block below to show a example of a complete shops file.

Complete example of a shops config (RotatingShop.yml)
# Unlike regular shops, the items of a rotating shops are configured as below

# Since this shop has 24 items in total, but only 6 display slots,
# every item will have an 4.1(rounded down) percent chance to be displayed(unless specified differently)
items:
  Notch_Apple:
    material: ENCHANTED_GOLDEN_APPLE
    buy: 5000
    sell: -1
  Golden_Apple:
    material: GOLDEN_APPLE
    buy: 275.1
    sell: 68.78
  Stew_1:
    material: SUSPICIOUS_STEW
    lore:
      - '&cEvery time a surprise what the ingredients of Grandma are!'
    buy: 50
    sell: -1
    stew-effect: REGENERATION
  Stew_2:
    material: SUSPICIOUS_STEW
    lore:
      - '&cEvery time a surprise what the ingredients of Grandma are!'
    buy: 50
    sell: -1
    stew-effect: JUMP_BOOST
  Stew_3:
    material: SUSPICIOUS_STEW
    lore:
      - '&cEvery time a surprise what the ingredients of Grandma are!'
    buy: 50
    sell: -1
    stew-effect: POISON
  SILK_TOUCH:
    material: ENCHANTED_BOOK
    buy: 200
    sell: 50
    enchantments:
    - SILK_TOUCH:1
  SHARPNESS:
    material: ENCHANTED_BOOK
    buy: 972.41
    sell: 243.11
    enchantments:
    - DAMAGE_ALL:5
  EFFICIENCY:
    material: ENCHANTED_BOOK
    buy: 972.41
    sell: 243.11
    enchantments:
    - DIG_SPEED:5
  UNBREAKING:
    material: ENCHANTED_BOOK
    buy: 441
    sell: 110.25
    enchantments:
    - DURABILITY:3
  FOOD_1:
    material: COOKED_BEEF
    buy: 120
    sell: 22
    stack-size: 16
  FOOD_2:
    material: CHICKEN
    buy: 56
    sell: 9.75
    stack-size: 8
  CHEAP_STONE:
    material: STONE
    buy: 10.25
    sell: 3.5
    max-buy: -1
    max-sell: -1
    stack-size: 16
  CHEAP_SAND:
    material: SAND
    buy: 44
    sell: 13.8
    max-buy: -1
    max-sell: -1
    stack-size: 8
  SPAWNER_1:
    material: SPAWNER
    spawnertype: COW
    name: '&c[&bCow Spawner&c]'
    display-lore:
      - '&cThis spawner is 25% off, grab your change now!'
    buy: 75000
  SPAWNER_2:
    material: SPAWNER
    spawnertype: ZOMBIE
    name: '&c[&bZombie Spawner&c]'
    display-lore:
      - '&cThis spawner is 10% off, grab your change now!'
    buy: 108000
  SPAWNER_3:
    material: SPAWNER
    spawnertype: IRON_GOLEM
    name: '&c[&bIron Golem Spawner&c]'
    display-lore:
      - '&cThis spawner is 12.5% off, grab your change now!'
    buy: 875000
  BEST_INSTRUMENT:
    material: GOAT_HORN
    buy: 100
    instrument: "DREAM"
  BEST_INSTRUMENT2:
    material: GOAT_HORN
    buy: 100
    instrument: "SEEK"
  ARMOR_TRIM1:
    material: NETHERITE_CHESTPLATE
    buy: 750
    armor-trim:
      type: GOLD
      pattern: WARD
  ARMOR_TRIM2:
    material: IRON_CHESTPLATE
    buy: 250
    armor-trim:
      type: DIAMOND
      pattern: EYE
  FIREWORK_1:
    material: FIREWORK
    buy: 500
    duration: 2
    colors:
      - "cyan"
      - "purple"
    fade-colors:
      - "black"
      - "gray"
    flicker: true
    trail: true
    shape: BURST
  FIREWORK_2:
    material: FIREWORK
    buy: 500
    duration: 3
    colors:
      - "Magenta"
      - "Light_Blue"
      - "Pink"
      - "Gray"
      - "Purple"
      - "Blue"
      - "Red"
    fade-colors:
      - "black"
      - "gray"
    shape: STAR
  NOTCH_HEAD:
    material: player_head
    skullowner: notch
    buy: 500
  COLORED_LEATHER:
    material: LEATHER_CHESTPLATE
    armorcolor: "#0033FF"
    buy: 75
items:
  FIREWORK_1:
    material: FIREWORK
    buy: 500
    duration: 2
    colors:
      - "cyan"
      - "purple"
    fade-colors:
      - "black"
      - "gray"
    flicker: true
    trail: true
    shape: BURST

Level requirement: *Deprecated

Please note that this option has been replaced with the requirements option

  • Specifies the required level to buy/sell this shop item.

pages:
  pages1:
    items:
      1:
        material: "NETHERITE_CHESTPLATE"
        buy: 4500
        name: "&9&lTier &cIII &9&larmor"
        enchantments:
        - "excellentenchants:fire_shield:3"
        - "protection:5"
        - "fire_protection:5"
        - "mending"
        level-requirement: 10
        display-lore:
        - "&a&lYou will unlock this item at level 10"
        - "&a&lYou are currently level %player_level%"

Last updated