Valheim
Install

Details

Last Updated
First Uploaded
Downloads
8
Likes
0
Size
13KB
Dependency string
P_T_G-TempBed-1.3.0
Dependants
ADDatHost Valheim hosting
30% off!

TempBed

Betten ohne Werkbank und ohne Dach - dafür mit Verfallszeit.


Deutsch

Das Bett ist in Valheim der einzige Weg, einen Spawnpunkt zu setzen, und dafür verlangt das Spiel Werkbank und Dach. Auf längeren Touren heißt das: entweder man baut jedes Mal ein kleines Lager, oder man läuft nach dem Tod wieder von zuhause los. Beides nervt.

Diese Mod erlaubt das Bett ohne Werkbank und unter freiem Himmel. Damit daraus kein Freifahrtschein wird, verfällt so ein Bett nach einer einstellbaren Zeit von selbst. Es ist also ein Zwischenlager, kein Ersatz für eine richtige Basis.

Wie es sich spielt

Bett irgendwo hinstellen, Spawnpunkt setzen, weiterziehen. Nach 15 Minuten (Standard) ist es weg. Solange der Timer läuft, steht die Restzeit rot im Hover-Text, es verschwindet also niemandem unangekündigt unterm Hintern.

Stellt jemand nachträglich eine Werkbank daneben, wird das Bett dauerhaft - das ist der übliche Weg, aus dem Zwischenlager doch noch einen festen Außenposten zu machen.

Einstellungen

Option Bedeutung
AllowPlacementWithoutStation Betten lassen sich ohne Werkbank in Reichweite bauen.
DecayMinutes Wie lange ein Bett ohne Werkbank überlebt. Standard 15.
OnlyBedsPlacedWithoutStation Standard an. Nur Betten verfallen, die ohne Werkbank gesetzt wurden.
PermanentWhenStationBuilt Kommt später eine Werkbank dazu, verfällt das Bett nicht mehr.
DropResources Ob beim Verfall die Materialien herausfallen. Standard aus.
AnyCraftingStation / StationNames Welche Stationen ein Bett stützen. Standard nur die Werkbank.
IgnoreRoofRequirement Bett darf unter freiem Himmel benutzt werden.
IgnoreWetRequirement Nass sein blockiert das Schlafen nicht mehr.
IgnoreFireRequirement Nur relevant, wenn eine andere Mod Feuer verlangt. Standard aus.
ShowTimerInHoverText / TimerText Anzeige der Restzeit.

Zwei Sachen, die ich absichtlich so gebaut habe:

Der Timer läuft über die Weltzeit, nicht über die Zeit, in der das Bett geladen ist. Ein Serverneustart oder Weglaufen verlängert ihn also nicht. Kommt jemand nach zwanzig Minuten in die Gegend zurück, ist das Bett sofort weg statt erst nach weiteren fünfzehn.

Nur ohne Werkbank gesetzte Betten verfallen. Würde jedes Bett ohne Werkbank in Reichweite verfallen, würde es auf einem laufenden Server reihenweise Betten erwischen, bei denen die Werkbank irgendwann abgebaut wurde. Wer die harte Regel will, stellt OnlyBedsPlacedWithoutStation auf false.

IgnoreWetRequirement ist standardmäßig an, weil das Ganze sonst nicht funktioniert: ohne Dach wird man im Regen sofort nass, und nass sein blockiert das Schlafen eigenständig. Ohne den Schalter hättest du ein Bett unter freiem Himmel, das bei Regen trotzdem meckert.

Feinde in der Nähe verhindern weiterhin das Schlafen. Das habe ich bewusst gelassen, sonst wäre das Bett im Wald ein Freifahrtschein durch jede Nacht.

Server und Clients

Die DLL gehört auf den Server und zu jedem Spieler. Der Server schickt seine Konfiguration an alle Verbundenen, lokale Dateien werden ignoriert und die Felder im ConfigurationManager sind gesperrt.

Wer in der adminlist.txt steht, darf die Werte im laufenden Spiel im ConfigurationManager ändern. Die Änderung geht an den Server, der prüft selbst nach, wer da sendet, speichert sie in seiner Config und verteilt sie. Abgelehnte Versuche stehen im Log.

Im Einzelspieler oder als Host gilt die eigene Datei.

Installation

BepInEx vorausgesetzt:

  1. TempBed.dll nach BepInEx\plugins\
  2. Einmal starten, dann liegt BepInEx\config\flo.tempbed.cfg bereit
  3. Werte anpassen

