V1.0.4
- Added back the travel announcement (for example, “Traveling to Combat 5, 3”) that fires when you begin moving to a map node, in both singleplayer and multiplayer. It can be toggled under Events / Map / Travel.
- Added commas between every part of an element’s focus readout. Previously the label, type, subtype, and position pieces were space-joined to whatever came next, which could run two words together on screen readers that don’t pause on plain spaces.
- Fixed a number of strings in the mod settings that were not being localized into other languages.
- Fixed a bug where the deck shuffled into draw pile readout was triggering when any player’s deck was reshuffled instead of just yours in multiplayer.
- Fixed a bug where stackless powers such as Shrink were being read out as -1 stacks for both power gained/lost events and the read powers binding.
- Fixed a bug introduced in the latest game beta where you could no longer focus other players in multiplayer outside of combat.
V1.0.3
- Fixed a bug where the Say the Spire version announcement in the main menu could repeat infinitely if the logo was skipped and there was no mod update available.
- Added buttons in the mod menu for Discord and Patreon.
- Clarified the label for the Combat Rewards Screen under advanced mod settings/UI Enhancements to explicitly say what it does (specifically adds the skip button.)
- Split the card rewards screen UI enhancements toggle into two: One for the focus fix and one specifically for the card reward alternatives (skip, reroll, sacrifice, etc.)
V1.0.2
- Fixed a bug where you could focus unreachable map nodes with the game cursor (thanks @amerikrainian for the pr).
- Fixed a bug where sliders in the game settings screen could have incorrect position readouts (language dropdown was reading as “15 of 15” even though it was first in the list, for example.)
- Fixed the Check for Updates at Launch checkbox in mod settings being at the wrong position in the list; it is now positioned at the bottom.
V1.0.1
This is an emergency patch to fix an issue where you could not select characters other than Ironclad. This was caused by a change in the game’s controller logic on the character select screen interacting with our mod’s controller focusing logic in an unintended way.
V1.0.0
- Replaced the Tolk screen-reader library with Prism. Prism is similar to Tolk but supports more screenreaders and is actively being updated. Please let me know if there are any issues with your prefered output method.
- Added machine translations for all remaining languages. Please let me know if there are any issues with the translations. I will accept contributions with fixes.
- The mod now checks GitHub for a newer release at launch and announces it alongside the version. Disable via the new “Check for Updates on Launch” toggle at the top of mod settings.
- Added support for the bestiary screen on the beta branch.
- You can now adjust the mod enhancements to UI from the advanced settings category. This allows you to toggle settings that adjust game UI focus, such as focus rewiring on the combat screen. It is highly recommended that you leave all of these enabled.
- Home and end now work on many game screens to jump to the first or last element of the current container (hand, menu items, etc.) This will not work on certain screens or in places where it wouldn’t make sense (for example when hovering the hp label in combat.)
- Fixed the Crystal Sphere event leaking size information about entirely hidden objects.
- Cells for the crystal sphere event now have their own dedicated UI category, allowing for their individual settings to be configured. Previously they were being categorized as buttons, which lead to some confusing behavior.
- Cards, relics, and potions shown on the epoch unlock screens are now focusable with keyboard / controller and read out via the screen reader.
- Added a “Keep Summoned Creatures Focusable” setting to the UI Enhancements category (defaults to enabled.) When enabled, it prevents the game from arbitrarily hiding summoned creatures (this usually occurs in multiplayer.)
- The credits screen now reads aloud automatically as it scrolls.
- Fixed a bug where the Announce Act Boss keybinding would only report the first boss of the current act even when there were more available.
V0.5.2
- Added partial Russian localization (thanks to @darrthscorrp.)
- Restored the missing owner readout on summoned creatures (such as Osty). this regression was accidentally introduced in the previous patch.
- Finally fixed a bug where you could not properly target the fake merchant with a foul potion.
- Fixed a bug where controller input would not be processed until a keyboard input was pressed first.
- Fixed a bug where you could access the custom and daily run screens before actually unlocking them.
- Various fixes thanks to @amerikrainian:
- Added badges and relic acquisition info to run history
- Fixed powers sometimes not showing their correct current value (for example Hardened Shell.)
- Added facing direction in the player buffer and a facing changed event for fights where you are surrounded (for example the crab boss in Act 2.)
- Fixed custom runs becoming unresponsive if you used either the Draft or Sealed Deck modifiers.
- Added focusable buttons for the alternative card reward options (skip, reroll, sacrifice, etc.) this behavior was already supported but you needed to use a shortcut to access them. The buttons have been added for a better user experience.
- The proceed button is now focusable in the rewards list (can be pressed instead of using the proceed shortcut.)
V0.5.1
Due to the significant refactoring to how UI element configuration works, some of your saved settings will not carry over to this version of the mod. sorry for the inconvenience. All functionality is still present but you will have to reconfigure it.
- The focus-string system (text read out when you focus abutton, card, etc) has been reworked from a fixed template into a composable set of “announcements” that you can toggle, reorder, and customize individually. Each piece of information an element reads out — label, type, HP, block, intents, tooltip, price, position, etc. — is now its own announcement with its own settings.
- Every element type (card, creature, button, relic, potion, shop item, map node, keybinding, …) now has an Announcements tree under
UI/<element>/Announcements. Each announcement in that tree is configurable independently and inherits its values from a global default unless you change it. - You can now reorder the pieces of an element’s focus string. Each announcement in an element’s Announcements tree is a row with Configure / Move Up / Move Down buttons. Use this to (for example) put monster intent before HP on creatures, or put price first on shop items. The new position is spoken as “moved between X and Y”, “moved before X”, or “moved after X”.
- A subset of announcements (Label, Position, Selected, Selection Count, Status, Subtype, Tooltip, Type, Voters) also appear in a top-level Announcements tree so you can toggle them across the whole game without setting per-element overrides. The more context-specific announcements (HP, energy, price, monster intents, etc.) are only configurable per element.
- Each per-element Announcements tree has a Reset to Defaults action that clears your overrides back to inheriting the global value.
- Map node focus strings are now built from separate announcements (marked, free travel, node state, voter list, marker guidance) so each can be toggled or reordered.
- Focused player creatures now read their current energy, stars, and cards-in-hand alongside HP and block.
- The “Announce Intent Before HP” setting for creatures is gone — use Move Up on the Monster Intents row under UI/Creature/Announcements instead.
- Fixed a bug where the events buffer would keep disappearing mid run.
- Fixed a bug causing a crash in the beta version whenever the mod would try to view any information on creatures (players or monsters.) this only occurs for some users due to weirdness caused by inconsistent beta branch rollouts from Steam.
- Added propper support for the card preview event (triggers when a card is briefly shown, such as when a card is enchanted with Replay via the Hidden Gem card.)
- Added a Card Enchanted event for when a card gains an enchantment. Note that there doesn’t seem to be any visual feedback for when cards gain afflictions from the game itself, so I didn’t add a specific event for it.
- Various fixes, thanks to @amerikrainian:
- Fixed voters missing from event option and treasure room relics in multiplayer.
- Fixed creature owner missing on summoned creatures in multiplayer.
- Added support for score badge reading on game over screen.
- Fixed card upgrade buffer crash in beta branch.
- Fixed card compendium sort buttons to properly read out ascending/descending state changes.
- Fixed map screen stale data/crash bug in beta branch.
V0.4.1
- Fixed an incorrect localization string that was causing positions to be read out as “row y, column x” instead of “x, y”. All positions should be in the form column, row.
- Fixed an issue with the hand card select screen where pressing down from the creature row would not focus the first selected card if the hand row was empty.
- Split card discarded and card added to discard pile into separate events that now correctly announce the actual thing that happened. For example, discarding a card with Survivor’s effect will read as “Strike discarded” instead of “Strike added to discard pile.”
- Split the unclear “Card Pile” event into individual card events.
- Events in settings are now grouped into categories for easier navigation.
V0.4.0
- Significantly refactored the code to allow more of the mod’s text to be localized. This should allow most, if not all, text to be localized for real this time. I suspect some strings may be still missing though, please report any that are.
- Added better logging for some errors that may occur in rare circumstances (failed Harmony patches to game methods, etc.) If game updates change anything this should make catching it easier.
- The keybindings in settings are now grouped into categories to make browsing the list much easier (thanks to @amerikrainian).
- Added propper support for the card compendium thanks to @amerikrainian.
- Added a show enemy intent setting to the enemy moves combat event. This will announce the intent of the enemy’s move at the start of its turn.
- Added player turn start, player turn end, enemy turn start, enemy turn end, and show rounds settings to the turns event.
- Added help messages to the hand select screen and the Crystal Sphere divination event.
- Added support for map nodes that require flight thanks to @amerikrainian (for example given by the Winged Boots relic in the beta branch.)
- Added support for the dev console (use ` on any screen to access it by default.)
- Added support for relic vote announcements as well as announcements of map node votes when focusing a map node (thanks @amerikrainian)
- Added badges to leaderboard screen (thanks @amerikrainian)
- Fixed a bug where the map viewer controls would take priority on screens that opened while the map screen was also open, preventing access to buffers.
- Fixed a bug where the position information for creatures in combat (mostly for other players and temporary summons) would often be incorrect.
- Fixed a bug where downgraded cards were not being properly read out.
- Fixed a bug where the card upgrade/downgrade event would not announce the name of the player in multiplayer who actually got the upgrade/downgrade.
V0.3.0
- Fixed an issue where localization was only using English and not the current game language.
- Fixed an issue where the Chinese localization would not load due to using the wrong localization code.
- All mod text should now be localizable (added roughly 120 missing strings to the locale files.)
- The game’s act banner text is now announced (the act name and number is displayed at the start of each act visually.)
- Fixed a bug where card upgrades would be read out at incorrect times (for example, reward screens with upgraded cards would trigger the upgrade event erroniously)
- Various map improvements thanks to @amerikrainian:
- You can now browse points of interest (shops, elites, etc) with dedicated controls.
- You can mark or unmark those points. Doing so will modify the text of map nodes, telling you whether or not that node will lead you towards that target or diverge away from it.
- Various multiplayer improvements and fixes thanks to @amerikrainian:
- Player intents are now read
- Fixed a bug where the player buffer would not properly update to match the current player when unhovering another player.
- Fixed a bug where player names in multiplayer would be read out as their steam ID (a string of numbers) instead of their display name.
- Fixed a bug where player join announcements would not work when hosting a saved game.
- Added several screens thanks to @amerikrainian:
- The daily run screen, including leaderboard, is now fully supported.
- The custom run screen is now fully supported.
- Added support for run history, stats, potion lab, and relics screens in the compendium.
- You can now press f1 for context-sensitive help on any screen. Use the up/down controls to navigate through all available messages on each screen. If a message contains multiple actions, use left/right to browse each action individually.
- Fixed a bug where UI elements that yielded the same text (such as card reward buttons with identical labels) would be treated as the same element.
- Fixed a bug where epochs within each timeline era were listed in reverse order.
- Fixed a bug where controller focus would act strangely in rest sites if you have the ability to choose multiple actions (control focus neighbors were not being continuously updated.)
- Fixed a bug where ascension text on the character select screen would be read before newly focused characters. The text is now also part of the tooltip for the character button.
- Fixed a bug where post-combat rewards were often missing their type and tooltip.
- Fixed a bug where creatures would have misleading potion info when targeting them with potions or cards. For example, with 3 enemies, the first would be labeled “2 of 4” instead of “1 of 3” due to allies being included in the creature count.
V0.2.0
- The mod now has documentation. It can be viewed on the github for the latest version here. Alternatively you can select view Documentation from the mod menu.
- The mod now has a Simplified Chinese localization (thanks to QgSama.) Note that not all text is localized; more text will be localizable in future mod updates.
- Fixed a number of focus issues with potions and relics outside of combat. The potion slots are now properly treated as separate elements and the relics row now wraps properly.
- Fixed players in multiplayer missing most information from their buffers.
- Fixed the hand card selection screen not wrapping horizontally.
- Fixed a bug where the character select screen was not properly removed from memory when it was closed, leading to a number of focus issues when attempting to start more than one run in a single session. Again. I think for real this time.
- Fixed an issue where all card hover tips in buffers were reported as “stolen card”.
- Implemented missing events for Card Played, Potion Used, and End Turn. These default to not reading for the player but reading for other players; this can be configured from event settings.
- You can now press confirm or select on a player in multiplayer to open their expanded screen. this displays their hand, relics, and potions.
- Fixed an issue where power gained announcements for stackless powers (such as Shrink) would not trigger.
- Fixed an issue where certain settings in the settings menu were listed in the wrong order (such as the speech handler selection.)
V0.1.7
- Updated mod manifest to new game format (added
idfield). The mod now works with the latest Slay the Spire 2 update. - Suppressed mouse hover from stealing focus during keyboard and controller navigation. Previously, if the mouse cursor was on screen, it could cause erratic focus jumping. This could happen even if you didn’t have a mouse plugged in or you were using a laptop trackpad for various reasons. Hopefully this fixes the last of the eratic focus issues but please report anything acting oddly.
- Fixed character select screen container announcing “Lobby” in singleplayer (now says “Characters”).
- Fixed an issue where reported map coordinates were inconsistent between various screens (for example multiplayer votes were off by 1 in both x and y.)
V0.1.6
- Emergency fix for a bug introduced in V0.1.5 which caused the shop items to be processed by our mod as generic buttons, making the shop basically unusable.
- fixed an issue where star costs for Regent cards were not including any modifiers (such as Void Form.)
- Fixed an issue where card rewards has their cards reversed.
V0.1.5
- The installer has received significant updates and it is highly recommended that you download the new version of it. You can now choose which version of the mod to install (including test releases.) You can also choose to disable screenreader support in the installer itself; this is for sighted players so they can play with you in multiplayer (everyone must have the same mods installed.)
- Fixed a bug in the installer where it would consider earlier mod versions as updates.
- Fixed controller bindings: View Exhaust / Tab Right now defaults to just RB (was RT+RB, conflicting with View Discard Pile). Note that if you were using an earlier version of the mod, you must update this binding yourself or reset bindings to defaults.
- The card buffer now condenses name, type, and rarity onto the first line (e.g. “Strike, Attack, Basic”). Feedback would be appreciated for this one.
- Added multiplayer lobby accessibility: character select buttons, player list buffer (shows connected players with character and ready status), join/leave/character change announcements, and ready state announcements.
- Added multiplayer voting announcements for map path voting and shared event voting. Announces who voted for what and the final result.
- Added act ready-up announcements (“Waiting for other players”, “All players ready”) and network timeout warnings.
- Added event source filtering: events with creature sources now have per-source-type toggles (Current Player, Other Players, Enemies) under a Sources subcategory in settings. If you don’t want to hear other players losing block for example, you can turn that off. Events from sources the game doesn’t provide visual feedback for are silently dropped in multiplayer (matches game behavior; you don’t see when another player draws a card for example.)
- Multiplayer shared events now announced with “Shared event.” prefix (some events are per user, others require a vote.)
- Fixed Defect orbs not being focusable in multiplayer (was sometimes checking the wrong player’s orbs).
- Fixed various incorrect readouts in multiplayer (such as you losing gold when it was, in fact, another player losing gold.)
- Removed end-of-turn focus suppression that was blocking card popups and other UI. You may still hear the occasional erronious control read out at end of turn as a result, but it is better than the alternative for now.
- Fixed power events: decreasing a power to 0 no longer double-announces (only “lost PowerName” is announced, not both decreased and removed).
- Non-stacking powers (permanent duration, such as Shrink) no longer show misleading -1 stack count in announcements and buffers.
- Stolen cards (Swipe power) now show in the creature buffer as “Stolen card: CardName”.
- Removed the redundant “Announce All Block Lost” setting; “lost all Block” is now always announced when block hits 0.
- switching to the events buffer now jumps to the most recent item.
- Fixed hand card selection screen (e.g. Well Laid Plans retain) to include the selected cards row. You can now arrow down to see selected cards and back up to the hand. Note that these directions are swapped in game too compared to Slay the Spire 1; this isn’t a mod bug.
- Fixed grid position announcements to use coordinate order to (x, y) instead of (y, x). This should also fix inconsistencies with the Crystal Sphere divination event.
- Refactored the focus system to a centralized update loop, fixing issues where container context wasn’t announced when backing out of settings subcategories or when controls moved between containers.
- Fixed Ctrl+Shift+R (Reset Bindings) to reset the mod’s own keybindings instead of the game’s.
- Fixed card and relic buffers not listing rarity on the first item.
- Fixed certain card selection screens not reading (for example the Dreamcatcher relic card reward)
- Grid card selection screens now announce card selected state and how many cards are selected.
- Fixed various focus issues on the mode select screen, as well as mode buttons lacking tooltips.
V0.1.4
- The Python installer has been replaced with one coded in Rust. This should prevent Windows Defender erroniously flagging the installer as a virus and improve stability of the app overall.
- Fixed numerous focus issues when navigating between rows on the combat screen. Creatures and Defect orbs should now consistently be navigable.
- Added position announcements to combat screen rows (e.g. “card 3 of 5”).
- Added left/right wrap-around navigation for the relics row.
- Added support for the Crystal sphere/divination event. I did my best to match what sighted players are able to see but the event is somewhat nonintuitive; any feedback on how I can make this clearer would be greatly appreciated.
- Added “Announce Intent Before HP” setting under UI/Creature. When enabled, creature focus reads intent before HP (e.g. “Slime, attack 7, 50/50 HP” instead of “Slime, 50/50 HP, Intent attack 7”).
- Added a setting for each UI element to toggle position announcements on/off (defaults to on for all.)
- There is now a hotkey to read out all relic counters (keyboard: ctrl+r, controller: rt+back)
- fixed incorrect controller default for view exhaust/tab right (it is now rt+rb as intended.)
- Changed the default keyboard binding for view exhaust/tab right from X to F (A/S/D/F row).
- The map viewer can now be opened during combat, events, and other screens by pressing the map key (M / Back). It starts on the next node ahead and optionally announces your current location.
- Added “Announce Current Location When Map Opens” setting under Map (defaults to on).
- View exhaust/tab right on keyboard is now f instead of x by default.
- Pressing the map key to view the map from anywhere now properly allows you to browse the map with the usual controls.
- Accessibility is now off by default for Workshop installs. The installer automatically enables it. You can also toggle accessibility with Ctrl+Shift+A (requires a game restart to take effect).
V0.1.3
This is an emergency release to fix a bug where any events would not be announced during a run if you started a run from the character select screen. The character select screen was not properly being removed from memory, which was causing an uncaught exception that silently aborted the event queue processing (so it never got to the events to announce them.)
V0.1.2
- Added orb support for the Defect: orbs now read their name, passive/evoke values, and empty slot tooltips. This also fixes a bug where all Defect orbs were reading out as “The Defect”… Oops.
- Added event announcements for orb channeled and orb evoked, with per-type toggles.
- Added timeline top panel shortcut to jump to the first revealable epoch.
- Improved readouts and card prompts for Choose a Card screens (e.g. Survivor discard, Armaments upgrade).
- Added verbose logging toggle under Advanced settings.
- Added per-type toggles for HP change events (announce damage, announce heals).
- Added per-variant toggles for block events (announce gained, announce lost, announce all lost) and a setting to include or hide block totals.
- Added per-type focus string settings to toggle type, subtype, and tooltip announcements for each UI element type (card, relic, potion, creature, etc.)
- Added rarity to relic and potion buffer readouts.
- Improved focus string format for more consistent and informative readouts. For example, if you don’t want to hear that each map node is in fact a map node since you already have context, you can toggle that off.
- Removed colon punctuation from focus string outputs (e.g. “Intent Attack 7” instead of “Intent: Attack 7”). This should flow much smoother now and feel faster.
- Improved performance when processing controller input. This should feel significantly better now; please report if anything breaks as a result.
- Merchant items, rewards, and other wrapped elements now use the same buffer and focus string behavior as their underlying type (e.g. a merchant card reads the same as a regular card).
- Fixed star cost readouts not showing on Regent character cards; energy and star costs are now combined on one line. Regent stars are also included in the player buffer and energy hotkey readouts.
- Fixed various bugs with screen state that could cause stale data or unexpected behavior after saving, quitting, or switching screens. This should hopefully finally get rid of the duplicated event announcements in combat.
- Fixed focus issues during card selection screens. This should fix certain selections not reading, such as choosing a card for Well Laid Plans.
- Added announce boss keybind (Ctrl+N / RT+B) to read the current act boss. Supports double boss in higher ascensions.
- Added announce summarized intents keybind (Alt+I / RT+X) to read total incoming damage from all enemies.
- Added ascension level announcements on the character select screen, reading the level, title, and description when changed.
- Added accessibility for the card pack bundle selection screen (Scrollboxes event). Pack contents are read out, and preview cards can be navigated with left/right.
- Added unlock requirements and tooltip text to the random character button.
- Fixed intent names using internal enum names instead of the game’s localized names.
- Fixed foul potion “throw at merchant” not completing when using keyboard/controller.
- Fixed creature focus not updating when bosses die and resummon in a new form.
- Fixed block lost event not reading when all block was lost with “Announce All Block Lost” disabled but “Announce Block Lost” enabled.
- Fixed empty treasure chest not announcing when opened.
- Changed the default Top Panel keyboard binding from Tab to T.
V0.1.1
- Added jaws config files to improve the overall experience using jaws (silencing of annoying sentinel initialized announcement, propper handling for arrow keys/escape, etc.) These can be installed via the installer or as part of the manual process.
- Added better logging for combat events to hopefully track down a duplicate announcement bug.
- Fixed incorrect localization lookups for map nodes and merchant slots.
- Map nodes now only announce traveled state (IE you have been there before); the reachable and unreachable state announcements were irrelevant and causing confusion.
- Fixed an issue where the controller focus could get stuck on the character select screen if the user moved the cursor to panels that aren’t yet available (such as the ascension panel.)
- Fixed an issue for rest sites where the focus would move in extremely unpredictable ways. The buttons are now properly a navigable row.
- Added events and announcements for card upgraded, obtained card, obtained potion, and obtained relic.
- End of turn Hand Discarded and start of turn Deck Shuffled announcements can now be toggled under the card piles event.
- Mod settings menus are now sorted alphabetically.
- The default keyboard binding for back is now backspace instead of escape to avoid input conflicts. You will have to adjust this keybinding yourself if you have already played the game though as your settings file doesn’t reset to defaults on mod update.
- Fixed an issue where the focus would glitch during the player’s end of turn sequence resulting in readouts of random controls.
- Reordered card label to read as “{name}, {cost}, {type}”; also added setting for verbose costs (when unchecked costs simply read as numbers with no label.)
- Fixed an issue where various event announcements and hotkeys (such as player hp) were reading from stale data. This may also fix duplicate event announcements in combat.
- Fixed an issue where the buffer controls would cause a crash if used during the early access explanation screen.
- Fixed an issue where the read all enemy intents hotkey was only reading the numbers and not the actual intent associated with them. Also cleaned up intent formatting to be more natural (e.g. “Attack 12” instead of “Attack: 12”).
- Fixed an issue where every single card was announce being added to the draw pile when the deck was reshuffled.