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

Songs of Conquest Access is a screen reader accessibility mod for Songs of Conquest, a spiritual successor to the Heros of Might and Magic series. It provides full narration of the game’s screens, allowing blind and visually impaired players full access to the game.

Features

  • Full narration of menus, text, tooltips and other game UI elements through any screen reader supported by Prism
  • Support for the Windows version of the game with a keyboard
  • Keyboard-based drag-and-drop, which is used extensively throughout the game
  • Buffer system for review of tooltips, lengthy text elements and event notifications
  • Scanner system, bookmarks and audio beacons for overworld navigation
  • Sound cues for terrain and battlefield awareness
  • AI written descriptions with information about important terrain features, choke points and spawn points for all 69 possible battlefield layouts
  • Narration of all combat events with summaries to condense similar events for less verbosity
  • In combat, readouts of threat information for tiles: attack, deadly and movement range as well as zone of control
  • Support for remapping of all mod commands
  • AI written translations for all other languages that the game supports: French, Italian, German, Spanish, Polish, Russian, Portuguese - Brazil, Simplified Chinese, Korean, Traditional Chinese, Ukrainian, Turkish and Japanese

Status

The mod provides full screen reader accessibility for the Windows version of the game.

All official campaigns, maps and DLCs are supported. Multiplayer, community maps and campaigns are experimental due to the need for more testing.

I’m committing to maintain the mod to fix any remaining issues and keep up with game updates and DLCs.

See the list of known Issues.

Installation

Download and run SongsOfConquestAccessInstaller.exe.

The installer detects your Steam or GOG installation automatically. If it cannot find the game, use the Browse button and select the folder that contains SongsOfConquest.exe.

Close Songs of Conquest before installing or updating the mod.

Use the Install button to install the latest version. If the installer detects an existing manual installation, the button will say Repair instead. Repair installs the latest version while preserving existing game and BepInEx configuration where possible.

After installation, start the game. You should hear

Songs of Conquest Access <version> ready

To update later, run the installer again. It will download the latest release and offer an update when a newer version is available.

Manual Installation

Download the latest release. Extract the zip file into the game’s installation folder.

When the game starts, you should hear

Songs of Conquest Access <version> ready

Getting Started

Screens

Every screen is divided into tab stops

A stop is one panel of the game. Use the arrow keys to explore the contents of a panel. Panels may be subdivided into regions for easier navigation. For instance, a region could be a list, table or a row of buttons.

  • Tab: next stop
  • Shift+Tab: previous stop
  • Up / Down / Left / Right: navigates items in a stop, Left and Right also collapses and expands grouped content or adjusts sliders
  • Shift+Left / Shift+Right: a larger adjustment on an adjustable slider
  • Home / End: first or last item of the stop or region
  • Alt+Up / Alt+Down: previous and next region of a stop

Acting on things

Enter corresponds to a left click and activates buttons. Escape cancels the current context or screen. \ performs a right-click.

The mod speaks usage hints when there are additional commands available for the focused element. These hints are also written to the bottom of the buffer.

Start typing to find something in the current tab stop. This is especially useful in long lists like the research or recruitment screens.

  • keep typing to narrow the search
  • Up / Down: previous and next match
  • Home / End: first and last match
  • Escape or Backspace: ends the search
  • any other command ends the search

Note that typeahead search is disabled in the adventure map and combat screens as well as the troop deployment grid because they conflict with other commands.

Drag and drop

The mod announces draggable items as “draggable”. To drag an item:

  1. Press Space to start dragging.
  2. Move to the destination.
  3. Press Enter to drop.
  4. Press Escape to cancel the drag.

Tables

  • Use the arrow keys to navigate
  • Ctrl+Alt+Left: move to first column of current row
  • Ctrl+Alt+Right: move to last column of current row
  • Ctrl+Alt+Up: move to first row of current column, Home also works
  • Ctrl+Alt+Down: move to lastt row of current column, End also works

Editing text

Press Enter to start editing, Enter to commit and Escape to cancel editing which restores the previous contents of the edit field.

Tooltips

Virtually every element has a tooltip.

Short text-only tooltips are always automatically read. In mod settings, you can disable the reading of longer tooltips.

Tooltips can be read line by line in the UI Buffer

Buffers

To assist with reading long tooltips, the mod supports review buffers. The UI buffer is always available. When focus changes, the UI buffer is updated with the contents of the focused element.

Other screens can expose additional buffers, such as notifications on the adventure map or combat events.

  • Ctrl+Left: previous buffer
  • Ctrl+Right: next buffer
  • Ctrl+Up: previous line in the current buffer
  • Ctrl+Down: next line in the current buffer
  • Ctrl+Home: first line in the current buffer
  • Ctrl+End: last line in the current buffer

Adventure Map

Adventure Map Grid

The adventure map has an accessibility cursor. The mod speaks the tile under the cursor and keeps a visual overlay on the tile that has accessibility focus.

Moving Around

