Description
Check out more of the [Physical Economy Series]:
- Quest & Request Boards: Create quests and requests to ask for materials in exchange of coins
Coins & Markets
A physical coin economy for Hytale: Copper / Silver / Gold / Platinum, a Coin Pouch to keep everything tidy, and Player/Admin Vendors for real server markets.
- Build real shops in towns (SMP/RP friendly)
- Buy & sell instantly with fixed-price listings
- Keep coins compact with the Coin Pouch (with optional auto-pickup)
β¨ Features
πͺ Physical currency
- 4 denominations: Copper / Silver / Gold / Platinum
- Default exchange: 1 Silver = 100 Copper, 1 Gold = 100 Silver, 1 Platinum = 100 Gold (configurable)

π Coin Pouch
- Store coins in a dedicated UI
- Optional auto-pickup → auto-deposit into pouch (enabled by default)
- Optional use-first-for-payments → take coins from this bag first when you pay for something

π§± Vendors
- Easy to use blocks to sell everything you wish
Player Vendor:
- 16 listings per vendor (default)
- Owner-only management, buyers only see the shop page
- Sales go into a secure Earnings Vault _(stored as “copper value”


Admin Vendor:
- Optional infinite stock (enabled by default)
- Great for server shops / NPC markets / spawn hubs

Command Offers
When a player buys a specific Admin Vendor offer, the server can automatically run one or more commands as a reward/action.
Practical examples (write 1 command per line):
- console: broadcast {player} purchased VIP!
- console: give {player} Coin_Gold 3
- console: lp user {player} parent add vip 30d
- player: give {player} Coin_Silver
Rules / tips:
- One command per line (add multiple lines to chain rewards).
- No dangerous commands (avoid OP/perm escalation unless you really mean it).
- Test first with a safe offer on a test vendor before using it for real rewards.
- No / before the actual command.

π Quick Start (for players)
- Get a Coin Pouch and keep your coins there.
- Place a Vendor in your shop.
- As owner: open vendor management → create listings → stock items.
- Buyers click to purchase, you collect earnings from the Vault.
Tip: coins are physical items — your server decides how to distribute them (loot, quests, rewards, trading, admin tools, etc.).
π‘οΈ Protection & Server-Safety
Coins & Markets protects Vendors and Admin Vendors with a layered system (Owner → server rules → permissions) designed to prevent grief and abuse, even on public servers.
β Default behavior (simple setup / no LuckPerms)
- Owner-only management: by default only the owner can:
- edit offers (
edit) - restock listings (
stock) - withdraw from Vault/earnings (
withdraw) - break the vendor (
break)
- edit offers (
- No permission plugin required: the mod works fine without LuckPerms (or any external provider).
- Staff cleanup: by default OPs can break any Player Vendor (useful to remove abandoned shops / grief).
- Creative “break-any”: disabled by default (enable it in the config if you want it).
- Stricter Admin Vendors: by default creation and management are OP-only, and OP/Creative “break-any” rules do not apply to Admin Vendors (unless enabled by config).
π§ How permissions are evaluated (check order)
When a player attempts an action, the mod evaluates it roughly in this order:
- Hard blocks for Admin Vendors (if enabled in config)
If an action is marked OP-only andOpOnlyOverridesPermissions=true, then:
non-OP = denied, even if they have LuckPerms permissions. - Bypass rules (only if enabled)
Some Admin Vendor actions can be bypassed via:- Creative (if
AllowCreative...=true) - LuckPerms bypass nodes (if
AllowPermissionBypass=trueand LuckPerms is enabled)
- Creative (if
- Fallback “Owner rules” (simple mode)
Used when LuckPerms is not active or when you chose not to fail-closed.- Owner is always allowed.
- Others depend on
OtherPlayersCan.../AnyoneCanCreate....
- LuckPerms mode (granular permissions)
When LuckPerms is enabled, actions are regulated through permission nodes (own/any/admin/etc.).
π§© LuckPerms integration (fail-open vs fail-closed)
To actually use LuckPerms:
- Install the LuckPerms mod/plugin on your server
- In
coins_and_markets.jsonset:Access.Provider.UseLuckPerms: true
What happens when LuckPerms is NOT available:
- Fail-open (default):
DefaultDenyWhenUnavailable=false
→ the mod does not block everything and continues using simple rules (owner/config). - Fail-closed (recommended for maximum safety):
DefaultDenyWhenUnavailable=true
→ if LuckPerms is missing/not loaded, the mod denies protected actions (safer, but it can “lock” vendor/pouch actions until LP is back).
Dev/Admin commands fail-closed (default = ON): FailClosedCommands=true
If DevCommands are enabled and LuckPerms is configured, but LuckPerms is unavailable, commands are blocked for safety.
β οΈ Admin Vendor: Command Offers safety note
Admin Vendors can (if enabled) create offers that execute server commands (Command Offers).
- Keep it OP-only (default) or restrict it with LuckPerms.
- Avoid “dangerous” commands or commands that grant permanent privileges without safeguards.
βοΈ Configuration (Permissions / Protections / LuckPerms)
π Where is the config file?
- On first run the mod automatically generates:
coins_and_markets.json - The file is stored in the mod’s data directory (server-side data folder for the mod/plugin).
- If the JSON is invalid, the mod may start using defaults (always check console/logs).
π Access.Provider — enable permissions + LuckPerms
Path: Access.Provider
Enabled(default: true)
Enables permission checks.
Iffalse: permission checks are bypassed (the mod relies on basic rules / owner / config where applicable).UseLuckPerms(default: false)
Iftrue, the mod uses LuckPerms as the permissions backend (when available).
If LuckPerms is installed butUseLuckPerms=false, it will be ignored.DefaultDenyWhenUnavailable(default: false)
WhenUseLuckPerms=truebut LuckPerms is unavailable:false→ fail-open (simple fallback, doesn’t block everything)true→ fail-closed (denies protected actions until LuckPerms is back)
FailClosedCommands(default: true)
If you use DevCommands and want them “safe”:true→ if LuckPerms is unavailable, commands are blocked.
π Access.Logging — permission check logs
Path: Access.Logging
LogChecks(default: false)
Logs permission checks (useful for debugging; can be noisy on big servers).LogDeniesOnly(default: false)
Iftrue, logs only denies (good for auditing without spam).
π§Ύ Access.Vendor.Use — using a Vendor (client/buy/sell)
Path: Access.Vendor.Use
RequirePermissionToUseVendor(default: false)false→ anyone can open the vendor UI (as a customer)true→ requires:coinsandmarkets.vendor.use
ποΈ Access.Vendor.Create — Vendor creation
Path: Access.Vendor.Create
Note: these options mainly matter in “simple mode” (no LuckPerms). With LuckPerms enabled, creation is handled via nodes.
AnyoneCanCreatePlayerVendors(default: true)
Allows players to place/create Player Vendors.AnyoneCanCreateAdminVendors(default: false)
Allows players to place/create Admin Vendors (not recommended on public servers).
π οΈ Access.Vendor.Manage — other players managing vendors
Path: Access.Vendor.Manage
These options control whether other players (not the owner) can manage vendors in simple mode.
OtherPlayersCanEditVendors(default: false)OtherPlayersCanStockVendors(default: false)OtherPlayersCanWithdrawVendors(default: false)OtherPlayersCanBreakVendors(default: false)
Tip: on public servers keep all false and delegate exceptions with LuckPerms.
βοΈ Access.Vendor.Break — staff break-any
Path: Access.Vendor.Break
AllowOpBreakAny(default: true)
OPs can break any Player Vendor even if they’re not the owner.AllowCreativeBreakAny(default: false)
Iftrue, players in Creative can break any Player Vendor.
π Access.Vendor.Admin — Admin Vendor rules + Command Offers
Path: Access.Vendor.Admin
Hard rules (OP-only)
OpOnlyCreate(default: true) — Admin Vendor creation is OP-only.OpOnlyManage(default: true) — Admin Vendor management is OP-only.OpOnlyOverridesPermissions(default: true)
Iftrue: OP-only is absolute (cannot be bypassed by LuckPerms).
Iffalse: you can delegate via LuckPerms (or bypass rules).
Bypass via permissions / creative
AllowPermissionBypass(default: true)
Enables bypass nodes...admin.<action>.bypass(only when LuckPerms is enabled).AllowCreativeCreate(default: false)AllowCreativeManage(default: false)AllowCreativeEdit(default: false)AllowCreativeStock(default: false)AllowCreativeWithdraw(default: false)AllowCreativeBreak(default: false)
Break bypass rules for Admin Vendors
AllowBreakBypassRules(default: false)
Iftrue, “break-any” rules (OP/Creative) can also apply to Admin Vendors.
Command Offers (Admin Vendor)
Path: Access.Vendor.Admin.CommandOffers
Enabled(default: true) — enables Command Offers.OpOnly(default: true) — only OPs can use/manage Command Offers.OpOnlyOverridesPermissions(default: true) — OP-only cannot be bypassed by permissions.AllowPermission(default: true)
Iftrueand LuckPerms is enabled, you can delegate via:coinsandmarkets.vendor.admin.commandsAllowCreative(default: false) — iftrue, Creative can access without OP.
π LuckPerms permission nodes — FULL LIST (v0.2.5)
Tip: you can also use wildcards (e.g. coinsandmarkets.*), but here are all individual nodes.
π Pouch
coinsandmarkets.pouch.use— open the Coin Pouch UIcoinsandmarkets.pouch.withdraw— withdraw coins from the pouch (convert into physical items)
π§Ύ Vendor (customer use)
coinsandmarkets.vendor.use— open/use vendor UI (only ifRequirePermissionToUseVendor=true)
ποΈ Vendor (creation)
coinsandmarkets.vendor.create.player— create/obtain Player Vendor (permission mode)coinsandmarkets.vendor.create.admin— create/obtain Admin Vendor (permission mode)
π§° Player Vendor (owner permissions)
coinsandmarkets.vendor.player.manage— “umbrella” owner permission (covers typical owner management)coinsandmarkets.vendor.edit.owncoinsandmarkets.vendor.stock.owncoinsandmarkets.vendor.withdraw.owncoinsandmarkets.vendor.break.own
π§° Vendor (manage others / staff)
coinsandmarkets.vendor.edit.anycoinsandmarkets.vendor.stock.anycoinsandmarkets.vendor.withdraw.anycoinsandmarkets.vendor.break.any
π Admin Vendor (management)
coinsandmarkets.vendor.admin.manage— “umbrella” Admin Vendor permission (edit/stock/withdraw/break)coinsandmarkets.vendor.admin.editcoinsandmarkets.vendor.admin.stockcoinsandmarkets.vendor.admin.withdrawcoinsandmarkets.vendor.admin.break
𧨠Admin Vendor (Command Offers)
coinsandmarkets.vendor.admin.commands— manage/create Command Offers (if enabled in config + LuckPerms active)
π§· Admin Vendor (bypass nodes)
Only applies if: AllowPermissionBypass=true and LuckPerms is enabled.
coinsandmarkets.vendor.admin.create.bypasscoinsandmarkets.vendor.admin.manage.bypasscoinsandmarkets.vendor.admin.edit.bypasscoinsandmarkets.vendor.admin.stock.bypasscoinsandmarkets.vendor.admin.withdraw.bypasscoinsandmarkets.vendor.admin.break.bypass
π§ͺ Dev/Admin Commands (only if Debug.DevCommandsEnabled=true)
coinsandmarkets.command.givecoinscoinsandmarkets.command.givepouchcoinsandmarkets.command.spawnvendor.playercoinsandmarkets.command.spawnvendor.admincoinsandmarkets.command.setvendorowner
π§· Quick LuckPerms examples (role templates)
Note: LuckPerms command syntax may vary depending on platform; treat these as permission “bundles”.
Default player (full economy + manage only own vendors)
coinsandmarkets.pouch.usecoinsandmarkets.pouch.withdrawcoinsandmarkets.vendor.player.manage- (optional)
coinsandmarkets.vendor.useif you enabledRequirePermissionToUseVendor=true
Moderator (manage other players’ vendors / cleanup)
coinsandmarkets.vendor.edit.anycoinsandmarkets.vendor.stock.anycoinsandmarkets.vendor.withdraw.anycoinsandmarkets.vendor.break.any
Shop staff (Admin Vendors)
coinsandmarkets.vendor.admin.manage- (optional)
coinsandmarkets.vendor.admin.commandsif you want them to manage Command Offers
π Notes
- Early versions may evolve quickly: please report bugs & feedback in the Comments section.
- The mod do not adds a default way to obtain coins, to create the economy of your world is up to you.


