Monthly Update: May '26

April was eaten almost entirely by running Level Up Tasmania (worth it! It’s fantastic to have industry events locally, even if we have to help run them!), so it was wonderful to spend May with our heads back down and our hands back on the 2026 roadmap. We shipped a release, kept hammering away at a big behind-the-scenes rewrite for async, and started on a couple of features we’ve wanted for years, and—because we are who we are—built two extremely silly things along the way. Read on!

Yarn Spinner for Unity#

Let’s start with the headline: Yarn Spinner for Unity 3.2.4 is out now! If you’re on the free version this is mostly bug fixes and polish—so there’s nothing scary waiting for you when you update. The juicier new stuff landed in Yarn Spinner+, our paid tier. More on that in a moment.

The biggest job, though, is one you can’t see yet. Most of May went into making Yarn Spinner’s virtual machine—the bit that actually runs your compiled dialogue—properly, natively async. The way it does async right now has worked well up to this point, but it’s been hitting its limits as we add new features. The work of replacing it with a natively async approach is a big, fiddly, deeply unglamorous job that’s been quietly eating our months. But it’s so worth it: a native-async VM means every part of your dialogue can wait on things happening in your game without blocking everything else (think “roll a dice on screen, then branch the conversation on the result”, or the interruptions we’ll get to in a sec). A big slice of this month was specifically about how all that machinery slots into Unity. We’ve been working on this async update for a few months now, and we’re finally approaching the light at the end of the tunnel.

Right alongside it, there’s been a pile of source generator work to overhaul how commands and functions get wired up. When it all lands, your commands and functions will finally accept arbitrary parameter types—your own structs, your own enums, whatever you like—instead of the current handful of built-ins. This is one of our most-requested features by an absolute mile, so we’re thrilled to be properly building toward it. (It’ll arrive in a future release, not 3.2.4—but it’s coming.)

Now the fun part. We’ve started on two new Yarn Spinner+ features that have been on the wishlist forever.

First up: casting. Normally you write a line already knowing exactly who says it—the speaker is baked in. Casting flips that around: you describe the role a line is for (“the mentor”, “a rival”, “whoever’s leading the party right now”) and Yarn Spinner works out which actual character should fill it at runtime. If your cast isn’t fixed—party members coming and going, or who’s in a scene depending on choices the player made hours ago—this is a big deal, because you write the scene once and it casts itself correctly no matter who’s around.

Second: interruptions, which does exactly what it says on the tin—dialogue you can stop partway through and come back to. Hit a conversation with an interruption and it politely suspends itself, lets whatever-it-is play out, then picks up precisely where it left off. You can even slot in extra lines for the two hand-off moments: something to say as it gets cut off, and something to ease back in with afterwards ("…anyway, where were we?").

Interruptible dialogue: suspend, go do something else, then carry on right where you left off.

Both are early days—plenty still to figure out—and Unity-only for now, but they’ll come to the other engines once they’ve settled down.

And then, because no release ever feels complete without something fun, two new dialogue presenters shipped in Yarn Spinner+ for Unity 3.2.4. (New here? A presenter is the bit that actually draws your dialogue on screen—the box, the portraits, the typewriter effect, all of it—and one of the very best things about Yarn Spinner is that they’re completely swappable.)

Snaaake#

Snaaake is our love letter to the codec calls in Metal Gear Solid, all grainy portraits and dramatic radio static. Jon, for reasons known only to Jon, sailed well past “make a presenter” and wrote an entire backstory for its hero, Max Force, and his arch-nemesis—who is, naturally, his secret clone brother. We did not ask for this. We are delighted by it.

Snaaake.

Classic RPG#

Classic RPG is the opposite end of the spectrum: a recreation of the traditional bottom-of-the-screen text box inspired by Zelda and JRPGs. Plenty of games just need a reliable box that puts the words where players expect them. This is that box.

Classic RPG. Definitely not a Zelda game.

Yarn Spinner for Godot and Unreal Engine#

Loads happened outside Unity, too!

Over in Godot (GDScript): the usual steady stream of fixes and tweaks, plus a proper Main Screen. That’s the row of tabs across the very top of the Godot editor—2D, 3D, Script, and friends—and Yarn Spinner now has its own. It used to be stuck down in the dock, tucked off to one side; promoting it to a top-level tab makes it a first-class citizen of the editor, with room for your projects, your nodes, a way to see the Yarn scripts you’re working on, and the commands your game exposes, all in the one place. It’s a small change, but it makes the editor a lot nicer to live in day to day.

The Yarn Spinner Main Screen open in the Godot editor, showing the Yarn projects and nodes list, the script view, a table of registered commands, and the hotspot palette.
The new Yarn Spinner Main Screen in Godot (GDScript), here open on Leonardo's Moon Ship.

On the Unreal Engine side: bug fixes, plus a solid chunk of the month spent working alongside a client building their FPS with Yarn Spinner for Unreal. Client work like this is a big part of how Yarn Spinner itself keeps getting better, which is worth a quick word:

Client work pays off for us and for you!We do paid client projects, and the features we build for them have a funny habit of becoming features for everyone. When a studio hires us to make their game work, we slam straight into the rough edges and missing bits in our own tools—and the fixes and features we build to ship their game get folded straight back into Yarn Spinner, for free, for everybody. A surprising amount of what’s in Yarn Spinner today started life as “a client needed this”. So when we say we’re helping an FPS team in Unreal, what that means for you is more real-world stress-testing of the Unreal version, and more features that everyone gets to keep.

