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

Monster Train 2 Accessibility is a screen reader and keyboard/controller accessibility mod for Monster Train 2. It adds spoken output, focus navigation, contextual information buffers, gameplay event announcements, and configurable mod keybindings.

Features

  • Speech output through Prism, with support for common screen readers and speech backends.
  • Keyboard and controller navigation for menus, combat, rewards, shops, map screens, run setup, challenge screens, Soul Savior, and the compendium.
  • Contextual buffers for cards, creatures, artifacts, rewards, UI text, and event history.
  • Combat event announcements for turns, resources, card plays, unit changes, Pyre health, artifact triggers, and more.
  • Presentation-aware card, artifact, reward, creature, merchant, challenge, and compendium details.
  • Rebindable mod keybindings for keyboard and controller.
  • Localized mod text through the mod localization system.

Installation

Installer

The recommended install path is the installer. Download MonsterTrainAccessibilityInstaller.exe from the latest releases page, run it, and choose your Monster Train 2 game folder when prompted.

The default Steam path on Windows, which the installer assumes to be the case, is:

C:\Program Files (x86)\Steam\steamapps\common\Monster Train 2

After installation, launch Monster Train 2. If installation worked, the mod should initialize when the game starts and begin speaking UI focus.

Manual Installation

  1. Download the latest MonsterTrainAccessibility.zip release.

  2. Extract the zip into your Monster Train 2 game folder.

  3. The default Steam path on Windows is:

    C:\Program Files (x86)\Steam\steamapps\common\Monster Train 2
    
  4. After extraction, the game folder should contain files such as winhttp.dll, doorstop_config.ini, prism.dll, and a BepInEx folder.

  5. Launch Monster Train 2.

If installation worked, the mod should initialize when the game starts and begin speaking UI focus.

Updating

To update, either launch the installer and hit update or, if doing a manual install extract the latest release zip over the existing game folder and replace files when prompted.

Uninstalling

The installer has an uninstall option, but if you'd like to manually remove the mod, remove the following from the game's directory.

  • winhttp.dll
  • doorstop_config.ini
  • .doorstop_version
  • prism.dll
  • the Monster Train Accessibility files under BepInEx\plugins

Getting Started

After installing the mod, launch Monster Train 2. You should hear focus announcements as the game enters its first screen or main menu.

Basic Navigation

Use arrow keys, the D-pad, or the left stick to move through accessible menus. Use Enter or the controller confirm button to activate focused items. Escape or the controller cancel button backs out of many screens.

The mod adds its own review and information commands. Press F1 to open context-sensitive help. Press Ctrl+M to open mod settings.

Help

Press F1 to open the help screen. The help screen lists mod actions that are currently available on the active screen. Use up and down to read the help entries. Press F1 again, Escape, Enter, or the usual cancel/confirm input to close it.

Do note that, due to some unfortunate decisions, the mod currently supports only whatever actions it adds beyond the base game. A full listing of keyboard controls for both the mod and the game is included later in the document.

Buffers

Many focused elements have more information than should be spoken every time focus lands on them. The mod puts that extra information into buffers.

For example, when focusing a card, the focus announcement can stay concise, while the card buffer contains full card details. Use Ctrl+Up and Ctrl+Down to move through items in the current buffer. Use Ctrl+Left and Ctrl+Right to switch between buffers.

Controller buffer navigation uses the right stick by default.

Mod Settings

Press Ctrl+M to open mod settings. Settings include event announcements, element behavior, and mod keybindings. Keybindings can be changed for keyboard and controller.

Controls

This page lists both Monster Train 2 game controls and mod-specific controls.

Game controls are the native actions exposed by Monster Train 2's own key mapping system. They can be changed in the game's Settings, Key Mapping screen. Mod controls can be changed in the mod settings screen under Keybindings.

Game Controls

These defaults come from the game's input setup. Keyboard mappings can be rebound in the game's settings. Gamepad labels are written as Xbox-style names; other controllers may show different button glyphs in game.

