Releases / v0.117.0-rc7

v0.117.0-rc7 Whole Worlds

2026-10-23 Latest

Everything in rc6, plus models that convert themselves with every map in place, meshes that become physics objects in one step, big planets that hold only the ground near you, and scripts that keep running on a busy machine.

Bring in any model

Drop an .fbx, .obj, .stl, .ply or .gltf into your project and it converts to .glb on its own, in the background, and again whenever you re-export the source. With Blender installed, .blend, .dae and USD files convert the same way. The Assets panel shows the source and its model as one, and placing the source places the model. A .glb you made yourself is never overwritten.

Materials come across the way the artist set them: base colour, normal, metallic and roughness, occlusion, emissive, transparency and two-sided faces. Older FBX materials are translated, so gloss becomes roughness and a bump map becomes a normal map. Textures are found even when they were moved, renamed or saved as another format, and anything missing is named. FBX skeletons and animations come across and play. Each conversion writes one summary to the Console of what went where.

OBJ materials now load, where before every OBJ converted grey.

A mesh becomes a physics object

Add a Rigidbody to anything with a mesh and it fits itself: a box to a cube, a sphere to a sphere, and the new Mesh shape to anything else. A moving Mesh body collides as the mesh's outer hull and tumbles, bounces and comes to rest on a face; a static one collides as its exact triangles. The body starts at the node's rotation and scale, so it collides where it is drawn. Right-click a mesh and choose Make it a physics object for a fitted, falling body with mass from its size, and press Fit to mesh after reshaping it.

Boxes now meet floors and walls built in the editor properly. Before, a box could sink through a blockout floor or pass through a wall. A selected body always shows its collision shape, and the rollback-netcode switch has its own section and says it turns off gravity, floors and walls.

Big planets hold only the ground near you

Terrain far from the player is put away and remade exactly when you come back, with a light stand-in meanwhile. A 1.5 km planet that held 2.8 GB of terrain now holds about 250 MB, and a saved planet resumes in a few seconds. Ground you have dug is never put away. Collision follows moving bodies as well as the camera, so a fast craft far from the camera lands on the ground.

Script terrain edits land a few milliseconds a frame, in order, each where it was aimed on its planet; terrain.pending() says how many are left. An edit made while a world is still loading lands on top of it. A hidden terrain body costs nothing, so a game can draw its own stand-in for a far planet. Relief layers take a latitude band, for mountains at the poles.

Scripts keep running

The engine stopped a script that ran past its time budget by wall-clock time, so a busy machine could stop a script that was doing nothing wrong, for good. The budget now counts the script's own processor time. A project sets it with script_budget_ms in project.ron, or --script-budget-ms on floptle run and floptle play, and a stopped script's message says how long it ran.

Every script reads the same time within a frame, and after a long load the fixedUpdate clock stays within a tick of update's, so a vehicle no longer freezes after a time warp.

Craft, water and plants

  • assembly.teleport brings everything jointed to the craft along. A rover parked on its wheels can time-warp, and far debris lands instead of hanging in the air.
  • Every query's ignore takes a node or a list, and ignoreStart skips only what a cast starts against.
  • Decals re-lay only the marks a dig reached, so digging near many decals is quick again.
  • The sea's underwater look stays out of sealed caves.
  • scatter.setInteractors{...} bends plants away from a walking character, and the last detail band fades out instead of cutting off.
  • setMaterial on a model changes only the settings you give it, keeping its textures and cut-outs, with new alphaCutoff and doubleSided settings.

Smaller things

  • ui.setScale(s) sizes the whole interface, wrapped text stays in its box, and a font named only by a style loads.
  • UI images stay sharp when drawn small, grain looks even on light and dark, and a 9-slice takes pixels per unit.
  • input.simulate{...} presses keys for tests, and app.wallClock() gives real time.
  • Scene parameters take whole numbers and numbers written as text.
  • A shader's vertex offset can sample a height map.

Upgrading

Nothing to do. Some things look or behave differently:

  • Imported models now draw the material their file describes. Metallic and roughness apply without a map. An opaque material no longer cuts holes where its texture has transparency, and a material exported with backface culling is not drawn from behind. A model that relied on the old look may need its material adjusted, or overridden in the Inspector.
  • A new Rigidbody on a mesh is fitted to it and set to turn. Box bodies have slightly rounded corners, about 2 cm.
  • setMaterial on a model with no material of its own now changes only the settings given, instead of replacing the model's look.
  • The script time budget counts processor time, not wall time.

Floptle Hub

Linux x86_64 10.7 MB Download → sha256 3922df74696d8ce46f25e5155cda1ec6c91003d34ced28a96e79d5dfb58d40c9
macOS Apple Silicon 7.4 MB Download → sha256 85c8d97e017a975deb2f4edebe1740f519cff941773ea604ebe3978efb020530
macOS Intel 8.0 MB Download → sha256 f80b512770de6b72976c0e322057fb9449d49605191168f4d821c723d09036b2
Windows x86_64 9.1 MB Download → sha256 9e3663b6c53ecddcd89ce4389654034528c91adfddb8c0580cbf755f0284d25d

Engine

Linux x86_64 56.9 MB Download → sha256 8d8ea68f2a40f21e77535cfe50cb5c2057cc017250e9cc0a7c3f5d252e297814
macOS Apple Silicon 44.5 MB Download → sha256 0628b20fa461caf77eb8520ad98c9ddefbfc53f01b000b621adf27723394a4b3
macOS Intel 48.0 MB Download → sha256 790b2d2f05aafb54e169f0a2fb46b25c72a526ef703d9f683c69f891394025c4
web 5.4 MB Download → sha256 6f959a20a9ccaedfd695db413243e784460e58ca10a1b2eb3f96485b13dc7e82
Windows x86_64 54.1 MB Download → sha256 4fca1dcc21800f6c2179f45bc40d53f87431b953437f818a9dbaed208ba03111

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.