One-Sleep Timelapse (NeoForge 1.21.1)
Primary target: servers with mandatory client install server + client required. Single-player is less battle-tested so far — if you find bugs or have ideas, please leave a comment. Any feedback helps a ton ❤️
Smooth, one-player night & storm skip with a cinematic timelapse. Both sides required: install the mod on the server and on every client.

Changelog (latest)
- New, cleaner config layout (auto-generated with sections, comments, and per-reason messages).
- Voting countdown before a skip starts + optional veto percentage.
- Daytime rain skip via consent (click a bed while it’s raining or use
/onesleep consent).
- Bossbars for countdown and during the skip; titles are fully customizable.
- Config self-check:
/onesleep checkconfig validates values, auto-repairs critical issues, and reports the result in chat.
- Safer suppression/restore of vanilla
playersSleepingPercentage while pending/running.
- More flexible texts (bossbar, start/finish, and per-reason overrides).
Features
- One-sleep trigger — skip begins when the required threshold is met (default 0% = one-sleep).
- Two modes:
- Cinematic (default): clients render a smooth sky animation; server snaps to morning (night) or ends thunder (daytime thunder).
- Timelapse: the server actually advances time; lighting/mobs/weather update during the transition.
- Thunder (vanilla behavior) and daytime rain skip (via consent, optional).
- UI: progress bossbar + optional titles (all texts customizable).
- Overworld-only. Nether/End are ignored.
- Server + client required. The mod must be installed on the server and on all joining clients.
How it works
- Cinematic: server broadcasts “start”, clients render for
durationSeconds. Server sets time to targetTime (night) or ends thunder once (daytime thunder). Rain-skip keeps time and can clear rain once.
- Timelapse: server advances day time every tick for the duration; clients still get smoothing hints.
Installation
- Server: place the JAR into
/mods and start.
- Clients (required): every player must place the same JAR into
/mods. The mod is required to join and to see the cinematic.
- Config: generated on first run at
config/onesleep.toml.
Requirements
- NeoForge 21.1.x
- Minecraft 1.21.1
- Java 21
Commands
/onesleep consent — register consent to skip daytime rain (no need to enter bed).
/onesleep stop — cancel pending/running skip (respects veto rules if enabled).
/onesleep start — force start (OP).
/onesleep cancel — force cancel (OP).
/onesleep require <0..100> — set threshold in % (0 = one-sleep) (OP).
/onesleep duration <seconds> — set animation length (OP).
/onesleep checkconfig — validate & auto-repair config; report result in chat (OP).
/onesleep reload — reload the config immediately (OP).
/onesleep mode [cinematic|timelapse|toggle] — switch mode at runtime (OP).
CONFIG (auto-generated; acts as documentation)
Core
| Key |
Default |
Description |
| enabled |
true |
Master switch. |
| mode |
"cinematic" |
"cinematic" |
| requirePercentage |
0 |
0 = one-sleep; otherwise % of online players. |
| cinematicSkyShiftTicks |
3000 |
Client-only sky shift for cinematic during rain/thunder (0..23999); visual only. |
| durationSeconds |
12 |
Skip length in seconds. |
| targetTime |
1000 |
Morning time (0..23999), vanilla ≈ 1000. |
| minNightTime |
12542 |
Earliest tick treated as night (0..23999). |
Skip Rules
| Key |
Default |
Description |
| allowThunderSkip |
true |
Allow skipping thunderstorms. |
| allowRainSkip |
true |
Allow skipping daytime rain via consent. |
| clearThunderAfter |
false |
After thunder/rain skip, clear thunder (if any) once. |
| clearRainAfter |
false |
After rain skip, clear rain once. |
Voting — mechanics
| Key |
Default |
Description |
| voteEnabled |
true |
Enable pre-skip countdown. |
| voteCountdownSeconds |
10 |
Countdown length (seconds). |
| vetoEnabled |
true |
Enable veto during countdown. |
| vetoPercentage |
50 |
% of online needed to pass veto. |
UI
| Key |
Default |
Description |
| uiBossbar |
true |
Show bossbar during skip. |
| uiPendingBossbar |
true |
Show bossbar during countdown. |
| uiTitles |
true |
Show start/finish titles. |
Messages — global defaults
| Key |
Default |
Description |
| msgBossbar |
"Skipping…" |
Bossbar text during skip. |
| msgPendingBossbar |
"Skip in <seconds>s" |
Bossbar text during countdown. |
| msgStartTitle |
"Skipping…" |
Title at start. |
| msgStartSubtitle |
"" |
Subtitle at start. |
| msgFinishTitle |
"Good morning!" |
Title at finish. |
| msgFinishSubtitle |
"" |
Subtitle at finish. |
| msgCancelTitle |
"Skip canceled" |
Title when canceled. |
| msgCancelSubtitle |
"" |
Subtitle when canceled. |
| msgVotePrompt |
"<player> wants to skip. Starts in <seconds>s" |
Chat message when countdown starts. |
| msgVoteAutoCanceled |
"Skip canceled (threshold lost)" |
Shown when threshold is lost. |
| msgVoteCanceledBy |
"Skip canceled by <player>" |
Shown when someone cancels. |
| msgVetoRegistered |
"<player> voted to cancel (<count>/<total> = <percent>%)" |
Shown when a veto vote is registered. |
| msgVetoCanceled |
"Skip veto passed (<count>/<total> = <percent>%)" |
Shown when veto passes. |
Messages — consent (actionbar)
| Key |
Default |
Description |
| msgConsentRain |
"Rain-skip consent registered." |
Shown to a player who consents to skip daytime rain. |
| msgConsentNight |
"Sleep-skip consent registered." |
Shown to a player who consents to skip night/thunder by entering a bed. |
Per-reason overrides — Night
| Key |
Default |
Description |
| msgStartTitleNight |
"Skipping night…" |
Start title for night skip. |
| msgStartSubtitleNight |
"" |
Start subtitle for night skip. |
| msgFinishTitleNight |
"Good morning!" |
Finish title after night skip. |
| msgFinishSubtitleNight |
"" |
Finish subtitle after night skip. |
Per-reason overrides — Thunder
| Key |
Default |
Description |
| msgStartTitleThunder |
"Skipping thunder…" |
Start title for thunder skip. |
| msgStartSubtitleThunder |
"" |
Start subtitle for thunder skip. |
| msgFinishTitleThunder |
"Thunder passed!" |
Finish title after thunder skip. |
| msgFinishSubtitleThunder |
"" |
Finish subtitle after thunder skip. |
Per-reason overrides — Rain (day)
| Key |
Default |
Description |
| msgStartTitleRain |
"Skipping rain…" |
Start title for daytime rain skip. |
| msgStartSubtitleRain |
"" |
Start subtitle for daytime rain skip. |
| msgFinishTitleRain |
"Rain stopped!" |
Finish title after rain skip. |
| msgFinishSubtitleRain |
"" |
Finish subtitle after rain skip. |
Compatibility
- Built for dedicated servers.
- Requires the mod on the server and on all clients.
- If another mod force-sets time/weather every tick, prefer Cinematic mode for the smoothest result.
Credits & Transparency
This mod was created from my personal idea and is my first proper Minecraft mod I’d like to share. I’m primarily a web developer, so I built it with AI assistance for Java/NeoForge boilerplate and best-practice guidance, and then tested/tuned everything myself — with special care to keep vanilla weather behavior intact and to deliver a smooth, server-safe experience.
Author: OpiceBOT (cz.opicebot) — License: MIT
Suggested categories
- Main: Server Utility / Utility & QoL
- Additional: Gameplay, Cosmetic, World