

Two map workflows on Valheim's large map:
Cartography-table pins are decorated with distance/bearing-from-spawn captions baked into the captured image, and every potentially-noisy setting (capture method, message templates, output size, pin labels) can be server-synced so a host enforces the same look for everyone.
The bottom-right of the large map gets a Show Biome Text toggle, a SEND MAP button (default F10), and a COPY MAP button (default F11).

SEND MAP (F10) / COPY MAP (F11)) and updates automatically when the keys are re-bound| Discord post | Spoiler-tagged |
|---|---|
![]() |
![]() |
A second panel appears on the bottom-left of the large map. The intent: walk between cartography tables, add each reading as a tile, and on COMPILE the mod composites every tile into a single PNG that preserves world coordinates. The session is never lost when you save/copy/send — pause your mapping adventure and resume it at the next table or after a restart.
Idle — START COMPILE / RESUME COMPILE (N) |
Compiling — ADD TILE (N) / COMPILE (N) / SHARE (N) / CANCEL / CLEAR |
|---|---|
![]() |
![]() |
M-key adds, no portable map items)CLEAR (L-CTRL) until you hold Left CTRL, so this destructive reset can't be hit by accident. Also offered next to RESUME COMPILE (N) in idle to discard a saved session without resuming it
{player}, {tileCount} placeholders)In a no-map world each player only reveals the area around the tables they visit. SHARE lets a group pool coverage:
BepInEx/config/NoMapDiscordAdditions/compile-share/out/<world>/ so you can drag them in manually.BepInEx/config/NoMapDiscordAdditions/compile-share/incoming. The next time you open the large map during a compile session, tiles for your current world are merged into your active session automatically — then COMPILE composites yours and theirs together. (A Discord webhook is send-only, so import is folder-based rather than read back from Discord.)incoming/processed or incoming/ignored.Map Compile.Enable Map Sharing (server-synced) — the SHARE/EXPORT button disappears and nothing is auto-imported, so compile mode stays purely local.| Composed PNG (4 tables stitched) | Sent to Discord | Spoiler-tagged |
|---|---|---|
![]() |
![]() |
![]() |
Every visible cartography-table pin in a capture is decorated with {distance}m {Direction} ({bearing}°) — e.g. 1240m NorthEast (45°). Labels render only during the capture, never in the live UI, and respect Valheim's icon filters, viewport, and shared-map fade. The Discord message template gets a matching {spawnDir} placeholder; if your map is opened via the M key (no table involved), {spawnDir} falls back to the player's current position so Discord captures always include a direction.
A table can carry a human-readable name that flows into the Discord message ({table} placeholder) and the compiled-map captions ({name} — {distance}m {Direction}). There's no separate naming UI — the mod reads the closest named map pin sitting on the table (within ~8m):
Leave the pin unnamed and nothing changes — captions and messages fall back to just the direction, exactly as before. The name is captured the moment you add a tile in MAP COMPILE and stored in the session, so it stays correct even when the table is far away or unloaded at compile time.
| Key | Notes |
|---|---|
Discord.Webhook URL |
Discord incoming webhook. Server-synced so sending works for every client; hidden from the in-game ConfigurationManager window so non-admin players can't read a server-pushed URL from the settings UI. |
Discord.Message Template |
Supports {player}, {biome}, {spawnDir} (e.g. — 1240m NorthEast (45°)), and {table} (the cartography table's name — see below). When {spawnDir} or {table} is missing from the template it is appended automatically. Server-synced. |
Discord.Spoiler Image Data |
Tag attachments as Discord spoilers; default false. Server-synced. |
Discord.Hide Clouds |
Strip the cloud overlay before capture; default true. Server-synced. |
Discord.Show Biome In Capture |
Include biome label in captured map images; default false. Client-only — also toggled via the Show Biome Text toggle on the map. |
Discord.Send Max Dimension |
Cap on the longest pixel dimension of any image sent to Discord OR copied via COPY MAP / COPY (compile). Default 2560, range 512–8192. Keeps 4K screens under Discord's 10MB free-tier limit. Server-synced. |
| Key | Notes |
|---|---|
General.Capture Method |
ScreenCapture (default) or TextureCapture. Server-synced. |
General.Capture Super Size |
Screen-capture quality multiplier 1–4. Server-synced. |
General.Normalize Capture Lighting |
Render the map as if at noon in TextureCapture mode so tiles captured at different times of day don't produce dark/light seams in a compiled map; default true. Client-only. |
General.Enable Logs |
Print info/warning messages to the BepInEx console and Player.log; default false. Turn on if you need to investigate a problem. |
| Key | Notes |
|---|---|
Map Compile.Max Output Dimension |
Longest pixel dimension of the composed PNG used for the preview, COPY and SEND TO DISCORD. Default 2560, range 512–8192. Default keeps dense compositions under Discord's 10MB cap; raise to 3072 for sharper output, or 4096+ if you don't plan to send via Discord. Does not affect SAVE — SAVE always writes full native resolution (hard-capped at 8192px). Server-synced. |
Map Compile.Compile Message Template |
Discord message used by SEND TO DISCORD in the compile result panel. Supports {player}, {tileCount}. Default "{player} compiled a map from {tileCount} cartography tables." Server-synced. |
Map Compile.Enable Map Sharing |
Master toggle for cross-player tile sharing; default true. When off, the SHARE/EXPORT button is hidden and the compile-share/incoming folder is no longer auto-imported — compile mode stays purely local. A server can disable sharing for everyone. Server-synced. |
Map Compile.Share Message Template |
Discord message sent once (with the first attachment) by SHARE TILES. Supports {player}, {tileCount}. Default points teammates at the compile-share/incoming folder. Server-synced. |
| Key | Notes |
|---|---|
Pin Label.Enabled |
Master toggle for the per-pin labels baked into the screenshot; default true. Server-synced. |
Pin Label.Include Distance |
Prepend the distance (1240m NorthEast (45°) vs NorthEast (45°)); default false. Server-synced. |
Pin Label.Include Direction from Spawn |
Include the compass direction/bearing from spawn (NorthEast (45°)); default false. If both distance and direction are off, no label is drawn. Server-synced. |
Pin Label.Include Map Item Sources |
Also show the spawn label when the map is opened from a portable map item (e.g. ZenMap parchment), not just from a cartography table; default false. Server-synced. |
Pin Label.Show on Compile Mode |
Whether the captions are stamped onto the MAP COMPILE composite — one per cartography table, drawn on top with an outline (still gated by Pin Label.Enabled); default true. Disable for label-free compiled maps without affecting plain COPY/SEND. Server-synced. |
| Key | Notes |
|---|---|
Controls.Screenshot Key |
SEND MAP hotkey while the large map is open; default F10. |
Controls.Copy Key |
COPY MAP hotkey while the large map is open; default F11. |
Controls.Copy Full Resolution Modifier |
Hold while clicking COPY MAP / compile panel COPY to raise the cap to 4096; default LeftControl. |
Config sync is handled by Jotunn's SynchronizationManager (Jotunn is a required dependency). On connect, the server pushes its value for every synced setting to all clients, the entry is locked client-side, and each client's local value is cached and restored on disconnect. There is no separate ServerSync install or RPC protocol version to keep in step.
These settings are server-synced (a host enforces one look for everyone):
General.Capture MethodGeneral.Capture Super SizeDiscord.Spoiler Image DataDiscord.Hide CloudsDiscord.Send Max DimensionDiscord.Message TemplateDiscord.Webhook URL — synced so sending works for everyone, but hidden from the in-game ConfigurationManager window so non-admin players can't read it from the settings UIMap Compile.Max Output DimensionMap Compile.Compile Message TemplateMap Compile.Enable Map SharingMap Compile.Share Message TemplatePin Label.EnabledPin Label.Include DistancePin Label.Include Direction from SpawnPin Label.Include Map Item SourcesPin Label.Show on Compile ModeShow Biome In Capture, Enable Logs, hotkey bindings, and the modifier key are always local to each client (bound synced: false).
SynchronizationManager). ZenMap already depends on Jotunn, so most setups already have itGraphics.CopyTexture size-mismatch error on expanded worlds (e.g. a 4× map); update ZenMap if you see that errorFound a bug, have a question, or want to request a feature? Reach me as virtualbjorn on either of the Valheim modding Discord servers:
Ping virtualbjorn in the relevant modding/support channel and include your BepInEx/LogOutput.log if you're reporting an issue. You can also open an issue on the GitHub repo.