Longhouse

Varda

Dungeon entrances and portals pin themselves once you have used them.

  1. Why
  2. What it actually does
  3. These are ordinary pins
  4. A pin already there is left alone
  5. Icons
  6. Installing
  7. Settings
  8. Multiplayer
  9. Bugs and ideas
  10. Licence

Dungeons pin themselves on your map when you go in. Portals you build pin themselves with the tag you gave them.

Why

A varða is a cairn: a stack of stones somebody left beside a route so the next person could find it again. It marks where people have been. It does not point at anything nobody has found yet, and that distinction is the entire design of this mod.

Every map mod arrives, sooner or later, at pinning ore. It is the most requested feature and it is the one that quietly ends the game it is installed in: a detector tells you where something is that you have not discovered, and the part of Valheim that was exploring becomes the part that is reading a list. Silver is the clearest case. Finding it is a mountain, a wishbone, a night out in the cold and a real chance of dying, and all of that collapses the moment the map knows.

What Varda pins is memory, not discovery. You walked into that crypt at dusk and came out somewhere else entirely. You built that portal and tagged it mine. Neither pin tells you a single thing you did not already know. It saves you opening the map, holding the mouse still and typing a name, thirty times an evening, while something is chewing on you.

Which is also why the trigger is going in and not walking past. A pin for every cave mouth within sight of the road is a detector with extra steps, and "I have been down there" and "there is a door over there" are different facts about the world.

What it actually does

Two things.

A dungeon pins itself the moment you step through the door. Burial chambers, troll caves, sunken crypts, frost caves, mines, anything the game moves you into. The pin wears Varda's own dungeon icon and no label, because the icon already says what it is. Turn NameDungeons on and it carries the dungeon's own name as well, the one on the banner you see as you go in, so a modded dungeon is labelled correctly without this mod knowing anything about it. Coming back out does not add a second pin, and neither does going back in next week.

A portal you built pins itself with its tag, and the pin follows the tag when you change it. Every portal gets a pin of its own, so a hub of portals built side by side shows each one under its own tag. Portals somebody else built are never pinned: that is their network, and putting it on your map is reading their notes rather than writing your own.

When the portal goes, its pin goes with it. Take it down with the hammer, lose it to a troll, or have somebody else break it, and the pin comes off your map. Walking away from a portal is not the same thing and never counts. If it went while you were not there, say while you were offline or on the other side of the world, the pin can stay until you are next standing near that spot. Once the area around you has finished loading and there is still no portal of yours there, the pin comes off then. Only the pin Varda put on that portal is taken. Break one portal in a row and the pins on the others stay, as does a pin you placed beside it by hand and any dungeon pin. RemoveDestroyedPortals in the settings turns this off, if you would rather keep a mark where a portal used to be.

One portal can be kept off your map. Look at a portal you built and press H: its pin comes off and stays off. Press H again while looking at it and the pin comes back, with its tag. The portal's hover text says which the key will do, under the line for setting its tag. It is yours alone, remembered per character, per world and per portal. Nobody else's map changes, the portal itself is untouched, and a pin you placed by hand is never touched. While RemoveDestroyedPortals is on, a destroyed portal is forgotten along with the fact that you hid it, at once if you are there and otherwise the next time you stand near that spot, so a new portal built in its place gets a pin. With it off, the choice stays with the spot, and a new portal built exactly there starts hidden. The key is HidePortalKey in the settings. Setting it to None takes away the key and its line on the portal, but a portal you had already hidden stays off your map until you bind a key again and press it on that portal. It is not Shift+E because another of my mods already uses that on portals.

These are ordinary pins

Worth knowing before you install, because it is what happens when you uninstall.

A Varda pin is a real map pin. You can rename it, tick it off, filter it with the buttons along the top of the map, and delete it. It is written into your map save with all the others, and it is the same kind of pin you would have placed by hand. The mod only paints its own picture on top of it.

That is deliberate. Valheim saves a pin as a name, a position and its type as a plain number, and a number it does not recognise comes back as the plain marker. A mod that invented its own pin type would leave all of its pins looking the same the first time the game loads without it, crypts and portals alike, and filed under the plain marker's filter button. Varda saves a portal as the game's own portal pin, so uninstalling it costs you the pictures it paints and nothing else.

The one thing that is stored outside the map is which pins are Varda's, so their icons can be put back after a reload, and so a destroyed portal takes only its own pin with it. The portals you hid are written down there too. It is a small text file per character per world, in BepInEx/config/Varda/. Deleting it loses the pictures and no pins, though pins made before then stay put when their portal goes, and a portal you hid gets its pin back.

