SinglePlayerSleep2

For versions of minecraft older than 1.12 download the appropriate version of SPS for your MC version here... http://dev.bukkit.org/bukkit-plugins/singleplayersleep/
Description:
SinglePlayerSleep2 brings the relaxed single-player sleep experience to multiplayer servers. When a player right-clicks a bed at night, the plugin broadcasts a message like "<player> is sleeping [CANCEL]". If nobody cancels it, the server advances to morning after a short delay — without changing the day count or difficulty.
The plugin also intelligently handles weather: players with the right permissions can clear rain or thunderstorms when they sleep.
Key Features
- One-player sleep – No more waiting for everyone to go to bed.
- Cancel system – Anyone can click to cancel (configurable permissions).
- Storm clearing – Optional permission-based weather reset.
- /sleep command – Alternative to using a bed.
- Lightweight & reliable – Works alongside normal bed behavior when you're the only player online.
DaySkipper (Added in 2.13.31)Players with the sps.dayskipper permission can skip from day to night using any bed.
Optionally require a named item (e.g., "DaySkipper") from config.yml to activate this feature.
Nickname & Advanced Color Support (Updated in 2.13.44)
Fully supports nicknames from VentureChat, Essentials, and HexNicks.
Messages display player nicknames with full **RGB/hex color support**, gradients, and rainbows.
New in 2.13.44: Full color customization inside the sleep messages themselves!
You can now use gradients, solid colors, rainbows, and placeholders in the sleep message, cancel message, DaySkipper messages, and more.
See the updated `messages.yml` (extract from the latest jar if needed) for all the new formatting options.

Sleepmsg examples:
# Color codes are now usable in sleepmsgs, Example: <BLACK>Black<RESET>Reset
# RGB format is §xFF00FF (§xFFFFFF<player> §x000000i§x999999s §x111111s§x888888l§x222222e§x777777e§x333333p§x666666i§x444444n§x555555g)
# THERE MUST BE A COLOR CODE IN FRONT
sleepmsg1: §xFFFFFF<player> §xFF0000is §xFF7F00s§xFFFF00l§x00FF00ee§x0000FFpi§x4b0082n§x9400D3g
sleepmsg2: §xFFFFFF<player> §x00FFFFwent to bed. Sweet Dreams
sleepmsg3: <YELLOW>Shhh! §xFFFFFF<player> §xFF0000is §xFF00FFtrying §x0000FFto §x00FF00sleep!
sleepmsg4: §xFFFFFF<player> §xFF00FFis asleep at the wheel
sleepmsg5: §xFFFFFFNO ONE<colon> ...\n§xFFFFFF<player><colon> §xFFFF00go to bed.
Languages supported:
# Available languages čeština (cs_CZ), Deutsch (de_DE), English (en_US), Español (es_ES), Español (es_MX), Français (fr_FR), Italiano (it_IT), Magyar (hu_HU), 日本語 (ja_JP), 한국어 (ko_KR), Lolcat (lol_US), Melayu (my_MY), Nederlands (nl_NL), Polski (pl_PL), Português (pt_BR), Русский (ru_RU), Svenska (sv_SV), Türkçe (tr_TR), 中文(简体) (zh_CN), 中文(繁體) (zh_TW)
Known conflicts:
I was made aware that Essentials's permission "essentials.sleepingignored" conflicts with SPS.


Messages.yml:
# DO NOT CHANGE VERSION
version: 1.0.4
# Set msgs for random sleep msgs here sleepmsg#: <player> msg here
# Don't forget the space between : and the start of the message.
# Color codes are now usable in sleepmsgs, Example: <BLACK>Black<RESET>Reset
# RGB format is §xFF00FF (§x§F§F§F§F§F§F<player> §x§F§F§A§A§0§0went to bed. Sweet Dreams)
# take Hex code replace hashmark with §x then place § before each character in the Hex code.
# THERE MUST BE A COLOR CODE IN FRONT
messages:
sleep:
count: 5
message_1: <#FFFFFF><player> <rainbow>is sleeping</rainbow>...
message_2: <#FFFFFF><player> <#FFAA00>went to bed. Sweet Dreams!
message_3: <YELLOW>Shhh! <#FFFFFF><player> <#FF0000>is <#FF00FF>trying <#0000FF>to <#00FF00>sleep!
message_4: <#FFFFFF><player> <#FF00FF>is asleep at the wheel
message_5: <#FFFFFF>NO ONE<colon> ...<br><#FFFFFF><player><colon> <#FFFF00>go to bed.
dayskip:
count: 3
message_1: <WHITE><player> <WHITE>wants to <BLUE>sleep <WHITE>the <YELLOW>day <WHITE>away...
message_2: <#FFFFFF><player> <#FF7F00>wants <#FFFF00>to <#00FF00>sleep <#0000FF>the <#4B0082>day <#821073>away<#FFFFFF>...
message_3: <#FFFFFF><player> <gradient:#000000:#FFFF00>wants to sleep the day away</gradient>...
sleep_canceled:
count: 3
message_1: <#FFFFFF><player> <#FF5555>woke up—no dreams for you tonight! <rainbow>Sweet revenge?</rainbow>
message_2: <YELLOW><player> <#FF0000>canceled sleep. <WHITE>The monsters thank you...
message_3: <#FFFFFF><player> <gradient:#FF5555:#00FF00>aborted bedtime</gradient>. Back to the grind!
dayskip_canceled:
count: 3
message_1: <#FFFFFF><player> <#FFAA00>changed their mind—daylight wins! <gradient:#FFFF00:#FF0000>Sun's up!</gradient>
message_2: <YELLOW><player> <#FF0000>bailed on the dayskip. <WHITE>Night owls unite?
message_3: <#FFFFFF><player> <rainbow>woke early</rainbow>—no skipping the sun today!
Permissions:
sps.hermits:
description: Allows one player to change the time to day when using a bed. Without clearing local difficulty.
default: true
sps.unrestricted:
description: Allows the player to sleep uninterrupted. Other players will not be able to cancel it.
default: false
sps.downfall:
description: Clears Downfall upon SPS sleep.
default: false
sps.thunder:
description: Clears Thunderstorm upon SPS sleep
default: false
sps.cancel:
description: Allows canceling Single Player Sleep.
default: true
sps.command:
description: Allows player to use the /sleep command, instead of a bed.
default: op
sps.update:
description: Allows the player to check for updates.
default: op
sps.op:
description: Overrides all permissions.
default: false
sps.showUpdateAvailable:
description: Shows player that there is a version update.
default: op
sps.dayskipper:
description: Allows one player to change the time to night when using a bed. Without clearing local difficulty.
default: false
sps.dayskipcommand:
description: Allows player to use the /dayskip command, instead of a bed.
default: op
sps.showCancelledMsg:
description: Allows player to see the player has cancelled sleeping message.
default: true
If the player is the only one player online, then the bed functions as normal, since the sleep function works before the 10 second delay.
config.yml:
########################################################################################
# IMPORTANT: THIS FILE IS FOR REFERENCE ONLY - DO NOT EDIT OR USE IN-GAME
#
# This config_comments.yml file is ONLY included in the JAR as documentation.
# The plugin NEVER loads or reads this file at runtime.
#
# All actual configuration happens in config.yml.
# Comments and explanations here are just to help you understand the options.
#
# If you edit this file, your changes will be ignored and lost on update/reload.
#
########################################################################################
#
# DO NOT CHANGE VERSION
version: 1.1.0
## Plugin-wide settings (auto-update, debug, language)
plugin:
## Change to false to stop auto-update-check.
auto_update_check: true
## Set to true before sending a log about an issue.
## Logs trace data required to pinpoint where errors are.
debug: false
## Set the language to use. Languages: čeština (cs_CZ), Deutsch (de_DE), English (en_US),
## Español (es_ES), Español (es_MX), Français (fr_FR), Italiano (it_IT), Magyar (hu_HU),
## 日本語 (ja_JP), 한국어 (ko_KR), Lolcat (lol_US), Melayu (my_MY), Nederlands (nl_NL),
## Polski (pl_PL), Português (pt_BR), Русский (ru_RU), Svenska (sv_SV), Türkçe (tr_TR),
## 中文(简体) (zh_CN), 中文(繁體) (zh_TW)
lang: en_US
## Global/shared settings (apply to both sleep and dayskip)
global:
## Enables fancy ANSI colors in console.
colorful_console: true
## Should plugin use short name (SPS) or long name (SinglePlayerSleep)?
long_plugin_name: true
## Default world name to use for console commands (/sleep or /dayskip) when no world is specified.
## Use the exact world name (case-sensitive). If invalid or missing, falls back to the first loaded world.
console_default_world: "world"
## Set to true to use random messages for sleep/dayskip broadcasts.
random_messages: true
## Should broadcasts be per world, or server wide? (Should be true for multiverse/multi-world servers)
broadcast_per_world: true
## Set to true to ignore vanished players when handling sleep events and canceling.
ignore_vanished: true
## Color for the main message text (was sleepmsgcolor / skip_color).
## Colors: AQUA, BLACK, GOLD, GRAY, BLUE, GREEN, RED, YELLOW, WHITE,
## DARK_AQUA, DARK_BLUE, DARK_GRAY, DARK_GREEN, DARK_RED, DARK_PURPLE, LIGHT_PURPLE,
## MAGIC, BOLD, STRIKETHROUGH, UNDERLINE, ITALIC, RESET
message_color: WHITE
## Color for player names in messages.
player_name_color: WHITE
## Color for the [CANCEL] link text in broadcast messages.
cancel_color: RED
## Color for the brackets around the [CANCEL] link.
cancel_bracket_color: YELLOW
## Cooldown limits (in seconds) to prevent spam
limits:
## Time a player must wait before using sleep or dayskip again.
## Set to 0 to disable.
use_cooldown: 30
## Time a player must wait before using cancel again.
## Set to 0 to disable.
cancel_cooldown: 30
## Should player nicknames use their display name (true) or username (false)?
nickname_use_displayname: true
## Sleep settings
sleep:
## Set to true to auto-fix playersSleepingPercentage to 100 if invalid or <= 0.
auto_fix_sleeping_percentage: true
## Worlds where sleep is disabled (case-sensitive, comma-separated)
blacklist: world_nether, world_the_end
## Delay between sleep start and day change (seconds). Minimum 1, recommend 10.
delay: 10
## If true, disables all broadcast messages and allows anyone to sleep.
unrestricted: false
## Set wake time: Early (23000) or Normal (24000)
waketime: NORMAL
## Should SPS reset the time_since_rest stat for all players in the world?
reset_insomnia: false
## Set whether to allow player to stop rain when it is not night.
clear_rain: false
## Set whether the player should be told it must be night/storm to use.
notify_must_be_night: false
messages:
## Set if the [CANCEL] link is shown in broadcast messages.
display_cancel: true
## Set to true to broadcast "<player> canceled sleep."
broadcast_cancel: true
## Set to true to cancel sleep if the player exits their bed.
exit_bed_cancels: false
## DaySkip settings
dayskip:
## Enable(true) or Disable(false) the dayskipper feature.
enabled: false
## Worlds where dayskip is disabled (case-sensitive, comma-separated)
blacklist: world_nether, world_the_end
## Delay between dayskip request and night change (seconds). Minimum 1, recommend 10.
delay: 10
## If true this will disable ability of players to cancel DaySkip.
unrestricted: false
## Require DaySkipper item to use DaySkip.
item_required: true
messages:
## Set if the [CANCEL] link is shown in broadcast messages.
display_cancel: true
## Set to true to broadcast "<player> canceled dayskip."
broadcast_cancel: true
Commands:
/sps - shows help /sps reload - reloads configs. /sps update - checks for updates. /sleep - command to sleep instead of using bed, requires permission. /spscancel - cancels sleep, or dayskip, if either is scheduled. /dayskip - command to dayskip instead of using bed, requires permission.
For help you can post issues and suggest ideas on my discord server.
License:
MIT License
This plugin utilizes bStats to collect anonymous statistics
Contributing:
This plugin is open source; you can view the source code on github. Feel free to open issues there or submit pull requests.
If you like this, check out my other plugin,
SinglePlayerSleep,
NoEndermanGrief,
DragonDropElytra,
ShulkerRespawner,


