Перейти к содержимому
Mineforgian

Ultimate Sleep

A comprehensive, fully configurable sleep mod for Fabric: percentage or vote-based night skip, auto-sleep, wake rewards, accessibility toggles, optional world progression while you sleep, and an in-game admin panel. Coming soon.

Загрузки
970
Подписчики
2
Обновлён
16 августа 2026 г.
Лицензия
All-Rights-Reserved

Опубликован 21 июня 2026 г.

Ultimate Sleep

The advanced, all-in-one, fully admin-configurable sleep mod. It folds the useful behaviors from ~180 surveyed Modrinth sleep mods (deduped to 52 distinct features) into a single mod where everything is a toggle. In singleplayer the player is the admin; on a server the controls are permission-gated. Ships for Fabric, NeoForge, and Forge across Minecraft 1.20 through 26.x, plus a native Paper/Folia server plugin for each major line. The mod is required on the server only -- it works for vanilla clients via chat/commands, and adds an optional in-game panel for clients that also have it.

Why Ultimate Sleep

  • One mod instead of five. Night-skip, sleep voting, auto-sleep, AFK handling, wake rewards, sleep-rule overrides, and world progression -- every behavior you would normally stack separate sleep mods for, in one place, each one a toggle.
  • Predictable nights. The mod owns every skip; vanilla can never skip the night on its own, so the behavior you configure is the behavior you get.
  • Zero client requirement. Install it on the server and every player is fully served -- vanilla clients get everything through chat and /usleep commands.
  • Optional GUI for those who want it. Players who also install the mod client-side get an in-game control panel via /usleep gui.
  • Delegate without op. A designated sleep-admin can configure everything with no operator level.

Download

Get Ultimate Sleep on Modrinth: https://modrinth.com/mod/ultimate-sleep


Sleep features

Night-skip engine

The core. One setting, requirement_mode, picks how a night gets skipped.

  • SIMPLE mode (percentage). A skip fires when enough eligible players are asleep. The threshold is required_sleep_percentage (e.g. 50% of 4 players online = 2 needed). No voting -- just sleep and the night passes once the count is met.
  • VOTE mode. The first player to climb into a bed auto-starts a server-wide vote (so nobody waits in bed alone). Everyone non-AFK votes during a countdown window; the result is tallied by the chosen pass rule and the night skips on a pass.
    • Vote via /usleep yes / /usleep no (works on any client), or with the on-screen prompt.
    • Getting into a bed mid-vote counts as an automatic YES.
    • Pass rules (vote_pass_rule): MAJORITY_CAST (yes > no), PERCENT_CAST (yes reaches vote_pass_percentage of votes cast), or MAJORITY_NON_AFK (majority of all non-AFK players -- the default).
  • The mod owns every skip. A server-side gate stops vanilla's own sleep check so the game can never skip the night on its own -- even if every player piles into bed. The night advances only when Ultimate Sleep decides it should, which keeps behavior predictable. The mod is also the sole voice -- vanilla's own "x/y sleeping" message is suppressed.

Skip behavior (how the triggered skip is carried out)

  • INSTANT. Jump straight to morning (vanilla-style).
  • ACCELERATE. Time-lapse the night instead of jumping, by driving the overworld clock rate, at one of four named speeds (Slow / Slowish / Quick / Fast = ~10 / 7.5 / 5 / 2.5 real seconds).
  • Preserve weather. Optionally keep rain/storms running across the skip instead of clearing them.

Auto-sleep

  • Per-player opt-in with /usleep auto; the choice is saved per player. The feature is admin-gated by auto_sleep_enabled (on by default).
  • Dusk auto-bed. At the earliest sleepable time, the server puts opted-in players to bed automatically if a bed is within reach -- exactly as if they'd right-clicked it.
  • Home-bed targeting. Prefers your own spawn bed when it is reachable, otherwise the nearest reachable bed.
  • Travelers' Backpack sleeping bag (soft dependency -- runtime-detected, no compile dependency). When no bed is reachable, auto-sleep can sleep in place using a loose sleeping-bag item or a bag attached to a worn Travelers' Backpack; the placed bag is removed on wake.
  • Missed-sleep notice when neither a bed nor a sleeping bag is in reach.

