-
Notifications
You must be signed in to change notification settings - Fork 5
Configuration
This page documents the settings implemented by DynamicShop 2.6.4. The bundled config.yml is the source for the complete item catalog and category defaults.
At startup and during /shopadmin reload, DynamicShop copies missing bundled defaults into an existing configuration. It deliberately skips the items and special_items sections, so an upgrade does not replace the shop catalog or special entries.
Back up plugins/DynamicShop before upgrading. A reload refreshes plugin data and most cached settings, but it does not rebuild running network services. Restart the server after changing web bind, port, SSL, CORS, web enablement, cross-server enablement, cross-server port, or peers. Reload after changing restock rules.
Bundled defaults:
economy:
sell_tax_percent: 30
transaction_cooldown_ms: 0-
sell_tax_percentis applied to the integrated sell value. -
transaction_cooldown_mslimits repeated transactions.0disables the cooldown. -
economy.systemis an optional setting:vaultby default orcoinengine. -
economy.default_currencydefaults tocoinsin CoinsEngine mode. -
items.<material>.currencyoverrides the currency for one item. -
categories.<category>.currencyis the next CoinsEngine lookup level. Item currency takes priority, followed by category currency, then the default. - Vault and ProtocolLib remain hard dependencies in
plugin.yml, including when CoinsEngine mode is selected. If CoinsEngine cannot initialize, DynamicShop falls back to Vault.
gui:
shop_menu_size: 54
filler_material: "AIR"
use_dialog_gui: false-
shop_menu_sizemust be an inventory size divisible by 9. The last nine slots are reserved for navigation. -
filler_materialaccepts a Bukkit material or a Nexo ID such asnexo:shop_empty_slot. -
use_dialog_guienables Paper's item transaction dialog when the required Paper Dialog API is available. Classic inventory transaction controls remain the fallback. - Floodgate is used to detect Bedrock players, but 2.6.4 opens the Bukkit inventory action GUI for them; it does not implement native Bedrock forms.
- Optional top-level
input-methodacceptsauto,dialog,anvil, orchatfor admin text/number prompts.autoprefers Paper dialogs, then AnvilGUI, then chat. A forced unavailable method falls back to chat.
webserver:
enabled: true
port: 7713
bind: "127.0.0.1"
hostname: ""
admin-enabled: true
force-update-files: false
cors:
enabled: false
ssl:
enabled: false
keystore-path: "keystore.jks"
keystore-password: "password"-
enabledstarts the embedded Javalin server during plugin startup. -
binddefaults to loopback. Use0.0.0.0only when direct network access is intentional and firewalled. -
hostnameis inserted into generated admin links. Set it to a host name or IP without scheme or port. When blank, DynamicShop tries Paper's virtual host through a compatibility lookup, then Bukkitserver-ip, thenlocalhost. - Generated 2.6.4 links use
http://and the configured port. For a reverse proxy or public HTTPS origin, preserve the token path but use the external scheme, host, and port. -
admin-enabled: falseleaves the public dashboard available but does not register the admin routes. -
force-update-filesre-extracts bundled web assets at startup. -
cors.enabled: truepermits any origin in 2.6.4. It is not restricted to a configured allowlist. - Native SSL requires a valid Java KeyStore. Relative paths resolve under
plugins/DynamicShop.
The public dashboard and its transaction analytics endpoints are unauthenticated. See Web Dashboard before exposing it publicly.
logging:
max_recent_transactions: 10000This limits the recent transaction window retained in memory and reloaded for web analytics. Transaction CSV and daily log files are written separately; this setting does not cap their on-disk retention.
Bundled defaults:
dynamic-pricing:
enabled: true
use-stock-curve: true
curve-strength: 0.9
max-stock: 500
min-price-multiplier: 0.01
max-price-multiplier: 2.0
negative-stock-percent-per-item: 5.0
use-time-inflation: true
hourly-increase-percent: 2.0
shortage-decay-percent-per-hour: 2.0
high-inflation-correction-enabled: true
high-inflation-correction-threshold-percent: 100.0
high-inflation-correction-reduction-percent: 50.0
restrict-buying-at-zero-stock: true
log-dynamic-pricing: falsemax-stock and per-item min-stock are pricing boundaries, not transaction limits. shortage-decay-percent-per-hour is hours removed per real hour at full stock, scaled by the current stock ratio. See Dynamic Pricing for the exact piecewise formula, bulk integration, clamps, and storage controls.
player-shops:
max-listings-per-player: 27
enabled: truePlayer shops are fixed-price listings for the entire stack held by the seller. max-listings-per-player is enforced. In 2.6.4, player-shops.enabled is loaded and shown in admin configuration screens but is not checked by the listing or browsing paths, so setting it to false does not actually disable player shops.
restock:
enabled: false
rules:
- category: FOOD
stock: 200
interval-minutes: 30Each rule schedules one normal tracked-material category and directly sets every matching item's stock to the target. The minimum interval is one minute. A positive direct stock assignment resets regular-item shortage hours. Restock does not target permission entries, server-shop entries, player listings, or special-item variants.
cross-server:
enabled: false
port: 5556
peers:
- 192.168.1.10
- 192.168.1.11:5557
save-interval-seconds: 600The JeroMQ mesh broadcasts transaction-driven stock, purchase totals, and last-transaction timestamps for normal materials and variants. It does not synchronize configuration, base prices, shortage hours, categories, templates, special items, player listings, accounts, or logs. Derived prices only agree when each server's local configuration and shortage state also agree.
Admin stock setters and scheduled restocks use direct assignments and do not broadcast those changes. save-interval-seconds controls queued shopdata.yml persistence while cross-server mode is enabled; it is not a network latency target. Restart after changing mesh settings.
items:
DIAMOND:
base: 100.0
rate: 2.0
min-stock: 0.0
max-stock: 1000.0
min-stock-storage: 0
max-stock-storage: 5000
disable-sell: false
disable-buy: false
category: MISC
custom_name: "Premium Diamond"
currency: coins
template: <Bukkit-serialized ItemStack>-
base: -1hides/disables a regular item. -
rateoverrides the negative-stock percentage. -
min-stockandmax-stockdefine pricing regions. -
min-stock-storageis the hard floor for purchases. -
max-stock-storageis the hard ceiling for sales. -
disable-buyanddisable-sellblock their respective actions. -
categoryoverrides automatic category detection. -
custom_nameoverrides the displayed material name. -
currencyis used only in CoinsEngine mode. -
templateis managed as a Bukkit-serialized ItemStack under this item.
special_items entries are generated by admin commands and can deliver plain materials, stored ItemStacks, Nexo, ItemsAdder, ValhallaMMO, permissions, groups, or console commands. Entries generated by the admin commands use their own fixed prices. See Custom Items and Templates and Commands and Permissions.