Releases / v0.117.0-rc19
v0.117.0-rc19 Whole Worlds
2026-10-26
Everything in rc16, plus saves that never stall a frame or lose a player's data, a warm-up that prepares a level without crowding it, and terrain answers that stay true once they say they are final.
Saves
- Saving no longer costs the frame. A save is encoded and written in the
background, and only the keys that changed are encoded again.
save.setof a large table is about twice as fast. - A save is written to a temporary file and moved into place, so a crash or
a killed game leaves the previous save whole.
user://files are written the same way. - A save slot that cannot be read is kept beside it as
save/<slot>.ron.unreadablewith a Console error, instead of being written over by the next save. save.flush()hands the save off and returns at once.save.flush({ wait = true })returns once it is on disk. Stopping Play and quitting always wait.- A slot still holds up to 4 MB. For larger player-made data, write
user://files withassets.writeJsonorassets.writeBytes; the slot's error now says so.
Warming a level
assets.warmprepares pictures on a few workers and shaders one at a time, instead of a thread per asset, so warming a large level no longer crowds the frames around it.- An asset used while it is still warming is finished, never prepared a second time.
- UI and screen shaders can be warmed as well as material shaders. Sky and
distance-field shaders cannot yet, and come back in the call's
failedlist with the reason. - Warmed shaders are installed one a frame, and the time shows as
shaderInstallandmaterialBindinperf.parts.
Terrain answers that stay true
terrain.raycastsaysexactonly when nothing along the ray could still change, and a ray that misses over ground not yet made answersnil, "unknown"instead of"air".terrain.prepareworks on a moving world, waits for a world that is not loaded yet instead of being dropped, and keeps all the ground it asked for.terrain.readythen stays true there.- A paint over coarse stand-in ground makes that ground for physics and queries too.
Upgrading
Projects upgrade themselves; nothing to do. What upgrading cannot change for you:
assets.getContentsandassets.getFilereturn paths relative to the project (levels/one.ron), not full paths on disk, so a listed file can be passed straight toassets.readText. A script that worked out the project folder from these paths needs another way.save.flush()returns before the save is on disk. A script that reads the save file itself right after flushing should callsave.flush({ wait = true }).
Floptle Hub
Linux x86_64
10.7 MB
Download →
sha256 1df937c21990d9cc98234afcfdf5cb7a3d95f4dd4ce98cd7e527983114f633d3
macOS Apple Silicon
7.4 MB
Download →
sha256 ca164f47114be6ce468d520f98ab0c81f028b6fce8e101237a7d494e8fd39acf
macOS Intel
8.0 MB
Download →
sha256 293ab2f3432ae58f538d9a7082a5f1c07b43f50c93166a002543f6cc3b3f05f3
Windows x86_64
9.1 MB
Download →
sha256 b8c800568cf9023f2007463a0d5b567a897ba12b084ebea410f07fc4d30a9f66
Engine
Linux x86_64
58.2 MB
Download →
sha256 e2347c07f439040970f556ddc88e92b57f121a8a2abb1a64fe7694f9416eace3
macOS Apple Silicon
45.7 MB
Download →
sha256 43a12e59fb21fdc6946bd48a85a49380264f0555c20cbb383fc5071449b03691
macOS Intel
49.2 MB
Download →
sha256 a4ac71b9888b237b076c5ddf0e21e2fabbe567eef9f1f72670669aaaec912041
Windows x86_64
55.5 MB
Download →
sha256 c329a4715eedede2613ba209bd79aac05854c8acecf79dc13b70178fb5c9cc7f
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.