Handy - a lovely mod which adds new controls and keybinds to the game
designed for faster and easier playing Vanilla and Modded Balatro
- Vanilla-friendly: no new run required; stability is priority, safe for use in base game and Multiplayer;
- Works without Steamodded: but included supports for variety of different mods (NotJustYet, Nopeus, Cryptid);
- Fast hand selection: highlight cards just by hovering them (showcase);
- Keybinds for all vanilla buttons and actions: play, discard, hand sorting, cash out, shop reroll, view deck, and more;
- Game speed: adjust game speed up to x512 in-run;
- Animation skip: instant scoring and removing unnecessary animations to speedup game even further (showcase);
- Quick Buy/Sell/Use: controls to buy, sell or use cards faster (showcase);
- Selection movement: more precise management on large amoung of jokers or consumables (showcase);
- Full control: each feature can be disabled/enabled individually, each keybind can be reassigned to any keyboard or mouse button;
- Gamepad support: most features can be used with gamepad aswell;
- Presets: save up to 3 mod settings layouts and switch between them in-run to have more freedom with limited amount of buttons;
Caution
This controls designed to be speed-first, which can cause bugs, crashes or tank performance!
Also, their usage can lead to accidental cards selling or removing if do it not carefully!
Hovewer, they're really useful for dealing with huge amount of Jokers, Consumables or Skip tags.
Must be enabled separately. Use with caution.
- Sell cards in bulk: all copies or ALL cards at once (showcase);
- Removing: deleting excessive jokers, consumables or skip tags;
- Max speed: uncapped game speed and instant game animations;
Note
REMOVE card or skip tag - delete without any checks, effects, triggers or money refunds.
- Install lovely by following instructions in repository page. Make sure your antivirus is not removing it;
- Download latest release of mod by selecting an archive named
Handy-[version].zip
; - Put
HandyBalatro
folder from archive (NOTHandy-[version]
) into game'sMods
folder.
Can be found in%appdata%/Balatro/Mods
. ifMods
folder is missing, create it; - Start a game. If all done correctly, new button should appear in options menu;
- Configure each feature and keybind as you want. All of them listed in mod settings;
- Continue playing! No game restart or new run required.
Want new features to be implemented? Want add mod support? Found a bug?
Create an issue or let me know in Discord mod's thread!
- Jogla (
@jogla_the_wizard
in Discord) - Spanish localization - Sesebasti - Spanish (Mexico) localization
- Rynnya (
@Ancowi
in Discord) - testing on gamepad - Aikoyori - testing (including MacOS)
- missingnumber (
@clickonflareblitz
in Discord) - testing on SteamDeck - jenwalter666 (
@jenwalter
in Discord) - non-direct support with "spreading" a mod for other players - and everyone who report bugs, make suggestions, and playing with Handy mod!
If your mod needs to disable Handy's dangerous controls on certain conditions, you can hook check function to do so:
if Handy and Handy.is_dangerous_actions_active then
local funcRef = Handy.is_dangerous_actions_active
function Handy.is_dangerous_actions_active()
return funcRef() and not MyMod.only_safe_controls
end
end
Similar for cases when needed to disable mod entirely:
if Handy and Handy.is_mod_active then
local funcRef = Handy.is_mod_active
function Handy.is_mod_active()
return funcRef() and not MyMod.allow_only_vanilla_controls
end
end
Also, specific feature's config can be overrided:
if Handy and Handy.get_module_override then
local funcRef = Handy.get_module_override
function Handy.get_module_override(module)
if module == Handy.cc.speed_multiplier and not MyMod.allow_change_game_speed then
return {
enabled = false
}
end
return funcRef(module)
end
end
When adding new buy or use buttons for jokers/consumables, you can mark them and Handy will use them when [Quick Buy/Sell] or [Quick Use] is called.
Include in button config definition field handy_insta_action
with one of the following values:
sell
for mass-sell features or when [Quick buy/sell] is used (aka Shift is hold); Use for "Sell" buttons;buy_or_sell
when [Quick buy/sell] is used (aka Shift is hold); Use for "Buy" buttons;use
when [Quick use] is used (aka Ctrl is hold); Use for "Use" buttons or buttons unique for your cards;
Only difference between sell
and buy_or_sell
is for mass-sell features, since only selling is allowed for it.
Example:
-- Somewhere inside `G.UIDEF.buy_and_sell_buttons()` hook
{
n=G.UIT.R,
config={
-- ...your button definition
button = 'buy_my_card', func = 'can_buy_my_card', handy_insta_action = 'buy_or_sell'
},
nodes={
-- ...
}
},