├── .gitignore ├── balatro-mobile-maker-beta-0.8.3-win-x64.exe ├── SteamdeckCleanup.sh ├── BalatroFolderCleanup.bat ├── SteamdeckSetup.sh ├── BalatroFolderSetup.bat └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /balatro-mobile-maker/obj 2 | /balatro-mobile-maker/bin 3 | /balatro-mobile-maker/publish 4 | /.vs 5 | -------------------------------------------------------------------------------- /balatro-mobile-maker-beta-0.8.3-win-x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mckellar11/Modded-Balatro-Android/HEAD/balatro-mobile-maker-beta-0.8.3-win-x64.exe -------------------------------------------------------------------------------- /SteamdeckCleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the current user's directory 4 | USERPROFILE="$HOME" 5 | BALATRO_DIR="$USERPROFILE/.steam/steam/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser/AppData/Roaming/Balatro" 6 | NATIVEFS_DIR="$BALATRO_DIR/nativefs" 7 | SMODS_DIR="$BALATRO_DIR/SMODS" 8 | LOVELY_FILE="$BALATRO_DIR/lovely.lua" 9 | FP_JSON="$BALATRO_DIR/FP_json.lua" 10 | FP_NATIVEFS="$BALATRO_DIR/FP_nativefs.lua" 11 | FUNCTIONS_DIR="$BALATRO_DIR/functions" 12 | ENGINE_DIR="$BALATRO_DIR/engine" 13 | 14 | # Delete folders and contents 15 | rm -rf "$NATIVEFS_DIR" 2>/dev/null 16 | rm -rf "$SMODS_DIR" 2>/dev/null 17 | rm -rf "$FUNCTIONS_DIR" 2>/dev/null 18 | rm -rf "$ENGINE_DIR" 2>/dev/null 19 | rm -rf "$BALATRO_DIR/pokermon" 2>/dev/null 20 | rm -rf "$BALATRO_DIR/cartomancer" 2>/dev/null 21 | rm -rf "$BALATRO_DIR/systemclock" 2>/dev/null 22 | 23 | # Delete files 24 | rm -f "$LOVELY_FILE" 2>/dev/null 25 | rm -f "$FP_JSON" 2>/dev/null 26 | rm -f "$FP_NATIVEFS" 2>/dev/null 27 | 28 | # Delete all .txt and .lua files in Balatro directory 29 | rm -f "$BALATRO_DIR"/*.txt 2>/dev/null 30 | rm -f "$BALATRO_DIR"/*.lua 2>/dev/null 31 | 32 | echo "Cleanup complete." 33 | exit 0 34 | -------------------------------------------------------------------------------- /BalatroFolderCleanup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | 4 | :: Get the current user's directory 5 | set USERPROFILE=%USERPROFILE% 6 | set BALATRO_DIR=%USERPROFILE%\AppData\Roaming\Balatro 7 | set NATIVEFS_DIR=%BALATRO_DIR%\nativefs 8 | set SMODS_DIR=%BALATRO_DIR%\SMODS 9 | set LOVELY_FILE=%BALATRO_DIR%\lovely.lua 10 | set FP_JSON=%BALATRO_DIR%\FP_json.lua 11 | set FP_NATIVEFS=%BALATRO_DIR%\FP_nativefs.lua 12 | set FUNCTIONS_DIR=%BALATRO_DIR%\functions 13 | set ENGINE_DIR=%BALATRO_DIR%\engine 14 | 15 | :: Delete folders and contents 16 | if exist "%NATIVEFS_DIR%" rd /s /q "%NATIVEFS_DIR%" 2>nul 17 | if exist "%SMODS_DIR%" rd /s /q "%SMODS_DIR%" 2>nul 18 | if exist "%FUNCTIONS_DIR%" rd /s /q "%FUNCTIONS_DIR%" 2>nul 19 | if exist "%ENGINE_DIR%" rd /s /q "%ENGINE_DIR%" 2>nul 20 | if exist "%BALATRO_DIR%\pokermon" rd /s /q "%BALATRO_DIR%\pokermon" 2>nul 21 | if exist "%BALATRO_DIR%\systemclock" rd /s /q "%BALATRO_DIR%\systemclock" 2>nul 22 | if exist "%BALATRO_DIR%\cartomancer" rd /s /q "%BALATRO_DIR%\cartomancer" 2>nul 23 | 24 | :: Delete files 25 | del /f /q "%LOVELY_FILE%" 2>nul 26 | if exist "%FP_JSON%" del /f /q "%FP_JSON%" 27 | if exist "%FP_NATIVEFS%" del /f /q "%FP_NATIVEFS%" 28 | 29 | :: Delete all .txt and .lua files 30 | del /f /q "%BALATRO_DIR%\*.txt" 2>nul 31 | del /f /q "%BALATRO_DIR%\*.lua" 2>nul 32 | 33 | echo Cleanup complete. 34 | endlocal 35 | exit /b 36 | -------------------------------------------------------------------------------- /SteamdeckSetup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Define paths 4 | USERPROFILE="/home/deck/.steam/steam/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser" 5 | BALATRO_DIR="$USERPROFILE/AppData/Roaming/Balatro" 6 | MODS_DIR="$BALATRO_DIR/Mods" 7 | NATIVEFS_DIR="$BALATRO_DIR/nativefs" 8 | SMODS_DIR="$BALATRO_DIR/SMODS" 9 | LOVELY_FILE="$BALATRO_DIR/lovely.lua" 10 | 11 | # Find the Steam mod directory (folder containing "smods") 12 | for D in "$MODS_DIR"/*; do 13 | if [[ "$(basename "$D")" =~ smods|steamodded ]]; then 14 | STEAMMOD_DIR="$D" 15 | break 16 | fi 17 | done 18 | 19 | # Create necessary folders 20 | mkdir -p "$NATIVEFS_DIR" "$SMODS_DIR" 21 | 22 | # Create lovely.lua file 23 | cat < "$LOVELY_FILE" 24 | return { 25 | repo = "https://github.com/ethangreen-dev/lovely-injector", 26 | version = "0.7.1", 27 | mod_dir = "/data/data/com.unofficial.balatro/files/save/game/Mods", 28 | } 29 | EOL 30 | 31 | # Find and handle Flower Pot mod 32 | temp="" 33 | for D in "$MODS_DIR"/*; do 34 | if [[ "$(basename "$D" | tr '[:upper:]' '[:lower:]')" =~ flower.*pot|pot.*flower ]]; then 35 | FP_DIR="$D" 36 | temp="$D/libs" 37 | break 38 | fi 39 | done 40 | 41 | if [[ -n "$FP_DIR" ]]; then 42 | if [[ -f "$temp/json.lua" ]]; then 43 | cp -f "$temp/json.lua" "$BALATRO_DIR/FP_json.lua" 44 | fi 45 | if [[ -f "$temp/nativefs.lua" ]]; then 46 | cp -f "$temp/nativefs.lua" "$BALATRO_DIR/FP_nativefs.lua" 47 | fi 48 | fi 49 | 50 | # Find and handle Pokermon mod 51 | for D in "$MODS_DIR"/*; do 52 | if [[ "$(basename "$D" | tr '[:upper:]' '[:lower:]')" =~ pokermon ]]; then 53 | POKERMON_DIR="$D" 54 | break 55 | fi 56 | done 57 | 58 | 59 | if [[ -n "$POKERMON_DIR" ]]; then 60 | mkdir -p "$BALATRO_DIR/pokermon" 61 | [[ -f "$POKERMON_DIR/setup.lua" ]] && cp -f "$POKERMON_DIR/setup.lua" "$BALATRO_DIR/pokermon/setup.lua" 62 | fi 63 | 64 | # Find and handle Cartomancer mod 65 | for D in "$MODS_DIR"/*; do 66 | if [[ "$(basename "$D" | tr '[:upper:]' '[:lower:]')" =~ cartomancer ]]; then 67 | CARTOMANCER_DIR="$D" 68 | break 69 | fi 70 | done 71 | 72 | if [[ -n "$CARTOMANCER_DIR" ]]; then 73 | mkdir -p "$BALATRO_DIR/cartomancer" 74 | [[ -f "$CARTOMANCER_DIR/cartomancer.lua" ]] && cp -f "$CARTOMANCER_DIR/cartomancer.lua" "$BALATRO_DIR/cartomancer/cartomancer.lua" 75 | [[ -f "$CARTOMANCER_DIR/libs/nativefs.lua" ]] && cp -f "$CARTOMANCER_DIR/libs/nativefs.lua" "$BALATRO_DIR/cartomancer/nfs.lua" 76 | [[ -f "$CARTOMANCER_DIR/internal/init.lua" ]] && cp -f "$CARTOMANCER_DIR/internal/init.lua" "$BALATRO_DIR/cartomancer/init.lua" 77 | fi 78 | 79 | # Find and handle SystemClock mod 80 | for D in "$MODS_DIR"/*; do 81 | if [[ "$(basename "$D")" =~ SystemClock ]]; then 82 | SYSTEMCLOCK_DIR="$D" 83 | break 84 | fi 85 | done 86 | 87 | if [[ -n "$SYSTEMCLOCK_DIR" ]]; then 88 | mkdir -p "$BALATRO_DIR/systemclock" 89 | for file in draggable_container utilities config config_ui clock_ui locale logger core; do 90 | src_file="$SYSTEMCLOCK_DIR/src/$file.lua" 91 | dest_file="$BALATRO_DIR/systemclock/$file.lua" 92 | 93 | # Special case for draggable_container: remove the underscore in the filename 94 | if [[ "$file" == "draggable_container" ]]; then 95 | dest_file="$BALATRO_DIR/systemclock/${file//_/}.lua" # Removes underscores, keeps .lua extension 96 | fi 97 | 98 | [[ -f "$src_file" ]] && cp -f "$src_file" "$dest_file" 99 | done 100 | fi 101 | 102 | # Copy files from Talisman mod 103 | cp -f "$MODS_DIR/Talisman/nativefs.lua" "$NATIVEFS_DIR/" 2>/dev/null 104 | 105 | # Copy json.lua and nativefs.lua from mods with libs folder 106 | for D in "$MODS_DIR"/*; do 107 | [[ -f "$D/libs/json/json.lua" ]] && cp -f "$D/libs/json/json.lua" "$BALATRO_DIR/json.lua" 108 | [[ -f "$D/libs/nativefs/nativefs.lua" ]] && cp -f "$D/libs/nativefs/nativefs.lua" "$BALATRO_DIR/nativefs.lua" 109 | done 110 | 111 | # Copy files from the Steammod directory 112 | [[ -n "$STEAMMOD_DIR" && -f "$STEAMMOD_DIR/version.lua" ]] && cp -f "$STEAMMOD_DIR/version.lua" "$SMODS_DIR/" 113 | 114 | # Copy lovely dump folder 115 | cp -r "$MODS_DIR/lovely/dump/"* "$BALATRO_DIR/" 2>/dev/null 116 | 117 | echo "Done." 118 | exit 0 119 | -------------------------------------------------------------------------------- /BalatroFolderSetup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enabledelayedexpansion 3 | 4 | :: Get the current user's name and define paths 5 | set USERPROFILE=%USERPROFILE% 6 | set BALATRO_DIR=%USERPROFILE%\AppData\Roaming\Balatro 7 | set MODS_DIR=%BALATRO_DIR%\Mods 8 | set NATIVEFS_DIR=%BALATRO_DIR%\nativefs 9 | set SMODS_DIR=%BALATRO_DIR%\SMODS 10 | set LOVELY_FILE=%BALATRO_DIR%\lovely.lua 11 | 12 | :: Find the folder containing "smods" or "steamodded" 13 | for /d %%D in ("%MODS_DIR%\*") do ( 14 | echo %%~nxD | findstr /i "smods steamodded" >nul && set STEAMMOD_DIR=%%D 15 | ) 16 | :: Create necessary folders 17 | mkdir "%NATIVEFS_DIR%" 2>nul 18 | mkdir "%SMODS_DIR%" 2>nul 19 | 20 | :: Create lovely.lua file 21 | echo return { > "%LOVELY_FILE%" 22 | echo repo = "https://github.com/ethangreen-dev/lovely-injector", >> "%LOVELY_FILE%" 23 | echo version = "0.7.1", >> "%LOVELY_FILE%" 24 | echo mod_dir = "/data/data/com.unofficial.balatro/files/save/game/Mods", >> "%LOVELY_FILE%" 25 | echo } >> "%LOVELY_FILE%" 26 | 27 | :: Check for Flower Pot mod (matches "flower pot", "flower-pot", "flower_pot", etc.) 28 | for /d %%D in ("%MODS_DIR%\*") do ( 29 | echo %%~nxD | findstr /i "flower.*pot" >nul && set FP_DIR=%%D 30 | ) 31 | :: If Flower Pot mod is found, and copy required files and rename 32 | if defined FP_DIR ( 33 | set FP_LIBS=!FP_DIR!\libs 34 | if exist "!FP_LIBS!\json.lua" ( 35 | copy /Y "!FP_LIBS!\json.lua" "%BALATRO_DIR%\FP_json.lua" 36 | ) 37 | if exist "!FP_LIBS!\nativefs.lua" ( 38 | copy /Y "!FP_LIBS!\nativefs.lua" "%BALATRO_DIR%\FP_nativefs.lua" 39 | ) 40 | ) 41 | :: Check for Pokermon mod 42 | for /d %%D in ("%MODS_DIR%\*") do ( 43 | echo %%~nxD | findstr /i "pokermon" >nul && set POKERMON_DIR=%%D 44 | ) 45 | :: If Pokermon mod is found, copy setup.lua to BALATRO_DIR\pokermon 46 | if defined POKERMON_DIR ( 47 | mkdir "%BALATRO_DIR%\pokermon" 2>nul 48 | if exist "%POKERMON_DIR%\setup.lua" ( 49 | copy /Y "%POKERMON_DIR%\setup.lua" "%BALATRO_DIR%\pokermon\setup.lua" 50 | ) 51 | ) 52 | :: Check for Cartomancer mod 53 | for /d %%D in ("%MODS_DIR%\*") do ( 54 | echo %%~nxD | findstr /i "cartomancer" >nul && set CARTOMANCER_DIR=%%D 55 | ) 56 | :: If Cartomancer mod is found, create the cartomancer folder and copy required files 57 | if defined CARTOMANCER_DIR ( 58 | mkdir "%BALATRO_DIR%\cartomancer" 2>nul 59 | if exist "%CARTOMANCER_DIR%\cartomancer.lua" ( 60 | copy /Y "%CARTOMANCER_DIR%\cartomancer.lua" "%BALATRO_DIR%\cartomancer\cartomancer.lua" 61 | ) 62 | if exist "%CARTOMANCER_DIR%\libs\nativefs.lua" ( 63 | copy /Y "%CARTOMANCER_DIR%\libs\nativefs.lua" "%BALATRO_DIR%\cartomancer\nfs.lua" 64 | ) 65 | if exist "%CARTOMANCER_DIR%\internal\init.lua" ( 66 | copy /Y "%CARTOMANCER_DIR%\internal\init.lua" "%BALATRO_DIR%\cartomancer\init.lua" 67 | ) 68 | ) 69 | :: Search for the folder containing "SystemClock" (with possible variations) 70 | for /d %%D in ("%MODS_DIR%\*") do ( 71 | echo %%~nxD | findstr /i "SystemClock" >nul && set SYSTEMCLOCK_DIR=%%D 72 | ) 73 | :: If the folder is found, create the systemclock folder and copy files based on the patches 74 | if defined SYSTEMCLOCK_DIR ( 75 | mkdir "%BALATRO_DIR%\systemclock" 2>nul 76 | 77 | :: Draggable Container 78 | if exist "%SYSTEMCLOCK_DIR%\src\draggable_container.lua" ( 79 | copy /Y "%SYSTEMCLOCK_DIR%\src\draggable_container.lua" "%BALATRO_DIR%\systemclock\draggablecontainer.lua" >nul 2>&1 80 | ) 81 | :: Utilities 82 | if exist "%SYSTEMCLOCK_DIR%\src\utilities.lua" ( 83 | copy /Y "%SYSTEMCLOCK_DIR%\src\utilities.lua" "%BALATRO_DIR%\systemclock\utilities.lua" >nul 2>&1 84 | ) 85 | :: Config 86 | if exist "%SYSTEMCLOCK_DIR%\src\config.lua" ( 87 | copy /Y "%SYSTEMCLOCK_DIR%\src\config.lua" "%BALATRO_DIR%\systemclock\config.lua" >nul 2>&1 88 | ) 89 | :: Config UI 90 | if exist "%SYSTEMCLOCK_DIR%\src\config_ui.lua" ( 91 | copy /Y "%SYSTEMCLOCK_DIR%\src\config_ui.lua" "%BALATRO_DIR%\systemclock\config_ui.lua" >nul 2>&1 92 | ) 93 | :: Clock UI 94 | if exist "%SYSTEMCLOCK_DIR%\src\clock_ui.lua" ( 95 | copy /Y "%SYSTEMCLOCK_DIR%\src\clock_ui.lua" "%BALATRO_DIR%\systemclock\clock_ui.lua" >nul 2>&1 96 | ) 97 | :: Locale 98 | if exist "%SYSTEMCLOCK_DIR%\src\locale.lua" ( 99 | copy /Y "%SYSTEMCLOCK_DIR%\src\locale.lua" "%BALATRO_DIR%\systemclock\locale.lua" >nul 2>&1 100 | ) 101 | :: Logger 102 | if exist "%SYSTEMCLOCK_DIR%\src\logger.lua" ( 103 | copy /Y "%SYSTEMCLOCK_DIR%\src\logger.lua" "%BALATRO_DIR%\systemclock\logger.lua" >nul 2>&1 104 | ) 105 | :: Core 106 | if exist "%SYSTEMCLOCK_DIR%\src\core.lua" ( 107 | copy /Y "%SYSTEMCLOCK_DIR%\src\core.lua" "%BALATRO_DIR%\systemclock\core.lua" >nul 2>&1 108 | ) 109 | ) 110 | :: Copy files from Talisman mod 111 | copy /Y "%USERPROFILE%\AppData\Roaming\Balatro\Mods\Talisman\nativefs.lua" "%NATIVEFS_DIR%" >nul 2>&1 112 | 113 | :: Copy json.lua and nativefs.lua from mods with libs folder 114 | for /d %%D in ("%MODS_DIR%\*") do ( 115 | if exist "%%D\libs\json\json.lua" ( 116 | copy /Y "%%D\libs\json\json.lua" "%BALATRO_DIR%\json.lua" >nul 2>&1 117 | ) 118 | if exist "%%D\libs\nativefs\nativefs.lua" ( 119 | copy /Y "%%D\libs\nativefs\nativefs.lua" "%BALATRO_DIR%\nativefs.lua" >nul 2>&1 120 | ) 121 | ) 122 | :: Copy files from the Steammod directory 123 | if defined STEAMMOD_DIR ( 124 | copy /Y "%STEAMMOD_DIR%\version.lua" "%SMODS_DIR%" >nul 2>&1 125 | copy /Y "%STEAMMOD_DIR%\release.lua" "%SMODS_DIR%" >nul 2>&1 126 | ) 127 | 128 | xcopy /E /Y "%MODS_DIR%\lovely\dump\*" "%BALATRO_DIR%" >nul 2>&1 129 | echo Done. 130 | endlocal 131 | exit /b 132 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This repo is depreciated. I recommend the new method as I will not be updating this.>>>A newer method for creating a modded android experience has arrived! https://lmm.shorty.systems/ you simply direct your balatro.exe and it will create the apk with lovely installed. you then follow the instructions on the website on where to load mods 2 | 3 | 4 | 5 | 6 | 7 | 8 | # Balatro Mobile-EM-Edition (my initials) 9 | Fork of the original project by Blake502 10 | Only forked because its easier for people to find. I did not change the mobile maker, I merely created a write up for what to do AFTER making the amk 11 | after turning your STEAM copy into an android copy, these are added files to make everything easier because the wall of text in the github issues section is going to get someone lost. 12 | 13 | The goal of this project is simplify the installation of the modded *Balatro* apk on their mobile devices and transfer their mods in the correct format. 14 | Mods are not _officially_ supported, [but with my guide they are as easy to install as they are on PC](https://github.com/blake502/balatro-mobile-maker/issues/147#issuecomment-2652346316) 15 | 16 | **this link goes to my text writeup if you don't feel comfortable running my batch scripts^^** 17 | The write up moves the files, the scripts copy/delete so the original are in tact. I may edit this guide to just copy solely 18 | 19 | ## How to Start 20 | From my write up at https://github.com/blake502/balatro-mobile-maker/issues/147#issuecomment-2652346316 21 | Run the game with mods on PC. Get to the splash screen and ALT+F4 the game, as long as it loads up with the mods to the title you're good. 22 | Run balatro-mobile-maker with your phone plugged in. create the apk using your preferences from the terminal. (dont worry about external storage patch) 23 | 24 | - Download [**balatro-mobile-maker**](https://github.com/blake502/balatro-mobile-maker/releases). 25 | - Leave it in downloads. (For real it doesn't matter. It assumes Balatro is installed at C:\Program Files (x86)\Steam\steamapps\common\Balatro) 26 | - Run **balatro-mobile-maker** from downloads folder 27 | ``` 28 | Would you like to automatically clean up once complete? (y/n): 29 | y 30 | Would you like to enable extra logging information? (y/n): 31 | n 32 | Would you like to build for Android? (y/n): 33 | y 34 | Would you like to build for iOS (experimental)? (y/n): 35 | n 36 | ``` 37 | - Follow the prompts to apply optional patches. If you're unsure, always select "Y". My configurations are below the optional patch section 38 | 39 | ## Optional Patches 40 | - **FPS Cap** — Caps FPS to a desired number (set 60 or leave blank for your device's refresh rate) 41 | - **Landscape Orientation** — Locks the game to landscape orientation (You're gonna almost certainly need this) 42 | - **High DPI** — Enables [High DPI graphics mode in Love](https://love2d.org/wiki/love.window.setMode) (According to this link it is always enabled on android with Love so it doesn't matter) 43 | - **CRT Shader Disable** — Disables the CRT Shader (REQUIRED for Pixel) 44 | ``` 45 | Would you like to apply the FPS cap patch? (y/n): 46 | y 47 | Please enter your desired FPS cap (or leave blank to set to device refresh rate): 48 | 49 | Would you like to apply the landscape orientation patch (required for high DPI)? (y/n): 50 | y 51 | Would you like to apply the high DPI patch (recommended for devices with high resolution)? (y/n): 52 | y 53 | Would you like to apply the CRT shader disable patch? (Required for Pixel and some other devices!) (y/n): 54 | y 55 | ``` 56 | # INSTALLING (it will install all tools required) 57 | ``` 58 | Would you like to automaticaly install balatro.apk on your Android device? (y/n): 59 | y 60 | Is your Android device connected to the host with USB Debugging enabled? (y/n): 61 | y 62 | Attempting to install. If prompted, please allow the USB Debugging connection on your Android device. 63 | Would you like to transfer saves from your Steam copy of Balatro to your Android device? (y/n): 64 | 65 | 66 | I WOULD RECOMMEND HITTING 'N' or PAUSING HERE 67 | ``` 68 | ### For Android: 69 | The progrram will spit out a 'balatro.apk' into your downloads folder to which it will not delete if you choose to cleanup the files further into the mobile maker. 70 | 71 | - if your mod folder is still in the "pc configuration" meaning you can run it on pc anytime you like without having to move/delete anything (no previous mobile maker formatting) then you should pause at the steam transfer stage and run the mobile makers save functions after the next few steps 72 | 73 | ## GETTING MODS IN ORDER 74 | 75 | (I have created TWO batch scripts to do EXACTLY these steps and have verified on my own PERSONAL main pc. I recommend using them but here is the process) 76 | 77 | - Open file explorer, navigate to `C:\Users\[YOURNAME]\AppData\Roaming\Balatro\Mods\lovely\dump` 78 | 79 | - `CTRL+A` and then `CTRL+C` on the entire contents of the `\dump\` folder mentioned. 80 | 81 | - go back to `C:\Users\[YOURNAME]\AppData\Roaming\Balatro\ ` `CTRL+V` all the files into that folder alongside/WITH the Mods folder not IN. 82 | - The files `nativefs.lua` from `C:\Users\[YOURNAME]\AppData\Roaming\Balatro\Mods\smods\libs\nativefs` and `json.lua` from `C:\Users\YOURNAME\AppData\Roaming\Balatro\Mods\smods\libs\json` copy them to `C:\Users\[YOURNAME]\AppData\Roaming\Balatro` 83 | - Create a file in the same Balatro folder called "lovely.lua" and paste this : 84 | 85 | ``` 86 | return { 87 | repo = "https://github.com/ethangreen-dev/lovely-injector", 88 | version = "0.7.1", 89 | mod_dir = "/data/data/com.unofficial.balatro/files/save/game/Mods", 90 | } 91 | ``` 92 | 93 | I just changed the version to the latest and directed it to this folder which worked for me^^ 94 | - `ctrl+C` the file `version.lua` from your `C:\Users\YOURNAME\AppData\Roaming\Balatro\Mods\smods` then the go to `C:\Users\YOURNAME\AppData\Roaming\Balatro` creating a few folder called `SMODS` all caps and paste the file into that SMODS folder. 95 | 96 | - Make sure you remember the [balatro mobile compat mod](https://github.com/eeve-lyn/BalatroMobileCompat) 97 | 98 | IF YOU DON'T USE TALISMAN SKIP TO THE NEXT STEP AFTER THIS \/ 99 | 100 | - if you have any mods that use talisman then you need to create a folder under `C:\Users\YOURNAME\AppData\Roaming\Balatro\` called `nativefs` and `CTRL+C` the nativefs.lua from `C:\Users\Ethan\AppData\Roaming\Balatro\Mods\Talisman` into the new `C:\Users\YOURNAME\AppData\Roaming\Balatro\nativefs` folder. 101 | 102 | *At this point, all of the files are in the correct location on PC. YOU SHOULD NOW BE READY TO TRANSFER YOUR SAVES FROM THE TERMINAL OF MOBILE MAKER.* 103 | 104 | # This code could most likely be improved, which is what I am slowly trying to do 105 | but if anyone wants to submit any PR's and you have more coding experience to make what i've done simpler, less parses, better regex then PLEASE let me know! or if you want to help create a mac version, or generic linux please dm me or again, submit a PR 106 | 107 | 108 | 109 | ## Recogition (in no particular order) 110 | - Aurelius7309 for [their initial writeup](https://github.com/blake502/balatro-mobile-maker/issues/137#issue-2773913522) (mine had different mod locations on android so that messed me up) 111 | - Eeve-lyn for their [Mobile-compat mod](https://github.com/eeve-lyn/BalatroMobileCompat) (this applies all patches made by the mobile maker to the game, loaded from the mod folder since the mods create overrides) 112 | - ChromaPIE for their input on the [Lovely dumps](https://github.com/blake502/balatro-mobile-maker/issues/83#issuecomment-2132778187) 113 | - DaemonFerns for their [Betmma Mobile Patch](https://github.com/blake502/balatro-mobile-maker/issues/137#issuecomment-2651800303) and various other support 114 | - [Every contributor](https://github.com/blake502/balatro-mobile-maker/) 115 | - Developers of [uber-apk-signer](https://github.com/patrickfav/uber-apk-signer) 116 | - Anyone else I bothered and missed mentioning in the github issue thread #137 or discord 117 | - MOTHER FUCKIN CHATGPT holy shit I can't tell you how clutch this thing came for debugging crashes and suggesting file changes. 118 | 119 | 120 | 121 | ## Notes 122 | - This script assumes that **Balatro.exe** or **Game.love** is located in the default *Steam* directory. ~If it is not, simply copy your **Balatro.exe** or **Game.love** to the same folder as **balatro-mobile-maker**~ please don't do this lol just let it run from assumed locations 123 | - This script will automatically download [7-Zip](https://www.7-zip.org/) 124 | ### For Android: 125 | - This script will automatically download [OpenJDK](https://www.microsoft.com/openjdk) 126 | - This script will automatically download [APK Tool](https://apktool.org/) 127 | - This script will automatically download [uber-apk-signer](https://github.com/patrickfav/uber-apk-signer/) 128 | - This script will automatically download [love-11.5-android-embed.apk](https://github.com/love2d/love-android/) 129 | - This script will automatically download [Balatro-APK-Patch](https://github.com/blake502/balatro-mobile-maker/releases/tag/Additional-Tools-1.0) 130 | - This script can automatically download [Android Developer Bridge](https://developer.android.com/tools/adb) (optional) 131 | ## License 132 | - [7-Zip](https://github.com/ip7z/7zip/blob/main/DOC/License.txt) is licensed under the GNU LGPL license. 133 | - This project uses [APKTool](https://github.com/iBotPeaches/Apktool/blob/master/LICENSE.md) 134 | - This project uses [uber-apk-signer](https://github.com/patrickfav/uber-apk-signer/blob/main/LICENSE) 135 | - This project uses [LÖVE](https://github.com/love2d/love/blob/main/license.txt) 136 | - This project uses [OpenJDK](https://www.microsoft.com/openjdk) 137 | --------------------------------------------------------------------------------