Hatsune Miku illustration with Spearmint accessory
Spearmint

A video game engine based on Quake 3.

What is Spearmint?

Spearmint Quake 3 screenshot
Spearmint Quake 3 screenshot

Spearmint is a heavily modified version of the Quake III Arena engine. It is directly based on ioquake3 (November 2018). It was originally intended to be used exclusively for creating new games but it kept the ability to play the Quake 3 data.

Spearmint is not compatible with Quake III Arena servers, mods (the QVM/DLL files), or demos (game recordings). If you want to play on Quake III Arena servers I would recommend using ioquake3 and my widescreen HUD mod.

Most interesting features for players:
  • Aspect correct widescreen.
  • High resolution font support (TrueType).
  • Bullet marks on doors and moving platforms.
  • Dynamic lights have smoother edges.
  • Four player splitscreen support.
  • Improved Bot AI.
  • Improved gamepad support.
  • Instagib mode.
  • Unlagged instant hit weapons (optional).
More eye candy:
  • Smooth corpse sinking.
  • Gibs and bullet shells ride on moving platforms.
  • Player shadow moves with model animations.
  • In multiplayer with gibs disabled, bodies no longer become invisible when gibbed.
  • Option to fade out explosion lights instead of shrinking them (set cg_fadeExplosions cvar to 1).
Spearmint logo
Spearmint is no longer being developed since October 2018 (blog post). It may remain playable but due to lack of support it may not be a good base for creating a new game. There may be future updates to fix issues but it's not a high priority.

For discussion / technical support, see clover.moe/open-source.

Modding Improvements

Spearmint has many new modding features and moved a lot of the engine functionality into the gamecode. It's possible to create new cross-platform games without modifying the engine.

  • New shader keywords and game objects.
  • New networked variables can be added to players and game objects (playerState_t and entityState_t).
  • New system calls for CGame and Game VMs.
  • Merged UI VM into CGame VM so the CGame<->UI communication is more flexible.
  • Moved a lot of code from the server and client to Game and CGame VMs including;
    • Setting up the player input sent to the server (usercmd_t)
    • All of the bot AI
    • Drawing the console, chat input overlay, demo recording message, etc
  • The engine and game code have been split into separate repositories so it's easy to fork the game code for mods.
See the Spearmint documentation.

Download

Buy Me a Coffee at ko-fi.com

To play Spearmint Quake 3, after extracting the Spearmint download you need to copy the Quake 3 pak[0-8].pk3 files into spearmint-version-platform\baseq3\. If you don't own Quake 3 you can purchase it or play using the data from the Quake 3 demo, Team Arena demo, or OpenArena 0.8.8. See the included readme for more details.

If you extract Spearmint 1.0.0 or later over a previous Spearmint version, you need to manually remove spearmint-patch-*.pk3 files from the baseq3 and missionpack directories. They were replaced with spearmint-baseq3-*.pk3 and spearmint-missionpack-*.pk3.

Spearmint 1.0.3

Spearmint 1.0.3 (July 10 2020) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It is compatible with Spearmint 1.0.0. Announcement post.

Known issues; On Windows the keypad 5 key doesn't work without numlock enabled and on macOS 10.6+ the client only executes mouse wheel control binds if wheel is turned multiple notches (SDL 2.0.8 bugs). Servers using sv_dlUrl for HTTP downloads need to set sv_allowDownload to 9 for UDP/HTTP or 8 for HTTP only to avoid a Spearmint 1.0.0/1.0.1 client error.

Past Releases

Spearmint 1.0.2

Spearmint 1.0.2 (November 3 2019) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It is compatible with Spearmint 1.0.0. Announcement post.

Known issues; On Windows the keypad 5 key doesn't work without numlock enabled and on macOS 10.6+ the client only executes mouse wheel control binds if wheel is turned multiple notches (SDL 2.0.8 bugs). Servers using sv_dlUrl for HTTP downloads need to set sv_allowDownload to 9 for UDP/HTTP or 8 for HTTP only to avoid a Spearmint 1.0.0/1.0.1 client error.

Spearmint 1.0.1

Spearmint 1.0.1 (November 15 2018) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It is compatible with Spearmint 1.0.0. Announcement post.

