DDNet (abbreviation of DDraceNetwork) is an actively maintained modification of Teeworlds with a unique cooperative gameplay. Help each other play through custom maps with up to 64 players, compete against the best in international tournaments, design your own maps, or run your own server. Players' public ranks are made on serveral official servers are available worldwide.
It works in the client–server model, where the user plays using DDNet Client which connects to a local or remote DDNet Server. Since DDNet has official servers, you most likely will only start the Client and play online.
- 1 Installation
- 2 Directory structure
- 3 Usage
- 4 Server
- 5 Extra tools
- 5.1 config_retrieve
- 5.2 config_store
- 5.3 confusables
- 5.4 crapnet
- 5.5 dilate
- 5.6 dummy_map
- 5.7 fake_server
- 5.8 map_diff
- 5.9 map_extract
- 5.10 map_replace_image
- 5.11 map_resave
- 5.12 map_version
- 5.13 packetgen
- 5.14 tileset_borderadd
- 5.15 tileset_borderfix
- 5.16 tileset_borderrem
- 5.17 tileset_borderset
- 5.18 uuid
DDNet's skin database (also available in a Git repository), allowing you to choose between 600 different skins for your characterAUR – provides the whole
DDNet's maps repository with default configurations for running an offline DDNet server. Users interested in setting up a DDNet Server will probably want this package, but it's really not necessary for the DDNet Client.AUR – provides all playable maps available in the
UsagePlay DDNet using the
.desktopfile provided in the package (e.g. in GNOME, search for "ddnet" in its Activities Overview), or by running the command
Setting up a local server is optional, as you normally will want to play in official servers online. See #Server for more info.
Some extra tools can be found in
/usr/share/ddnet/tools/. See #Extra tools for more info.
Use these instructions if you want a local server in a LAN to play with friends, or due to high latency of Internet servers, or for testing.
Setting up a server
In order to have a server, you need DDNet installed, config file(s) and maps.
1- Easy method:
- install the package AUR
- start a server instance using the
.desktopfile provided in the package (e.g. in GNOME, search for "ddnet server" in its Activities Overview), or by running the command
The server instance should be available and visible for a Client in the LAN servers tab.
The following tools are provided in
$ /usr/share/ddnet/tools/config_retrieve mapfile.map
Retrieves configuration embedded in DDNet map file and stores in a .cfg with same filename (e.g. "Kobra 4.map" returns "Kobra 4.cfg")
Available since DDNet version 9.0.
$ /usr/share/ddnet/tools/config_store mapfile.map
Stores configuration from a map's configuration file into the map file. Both configuration and map files must have the same filename in the same directory, otherwise the operation will fail.
Available since DDNet version 9.0.
configs coincide, not updating map.
$ /usr/share/ddnet/tools/confusables string1 string2
Compare string1 with string2 and report if they are "confusable", i.e. if the characters are "equal" and could cause confusion. For this to work, the characters with accents or other things around them are considered the "confusable" with the base character. Therefore, aa and aá are confusable (á was considered as a), while aa and ab are not.
If they confusable, returns
not_confusable=0, otherwise, returns
Available since DDnet version 10.3.5.
Tests connection by setting a client–server connection locally and running ping between them. Reports dropped packets with message
dropped packet and successes with
cfg = number, where number varies from 0 to 2.
$ /usr/share/ddnet/tools/dilate imagefile1 [imagefile2 ... ]
It is graphical tool, useful for mappers. It takes care of transparent areas to prevent black/white outlines around your images ingame, therefore avoiding blending and mipmap issues. See Edge padding for more info.
Creates a dummy, small empty map to be used to start a server. See  for more info.
Creates a fake server for testing.
$ /usr/share/ddnet/tools/map_diff mapfile1.map mapfile2.map
Compares two map files, reporting one of the follow:
- no diff output (maps are the same)
different layer numbers, if one map has more layers than another
different tile layers, if the number of layers is the same, but at least one layer is different
- lastly, the index and flags positions that differ.
If there is no difference between maps, returns 0; otherwise, returns 1.
$ /usr/share/ddnet/tools/map_extract mapfile.map [directory]
Extracts content from mapfile.map into directory. If optional argument directory is not provided, extracts to the current directory.
$ /usr/share/ddnet/tools/map_replace_image mapfile1.map mapfile2.map imagename imagefile
Replaces the image imagename currently inside the map filename mapfile1.map with the image filepath imagefile, and save into the map filename mapfile2.map.
- both map filenames must be relative to user default ddnet folder
- new image filepath must be absolute or relative to the current position
$ /usr/share/ddnet/tools/map_resave mapfile.map imagefile
Updates the map file mapfile.map with the provided file imagefile.
The error status 255 is returned if 1) a number of arguments different from 2 is provided, 2) if the mapfile.map is not valid, or 3) if imagefile is not a valid image file (e.g. it is a text file); otherwise, return 0.