Game actionDefault keyboardDefault controllerFunction
SubmitE, EnterAActivate, play, or confirm the focused game item
CloseQ, BackspaceBClose the current panel or back out of some UI
CancelEscapeBCancel or back out
SettingsEscapeStartOpen settings or pause-style menu where available
LeftLeft Arrow, ALeft Stick Left, D-pad LeftMove left
RightRight Arrow, DLeft Stick Right, D-pad RightMove right
UpUp Arrow, WLeft Stick Up, D-pad UpMove up
DownDown Arrow, SLeft Stick Down, D-pad DownMove down
DeselectRight MouseUnboundDeselect or cancel selected item in pointer-style UI
Scroll upPage UpRight Stick UpScroll upward
Scroll downPage DownRight Stick DownScroll downward
Scroll leftPage UpRight Stick LeftScroll left in horizontal scrollers
Scroll rightPage DownRight Stick RightScroll right in horizontal scrollers
HomeHomeUnboundJump to the start where supported
EndEndUnboundJump to the end where supported
DeckZBackOpen deck
Draw pileXUnboundOpen draw pile
Consume pileVUnboundOpen consume pile
Discard pileCUnboundOpen discard pile
MinimapMRight BumperOpen or focus minimap where available
Context actionFXContext-specific action
Access HUDTabYOpen the HUD overlay
Show card previewRight Mouse, LRight TriggerShow card preview or alternate card view
Card 11UnboundSelect card slot 1
Card 22UnboundSelect card slot 2
Card 33UnboundSelect card slot 3
Card 44UnboundSelect card slot 4
Card 55UnboundSelect card slot 5
Card 66UnboundSelect card slot 6
Card 77UnboundSelect card slot 7
Card 88UnboundSelect card slot 8
Card 99UnboundSelect card slot 9
Card 100UnboundSelect card slot 10
Ludicrous modeRight MouseUnboundHold/toggle fast interaction mode where the game supports it
Game speed toggleNLeft BumperToggle game speed
FeedbackF8UnboundOpen feedback
MuteUnboundUnboundMute toggle if bound
Advance dialogueSpace, EnterAAdvance dialogue
Skip dialogueUnboundBSkip dialogue if the screen supports it
Secondary tooltipsLeft Alt, Right AltLeft TriggerShow secondary tooltips
UndoUUnboundUndo turn or undo supported action
Dragon's HoardHRight Stick ClickOpen Dragon's Hoard where available
Previous pageOLeft TriggerPrevious page
Next pagePRight TriggerNext page

Mod Actions

ActionDefault keyboardDefault controllerFunction
HelpF1LT+BackOpen context-sensitive help
Mod settingsCtrl+MLT+StartOpen mod settings

Buffers

ActionDefault keyboardDefault controllerFunction
Previous buffer itemCtrl+UpRight Stick UpMove to the previous item in the current buffer
Next buffer itemCtrl+DownRight Stick DownMove to the next item in the current buffer
Previous bufferCtrl+LeftRight Stick LeftSwitch to the previous available buffer
Next bufferCtrl+RightRight Stick RightSwitch to the next available buffer

The current focused item is at the Ctrl+Down side of a buffer. Pressing Ctrl+Down from the starting point reads the current/top buffer item.

Run And Combat Information

ActionDefault keyboardDefault controllerFunction
Read goldCtrl+GRT+ASpeak current gold
Read Pyre healthCtrl+HLT+ASpeak current Pyre health
Read emberRLT+XSpeak current ember
Read forge pointsCtrl+RRT+XSpeak current forge points
Read unit outcomeIRT+YSpeak the currently focused unit outcome
Read floor outcomesCtrl+IRT+BSpeak outcomes for the currently focused floor
Read all floor outcomesCtrl+Shift+ILT+YSpeak outcomes for every floor
Read floor capacity and charged echoesBLT+BSpeak focused floor capacity and charged echoes
Read all floor capacity and charged echoesShift+BRT+D-pad UpSpeak capacity and charged echoes for every floor
Jump to handGUnbound by defaultMove focus back to the hand in combat

Buffers

Buffers are review lists for extra information. They are separate from normal focus navigation. Moving focus chooses what information is available; buffer commands let you inspect that information without moving focus away.

Default Buffer Controls

  • Ctrl+Up: previous item in the current buffer.
  • Ctrl+Down: next item in the current buffer.
  • Ctrl+Left: previous buffer.
  • Ctrl+Right: next buffer.
  • Right stick directions perform the same actions on controller.

Common Buffers

  • UI: text and details for the currently focused UI element.
  • Events: recent gameplay events.
  • Card: card name, cost, effects, traits, upgrades, and related text.
  • Creature: unit stats, status effects, abilities, equipment, and intent where available.
  • Artifact: artifact name and effect text.
  • Reward: reward details.

Only buffers that have relevant information are available. Use Ctrl+Left and Ctrl+Right to cycle through them.

Why Buffers Matter

Some elements need short focus text but long detail text. For example, a card in hand may speak only its name and important immediate effects, while the card buffer contains the full text. Shops, challenge rewards, artifacts, compendium entries, and event options also use buffers for details.

