Config.yml
You will learn step by step what every option of the regular config file means and how to configure them.
General Settings:
Please read About YAML before editing your files! It DOES NOT tolerate any errors! Validate it!
Config version:
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!
Language option:
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
.
List of all language files and more info available on the Language page here.
Locale option:
Please check your language file to set the currency symbol. This setting only formats the commas(,)/periods(.).
The locale option currently only works with formatting the prices. But that doesn't say its unhelpful. The locale option takes a BCP-47 language tag as input. You can find valid BCP-47 tags here You can see the difference with or without a locale here.
Currency format:
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.
Update checking:
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.
Debug mode:
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 latest.log!) We recommend leaving it set to true to aid in troubleshooting. It prints nothing to console if there are no issues.
Storage: *Premium only
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:
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:
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.
ShopStands module:
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 here.
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)
Transactions:
Transaction log:
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.
Banned gamemodes:
Disallow certain gamemodes from using the shop, defaults to gamemode creative and spectator.
When a gamemode has been added to this list, it will still allow players to browse /shop but are not allowed to buy/sell items.
This behavior can be overridden with the 'EconomyShopGUI.bypassgamemode' permission for specific players.
Disabled Commands in Worlds:
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.
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 Troubleshooting for more.
Providers:
Economy provider:
Allows you to change the default economy/currency provider which EconomyShopGUI uses.
VAULT = Vault is the default economy provider. Vault needs a economy plugin such as Essentials or CMI(Using Vault injector) to work.
COINS_ENGINE = CoinsEngine(Formally known as GamePoints) is a multi currency economy provider which support MySQL
PLAYER_POINTS = PlayerPoints is a advanced economy provider which supports MySQL but does not support decimal prices such as other economy providers.
GEMS_ECONOMY = GemsEconomy is a economy provider which supports multiple currencies and also supports MySQL databases if you need it.
VOTING_PLUGIN = Points used by VotingPlugin
ULTRA_ECONOMY = UltraEconomy is a modern multi currency economy provider which supports multiple currencies and a MySQL storage type.
TNE = TheNewEconomy is a multy currency economy provider which supports MySQL *Premium only feature
ECOBITS = EcoBits is a premium, modern multi currency economy provider which supports multiple currencies *Premium only feature
EXP = Raw experience points used to enchant items
LEVELS = Experience levels used within the base game *Premium only feature
ITEM:<item> = Specific item economy, see this page on how to create custom item currency's *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.
The plugin allows you to specify multiple economy's at the same time via per section economy's or per item economy's.
Currency formats:
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.
Spawner provider:
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.
DEFAULT = This is the default spawner provider inside the plugin configured below, 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 MineableSpawners but you will need to disable the spawner break event inside ESGUI.
AUTO = Attempts to automatically detect a supported plugin. If no plugin from the list below is found, it defaults to DEFAULT mode.
SILKSPAWNERS = SilkSpawners is an external spawner provider that has more features to customize/configure the experience with spawners on your server.
WILDSTACKER = WildStacker is an external spawner provider/stacking plugin, WildStacker allows you to upgrade spawners and make them better.
ULTIMATESTACKER = UltimateStacker is an external spawner provider that can stack items, spawners and mobs.
ROSESTACKER = RoseStacker is an external spawner provider that can stack items, spawners and mobs.
MINEABLESPAWNERS = MineableSpawners is an external spawner provider that has more features to customize/configure the experience with spawners on your server.
SPAWNERMETA = SpawnerMeta is an external spawner provider with advanced features, it allows to stack and upgrade spawners.
EPICSPAWNERS = EpicSpawners is an external spawner provider that allows you to stack spawners and create custom spawners with tiers. *Premium only feature
UPGRADEABLE_SPAWNERS = UpgradeableSpawners is an external spawner provider that allows to upgrade spawners. *Premium only feature
Player Transactions:
Log Player transactions:
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.
Drop remaining items on ground:
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
.
Use item name:
This option sets wether to use the shop item displayname inside shop transaction messages or the material name
Bedrock
There are various options inside the plugin to make Bedrock support better.
For any of the below features to work, it is required to install Floodgate on the same server as EconomyShopGUI.
When using a proxy server, you will need to setup Floodgate on your backend server to correctly comminucate with your proxy.
Resize GUI
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.
Pre register skulls
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)
Note that this feature requires Geyser to be installed directly on the same server as EconomyShopGUI
A full server restart is required for new textured skulls added to shop for being able to register within the resource pack.
Bedrock player profile
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.
DiscordSRV Hook
The DiscordSRV hook allows you to send shop transactions directly to a discord channel without using the API of EconomyShopGUI.
The channel configured to log shop transaction to, also needs to exist as a logging channel inside the config.yml of DiscordSRV. See their documentation on how to add channels.
Available placeholders:
%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: *Premium fearure
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.
Save period:
The save period acts as a fallback which saves the cache to database every set period to prevent data loss caused by server crashes.
Note though, this is only available when the database type is SQLite, since when using MySQL, the data is directly saved to database instead of writing to cashe!
Price scaling:
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.
Stock settings:
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.
Tip: It is possible to change the maxStock setting per section or per item to have different effects
The minimum amount of (virtual) stock a item can have
Price restoration:
When price restoration is enabled, items using a dynamic price, will restore to their original prices overtime whenever the price went up/down.
Inventory's:
Main menu size:
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.
Main menu fill item:
The fill item will fill any blank space inside the main menu, unless disabled.
Item Settings:
Bought items lore:
Configured lore 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.
Allow Unsafe enchants:
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).
Allow Illigal stacking:
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
Allow renamed items:
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.
Allow lore items:
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.
Lore arrangement:
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.
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
Sold Items Ignore NBT Tags:
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 withefficiency:3
, and the player addssilk_touch
to it. And there is nodiamond_pickaxe
withefficency:3
ANDsilk_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]
Max Pages:
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.
Seasonal pricing
Seasonal pricing adds support for RealisticSeasons making it possible to add/remove a certain price modifier per season from the item or whole section.
Modifiers
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
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
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
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.
Command Settings:
Commands:
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.
Note: the /sell
command is NOT part of ESGUI. It is part of Essentials (integration TBD)
Command aliases:
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)
Global GUI Settings:
Option items:
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 options:
menu-size: - Sets the menu size in rows
Available item options:
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
Item actions:
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
Navigation bars:
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.
Available item options:
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)
Disable back button:
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.
Global Messages:
Player Join Message:
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 minecraft color codes with in this message.
Note: This sentence must always begin and end with a double-quote character.
Level event:
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. Color codes are supported.
Spawner Settings:
The settings below are only affective when you've set the spawner provider to DEFAULT.
Spawner events:
Break event:
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)
Place event:
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.
Spawner settings:
Spawner EXP:
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.
Change spawner type:
This option defaults to false
This option allows you to disable players changing the spawner using spawn eggs.
Spawner Break Tools:
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.
Note: These are the internal ESGUI spawner-break/place settings and do not apply if 3rd party plugin compatibility is enabled/working ie: SlikSpawners, UltimateStacker, ...)
Last updated