You are viewing a potentially older version of this package. View all versions.
Wringer-reMarksable-1.0.0 icon

reMarksable

Client-side marker filtering, cartography-table controls, and optional tombstone Death-marker cleanup for Valheim.

By Wringer
Date uploaded 5 days ago
Version 1.0.0
Download link Wringer-reMarksable-1.0.0.zip
Downloads 28
Dependency string Wringer-reMarksable-1.0.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

reMarksable

reMarksable is a client-side Valheim mod that expands the map, marker filtering, and cartography-table workflow. Visibility filters never delete saved map data — they only change what is currently displayed and how the player interacts with the map UI.

Main features

  • Open the large map with M, then use MarkerListShortcut (default: Tab) to show or hide the reMarksable window.
  • Move and resize the filter window only while holding WindowEditShortcut (default: Left Alt).
  • Window open state, position, size, and transparency are persisted.
  • The visible Window section in Configuration Manager is read-only; geometry and transparency are changed only through the in-game reMarksable window.
  • The default filter-window size is 340x220 logical pixels with a 340x180 minimum.
  • The marker list has its own vertical scrollbar. Mouse-wheel input over the panel does not zoom the map underneath.
  • Header controls cover world/system markers, Death markers, boss markers, live positions of other players, plus the separate optional Death-marker cleanup after recovering your own tombstone feature.
  • Death and boss visibility reuse Valheim's native filter mechanism. reMarksable moves their controls into its own header while keeping the state synchronized with the game.
  • Owner rows show the local player first, known remote players next, and unresolved players at the end.
  • Filtering is applied consistently to both the large map and the corner minimap.
  • Player names are resolved from live players, network/ZDO data, player history, a per-world local cache, and reMarksable metadata stored on cartography tables.

Cartography table

reMarksable turns both physical sides of the cartography table into one logical action:

Record discoveries and read the map

Writing always uses Valheim's native behavior. Reading can be controlled independently through:

  • ReadMarkers — import shared markers,
  • ReadExploration — import shared explored-map data.

If selective reading cannot safely decode the table payload, reMarksable falls back to Valheim's native MapTable.OnRead path while protecting the category that the player chose not to import.

Hugin

Hugin's cartography-table tutorial is replaced with a short reMarksable tutorial. The tutorial uses the current configured reMarksable shortcuts and performs a best-effort lookup of Valheim's current Use and Map bindings.

Only the cartography-table Hugin tutorial changes its interaction prompt to:

  • Hear about reMarksable

Other Hugin tutorials and Munin are not modified.

Languages

reMarksable intentionally ships two fully verified language packs:

  • English
  • Polish

When Valheim is set to Polish, reMarksable uses Polish unless General > EnglishFallback is enabled. English and every other Valheim language use the English reMarksable pack.

The same rule applies to the cartography-table messages and Hugin tutorial text owned by reMarksable.

Multiplayer

reMarksable is optional and client-side. Other players do not need the mod in order to join the same world/server. Players without reMarksable simply do not receive its local filtering UI or client-side cartography enhancements.

Disabling the mod at runtime

General > Enabled = false disables reMarksable behavior without requiring a restart. The mod restores the native Death/Boss controls, removes its visibility filtering/UI behavior, and restores the native cartography/Hugin localization values.

Responsive UI scaling

At 1440p and above, automatic UI scale remains at 100%. Lower resolutions receive gentle height-based compensation. General > UIScale adds a manual multiplier in the 75–150% range.

Changing resolution does not permanently rewrite the logical window size or position.

Tombstone and Death-marker pairing

When the local player dies, reMarksable captures the death transaction and pairs the newly created tombstone with the appropriate vanilla Death marker. Pair metadata is stored outside the marker name — PinData.m_name remains owned by Valheim.

When optional automatic cleanup is enabled, the paired Death marker is removed only after the player's own tombstone is completely empty and Valheim is ready to despawn it. Fresh pair creation also uses a maximum distance sanity check to protect against unrelated objects created by other mods during the same death event.

Updating after a Valheim patch

Start with docs/PORTING.md. Fragile dependencies on Valheim implementation details are intentionally concentrated in:

  • Compat/GameBridge.cs
  • Compat/PatchTargets.cs

Release status

reMarksable 1.0.0 is the first public-release baseline. It is treated as a clean starting point and does not promise compatibility with private development builds that existed before 1.0.0.