Use the arrow keys to move the map cursor. Use the shift+arrow keys to move to the next interesting tile, where interesting means it differs from the current tile.

The mod keeps the focused tile in view and reads the tile as you move. Each tile plays a short sound describing its terrain or its contents. See the audio chapter.

Tiles within the movement range of the currently selected wielder are indicated as reachable.

Tiles that cannot be entered because of terrain are announced as impassable. A tile next to an enemy or neutral army is announced as within that army’s zone of control; entering such tiles will cause you to be attacked.

Following Roads

A road tile names the neighbouring tiles the road continues into, so a road running east to west reads as Dirt road, e w and a fork reads as Dirt road, n e w. Reading road directions is enabled by default.

Bridges count as road, so a route does not appear to stop dead at a water crossing. A road running into unexplored ground contributes no direction, so it reads as though it ended until you explore further.

While road directions are on, the shift+arrow keys also stop on a fork to make it following stretches of road convenient.

Visibility

A tile can be in one of three visibility states:

  • Currently visible: in view radius of your wielder or building
  • Unseen: explored but there are no eyes on the tile (i.e, fog of war). Such tiles show their last seen state
  • Unexplored

The mod mentions if a tile is unexplored or currently unseen.

Actions

  • Enter: perform the primary action on the focused tile, corresponding to a left-click. If the tile has a selectable entity such as a building, this brings up the entity’s menu for further interaction. Otherwise, this clears the wielder’s destination.
  • \: perform the secondary action on the focused tile, corresponding to a right-click. Press once on a tile to set it as the destination. Press again to actually move. If the tile has an interactable entity and the wielder is nearby, this causes your wielder to interact with the entity.
  • A: get a summary of entities reachable by the current wielder excluding visited pickups or friendly resource generators
  • Ctrl+D: describe the position of the cursor and the size of the map, for example “Position 12, 34. Map is 80 by 96.”
  • P: play a sonar sweep of the entities around the cursor
  • W: select the next wielder
  • S: select the next settlement
  • Space: move focus to the selected wielder’s tile

Route Previews

After setting a destination, the game draws a route preview. When focus is on a tile with a route preview marker, the mod speaks the following information:

  • On route: part of the planned route.
  • On route, furthest reachable this turn: furthest point the wielder can reach this turn.
  • On route, next turn: the tile is on the route and is reached on the next turn.
  • On route, in n turns: the tile is on the route, but can only be reached after that many more turns.
  • On route, furthest reachable next turn: furthest point the wielder can reach on the next turn.
  • On route, furthest reachable in n turns: furthest point the wielder can reach after that many more turns.
  • Destination: the tile is the selected destination.
  • Destination, next turn: the destination is reached on the next turn.
  • Destination, in n turns: the destination is reached after that many more turns.
  • Destination, interactable: the destination has an interactable object.
  • Destination, interactable next turn: the destination is reachable this turn, but there is not enough movement left to interact with it this turn.
  • Destination, no route preview: the destination is set, but the game is not showing route preview markers for it.
  • cost n: the route has crossed the indicated movement cost marker.

Sonar Sweep

Press P to hear every entity within the look around radius as a short sound, one after another from west to east, positioned relative to the cursor. See the audio chapter.

Revealed Entity Announcements

Entities revealed during exploration are announced. They can also be found in a separate category in the scanner.

Bookmarks

Bookmarks let you save adventure map locations and return to them later. There are ten bookmark slots, using the number keys 1 through 9 and 0.

  • Shift+number: saves the current position to that bookmark slot
  • Ctrl+number: jump to that bookmark slot
  • Alt+number: read directions from the currently focused tile to the bookmarked position

Saving to an existing slot overwrites it. There is no separate delete command.

Bookmarks are saved to a separate file per game. Use the bookmarks tab in the mod settings screen to import or export bookmarks.

Beacons

Beacons are looping sounds that allow bookmarks to serve as spatial audio markers. Use Ctrl+Shift+number to toggle the beacon for that bookmark slot. The sound follows the currently focused tile, as described in the audio chapter.

HUD

The HUD provides various controls for the currently selected wielder such as the wielder portrait, resources and objectives. Visibility is toggled with h. These controls are visible by default, and I recommend leaving it that way.

Press Tab from the map grid to cycle through HUD controls. When on the adventure map, press the following keys to move focus to the following HUD controls:

  • N: notifications
  • B: objectives
  • R: resources
  • T: troops

When focus is in the HUD controls, pressing Escape moves focus back to the grid.

Additionally, the game provides the following hotkeys that work anywhere on the adventure map screen:

  • C: open character sheet
  • O: open chat
  • V: open spellbook
  • E: end turn
  • Q: move wielder to selected destination
  • F5: quick save
  • F6: players menu
  • F9: quick load
  • X: build menu
  • F1: owned entities
  • F2: troop income
  • F3: research
  • F4: marketplace

Troop Management

The selected wielder’s troop slots are exposed as a menu. From the adventure map grid, press T to focus the troops widget, then use Up, Down, Home, and End to move through slots.

When focus is on a draggable troop stack, press Space to start dragging it, move to the destination slot, and press Enter to drop. Press Escape to cancel dragging.

Reading Resources

Press Ctrl+R to hear a summary of your current resources, this works in all non-combat situations. You can also Tab to the resources widget and review individual resource entries and tooltips. From the adventure map, R moves focus to the resources widget.

Scanner

The scanner helps you find important things without manually checking every tile.

Availability

The scanner is available in the following screens:

  • Adventure map
  • Troop placement
  • Combat

Visibility

On the adventure map, scanner results will only show you what you have explored.

Currently visible things are read normally. Explored tiles that are not currently visible are read as Unseen (i.e, in fog of war).

Controls

Results are grouped in four levels: category, subcategory, item and instance. An item is one named thing and an instance is one copy of it. This prevents multiple copies of something from clogging up the list.

  • Ctrl+Page Down: next category
  • Ctrl+Page Up: previous category
  • Shift+Page Down: next subcategory
  • Shift+Page Up: previous subcategory
  • Page Down: next item
  • Page Up: previous item
  • Alt+Page Down: next instance of the current item
  • Alt+Page Up: previous instance of the current item
  • Home or J: move the accessibility cursor to the current scanner result’s tile
  • Backspace: return the cursor to the tile it was on before the last jump
  • End: directions from the cursor to the result’s position

Directions and Sorting

Directions read to each result are line of sight distances relative to the current cursor position. They are abbreviated such as 3ne by default, this can be configured in mod settings.

By default, results are sorted by straight line distance to the cursor, which ignores the actual path a wielder would have to traverse. In mod settings, this can be changed to sort by walkable path cost instead.

Custom Categories

You can define up to 3 custom categories in the adventure map or in combat. These custom categories can show you things you care about.

  • , or Shift+,: cycles through results of custom category 1
  • . or Shift+.: cycles through results of custom category 2
  • / or Shift+/: cycles through results of custom category 3

For example, an “Explorer” custom category could include unvisited pickups, resource generators, wielders or settlements that don’t belong to you. Results in custom categories are still available in the Page up / Page down sequence. If this was the first custom category, use , and Shift+, to cycle through results and either Home or J to move the cursor to it; cycling through results in custom categories this way is more convenient than using the normal 4-level hierarchy.

These 3 hotkeys are only available in the adventure map because they conflict with commands on the combat screen.

Adventure Map Features

On the adventure map grid, the following additional features are supported.

Use Ctrl+f to perform a search across all categories of the scanner. This is useful for finding specific things quickly. Results are placed in a temporary scanner category.

Look Around

Use L to look around from the currently focused tile. Results are placed in a temporary category, similar to the search command. Results start north of the cursor and continue clockwise.

Use K to increase the look radius and Shift+K to decrease it. The default radius is 15 tiles. Changing the radius does not refresh existing results; press L again to scan with the new radius.

Troop Management

Wielder Troops Menu

On the adventure map screen, the wielder’s troops is a widget in the HUD controls. From the adventure map grid, press T to focus the troops widget.

Use Up, Down, Home, and End to move through slots.

Army Exchange

Troops may also be moved from the current wielder to another wielder, a settlement or another army may want to join you.

Both armies are separate tab stops that you can drag and drop troops between.

The current wielder’s army is designated the left army, and the other army involved is right. Press Left or Right to switch sides. This is a convenience hotkey since these armies are in the tab order.

Moving Troops

Troop slots with troops are draggable.

To move a troop:

  1. Focus the slot with the troop to move.
  2. Press Space to start dragging.
  3. Move to the destination slot.
  4. Press Enter to drop.
  5. Press Escape to cancel the drag.

If the game needs an amount specified before completing the move, the move amount popup opens.

The slots of each army are visually rendered from left to right. The second army is positioned to the right of your wielder’s army. Hence, when the game uses terminology to “move left” or “move right”, it refers to the path the mouse moves when performing a drag and drop in the normal way.

Combat

Hex Grid

The battlefield is a hex grid. Each tile has six neighbors: west, east, northwest, northeast, southwest and southeast. There is no single north or south step. To move straight north, move northeast and then northwest. To move straight south, move southeast and then southwest.

Coordinates are spoken from the bottom-left origin, 0, 0. The first number x is the horizontal position and the second number y is the vertical position. Because hex rows are staggered, diagonal moves change the horizontal position by half a step:

  • East adds 1 to x.
  • West subtracts 1 from x.
  • Northeast adds 0.5 to x and 1 to y.
  • Northwest subtracts 0.5 from x and adds 1 to y.
  • Southeast adds 0.5 to x and subtracts 1 from y.
  • Southwest subtracts 0.5 from x and subtracts 1 from y.

For example, from 0, 0, moving northeast lands at 0.5, 1. Moving southeast from there lands at 1, 0, so one west move returns to 0, 0.

Battlefield Descriptions

