Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
e0e8391
Ink combat dialogue: Use "spray" term for the enemy action (#1972)
manuq Feb 24, 2026
4c69a7e
Replace throwing enemy action sound effect (#1973)
manuq Feb 24, 2026
407be8e
Altering champ combat game to make changing sprites more important (#…
izzykriz Feb 24, 2026
0e5223c
Champ stealth : Exported the TileMapLayer (#1977)
Fauche-r Feb 24, 2026
f57a30a
Champ outro: revising script of champ animation (#1978)
felixwalberg Feb 24, 2026
19bb15e
Champ delayed defeat sequence puzzle (#1979)
felixwalberg Feb 24, 2026
d6e89b9
Video settings: Use text property of CheckButton (#1976)
wjt Feb 25, 2026
2bf2857
Toggleable: Use @abstract (#1981)
wjt Feb 25, 2026
a014171
Add Fabric Rock scene (#1982)
wjt Feb 25, 2026
fff0201
StoryQuestProgress: Don't warn if GameState.current_quest is unset (#…
wjt Feb 25, 2026
1fa8d0b
stella: Improve starfish collision shape & let it spin (#1988)
wjt Feb 25, 2026
7e7e054
TalkBehavior: Allow passing extra context to dialogue (#1990)
wjt Feb 26, 2026
e67b1fe
Add time of day to Fray's End (#1991)
manuq Feb 27, 2026
8850490
InkCombatRound6: Implement Sequential Filling Mechanic (#1865)
russell-cj Feb 27, 2026
ef05b35
Add a debug menu to toggle quest completion state (#1997)
wjt Feb 27, 2026
bedd460
Add a new area of Fray's End unlocked by completing the Void quest (#…
wjt Feb 27, 2026
3abbc79
mothsache: Don't make player fall when defeated (#2001)
wjt Mar 2, 2026
d3a1d26
Reset per-scene lights-on state (#2004)
manuq Mar 3, 2026
3aa5246
Integrate Void quest music (#2003)
wjt Mar 3, 2026
2d77115
Rename “A Void” to “The Void” (#2006)
wjt Mar 3, 2026
c4f6fa7
grappling_hook_powerup: Fix shadowing warning (#2007)
wjt Mar 3, 2026
dcb963a
Add wildlife characters (#2008)
manuq Mar 3, 2026
5a15a79
Void closing_transition: Use random characters for townies (#2009)
manuq Mar 3, 2026
d271c39
Add rain overlay effect (#1989)
manuq Mar 3, 2026
0be8902
add cliff shadows to Quest 003 ink drinker levels (#2010)
russell-cj Mar 3, 2026
e3d219f
Overlay effects: Rename randomize function (#2011)
manuq Mar 3, 2026
94dabcf
Update Still BPM and transitions (#2012)
wjt Mar 4, 2026
8a2ffa6
Retitle credits for John Wright/Infinity Composition (#2013)
wjt Mar 4, 2026
f482117
FollowWalkBehavior: Stop when target is reached (#2014)
manuq Mar 4, 2026
ef930cf
Add fence tileset (#2015)
manuq Mar 4, 2026
fa220ad
Fray's End West: Add fences, sheep and bushes (#2017)
wjt Mar 4, 2026
6c7f906
Fray's End West: Give placeholder names and dialogue to townies (#2019)
wjt Mar 4, 2026
1089d0f
Ink combat 3: Improve music transition (#2018)
wjt Mar 4, 2026
1a38ee4
fog, clouds_shadow: Ignore mouse events (#2020)
wjt Mar 4, 2026
68f7658
Void music: Tweak Bloom -> Still transition again (#2027)
wjt Mar 6, 2026
912d94d
Fray's End: Fix Y-sorting (#2022)
manuq Mar 6, 2026
a77370c
Player: Move and slide in physics process (#2030)
manuq Mar 6, 2026
7b0e630
El Abrigo: Remove unused player_abrigo.gd script (#2034)
wjt Mar 9, 2026
f982944
AreaFiller: support CollisionShape2D with rectangle, circle, and caps…
wjt Mar 9, 2026
6488762
Wizzy: Remove unused player script (#2035)
wjt Mar 9, 2026
b6def66
Grappling Hook: Use Line2D.set_point_position() for changing the poin…
manuq Mar 9, 2026
01429b1
ci: Don't double-compress Linux metadata tarball (#2023)
dependabot[bot] Mar 10, 2026
17dfc5e
ci: Unbreak building Flatpak locally (#2038)
wjt Mar 10, 2026
f7c6809
Remove teleporter scene (#2040)
wjt Mar 11, 2026
a036074
Fade out when switching to a scene without BackgroundMusic (#2039)
wjt Mar 11, 2026
feda5f1
stealth_sequence_combo: Add musician to guide the player (#2026)
wjt Mar 11, 2026
85b2286
shjourney: Remove unused scenes (#2041)
wjt Mar 11, 2026
5210b65
GameState: Reduce initial lives to 2 ** 53 (#2044)
wjt Mar 11, 2026
22e7476
GameState: Persist current scene in global, not scene, state (#2045)
wjt Mar 12, 2026
3f46f4d
Remove interact_area.tscn (#2042)
wjt Mar 12, 2026
7f9c1ba
teleporter: Use ResourceUID.ensure_path (#2043)
wjt Mar 12, 2026
54467b0
Cinematic: Allow starting it manually
manuq Mar 13, 2026
dbe675c
SpawnPoint: Add player_teleported signal
manuq Mar 13, 2026
e318469
void_chromakey: Make the starfield scale-independent (#2050)
wjt Mar 13, 2026
73cffe9
Merge pull request #2051 from endlessm/cinematic-and-spawnpoint-impro…
wjt Mar 13, 2026
c87f543
CODEOWNERS: Add 5 more quests (#2053)
wjt Mar 16, 2026
1234d0a
storybook: Refactor building list of authors (#2054)
wjt Mar 16, 2026
5c886e6
Dialogue Manager: Update to v3.10.2 (#2052)
wjt Mar 16, 2026
64a66d7
el ojo revelador: Recompress music at ~128kbps bitrate (#2055)
wjt Mar 16, 2026
cc40795
ci: Fix attaching web build to release (#2061)
wjt Mar 17, 2026
2f9d4d7
linux: Add v0.1.11 and v0.1.10 to releases file (#2064)
wjt Mar 18, 2026
35e69b6
web: Require a click on the page to play the game (#2060)
wjt Mar 19, 2026
140742d
storybook_page: Fix shadowing warning (#2068)
wjt Mar 19, 2026
d75c6bb
Bump dorny/paths-filter from 3 to 4 (#2067)
dependabot[bot] Mar 19, 2026
cdf5d42
ci: Add LSP diagnostics checker (#2069)
wjt Mar 19, 2026
b86ea32
Switch from player modes to simultaneous player abilities (#2032)
manuq Mar 19, 2026
d4f0756
Debug Settings: Use 2 tabs for sections (#2072)
manuq Mar 20, 2026
e39c5b2
ci: Fix attaching linux metadata to release (#2063)
wjt Mar 20, 2026
acce81e
Update export_presets.cfg with Godot 4.6 (#2074)
wjt Mar 23, 2026
4b1e7ca
Rename wizzy_quest to eldrune (#2066)
wjt Mar 23, 2026
11d1d9a
Player: Add repel grapple test level (#2077)
Zer0LoL Mar 23, 2026
63fdec1
Player: Use InputWalkBehavior (#2071)
manuq Mar 23, 2026
3fda614
github: Add version & scene to bug report template (#2070)
wjt Mar 24, 2026
36082b4
Rework and document CharacterSight and PlayerInteraction (#2078)
manuq Mar 24, 2026
23fb5f1
gitignore: Add Patchwork addon, launcher & files (#2079)
wjt Mar 25, 2026
8823ca2
Player: Don't emit dust particles initially (#2082)
wjt Mar 25, 2026
f235bfd
Add “Report a Problem” button to pause screen (#2081)
wjt Mar 25, 2026
c85c4c6
Move dialogue mouse-cursor handling to MouseManager (#2087)
wjt Mar 26, 2026
634c785
Credits updates (#2083)
wjt Mar 26, 2026
cb417f8
Add powerup for abilities (#2073)
manuq Mar 27, 2026
1165ae9
Add missing aim-down texture for Switch controller
andich-xyz Mar 17, 2026
567ddf3
Shaker improvements (#2089)
manuq Mar 30, 2026
566117a
build: Rename .gitkeep files to .gdignore (#2091)
wjt Apr 1, 2026
c7729e3
Make Repel action a bit more generic (#2088)
manuq Apr 1, 2026
4861d1e
Add input hints throughout playable scenes (#2084)
andich-xyz Apr 1, 2026
a1fbcd7
Add Dzianis Andzich to community credits (#2093)
andich-xyz Apr 1, 2026
66bde7d
input_hud: Divide hints between left and right margins (#2096)
wjt Apr 2, 2026
5c71655
input_hud: Hide when paused & during transitions (#2097)
wjt Apr 2, 2026
227de58
HookableArea: Use it only as a node (#2094)
manuq Apr 2, 2026
281b2e6
InputHud: Disable mouse input (#2099)
manuq Apr 2, 2026
076bf5d
InputHud: Allow custom built player (#2098)
manuq Apr 2, 2026
ced4bc9
SceneSwitcher: Grant DEBUG_ABILITIES when URL hash changes (#2100)
wjt Apr 2, 2026
b005ff9
HookControl: Disable keyboard aiming while mouse is in use (#2101)
manuq Apr 6, 2026
02c84a3
Update Spanish translation (#2103)
manuq Apr 8, 2026
ab0e238
Add language selector (#2104)
manuq Apr 9, 2026
62123bc
Make Grapple action a bit more generic (#2102)
manuq Apr 9, 2026
476327b
Ignore Backstitch files (new name for Godot Patchwork) (#2106)
wjt Apr 13, 2026
9b23441
ci: Export with Godot 4.6.2 (#2111)
wjt Apr 14, 2026
b0a5c04
shaker: Remove unused scene (#2109)
wjt Apr 14, 2026
93a65ce
grappling_hook_start: Switch to Creep Outro when returning from power…
wjt Apr 14, 2026
43a9adc
Integrate new grappling hook assets (#2116)
manuq Apr 14, 2026
0739571
Add new Inn building (#2115)
manuq Apr 14, 2026
856660f
Integrate powerup asset (#2120)
manuq Apr 15, 2026
282dc9d
CharacterRandomizer: Use own random number generator (#2131)
manuq Apr 18, 2026
62aa15c
Add project setting to skip the sokobans (#2127)
manuq Apr 20, 2026
a55f3f2
project: Refer to InputHud global scene by path (#2132)
wjt Apr 20, 2026
ef05fce
Add project settings to skip the splash + title screens (#2128)
manuq Apr 20, 2026
a38351a
Settings: Add option to disable the input HUD (#2133)
wjt Apr 20, 2026
cbaa8a9
Eldrune: Asset cleanup (#2135)
wjt Apr 21, 2026
c03403b
Storybook: Hide navigation arrows at page boundaries (#2134)
dkg-0717 Apr 21, 2026
7d2b6de
Eldrune: Reduce music size (#2137)
wjt Apr 21, 2026
ec0b9c7
Fix accessing threadbare_project_settings in non-editor builds (#2139)
wjt Apr 21, 2026
b504da7
powerup: Reset to default SpriteFrames (#2140)
wjt Apr 21, 2026
2ea440f
verso: Fix UID in references to verso_projectile.tscn (#2141)
wjt Apr 21, 2026
42a350f
shjourney: Remove unintentional TileMapCover (#2142)
wjt Apr 21, 2026
c1a837e
Desaturate musical rock sprite (#2146)
wjt Apr 28, 2026
f4785b5
SequencePuzzleObject: Add sprite_modulate property (#2147)
wjt Apr 28, 2026
754e68e
Add walk animation to townies (#2145)
manuq Apr 28, 2026
4ec5a4e
Add repel powerup sprite (#2148)
manuq Apr 28, 2026
85fff82
character_randomizer_test.tscn: Fix dialogues (#2152)
manuq Apr 29, 2026
9a949de
Move interact verb/action to HUD (#2150)
wjt Apr 29, 2026
78ceff3
checkpoint: Make player spawn in front, not behind (#2153)
wjt May 1, 2026
62bbc04
Add tutorial quest (#2157)
wjt May 6, 2026
ca635e7
Music puzzle: Remove 1.2× scaling on altars (#2158)
wjt May 6, 2026
a3e4d77
Input HUD: Use consistent input button icons (#2166)
wjt May 7, 2026
7766c40
Moss the Monk: Integrate idle animation asset (#2168)
manuq May 7, 2026
abcce19
Add temporary asset for buttons collector (#2169)
manuq May 7, 2026
2a72538
Add butterfly scene (#2172)
wjt May 8, 2026
1e008b0
Void particles outline (#2171)
manuq May 8, 2026
08a1e3b
Add and use sheep decoration scene (#2177)
wjt May 13, 2026
e2cd728
Improve tutorial quest scenes (#2178)
wjt May 13, 2026
29be516
player: Hide PointLight2D node (#2180)
wjt May 13, 2026
bf84aea
Replace "Abandon Quest" with "Skip Tutorial" for tutorial quest (#2181)
wjt May 13, 2026
885030c
Use left-stick not dpad in input hints (#2183)
wjt May 13, 2026
a93c53c
Add & use bunny & capycorn decoration scenes (#2187)
wjt May 14, 2026
da5bb87
El Juguete Perdido: Use shared sheep prop (#2189)
wjt May 14, 2026
143c585
NO_EDIT outro: Add a forest (#2188)
wjt May 14, 2026
270ffbe
quest_001: Remove first round of ink combat (#2190)
wjt May 14, 2026
42f2982
Void quest: Remove basic grapple powerup (#2191)
wjt May 14, 2026
3ac5d1b
Add tree affected by Void (#2184)
manuq May 14, 2026
c17ffac
HUD hint buttons: Project shadow for better contrast (#2167)
manuq May 14, 2026
a4e64a9
Drop shadow shader: Consider modulate color (#2194)
manuq May 14, 2026
848a9f6
Add Windows export preset (#2182)
wjt May 15, 2026
163d452
Update a few scenes to elevation_2 tileset (#2203)
wjt May 15, 2026
c210885
Fit logo animation sprite sheet under 4096×4096 (#2196)
wjt May 15, 2026
ef20679
shjourney: Wrap intro animation sprite sheet (#2197)
wjt May 15, 2026
226ff24
Elders: Handle empty quest directory gracefully (#2199)
wjt May 15, 2026
71cdd2c
Remove unused guard_sprite_frames (#2198)
wjt May 15, 2026
65f1e6b
Remove unused intro scene (#2200)
wjt May 15, 2026
766d941
Miscellaneous tutorial quest tweaks (#2201)
wjt May 15, 2026
080bd9b
void_spreading_enemy: Reduce walking speed slightly (#2202)
wjt May 15, 2026
3781634
ci: Update setup-uv to v8.1.0 (#2208)
wjt May 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ indent_size = 2
[*.toml]
indent_style = tab
indent_size = 4

[*.html]
indent_style = tab
indent_size = 4
15 changes: 10 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,14 @@ docs/issue_template.md @endlessm/community
scenes/quests/template_quests/ @endlessm/games @endlessm/learning

# StoryQuest maintainers
scenes/quests/story_quests/stella @endlessm/games @endlessm/learning
scenes/quests/story_quests/stella @endlessm/games @endlessm/learning

scenes/quests/story_quests/champ @endlessm/games @endlessm/verso
scenes/quests/story_quests/el_juguete_perdido @endlessm/games @endlessm/el-juguete-perdido
scenes/quests/story_quests/shjourney @endlessm/games @endlessm/suenos-nocturnos
scenes/quests/story_quests/verso @endlessm/games @endlessm/verso
scenes/quests/story_quests/after_the_tremor @endlessm/games @endlessm/after-the-tremor
scenes/quests/story_quests/champ @endlessm/games @endlessm/verso
scenes/quests/story_quests/el_abrigo @endlessm/games @endlessm/el-abrigo
scenes/quests/story_quests/el_juguete_perdido @endlessm/games @endlessm/el-juguete-perdido
scenes/quests/story_quests/el_ojo_revelador @endlessm/games @endlessm/el-ojo-revelador
scenes/quests/story_quests/eldrune @endlessm/games @endlessm/eldrune
scenes/quests/story_quests/renya_beyond_sorrow @endlessm/games @endlessm/renya-beyond-sorrow
scenes/quests/story_quests/shjourney @endlessm/games @endlessm/suenos-nocturnos
scenes/quests/story_quests/verso @endlessm/games @endlessm/verso
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,31 @@ body:
Thanks for taking the time to file an issue! **Please provide as much
detail as you can** so we can properly confirm, triage, and fix your bug.

- type: input
id: version
attributes:
label: Threadbare version
placeholder: e.g. v0.1.11
description: >
This is shown on the title screen. If you're not sure, leave it blank.
validations:
required: false

- type: input
id: scene
attributes:
label: Affected scene
placeholder: e.g. Fray's End, quests/lore_quests/quest_002/3_void_grappling/void_grappling_round_2.tscn
description: >
Give an example of a scene in the game where you see this problem. If
you're not sure, describe the scene visually, or leave this blank.

If you report a problem from within the game, this will have been filled
automatically with the current scene. You can change this if you are
reporting a problem you saw in a different scene.
validations:
required: false

- type: textarea
id: about
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
steps:
- uses: actions/checkout@v6
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
uses: astral-sh/setup-uv@v8.1.0
with:
cache-dependency-glob: ".github/workflows/checks.yaml"
- name: Check REUSE compliance
Expand Down
92 changes: 35 additions & 57 deletions .github/workflows/export.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
run: git lfs checkout

- id: changes
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
with:
filters: |
linux:
Expand All @@ -66,27 +66,19 @@ jobs:
- name: Export web build
uses: endlessm/godot-export-action@v1
with:
godot_version: "4.6.1"
godot_version: "4.6.2"

# PCK files are the same across export presets/platforms; prep the one
# just exported for web to be used separately, i.e. for Flatpak builds
- name: Copy PCK file
- name: Check GDScript diagnostics
run: |
cd build
cp web/index.pck '${{ env.PCK_NAME }}.pck'
python tools/check-gdscript-lsp-diagnostics.py --godot build/godot || \
echo "::warning::GDScript diagnostics check failed (exit code $?)"

- name: Upload web artifact
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: web
path: build/web

- name: Upload PCK artifact
uses: actions/upload-artifact@v6
with:
name: pck
path: build/${{ env.PCK_NAME }}.pck

flatpak:
name: Build Flatpak
needs: build
Expand All @@ -103,12 +95,16 @@ jobs:
linux

- name: Download Artifact
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
name: pck
name: web
path: build

- name: Rename pck file
run: |
mv build/index.pck build/threadbare.pck

- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: threadbare.flatpak
Expand All @@ -124,65 +120,47 @@ jobs:
linux/*

- name: Upload Linux metadata bundle
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: threadbare-linux-metadata
path: threadbare-linux-metadata.tar.gz
archive: false

release:
name: Attach to release
needs: [build, flatpak]
if: ${{ github.event_name == 'release' }}
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ github.token }}
steps:
- name: Download PCK
uses: actions/download-artifact@v7
- name: Download web bundle
uses: actions/download-artifact@v8
with:
name: pck

- name: Attach PCK
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
mv '${{ env.PCK_NAME }}.pck' '${{ env.PCK_NAME }}-${{ github.ref_name }}.pck'
gh release upload '${{ github.ref_name }}' '${{ env.PCK_NAME }}-${{ github.ref_name }}.pck' --repo '${{ github.repository }}'
name: web
skip-decompress: true

- name: Download Flatpak bundle
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: threadbare-x86_64.flatpak

- name: Attach Flatpak bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
mv threadbare.flatpak 'threadbare-${{ github.ref_name }}-x86_64.flatpak'
gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-x86_64.flatpak' --repo '${{ github.repository }}'

- name: Download web bundle
uses: actions/download-artifact@v7
- name: Download Linux metadata bundle
uses: actions/download-artifact@v8
with:
name: web
path: web
name: threadbare-linux-metadata.tar.gz

- name: Attach web bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Attach assets to release
shell: bash
run: |
pushd web
zip -r "../threadbare-${{ github.ref_name }}-web.zip" .
popd

gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-web.zip' --repo '${{ github.repository }}'
set -ex
unzip web.zip index.pck
mv index.pck 'threadbare-${{ github.ref_name }}.pck'

- name: Download Linux metadata bundle
uses: actions/download-artifact@v7
with:
name: threadbare-linux-metadata
mv web.zip 'threadbare-${{ github.ref_name }}-web.zip'

- name: Attach Linux metadata bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
mv threadbare.flatpak 'threadbare-${{ github.ref_name }}-x86_64.flatpak'
mv threadbare-linux-metadata.tar.gz 'threadbare-${{ github.ref_name }}-linux-metadata.tar.gz'
gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-linux-metadata.tar.gz' --repo '${{ github.repository }}'

for file in threadbare-${{ github.ref_name }}*; do
gh release upload '${{ github.ref_name }}' "$file" --repo '${{ github.repository }}'
done
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@ __MACOSX

# LibreOffice lock files, created while editing credits CSV files
.~lock.*#

# Godot Backstitch addon, bundled editor build, and config/state files, from
# https://github.com/inkandswitch/backstitch-launcher/blob/main/.gitignore.template
/addons/backstitch/
/godot_editor/
.backstitch_version
/.backstitch/
backstitch.cfg
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ repos:
)

- repo: https://github.com/Scony/godot-gdscript-toolkit
rev: 4.3.4
rev: 4.5.0
hooks:
- id: gdformat
exclude: |
Expand Down
Loading