Confirm with your password

RavenEye

For server owners. Restores the vanilla map, to listed admins only, on no-map worlds - with every player pinned, sharing or not. Inert for non-admins joining a server; a host or solo player gets the map on their own world.

· Website

Stars
1
Downloads
17
Version
0.2.2
Updated
Author
RavenIronStudios
Virus scan
✓ Scan successful
Runs on
Client & Server

Description

RavenEye

A Valheim mod by Raven Iron. Download on Hexium.

The vanilla map, for admins only, on a world that has none — with every player on it.

For server owners. On a world running the nomap modifier, the people listed in the server's adminlist.txt get the ordinary minimap and large map back, exactly as the game draws them, and on it the ordinary player pins — name and icon — for every player online, whether or not those players ever chose to share their position.

For anyone else joining a server, it does nothing. A host, or a player alone on a single-player world, is that world's admin and gets the map on it (see "If you host, or play solo" below). Nothing new is drawn. Remove it and the world is exactly what it was.

Early release. Seen working on a dedicated no-map server: the map appearing for an admin, another player's pin moving, the revoke when an admin is removed from the list, the client toggle. Also seen, hosting a no-map world alone: the map granted to the host as that world's authority. Not yet watched through: a dead player's marker holding for its three minutes; a second player on a listen-hosted world (their pin on the host's map, or an admin joining that host); and a host who made the world no-map by typing nomap, whose own character's map stays off until raveneye map on. If any of these misbehaves for you, raveneye status and the server log are the report to send.


What an admin sees

The map you already know. Your own exploration (the game records it even on a no-map world, so you see everywhere you have walked), your pins, the large map on M, the minimap in the corner — and a player pin for every other player online, moving as they move, on the same two-second cadence the game uses for shared positions. Names show on the large map when you zoom in, as they do for shared positions in vanilla.

A player who has died stays on the map for three minutes at the place they fell, with "(dead)" after their name — because on a world with no map, "help me find where I died" is the request an admin hears most.

Who is an admin

Whoever the server says. RavenEye reads the server's own adminlist.txt with the same check the game uses before it honours a remote console command, a kick or a ban. There is nothing to configure and no second list to keep in step. Add an ID and they have the map within a few seconds; remove it and the map is gone within a few seconds.

A client cannot ask for the map, cannot claim to be an admin, and never sends the server anything. The server sends the roster to each admin over that admin's own connection — the one channel no other client can address — so no other player can intercept or forge it.

Installing

Server: required. Nothing happens without it.

Admins' clients: required, to receive the roster and show the map. On a Gale-managed client the plugin folder is %APPDATA%\com.kesomannen.gale\valheim\profiles\<profile>\BepInEx\plugins\, not the Steam folder.

Everyone else: nothing needed. If your modpack installs RavenEye on every client anyway, it is inert for a player who joins someone else's server without being on its admin list — no map, no pins, no change of any kind. Hosting your own world or playing solo is different; see the next section.

Requires BepInExPack Valheim. Built against Valheim 1.0.16. On a game at 1.0 or newer you need 0.2.0 or later; 0.1.0 loses its raveneye console command there.

If you host, or play solo

With RavenEye installed, whoever runs the world gets the map on it. That includes a player hosting a world from their own game, and a player alone on a single-player world. The game treats the one running the world as its admin, and so does RavenEye. It makes no difference whether the world got its no-map rule from the "No map" setting when it was created or from the nomap command. (A host who typed nomap has also switched their own character's map off; see "The character's own nomap" below.)

So if RavenEye is in the profile you play a solo no-map run with, the minimap will be there. To keep that run map-less, set ShowMap = false in the client config, type raveneye map off in the console, or leave RavenEye out of that profile.

Playing honestly

An admin who wants to play their own no-map world the hard way sets ShowMap = false in the client config, or types raveneye map off in the console. The server keeps granting; the client declines. raveneye map on takes it back.

While RavenEye grants you the map, your trips to the world's edges do not count toward the game's no-map exploration achievement, even if your character's own nomap has the map hidden. With RavenEye's map switched off (ShowMap = false or raveneye map off), the game counts them as it normally would.

The character's own nomap

Vanilla's nomap console command does two things in one keystroke: it toggles a per- CHARACTER preference (keyed by the character's name, so it follows that character to every world and every server), and, when typed by a host, it sets the world's no-map key. The usual way to make a no-map world on a listen host is exactly that command — which means the host's own character is opted out, and no grant will show them a map until it is cleared. RavenEye respects that preference: it lifts the world's rule, never the character's. raveneye map on clears it for you, and raveneye status says so in words when it is the reason.

On a world that has a map

By default RavenEye does nothing there: players' share-position choice stands. Set RevealWhenMapEnabled = true on the server to also show admins the players who turned sharing off.

Seeing the terrain

RavenEye does not reveal the map itself — an admin's map starts with whatever that character has explored, and player pins are drawn over the fog. To see the whole world, use the game's own console: devcommands, then exploremap. It is one line, it already requires admin, and the game has no way to un-explore, so it is a choice we would rather you made deliberately than have made for you.

When the map does not appear

Type raveneye status. It says why, in words:

  • "no roster has arrived since this join" — this client is not on the server's adminlist.txt, or the server is not running RavenEye.
  • "the server revoked it Ns ago" — you were removed from the list, or the server's feature was switched off.
  • "stale — last roster Ns ago, past the grace" — the server stopped sending or stalled.
  • "Client.ShowMap is off" — you switched it off. raveneye map on.
  • "THIS CHARACTER'S OWN MAP IS OFF" — this character typed nomap. raveneye map on.
  • "server RavenEye v…" and a rejection naming a format version — the server and this client run different RavenEye versions. Update the older side.

Configuration

BepInEx/config/com.raveniron.raveneye.cfg. Every value says which side reads it.

Section Key Default
Server Enabled true the whole feature, on this world
Server IntervalSeconds 2 how often the roster goes out (0.5–5)
Server GraceSeconds 60 how long an admin keeps the map if the server goes silent; a demotion does not wait for this
Server DeathGraceSeconds 180 how long a dead player's last position stays on the map; 0 disables
Server RevealWhenMapEnabled false on a world with a map, also show players who hide their position
Server VerboseLogging false log every send (grants and revocations log regardless)
Client ShowMap true use the map when the server grants it

Console

raveneye status — role, grant, and in words why the map is or is not showing. raveneye roster — every player the roster carries (admins and hosts). raveneye map on|off — use, or refuse, the granted map on this client; on also clears the character's own nomap opt-out.

Two things it cannot promise

The map unlock is on the honour system. The game keeps its no-map rule in a single flag that any client mod can flip in one line, with or without RavenEye. What RavenEye actually protects is the roster: the positions of players who are not sharing them, which only the server can supply, and which it supplies to admins alone.

A pin is where the server last saw a player. That position is reported by the player's own game, roughly every two seconds. It is "where is everyone", not evidence for a moderation decision.

What it does not do

No UI of its own, no overlay, no list, no arrows. It never touches the environment, materials or textures, adds no prefabs, and writes nothing into the world or into any character's save. The roster carries a name, a character id, a position and a dead flag — and nothing else. It is not a cheat for players: a client with RavenEye and no admin entry receives nothing.

Compatibility

RavenEye patches three game decisions, all as postfixes that yield to any other mod (a fourth patch only registers the raveneye console, which is why the boot line reads patches=4): the game's own map-permission decision (Game.UpdateNoMap), the list of players to pin (ZNet.GetOtherPublicPlayers), and the game's check for the no-map exploration achievement (Achievements.IsCleanNoMap), which reads "no" while RavenEye grants you the map. It does not touch EnvMan, map rendering or world generation, so season and weather mods (Seasonality, Seasons) are unaffected. A mod that unlocks the map for everyone makes RavenEye's unlock redundant; the pins still work.

One vanilla behaviour changes for a granted admin exactly as it would on a map world: reading a Vegvisir pins the location and opens the map, instead of turning your head toward it.

Cairn and RavenEye are complementary: Cairn is for players finding their way on a world with no map; RavenEye is for the person on duty.

RavenEye shares a name's worth of family resemblance with The Raven's Call and nothing else: no code, no data, no connection between them. One shows admins where people are right now; the other keeps a server's chronicle.


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.2.2 Latest

Updated due to 1.0.16 Patch.

0.2.1

Two fixes and a README correction, plus the housekeeping listed under "Also in this release". Who gets the map, the roster, the admin gate and the death grace work as before. The 0.2.1 DLL was built from the commit tagged v0.2.1; the GitHub release (https://github.com/RavenIron-Games/RavenEye/releases/tag/v0.2.1) names that commit and gives the DLL's md5.

  • No no-map achievement progress while RavenEye grants you the map. The game decides that you are exploring without a map from the world's no-map setting alone, and RavenEye leaves that setting in place. So an admin, a host or a solo player sailing to the world's edges with RavenEye's map up was counted toward the game's no-map exploration achievement. RavenEye now tells the game that trip does not count while RavenEye grants you the map, even if your character's own nomap has it hidden. With RavenEye's map switched off (ShowMap = false or raveneye map off), the game counts as it always did.
  • One broken patch no longer takes the whole mod down. If a future Valheim update renames or removes one of the game methods RavenEye hooks, only that hook stops working and the rest carries on. The BepInEx log names the part that could not load. Before, the whole mod stopped at start-up. This does not cover every change an update can make: if one renames or removes a whole game class that the rest of RavenEye also uses, a game method RavenEye calls rather than hooks, or a game field it reads or writes, more than that one part can stop working. (Corrected in 0.2.2.)
  • README correction: a host or solo player gets the map on their own world. The README said RavenEye does nothing for a player who is not on an admin list. That is only true for a player who joins someone else's server. Whoever runs the world is its admin, so a player hosting from their own game, or alone on a single-player no-map world, gets the map with RavenEye installed. To keep a solo no-map run map-less, set ShowMap = false, type raveneye map off, or leave RavenEye out of that profile.

Also in this release:

  • The DLL no longer carries the build machine's folder path. Every earlier build embedded the absolute path of its debug-symbols file, a path that included the build machine's user name. The build now maps its source folders to a neutral placeholder, so the shipped DLL names no local path.
  • A "Support Raven Iron" section in the README, with the Raven Iron website, Patreon and Discord links. Every Raven Iron mod is free and stays free; nothing is held back for patrons.
  • The store page's link now goes to the Raven Iron website; under 0.2.0 it was the Source link to the GitHub repository, which stays at https://github.com/RavenIron-Games/RavenEye.
  • Built against Valheim 1.0.15.

Tested in game on 2026-09-24, on the same code as this release (commit e189400; only documents and the store page's website link changed after it) — DLL md5 485fe614040d9953e2ae3e1de4950a5f, 43,008 bytes — on a Valheim 1.0.15 dedicated server (crossplay) with one client, and on a local no-map world played as its host. Boot on both sides showed patches=4, nothing FAILED. On the local no-map world, played as host, the map was granted to the host at the start; while it was granted, a trip to the world's edge counted ExploreWest and never ExploreWestNoMap (the game's own stat lines): the achievement guard held. With raveneye map off the same trip counted ExploreWestNoMap as it always did, and raveneye map on granted the map again. Joining the dedicated server's own world, which has a map, correctly granted nothing and left the map as the game set it. Not tried in game: a dead player's pin holding for its full three minutes; a second player's pin on a listen host's map (this run saw the host granted as authority, not a second player joining that host); the achievement guard seen as an admin client on a dedicated no-map server rather than as the host (the server used for this run has a map); the guard with the character's own nomap hiding the map (there the credit is withheld either way, because the grant check does not read that setting); a host who made the world no-map by typing nomap (their own character's map is then off until raveneye map on; this run's world was not made that way); the platform achievement itself (the guard withholds the four Explore…NoMap stats; that these are what the game's no-map achievement counts is read from their names, not from the game's achievement data); and a forced patch-install failure, which cannot be forced without changing the code (7 off-game tests cover the rule; patches=4 with nothing FAILED is the regression check in game). Every in-game reading in this paragraph comes from the BepInEx and game log lines; only the raveneye status replies, which do not reach the client log, were read on screen. Off-game: 154 checks, 0 failed.

0.2.0

Valheim 1.0. If you updated the game, 0.1.0 was broken and this is the fix.

  • Rebuilt for Valheim 1.0.12. Nothing about the map, the roster, the admin gate or the death grace changed. The game did: 1.0.7 added a parameter to Terminal.ConsoleCommand's constructor, and .NET binds a call like that by its exact signature at runtime, so the raveneye console registration in the 0.1.0 binary threw MissingMethodException on a 1.0.x game. Losing that command matters more here than in most mods — it is the instrument that tells an admin why the map is or is not showing, and "the map did not appear" has at least eight causes with one symptom.
  • Source link fixed. The repository moved to the RavenIron-Games organisation, so the "Source" link on this page pointed at a URL that no longer resolves.
  • Why 0.1.0 looked healthy. It compiled clean against 1.0.7 the day the update landed. A clean build proves the source matches today's game — it says nothing about a DLL built weeks earlier. The break was found by reading the shipped binary's own reference table and resolving each entry against the live game assemblies.

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 RavenEye

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

Download RavenEye 0.2.2

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