Confirm with your password

Cairn

Stack stones on a headland and they burn. A trail of cairns you build yourself, lit and remembered, on a world with no map. No HUD, no markers, no new pieces.

Client & Server Valheim 1.0 Visuals

· Website

Stars
0
Downloads
56
Version
0.9.1
Updated
Author
RavenIronStudios
Virus scan
✓ Scan successful
Runs on
Client & Server

Description

Cairn

A Valheim mod by Raven Iron.

Stack stones on a headland and they burn.

On a world with no map, knowing where you are is knowledge — and it lives in players' heads and in screenshots pasted into Discord. Cairn moves it into the world, where it can be built, found, lit, and lost.

It adds no pieces, no assets, and nothing to your screen.


Building a cairn

Stack four stones. Placeable_Stone is a vanilla Hoe piece costing one stone each, so a cairn is four stone and a minute's work. Pile them within four metres of each other; spread them out and it stays a scatter, because a cairn is narrow and a wall is wide, and that is how the mod tells them apart.

It lights itself. Within about twenty seconds a fire appears on the crown, and it can be seen from hundreds of metres away.

Name it, if you want. Put a sign within six metres and write on it, and the place has a name. A cairn with no sign is still a lit waymark — plenty of them should be.

Every one looks different because you built it, and uninstalling the mod leaves exactly what it appears to be: a pile of rocks with a sign on it.

The light

It holds its size at distance rather than shrinking away — a fire on a far headland reads as a point of light the way a real one does, not as something that gets small until it is gone.

And it is hidden by terrain. A ridge between you and a cairn puts it out, so you have to move to see it. That is the difference between navigating and being told, and it is the reason this is a beacon and not a marker.

Colour is yours: BeaconColour takes hex — 4A9EFF for cold blue, 7CFF7C for something stranger. The default is firelight.

The raven

Stand at a named cairn and Hugin may land and say its name.

He is fussy, and deliberately so — vanilla will not land the bird below 30 metres of altitude, with anything hostile within ten metres, during a world event, or while tutorials are turned off in the game settings. So he is silent exactly when you would most want him, which is why nothing in the mod depends on him. He is a grace note, not a compass. cairn raven shows most of what keeps him away: the tutorials setting, your altitude, and how far the nearest named cairn is.

What it does not do

No map. No compass. No waypoints, no markers, no pins, no arrows, no HUD, no readout of any kind. If you learn where you are, you learn it by looking at the world.

It adds no prefabs — a cairn is recognised, never provided — ships no assets, and leaves vanilla recipes alone.

Installing

Install on the server and the clients. One DLL does all three roles: a dedicated server sweeps the world and owns the ledger, a client draws the lights and carries the raven's line, a listen host does both.

Requires BepInExPack Valheim.

Landmarks are stored per world, beside the save, in a plain text file you can read.

Configuration

Everything is in BepInEx/config/com.raveniron.cairn.cfg, and every value carries a note explaining what it costs. The ones most worth knowing:

PileMinPieces how many stones make a cairn (4) — raise it if decorative stones start lighting up
PileMaxExtentMeters the footprint that separates a waymark from a building (4m)
LandmarkPairMeters how far a sign may stand from the cairn it names (6m)
BeaconColour hex, RRGGBB
BeaconMaxDistanceMeters how far a light carries (800m)
BeaconOcclusion terrain hides beacons. Leave this on.
LandmarkRotationSeconds how quickly a new cairn is noticed (20s)
EnableRavenVoice the bird

Console

cairn status · landmarks · beacons · raven · prefabs <text> · pieces <text> · save

Each reports state rather than verdicts — beacons says whether a light is out of range or hidden behind a hill, raven shows the tutorials setting, your altitude and how far the nearest named cairn is. They exist because guessing at each of those cost an afternoon.

Compatibility

Nothing is patched that another mod is likely to want. Environment and weather are read-only, so the season mods are untouched; no prefab is added, so no save is at risk; and nothing is written to Minimap, so a map mod and this one simply ignore each other — though running both does rather blunt the point.


Design document — the reasoning behind every decision, including the ones that were wrong: https://claude.ai/code/artifact/a04abbae-14d5-4a21-9bdc-032e91da0936


Support Raven Iron

Every Raven Iron mod is free, and stays free — all of it, always. Nothing is held back for patrons, and nothing ever will be.

If you'd like to help cover server hosting and test hardware:

Changelog

0.9.1 Latest

Updated due to 1.0.16 Patch.

0.9.0

