premium banner
The all-in-one Hytale economy: Shop, Auction House & Offer Board. Dynamic pricing, stacking boosts, in-game admin, exploit-proof sell loop, hot-reload. Auto-plugs into EconomySystem, Ecotale, PJ-Money, Coins and all VaultUnlocked compatible plugins!

Description


Better Shop / Auction House / Offer House

The all-in-one economy plugin for Hytale servers — a polished Shop, a real Auction House, a player-driven Offer Board, dynamic pricing, time-limited boosts, full admin UI, and plug-and-play support for every major economy plugin.

Built from the ground up for the Hytale Server API, JSON-persisted, hot-reloadable, and designed so admins barely need to touch a config file — everything is editable in-game.

Custom texture pack for crisp, server-grade visuals: Better Shop/Auction TexturePack — CurseForge


Why pick Better Shop-Auction?

  • Three plugins in one — Shop, Auction House and Offer House share the same economy, the same UI language, and the same admin hub. Install once, configure once.
  • Modular economy — auto-detects EconomySystem, Ecotale, PJ-Money, Coins, VaultUnlocked, BetterSkyblock. Or pick the one you want from the config. No coin? No problem — bundled file-based fallback.
  • In-game admin — create categories, edit items, set discounts, run sell boosts, blacklist items, edit the config… all from a polished admin UI. Restart-free.
  • Anti-cheese economy — built-in safeguards strictly prevent any "buy low / sell high" loop, even when stacked dynamic pricing, category boosts and permission bonuses combine.
  • Production-ready — JSON files for everything, hot-reload commands, separate state files for fast backups, in-game audit log.

Key Features

Shop

  • Modern, themed UI with category bar, search, tile grid and item details panel.
  • Buy / Sell flows with configurable tax and allowSell toggle.
  • Time-limited buy discounts per item, with stacking queue (apply several discounts back-to-back, the strongest is active and the rest wait their turn).
  • Item prerequisites — make an item appear only after the player buys another, or only for members of a specific LuckPerms group.
  • One-time purchases (per-player, persistent — perfect for unlock items, ranks, kits…). Now stored in a clean human-readable file: Name=Rank Divine:Id=921:UUID=….
  • Limited-stock items with refill intervals (per hour, daily, weekly, monthly, one-time, …).
  • Item-as-currency — let players pay with items (e.g. 5 diamonds for one sword) instead of money.
  • Bulk-sell any item in the auction sell editor.
  • /sell sells the item in your hand instantly. /sell all dumps your whole inventory at shop prices, with a configurable blacklist (per item AND per player) and an optional confirmation page so people don't lose their gear by accident.
  • Custom icons and custom display names per item.
 

Auction House

  • Player-run listings with create / buy / update price / cancel / auto-expire.
  • Featured Shop and Featured Item slots in the player auction.
  • "Best price/unit" auto-tag so buyers always see the deals.
  • Listing feemin priceexpiration time — all configurable.
  • Listing limits per permission out of the box:

    "listingLimitEnabled": false,
    "listingLimitByPermission": {
    "bettershopauction.limit.vip": 20,
    "bettershopauction.limit.mvp": 30,
    "bettershopauction.limit.elite": 40,
    "bettershopauction.limit.legend": 50,
    "bettershopauction.limit.god": 60
    }

    Rename the perms freely to match your existing rank tree.
  • Seller payout bonuses by permission — give VIPs +50%, Legends +75%… the boost is applied AFTER tax and AFTER the price safety cap so the economy stays consistent.
  • Bulk-listing UI to put up several stacks in one go

