Skip to content

Releases: endlessm/threadbare

v0.1.11

17 Mar 18:57
@wjt wjt
cc40795

Choose a tag to compare

This is a re-release of v0.1.10 with a fix for the build process.

See https://github.com/endlessm/threadbare/releases/tag/v0.1.10 for what's new!

Full Changelog: v0.1.10...v0.1.11

v0.1.10

17 Mar 18:18
64a66d7

Choose a tag to compare

New Music and Interactive Music Improvements

New music by John Wright has been integrated into The Void quest and it sounds amazing! With BPM-precise transitions that match the gameplay.

Also:

  • The music transition of the first quest "ink combat 3" has been improved too.
  • Music now fades out when switching to a scene without background music.
recording.webm

Time of Day

You can see time passing now in Fray's End. This is a cosmetic change and doesn't affect gameplay at all. Check the wiki to know more about it and how to apply these effects in your own StoryQuest.

evening-night.webm
night-morning.webm

New Debug Settings

As we move towards gameplay progress, it becomes important to have in-game debugging tools. This is a new page available from the Pause menu. We expect that it will grow with more settings in the future. You may find a new area too in this release!

Captura desde 2026-03-17 15-17-09

Cultural Considerations

We got feedback that certain cultures found the Ink Drinkers’ action inappropriate. So we changed the sound effect and the action terminology to "they spray ink".

Other Changes

  • We added characters created by random parts picked from a set. See #1801
  • StoryQuest "Evan and the Search for Champ" continues development!
  • StoryQuest "Stella and the Missing Star" has an improved starfish collision shape that spins.
  • Placeholder quest: The ink combat round 6 has a new mechanic in which barrels have to be completed in sequence.
  • Placeholder quest: The stealth + sequence combo now has a musician with hints to guide the player.
  • Wildlife characters have been added here and there. A fence tileset too, to contain the sheeps.
  • AreaFiller works with more shapes now: rectangle, circle, and capsule.
  • InteractArea and Teleporter are now consistently being used as nodes.
  • An odd bug which prevented players to continue after finishing quest when quitting from Fray's End, has been fixed.
  • The Void tileset now has an scale-independent starfield so it will look the same in all display devices.

Full list of changes

  • Remove now-unused mega-tileset by @wjt in #1964
  • Random townies exploration by @manuq in #1801
  • Champ standardize hint by @Fauche-r in #1952
  • MouseManager: Set process_mode to ALWAYS by @wjt in #1965
  • NO_EDIT sequence puzzle: Add foam by @wjt in #1968
  • NO_EDIT combat & stealth: Use new cliffs & add shadows by @wjt in #1967
  • Fray's End: Lock editing the clouds shadow overlay by @manuq in #1971
  • Elder NPCs: Vary their animation randomly by @manuq in #1969
  • Ink combat dialogue: Use "spray" term for the enemy action by @manuq in #1972
  • Replace throwing enemy action sound effect by @manuq in #1973
  • Altering champ combat game to make changing sprites more important by @izzykriz in #1950
  • Champ stealth : Exported the TileMapLayer by @Fauche-r in #1977
  • Champ outro: revising script of champ animation by @felixwalberg in #1978
  • Champ delayed defeat sequence puzzle by @felixwalberg in #1979
  • Video settings: Use text property of CheckButton by @wjt in #1976
  • Toggleable: Use @abstract by @wjt in #1981
  • Add Fabric Rock scene by @wjt in #1982
  • StoryQuestProgress: Don't warn if GameState.current_quest is unset by @wjt in #1983
  • stella: Improve starfish collision shape & let it spin by @wjt in #1988
  • TalkBehavior: Allow passing extra context to dialogue by @wjt in #1990
  • Add time of day to Fray's End by @manuq in #1991
  • InkCombatRound6: Implement Sequential Filling Mechanic by @russell-cj in #1865
  • Add a debug menu to toggle quest completion state by @wjt in #1997
  • Add a new area of Fray's End unlocked by completing the Void quest by @wjt in #1984
  • mothsache: Don't make player fall when defeated by @wjt in #2001
  • Reset per-scene lights-on state by @manuq in #2004
  • Integrate Void quest music by @wjt in #2003
  • Rename “A Void” to “The Void” by @wjt in #2006
  • grappling_hook_powerup: Fix shadowing warning by @wjt in #2007
  • Add wildlife characters by @manuq in #2008
  • Void closing_transition: Use random characters for townies by @manuq in #2009
  • Add rain overlay effect by @manuq in #1989
  • add cliff shadows to Quest 003 ink drinker levels by @russell-cj in #2010
  • Overlay effects: Rename randomize function by @manuq in #2011
  • Update Still BPM and transitions by @wjt in #2012
  • Retitle credits for John Wright/Infinity Composition by @wjt in #2013
  • FollowWalkBehavior: Stop when target is reached by @manuq in #2014
  • Add fence tileset by @manuq in #2015
  • Fray's End West: Add fences, sheep and bushes by @wjt in #2017
  • Fray's End West: Give placeholder names and dialogue to townies by @wjt in #2019
  • Ink combat 3: Improve music transition by @wjt in #2018
  • fog, clouds_shadow: Ignore mouse events by @wjt in #2020
  • Void music: Tweak Bloom -> Still transition again by @wjt in #2027
  • Fray's End: Fix Y-sorting by @manuq in #2022
  • Player: Move and slide in physics process by @manuq in #2030
  • El Abrigo: Remove unused player_abrigo.gd script by @wjt in #2034
  • AreaFiller: support CollisionShape2D with rectangle, circle, and capsule by @wjt in #2036
  • Wizzy: Remove unused player script by @wjt in #2035
  • Grappling Hook: Use Line2D.set_point_position() for changing the points by @manuq in #2037
  • ci: Don't double-compress Linux metadata tarball by @dependabot[bot] in #2023
  • ci: Unbreak building Flatpak locally by @wjt in #2038
  • Remove teleporter scene by @wjt in #2040
  • Fade out when switching to a scene without BackgroundMusic by @wjt in #2039
  • stealth_sequence_combo: Add musician to guide the player by @wjt in #2026
  • shjourney: Remove unused scenes by @wjt in #2041
  • GameState: Reduce initial lives to 2 ** 53 by @wjt in #2044
  • GameState: Persist current scene in global, not scene, state by @wjt in #2045
  • Remove interact_area.tscn by @wjt in #2042
  • teleporter: Use ResourceUID.ensure_path by @wjt in #2043
  • void_chromakey: Make the starfield scale-independent by @wjt in #2050
  • Improvements for Cinematic and SpawnPoint nodes by @manuq in #2051
  • CODEOWNERS: Add 5 more quests by @wjt in #2053
  • storybook: Refactor building list of authors by @wjt in #2054
  • Dialogue Manager: Update to v3.10.2 by @wjt in #2052
  • el ojo revelador: Recompress music at ~128kbps bitrate by @wjt in #2055

Full Changelog: v0.1.9...v0.1.10

v0.1.9

20 Feb 16:07
@wjt wjt
77aa438

Choose a tag to compare

As always, you can play the latest release of Threadbare in your browser at play.threadbare.game.

Animated logo

The Threadbare logo on the title screen is now animated!

New StoryQuest: Evan and the Search for Champ

This quest is being developed by @Fauche-r, @izzykriz, @shadeydo and returning contributor @felixwalberg, and explores the legend of a lake monster which dwells in Lake Champlain in Vermont.

The quest is fully playable but is deliberately built with placeholder assets, level design, and in one case player logic. It will be used for a competition, where entrants compete to provide the best assets & other improvements.

Void quest updates

@manuq has made a number of improvements to the work-in-progress Void quest, including a final, more challenging round of grappling to outrun the Void.

image

More flexible StoryQuest customisation

Quests with more or fewer than 3 threads

Previously, all quests in Threadbare had to have 3 threads for the player to collect. Now, a quest can contain any number of threads, up to 6, including none at all! This page on our wiki explains how.

Better throwing-enemy projectile customisation

Previously, every throwing enemy in the game (InkDrinkers in the lore; other enemies in StoryQuests) would throw instances of the same projectile scene. The throwing enemy scene had properties to customise the projectile, which were set on each instance as it was spawned.

We have found that this is not flexible enough for the kinds of changes that people want to make in StoryQuests, so in this release we have changed how this works.

Now, each StoryQuest gets its own copy of the projectile scene, which reuses shared scripts. This scene can be customised freely using the normal scene editor: by changing the SpriteFrames on the AnimatedSprite2D, adjusting the collisions shapes, and so on.

Then, the throwing enemy has a property which controls which projectile scene it throws. When you create a StoryQuest this is automatically configured to point to your StoryQuest's copy of the projectile scene.

We also made it possible for the throwing enemy to throw different scenes for different target labels. For example, Stella and the Missing Star uses this to have the (invisible) enemies throw four different scenes: a starfish, which matches the only accessible barrel (a ship), and three fish, which are not accepted by the ship. This is built on a similar feature originally added to the Champ quest by @felixwalberg: thank you!

Sequence puzzle object scale & script changes

The sequence_puzzle_object scene previously applied a 0.7× scale to its AnimatedSprite2D, which could be surprising if you have created new art based on our provided template and discovered it appears smaller in the game. This is now reset to 1× scale.

We hope to give each StoryQuest its own copy of this scene in future. In the meantime you can manually duplicate the shared scene into your StoryQuest if you want to customise it in ways that can't be done through exported properties. For example, in Stella and the Missing Star, the tortoise is now a single StaticBody2D, with the interactive shell segments being plain Node2Ds. (This is possible because you can now attach the sequence_puzzle_object.gd script to any Node2D, not just a StaticBody2D.)

Tileset improvements

We have added a tileset for shadows below cliffs, and a new tileset that makes it easier to draw the cliffs themselves. Levels are gradually being updated to add shadows and use the new cliff tileset. We would welcome community members submitting pull requests to update individual scenes! Many thanks to @russell-cj who has made great progress on adding shadows.

(We have also finished the migration to the single-tile foam tileset. If you look very closely, you may or may not notice any difference at the corners of islands!)

Clouds and Fog

A long time ago, Fray's End had a cloud effect. We removed this for performance reasons. In this release it is reintroduced, with those performance issues fixed.

We have also promoted a fog effect from the Sueños Nocturnos StoryQuest to the main game, with some improvements. Currently it is not used outside Sueños Nocturnos, but it can now more easily be used by other quests, and we hope that it will form part of dynamic weather effects in future.

Improved credits management

Credits for Threadbare are now managed in CSV files, which we hope will make them easier to keep up-to-date. We have made an effort to update the lists of contributors as part of this change, but if you find that somebody is not credited, or is credited incorrectly, please open a pull request to fix the data!

Element scale museum

@manuq added an element scale museum which shows the relative sizes of characters and props. In effect this is an in-game version of a section from our wiki. This idea was influenced by the talk Gyms, Zoos, and Museums: Your documentation should be in-game from GodotFest 2025.

If you find other characters and props that are not in the museum, we welcome pull requests to add them!

Better background music transitions

When restarting the same scene (after being caught by a guard, for example), or when switching to a new scene that uses the same background music, the music no longer fades out and in again.

Godot 4.6

Threadbare now requires Godot 4.6. If you are contributing to Threadbare, make sure you are using the latest Godot 4.6 maintenance release, which at the time of writing is Godot 4.6.1.

If you contribute to several different projects which use different versions of Godot, you may find it useful to use a tool like Godots, which manages having multiple versions of Godot installed and launching the correct one for a given project.

v0.1.8

17 Dec 20:48
a2f39fa

Choose a tag to compare

What's New

New StoryQuests

Six new StoryQuests have been added:

Renya Beyond Sorrow by @Aleinadsf, @nicnic1520, @BiancaPierina, @Buxx05

El Abrigo by @JanusCross15, @Kaiser19-G, @dicooo-disco, @Cristopher552

El Ojo Revelador by @Shiro-Vs, @trujilloerasmo44-coder, @JAZE30, @Foxito777, @trujilloerasmo44-coder, @LeoSle4

After the Tremor by @Andrle0600, @AMAI1505, @Zer0LoL

Eldrune StoryQuest by @josuemurga, @x1xSergiox1x, @Ozzyman10, @lljhonnyll

Also Champ StoryQuest by @felixwalberg is in progress. And existing StoryQuests El Juguete Perdido and Sueños Nocturnos have been updated too with cleanups and bug fixes.

We know that many more StoryQuests have been done in forks. We invite authors to submit them so they can be part of the main game.

Lore Quests

The Void quest continues to be developed. @Stregoica777 updated the narrative by changing the dialogue lines and the character names. The aesthetic has been updated too, with more level dressing. A dialogue explanation has been added for the buttons that can be collected but don't serve any purpose.

@russell-cj added three new ink combat levels to the placeholder quest, to explore new mechanics and variations. Like fragile vases, or speeding the shooting time period. @Omar071201 added the artwork. Also for those new combat levels @Gatorrante added behavior to the Mothsache enemy. @Omar071201 added new animations to this enemy.

Overall Improvements and bug fixes

New Credits

@Gatorrante redesigned the Credits scene because the single screen design couldn't contain all the contributors anymore. It is now vertically scrolling list.

Revamped Input Hints

@AlealarcViva improved the input hints by switching to the Kenney input prompts asset pack, after a big refactor.

Captura desde 2025-12-17 17-31-08 Captura desde 2025-12-17 17-30-40

Simplified and Improved Tiles

The foam is now a single tile:

image

The animation is also randomized, which looks much better.

Also the template elevation tileset has an easier terrain. Is a joy to paint elevations this way:

Grabacion.de.pantalla.desde.2025-11-16.17-17-58.webm

We hope to simplify the main elevation tileset soon too.

And much more!

We also got the following changes, many of them from new contributors:

What's Changed

  • New ink combat rounds 4 and 5: Fix 4 elevation tiles by @manuq in #1515
  • Don't unconditionally build Flatpak by @wjt in #1519
  • Implement Ink Drinker Level 6 Base Design by @russell-cj in #1514
  • Ink Drinker levels 4 and 5: Visual Improvements by @russell-cj in #1527
  • LICENSES: Replace MPL symlink with copy of license by @wjt in #1520
  • New defeat sprite for mothsache by @Omar071201 in #1533
  • Standardize Ink Drinker root nodes to match file name by @russell-cj in #1540
  • Storyquest automation: Add external link to guide by @manuq in #1541
  • Add third Elder to Fray's End by @Alexander3242G in #1542
  • Fix player can be moved after completing Sokoban puzzle by @sebastianangulod in #1553
  • Follow ups after moving NO_EDIT to its own path by @manuq in #1562
  • InkDrinker_3: Adjust camera limits and enhance scene presentation by @russell-cj in #1571
  • InkDrinker_1: Adjust camera limits and improve visuals to prevent out-of-bounds area by @russell-cj in #1566
  • InkDrinker_2: Adjust camera limits and enhance scene presentation by @russell-cj in #1568
  • Switch background music when ink combat completed by @wjt in #1573
  • Eternal Loom: Fix crash after jumping into the middle of a quest by @wjt in #1576
  • Input hints:Refactor input hint system to use resource-based textures by @AlealarcViva in #1517
  • ElJuguetePerdido_Combat: Map fixes, camera adjustments, and visual improvements by @russell-cj in #1579
  • El Juguete Perdido - SequencePuzzle: Camera2D adjustments, boundary replacement, and gray-area fixes by @russell-cj in #1580
  • ElJuguetePerdido_Outro: Map expansion and visual improvements for non-16:9 aspect ratios by @russell-cj in #1581
  • ElJuguetePerdido_Intro: Map expansion and improved tree placement by @russell-cj in #1574
  • ElJuguetePerdido_Stealth: Map adjustments and visual improvements by @russell-cj in #1577
  • Directional input hint: Fix inexisting action name by @manuq in #1585
  • Add Intro, minigame1,2 and outro of Renya by @Aleinadsf in #1561
  • Renya combat: Fix starting the game by @manuq in #1594
  • NO_EDIT_intro: Fix visual issues on non–16:9 aspect ratios by @russell-cj in #1617
  • NO_EDIT_stealth: Fix visual issues on non–16:9 aspect ratios by @russell-cj in #1618
  • NO_EDIT_combat: Fix visual issues on non–16:9 aspect ratios by @russell-cj in #1619
  • Add Champ StoryQuest by @felixwalberg in #1620
  • Input hints: Stop ignoring Steam controller assets by @manuq in #1624
  • Add Intro, Minigame 1 and Outro of El Abrigo by @JanusCross15 in #1560
  • New musician sprite by @Omar071201 in #1590
  • NO_EDIT_outro: Fix visual issues on non–16:9 aspect ratios by @russell-cj in #1634
  • NO_EDIT_sequence_puzzle: Fix visual issues on non–16:9 aspect ratios by @russell-cj in #1629
  • Solve musician sprite in music puzzle by @Omar071201 in #1642
  • Void grappling hook levels: Dress the levels by @manuq in #1643
  • InkCombatRound4: Progressive Speed Increase Mechanic by @russell-cj in #1639
  • Void pins sublevel: Add dialogue explanation for buttons by @manuq in #1644
  • Input hints: Re...
