hShop
A very customisable and weirdly easy to use Shop plugin.
hShop

hShop
A fully customizable GUI shop plugin with multi-currency support, per-item cooldowns, buy limits, and a clean decoration system.
---
What is hShop?
hShop is a shop plugin I built because I was tired of bloated alternatives that made simple things complicated. It uses file-based categories (one yml per category), so adding new shop sections is as easy as dropping a new file into the `categories/` folder.
Every item in every category is fully configurable, buy prices, sell prices, cooldowns, per player limits, currency type, slot position, enchantments, flags, etc. It's built to be readable and easy to edit.
---
Features
- Fully async-safe - each category has its own `.yml` file, just drop it in and reload - Fully async-safe - items can use either Vault or Fully async-safe as their currency, configurable per-item - Fully async-safe - limit how many times a player can buy a specific item (resets are admin-controllable) - Fully async-safe - set a cooldown in seconds on any item individually - Fully async-safe - optional confirmation screen before a purchase goes through - Fully async-safe - fully customize the look of menus with filler items, border layouts, navigation buttons and more via decoration yml files - Fully async-safe - pin category icons to specific slots in the main menu, or leave them on AUTO - Fully async-safe - category pages auto-paginate with configurable next/prev buttons - Fully async-safe - players can sell items back through the shop GUI, `/sellhand`, or `/sellall` - Fully async-safe - scale all sell prices server-wide from a single config value - Fully async-safe - restrict entire categories to specific permission nodes - Fully async-safe - configurable sounds for opening menus, successful purchases, sells, and failures - Fully async-safe - all buys and sells are logged to a file - Fully async-safe - via hShards integration - Fully async-safe - data operations won't lag your main thread
---
Requirements
| Dependency | Required? | |---|---| | Paper 1.21+ | ✅ Required | | Vault | ✅ Required | | hShards | ⭐ Soft (for HSHARDS currency) | | PlaceholderAPI | ⭐ Soft |
---
Commands
| Command | Description | Permission | |---|---|---| | `/hshop` | Open the main shop | `hshop.use` | | `/hshop <category>` | Open a specific category directly | `hshop.use` | | `/sellhand` | Sell the item you're holding | `hshop.use` | | `/sellall` | Sell all eligible items in your inventory | `hshop.use` | | `/hshopa reload` | Reload the plugin | `hshop.admin` | | `/hshopa toggle shop` | Toggle the shop on/off | `hshop.admin` | | `/hshopa toggle buy <category> <item>` | Toggle buying for an item | `hshop.admin` | | `/hshopa toggle sell <category> <item>` | Toggle selling for an item | `hshop.admin` | | `/hshopa createcategory <id>` | Create a new category | `hshop.admin` | | `/hshopa deletecategory <id>` | Delete a category | `hshop.admin` | | `/hshopa createitem <category> <id> <material>` | Add an item to a category | `hshop.admin` | | `/hshopa deleteitem <category> <id>` | Remove an item | `hshop.admin` | | `/hshopa giveitem <player> <category> <item> <amount>` | Give a player a shop item | `hshop.admin` | | `/hshopa setprice <category> <item> buy|sell <price>` | Change a price | `hshop.admin` | | `/hshopa setlimit <category> <item> <limit>` | Change a buy limit | `hshop.admin` | | `/hshopa setcooldown <category> <item> <seconds>` | Change a cooldown | `hshop.admin` | | `/hshopa resetlimit <player> <category> <item>` | Reset a player's limit | `hshop.admin` | | `/hshopa resetcooldown <player> <category> <item>` | Reset a player's cooldown | `hshop.admin` | | `/hshopa info <category> [item]` | View category or item details | `hshop.admin` |
---
Bypass Permissions
| Permission | Effect | |---|---| | `hshop.bypass.cooldown` | Skip item buy cooldowns | | `hshop.bypass.limit` | Skip buy limits | | `hshop.bypass.sell` | Skip sell restrictions |
---
Category Configuration
Each category lives in `plugins/hShop/categories/<name>.yml`. Here's what a typical one looks like:
```yaml display-name: "&aWeapons" icon: DIAMOND_SWORD icon-slot: AUTO # or a slot number like 13 icon-lore: - "&7Buy and sell weapons." - "&8Items: &7{item_count}" - "&eClick to open!" decoration: default title: "&8» &a{category_name} &8« &7({page}/{total_pages})" rows: 6 sort: 1 enabled: true permission: ""
items: diamond_sword: name: "&b&lDiamond Sword" material: DIAMOND_SWORD amount: 1 slot: AUTO currency: VAULT lore: - "&8Buy: &a{buy_price} {currency}" - "&8Sell: &c{sell_price} {currency}" buy: enabled: true price: 250.0 limit: -1 cooldown: -1 sell: enabled: true price: 100.0 ```
---
Item Lore Placeholders
These work inside any item's `lore` list:
| Placeholder | Description | |---|---| | `{buy_price}` | Buy price of the item | | `{sell_price}` | Sell price of the item | | `{currency}` | Currency display name | | `{currency_type}` | Currency type (VAULT or HSHARDS) | | `{buy_limit}` | Max buy limit (-1 = ∞) | | `{buy_limit_remaining}` | How many the player can still buy | | `{cooldown_remaining}` | Time left on cooldown | | `{buy_status}` | Colored buyable status | | `{sell_status}` | Colored sellable status |
---
Multi-Currency
hShop supports two currencies side by side. Each item can have its own currency type, some items can cost Vault money, others can cost hShards, all in the same category. Set it per item with `currency: VAULT` or `currency: HSHARDS`.
hShards integration is automatic if the plugin is present on your server.
---
Works great with hShards
hShop pairs with hShards to give your server a second economy. Players earn shards by selling items, receiving them from admins, or through the interest system, then spend them in the shop on special items that cost `HSHARDS` instead of regular money.
---
*Made by hPlugins by hodakazy*
*The words used in this plugin are inspired by zShop, such as decorations and pagination*