Tilesets are images the game uses to display its graphics; each tile is used to show text and represent things. Users create custom tilesets for a number of reasons, including increased visibility, aesthetics, or small size. Tilesets come in two flavors: "character sets" (or simply "tilesets") and "graphics sets". This article is only about tilesets.

A character set (or 'tileset') is an image in BMP or PNG format that contains the 256 different tiles (numbered 0-255), corresponding to the IBM Code Page 437 (sometimes called Extended ASCII), which are used to display all graphics. The tiles are always arranged in a 16x16 grid, but its dimensions can be varied. You can have both square and non-square tiles, with 16x16 pixels being the most common size.

As the tileset is limited to only 256 tiles, some objects share the same tile. Some of those can be changed in the raws and init files, and creatures can have separate graphics, but in most cases they are hardcoded. Below is a detailed list.

Here is the list of user-made standard tilesets. To install any of these tilesets, follow these steps:

Download the tileset via right-click-save-as on the tileset. The tileset is just an image, so there's no separate download link. (The list is here)

Convert it into a 24-bit BMP fileV0.28.181.40d file or PNG filev0.31.06. Do NOT just change the extension to .bmp; you must use a program like MS paint to save it as a .bmp.

Put it in the data/art directory of your Dwarf Fortress installation.

Open data/init/init.txt

There are 4 values you can change: [FULLFONT], [FONT], [GRAPHICS_FONT], and [GRAPHICS_FULLFONT]*. Usually you just set all 4 to the same filename of the tileset you just downloaded ([FONT:mytileset.png] for example).

[FULLSCREENX:800] and [FULLSCREENY:600] set your resolution, but it is recommended to let the game decide that automatically by setting it to 0; Similarly, [WINDOWEDX:800] and [WINDOWEDY:600] denote your windowed resolution in pixels (but in tiles if set below a value of 256).

It is also recommended you keep [BLACK_SPACE:YES] to prevent stretching of the graphics.

Save the .txt file, then you're ready to play!

*They're used for the tileset used in fullscreen and windowed mode and the two GRAPHICS_ values are for tilesets used together with graphic_sets when [GRAPHICS] is set to YES. You can set them to different file names, if you want to use different tilesets for each.

The default (and minimum) gameplay viewport is 80 characters wide, and 25 characters tall. Therefore, a tileset's target resolution will be TILE_X_LENGTH * 80 by TILE_Y_LENGTH * 25. Since the tileset is arranged into a 16x16 grid of tiles (256 tiles total), the tileset image size will be TILE_X_LENGTH * 16 by TILE_Y_LENGTH * 16. Here are some common tile sizes:

A tileset with 10x12 tiles will be 160x192 pixels large, and the target resolution will be 800x300.

A tileset with 16x16 tiles will be 256x256 pixels large, and the target resolution will be 1280x400.

When creating a custom tileset, it's often easiest to start with an existing one, and edit it to your liking. Tilesets generally fall into two categories: rectangular tilesets and square tilesets. Rectangular tilesets have tiles that are taller than they are wide. The text in these tilesets is generally easier to read, but the map appears squished horizontally. Square tilesets usually provide more attractive graphics, but are slightly less readable. The graphics in Dwarf Fortress can be enhanced through the use of creature graphics, which allow creatures to have unique graphics without using up space on the main tilesheet.

Many tiles are used by the game in multiple ways, and this makes customizing the graphics difficult. The same icon is used for chairs and the north end of one-tile-wide vertical bridges. Ashes and broken arrows look the same, and many game entities (such as levers, floodgates, bags, and bins) share characters that are also used in Dwarven names or other bits of text in the interface.

Some of these issues can be fixed by the third-party Text Will Be Text (TWBT) plugin for the DFHack modding api. In addition to many other features, TWBT allows many items and building tiles to be moved to separate "overrides" tilesheets, so that fewer objects need to share tiles. TWBT also allows the use of a dedicated tilesheet just for text. TWBT still might not be very stable in adventure mode, though, so be cautious when using TWBT with adventure mode.