Server-authoritative time-of-day synchronization for BeamMP.
ChronosMP keeps the in-game time of day in lockstep across every player on a BeamMP server. One authoritative clock runs on the server and broadcasts to clients, so everyone shares the same sunrise, sunset, and night — no drift, no per-player desync. It's a lightweight, drop-in plugin with no dependencies on any other mod.
- Authoritative master clock. The server owns the time; clients follow it and resync on a fixed interval and whenever the day/night phase flips.
- Independent day and night lengths. Daytime and nighttime each run on their own real-second duration, so you can have long days and short nights (or the reverse).
- Configurable sunrise/sunset. Define when day and night begin; the broadcast rate switches the instant a phase boundary is crossed.
- Time control. Set the time, read the current time, freeze and unfreeze the clock, and force a manual resync.
- Optional voting. Above a configurable player count, time changes go to a simple-majority vote instead of applying instantly; below it, they apply immediately.
- Full server-console interface. Host-only console commands that never require a vote.
- Console-only mode. A single switch locks the mod to the server console and ignores all chat commands.
| Command | Aliases | What it does |
|---|---|---|
/chronos |
/chr, /tm |
Show the help list |
/chronos HH:MM or /chronos HH |
/chr, /tm |
Set the time (24-hour; HH is 00–23). Applies instantly, or opens a vote past the threshold |
/chronos sync |
/tms |
Resync everyone to the server's time |
/clock |
— | Show the current server time |
/chr-ice |
— | Freeze time |
/chr-thaw |
— | Unfreeze time |
/chr-yes |
— | Vote yes on a pending change |
/chr-no |
— | Vote no, or (if you proposed it) cancel it |
| Command | What it does |
|---|---|
chronos |
Show the console help list |
chronos-sync |
Resync everyone to the server's time |
chronos-settime HH:MM or chronos-settime HH |
Set the time — never goes to a vote |
chronos-freeze |
Freeze time |
chronos-unfreeze |
Unfreeze time |
chronos-reload |
Reload config.lua live, without restarting the server |
Console commands always work, even with console_only enabled, and never trigger a vote.
ChronosMP has two halves — a client mod that BeamMP distributes to players, and a server plugin that runs the clock.
- Client mod — place
ChronosMP.zipin your server'sResources/Client/folder. - Server plugin — create the folder
Resources/Server/ChronosMP/and placemain.luaandconfig.luainside it. - (Optional) Configure — edit
Resources/Server/ChronosMP/config.luato taste (see below). - Restart the BeamMP server. Players reconnect normally; BeamMP sends the client mod automatically on join.
Your Resources/ tree should look like this:
Resources/
├── Client/
│ └── ChronosMP.zip
└── Server/
└── ChronosMP/
├── main.lua
└── config.lua
All tunables live in config.lua:
| Setting | Default | Meaning |
|---|---|---|
syncInterval |
30 |
Seconds between authoritative broadcasts |
dayLength |
1800 |
Daytime length, in real seconds |
nightLength |
600 |
Nighttime length, in real seconds |
sunriseHour |
6 |
In-game hour daytime begins (0–24) |
sunsetHour |
19 |
In-game hour nighttime begins (0–24) |
startTime |
0.0 |
Starting time as a fraction; 0.0 = noon, 0.5 = midnight |
timeFrozen |
false |
Start with the clock frozen |
voteEnabled |
true |
Whether time changes can go to a vote |
voteThreshold |
2 |
Above this many connected players, changes go to a vote |
voteDuration |
60 |
Seconds a vote stays open before it expires |
console_only |
false |
If true, only the server console is accepted; all chat commands are ignored |
When voteEnabled is false, or the number of connected players is at or below voteThreshold, a requested change applies instantly. Above the threshold, the change opens a vote: it needs a simple majority of currently-connected players, the proposer's request counts as a yes, and the vote expires after voteDuration seconds if it doesn't pass. Console commands bypass voting entirely.
- A BeamMP server. Singleplayer is not tested nor a focus.
- No other mods or plugins required.
GPL-3.0. ChronosMP is free and open source, and is intended to stay that way.
This mod and repo was built with collaborative assistance from Claude AI.
