Open-source clone of the original X-Com
C++ GLSL C CMake Makefile M4 Other
Latest commit 70dd14e Nov 30, 2016 @SupSuper committed on GitHub Merge pull request #1127 from uqs/ifdef
Remove a FreeBSD specific ifdef and a redundant _WIN32 ifdef
Failed to load latest commit information.
bin Fix dogfight logic so TFTD depth checks actually work Nov 27, 2016
cmake/modules Add explicit check for broken yaml-cpp-0.5.2 in cmake May 24, 2016
docs Add "-cfg <path>" command line switch for specifying a Config Folder … Jun 12, 2014
install Take two Aug 28, 2016
m4 Update gl macro to latest provided by GNU. Jun 9, 2014
obj - Minor fixes and cleanup. Mar 6, 2011
res fix linux icon Aug 4, 2015
src Remove a FreeBSD specific ifdef and a redundant _WIN32 ifdef Nov 30, 2016
xcode Fixed a typo (the first hyphen wasn't) Jun 15, 2016
.astylerc - Added Volutar's Globe great circle formula. Feb 7, 2012
.gitignore Missing includes Apr 27, 2016
.travis.yml Revert "Better enforce C++03 just in case. Can't wait to see how much… Jan 5, 2016
CHANGELOG.txt Fix typos, misspellings, duplicate words Jul 5, 2015
CMakeLists.txt Don't store the git specific hash suffix "-g" Dec 18, 2015
LICENSE.txt Fixing up installer and docs Jun 2, 2014 add new files to project May 13, 2016 Remove a FreeBSD specific ifdef and a redundant _WIN32 ifdef Nov 30, 2016
Run-Win32-Debug.bat Moving batches out of bin folder (used by Git Builder). May 2, 2014
Run-Win32-Release.bat Moving batches out of bin folder (used by Git Builder). May 2, 2014
Run-Win64-Debug.bat Update files Jun 5, 2014
Run-Win64-Release.bat Update files Jun 5, 2014 Use autoconf macros to search for opengl. May 20, 2013 Enable -Wall for C++ too Jul 6, 2014

OpenXcom Build Status

OpenXcom is an open-source clone of the popular "UFO: Enemy Unknown" ("X-COM: UFO Defense" in the USA release) and "X-COM: Terror From the Deep" videogames by Microprose, licensed under the GPL and written in C++ / SDL.

See more info at the website and the wiki.

Uses modified code from SDL_gfx (LGPL) with permission from author.


OpenXcom requires a vanilla copy of the X-COM resources -- from either or both of the original games. If you own the games on Steam, the Windows installer will automatically detect it and copy the resources over for you.

If you want to copy things over manually, you can find the Steam game folders at:

UFO: "Steam\SteamApps\common\XCom UFO Defense\XCOM"
TFTD: "Steam\SteamApps\common\X-COM Terror from the Deep\TFD"

Do not use modded versions (e.g. with XcomUtil) as they may cause bugs and crashes. Copy the UFO subfolders to the UFO subdirectory in OpenXcom's data or user folder and/or the TFTD subfolders to the TFTD subdirectory in OpenXcom's data or user folder (see below for folder locations).


Mods are an important and exciting part of the game. OpenXcom comes with a set of standard mods based on traditional XcomUtil and UFOExtender functionality. There is also a mod portal website with a thriving mod community with hundreds of innovative mods to choose from.

To install a mod, go to the mods subdirectory in your user directory (see below for folder locations). Extract the mod into a new subdirectory. WinZip has an "Extract to" option that creates a directory whose name is based on the archive name. It doesn't really matter what the directory name is as long as it is unique. Some mods are packed with extra directories at the top, so you may need to move files around inside the new mod directory to get things straighted out. For example, if you extract a mod to mods/LulzMod and you see something like:


and so on, just move everything up a level so it looks like:


and you're good to go! Enable your new mod on the Options -> Mods page in-game.

Directory Locations

OpenXcom has three directory locations that it searches for user and game files:

Folder Type Folder Contents
user mods, savegames, screenshots
config game configuration
data UFO and TFTD data files, standard mods, common resources

Each of these default to different paths on different operating systems (shown below). For the user and config directories, OpenXcom will search a list of directories and use the first one that already exists. If none exist, it will create a directory and use that. When searching for files in the data directory, OpenXcom will search through all of the named directories, so some files can be installed in one directory and others in another. This gives you some flexibility in case you can't copy UFO or TFTD resource files to some system locations. You can also specify your own path for each of these by passing a commandline argument when running OpenXcom. For example:

openxcom -data "$HOME/bin/OpenXcom/usr/share/openxcom"

or, if you have a fully self-contained installation:

openxcom -data "$HOME/games/openxcom/data" -user "$HOME/games/openxcom/user" -config "$HOME/games/openxcom/config"


User and Config folder:

  • C:\Documents and Settings\<user>\My Documents\OpenXcom (Windows 2000/XP)
  • C:\Users\<user>\Documents\OpenXcom (Windows Vista/7)
  • <game directory>\user
  • .\user

Data folders:

  • C:\Documents and Settings\<user>\My Documents\OpenXcom\data (Windows 2000/XP)
  • C:\Users\<user>\Documents\OpenXcom\data (Windows Vista/7/8)
  • <game directory>
  • . (the current directory)

Mac OS X

User and Config folder:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/Library/Application Support/OpenXcom
  • $HOME/.openxcom
  • ./user

Data folders:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/Library/Application Support/OpenXcom (if $XDG_DATA_HOME is not defined)
  • $XDG_DATA_DIRS/openxcom (for each directory in $XDG_DATA_DIRS if $XDG_DATA_DIRS is defined)
  • /Users/Shared/OpenXcom
  • . (the current directory)


User folder:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/.local/share/openxcom (if $XDG_DATA_HOME is not defined)
  • $HOME/.openxcom
  • ./user

Config folder:

  • $XDG_CONFIG_HOME/openxcom (if $XDG_CONFIG_HOME is defined)
  • $HOME/.config/openxcom (if $XDG_CONFIG_HOME is not defined)

Data folders:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/.local/share/openxcom (if $XDG_DATA_HOME is not defined)
  • $XDG_DATA_DIRS/openxcom (for each directory in $XDG_DATA_DIRS if $XDG_DATA_DIRS is defined)
  • /usr/local/share/openxcom
  • /usr/share/openxcom
  • . (the current directory)


OpenXcom has a variety of game settings and extras that can be customized, both in-game and out-game. These options are global and affect any old or new savegame.

For more details please check the wiki.


OpenXcom requires the following developer libraries:

The source code includes files for the following build tools:

  • Microsoft Visual C++ 2010 or newer
  • Xcode
  • Makefile
  • CMake
  • Autotools

It's also been tested on a variety of other tools on Windows/Mac/Linux. More detailed compiling instructions are available at the wiki, along with pre-compiled dependency packages.