Prices

How brew pricing works.

Formula

final_price = base_price × quality_score
  • base_price — configured per recipe in config.yml
  • quality_score0.01 to 1.0, from the brew's brewery:score NBT data

What is quality_score?

Quality is assigned by the brewing plugin during the brewing process. It reflects how well the brew was crafted — fermentation time, distillation runs, and aging in barrels all influence it. A perfectly crafted brew reaches 1.0; a rushed or failed one sits near 0.01.

TheBrewingMarket reads this value automatically at sell time from whichever plugin is active — you do not need to configure anything for it to work.

TheBrewingProject

Quality is read via the TBP API; falls back to the brewery:score NBT tag if the API is unavailable. Range: 0.011.0.

BreweryX

Quality is read via brew.getQuality() (max 10) and normalized to 0.01.0 automatically.

Players can see a brew's quality by hovering over it in their inventory — it is displayed as stars or a numeric score depending on the plugin configuration.

Example: Whiskey (base 200) with quality 0.85 = 200 × 0.85 = 170 coins.

Default Prices

config.yml
market:
  prices:
    default: 10
    beer: 25
    cidre: 35
    wine: 150
    mead: 120
    apple_liquor: 140
    tequila: 170
    shroom_vodka: 220
    gr_absinthe: 300
    coffee: 40
    iced_coffee: 50
    hot_choc: 35
    eggnog: 60
    hangover_detox: 80
    groups:
      30: [darkbeer, wheatbeer]
      130: [ap_mead, vodka]
      160: [g_vodka, gin, red_sangria]
      180: [rum, gin_and_tonic]
      200: [whiskey, brandy, french_75]
      250: [fire_whiskey, absinthe]

The default key is used as fallback when a recipe is not listed.

Important: Recipe IDs must match the brewing plugin exactly (lowercase, underscores). For BreweryX, use the recipe's internal ID as defined in its configuration.

Adding Custom Recipes

config.yml
market:
  prices:
    my_custom_brew: 175

Group Prices

When several recipes share the same price you can use the groups map instead of repeating each recipe individually. The key is the price, the value is a list of recipe ids.

config.yml
market:
  prices:
    default: 10
    wine: 150          # flat entry — takes priority over any group
    groups:
      30: [darkbeer, wheatbeer]
      130: [ap_mead, vodka]
      200: [whiskey, brandy, french_75]
Priority: flat entries always override group entries when there is a collision. You can freely mix both formats in the same prices: block.