diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 745b98577d..dfce0d2512 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.23
+ OPENRCT2_VERSION: 0.4.24
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value
concurrency:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6ad46a041..d5e032400e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,9 +70,9 @@ set(TITLE_SEQUENCE_VERSION "0.4.14")
set(TITLE_SEQUENCE_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
set(TITLE_SEQUENCE_SHA1 "6c04781b959b468e1f65ec2d2f21f5aaa5e5724d")
-set(OBJECTS_VERSION "1.7.0")
+set(OBJECTS_VERSION "1.7.1")
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
-set(OBJECTS_SHA1 "214f6e359c2c2b466acea3c763e87896514d62cb")
+set(OBJECTS_SHA1 "6bfcb5f8dbd87b049071088baba029d8215f969c")
set(OPENSFX_VERSION "1.0.5")
set(OPENSFX_URL "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${OPENSFX_VERSION}/opensound.zip")
diff --git a/data/language/nl-NL.txt b/data/language/nl-NL.txt
index 5b5957b435..618dc80ecd 100644
--- a/data/language/nl-NL.txt
+++ b/data/language/nl-NL.txt
@@ -3819,3 +3819,10 @@ STR_6781 :Screenshots
STR_6782 :Park
STR_6783 :Attracties
STR_6784 :Bezoekers
+STR_6785 :Gamepad
+STR_6786 :Dode zone:
+STR_6787 :Dode zone voor de analogue stick (minimaal vereiste beweging voordat het spel reageert)
+STR_6788 :Gevoeligheid:
+STR_6789 :Gevoeligheidsfactor voor de analoge stick
+STR_6790 :Dode zone: {COMMA32}%
+STR_6791 :Gevoeligheid: {COMMA32}%
diff --git a/debian/changelog b/debian/changelog
index d7851510d8..7bf08e0766 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,33 @@
+openrct2 (0.4.24-develop-1) unstable; urgency=medium
+
+* Feature: [#24411] Vanilla scenarios now also have previews in the scenario selection window.
+* Feature: [#24616] Add ability to scroll map with gamepad sticks.
+* Feature: [#24662] Add optional screenshot argument for Z coord.
+* Improved: [#22684] The limit of 2000 animated tile elements has been removed.
+* Improved: [#23228] Landscape edge doors now animate opening and closing and play a sound.
+* Improved: [#24026] Notification settings have been made into a tab of the Recent Messages window.
+* Improved: [#24569, #24710] Add ten additional translations to the Windows installer.
+* Change: [#24559] Scenario options are now disabled rather than hidden when disabling money makes them non-applicable.
+* Change: [objects#383] Disable all base colours on non-remappable WWTT vehicles, change black to light_blue.
+* Change: [objects#384] Remove erroneously enabled WWTT third remaps.
+* Removed: [#24628] “Pause game when Steam overlay is open” feature (already broken for a long time).
+* Removed: [#24640] Grouping by difficulty (instead of per campaign) in the scenario selector.
+* Fix: [#15846] Rightclicking on track piece when there is construction below does not work.
+* Fix: [#16176, #23113] Animated tile elements do not always redraw when there is over 2000.
+* Fix: [#17365] The slope of new land surfaces is only correct on one side when shifting and resizing the map.
+* Fix: [#18080] Obsolete official .DAT files can be loaded accidentally.
+* Fix: [#21703] Scenery wall doors get stuck open if the game is saved and loaded whilst they are open.
+* Fix: [#24456] Zoomed out vehicles on the ride window tab can sometimes draw incorrectly.
+* Fix: [#24458] Vehicles in the ride window vehicle tab are offset differently than vanilla RCT2, and the sprites are cut off at the bottom.
+* Fix: [#24576] It is possible to edit open rides in certain circumstances.
+* Fix: [#24589] Music tab doesn’t fully render in multiplayer.
+* Fix: [#24615] Blank strings in Windows installer.
+* Fix: [#24617] ‘Divide by zero’ error when updating boat hire acceleration.
+* Fix: [#24626] Viewports that only follow sprites (e.g. in the Ride and Guest windows) can be made to unfollow them.
+* Fix: [#24661] `convert` console command always crashes with a segmentation fault.
+* Fix: [#24666] `convert` console command rejects files with an SV7 extension.
+* Fix: [objects#388] ‘Italian Police Ride’ has a non-functional first remap colour.
+
openrct2 (0.4.23-develop-1) unstable; urgency=medium
* Feature: [#22476] “Time since last inspection” statistic is available in the rides window.
diff --git a/distribution/changelog.txt b/distribution/changelog.txt
index 65efc88a4d..5fe8703e28 100644
--- a/distribution/changelog.txt
+++ b/distribution/changelog.txt
@@ -1,4 +1,4 @@
-0.4.24 (in development)
+0.4.24 (2025-07-05)
------------------------------------------------------------------------
- Feature: [#24411] Vanilla scenarios now also have previews in the scenario selection window.
- Feature: [#24616] Add ability to scroll map with gamepad sticks.
@@ -26,6 +26,7 @@
- Fix: [#24626] Viewports that only follow sprites (e.g. in the Ride and Guest windows) can be made to unfollow them.
- Fix: [#24661] `convert` console command always crashes with a segmentation fault.
- Fix: [#24666] `convert` console command rejects files with an SV7 extension.
+- Fix: [objects#388] ‘Italian Police Ride’ has a non-functional first remap colour.
0.4.23 (2025-06-07)
------------------------------------------------------------------------
diff --git a/distribution/linux/openrct2.appdata.xml b/distribution/linux/openrct2.appdata.xml
index e50a35a37b..21fef703af 100644
--- a/distribution/linux/openrct2.appdata.xml
+++ b/distribution/linux/openrct2.appdata.xml
@@ -430,7 +430,10 @@
none
-
+
+ https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.24
+
+
https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.23
diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist
index 53d759defe..18662975cf 100644
--- a/distribution/macos/Info.plist
+++ b/distribution/macos/Info.plist
@@ -13,7 +13,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.4.23
+ 0.4.24
CFBundleSignature
ORCT
LSMinimumSystemVersion
diff --git a/openrct2.deps.targets b/openrct2.deps.targets
index 2253b39559..9c2bb75b5f 100644
--- a/openrct2.deps.targets
+++ b/openrct2.deps.targets
@@ -218,8 +218,8 @@
9984c1e317dcfb3aaf8e17f1db2ebb0f771e2373
https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.14/title-sequences.zip
6c04781b959b468e1f65ec2d2f21f5aaa5e5724d
- https://github.com/OpenRCT2/objects/releases/download/v1.7.0/objects.zip
- 214f6e359c2c2b466acea3c763e87896514d62cb
+ https://github.com/OpenRCT2/objects/releases/download/v1.7.1/objects.zip
+ 6bfcb5f8dbd87b049071088baba029d8215f969c
https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v1.0.5/opensound.zip
b1b1f1b241d2cbff63a1889c4dc5a09bdf769bfb
https://github.com/OpenRCT2/OpenMusic/releases/download/v1.6/openmusic.zip
diff --git a/readme.md b/readme.md
index 2d43a3a4c5..b15633bcda 100644
--- a/readme.md
+++ b/readme.md
@@ -17,9 +17,9 @@
---
### Download
-| Latest release | Latest development build |
-|--------------------------------------------------------------------------------------------------------------------------|--------------------------|
-| [](https://openrct2.org/downloads/master/latest) | [](https://openrct2.org/downloads/develop/latest) |
+| Latest release | Latest development build |
+|------------------------------------------------------------------------------------------------------------------------|--------------------------|
+| [](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 31961f715e..2edad3fb43 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 11
- versionName '0.4.23'
+ versionCode 12
+ versionName '0.4.24'
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_shared'
diff --git a/src/openrct2/Version.h b/src/openrct2/Version.h
index b9bec22839..521edefe7a 100644
--- a/src/openrct2/Version.h
+++ b/src/openrct2/Version.h
@@ -12,7 +12,7 @@
#include
#define OPENRCT2_NAME "OpenRCT2"
-#define kOpenRCT2Version "0.4.23"
+#define kOpenRCT2Version "0.4.24"
#if defined(__amd64__) || defined(_M_AMD64)
#define OPENRCT2_ARCHITECTURE "x86-64"
diff --git a/src/openrct2/platform/Crash.cpp b/src/openrct2/platform/Crash.cpp
index 8a2bf0b89f..ef1ec846ef 100644
--- a/src/openrct2/platform/Crash.cpp
+++ b/src/openrct2/platform/Crash.cpp
@@ -56,7 +56,7 @@ static const wchar_t* _wszCommitSha1Short = WSZ("");
static const wchar_t* _wszArchitecture = WSZ(OPENRCT2_ARCHITECTURE);
static std::map _uploadFiles;
- #define BACKTRACE_TOKEN "40d058b4220e017dd496a919442135fb5a3cc3fdd463b35ca0b6363c1d5d871e"
+ #define BACKTRACE_TOKEN "bcf0d172ee9f047048427f4bd18345fff28396fe9880af11dfa1f3beefc56a2f"
using namespace OpenRCT2;