AFK Sleep
Sleep while players are idle on your server · Works with custom player sleeping percentages · Handles dimensions, leaving, joining, ...
AFK Sleep
AFK Sleep
Requires Detect AFK Players.
Allows players to sleep even when there are players AFK on the server, and respects your original `playersSleepingPercentage`. If you've got someone that joins then immediately leaves to take a shower, now that won't stop you from being able to skip the night.
Features
- Works correctly - Change the gamerule like you would normally - Works correctly - No commands run unless necessary, no NBT usage, no checks every tick - Works correctly - Leaving, joining, changing AFK state, changing dimension, etc - Works correctly - Other data packs don't consider dimensions or state changes

Details
When AFK Sleep is first installed, it uses the `playersSleepingPercentage` you've set as the *percentage of non-AFK players in the overworld* that have to be sleeping to skip the night. The table below explains it:
| Players | Not AFK | playersSleepingPercentage | Players required to sleep | | -------------- | --------------- | --------------------------------- | -------------------------------- | | 3 | 3 | 100% | 1 (all three players have to sleep) | | 3 | 2 | 100% | 1 (only the two non-afk players have to sleep) | | 3 | 2 | 50% | 1 (only half of the non-afk players have to sleep) |
To change the percentage of "active" players that need to sleep, just change the gamerule like you normally would, with `/gamerule playersSleepingPercentage NUMBER`. This gamerule is managed for you, so don't worry if it isn't set to the value you expect.
Before version 1.3: How to change playersSleepingPercentage
Because this datapack overrides the `playersSleepingPercentage` gamerule, you have to modify a scoreboard value to change its calculations. Replace the number '50' with the percentage you want to set.
```mcfunction /scoreboard players set .relativePercentage afk_sleep.dummy 50 ```
If you want to uninstall the datapack, run `/function afk_sleep:uninstall` to delete the backing scoreboards and reset the `playersSleepingPercentage` automatically.