Configuration Overview
Configuration Overview
Section titled “Configuration Overview”Bazaar extracts its editable configs to config/bazaar/ on first startup. The mod reads those extracted .conf files at runtime; editing the bundled copies inside the jar does nothing.
Reload Behaviour
Section titled “Reload Behaviour”| Surface | How changes apply |
|---|---|
web-theme.conf + themes/ | Live reload with /bazaar admin theme reload. |
discord-webhooks.conf | Live reload with /bazaar admin reload discord-webhooks. |
pokemon-visuals.conf | Live reload with /bazaar admin reload pokemon-visuals. |
price-control.conf | Live reload with /bazaar admin reload price-control. In a cluster, run it on the orchestrator. |
gui/*.conf, item-rendering.conf, pokemon-rendering.conf, messages.conf, sounds.conf, and the core runtime configs | Restart the server after editing. |
File Map
Section titled “File Map”| File | Purpose |
|---|---|
config.conf | Server role, Redis, web dashboard, auction toggles, GTS listing filters, and chat announcement switches. |
channels.conf | AH channel definitions. See Channels. |
fees.conf | Global fee defaults used when a channel does not override them. |
limits.conf | Per-player rate limits and active-listing caps. |
retention.conf | Stats retention windows and compaction timing. |
security.conf | Wash-trade and price-anomaly detector thresholds. |
grouping.conf | Item and Pokemon grouping rules for analytics. |
presets.conf | Optional full replacement for Bazaar’s built-in browse presets. |
price-control.conf | Optional minimum price floors for listings. See Retention, Security, Grouping, and Presets. |
messages.conf | Optional per-key player-facing message overrides. See Notifications. |
sounds.conf | Sound cue sequences for notifications, market actions, and UI events. See Notifications. |
discord-webhooks.conf | Event-driven Discord webhook endpoints and rules. See Notifications. |
pokemon-visuals.conf | Friendly labels for Cobblemon forms, skins, and aspect tokens. |
item-rendering.conf | Web dashboard item icon discovery from mods and resource packs. |
pokemon-rendering.conf | Web dashboard Pokemon model and skin asset discovery from Cobblemon-style Bedrock assets in mods and resource packs. |
web-theme.conf | Active dashboard preset plus runtime overrides. See Theming. |
gui/*.conf | In-game GUI definitions. See GUI Customization. |
tooltips/*.conf | Tooltip templates and overrides for item, Pokemon, and buy-order displays. See Tooltip Selectors. |
themes/*.json + themes/*.css | Dashboard theme presets. See Theming. |
Impactor-owned:
| File | Purpose |
|---|---|
config/impactor/economy.conf | Currency declarations Bazaar reads at runtime. See Economy. |
config.conf
Section titled “config.conf”The top-level runtime config:
role = "PARTICIPANT"
gtsEnabled = trueauctionHouseEnabled = true
defaultListingDurationHours = 24maxListingDurationHours = 168antiSnipeMinutes = 2minBidIncrementPercent = 5.0allowEconomyTestMode = false
auctions { enabled = true gts = true auctionHouse = true}
gtsPokemonFilter { mode = "none" pokemonProperties = []}
chatAnnouncements { enabled = false gtsListings = true auctionHouseListings = true}
redis { enabled = false url = "redis://localhost:6379" password = "" poolSize = 8 serverId = "server-1"}
web { enabled = false port = 8080 publicBaseUrl = "" jwtSecret = "" corsOrigins = [] linkCodeExpirySeconds = 300}| Field | Type | Default | Notes |
|---|---|---|---|
role | ORCHESTRATOR | PARTICIPANT | PARTICIPANT | Use ORCHESTRATOR on the node that hosts the web UI and stats rollups. See Cross-Server. |
gtsEnabled | bool | true | Disabling hides /gts. |
auctionHouseEnabled | bool | true | Disabling hides /ah and every AH channel. |
defaultListingDurationHours | int | 24 | Default expiry for new listings. |
maxListingDurationHours | int | 168 | Hard cap for listing duration. |
antiSnipeMinutes | int | 2 | A late bid extends the auction by this many minutes. Set 0 to disable. |
minBidIncrementPercent | double | 5.0 | A new bid must exceed the current bid by this percentage. |
allowEconomyTestMode | bool | false | Development-only switch that bypasses economy checks. Do not enable on a live server. |
auctions.enabled | bool | true | Master toggle for Bazaar auctions across all markets. |
auctions.gts | bool | true | Toggle auctions on the GTS specifically. |
auctions.auctionHouse | bool | true | Toggle auctions on AH channels specifically. |
gtsPokemonFilter.mode | none | blacklist | whitelist | none | Optional listing-time Pokemon filter for GTS listings only. |
gtsPokemonFilter.pokemonProperties | string[] | [] | Cobblemon PokemonProperties queries matched against the Pokemon being listed. |
chatAnnouncements.enabled | bool | false | Broadcast concise chat announcements for new listings. |
chatAnnouncements.gtsListings | bool | true | Toggle GTS listing announcements independently. |
chatAnnouncements.auctionHouseListings | bool | true | Toggle Auction House listing announcements independently. |
redis.enabled | bool | false | Turn on Redis-backed cross-server mode. |
redis.url | string | redis://localhost:6379 | Lettuce URI. Supports redis:// and rediss://. |
redis.password | string | "" | Empty means no auth. |
redis.poolSize | int | 8 | Lettuce pool size. |
redis.serverId | string | server-1 | Unique per Bazaar server in the cluster. |
web.enabled | bool | false | Runs the embedded dashboard HTTP server. Usually only meaningful on the orchestrator. |
web.port | int | 8080 | HTTP port. The WebSocket listens on port + 1. |
web.publicBaseUrl | string | "" | Public external base URL for Bazaar-hosted assets. Leave blank for local or same-origin setups. |
web.jwtSecret | string | "" | Must be a random 32+ character string in production. |
web.corsOrigins | string[] | [] | Allowed browser Origin headers. Empty is fine for same-origin deployments. |
web.linkCodeExpirySeconds | int | 300 | How long /bazaar link codes stay valid. |
Listing-Time Pokemon Filters
Section titled “Listing-Time Pokemon Filters”gtsPokemonFilter lets you block or allow Pokemon on the GTS using Cobblemon PokemonProperties queries. Bazaar only checks this when a player tries to list a Pokemon on the GTS:
- It does not affect AH item markets.
- It does not hide existing listings from browsing.
- It does not change buy-order matching.
Example:
gtsPokemonFilter { mode = "blacklist" pokemonProperties = [ "mewtwo", "vulpix form=alola", "torterra aspects=tree=cherry" ]}Use blacklist to block matching Pokemon or whitelist to allow only matching Pokemon.
Listing Announcements
Section titled “Listing Announcements”chatAnnouncements controls optional market-wide chat callouts for newly created listings. When enabled:
- GTS announcements go to players who can browse GTS.
- AH announcements go to players who can browse the relevant AH channel.
- Bazaar includes a clickable Open chip that runs the matching market command.
The announcement lines themselves are keyed under chat.announcement.* in Bazaar’s built-in message defaults and can be overridden through messages.conf.
Web Renderer Assets
Section titled “Web Renderer Assets”Bazaar now ships two separate discovery configs for dashboard rendering:
| File | What it scans |
|---|---|
item-rendering.conf | Item models and textures from mod jars and resource packs. |
pokemon-rendering.conf | Cobblemon-style Bedrock resolver, poser, model, animation, and texture assets for Pokemon rendering. |
pokemon-rendering.conf controls three main inputs:
modScanDirsfor mod jars or extracted resources, usually justmodsresourcePackDirsfor extracted pack roots that containassets/directlyresourcePackArchivesfor.zipor.jarpacks you want Bazaar to scan without extracting
Bazaar uses that asset index to render normal Cobblemon models, custom skins, layered emissives, animated overlays, and server-specific seasonal variants in the web UI. The configured paths must point at the actual asset root or archive that contains assets/, not a parent directory above it.