A pin already there is left alone

If there is any pin within a few metres of a dungeon door, Varda adds nothing, whoever put it there. So a spot you have already marked by hand stays exactly as you marked it, with your name on it, and re-entering does not stack a second pin on top of the first. That distance is MergeRadius, 8 metres.

Portals keep the same rule over a much shorter distance, PortalMergeRadius, one metre. Portals are built side by side a few metres apart, and at 8 metres one pin you had placed in the middle of a row would leave every portal around it without a pin of its own. So a portal only goes without one when another pin sits right on top of it, and the pins Varda put on your other portals never count. A metre is also what the game itself treats as the same spot for a pin, when it merges a map from a cartography table. If you pinned your portals by hand before installing Varda and your pins sit a little off, you get Varda's beside yours. Delete your own, since Varda's follows the tag, or raise the setting.

Icons

Dungeon and portal pins can each wear a PNG dropped beside Varda.dll, and dungeon pins ship with one, dungeon.png. If there is no file, Varda looks for a crypt icon the game already carries, finds none in Valheim 1.0, and the pin falls back to the plain one. None of that is an error and none of it stops the mod working. An icon is the part you can change without a rebuild, which is the point of it being a file.

Installing

Needs BepInEx. Nothing else. Through a mod manager it is one install. By hand, put Varda.dll in BepInEx/plugins/Varda/.

Then start the game once and quit. That first run writes the config file. It does not exist before the mod has loaded, which is the usual reason people think it is broken.

Settings

The file is BepInEx/config/ezomic.valheim.varda.cfg. Open it in any text editor. Every setting has a comment above it, so the file explains itself.

Note that changing a default in a new version does nothing on a machine that has already run the mod. BepInEx writes every entry on first run and the saved value wins.

Multiplayer

Nobody else needs it. Purely local and purely visual: it reads the world you are already being sent and writes to your own map file. A server does not know it is there, and neither does anybody playing beside you.

If Core is installed, this mod registers with its version gate so a mismatch is reported rather than discovered later. Every setting here is marked as yours: a host running Varda does not get to decide what is on your personal map.

Bugs and ideas

Both go to the site. longhouse.thijssensoftware.nl/bugs is for anything broken, and longhouse.thijssensoftware.nl/ideas is for what a mod should do next. You can vote on other people's ideas there as well.

Signing in takes a Steam or Discord account. I work from that list, so the votes decide what I pick up next.

Licence

MIT. See LICENSE.

Changelog

1.0.0 in Longhouse

First release.

Dungeons pin themselves when you go in, portals you built pin themselves with their tag. Both are ordinary vanilla pins wearing a supplied picture, so uninstalling costs you an icon rather than the pin. A custom pin type would come back as the plain marker for anyone without the mod, every one of them alike.

Every portal gets a pin of its own, so a row of tagged portals side by side shows every tag. A destroyed portal takes its pin with it: at once if you are there, otherwise by the next time you are. Look at a portal you built and press H to take its pin off your map, and again to put it back. That only changes your own map.

The dungeon pin has its own art, drawn by tools/icons_build.py and loaded from beside the DLL. It is a stone arch with steps going down into the dark, from a reference Robbin supplied after fourteen shapes that did not work. Every one of those came out a horseshoe, because punching an opening to the bottom edge splits the mass into two legs. The steps sit in the bottom of the opening and join the jambs across it.

Settled by running it, none of it readable any other way:

  • The five hand-placed pin types are Icon0 fire, Icon1 house, Icon2 hammer, Icon3 plain marker, Icon4 portal. They are serialised on the Minimap prefab inside a bundle, so they are in neither the assemblies nor the asset manifest. DumpIcons writes the whole UI atlas out and logs each sprite's rect, which is how they were read.
  • The dungeon default moved from Icon2 to Icon3. The hammer is what players already use to mark a mine, so a dungeon on Icon2 would look like somebody's own mining pin and hide with it whenever that filter row was switched off.
  • PortalIcon is empty by default. Icon4 already wears the game's own portal icon.
  • There is no crypt sprite to borrow. m_locationIcons carries five entries, being the start temple, trader, Hildir's camp, Bog Witch camp and ancient upgrade station. The donor list inherited from Delve matches none of them.

Run in game before release with Devkit scenarios for the dungeon pin, portal pins, a row of four portals, a broken portal losing its pin, and the H key, which was also tried by hand. Not run on a server, where a portal broken while you were away only loses its pin once the area around you has finished loading.

