
SatelliteMap
Zoom in on the map and see the world itself: real relief and shores, forest, player-made paths and fields, buildings, ruins and boss altars, drawn top-down from world data.SatelliteMap
Zoom in on the map and see the world itself instead of a blur: real relief and shorelines, forest, the paths and fields players have made, buildings, ruins, dungeon entrances and boss altars. Everything is drawn top-down from the data of the world, so your base looks like your base, and the road you paved with the hoe is on the map.
What it does
- Nothing changes until you zoom in. Zoomed out you see the usual game map. When about 3 km or less fits into the map window, the detailed picture fades in on the explored part of the map. The closer you zoom, the finer it gets: 2 m, 1 m and finally half a metre per pixel.
- Only explored land is detailed. The fog of war works as before; the picture never shows what your map does not know yet. Shared exploration from a cartography table counts when the shared map is shown.
- The picture is alive. Cut the forest, build a house, lay a road: the map follows. While the map is open, the visible part is re-checked every few minutes. (A map mod can ask for the opposite: a map that shows the land as it was when it was charted, see "Snapshots" below.)
- Icons, marks, pings and map controls are untouched. The picture lies under them.
- No cameras, no screenshots. The relief and the water are computed by the same world generator the game uses, down to the metre. Trees, rocks, building pieces and world locations are drawn from a baked library of their top-down views (about 1100 objects of the game). Lighting and shadows are computed from heights, so a gable roof looks like a gable roof.
Sacrificial stones, burial chambers, tower ruins and boss altars are drawn where they stand, at their own size and rotation, not as symbols laid on top of the map. Shorelines, rivers, the snow line and the forest thinning out as it climbs all come from the world itself.
Multiplayer
The client knows only what is near the player; the rest of the world lives on the server. So the mod has a small server part: the client asks for descriptions of the zones it needs (what stands where, how the ground was painted and levelled), the server answers with a compact packet (about half a kilobyte per 64x64 m zone of forest). Zones come from the middle of the screen outwards; when the client checks them again later, it sends fingerprints and the server replies "unchanged" in a few bytes instead of sending them again.
- Install it on the server and on every client that wants the picture. Clients without the mod just see the usual map; nothing is enforced.
- Without the mod on the server the picture still works, but shows only relief, water and shores: no buildings, paths or forest. The log says so once.
- Single player and self-hosted games need nothing else.
Snapshots
A hand-drawn map should not know about the house somebody built yesterday. For map mods that want this (ParchmentMap does), whoever runs the world — the dedicated server, the host, or your single-player game — can remember what a zone looked like at a given moment:
- When a player charts a zone, the server writes down its description and answers with a snapshot number. The number changes only if the zone has changed since the last snapshot, so untouched forest costs one record no matter how often it is walked.
- The map keeps the numbers, the server keeps the descriptions:
<save folder>/satellitemap/<world>.<world id>.zones, next toworlds_local. It only grows when charted places change. Back it up together with the world. If the file is lost, maps fall back to the nearest older snapshot or to the live world, and heal as places are charted again. - A snapshot never changes, so the client asks for it once and never re-checks it.
- The plain game map is not affected: it stays alive as described above.
Settings
BepInEx/config/qua8ion.valheim.satellitemap.cfg
| Section | Setting | Default | Meaning |
|---|---|---|---|
| Rules | DetailLevel |
3 |
How detailed the picture is. 0: the plain game map only. 1: a sketch, 2 m per pixel: relief, water, paths, fields, buildings, ruins, boss altars. 2: also the forest and large rocks, 1 m per pixel. 3: everything down to bushes, half a metre per pixel. On a dedicated server the server's value applies to everyone. |
| General | Enabled |
true |
Your own switch for the detailed picture. |
| Debug | DumpMapTiles |
false |
Save every drawn piece of the map as PNG into BepInEx/cache/SatelliteMap/tiles and log the timings. |
| Debug | ServerSelfTest |
empty | x,z,radius: a server describes the zones around that point after the world is loaded and writes the packet to BepInEx/cache/SatelliteMap/selftest.bin, then runs the same zones through the request path a client would use, takes snapshots of them, asks them back by number, and logs the result. For checking the server part without a client. |
For other mods
SatelliteMap.SatelliteMapApi (find it by reflection, no build-time dependency needed):
AddDetailLimit(Func<int> provider): limit the detail level (0-3, or -1 for "no opinion right now"). The lowest of the config value and all limits applies.NotifyExploredChanged(): tell the mod that the explored part of the map was changed bypassing the game's own methods (or that the snapshot numbers below have changed).Survey(int[] zoneXs, int[] zoneYs, Action<int[], int[], int[]> done): the player is charting these zones;donereceives the zones and their snapshot numbers. There may be no answer at all (no mod on the server, or older than 0.2.0).SetZoneRevisionProvider(Func<int, int, int> provider): which snapshot to draw for zone (x, y).0: not charted, draw the live zone;-1: no opinion right now.
The ParchmentMap mod (a craftable map you hold in your hand) uses all of them: the detailed picture appears on the drawn part of the parchment, the level of detail is decided by the parchment, and the parchment shows the land as it was when you charted it: changes appear only after you walk there again and visit a cartography table.
Notes
- Building pieces from other mods are drawn as plain boxes of the right size and colour. Everything from the base game has its real shape.
- Dungeon interiors, creatures, items, ships, carts and everything else that moves are never drawn.
- The small corner map is not detailed, only the big one.
- Made for Valheim 1.0.15. The library of top-down views is baked from the game's assets; after a big game update new pieces are drawn as boxes until the library is re-baked.
Русский
При приближении карты вместо размытой картинки виден сам мир: настоящий рельеф и берега, лес, протоптанные тропы и поля, постройки, руины, входы в подземелья и алтари боссов. Всё рисуется видом сверху по данным мира: база выглядит как ваша база, а мощёная дорога есть на карте. Подробно показывается только разведанная часть, значки и метки остаются как были. Для построек и леса вдали нужна серверная часть мода (в одиночной игре ничего не нужно); без неё рисуются только рельеф и вода. Подробность задаётся настройкой DetailLevel (0–3). Обычная карта игры живая: построили дом — он появился на карте. Для карт, которые ведут от руки (мод ParchmentMap), сервер умеет запоминать снимки зон: карта показывает местность такой, какой её обошли, а не какая она сейчас. Снимки лежат в <папка сохранений>/satellitemap/<мир>.<id мира>.zones — в бэкап вместе с миром.

