New Features
Enchanted / Custom Item Variants
Adding an enchanted or custom item when the base material already exists in the shop now auto-creates a custom variant instead of overwriting the original
Custom variants appear in the same category as the base material (e.g., an enchanted diamond sword appears in Tools alongside the plain one)
Variants use stored_item delivery — buyers receive an exact clone with all enchantments, lore, and custom data preserved
Category Override for Items
/shopadmin add item
Improvements Dynamic Pricing on Custom Variants Custom variants now display dynamic buy and sell prices based on the base material's stock curve (instead of a static fixed price) Stock levels are shown on custom variants using the base material's stock pool Low stock and out-of-stock warnings display correctly
Admin GUI Custom variants now appear in the Admin Shop Browse GUI within their assigned category Right-clicking a custom variant opens the Special Item Editor for editing or deletion Pagination correctly accounts for mixed regular + special items Inventory Selling (Dialog GUI Mode) Right-click and Shift+Right-click selling from player inventory now works when Dialog GUI mode is enabled Sell price lore is displayed on inventory items while the shop is open Nexo GUI Textures Fixed race condition where Nexo glyphs weren't initialized before DynamicShop loaded Added lazy-cached warmup pattern to NexoWrapper with graceful fallback 1-tick startup delay ensures Nexo glyph singletons are registered first
Bug Fixes
Fixed enchanted item override — Adding an enchanted diamond sword no longer replaces the plain diamond sword template
Fixed messages.yml corruption — Replaced YamlConfiguration.save() with safe file-append to prevent MiniMessage

Dynamic price adjusting GUI shops!