TimeManager icon

TimeManager -----

Increase or decrease speed, sync worlds, set and display actual time and date ...




2.0.0 release Season & GUI update (with no backward compatibility)

NEW FUNCTIONNALITIES
  • Seasons engine — day and night length sweep through the year. Six latitude-style presets (Equatorial, Mediterranean, Temperate, Subarctic, Arctic, Custom), hemisphere switch, sinusoidal sweep between solstices, configurable year length (default 32 MC days). Off by default; opt in with seasons.enabled: true.
  • 10 GUI languages — English, Turkish, German, Spanish (ES/MX), French, Italian, Dutch, Portuguese, Hebrew.
FIVE SEASON PLACEHOLDERS
  • %tm_season%, %tm_season_preset%, %tm_season_dayofyear%, %tm_season_daylight%, %tm_season_hemisphere%.
NEW COMMANDS
  • /tm gui — three-page admin panel with click feedback. Aliases: /tm admin, /tm panel, /tm menu, /tm settings.
  • /tm season — console admin: status | enable | disable | preset <NAME> | year <days> | apply | list.
  • /now season suffix in chat when seasons are enabled (overworld only).
COMMAND ENHANCEMENT
  • Smart /time routing — vanilla /time set goes through TimeManager for consistent chat output.
COMPATIBILITY
  • Minecraft: 1.21.11 → 26.1.2
----------, Jun 15, 2026

1.12.3-legacy MC 1.9.4 → 1.21.10 maintenance build
First release of the legacy support branch. Drop-in replacement for older TimeManager builds — keeps every existing feature and behaviour, restores compatibility with MC versions that the 1.21.11+ master no longer targets.

COMPATIBILITY
  • Minecraft: 1.9.4 → 1.21.10
  • Java: 8+ (jar is Java 8 bytecode, runs on every Java 8/11/16/17/21 JVM)
  • Server: Bukkit / Spigot / Paper
WHAT'S IN THIS RELEASE
Eight legacy-support fixes + one admin-alias improvement. Boot-tested on Paper 1.9.4 + Paper 1.16.5; modern paths unchanged (still gated by the existing reqMcVFor* flags).

BUILD
  • chore(build) Java 8 compiler target so legacy JVMs can load the jar
CROSS-VERSION FIXES
  • fix(plugin.yml) drop api-version to '1.13' so the jar loads on every supported MC version
  • fix(config-files) guard parseComments() + setHeader() (1.19+ API) in CfgFileHandler / CmdsFileHandler / LgFileHandler
  • fix(version-parser) handle empty + non-numeric version strings safely
  • fix(now-item) skip NowItemHandler registration on pre-1.13 (relies on NamespacedKey + PersistentDataContainer)
  • fix(daylight) bridge GameRule.DO_DAYLIGHT_CYCLE to legacy setGameRuleValue(String, String) on pre-1.13
  • fix(title) fall back to 2-arg sendTitle(String, String) on pre-1.11
  • fix(actionbar-hud) wrap broadcast in try/catch so silent failures surface in the log
ADMIN ALIAS
  • feat(/time) forward set / add / query arguments to vanilla minecraft:time so the classic admin syntax keeps working alongside TM's /now display
NOTES
  • No new features, no behaviour change on supported MC versions
  • All fixes are defensive — gated by serverMcVersion checks, modern code paths are unaffected
  • Tested servers: Paper 1.9.4-775 (Java 8) + Paper 1.16.5-794 (Java 8) → clean boot, /tm, /now, /time set <daypart>, /tm hud on all working
INSTALL
  1. Drop TimeManager-1.12.3.jar into plugins/
  2. Restart the server (or /reload confirm)
  3. Config files at plugins/TimeManager/ are unchanged on first run
----------, Jun 10, 2026

1.12.2 release, new commands, placeholder, bug fixes and more
BUG FIX
  • setTime / setFullTime calls in SyncHandler / SpeedHandler / SleepHandler are wrapped in SyncHandler.safeSetTime / safeSetFullTime. Paper builds with tick-rate-frozen worlds (datapack dimensions, /tick freeze, …) no longer spam the console or kill the scheduler task on first throw.