AFK system

  • Automatic AFK after afk_threshold_seconds idle (no move/look), plus a manual /usleep afk toggle. Any non-bed movement clears AFK; lying in bed does not.
  • Admin force-AFK a player with /usleep admin afk <player>.
  • Conditional /afk alias. If no other mod already provides /afk, Ultimate Sleep registers /afk as a direct alias of /usleep afk. If another mod owns it, we stand down.
  • Feeds the engine. AFK players can be excluded from the sleep requirement (exclude_afk_from_requirement) and get no vote and no vote prompt.

Rewards on waking

Granted on a successful sleep/skip; each is an independent admin toggle, usable in any combo.

  • Regeneration for reward_regeneration_minutes (default 5).
  • Golden carrot -- one per wake; drops at your feet if your inventory is full so it's never lost.
  • Speed boost of reward_speed_boost_percent% (default 25) for reward_speed_boost_minutes (default 5). Applied via vanilla Speed levels, so the percentage is approximate.

Accessibility / sleep-rule overrides

  • Sleep anytime -- bypass the day/time restriction on using a bed.
  • Ignore monsters -- sleep even with hostile mobs nearby.
  • Ignore "bed too far" -- skip the distance check when entering a bed.
  • Highlight blocking mobs -- outline the monsters that would stop you sleeping, visible only to you (a per-viewer glow with a timed revert).

World progression while sleeping

Skipping the night can optionally advance the world, not just the clock. A master toggle (world_progression_enabled) plus per-category sub-toggles so admins can scope the performance cost.

  • Crops & plants -- crop growth, saplings/tree growth, and plant growth.
  • Animal husbandry -- breeding cooldowns and baby-animal growth.
  • Smelting -- furnaces, smokers, blast furnaces continue.
  • Despawn timers -- item/entity despawn timers advance (off by default).

Sleeper visibility & feedback

  • Sleep status in chat (show_sleepers_in_chat) -- a concise broadcast as players start/stop sleeping, e.g. <name> is sleeping, 1 of 2 required. Need 1 more. This also serves vanilla clients with no UI.
  • Non-blocking vote prompt -- a bottom-of-screen action-bar message (never a blocking screen, so gameplay is never frozen) plus a private "your vote carried / you were outvoted" result.
  • Live vote tally (show_sleepers_on_vote_screen) -- the vote prompt can also show the running yes/no count and who is currently in bed.
  • Wake announcement (notify_wake) -- a short broadcast once the night has been skipped, so everyone knows morning has arrived.

In-game admin panel (optional client UI)

  • Server-driven panel opened with /usleep gui. The server pushes the open request and the current config to a client that has the mod; the client renders a paginated control panel (9 pages) and writes changes back over a private, permission-checked back-channel. Clients without the mod simply use the commands instead.

Flexible settings input

  • Forgiving values. Booleans accept true/yes/1/on and false/no/0/off (case-insensitive); percentages accept 50, 50%, 1/2, or 0.5. Every set confirms the resolved value back to you.
  • Tab completion for setting keys and values.

Settings reference

Typed (bool / int / enum / percent), JSON-persisted. Per-player state (AFK status, auto-sleep opt-in, home bed) is runtime player data, not in this global table.

key type default
enabled bool true
requirement_mode SIMPLE | VOTE SIMPLE
required_sleep_percentage percent 50
exclude_afk_from_requirement bool true
vote_duration_seconds int 30
vote_pass_rule MAJORITY_CAST | PERCENT_CAST | MAJORITY_NON_AFK MAJORITY_NON_AFK
vote_pass_percentage percent 50
skip_mode INSTANT | ACCELERATE INSTANT
accelerate_speed SLOW | SLOWISH | QUICK | FAST QUICK
preserve_weather bool false
sleep_anytime bool false
sleep_ignore_monsters bool false
ignore_bed_too_far bool false
highlight_blocking_mobs bool false
show_sleepers_in_chat bool true
show_sleepers_on_vote_screen bool true
notify_wake bool true
reward_regeneration bool false
reward_regeneration_minutes int 5
reward_golden_carrot bool false
reward_speed_boost bool false
reward_speed_boost_percent percent 25
reward_speed_boost_minutes int 5
world_progression_enabled bool false
progress_crops bool true
progress_animal_husbandry bool true
progress_smelting bool true
progress_despawn_timers bool false
auto_sleep_enabled bool true
afk_threshold_seconds int 180
provide_afk_command bool true