Each possible battlefield layout has an AI written description of its overall shape and important terrain features. This can be accessed by Ctrl+D in troop deployment or in combat. The troop deployment screen has a description tab stop with this information as well.

Troop Deployment Screen

Before combat, the troop deployment screen allows placement of your troops in spawn points, representing their starting location in combat.

Move through the hex grid with:

  • A: west
  • D: east
  • Q: northwest
  • E: northeast
  • Z: southwest
  • C: southeast
  • Use with shift to move to the next interesting tile, where interesting means it differs from the current tile
  • Ctrl+Space: focus the centre tile

Use drag and drop to rearrange your troops.

The deployment grid also supports the Scanner for finding enemy troops and spawn points. Scanning from the centre tile is a quick way to understand where troops and terrain features are.

Combat Screen

The combat hex grid uses the same keys for navigation and also supports the Scanner.

Every troop stack has a tooltip which can be reviewed with the UI buffer.

If focus is on a tile with an enemy or destructable entity, the tooltip shows an attack preview if it is possible for your acting troop to attack it.

If focused on a tile in movement range, the tooltip shows the movement cost.

Combat Actions

The following hotkeys work when on the hex grid:

  • \: performs the secondary action on the focused tile, corresponding to a right-click. Use this to move to a tile or perform an attack
  • S: read detailed threat information for the focused tile. Nothing is spoken if the tile is not threatened.
  • Ctrl+D: describe the battlefield
  • T: move focus to the timeline
  • Enter: performs the primary action on the focused tile, corresponding to a left-click. Use to select a target for spells
  • Escape: cancels spell or ability targeting
  • , and Shift+,: move focus between your troops in initiative order
  • Space: move focus to your currently acting troop
  • . and Shift+.: move focus between enemy troops in initiative order

The following hotkeys work anywhere on the combat screen:

  • Ctrl+R: read your essence
  • Alt+R: read enemy essence

Inspect Mode

Press I on the combat grid to enter inspect mode for the focused hex. In inspect mode, navigation keys are restricted to moving within the relevant tiles.

If inspecting a tile within movement range of the acting troop, inspect mode shows you the path the stack would take to move there.

If inspecting a troop stack, each tile will read whether it is within that stack’s zone of control, attack, deadly or movement range.

Press Escape to exit inspect mode.

HUD Controls

Visibility is toggled with h. These controls are visible by default, and I recommend leaving it that way.

Use tab or Shift+Tab to cycle through controls.

When focus is in the HUD controls, pressing escape moves focus back to the grid.

For convenience, press T from the combat grid to move focus to the turn order. Press Enter on a troop in the turn order to focus that troop in the combat grid.

The game provides the following hotkeys:

  • Q: use ability
  • E: end turn
  • V: open spellbook
  • O: open chat

Since Q and E conflict with hex grid movement keys, move focus out of the grid first before using those keys.

Audio

The mod settings screen has an audio tab with a glossary to learn what the various sounds mean.

Sonar Sweep

Press P on the adventure map to sweep the area around the cursor. Every entity the scanner can see within the look around radius plays its sound from west to east.

The sweep uses the look around radius, so K and Shift+K widen and narrow it. Non friendly wielders, settlements and other interactive buildings, resource deposits and pickups are included.

Scanner Results

Paging through scanner results plays the sound of the result you land on, positioned relative to the accessibility cursor.

Bookmark Beacons

Beacons are looping sounds that turn bookmarks into spatial audio markers. Use Ctrl+Shift+number to toggle the beacon for that bookmark slot. Several can run at once.

A beacon’s sound changes relative to the currently focused tile, using the same mapping as the cues above: stereo position for east and west, pitch for north and south, and volume for distance.

Mod Settings

Open the mod’s settings screen with the Mod options button on the main menu or the pause menu.

Detailed Threat Info

This option is enabled by default. Focusing a tile will indicate if it is within zone of control, attack, deadly or movement range by an enemy troop stack. These are known as threatened tiles. However, this can be very spammy.

Disabling this option shortens the readout for the focus tile to only mention if it is threatened by an enemy. The full details are still available with the S key.

Audio

The Audio tab holds Play tile sound cues, the master switch for the mod’s sound cues, and the Audio glossary button, where every cue can be played and tuned individually.

Long Directions

Scanner directions are spoken in a short form by default, such as 3ne for three tiles to the northeast. Enable this option to hear the full wording instead, such as 3 northeast.

Changelog

V1.0.1

  • Fixed regression that broke reding of the sell building confirmation dialog
  • Fixed Blaze of Fire’s ability input state not being properly recognized
  • Attack previews for abilities that affect tiles other than the target are now read properly
  • Damage previews for spells are now read
  • Troops not on the battlefield due to abilities like Blaze of Fire no longer read an invalid position on the battle timeline or at the start of their turn
  • On the level up screen When command is already at max level, extraneous text like “SkillChoiceHeaderRight” or “Skill name. level 8” is no longer read
  • The world choice screen no longer selects rewards on focus

