Installation
Install TDX Welcome Raffle, set up your prizes, and check them before the first newcomer arrives.
Requirements
| Dependency | Version | Required |
|---|---|---|
| Java | 21+ | Yes |
| Paper or Folia | 1.20+ | Yes |
| PlaceholderAPI | 2.11+ | Optional (placeholder expansion) |
Steps
Drop the jar in plugins/
Stop the server, copy TDXWelcomeRaffle-x.y.z.jar into plugins/, and
start it again. The console prints a summary box when it loads:
[INFO] [TDXWelcomeRaffle] TDX Welcome Raffle v1.0.0, loaded in 41ms
[INFO] [TDXWelcomeRaffle] Raffles : enabled, 60s each, first join only
[INFO] [TDXWelcomeRaffle] Keywords : welcome, wlc
[INFO] [TDXWelcomeRaffle] Prizes : 3 loaded from rewards.ymlFind the files
config.yml, the timer, keywords, fair play rules and soundsmessages.yml, every chat line the plugin sendsrewards.yml, the prizes and their chances
Every file is commented, so read it top to bottom once.
Put your own prizes in rewards.yml
The shipped file has three examples (flytime, a Power Key and diamonds). Replace their commands with ones for the plugins you actually run. See rewards for every key.
Always put a message in quotes. A value that starts with & and has
no quotes loses its first word, because YAML reads it as something
else.
Reload and check the odds
/welcomeraffle reload
/welcomeraffle rewardsrewards lists every prize with its real chance in percent.
Test a prize, then a whole raffle
/welcomeraffle testreward <yourname> flytimetestreward gives the prize for real: its commands run and you get its
message, so you can see each command works.
To run a full raffle without waiting for a new player, open one by hand for any player who is online, let someone else say "welcome", and draw it:
/welcomeraffle start <player>
/welcomeraffle status
/welcomeraffle draw <player>The player the raffle is for cannot enter it, and with the default
settings an entrant needs 10 minutes of playtime and a different IP
address. While you test with your own alt accounts, set
anti-abuse.min-playtime-minutes to 0 and anti-abuse.block-same-ip
to false, and put them back afterwards.