- Feature: [#775] Add 2x and 4x zoom levels to software renderer (previously limited to OpenGL).
- Feature: [#15642] Track design placement can now use construction modifier keys (ctrl/shift).
- Feature: [#20539] [Plugin] Add API for getting a ride’s statistics.
- Feature: [#21521] [Plugin] Add hook 'park.guest.softcap.calculate' called before calculating the soft guest cap.
- Feature: [#22383] Add downward-inclined brakes to hybrid coaster and single rail coaster.
- Feature: [#22694] Park graphs have tooltips and can be resized like finance graphs.
- Feature: [#22758] The table of ‘real’ peep names can now be changed using Peep Names objects.
- Feature: [#22842] [Plugin] Expose large scenery object tiles to the plugin API.
- Feature: [#22883] [Plugin] Add plugin API for spawning guests.
- Improved: [#22470] Android: automatically detect RCT2 installs in /sdcard/rct2.
- Improved: [#22735] The map generator has a redesigned interface that is much more user friendly.
- Improved: [#22777] Add long flat-to-steep track pieces to the Wooden and Classic Wooden Roller Coasters.
- Improved: [#22815] Add long flat-to-steep track pieces to the Mine Train Coaster.
- Change: [#22494] Themes window now displays colours and checkboxes vertically.
- Change: [#22596] Land ownership fixes described by .parkpatch files are now only considered on scenarios.
- Change: [#22724] Staff now have optional ‘real’ names as well.
- Change: [#22740] Add virtual floor to shifted track design placement.
- Change: [#22795] Replace Giga Coaster and Twister Roller Coaster booster images.
- Fix: [#2614] The colour tab of the ride window does not hide invisible cars (original bug).
- Fix: [#7672] Wide path status is set to all ‘wide’ paths, instead of only a quarter, impeding pathfinding.
- Fix: [#15406] Tunnels on steep Side-Friction track are drawn too low.
- Fix: [#21959] “Save this before...?” message does not appear when selecting “New Game”.
- Fix: [#22072] Objective date string and staff tenure date string cannot be reused on agglutinative languages.
- Fix: [#22133] Ride time is incorrect for extremely slow speeds.
- Fix: [#22231] Invalid object version can cause a crash.
- Fix: [#22479] Crash when a ride has no valid music object.
- Fix: [#22562] Bottom row of pixels is not always drawn by the OpenGL renderer when zoomed in.
- Fix: [#22653] Missing water tiles in RCT1 and RCT2 scenarios.
- Fix: [#22654] Misplaced scenario elements in RCT1 and RCT2 scenarios.
- Fix: [#22655] Incorrectly set surface style around missing water tiles on Botany Breakers.
- Fix: [#22729] Invisibility settings persist after reloading OpenRCT2.
- Fix: [#22734] Support clearance above steep Side-Friction track is too low.
- Fix: [#22774] Fix entities leaving stale pixels on the screen when the framerate is uncapped.
- Fix: [#22805] Fix deadzone when panning the view in positive axis directions.
- Fix: [#22808] Incorrect support rotation on some Mini Roller Coaster track pieces.
- Fix: [#22857] Side-Friction Roller Coaster train clips through slopes.
- Fix: [#22880] macOS builds lack asset packs and scenario patches.
- Fix: [#22891] [Plugin] getInstalledObject API function not implemented.
- Fix: [objects#346] Invalid refund price for Brick Base Block scenery item.
* Allow using construction modifier keys for track design placement
* Reduce nesting in OnToolDown
* Allow ctrl-matching against more interaction types
* Amend changelog