Skip to content

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.

FileUsed by
gts_main.confGTS browse grid
gts_detail.confGTS listing detail and bid view
gts_sell.confGTS sell flow source picker
gts_sell_party.confGTS sell flow party picker
gts_sell_pc.confGTS sell flow PC picker
gts_buy_orders.confGTS buy-order browser
gts_buyorder.confGTS buy-order editor
gts_buyorder_pick.confGTS buy-order source picker
gts_buyorder_pick_pc.confGTS buy-order PC picker
gts_buyorder_filter.confGTS buy-order filter editor
ah_main.confAH browse grid
ah_detail.confAH listing detail
ah_sell.confAH sell flow source picker
ah_sell_inventory.confAH sell flow inventory picker
ah_sell_enderchest.confAH sell flow ender chest picker
ah_buy_orders.confAH buy-order browser
ah_buyorder.confAH buy-order editor
collection.confShared collection box

Per-channel custom variants are loaded if referenced from channels.conf. See Channels.

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"
}
}
}
]
}
KeyWhat it does
idUnique GUI ID. Referenced from code and channels.conf.
titleMiniMessage string resolved when the GUI opens.
rowsChest row count for the top inventory pane.
use-player-inventoryAppends the player’s inventory rows below the GUI.
open-soundRaw sound event ID played on open.
tick-intervalHow often Bazaar runs the on-tick action list.
on-tickActions run on the GUI tick interval. Bundled browse screens use this for refresh.
stateInitial state key/value map. Values are string-typed in the configs.
slotsNamed slot definitions.
areasRectangular fills or paginated regions.

The bundled GUIs rely on a handful of Bazaar-specific widget and action types:

TypeUsed for
bazaar:listing_itemRender a normal listing card inside a paginated area.
bazaar:buyorder_itemRender a buy-order result card.
bazaar:collection_itemRender a collection-box entry.
bazaar:pokemon_itemRender a Pokemon picker entry.
bazaar:inventory_itemRender an item or inventory picker entry.
bazaar:cycle_sort / bazaar:toggle_my_onlyBrowse state toggles used by the shipped market screens.
bazaar:load_detail / bazaar:buy_now / bazaar:place_bidListing detail and purchase flow actions.
bazaar:open_sell_menu / bazaar:select_sell_source / bazaar:select_for_saleSell-flow navigation.
bazaar:ah_open_buyorder, bazaar:gts_open_buyorder_filtered, and the bazaar:buyorder_* familyBuy-order creation, filter editing, and confirmation.

Providers populate paginated areas. The bundled GUIs currently use these sources:

ProviderWhat it returns
bazaar:gts_listingsActive GTS listings
bazaar:ah_listingsActive AH listings for the current channel
bazaar:gts_buy_ordersGTS buy orders
bazaar:ah_buy_ordersAH buy orders
bazaar:party_pokemonParty Pokemon picker data
bazaar:pc_pokemonPC Pokemon picker data
bazaar:player_inventoryPlayer inventory item picker data
bazaar:ender_chestEnder chest item picker data
bazaar:collectionCollection box entries
  • Copy a shipped file, change the id, and point a channel’s gui block at the new ID when you want a channel-specific variant.
  • Keep a close eye on use-player-inventory before 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.