#Dev

OpenRCT2 v0.5.1 “Swamp Castle” – What the release actually adds and where it falls short

AI & ML Reporter
4 min read

OpenRCT2’s latest update introduces a handful of new plugin hooks, UI tweaks for Android, and a series of bug fixes ranging from graphics glitches to crash‑inducing edge cases. The changes are incremental rather than transformative, and the upcoming removal of Windows 7/8 CI support will be the most consequential shift for users on legacy systems.

What the changelog claims

OpenRCT2 v0.5.1, nicknamed Swamp Castle, is presented as a “landmark” release. The announcement highlights:

  • Two new plugin hook types (ride‑breakdown and gridline visibility).
  • A new “guests entertained” statistic for entertainers.
  • Higher‑resolution icons and initial window‑scale options for Android.
  • A long list of bug fixes covering graphics, physics, and plugin stability.
  • A notice that future builds will no longer run on Windows 7/8 CI runners.

What’s actually new under the hood

Plugin API extensions

The most tangible addition for developers is the ride‑breakdown hooktype. This lets a plugin react when a ride enters the broken‑down state, opening the door to custom alerts, automated maintenance crews, or even narrative events that depend on ride reliability. The gridline show/hide methods are a modest quality‑of‑life improvement for map editors that need to toggle the grid without fiddling with UI state manually.

Both hooks are exposed through the existing ride and ui modules, and the implementation simply adds a new event identifier to the internal dispatcher. No performance penalty is reported, but the documentation (see the official plugin guide) still lacks concrete examples, so community members will need to experiment to see the hooks in action.

New statistic: guests entertained

Entertainers now track a “guests entertained” counter, mirroring the existing “guests attracted” metric for rides. The counter increments each time a guest watches a performer for a full minute. Internally, this reuses the guest‑entertainment timer already present for rides, so the impact on the simulation loop is negligible. The UI change is limited to the entertainer’s tooltip; there is no dedicated graph or leaderboard yet.

Android UI polish

Two Android‑specific improvements are bundled:

  1. Higher‑resolution app icons (up to 512 px) replace the legacy 96 px assets, making the launcher look sharper on modern devices.
  2. Initial window‑scale and toolbar options are now persisted on first run, allowing the game to start at the user’s preferred UI size without a manual tweak in the settings menu.

These changes are largely cosmetic but address long‑standing complaints about tiny UI elements on high‑DPI phones.

Bug‑fix sweep

The release contains roughly thirty fixes. A few are noteworthy from a technical perspective:

  • Chart drawing optimisation bug (#25581) – a compiler optimisation on certain GCC versions caused the performance chart to render incorrectly on macOS and Linux. The fix forces a volatile cast on the affected buffer, restoring deterministic drawing.
  • Inverted Flying Roller Coaster half‑loop glitch (#26019) – the original bug stemmed from an incorrect sign on the track‑height calculation when the coaster was both inverted and flying. The corrected formula now respects the sign convention used for normal inverted coasters, eliminating missing tunnel geometry.
  • Plugin socket cleanup (#26396) – sockets were left open when a plugin terminated unexpectedly, leading to FD leakage on long‑running servers. The patch adds a RAII‑style wrapper around the socket handle, ensuring close() is called in all error paths.
  • Air‑time overflow (#26510) – the UI displayed air‑time values beyond the internal maximum of ~1966 s because the formatting routine used a 16‑bit fixed‑point representation that wrapped at 655.35 s. The fix expands the display buffer to 32 bits and clamps the value before formatting.

While most of the remaining fixes address visual artefacts (e.g., banner labeling, path‑addition colours) or crash‑on‑edge‑case scenarios (keyboard disconnect, stack overflow in plugin code), they collectively improve stability for both desktop and mobile builds.

Limitations and what remains unchanged

  • Feature scope – The update adds no new ride types, scenery packs, or major gameplay mechanics. For most players, the experience will feel like a maintenance release rather than a content expansion.
  • Android scaling – The initial window‑scale option is only applied on first launch; changing the scale later still requires a manual settings tweak and a restart.
  • Windows 7/8 support – The announcement warns that CI runners for those OS versions will be dropped. Existing binaries continue to run, but future patches will not be built or tested on them, raising the risk of regressions for users who cannot upgrade.
  • Plugin documentation – The new hook types are documented in the changelog but lack sample code. Community‑generated tutorials will be needed before the hooks see widespread adoption.
  • Performance impact – No benchmarks are provided for the new plugin events or the Android UI changes. Given the modest code paths, any slowdown is expected to be below the simulation tick threshold, but developers should profile custom plugins that fire on every ride breakdown.

Bottom line

OpenRCT2 v0.5.1 is a solid incremental update. It tightens the Android experience, expands the plugin API in a useful but narrowly scoped way, and squashes a variety of long‑standing bugs. The most consequential change is the announced cessation of Windows 7/8 CI support, which will force legacy users to either upgrade their OS or accept the risk of untested builds. For developers, the new hook types are the only real new building blocks; the rest of the release is about polishing an already mature open‑source recreation of RollerCoaster Tycoon 2.


Resources

Comments

Loading comments...