Releases / v0.117.0-rc3

v0.117.0-rc3 Whole Worlds

2026-10-20 Latest

Everything in rc2, plus water to float on, wind that moves things, planets that save only what you changed, and craft that hold together on a moving world.

Water to float on

water.addVolume{ shape = "lake", center = c, radius = 40 } declares a body of water, and shape = "heightfield" takes a grid of levels for a river or a terraced pond. A volume given a parent moves with its planet. Bodies float on it, feel its drag, and drift with its current. water.flowAt(point) reads the current, and water.at now says which volume a point is in. water.surface(id) gives the mesh of exactly the surface the water answers for, ready for mesh.build, so what you see is what things float on.

A surface shader can read what is behind it with sceneColor(uv) and sceneDepth(uv), and screenUv(p) gives the coordinates to read at, for refraction and water that darkens with depth.

Wind that moves things

A particle track can opt in to the game's wind, so smoke and dust drift with weather.addWind. A material's sway bends a mesh or a scattered prop downwind from its root, and backlight lets the sun through thin leaves. Beams take a seeded jitter for lightning and electric arcs, thrown again on each pulse.

Planets save only what you changed

A generated planet now saves its edits and how it was generated, not the whole field. A dug planet that saved 536 MB saves under 1 MB. Loading regenerates the planet and lays the edits over it, so a load still takes about as long as generating.

Rivers follow the land down to the sea or a basin, and never run in circles. terrain.planetRivers and terrain.planetLakes take a callback as their last argument to answer without holding up the script. Coarse ground far away keeps to the real surface: a bowl no longer draws as a peak, and dug ground is always drawn at full detail. A bite out of the ground costs a few milliseconds of the frame, and a planet seen from orbit takes a fraction of the draws.

Craft that hold together

  • A craft rebuilt mid-flight keeps its place and its velocity, fast or spinning.
  • A push from a rebuild callback lands at the centre of mass, so a light craft hitting a moving planet no longer bounces off at hundreds of metres a second.
  • Bodies and craft spawned on a moving planet land where they were placed, and a body moved while paused goes where it was sent.
  • A hinge between two parts of a craft on an orbiting planet pivots where it was made.
  • Joints gain a ball kind with a cone limit, and wheels can steer with steer. A braked rover holds still on any slope its tyres can grip.
  • A switched-off body rides its planet, and node.vx reads true on a craft far from the camera.
  • A small rock carries what sits on it. space.beltOrbits{...} gives a seeded belt of orbits to place rocks on.

Smaller things

  • Scripts no longer pause every few seconds to rebuild their copy of a scene that is streaming nodes in and out.
  • anim:boneWorld, read before any write in a frame, gives the animator's pose, not last frame's write.
  • input.commitRebind replaces the old binding, and input.saveBindings, loadBindings and resetBindings keep what a player chose. The settings page lists each monitor once, and ui.engineSettings can sit inside a game's own screen.
  • Scattered props settle a few at a time without hitches, scatter.near is right from the frame a source is made, and shots show a settled field.
  • Particles at rest stay at rest while terrain streams in nearby.
  • A shader with texture slots no longer fails to build, and floptle check says when one has more textures than the GPU allows.
  • Models that use the same image share one copy of it.
  • floptle shot draws glass and scene-reading shaders the way the editor does.

Upgrading

Nothing to do. Four things behave differently:

  • input.commitRebind() now replaces the binding it is rebinding. Pass "add" to keep the old one as well.
  • anim:boneWorld read before a frame's writes no longer includes last frame's writes. Use anim:holdPose(true) to keep a pose.
  • A planet saved by this version stores only its edits, and is laid over the generator on load. Planets saved by older versions load as before.
  • Rivers are traced differently, so a world generated again with the same options can have shorter rivers in different places.

Floptle Hub

Linux x86_64 10.7 MB Download → sha256 e23df5d81e3c72ca2a198ec184a34ccb8d8cfd7a96b691a55f59ffbc9784a20e
macOS Apple Silicon 7.4 MB Download → sha256 7c1bc7b1114d763dd61535348089ba9ebb41a27fe134a5fcaf1bcfe11c81e465
macOS Intel 7.9 MB Download → sha256 fbda55bf3432d94c13e9d4ba916c27e7d8d07883d8ab0a425d3bb99039dd291a
Windows x86_64 9.1 MB Download → sha256 180616d13a856272f71b550fdaa07140e8b9a42b048d8c8a01adc93780e4335c

Engine

Linux x86_64 56.2 MB Download → sha256 fdf6934299bdf2dc270ac3dca58424fc3a0c9b59f94d87675272f0172d6ef035
macOS Apple Silicon 44.0 MB Download → sha256 b1868bf0904508f05b7332760f98156ce2514ac26b2aa8cb8a531fb9d0450fb6
macOS Intel 47.3 MB Download → sha256 56584543a6f305d009c2047078b635bce978e2867f7ed5d7c4f08cf823af728d
web 5.3 MB Download → sha256 b7c0fefabca3c04c5069492e30cfae8bea1bcec6cfc2de7df2d7148fe35c42bf
Windows x86_64 53.4 MB Download → sha256 013bb4b2ace4fad8ad3359a6d0fea11ed6c96de7912a6f37b446aead9606e00f

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.