Commands

Everything lives under /usleep. The player and informational commands are open to everyone; the configuration commands are permission-gated. A designated sleep-admin needs no operator level and is treated as op-4 for every Ultimate Sleep command, so owners can delegate sleep configuration without handing out vanilla operator.

Open the control panel

  • /usleep gui -- open the in-game admin panel. Requires the Ultimate Sleep client mod; vanilla clients use the chat commands below instead.

Everyday player commands (everyone)

  • /usleep status -- short status line: mode, requirement percentage, and current AFK count.
  • /usleep query -- full settings dump (key = value) plus who currently owns /afk.
  • /usleep afk -- toggle your own AFK state.
    • /afk -- alias of /usleep afk, registered only when no other mod already provides it.
  • /usleep auto -- toggle your personal auto-sleep opt-in.
    • Available only while the admin has auto_sleep_enabled turned on.

During a sleep vote (VOTE mode, while a vote is running)

  • /usleep yes -- vote to skip the night.
  • /usleep no -- vote against skipping.

Change settings (sleep-admin, or op level 2+)

  • /usleep set <key> <value> -- change a setting. Setting keys tab-complete, and boolean/enum values tab-complete once a key is typed.

Administration (sleep-admin, or op level 3+)

  • /usleep admin set <key> <value> -- change any setting at the administration tier.
  • /usleep admin afk <player> -- force another player into AFK.
  • /usleep admin admins -- manage the sleep-admin roster:
    • /usleep admin admins add <player> -- grant sleep-admin to a player.
    • /usleep admin admins remove <player> -- revoke a player's sleep-admin.
    • /usleep admin admins list -- list the current sleep-admins.

Source code

The full multi-loader source (with build instructions) lives on the minecraft-1.20-26.3 branch.

Report issues / Support

Please file bug reports and feature requests at the shared support hub: https://github.com/Kishku7/mod_support

License

All Rights Reserved (c) Kishku7.

Ченджлог

1.3.1+26.x-pluginРелиз26.1.1, 26.1.2, 26.2 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+26.3Бета26.3-snapshot-7 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+26.2-neoforgeРелиз26.2 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+26.2Релиз26.2 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+26.1-neoforgeРелиз26.1, 26.1.1, 26.1.2 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+26.1Релиз26.1, 26.1.1, 26.1.2 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+1.21.x-pluginРелиз1.21.9, 1.21.10, 1.21.11 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

1.3.1+1.21.9-neoforgeРелиз1.21.9, 1.21.10 · 16 августа 2026 г.

Makes the 1.3.0 catch-up observable. No behaviour change to the catch-up itself.

Added

  • progression start / progression end log lines (INFO, once per catch-up, mod and plugin), mirroring the ACCELERATE start / ACCELERATE end pair the engine already logs: progression start: catching up 9847 ticks over ~10s / progression end: applied 9847 ticks over 197 server ticks (9.9s). An admin who changes progression_catchup_seconds can now see it take effect.

Why it exists

Building the catch-up smoketest gate proved the window has no external observable: the random-tick boost is applied and restored INSIDE a single tick body, so a console gamerule random_tick_speed query -- which can only run between ticks -- reads the world's own value every time, mid-catch-up included. Sampling it measures nothing, and a permissive parser turns that nothing into numbers. Crop growth is no better: it is stochastic, and a single wheat block needs ~7 successful random ticks, which one night of catch-up does not reliably deliver. So the only honest way to assert "the night was SPREAD, not applied in one tick" is for the mod to say so. The gate now measures the window from these two lines, and the same lines are what an operator reads on a live server.

Комментарии

Загружаем…