Version 3 (modified by 10 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 |
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 | <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 |
saveworld, sa | Saves the world manually | |
say | <message> | Sends a message to all connected clients |
sayplayer, pm | <destPlayerName or entity id> <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 entity id> | List inventory of the given player |
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 | |
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 |