Bug fixes. No new feature, no config key added or removed, the same ledger file format, and the same Valheim requirement as 0.8.0. Install it on the server and on every player's game, as before.

  • Leaving a world now properly leaves it. Until now nothing was reset when you logged out, so the first world you played carried into the next one until the game was restarted:
    • Play single-player, then join a server: you saw your single-player world's lights at those coordinates, never the server's real beacons, and the raven spoke single-player names.
    • Host one world, then another: the second world's ledger was not loaded, and the first world's cairns could be written into the second world's ledger file, replacing its history.
    • The ledger is now saved when a world ends, and everything is cleared before the next one starts.
  • Only the server can send beacons. A modified client could previously push fake beacons, or any text for the raven, to every player on a server. The server now drops such pushes, so this needs the server updated to 0.9.0. Players' games also ignore pushes that do not claim to come from the server, as an extra check.
  • Two cairns beside one sign both light. When two cairns stood within reach of the same named sign, they merged into one landmark: only one of them ever lit, and the ledger was rewritten every minute. Each sign now names at most one cairn, the closest pairs first. The other stays lit, either unnamed or named by another sign within reach, and on an existing world it shows up once as a new landmark.
  • A small memory leak is fixed: each beacon that went out (a cairn taken down, or beacons switched off) left a little memory behind until the game was closed.
  • cairn raven now says when tutorials are turned off in the game settings. The raven does not land to say a name while they are off.
  • StonePileStoneCost is described correctly. It only affects the game of the player who sets it; setting it on a dedicated server changes nothing for players. The behaviour is unchanged, only the description.
  • The DLL no longer carries the build machine's folder path. Every release through 0.8.0 embedded an absolute build path, which included the build machine's user name, in the DLL's debug information. The build now records a neutral placeholder path instead.
  • The build no longer depends on the folder it is built in. Two builds of the same commit, from Windows clones with Git's default line endings and the same .NET SDK, produce the same bytes. This DLL was built from the commit tagged v0.9.0; the GitHub release names that commit and gives the DLL's md5.
  • The README has a Support Raven Iron section: the website, the Patreon and a permanent Discord invite. Every Raven Iron mod is free and stays free; nothing is held back for patrons.
  • The store page's website link now goes to the Raven Iron website instead of the GitHub repo.

Tested in game on 2026-09-24, on the same code as this release (commit 802c368; only documents and the store page's website link changed after it): a Valheim 1.0.15 dedicated server (crossplay) plus three single-player/hosted worlds in turn, with one client throughout. Leaving a world and coming back worked as designed — a second local world loaded with none of the first world's landmarks, returning to the first re-loaded all of them, and joining the dedicated server as a client showed no local landmarks and ledger : not on this process. The ledger was saved when the server stopped mid-run: the landmark's last-seen time was 12 s before the stop and its first-seen time was unchanged. Renaming a sign worked, and toggling beacons off and on worked on screen. Building two cairns beside one sign: both lit, only one took the sign's name, and the rotation settled at zero changed — but the sign stood about 3.1 m from one pile and 3.3 m from the other, so which cairn is nearer was not clearly demonstrated, and the sweep's stone count also dropped once (86 to 82) for a reason not in the logs. With tutorials off in the game settings, cairn raven reported them off. The raven then kept away, and landed and spoke a name once tutorials were back on; that part was seen on screen only, not in the logs. The second cairn raven (which should read tutorials : on) was not typed in this run; that reading was seen changing from OFF to on in an earlier session the same day, on the same DLL. Cairn logged no error or warning on either side, and none of the lines that would mean a beacon push was dropped or ignored, a receive failed, or a sweep tick threw appeared.

Not tried in game: mixed versions (0.8.x on the server and 0.9.0 on players' games, or the reverse), since both sides ran 0.9.0; a second named sign within 6 m of the cairn that lost the pairing to the other sign; a beacon push spoofed from a hostile client (the guard's only evidence is that normal pushes were never dropped); the memory-leak fix itself (the beacon toggle was checked on screen only); a targeted test of the check that skips a sweep while the game shuts down; the landmark list and raven commands on the dedicated-server client session, which were not typed there; and a clean exit at the final server stop, whose log ends before any mod's stop line (the ledger file was written at that stop). Off-game: 206/206.

0.8.0
  • Valheim 1.0.7 support. This release REQUIRES it, and does not run on 0.2x. The 1.0 release deleted World.GetWorldSavePath, which is how the landmark ledger found its file — a clean compile and a mod that could not save. It now resolves through SaveSystem.GetWorldsSaveRootPath, the same method rehoused, so your existing cairn_landmarks_*.dat is found exactly where it was. Nothing to migrate.
  • The singleton reader now also recognises s_instance, the name Valheim 1.0.7 gave ZoneSystem's backing field. It already coped by falling through to the public property; this makes that deliberate rather than lucky.
  • No gameplay or config change. Same sweeps, same beacons, same defaults.

1 older entry, full version history & downloads →

Manual installation instructions
1

Install BepInExPack Valheim

BepInExPack Valheim is required to run mods in Valheim.

Download BepInExPack Valheim 5.4.2351 · View mod page

Check out the mod page for detailed installation instructions.

2

Install Cairn

This mod must be installed on both the client and the server.

Download Cairn 0.9.1

Extract the ZIP and place the file(s) into the BepInEx/plugins/ folder inside your Valheim game folder.