Documentation Index
Fetch the complete documentation index at: https://mintlify.com/kasimeka/balatro-typist-mod/llms.txt
Use this file to discover all available pages before exploring further.
Welcome Contributors!
Typist is an open-source project and welcomes contributions from the community. Whether you’re fixing bugs, adding features, improving documentation, or just reporting issues, your help is appreciated!Ways to Contribute
Reporting Bugs
Found a bug? Help us fix it by creating a detailed bug report. Before Reporting:- Check if the issue already exists in GitHub Issues
- Verify you’re using a supported Balatro version (1.0.1n or 1.0.1o)
- Test with only Typist installed (disable other mods) to rule out conflicts
Suggesting Features
Check the TODOs and Future Plans sections in the README to see what’s already planned.
- Describe the use case and why it would be valuable
- Consider how it fits with Typist’s keyboard-driven philosophy
- Propose potential keybindings (if applicable)
- Be open to discussion and iteration
- Deck selection keybinds (hjkl for deck and stake selection)
- Half-keyboard layouts for one-hand operation
- Menu navigation keybinds
- Redesigned arcana and spectral packs UX
- Controller UI for displaying keybind hints
Improving Documentation
Documentation improvements are always welcome! This includes:- Fixing typos or unclear explanations
- Adding examples or tutorials
- Improving the wiki
- Creating video guides or screenshots
Code Contributions
Getting Started
- Fork the Repository Click the “Fork” button on GitHub
-
Clone Your Fork
-
Set Up Development Environment
- Install Balatro (obviously!)
- Install the Lovely injector
- Symlink your cloned repo to the Mods directory:
-
Create a Branch
Code Style Guidelines
Typist uses StyLua for Lua code formatting. Configuration (.stylua.toml):
- Use 2 spaces for indentation (not tabs)
- Maximum 100 characters per line
- Prefer double quotes for strings
- Unix-style line endings (LF, not CRLF)
- Sort
requirestatements - Omit parentheses for single table argument function calls
Project Structure
Understanding the codebase:mod/layout.lua- Add or modify keybindings heremod/state-handlers.lua- Add handlers for different game statescompat/*.lua- Add compatibility for other mods
Development Workflow
-
Make Your Changes
- Write clean, commented code
- Follow the existing code style
- Test thoroughly in-game
-
Test Your Changes
- Test with all three keyboard layouts (qwerty, dvorak, workman)
- Test with and without other compatible mods
- Test edge cases (e.g., what happens with 10+ jokers?)
- Verify nothing breaks in different game states
-
Format Your Code
-
Commit Your Changes
Write clear, descriptive commit messages:
-
Push to Your Fork
Pull Request Process
-
Create a Pull Request
- Go to your fork on GitHub
- Click “New Pull Request”
- Select your branch
- Write a clear description of your changes
-
PR Description Template
-
Code Review
- Be responsive to feedback
- Make requested changes promptly
- Discuss concerns constructively
- Merge Once approved, a maintainer will merge your PR. Congratulations!
Coding Best Practices
- Backwards Compatibility: Don’t break existing functionality or keybindings
- Performance: Avoid expensive operations in tight loops (especially in card rendering)
- Error Handling: Gracefully handle edge cases
- Comments: Explain why, not just what
- Modularity: Keep functions focused and reusable
- Testing: Test edge cases, not just the happy path
Getting Help
Join the Community
- Discord: Join the Balatro Discord and find Typist’s thread
- GitHub Discussions: Ask questions on GitHub
- Code Review: Don’t hesitate to ask for feedback on your approach before implementing
Learning Resources
- Balatro Modding: Study other Balatro mods for examples
- Lovely Injector: Read the Lovely documentation
- Lua Reference: Lua 5.1 Reference Manual (Balatro uses Lua 5.1)
- LÖVE Framework: LÖVE wiki (Balatro is built on LÖVE)
License
Typist is licensed under GNU General Public License v3.0.
- The project remains free and open-source
- Derivatives must also be open-source
- Users have the freedom to use, modify, and distribute the code
Recognition
Contributors are acknowledged in:- The GitHub contributors list
- The project README (for significant contributions)
- Commit history (your commits remain attributed to you)
Questions?
If anything in this guide is unclear or you have questions about contributing, feel free to:- Ask in the Discord thread
- Open a GitHub Discussion
- Comment on a related issue