Skip to content

Latest commit

 

History

704 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Card

Handy - a Balatro mod which adds keybinds and new controls to the game
designed for faster, easier and more comfortable Vanilla and Modded gameplay

Key features

  • 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!

Quality & Accessibility

  • 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

Installation

  1. Install lovely by following instructions in repository page. Make sure your antivirus is not removing it;
  2. Download latest release of mod by selecting an archive named Handy-[version].zip;
  3. Put HandyBalatro folder from archive (NOT Handy-[version]) into Mods folder.
  4. Start a game, go to "Options". if you see new blue button, all done correctly;
  5. Configure each feature and keybind as you want. Explore and go wild!
  6. Continue playing! No game restart or new run required.

Contribute

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!

Special thanks

  • Jogla (@jogla_the_wizard in Discord) - old Spanish localization
  • Sesebasti - old Spanish (Mexico) localization
  • shxiaj - Simplified Chinese localization
  • Rynnya (@Ancowi in Discord) - testing on gamepad
  • Aikoyori - testing (including MacOS)
  • missingnumber (@clickonflareblitz in Discord) - testing (including SteamDeck)
  • jenwalter666 (@jenwalter in 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!

For developers

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)
end

Mod 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™

About

A mod for Balatro which adds new Quality of Life controls and keybinds.

Topics

Resources

Stars

131 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages