2026-07-12 To Type a Tale devlog
Modding documentation and public feedback
published: Sun 12 July 2026This was a slow week, due to other obligations, but I still managed some exciting updates. Namely, modding documentation is now available! I also began on the HIA portion of chapter 2.
You can now generate a sample mod in the user mods directory by going to the options page and selecting modding. This sample mod also includes nearly 4000 words of documentation and a 1300-word extra story in the same setting as the main story. I went a bit overboard in the writing...
To assist with modding (and my future plans for chapter 3), I changed the inventory and text-replacement commands to execute in line order, rather than in a fixed by-command-type order. This will allow you to, for example, have an ifreplace which sets up for an ifreplacelist, or vice-versa (chapter 2 already includes an instance of ifreplacelist setting up for an ifreplace). It also allowed me to clean up the tutorial paragraphs a bit and even include a loop so you can try the page-percent tutorial multiple times.
I also got my first bit of critical feedback from the public! Namely, pre-collection creates a distracting mountain of rainbow text under the pager/banks. To address this, I added the "jumble limit" and "flying text" options. Side note: If you want your name/screenname included in these blog posts after you provide feedback, let me know at time of feedback. I default to omitting it for people I don't personally know, for privacy reasons.
I got a small amount of work done on chapter 2, but I have the plans for the rest of it bouncing around in my head, so I should be able to make good progress in the next week. The code work is going to start drying up, so story work will pick up the pace.
Raw Git log
-
writing: trip to HIA
- added trip to HIA and first sentence of unfollowed interaction with greeter
-
changed how exports work
- rather than doubling the number of export presets each time I add a feature flag, I now use feature files for store and re-use the Linux packs for Windows; will need to test this latter aspect
- re-organized stories directory to separate the actual story from the rest of the stuff (menus/licenses/etc.)
-
fixing minor issues with builds
- stores are no longer defined by feature flags, so the "print feature-flags" logic is useless
- DebugPath/DebugState tres files get a .remap slapped on the end in builds, so we need to strip that off
-
added ch01_end DebugState
-
parsed text commands are now also stored in-order
- when ParagraphGenerator is parsing text commands, it now stores in both commands_by_type (renamed from "commands") and commands_in_order, the latter being an array of all non-settings text commands
- this allows the replacer commands (ifreplace, ifreplacelist, storereplace) and inventory commands (addinventory, removeinventory, ifaddinventory) to be executed in any order the author prefers, rather than in a hard-coded order
- modified the tutorial to take advantage of this by putting both the removeinventory and addinventory commands in the same paragraph
- also added a new bookmark change command to the "good/bad" choice to allow the player to re-attempt the typing; and split up the two lines into "virtual" paragraphs (separated by underscore instead of newlines)
-
initial work on modding documentation
- changed DataLoader to only load from specific res:// folders
- added modding_samples folder with samples of Story and MusicGroup (still need to add sample Achievement)
- sample chapters include a basic summary (ch01), a detailed list of text commands (ch02), and a detailed list of word commands (ch03); I still need to add a "full" example (ch04) which shows off the text commands and word commands in-action
-
added "full" sample chapter
- added the ch04 sample chapter which contains a mini-story about a transient crin worker starting their day
- added sample achievements for said story
- changed folder name from 'modding_samples' to 'sample_mod', so I can just wholesale copy the folder to user://mods/sample_mod
- added some error tolerance/correction to AchievementManager
-
added OptionsChapter action to generate sample mod
- added a subpage to OptionsChapter's Other Actions with commands to generate (i.e. copy from res) a sample mod, or open the mods folder in a file browser
- added GENERATE_MOD change command to accommodate above
- fixed an issue with MusicGroup where it could not load user-mod music files, because Godot cannot load actual resources from non-res:// folders
- fixed some typos and editing errors in the sample mod
-
added options to limit flying and jumbled text
- per request from MemerBear for reduced distractions, I added JUMBLE_LIMIT and FLYING_TEXT options
- JUMBLE_LIMIT option allows limiting the number of jumbled labels to 100 (not going to bother soft-coding this)
- FLYING_TEXT option allows disabling words/letters from flying to the top, or even all precollected labels
-
fixed issue with exported music
- my method for loading music files from user:// does not work for music files in res://, so I need both the load() style and load_from_file() style