V1.0.0

UI

The UI was rewritten and now provides the following:

  • Screens are panels navigated with the arrow keys. Tab and Shift+Tab move between tab stops, and Alt+Up and Alt+Down move between the regions of a panel. Screens have far fewer tab stops, especially large ones like the options dialog
  • Some elements are groups that expand with Right to show child controls, for example when recruiting and upgrading troops or conquest map filters
  • Typing moves focus to the next thing in the tab stop that matches the typed search term. This is not available on the adventure map, troop deployment grid and combat screens due to conflicts with existing keys
  • Usage hints read which hotkey performs each action on the focused control. They are also at the bottom of the UI buffer and can be disabled in mod settings
  • Tooltips are read automatically. A new mod setting controls automatic reading of long tooltips such as troop and wielder information
  • The inventory, equipment, trade and army exchange widgets use multiple tab stops. Drag and drop works the same way, and Left and Right still move between armies
  • In tables, Ctrl+Alt with the arrow keys moves to the first or last column of the current row, or to the first or last row of the current column
  • The mod’s options dialog is a visible game window opened from the main or pause menus. Mod commands can be rebound there
  • Commands respond to both the normal and numpad variants of the number keys and Enter

Game Screens

  • The loading screen reads tips and progress information
  • Technologies in the research screen are buttons that perform the research when activated
  • The marketplace screen is a table
  • Adjusting of built-in game keybinds is now supported

Adventure map

Route, road and movement cost changes contributed by Rashad Naqeeb.

  • Setting a wielder’s destination reads the route, its cost per turn, and the action at the end if there is one, for example Cost: 5.5 this turn. Aurelia will move 2n, ne and Claim Gold Mine.
  • Route preview turn counts say how long the wait is for clarity. A tile you arrive at on the next turn reads as next turn and not in 2 turns
  • Road tiles name the neighbouring tiles the road carries on into, so a road reads as Dirt road, e w and can be followed a step at a time. This can be disabled in mod settings
  • Movement costs are read to two decimal places
  • Decorative terrain such as ruins, tombstones or birch forest is read as the tile’s terrain
  • Decorative effects such as fog, burn marks or fireflies are read after the terrain. This can be disabled in mod settings
  • Tiles no longer say “blocked”

Scanner

Most changes in this section were contributed by Rashad Naqeeb.

  • Results are grouped into items and instances of an item. Page Up and Page Down move between different items, and Alt+Page Up and Alt+Page Down move between the instances of an item
  • Results describe the thing that was scanned and not everything else on its tile. On the adventure map, they also indicate whether the selected wielder can reach it
  • Added custom categories, defined from the scanner tab of the mod settings screen and built from subcategories you pick and keywords you type. See the documentation for details
  • A new sort setting chooses between straight line distance (the default) and walkable path cost
  • If the path from the cursor to a result is blocked, the blocker is named if visible
  • Backspace returns the accessibility cursor to the tile it was on before the last scanner or bookmark jump
  • J jumps the accessibility cursor to the current result like Home does
  • Scanner and road directions are spoken in a short form such as 3ne. The new Long directions mod setting restores the full wording
  • Added merchants to the adventure map scanner

Sounds

  • Moving the cursor plays a sound cue for an empty tile’s terrain, or for the entity occupying the tile
  • P on the adventure map plays a sonar sweep: every entity the scanner can see within the look around radius plays its sound
  • Moving through scanner results plays each result’s sound positioned relative to the cursor
  • Added an audio glossary, reachable from the new Audio tab in mod settings

Combat

  • All 69 battlefields have AI written descriptions of important terrain features, choke points and spawn points. Read them with Ctrl+D in troop deployment or combat, or from the description tab stop in troop deployment
  • Active abilities, buffs, debuffs and restrictions (invulnerable, reloading, magic immunity) are indicated for troops on the combat grid and in scanner results. This information was already in the buffer
  • Choke points are indicated and can be found in the scanner
  • Decorations on tiles are read, so a tile can read as Gatepost, impassable. Impassable tiles no longer speak a height
  • Occupied tiles no longer say “blocked”. Impassable terrain is still indicated
  • Tiles and troops affected by Mother’s scorn and Mother’s Embrace are now read
  • The spread of roots for seeds and roots of the mother are now read

Bookmarks

  • Added a bookmarks tab to the mod settings screen to import or export bookmarks

Breaking Changes

  • Swapped the bookmark commands: Ctrl+1 through 0 goes to a bookmark, Shift+1 through 0 sets one
  • The default key for describe map changed from D to Ctrl+D, so the same key works on the adventure map and in combat
  • End reads the distance from the cursor to the current scanner result, replacing Shift+Home. The End refresh was removed because results already refresh on every scanner key press
  • Removed Ctrl+M. Open mod options from the main or pause menus
  • Removed the tooltip actions menu, replaced by usage hints
  • Removed the “Scanner plays directional beep” setting, replaced by scanner result sounds

Fixes

  • Fixed being stuck on the post-combat screen when attacked while your wielder was defending a settlement
  • Fixed Shift+Tab activating several times when pressed once
  • Fixed the adventure map speaking the current tile when transitioning between the troop placement and combat screens or quitting a game
  • Fixed the adventure map speaking before story dialog when starting campaigns
  • Fixed combat screen speaking when loading or quitting a game
  • Fixed “blocked” being spoken 6 times when a ranged unit’s attack is obstructed by elevated terrain
  • Improved reliability of reading and displaying attack previews and troop tooltips in combat

V0.7.4

  • Fixed tiles no longer being announced when returning to them after passing over tiles that announce nothing, which could happen when announcement elements such as coordinates and terrain are disabled

V0.7.3

  • Added D command on the adventure map that describes the position of the accessibility cursor and the size of the map
  • Fixed movement between two tiles on the adventure map and battlefield that announce identically being silent when coordinate announcements are disabled

V0.7.2

  • Information spoken on the focused tile or in scanner results are now a composable set of announcements that you can toggle, reorder, and customize individually from the mod settings screen
  • Using the composable announcements setting introduced above, added an option to read the movement cost on the adventure map. There are two settings for controlling whether it is read when focusing on adventure map tiles and on the scanner. This is disabled by default
  • Fixed untranslated caster and effect names being narrated in combat
  • Increase log verbosity to help with debug Prism issues when it doesn’t detect screen readers properly
  • Update Prism to 0.16.7 to fix issues with Baoyi screen reader support

V0.7.1

  • Fixed combat grid tooltips lingering after combat ends or while loading another game. This caused the game to hang while loading a game from the combat screen
  • Make the faction selector on the research screen accessible when playing in mixed factions mode
  • Group announcements of effects caused by aura buffs like Fortune and Inspire together, instead of announcing it individually per stack
  • Try fixing edge cases where if combat ends in story text or level ups, the adventure map screen did not get initialized. Please let me know if you still see this happening
  • Added Ctrl+Space shortcut to move focus to the centre tile on troop placement and combat hex grids
  • Added announcement when cancelling ability targeting
  • Fixed combat narration using untranslated spell, ability, and modifier names
  • Update known issues to mention Shift+Tab being too responsive
  • Work around Prism not detecting the Baoyi screen reader by bundling its controler DLL
  • Fixed use of untranslated text for dismissing adventure map notifications and cancelling spellcast messages

V0.7.0

  • Updates to support the Yulan DLC:
    • Fixed reading of Yulan troop upgrade costs and building upgrade choices
    • Upgraded Yulan buildings now include the essence type if applicable on the adventure map
    • Add label for Yulan maps on the lobby screen
  • Changed command to focus the objectives widget from O to B to avoid overriding the game hotkey for opening the chat window
  • Added support for the chat window
  • Text on story screens are now buttons, allowing Enter to advance to the next screen. Fixes having to tab to the next button to advance to the next screen
  • The first line of tooltips is no longer suppressed in cases where doing so would cause confusion. Previously, the first line was hidden if it was a substring of the current widget’s label. This is now done only if it is an exact match with the widget’s label
  • Combat improvements:
    • Enemies that are attackable by the current troop are indicated when focused
    • Mention which direction beam troops face
    • Improved narration of beam attacks
    • Fixed narration of leap ability
  • Fixed the secondary action command being impossible to use on misbehaving systems that don’t send an actual \ key code when pressing it on the keyboard
  • Rewrote troop management section in the documentation to mention the disband tooltip action
  • Improved Portuguese translations for generated essence and hostile troop labels

V0.6.5

  • Fixed incorrect use of a helper to join strings, causing strange wording in objectives, build, spellbook and quickbar screens
  • Localize message on build screen for no build slot being selected

V0.6.4

  • The mod now has an automated GUI-based installer
  • The scanner now identifies unexplored tiles
  • Translation fixes

V0.6.3

  • Fixed scanner bug where hitting End would say “No scanner results” if there are no pickups in view, but there are results in other categories
  • Add support for artifact market screen
  • Add support for portals that allow selection between multiple teleport destinations

V0.6.2

  • Downgrade Prism from 0.16.5 to 0.16.1 to fix a Prism regression causing other screen readers besides NVDA not to be properly detected

V0.6.1

  • Fixed language translations using mojibake accents or ASCII fallbacks

V0.6.0

  • Switched from Tolk to Prism to support more screen readers
  • Added support for hostile join screen when hostiles propose to join for gold
  • Documentation updates to prepare for public release

