SleepCall
One player in bed skips the night - after a countdown everyone sees, and only once nobody is fighting or travelling.
模組介紹 作者原文
SleepCall
One player in bed is enough to skip the night - but nobody gets a black screen without
warning.
In vanilla Valheim every player must be in bed before the night can pass. Mods that relax
that to "one player" have a side effect: the moment someone lies down, everyone else fades
to black - mid-fight, mid-voyage, mid-anything. SleepCall keeps the one-player rule and
fixes the surprise.
Inspired by NowYouSleep by
Hex_Viking, which lets the night pass when one player is sleeping. SleepCall is written from
scratch and adds the warning, the countdown and the wait for players who are busy.
What happens
- A player lies down. Everyone sees "Astrid went to bed. The night will pass in 60
seconds." in the centre of the screen and in the top-left feed, with a note that
fighting or travelling delays it.
- The centre banner repeats every 10 seconds with the time left ("Astrid is in bed - the
night passes in 40 seconds"), and reminders at 30 and 10 seconds also go to the feed.
- With 5 seconds left, the server checks every player who is still up:
- fighting - took damage in the last 15 s, or an alerted monster is within 40 m
- travelling - moving faster than 3 m/s on average (running, sailing, riding)
- If anyone is, everyone sees "Waiting to sleep: Bjorn is in combat, Sigrid is travelling",
repeated every 15 s until they are clear. After 5 minutes it gives up and skips anyway,
with a final warning.
- The last 5 seconds are counted down in the centre of the screen: "Sleeping in 5", 4,
3, 2, 1, "Sleeping now". This always comes straight before the fade, also after a
wait. If someone starts fighting or travelling during it, it goes back to waiting.
- The night passes exactly as in vanilla (same fade, same morning, same rested buff).
If everyone goes to bed, the night skips immediately, as it always has. If the sleeper gets
up during the countdown, it is cancelled and everyone is told.
Missed a message? The top-left ones are kept in the Compendium's message log.
Install
Server only. Copy SleepCall.dll into BepInEx/plugins on the dedicated server and
restart it. Clients need nothing. Remove any other "one player sleeps" mod first - two mods
answering the same question will fight.
Config
BepInEx/config/liekos47.sleepcall.cfg, created on first start. The file is checked every
30 seconds and re-read when it has changed, so settings apply without a restart.
| Setting | Default | Meaning |
|---|---|---|
| CountdownSeconds | 60 | warning time before the night passes |
| ReminderSeconds | 30,10,5 | when reminders are also posted to the feed; values at or below FinalCountdownSeconds are skipped |
| BannerIntervalSeconds | 10 | how often the centre banner repeats; 0 = start and reminders only |
| FinalCountdownSeconds | 5 | count the last seconds one by one ("Sleeping in 5"... "Sleeping now"); 0 = off |
| TopLeftFeed | true | also post start, reminders, waiting and outcome to the top-left feed |
| ChatAnnounce | false | experimental: also shout the start and outcome in chat |
| WaitForCombat | true | hold while anyone is fighting |
| RecentDamageSeconds | 15 | "fighting" if health dropped this recently |
| AlertedMonsterRange | 40 | "fighting" if an alerted monster is this close |
| WaitForTravel | true | hold while anyone is travelling |
| TravelSpeed | 3 | "travelling" above this m/s (walk ~2, run ~7, sail 4-8) |
| MaxWaitSeconds | 300 | give up waiting after this long; 0 = never |
| WaitReminderSeconds | 15 | how often the waiting message repeats |
| DebugLog | false | log every message sent, not just the decisions |
ChatAnnounce is off because a client checks the platform identity of whoever sent a chat
line before showing it, and a line sent by the server has no such identity. It may simply
not appear. It is harmless to try.
Server log
SleepCall writes a few lines per night to BepInEx/LogOutput.log, whatever DebugLog is
set to:
[Info: SleepCall] countdown started: Astrid in bed, 3 awake (Bjorn, Sigrid and Leif), 6
安裝與使用 安裝:BepInEx 外掛
- 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
- 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
- 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
- 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。
帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。 多人連線時,主機與所有用戶端需要安裝一致的模組。
下面這些內容需要先安裝,否則該模組不會生效: