diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4119e7d820..16dd610f85 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.29
+ OPENRCT2_VERSION: 0.4.30
# 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 34c7ac2402..4696ef7a1c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,27 +1,65 @@
+openrct2 (0.4.30-develop-1) unstable; urgency=medium
+
+ * Improved: [#24912] Staff now use an appropriate standing animation while waiting at level crossings.
+ * Improved: [#25515] Path dragging can now be disabled via multiplayer group permissions.
+ * Improved: [#25529] The map selection grid no longer redraws every frame if it has not changed.
+ * Improved: [#25530] Wall dragging can now be cancelled without closing the Scenery window.
+ * Improved: [#25575] Updated the network protocol to a new format that supports larger packets, allowing clients to connect reliably to servers with many objects or large maps.
+ * Improved: [#25621] Added the Polish Złoty (PLN) to the list of available currencies.
+ * Improved: [#25625] Renewing and refurbishing rides now also resets the downtime.
+ * Improved: [#25662] The sprite build command is faster when building sprites from the same image file.
+ * Change: [#21912] Toilet income is now categorised as shop sales instead of ride tickets.
+ * Change: [#25403] Guests will not slide down the Spiral Slide if it's broken, even if they have already entered the ride structure.
+ * Change: [#25485] Make the enlarged pressed swatch sprite more pronounced.
+ * Change: [#25544] The default game window size is now 1280×720px instead of 640×480px.
+ * Fix: [#9895] Stand-up coaster gets wrong intensity boost from the synchronisation bonus.
+ * Fix: [#11617] Path corner connections are broken when hovering track design ghosts with paths over them in zero clearances.
+ * Fix: [#22484] Lingering ghost entrance after placing park entrance.
+ * Fix: [#24952] Duplicate track designs when running via Steam without having RCT1 linked.
+ * Fix: [#25187] On-ride photo platform does not render as ghost when placing track design.
+ * Fix: [#25229] Excessive logging of game actions, reduced to top-level game actions and filters ghost related ones.
+ * Fix: [#25469] Drawing in the ui.imageManager.draw callback causes an assertion.
+ * Fix: [#25524] The track construction arrow does not immediately change position when deleting track pieces.
+ * Fix: [#25552] Clear Scenery does not show an error message about insufficient money if cash is negative.
+ * Fix: [#25565] Chairlift station ends are missing tunnels at certain rotations.
+ * Fix: [#25569] Placing park entrances in multiplayer does not show for other players, causing desyncs.
+ * Fix: [#25571] Potential crash due to drawing a Crooked House ride.
+ * Fix: [#25588] When the master server becomes unreachable the server would not register again until a restart.
+ * Fix: [#25592] Log flume, river rapids, & splash boats can get control failure breakdown instead of brakes failure.
+ * Fix: [#25595] Invisible entrance is added to imported SV4 saves.
+ * Fix: [#25601] Inspection interval of a ride gets reset when opening the construction window.
+ * Fix: [#25628] Availability of AVX2 and SSE4.1 is not detected correctly.
+ * Fix: [#25639] Scenery window crashes when a no longer present object is still selected.
+ * Fix: [#25641] Desync because of mismatching inspection intervals.
+ * Fix: [#25642] The selection marker for purchasing land rights is not drawn with the correct colours.
+ * Fix: [#25646] It is possible to remove scenery and paths when setting staff patrol areas and purchasing land.
+ * Fix: [#25660] After saving a track design with scenery, that ride’s entrances and exits are visible in ‘Highlight path issues’ mode.
+ * Fix: [#25717] Umbrellas given to guests by means of cheats do not use the full (extended) range of colours.
+
openrct2 (0.4.29-develop-1) unstable; urgency=medium
-* Feature: [#25459] Wall line dragging tool.
-* Improved: [#25028] Stalls now support colour presets, just like regular rides.
-* Improved: [#25426] Building the track designs index is now quicker.
-* Improved: [#25490] The ‘New Ride’ window can now be resized.
-* Fix: [#6228] The saved queue line path connections are not preserved when placing track designs (original bug).
-* Fix: [#14365] Track designs with scenery below the lowest track piece do not preview correctly.
-* Fix: [#25451] Dropdown item tooltips stay open if the mouse is moved over an empty space.
-* Fix: [#25454] Opening the land tool while building a path bridge or tunnel closes the Footpaths window.
-* Fix: [#25461] Path connections in raised track designs are sometimes broken when placed.
-* Fix: [#25467] Paths are not connected together correctly in track design previews.
-* Fix: [#25476] When both RCT2 and RCT1 are present, autodetection fails.
-* Fix: [#25480] The mini track design preview and price are misaligned in Enlarged UI mode.
-* Fix: [#25488] Crash in headless mode.
-* Fix: [#25494] The Go-Karts steep to flat track does not draw correctly in the flat side tunnel.
-* Fix: [#25518] The virtual floor does not draw correctly if expanded on the positive x and y axes.
-* Fix: [#25519] Crackling audio when sampling frequencies do not match.
-* Fix: [objects#401] Round tunnels on down slopes glitch.
-* Fix: [objects#404] Wooden Wild Mine cars incorrectly allow setting a third remap colour.
-* Fix: [objects#408] Australian fountain sets have confusing naming.
-* Fix: [objects#409] LIM Launched Coaster trains incorrectly have a 10% intensity modifier set (original bug).
-* Fix: [objects#410] Large scenery from the Wacky Worlds Africa theming have incorrect previews when using specific versions of the RCT2 base game.
-* Fix: [objects#415] Penguin bobsleigh trains show incorrect sprites on the 12° down slope (original bug).
+ * Feature: [#25459] Wall line dragging tool.
+ * Improved: [#25028] Stalls now support colour presets, just like regular rides.
+ * Improved: [#25426] Building the track designs index is now quicker.
+ * Improved: [#25490] The ‘New Ride’ window can now be resized.
+ * Fix: [#6228] The saved queue line path connections are not preserved when placing track designs (original bug).
+ * Fix: [#14365] Track designs with scenery below the lowest track piece do not preview correctly.
+ * Fix: [#25451] Dropdown item tooltips stay open if the mouse is moved over an empty space.
+ * Fix: [#25454] Opening the land tool while building a path bridge or tunnel closes the Footpaths window.
+ * Fix: [#25461] Path connections in raised track designs are sometimes broken when placed.
+ * Fix: [#25467] Paths are not connected together correctly in track design previews.
+ * Fix: [#25476] When both RCT2 and RCT1 are present, autodetection fails.
+ * Fix: [#25480] The mini track design preview and price are misaligned in Enlarged UI mode.
+ * Fix: [#25488] Crash in headless mode.
+ * Fix: [#25494] The Go-Karts steep to flat track does not draw correctly in the flat side tunnel.
+ * Fix: [#25518] The virtual floor does not draw correctly if expanded on the positive x and y axes.
+ * Fix: [#25519] Crackling audio when sampling frequencies do not match.
+ * Fix: [objects#401] Round tunnels on down slopes glitch.
+ * Fix: [objects#404] Wooden Wild Mine cars incorrectly allow setting a third remap colour.
+ * Fix: [objects#408] Australian fountain sets have confusing naming.
+ * Fix: [objects#409] LIM Launched Coaster trains incorrectly have a 10% intensity modifier set (original bug).
+ * Fix: [objects#410] Large scenery from the Wacky Worlds Africa theming have incorrect previews when using specific versions of the RCT2 base game.
+ * Fix: [objects#415] Penguin bobsleigh trains show incorrect sprites on the 12° down slope (original bug).
openrct2 (0.4.28-develop-1) unstable; urgency=medium
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index 5c66141169..6502243b10 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -1,4 +1,4 @@
-0.4.30 (in development)
+0.4.30 (2026-01-04)
------------------------------------------------------------------------
- Improved: [#24912] Staff now use an appropriate standing animation while waiting at level crossings.
- Improved: [#25515] Path dragging can now be disabled via multiplayer group permissions.
@@ -30,7 +30,7 @@
- Fix: [#25601] Inspection interval of a ride gets reset when opening the construction window.
- Fix: [#25628] Availability of AVX2 and SSE4.1 is not detected correctly.
- Fix: [#25639] Scenery window crashes when a no longer present object is still selected.
-- Fix: [#25641] Desync because of mismatching inspection intervals.
+- Fix: [#25641] Desync because of mismatching inspection intervals.
- Fix: [#25642] The selection marker for purchasing land rights is not drawn with the correct colours.
- Fix: [#25646] It is possible to remove scenery and paths when setting staff patrol areas and purchasing land.
- Fix: [#25660] After saving a track design with scenery, that ride’s entrances and exits are visible in ‘Highlight path issues’ mode.
diff --git a/distribution/linux/io.openrct2.openrct2.appdata.xml b/distribution/linux/io.openrct2.openrct2.appdata.xml
index 583a9fb40a..de95e3054c 100644
--- a/distribution/linux/io.openrct2.openrct2.appdata.xml
+++ b/distribution/linux/io.openrct2.openrct2.appdata.xml
@@ -456,6 +456,9 @@
none
+
+ https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.30
+
https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.29
diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist
index 62ef86f8ab..bbc7d2d997 100644
--- a/distribution/macos/Info.plist
+++ b/distribution/macos/Info.plist
@@ -13,7 +13,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.4.29
+ 0.4.30
CFBundleSignature
ORCT
LSMinimumSystemVersion
diff --git a/src/openrct2-android/app/build.gradle b/src/openrct2-android/app/build.gradle
index a6a9c76b7b..983de72df2 100644
--- a/src/openrct2-android/app/build.gradle
+++ b/src/openrct2-android/app/build.gradle
@@ -21,8 +21,8 @@ android {
minSdkVersion 24
targetSdkVersion 36
- versionCode 16
- versionName '0.4.29'
+ versionCode 17
+ versionName '0.4.30'
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_shared', '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON'
diff --git a/src/openrct2/Version.h b/src/openrct2/Version.h
index 14674796b4..c56269e2d0 100644
--- a/src/openrct2/Version.h
+++ b/src/openrct2/Version.h
@@ -12,7 +12,7 @@
#include
#define OPENRCT2_NAME "OpenRCT2"
-#define kOpenRCT2Version "0.4.29"
+#define kOpenRCT2Version "0.4.30"
#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 6a5ef0f5e3..019b022b78 100644
--- a/src/openrct2/network/NetworkBase.cpp
+++ b/src/openrct2/network/NetworkBase.cpp
@@ -47,7 +47,7 @@
// It is used for making sure only compatible builds get connected, even within
// single OpenRCT2 version.
-constexpr uint8_t kStreamVersion = 7;
+constexpr uint8_t kStreamVersion = 0;
const std::string kStreamID = std::string(kOpenRCT2Version) + "-" + std::to_string(kStreamVersion);