V0.5.0

  • Experimental support for starting multiplayer games. Will need other players to test actual games with to ensure this works properly
  • Support screens for trading resources and settlements in the players menu
  • Added support for community campaigns
  • Pressing shift with a movement key skips to the next interesting tile in that direction
  • Added two new commands on the adventure map grid:
    • A summarizes entities reachable by the current wielder. This excludes visited pickups or claimed resource generators
    • L looks around from the current tile and places results into a temporary Look around scanner category. K and Shift+K adjust the look radius. Results are sorted clockwise, starting from the north.
  • Fix troop rewards being unselectable when your army has no slots, even after you disband a troop to make room
  • Fixed an edge case where cycling through your own stacks with , would miss some if initiative buffs cause the current stack to act sooner next round
  • In combat, abbreviations like enemy ranged troops are only used when the group has two or more stacks
  • To help with fighting enemies with the same units as you, the battle timeline now specifically indicates if a troop is an enemy
  • The current troop indicator and timeline entries now include the troop’s coordinates
  • Navigating back to a previously visited column in the army exchange and inventory grids restores focus to the last visited row
  • When narrating enemy spellcasting, just say “Enemy” instead of “Enemy wielder”
  • In the post-game victory / defeat screen, clear all other screens in the stack to prevent the adventure map from being heard after the game ends
  • More spellcast narration fixes
  • Condense effects applied to troops when abilities like protect are used, similar to how effects from spells are already being read
  • Fixed some help text not reading on defences screen
  • The post-game player stats screen is now accessible
  • Hide the map editor option in the main menu, since that isn’t supported

V0.4.1

  • Fixed adventure map fog handling for explored-but-not-currently-visible entities:
    • Resource generators and other remembered entities are now read on focused tiles and kept in revealed/scanner results while in explored fog.
    • Tooltip-derived details are only exposed when part of the entity is actively visible.
    • Enemy wielder visibility announcements continue to distinguish wielders that are no longer actively visible.

V0.4.0

  • Add support for conquest, challenge and random maps

  • Wielders being recruited are now announced. This is mainly for situations where they join via story events

  • Fixed resource generating buildings not appearing in the scanner. Results are in a dedicated “Resource generators” category

  • Revealed entity readouts:

    • Multi-tile entities are no longer considered as revealed unless they are fully revealed
    • Artifact names are now announced when visible
    • Dead wielders are no longer announced as no longer being visible
    • The revealed buffer is no longer being reset after combat
  • Combat narration:

    • Effects being removed from a destroyed troop stack are no longer announced
    • If a spell is cast multiple times on the same tile, that tile is now only announced once
    • Recognize situations where your / enemy melee / ranged troops are affected by effects to avoid announcing each troop individually
    • When moving from a high ground tile to another tile that is on high ground, don’t say that the high ground effect was added and then removed
    • Fixed more cases where the casting of the spell was read after narration of its effects
    • Shorten essence gain notifications for units that generate multiple types of essence. “+1 order essence and +1 arcana essence” would now be read as “+1 order, +1 arcana essence”
    • Read wielder essence generation at the start of their turn. Due to game limitations, this works from the second round.
    • Don’t announce individual tiles spawning Acid cloudss when casting the acid cloud spell
  • Shorten combat influence readouts.

    Before: “in movement range of 59 enemy Plague Rats at 6, 8, zone of control and movement range of 15 enemy Oathbound at 9, 6, movement range of 19 enemy Oathbound at 7, 4, movement range of 5 enemy Spectres at 11.5, 3.”

    After: Zone of control: 15 Oathbound at 9, 6. Movement range: 59 Plague Rats at 6, 8, 19 Oathbound at 7, 4, 5 Spectres at 11.5, 3.“

  • Fixed combat screens not being properly cleaned up if doing a quick battle, followed by a manual battle. This was causing the hotkey to read resources out of combat to fail

  • Fixed regression in V0.2.0 that broke reading of marketplace screen button labels

  • Fixed placeholder titles being read on story screens when no title was actually visually shown

  • Artifact colours should now be read everywhere

  • On the adventure map, revealed announcements and reading the focused tile now respect scouting level and no longer reads full artifact names unless the game would actually show it

  • Restored reading of some decorative and effect types on tiles. This fixes walls being only read as “impassable”

  • Fix missing close button label for options and a reward choice screen

  • Support random events popup

  • Many translation string fixes

V0.3.0

  • Added Ctrl+f command on the adventure map grid to search all scanner categories
  • Newly revealed entities will now be announced. This includes entities spawning in areas visible to the player, although this is subject to change in case this provides information typically not available to a sighted player
  • The scanner now has a Revealed category where revealed entities are placed
  • Added support for bookmarking specific positions on the adventure map:
    • There are 10 bookmark slots, 1 through 0
    • Ctrl+number: saves a bookmark at that slot
    • Shift+number: jump to bookmarked position
    • Alt+number: read directions from the currently focused tile to the bookmarked position
    • Ctrl+shift+number: toggle playback of an audio beacon at the bookmarked position
  • Add setting to control playback of a positional beep when moving through scanner result entries. This is turned off by default
  • The troop purchase and upgrade screens have been rewritten to work similar to the marketplace instead of being a faithful translation of the game’s UI. The number of tab stops no longer scales with the available troops
  • On the troop deployment screen:
    • Fix wrong enemy names
    • Fix opponent wielder portrait tooltips not being reliably shown in cases where you are the defender
  • Fix being stuck on the victory screen after successfully laying siege to a settlement
  • In combat, tile effects like Acid Clouds are now read
  • Edit fields no longer require pressing enter to edit them, just type text into them when focused

