promotional bannermobile promotional banner

Decoupled time

Per-dimension time independence for NeoForge 1.21.1+
Back to Files

Decoupled Time 1.0.3

File namedecoupled_time-1.0.3.jar
Uploader
TheonlyTazzTheonlyTazz
Uploaded
Mar 15, 2026
Downloads
61
Size
31.6 KB
Mod Loaders
NeoForge
File ID
7762325
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:decoupled-time-1482627:7762325"

Learn more about Curse Maven

What's new

Changelog

All notable changes to Decoupled Time will be documented in this file.

[1.0.3]

Added

  • Time Phase Events: Added DimensionTimePhaseEvent fired on the NeoForge event bus when a decoupled dimension's day time crosses into a new phase (DAY, NOON, NIGHT, MIDNIGHT). Enables other mods (e.g. KubeJS) to hook into time-of-day transitions per dimension.

    KubeJS Example:

      NativeEvents.onEvent("com.breakinblocks.decoupled_time.api.DimensionTimePhaseEvent", (event) => {
          const {phase, level, dayTime} = event;
          switch (phase.name()) {
              case "DAY":
                  // do something when day starts in this dimension
                  break;
              case "NOON":
                  // do something when noon starts in this dimension
                  break;
              case "NIGHT":
                  // do something when night starts in this dimension
                  break;
              case "MIDNIGHT":
                  // do something when midnight starts in this dimension
                  break;
          }
      });
    

[1.0.2]

Changed

  • Split Smart Pausing Config: enableSmartPausing has been replaced with two independent toggles: pauseGameTime and pauseDayTime. This allows pausing the day/night cycle independently from gameTime (scheduled ticks, entity processing) when no active players are present.

[1.0.1]

Fixed

  • Sun/Moon Jitter with Day Length Multiplier: Fixed rubber-banding of the sun and moon when using non-default dayLengthMultiplier values. The client was advancing dayTime at vanilla rate (+1/tick) between server syncs, causing visual snapping. Added client-side mixin to match the server's fractional advancement rate.
  • Time Commands Nesting: Fixed /time add and /time query being incorrectly nested under /time set instead of being top-level subcommands.
  • Time Commands on Non-Decoupled Dimensions: Time commands no longer error on non-decoupled dimensions. They now fall back to the global level time and label output with (global).

[1.0.0]

Added

  • Per-Dimension Time Decoupling: Each dimension maintains its own independent dayTime and gameTime, configurable via whitelist/blacklist.
  • Smart Pausing: Local time progression pauses when no active players are present in a dimension (configurable).
  • Dimension-Aware Time Commands: /time set and /time add now accept an optional dimension argument.
  • Sleep Synchronization: When players sleep, only the current dimension's time advances.
  • Time Sync on Join: Optional time packet sync on login and dimension change.
  • Day Length Multiplier: Configurable dayLengthMultiplier to make days longer or shorter per decoupled dimension (e.g., 2.0 = 40 minute days, 0.5 = 10 minute days).
  • Spectator Pause Option: Spectators can optionally not count as active players for smart pause.

This mod has no related projects