GUI Customization
GUI Customization
Section titled “GUI Customization”Bazaar’s in-game GUIs are defined in HOCON files under config/bazaar/gui/. They ship in the jar, extract on first run, and stay editable after that.
Deleting the folder and restarting regenerates the defaults.
Shipped Files
Section titled “Shipped Files”| File | Used by |
|---|---|
gts_main.conf | GTS browse grid |
gts_detail.conf | GTS listing detail and bid view |
gts_sell.conf | GTS sell flow source picker |
gts_sell_party.conf | GTS sell flow party picker |
gts_sell_pc.conf | GTS sell flow PC picker |
gts_buy_orders.conf | GTS buy-order browser |
gts_buyorder.conf | GTS buy-order editor |
gts_buyorder_pick.conf | GTS buy-order source picker |
gts_buyorder_pick_pc.conf | GTS buy-order PC picker |
gts_buyorder_filter.conf | GTS buy-order filter editor |
ah_main.conf | AH browse grid |
ah_detail.conf | AH listing detail |
ah_sell.conf | AH sell flow source picker |
ah_sell_inventory.conf | AH sell flow inventory picker |
ah_sell_enderchest.conf | AH sell flow ender chest picker |
ah_buy_orders.conf | AH buy-order browser |
ah_buyorder.conf | AH buy-order editor |
collection.conf | Shared collection box |
Per-channel custom variants are loaded if referenced from channels.conf. See Channels.
File Structure
Section titled “File Structure”The bundled files are ordinary HOCON objects. ah_main.conf, for example, looks like this in shape:
{ id = "ah_main" title = "<bold>Auction House</bold>" rows = 6 use-player-inventory = true open-sound = "minecraft:block.barrel.open" tick-interval = 20 on-tick = [{ type = "refresh" }]
state { sort = "newest" sort_display = "Newest First" my_only = "false" my_only_display = "Off" }
slots { sort-button { row = 7 col = 1 type = "button" item { stack { id = "minecraft:comparator" } name = "<yellow><bold>Sort</bold> <gray>-</gray> <white>{state:sort_display}</white>" } actions { any = [{ type = "bazaar:cycle_sort" }] } } }
areas = [ { id = "listings" rows = [1, 2, 3, 4] cols = [0, 1, 2, 3, 4, 5, 6, 7, 8] pagination { source = "bazaar:ah_listings" items-per-page = 36 item-template { type = "bazaar:listing_item" } } } ]}Top-Level Keys
Section titled “Top-Level Keys”| Key | What it does |
|---|---|
id | Unique GUI ID. Referenced from code and channels.conf. |
title | MiniMessage string resolved when the GUI opens. |
rows | Chest row count for the top inventory pane. |
use-player-inventory | Appends the player’s inventory rows below the GUI. |
open-sound | Raw sound event ID played on open. |
tick-interval | How often Bazaar runs the on-tick action list. |
on-tick | Actions run on the GUI tick interval. Bundled browse screens use this for refresh. |
state | Initial state key/value map. Values are string-typed in the configs. |
slots | Named slot definitions. |
areas | Rectangular fills or paginated regions. |
Common Widgets and Actions
Section titled “Common Widgets and Actions”The bundled GUIs rely on a handful of Bazaar-specific widget and action types:
| Type | Used for |
|---|---|
bazaar:listing_item | Render a normal listing card inside a paginated area. |
bazaar:buyorder_item | Render a buy-order result card. |
bazaar:collection_item | Render a collection-box entry. |
bazaar:pokemon_item | Render a Pokemon picker entry. |
bazaar:inventory_item | Render an item or inventory picker entry. |
bazaar:cycle_sort / bazaar:toggle_my_only | Browse state toggles used by the shipped market screens. |
bazaar:load_detail / bazaar:buy_now / bazaar:place_bid | Listing detail and purchase flow actions. |
bazaar:open_sell_menu / bazaar:select_sell_source / bazaar:select_for_sale | Sell-flow navigation. |
bazaar:ah_open_buyorder, bazaar:gts_open_buyorder_filtered, and the bazaar:buyorder_* family | Buy-order creation, filter editing, and confirmation. |
Data Providers
Section titled “Data Providers”Providers populate paginated areas. The bundled GUIs currently use these sources:
| Provider | What it returns |
|---|---|
bazaar:gts_listings | Active GTS listings |
bazaar:ah_listings | Active AH listings for the current channel |
bazaar:gts_buy_orders | GTS buy orders |
bazaar:ah_buy_orders | AH buy orders |
bazaar:party_pokemon | Party Pokemon picker data |
bazaar:pc_pokemon | PC Pokemon picker data |
bazaar:player_inventory | Player inventory item picker data |
bazaar:ender_chest | Ender chest item picker data |
bazaar:collection | Collection box entries |
- Copy a shipped file, change the
id, and point a channel’sguiblock at the new ID when you want a channel-specific variant. - Keep a close eye on
use-player-inventorybefore moving controls around; many of Bazaar’s row numbers depend on it. - The bundled configs are the best reference for valid Bazaar-specific action types. Inspect them before inventing new action names.