-
View User Profile
-
Send Message
Posted Feb 20, 2026Hello,
could you please update the SinglePlayerSleep plugin to support version 1.21.11? It would be greatly appreciated.
Thank you for your work and support!
-
View User Profile
-
Send Message
Posted Feb 20, 2026In reply to sebastiangvuzd:
It's supported 1.21.11 since 1.20_2.13.55. If you have an issue to report, please visit my discord server and I'll be happy to look into it.
-
View User Profile
-
Send Message
Posted Aug 16, 2022Noticed that in my config I have:
# Enable(true) or Disable(false) dayskipper
enabledayskipper: true
# Delay between request for DaySkip, and change to night, in seconds. Minimum 1, recommend 10.
dayskipdelay: 10
# If true this will disable ability of players to cancel DaySkipper
unrestricteddayskipper: false
# Require DaySkipper item
dayskipperitemrequired: false
But when running the the check command:
[11:05:14] [Server thread/INFO]: sps.hermits=true, sps.cancel=true, sps.unrestricted=false, sps.downfall=false, sps.thunder=false, sps.command=true, sps.update=true, sps.op=false, sps.showUpdateAvailable=true, sps.dayskipper=false, sps.dayskipcommand=true
It says that dayskipper is disabled.
I noticed the black bed system isn't working, perhaps that's why? Any idea how to resolve this?
-
View User Profile
-
Send Message
Posted Aug 16, 2022In reply to teenyplx:
You need the permission "sps.dayskipper" to use the feature.
-
View User Profile
-
Send Message
Posted Feb 22, 2022Hello and good day!
I'm sorry if I sound stupid, but I have never dealt with plugins before.
I tested this plugin on my server but it seems only OP players are able to skip the day and the black bed is not working for that either, only the command works.
I tried everything and searched everywhere but I don't know how to add the permission to regular players to do that, neither how to enable the black bed to do it. I'd really appreciate some help.
Thanks!
-
View User Profile
-
Send Message
Posted Feb 22, 2022In reply to MisterVloop:
Which Permissions plugin do you use?
I suggest LuckPerms, the command for luck perms is
/lp group default permission set sps.dayskipper true
to set the permission true for all players, to set it for a group replace default with the group name.
-
View User Profile
-
Send Message
Posted Feb 23, 2022In reply to joelhstoner:
Thank you very much!
I didn't know I needed a perms plugin. I did it and the command is working fine, not the black bed clicking. But actually I don't think I want the black bed skipping day.
Thanks a lot again.
-
View User Profile
-
Send Message
Posted Apr 27, 2021How do I make it so only 1 person needs to sleep?
-
View User Profile
-
Send Message
Posted Apr 27, 2021In reply to Sp1cyCookie:
Setup a server that is based on bukkit(CraftBukkit, spigot, paper, etc) download this plugin and place it in the plugins folder for the server, and start the server.
-
View User Profile
-
Send Message
Posted Jan 30, 2021how do i disable the chat messages entirely?
-
View User Profile
-
Send Message
Posted Jan 30, 2021In reply to DCWatkins5:
You can give everyone the permission sps.unrestricted, or set unrestrictedsleep:true in the config.yml.
-
View User Profile
-
Send Message
Posted Jan 17, 2021hi the sleep plugin no longer shows the name of whos sleeping only FFFFF is sleeping?
-
View User Profile
-
Send Message
Posted Jan 17, 2021In reply to ossie_ostler:
I can help you faster on https://discord.gg/PXN4bzT
-
View User Profile
-
Send Message
Posted Dec 3, 2020There is a language file update for es_MX, at https://github.com/JoelGodOfwar/Sin..._2.13.45.D3/src/main/resources/lang/es_MX.yml
Right click and select save as to download, or copy paste it to your current es_MX.yml for the updated translations provided by agBAZE
-
View User Profile
-
Send Message
Posted Oct 30, 2020In reply to FarLokus:
This is fixed in v1.13_2.13.45.2
-
View User Profile
-
Send Message
Posted Oct 4, 2020Hello, i want to disable the plugin in some worlds.
Is there a permission i need to negate or a worldlist of enabled worlds that i can set?
-
View User Profile
-
Send Message
Posted Oct 4, 2020In reply to Forge_User_86994830:
UPDATE: I have added this feature in a Dev version, if you'd like to try it. Simply go to my Discord server, and look in the SinglePlayerSleep#dev_builds channel.
Sorry this was an oversight, I had intended to add that feature to SPS after I had added it to MoreMobHeads, but forgot about it. It will be added ASAP.
I'm not sure if you can set permissions per world or not. The relevant permission would be 'sps.hermits'
-
View User Profile
-
Send Message
Posted Aug 6, 2020Hey there! Love the plugin! Super simple and all the players on the server find it so convenient.
Just one question: is there anyway I could have multiple lines in one sleep message?
For example, I'd like one of the sleep messages to look like this.
no one: ...
<player>: go to bed.
I know the colon will probably not work so I can replace that, just sort of using it here to demonstate the idea. I think this would be a silly sleep message to have appear every now and then, but I'm not sure how to have it send in separate lines. Does anyone know of a way I might be able to do this?
Once again, super lovely plug in.
Thanks!!!
-
View User Profile
-
Send Message
Posted Aug 6, 2020In reply to tritheist:
try doing it like this "no one: ...\n<player>: go to bed."
-
View User Profile
-
Send Message
Posted Jun 27, 2020Hi, singleplayersleep works great for brief period of time on my server before it starts giving this error in the logs: Could not pass event PlayerBedEnterEvent to SinglePlayerSleep v1.13_2.13.41 org.bukkit.event.EventException: null. Is there a way to possibly fix this, or is it something with the server?
Thanks