Zephyrfit-PlayerMapLayers icon

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/PlayerMapLayers directory.
  • 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 normal RemovePin lifecycle.
  • Added a compatibility fallback that destroys an added pin's root UI object before removing its data entry if Valheim changes the RemovePin signature.
  • 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.Update suppression 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 PMP2 store; existing PMP1 pin 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 Map action through ZInput, 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 SetMapData restore from preview, cancel, apply and undo paths.
  • Baselines and undo points now contain only the personal and shared exploration BitArray masks.
  • 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 BitArray instances rather than bool[] 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 mismatch failure 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.OnRead return value as proof that the interaction was denied; Valheim 1.0.15 can return false after a normal read.
  • Uses Harmony's __runOriginal state 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.OnRead overload 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 OnRead overload.
  • Made large-map state detection tolerant of both m_mode and m_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.GetServerPeerID API.
  • Added version-tolerant server-peer resolution with safe failure when no route can be resolved.
  • Removed the compile-time dependency on Valheim's legacy Localization type.
  • Removed the implicit UnityEngine.TextRenderingModule dependency 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.