wiki:Console Commands

Version 9 (modified by Alloc, 5 years ago) (diff)

--

Console Commands

In order to do some bits of administration or even for informational purposes 7 Days to Die integrates a console system. This can be accessed in three ways:

  • In game by a client. The key to open the console is layout dependend, e.g. for a german layout it is the "ö"
  • Telnet. This has to be enabled server side and can then be accessed with a simple Telnet client
  • Web control panel. Has to be enabled server side too and can then be accessed with any web browser

admins.xml and in game console

Unmodified server code

Each command has to have a permission level set in admins.xml and the player who wants to use the command must have the appropriate level, i.e. the permission level of the player must be lower or equal to the permission level of the command to be executed. All commands that are not defined in the admins.xml can not be executed at all.

Example: admins.xml:

<?xml version="1.0" encoding="UTF-8"?>
<adminTools>
    <admins>
        <admin steamID="123456" permission_level="0" />
        <admin steamID="987654" permission_level="4" />
    </admins>

    <permissions>
        <permission cmd="dm" permission_level="3" />
        <permission cmd="mem" permission_level="4" />
        <permission cmd="admin" permission_level="0" />
        <permission cmd="kick" permission_level="5" />
        <permission cmd="lt" permission_level="10" />
        <permission cmd="setgameprefs" permission_level="0" />
        <permission cmd="le" permission_level="1000" />
    </permissions>
</adminTools>
  • Player with ID 123456 (permission level 0):
    • dm -> ok
    • mem -> ok
    • admin -> ok
    • sg (which is the short version of setgameprefs) -> denied (not in list exactly like this)
    • shutdown -> denied (not in list at all)
  • Player with ID 987654 (permission level 4):
    • dm -> denied (dm requires permission level of 3 or less)
    • mem -> ok
    • kick -> ok
    • le -> ok
  • Any other player with no defined permission level:
    • le -> denied (permission level 1000 is just an arbitrary number)
    • any other command -> denied

Running a server with the Server fixes installed

Mostly the same applies as without the fixes. Changes are:

  • A command with permission level of >=1000 can be executed by any player, even those not listed in the admins.xml at all
  • Any command not having an permission level set in admins.xml will automatically have a permission level of 0
  • Commands defined in the admins.xml affect both short and long versions

Example: Considering the same admins.xml as before:

  • Player with ID 123456 (permission level 0):
    • dm -> ok
    • mem -> ok
    • admin -> ok
    • sg (which is the short version of setgameprefs) -> ok (setgameprefs is defined so it also affects sg)
    • shutdown -> ok (implicitly defined as permission level 0)
  • Player with ID 987654 (permission level 4):
    • dm -> denied (dm requires permission level of 3 or less)
    • mem -> ok
    • kick -> ok
    • le -> ok
  • Any other player with no defined permission level:
    • le -> ok (permission level 1000 -> any player can execute this command)
    • any other command -> denied

Managing permissions by commands

Each of the sections of admins.xml can be modified through console commands while the server is running. These are:

  • admin: Manage the list of players which should be admins
  • mod: Same for moderators. As it seems there currently is no difference between moderators and admins. Only the permission level set is of interest.
  • cp: Manage command permission level definitions (in the XML those are the permissions->permission-elements)
  • whitelist: Whitelisted players. Note: if there is at least one whitelisted player only players on this list can join the server whatsoever.
  • ban: Ban a player (XML: blacklist elements)

All but the ban command have three subcommands given as their first parameter:

  • add: Add a player to the given list
  • remove: Remove a player from the given list
  • update: Set a new permission level on the given list for the given player

Implemented commands

Command Parameters Description
admin add <playername> <permissionLevel> Add a player as admin with the given permissionlevel
admin remove <playername> Remove the admin rights of a player
admin update <playername> <permissionLevel> Set a new permissionlevel for a player who is already an admin
aiddebug Toggles AIDirector debug output
ban <playername> <duration> <unit> Bans user for period specified by duration and unit. Unit can be anything of: minutes, hours, days, weeks, months, years
chunkcache, cc Shows all loaded chunks in cache
cp add <command> <permissionLevel> Add the definition of a permission level for a given command
cp remove <command> Remove the command permission level definition
cp update <playername> <permissionLevel> Set a new permissionlevel for an already defined command
debugmenu, dm Enables/disables debug menu for a client
enablescope, es Toggle debug scope
gameover, go Sets the game state to GameOver
getgamepref, gg [<match>] Get all preferences that contain the given string or all preferences if no string is given (Added by the Server fixes)
gettime, gt Retrieves current ingame time (Added by the Server fixes)
kick <playername> [<reason>] Kicks user with optional reason
kill <playername or entityId> Kill the given player (Added by the Server fixes)
listents, le List all entities
listlandprotection, llp Lists all land protection blocks and their owners (Added by the Server fixes)
listplayersextended, lpe Lists all players with extended attributes (Added by the Server fixes)
listplayers, lp List all players
listthreads, lt Lists all game threads
mem Print information about current memory consumption of the server and call garbage collector
mod add <playername> <permissionLevel> Add a player as moderator with the given permissionlevel
mod remove <playername> Remove the moderator rights of a player
mod update <playername> <permissionLevel> Set a new permissionlevel for a player who is already a moderator
removelandprotection, rlp <x> <y> <z> Remove the association between the land protection block at the given coordinates and its owner (Added by the Server fixes)
reply, re <message> Send a message to the user from whom you last received a PM (Added by the Server fixes)
saveworld, sa Saves the world manually
say <message> Sends a message to all connected clients
sayplayer, pm <playerName or entityId> <message> Send a message to a single player (Added by the Server fixes)
setgamepref, sg [<prefName> [<value>]] Retrieves (if no value given) or sets a game preference. If both parameters are left out all preferences are shown. Does not work with most settings!
settimereal, str <days> <hours> <minutes> Set current ingame time (Added by the Server fixes)
settime, st [<time>] Set the time. If no time is given it will set to Day 1, 08:00. time can be "day" which will set to Day 1, 16:00, or "night" which will set it to Day 2, 05:00. Or it can be an integer value greater or equal to -8000, specifying the time relative to Day 1, 16:00
showchunkdata, sc Shows some data of the current chunk
showinventory, si <playerName or entityId> List inventory of the given player (Added by the Server fixes)
shownexthordetime Displays the wandering horde time
shutdown Shut down the server
sounddebug Toggles SoundManager debug output
spawnairdrop Spawns an air drop
spawnentity, se [<playerId> <entityId>] Spawn an entity of type entityId near the player with playerId. To get a list of all player/entity IDs run without any parameter.
spawnsupplycrate Spawns a supply crate where the player is (only works for client run servers / singleplayer)
spawnwanderinghorde Spawns a wandering horde of zombies
version Get the currently running version of the server fixes (Added by the Server fixes)
whitelist add <playername> <permissionLevel> Add a player to the whitelist with the given level
whitelist remove <playername> Remove a player from the whitelist
whitelist update <playername> <permissionLevel> Update the permission level of a player on the whitelist