You are viewing a potentially older version of this package. View all versions.
DezzyCode-WorldControl-2.2.0 icon

WorldControl

Admin-only Valheim-style UI for server-synced time, weather and native wind transitions. Live clock display. By DezzyCode.

Date uploaded a week ago
Version 2.2.0
Download link DezzyCode-WorldControl-2.2.0.zip
Downloads 68
Dependency string DezzyCode-WorldControl-2.2.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2350
ValheimModding-Jotunn-2.30.0 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.0

README

World Control 2.2.0

Autor: DezzyCode · Nachfolger von Wind Control

Admin-UI für serverweite Tageszeit, Wetter und Wind. Alle Clients empfangen die Einstellungen. Nur Server-Admins und der lokale Host dürfen Änderungen ausführen.

Neu: Übergänge durch Valheim

Der Sekundenregler und die eigene 1–5-Sekunden-Interpolation wurden entfernt.

  • Wind verwendet EnvMan.SetDebugWind, denselben Weg wie wind 180 0.2. Richtung, Stärke und Rückkehr zum normalen Wind werden von Valheim überblendet. Laufende Windübergänge dürfen zunächst fertig werden. Valheim begrenzt die tatsächliche Windstärke auf mindestens 5 %, auch bei einer Vorgabe von 0 %.
  • Wetter setzt wie env nur das gewünschte Wetterprofil. Die Mod verändert weder die Wetter- noch die Wind-Übergangsdauer. Licht, Wolken und Nebel folgen dem Spiel; einzelne Partikel und Audioeffekte können spielbedingt an Umschaltpunkten wechseln.
  • Festgehaltene Tageszeit ersetzt das Ziel vor Valheims eigener Tageszeitglättung. Der normale tod-Debugschalter würde diese Glättung überspringen und wird deshalb hierfür nicht verwendet. Weltalter und Herstellung laufen normal weiter.
  • Vorspulen setzt die Weltuhr einmal auf die nächste Zielzeit, entsprechend dem Prinzip von skiptime. Die Mod beschleunigt die Weltuhr nicht mehr wiederholt über mehrere Sekunden. Den sichtbaren Tageszeitwechsel glättet Valheim. Herstellung, Pflanzen und Weltalter können durch den Zeitsprung trotzdem unmittelbar voranschreiten.

Server und alle Clients auf 2.2.0 aktualisieren und neu starten. Das Nachrichtenformat ist Version 3; ältere Modversionen werden nicht synchronisiert. Der sichtbare Übergang startet bei jedem Client nach Empfang und kann durch Netzwerklatenz leicht versetzt sein. Eine feste Übergangsdauer garantiert die Mod nicht mehr.

Installation

Im Thunderstore-/r2modman-Profil BepInExPack_Valheim von denikson und Jotunn 2.30.0 oder neuer installieren. DezzyCode-WorldControl-2.2.0.zip über den lokalen Modimport importieren. Alternativ die enthaltene DLL nach BepInEx/plugins/WorldControl/ kopieren. Auf dem Server dieselbe DLL und Abhängigkeiten verwenden.

Alte WorldControl-/WindControl-DLL ersetzen, nicht parallel installieren. Die Plugin-ID und die Config BepInEx/config/dezzycode.valheim.windcontrol.cfg bleiben erhalten. Das Startlog nennt World Control 2.2.0 by DezzyCode loaded. Spieler ohne Mod erhalten keine synchronisierten Overrides; ein automatischer Verbindungsabbruch für solche Spieler ist nicht vorgesehen.

Bedienung

F8 öffnet das Valheim-Holzpanel mit Spielschrift, Buttons und Reglern. F8, Esc oder X schließen es. Bedienung per Maus und Tastatur. Jotunn sperrt währenddessen die Spielsteuerung und gibt sie beim Schließen frei. Die Welt läuft weiter. Oben steht die aktuelle Tageszeit; bei festgehaltener Tageszeit zusätzlich die weiterlaufende Weltuhr.

