Skip to content

OpenTTD

Media Servers

A free, open‑source transport simulation game based on Transport Tycoon Deluxe

C++ Latest 15.3 · 2mo ago Security brief →

Features

  • Recreates Transport Tycoon Deluxe with modern extensions and additional features
  • Supports multiple platforms: Linux (SDL), macOS (Cocoa) and Windows (GDI/OpenGL)
  • Allows installation via pre‑built binaries, package managers or source compilation
  • Provides free graphics (OpenGFX) and sound/music packs for out‑of‑the‑box play

Recent releases

View all 4 releases →
15.3 Bug fix

Fixed desyncs caused by train crashes.

Full changelog

15.3 (2026-04-04)

  • Fix: Conditional orders could require a maximum reliability over 100% (#15409)
  • Fix: Improve appearance of toolbars and main menu images/text with some non-default base sets (#15402)
  • Fix: [Script] IsBuildableRectangle for a 0x0 tile should return false (#15357)
  • Fix: Desync caused by train crashes (#15338)
  • Fix: Incorrect scroll bar capacity for train details window total cargo tab (#15329)
  • Fix #15310: Crash caused by a helicopter running out of fuel near map edge (#15311)
15.2 Bug fix

Fixed crash when building a drive‑through stop on an unowned one‑way road.

Full changelog

15.2 (2026-02-18)

  • Fix: Crashed zeppelin not blocking runway (#15281)
  • Fix #15269: Crash when building drive-through stop on unowned one-way road (#15270)
  • Fix #15247: Crash when handling invalid sprite in OpenGL cursor sprite system (#15248)
  • Fix #15105: Czech townname generation causing crashes (#15231)
  • Fix: Incorrect ground type test when placing towns (#15217)
  • Fix: Town supplied cargo history incorrectly clamped to 16 bit values (#15183)
  • Fix #15085: Crash when GUI scale changes before video driver is fully initialised (#15175)
  • Fix: Articulated road vehicle following with immediately sequential u-turns (#15170)
  • Fix #15166: Foundations missing adjacent to NewGRF objects without foundation (#15168)
  • Fix #14035: [Fluidsynth] Read settings from config files if available (#15044)
  • Fix #15263: Badge filter toggles no longer worked (#14972)
15.1 Security relevant
Security fixes
  • Critical security fixes awaiting a CVE ID
Full changelog

15.1 (2026-01-24)

This release contains critical security fixes awaiting a CVE ID.

  • Fix #15088: When building a new train, the refit button state may be incorrect (#15162)
  • Fix #15160: Incorrect company names displayed in load game window (#15161)
  • Fix #15153: Wrong tile used to get bridge reservation overlay (#15154)
  • Fix #15116: Old cargo/industry sets without cargo translation table broken (#15150)
  • Fix: Possible crash converting company liveries in older savegames/scenarios (#15148)
  • Fix: Allow infinite water to be (de)selected when loading heightmap (#15146)
  • Fix: Tile suitability test for farm field no longer handled snow tiles (#15134)
  • Fix #15131: Trees no longer spread on partially snowy tiles (#15133)
  • Fix: Change tooltips to match change from checkboxes to switches (#15123)
  • Fix: [Script] Potential out of bounds array/string slice indexes (#15106)
  • Fix: [Script] Potential out of bounds indexed string access (#15106)
  • Fix: [Script] Check if array sort function modified array (#15106)
  • Fix #15069: World generation map edges GUI starts in an invalid state (#15082)
  • Fix #15079: Incorrect dates shown on town cargo history graph (#15080)
  • Fix #15067: Mark NewGRF settings as modified after moving by drag & drop (#15068)
  • Fix: Incorrect error message for aqueducts reaching northern map borders (#14974)
  • Fix: Standardize wording of GRF/NewGRF (#15059)
  • Fix #15046: Crash on loading game due to invalid group parents (#15049)
  • Fix: Disable_elrails handling with engines that use both RAIL and ELRL (#15045)
  • Fix: [Fluidsynth] Read settings from system and user config files if available (#15044)
  • Fix #15039: Name and version can disappear from content list (#15040)
  • Fix #15026: Remove incorrect info from base sounds tooltip (#15029)
  • Fix: [Script] Improve reporting of invalid GetAPIVersion return (#15015)
  • Fix: [Script] Undefined behaviour after calling SwapList during iteration (#14805)
15.0 Bug fix

Fixed rare crashes and hanging loops with vehicles in depots, buoys under bridges, dropdowns during endgame, town spawning near water, minutes‑per‑year for old saves, division‑by‑zero drawing lines, and non‑stop order waypoint handling.

Full changelog

15.0 (2026-01-01)

  • Fix: Small ufos would loop over vehicles in depots forever (#15008)
  • Fix #14982: Can't place buoys under bridges (#15007)
  • Fix #15004: Crashes when dropdown is held open during endgame screen (#15006)
  • Fix: Further improve town spawning near water (#15002)
  • Fix: Use correct 'minutes per year' setting for old savegames (#14995)
  • Fix: Rare crash dividing by 0 when drawing a line (#14994)
  • Fix #14992: Respect non-stop order setting when adding waypoint orders (#14993)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
7,909
Forks
1,196
Languages
C++ C CMake

Install & Platforms

Install via
binary apt dnf pacman zypper
Platforms
linux macos windows

Beta — feedback welcome: [email protected]