Kompatibilität

Die Mod arbeitet mit allem, was eine Bed-Komponente hat, also auch mit Betten aus Content-Mods. Sie hängt sich an ZNetScene.Awake, Piece.OnPlaced und die Prüfmethoden von Bed.

Nach dem Start steht im Log, wie viele Bett-Prefabs angepasst wurden. Ist die Zahl 0, hat irgendwas nicht gegriffen - die Zeile ist beim Melden eines Problems hilfreich.

Bekannte Grenzen

  • Der Verfall wird von dem Client geprüft, der das Bett gerade besitzt. Liegt es in einer Ecke, in die nie jemand kommt, passiert erstmal nichts. Sobald jemand hinkommt, wird die abgelaufene Zeit nachgeholt und das Bett verschwindet sofort.
  • Wer die DLL nicht installiert hat, kann keine Betten ohne Werkbank setzen, sieht aber auch keine Restzeit.

Bug gefunden? Kommentare, am besten mit dem passenden Ausschnitt aus dem LogOutput.log.


English

The bed is the only way to set a spawn point in Valheim, and the game wants a workbench and a roof for it. On longer trips that means either building a small camp every time, or walking back from home after every death. Both are tedious.

This mod allows beds without a workbench and out in the open. To stop that from being a free pass, such a bed decays on its own after a configurable time. It's a temporary camp, not a replacement for a real base.

How it plays

Put the bed down anywhere, set your spawn, move on. After 15 minutes (default) it's gone. While the timer runs, the remaining time shows in red in the hover text, so it never vanishes unannounced.

If someone builds a workbench next to it later, the bed becomes permanent - that's the usual way of turning a temporary camp into a proper outpost after all.

Settings

Option What it does
AllowPlacementWithoutStation Beds can be built with no workbench in range.
DecayMinutes How long a bed without a workbench survives. Default 15.
OnlyBedsPlacedWithoutStation On by default. Only beds placed without a workbench decay.
PermanentWhenStationBuilt A workbench added later stops the decay for good.
DropResources Whether materials drop when a bed decays. Off by default.
AnyCraftingStation / StationNames Which stations support a bed. Workbench only by default.
IgnoreRoofRequirement Beds can be used under open sky.
IgnoreWetRequirement Being wet no longer blocks sleeping.
IgnoreFireRequirement Only relevant if another mod requires fire. Off by default.
ShowTimerInHoverText / TimerText Remaining-time display.

Two things I built deliberately this way:

The timer runs on world time, not on the time the bed spends loaded. A server restart or walking away doesn't extend it. Come back to the area twenty minutes later and the bed is gone immediately instead of fifteen minutes after that.

Only beds placed without a workbench decay. If every unsupported bed decayed, a running server would lose a pile of beds whose workbench had been removed at some point. Want the strict rule? Set OnlyBedsPlacedWithoutStation to false.

IgnoreWetRequirement defaults to on because otherwise the whole thing doesn't work: without a roof you get wet in the rain immediately, and being wet blocks sleeping on its own. Without that switch you'd have a bed under open sky that still refuses when it rains.

Enemies nearby still prevent sleeping. I left that in on purpose, otherwise a bed in the woods would be a free pass through every night.

Server and clients

The DLL goes on the server and to every player. The server sends its configuration to everyone connected, local files are ignored and the fields in ConfigurationManager are locked.

Anyone in adminlist.txt can change values through ConfigurationManager while playing. The change goes to the server, which checks for itself who is sending, stores it in its config and distributes it. Rejected attempts show in the log.

Solo or hosting, your own file applies.

Installation

Requires BepInEx:

  1. Drop TempBed.dll into BepInEx\plugins\
  2. Launch once, BepInEx\config\flo.tempbed.cfg appears
  3. Adjust

Compatibility

The mod works with anything carrying a Bed component, so beds from content mods are covered. It hooks ZNetScene.Awake, Piece.OnPlaced and the check methods on Bed.

After startup the log says how many bed prefabs were adjusted. If that number is 0, something didn't take - that line is useful when reporting a problem.

Known limits

  • Decay is checked by whichever client currently owns the bed. If it sits in a corner nobody visits, nothing happens for the time being. As soon as someone arrives, the elapsed time is caught up and the bed goes right away.
  • Anyone without the DLL installed can't place beds without a workbench, and won't see the timer either.

Found a bug? Comments, ideally with the relevant part of your LogOutput.log.

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