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.
OneMapToRuleThemAll
Shared map exploration (fog of war) and player map pins across all players. Create automatic map pins and/or use client-side radar...highly configurable.
| Date uploaded | a day ago |
| Version | 2.7.0 |
| Download link | DrummerCraig-OneMapToRuleThemAll-2.7.0.zip |
| Downloads | 235 |
| Dependency string | DrummerCraig-OneMapToRuleThemAll-2.7.0 |
README
OneMapToRuleThemAll
Important! For those on a pre V2 build...V2 is a design refactor with only a partial migration path. I recommend only installing for new worlds but migration info is provided at the bottom of this README. Additionally, V2.2.0 was a necessary design refactor for pin identity and it will turn all your existing auto pins into the default dot...but they won't be deleted. There is no way to avoid this. All abbreviations for new pins and radar now default to the in-game display name. You can modify the catalog file as needed or use the om_setabbr command (ex. "om_setabbr Raspberries RB") to change these to whatever you want them to be. Make a copy of all config files and the config\OneMapToRuleThemAll folder and save them outside of your game directory before installing if you want to be able to run a prior version.
This mod was developed for my own use but I figured why not share it for others interested. I want to thank all who enjoy using it and especially those who have provided feedback, requests and identified bugs to resolve.
It comes with no support or guarantees.
Main Features (all optional)
Shared map.
- Everyone on a server shares one map.
- Fog-of-war is merged in real time so all players experience the same uncovered map areas.
- Player-placed pins are synced too, so the whole server sees the same markers.
Automatic pins.
- Walk within range of a tracked object (ore, pickable, location) and a permanent shared pin is placed for everyone.
- Pins default with the in-game name of the object (customizable) and can also display an optional count within a defined radius.
- Map pins starting with
@(e.g.@Home) suppress all auto pin and radar within a set radius to keep a base quiet and uncluttered. Players get one@pin per biome — naming a new one demotes the old one (its@is stripped). Admins and the host are unlimited.
Radar.
- Nearby objects and creatures show as temporary pins that fade as you move away, with creatures tracked live.
- Radar is client only, never sent to anyone else.
- Nearby objects of the same type within a defined radius merge into a single counted pin.
Configuration Settings
- Settings in any of the "Server" sections apply to everyone when connected to a server as well as a solo game. The server pushes its configuration to each client on connect, so everyone plays by the server's rules.
- Settings in any of the "Client" sections apply only to you and do not affect any other connected players.
- Both Server and Client settings live in the combined
drummercraig.one_map_to_rule_them_all.cfgfile and can be edited live, or changed using a BepInEx Configuration Manager type mod. Each has an in-game hover description and won't be detailed here.
What gets tracked
- The trackable object universe is implemented using catalog.txt files inside the BepInEx/config/OneMapToRuleThemAll subfolder.
- Files are automatically generated, one for vanilla, named OneMapToRuleThemAll.catalog.txt.
- Catalog files are automatically generated for each additional installed mod containing trackable objects. An example being an RtDMythics.catalog.txt file is created for the RTDMythics mod.
- Once generated these catalog files and their values are not touched again except with version upgrades. Only missing entries are added, commented out by default.
- These Catalog files give you full control over what is tracked, what the pin is named (Abbr) and the icon it uses. An icon generator automatically generates icons (if possible) for mod prefabs if a sprite doesn't exist.
- Each row is
Biome | Type | Keyword | Display | Abbr | Icon. You can change the Biome, Abbr and Icon as desired. - Edit, comment out (or delete if you really want to) rows to change what is tracked, then run
om_reloadcatalogto apply live and re-push to clients. You have full control over what objects are available to track through these files. Commented rows don't appear in Configuration Manager. - While connected to a server, clients display the server's catalogs. In a solo game, they revert to their own local catalog files.
Console Commands (admin)
Run in the in-game console.
om_clearpins, om_reloadcatalog, om_setabbr, om_seticon, om_pincounts, om_checkduplicatepins and om_removeduplicatepins are server-authoritative: they require server admin rights and, from a client on a dedicated server, forward to the server automatically. That includes the two read-only ones — a non-admin can't even query pin counts, and a refused command reports nothing at all, so no output means "not an admin" rather than a broken command.
om_refreshicons, om_scanmods, om_exportcatalog, om_inspect and om_fogstatus are local — no admin rights, no server round trip, and no effect on other players.
Pins
om_clearpins all | type <name> | abbr <abbr> [radius]— remove auto pins only, never player pins. An optional radius (m) limits removal to your vicinity.typetargets one named catalog object and is the narrower form.abbrremoves pins for every object sharing that abbreviation (duplicate abbreviations are allowed), and for pins the catalog no longer recognises it falls back to matching the pin's label text — so prefertypefor anything destructive.om_clearpins type Obsidian 75— clears pins for theObsidianpickable within 75m of you. The Mountain deposit is a separate catalog object,ObsidianDeposit, and is not touched.om_clearpins all— clears every auto pin in the world.om_pincounts— breakdown of all auto-pin counts, grouped by abbreviation. Use it to see what's cluttering the map before clearing anything.om_pincountsom_checkduplicatepins— report duplicate auto-pins without removing them.om_checkduplicatepinsom_removeduplicatepins— remove duplicates, keeping one pin per cluster, and report what was removed.om_removeduplicatepinsom_refreshicons— re-stamp object icons onto your own discovery pins. Run it if icons get out of sync. Purely local and cosmetic: it repaints your minimap only, and needs a minimap, so it does nothing on a dedicated server console.om_refreshicons
Catalog
om_reloadcatalog— reload the catalog files from disk, relabel existing pins, and push the result to all clients. Run this after hand-editing a catalog file.om_reloadcatalogom_setabbr <display|keyword> <abbr>— set an object's pin abbreviation and push it live. The target must match a catalogKeywordorDisplayexactly (case-insensitive); it may be several words, and the last token is always the abbreviation.om_setabbr Raspberries Rbom_setabbr Greydwarf shaman GdwS— multi-word display name.om_seticon <display|keyword> <itemId>— set an object's pin icon to an ObjectDB item's sprite. Same exact-match rule for the target asom_setabbr.om_seticon CopperDeposit CopperOreom_seticon Greydwarf shaman TrophyGreydwarfom_seticon Raspberries none— clears the catalog's icon override (-works too). The pin then falls back to whatever sprite its keyword resolves to, and only shows a plain pin if nothing resolves.om_scanmods— re-scan loaded mods for trackable prefabs and write catalog files for any that are missing one. A newly installed mod needs a game restart first, so its DLL is loaded. This is local and does not push anything: follow it withom_reloadcatalogon the server for clients to see the result.om_scanmodsom_exportcatalog— dump every trackable prefab in the scene, modded and vanilla alike, toprefab_index.txtfor catalog curation.om_exportcatalog
Diagnostics
om_inspect [radius]— with no argument, inspects the object under your crosshair. With a radius it always scans that many metres around you and ignores the crosshair — use that when the object is buried or has no visible mesh. Prints the prefab name, components, how the mod identifies it, and for a deposit how much ore is left. This is how you find the keyword for something you want to track.om_inspect— whatever you're pointing at, or everything within 10m if you're pointing at nothing.om_inspect 8— everything within 8m, ignoring the crosshair.om_fogstatus— the fog-of-war (shared map) handshake state on this machine. Purely local, so it also works on a dedicated server console when a player reports missing map exploration.om_fogstatus
A huge thanks to Mydayyy and their excellent mod, ServerSideMap, and to Kitz_Bitz and their mod UnderTheRadar. Their excellent work and permission to utilize their code for reference helped the development of this mod.
Migration information from V1.2.14 Handled automatically on first 2.0 launch
*.customprefabs.txt → <Mod>.catalog.txt — each legacy per-mod file is converted (enabled entries only) to the new catalog format; the original is renamed *.customprefabs.txt.migrated.bak and never re-read (ConfigMigration.MigrateCustomPrefabsToCatalog).
Server radius 1. CritterRadar → 1. CreatureRadar — a customized legacy value is carried over once (ServerGlobalConfig.MigrateLegacyCreatureRadar).
Catalog Critter type token → Creature — the parser still accepts the legacy Critter token; a lower on-disk catalog schema version triggers a backup + clean regenerate (ObjectCatalog.cs:56-58).
Combined-config / Client.* prefixing (ConfigMigration.MigrateIfNeeded) — already satisfied by 1.2.14, so it's effectively a no-op for you.
Not carried over — expect to reconfigure these
creatures.txt customizations. The file is retired; creature definitions are now seeded into the catalog. An existing creatures.txt is moved to the subfolder but then ignored — any custom creature edits there are not imported. Re-do them as Creature rows in the catalog.
Per-biome server radii and tracked-keyword lists. 1.2.14's [Server.Pickables.<Biome>] / [Server.Ores] / [Server.Locations] sections (per-biome DiscoveryRadius/RadarRadius, TrackedDiscovery/TrackedRadar) are replaced by global [Server._Global] / [Server._Radius] (one radius per type) plus the catalog. Only CritterRadar migrates — other customized radii and tracked-keyword edits are not converted; they revert to the new global defaults and the old sections are orphaned. Re-apply radii as global values and tracking via catalog rows/toggles.
CHANGELOG
v2.7.0
- Fixed in world BeeHive tracking
- Added Tree tracking by request (default commented out)
- Added Ore/Tree pin removal when mined/chopped by request (default enabled)
- Added Minimap and Minimap Pin Resizing
v2.3.0 - Pin Identification Refactor
- Copy cfg and OneMapToRuleThemAll folder to location outside game directory
- Numerous Map declutter features
- Automatic image generator for target modded items without a sprite
- Bug Fixes
v2.0.3
- Previous stutter fix didn't make it in the build
- Relaxed restriction so client can run mod on a server without the mod or Vanilla. Shared Map is automatically disabled. Auto Pin and Radar are available
v2.0.2
- Fixed a regression potentially causing stutter with large object counts
- Changed 'Incompatible Version' to a more helpful message
v2.0.0 - Refactor
- Complete redesign of object universe
- Several new features and enhanced console commands
- Bug fixes
v1.2.14 - Bug Fixes
- Fixed Fish not receiving trackers: all credit to BROHEIM_CYBRP. https://thunderstore.io/c/valheim/p/BROHEIM_CYBRP/
- Fixed Beehive not displaying on radar. Add Beehive to the server location comma delimited lists and enable in the desired client locations (discovery and/or radar).
v1.2.10 - Bug Fix
- Fixed Fog Of War not updating properly on clients.
v1.2.8 - Performance and Bug Fixes
- Fixed a large duplicate pin bug (thank you roggz)...auto deduplicates existing explore files.
- Chunked initial message where enough pins would kick clients trying to connect.
- Added Server.Map option to disable Map sharing (requested).
- Numerous performance improvements.
v1.2.2 - Bug Fix
- Fixed duplicate pins being placed in some clusters.
v1.2.1 - Performance Tuning
- Additional performance tuning and options, not that it needed any but just to minimize FPS impact.
v1.2.0 - Radar & Map Improvements
- Fixed ghost pin text labels remaining on other clients after a pin is removed
- Critter radar pins now track and follow creature movement
- Added client-side critter cluster radius setting (0 = one pin per critter)
- Changing radar cluster settings now takes effect immediately without reconnecting
- Custom prefab files and creatures.txt moved to BepInEx/config/OneMapToRuleThemAll/ subfolder (auto-migrated)
- Fixed vanilla Valheim prefabs being incorrectly detected as mod prefabs
v1.1.0 - Various Updates
- Numerous optimizations and performance improvements with large pin count
- Bug fixes
- Configs consolidated into one config
- BETA feature for implementing other mod prefabs
v1.0.3 - Added Discord Link
v1.0.2 - Added CHANGELOG.md
- Second attempt at adding a CHANGELOG.md file
v1.0.1 - Bug Fixes
- Fixed an issue with save path on dedicated servers vs steam virtual path
- .explored file was not being created