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.ποΈ RavenEye
The world has no map. The raven does not need one. It sees every fire, every footprint, every fallen warrior, and it tells only those who keep the hall.
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 on the server's adminlist.txt get the ordinary minimap and large map back, exactly as the game draws them, with a pin for every player online, whether or not those players ever chose to share their position.
For anyone else joining a server, it does nothing. Nothing new is drawn, and if you remove it the world is exactly what it was.
A Valheim mod by Raven Iron.
This version is the Valheim 1.0.16 build. Nothing else is new.
| You | It |
|---|---|
| run it on Valheim 1.0.21 | its references into the game check clean against the 1.0.21 client and dedicated server; it has not yet been played on 1.0.21 |
| If⦠| Then⦠| |
|---|---|---|
| π₯οΈ | you run the server | install it on the server. Nothing happens without it. |
| π‘οΈ | you are an admin | install it on your client too, to receive the roster and show the map. |
| π | you host a world from your own game, or play solo with it installed | you are that world's admin, so you get the map. To keep a no-map run map-less, set ShowMap = false, type raveneye map off, or leave RavenEye out of that profile. |
| π§ | you made the world no-map by typing nomap |
that command also switched your own character's map off. raveneye map on clears it. |
| π§ͺ | you are installing an early release | seen working on a dedicated no-map server and on a solo no-map world. Not yet watched through: a dead player's marker holding for its full time, a second player on a listen-hosted world, and a host whose own nomap is still on. If one misbehaves, send raveneye status and the server log. |
The map you already know, with everyone on it.
| πΊοΈ Your own map | everywhere this character has walked (the game records it even on a no-map world), your pins, the large map on M, the minimap in the corner |
| π A pin per player | every other player online, moving as they move on the game's own shared-position cadence; names show when you zoom in on the large map |
| π The fallen | a player who died stays on the map where they fell for three minutes, marked "(dead)", because "help me find where I died" is the request an admin hears most |
| π Worlds with a map | nothing changes by default; players' share-position choice stands. RevealWhenMapEnabled also shows admins the players who turned sharing off. |
π Read the saga β why it does not reveal 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 and it already requires admin. The game has no way to un-explore, so that is a choice we would rather you made deliberately than have made for you.
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.
Whoever the server says. There is nothing to configure.
| π The server's own list | RavenEye reads adminlist.txt with the same check the game uses before it honours a remote console command, a kick or a ban |
| β±οΈ Seconds, not restarts | add an ID and they have the map within a few seconds; remove it and the map is gone within a few seconds |
| π Nothing to forge | a client cannot ask for the map, cannot claim to be an admin, and never sends the server anything |
π Read the saga β how the roster travels, and what it cannot promise
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. The roster carries a name, a character id, a position and a dead flag, and nothing else.
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 answers "where is everyone", and it is not evidence for a moderation decision.
Whoever runs the world gets the map on it, and any admin can turn it down.
| π Hosts and solo players | the game treats the one running the world as its admin, and so does RavenEye, whether the world got its no-map rule from the "No map" setting or from the nomap command |
| βοΈ Playing it the hard way | ShowMap = false in the client config, or raveneye map off. The server keeps granting; your client declines. raveneye map on takes it back. |
| π The no-map achievement | while RavenEye grants you the map, trips to the world's edges do not count toward it, even if your character's own nomap hides the map. With RavenEye's map switched off, the game counts them as it normally would. |
π Read the saga β 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 a host types it, it sets the world's no-map rule. 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.
First ten minutes: install on the server β install on each admin's client β put the admins' IDs in adminlist.txt β join a no-map world β the map is there.
| Command | |
|---|---|
raveneye status |
your role, the grant, and in words why the map is or is not showing |
raveneye roster |
every player the roster carries |
raveneye map on / off |
use, or refuse, the granted map on this client; on also clears the character's own nomap |
π οΈ When the map does not appear
Type raveneye status. It says why, in words:
| It says | Meaning |
|---|---|
| "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 switched the feature 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 |
π οΈ Installing with Gale
On a Gale-managed client the plugin folder is %APPDATA%\com.kesomannen.gale\valheim\profiles\<profile>\BepInEx\plugins\, not the Steam folder.
| Works with vanilla | Needs it on the server | Needs it on both ends |
|---|---|---|
| players who are not admins: nothing to install; if a modpack installs it anyway, it is inert for them on someone else's server | sending the roster; the admin check | an admin's map and pins |
Version matching: the server and each admin's client must run the same RavenEye version. A mismatch shows in raveneye status as a rejection naming the format version.
| Mod | How they get on |
|---|---|
| Mods that unlock the map for everyone | RavenEye's unlock becomes redundant; the pins still work |
| Season and weather mods (Seasonality, Seasons) | unaffected: RavenEye does not touch the environment, map rendering or world generation |
| Cairn (Raven Iron) | complementary: Cairn is for players finding their way on a world with no map; RavenEye is for the person on duty |
| The Raven's Call (Raven Iron) | unrelated apart from the name: no shared code or data. One shows admins where people are now; the other keeps a server's chronicle. |
| Everything else | RavenEye's patches are postfixes that yield to any other mod. It adds no prefabs, no UI and no overlay, and writes nothing into the world or any character's save. |
π Server β set on the server (dedicated or listen host); read there only
| Section | Setting | What it does |
|---|---|---|
| Server | Enabled |
the whole feature, on this world (default on) |
| Server | IntervalSeconds |
how often the roster goes out, 0.5 to 5 seconds (default 2) |
| Server | GraceSeconds |
how long an admin keeps the map if the server goes silent; a demotion does not wait for this (default 60) |
| Server | DeathGraceSeconds |
how long a dead player's last position stays on the map; 0 turns it off (default 180) |
| Server | RevealWhenMapEnabled |
on a world with a map, also show admins the players who hide their position (default off) |
| Server | VerboseLogging |
log every send; grants and revocations are logged regardless (default off) |
π₯οΈ Local β each admin's own client
| Section | Settings |
|---|---|
| Client | ShowMap: use the map when the server grants it (default on) |
Needs: BepInExPack Valheim Β· Also on Hexium
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:
| π Website | https://ravenirongames.com/ |
| β€οΈ Patreon | https://www.patreon.com/cw/RavenIronGames |
| π¬ Discord | https://discord.gg/AGKDEurAVa: a channel per mod, and where the testing happens |
A Valheim mod by Raven Iron.
