AstralSkies
Astronomical skies, lunar phases, eclipses, Milky Way, meteors and raid blood Moons. 14 constellation guides plus Summer Triangle, reticle identification and persistent F8 controls in English, French,
About this mod Author’s original text
Astral Skies — Zephyrfit
An animated astronomical sky for Valheim: catalogue stars, identifiable planets,
lunar phases, a structured Milky Way and regular meteor showers. A nocturnal raid
brings a full copper blood Moon, with a 15× reference-disc diameter setting by default.
0.5.7 — public beta. Shared forced events require in-game multiplayer validation. Built for skywatching, from subtle astronomy-inspired
nights to a spectacular fantasy sky. Open F8 to make it yours.
Installation
Install AstralSkies by Zephyrfit from the Valheim catalogue in Gale, then
launch the modded game. BepInEx is the only declared dependency; players do not
need the.NET SDK or the source kit.
| Installation | Result |
|---|---|
| Client only | Personal sky, astronomy and F8 settings |
| Server + participating clients, same version | Shared nocturnal raid signal, blood Moon and admin-forced sky events |
| Player without AstralSkies | Original sky |
For manual installation, extract the package's BepInEx folder into your existing
BepInEx game installation. Keep only one AstralSkies DLL. If you previously used
a local development copy, remove its mod entry before installing the catalogue
release; retain BepInEx/config/com.zephyrfit.astralskies.cfg for your preferences.
Dedicated-server instructions are included in SERVER_INSTALL.md.
New in 0.5.7 — local tests and shared server events
Choose the scope explicitly. Enable the console and obtain native devcommands
permission using your existing setup. For shared events, install 0.5.7 on the
server and every participating client, and use an account in the server admin
list. Client-side cheat permission alone does not grant server control.
| Phenomenon | Local visual test | Shared server event |
|---|---|---|
| Blood Moon, at night | as_event blood 60 | as_event_global blood 60 |
| Lunar eclipse, at night | as_event lunar 60 | as_event_global lunar 60 |
| Solar eclipse, by day | as_event solar 60 | as_event_global solar 60 |
| Stop this mode | as_event off | as_event_global off |
| Read server event status | — | as_event_global status |
Duration defaults to 60 seconds and accepts 5–600. Shared state reaches all
connected updated clients, including late joiners, with the remaining duration.
Forced blood Moons use the normal copper lighting and native storm-sea setting
(BloodMoonStormSea, enabled by default); they do not spawn raid creatures.
Local tests remain visual only and do not change anyone else's sky or the waves.
The server checks its own day/night and horizon conditions. A client's local
tod override cannot change those conditions. World time and the natural lunar
calendar are not modified. Forced eclipses hold the aligned preview geometry;
they are not a full first-to-last-contact animation. Personal F8 rendering
options still apply, so enable the Moon/eclipses/coherent cycle to see them.
A shared event ends on timeout, global off, an incompatible day/night change,
or server/world restart. It is not saved across restarts. A real raid blood Moon
takes priority over a forced eclipse; off never ends the actual raid. Shared
events take priority over local tests. Disconnecting the initiating admin does
not cancel the timer. If server state is lost, clients drop shared effects after
the 25-second freshness timeout. No new plugin dependency is added; ordinary
viewers do not need Server Devcommands.
The server checks each direct request against the live connection and native
admin list, with bounded durations, replay protection and request throttling.
Offline multi-client tests pass; real dedicated-server validation is still
required. The user confirmed the previous 0.5.6 local commands work in game.
History: 0.5.6 — console permission fix
Fix the false “enable devcommands” rejection introduced in 0.5.5. Its extra
permission check incorrectly treated Terminal.m_terminalInstance as static; it is
an instance property. The command now checks its actual ConsoleEventArgs.Context,
and active previews c
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: