Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

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

  1. Important: Launch Slay the Spire 2 at least once before running the installer. The game needs to generate its settings file.
  2. 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.
  3. Click Install and select the version you want.
  4. 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.
  5. 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.
  6. 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.

  1. Important: Launch Slay the Spire 2 at least once before running the installer. The game needs to generate its settings file.
  2. Download the latest zip release from https://github.com/bradjrenshaw/say-the-spire2/releases/latest
  3. 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 a mods subfolder.
  4. Next, modify the game’s settings file. On Windows, this is located in %APPDATA%/SlayTheSpire2.
  5. Open the steam subfolder, then open the subfolder with a long number (your Steam account ID).
  6. Open the settings.save file in a text editor (Notepad works well; avoid Word or similar). Search for mod_settings (Ctrl+F is helpful as it’s a large JSON file). You should find "mod_settings": null. Replace null with {"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.
  7. 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.

ActionKeyboardControllerFunction
NavigateArrow keysD-pad/Left StickNavigate game screens
Navigate BuffersCtrl+Arrow keysRight StickNavigate buffers or the map view cursor
SelectEnterA/XClick UI elements and confirm some popups
CancelBackspaceB/CircleCancel some popups or go back
PauseEscapeStart/OptionsPause menu (in-game), save slots (main menu)
AcceptEYEnd turn, confirm selected cards, confirm some popups
Top PanelTX/SquareNavigate to top panel (relics/potions), jump to first available epoch in timeline
PeekSpaceLeft Stick ClickVisually see some obscured screens through others, not useful if using screen reader

Card Piles

ActionKeyboardControllerFunction
View Draw PileALT+LBView draw pile
View Discard PileSRT+RBView discard pile
View Deck / Tab LeftDLBView deck, tab left on screens with tabs, decrease ascension level
View Exhaust / Tab RightFRBView exhaust pile, tab right on screens with tabs, increase ascension level
View MapMBackOpen map screen

Map Navigation

ActionKeyboardControllerFunction
Previous Point of Interest, (comma)LT+Right Stick LeftJump to previous point of interest
Next Point of Interest. (period)LT+Right Stick RightJump to next point of interest
Toggle POI Mode\ (backslash)LT+Right Stick UpToggle between reachable and all points of interest
Toggle Marker/ (slash)Mark or unmark the current map node
Clear All MarkersCtrl+Shift+/Remove all map markers

Announcements

ActionKeyboardControllerFunction
Announce GoldCtrl+GRT+A/R2+XAnnounce current gold
Announce HPCtrl+HLT+A/L2+XAnnounce current HP
Announce BlockCtrl+BLT+B/L2+CircleAnnounce current block
Announce EnergyCtrl+YLT+X/L2+SquareAnnounce current energy
Announce PowersCtrl+PLT+Y/L2+TriangleAnnounce active powers
Announce IntentsCtrl+IRT+Y/R2+TriangleAnnounce enemy intents
Announce Summarized IntentsAlt+IRT+X/R2+SquareAnnounce summarized enemy intents
Announce BossCtrl+NRT+B/R2+CircleAnnounce current act boss
Announce Relic CountersCtrl+RRT+Back/R2+CreateAnnounce relic counter values
Combatant Status 1-121-0, -, =Announce status of combatant by position
Combatant Intent 1-12Shift+1-0, Shift+-, Shift+=Announce intent of combatant by position

Other

ActionKeyboardControllerFunction
HelpF1LT+Back/L2+CreateShow context-sensitive help for current screen
Mod SettingsCtrl+MLT+Start/L2+OptionsOpen mod settings menu
Toggle AccessibilityCtrl+Shift+ARequires game restart
Reset BindingsCtrl+Shift+RReset 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.