Configuration

Complete guide to configuring config.yml and messages.yml.

Main Configuration (config.yml)

General Settings

license: "CODE"
serverName: "survival"
defaultBalance: 0
confirmUi: true
OptionTypeDefaultDescription
licenseString"CODE"Plugin license key
serverNameString"survival"Server identifier used for multi-server sync and notifications
defaultBalanceDouble0Initial wallet balance for new players
confirmUiBooleantrueShow a confirmation dialog before completing a purchase

Database

database:
  databaseType: H2
  hostname: "localhost"
  base: "mineLogin"
  port: 3306
  username: "root"
  password: "securepass"
  mongoConnectionString: "mongodb://localhost:27017"
OptionTypeDefaultDescription
databaseTypeEnumH2Database backend: H2, MYSQL, or MONGODB
hostnameString"localhost"MySQL server hostname
baseString"mineLogin"Database name
portInteger3306MySQL server port
usernameString"root"Database username
passwordString"securepass"Database password
mongoConnectionStringString"mongodb://localhost:27017"MongoDB connection URI

Tip: For single-server setups, the default H2 database requires no additional configuration.

Redis

redis:
  enabled: true
  hostname: "localhost:25123"
  username: "root"
  password: "securepass"
OptionTypeDefaultDescription
enabledBooleantrueEnable Redis-based multi-server synchronization
hostnameString"localhost:25123"Redis server address with port
usernameString"root"Redis username (set to null if no authentication)
passwordString"securepass"Redis password

Products

products:
  defaultCategory: "ranks"
  availableProducts:
    - name: "vip"
      price: 10.0
      category: "ranks"
      isQuantity: false
      possibleDiscount: true
      commands:
        - "give {player} minecraft:diamond"
      purchaseDisplay: "<#FFFFFF>VIP"
OptionTypeDescription
defaultCategoryStringCategory shown when the shop opens
availableProductsListList of products available for purchase

Product Fields

FieldTypeDescription
nameStringUnique product identifier
priceDoubleProduct price
categoryStringCategory grouping for the shop GUI
isQuantityBooleanWhether this product can be purchased in bulk
possibleDiscountBooleanWhether this product can appear in promotions
commandsListCommands executed on purchase. Supports {player} and {quantity} placeholders
purchaseDisplayStringDisplay name shown in purchase notifications (MiniMessage format)

Promotions

promotion:
  enabled: true
  rechargeMultiplier: 1
  productsPerPromotion: 1
  minimumPromotionPercent: 5
  maximumPromotionPercent: 50
  promotionResetDuration: "1d"
OptionTypeDefaultDescription
enabledBooleantrueEnable the promotion system
rechargeMultiplierDouble1Multiplier applied when using /wa recharge (e.g. 1.5 = 50% bonus)
productsPerPromotionInteger1Number of products on promotion at the same time
minimumPromotionPercentInteger5Minimum discount percentage
maximumPromotionPercentInteger50Maximum discount percentage
promotionResetDurationString"1d"Duration between promotion refreshes. Format: 1d, 12h, 30m, 60s

Bonus

bonus:
  enabled: true
  minimumBonusAmount: 0.05
  maximumBonusAmount: 0.15
  bonusResetDuration: "1d"
OptionTypeDefaultDescription
enabledBooleantrueEnable the daily bonus system
minimumBonusAmountDouble0.05Minimum bonus payout
maximumBonusAmountDouble0.15Maximum bonus payout
bonusResetDurationString"1d"Cooldown between bonus claims. Format: 1d, 12h, 30m, 60s

Notifications

notification:
  enabled: true
  purchaseType: ALL_SERVERS
  rechargeType: ALL_SERVERS
OptionTypeDefaultDescription
enabledBooleantrueEnable broadcast notifications
purchaseTypeEnumALL_SERVERSPurchase notification scope: ALL_SERVERS or SINGLE
rechargeTypeEnumALL_SERVERSRecharge notification scope: ALL_SERVERS or SINGLE

Messages (messages.yml)

All messages support MiniMessage formatting syntax (e.g. <#FF0000> for hex colors).

Available Placeholders

PlaceholderContextDescription
{player}Admin commandsTarget player name
{balance}Balance messagesWallet balance
{amount}Transaction messagesTransaction amount
{permissions}Permission errorRequired permission node
{schematic}Usage errorCorrect command syntax
{time}Bonus/HistoryTime remaining or timestamp
{productName}PurchaseProduct display name
{product}NotificationsProduct name in broadcast