Releases / v0.117.0-rc23

v0.117.0-rc23 Whole Worlds

2026-10-26

Everything in rc22, plus a refresh rate that follows the window, additive scenes that leave the running world alone, and new decals that wait for their ground.

Frame pacing

  • app.refreshRate() reports the display the window is on, and follows it when the window moves to another one. Before the window is first shown it answers with the fastest display, so a frame cap set from it never holds a game below its display. Read it when you set the cap: app.setFrameCap(app.refreshRate()).
  • When a compositor presents the window on another display's clock, the frame-time panel and the Console say so and name both displays.
  • With Adaptive or Immediate presentation, the frame-time panel no longer reports dt snapping as a fault: nothing in those modes waits for the display, and the panel says how to hold frames to the refresh instead.
  • A display path that cannot do the presentation a project asks for (such as Adaptive under XWayland on some drivers) falls back with a Console warning that says what it fell back to and what that means.

Scenes and decals

  • scene.load(name, { additive = true }) starts only the new layer's sounds and effects. Before, it restarted every sound and effect already playing in the world. Its steps are named in perf.parts like a full scene change.
  • A new decal waits for the ground under it to be ready before it is laid, instead of preparing that ground on the frame. A mark asked for just before a dig now lies on the dug ground.
  • The terrain shadow's first volume after a world arrives is always made in the background, even when the GPU is short of memory, and the shadow work is named in parts.

Profiler

  • perf.counts() reports the terrain's field chunks: fieldChunks at full detail, fieldEdited dug or built, and fieldStandIns put away.

Upgrading

Nothing to do. A game that relied on an additive load restarting the world's sounds or effects should start them itself.

Floptle Hub

Linux x86_64 10.7 MB Download → sha256 04de7949216ebf2652fa2cd8fe688fa34905163ef8fefb271499909b4e8aa50c
macOS Apple Silicon 7.5 MB Download → sha256 4e4f2cd6eeac81ef0c4cbbb32d194678ddae63ef3bf003c6fd1137ed4836e311
macOS Intel 8.0 MB Download → sha256 36c30b3add771a0e96b10dbe4fdcd4646b212b2b32cabed179d7d4acc30a750b
Windows x86_64 9.2 MB Download → sha256 51f44da9ca86a8a6c8351cb0542aecc94fc4e73a5b5f8fca25184fc27a71bb15

Engine

Linux x86_64 58.7 MB Download → sha256 118c88fc3c886b6aba53fdbc9f9ad9de7737305afb527c8c2bcdb65f6e706ddc
macOS Apple Silicon 46.2 MB Download → sha256 69de4bb2954ba2ef5416c131aeede2947a39067757300cb4a018ca5a39779d12
macOS Intel 49.7 MB Download → sha256 fc8d9278122d7d8e29bdf5146f275ca009cd61b9a9db5de77ab3d1316da8b31f
web 5.6 MB Download → sha256 e1c570ae70c93c65ed6003795a56ffff24c358e6e5e4ac11a9d76c4399a36946
Windows x86_64 56.1 MB Download → sha256 4058c36a11b1915068460d64db76bb1f62345ad928dd4c722abd6576d15e9d9e

The binaries are not signed yet. On macOS, right-click the app and pick Open the first time. On Windows, if SmartScreen appears, pick More info then Run anyway.