Read more

v0.1.7

06 Nov 15:05
6ca04b5

Choose a tag to compare

What's New

Improved storybook

by Diego Alonso Miñano Lavado

Diego continued working on the storybook from which the player can pick a quest. It looks more like a real book, and less like a user-interface menu: there is a table of contents at the start, and separate pages for each quest, with an illustration included:

storybook.webm

If you look closely, you might notice that the book itself is now cel-shaded rather than dithered, matching our visual style.

Better input hints

by Alexandra Alarcon Vivanco

Alexandra made further improvements to the on-screen display that shows players which actions can be taken with their keyboard or controller, and switched to use the Kenney Input Prompts asset pack:

dpad input hints arrow key input hints

Space to repel LB to run

We have found through playtesting that these hints are quite important – we plan to make them visible throughout the game in future.

New ink combat levels

by Carlos Juniors Chiroque Silva

Carlos is implementing new levels for combat, based on previous level designs and ideas for new mechanics:

Screenshot from 2025-11-06 09-57-56 Screenshot from 2025-11-06 09-56-51

Find these in the “Placeholder” LoreQuest.

New enemy: “Mothsache”

by Omar Franco Mendez Contreras

Mothsache_Idle Mothsache_Attack

Omar continued animating the Mothsache and added the enemy to the gym testing scene. Hopefully we'll see this new enemy soon in actual levels!

mothsache.webm

