Configuration reference
This is the config.yml ShopForge writes on first start, comments included. Every key you see here is the key the plugin reads; there are no hidden ones. Change a value, reload, and it applies.
Top-level sections: language, chat-prefix, license-key, shop, dynamic-pricing, stock-refill-task-interval-minutes, confirm-gui-threshold.
# =============================================================================
# ShopForge — main configuration
# =============================================================================
# Edit this file then run /shop reload (or restart the server) to apply.
# All keys below correspond to options actually consumed by the plugin code;
# adding extra keys here won't change behaviour.
# =============================================================================
# ===== Language =====
# Active language. ISO-639-1 two-letter code (lowercase).
# Bundled out of the box: es (Spanish), en (English).
# Missing keys fall back to en automatically. Operators can drop extra
# lang/<code>.yml files in plugins/ShopForge/lang/.
language: en
# Chat prefix in front of every message (MiniMessage). Empty keeps the built-in
# "◈ ShopForge:". Example for a network style: "<gold>Shop <dark_gray>»"
chat-prefix: ""
# Your licence key, from the store where you bought ShopForge. Required: without it
# ShopForge switches itself off. BuiltByBit downloads already carry theirs, so leave it
# blank there. Checked in the background at startup and every six hours; if the
# licence server cannot be reached, ShopForge keeps running.
license-key: ""
# ===== Shop display =====
shop:
# How prices are rendered in GUIs and chat messages.
# Standard Java printf-style format. The single %f is the amount.
# Examples:
# "$%.2f" -> $1234.50
# "%.0f coins" -> 1234 coins
# "%,.2f$" -> 1,234.50$
currency-format: "$%.2f"
# Language whose number style the amount takes, as a language tag ("es", "de",
# "pt-BR"). Empty keeps the English digits of the pattern above. With a language
# set, the number conversion in currency-format (%f, %.2f, %s...) receives the
# amount already written that way: thousands with "." and decimals with "," for
# "es", and no decimals at all when the amount is whole. The decimals of the
# pattern (".2") still say how many to show for a broken amount.
# Examples with "es":
# currency-format: "%s $" -> 1.500 $ and 2,50 $
# currency-format: "$%.2f" -> $1.500 and $2,50
# Applies to shop.currency-formats below as well.
currency-locale: ""
# true: a vanilla item always arrives plain, so it stacks with the ones players
# already have, even when its display-name is a translation ("<white>Trigo" on
# WHEAT). Off, an item arrives with its shop name unless that name is the
# material's own English one. An item can override either way with `keep-name`.
plain-items: false
# What items are paid with when neither the item nor its shop file says
# (`currency:` on the item, or at the top of the shop file).
# vault Vault money (EssentialsX, CMI, ... behind it)
# playerpoints PlayerPoints
# xp-levels the player's experience levels
# xp-points raw experience points
# tokenmanager TokenManager tokens
# coinsengine:<id> one currency of ExcellentEconomy / CoinsEngine
default-currency: vault
# How amounts of the other currencies are printed (printf-style, one %f).
# Without an entry each currency prints itself ("1,250 points", "12 levels").
currency-formats:
# playerpoints: "%,.0f ✦"
# How many transaction-log entries fit on one page when a player runs
# /shop log. Lower this if your chat is cramped, raise it for power users.
log-page-size: 10
# ===== Market prices =====
# Prices that follow demand: every unit bought pushes the price up by `step`,
# every unit sold pushes it down, between `min` and `max` times the price in
# the shop file. The change fades back to normal by itself (`half-life-hours`:
# after that long, half of it is gone). Buy and sell prices move together, so
# buying and selling straight back never pays. A batch is priced unit by unit.
# `enabled: true` turns it on for every item; or leave it off here and write
# `dynamic: true` (or a section with any of these keys) on the items you want.
# /shop market <shop> shows the current prices; /shop market <shop> reset puts
# them back.
dynamic-pricing:
enabled: false
step: 0.002
min: 0.5
max: 2.0
half-life-hours: 12
# ===== Stock =====
# How often (in minutes) the background task wakes up to refill per-player
# stock counters whose `stock-refill-hours` window has elapsed. Lower values
# = snappier refills but more DB hits; higher values = laggier refills but
# lighter load. 5 is a sane default for most servers.
stock-refill-task-interval-minutes: 5
# ===== Transactions =====
# When a player tries to buy >= this many items in one transaction, ShopForge
# opens a ConfirmGui asking them to confirm before deducting money. This
# protects against fat-finger mistakes on bulk purchases.
# Set to 0 to disable confirmation entirely.
# Default: 64 (one full stack)
confirm-gui-threshold: 64