NEW PER-WORLD KEY: lock-time
Single-key shortcut for "freeze this world at X" or "follow real UTC time". Accepts named presets (noon/dawn/dusk/midnight/day/night), raw ticks (0–23999), HH:mm, or realtime. Plugin internally rewrites start / daySpeed / nightSpeed / firstStartTime.

NEW /tm subcommands
  • /tm lock <world> [time|here|realtime] — write lock-time at runtime
  • /tm unlock <world> — clear lock-time
  • /tm animation <world> [on|off|toggle|instant] — flip nightSkipMode
  • /tm placeholders — list every placeholder (PAPI + in-message form)
  • /tm hud [on|off|toggle] — per-player ActionBar opt-in
  • /tm nowitem [player] — give a Pocket Watch CLOCK item
  • /tm help now renders a colored grouped list inside the plugin
NEW PLACEHOLDER: %tm_serverday%
Server-wide elapsed days, persists across restarts via a new firstEverTickNb key (independent of resetOnStartup). Public MainTM.getInitialTick() / getFirstEverTick() getters added.

NEW FEATURES
  • Refreshing signs — first line [tm], next 3 lines accept {tm_*} placeholders, plugin redraws on a configurable interval. Persisted to signs.yml. Permission: timemanager.signs.create.
  • Pocket-watch /now item — custom CLOCK with PDC marker; right-click runs /now with a configurable cooldown. Permission: timemanager.now-item.use.
  • ActionBar HUD — disabled by default. When enabled, broadcasts a configurable {tm_*} format. Players opt out with /tm hud off.
  • Enhanced sleep particles — END_ROD / GLOW / FIREWORK layers on top of the existing dust transition. Toggle with sleep.enhanced-particles: false for the old look.
  • New worlds default to nightSkipMode: animation. Existing worlds are not touched (admin override safety).
COMPATIBILITY
This version should work with all versions of Minecraft up to 26.1.2 (except on Spigot servers which no longer recognize the DO_DAYLIGHT_CYCLE constant).
----------, Jun 4, 2026

Version 1.12.1 : fixes, compatibility and updates
Some aspects of the plugin had not been updated for a long time, and this version updates many different aspects.

This release has not been tested with older versions of MC and backward compatibility is not guaranteed.

Thanks to Melocet for his work.

  • The current McVersionHandler parses (MC: 1.x.x) and breaks completely on (MC: 26.1.2). This rewrites version detection to handle both old (1.x.x) and new (26.x.x) formats, treating any major ≥ 26 as fully featured.
  • Removed dead MVdWPlaceholderAPI dependency (repo.mvdw-software.be is offline).
  • Removed deprecated APIs and pre-1.21 dead code paths.
  • Reflection-based access to TimeSkipEvent.SkipReason (Paper 26.1.2 throws NoClassDefFoundError on direct reference).
  • Null-safe config access in SleepHandler (PlayerJoin/Quit/ChangeWorld/BedEnter).
  • Replaced bundled Metrics.java with shaded bstats-bukkit.
  • Modern JsonParser.parseString() and URI-based URL construction.
SleepHandler
  • Don't cancel PlayerBedEnterEvent in non-sleep worlds (Nether/End); the cancel was suppressing vanilla bed-explosion.
  • Fix integer division in the playersSleepingPercentage check (spPercent / 100 was always 0); refactored to spNb * 100 >= rpNb * spPercent.
  • Particle debug logs were using errorMsg with mismatched counts; switched to debugMsg with corrected counts.
  • "UNKNOW" → "UNKNOWN" typo.
