Releases / v0.101.0
v0.101.0 Always Answers
2026-09-28 Engine Latest
A dedicated server that had been up a while could stop letting anyone in: joins
reached it and every reply was lost, while the server looked perfectly healthy.
That's fixed. Text in fitted UI boxes is sized the way it's drawn, floptle shot
photographs shader-drawn materials and UI, floptle check compiles every shader
and reads every model, and a project opened through a folder link loads its
assets. Surface shaders can light a normal of their own.
Dedicated servers keep answering joins
The reliable half of a network connection is a single stream. If one message was bigger than the other end would accept, that end stopped reading the stream without a word. The connection stayed up, keepalives and snapshots kept flowing, and from then on no join, welcome or refusal got through. A server whose world had grown large enough to send one oversized snapshot went deaf for good.
Messages up to 64 MB now go through. If a reliable stream fails for any reason, the whole connection closes, so both ends notice. A dedicated server on Floptle Cloud then reconnects to the relay within a second or two and keeps its lobby code and its players.
A dedicated server's log now records every join and every refusal, and what the relay tells it.
To get this on a running Cloud server, export its server build again on this version and deploy it. A server runs the engine version its build names.
Fitted UI text is sized the way it's drawn
h = "fit" on wrapped text measured one line and then drew three, so the text
spilled over the rows above and below. Fitted text is now measured with the
same wrapping, newlines, line height, case and tracking it's drawn with. A
fixed-width column also measures its rows at its own width, so a column of
fitted paragraphs stacks without overlap.
floptle shot shows shaders
A shot drew every mesh wearing a .flsl material, and every UI element drawn by
a shader, in its plain fallback look. Materials, UI shaders and custom
post-processing shaders are now in the picture.
shot --timing now draws a few frames untimed before it measures, then reports
each pass's median over several. The first frame pays once for building
pipelines and baking, and a single timed frame could read ten times slower than
the game actually runs.
floptle check compiles shaders and reads models
floptle check now compiles every .flsl in the project the way the game
does, and reports errors as file:line:col. It reports a shader that a node
names and that doesn't exist, or that's the wrong kind for where it's used. It
also reads every model a scene names: a model it can't load is an error, and a
Draco-compressed .glb is named as such, with how to re-export it. It warns
about a scene with a camera and no Skybox, which opens with a flat grey sky.
A model that fails to load now says why in the Console.
Surface shaders light their own normal
let n = normalize(normal + vec3(dx, 0, dz))
output color = vec4(litSurface(albedo.rgb, n), 1)
litSurface(albedo, normal) lights the normal you give it with the engine's
sun, shadows and lights: waves on a flat sea, bumps on a flat panel. lightDir
and lightColor give the key light's direction and colour for effects the
engine doesn't do for you. From a script, node:material().shader reads which
shader a material uses, and assigning a path swaps it.
Projects opened through a folder link
A project the Hub opens through a symbolic link refused every model, texture
and sound as "outside the project". It now loads them. A linked folder inside a
project, such as ui/, is also read like any other.
Smaller fixes
floptle runwaits for background terrain generation instead of running past it, and says how long it waited.- A planet created during play no longer throws nearby bodies across the system on its first tick.
- UI style transitions no longer start from a destroyed element's look when a
new element takes its place, and they run under
floptle runandfloptle shot --after. - A Water Volume warns once when a body is more than 50 times lighter or denser than the water. Density is in your game's own mass units per cubic metre: with masses in tonnes, water is 1.0.
- The docs now say that
ui.makerows and columns start with 8 units of padding and gap, andoverlapSpherenames the option it reads (ignore).
Upgrading
A fitted text element that wraps may now be taller than before, which is its real size. Re-export and redeploy Cloud server builds to pick up the server fix.
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.