Shop Configuration
Build buy/sell categories and items for the in-game shop, all driven from YAML.
Overview
The shop lives under /plugins/EssentialsC/shop/. A main.yml file defines the categories shown in the main shop GUI, and each category points at its own file (for example farming.yml) containing the actual buyable and sellable items.
| File | Purpose |
|---|---|
shop/main.yml |
Defines every category: its display name, icon, lore, GUI slot, and which file holds its items. Also sets items-per-page for category pagination. |
shop/<category>.yml |
One file per category, each containing an items section keyed by item ID. |
farming, mining, spawners, enchanted_books, tools, blocks, redstone, misc, and combat. Delete or edit any of these freely - they're just starting points.
Categories
Each entry under categories in main.yml controls one icon in the main shop GUI.
| Key | Type | Description |
|---|---|---|
name |
String | Display name shown on the category icon. Supports MiniMessage formatting. |
material |
String | Bukkit material used as the category icon. Defaults to CHEST. |
texture |
String | Optional player head texture (hash, URL, or base64) if you want a custom-textured head as the icon instead of a material. |
lore |
List | Lore lines shown on the category icon. Supports MiniMessage formatting. |
slot |
Integer | Slot in the main shop GUI the category icon is placed in. Defaults to 0. |
file |
String | The filename (relative to shop/) containing this category's items. Defaults to <category-id>.yml. |
permission |
String | Optional permission required to see and open this category. |
enabled |
Boolean | Whether the category is loaded and shown at all. Defaults to true. |
Items
Inside a category file, each entry under items describes one buyable/sellable item.
| Key | Type | Description |
|---|---|---|
material |
String | Bukkit material for the item. Defaults to STONE. |
amount |
Integer | Stack size for the display item. Defaults to 1. |
name |
String | Display name. Supports MiniMessage formatting. |
lore |
List | Extra lore lines, shown above the buy/sell/stock lines and click hints that EssentialsC adds automatically. |
buy-price / sell-price |
Double | Cost to buy one unit, and payout for selling one unit. Either can be 0. |
buyable / sellable |
Boolean | Whether the item can be bought and/or sold at all. Both default to true. |
stock |
Integer | Limited stock count. Use -1 for unlimited (the default). |
permission |
String | Optional permission required to see and purchase this item. |
glow |
Boolean | Adds an enchantment glint to the display item without changing its function. |
max-stack |
Integer | Maximum quantity a single shift-click buy or sell will move at once. Defaults to 64. |
commands |
List | Console commands run on purchase, instead of (or alongside) giving the item directly. |
slot / page |
Integer | Fixed GUI slot and page for this item. If omitted, EssentialsC auto-assigns slots in order across pages based on items-per-page. |
slot and page out entirely if you'd rather not manage layout by hand - items without a fixed slot are packed in automatically, in file order, filling each page before moving to the next.
Special Item Types
Spawners
Set spawner: true and spawner-type to a valid entity type (for example PIG or ZOMBIE) to sell a mob spawner pre-set to spawn that entity. The material is forced to SPAWNER regardless of what's set under material.
Enchanted Books
Set enchanted-book: true and list enchantments under enchanted-book-enchants (enchantment name to level) to sell a pre-enchanted book. The material is forced to ENCHANTED_BOOK.
Player Heads
For a PLAYER_HEAD item, set either skull-owner to a player name, or texture-url to a raw texture hash, full Mojang texture URL, or base64-encoded skin value, to give the head a custom skin.
Enchantments & NBT
Regular enchantments (enchantment name to level) can be applied to any item the same way as enchanted-book-enchants. Arbitrary string key/value pairs can also be written into the item's persistent data via NBT entries, useful for tagging items your other systems read back later.
Buying & Selling
Inside a category, clicking an item interacts with it directly - there's no separate confirm screen.
| Click | Action |
|---|---|
| Left-click | Buys 1 unit. |
| Shift + Left-click | Buys up to max-stack units in one go. |
| Right-click | Sells 1 unit. |
| Shift + Right-click | Sells up to max-stack units in one go. |
Example
A farming category with a sellable wheat stack and a spawner for sale.
items: wheat: material: WHEAT amount: 1 name: "<#F5C842>Wheat" buy-price: 2.5 sell-price: 1.0 stock: -1 max-stack: 64 pig_spawner: material: SPAWNER name: "<#06FFA5>Pig Spawner" spawner: true spawner-type: PIG buy-price: 500.0 sellable: false permission: "essentialsc.shop.spawners"
General Settings
A few shop-wide settings live in the main config.yml rather than in the shop/ folder.
| Key | Description | Default |
|---|---|---|
shop.enabled |
Master toggle for the entire shop system. | true |
shop.currency.singular |
Currency name used in shop lore when the amount is singular. | Dollar |
shop.currency.plural |
Currency name used in shop lore when the amount is plural. | Dollars |
shop.log-transactions |
Whether buy/sell transactions are written to the shop's transaction log. | true |
Commands
| Command | Description |
|---|---|
/shop |
Opens the main shop GUI. |
/shop <category> [page] |
Opens a specific category directly, optionally to a given page. |
/shop reload |
Reloads main.yml and every category file from disk without restarting the server. |
Permissions
| Node | Description | Default |
|---|---|---|
essentialsc.shop |
Allows opening and using the shop. | Everyone |
essentialsc.shop.admin |
Allows reloading the shop configuration with /shop reload. |
Operators |
essentialsc.shop.bypass |
Bypasses shop restrictions such as stock limits. | Operators |
Per-category and per-item permission fields are checked in addition to essentialsc.shop - a player needs both the base permission and the specific node to see a restricted category or item.