REXPaint Resources

After downloading REXPaint, you may be interested in a number of supplemental resources provided by other users.
Click on a category to skip to that section:

Consider sharing your own resources with the community! Send them to, or drop them on our forums, for inclusion here.


I've put together a REXPaint-specific guide containg tips and techniques for getting the most out of REXPaint, whether for art or roguelike development.

I've also written an article in which I explain the process behind Cogmind's ASCII art style.

For advanced users, the extensive manual included with REXPaint contains plenty of useful information, including a description of all features as well as how to extend REXPaint with additional palettes, fonts, and libraries.

Guides by others:


A number of generous devs have shared their solutions for input/output of REXPaint's native .xp format.

  • C#: SadRex by Thraka, a library for importing .xp files.
  • C#: RexReader by BaconSoap (the original .xp reader, though it has some issues).
  • C++: REXReader-C++ by Tim Stoddard, a C++ version of BaconSoap's importer.
  • C++: REXSpeeder by pyridine, a fast xp loader that that also supports resaving.
  • C++: mini-REXSpeeder by Mreuwu, a REXSpeeder alternative compatible with emscripten.
  • Clojure: rockpick by Aaron Santos, an .xp import library.
  • Go: reximage by Ben Nicholls, an .xp image importer.
  • Godot: Rex is Godot by RisingThumb, an .xp image importer.
  • Godot: rex_sprite by rzuf, an .xp image importer.
  • Haxe: REXPaintLoaderHaxe by Matt Johnson.
  • Java: xpreader by Stinus Petersen.
  • Javascript: rexpaintjs by chiguireitor, a javascript library to load rexpaint files.
  • Javascript: rexpaintjs-fork by adri326, a fork of rexpaintjs with more features for working with .xp files in javascript.
  • Javascript: glyph-image.js by Dominus-Sicarum,a Node.js module for loading .xp files as an Array of Maps.
  • LOVE2D: rexpaint.lua by Vriska Serket, a lightweight REXPaint .xp file reader.
  • Nim: rexpaint_nim by Steve Landey, an .xp parser.
  • Python 3: pyrexpaint by mattlink, a newer framework-independent .xp loader installable via pip.
  • Python: XPLoader by RCIX (includes libtcod support!).
  • Python 3 + TDL: XPLoaderPy3 by Edern76.
  • Rust: rs-rexpaint by medusacle, import/export REXPaint .xp files.
  • Rust: REXPaint Rust crate by mara, import/export REXPaint .xp files.
  • SFML 2.0: XPText by Tim Stoddard, an SFML entity for rendering xp images.
  • Swift: REXPaintImage by Steve Johnson, an .xp reader.

Roguelike/Tile engines with built-in support for the .xp format:

Other tools:

  • image2xp: python script to convert an image file to ASCII or .xp (sample output), by mtvee.
  • png2rex: C++ utility for converting PNGs to .xp, by thebracket.
  • png2rex: Rust utility for converting PNGs to .xp, by thebracket.
  • txt to .xp: C code to convert a txt file to .xp (minus the gzip step), by gumix.
  • png2xp: C++ code to convert a PNG .xp using CP437 half-blocks and dither glyphs, by gumix.
  • txt2xp: python script to convert a txt file to .xp, by mtvee.
  • rex2ansi: utility for converting .xp files to 24-bit .ans, by Sludge.


Download the linked text file and drop it in the data/palettes directory. Alternatively, download all the palettes in a single package (uncompress to data/palettes dir).

User palettes: Provided by individual REXPaint users based on their own work found in the gallery, or popular palettes I've collected.

Legacy system palettes: Provided by AtariAge members nitrofurano and barnieg. Amstrad monochrome by DiamondTroller.

As of 1.70, REXPaint can automatically import .gpl (GIMP) files, for example from


Download the image itself, drop it in the data/fonts directory, and list the font in _config.xt, a text file. Alternatively, download all the fonts in a single package (uncompress to data/fonts dir, though you'll still need to update your own _config.txt).

User fonts: Provided by individual REXPaint users based on their own work.

  • qbicfeet font
    REXPaint's 10x10 tweaked by qbicfeet
  • Drake font
    10x10 by Drake
  • Polyducks font
    12x12 by Polyducks
  • Viznut font: Unscii
    8x16 "Unscii" by Viznut
  • gumix font
    6x6 CP437 by gumix (license: CC BY 3.0)
  • PixelCod font
    8x8 by PixelCod (license: CC BY 3.0)
  • Polyducks font: Gloop
    8x8 "Gloop" by Polyducks

Legacy system fonts: Provided by AtariAge members nitrofurano and barnieg.

  • Aquarius Home Computer (8x8) font
    Aquarius Home Computer (8x8)
  • Galaksija (8x13) font
    Galaksija (8x13)
  • Hitachi MB-6880 (8x8) font
    Hitachi MB-6880 (8x8)
  • MSX (Brazilian) (8x8) font
    MSX (Brazilian) (8x8)
  • MSX (Cyrillic) (8x8) font
    MSX (Cyrillic) (8x8)
  • Orao (8x8) font
    Orao (8x8)
  • Philips VG 5000 (8x10) font
    Philips VG 5000 (8x10)
  • SAM Coupé (8x8) font
    SAM Coupé (8x8)
  • SGI IRIS 3130 (8x16) font
    SGI IRIS 3130 (8x16)
  • SGI IRIS 4D (8x16) font
    SGI IRIS 4D (8x16)
  • ZX81 (8x8) font
    ZX81 (8x8)
  • ZX Evolution (ATM Turbo) (8x8) font
    ZX Evolution (ATM Turbo) (8x8)
  • ZX Spectrum (8x8) font
    ZX Spectrum (8x8)

Miscellaneous fonts: Ceefax fonts provided by Polyducks. "Taken from the analogue tv's teletext chip specifications. The top row of characters are custom control characters and should not be visible on output. In order: Polyducks' logo, large font above, end large font, flash, end flash, hide, end hide, misc, end misc." PETSCII provided by iLKke. Original CDDA Unifont provided by Ununsept, newer Terminus version provided by Lumi.

  • Ceefax Teletext (6x10) font
    Ceefax Teletext (6x10)
  • Ceefax Teletext (12x20) font
    Ceefax Teletext (12x20)
  • PETSCII (16x16) font
    PETSCII (16x16)
  • Unifont (8x16) font
    Unifont (8x16) (Cataclysm: Dark Days Ahead, deprecated)
  • Terminus (8x16) font
    Terminus (8x16) (Cataclysm: Dark Days Ahead)