V0.2.0

  • Localization support for all languages supported by the game
  • Fix move troop amount dialog not being detected when troops are looking to join your army, and made escape only cancel the move instead of also exiting from the “troops are looking to join” screen
  • Stop reading effect and decorative features on adventure map tiles to reduce verbosity, since they have no gameplay effect
  • Objectives now indicate approximate direction and distance relative to the currently selected wielder. This provides information similar to objective markers rendered on the minimap.
  • Added the following hotkeys on the combat grid to move focus to various troops:
    • , and shift+, moves focus between your troops in initiative order
    • Space moves focus to your currently acting troop
    • . and Shift+. moves focus between enemy troops in initiative order
  • Added the following hotkeys for the adventure map to move focus to various HUD controls:
    • O: objectives
    • N: notifications
    • R: resources
    • T: troops
  • Added new setting to control whether story camera focus events are read. This is enabled by default
  • Fix various things in the defences screen not reading correctly
  • Fixed wrong label for spellbook screen checkbox
  • Add missing label for the wielder list menu in adventure map HUD

V0.1.4

  • Don’t announce a story camera focus event if it is identical to the last announced camera movement
  • When setting a destination, the route preview indicators on tiles from the wielder to the destination are now indicated
  • When reading tiles, “impassable” now describes impassable terrain. “Blocked” now indicates tiles that can’t be accessed due to dynamic game state like an occupying or blocking entity, and no longer describes impassable terrain.
  • Scanner improvements:
    • Scanner results now refresh automatically when using scanner commands, so a separate refresh step is no longer required
    • Scanner navigation now wraps between results, subcategories, and categories
    • Scanner results are now tracked by stable identity, so stale results are pruned more reliably after the game state changes
    • Added All subcategories to all categories with more than one subcategory for adventure map, troop placement, and combat
    • Improved adventure map terrain scanning performance
  • For hex grids, the mod now uses a half-x hex coordinate system. Diagonal movement changes x by 0.5 instead of exposing the game’s staggered raw grid coordinates
  • The scanner now recognizes beacons of power, results will be in a beacons category
  • Add mod settings screen accessed by ctrl+m. It currently contains a setting that controls whether enemy influence (attack, deadly, movement range and zone of control information) is read on tiles in combat. If disabled, such threatened tiles are indicated by “threatened”
  • Introduce an s hotkey in combat to read enemy influence

V0.1.3

  • Remove brackets around coordinate announcements, so x, y instead of (x, y). This shortens speech when the screen reader is configured to announce more punctuation
  • Tab and shift+tab now wrap for convenience. A sound is played to indicate when this happens
  • When focus is not on the grid in the adventure map or combat screens, pressing escape now moves focus back to the grid
  • Enemy wielders moving outside your view range will no longer be announced, woops
  • Teleports are now announced as teleports instead of move. The accessibility cursor also follows the wielder to the teleport destination
  • Teleports and movement events from wielders that don’t belong to you are now saved to the notifications buffer
  • Shortened “Not visible” indicator for fog of war tiles to “unseen” for brevity. Also added documentation about fog of war
  • Added sound indicator when cancelling a drag
  • When unchecking the auto populate quickvar option in the spellbook, fix add to quickbar action not being exposed unless the spellbook was reopened
  • Documentation updates:
    • Move changelog to documentation site
    • Add development status and list of known issues
    • Add a separate section for tooltips
    • Clarify the 3 tile visibility states and “fog” is a decorative terrain feature, not an indication of fog of war

V0.1.2

This is an emergency release because I left out a critical config file, so this wasn’t working for anyone else. Woops.

V0.1.1

  • Fixed regression that broke support for popup dialogs
  • Make the claim menu accessible. This screen appears when interacting with an enemy settlement
  • Fix notifications widget in adventure map HUD not appearing even when there were notifications to display

V0.1.0

Initial release

Reporting Bugs

The best way to report bugs is Discord.

Send me your save file in C:\Users\<username>\AppData\LocalLow\Lavapotion\SongsOfConquest\Savegames

Known Issues

In rough order of descending priority:

  • The following features are experimental as they need more testing:
    • Multiplayer games, let me know if you would like to help me test this. I know that New round confirmation screen in multiplayer doesn’t work yet
    • Playing community maps and campaigns
  • Report player popup screen isn’t supported
  • The bug report screen is currently not supported
  • The map editor is not supported
  • The credits and digital artbook screens are not supported

Credits

  • Thanks to Rashad Naqeeb for contributing improvements to the adventure map and scanner, and for the numerous suggestions for improving the mod
  • Speech stack and the UI graph engine ported from Brad Renshaw’s wotr-access
  • Prism screen reader output library by Ethin Probst