Introduction
Say the Spire 2 is an accessibility mod for blind and visually impaired players of Slay the Spire 2. It provides text-to-speech announcements and keyboard/controller navigation for all game screens, allowing blind players to fully play the game.
Features
- Full text-to-speech for all game elements
- Full support for Controller and keyboard
- Buffer system for detailed information review
- Configurable Combat event announcements (damage, block, powers, card plays)
- Map viewer with tree-based navigation
- Multiplayer support (lobby, voting, remote player info)
- Customizable event settings with per-source filtering
- Mod settings screen (Ctrl+M) for all configuration
- All keyboard and controller inputs can be configured
Installation
There are two approaches to installing Say the Spire 2. You can either use the installer program (recommended) or manually install.
Disabling Steam Input
If you want to play with a controller, you must disable Steam Input for Slay the Spire 2. This is because the game has a particularly unwieldy Steam Input configuration that prevents many controller inputs from working properly, for example it treats both sticks as being the left stick among other things. You can disable Steam Input for Slay the Spire 2 without changing it for other games. To disable it, do the following:
- In Big Picture Mode: Navigate to Slay the Spire 2 in your library. Move right to Manage, select it, then move down to Properties. Under the Controller tab, find the combo box labeled “Override for Slay the Spire 2”. Select Disable Steam Input.
- In Regular View: In your game library, right-click Slay the Spire 2 (or click the manage/gear button). Click Properties, go to the Controller tab, and set the Steam Input override to Disable.
Using the Installer (Recommended)
The recommended way to install Say the Spire 2 is using the provided installer program. This downloads the latest release, extracts all required files to the right directory, and modifies game settings to enable mods accessibly. You will not need to download an installer to update your mod to a newer version and can just simply use the same program (unless the installer itself is updated.) You can download it from the latest release page.
First-Time Setup
- Important: Launch Slay the Spire 2 at least once before running the installer. The game needs to generate its settings file.
- Run the installer. It will auto-detect the game directory. If it doesn’t, you can browse to find it with the browse button next to the input field.
- Click Install and select the version you want.
- The installer will prompt you with two options:
- Screen reader support: Enable this if you are blind or visually impaired.
- Disable Godot UIA: Recommended Yes for screen reader (particularly NVDA) users. Select No if you are sighted or use other accessibility tools that rely on UIA.
- The installer will enable mods in your game settings automatically. If it can’t find the settings file, it will prompt you to launch the game first and retry.
- Launch the game normally. If done correctly, you should hear the mod speak Say the Spire and the mod version.
Note that you can update to newer versions of the mod with the same installer; simply click the update button in the installer UI.
JAWS Configuration
If you use JAWS, the installer can copy JAWS configuration files to your JAWS settings directory. This is highly recommended. The jaws configuration files allow keyboard input to pass through to the program that jaws would otherwise prevent, such as the arrow keys. They also disable some annoying repeating announcements due to some UIA glitches (frequent reporting of an invisible UI control that handles the game’s crash reporting.)
Click Install JAWS config after installing the mod and the mod will prompt you to select your Jaws settings directory. This will be something like C:\Users\user\AppData\Roaming\Freedom Scientific\JAWS\year\Settings\locale.
Manual Installation
If you prefer not to use the installer or it doesn’t work, you can set things up manually.
- Important: Launch Slay the Spire 2 at least once before running the installer. The game needs to generate its settings file.
- Download the latest zip release from https://github.com/bradjrenshaw/say-the-spire2/releases/latest
- Extract the zip to your game’s root directory. On Windows, the default is
C:\Program Files (x86)\Steam\steamapps\common\Slay the Spire 2. You should see screen reader files in the root directory and amodssubfolder. - Next, modify the game’s settings file. On Windows, this is located in
%APPDATA%/SlayTheSpire2. - Open the
steamsubfolder, then open the subfolder with a long number (your Steam account ID). - Open the
settings.savefile in a text editor (Notepad works well; avoid Word or similar). Search formod_settings(Ctrl+F is helpful as it’s a large JSON file). You should find"mod_settings": null. Replacenullwith{"mods_enabled": true}, so the line reads"mod_settings": {"mods_enabled": true}. Take care not to alter any surrounding formatting. Save and close the file. - Launch the game normally. If done correctly, you should hear the mod speak Say the Spire and the mod version.
Jaws
If you use jaws, configuration files are provided that significantly improve the experience. The jaws configuration files allow keyboard input to pass through to the program that jaws would otherwise prevent, such as the arrow keys. They also disable some annoying repeating announcements due to some UIA glitches (frequent reporting of an invisible UI control that handles the game’s crash reporting.)
The jaws scripts are located in the jaws subfolder of the release zip. Open this folder, copy them all to clipboard, and then paste them in your Jaws settings directory. This will be something like C:/Users/user/AppData/Roaming/Freedom Scientific/JAWS/year/Settings/locale.
Getting Started
After installing the mod, launch Slay the Spire 2. You should hear the mod announce Say the Spire and the mod version.
How It Works
The mod acts as a screenreader for Slay the Spire 2, narrating focused UI elements and announcing gameplay events. Navigating the UI should feel fairly intuitive for the most part. Use the arrow keys, d-pad, or left stick to navigate menus. Use enter/a/x to confirm, backspace/b/circle to cancel. To read more information on an item, use control up/down (keyboard) or right stick up/down (controller) to review the current buffer of information (we will get to buffers in a moment.) The game does use quite a few bindings, so I highly recommend you consult the bindings documentation or check your mod settings menu (ctrl m keyboard, r2+start xbox, rt+start ps5.)
A note when playing your first game: the tutorial dialogs are a little unintuitive for the moment. For the multi-page tutorials, you must use right and left to navigate the pages; navigate right of the last page to exit and return to regular gameplay.
Help
If you want context-sensitive help on any screen, press f1 (keyboard) or left trigger plus back (controller). This will provide help text and available controls for the screen you’re currently on. Use up and down to navigate through available help messages. If a help message contains multiple actions/controls, use right/left to browse them individually. You can exit the help screen by pressing the help key again, or by using the usual back/cancel controls.
Buffers
To access additional statistics and tooltips you can use the buffer system. There is an extra set of controller and keyboard inputs to provide information. This is generally refered to as the buffer system and is mapped to the right stick or control plus the arrow keys on keyboard by default. As you move over various UI Elements, contextual buffers will appear. These are just lists of various pieces of information about the element you’re focusing on. For example, if you hover over a card, the card buffer will be automatically focused and will contain information such as the card’s name, energy cost, description, etc. Use ctrl up/down (keyboard) or right stick up/down (controller) to review the contents of the currently selected buffer.
Even though you are focused on the card element for example, other buffers of information will also be present. You can use ctrl left/right (keyboard) or right stick left/right (controller) to navigate between these. This lets you inspect various information you could see visually without having to move to the corresponding element. These include the player buffer (for hp, energy, gold, etc), the events buffer (for reviewing things that have happened), the lobby screen in multiplayer, etc.
The Map
The buffer controls are also used for the map. Using ctrl arrows (keyboard) or right stick (controller) you can browse all map nodes. The map is often the least intuitive part of the game for new players as it doesn’t directly correspond to a simple grid of adjacent rooms. If you find the following section overwhelming don’t worry too much about it; just play the game and it will make sense over time.
Visually the map is a grid of rooms of various types (shop, combat, questionmark/event/unknown, etc.) You can see the entire map for your current act. The map consists of a number of icons with lines connecting them to other rooms, showing you the paths you can take. You can only travel to a room connected to yours by a line and you can only travel forward/higher up the map, never in reverse.
To browse the map accessibly, the mod provides a map view cursor. Note that this is separate from your regular movement cursor; moving the map view cursor to a map node and pressing confirm will not click on the element focused by the map view cursor. think of it like a virtual review cursor your screenreader uses.
The map viewer always starts at the map room you are currently in when it opens; it then puts your view cursor on the connected room your regular cursor last focused. Use ctrl left/right (keyboard) or right stick left/right (controller) to navigate the list of rooms that you can reach from your current room. If you press ctrl up (keyboard) or right stick up (controller), you will move into that room and are now looking at the rooms it is connected to. This way you can browse the map in its entirety. Using ctrl down (keyboard) or right stick down (controller) will allow you to move in reverse.
Controls
All keyboard and controller bindings can be customized from the mod settings menu (Ctrl+M, LT+Start/L2+Options).
You can press F1 (LT+Back/L2+Create) at any time to see context-sensitive help showing all controls available on the current screen.
Navigation
| Action | Keyboard | Controller | Function |
|---|---|---|---|
| Navigate | Arrow keys | D-pad/Left Stick | Navigate game screens |
| Navigate Buffers | Ctrl+Arrow keys | Right Stick | Navigate buffers or the map view cursor |
| Select | Enter | A/X | Click UI elements and confirm some popups |
| Cancel | Backspace | B/Circle | Cancel some popups or go back |
| Pause | Escape | Start/Options | Pause menu (in-game), save slots (main menu) |
| Accept | E | Y | End turn, confirm selected cards, confirm some popups |
| Top Panel | T | X/Square | Navigate to top panel (relics/potions), jump to first available epoch in timeline |
| Peek | Space | Left Stick Click | Visually see some obscured screens through others, not useful if using screen reader |
Card Piles
| Action | Keyboard | Controller | Function |
|---|---|---|---|
| View Draw Pile | A | LT+LB | View draw pile |
| View Discard Pile | S | RT+RB | View discard pile |
| View Deck / Tab Left | D | LB | View deck, tab left on screens with tabs, decrease ascension level |
| View Exhaust / Tab Right | F | RB | View exhaust pile, tab right on screens with tabs, increase ascension level |
| View Map | M | Back | Open map screen |
Map Navigation
| Action | Keyboard | Controller | Function |
|---|---|---|---|
| Previous Point of Interest | , (comma) | LT+Right Stick Left | Jump to previous point of interest |
| Next Point of Interest | . (period) | LT+Right Stick Right | Jump to next point of interest |
| Toggle POI Mode | \ (backslash) | LT+Right Stick Up | Toggle between reachable and all points of interest |
| Toggle Marker | / (slash) | — | Mark or unmark the current map node |
| Clear All Markers | Ctrl+Shift+/ | — | Remove all map markers |
Announcements
| Action | Keyboard | Controller | Function |
|---|---|---|---|
| Announce Gold | Ctrl+G | RT+A/R2+X | Announce current gold |
| Announce HP | Ctrl+H | LT+A/L2+X | Announce current HP |
| Announce Block | Ctrl+B | LT+B/L2+Circle | Announce current block |
| Announce Energy | Ctrl+Y | LT+X/L2+Square | Announce current energy |
| Announce Powers | Ctrl+P | LT+Y/L2+Triangle | Announce active powers |
| Announce Intents | Ctrl+I | RT+Y/R2+Triangle | Announce enemy intents |
| Announce Summarized Intents | Alt+I | RT+X/R2+Square | Announce summarized enemy intents |
| Announce Boss | Ctrl+N | RT+B/R2+Circle | Announce current act boss |
| Announce Relic Counters | Ctrl+R | RT+Back/R2+Create | Announce relic counter values |
| Combatant Status 1-12 | 1-0, -, = | — | Announce status of combatant by position |
| Combatant Intent 1-12 | Shift+1-0, Shift+-, Shift+= | — | Announce intent of combatant by position |
Other
| Action | Keyboard | Controller | Function |
|---|---|---|---|
| Help | F1 | LT+Back/L2+Create | Show context-sensitive help for current screen |
| Mod Settings | Ctrl+M | LT+Start/L2+Options | Open mod settings menu |
| Toggle Accessibility | Ctrl+Shift+A | — | Requires game restart |
| Reset Bindings | Ctrl+Shift+R | — | Reset all mod keybindings to defaults |
Multiplayer
Say the Spire 2 has full multiplayer support. The mod markse itself as not effecting multiplayer, so those you are playing with won’t require it to be installed. This page provides a general overview of the multiplayer features Say the Spire 2 supports.
Lobby
After selecting a game mode and character, you enter the multiplayer lobby. The lobby buffer shows all connected players with their character and ready status. You can cycle to it with the buffer navigation keys.
The mod announces:
- Players joining and leaving the lobby
- Players changing their character
- Ready/unready state changes
- When all players are ready
Character buttons show how many other players have selected the same character.
Expanded Screens
You can click on a player in multiplayer to view their expanded screen, which shows you their hand, deck, potions, and relics. Either click on their creature in the creature row in combat, or click on their creature below the relics bar out of combat to access this.
Voting
Map Voting
When choosing the next map node, all players vote. The mod announces:
- Which player voted for which node (with coordinates)
- The final destination when travel begins
Event Voting
Shared events require all players to vote on options. The mod announces:
- “Shared event” prefix on event descriptions
- Which player voted for which option
- The chosen option result
Act Ready-Up
After rewards, players ready up to proceed to the next act. The mod announces when other players are ready and when all players are ready.
Combat
Remote Player Info
When focusing another player’s creature in the creature row, the player buffer shows their full info: HP, block, energy, gold, card pile counts, and powers — the same info you see for yourself.
Card Plays and Potions
The mod can announce when other players play cards or use potions. By default, your own plays are silent (you know what you played) and other players’ plays are announced. These can be toggled in the event settings.
End Turn
The mod announces when other players end their turn or cancel their end turn decision.
Expanded Player View
Press Accept on a player creature in the creature row to open their expanded view, showing their full deck, relics, and potions with position announcements.
Rest Site (Mend)
When using the Mend option to heal another player, focusing each player character announces their name and current HP.
Settings
All multiplayer events can be toggled individually in the mod settings under Events. Each event with creature sources has a Sources subcategory where you can enable/disable announcements for:
- Current Player — your own actions
- Other Players — other players’ actions
- Enemies — enemy actions
Events only announce sources that the game provides visual feedback for. For example, gold changes are only shown for the current player, so “Other Players” isn’t available for gold events.
Settings
Press Ctrl+M (or LT+Start/L2+Options) to open the mod settings screen. Navigate with Up/Down arrows, change values with Left/Right or Enter.
UI Settings
Per-UI-element-type settings for controlling what gets announced:
- Announce Type: Whether to announce the element type (button, card, etc.)
- Announce Subtype: Whether to announce subtypes (attack, skill, etc.)
- Announce Tooltip: Whether to announce tooltip text
- Announce Position: Whether to announce position in lists/grids
Event Settings
Each event type can be individually configured:
- Announce: Whether to speak the event when it happens
- Add to buffer: Whether to add the event to the events buffer
Source Filtering
Events that apply to a creature have a Sources subcategory with toggles for:
- Current Player: Your own actions
- Other Players: Other players’ actions (multiplayer)
- Enemies: Enemy actions
Not all sources are available for every event — the mod only shows sources that the game provides visual feedback for.
Speech Settings
- Speech Handler: Choose between Auto, Tolk (NVDA/JAWS), SAPI, or Clipboard
- Per-handler settings (rate, volume, etc.)
Map Settings
- Automatically Follow Paths until Choice Node: Auto-advance on forward navigation
- Automatically Follow Paths Backward until Choice Node: Auto-advance on backward navigation
- Read Intermediate Nodes on Backward Paths: Announce nodes while auto-advancing backward
- Announce Current Location When Map Opens: Read your current position when opening the map
Keybindings
All keybindings are listed and can be customized from the settings screen. Select a binding to change it.
Advanced
- Verbose Logging: Enable detailed event logging for debugging
- Performance Profiling: Enable timing measurements for mod subsystems
Change Log
Known Issues
- Some users had issues dismissing the tutorial popups when playing their first run. This may be a game bug or possibly the UI just being nonintuitive, but I am investigating. If this happens, close and reopen your game and it should fix it.
- the End of Run screen might sometimes act oddly and not correctly narrate focus. All of the information is accessible though.
- The credits are not yet read.
Credits
I would like to thank everyone who has tested the mod so far, the feedback has been invaluable and the mod is much better as a result. I would also like to thank those who have directly contributed to the mod:
- Rashad Naqeeb for contributing the Jaws configuration files.
- QgSama for contributing the Simplified Chinese localization.
- Amerikrainian for various code contributions, including new map features and a number of multiplayer improvements.