Tags
Creators
Details
3.5
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 support for custom playtime formats
Introduced a comprehensive playtime format system enabling the possibility to create personalized time display formats through YAML configuration files stored in the Customization/PlaytimeFormats directory.
The system supports both internal plugin placeholders and PlaceholderAPI (PAPI) placeholders by appending the custom format name after a colon (e.g., %PLAYTIME:custom% or %PTM_playtime:custom%) at the end of the placeholders.
The system features automatic zero-value hiding and singular/plural unit selection, it also provides configurable labels for all time units with advanced formatting options using time value and unit label placeholders. For more info, take a look at the new wiki page!
New /playtimereset subcommands
Enhanced the /playtime <target> reset command with expanded reset options providing more granular control over player data management. The updated system replaces the previous limited parameters (all, db, stats, joinstreak) with a comprehensive set of specific reset types, allowing you to target exact data components without affecting unrelated information.
New reset types:
server_playtime- Resets only server statistics (PLAY_ONE_MINUTE)playtime- Resets database playtime records (artificial and actual)last_seen/first_join- Individual timestamp data managementjoinstreak: Resets both absolute and relative join streak recordsjoinstreak_rewards- Resets reward progress and tracking separately from streak countsgoals- Targets completed goals data specificallyeverything- Complete reset (replaces oldallparameter) with clearer scope definition
New /playtimeattribute command
Added a new /playtimeattribute <attribute> [true|false] command (alias: /ptattr) for managing internal player attributes within PlayTimeManager.
- Requires the permission with
playtime.others.attributes - Currenlty only 1 attribute supported as argument:
hidefromleaderboard - Directly modifies a new config field:
placeholders.playtime-leaderboard-blacklist
Folders organization and configs updater
The "Translations" folder has been renamed to "Customizations" to better reflect its expanded purpose beyond just language files.
- Relocated command messages -
playtime-self-messageandplaytime-others-messagemoved from main config toCustomizations/Commands/commands-config.yml
Completely rewritten config file versioning system for better performance and usability, now before updating the updater will create a complete backups of the entire PlayTimeManager folder instead of database-only entries.
More caching!
Enhanced performance through the implementation of a dedicated cache system for commands and GUIs configuration files. This optimization reduces file I/O operations by storing frequently accessed configuration data in memory, resulting in less server overhead.
Bug Fixes
- Fixed
not-in-leaderboard-message: now if a player isn't in the leaderboard the correct config message is displayed whe usingPTM_rankPAPI placeholder. - Fixed playtime leaderboard player hiding mechanism: replaced permission-based system with a config-based one. See
/playtimeattributecommand in the wiki for more info.
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:FweH0sXF"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OzCiibPq:FweH0sXF"
}