And yes: if you’ve got a project that could use exactly this kind of help, that’s literally what we do!

Yarn Spinner Editors#

The editors picked up a good round of small fixes this month—the unglamorous quality-of-life things that never make a changelog headline but quietly make writing nicer the more you do it.

We also bumped Try Yarn Spinner, our in-browser lite editor, up to 3.2 so it’s in lockstep with the latest release. We bother keeping Try in sync because we really don’t want you getting a different experience depending on whether you’re in your editor of choice or just poking at something in a browser tab.

Story Solver#

I’ve spent a big chunk of the month head-down in Story Solver. If you haven’t met it yet: it’s our tool for sniffing out the parts of a story players never actually reach—the nodes nothing ever jumps to, the options that can never be picked because their conditions can’t be satisfied, the variables you set once and then never read again. In a big branching script those dead spots are basically invisible to the naked eye, and Story Solver finds them for you.

This month was mostly about welding the two halves together: Jon built out the backend APIs, and I’ve been wiring the frontend up to talk to them, so the whole thing is finally starting to behave like one tool rather than two projects in a trenchcoat.

There was also a round of infrastructure work and some proper visual love—new themes that bring Story Solver into line with our VSCode extension, Try Yarn Spinner, and the Playground editor we’ve got cooking. We’re big believers in everything feeling like one family, so that consistency is worth more than a fresh coat of paint usually is.

Story Solver will feature intermittently in the upcoming few months, before releasing in towards the end of the year.

Business Business#

A couple of bits worth sharing on the business front.

First: as we alluded to above, we’ve taken on a new client building an FPS with Yarn Spinner—the Unreal work from earlier. It’s early, and we can’t say much about the game itself just yet, but it’s a good one, and (per that callout) it’s already nudging where some of our Unreal work is heading. Want a hand getting Yarn Spinner into your game? Come and have a chat!

Second, and this one’s lovely: we had an archival call with ACMI, Australia’s national museum of screen culture, about Hint Line ‘93. It’s going into their collection, and we spent a really good while geeking out about how you even begin to preserve a thing like that for the future. That’s a conversation you don’t get to have very often, and one we’ll be mulling over for a while yet.

Other Fun Stuff#

As always, the best part of this job is watching what everyone else builds with Yarn Spinner—and May was a busy one.

A pile of Yarn Spinner games turned up in the SixOneIndie showcase, including Blue Ridge Hunting and The Well’s Blessing. There were fresh updates on ABIDE, the gloriously creepy new game from Talha & Jack Co. (the team behind Mashina and Jutero), go have a look! And Escape Academy 2 popped up in the Thinky Direct. All that on top of a steady drip of other releases and demos across the month.

One more we have to single out: Control, I’m Not Coming Back, a lovely little spaced-themed (which we’re huge suckers for!) Yarn Spinner game that is completely free. There’s really no reason not to go grab it.

And if you think May was busy—June is going to be enormous. Both Summer Game Fest and Steam Next Fest land this month, so expect a proper bumper crop of Yarn Spinner games to show off next time. We’re also especially excited for Frosty Games Fest, which is featuring Aussie and Kiwi games, with many made by friends.

Summary#

  • Shipped Yarn Spinner for Unity 3.2.4, with two new Yarn Spinner+ presenters: Snaaake and Classic RPG.
  • Started two new Yarn Spinner+ features: casting (roles filled at runtime) and interruptions (pause and resume dialogue)—Unity-only for now, coming to the other engines later.
  • Unity: big native-async virtual machine rewrite and source generator work, heading toward arbitrary parameter types in commands and functions (shipping in a future release).
  • Godot (GDScript): lots of fixes, plus a new top-level editor Main Screen.
  • Unreal: bug fixes, and integration work helping a client get Yarn Spinner into their FPS.
  • Editors: small quality-of-life fixes; Try Yarn Spinner updated to 3.2.
  • Story Solver: backend APIs wired up to the frontend, infrastructure work, and new themes to match our other editors.
  • Hint Line ‘93 is going into the ACMI archive.

One Quick Favour#

Before you disappear: our annual engine support survey is up on Discord! It’s a single question—which engine(s) are you using Yarn Spinner in?—and you answer it by tapping a few reactions, so it takes about ten seconds, tops.

We run it every year, and it’s the single biggest input into which engines and versions get our love, so the more people who chime in, the better we can aim. Pop into the announcements channel on our Discord and chuck your vote in—it really does help!

That’s May—a good, productive, faintly ridiculous month. See you in June, when we’ll be neck-deep in showcases!

Want a hand getting Yarn Spinner into your game? Hire us! Made something with Yarn Spinner? Tell us about it!

Header image: kunanyi / Mount Wellington at dawn, seen from Clarence, taken by Yarn Spinner's Dr Jon Manning on a DJI Neo 2.

Unless otherwise noted, the content of this post is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). Logos, screenshots, and artwork shown in this post remain the property of their respective owners and are not covered by this license. The Yarn Spinner logo and branding imagery are also not covered by this license.