User Tools

Site Tools



Doomsday Shell is a tool that helps you to run your own Doomsday servers and monitor the status of Doomsday servers running on remote computers over the internet.

This article is for 2.1. Earlier versions for 2.0 and 1.14–1.15 are available.

Getting started

In the past, hosting a multiplayer game has required one to run Doomsday in a special “dedicated” mode and configure everything by hand via the console or configuration files. The experience has been far from ideal. The Shell solves this problem by making it easy to start, stop, and monitor your Doomsday servers.

The Shell comes in two flavors:

  • Qt 5 desktop app that works on Windows, macOS, and Linux.
  • Text-based shell for Unix platforms (doomsday-shell-text) to be used in terminals.

On Unix, information specific to the text-mode version of the Shell can be found in the manual page doomsday-shell-text.

Basic features

Hosting a game

To host your own multiplayer game, you need to start a Doomsday server. Typically this is done by starting a server on your local computer. The Shell makes this easy: select Server → New Local Server. This opens a dialog where you can configure the server's launch settings. Note the server does not have access to your game profiles from the Doomsday client, so all resource files need to be specified at launch.

Basic settings

Name of the server. This is just for identification purposes so that players know which server they are connecting to.
Game mode
Game mode to run in. You must ensure that Doomsday will find the required IWAD files for the selected game mode. You can configure where to look for IWADs in the Shell Settings/Preferences.
TCP port
Port that the server listens to for incoming connections. If you are expecting people to connect over the internet, make sure that the port is open in your firewall and/or NAT settings. Automatic port forwarding through a NAT is not supported, so you'll have to set that up manually.
Public server
Checking this will make the server public so that everyone can see it.
Shell password
Password for opening a Shell connection to the server. This is only for admin use — clients joining the game do not need to know this password.

Advanced settings

Runtime folder
Folder where the server stores its runtime files (doomsday.out, savegames, etc.).
Additional command line options for doomsday-server. For instance, the -file option can be used to load additional resource files and packages. If the client's version is 2.1 or newer, they will be able to automatically download these files before connecting. Older clients do not support downloading files from the server.
You can start multiple servers on your computer but each of them must have a unique TCP port number. The default port is 13209.

Click Start Server when you're done. After the server has launched, a connection to it is automatically opened. (If the connection fails, it means the server failed to launch. Check the error from the server's doomsday.out file.)

Public servers (visible on master server)

The server has to be configured as public to allow other people to see your server via the master_server. Even after the server is started you can still change whether the server is public or private using the Console:

server-password "your-shell-password"
server-public 1

Defining a password is mandatory for public servers; otherwise malicious users could log in via the Shell and misconfigure it at will.

If a server is not public, it will not be announced to the master_server and anyone wishing to join has to either be on the local network or know your IP address.

Connecting and disconnecting

Each Shell window connects to a single server. It is important to note that a Shell connection is akin to an ssh connection to a Unix server — the server is running before the connection is opened and continues to run after the connection is closed.

  • Connection → Connect: Specify any IP address to connect to. Servers running on the local network are automatically detected and appear in the address dropdown list.
  • Connection → Disconnect: Closes the currently open connection. (The server keeps running.)

Status overview

The Status page displays an outline of the current map on the server. The positions of all players in the game are shown using position markers.

Game options

The Options page can be used to quickly change the game type, the current map, and a handful of other gameplay settings. The map has to be changed or restarted for the new options to come into effect.

Console command line and log messages

The Console page provides a console command line interface to control the server. You can enter both console commands and new values for console variables.

Keyboard shortcuts for the command line:

Shortcut Function
Home, Ctrl-A, ⌘-A Move to the beginning of the line
End, Ctrl-E, ⌘-E Move to the end of the line
Ctrl-K, ⌘-K Delete the rest of the current line
Up / Down Move up/down in the command history (or lines of the current command)
Tab Complete the current word (cycle through suggestions on each press)
Shift-Tab Complete the current word (cycle backwards through suggestions on each press)

Settings / Preferences

Console font

The font used on the console page for log entries and the command prompt.

Server location

Folder where the Doomsday Server executable can be found. Shell will use this for running local servers.

  • On Windows and Linux, it is ok to leave this empty: the server executable is found in the same folder where the Shell is running.
  • On macOS, you should specify here where is located. The server executable is inside the Doomsday application bundle.

Custom IWAD folder

Unless you've told Doomsday where to find IWAD files, you will need to specify the IWAD folder before you can start a server. In practice, the Custom IWAD folder setting will insert an -iwad option into the doomsday-server launch options.

See also

  • Feature requests: presently the Shell contains only a basic set of features — if you feel there is a particularly important feature missing, please submit a feature request with the label “Shell”.
multiplayer/shell_help.txt · Last modified: 2018-12-15 18:16 by skyjake