„Bereich übernehmen“ sendet nur den ausgewählten Bereich. Regler und Tabs ändern zunächst nur den lokalen Entwurf. „Alles auf natürlich“ beendet die manuellen Vorgaben. Bereits vorgespulte Weltzeit wird nicht zurückgedreht.

Zeit

  • Natürlich: normaler Tag-/Nachtzyklus.
  • Festhalten: gewünschte Tageszeit mit spielseitiger Glättung festhalten, ohne die Weltuhr vorzuspulen.
  • Vorspulen: einmal bis zum nächsten Auftreten der Zielzeit vorspringen und anschließend normal weiterlaufen. Eine frühere Uhrzeit bedeutet den nächsten Tag. Kann Herstellung und andere zeitabhängige Systeme beeinflussen und beim Speichern dauerhaft im Weltstand bleiben.

Wetter

Natürlich, Klar, Regen, Gewitter und Nebel. Natürlich nutzt das Wetter des jeweiligen Bioms. Nicht verfügbare Profile sind ausgegraut; der Server prüft die Auswahl ebenfalls.

Wind

Natürlich oder Manuell; 0–359° und 0–100 % Vorgabestärke. Das native Spielminimum beträgt 5 %. Die Richtung bedeutet „Wind weht NACH“: Nord 0°, Ost 90°, Süd 180°, West 270°. Manuelle Vorgaben verwenden wie der Windbefehl den Debug-Windpfad und übersteuern dadurch unter anderem Moder-/Weltrand-Sonderregeln.

Synchronisierung und Adminrechte

Nach erfolgreicher Verbindung keine regelmäßigen Statusabfragen. Beim Beitritt wird der Zustand angefordert; falls die erste Anfrage während des Ladens zu früh kommt, erfolgen höchstens fünf Versuche im Abstand von drei Sekunden. F8 fragt beim Öffnen einmal Zustand und Berechtigung ab und ermöglicht einen manuellen Neuversuch. Änderungen verteilt der Server an alle angemeldeten Mod-Clients.

Der Server prüft jede Änderungsanfrage anhand der echten Verbindung und seiner adminlist.txt. Normale Spieler erhalten die Einstellungen, aber keine UI-Freigabe. Ein Rechteentzug kann im offenen UI bis zum nächsten Serverkontakt unsichtbar bleiben; Änderungsversuche werden dennoch serverseitig abgewiesen. Der lokale Host und Einzelspieler gelten als Admin. Verbindungsabbrüche schließen die UI und geben die Eingabe frei.

Config und Icon

Nur die Öffnungstaste liegt in der Config:

[UI]
ToggleKey = F8

Nach externen Configänderungen neu starten. Manueller Zustand gilt für die aktuelle Sitzung; nach Serverneustart startet World Control mit natürlichen Einstellungen.

Dein Icon liegt in packages/WorldControl/icon.png (PNG, 256 × 256). build-world.ps1 übernimmt es unverändert in dist/DezzyCode-WorldControl-2.2.0.zip.

Prüfstand

Gebaut gegen lokale Valheim-Dateien (Steam Build 25253764). Automatische Prüfungen für Protokoll, Adminrechte, Zeitsprungberechnung, initiale Synchronisierung und die verwendeten Spiel-Schnittstellen. Zusätzliche Prüfungen verhindern direkte Schreibzugriffe auf interne Windwerte, Übergangsdauern und die geglättete Tageszeit sowie wiederholtes Vorspulen im Update.

Die neue Version ist noch nicht im laufenden Spiel und auf einem echten Server geprüft. Testen: Wind wie beim Konsolenbefehl, Wetterwechsel, alle Zeitmodi, Reset während eines Übergangs, spätere Beitritte und Verbindungswechsel. Andere Zeit-/Wetter-/Windmods können kollidieren. Die frühere Mausruckler-Ursache ist nicht nachgewiesen; beim Schließen erscheint weiterhin UI cursor diagnostic im BepInEx-Log.

CHANGELOG

Changelog

3.0.0

The portal network is moving to BetrValheim.

  • The portal picker, the portal list with its order and the portal markers are no longer part of World Control. They are moving to BetrValheim, my other mod, where they fit better.
  • With World Control 3.0 alone, portals work like in the normal game again: two portals with the same name are linked.

