Config.yml
You will learn step by step what every option of the regular config file means and how to configure them.
Last updated
Was this helpful?
You will learn step by step what every option of the regular config file means and how to configure them.
Last updated
Was this helpful?
before editing your files! It DOES NOT tolerate any errors!
The first option you will see in the regular config of the plugin is the config-version: <version>
. This is the version of the config. Do not change this unless told to do so by support staff, if you do, you may break the plugin and have to reset or delete your shop files to default files generated by the plugin.
Do not change the config version unless told to do so by support staff. changing this may cause unexpected errors and may erase your shops!
Here you can change the language file you are using. The default language file is English but if you want to use the German language file for example, set the value to language-file: lang-de.yml
because the language file is called lang-de.yml
.
Please check your language file to set the currency symbol. This setting only formats the commas(,)/periods(.).
This option allows to customize the format of currency.
Example "#,##0.###"
will show up to three digits after the .
, while "#,##0.##"
is the default format.
Use amount abbreviations(shortcuts) in display prices.
This option allows you to disable update checking on startup or reload of the plugin. Sometimes when there is a sever issue with spigot or with your internet connection, this can take a while and maybe you do not have the time to wait for the plugin to make a connection to the server so you can disable this option.
All storage types are currently only used to store the data of DynamicPricing and limited stock. The items are stored locally inside the configs.
SQLite databases are local databases, meaning they're stored inside the plugins folder like a regular plugin config, it doesn't require any configuration for it to work either.
MySQL allows multiple servers to connect to one database instance. So for example when a player is allowed to only purchase 4 of a specific item using limited stock, and they buy three of these items in the survival server, they will only be able to purchase 1 more of that item in any other server inside your network.
Note that we recommend using SQLite if you are not using the MySQL database to sync data between servers, this simply because it is way more performance efficient to use SQLite for both your server and load times of shop items!
Display cache allows to use database caching for MySQL when using dynamic pricing/limited stock which will save database load overtime. The cache will only be used for item lore in shop pages, it will not be used for actual transactions to prevent data incosistancy between servers.
If your server does not sync dynamic pricing/limited stock data between multiple, it is safe to set the display cache to any large interval like '1h' or even longer. Active server networks which do sync data between databases and with high player activity may set this to a short interval like '1m' or even disable it by setting it to '-1'.
Due to the smart design, ShopStands have almost to none performance impact since they are not persistent(1.13+), unlike regular entities.
(ShopStands are disabled by default)
Using the transaction-log: true
setting you may disable/enable the plugin logging transactions to a text file, this can be usefull for identifying price exploits or just which item is the most populair in your store.
*Premium feature
The transaction database uses extensive logging of shop transactions on your server, which is useful for getting indept insights.
The transactions database can be exported into a web version using command /eshop logs export
, which makes it really easy to visualize the economy on your server and is a great way for finding price exploits.
Disallow certain gamemodes from using the shop, defaults to gamemode creative and spectator.
This behavior can be overridden with the 'EconomyShopGUI.bypassgamemode' permission for specific players.
It is possible to disable certain ESGUI commands in certain worlds, you will need this option for that.
First you will need to enable the enable-disabled-worlds: true
option for it to work.
Once it is enabled you can list every world's name under the command that you want disabled there. In the default config generated with ESGUI there are already some examples that could be used if the option is enabled.
Allows you to change the default economy/currency provider which EconomyShopGUI uses.
ZESSENTIALS = Alternative Essentials plugin suppoting multiple currencies
EXP = Raw experience points used to enchant items
LEVELS = Experience levels used within the base game *Premium only feature
Using the format of GEMS_ECONOMY:<currency>
or ULTRA_ECONOMY:<currency>
you may specify the use of a different currency then the default.
A currency format exists of three parts, the currency singular/plural form which are shown as the buy/sell price lore for items and the currency's friendly name which is used to call the currency in language messages send to the player. Each individual 'part' so to call, can be configured differently from each other.
See this for an example of how the config looks like for custom currency formats for the Vault currency, the Gems currency from UltraEconomy and a custom item economy with a custom id of Bullets.
This option allows you to set the spawner provider that ESGUI uses.
DISABLED = Disables the spawner provider entirely, the same as disabling the spawner break and place events seperatly.
AUTO = Attempts to automatically detect a supported plugin. If no plugin from the list below is found, it defaults to DEFAULT mode.
This will log player transactions to console when a player has sold/bought a item. This is really handy if you want to keep track on what you're players are buying/selling, or if you accidentally made an exploit in the shop prices, you can more easily find what players are buying or selling a lot of.
When this option is disableddrop-remaining-items-on-ground: false
the plugin will fill the player's inventory as much as it can (if applicable), and the remaining items will be cancelled. The player will only pay for, and receive the amount of items that fit inside the inventory.
When set to drop-remaining-items-on-ground: true
, the plugin will drop all items that didn't fit in the player's inventory.
When this option is set to true
, players with bad intentions can spam buy something and all the items now sitting on the ground will lag out and potentially crash your server. It is highly recommended to keep this set to false
.
This option sets wether to use the shop item displayname inside shop transaction messages or the material name
There are various options inside the plugin to make Bedrock support better.
Since the limitations of Bedrock clients. Any GUI size different then a half/full sized inventory would make the bedrock client fill in the left over rows with barrier items. There for, enabling this feature will resize any GUI to a full sized inventory.
Since the limitations of Bedrock clients not being able to render textured player heads, this feature uses Geyser to create a custom resource pack for any connected bedrock player which will make it possible for Bedrock players to view textured player heads.
The add-non-bedrock-items: true
option needs to be enabled inside the config.yml of Geyser for this to work(Enabled by default)
A full server restart is required for new textured skulls added to shop for being able to register within the resource pack.
Since the limitations of Bedrock clients not being able to render textured player heads, and the feature above not rendering the player profile of bedrock players in navigation bars, this feature adds a custom player profile when enabled.
Meaning when using a navigation bar item with skullowner: "%player_name%"
(player profile), which creates a skull with the player's texture.
While Java players will still be able to visually see this item with their skin texture applied, duo to bedrock limitations, bedrock players will see the custom player profile when this feature is enabled instead.
When disabled, bedrock players will see the same item as Java players but duo to limitations for Bedrock clients, they will see the regular steve head.
The DiscordSRV hook allows you to send shop transactions directly to a discord channel without using the API of EconomyShopGUI.
%translations-discord-srv-transaction% - The translated message inside the language file
%player_name% - The player triggering the transaction
%bought/sold% - Either 'bought' or 'sold'
%amount% - The amount of items used in this transaction
%items% - The item names used in this transaction
%price% - The total price for all items used in this transact
Dynamic pricing is like the name suggests a feature where the prices of items can drop or rise in value depending on demand and supply for the specific item.
Take for example emeralds in your shop: If demand is high, and players start buying emeralds, the price will increase as there will be less items inside the market. On the other hand, when players start selling emeralds, the price will drop again as more items will be inside the market.
This setting will enable dynamic pricing in the shop for every section/every item.
The save period acts as a fallback which saves the cache to database every set period to prevent data loss caused by server crashes.
A percent for the minimum/maximum sell price for all items depending on demand and supply. For example with a 20% sell scaling and the $250 sell price of the emerald from above, the minimum sell price for this item would be $200 when demand is high and the maximum would be $300 when more items are sold to shop.
A percent for the minimum/maximum buy price for all items depending on demand and supply. For example with a 30% buy scale and the $750 buy price of the emerald from above, the minimum buy price for this item would be $525 when the item gets sold alot and maximum would be $975 when demand is high for this item.
When items are bought/sold from shop, the plugin tracks this data, which is called stock. Ofcourse this stock can't be seen or won't limit purcahses, so we call it virtual stock.
The maximum (virtual) stock a item can have. When a item has more (virtual) stock, the price will increase/decrease more when items are bought/sold. On the other hand, when items have less (virtual) stock, their prices will increase/decrease slower when bought/sold.
Default is 250 which means that the item needs to be sold/bought 125 times before the minimum price(defaultPrice - priceScaling) or maximum price(defaultPrice + priceScaling) is reached. Expensive items(items with overall high prices) in shop will reach their minimum/maximum prices quicker compared to cheaper items. This behavior makes sure dynamic pricing is random per item depending on their overall price in the shop.
The minimum amount of (virtual) stock a item can have
When price restoration is enabled, items using a dynamic price, will restore to their original prices overtime whenever the price went up/down.
Allows to change the size of the main menu in rows, one row exists of 9 slots. Thus setting the value to 3 for example, creates a GUI of 27 slots to put shop category's in and 1 row that is reserved for the navigation bar.
The fill item will fill any blank space inside the main menu, unless disabled.
Warning: Non-Vanilla Enchantment levels will be lost if the item is used in an anvil!
Allows or disallows enchantments(on items and enchanted books) greater then the maximum level in default Minecraft. true
will allow levels greater than vanilla, false
will revert any over-max level enchant to it's normal maximum value (ex: Unbreaking 10 will give Unbreaking 3).
The allow-illegal-stacks
option prevents item stacks from having a bigger stack size then the default. An example would be a ender pearl which from default can only be stacked to 16 but setting this option to true
allows the ender pearl to stack up to 64.
When having troubles with illegal-stack plugins and this plugin, disable this option to limit item stacking to their natural stack size to prevent future issues
The allow-renamed-items
option allows/disallows the selling of items that are renamed.
When this is false, the items that are sold to the shop need to have the same name as the shop items displayed in shop.
The allow-lore-items
option controls whether or not the sold items to the shop need to have matching lore.
When this is set to false, the items that are being sold to shop need to have matching lore with the shop item.
The lore arrangement option allows to arrange shop item lore completely. Display lore is seperated into 6 different(9 for premium) parts so to call, each part can be arranged from each other in a different order.
It is possible to move/reorder the list to your likings, for example, in the default layout buy prices will always appear above the sell prices lore.
To change this, simply move the 'buy-prices
' entry beneath the 'sell-prices
' entry which will display the sell prices lore above the buy prices lore for all items.
TIP: Removing a entry from the lore arrangement list, will remove it for all items
Default order of lore:
Special lore
Contains seasonal pricing lore
Contains lore for item requirements like levels, item permssions.
Buy prices
Contains lore for buy prices
Item requirements *Premium feature
Lore for item requirements
Sell prices
Contains lore for sell prices
Decoration lore
Contains additional buy/sell lore which is added to shop items with buy/sell prices
Item lore
Contains the item lore itself/the lore configured for this shop item
Item stock *Premium feature
Contains lore for limited item stock
Sell limit *Premium feature
Contains lore for limited sell items
Admin lore
Contains item index lore
Contains item editor lore
A list of tags that will be ignored when selling items to the shop/server. Certain items gets extra tags applied to them when placed or used and then cannot be sold to the server. this list will ignore those nbt tags
Any other NBT tag on the item attempting to be sold will block that item from being sold if those additional tags are not exactly replacted by an item defined in the shops.yml
ex: if you have a diamond_pickaxe
in the shop with efficiency:3
, and the player adds silk_touch
to it. And there is no diamond_pickaxe
with efficency:3
AND silk_touch
defined in the shop(s), it cannot be sold to the server
RepairCost
is the tag Mojang uses in an anvil to track repair/enchant cost.
[Empty Shulker boxes get additional tags assigned to them when placed/used, will update this with those later]
Specify the maximum number of pages a shop should calculate up too: (Note: there is a hardcoded max of 100 pages. anything over this is a ridiculous number of items to try to load.
Modifiers are a percent of the price which is added/removed during a specific season. It is possible to add modifiers for a specific shop item only or a complete section with the underlying shop items.
Note that modifiers are always calculated from the original price, meaning that if the next season the same item/shop has a modifier, it will be calculated of the original price.
Seasonal lore appears on shop items, letting the player know there is a special price for the item because of the current season. Each season has its own icon and will be displayed differently.
Discounts are a list of multiple shop sections with each a different set of discounts, each shop section can hold different groups with each a percentage of the amount of the discount.
Players with the permission node EconomyShopGUI.discounts.<group>
inside your permissions system will then get the specified discount for the whole shop section.
You will need to enable the discounts with the option above to use this feature!
You can use the 'all' placeholder to give all sections the same discounts without specifieng them seperately.
Sell multipliers are a list of multiple shop sections with each a different set of multipliers, each shop section can hold different groups with each a percentage of the amount of the multiplier.
Players with the permission node EconomyShopGUI.sell-multipliers.<group>
inside your permissions system will then get the specified multiplier for the whole shop section.
You will need to enable the discounts with the option above to use this feature!
You can use the 'all' placeholder to give all sections the same multipliers without specifieng them seperately.
Set a command to false to disable the command in ESGUI. For example if you the shop command to false
, players will not be able to use /shop
in your server. (this includes all it's sub commands: ie: /shop <section>
)
If set to true
, the command will work.
These settings allow you to change the command name or add aliases for an command. For example this can be used to make the /shop command work when a player uses /market.
Do not use a slash('/') before the alias because it will end up in a command with double slashes(//shop)
These settings can be changed to customize the items in the transaction screens, as many items as you like are allowed in the GUI.
menu-size: - Sets the menu size in rows
material: - Specifies the item type
slot: - Specifies the slot of the item inside the GUI
stack-size: - Specifies the stack size of the item
Also specifies the buy/sell quantity when using action 'INSTA_BUY'/'INSTA_SELL'
name: - Specifies the item name
lore: - Specifies the item lore
skull-owner: Specifies a skull owner
type: - The item type, mostly internal use
Available item types: SELECTED_ITEM, ACTION, CONFIRM
skullowner: - Specifies the owner of the player head
skull-texture: - Specifies a custom skull texture *Premium feature
NBTData: - Specifies raw NBTData for the item *Premium feature
commands: - The commands executed when the player clicks the item *Premium feature
You may use the %player% placeholder
The action of the item needs to be set to COMMAND for this to work
action: - Action upon clicking items
Available actions: REMOVE32, REMOVE16, REMOVE1, ADD1, ADD16, ADD32, CONFIRM_TRANSACTION, SELL_ALL, OPEN_BUYSTACKS, CLOSE, COMMAND, INSTA_BUY, INSTA_SELL
INSTA_BUY/INSTA_SELL
Instantly completes the transaction of the set amount using option stack-size
REMOVE32, REMOVE16, REMOVE1, ADD1, ADD16, ADD32
Adds/removes the amount to the current selected amount of items
CONFIRM_TRANSACTION
Completes the current transaction with the selected amount
SELL_ALL
Sells all of the selected item in the player's inventory
OPEN_BUYSTACKS
Opens the buy stacks screen
CLOSE
Closes the GUI and discards the transaction
COMMAND *Premium feature
Executes the list of commands specified using the commands
option
These settings allow you to change the navigation bars(bottom row) of the shop.
There are 4 sorts of navigation bars you can modify differently from each other. One being the navigation bar used in the main menu, one being the navigation bar used in every shop category, one being the navigation bar used in the transaction screens and the last one that is used in the /sellGUI screen.
material: - Specifies the item type
name: - Specifies the item name
lore: - Specifies the item lore
skullowner: - Specifies a skull owner
skull-texture: - Specifies a custom skull texture *Premium feature
NBTData: - Specifies raw NBTData for the item *Premium feature
commands: - The commands executed when the player clicks the item *Premium feature
The action of the item needs to be set to COMMAND for this to work
You may use the %player% placeholder
action: - Action upon clicking items
Available actions: TOGGLE_MODE, PAGE_BACK, PAGE_NEXT, BACK, COMMAND, CHANGE_SEARCH_MODE(*Premium)
Some server owners may want to setup their shop so player(s) must click on a NPC/shop stand to open a specific shop section, but not go back to the main shop menu. If so, it is possible to disable the back button in some cases.
When enable-spawnerbreak: true
is enabled, you can mine spawner-blocks with a pickaxe and the spawner with the entity will be returned to the player breaking it. Set to false
to disable this within ESGUI. (advanced compatibility and troubleshooting)
If enable-spawnerplace:
is set to false
, then you will not be able to place spawners and assign the correct mob to them with ESGUI.
player-placed-spawners-drop-exp: false
is disabled by default to prevent EXP duping from constantly re-placing the block. vanilla Minecraft gives some EXP when it is broken.
This option allows you to disable players changing the spawner using spawn eggs.
These settings allow you to change which tools are allowed to break a spawner and drop it. This allows you to set a unlimited amount of allowed tools
The enchantments
option allows you to give the tool multiple enchantments, the tool must have ATLEAST the enchantments set. Meaning that when the pickaxe, stick, ... has more/higher enchantments then set, the spawner will still be dropped.
The locale option currently only works with formatting the prices. But that doesn't say its unhelpful. The locale option takes a as input. You can find You can
This can be changed per currency in the
For example 5,420 -> 5.4k, 7,084,651 -> 7m, ... and so on. You may use this site for inspiration:
This can be changed per currency in the
When debug mode is set to true, error messages pertaining to invalid or miss-configured items will be printed to console on server startup (check your !) We recommend leaving it set to true to aid in troubleshooting. It prints nothing to console if there are no issues.
ShopStands is a module within EconomyShopGUI which allows the creation of physical shops which link to one specific ShopItem from /shop, get rid of the ugly sign shops on your server! See more info .
Note that this option needs to be enabled in order to use .
Commands disabled in worlds via the feature above will still be available in the server (just not in the specified world(s)), and will appear in your command-tab-complete-list. This DOES NOT disable the command server-wide! meaning that a command may still conflict with another plugin that has the same command. See for more.
VAULT = is the default economy provider. Vault needs a economy plugin such as Essentials or CMI(Using Vault injector) to work.
COINS_ENGINE = (Formally known as GamePoints) is a multi currency economy provider which support MySQL
PLAYER_POINTS = is a advanced economy provider which supports MySQL but does not support decimal prices such as other economy providers.
GEMS_ECONOMY = is a economy provider which supports multiple currencies and also supports MySQL databases if you need it.
VOTING_PLUGIN = Points used by
ULTRA_ECONOMY = is a modern multi currency economy provider which supports multiple currencies and a MySQL storage type.
TNE = is a multy currency economy provider which supports MySQL *Premium only feature
ECOBITS = is a premium, modern multi currency economy provider which supports multiple currencies *Premium only feature
ITEM:<item> = Specific item economy, see on how to create custom item currency's *Premium only feature
The plugin allows you to specify multiple economy's at the same time via or .
DEFAULT = This is the , when this option is used, you can mine or break spawners with the settings inside the config without any external spawner provider. This option also allows you to use but you will need to disable the inside ESGUI.
SILKSPAWNERS = is an external spawner provider that has more features to customize/configure the experience with spawners on your server.
WILDSTACKER = is an external spawner provider/stacking plugin, WildStacker allows you to upgrade spawners and make them better.
ULTIMATESTACKER = is an external spawner provider that can stack items, spawners and mobs.
ROSESTACKER = is an external spawner provider that can stack items, spawners and mobs.
MINEABLESPAWNERS = is an external spawner provider that has more features to customize/configure the experience with spawners on your server.
SPAWNERMETA = is an external spawner provider with advanced features, it allows to stack and upgrade spawners.
EPICSPAWNERS = is an external spawner provider that allows you to stack spawners and create custom spawners with tiers. *Premium only feature
UPGRADEABLE_SPAWNERS = is an external spawner provider that allows to upgrade spawners. *Premium only feature
For any of the below features to work, it is required to install on the same server as EconomyShopGUI.
When using a proxy server, you will need to to correctly comminucate with your proxy.
Note that this feature requires to be installed directly on the same server as EconomyShopGUI
The channel configured to log shop transaction to, also needs to exist as a logging channel inside the config.yml of DiscordSRV. See on how to add channels.
Tip: It is possible to change the maxStock setting per or per to have different effects
It is possible to set different actions for specific click types on shop items. The configured mappings inside the config.yml are default for every shop, unless specifically specified inside the .
Configured for shop items can optionally be set to never be on bought items. If this is set to false, when a player buys the item, it will no longer have any of its configured lore.
Seasonal pricing adds support for making it possible to add/remove a certain price modifier per season from the item or whole section.
Do you want ESGUI to send a special join message when players join the server? Set this to true
to enable this feature, false
to disable.
This join message can be configured with the joinmessage:
setting. You can use with in this message.
If enabled you can set the amount of money a player will get when he reaches levels 5, 10, and 15 by changing the amount behind the option: leveleventmoney5/10/15:
And you can set the money for reaching level 20, 25 and 30 respectively: leveleventmoney20/25/30:
The message sent to the player is the levelevent-message:
, you may change this message to whatever you like. are supported.
The settings below are only affective when you've set the to DEFAULT.