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
  rechargeTitleEnabled: true
OptionTypeDefaultDescription
enabledBooleantrueEnable broadcast notifications
purchaseTypeEnumALL_SERVERSPurchase notification scope: ALL_SERVERS or SINGLE
rechargeTypeEnumALL_SERVERSRecharge notification scope: ALL_SERVERS or SINGLE
rechargeTitleEnabledBooleantrueDisplay title and subtitle on screen for all players when a wallet recharge occurs

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

Recharge Title & Subtitle

When rechargeTitleEnabled is set to true, an additional title and subtitle are displayed on screen for all online players during a wallet recharge. These messages are configured separately from the chat notification:

post-recharge-notification-title: "<#00FF00>Wallet Recharge"
post-recharge-notification-subtitle: "<#70FF70>{player} <#00FF00>recharged <#70FF70>{amount}"
MessagePlaceholdersDescription
post-recharge-notification-title{player}, {amount}Title text displayed on screen
post-recharge-notification-subtitle{player}, {amount}Subtitle text displayed below the title

The title is shown with a 500ms fade-in, 3 second display, and 500ms fade-out. In multi-server setups with Redis, the title is broadcast according to the rechargeType setting.