Source-checkedGameplay & overhauls

TimeControl

by DrummerCraig · for Valheim

Adjust the length of the Valheim day/night cycle with a simple multiplier.

1.3KDownloads
55d agoLast updated
BepInExLoaders
ThunderstoreSource

About TimeControl

From Thunderstore

Adjust the length of the Valheim day/night cycle with a simple multiplier.

TimeControl

A BepInEx 5 plugin for Valheim that adjusts the length of the in-game day/night cycle with a single multiplier.

By default Valheim runs one full day/night cycle in roughly 30 real minutes. TimeControl lets you stretch (or compress) that — e.g. a 4.0 multiplier turns a full day into about 2 real hours.

How it works

Valheim derives the time of day every physics tick from a single field, EnvMan.m_dayLengthSec:

dayFraction = (worldClockSeconds mod m_dayLengthSec) / m_dayLengthSec

The networked world clock advances at a fixed rate of 1 real second to 1 game second, so making a day longer is simply a matter of increasing m_dayLengthSec. TimeControl captures Valheim's shipped value once and multiplies it by your configured multiplier. Day and night both scale together; their ratio is fixed by Valheim and is preserved.

The change takes effect immediately and smoothly — the sun does not jump.

On-screen clock

TimeControl shows a small clock in the top-center of the screen that displays the current time of day as a single word — Midnight, Night, Dawn, Morning, Midday, Afternoon, or Dusk. The word is derived from Valheim's own day fraction, so it lines up with the real sunrise (0.25), midday (0.5) and sunset (0.75) points of the cycle. It is display-only and per-client — it reads your local clock and adds no network traffic and no Harmony patches.

The clock's appearance is configurable (color, custom hex color, size, style and font); see the Clock Appearance options below. The clock's style and font are rebuilt only when you change a setting, so it adds no measurable per-frame cost.

Configuration

Config file: BepInEx/config/drummercraig.time_control.cfg

| Section | Key | Default | Description | |---|---|---|---| | General | DayLengthMultiplier | 4.0 | Multiplier on the vanilla day length. 1.0 = vanilla (~30 min/day). 2.0 = twice as long. Range 0.1–100. | | General | ShowClock | true | Show the on-screen time-of-day word clock. | | Clock Appearance | TextColor | White | Palette color for the clock text. Ignored when TextColorHex is set to a valid value. | | Clock Appearance | TextColorHex | (blank) | Optional custom color as #RRGGBB; overrides TextColor when valid. Blank uses the palette. | | Clock Appearance | FontSize | 16 | Font size (dropdown of preset sizes: 12, 14, 16, 18, 20, 24, 28). | | Clock Appearance | FontStyle | Bold | Normal, Bold, Italic, or BoldAndItalic. | | Clock Appearance | Font | Default | Font family. Default = the built-in game UI font; other entries are common cross-platform fonts, falling back to the default if not installed on your machine. |

You can edit these live from the in-game Configuration Manager (if installed); changes apply on the spot.

Multiplayer

m_dayLengthSec is a client-local field — vanilla Valheim never sends it over the network. To keep everyone on the same clock, TimeControl:

  1. Requires an exact mod-version match. When a client connects, the server

and client exchange their TimeControl version over a custom RPC. If they do not match exactly — or if one side does not have the mod at all — the connection is refused with Valheim's native "Incompatible version" screen. This reuses the same mechanism vanilla itself uses to reject mismatched clients (ZNet.RPC_PeerInfo + the ConnectionStatus.ErrorVersion code); no third-party config-sync library is bundled.

  1. Server settings win. Immediately after the handshake, the server pushes

its effective DayLengthMultiplier to the client, which adopts it for the session. A connected client's own local config is ignored while connected, so all players always share the server's clock. The client's local value applies again in singleplayer or when hosting.

Install TimeControl on the server and on every client, at the same version.

Building

Requires Mono with the .NET Framework 4.8 reference assemblies. TimeControl does not commit any game/BepInEx DLLs; it references them from your live Valheim install so it always builds against the exact version you run.

First-time setup:

  1. Copy Directory.Build.props.example to Directory.Build.props and set the

two paths to your install's …/Managed folder and …/BepInEx/core folder. (Directory.Build.props is gitignored.) This is what the .csproj / IDE use.

  1. The game assembly referenced is assembly_valheim.dll (the full ~2 MB

managed assembly). Do not reference Assembly-CSharp.dll on macOS — that file is a tiny AOT stub with no game types.

Then:

./build.sh

build.sh resolves the same paths from the VALHEIM_MANAGED and BEPINEX_CORE environment variables, falling back to the local macOS Steam "testing" install defaults. Override them to build against a different install:

VALHEIM_MANAGED="/path/to/.../Managed" BEPINEX_CORE="/path/to/.../BepInEx/core" ./build.sh

This compiles TimeControl.dll into bin/Release/ and (when the local Steam testing install is present) copies it into that install's BepInEx/plugins/ directory.

License

See repository.

Highlights

From source data

Loaders

Runs on BepInEx.

Footprint

Rated a light load on a server.

Last update

Its author last shipped an update 55d ago.

TimeControl on Nxeon

From our catalogue
One-click install
Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
Server side
Optional on the server
Server type needed
BepInEx
Server load
light
Smallest plan we suggest
Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
Latest build
1.2.1, released 2026-09-10

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 5 recorded builds of TimeControl.

Recent builds

BuildReleasedGame versionsLoaders
1.2.12026-09-10n/aBepInEx
1.2.02026-09-06n/aBepInEx
1.0.22026-07-27n/aBepInEx
1.0.12026-07-27n/aBepInEx
1.0.02026-06-21n/aBepInEx

Run TimeControl on a Valheim server

Pick a server or deploy a new one above; it is installed in one click.

What kind of mod it is

From the catalog
Listed on Thunderstore as “Content”

Gameplay & overhauls

New mechanics, content and overhauls that change how the game plays.

Works on a server

From source side support

Thunderstore lists server-side support for TimeControl as optional: it can run on a server, but isn’t required there.

Compatibility

Game
Valheim
Loaders
BepInEx
Runs on
Serveroptional on the server
Requires
One-click install needs a BepInEx server.

Verified at the source

  • ✓ThunderstoreOfficial listing, checked 2026-10-02Open ↗
  • ✓AuthorDrummerCraig, as published on Thunderstore
  • ✓LicenseNot published by the sourceFree

TimeControl, answered

Generated from the mod’s own source data.

Do my players need to install TimeControl?

Thunderstore lists server-side support for TimeControl as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

BepInEx.

Is it free?

Yes. TimeControl is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run TimeControl on a Valheim server.

Deploy in about a minute from $9.99 a month, then add TimeControl in one click.