Copyright and permitted use

Copyright © 2026 reMarksable contributors. All rights reserved.

reMarksable may be downloaded and used for gameplay, including recorded and live-streamed gameplay. Creating, publishing, and monetizing videos, livestreams, screenshots, reviews, guides, and other media featuring reMarksable is permitted.

Redistribution of the mod itself, modification, derivative works, merging into other software, sublicensing, sale, paid distribution, or other commercial exploitation of reMarksable itself are not permitted without prior written permission from the copyright holder.

The software is provided “as is”, without warranty of any kind, express or implied. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use.

CHANGELOG

Changelog

reMarksable was developed through many private prototype and test builds before its first public release. To keep the public history readable, those builds are grouped below into the milestone they led to instead of listing every internal version separately.

1.0.2 — Window edit mode, FastSolo and diagnostics

Filter-window interaction

  • Expanded WindowEditShortcut mode so holding it turns the whole reMarksable panel into a move/resize surface instead of limiting dragging to the title bar.
  • While window-edit mode is active, normal reMarksable controls are temporarily blocked; the bottom-right resize grip remains available as the dedicated resize target.
  • Added FastSolo for the local player: right-clicking the eye on the local-player row hides every other player-owner marker group currently listed while keeping the local player's markers visible. A second right-click on the local player eye restores the other listed owner groups.
  • Kept normal left-click owner visibility toggles unchanged.
  • Stabilized the custom vertical scrollbar while resizing: its normalized position is remembered instead of being recalculated from transient layout changes.
  • When the full owner list fits in the viewport, wheel/track scrolling is disabled because there is no hidden content to reveal; the thumb remains visually stable and its last meaningful position is restored if the window becomes scrollable again.

Configuration and compatibility

  • Added General > ResetWindow in Configuration Manager as an emergency reset for window position, size, and transparency only; marker-owner data and visibility filters are preserved.
  • Added a compact read-only Compatibility section exposing the startup compatibility probe.
  • Kept the detailed multi-line compatibility report in the BepInEx log for troubleshooting.

1.0.1 — Context-aware scrolling and UI session fix

Filter window input and session styling

  • Added mouse-wheel scrolling for the reMarksable marker-owner list.
  • Mouse-wheel input is context-aware: hovering the reMarksable window scrolls its list and prevents the large map underneath from zooming.
  • Hovering the map keeps Valheim's normal zoom behavior and does not move the reMarksable list.
  • Kept the custom scrollbar thumb synchronized with mouse-wheel scrolling.
  • Fixed the filter window losing its Valheim UI styling after leaving a world and loading another character by refreshing scene-owned UI/font references for each session.

1.0.0 — First public release

Summarizes the final stabilization work performed after the 0.6 milestone and prepares reMarksable as a clean public release.

Release hardening

  • Turned the development project into a clean first-release baseline with 1.0.0 metadata, release packaging, documentation and Thunderstore preparation files.
  • Removed obsolete development-only references, dead helpers and abandoned UI paths left behind by earlier prototypes.
  • Tightened Harmony targets to explicit signatures where possible so future Valheim changes are less likely to bind reMarksable to the wrong overload.
  • Reworked the compatibility report into per-feature diagnostics instead of a single coarse success message.
  • Kept fragile Valheim implementation details concentrated in Compat/GameBridge.cs and Harmony signatures in Compat/PatchTargets.cs.
  • Preserved independent Harmony patch installation so one incompatible game hook cannot prevent unrelated reMarksable features from loading.

Complete enable / disable behavior

  • Finalized General > Enabled so disabling reMarksable returns the affected game systems to vanilla behavior instead of only hiding the filter window.
  • Restores Valheim's native Death/Boss map controls when the mod is disabled.
  • Clears reMarksable visibility overrides and refreshes marker UI so no locally hidden markers remain stuck after disabling the mod.
  • Restores the original Valheim cartography/Hugin localization strings when reMarksable is disabled and reapplies reMarksable text when enabled again.
  • Prevents the custom Hugin interaction prompt from remaining active while the mod is disabled.

Hugin and configurable shortcuts

  • Rebuilt Hugin's reMarksable tutorial from the currently configured shortcuts instead of permanently hard-coding Tab and Left Alt.
  • The reMarksable marker-list shortcut and edit shortcut now update the tutorial automatically after rebinding.
  • Added best-effort lookup of Valheim's current Use and Map bindings with safe E and M fallbacks.
  • Preserved the Valheim-style highlighted key presentation inside the tutorial.

