Releases / v0.80.0
v0.80.0 Mind The Gap
2026-08-28 Engine Latest
Characters stop treating every ledge as a wall. The navmesh now works out where they can drop down and jump across, on its own, from the shape of your level.
A navmesh is a surface, and a surface stops at every edge. Until now the only way to say "and you can get down here" was to place a Nav Link by hand — one per ledge, in a level with hundreds, all of them moving the moment you moved the geometry. So nobody placed them, and characters walked the long way round a knee-high step or gave up entirely.
Drops and jumps, found for you
The Nav Mesh node has two new numbers under how the ledges are joined up:
- drop height — the tallest ledge a character steps off deliberately. Any ledge between the step height and this gets a one-way link off the edge.
- jump distance — the widest gap it will clear. That gets a two-way link, because a gap you can jump you can jump coming back.
Both are on by default, at a metre and a half and two metres. Set either to 0 to switch that kind off and go back to placing every crossing by hand.
On a real 23,000 m² level, this found 651 drops and 55 jumps where there had been none.
The bake will not invent a character that climbs: ground above a ledge is still a wall, and a ladder is still a Nav Link you place. It also will not hop over a wall, and it will not cross ground you carved out with a Nav Area — carving is you saying nothing may walk there, and a tool that argued with that would be worse than no tool.
A character that does not leave the floor refuses a whole kind of crossing in the question rather than by needing its own bake:
local cart = nav.agent(node, { filter = { canJump = false, canDrop = false } })
While an agent is crossing, agent.linkKind is "drop", "jump" or
"placed" — so one rule picks the fall animation, the vault and the ladder
climb, rather than six hundred link names.
The overlay answers the question it is for
The one thing a navmesh picture is for is are these two pieces of ground joined? — and it was coloured by how the bake grouped the floor, before any link was counted. A balcony and the floor its drop lands on came out two colours while a character walked freely between them.
It is coloured by what a character can actually reach now. Ground you can get around is one colour; ground you cannot is another. Links are drawn as arcs whose shape is the crossing: a drop leaves the ledge flat and falls away, a jump bows over its gap, a ladder goes straight. Amber for a drop, green for a jump, blue for one you placed, red for one whose end missed the floor.
Agents follow the same curve they are drawn on, so a character dropping off a ledge falls instead of sliding down an invisible ramp.
"N separate areas" in the Inspector counts the same thing — pieces with no way between them at all — and now says how much of the walkable ground the biggest piece holds. A count on its own could be a level with 150 cupboards in it or a bake that has shattered; the share is what tells them apart.
Specks are thrown away
A real level bakes hundreds of scraps of walkable ground — a window sill, the top of a crate, a triangle of floor behind a pillar. Nothing can reach any of them, every one is an island in the count, and each is somewhere a character can be dropped by mistake when you ask for the nearest point on the navmesh.
smallest patch (1 m² by default) throws them away. The biggest piece is never thrown away, however small it is, so a bake of a small level is still a bake of that level. The level above went from 494 separate pieces to 156.
The overlay stopped getting stuck
Turning gizmos off used to leave the navmesh drawn on screen, frozen in place, until you deselected the node. It clears with everything else now.
Big levels also draw far less: anything off screen is skipped rather than sent to the graphics card every frame, so looking closely at a navmesh no longer costs more than looking at all of it.
Settings that quietly did nothing now say so
Two of the new numbers have a threshold below which they are exactly equivalent to zero, and neither is visible from the slider. A drop height inside the step height finds nothing, because the lip is walked over. A jump distance under twice the agent radius finds nothing, because erosion has already pulled the walkable surface back by the radius at each side — jump distance is measured between the edges of the navmesh, which is what you see in the overlay, not across the hole in the floor.
Both are named in the Inspector and the Console, with the number to beat.
Baking a navmesh without opening the editor
floptle bake nav [PROJECT] [--scene S] [--json]
No window and no graphics card needed. It was the one bake with no way to run it from a script, which meant a level whose geometry is generated could never have its navmesh generated too.
Upgrading
Your navmesh is baked again, once, the first time you open each scene. The format changed to carry what kind of crossing each link is. The editor does it for you and says so; nothing is lost.
Two defaults change what an existing level bakes, and both are sliders on the Nav Mesh node if you want the old behaviour:
- Drops and jumps are on. Routes that used to go the long way round a ledge now take it. Set drop height and jump distance to 0 for none.
- Patches under 1 m² are dropped. If your game deliberately puts characters on something smaller than that, set smallest patch to 0.
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.