Releases / v0.94.0-rc2
v0.94.0-rc2 Leaves A Trail
2026-09-17 Engine
The second beta of v0.94.0. Everything in rc1 — particles that squash and stretch, the Animating tab's curves — plus trails behind anything that moves, and four things a multiplayer game and a headless check found wanting.
Trails
A particle trail records the particle's own motion, which is nothing for a particle sitting still on a moving node — and a sword trail is exactly that. Every trail now has follows the emitter (under the trail row in the Inspector): the ribbon is recorded along the node's path through the world, so one still particle at a blade tip leaves a sword trail, a wing tip a streak, a wheel a tyre mark — all in one effect asset, no script. It is depth-tested like every particle, so a trail behind a pillar stays behind it. The Particles tab's ∞ sweep moves the preview through a figure-eight so you can see it, and a world-space track or inherited velocity, without leaving the tab.
For a ribbon in the blade's own plane, scripts have draw.quad: one
textured quad in the world, depth-tested, blended with the image's alpha,
visible from both sides. Give it four corners, a colour and a slice of a
streak texture per segment, and a ribbon between two marker nodes is a dozen
lines — floptle api draw.quad has the copyable one.
A spawn survives a scene change
The server's scene.load tells every client to load the same scene, and each
takes its own time over it. Anything the server spawned in the new scene
meanwhile — the player rigs a scene.onLoaded handler spawns on the very
next frame — was dropped by a client still loading, and never re-sent: the
first rig after every map change was missing on someone, and which one
depended on who joined first. Those spawns are now held through the swap and
applied the moment the client's load finishes, in order. No warm-up spawn,
hold timer or "ask for a body" call is needed any more; docs/multiplayer.md
says what you may assume.
Headless checks that tell the truth
floptle run --join keeps real time. A joined run is a client of a server
ticking on the wall clock; stepping as fast as the CPU allowed sent an input
clock the server watched race ahead until it dropped the peer, while the
client believed it was still in. Each step now waits for its tick, so a
client run stays connected for the whole --seconds.
floptle shot tells its scripts the picture is the viewport. From the
first update, camera.exists() is true and camera.screenRect() is the
--size you asked for, so a HUD that sizes itself from the screen can be
checked at 1440p, an ultrawide or a portrait window without opening a window.
floptle run renders nothing and still reports no camera.
floptle serve passes every flag it takes. --status-file,
--max-players, --lobby-code and --script-budget-ms were accepted on the
command line and dropped on the way to the server. They arrive now.
Upgrading
Nothing to change. An effect written before this release has no emitter-path trail and draws as it did; a game's scene-change workarounds can come out at your leisure.
Switch the Hub to the beta channel to install this build.
Floptle Hub
Engine
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.