What's Changed

  • storyquest_bootstrap: Copy template recursively by @wjt in #1344
  • linux: Add 0.1.6 to releases file by @wjt in #1351
  • Player: Repurpose stopping and moving steps by @manuq in #1352
  • Void particles: Make visibility rect big enough by @manuq in #1353
  • Prefix quest files (not dirs) with quest name by @wjt in #1357
  • Player: Set wall min slide angle to one degree by @manuq in #1362
  • Refactor input actions by @manuq in #1356
  • Make the barley and tomatoes bigger by @wjt in #1364
  • HookControl: Use a timer to allow D-pad diagonal aiming by @manuq in #1369
  • Void spreading enemy: Defeat player while patrolling by @manuq in #1367
  • Complete the skeleton of the lore second quest by @manuq in #1371
  • Void spreading enemy: Add defeat method by @manuq in #1370
  • Nora: Reset combat & stealth camera zoom to 1× by @wjt in #1329
  • Remove wobble hints from sequence puzzle by @wjt in #1382
  • Add stealth/sequence puzzle combo level by @wjt in #1380
  • Replace icon by @wjt in #1381
  • Musician dialogue: Remove call to stop_hints() by @manuq in #1394
  • Grappling hook: Add Void enemy lurking around by @manuq in #1377
  • Grappling hook: allow / disallow going to previous sublevels by @manuq in #1392
  • Project settings: Setup movie file in user data folder by @manuq in #1397
  • Void quest: Add music to levels by @manuq in #1400
  • Player: Add one pixel of safe margin by @manuq in #1396
  • Fray's End: Remove y_sort_enabled from two trees by @wjt in #1401
  • Add ThrowProjectileBehavior by @manuq in #1308
  • Void runner: Allow enemy to consume starting starting island by @wjt in #1402
  • Use Threadbare logo in bootsplash by @wjt in #1407
  • Mark El Juguete Perdido team as owners of their quest by @wjt in #1414
  • El Juguete Perdido: Refactor TileMapLayers to only use one "kind" of tile each by @wjt in #1416
  • Add clues when Void enemy starts chasing by @manuq in #1422
  • Void initial narrative by @manuq in #1415
  • Decouple cinematic from combat by @manuq in #1432
  • Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #1443
  • Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #1442
  • Adjust tile map layers by @wjt in #1447
  • README: Update web URL by @wjt in #1446
  • tileset: Add missing "walls" collision polygon by @wjt in #1445
  • Have the correct elder congratulate the player after solving Sokobans by @wjt in #1451
  • Improve void_grappling scene (quest_002): fix out-of-bounds issue and layout adjustments by @russell-cj in #1441
  • Grappling hook level: Add intro cinematic by @manuq in #1434
  • storyquest_bootstrap: Copy TileSets by @wjt in #1449
  • Void runner: improve tree collisions by @Omar071201 in #1436
  • Remove invisible barrier in lorequest 1 stealth challenge by @sebastianangulod in #1453
  • storyquest_bootstrap: Forbid "story" and "quest" words by @manuq in #1452
  • Implement InkDrinker Level 4 Design by @russell-cj in #1455
  • Player: Add defeat() method by @wjt in #1456
  • REUSE: match .uid files anywhere in the source tree by @wjt in #1458
  • Split big TileSet into 6 smaller TileSets & update all scenes by @wjt in #1448
  • Ink combat round 1: Fix another cliff collision on the right side by @sebastianangulod in #1461
  • Ink Drinker Level 4: Camera, decoration, and Teleporter adjustments by @russell-cj in #1463
  • Mothsache enemy: Update Aseprite source file with walking animation by @Omar071201 in #1462
  • feat: implement unified directional key support using the new input p… by @AlealarcViva in #1464
  • feat: update input hint labels (#1… by @AlealarcViva in #1465
  • Grappling hook level: Redesign start and end scenes by @manuq in #1454
  • Storybook Visual Redesign implementing two pages per quest by @Gatorrante in #1466
  • Cinematic: Do not wait for animation finished by @manuq in #1471
  • Repositions intro concept art by @Gatorrante in #1474
  • Consistently bind all joypad devices to actions by @wjt in #1480
  • ci: Cache Git LFS objects by @wjt in #1484
  • Integrate Mothsache idle attack and move by @Omar071201 in #1477
  • Implement the design of Ink Drinker Level 5 by @russell-cj in #1473
  • Input hint: Fix generic controller showing keyboard directional hint by @AlealarcViva in #1482
  • ci: Don't fetch all LFS objects for Flatpak build by @wjt in #1492
  • Change the introductory dialogue for the Sokoban puzzle. by @JuaniCargnel in #1493
  • Replace animations with illustrations for quests 001 and 002 by @Gatorrante in http...
Read more

v0.1.6

14 Oct 16:31
@wjt wjt
cfe2a43

Choose a tag to compare

What's new

This is a relatively small release, mainly to fix a few annoying bugs that were found or fixed shortly after v0.1.5.

Intro dialogue no longer plays after respawn

In some stealth challenges (such as in Stella and the Missing Star), some introductory narration is played at the start of the level. Previously, if you were defeated in the level, the narration would be shown again each time you respawned.

This is now fixed: the narration only plays the first time you spawn. Thanks to @JSobero for contributing this fix!

Show keyboard hints when no gamepad is connected

In the previous release, we introduced a new feature where on-screen control hints adjust to show gamepad or keyboard symbols depending on which device was last used. But a bug meant that if you had no gamepad connected at all, the gamepad hints, not keyboard hints, would always be shown on screen. (Introduced and fixed by @wjt.)

New logo

We have a new logo displayed on the title screen!

A spindle of thread with the word Threadbare spelled out in the loose thread

Smaller HUD

While you are on a quest, there is an indicator at the top-right of the screen that shows how many spools of thread you have collected so far. Since we changed the game resolution in v0.1.4, this was too large and could obscure important parts of the scene, such as one of the guards in the lorequest stealth challenge. It is now smaller, thanks to @manuq!

What's Changed

  • Fix: prevent intro dialogue from replaying on respawn in stealth challenges by @JSobero in #1211
  • Document the components of the fill-matching game mechanic by @manuq in #1325
  • build(deps): bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #1326
  • CODEOWNERS: Make Learning team co-owners of template quest by @wjt in #1340
  • Move template tiles out of NO_EDIT StoryQuest by @wjt in #1339
  • ci: Let amalgamate-pages set commit status by @wjt in #1337
  • Fix default input device when no joypad is connected by @wjt in #1328
  • Grappling hook level: Use blue StoryWeaver by @manuq in #1343
  • HUD: Reduce its size by @manuq in #1342
  • Title screen: Replace logo in main menu by @manuq in #1341

New Contributors

Full Changelog: v0.1.5...v0.1.6

v0.1.5

10 Oct 10:51
a52ddd9

Choose a tag to compare

What's New

Two new StoryQuests…

In Fray's End, talk to the StoryQuest Elder (to the right of the Eternal Loom) to try two new StoryQuests contributed by our community:

Sueños Nocturnos

by Gian Piero Daniel Cano Espejo, Leopoldo Josue Brito Ruiz, Joseph Montes de Oca Untiveros, Leonardo Jesus Contreras Moriano, and Shirley Torres at Universidad Tecnológica del Perú

Screenshot from 2025-10-10 11-23-13

Nora and the Impossible Homework

by Aurelia Kornheiser, Spenser Kramer, and Felix Walberg at VERSO

image

…in a storybook

When you talk to the elders in Fray's End, they now offer you stories from a book drawn and implemented by @Gatorrante and @amaximilianorodri.

storybook.webm

Input hints for controllers

At various points in the game there are on-screen hints for the controls to use. Previously these always displayed keyboard keys (arrows, space, shift) even though the game is playable with a gamepad controller. Now, when you use a controller, these switch automatically to display the right icons for your Xbox, PlayStation, Switch, or Steam Deck controller. (Contributed by @pierinamb and @AlealarcViva.)

New grappling mechanic

We are developing a new grappling mechanic, where StoryWeaver throws a line of thread to collect unreachable objects or pull themself across a chasm. There is a series of test levels for this mechanic as part of the A Void quest, which you can play by talking to the LoreQuest Elder to the left of the Eternal Loom.

You will have to outrun the void to get there – fortunately, this release has also tweaked the difficulty of that level to be a bit fairer. Alternatively you can jump directly to the grappling levels.

Give it a try and let us know what you think!

needles.webm

…and more!

The full list of changes is below, but here are some more highlights:

  • In Fray's End, admire the new crops (drawn by @shiroidK) and then talk to the farmer next to the field of carrots to hear a joke (@SergiLS19)
  • Staircases are now made of wood and fit better with the visual style of the game (@159adrian)
  • In the music puzzle (and other sequence puzzles in the game), enjoy the nicer, more consistent sounds that the rocks make (@JoaquinPando)
crops

New Contributors

What's Changed

  • Make Fray End's Farmer interactive by @SergiLS19 in #1130
  • Factor NavigationFollowWalkBehavior out of void_spreading_enemy.gd by @wjt in #1178
  • Add sprite sheet for new enemy idle state by @Omar071201 in #1182
  • Add custom mouse pointer by @wjt in #1187
  • AreaFiller: Support undo/redo by @wjt in #1184
  • Sokoban HUD: Don't override mouse cursor shape by @wjt in #1188
  • Add 0.1.4 release to appstream releases file by @wjt in #1191
  • Assets: Add sprite sheet for new enemy attack state by @Omar071201 in #1202
  • Audio: Implement 18-note handbell scale for puzzles by @JoaquinPando in #1165
  • Add grappling hook mechanic and intro level by @manuq in #933
  • Issue template: prevent unwanted breaks in descriptions by @cassidyjames in #1217
  • Void runner: Fix zoom-out extending past the scene by @wjt in #1215
  • Fix first-import errors by @wjt in #1218
  • Add development status to quest resource by @Fabriciowwwwwwwwwww in #1155
  • Add wooden staircase tiles by @wjt in #1221
  • Import HTML shell from export template by @daff2 in #1201
  • Void chromakey: remove unused wipe_progress parameter by @wjt in #1220
  • Store .mp3 files in Git LFS by @wjt in #1229
  • pre-commit: Disable style checks for StoryQuests by @wjt in #1230
  • Stella: Cleanup assets by @manuq in #1231
  • REUSE: annotate first-party ogv/piskel/wav files by @wjt in #1232
  • Stella Stealth: Remove stray grass tile by @wjt in #1233
  • Record which quests have been played to completion by @AlexanderV24 in #1176
  • pre-commit: Exclude StoryQuests from whitespace checks by @wjt in #1236
  • Feat: Auto-detect SequencePuzzle steps by @WhoD-S in #1196
  • Set all CharacterBody2D nodes to Floating by @manuq in #1238
  • Split Elders into two scenes by @wjt in #1240
  • Tweak void runner difficulty by @wjt in #1239
  • Game state: Fix type error if completed_quests is not defined by @wjt in #1244
  • Fade out when quitting by @wjt in #1245
  • Default to fullscreen in non-web, non-editor builds by @wjt in #1241
  • Hookable area: Make anchor_point optional by @manuq in #1248
  • Walk behaviors: Warn if character motion mode is grounded by @manuq in #1247
  • Add an “Abandon Quest” option to the pause menu by @wjt in #1249
  • Fray's End: Remove stacks of bushes by @wjt in #1250
  • Fix ObjectDB & StringName leaks on exit by @wjt in #1253
  • Add Aseprite file for Elder by @wjt in #1252
  • docs: Split LICENSING out of CONTRIBUTING by @wjt in #1255
  • Fray's End: Add cliff tiles below grass by @wjt in #1251
  • Rename template to NO_EDIT by @manuq in #1243
  • Add new crops to Fray's End by @shiroidK in #1258
  • Add tomato, carrot, barley prop scenes by @wjt in #1259
  • Transitions: Add missing function return type by @wjt in #1260
  • LICENSING: Add Incompetech as acceptable example by @wjt in #1262
  • Add non-placeholder storybook by @manuq in #1263
  • Intro: Play dialogue at normal speed by @wjt in #1267
  • Add AnimationPlayer version of CharacterSpriteBehavior by @manuq in #1242
  • Fix: dynamic on-screen control hints by @pierinamb in #1177
  • Storybook: Remove panel from description by @manuq in #1270
  • Update project to Godot 4.5 by @wjt in #1226
  • Remove debug print()s from input hint code by @wjt in #1278
  • Add Sueños Nocturnos StoryQuest by @xXLeopoldoXx in #946
  • Add CODEOWNERS for Stella & Sueños Nocturnos by @wjt in #1293
  • pre-commit: Recognise piskel files via exclude_types by @wjt in #1289
  • shjourney: Replace xylophone sound effects by @wjt in #1292
  • Replace godot_git_describe with minimal export-only plugin by @wjt in #1294
  • Reimport Sueños Nocturnos assets with Godot 4.5 by @wjt in #1298
  • Re-enable threadbare_project_settings plugin by @wjt in #1295
  • Reindent REU...
Read more

v0.1.4

12 Sep 13:49
@wjt wjt
13b84ae

Choose a tag to compare

What's New

Base resolution changed to 720p

Screenshot of game with dialogue balloon, showing new game resolution & font

Previously, the game would always run at 1920×1080, and would be scaled down to fit a smaller window/screen if necessary. This made the game hard to play or read on smaller screens, such as laptops with 1366×768 displays, or the Steam Deck’s 1280×800 display.

In this release, we have changed the base resolution of the game to 1280×720. Since most levels in the game were previously zoomed in by 150%–200%, this has not appreciably changed how much of each level can be seen on screen at once, but it significantly improves the appearance of text on smaller displays.

Accompanying this change, we have switched the game's font to Jersey, part of a collection of typefaces by Sarah Cadigan-Fried designed for knitting. Multiple scales are available so we can adjust the font size in different UI elements.

If you find cases in the game where the user interface has not been updated for this change, please check that it is not already tracked on #1137, and report a bug if not!

Experimental character movement behaviors

Screencast.from.2025-09-12.14-29-08.webm

We are developing a new approach to character movement, using “behavior” nodes that can be attached to a CharacterBody2D node. The hope is that this approach will make it easier to define new kinds of enemies while reusing existing movement and animation logic.

These are not currently used in-game, but you can open the new “gym” area in Godot editor to see these in action: res://scenes/game_elements/characters/components/gym_area_test.tscn. In the future, we plan to adjust the player scene, and the enemies in the game which move, to use these behavior nodes.

Experimental “void runner” level

Screencast.from.2025-09-12.14-27-45.webm

We are developing a new challenge, where the player must outrun an expanding area of nothingness that is chasing them through the map. Try it out by talking to the LoreQuest Elder, and give us feedback!

Many improvements from many new contributors

Around a dozen new contributors made their first contribution in this release. Look out for a higher level of polish in the game, including leftwards motion in Sokoban puzzles, several fixed collisions, improvements to doors and transitions between scenes, crash fixes, and more!

Congratulations to our new contributors:

New documentation for contributors

Building on our existing contributing guidelines, we have added documentation on acceptable content and how contributions are reviewed.

What's Changed

  • Project: Add tags by @manuq in #1072
  • Miscellaneous fixes to improve the next version published to Flathub by @wjt in #1077
  • Remove 'bug' label from Bug issue template by @wjt in #1081
  • Add gym area for characters by @manuq in #1073
  • Reorder fields of project.godot by @wjt in #1082
  • README: Link to Flathub by @wjt in #1078
  • Template: Add tileset by @manuq in #1080
  • Bump actions/checkout from 4 to 5 by @dependabot[bot] in #1088
  • LoreQuest: Remove shadow square from closing transition by @Andersonu1290 in #1087
  • mailmap: Map @endlessos.org committers to @endlessaccess.org by @wjt in #1090
  • Ignore temporary files ending with ~ by @wjt in #1091
  • Add new Void Runner level by @wjt in #1085
  • SceneSwitcher: Respond to manual hash changes by @wjt in #1086
  • ci: Update amalgamate-pages to v2 by @wjt in #1092
  • ci: Run Discord merge hook in target branch context by @wjt in #1093
  • scene_switcher: Allow relative paths without res:// prefix by @wjt in #1106
  • Music puzzle: Remove unused trees.gd script by @wjt in #1107
  • Flip player horizontally when moving left in Sokoban by @Gimms11 in #1097
  • REUSE: Treat MP3s in assets/first_party as first-party by @wjt in #1115
  • Collectible: Sync physical collision with 'revealed' state by @JoaquinPando in #1118
  • Fix getting stuck behind targets in template combat level by @sebastianangulod in #1119
  • Fix door assets and scale by @sebastianangulod in #1121
  • Add sound effect to mushrooms by @ValePS81 in #1111
  • Limit camera in music puzzle by @DonSeja06 in #1126
  • Fix cliff collision in first round of ink combat by @Fabriciowwwwwwwwwww in #1109
  • Reverse frame order so targerts star visible by @daff2 in #1127
  • Sokoban: Fix player movement during introductory dialogue by @AlealarcViva in #1124
  • Add scene to debug aspect ratio issues by @manuq in #1084
  • Change game base resolution to 720p by @manuq in #1133
  • Settings global: Use base resolution for minimum window size by @manuq in #1140
  • Void: Improve dust cloud particles & remove placeholder enemy by @manuq in #1125
  • Void runner: swap to black dust cloud, without placeholder sprite by @wjt in #1116
  • Main Menu: Fit 720p resolution by @wjt in #1141
  • Add character walk behaviors by @manuq in #975
  • Vertical wipe transition between LoreQuest ink combat rounds by @DonSeja06 in #1145
  • Add step_solved signal to SequencePuzzle by @jhanp12 in #1146
  • Update pre-commit hooks by @wjt in #1148
  • Walk behaviors followup by @manuq in #1144
  • Aspect ratio debugger: Fix static type warnings by @wjt in #1149
  • Factor out a "speeds" resource for walk behaviors by @wjt in #1153
  • Shake component: Consider that the target object could be freed by @luisdev20 in #1134
  • icon: Replace black border with dark green by @wjt in #1159
  • Change font to Jersey by @wjt in #1162
  • Update theme for 720p resolution by @wjt in #1168
  • docs: Add a REVIEWING guide by @wjt in #1169
  • On Fray's End, the elders collision shape doesn't seem to include the staff by @Gimms11 in #1132
  • docs: Add content guidelines by @wjt in #1172

Full Changelog: v0.1.3...v0.1.4

v0.1.3

11 Aug 20:12
32c4fc6

Choose a tag to compare

Compared to v0.1.2, this release comes with the first contributed StoryQuest, improvements for developing the game and a couple new systems added. Plus the usual minor improvements and bug fixes.

What's New

"El Juguete Perdido", first StoryQuest contributed

Join us in celebrating the first StoryQuest contributed by learners @OutsiderChikito and @Omar071201 from UTP (Universidad Tecnológica del Perú).

Captura desde 2025-08-11 13-46-59

StoryQuest automation

We did a first step towards automating the creation of new StoryQuests. Please note that the previous workflow of duplicating and renaming the full template directory still works. To create a new StoryQuest through the automation, use the menu: Project ➙ Tools ➙ Create StoryQuest from template... .

Captura desde 2025-08-11 13-34-02

This will open a pop-up window:

Captura desde 2025-08-11 13-34-35

In which you can type the StoryQuest title and description. The directory name containing the StoryQuest will be derived from the title.

After that, the StoryQuest directory will be selected in the Filesystem dock. It currently contains just the intro and outro scenes. You should copy one or more levels from the template folder into it, and then chain the scenes accordingly. For example:

  • Copy 3_template_sequence_puzzle
  • Set the sequence puzzle scene as Next Scene in the Cinematic node of the intro scene.
  • Set the outro as Next Scene in the CollectibleItem node of the sequence puzzle scene.

The Void

A new tileset starfield that is combined with a fragment shader to provide a whimsical illusion, with parallax and twinkling stars effects.

the-void.webm

Example scenes

What is better than documentation? Interactive documentation! The new The Void effect above has a test scene. And also the AreaFiller has a new test scene with in-game dialogue explaining how to use it.

Captura desde 2025-08-11 14-37-45

Display changes

We changed the game viewport to expand when the aspect ratio doesn't match 16:9. This means that the black bars at the sides are gone when playing fullscreen in displays with different aspect ratio. Also when playing from a web browser in a 16:9 display there were black bars, because of the browser tabs and window title bar were discounting to the game height. This is now fixed.

The minimum window size is now 1280×720 (720p), while the base resolution keeps being 1920×1080. This setting is ignored by the web build but helps with the expand viewport in desktop PC or when playing from the Godot Editor.

Talk Behavior node

We landed the first node that should improve the development using behavior components. With this new node, you can now add talk capability to any game entity, it doesn't have to inherit from the Talker class. You can follow the discussion on behavior components here.

Captura desde 2025-08-11 14-49-36

Optional run animation

As feedback from a team creating their StoryQuest, the player now supports a run animation, different from the walk animation. If not set, the walk animation playing at 2x speed is still used.

Pull requests merged in this release

  • README: Document Git LFS requirement briefly by @wjt in #930
  • gitignore: Ignore *.tmp by @wjt in #929
  • Add “El Juguete Perdido” StoryQuest by @wjt in #937
  • Add parallax effect for void starfield by @wjt in #940
  • Show project version on main menu by @wjt in #942
  • Use consistent color for InteractArea CollisionShape2Ds by @wjt in #943
  • README: Link to branches index by @wjt in #945
  • Track *.ogv files in Git LFS by @wjt in #948
  • Player: Add attack_02 animation by @manuq in #932
  • Update copyright owner to Endless Access LLC by @wjt in #951
  • Support modulating trees by @wjt in #952
  • pre-commit: Enforce editorconfig rules by @wjt in #955
  • Consistently indent shaders with tabs by @wjt in #954
  • HTML export: Add social card metadata by @wjt in #958
  • Player: Add optional run animation by @manuq in #961
  • Player: Check length of run animation if provided by @wjt in #962
  • Add Talk Behavior node by @manuq in #965
  • Play from Fray's End when running from the Editor by @manuq in #966
  • Talk behavior followup by @manuq in #968
  • InteractArea: Warn if it doesn't belong to its collision layer by @manuq in #969
  • Default dialogue: Remove reference to npc_name by @manuq in #971
  • Use fabric water rock by @wjt in #972
  • Stealth: Remove stray shadow under bridge by @wjt in #973
  • Fix EditorInterface parse error bug by @manuq in #977
  • Stella files cleanup by @manuq in #974
  • Revert loader script by @manuq in #986
  • Update to Godot Dialogue Manager 3.7.1 by @wjt in #985
  • Make games + community teams joint owners of Discord workflow by @wjt in #984
  • Bump Ilshidur/action-discord from 0.3.2 to 0.4.0 by @dependabot[bot] in #983
  • Add plugin to automate the creation of StoryQuests by @manuq in #909
  • Project: Remove snap transforms to pixel by @manuq in #990
  • Project: Expand aspect ratio by @manuq in #992
  • AreaFiller: Add test scene by @wjt in #999
  • splash: Keep centred in viewport by @wjt in #996
  • Remove rocks from AreaFiller test screen by @wjt in #1000
  • Set minimum window size to 1280×720 (720p) by @wjt in #1009
  • Clean up Fray's End scene tree by @wjt in #1008
  • Project: Default to nearest texture filter by @manuq in #988
  • Add cat fellow by @manuq in #1011
  • CONTRIBUTING: Document how to cite AI-generated images by @wjt in #925
  • Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #1059

Full Changelog: v0.1.2...v0.1.3

v0.1.2

07 Jul 10:16
@wjt wjt
v0.1.2
da8f5c8

Choose a tag to compare

Compared to v0.1.1, this release is largely minor fixes, build system changes, and general clean-up.

We have refactored the Guard entity used in stealth challenges; fixed some cosmetic issues with the tileset and collectible thread stacking; and addressed a few issues that made it easy to accidentally commit unwanted files or changes.

Play Threadbare in your browser and give us your feedback, either on our Discussions board or in our public Discord channel.

What's Changed

  • Teleporter: Detect instances of spawn_point.tscn by @wjt in #792
  • Fray's End: Simplify serialised flowers in scene by @wjt in #793
  • Create CODEOWNERS by @cassidyjames in #815
  • PR template: remove by @cassidyjames in #814
  • REUSE: Fix duplicate annotation for aseprite files in scenes/ by @wjt in #825
  • Logo: Cite use of Midjourney by @wjt in #829
  • ci: Only run release CI when release is published by @wjt in #858
  • Add web and Flatpak builds to releases by @wjt in #866
  • tree: Don't randomise scale when editing tree scene itself by @wjt in #867
  • Guard refactor by @manuq in #868
  • Ignore macOS system files; and zip and rar files by @wjt in #872
  • Project: Add color codes to filesystem folders by @manuq in #873
  • Physics layer fixes by @wjt in #886
  • Guard: Use correct class for Player by @manuq in #888
  • Consolidate theme resources by @wjt in #913
  • AreaFiller: Allow larger separation by @wjt in #918
  • CollectibleItem: Fix collision & stacking by @wjt in #919
  • tileset: Remove z_index -1 from water & foam by @wjt in #922

Full Changelog: v0.1.1...v0.1.2