this mod is a mostly complete implementation of keyboard driven UX for Balatro. it adds keybindings for all of the gameplay actions, and includes code from DorkDad141's Keyboard Shortcuts, which adds keybindings for quickly selecting the best hand available or making flush & high card hands -called "the cheat layer" in typist-, but no hands are ever played or discarded automatically by the mod, it just picks cards and you can inspect the hand & modify it before playing it with space
or discarding it with tab
the only dependency is the lovely
code injector, which is also a dependency of the Steamodded mod loader, so if you have smods
you can just drop this repo into your Mods
directory and it'll get picked up. if not then follow the first two steps of Steamodded's "How to install Steamodded" guide, namely "Step 1: Anti-virus setup" and "Step 2: Installing Lovely", then download the mod (either with git clone
or from the green "Code" button at the top of the page) and save it to the appropriate directory for your platform:
- windows:
%AppData%/Balatro/Mods
- mac:
~/Library/Application Support/Balatro/Mods
- linux+wine/proton:
~/.local/share/Steam/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser/AppData/Roaming/Balatro/Mods
the only game versions the mod was tested with are 1.0.1n
and 1.0.1o
.
- toggling hand cards with
asdfgh...
keys - support for
qwerty
anddvorak
keyboard layouts, where positional keys are kept consistent across both layouts and mnemonic keys aren't changed. (e.g.asdf
to toggle the first four cards in qwerty translates toaoeu
in dvorak, butr
to reroll the shop or the boss blind staysr
in both layouts) - support for keybind overrides, so you can change the default keybinds to your liking
- any key to skip the splash screen and
space
to click any "play" or "continue" button, so a run can be started from game launch until the first blind with thespace
button only - cardarea keybind layers for selecting, moving, selling & using cards. these apply globally for
- consumables, accessed by holding
'
- jokers, accessed by holding
[
- pack cards, with no leader key
- the shop, with no leader key
- the hand, which is accessed
- by holding
/
everywhere for selection and movement of a single card - by holding
shift+/
for multiselect in booster packs - with no leader key for multiselect in rounds
- by holding
- consumables, accessed by holding
- a complete implementation of every action in every game state, with
space
being generally the "proceed" button:- it plays the selected hand
- selects the upcoming blind
- moves from the shop to blind selection
- uses consumable cards
- selects the highlighted pack item
- starts a new run from the game over screen
tab
being the dismiss button:- it discards the selected hand
- sells consumable or joker cards
- skips the current booster pack
- closes any overlay menu
- exits to main menu from the game over screen
- mnemonic keys for less frequent actions, like
s
to skip blinds,r
to reroll the shop or boss,b
in the cheat layer (accessed by holdingp
) to pick the best hand out the available cards,f
in the cheat layer to fish for the best flush in hand, etc - the bottom row of the keyboard as the "control panel", where
- in rounds:
c
&v
to sort hand cards - in the shop:
c
to buy an item or a pack or a voucher &v
to buy and use an item or buy a pack or a voucher b
to invert card selection in rounds andn
to deselect all cards in a cardareax
to view run info whenever it's available.
to open the options overlay menu (the same asescape
)- & others (see
./layout.lua
) for dvorak and the full keymap
- in rounds:
- deck selection keybinds, the "new run" menu has only one keybind,
space
to start a run with the selected deck, would be nice to addhjkl
for deck and stake selection too
- half-keyboard layouts to be used with one hand on the mouse and the other on one side of keyboard
- menu navigation keybinds, menus are the only part of the game that currently requires the mouse to navigate
- redesign arcana and spectral packs UX, hand manipulation in these screens is a bit clunky due to the need for
shift+/
for cardarea multiselect