reMarksable
Client-side marker filtering, cartography-table controls, and optional tombstone Death-marker cleanup for Valheim.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
WindowEditShortcutmode 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 > ResetWindowin 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
Compatibilitysection 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.0metadata, 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.csand Harmony signatures inCompat/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 > Enabledso 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
TabandLeft Alt. - The reMarksable marker-list shortcut and edit shortcut now update the tutorial automatically after rebinding.
- Added best-effort lookup of Valheim's current
UseandMapbindings with safeEandMfallbacks. - 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/Listbuffers instead of allocating temporary collections during repeated map updates. - Kept marker-catalog rebuilds fingerprint-driven so transient
PinDataidentities 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%
UIScalemultiplier 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
Windowvalues 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.UpdateDespawnso 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 windowlocalization 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
EnglishFallbackis 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 reMarksablewhile 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/OnReadimplementations 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
reMarksableas an untranslated proper name. - Standardized user-facing terminology around markers/marks rather than exposing internal
pinwording. - Added
EnglishFallbackto 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.OnReadwhenever 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
RectMask2Dviewport. - Fixed UI layout refreshes after rebuilding rows.
- Stabilized marker-catalog fingerprints so transient
PinDataobject 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.