Tidier tabs.

  • The tabs are sorted by topic now: first the world (time, weather, wind, events, presets), then the people (players, places, announcements, player values), then the terrain tools.
  • Player values have their own tab. The Players tab now only lists who is online and moves them around.

Everyone needs 3.0. Players on 2.x cannot join a server running 3.0, and the other way round.

2.8.1

Bug fixes for the portal list.

  • Scrolling the portal list no longer zooms the map at the same time. Over the list the mouse wheel only scrolls the list; over the map it zooms as before.
  • The portal list scrolls much faster: one turn of the mouse wheel now moves three portals instead of less than one.
  • New icon.

Works together with 2.8.0, so nobody is locked out while not everyone has updated yet.

2.8.0

Your portal list, in your order.

  • The portal list no longer sorts by name or distance. It shows one fixed order, the same for everyone on the server.
  • Admins get an Edit button above the list. Press it, move portals up and down with the arrows, press Done.
  • The order is saved on the server for each world and survives restarts. A new portal joins at the bottom.
  • The distance to each portal is still shown in the list.

Calmer markers on the map.

  • Portal markers are smaller now and violet-blue, so they no longer cover the map.
  • The portal you are standing at is a little bigger and lighter, so you can find yourself at a glance.
  • The markers no longer care about your map filter: hiding a pin type on your map does not hide the portals, and opening a portal no longer switches that filter back on.

The map comes first.

  • While you choose a destination, the map sits on top of everything else on the screen.
  • You stand still while the map is open, so you can no longer walk off or swing your weapon by accident.

Runs lighter.

  • Finding portals, moving them in the list and the terrain tools now do less work behind the scenes. Nothing about how they behave has changed.

Everyone needs 2.8. Players on 2.7 cannot join a server running 2.8, and the other way round.

2.7.0

Portals are now part of World Control:

  • Normal Valheim portals now open a destination picker when you walk into them.
  • The picker uses the large vanilla map with a Valheim-style list on the left.
  • Portal names stay on normal E interaction, just like vanilla.
  • Other portals are shown both in the list and as portal markers on the map.
  • Clicking a portal in either place travels there.
  • The portal list can be sorted by name or distance in both directions.
  • Normal Valheim teleport restrictions are still respected.
  • Added server-side portal validation and unloaded-zone portal discovery without constant polling.
  • Added the current Splatform reference required by Valheim's minimap pin API.
  • Included the full 2.6.3 performance and terrain cleanup on main.

2.6.3

A bigger cleanup and performance pass without changing what the mod is supposed to do:

  • Reduced unnecessary per-frame network and player maintenance work.
  • Removed old timer/duration runtime code that could no longer be reached.
  • Reduced redundant Harmony callbacks in rain damage, regeneration, stamina and eitr handling.
  • Improved terrain performance for flattening, ramps and revert by narrowing Heightmap/TerrainComp searches and reducing reflection in hot paths.
  • Terrain aiming now stays allocation-free in normal cases, with a safe fallback for extremely collider-heavy areas.
  • Revert no longer creates empty TerrainComps on untouched ground.
  • Fixed paint-only terrain revert so grass/clutter is refreshed correctly.
  • Cleaned up terrain preview work and fixed the ramp preview corner calculation.
  • Kept the admin-only UI and server-side permission checks unchanged.

2.6.2

A small cleanup round after 2.6.1:

  • Fixed the Eitr cost sliders so they apply to the item you are actually using.
  • Added Eitr regeneration to the player values.
  • Player values are now buff-only. Max values and regeneration can only go up, while stamina/eitr costs can only go down.
  • Adrenaline gains can only be increased and adrenaline penalties can only be reduced.
  • Changed the weather toggle to the clearer Rain damage: On / Off wording and added a short tooltip explaining that it affects structures.

2.6.1

Just a couple of small things after 2.6.0:

  • Added a No rain damage toggle under Weather. Rain can stop damaging buildings without turning off normal underwater wear.
  • Added a confirmation before Reset player values so you do not wipe all the sliders by accident.

