diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 05e2741ab5..68a5f11171 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -34,7 +34,7 @@ env:
OPENRCT2_BUILD_SERVER: GitHub
OPENRCT2_ORG_TOKEN: ${{ secrets.OPENRCT2_ORG_TOKEN }}
BACKTRACE_IO_TOKEN: ${{ secrets.BACKTRACE_IO_TOKEN }}
- OPENRCT2_VERSION: 0.4.19.1
+ OPENRCT2_VERSION: 0.4.20
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value
concurrency:
diff --git a/debian/changelog b/debian/changelog
index b1f24ee8f3..9a2ef0cfd6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,48 @@
+openrct2 (0.4.20-develop-1) unstable; urgency=medium
+
+* Feature: [#22905] Add diagonal downward-inclined brakes to hybrid coaster and single rail coaster.
+* Feature: [#23759] Add see-through option to the “Cut-away View“.
+* Improved: [#23677] Building new ride track now inherits the colour scheme from the previous piece.
+* Improved: [#23720] Text fields now allow cutting to clipboard (Ctrl+X) in addition to copy and paste.
+* Improved: [#23874] The load/save file browser window now uses icons for its action buttons.
+* Improved: [#23875] Rides forbidden to be modified or destroyed can now be edited with the All destructible cheat.
+* Improved: [#23879] Unique weather icons for snow, heavy snow and blizzard.
+* Fix: [#1972, #11679] Vehicles passing by toilets can cause them to glitch (original bug).
+* Fix: [#9999, #10000, #10001, #10002, #10003] Truncated scenario strings when using Catalan, Czech, Japanese, Polish or Russian.
+* Fix: [#14486] Guests will fall through upwards sloped paths when making their way through a park entrance or ride exit (original bug).
+* Fix: [#15826, #23835] Wooden Roller Coaster steep turn supports glitch when train goes over them (original bug).
+* Fix: [#16357] Chairlift station covers draw incorrectly.
+* Fix: [#16657] Mine Ride right S-bend uses Mini Roller Coaster sprite (original bug).
+* Fix: [#18376] Ghost train gentle to flat track is not visible in tunnels.
+* Fix: [#18389] Gentle sloped track pieces are not visible in low clearance height tunnels (original bug).
+* Fix: [#18423] Underground Mini Golf holes can draw over land edges (original bug).
+* Fix: [#18433] CJK TrueType fonts cannot be located when font names are translated by the OS.
+* Fix: [#18436] Scenery on the same tile as steep to vertical track can draw over the track (original bug).
+* Fix: [#18711] Park entrances with their sides underground can cause glitching.
+* Fix: [#20848] Junior Roller Coaster booster track does not draw correctly in tunnels.
+* Fix: [#20948] Incorrect diagonal brakes supports on the Giga Coaster, Looping Roller Coaster and Wooden Roller Coaster.
+* Fix: [#21768] Dirty blocks debug overlay is rendered incorrectly on high DPI screens.
+* Fix: [#22229] Opening a park save file from a newer version of OpenRCT2 yields an unhelpful error message.
+* Fix: [#22617] Sloped Wooden and Side-Friction supports draw out of order when built directly above diagonal track pieces (original bug).
+* Fix: [#22620] Mine Train Coaster trains glitch on large banked turns.
+* Fix: [#23522] Diagonal sloped Steeplechase supports have glitched sprites at the base.
+* Fix: [#23580] Table header labels may overlap if the window is made very small.
+* Fix: [#23641] Steep to flat track is not drawn correctly in tunnels (original bug).
+* Fix: [#23795] Looping Roller Coaster vertical loop supports are drawn incorrectly.
+* Fix: [#23797] 3D Text cut off too early on multi-line signs.
+* Fix: [#23809] Trains glitch on Bobsleigh Coaster small helixes.
+* Fix: [#23811] Land edges glitch when vehicles go through gentle to flat tunnels.
+* Fix: [#23814] Scenarios not indexed on first start.
+* Fix: [#23818] Spinning tunnels can draw over sloped terrain in front of them.
+* Fix: [#23828] Vehicles passing by station entrances and exits can cause them to glitch (original bug).
+* Fix: [#23831] Hybrid Coaster large gentle banked right turns glitch when diagonal track is above them.
+* Fix: [#23832] Hybrid Coaster large gentle banked left turns supports glitch as train passes.
+* Fix: [#23836] Adjacent track can draw over large turns (original bug).
+* Fix: [#23858] LSM launched lift hill has a misaligned sprite.
+
openrct2 (0.4.19.1-develop-1) unstable; urgency=medium
+* Fix: [#23719] Prevent staff statistics from overflowing.
* Fix: [#23771] Weather transitions are horribly broken.
openrct2 (0.4.19-develop-1) unstable; urgency=medium
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index deca62367d..2d68a81492 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -1,4 +1,4 @@
-0.4.20 (in development)
+0.4.20 (2025-02-25)
------------------------------------------------------------------------
- Feature: [#22905] Add diagonal downward-inclined brakes to hybrid coaster and single rail coaster.
- Feature: [#23759] Add see-through option to the “Cut-away View“.
@@ -16,7 +16,7 @@
- Fix: [#18376] Ghost train gentle to flat track is not visible in tunnels.
- Fix: [#18389] Gentle sloped track pieces are not visible in low clearance height tunnels (original bug).
- Fix: [#18423] Underground Mini Golf holes can draw over land edges (original bug).
-- Fix: [#18433] CJK TrueType fonts could not be located when font names are translated by the OS.
+- Fix: [#18433] CJK TrueType fonts cannot be located when font names are translated by the OS.
- Fix: [#18436] Scenery on the same tile as steep to vertical track can draw over the track (original bug).
- Fix: [#18711] Park entrances with their sides underground can cause glitching.
- Fix: [#20848] Junior Roller Coaster booster track does not draw correctly in tunnels.
diff --git a/distribution/linux/openrct2.appdata.xml b/distribution/linux/openrct2.appdata.xml
index 8ae027acb8..7b5e70e8ee 100644
--- a/distribution/linux/openrct2.appdata.xml
+++ b/distribution/linux/openrct2.appdata.xml
@@ -353,6 +353,9 @@
none
+
+ https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.20
+
https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.19.1
diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist
index f442b8353e..faa38ce706 100644
--- a/distribution/macos/Info.plist
+++ b/distribution/macos/Info.plist
@@ -13,7 +13,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.4.19.1
+ 0.4.20
CFBundleSignature
ORCT
LSMinimumSystemVersion
diff --git a/readme.md b/readme.md
index 640273dc38..0ef4c96854 100644
--- a/readme.md
+++ b/readme.md
@@ -19,7 +19,7 @@
### Download
| Latest release | Latest development build |
|--------------------------------------------------------------------------------------------------------------------------|--------------------------|
-| [](https://openrct2.org/downloads/master/latest) | [](https://openrct2.org/downloads/develop/latest) |
+| [](https://openrct2.org/downloads/master/latest) | [](https://openrct2.org/downloads/develop/latest) |
---
diff --git a/src/openrct2-android/app/build.gradle b/src/openrct2-android/app/build.gradle
index 1d814f0023..1004db6868 100644
--- a/src/openrct2-android/app/build.gradle
+++ b/src/openrct2-android/app/build.gradle
@@ -10,8 +10,8 @@ android {
minSdkVersion 24
targetSdkVersion 28
- versionCode 7
- versionName '0.4.19.1'
+ versionCode 8
+ versionName '0.4.20'
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_shared'
diff --git a/src/openrct2/Version.h b/src/openrct2/Version.h
index 389f6246f5..156cdb221e 100644
--- a/src/openrct2/Version.h
+++ b/src/openrct2/Version.h
@@ -12,7 +12,7 @@
#include
#define OPENRCT2_NAME "OpenRCT2"
-#define kOpenRCT2Version "0.4.19.1"
+#define kOpenRCT2Version "0.4.20"
#if defined(__amd64__) || defined(_M_AMD64)
#define OPENRCT2_ARCHITECTURE "x86-64"
diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp
index 6eee292519..5972692a70 100644
--- a/src/openrct2/network/NetworkBase.cpp
+++ b/src/openrct2/network/NetworkBase.cpp
@@ -49,7 +49,7 @@ using namespace OpenRCT2;
// It is used for making sure only compatible builds get connected, even within
// single OpenRCT2 version.
-constexpr uint8_t kNetworkStreamVersion = 3;
+constexpr uint8_t kNetworkStreamVersion = 0;
const std::string kNetworkStreamID = std::string(kOpenRCT2Version) + "-" + std::to_string(kNetworkStreamVersion);