Map and Travel

The map is your itinerary for the ongoing invasion of heaven, and it's accessible with both normal focus and buffer-style map review.

Normal Travel

Use regular navigation to move between selectable map nodes. Press confirm on a reachable node to travel to it.

Unlike certain other deckbuilders that shall remain nameless, nodes along your chosen path can be visited out of order; pick whichever reachable stop strikes your fancy. The catch is that the track you've committed to is the track you're on. Nodes sitting on the other side of the rails are no longer your problem (or your prize).

Map Review

The map also has a review cursor that uses the buffer navigation commands. This lets you scout the path ahead without committing the train to anything rash.

  • Ctrl+Left and Ctrl+Right move between choices at the current branch.
  • Ctrl+Up moves forward along the reviewed path.
  • Ctrl+Down moves backward along the reviewed path.

The controller right stick performs the same review actions.

Combat

Combat is the piece of the game, besides the compendium, that has received the most overhaul. It is worthwhile to read through this section in full before playing, so as to eliminate any confusion and tragic pyre demise on your part.

How It All Normally Works

Combat unfolds across the train's four floors. Your pyre sits proudly at the top of floor 4, minding its own business. Enemies appear at the bottom of floor 1 with one ambition in their tiny ill-fated hearts: climb the train and bonk your pyre. Your job is to make sure they don't get that far.

The rhythm goes like this:

  1. A wave spawns on floor 1. Enemies line up shoulder-to-shoulder, looking purposeful.
  2. Wherever your units and theirs share a floor, they trade blows. One round of combat per turn; nobody waits around for full annihilation before the survivors continue their journey. (Bosses, the dramatic sort, make exceptions for themselves.)
  3. Enemies swing first, in front-to-back order. Each one targets your frontmost living unit. That means a single beleaguered frontliner can get piled on by the whole enemy lineup before anyone on your side gets a word in edgewise. Only if the frontmost falls does the next attack cascade to whoever is now in front.
  4. Then your units retaliate, also in front-to-back order, each targeting the enemy's frontmost living unit. Same piling-on rule, just in the other direction.
  5. Survivors climb. At the end of the round, any enemy still standing trudges up to the next floor and gears up to do it all again with whoever you've stationed there.
  6. At the pyre, the pleasantries end. Enemies who reach floor 4 with nothing left to fight will whack the pyre directly, round after round, until either they or it ceases to exist.

An Example, Because Words Are Hard

Picture floor 1. You've placed two units, in left-to-right order:

  • Spear steward (back)
  • Shield steward (front, nearest the action)

A wave arrives with three enemies, in left-to-right order:

  • Fallen champion (front, nearest your line)
  • Ominous acolyte
  • Collector (back, leaning casually against the wall)

