Exult is a free, open-source engine that recreates Ultima VII, Origin Systems’ celebrated 1992 role-playing game, for modern computers. Instead of emulating the old DOS program, it reimplements the game engine in C++ and reads Ultima VII’s own data files, so you can play Ultima VII: The Black Gate and Ultima VII Part Two: Serpent Isle from start to finish on Windows, macOS, Linux, Android and iOS.
This profile covers where Exult came from, how it works, how its modding tools and Usecode language work, what you can play with it, and where the project stands in 2026. It includes a Usecode script we compiled with the current tools. Facts were checked against the Exult source repository, its NEWS file and website, and GOG’s store page in November 2026.
What Is Exult?
Exult is a free, open-source engine, written in C++ with SDL, that runs Ultima VII: The Black Gate and Serpent Isle on modern systems using the 1992 game’s own data. It adds higher resolutions, scalers, new options and fixes, and comes with Exult Studio and a Usecode compiler for making mods. It’s licensed under the GPL, and the latest stable release is 1.12.1 (January 2026).
Exult at a glance
| What it runs | Ultima VII: The Black Gate and Serpent Isle (with add-ons) |
|---|---|
| Created by | Jeff Freedman (“DrCode”) and the Exult team |
| Started | September 1998 (version 0.01) |
| Version 1.0 | November 7, 2002 |
| Written in | C++, with SDL |
| Modding | Exult Studio and the UCC Usecode compiler |
| Platforms | Windows, macOS, Linux, Android, iOS |
| Licence | GNU GPL v2 |
| Latest stable release | 1.12.1 (January 8, 2026) |
| In development | SDL3-based snapshots (1.13.1) |
Why Ultima VII Needed Exult
Ultima VII: The Black Gate was released by Origin Systems on April 16, 1992, followed by Serpent Isle in 1993. It was famous for a living world in which every object could be picked up and every character kept a daily schedule. But it was a DOS game with a very nonstandard memory manager, which made it hard to run even on the PCs of a few years later, let alone today’s computers.
Exult takes a different approach from an emulator: it’s a new engine that understands Ultima VII’s data. It can only do that thanks to fans who decoded the game’s file formats, a debt the project acknowledges in its README. You still need the game itself, and the Exult team encourages buying a legal copy. Both parts, with their add-ons The Forge of Virtue and The Silver Seed, are sold together as Ultima 7 Complete on GOG (Ultima 7 Complete on GOG).
A Short History of Exult
Exult was started by Jeff Freedman (“DrCode”). Its NEWS file starts with version 0.01 on September 25, 1998. Within weeks it could show the objects in the game world, by October 1998 the avatar could walk around, and in April 1999 the first conversation engine arrived. A team formed around the project, and version 0.12, in February 2000, replaced the X Window (XLib) and Win32 code with the cross-platform SDL library.
Exult 1.0 was released on November 7, 2002, after four years of coding, and 1.2 followed in June 2004. Then the project went quiet. The team spent years making Exult more moddable through Exult Studio, which broke other things, and only a release candidate, 1.4.9rc1, appeared in October 2010. The code moved to GitHub in March 2016, and 1.6 finally arrived on April 17, 2020, the day after Ultima VII’s 28th anniversary.
Since then, releases have come every two years or less: 1.8 for the game’s 30th anniversary in April 2022, 1.10 in September 2024, 1.12 in May 2025 and the hotfix 1.12.1 in January 2026 (the Exult website).
How Exult Works
- The engine. Exult reads Ultima VII’s own files for the map, shapes (graphics), fonts, palettes and, most importantly, Usecode: the compiled scripts that drive almost all of the game’s story and interactions. Exult includes a virtual machine that runs that Usecode, just as the 1992 engine did.
- Improvements over the DOS game. Exult adds larger and higher-resolution game windows, image scalers, multiple save slots, combat options, status bars, a paperdoll inventory, a shortcut bar, a cheat menu and many bug fixes. It plays digital music and supports several MIDI options.
- Platforms. Official builds are available for Windows, macOS and Android, with Linux built from source or packages. The project’s automated builds also cover iOS, FreeBSD and OmniOS.
- The code. Exult is written in C++ with SDL. The 1.6 release moved it to SDL2, and the development snapshots have since moved to SDL3.
Modding Exult: Exult Studio and Usecode
Exult Studio is the project’s map and game editor. It works alongside a running copy of Exult, so you can place objects, edit shapes, change NPCs and their schedules, and see the result in the game world immediately. Studio uses GTK+ 3 and is available for Windows, macOS and Linux.
Game logic is written in Usecode C, a C-like language compiled by the UCC compiler that comes with Exult. Each object type (a “shape”) or character can have a Usecode function that runs when the player double-clicks it, talks to it, or triggers an event. Mods can add new functions or override the game’s own.
This example gives a wooden sign a memory: the first time you read it, it welcomes you, and after that it tells you how many times you’ve read it:
// signpost.uc: a wooden sign that counts how many times it has been read.
#game "blackgate"
const int DOUBLECLICK = 1;
void Wood_sign shape#(167) () {
if (event != DOUBLECLICK) {
return;
}
// Each item has a "quality" number; we use it as a read counter.
var reads = get_item_quality() + 1;
set_item_quality(reads);
if (reads == 1) {
UI_display_runes(44, ["Welcome,", "traveller!"]);
} else {
UI_display_runes(44, ["Read " + reads + " times.", "Still welcome!"]);
}
}
A few things to notice:
shape#(167)attaches the function to shape 167, the wooden sign in Exult’s demo game. Every sign of that shape now runs this code.eventsays why the function was called. Here it only reacts to a double-click.get_item_quality()andset_item_quality()read and write a number stored on the sign itself, so each sign keeps its own count.UI_display_runes()shows text on a sign-style gump, as Ultima VII does for plaques and signposts.
How we tested it: we built Exult’s current development version (November 4, 2026) with its tools and the UCC compiler on Ubuntu 24.04, and compiled this script without errors. We then disassembled the result with Exult’s own ucxt tool: it showed one function, number 167, that checks the event, reads and updates the sign’s quality, and calls display_runes with the two messages, exactly as written. We compiled and checked it, but didn’t play through it in a running game.
What You Can Play with Exult
| Game or mod | Notes |
|---|---|
| Ultima VII: The Black Gate | Origin Systems, 1992. Fully playable from start to finish, with or without the Forge of Virtue add-on |
| Ultima VII Part Two: Serpent Isle | Origin Systems, 1993. Fully playable, with or without The Silver Seed. Since 1.8, Exult plays the longer Serpent Isle intro that was cut from the 1993 release |
| Exult’s own mods | Mods such as Keyring and Serpent Isle Fixes, which the Windows installer can install for you |
| Ultima VI Remake | A fan project that rebuilt Ultima VI on the Exult engine with Ultima VII-style graphics, released in 2023 |
| Demo game | A small example game added to Exult’s source in March 2026, as a starting point for building your own game |
Exult was voted the Ultima Codex’s Fan Project of the Year 2014, and the team received a certificate signed by Ultima’s creator, Richard Garriott.
Exult in 2026
- It’s actively developed. The latest stable release is 1.12.1 (January 8, 2026), a hotfix that fixed crashes and a plot-stopping bug. On March 27, 2026, the Windows version was re-released as 1.12.1-1 to stop antivirus false positives.
- The next version is in the snapshots. The development branch has moved to SDL3, improved NPC schedules, made Exult fully translatable, added a way to build cutscenes, and given Exult Studio many new features. Snapshot builds are published several times a month on GitHub (Exult on GitHub).
- The team is busy. The repository passed 10,000 commits in 2026, and 2025 was its busiest year since 2002, with 748 commits.
Common Misconceptions About Exult
- “Exult was created in 2004.” Work began in 1998, and 1.0 came out in 2002. 2004 was the year of version 1.2.
- “Exult includes Ultima VII.” It doesn’t. It’s only the engine; you need the Ultima VII game files, which are sold on GOG.
- “Exult can play Ultima VII online.” Exult is a single-player engine. Ultima Online is a different game.
- “Nothing else runs on Exult.” The Ultima VI Remake runs on it, and Exult now includes a small demo game for people who want to build their own.
Exult Alternatives
- DOSBox: to play the DOS release of Ultima VII exactly as it was, an emulator such as DOSBox is the other route; GOG’s version uses it (DOSBox).
- Godot: a free, open-source engine if you want to build your own 2D RPG from scratch. See our Godot engine profile.
- Aurora Toolset: BioWare’s module editor for Neverwinter Nights, another long-lived RPG modding community. See our Aurora Engine and Toolset profile.
For more open-source engines, browse our directory of open-source C++ game engines.
Key Takeaways
- Exult is a free, open-source C++ engine that runs Ultima VII: The Black Gate and Serpent Isle on modern systems, using the game’s own data.
- It began in 1998, reached 1.0 in 2002, and, after a long quiet spell, has released regularly since 2020.
- It improves on the DOS game with higher resolutions, scalers, more save slots, a shortcut bar and many fixes.
- Exult Studio and the UCC compiler let you build mods, with game logic written in the C-like Usecode language.
- The latest stable release is 1.12.1 (January 2026), with an SDL3-based version in development.
- You need your own copy of Ultima VII, which GOG sells as Ultima 7 Complete.
Conclusion
Exult started as one programmer’s attempt to read Ultima VII’s files and grew into one of the most complete fan reimplementations of a classic game. More than a quarter of a century later, it’s more active than ever, and it’s become a modding platform as well as a way to play. If you own Ultima VII, it’s the best way to play it today.
For more engines across every genre, browse our game development hub.