Known issues; On Windows the keypad 5 key doesn't work without numlock enabled and on macOS 10.6+ the client only executes mouse wheel control binds if wheel is turned multiple notches (SDL 2.0.8 bugs). Servers using sv_dlUrl for HTTP downloads need to set sv_allowDownload to 9 for UDP/HTTP or 8 for HTTP only to avoid a client error.

Spearmint 1.0.0

Spearmint 1.0.0 (October 10 2018) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It is not compatible previous versions. Announcement post.

Known issues; On Windows the keypad 5 key doesn't work without numlock enabled and on macOS 10.6+ the client only executes mouse wheel control binds if wheel is turned multiple notches (SDL 2.0.8 bugs). Servers using sv_dlUrl for HTTP downloads need to set sv_allowDownload to 9 for UDP/HTTP or 8 for HTTP only to avoid a client error.

Spearmint 0.6

Spearmint 0.6 (April 13 2018) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It's compatible with 0.5. Announcement post.

Spearmint 0.5

Spearmint 0.5 (October 13 2017) with support files for Quake 3 and Team Arena (full and demo versions) and OpenArena 0.8.8 without the new game modes. It is not compatible previous versions. Announcement post.

Spearmint 0.4

Spearmint 0.4 (July 13 2016) with support files for Quake 3 and Team Arena. It is not compatible previous versions. Announcement post.

Spearmint 0.3

Spearmint 0.3 (May 13 2016) with support files for Quake 3 and Team Arena. It is not compatible previous versions. Announcement post.

Spearmint 0.2

Spearmint 0.2 (November 13 2015) with support files for Quake 3 and Team Arena. It is not compatible previous versions. Announcement post.

Spearmint 0.1.1

Spearmint 0.1.1 (November 11 2015) with support files for Quake 3 and Team Arena. It's compatible with 0.1. Announcement post.

Spearmint 0.1

Spearmint 0.1 (March 13 2015) with support files for Quake 3 and Team Arena. Announcement post.


macOS

The macOS app is not code-signed so you may need to workaround the gatekeeper.

1) Give Spearmint permission to read files.

    Open Terminal and run:

    xattr -dr com.apple.quarantine /Applications/spearmint-1.0.3-macosx

    "/Applications/spearmint-1.0.3-macosx" should be where ever you have extracted the directory from the Spearmint DMG.

    Solves: Unable to locate data files. You need to install baseq3 in order to play.

2) Give Spearmint permission to run.

    Open Finder and locate Spearmint app. Hold Control key and click Spearmint to open context menu and then click Open in the context menu.

    Solves: "Spearmint" can't be opened because it's from an unidentified developer.

Addons

You can download additional Quake 3 levels at lvlworld. They are not recommended for use with the Quake 3 or Team Arena demos. You can download additional Quake 3 player models and skins at WorldSpawn and ioquake3. Place the pk3 files into the folder for the games use you using (baseq3, demoq3, tademo, baseoa).

Source Code

The source code for the Spearmint engine and the compatible Quake 3 game code is available on Github under the GNU General Public License version 3 or (at your option) any later version. There are additional license terms inherited from RTCW and ET.

Misc

Spearmint Credits

Zack Middleton (main developer)
Tobias Kuehnhammer (feedback / bug reports / Bot AI fixes)
And other contributors

Spearmint contains code from;

Quake 3 - id Software
ioquake3 - ioquake3 contributors
RTCW SP - Gray Matter Interactive
RTCW MP - Nerve Software
Wolfenstein: Enemy Territory - Splash Damage
Tremulous - Dark Legion Development
World of Padman - Padworld Entertainment
ioEF engine - Thilo Schulz
NetRadiant's q3map2 - Rudolf Polzer
OpenArena - OpenArena contributors
OpenMoHAA - OpenMoHAA contributors
Xreal (triangle mesh collision) - Robert Beckebans

Spearmint Logo

Creative Commons License
Spearmint Logo by Zack Middleton is licensed under a Creative Commons Attribution-ShareAlike 3.0 International License.

Spearmint Logo with caption uses "M+ 1mn Medium" font from M+ Outline Fonts.

Hatsune Miku illustration with Spearmint accessory

Creative Commons License

Quake 3 Screenshot

Graphics copyright 1999-2000 id Software. Liberation Sans font is available under the SIL Open Font License.