ASKA
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
last week
Downloads
57
Size
115KB
Dependency string
Exothermic-AllSleepNightSkip-0.1.5

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.timeScale and Time.fixedDeltaTime on 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

  1. Install the SDK and zip utility:

    sudo pacman -S dotnet-sdk zip
    
  2. Start ASKA once through r2modman/BepInEx so BepInEx/interop exists.

  3. 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

  1. Back up the save.
  2. Start the server with the mod installed.
  3. Join with every intended test player.
  4. Wait until night and have everybody use a bed.
  5. Check BepInEx/LogOutput.log for:
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.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.