Enemies attack first:

  1. The Fallen champion swings at your Shield steward (your frontmost).
  2. The Ominous acolyte also swings at your Shield steward. (Shield is still the frontmost; the Acolyte doesn't get to pick a different target just because someone else already had a go.)

Then your units retaliate, Shield first (frontmost on your side), then Spear:

  1. Shield steward swings back at the Fallen champion (their frontmost).
  2. Spear steward swings next, and here things branch:
    • If the Fallen champion survived Shield's attack, Spear hits the Fallen champion. The pile-on continues.
    • If the Fallen champion died, the Ominous acolyte is now the enemy's frontmost, and Spear hits the Acolyte instead.

And the Collector? The Collector watches the whole thing serenely from the back, entirely unscathed. Your line ran out of attackers before anyone got around to it. This is the price of fielding only two units; the Collector will be very much involved next turn.

How the Mod Makes This Accessible

Normally one would need to scroll and switch floors. The mod, for the most part, removes this for you. From bottom to top, the UI order is as follows:

  • Your current hand of cards
  • Floor 1 (this is where you get some unwelcome passengers)
  • Floor 2
  • Floor 3
  • Floor 4 (this is where your pyre is at)
  • Top panel containing buttons like end turn, remaining enemy waves, etc. Most of that information has either a game- or mod-provided shortcut for quicker access.

Hand and Cards

Left/right arrows can be used to navigate your hand. When a card is focused, you get things like its name, type, cost, and unit statistics. Importantly, however, you do not get every single piece of information, so as to reduce speech clutter.

For example, one keyword the game has is explosive, in which case the card will mention said keyword but will not by default give you a description of the effect.

To see the full description, use the buffer navigation keys. There you will learn, for instance, that explosive means that any excess damage is spilled over to the adjacent creatures.

The same pattern holds for your and enemy units; only key pieces of information are narrated, and full details are available within the buffer upon request.

Floors

Floors can also be navigated with left/right arrows. They expose the full lineup of creatures, yours and otherwise, with your and the enemy's backliners on the edges. In other words, the unit that is most likely to be attacked next turn is adjacent to the first enemy unit within the list from left-to-right.

Resources

These are listed in Controls but are repeated here for your convenience. Keep in mind that these are mod-provided and that the game may have more, e.g., F to end turn.

  • R: read ember.
  • Ctrl+R: read forge points.
  • Ctrl+G: read gold.
  • Ctrl+H: read pyre health.

Outcomes

Outcome commands summarize predicted combat results:

  • I: focused unit outcome.
  • Ctrl+I: focused floor outcomes.
  • Ctrl+Shift+I: all floor outcomes.

If no relevant floor or unit is focused, these commands do nothing.

Abilities

Creature and room abilities are represented as focusable elements when the game UI exposes them (which it does on its own schedule, not yours). Pressing confirm on an accessible ability element should activate the corresponding game ability.

Targeting Things, Oh My!

Some abilities aren't content to just go off into the ether. They demand a target (a victim, usually; occasionally a beneficiary). When you trigger such an ability, the game obligingly enters targeting mode and waits patiently for you to point it at something.

Navigation in targeting mode works exactly as it does elsewhere: left/right arrows to scroll through creatures, and the usual floor navigation to hop between floors. Once your chosen mark is focused, press Enter to confirm and let the carnage (or kindness, who's to say) commence.

Cards play by similar rules. When you summon a unit, you'll be asked to pick a spawn point on the floor. Slot 1 is always the frontmost (right in the enemies' faces), and the numbers count back from there, with the highest slot being whatever's furthest from the fray (cozy, well-defended, lovely view of the action). Same navigation, same Enter to commit.

One thing to keep in mind: most monsters can only swing at things on their own floor, so don't waste your breath courting a target two floors up. The game will politely refuse, and your unit will sit there judging you.

Reading Spawn Points

As you scroll through spawn points, you'll often hear something like "spawn point 2, spear steward." Do not panic on the spear steward's behalf; you are not about to overwrite them. The convention is that the named unit is whoever currently occupies that slot, and committing the spawn places your new arrival in front of them. That unit, and anyone ahead of them, will politely shuffle one step back to make room for the newcomer. Empty slots, having no current resident to name, simply announce themselves by number.

A worked example. Suppose you already have two spear stewards on the floor, at points 1 and 2, and you're about to summon a fresh shield steward. Reading the line left-to-right (back to front, as established):

  • Spawn at point 1 (currently a spear steward): the shield slips into the frontmost slot, both spears shuffle back a step. Line becomes spear -> spear -> shield.
  • Spawn at point 2 (also a spear steward): the shield wedges in between; the rearward spear gets bumped one further back. Line becomes spear -> shield -> spear.
  • Spawn at point 3 (empty, so no name announced): the shield settles into the back, and nobody has to move. Line becomes shield -> spear -> spear.

Same unit, same floor, three entirely different roles in the choreography. Pick accordingly.

Troubleshooting And Known Issues

No Speech

If the mod does not speak:

  1. Confirm the release zip was extracted into the Monster Train 2 game folder.

  2. Confirm winhttp.dll, doorstop_config.ini, prism.dll, and BepInEx are present next to MonsterTrain2.exe.

  3. Check the BepInEx log:

    C:\Program Files (x86)\Steam\steamapps\common\Monster Train 2\BepInEx\LogOutput.log
    
  4. Look for Monster Train Accessibility ready.

Controller Notes

Controller support is wired through the game's controller input system. If a controller behaves unexpectedly, check Steam Input settings and verify the game itself is receiving the controller correctly. Since the author lacks a controller (BOO!) this path has yet to be tested as thoroughly.

The Tutorial mentions scrolling and dragging things?

Yeh, it does. Short of abandoning the run you'll keep seeing the popups telling you information that might or might not be helpful. We found it confusing for the most part. You can definitely ignore all the parts that say to try out scrolling or dragging; we do none of that here.

Change Log

0.2.0

  • Fixed a bug where your focus would be stuck after opening settings on rewards screen. You could have gotten yourself unstuck by hitting tab, but you don't have to anymore (QgSama). Silly Unity focus restore.
  • Updated existing Chinese translation (QgSama)

0.1.9

  • We now pick up character chatter with all the related events turned off by default so as to reduce spam. They do, however, go into the new monster quotes buffer so you can review them at your leisure (Boing).
  • We now clear any focus one has on room abilities. This should hopefully fix the rare cases of room abilities activating instead of cards (Boing).
  • Try and suppress the transient unlock screen briefly shown even when you don't have anything new unlocked. This should get rid of announcements like new clan unlocked (Boing).

0.1.8

  • Events are now less verbose (Camlorn), e.g.: gold +10 without including total.
  • Multiple people asked to disable wrapping in creature lists. It has been done. Additionally, an auditory beep plays whenever you cross from allies to enemies and vice versa.

0.1.7

  • Floors now read their effects (if any) alongside capacity when requested with b, defaulting to name only when just being scrolled over (Matrheine).
  • We now announce changes in moon phases as an event (Matrheine). You could previously see it if you go to the top panel above the floor with your pyre, but hopefully it's faster now.
  • The train depot screen now reads, although from my investigation its... quite bare. I'm happy to be corrected, however.

0.1.6

  • In soul savior, pressing m while having the HUD open puts you onto your first soul. An odd choice of key, but you can rebind this if you wish (although do note that this is a native game action).
  • In the HUD screen, bosses are now collapsed to a horizontal row as opposed to participating in vertical navigation.
  • By popular demand/confusion, artifacts read out their primary effects without having to go to the buffer to see them. They do not, however, describe their tooltips, so if you want to see what something like quick does you still have to look in the respective buffer.
  • Souls now go through the presentation buffers during run preview in case you forgot and want to also remind yourself of their info.
  • The skip button is now labeled when equipping souls. I wasn't aware that was an option even. No idea why you'd want to do that, but now you can.
  • We no longer register the transient confirm button on soul equip screen, so no more weird vertical cycling in the first column (I don't think people even use confirm since souls equip upon selecting a card).
  • The HUD screen is now treated as, well, an actual screen. The game doesn't do that but hopefully we do now, so pressing tab should work anywhere the game allows it to (previously it was a custom opt-in. Seemed like a great idea at the time. It wasn't).
  • Slightly rearranged soul savior region selection menu so that region modifier is now its own item rather than being lumped in with rewards.

0.1.5

  • The mod should respect user's selected language now and not require an explicit language switch
  • Added revised Chinese localization by QgSama

0.1.4

  • The game has been machine-translated into all the languages it supports. Contributions with improvements on that front are welcome.
  • We now have an installer! You can grab it from the latest releases page (chaosbringer216)
  • Corrected pyre sprite localization to say Pyre health as opposed to just Pyre.
  • Story event choices now include all of the available rewards for a particular choice rather than stopping at the first one. This allows one to, e.g., see the Dominion's Eye blight before it's added to their deck. Fortunately this was never a huge deal, but at least it's fixed now.
  • Passive artifact effects like purified soul shard no longer spam you when they get triggered (Matrheine).
  • Settings tabs are now visible as actual buttons. They probably should have been like this in the first place. You could reach other tabs with brackets, but the game never tells you that fact. This makes them more consistent with screens like soul savior, too.

0.1.3

  • Card grids no longer allow you to vertically slide down to the next nearest item in a future row (whoops?).
  • In combat, pressing page up/down also has the same effect as pressing your arrow keys. The game already had those controls, and it was strange they disagreed (ogomez92)
  • When setting up a run, it is now possible to view a clan's experience progress to the next level (ogomez92)
  • Creature abilities now collapse both the name and description into one buffer entry (Chaosbringer216)
  • Spawn points now announce if there's a unit at that location. This should make it easier to figure out who your summoned unit will be spawned in front of so you don't have to remember quite as much.

0.1.2

  • Continue tinkering with tutorial screens. All of them are accessible now, we just forgot about the one special covenant case

0.1.1

  • Make the starting settings screen read. The author may or may not have opened the game over six months ago so he had to wait for a user to run into that one.
  • Fixed controllers not interrupting themselves when you scroll through items
  • Made some tutorial popups accessible. Hungry dialogues were eating keys!

Credits

First, a huge thank you goes to Honk from the audiogames.net forum. Having to first explain how a fair bit of the game worked and then patiently try each build practically on a daily basis must not have been easy. The mod would most certainly be in a much less polished state without their feedback.

Thank you goes to Chaosbringer216 and his wonderful work on Say the Spire 2.

Most of the ideas like buffers were either copied or blatantly lifted (with his permission) from that mod, and I guarantee you we would have a much clunkier product otherwise.

Finally, we use Prism, which has alleviated much of the screen reader headaches.