2.6.0

Quite a bit changed this time :D

  • Added a Terrain tab with pickaxe flattening, bigger Hoe/Cultivator radius, ramps and restoring the original terrain.
  • Added player values for max health, max stamina, max eitr and stamina regeneration.
  • Added separate multipliers for stamina use, eitr use and adrenaline.
  • Player values are synced by the server, so everyone uses the same settings. Only admins can change them.
  • Reworked the whole F8 menu so everything has more room and is easier to read.
  • The window can now be dragged around.
  • Terrain is now a proper tab like everything else instead of being attached separately.
  • Fixed the player sub-tabs disappearing after changing the language.
  • Improved Auto / English / German support for the new pages.
  • Removed the old timer/duration setting. Settings now stay active until you change them or reset everything.
  • Moved Everything back to natural next to the close button and kept Apply everything as the main button at the bottom.
  • World Control is now required on the server and all clients, because the synced player values need the mod on everyone.
  • Also cleaned up a bunch of smaller UI and terrain issues.

2.5.7

Four small things that tripped people up.

The host was told it was waiting for itself. In single player and on a listen server the status line read "Waiting for World Control on the server" for the whole session — under a window that worked perfectly. A host is the server, and now the line says so.

Escape leaves the text field, not the window. Somebody halfway through an announcement who presses Escape means "stop typing", and closing the window threw the text away with it. The toggle key is ignored entirely while a field is being typed into: bound to a letter, it made typing impossible.

Enter sends an announcement. Everybody types a line and presses return. A field that then does nothing reads as a field that did not take the text.

A player who may not change anything is told so. Pressing F8 without admin rights used to do nothing at all — no window, no word, no way to tell a mod that refuses from a mod that is not installed. It now says that only server admins can change the world.

2.5.6

Places can be named and cleared. A slot could be saved over, and that was all: no way to call one "base" instead of "Meadows", and no way to empty one without overwriting it from somewhere you did not want. Each row now has Name and X, and a single field above the list holds the name to give — one field rather than three, because only one of them is ever being typed into and the list needs the room more.

Name and X are only offered on a slot that holds something, and Name only while something is typed: a button that does nothing when pressed is worse than one that is plainly not available.

2.5.5

Loading a preset sets it. Load used to fill the window and wait for a press of "Apply everything" — one step too many for something that was decided once already. The point of keeping "stormy night" is to have it back without dialling it again, so one press does it.

How long it holds is not part of the preset: that stays whatever the duration below says, because it belongs to the evening rather than to the setting.

2.5.4

More room, and the buttons where they belong. The window has grown from 760 by 620 to 900 by 700. Everything that was pressed against its neighbour has space now: the tab column, the lists of events and players, the sliders, the note at the bottom left that used to be cut off mid-sentence. Events and players show five rows per page instead of four.

The duration moved to where it means something. "Applies until changed" stood alone in the middle of the window with nothing beside it to say what it referred to. It now sits directly above Apply everything, so the two read as one sentence — "for thirty minutes: apply everything" — and the time left runs next to it rather than somewhere else.

The author's mark is smaller, in the bottom left corner, where it is seen and not in the way.

2.5.3

Announcements. A new tab with a line for everybody: it appears in the middle of the screen and in the chat, with the name of the admin who sent it in front of it. That name comes from the connection the server tracks, not from the message — an announcement carries weight because of who it is from, so that part is not something a client gets to fill in. Players without the mod do not see it.

Saved places. Three spots you can keep and walk back to later. A place holds a position in this world and is named after the land it sits in, so the list reads "Meadows · 320 m" rather than a row of coordinates. A place is yours alone and never reaches the server — it is somewhere one person goes often, not something the world agrees on.

The tab column has two more entries and its buttons are a little shorter for it. The message format is now version 8; update the server and every client together.

2.5.2

Events are called what they are called. The list showed the internal name — army_gjall, foresttrolls — which means nothing to anybody who does not already know how the game's files are put together.

