On a vanilla dedicated server, typing devcommands gets you nothing, even if your ID is in adminlist.txt. The cheat set - god, fly, spawn, goto, killall and the rest - is blocked on dedicated servers by the game itself. Server Devcommands, by JereKuusela, is the mod that lifts that block for admins and only for admins. The short version: install it on each admin's own PC, put the admins' IDs in adminlist.txt, and install it on the server as well if you want the extras - running commands on the server, a log of who typed what, and the ability to forbid particular commands. Ordinary players need nothing.
This post covers what the mod actually changes, where it has to be installed, the config file, aliases and binds, the extra commands it adds, and how to stop a trusted admin from accidentally wrecking a shared world. What the individual cheat commands do is in Valheim devcommands explained, and the spawn syntax has its own guide; this one is about the mod around them.
What Server Devcommands does#
The mod's Thunderstore name is JereKuusela-Server_devcommands. At the time of writing it is on version 1.115, and its only dependency is the BepInExPack for Valheim. It has been kept current through every major Valheim update, which matters, because an admin tool that breaks on patch day is one you will be without exactly when something has gone wrong.
What it changes, in plain terms:
- `devcommands` works on a dedicated server for any player who passes the admin check, which means their ID is in the server's
adminlist.txt. Everybody else still gets refused. - The console opens without the `-console` launch option, and cheat commands also work typed into the chat window, with autocomplete for parameters.
- Several commands on one line, separated by
;, and new commands built from old ones withalias. - Key binds with modifier keys and the mouse wheel, replacing the vanilla
bindsystem. - Improved modes:
godthat also removes stamina use, knockback and stagger;ghostthat can hide you from players;flythat can pass through walls. - New commands for teleporting players, broadcasting messages, finding objects, undoing spawns and running commands on the server itself.
- Logging: when both the admin and the server have the mod, every command an admin runs is written to the server log.
It does not give anybody admin rights. The admin list is still the gate, and the mod checks it. It also does not add an RCON or a web console - commands are still typed in-game by a player who is connected.
Where it has to be installed#
This is the part people get backwards. Server Devcommands is mainly a client mod. The console, the binds, the aliases and the cheat commands all run in the admin's game. The server copy is optional and adds a specific list of features.
| Installed on | What you get |
|---|---|
| Admin's PC only | devcommands with the admin check, aliases, binds, chat commands, improved modes |
| Admin's PC and server | All of the above, plus server commands, command logging, find, disabled commands, disabled events and global keys, private player positions visible to admins |
| Server only | Nothing useful - nobody has the client half to type into |
| Ordinary players | Nothing needed. They can join with or without it |
Because players without the mod can still join, Server Devcommands does not cause the version-mismatch kicks that content mods do. It does not use a version handshake. That also means nothing stops an admin running an old copy - if a command misbehaves for one admin and not another, compare versions first.
On the client, the easiest route is a mod manager (r2modman or Thunderstore Mod Manager) - search for "Server devcommands" and install it into the profile you play Valheim with. If your group already shares a profile, add it there; r2modman profiles for a group covers how. Manually, the zip contains a single plugin: drop it into BepInEx/plugins in the game folder.
On the server, BepInEx has to be installed first - the pack, the start_server_bepinex.sh start script on Linux, and a confirmed first start with BepInEx/plugins created. The full walkthrough is in Valheim mods with BepInEx on a server. Then upload the same plugin file into the server's BepInEx/plugins folder over SFTP or the file manager and restart. The log should show it loading:
[Info : BepInEx] Loading [ServerDevcommands 1.115.0]If that line is missing, BepInEx is not running at all - check the start command before you look at the mod.
Getting the admin check to pass#
The admin check uses the server's own adminlist.txt, one ID per line. On a Steam-only server that is the 17-digit SteamID64. On a crossplay server the IDs carry a platform prefix, and the mod accepts PlayFab-style IDs as well:
// Steam-only server76561198012345678// Crossplay serverSteam_76561198012345678The format that works is the one the server prints in its log when the player connects, so copy it from there rather than from a website. The three list files are explained in full in adminlist, bannedlist and permittedlist.
With auto_devcommands on (the default), the mod runs devcommands for you when you join a server where you pass the check. You will see the cheats-enabled message in the console. If you do not:
- Check your ID is in
adminlist.txtin the server's save directory, not in a copy somewhere else. The server re-reads the file, but rejoin to be sure. - Type
devcommandsyourself and read the response. A refusal means the check failed; no response at all means the mod is not loaded on your client. - Confirm you are on PC. Xbox players cannot install mods, so on a crossplay server only PC admins can use any of this.
The config file and dev_config#
Settings live in BepInEx/config/server_devcommands.cfg, created on the first start. The admin's copy controls the client-side behaviour; the server's copy controls the server-side features. You can change them three ways: edit the file, use the Configuration Manager mod in-game, or use the mod's own command:
dev_config auto_god 1dev_config auto_flyserver dev_config disable_events 1dev_config [name] [value] sets a value; leaving the value out toggles it, 0 turns it off and 1 turns it on. Prefixing it with server changes the server's copy, which needs the mod on the server.
The settings you are most likely to touch:
| Setting | Default | What it does |
|---|---|---|
auto_devcommands | true | Runs devcommands on join when you are an admin |
auto_god, auto_ghost, auto_fly, auto_nocost, auto_debugmode | false | Switch the mode on automatically |
god_no_stamina, god_no_knockback, god_no_stagger | true | What god also removes |
ghost_invisibility | false | Hide a ghosted admin from other players |
fly_no_clip | false | Fly through terrain and buildings |
access_private_chests | true | Admin can open other players' private chests |
access_warded_areas | true | Admin can build and interact inside wards |
max_undo_steps | 50 | How many actions undo remembers |
disable_events | false | Server-side: stop random raids |
server_chat | false | Server-side: let the server send chat messages |
command_log_format | see below | Format of the server-side command log; empty disables it |
Two of these deserve a comment. access_private_chests and access_warded_areas default to on, which is what an admin cleaning up griefing needs, but it also means an admin can loot anybody's base without the ward noticing. If your admins are also ordinary players in the same world, that is a trust question worth having out loud once. Wards and griefing covers what wards protect against when no admin is involved.
server_chat adds a dummy client on the server so the server itself can post to chat. The mod's own documentation notes a side effect: bosses drop an extra item, because the game counts the dummy as a player for its loot scaling. Leave it off unless you have a real use for it.
Aliases, multiple commands and binds#
Three features turn the console from a cheat box into an admin tool.
Multiple commands. Anything separated by ; runs in order. wait adds a pause in milliseconds:
god; ghost; flybroadcast center Restart in 5 minutes; wait 240000; broadcast center Restart in 1 minuteAliases. alias [name] [command] creates a new command. The substitution marker, $$ by default (the substitution setting), is replaced by whatever you type after the alias name:
alias admin god; ghost; fly; nocostalias say broadcast center $$alias heal dmg $$ -1000Then admin turns on the whole kit and say Raid at the main base puts the message in the middle of every screen. Aliases are saved to the admin's own config, so they follow that admin, not the server.
Binds. The mod replaces vanilla bind with a version that accepts modifier keys: bind [key,modifier1,modifier2] [command]. The modifier version is what makes binds safe - a single key is easy to hit by accident in the middle of a fight, a key plus leftalt is not.
bind keypad1,leftalt adminbind keypad2,leftalt calm 30bind keypad3,leftalt removedropsMouse-wheel binds exist too and are switched on with mouse_wheel_bind_key, which is none by default.
Extra commands worth knowing#
The mod adds or extends a long list of commands; help in-game lists everything your version has, with descriptions. These are the ones that earn their place on a shared server.
| Command | What it does |
|---|---|
playerlist | Online players with their IDs, characters and positions |
tp [players] [x,z,y or player] | Teleport players by name, ID or wildcard |
goto [x,z,y], goto [name], goto last | Teleport yourself to coordinates, a player, or back |
pos [player] | A player's position |
broadcast [center/side] [message] | Message to every player |
message [players] [center/side] [message] | Message to particular players |
calm [radius] | Calm aggravated creatures nearby (default 20) |
repair [radius] | Repair nearby structures (default 20) |
dmg [players] [amount] | Damage players; a negative amount heals |
inventory [clear/refill/repair/upgrade] | Manage your own inventory |
find [id] [limit] | Find objects by ID and pin them on the map (needs the server copy) |
search_id [term] | Search object IDs, useful before spawn |
undo / redo | Revert or restore recent actions such as spawns |
event [event] [x] [z] | Start an event at a place |
move_spawn [x,z,y] | Move the world's default spawn point |
resetdungeon | Reset the nearest camp or dungeon - deletes everything in it |
seed | Print the world seed |
server [command] | Run a command on the server itself |
find is the one that answers the most support requests. find Cart puts a pin on every cart in the world, which is how you locate the one somebody abandoned in a swamp. undo is the second: a mistyped spawn Troll 50 is three key presses from being undone instead of a fight.
resetdungeon and move_spawn are the opposite kind - easy to type, hard to reverse. Use them only after a backup.
Locking commands down on a group server#
With the mod on the server, you can forbid particular commands for every admin except a few named root users. This is the feature that makes Server Devcommands workable on a server with several admins of different temperaments.
- Disabled commands.
disable_commandkeeps a list of commands nobody but root users can run. The mod's own example isserver dev_config disable_command event, which stops admins starting raids by hand. - Root users. A comma-separated list of SteamIDs in the server's
server_devcommands.cfg, in the console section. Root users can run disabled commands. It deliberately cannot be set withdev_config- you have to edit the file on the server, so an admin cannot promote themselves from in-game. - Disabled global keys.
server dev_config disable_global_key [keys]stops boss kills setting the named keys. Without arguments it lists the ones already disabled. Global keys and setkey explains what each key unlocks. - Disabled events.
server dev_config disable_events 1stops random raids entirely. For finer control the vanillaraidsworld modifier is usually the better tool - see raids and events on servers.
A sensible arrangement for a group with one owner and two helpers: the owner is the only root user; the server's disabled list includes the commands that cannot be undone or that change the whole world - resetdungeon, move_spawn, killall, resetkeys, removekey, setkey, exploremap, resetmap - and helpers keep tp, goto, calm, repair, kick and broadcast.
server dev_config disable_command resetdungeonserver dev_config disable_command move_spawnAfterwards, read the server's server_devcommands.cfg to see what your version stored - whether a second call added to the list or replaced it - and correct the list there if needed.
The command log#
When the admin and the server both run the mod, each command is written to the server's console and log with the format in command_log_format:
{player_id}/{character_name} ({pos_x:F0}, {pos_z:F0}, {pos_y:F0}): {command}That produces lines like Steam_76561198012345678/Astrid (512, -1340, 31): spawn Wolf 4. It is the only record of who spawned what, and the first thing to read when a base is found full of trolls. On a panel host it scrolls past in the console with everything else; on RE:NODE the live console has a command line and history, and the log files are in the file manager under the server root, so you can search them after the fact (console and files in the panel guide).
Keep in mind that the log only records commands from admins who also run the mod - which, since the mod is what lets them use cheats, is everyone who matters. Setting command_log_format to empty turns logging off. There is rarely a good reason to.
Troubleshooting#
`devcommands` says it is not allowed. The admin check failed. The ID in adminlist.txt does not match what the server logs for you - usually a missing platform prefix on a crossplay server, or a stray space.
Nothing happens when I type a command. The mod is not loaded on your client. Launch through the mod manager's "Start modded" button rather than through Steam, or BepInEx is not loaded at all.
`server` commands return an error. The server does not have the mod, or the server's BepInEx is not running. Check the start-up log for the loading line.
`find` returns nothing on the server. It needs the server copy; without it the client can only see the zones loaded around you.
A command works for one admin and not another. Different mod versions, or one of them is a root user and the other is hitting the disabled list.
Everything broke after a Valheim patch. Wait for the mod's update, then update the client and server copies together. What to do when a mod update breaks has the general routine.
FAQ#
Do all players need Server Devcommands installed?
No. Only admins who want to use the commands need it on their PC. Players without it join normally and are not kicked, because the mod does not check versions between clients and the server.
Can I use it on a crossplay server?
Yes, for PC admins. Xbox players cannot install mods, so they cannot use the commands, but they can still join a server running it, since it is not a client requirement for anyone else.
Is it safe to leave installed on a long-running world?
Installing it changes nothing in the world. What the admins do with it is another matter - a careless killall or resetdungeon cannot be undone. Take a backup before any session of heavy admin work, and use the disabled-command list for helpers.
Does it work alongside World Edit Commands and other JereKuusela mods?
Yes. JereKuusela's other mods, such as World Edit Commands and Infinity Hammer, are written to sit beside it, and their commands can be used inside aliases and binds like any other. Install each on the sides its own page says - they do not all follow the same rule.
Why does a boss sometimes drop two trophies?
On some servers it is server_chat turned on - the dummy chat client counts as a player for the boss's loot. Turn it off with server dev_config server_chat 0 if you did not mean to have it.


