promotional bannermobile promotional banner

GlymeraMerchant

Complete merchant & economy system. Gold currency with HUD, NPC shopkeepers, buy/sell trades, player-to-player payments. Create shops in-game with visual skin selector, add items by holding them. Config-driven, persistent, hot-reloadable.
Back to Files

GlymeraMerchant-11.0.0.jar

File nameGlymeraMerchant-11.0.0.jar
Uploader
GlymeraCraftGlymeraCraft
Uploaded
Oct 19, 2026
Downloads
35
Size
163.5 KB
File ID
9257457
Type
R
Release
Supported game versions
  • 0.7

What's new

GlymeraMerchant - Changelog

v11.0.0 (2026-10-19) — enchanted items in shops, gold for kills, delete a whole shop

  • Shops keep the item's data. /merchant add now stores the complete item in your hand, including its extra data such as enchantments or a custom name. Buyers receive the item exactly like that. Before, only the item type was saved and buyers got a plain item. A changed max durability (e.g. from a durability enchantment) is kept as well, and bought items always come fully repaired. A plain and an enchanted version of the same item can be two separate entries with their own prices. Existing trades are unchanged and keep selling plain items.
  • New: gold for killing hostile mobs (killRewardFactor, default 0 = off). Gold = the mob's max health × the factor, rounded, at least 1. Example with 0.1: Goblin 4, Zombie 9, Grizzly 12, Cave Rex 40. Only kills by players count, and only mobs that are hostile to players pay. Animals never pay (a cow has more health than a zombie). The player sees a short +9 G message.
  • New: /merchant deleteshop <name> deletes a shop completely: all of its merchant NPCs in every world plus the shop and its trades from the config. /merchant delete still removes only the nearest NPC and keeps the shop.
  • /merchant remove <name> removes the exact item in your hand first (plain or enchanted) and falls back to every entry of that item type.
  • Fixed: a merchant deleted by command could be re-spawned by the keeper in the same moment.
  • Upgrade: replace the jar in mods/, keep the plugin's data folder and restart. Your config gets the new killRewardFactor entry (set to 0) on the first start; everything else stays as it was. A config with a syntax error is never overwritten.

v10.0.0 (2026-10-16) — merchants keep their look and no longer pile up (Hytale 0.7)

  • Fix for Hytale 0.7: entity handles go stale within a tick. Since Update 7 the engine replaces the internal handle of an entity (NPC or player) continuously; a handle kept for a moment and used later points at nothing, and the old code then silently skipped its work. All delayed and deferred actions now look the entity up again by its id right before acting.
  • Merchant appearance: applied right after the spawn and again half a second later by id, so merchants no longer stand around with the default look.
  • Removing a merchant (chunk reload, /merchant remove, keeper) now really removes the NPC. Before, the removal could miss on 0.7 and the keeper spawned a second merchant on top of the first one.
  • The periodic appearance refresh uses fresh handles as well.
  • Upgrade: replace the jar in mods/, keep the plugin's data folder and restart the server.

v9.0.0 (2026-10-12) — Hytale 0.7.0 (Update 7)

  • Rebuilt for Hytale 0.7.0 (Update 7 / Chapter 1). Requires server 0.7.0 or newer; this version does not run on 0.6.x, and the previous version does not run on 0.7.0 (the server removed the old block and chunk API).
  • Migrated to the 0.7.0 world API: block reads and writes now go through the chunk store and block sections (BlockOperations), chunk ticking through the engine's new marker component, spawn points through the asynchronous spawn provider.
  • Mod icon added (icon-256.png in the jar) so the plugin shows its picture in the world's mod list instead of a question mark.
  • Upgrade: delete the old jar from mods/, drop in the new one and keep the plugin's data folder — configs and saved data carry over unchanged. Restart the server.

v8.0.0 (2026-08-30) — Merchants vanishing on Hytale 0.6 fixed

Fixed

  • Merchant NPCs no longer disappear when nobody is near them or after a server restart. Hytale 0.6 loads and ticks the world in 32-block cubes (sections), each on its own. When no player is near, a section stops ticking and the engine drops every non-persistent entity in it - which is exactly what merchants are since v5 (so they can never duplicate). Nothing tells the plugin when that section wakes up again, so the old "re-create on chunk load" path never ran and the NPC stayed gone. Saved data was never lost; only the visible NPC was missing.

Changed

  • New presence keeper: every 2 seconds the plugin checks each saved merchant whose NPC is missing and re-creates it as soon as a player is within 64 blocks and its section is loaded and ticking (appearance is re-applied as before).
  • Merchants are no longer spawned while nobody is near them (on chunk load or at server start); that only made the engine park them and log Entity has moved into a chunk that isn't currently loaded! every few seconds. Cost is negligible (a few distance checks per merchant every 2 s).

Notes

  • merchants.json, balances, shops, prices and commands are unchanged.
  • v5's ghost cleanup (duplicate merchant removal) still runs.

v7.0.0 (2026-08-28) — Hytale 0.6.0 (Update 6)

  • Rebuilt for Hytale 0.6.0 (Update 6). Requires server 0.6.0 or newer; this version does not run on 0.5.x, and older versions of this plugin do not run on 0.6.0.
  • Migrated to the 0.6.0 APIs (network protocol hytale/3, new command-permission API, block/chunk/entity API changes). Everything that was open to players before is open to players again.
  • Upgrade: delete the old jar from mods/, drop in the new one and keep the plugin's data folder — configs and saved data carry over unchanged. Restart the server.