Performance and multiplayer polish

  • Reduced avoidable garbage collection pressure in marker visibility processing by reusing internal HashSet / List buffers instead of allocating temporary collections during repeated map updates.
  • Kept marker-catalog rebuilds fingerprint-driven so transient PinData identities do not rebuild the visible owner list unnecessarily.
  • Maintained cached player identity discovery and throttled refresh paths intended to remain lightweight in multiplayer sessions.
  • Kept UI-scale logging debounced to one concise start-to-end message instead of one console entry per intermediate slider value.

Tombstone safety

  • Added a maximum acceptable distance when pairing a freshly created tombstone with a freshly created Death marker during the same local death transaction.
  • Preserved the existing exact-pair/fingerprint behavior for valid nearby matches while refusing implausible cross-mod matches instead of guessing.
  • Kept cleanup conservative: reMarksable removes a Death marker only when it can resolve the tracked pair safely.

0.6.0 — Localization, tutorial and final UI-behavior milestone

Summarizes private builds from 0.5.1 through the 0.6 development line.

Responsive UI and tooltips

  • Added automatic UI compensation below 1440p while preserving the accepted high-resolution appearance.
  • Added the manual 75–150% UIScale multiplier on top of automatic scaling.
  • Added concise scale diagnostics and later debounced them so dragging the scale slider does not flood the console.
  • Allowed long localized header tooltips to grow beyond the filter-window width while remaining constrained to the visible map area.
  • Added wrapping for unusually long tooltip text.

Window interaction redesign

  • Removed the persistent lock/unlock button from the header.
  • Replaced it with momentary edit mode: hold WindowEditShortcut (Left Alt by default) to move or resize the filter window.
  • Hid the resize grip while edit mode is inactive and committed in-progress drag/resize operations when the edit shortcut is released.
  • Tightened the usable viewport margins and introduced top-right initial placement for fresh installations.
  • Reduced the final default window size to 340x220 logical pixels and the minimum height to 180 while retaining the 340 px minimum width.
  • Made visible Window values in Configuration Manager read-only diagnostics; position, size and transparency are changed from the in-game UI instead.
  • Fixed resize completion so the top-left/header position remains fixed instead of jumping after the new size is saved.
  • Restored the compact scrollbar thumb's intended minimum size for the shorter window while keeping its established maximum.

Exact tombstone / Death-marker pairing

  • Evolved the recovered-tombstone cleanup feature from proximity matching to persistent exact pairing for new local deaths.
  • Captured the new Death marker and new tombstone inside the same local death transaction so older stacked markers cannot be mistaken for the new grave.
  • Persisted pair identity across sessions.
  • Moved cleanup timing to TombStone.UpdateDespawn so the Death marker disappears together with Valheim's empty-grave removal rather than too early.
  • Stopped storing pairing metadata in PinData.m_name; vanilla Death-marker names remain untouched.
  • Replaced name metadata with a stable vanilla-pin fingerprint plus an occurrence ordinal for otherwise-identical Death markers.
  • Updated later occurrence ordinals when an identical Death marker is removed so existing pairs do not shift to the wrong grave.
  • Suppressed reMarksable table hover/interact text for hammer placement previews so custom table text appears only on a placed object.

Localization overhaul

  • Performed a full audit of the reMarksable localization strings and ON/OFF status wording.
  • Removed obsolete Lock window / Unlock window localization keys after the lock UI was removed.
  • Audited reMarksable's overrides for Valheim's cartography-table result messages.
  • After extensive multilingual experimentation, reduced the public localization model to the two verified packs: Polish and English.
  • Polish Valheim uses Polish unless EnglishFallback is enabled; English and every other Valheim language use the English pack.
  • Applied the same routing to reMarksable-owned cartography messages.

Hugin tutorial

  • Replaced Hugin's cartography-table tutorial body with a short reMarksable mini tutorial.
  • Explained the unified table action, map/filter-window access, window visibility shortcut, edit shortcut and Configuration Manager settings.
  • Highlighted key names with Valheim-style yellow/bold markup.
  • Changed only the cartography-table tutorial interaction prompt to Hear about reMarksable / Posłuchaj o modyfikacji reMarksable while leaving other Hugin tutorials and Munin untouched.

