### Genius Shop v1.6.0 - Economy Safety, Advanced Pricing & Web Editor Overhaul
**Added**
* Per-item price mode toggles (`buy-price-per-item`, `sell-price-per-item`) to dictate if prices apply to single items or configured amounts.
* Price formula rules (`buy-price-formula`, `sell-price-formula`) featuring a safe server-side evaluator supporting math operators and functions (min, max, abs, round, floor, ceil, pow).
* Economy safety guards including max transaction limits, optional unit-price caps, anti-spike protections, per-action cooldowns, and a large-purchase double-confirm flow.
* Strict server-side invalid-value checks (NaN, Infinity, negatives) and unit floor/ceiling enforcement against configured bounds.
* Explicit fail-safe handling for withdraw/deposit failures, generating player-facing error messages.
* Inventory capacity checks prior to charging; delivery failures after withdrawal now trigger a refund attempt.
* Audit logging and optional in-game admin alerts for economy and guard failures, capturing shop key, item, player, and total.
* `/shop validate-prices` dry-run validation command to scan all loaded shop items for risky or invalid configurations.
* Scheduled campaigns feature (`campaigns.yml`) with item-level window keys and live multipliers applied to buy/sell prices across all GUIs and API lookups.
* Server-side item conditions to enforce `min-player-level`, `max-player-level`, `required-gamemode`, `allowed-worlds`, and `denied-worlds`.
* Item variants using `variant-key` and `item-key` for stable stock/limit identities, along with an optional grouped variant selector menu.
* Comprehensive export tools in the web editor (JSON/YAML) for individual items, shops, full projects, and menus.
* Item import support for JSON/YAML files with auto ID assignment.
* Clone actions in the web editor to copy items to another shop or bulk clone to multiple shops.
* Live item preview in the web editor with a parity mode toggle to accurately render in-game lore tokens and formatting.
* Economy safety controls panel in the web editor GUI settings to configure strict, balanced, or off presets.
* Stock Analytics Dashboard (`STOCK` tab) in the web editor to view tracked items, out-of-stock, low-stock, and fill percentages.
* Direct SQLite data management (`DATA` tab) in the web editor for viewing and editing player limits, global counts, and stock reset timers.
* Dedicated database API endpoints (`GET`, `POST`, `DELETE`) for web editor integration.
* Debug error file logging integrated with debug mode, outputting to `debug/error.log`.
* Server-side audit logging (`activity-log.json`) and rollback functionality for web editor file actions.
* Compiled shop catalogs and structured validation to report duplicate slots, invalid rules, and missing configuration paths.
* Bulk Sell GUI (`menus/bulk-sell-menu.yml`) for selling multiple deposited items through the `/shop sell` command.
* Dedicated stock reset rules for diverse intervals (minute, hourly, daily, weekly, monthly, yearly, one-time) with persisted last-run tracking.
* Custom commands system (`commands.yml`) and web editor tab for configuring command names, aliases, usage, permissions, and actions.
* `/shop exportitem [file-name]` command to export the held item as editor-importable JSON, preserving serialized item-stack data.
* Specific permissions for new features (`geniusshop.validateprices`, `geniusshop.exportitem`, `geniusshop.login.ip.bypass`).
* Native HTTPS support via `api.ssl.*` configuration for the web editor and API.
* `/shop confirmlogin <token>` command for IP confirmation during editor login.
* Optional Floodgate detection to shorten inventory titles for Bedrock Edition players.
* `GeniusShopAPI` and `GeniusShopAPIProvider` for public integrations, alongside new shop-open and transaction events.
* Serialized `item-stack` support for exact item delivery, sell matching, and player-head texture retention.
* Expanded bundled language files, localized menu titles, buttons, and diagnostic output.
* MIT license, updated copyright information, and expanded documentation in the README and wiki.
* `variants_demo.yml` example file and an expanded `weekend_market.yml` demonstrating bundle pricing and campaign usage.
**Changed**
* Buy and sell total calculations now strictly respect each item's configured pricing mode.
* Bulk sell total calculations now respect the configured sell pricing mode.
* Shop item lore price lines now dynamically show totals for the configured item amount.
* Buy and sell menu lore now resolves stock placeholders (`%global-limit%`, `%player-limit%`, `%limit%`, `%stock-reset-timer%`) within custom item lore.
* Transaction guard pricing checks now treat formula-driven item pricing as dynamic guard input.
* Anti-spike multipliers now evaluate against the configured base price before dynamic pricing, formulas, or campaigns are applied.
* Web editor completely redesigned around the Minecraft inventory preview, featuring responsive layouts and a collapsible sidebar.
* Replaced fragile YAML parsing in the web editor with structured, comment-preserving editing.
* Web editor file import format is now automatically detected from the file name and content.
* Player and global counters are now cached with batched SQLite writes and periodic flushing to optimize database performance.
* Shop refresh handling and variant stock identities were improved to maintain consistency across dynamic price and limit menus.
* Shop navigation buttons can now be configured with custom materials.
* Web-triggered plugin and custom-command reloads now execute on the main server thread.
* SmartSpawner delivery now utilizes its native creation API instead of legacy workarounds, supporting both `SmartSpawner` and `SmartSpawners` plugin names.
* Missing language defaults are now automatically merged, even if an existing language file matches the current version.
**Removed**
* Dropped item overflow behavior during purchases; the plugin now blocks the transaction if inventory capacity is insufficient.
* Redundant and unused legacy runtime and editor code.
**Fixed**
* Fixed menu inventory holders incorrectly returning null.
* Fixed enchantment metadata being applied without prior validation.
* Fixed SmartSpawner plugin lookup behavior and compatibility.
* Fixed web editor UI issues including unclickable footer buttons, duplicate search borders, stock text overflow, invalid meta tags, missing image descriptions, and conflicting CSS overrides.
* Fixed placeholder replacement executing before lore coloring.
* Fixed default merging logic for nested configuration sections.
* Fixed quoted language `on` keys to prevent unintended YAML boolean interpretation.
* Fixed validation of inventory slots on later pages of compiled shop catalogs.
* Fixed guarded nullable player addresses during login and active session checks.
Optional dependencies
Geyser
Any compatible version
SmartSpawner
Any compatible version
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }