A Valheim dedicated server has no config file and no permissions system - just three plain text files in its save directory. adminlist.txt says who may kick, ban and save. bannedlist.txt says who may not connect. permittedlist.txt, if it has anything in it, names the only people allowed to connect. Each file holds one player ID per line: a bare 17-digit SteamID64 on a Steam-only server, or a platform-prefixed ID such as Steam_76561198012345678 or Xbox_2535412345678901 on a crossplay server. Lines beginning with // are comments. That is the whole system, and almost every problem with it is a wrong ID or the wrong file.
This post covers where the files are, the ID formats, how to find a player's ID reliably, when changes apply, and how to run a private allow-list server without locking yourself out. The commands an admin can use once listed are in the companion post, Valheim admin console commands.
What each file does#
| File | Effect | Empty means |
|---|---|---|
adminlist.txt | Listed IDs can use admin commands: kick, ban, unban, save | No admins |
bannedlist.txt | Listed IDs are refused at connection | Nobody banned |
permittedlist.txt | Only listed IDs may connect | Everyone with the password may connect |
The asymmetry in the last column is the thing to remember. An empty ban list bans nobody and an empty admin list makes nobody admin, but an empty permitted list does not lock everybody out - it switches the allow list off. The moment a single ID is in permittedlist.txt, the server becomes allow-list only, for everyone.
What the files do not do:
- No ranks. An admin is an admin. There is no moderator level that can kick but not ban.
- No cheats. Being in
adminlist.txtdoes not unlockdevcommands,spawnorgodon a vanilla dedicated server. That takes a mod; see ServerDevcommands. - No ward bypass. An admin cannot open someone else's warded door because they are admin. Wards are a separate system, covered in Valheim wards and griefing.
- No IP bans in the file you expect. The
bancommand accepts a name, IP or ID, but the IDs are what you should rely on. IP addresses change; IDs do not.
Where the files live#
The three files are created by the server on its first start, in the save directory beside the worlds_local folder - not in the server's install folder. That trips up nearly everyone who looks for them next to valheim_server.x86_64.
| Platform | Default save directory |
|---|---|
| Linux | ~/.config/unity3d/IronGate/Valheim/ for the user running the server |
| Windows | %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\ |
Any, with -savedir | The directory given to -savedir |
| Docker images, hosted panels | Wherever the image or panel maps the save directory |
If the server runs with -savedir /srv/valheim/data, the lists are in /srv/valheim/data, not in the default location. Two copies of the files - one in the default path from an earlier test, one under -savedir - is a common source of "I added myself and nothing happened". Check the server's start line for -savedir, and edit the files in that directory. Valheim savedir and file locations maps out every folder in detail.
A freshly created file contains only a comment line:
// List admin players ID ONE per lineThe other two have the same header with "banned" and "permitted". Leave the comment, and add IDs on the lines below.
Steam IDs and platform-prefixed IDs#
The ID format depends on how the server was started.
Steam-only server (no -crossplay): players are identified by their SteamID64, the 17-digit number starting 7656119. Not the profile name, not the custom URL, not the shorter SteamID3 [U:1:...] form.
Crossplay server (-crossplay): players are identified by a platform-prefixed ID. Steam players become Steam_ followed by their SteamID64. Xbox and Microsoft Store players are Xbox_ followed by their Xbox user ID.
// List admin players ID ONE per line// Steam-only server: bare SteamID6476561198012345678// Crossplay server: prefixed formsSteam_76561198012345678Xbox_2535412345678901Two practical rules follow:
- When in doubt, add both forms for Steam players. A line that does not match anything is ignored, so having
76561198012345678andSteam_76561198012345678both in the file does no harm and survives the day someone turns crossplay on or off. - Never guess an Xbox ID. It is not the gamertag and it is not something a player can easily look up. Read it from the server log.
The crossplay side of this - why the prefixes exist and what else changes when PlayFab carries the traffic - is in Valheim crossplay and Xbox players.
Finding a player's ID#
There are three ways, from most to least reliable.
From the server log
Have the player connect once, even if they are then refused. The server logs each connection with the ID in the form it uses for the list files. On a Steam-only server the lines look like this:
Got connection SteamID 76561198012345678Got handshake from client 76561198012345678On a crossplay server the connection lines carry the platform-prefixed ID instead. Copy the ID exactly as the log shows it. This is the only method that gives you the right form for whatever mode the server is in, and the only method for Xbox players.
From Steam
A Steam player's SteamID64 appears in their profile URL if they have not set a custom one: steamcommunity.com/profiles/76561198012345678. If they have a custom URL, a SteamID lookup site converts it. Make sure you copy the SteamID64, the long number, not one of the other formats such sites also show.
From the player
Players can tell you their SteamID64, but people misread long numbers. Use it as a cross-check against the log rather than as the only source.
Format rules and common mistakes#
The files are simple, which is why the mistakes are always the same:
- One ID per line. No commas, no spaces between IDs, nothing after the ID on the same line. A trailing comment on the same line as an ID can stop that line matching; put comments on their own lines.
- No names.
Bjorninadminlist.txtdoes nothing. Write the name on a comment line above the ID if you want to remember who it is. - Exact prefix spelling.
Steam_, with a capital S and an underscore.steam_orSteam:will not match. - Line endings and encoding. Files edited on Windows and uploaded to Linux have CRLF line endings. The game handles that in practice, but a stray byte-order mark or a word processor's smart formatting will not be. Use a plain text editor or the panel's file editor.
- The right file name.
adminlist.txt,bannedlist.txt,permittedlist.txt, all lower case.adminlist.txt.txtis a Windows hidden-extension classic.
A tidy file that is easy to maintain looks like this:
// List permitted players ID ONE per line// Bjorn - server owner76561198012345678Steam_76561198012345678// Astrid76561198087654321Steam_76561198087654321// Leif - XboxXbox_2535412345678901When changes take effect#
The server watches the three files and reloads them while running, so adding an admin or a ban does not need a restart in normal use. The ban and unban commands write to bannedlist.txt themselves, so the file and the server stay in step whichever way you make the change.
What "takes effect" means differs per file:
- Admin list. The player is treated as admin for commands they type after the reload. If a newly added admin's commands are refused, have them reconnect.
- Ban list. Adding an ID refuses that player's next connection. Someone already on the server is not thrown off by the file edit alone; kick them, or use the
bancommand, which both kicks and records the ban. - Permitted list. Applies at connection, like the ban list. Turning the allow list on does not disconnect people already playing who are not on it; they are refused next time.
If a change does not seem to apply, check in this order: you edited the file in the directory the server actually uses, the ID is in the right form, and the file saved. A restart is a last resort that confirms the file is being read at all - if a restart does not apply your change either, the server is reading a different file.
Running a private allow-list server#
A permitted list is the strongest access control vanilla Valheim has. A password can be shared, posted or guessed; an allow list ties entry to specific accounts. For a group of friends, the two together are the right setup. Whitelist versus password makes the case across games.
Setting it up without locking yourself out:
- Make sure every member has connected at least once, so their IDs are in the log.
- Build the file with every ID, both forms for Steam players, before saving it.
- Put yourself in first. Admins are not exempt: being in
adminlist.txtdoes not let you past a permitted list you are not on. - Save, then have one person not on the list try to connect to confirm they are refused.
Keep the password even with an allow list. It costs nothing and stops a listed player's compromised account being the only key. And if the server is meant to be private anyway, consider -public 0 so it stays out of the community list - covered in Valheim server not showing in the list.
The common failure is a new member: they are given the password, they cannot connect, and nobody remembers the allow list. Add a comment at the top of permittedlist.txt as a reminder for whoever maintains it next, and add new players before they first try.
Managing the lists on a hosted server#
On a hosted panel the files are wherever the panel maps the save directory, and you edit them in the file manager or over SFTP rather than on a console. On RE:NODE, the Valheim server's file manager opens the lists in an in-browser editor, saves them in place, and the running server picks the change up; SFTP and the file manager covers editing over SFTP if you prefer a local editor. The live console shows the connection lines, so you can copy a player's ID from there while they try to join.
The panel's own permissions are a separate layer and worth using alongside the lists. A friend who manages bans does not need access to billing or the whole file tree: subusers can be given console-only or files-only access. That limits the damage of a shared login, a risk covered in game server admin account security.
Bans, appeals and keeping records#
Vanilla Valheim keeps no reason, date or record of who banned whom. If your server has more than a handful of players, keep that yourself:
- Put a comment line above each ban with the name, date, reason and who banned.
- Keep a copy of
bannedlist.txtsomewhere outside the server, so a restore or a reinstall does not quietly unban everyone. - Agree among admins when a ban is temporary and who lifts it.
// List banned players ID ONE per line// 2026-10-11 Ulf - burned the shared longhouse, banned by Bjorn, review in 30 days76561198011112222Steam_76561198011112222Be aware that the ban and unban commands rewrite the file, and whether your hand-written comments survive that has not been something to rely on across versions. If you keep notes in the file, keep the outside copy too, and prefer editing the file by hand over the commands when the reason matters. Handling cheaters and ban lists goes further into policy for public communities.
FAQ#
Do I need to restart the server after editing adminlist.txt?
Normally no - the server reloads the files while running. If a newly added admin's commands are refused, have them reconnect, and if that fails, check that you edited the file in the server's actual save directory.
Why is my SteamID in adminlist.txt but I am still not admin?
Either the ID is in the wrong form for the server mode - a bare SteamID on a crossplay server needs the Steam_ prefix - or it has a typo, or the file is not the one the server reads. Copy the ID from the server log's connection line.
Can I ban someone by name in bannedlist.txt?
No. The file holds IDs only. You can type ban with a connected player's name in the console, and the server records the ban for you.
Does permittedlist.txt include admins automatically?
No. Every player who should connect, admins included, needs their ID in the permitted list once it contains anything.
How do I turn the allow list off again?
Remove every ID from permittedlist.txt, leaving only comment lines, or empty it. An empty permitted list means anyone with the password may connect.


