Handy - a Balatro mod which adds keybinds and new controls to the game
designed for faster, easier and more comfortable Vanilla and Modded gameplay
- Keybinds for all vanilla actions: play, discard, hand sorting, cash out, shop reroll, view deck, and more;
- Fast hand selection: select cards just by hovering them (showcase);
- Quick Buy/Sell/Use: buy, sell or use cards in one button press (showcase);
- Faster game speed: adjust game speed up to x512;
- Animations skip: instant scoring and cards drawing, removing unnecessary animations (showcase);
- Precise selecting: easier management of large amount of jokers or consumables (showcase);
- Mass Sell and Remove: solutions for bulk selling and removing jokers for your Cryptid runs (showcase);
- ...And much more: up to 100 controls to try and play around!
- Lovely mod: no SMODS required; all controls always available; doesn't disable achievements;
- Stability is priority: safe for use in Vanilla, Multiplayer and with any other mods;
- Full control: each feature can be disabled/enabled individually;
- Full freedom: any keybind can be assigned to any combination of mouse, keyboard or gamepad buttons;
- Instant effect: all config changes applied immediately, no run or game restart required;
- Presets: save up to 3 config layouts to switch between in any moment;
- Built-in mod updater: install once, update mod in-game automatically;
- Full gamepad support
- 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
HandyBalatrofolder from archive (NOTHandy-[version]) intoModsfolder. - Start a game, go to "Options". if you see new blue button, all done correctly;
- Configure each feature and keybind as you want. Explore and go wild!
- 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_wizardin Discord) - old Spanish localization - Sesebasti - old Spanish (Mexico) localization
- shxiaj - Simplified Chinese localization
- Rynnya (
@Ancowiin Discord) - testing on gamepad - Aikoyori - testing (including MacOS)
- missingnumber (
@clickonflareblitzin Discord) - testing (including SteamDeck) - jenwalter666 (
@jenwalterin Discord) - non-direct support with "spreading" a mod for other players - LocalThunk - for making such outstanding and groundbreaking game we all LÖVE
- ...and everyone who report bugs, make suggestions, and playing with my mod!
When adding new buy or use buttons for jokers/consumables via G.UIDEF.buy_and_sell_buttons(), you can mark them and Handy will use them when [Quick Buy/Sell] or [Quick Use] controls is called.
Include in button config definition field handy_insta_action with one of the following values:
sell: when card needs to be sold, used by [Quick Buy/Sell]buy: when card needs to be bought, used by [Quick Buy/Sell]use: when card needs to be used, used by [Quick Use]
-- Somewhere inside `G.UIDEF.buy_and_sell_buttons()` hook
{
n = G.UIT.R,
config = {
button = 'buy_my_card', func = 'can_buy_my_card',
handy_insta_action = 'buy',
-- ...your button definition
},
nodes = { ... }
},Mod and/or specific controls can be partially or fully disabled conditionally.
if Handy and Handy.e_mitter then
-- Apply all changes when mod and game fully ready
Handy.e_mitter.on("game_start", function()
-- Disable mod entirely
local mod_active_ref = Handy.is_mod_active
function Handy.is_mod_active()
return not MyMod.allow_only_vanilla_controls and mod_active_ref()
end
-- Disable controls such as mass sell and mass remove
local dangerous_active_red = Handy.is_dangerous_actions_active
function Handy.is_dangerous_actions_active()
return not MyMod.only_safe_controls and dangerous_active_red()
end
-- Disable specific control (in this example: [Speed Multiplier])
local module_override_ref = Handy.get_module_override
function Handy.get_module_override(module)
if module == Handy.cc.speed_multiplier and MyMod.only_vanilla_speed then
return {
enabled = false
}
end
return module_override_ref(module)
end
end)
endMod provides API for adding own controls and keybinds (including LSP).
All base controls & keybinds utilize it. See src/definitions for examples.
More info about how to use API soon™
