Tags
Creators
Details
3.4.1
Compatibility
Changes
❗️The plugin remains fully compatible with data from version 3.0.4 and earlier. Before making any modifications, a backup is automatically created, ensuring a seamless and secure migration to the latest version without data loss. ❗️
New Features & Improvements
New goals requirements
Goals can now have customizable requirements that must be met to achieve them. A new "Requirements" section in the goals settings GUI allows you to configure:
- Time requirement - Previously mandatory, now optional and can be set to none
- Permission requirements - Set group or single permissions (e.g., group.newbie) that players must have
- Placeholder conditions - Create boolean conditions using PAPI placeholders from this plugin or others, supporting operators:
==,!=,>,<,>=,<=. Includes specialPLAYER_NAMEplaceholder for player-specific comparisons (e.g., %PTM_nickname_top_1% ==PLAYER_NAMEfor leaderboard-based goals)
All configured requirements must be satisfied simultaneously to receive the reward.
New GUI sections for goals and join streaks rewards
Goals GUI has been redesigned with significant improvements:
- Removed Anvil-based GUIs - Replaced with more customizable chat-based input systems
- New goal creation method - Removed
/playtimegoal setsubcommand in favor of a "Create New Goal" button directly in the GUI for easier access
For both goals and join streak GUIs:
- Reorganized rewards section - Previous permissions and commands have been moved to a dedicated "Rewards" section within the goal/join streak reward settings GUI for better organization
Negative playtime values reverted
The restriction on negative playtime values has been removed. Players can now have their playtime reduced below 0 using the /playtime remove command, with values going as low as -Long.MAX() value for maximum flexibility in playtime management.
New translation options
Added new customizable message configurations for playtimetop command, namely:
- Permission denied messages - Custom message when players lack command permissions
- Page navigation messages - Error messages for invalid page numbers and non-existent pages
- Argument validation - Custom message for invalid command arguments
- Player data messages - Messages for when no players have joined and data loading errors
These lines will be automatically added into your Translations/Commands/commands-config.yml without interfering with previous values of other fields.
New playtimejoinstreak set subcommand
A new set subcommand for /playtimejoinstreak has been added, syntax:
/playtimejoinstreak set <playername>|* <value>
This will set the target player's relative join streak to the specified value.
Bug Fixes
- /playtime
removesubcommand now removes playtime correctly - /playtime reset
allsubcommand now resets every database record as intended.
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:OzCiibPq:iCWeGdPW"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OzCiibPq:iCWeGdPW"
}