0.5.0 — Native filters, tombstone cleanup and compact-header milestone

Summarizes private builds from 0.4.1 through 0.5.0.

Native Death/Boss integration

  • Reworked Death and Boss filtering to use Valheim's own native icon-filter state instead of maintaining a separate renderer state.
  • Hid Valheim's original Death/Boss filter controls while reMarksable is active and exposed equivalent compact controls in the reMarksable header.
  • Persisted the chosen native filter state through reMarksable settings so Configuration Manager and the header remain synchronized.
  • Added compact icon-only header actions with localized hover tooltips and ON/OFF state text.

Filter-window refinements

  • Moved world markers and other-player positions into compact header controls while keeping owner rows in the scrolling list.
  • Kept the current player pinned first, known remote players alphabetically after them, and unknown players grouped at the end.
  • Applied marker-owner filtering consistently to the large map and corner minimap.
  • Added per-world persistence for hidden marker owners so choices from one world do not leak into another.
  • Refined the disabled-state visual treatment with dimming and the red diagonal slash.
  • Added and iterated the dedicated tombstone cleanup icon as a separate feature action rather than another map filter.

Recovered-tombstone cleanup

  • Introduced the optional feature to remove a local Death marker after the player's own tombstone has been emptied.
  • Added ownership checks so other players' graves are not affected.
  • Added conservative ambiguity handling: nearby stacked Death markers are left untouched when the correct one cannot be identified safely.
  • Iterated the feature toward stronger pairing and later exact identity tracking.

Cartography and language fallback work

  • Added language-aware fallback replacements for incomplete native Valheim cartography-table messages.
  • Improved wording and grammar across the large multilingual development set without changing established map/filter behavior.
  • Refined terminology around charted paths, discoveries and marker ownership.
  • Continued Abenaki terminology research and correction while preserving all accepted UI behavior.

0.5 baseline

  • Established the compact-header design and finalized the map-filter grouping that later 0.5/0.6 builds polished rather than replacing.
  • Preserved client-side operation and compatibility with players who do not have reMarksable installed.

0.4.0 — Full localization and table-interaction milestone

Summarizes private builds from 0.3.1 through 0.4.0.

Unified cartography interaction

  • Unified both physical cartography-table sides into one logical reMarksable action: record local discoveries, then read discoveries from the table.
  • Preserved Valheim's two native switches and native OnWrite / OnRead implementations instead of rebuilding the prefab hierarchy.
  • Protected disabled read categories from Valheim's internal write-time map merge by snapshotting/restoring local marker and exploration state before the requested filtered read.
  • Repaired shared-exploration fog pixels after temporary restoration so disabled exploration reads do not remain visible as stale map pixels.
  • Renamed the English action to Record and read discoveries, matching the cartographic/Valheim context better than generic save/load wording.

36-language development phase

  • Added localization packs for all 36 languages selectable in Valheim at the time.
  • Kept reMarksable as an untranslated proper name.
  • Standardized user-facing terminology around markers/marks rather than exposing internal pin wording.
  • Added EnglishFallback to force reMarksable text to English without changing Valheim's own language.
  • Added adaptive minimum window width based on the current language and rendered text.
  • Reworked multilingual TMP handling to keep Valheim's native font/material template and rely on TextMeshPro's fallback chain instead of swapping font/material pairs dynamically.
  • Fixed transparency handling for fallback-font submeshes by fading labels through CanvasGroup rather than mutating shared TMP material properties.

Language-quality work

  • Replaced the initial Abenaki fallback with a dedicated Western Abenaki development localization based on researched terminology.
  • Performed a language-quality pass across the other localization packs to avoid literal computer-style save/load language where physical map wording was more natural.
  • Corrected multiple language-specific grammar and terminology issues discovered during review.

Full-table interaction coverage

  • Extended the unified action beyond the two small native table hotspots so the visible table behaves like one interactive object.
  • Replaced an overly broad renderer-bounds interaction region with raycasts against existing solid table colliders to remove the empty-space hover halo.
  • Preserved the original prefab collision geometry; reMarksable does not add or resize physical colliders.
  • Tuned vertical-scrollbar thumb growth and maximum size while testing different window heights.

0.4 milestone

  • Entered the 0.4 line with the multilingual/table systems stable enough for extended language and UI testing.
  • Added native cartography-result overrides for the researched Abenaki pack without disturbing other language selections.

