Sleep Reworker transforms the vanilla sleeping experience into a fully immersive event — complete with animations, ambient effects, and a nightmare system that keeps you on your toes every night.
When you lie down in a bed, the world doesn't just skip to morning. Instead:
Waking up from a peaceful night gives you:
Every night there is a 25% chance of triggering a nightmare. If you're unlucky, you'll experience:
| Type | Chance | Monsters |
|---|---|---|
| 👻 Phantoms | 30% | 3 "Shadow of the Night" phantoms circling overhead |
| 🕷️ Spiders | 30% | 4 spiders + 1 cave spider surrounding you |
| 💥 Creepers | 20% | 2 charged creepers + 1 normal creeper |
| 🧟 Husks | 20% | 3 husks + 1 zombie reinforcement |
All nightmare monsters have persistence — they won't despawn naturally, so deal with them.
To change the nightmare probability, edit one line in data/sleep_reworker/function/sleep/on_sleep.mcfunction:
execute if score @s sr_roll matches 1..25
Change 25 to any value from 1 to 100. Examples:
1..50 → 50% chance1..10 → 10% chanceThe datapack is fully functional for Bedrock players via GeyserMC — all status effects, nightmare spawns, particles, and scoreboards work server-side. The only caveat: floating "Zzz" text entities use text_display entities which are not rendered by Bedrock clients. Everything else works perfectly cross-platform.
# Force a nightmare on yourself (for testing)
/tag @s add sr.nightmare
# Clear all datapack effects
/tag @s remove sr.sleeping
/tag @s remove sr.nightmare
/effect clear @s
# Reload the datapack
/reload
Developed for multiplayer servers running Minecraft Java Edition 26.1.