Releases / v0.112.0

v0.112.0 Moves With You

2026-10-02 Engine Latest

A game on a planet that orbits now plays as if the ground held still: smoke stays over its spot, marks stay on the rock, and nothing jitters against the world it stands on. Caves read as rock, a craft no longer gets flung by its own pilot, phones scroll and steer properly, and smoke can be lit.

Effects ride the world they are on

On a planet moving on rails, particles used to stay where they were in space while the ground moved on, a metre and a half every tick, and they jittered against it because they moved on a different clock.

  • spawnEffect(key, pos, opts) takes a table: normal (the effect's up, so a ring lies on the ground and a cone fires off it), up, scale, intensity, tint, vel and frame. The old spawnEffect(key, x, y, z [, vx, vy, vz]) still works.
  • An effect rides its frame, a planet or a ship: where it emits from, and every particle it has already made, move and turn with it. With no frame it rides the planet whose sphere of influence it is in.
  • A point your script works out in update lands where you meant on the planet, even though the planet moves before the effect is spawned.
  • A node's own effect rides the planet it hangs under.
  • Gravity on a Local-space track falls toward the ground, even on a node tipped sideways on a round world.
  • Upright and flat billboards stand on the local ground, not world up.
  • decals.add{ …, frame = node }: a mark rides what it was laid on. Without a frame it rides the planet it is on, so a scorch stays under its rock.

Smoke that takes the light

  • Lit billboards. Tick lit on a billboard track and each puff takes the sun (or the brightest star) and the ambient light, rounded like a ball. Over a planet's night side it gets only the ambient, so smoke darkens at dusk instead of glowing.
  • Random between two curves for size and colour: every puff in a track grows, but not alike. It is the 🎲 on a curve in the Inspector.
  • node:particles():setTint(r, g, b [, a]) and spawnEffect's tint colour an effect, so one dust effect matches each world's ground.
  • Blend frames: a flipbook can crossfade each frame into the next instead of stepping.
  • Distortion (heat haze): a blend mode that bends the scene behind a particle by its texture, with a strength.
  • Particles are their own line in perf.gpu().

Caves that read as rock

Generated caves are rounded tunnels and rooms with smooth junctions and a metre of texture on their walls, instead of flat slanted sheets meeting in dead-straight creases. Levelling ground for a building over a cave no longer fills the cave and leaves a flat wall in it. A narrow passage that runs into distant terrain is closed off there, rather than showing a window into the rock.

Physics you can trust with a crew aboard

  • A craft no longer leaps or flips from its own contacts. A body pressed into an assembly (a seated pilot, a crate in a hold) could move it metres or turn it over in a single step.
  • physics.ignorePair(a, b [, seconds]) lets two bodies or assemblies pass through each other, for good or for a while: a passenger inside the ship, or debris kept clear of the hull it broke from.
  • Switching a node off stops its body. node.enabled = false takes a moving body or an assembly out of the simulation, as the docs always said, and switching it on carries on from where it stopped.
  • floptle shot --after plays the same game floptle run does.

Phones

  • A finger is never also the mouse. Pushing an on-screen stick no longer turns a mouse-look camera, and a look drag no longer turns it twice as fast.
  • A finger scrolls a list, from anywhere in it: a label, a button or a slider. Drag along the list and it scrolls, and the button you started on does not click. A tap still clicks, and a slider in the list still slides sideways.

Smoother play

  • Digging is cheaper. In play, the ground a dig changes is rebuilt in the background, with the old ground shown until the new is ready, and collision rebuilds only what the dig reached. A mining laser biting eight times a second no longer costs most of a frame on every bite.
  • A slow frame always says where its time went. perf.ms("other") is the time no other bucket measured, and perf.hitches() keeps every frame of 50 ms or more, even one the buckets cannot explain.
  • A star too faint to see costs nothing. In stars mode, a star giving less than a hundredth of the brightest one's light is left out of the lighting, so a room lit by one star no longer pays for four.
  • A planet a script creates is listed in space.bodies() before your next update.

Upgrading

  • Worlds generated from a seed get the new caves. A save that remembers a spot inside a generated cave may find rock there.
  • spawnEffect's velocity is now relative to the planet it rides. If you added the planet's own velocity to keep puffs with it, stop: they ride it now.
  • If a script switched off a node to freeze its body and relied on it still moving, that body now stops.
  • Upright and flat billboards on a round world now stand on its ground.
  • Nothing else to do.

Floptle Hub

Linux x86_64 10.7 MB Download → sha256 9f9631908b8bbc6e19be65197b93ce7f064b7ba06ac0c15328ca1897d763dcdb
macOS Apple Silicon 7.4 MB Download → sha256 fbdd558165fbeddbfcc029ddd2f8f94a974fe923caf3027c0807bbee47d92f71
macOS Intel 7.9 MB Download → sha256 74eef56c019416a8f1b177b218252996e5b506c6b047519a48d6dc432ce32763
Windows x86_64 9.1 MB Download → sha256 01ad7ca2b4cb8e3f30a577d4ccf628d32929cc1ea8567054da86c6c0fcb14b5b

Engine

Linux x86_64 53.6 MB Download → sha256 c6f6637502242a38c99813e24c9bb358322c89b3ecd5156e6413f6a3b4a42e30
macOS Apple Silicon 41.6 MB Download → sha256 d1da7a1004c74f6eedd510111cc73100ae71f38a01e24be033e875406396f02e
macOS Intel 44.7 MB Download → sha256 44525aec40b763414999f4b5fbe469c30571c2eaa2f54735c5b23d341938d62b
web 4.8 MB Download → sha256 0690a5dc0084053cae240ea1978aff99541169b4c161339cb1429bbec819bdb3
Windows x86_64 50.5 MB Download → sha256 20fcb9b3f92fbb3f8962f762bc9f1122e912b814701fcd7c975bc0f90c6dab4f

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.