Offer House (Request system) ✨ NEW

  • Players post buy orders: "I want 64 diamonds at 50 coins each".
  • Other players fulfill orders directly from their inventory and get paid instantly.
  • Item escrow OR money escrow — the requester locks coins (or items, if they're paying with items) until the order is filled, so nobody gets scammed.
  • Item picker / catalog browser for clean order creation.
  • Per-page blacklist so you keep the marketplace civil.
  • Configurable title, full admin UI.

Dynamic Pricing ✨

  • Per-category ON/OFF toggle in shop.json.
  • Rolling window (default 24 h) tracks how much was sold of each item; sell prices drift down as supply rises and recover naturally over time.
  • Configurable min / max multipliermax step % (anti-spike), weightmin tracked quantityscheduler interval.
  • Auto-recovery via a randomized recovery cycle so items that never sell don't stay stuck at min price.

Boost & Discount System ✨ REWORKED

  • Sell boost per category — "+25 % on Farming for 2 hours, started by Admin".
  • Buy discount per item — same UX, same queue, same audit trail.
  • Permission sell bonuses — give roles a passive bonus on every sell.
  • Multiple boosts can be queued — the strongest runs first, the next one starts automatically when it expires.
  • Dedicated state file Shop/Data/shop_boosts.json (separated from the main shop data — easy backups, easy diff).
  • Full history file Shop/Data/shop_boosts_history.json records every expired / replaced / removed boost with percent, started_at, ended_at, duration, who activated it, end reason.
  • Auto-migration: if you're on a previous version, your existing boosts/discounts/permission bonuses are moved to the new files at the next launch — zero manual work.

Trader Profile & Stats ✨

  • /shop stats (a.k.a. /dashboard/profile/trader) — a trader profile page with totals, recent activity and personal trends.
  • /shop history — full transaction history (Shop + Auction in one place).
  • Shop Price Tracker HUD — pin price tracking blocks in your world; the in-game HUD shows live shop prices for tracked items.

Anti-exploit Safeguards ✨ NEW

  • The sell price effectively earned by a player is always strictly below the item's buy price, no matter how many bonuses pile up:
    • dynamic pricing × category sell-boost × permission sell-bonus × pet bonus = capped at buyPrice × qty − 0.01.
  • Enforced in all 4 sale paths/sell/sell all, modern shop UI, sell-all calculator.
  • No more "buy at 100, sell at 119 with VIP".

Notifications & Quality of Life

  • Auction-expired toasts delivered to offline / online players via a persistent toast inbox.
  • Full-inventory notifier when sell-all or auto-pickup fails because the bag is full.
  • Hover Item Insight — toggleable contextual info on hover (price, discount, dynamic multiplier, stock, refill timer…).
  • Multi-HUD combining shop + auction info in a single overlay slot.
  • Localization — multi-language ready (per-player locale).

Admin UI ✨

Everything is editable in-game from /shop admin — no need to alt-tab into a JSON editor:

  • Hub page (overview)
  • Category editor
  • Item editor (with refill, prereq, price, custom icon, custom name, item-payment mode…)
  • Asset picker (browse all in-game items)
  • Blacklist editor
  • Config editor (live edits, applied on save)

NPC / Map Integration

  • /shop open <player> — opens the shop UI for a specific player. Perfect for NPC dialogues, in-world buttons, citizens, etc.
  • /shop open <player> <categoryId> — opens a single category for that player (for example a farmer NPC that only shows the Farming category).
  • /auction open <player> — same idea for the Auction House.

Economy System

Auto-detect priority (configurable in config.json):

EconomySystem → Ecotale → PJ-Money → Coins → VaultUnlocked → BetterSkyblock
 

Or pick one explicitly:

"economy": {
"_providerHelp": "Options: Auto | EconomySystem | Ecotale | PJ-Money | Coins | VaultUnlocked | BetterSkyblock | Self | None",
"provider": "Auto"
}
 
Option Behavior
Auto Tries each provider in order, picks the first one available
EconomySystem / Ecotale / PJ-Money / Coins / VaultUnlocked Forces the matching provider
Self Built-in file-based wallet stored in economy.json
None Disables buy/sell — the plugin still runs in read-only mode

If a provider is set but not available at runtime, the plugin auto-falls back to Auto and logs a warning. Hot-reload via command — no restart needed.

Note: for VaultUnlocked support you need VaultUnlocked - CurseForge.

 


Commands

Player

Command Aliases Action
/shop /store/bettershop/newshop/modernshop Open the Shop UI
/auction /ah/betterauction/pshop/newah/newauction/modernauction Open the Auction UI
/request /oh/req/requests/offer/newoh/newrequest/modernoh Open the Offer House
/sell Sell the item in your hand at shop price
/sell all Sell every sellable item in your inventory (respects blacklists)
/shop stats /dashboard/profile/trader Open the trader profile dashboard
/shop queue /shop bonus/shop discount/shop sellbonus/shop discountbuy/shop boost View active sell boosts and buy discounts
/shop history View shop + auction transaction history
/economyprovider List available economy providers

Admin

Command Action
/shop admin Open the admin hub UI (categories, items, config, blacklist, …)
/shop open <player> Open the shop UI for another player (NPC integration)
/shop open <player> <categoryId> Open a specific shop category for a player (e.g. farmer NPC)
/shop reload Hot-reload the configuration
/auction admin Open the auction admin UI
/auction open <player> Open the auction UI for another player
/auction reload Hot-reload the configuration
/request admin Open the Offer House admin UI
/shopdynamic Manage dynamic pricing per category live

 


Configuration

All config files live under mods/GilloDaby_BetterShopAuction/.

File Purpose
config.json Main config (titles, blacklists, economy, shop & auction settings)
Shop/shop.json Categories + items
Shop/Data/shop_boosts.json Active sell boosts, buy discounts, permission sell bonuses
Shop/Data/shop_boosts_history.json Audit log of every expired / replaced / removed boost
Shop/Data/dynamic_pricing_state.json Rolling-window state for dynamic pricing
Shop/Data/one_time_purchases.json One-time-only purchase ledger (human-readable)
Auction/auction_listings.json Auction listings
Request/request_listings.json Offer House listings
Data/economy.json Self-provider wallet (only if provider = Self)

Old data is migrated automatically on first launch. Nothing to do.


Permissions

bettershopauction.command.shop
bettershopauction.command.auction
bettershopauction.command.request
bettershopauction.command.economy
bettershopauction.command.economy.reload
bettershopauction.command.shop.admin
bettershopauction.command.auction.admin
bettershopauction.command.request.admin
bettershopauction.command.shop.history
 
# Auction listing limits (defaults seeded — rename to your own ranks)
bettershopauction.limit.vip
bettershopauction.limit.mvp
bettershopauction.limit.elite
bettershopauction.limit.legend
bettershopauction.limit.god
 
# Auction seller payout bonuses (defaults seeded)
bettershop.vip.bonus.50
bettershop.legend.bonus.75
 

LuckPerms is fully supported — both permission and group checks. You can also gate individual shop items behind a LuckPerms group (prerequisiteLuckPermsGroup).


Preview

See the media section for screenshots of the Shop UI, the Auction House, the Offer House, the admin hub, the trader profile, the boost queue, and the price tracker HUD.


Mod Info

Version 3.0.6
Developer GilloDaby
Compatibility Hytale Server API (Java 25)
Optional dependencies LuckPerms · VaultUnlocked · EconomySystem · Ecotale · PJ-Money · Coins 
Persistence JSON (hot-reloadable, backup-friendly)