v6.0.0 (2026-08-17)

Fixed

  • The plugin loads again on servers and solo worlds without VaultUnlocked. Since v4.0.0 the supposedly optional VaultUnlocked integration was effectively a hard dependency: the Vault provider lived inside the main plugin class, so the JVM tried to resolve the VaultUnlocked classes while loading the plugin itself — before the Class.forName guard could ever run. Without VaultUnlocked installed, the plugin failed to load with NoClassDefFoundError: net.milkbowl.vault2.economy.Economy, which is exactly what happened when creating a new solo world (reported by 17Stang on CurseForge, 2026-08-17).

Changed

  • All VaultUnlocked-facing code moved into a separate bridge class that is only loaded when VaultUnlocked is actually present. The integration itself is unchanged: with VaultUnlocked installed, GlymeraMerchant still registers as the Economy provider (verified via vault-info).

Notes

  • No data or config changes. Balances, merchants and all commands are untouched.
  • Verified on Hytale 0.5.9 and 0.5.8, each with and without VaultUnlocked installed.

v5.0.0 (2026-06-04)

Fixed

  • Merchant NPCs no longer duplicate. Previously the Hytale engine persisted every spawned merchant NPC to the world, so on each restart a saved copy was rehydrated and a fresh one was spawned from merchants.json — merchants multiplied over time. The old cleanup ran on the first player join with fixed delays and missed any merchant whose chunk had not loaded yet.

Changed

  • Merchant NPCs are now spawned non-persistent: the engine never writes them to the chunk, so no copy can ever be rehydrated on restart. Each merchant is (re)spawned from merchants.json when its chunk loads — exactly one per saved merchant, every time. A one-time cleanup on chunk load removes any duplicate merchants left over from older versions.
  • Removed the old boot-time and first-join respawn/sweep logic (replaced by the per-chunk respawn).

Notes

  • This release is purely the duplication fix. The economy core, the VaultUnlocked provider hook, player trading, all shop/trade GUIs, the money HUD and the /money /pay /merchant /shop commands are unchanged. Existing balances and merchants.json data are fully compatible.

v4.0.0 (2026-06-04)

Fix: VaultUnlocked integration restored

  • Re-enabled the Economy provider hook. During the Stable-5 migration the entire VaultUnlocked integration (the GlymeraEconomyProvider class and its register/unregister calls) had been commented out to get the plugin to compile, so the deployed build silently lost the economy-provider feature. This release restores it.
  • Verified on Hytale Stable-5 with VaultUnlocked-Hytale 2.19.1. The provider implements all 48 abstract methods of the Stable-5 net.milkbowl.vault2.economy.Economy interface and compiles cleanly against it.
  • Confirmed live via the vault-info console command, which now reports Economy: GlymeraMerchant — any VaultUnlocked-compatible plugin uses our gold balances again.
  • No behavioural change when VaultUnlocked is not installed: the integration stays optional and the plugin runs standalone as before.

v2.0.0 (2026-04-06)

New Feature: VaultUnlocked Integration

  • Economy Provider: GlymeraMerchant now registers as an Economy provider with VaultUnlocked. Any plugin that uses VaultUnlocked for economy (balance, deposit, withdraw) will automatically use our gold system.
  • Optional dependency: Works with or without VaultUnlocked installed. If VaultUnlocked is present, we register as provider during setup() so other plugins find us in their start(). If not installed, the plugin works exactly as before.
  • Full Vault2 API: Implements net.milkbowl.vault2.economy.Economy with all required methods (getBalance, deposit, withdraw, has, format, account management). Single currency, no shared accounts.
  • Manifest: Added OptionalDependencies for TheNewEconomy:VaultUnlocked to ensure correct class loader visibility and load order.

New Feature: Paid Commands

  • Command toll system: Server admins can now charge gold for any command from any plugin. If a player runs a paid command, it is blocked and they are asked to confirm with /confirm within a configurable timeout. Gold is deducted on confirmation and the command is then executed normally.
  • Packet-level interception: Uses PacketAdapters.registerInbound() to intercept ChatMessage packets before they reach the CommandManager. On /confirm, the packet message is rewritten to the original command and passed through the normal pipeline - no reflection or command wrapping needed.
  • OP exempt: Operators can be exempted from paying (configurable, default: true)
  • Configurable timeout: Admins set how many seconds players have to type /confirm (default: 15)
  • Prefix matching: Config key "gp claim" matches /gp claim, /gp claim myplot, etc.
  • Balance check upfront: Players are told immediately if they can't afford the command, before being asked to confirm

Config Changes

  • New top-level fields: paidCommandOpExempt (bool), paidCommandTimeout (int)
  • New section: paidCommands (object) - keys are command prefixes (without /), values have cost (long) and optional description (string)
  • /merchant reload now also reloads paid commands and shows their count
  • Guide section updated with paid command documentation

v1.0.0 (2026-03-21)

  • Initial release - Currency system, HUD, Shop UI, NPC Merchants, Player Trading

This mod has no additional files