
AllSleepNightSkip
Fast-forwards ASKA through the night when every required connected player is asleep.Exothermic All-Sleep Night Skip v0.1.5
A BepInEx IL2CPP mod for ASKA that accelerates the world simulation when all required active players are asleep, then restores the exact previous time scale at morning, when somebody wakes, on a scene change, or at a safety timeout.
Behaviour
- Defaults to requiring 100% of active players to be asleep.
- Waits 3 real seconds to avoid triggering during a brief bed interaction.
- Runs only on the world authority when Fusion authority can be identified; dedicated/headless mode is treated as authority.
- Uses runtime discovery rather than fixed private ASKA field names.
- Stops at the discovered morning transition or after a 120-real-second safety timeout.
- Restores
Time.timeScaleandTime.fixedDeltaTimeon every exit path.
Build
The source is provided because ASKA's IL2CPP Unity reference assemblies are generated locally by BepInEx.
This release deliberately disables C# nullable-reference metadata because ASKA's generated Il2Cppmscorlib.dll does not provide the compiler attributes required for it on some Linux/Gale setups.
CachyOS / Arch / fish
-
Install the SDK and zip utility:
sudo pacman -S dotnet-sdk zip -
Start ASKA once through r2modman/BepInEx so
BepInEx/interopexists. -
Run:
./build.fish "/full/path/that/contains/BepInEx/interop"
For a normal manual installation, that path is usually the ASKA game directory. For r2modman it may be the selected profile directory instead.
Windows PowerShell
Set-ExecutionPolicy -Scope Process Bypass
.\build.ps1 -AskaDir "C:\Program Files (x86)\Steam\steamapps\common\ASKA"
The build produces:
Exothermic-AllSleepNightSkip-0.1.5-install.zip
Installation
Extract the generated install ZIP into the ASKA dedicated-server/game root so the DLL ends up at:
BepInEx/plugins/Exothermic.AllSleepNightSkip/Exothermic.AllSleepNightSkip.dll
Install it on the dedicated server/host. Clients may keep it installed too; AuthorityOnly = true prevents non-authoritative peers from changing time.
Configuration
After one launch, edit:
BepInEx/config/com.exothermic.aska.allsleepnightskip.cfg
Recommended initial values:
[General]
Enabled = true
[Sleep]
RequiredSleepFraction = 1
MinimumPlayers = 1
StartDelaySeconds = 3
[FastForward]
TimeScale = 20
MaximumRealSeconds = 120
OnlyAtNight = true
AllowUnknownNightState = true
MorningHour = 6
[Advanced]
AuthorityOnly = true
PlayerScanIntervalSeconds = 1
[Diagnostics]
VerboseLogging = false
DumpDiscoveryOnWorldLoad = false
If the server stutters, lower TimeScale to 8 or 10.
Diagnostic behaviour
ASKA uses additive scenes and the active scene name can remain a boot/menu/persistent scene even while a world is running. v0.1.5 no longer blocks scanning based only on that name. With VerboseLogging = true, every scan now reports its gate, active scene, loaded scenes, authority, player count, and per-player sleep signal.
v0.1.5 dedicated-server fixes
The v0.1.4 log confirmed that the dedicated server could find CharacterAska(Clone) and the night clock, but ASKA keeps the actual sleep state behind the player's _interactionAgent rather than an IsSleeping field on SSSGame.Character. v0.1.5 recursively follows only interaction/state/action/pose references and recognises active sleep, bed, in-bed, resting, and wake-up interaction objects. The traversal is depth- and node-limited so it cannot walk the whole world graph.
The exact-type SSSGame.Character scan, Character.Spawned tracker, CharacterAska(Clone) fallback, and sun/moon clock handling remain enabled.
First test
- Back up the save.
- Start the server with the mod installed.
- Join with every intended test player.
- Wait until night and have everybody use a bed.
- Check
BepInEx/LogOutput.logfor:
Night fast-forward started
Night fast-forward stopped: morning reached
If it does not detect sleep or the clock after an ASKA update, set:
[Diagnostics]
VerboseLogging = true
DumpDiscoveryOnWorldLoad = true
Restart, enter the world, and sleep. While every player remains unknown, v0.1.5 writes up to three ALL-SLEEP NIGHT SKIP DISCOVERY sections at 15-second intervals so the log captures both the awake and in-bed interaction graphs. The mod only reads candidate state and does not change the save format.
Limitations of v0.1.5
ASKA does not expose a stable public mod API for sleep and world-clock state. This version therefore uses ranked runtime discovery plus a sun fallback. A game update can rename or restructure those internals. The safety timeout and full time-scale restoration are designed to prevent a failed clock probe from leaving the server accelerated.