1.0
Compatibility
Changes
🎉 Initial Release — RedeemMaster v1.0
Initial public release of RedeemMaster, a standalone, dependency-free referral and milestone rewards system for Paper / Purpur / Spigot 1.21+.
✨ Key Features Included
- Zero External Dependencies: Native JVM console command dispatcher—works out of the box with Vault, PlayerPoints, EssentialsX, and ExcellentCrates.
- Dual Anti-Alt System:
- IP Subnet Guard: Automatically blocks players connecting from the same IP network as the code creator.
- Playtime Verification Gate: Requires newcomers to meet active playtime criteria before redeeming codes.
- Flexible Reward Engine:
- Referee Rewards: Configurable starter packages for joining players.
- Per-Referral Payouts: Direct rewards given to the code owner for every valid referral.
- Milestone Triggers: Supports both cyclic rewards (
EVERY_X, e.g., every 5th invite) and one-time grand milestones (EXACT, e.g., 25th invite).
- In-Memory Cache & YAML Persistence: O(1) code resolution during runtime using inverted UUID lookups, backed by
invite.ymlstorage. - Geyser / Floodgate Compatibility: Native handling for Bedrock player name prefixes (e.g.,
.Username) and offline UUID tracking.
đź“‹ Commands & Root Aliases
Root command: /redeemmaster (Aliases: /redeem, /code, /ref)
/redeem <code>— Redeem a friend's referral code/redeem create [custom_code]— Create a custom or auto-generated referral code/redeem info <player>— Inspect player invite metrics and registered IP/redeem revoke/reactivate <player>— Toggle a code's status/redeem verify <player> [amount]— Force-verify referrals and trigger milestone checks/redeem reload— Hot-reload configuration files without restarting
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:8DZ3Y56K:Fmx1A6Cd"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:8DZ3Y56K:Fmx1A6Cd"
}

