Configuration

All settings are in plugins/ReferralTrack/config.yml, with comments. Apply changes with /referraltrack reload; a change to the database settings needs a restart and the reload tells you when. Do not edit config-version. Run /referraltrack validate after larger edits. The configuration reference describes the newer systems (campaigns, fraud, menus, themes, feedback).

Language #

language accepts en, tr, es, de and pt_br. The files are in plugins/ReferralTrack/lang; copy one to add your own language. text-formatting switches MiniMessage and & colour codes on or off independently.

Database #

yaml
database:
  type: SQLITE # or MYSQL
  sqlite:
    file: "data.db"
  mysql:
    host: "localhost"
    port: 3306
    database: "referraltrack"
    username: "root"
    password: ""
    parameters: "?useSSL=false&autoReconnect=true&characterEncoding=utf8&serverTimezone=UTC"

MySQL 8 servers without SSL may need &allowPublicKeyRetrieval=true in parameters. A pool section sets the connection pool size and timeouts. Keep the credentials private.

Referral rules #

KeyDefaultMeaning
referral.allow-overwritefalseWhether a player can replace the referral they already gave.
referral.max-code-length32Codes use letters, digits, ., _ and -. friend-invite and no-source are reserved.
referral.max-custom-sources200How many different free-form sources are accepted. 0 is unlimited.
referral.command-cooldown-seconds3Pause between two /referral attempts. 0 disables it.
referral.claim-window-hours0/referral only works this long after the first join. 0 has no limit.
referral.restrict-to-known-sourcesfalsetrue accepts only the codes in known-sources. false accepts any code and tidies it up.
referral.known-sourcesyoutube, tiktok, minecraft-server-listCode to display name. Add a line for each channel or creator.
referral.fuzzy-match-max-distance2Typo tolerance for known codes. 0 turns it off.
referral.ignore-private-addressestrueLocal and private addresses are ignored by the alt-account checks.
referral.personal-codes.enabledtrueEvery player gets a permanent invite code.
referral.personal-codes.prefixRT-Prefix of the generated codes.
referral.personal-codes.random-length7Length of the random part.
referral.personal-codes.leaderboard-size10Players shown by /referral top.
referral.personal-codes.leaderboard-period-days30Ranking period. 0 means all-time.
referral.validation.enabledfalseHold rewards and leaderboard credit until the new player reaches both thresholds below. Existing referrals stay validated; only new claims are held.
referral.validation.required-playtime-minutes30Playtime after the claim.
referral.validation.required-joins2Number of joins.
referral.validation.check-interval-seconds30How often pending referrals are checked.
referral.retention.active-window-days3Days after the referral before a returning player counts as retained.

Rewards #

yaml
referral:
  rewards:
    enabled: true
    money: 100.0
    commands:
      - "give %player% diamond 2"
    max-claims-per-ip: 3
  friend-invite:
    enabled: true
    reward-money: 100.0
    max-rewards-per-player: 10
    block-same-ip: true
    milestones:
      5:
        money: 250.0
        commands:
          - "give %player% diamond 5"
  • Money is paid only when Vault is installed. Commands run from the console; %player% is the player's name.
  • max-claims-per-ip stops a new account from claiming when that many welcome rewards already went to the same IP. Raise it if several real players share a network. 0 is unlimited.
  • milestones are keyed by the number of invited friends and each is paid once per player.
  • The values shown are the shipped examples; set rewards that suit your server.

Discord #

yaml
discord:
  enabled: true
  webhook-url: ""
  server-name: "Your Server"

Discord features stay off until you paste a webhook URL. Instant notifications, the daily report (default 00:00), the weekly report (default Monday 00:05) and the live stats message (off by default) can each be switched on or off. The webhooks section routes cards, reports and the live panel to separate channels, and branding and embed change the look. /referraltrack discord preview <type> shows each design without test data.

General settings #

KeyDefaultMeaning
settings.join-tracking-enabledtruefalse stops this server from recording new players. See Networks on the overview page.
settings.reward-delivery-enabledtruefalse stores rewards as pending instead of delivering them here.
settings.ignored-playersemptyNames excluded from all stats. The referraltrack.ignore permission does the same.
settings.data-retention.ip-hash-days90Stored IP hashes of players absent this long are deleted. 0 keeps them forever.
settings.data-retention.delivered-rewards-days0Delivered reward rows older than this are deleted. This also resets the per-IP and per-friend limits, which are counted from them.
settings.seed-known-playerstrueOn first start, imports players the server already knows so /referral <friend> works for them.

Update check #

integrations.update-checker does nothing until resource-id is set to a real resource number.