It now shows the biome and the line the event announces itself with in the game: "Mistlands – What's that sound?" instead of army_gjall. Both come out of the game's own translations, so they read in the language the game is played in, and they are the very words that appear on screen when the raid starts. Events that can happen anywhere get no biome in front of them — otherwise it would say "Meadows", which is simply wrong. Where the game has nothing to say about an event, its internal name still shows: a name nobody can read beats an empty button.

For that, the list shows four entries per page across the full width instead of six in two columns — a sentence needs the room. The running event at the top is named the same way.

2.5.1

The language can be switched in the window. There is now a button at the bottom left that steps through Auto, English and Deutsch; on Auto it also shows what that works out to. Until now this lived in the config file only — and somebody who cannot read a German window is exactly the person expected to go looking there.

It is the same setting as before, so it is saved and still set next time. The window is rebuilt on the switch, and whatever you had dialled in but not yet applied survives it.

2.5.0

Overrides can run out. Next to "Apply everything" there is now how long the setting should hold: until it is changed, or 15, 30, 60, 120, 240 minutes. When the time is up the server puts everything back to natural by itself. Whoever turns the weather for an evening is rarely the one who thinks of turning it back at two in the morning. The window counts the remainder down — against the world clock everybody shares, so it reads the same for every player.

The state survives a server restart. It used to live in memory only: after a restart everything was natural again without anybody having changed a thing. The server now remembers what was set and puts it back when it starts. Not restored are a running countdown — the hours a server is off are not hours anybody meant to include — and the fast-forward, which is a single act anyway.

Players. A new tab shows who is online and how far away they are, and can bring any of them to you or take you to them. The positions come from the connections the server keeps itself — never from what a client claims about itself; a tampered request can at most name who it concerns, and that already sits behind the admin check. Whoever is moved is told, so it does not read as the game misbehaving. Only players who have the mod can be moved; otherwise the reason is in the server log.

Who did that? The status line at the bottom now names whoever made the last change. With several admins you see at once whether you are cutting across somebody. The name is set by the server from the connection.

The message format is now version 7. Update the server and the clients together.

2.4.0

Events. A new tab shows which random event is running and how long it still has, and starts or stops any event the game knows — "The forest is moving" when the evening calls for it, rather than when the dice do. The event starts where the admin stands; the list is the game's own, with the same names as in the console. New events can also be held back — a running one is allowed to finish, but nothing follows it. That is a setting like weather and wind and takes effect on "Apply everything".

None of it is rebuilt: the event is started through the same call the console command uses, and the running event is distributed to every client by the game itself. The server checks that the request really comes from an admin, as it does for everything else.

Presets. Three slots for time, weather and wind: set it once, save it, call it back with one click — "stormy night", "clear morning", whatever the server needs. A preset belongs to the player, not to the world: loading one fills the window, and nothing reaches the server until "Apply everything". Stored in your own config.

The message format is now version 5. Update the server and the clients together.

2.3.1

The mark sits at the bottom left now, under the notes, in the quietest corner of the window. At the top it stood between the title and the close button, where everything else wants to be read or pressed.

2.3.0

One button instead of three. Time, weather and wind each had to be confirmed on their own — setting all three meant pressing three times, and a section you had set but not confirmed was thrown away on closing. All three tabs write into the same draft, so there was never a reason for it. It now says "Apply everything", and the server sets the lot in one go: one request, one revision, one send to the clients.

Fast-forward is an act again, not a state. The mode used to stay selected after the jump. With one button for everything that would have meant: whoever then only turns the wind skips another whole day. The mode falls back to natural after the jump, visibly so in the window.

English and German. The window was German throughout. It now speaks both; the language lives in the config under [UI] Language (Auto, English, Deutsch), and Auto follows the game. A switch takes effect at once and rebuilds the window. Untouched by all this are the weather ids, the config keys and the message format: they name things between server and client and have to mean the same on both ends, whichever language either side reads.

The author's mark sits in the window.

The message format is now version 4. Update the server and clients together; older versions do not sync.

For building: the mod has its own build path in the project again — build-worldcontrol.ps1 and package-worldcontrol/ with manifest, page text and icon. Before that these files existed only in the installed profile, which made a new release impossible to reproduce.