WorldListHandler
  • Replaced fragile List<World>.toString() string-parser with direct World.getName() iteration. Previous parser broke on Paper toString format changes, stripping legitimately-loaded worlds from worldsList.
  • Removed MainTM.waitTime(200) inside the strip loop (Thread.sleep on main thread, multiplied per world).
  • Snapshot configured-world keys before iteration to avoid ConcurrentModificationException.
  • Debug message printed the boolean eraseWorld instead of the world name.
  • Fix #4 → #6 numbering jump.
LgFileHandler — defaultLang migration
Fresh installs (and installs upgrading from older versions) leave defaultLang: default in lang.yml, the placeholder language whose strings are "Please ask an admin to properly define the default language...". checkDefLang() now treats both empty values and the literal default string as "unconfigured" and migrates them to pickFallbackLang() (returns en_US when present, otherwise the placeholder as last resort).

Build and compatibility
  • Build: Java 21, latest Spigot 1.21.4 / Gson / bStats 3.1.0 / PAPI 2.11.6
  • Tested on Paper 26.1.2 (1.21.x)
----------, May 12, 2026

1.10.2 corrective patch
  • New loaded worlds will automatically be added to the configuration to avoid error messages as described in issues #39 and #41
  • Spigot API updated to 1.21.4
COMPATIBILITY
  • MC 1.9.4 to 1.21.4
----------, Mar 10, 2025

