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 #
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 #
| Key | Default | Meaning |
|---|---|---|
referral.allow-overwrite | false | Whether a player can replace the referral they already gave. |
referral.max-code-length | 32 | Codes use letters, digits, ., _ and -. friend-invite and no-source are reserved. |
referral.max-custom-sources | 200 | How many different free-form sources are accepted. 0 is unlimited. |
referral.command-cooldown-seconds | 3 | Pause between two /referral attempts. 0 disables it. |
referral.claim-window-hours | 0 | /referral only works this long after the first join. 0 has no limit. |
referral.restrict-to-known-sources | false | true accepts only the codes in known-sources. false accepts any code and tidies it up. |
referral.known-sources | youtube, tiktok, minecraft-server-list | Code to display name. Add a line for each channel or creator. |
referral.fuzzy-match-max-distance | 2 | Typo tolerance for known codes. 0 turns it off. |
referral.ignore-private-addresses | true | Local and private addresses are ignored by the alt-account checks. |
referral.personal-codes.enabled | true | Every player gets a permanent invite code. |
referral.personal-codes.prefix | RT- | Prefix of the generated codes. |
referral.personal-codes.random-length | 7 | Length of the random part. |
referral.personal-codes.leaderboard-size | 10 | Players shown by /referral top. |
referral.personal-codes.leaderboard-period-days | 30 | Ranking period. 0 means all-time. |
referral.validation.enabled | false | Hold 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-minutes | 30 | Playtime after the claim. |
referral.validation.required-joins | 2 | Number of joins. |
referral.validation.check-interval-seconds | 30 | How often pending referrals are checked. |
referral.retention.active-window-days | 3 | Days after the referral before a returning player counts as retained. |
Rewards #
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-ipstops 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.0is unlimited.milestonesare 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 #
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 #
| Key | Default | Meaning |
|---|---|---|
settings.join-tracking-enabled | true | false stops this server from recording new players. See Networks on the overview page. |
settings.reward-delivery-enabled | true | false stores rewards as pending instead of delivering them here. |
settings.ignored-players | empty | Names excluded from all stats. The referraltrack.ignore permission does the same. |
settings.data-retention.ip-hash-days | 90 | Stored IP hashes of players absent this long are deleted. 0 keeps them forever. |
settings.data-retention.delivered-rewards-days | 0 | Delivered 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-players | true | On 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.