0.3.0 — Selective cartography-read and UI-stabilization milestone

Summarizes private builds from 0.2.1 through 0.3.0.

Cartography read controls

  • Hardened selective table reads so an unavailable or unknown shared-map payload never silently consumes the interaction.
  • Added a safe compatibility fallback to Valheim's native MapTable.OnRead whenever reMarksable cannot decode the table data confidently.
  • Removed experimental write filters and deliberately returned writing to Valheim's normal behavior for both markers and exploration.
  • Kept independent read controls for shared markers and explored-map information.
  • Added complete success/no-new-data feedback for marker-only and exploration-only read modes.
  • Renamed the cartography read action and table display name to clearer reMarksable terminology.

Marker-owner list behavior

  • Pinned the local player's row to a stable position after the two system rows and kept it visible even when the local player currently owns no markers.
  • Hid internal owner-filter persistence values from Configuration Manager.
  • Stabilized owner sorting and list rebuild behavior as the catalog changed.

UI and rendering stability

  • Iterated visibility-eye icon size and spacing.
  • Tuned the dedicated scrollbar thumb for a compact but usable marker list.
  • Removed an unstable runtime TextMeshPro sprite-asset experiment that could repeatedly log asset-upgrade/null-reference warnings.
  • Kept marker filtering, font handling and opacity behavior stable while preparing the later multilingual expansion.

0.3 baseline

  • Promoted the tested selective-read/cartography build into the 0.3 line without changing its core behavior, providing a stable base for the larger localization and full-table interaction work that followed.

0.2.0 — Core UI, map filtering and compatibility milestone

Summarizes private builds from 0.1.1 through the early 0.2 development line.

Valheim compatibility and patch resilience

  • Removed brittle hard dependencies on specific Valheim update methods during the first Valheim 1.0.x compatibility work.
  • Changed Harmony installation so patches are applied independently; one missing/changed method no longer blocks the entire mod.
  • Added compatibility fixes around localization, platform/user identifiers and marker-name UI internals.
  • Centralized more fragile map/window behavior into dedicated compatibility and bounds helpers.

Marker list rendering

  • Replaced the early stencil-mask list with a stable RectMask2D viewport.
  • Fixed UI layout refreshes after rebuilding rows.
  • Stabilized marker-catalog fingerprints so transient PinData object identity changes do not rebuild every row unnecessarily.
  • Kept current marker references refreshed even when the visible owner-list structure does not change.
  • Fixed hiding named markers so both the icon and Valheim's marker-name UI disappear together.

Valheim-style UI

  • Rebuilt the panel shell with fixed header/footer geometry so resizing changes the list viewport instead of stretching the whole interface.
  • Reused Valheim inventory/container panel and button assets.
  • Switched reMarksable labels to Valheim's Norse/map text template and material when available.
  • Standardized owner rows around a neutral player dot instead of arbitrary marker-type icons.
  • Refined the muted inventory-style palette, text outlines, footer spacing and transparency behavior.

Window geometry

  • Constrained dragging and resizing to the visible large-map viewport.
  • Normalized saved positions after resolution/display changes so the window cannot become permanently lost off-screen.
  • Reworked bottom-right resizing so the top-left/header stays fixed while only the right and bottom edges move.
  • Iteratively reduced the window from the large early prototype sizes toward the compact design.
  • Added the dedicated vertical scrollbar and protected the underlying Valheim map from mouse-wheel zoom while the pointer is over the reMarksable panel.
  • Refined transparency controls and kept foreground text/icons readable even at high panel transparency.

0.1.0 — Foundation milestone

Summarizes the original 0.0.x prototypes through the first coherent 0.1.0 build.

  • Established the reMarksable concept as a client-side Valheim map and cartography utility.
  • Added the first marker-filter window shown over the large map.
  • Added initial visibility groups for world/system markers, live positions of other players and marker owners.
  • Added the first player identity/cache system for grouping shared markers by owner.
  • Added early cartography-table controls and the foundation for selective shared-map handling.
  • Added Polish and English UI text with an English fallback concept.
  • Added a movable, resizable window with persistent geometry, lock state and configurable background transparency.
  • Established the design rule that filtering changes local visibility only and never deletes the player's saved map data.
  • Introduced the first centralized compatibility layer and Harmony target registry so fragile Valheim implementation details would not spread through the feature code.
  • Created the architectural foundation that all later milestones refined rather than replacing.