1.10.1 corrective patch
  • Solved issues related to the cmds scheduler
  • Duration.between(LocalDate, LocalDate) was replaced by Duration.between(LocalDateTime, LocalDateTime) in tickFromFormattedDate(String date) method to avoid an exception related to java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Seconds (as described in issue #37).
  • When calculating the number of the day in the week, UTC format was not properly recognized and the Minecraft world name was searched for instead of an actual date.
  • The weekday number was miscalculated for UTC time.
  • Improved cmds scheduler time detection.
  • PLAYERS_SLEEPING_PERCENTAGE only exists since MC 1.17. (issue #38).
  • In the lang.yml file, if the plugin version was null, it caused an error. (issue #38).
COMPATIBILITY
  • MC 1.9.4 to 1.21.3
----------, Dec 18, 2024

1.10.0 release, sleep enhancements
Sleep management

  • Due to incompatibility with most plugins that manage sleep, TimeManager has been modified to introduce its own sleep management with an "instant" option and an "animation" option to spend the night.
  • A system of number of players required to sleep has been implemented.
  • New permissions have also been created.
Placeholders
  • Added the placeholder {tm_dayname}
  • Added translations in the lang.yml file
  • Changed some calculation methods for dates, using java.time.LocalDate
  • Leap years are now taken into account in the calculations
Bug fixes
  • Commands: Fixed misinterpretation of negative UTC values in the 'set
    start' command
  • Config.yml : 'start' now accepts a UTC+/-n formatted value
Backwards compatibility
  • The entire plugin's backwards compatibility has been reworked to work up to Minecraft version 1.9.4.
COMPATIBILITY
  • MC 1.9.4 to 1.21.3
----------, Oct 30, 2024

1.9.1 corrective and enhancement patch
  • In the cmds.yml file, the 'time' value must remain placed in single quotes after the file was reloaded. Which is impossible when the value
    starts with 0. On the other hand, removing single quotes is not a problem for values less than 1:00. This solves issue #28.
  • Prevented clearing all '/' in commands (issue #31).
  • Added new placeholder {tm_yearday} that dispays the number of the day in the year (from 1 to 365).
  • Added a new argument for cmds repeatFreq : 'week'. (asked by Pro245Mc in issue #30)
  • Spigot API updated to 1.21.
COMPATIBILITY
  • MC 1.9.1 to 1.21
----------, Jul 21, 2024

1.9.0 release, speed enhancements
  • Added new commands '/tm set duration', '/tm set durationDay' and '/tm
    set durationNight' which adapt a duration in d-h-m-s into a speed
    multiplier.
  • Speeds in the config.yml also accepts this d-h-m-s format.
  • Increased accuracy of time fraction values used when time is slowed.
  • Prevents the time scheduler from stopping when a world is temporarily
    unavailable
COMPATIBILITY
  • MC 1.8.8 to 1.20.4
----------, Apr 14, 2024

1.8.2 corrective patch
  • Fixed a bug that would speed up time every time you slept in an unsynchronized world with decreasing speed. This should close issue #24.
COMPATIBILITY
  • MC 1.8.8 to 1.20.4
----------, Jan 10, 2024

1.8.1 corrective patch
  • Fixed a bug that could freeze unsynced worlds with different day and night speeds. So issue #23 is now closed.
  • Fixed a time calculation bug for synchronized worlds with different day and night speeds. (bugged since v1.3.0)
COMPATIBILITY
  • MC 1.8.8 to 1.20.4
----------, Jan 2, 2024

1.8.0 release, commands and chat enhancements
  • Added hexadecimal colors support in lang.yml and cmds.yml files.
  • Added an AsyncPlayerChatEvent listener that allows the use of placeholders in the chat (wich can be disabled in the config file).
  • Added a ServerCommandEvent and PlayerCommandPreprocessEvent listener that allows the use of placeholders in any command (wich can be disabled in the config file).
  • Placed YAML headers in separate .txt files, to make them easier to update.
  • Spigot API updated to 1.20.4
COMPATIBILITY
  • MC 1.8.8 to 1.20.4
----------, Dec 19, 2023

1.7.2 enhancement patch
  • Added possibility of pauses between two commands in the cmds scheduler.
  • Commands launched by the cmds.yml file are now executed asynchronously.
  • Added a placeholder to show current number of the day in the week.
COMPATIBILITY
  • MC 1.8.8 to 1.20.1
----------, Sep 17, 2023

1.7.1 corrective patch
  • Fixed a bug with placeholders in the cmds file.
  • Improved hours format in the cmds file.
  • Fixed a bug that was executing scheduled commands twice at one minute intervals.
  • Increased the refresh rate of scheduled command detection to 1 per 30 ticks.
COMPATIBILITY
  • MC 1.8.8 to 1.19.3
----------, Mar 6, 2023

1.7.0 release, per world firstStartTime
  • Added a per world option 'firstStartTime' to force the time at which a world starts when starting the server.
  • Added related command : "/tm set firstTimeStart [default|previous|start] [all|world]"
  • Cleaned up the config.yml file in order to optimize the loading order as well as prevent the header from being erased when creating the file.
  • Spigot API updated to 1.19.3
COMPATIBILITY
  • MC 1.8.8 to 1.19.3
----------, Jan 30, 2023

1.6.2 update
  • Spigot API updated to 1.19.2
  • Java version updated to jdk-18.0.1.1
COMPATIBILITY
  • MC 1.8.8 to 1.19.2
----------, Nov 21, 2022

1.6.1 corrective patch
  • Fixed a small bug related to 'speed' change
COMPATIBILITY
  • MC 1.8.8 to 1.18.1
----------, Jan 30, 2022

1.6.0 release, Nether and the End unleashed + individual time offset
  • Added 2 new commands : '/tm set playerOffset' and '/tm set playerTime'
  • Both the Nether and the End now appear in the config list, and can have a specific message.
COMPATIBILITY
  • MC 1.8.8 to 1.18
----------, Dec 8, 2021

1.5.1 corrective patch
  • Correction of a rather large error in the AM/PM calculation
COMPATIBILITY
  • MC 1.8.8 to 1.16.5
----------, May 3, 2021

1.5.0 release, commands scheduler + linked sleep + new placeholders
  • Added a scheduler that run commands at a time specified in the cmds.yml file.
  • Changed the '/now' command and added a '/tm now' command with a new display argument (msg, title, actionbar) instead of time 'units'.
  • Created a 'linked' value to permit sleep to interact with the other worlds.
  • Updated and added placeholders.
  • Updated and corrected permissions.
  • Updated help messages, config.yml and lang.yml explanations.
COMPATIBILITY
  • MC 1.8.8 to 1.16.5
----------, Apr 20, 2021

1.4.2 release, correction of some errors and addition of a new command
  • Fixed sleep problems.
  • Fixed "/ tm set time", "/ tm set start", "/ tm set initialTick", when
    using ticks as units.
  • Addition of the "/ tm set date [today|yyyy-mm-dd] [all|world]" command
    which can sometimes be more practical than defining the number of days
    elapsed. So "/ tm set elapsedDays" has no more "today" argument.
  • Fixed resynchronization which caused (most of the time) the date to
    advance by 1 day.
  • Cleaned up some help and errors messages.
  • Added bStats plugin metrics.
  • Updated the POM.xml but there is still a bug with the MVdWPlaceholderAPI plugin.
COMPATIBILITY
  • MC 1.4.6 to 1.16.5
----------, Feb 28, 2021

1.4.1 release, correction of some 1.4.0 errors
  • {yy} : Years bigger than 99 were displayed in full, with 3 or 4 digits.
  • {dd} : The days of June showed a negative value.
  • The after midnight "It is too late ..." message appeared unnecessarily.
  • Fixed 'elapsedDays' miscalculation for the first day, in placeholders, /now and console messages.
  • Fixed a bug that caused two days to pass after sleeping.
  • Fixed a bug that appeared when sleep was interrupted and you tried to sleep again.
  • Spigot API updated to 1.16.5
COMPATIBILITY
  • MC 1.4.6 to 1.16.5
----------, Feb 18, 2021

1.4.0 release, adding date and external placeholder compatibilty
  • New command '/tm set elapsedDays [today|0 → ∞] [all|world]' : Sets current fullTime for the specified world (or all of them). Could be today or an integer between 0 and infinity (or almost). A year always lasts 365 days.
  • New placeholders for the '/now' command are available :
    • {elapsedDays} & {currentDay} > used to display a day count.
    • {dd}, {mm}, {yy} and {yyyy} > used to display a date.
    • {monthName} > used to display the name of the current month based on the lang file.
    • {yearWeek} > used to display the number of the week in the year (1 to 52).
  • Added soft dependencies for PlaceholderAPI and MVdWPlaceholderAPI.
  • From now on, asynchronous speeds smaller than 1.0 will be calculated with a tick/refreshRate fraction system.
COMPATIBILITY
  • MC 1.4.6 to 1.16.4
----------, Feb 7, 2021

1.3.1 release, correcting some 1.3.0 troubles
  • Fixed the 6am/7pm bug, which froze worlds, when going from decelerated to normal speed, due to the doDaylightCycle gamerule not being updated. So issue #6 is now closed.
  • Added a wakeUpTick for lazy players who like to sleep until noon
  • From now on the plugin uses a better distribution of the parts of the day (0-dawn, 1000-day, 12000-night, 13000-dusk)
  • The day now includes dawn AND dusk (day = 13000 ticks & night = 11000 ticks)
  • After a complete sleep (100 ticks), the plugin will be able to wait for the coming of the following morning for another 500 ticks. This should allow some other plugins to display animation for the night shift. (Because in some cases, sleeping caused wrong speed or freeze at morning.)
  • Using commands "/tm set speedDay" or "/tm set speedNight" with a value of "24.00" will now change both speeds in the configuration.
  • Fixed timers of synchronized worlds which, on startup, did not display the correct times.
  • Correction of a small problem with a pretty high incidence in time calculation.
  • Fixed the "/tm set time" command who did not handle two speeds recognation.
COMPATIBILITY
  • MC 1.4.6 to 1.16.4
----------, Dec 29, 2020

1.3.1 release, Day & Night update
  • It is now possible to use a different speed for day and night :
    • The old configuration key "speed" is replaced by the two new ones "daySpeed" and "nightSpeed"
    • Two new commands are available "/tm set speedDay" and "/tm set speedNight"
    • A new calculation of elapsed time is used.
  • Spigot API updated to 1.16.4
COMPATIBILITY
  • MC 1.4.6 to 1.16.4
----------, Nov 6, 2020

1.2.1 release, try to fix some reported issues
  • mysql-connector-java updated to 8.0.16
  • Spigot API updated to 1.16.1
  • This update was not properly tested and may causes some retrocompatibility issues
COMPATIBILITY
  • MC 1.4.6 to 1.16.1
----------, Jul 3, 2020

1.2.0 release, HH:mm:ss and update message
  • The HH:mm:ss time format could be used instead of the tick when entering a 'set time', 'set start' or 'set initialTick' command.
  • An update message can be displayed when the server is started with the new 'updateMsgSrc' node in the config.yml file.
  • New cmds : '\tm checkupdate [bukkit|spigot|github] and '\tm set update [bukkit|spigot|github]'.
  • Lib change : Now using the mc 1.14.3 library.
COMPATIBILITY
  • MC 1.4.6 to 1.14.3
----------, Jul 1, 2019

1.1.1 release, ready for the mc 1.13 update :)
  • Lib change : Now using the mc 1.13 library (the 'setGameRuleValue' was actualized)
  • Cmd change : '/tm checktimers' became '/tm checktime [world|server|all]' and allows admins to target the parameters they want to check.
  • New cmd : '/tm checkconfig' displays a summary of the configuration file.
  • New cmd : '/tm set initialtick' changes the initialTickNb value in the configuration file and the MySQL database if it is active.
  • OnReload changes :
    • Now, manually change the initialTickNb in the yaml file could updates the value in the MySQL database and forces a resynchronization of all the timers.
    • If someone on your network has changed the initialTickNb in the MySQL database, the change will immediately be reflected on your server when the configuration is reloaded.
  • New scheduleSyncDelayedTask : If someone on your network has changed the initialTickNb in the MySQL database, the change will be reflected on every other servers within the next 2 minutes.
COMPATIBILITY
  • MC 1.4.6 to 1.13
----------, Aug 25, 2018

1.1.0 release, this update mostly improves synchronization (but not only)
  • Fixes the calculation of speeds below 1.0, which could be falsified by
    rounding off some decimal.
  • Adds a per world "sync" option that avoids tick offsets. When activated, it will keep the tick constantly synchronized with the server. It prevent any "/tm set time" command and replace it by a "/tm
    set start", sleep until the next dawn will become impossible, warning messages are displayed and/or related options are automatically changed.
  • Lowers the minimum refresh rate to 2 ticks, it seems to work properly.
  • Adds a public debug mode, which can be activated through the 'debugMode' option in the config file or the related command. It will display colored messages in the console, allowing for more accurate reporting.
  • Server version detection is upgraded too, so it should close issue #1
  • Renames and reworks some sub commands and related classes and options, for a more convenient usage, especially when using the tab completer.
  • Now if a player omits to specify the 'world' argument in a command, it will be replaced by the world in which it stands.
  • Tab completer has been upgraded, but still contains a hack for managing spaces in world names.
COMPATIBILITY
  • MC 1.4.6 to 1.12.1
----------, Aug 14, 2017

1.0.2 release, maximize the backward compatibility up to 1.4.6
  • For non-Spigot servers under 1.12, computer's locale will be used instead of the player's one.
  • If a locale doesn't exist in the translations, the plugin will try to search an close existent name instead. (fr_CA >> fr_FR or en_GB >> en_US)
  • Inexistent worlds will be erased from the config.yml on plugin (re)loading.
COMPATIBILITY
  • MC 1.4.6 to 1.12
----------, Jul 29, 2017

Adding compatibility from MC 1.9 to 1.12
  • The plugin will not start with versions under 1.9.
  • Fixed some minor bugs with lang.yml reloading.
COMPATIBILITY
  • Spigot from 1.9 to 1.12 and Bukkit 1.12
----------, Jul 24, 2017

Resource Information
Author:
----------
Total Downloads: 14,164
First Release: Jul 22, 2017
Last Update: Jun 15, 2026
Category: ---------------
All-Time Rating:
27 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings