== 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'':
{{{
}}}
* 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 || || Add a player as admin with the given permissionlevel ||
|| admin remove || || Remove the admin rights of a player ||
|| admin update || || Set a new permissionlevel for a player who is already an admin ||
|| aiddebug || || Toggles AIDirector debug output ||
|| ban || || 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 || || Add the definition of a permission level for a given command ||
|| cp remove || || Remove the command permission level definition ||
|| cp update || || 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 || [] || 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 || [] || Kicks user with optional reason ||
|| listents, le || || List all entities ||
|| 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 || || Add a player as moderator with the given permissionlevel ||
|| mod remove || || Remove the moderator rights of a player ||
|| mod update || || Set a new permissionlevel for a player who is already a moderator ||
|| reply, re || || 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 || || Sends a message to all connected clients ||
|| sayplayer, pm || || Send a message to a single player (Added by the [[Server fixes]]) ||
|| setgamepref, sg || [ []] || 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 || || Set current ingame time (Added by the [[Server fixes]]) ||
|| settime, st || [