NameDungeons is off. The icon says what the thing is. Turn it on to tell two crypts apart without opening them.

Every setting · 14

All of it lives in one file, written on first run with each description beside its default. The file is the source of truth; edit it there.

BepInEx/config/ezomic.valheim.varda.cfg

server On a server, the host's value applies to everyone while they are connected; your own file is left alone and counts again when you leave. yours Keys and personal settings stay as you set them, on any server.

Varda 14
SettingWhat it doesDefaultWhose
Enabled Off leaves the plugin loaded and stops it adding anything to the map. Pins already on the map stay - they are ordinary map pins and nothing removes them but you. true yours
Dungeons Pin a burial chamber, cave, crypt or mine when you GO IN. Walking past the door does nothing - the pin is a record of where you have been, never a hint about where something is. true yours
Portals Pin portals you built, labelled with whatever you tagged them. Portals built by other players are never pinned; you would be reading their map. true yours
RemoveDestroyedPortals Take a portal's pin off your map when that portal is destroyed, by your hammer, by damage or by anybody else. If it went while you were far away, the pin comes off the next time you stand near where it was, once the area has finished loading. Walking out of sight of a portal never counts. Only pins Varda put on portals you built: a pin you placed by hand is never touched, and neither is a dungeon pin. A portal you hid with HidePortalKey is forgotten the same way, so a new portal built on its spot gets a pin. Does nothing while Portals is off. true yours
HidePortalKey Look at a portal you built and press this to take its pin off your map, and press it again to put the pin back. The portal's hover text names the key and says which it will do. It is yours alone: nobody else's map changes and the portal itself is untouched, and it is remembered per character, per world and per portal. A pin you placed by hand is never touched. H because neither the game nor any of this author's other mods binds it; Shift+E would have been the natural gesture, but Skra's portal settings already use it. None takes away the key and its hover line, but a portal you already hid stays hidden until you bind a key again and press it on that portal. Does nothing while Portals is off. H yours
NameDungeons Put the dungeon's own name under its pin - the same name the banner shows as you go in. Off, because the icon already says what it is. On is worth it if you want to tell two crypts apart without opening them. false yours
DungeonPinType Which of the five hand-placed pin types a dungeon pin is saved as. This is what it turns into if you uninstall Varda, and which filter row hides it. The five are Icon0 fire, Icon1 house, Icon2 hammer, Icon3 plain marker, Icon4 portal. Minimap.PinType.Icon3 yours
PortalPinType The same, for portal pins. Icon4 is the game's own portal icon, which is already the right picture - there is no reason to change this one. Minimap.PinType.Icon4 yours
DungeonIcon PNG beside Varda.dll to draw dungeon pins with. Missing file, or empty, falls back to a crypt icon borrowed from the game's own map, which Valheim 1.0 does not carry, so in practice to the plain pin above. Nothing here is ever fatal. dungeon.png yours
PortalIcon PNG beside Varda.dll to draw portal pins with. Empty by default because PortalPinType is already the game's portal icon, which is the right picture. Only worth setting if you want portals to stand out from the ones you pin by hand. (empty) yours
MergeRadius Metres, for dungeons. A dungeon pin is not added when a pin already sits this close to the door, whoever put it there. So re-entering a crypt does not stack pins, and a pin you placed by hand on the door is left alone rather than doubled. Portals have their own setting, PortalMergeRadius. 8 yours
PortalMergeRadius Metres, for portals. A portal of yours gets no pin of its own while another pin already sits this close to it, such as one you placed on it by hand, so the two are not doubled. The pins Varda put on your other portals never count, so portals built side by side each keep their own. One metre is what the game itself treats as the same spot for a pin, and in an ordinary row, with portals a few metres apart, a pin that close stands in only for the portal it is on. Raising it respects hand pins placed less exactly, but keep it under half the gap between your portals, or one pin will leave its neighbours without theirs. 1 yours
DumpIcons Write the game's own map pin art to BepInEx/config/Varda/icons/ once, and log where each pin's picture sits on the sheet. For drawing an icon that matches; turn it off again afterwards. It writes whole sheets, not cropped pins, because cropping needs a vertical flip that is easy to get silently wrong. false yours
Verbose Write every pin added, every icon resolved and the name of every sprite the map carries to BepInEx/LogOutput.log. The sprite list is how you find out which PinType wears which icon, which is asset data and not readable anywhere else. false yours

Discussion

Nothing said yet.

Sign in or make an account to join in.