Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
PlayerMapLayers
Per-account exploration layers, subtle non-stacking player colors and explicit selective pin sharing.
CHANGELOG
Changelog
0.2.13 - Responsive map interface
- Made the cartography window adapt its width and height to the current game resolution and configured interface scale.
- Added a global vertical scrollbar whenever the complete menu cannot fit on-screen, keeping every identity, exploration, pin and import control reachable.
- Preserved dedicated scroll areas for player layers, pin owners and local shareable pins while sizing them proportionally on shorter displays.
- Changed the identity color palette from a fixed four-column layout to two, three or four columns depending on available width.
- Removed fixed-width pressure from the emblem and local-pin rows so labels no longer push controls outside narrow windows.
0.2.12 - Gale-safe per-user settings
- Moved personal identity preferences, pin filters, tint controls and interface settings from the Gale-synchronized BepInEx profile into Valheim's per-Windows-user
LocalLow/PlayerMapLayersdirectory. - Moved remembered layer selections, shared-table snapshots, import ledgers and undo recovery into the same non-synchronized local root.
- Added selective migration of legacy client state: only files matching the current local Valheim player ID are moved, preventing a synced profile owner's state from being adopted by new subscribers.
- Preserved existing account identity by requesting the server layer index after the local player becomes available and restoring the server-accepted color and emblem.
- Bumped the layer RPC endpoints to v5 so the server can return the requesting player's exact salted account UUID privately in its index; stored PML4 layer files remain fully compatible.
- Removed obsolete personal keys from
zephyrfit.playermaplayers.cfg; the remaining file contains only common/server-oriented settings. - Kept exploration and explicitly selected pins flowing through the existing validated server RPCs. Server storage and redistribution are unchanged.
0.2.11 - Filter label and localization audit
- Renamed the compact Layer menu / Menu des couches launcher to Filter / Filtre.
- Audited the French and English dictionaries for exact key parity. French remains selected only when Valheim uses French; every other game language falls back to English.
0.2.10 - Persistent views and simplified exploration workflow
- Replaced the two preview buttons with live layer selection: checking or unchecking any player or the shared table updates the map immediately.
- Added Me + table, All and None presets while preserving arbitrary combinations such as local player + table + selected remote players.
- Persisted the last valid shared-table snapshot locally per world and local character, so the exact remembered view can return after closing the map or restarting the game.
- Moved exploration-color controls into the collapsible My identity section and renamed them Individual color configuration.
- Moved permanent import into a separate advanced section and clarified that it is optional for normal layer viewing.
- Permanent import now reports when all selected discoveries were already present, creates an undo point only for a real change, and restores the selected colored view afterward.
- Removed the misleading Imported marker from the local player's own row.
0.2.9 - Clear layer selection, stable pin ownership and compact settings
- Removed the duplicate synthetic My personal exploration row. The player's normal account/character row now uses the current local personal mask while retaining the server-authoritative name, color and emblem.
- Kept the shared-table layer independently selectable and preserved the one-click personal + table preset.
- Changed tint composition so the shared table is a background only: selected player colors remain visible on cells also known by the table, while true multi-player overlaps stay neutral.
- Fixed author halos by resolving the actual Unity graphic component instead of tinting the pin's layout container.
- Stopped removing and reinserting unattributed live pins. All / Players / None now filters only pins synchronized through Player Map Layers; native, BetterMap and TargetPortal pins remain untouched.
- Added purple, turquoise, lime and white identity colors.
- Added collapsible identity and exploration-color sections and centered the selected emblem label in the full row.
0.2.8 - Pin lifecycle reconciliation and personal + table preset
- Fixed detached cartography and TargetPortal/BetterMap pin graphics moving as one screen-space block after panning or zooming.
- Replaced the destructive
m_pins.Clear()restoration with reference-based reconciliation: existing pin objects are left untouched and only additions made during the intercepted table read are removed through Valheim's normalRemovePinlifecycle. - Added a compatibility fallback that destroys an added pin's root UI object before removing its data entry if Valheim changes the
RemovePinsignature. - Split the local personal exploration mask from the shared cartography-table mask.
- Added explicit My personal exploration / Mon exploration personnelle and a one-click personal + shared table preview.
- Confirmed localization policy: French is used only when Valheim selects French; every other game language falls back to English.
0.2.7 - Stable pin layout and collapsible layer menu
- Replaced the old broad
Minimap.Updatesuppression with targeted map-click guards plus a guarded native pin-layout refresh. The map cannot receive add/remove/ping/pan actions through the panel, and its pins can no longer remain at stale screen coordinates. - Author-color halos are re-anchored immediately after Valheim and BetterMap finish laying out the native pins.
- The large map now opens with a compact Layer menu / Menu des couches button instead of the full panel.
- Closing the panel collapses it without cancelling the current preview, selection or shared-pin display.
- Reading a cartography table still opens the full panel automatically for the preview workflow.
- Promoted the documentation to a Gale-first public beta: regular users install the published package directly, while build and local-installer instructions live only in the separate DEVKIT documentation.
- Added a guarded interactive Thunderstore publisher: team prompt, masked one-use token, clean rebuild, explicit confirmation and automatic credential cleanup.
0.2.6 - Author-halo compilation hotfix
- Fixed a C# local-variable shadowing error in the new author-halo renderer that prevented the 0.2.5 DEVKIT from compiling.
- No network, storage or configuration schema changed from 0.2.5.
0.2.5 - Input isolation, saturated colors and author halos
- Prevented mouse clicks, dragging and wheel input over the mod window from reaching Valheim's map underneath.
- Applied the parchment texture to every focused, active and selected window state so the panel no longer changes appearance or becomes translucent while manipulated.
- Added an independent 100–250% exploration-color saturation control with a stronger 180% default; existing opacity controls are unchanged.
- Added optional relief halos behind temporary shared pins using each author's server-accepted color without recoloring BetterMap or TargetPortal icons.
- Added explicit multi-selection guidance and a live selected-layer count; any player combination can include or exclude the shared-table layer.
- Reduced list viewport heights to keep every action visible after adding the new controls.
0.2.4 - Per-pin icons and remembered layer selection
- Added an independent display-icon selector to every local pin offered for explicit sharing.
- Discovers BetterMap's live pickaxe, chest, portal, forage, dungeon, spawner, Vegvisir, beehive, tar and sap types without creating competing pin types.
- Keeps the original pin type inside its semantic fingerprint, so changing only the display icon cannot defeat duplicate protection.
- Persists the selected icon in a backward-compatible
PMP2store; existingPMP1pin files are still loaded with their original icons. - Remembers the last single- or multi-layer selection per world and local character and automatically previews it when the map is reopened.
- Centers the selected emblem name between its navigation arrows.
- Bumped the additive pin protocol to schema 2; server and participating clients must all run 0.2.4.
0.2.3 - Nordic parchment interface and live identity refresh
- Added a compact Nordic parchment theme with warm paper panels, dark wood buttons, amber selected tabs and a classic-theme fallback.
- Increased the window height and reduced the empty layer-list viewport so Apply, Cancel and Undo remain visible.
- Selecting a color or emblem now synchronizes the server-authoritative profile immediately.
- Fixed stale cached layer metadata that could keep an active preview on the previous color after the server accepted a new one.
- Refreshes the tint texture when a new server layer index changes identity metadata without changing exploration data.
0.2.2 - Lighter exploration overlay and clearer layer list
- Reduced the default player tint from 16% to 8% and automatically migrates the exact 0.2.1 default.
- Added a separate 3% opacity for Shared table exploration and reduced neutral overlaps to 1.5%.
- Added in-map
− / +opacity controls for player colors and the shared-table layer; changes are saved locally. - Removed the redundant color squares from exploration rows while retaining useful owner colors in the pin filter.
0.2.1 - Subtle non-stacking exploration colors
- Added a temporary local color overlay for active exploration previews, using each player's server-accepted profile color.
- Uses 16% opacity for cells exclusive to one selected player and one neutral 4% veil for overlaps; colors never stack.
- Keeps the tint aligned with Valheim's large-map UV rectangle while panning and zooming.
- Places the generated layer below normal pin UI, makes it non-interactive and destroys it on cancel, apply, map close or plugin unload.
- Added an in-map toggle plus configurable single-player and overlap opacities.
- Does not modify fog arrays, serialized map data, network payloads, BetterMap markers or TargetPortal pins.
0.2.0 - Explicit selective pin sharing
- Added a dedicated Shared pins tab; personal saved pins are private until individually checked and synchronized.
- Stores one complete pin list per platform-account UUID and world; synchronizing replaces it atomically so unshared or deleted pins do not linger.
- Keeps Valheim's native Cartography table switch as the master visibility control.
- Added local All / Players / None filters, with per-owner selection when Players is active.
- Treats existing unattributed cartography-table pins as one reversible legacy category; they can be hidden without deleting their live objects.
- Renders remote pins temporarily without importing them into the local map or exploration payload.
- Deduplicates by semantic pin identity so an existing BetterMap, TargetPortal or vanilla marker remains authoritative.
- Excludes system, player, death, boss, merchant, event, ping and other temporary markers from sharing.
- Renamed Shared cartography table to Shared table exploration to distinguish exploration from pins.
- Kept exploration network/storage schema 4; the additive pin protocol uses its own schema 1 and does not migrate existing player layers.
0.1.8 - Reliable isolation and localized Map input
- Fixed player-layer contamination when Sync my personal exploration was used during an active preview; the saved pre-preview personal mask is uploaded instead.
- Invalidates a cached payload whenever the server advertises a new fingerprint, so Isolate downloads and uses the current revision rather than stale data.
- Rebuilds the fog texture with Valheim's distinct personal/shared color channels and logs the explored-cell count of every isolated preview.
- Follows Valheim's configured
Mapaction throughZInput, with Unity M/comma fallback for QWERTY/AZERTY compatibility. - Renamed the ambiguous profile synchronization button to make clear that it uploads personal exploration only.
- Network schema 4 remains compatible with 0.1.7; the server data does not need another format migration.
0.1.7 - Non-destructive pins
- Removed every full-map
SetMapDatarestore from preview, cancel, apply and undo paths. - Baselines and undo points now contain only the personal and shared exploration
BitArraymasks. - Cartography reads snapshot and restore the live pin collection by reference, preserving unsaved dynamic markers such as Hildir, the Bog Witch and mod-created location pins.
- Added a dedicated exploration-state format; legacy full-map undo snapshots are rejected instead of being applied destructively.
- Kept the automatic M entry point and the large-map fallback button introduced in 0.1.6.
- Bumped the network and stored-layer schema; server and clients must all use 0.1.7.
0.1.6 - Valheim 1.0 exploration compatibility
- Fixed cartography capture and previews for Valheim 1.0.15, whose exploration fields are
BitArrayinstances rather thanbool[]arrays. - Opening the normal large map with Valheim's M key now opens the layer panel automatically; the compact button remains as a fallback.
- Restored the cartography-table flow: Read map captures the shared exploration result, restores the player's original map, opens the large map and displays the preview panel.
- Added explicit diagnostics for the detected exploration storage and both large-map entry points.
- Bumped the network and stored-layer schema; client and server must both use 0.1.6 and discoveries must be recorded again.
0.1.5 - Safe exploration layers and map entry point
- Replaced full serialized-map player payloads with compact exploration-only masks.
- Fixed the
Map exploration array size mismatchfailure that prevented selected layers from being merged. - Preview, isolation, apply and undo now preserve the current pin collection, including BetterMap and world-location markers.
- Added a Player layers button whenever the large map is open, so the panel is available away from the cartography table.
- Removed the redundant compatibility sentence from the panel.
- Replaced hexadecimal color cycling with a visible, named color palette and localized emblem names.
- Bumped the network and stored-layer schema; players must record discoveries again after installing 0.1.5.
0.1.4 - Read result semantics fix
- No longer treats the three-argument
MapTable.OnReadreturn value as proof that the interaction was denied; Valheim 1.0.15 can returnfalseafter a normal read. - Uses Harmony's
__runOriginalstate to distinguish a normal cartography read from an interaction actually blocked before Valheim's handler ran. - Keeps SimpleAccessControl authoritative: a denied interaction still does not open the Player Map Layers panel.
0.1.3 - Cartography interaction fix
- Targeted the exact three-argument
MapTable.OnReadoverload wired to Valheim 1.0.15's Read map interaction. - Reading a cartography table now explicitly opens the large map with the Player Map Layers panel and non-destructive preview.
- Avoided duplicate nested handling through the internal four-argument
OnReadoverload. - Made large-map state detection tolerant of both
m_modeandm_largeRoot. - Extended the map-open timeout and added clear table, panel and network diagnostics to
LogOutput.log. - Added a soft load-order dependency so SimpleAccessControl is detected after it is loaded.
- Prevented the client IMGUI component from being created in the dedicated-server process.
- The installer backs up and removes the obsolete direct-profile DLL before importing the managed Gale package.
0.1.2 - Managed Gale installation
- Replaced the direct client DLL copy with a complete local-package import through Gale.
- Added Gale profile selection, Steam/Valheim discovery and a running-game guard.
- Added build artifact and SHA-256 verification.
- Added explicit output paths for the generated BepInEx configuration and launcher log.
- Kept optional direct DLL installation only for a separately selected local dedicated server.
- The installer now fails clearly when Gale cannot import the package instead of silently creating an unmanaged client plugin.
0.1.1 - Valheim 1.0 compilation compatibility
- Removed compile-time dependency on the obsolete
ZRoutedRpc.GetServerPeerIDAPI. - Added version-tolerant server-peer resolution with safe failure when no route can be resolved.
- Removed the compile-time dependency on Valheim's legacy
Localizationtype. - Removed the implicit
UnityEngine.TextRenderingModuledependency from the UI styles.
0.1.0 - Development preview
- Added per-account, per-world map-layer storage.
- Added salted internal UUIDs with character-name display and alias history.
- Added upload after successful cartography-table recording.
- Added non-destructive preview after reading the table.
- Added individual isolation and multi-layer preview.
- Added explicit import, cancellation and persistent one-level rollback.
- Added revision and payload-fingerprint anti-duplicate protection.
- Added synchronized player color and emblem metadata.
- Added French and English interfaces.
- Added soft compatibility rules for BetterMap, TargetPortal and SimpleAccessControl.
- Added Gale/Thunderstore packaging and local development installer.