Skip to content

Retention, Security, Grouping, and Presets

Retention, Security, Grouping, and Presets

Section titled “Retention, Security, Grouping, and Presets”

These files control how Bazaar stores history, flags suspicious activity, groups listings for analytics, seeds browse presets, and optionally enforces minimum prices.

Tiered snapshots for the stats engine.

FieldDefaultMeaning
hotTierSnapshotIntervalMinutes5How often Bazaar records a recent price point.
hotTierRetentionHours24How long the hot tier keeps dense snapshots.
warmTierSnapshotIntervalMinutes60How often Bazaar writes warm-tier rollups.
warmTierRetentionDays30How long the warm tier stays around.
coldTierRetentionDays-1-1 means keep cold-tier data forever.
compactionHour4Server-local hour when Bazaar prefers to run heavier cleanup work.
FieldDefaultMeaning
washTradeThreshold5Flag a repeated back-and-forth trading pattern after this many trades.
washTradeAutoSuspendfalseAuto-suspend flagged entities once the threshold is crossed.
priceAnomalyStdDevThreshold3.0Higher values mean fewer anomaly alerts.
reconciliationIntervalHours6How often Bazaar runs reconciliation checks.
adminAlertEnabledtrueSurface security alerts to admins.

Grouping controls how Bazaar decides which listings belong in the same analytics bucket.

KeyDefaultMeaning
pokemonGrouping.significantAttributes["nature", "ability", "shiny"]Coarse market bucket used for broad aggregation.
pokemonGrouping.fineAttributes["nature", "ability", "shiny", "iv_bracket"]Narrower grouping used when Bazaar needs more precision.
pokemonGrouping.ivBrackets6IV, 5IV, 4IV, LowNamed IV-total buckets used by iv_bracket.
pokemonGrouping.legendaryOverride.significantAttributes["nature", "shiny"]Coarser grouping for low-supply legendary markets.
pokemonGrouping.legendaryOverride.fineAttributes["nature", "shiny", "iv_bracket", "ability"]More detailed legendary grouping when Bazaar needs it.
KeyDefaultMeaning
itemGrouping.defaultSignificantAttributes["enchantments_key"]Broad default grouping for most items.
itemGrouping.defaultFineAttributes["enchantments_key", "durability_tier"]Adds a durability bucket for finer-grained histories.
itemGrouping.overrides{}Per-item grouping overrides for special cases.

This file is empty by default on purpose.

Bazaar now ships its default GTS presets in code. Leave presets.conf empty if you want those built-ins. Only create gtsPresets or ahPresets blocks when you want to replace the defaults entirely.

# Leave empty to keep Bazaar's built-in presets.
#
# gtsPresets = []
# ahPresets = []

Optional minimum-price enforcement for both Pokemon and item listings. It is disabled by default.

enabled = true
propertyBasedMinimumPricing = {
"hiddenability=yes" = 5000.0
"label=legendary" = 75000.0
}
itemBasedMinimumPricing = [
{
description = "Master Balls"
minPrice = 5000.0
filter {
mode = "whitelist"
rules = [
{ type = "id", value = "cobblemon:master_ball" }
]
}
}
]

Rules are evaluated by maximum price floor, not by first match. If several rules match a listing, Bazaar enforces the highest minimum.

For item rules, Bazaar reuses the same filter structure as channels.conf:

  • type = "id" supports exact IDs and * wildcards.
  • type = "tag" matches tags such as #minecraft:logs.
  • type = "component" compares stringified data component values through component, value, and match.