im on linux, so this MIGHT not apply to everyone. but if youre having issues getting this to load then try the following:
first line of the header in the lua script seems to be corrupted. remove all the weird symbols (i had to open it in vim to even get it displaying!) and change it to --- STEAMODDED HEADER
then, for me most textures were invalid PNGs as well, so i removed everything but the 1x card sprites.
i also removed the second bit where it loads the balatro main sprite from the lua file, local sprite_logo = SMODS.Atlas{ key = "balatro", path = "balatrotherock.png", px = 333, py = 216, prefix_config = { key = false } }:register() just in case it would break trying to load a file thats not there./
i also put the 1x card textures in the 2x folder but this doesnt seem to load the cards. so i had to turn off pixel art smoothing to get the 1x textures.
i hope these issues can get fixed soon, and that in the meantime my comment is helpful :3
Hey, I think your mod's broke again. Says it attempted to index a nil value.
INFO - [G] 2025-01-16 01:13:28 :: ERROR :: StackTrace :: Oops! The game crashed [SMODS BalatroTheRock "BalatroTheRock.lua"]:19: attempt to index a nil value Stack Traceback =============== (1) Lua local 'handler' at file 'main.lua:756' Local variables: msg = string: "[SMODS BalatroTheRock \"BalatroTheRock.lua\"]:19: attempt to index a nil value" (*temporary) = Lua function '?' (defined at line 31 of chunk [SMODS _ "src/logging.lua"]) (*temporary) = string: "Oops! The game crashed\ " (2) LÖVE metamethod at file 'boot.lua:352' Local variables: errhand = Lua function '?' (defined at line 742 of chunk main.lua) handler = Lua function '?' (defined at line 742 of chunk main.lua) (3) main chunk of file 'BalatroTheRock.lua' at line 19 (from mod with id BalatroTheRock) (4) Lua global 'loadMods' at Steamodded file 'src/loader.lua:570' Local variables: modsDirectory = string: "C:\\Users\\canno\\AppData\\Roaming\\Balatro\\Mods" header_components = table: 0x1be213c8 {version:table: 0x1be21b18, id:table: 0x1be215d8, conflicts:table: 0x1be21a08 (more...)} json_spec = table: 0x1be21cd0 {provides:table: 0x1be22550, __:table: 0x1be224d0, version:table: 0x1be22290 (more...)} used_prefixes = table: 0x1be225d0 {aurinko:aurinko, casl:CardSleeves, ZZB:BalaZZZ, csau:Cardsauce, cruel:CBL (more...)} lovely_directories = table: 0x1be225f8 {1:C:\Users\canno\AppData\Roaming\Balatro\Mods/BlindEditions/, 2:C:\Users\canno\AppData\Roaming\Balatro\Mods/CardSleeves/ (more...)} processDirectory = Lua function '?' (defined at line 184 of chunk [SMODS _ "src/loader.lua"]) keyset = table: 0x1bdb2730 {1:-9999999999, 2:-10000, 3:-100, 4:-1, 5:0, 6:69, 7:10000, 8:1e+15, 9:1e+299 (more...)} check_dependencies = Lua function '?' (defined at line 418 of chunk [SMODS _ "src/loader.lua"]) (for generator) = C function: builtin#6 (for state) = table: 0x1bdb2730 {1:-9999999999, 2:-10000, 3:-100, 4:-1, 5:0, 6:69, 7:10000, 8:1e+15, 9:1e+299 (more...)} (for control) = number: 5 _ = number: 5 priority = number: 0 (for generator) = C function: builtin#6 (for state) = table: 0x1be26828 {1:table: 0x1ba3fe18, 2:table: 0x1bc71718, 3:table: 0x1be489a8, 4:table: 0x1b84d1a0 (more...)} (for control) = number: 3 _ = number: 3 mod = table: 0x1be489a8 {version:0.0.0, id:BalatroTheRock, main_file:BalatroTheRock.lua, can_load:true (more...)} (5) Lua global 'initSteamodded' at Steamodded file 'src/loader.lua:652' (6) Lua upvalue 'su' at file 'game.lua:316' Local variables: self = table: 0x1b76e9f0 {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, F_ENGLISH_ONLY:false (more...)} settings = string: "return {[\"version\"]=\"1.0.1n-FULL\",[\"greenneedlebugrecheck\"]=true,[\"paused\"]=false,[\"QUEUED_CHANGE\"]={},[\"COMP\"]={[\"score\"]=150321000,[\"name\"]=\"\",[\"prev_name\"]=\"\",},[\"colourblind_option\"]=false,[\"play_button_pos\"]=2,[\"CUSTOM_DECK\"]={[\"Collabs\"]={[\"Spades\"]=\"collab_TW\",[\"Hearts\"]=\"collab_TBoI\",[\"Diamonds\"]=\"csau_ds_d_collab_XR_FS\",[\"Clubs\"]=\"csau_ds_c_collab_WF_vineshroom\",},},[\"STATUSTEXT\"]=0,[\"language\"]=\"en-us\",[\"ambient_control\"]={[\"ambientFire1\"]={[\"per\"]=1.1,[\"vol\"]=0,},[\"ambientOrgan1\"]={[\"per\"]=0.7,[\"vol\"]=2.1234697897806e-08,},[\"ambientFire2\"]={[\"per\"]=1.05,[\"vol\"]=3.6075266819522e-06,},[\"ambientFire3\"]={[\"per\"]=1,[\"vol\"]=2.219854396741e-07,},[\"jen_ambientSurreal3\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientDramatic\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientSurreal2\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientSurreal1\"]={[\"per\"]=1,[\"vol\"]=0,},},[\"run_stake_stickers\"]=true,[\"crashreports\"]=true,[\"screenshake\"]=50,[\"CS_COLOR2\"]={[4]=1,[1]=0.53333333333333,[2]=0.40392156862745,[3]=0.64705882352941,},[\"current_setup\"]=\"New Run\",[\"music_selection\"]=\"cardsauce\",[\"WINDOW\"]={[\"selected_display\"]=1,[\"display_names\"]={[1]=\"1\",},[\"screenmode\"]=\"Borderless\",[\"DISPLAYS\"]={[1]={[\"screen_resolutions\"]={[\"strings\"]={[1]=\"1920 X 1080\",},[\"values\"]={[1]={[\"w\"]=1920,[\"h\"]=1080,},},},[\"screen_res\"]={[\"w\"]=1920,[\"h\"]=1080,},[\"DPI_scale\"]=1,[\"MONITOR_DIMS\"]={[\"height\"]=1080,[\"width\"]=1920,},},},[\"vsync\"]=1,},[\"profile\"]=1,[\"csau_color_selection\"]=\"default_csau\",[\"SOUND\"]={[\"volume\"]=50,[\"music_volume\"]=100,[\"game_sounds_volume\"]=100,},[\"music_control\"]={[\"current_track\"]=\"\",[\"desired_track\"]=\"\",[\"lerp\"]=1,},[\"ACHIEVEMENTS_EARNED\"]={[\"ach_csau_discover_supper\"]=true,[\"card_discarder\"]=true,[\"_10k\"]=true,[\"roi\"]=true,[\"ach_csau_discover_speen\"]=true,[\"ach_csau_discover_chad\"]=true,[\"ach_csau_discover_al\"]=true,[\"ach_csau_discover_gnorts\"]=true,[\"ach_csau_discover_kerosene\"]=true,[\"ach_csau_discover_new\"]=true,[\"ach_csau_discover_bsf\"]=true,[\"ach_csau_activate_quixotic\"]=true,[\"big_hands\"]=true,[\"ach_csau_win_vine\"]=true,[\"ach_csau_discover_pivot\"]=true,[\"ante_up\"]=true,[\"ach_csau_discover_reyn\"]=true,[\"ach_csau_discover_pep\"]=true,[\"ach_csau_discover_watto\"]=true,[\"ach_csau_defeat_hog\"]=true,[\"ach_csau_discover_cousinsclub\"]=true,[\"ach_csau_chadley_power\"]=true,[\"retrograde\"]=true,[\"heads_up\"]=true,[\"ach_csau_discover_shrimp\"]=true,[\"ach_csau_discover_disguy\"]=true,[\"legendary\"]=true,[\"ach_csau_discover_diaper\"]=true,[\"royale\"]=true,[\"ach_csau_discover_werewolves\"]=true,[\"ach_csau_discover_blast\"]=true,[\"ach_csau_discover_odio\"]=true,[\"_1000k\"]=true,[\"ach_csau_discover_claus\"]=true,[\"ante_upper\"]=true,[\"ach_csau_skin_vineshroom\"]=true,[\"ach_csau_discover_grand\"]=true,[\"ach_csau_discover_crack\"]=true,[\"ach_csau_discover_fantabulous\"]=true,[\"ach_csau_skin_characters\"]=true,[\"ach_csau_fuckingkill_jimbo\"]=true,[\"cartomancy\"]=true,[\"ach_csau_high_one\"]=true,[\"_100000k\"]=true,[\"ach_csau_discover_quarterdumb\"]=true,[\"ach_csau_discover_meat\"]=true,[\"ach_csau_discover_purple\"]=true,[\"ach_csau_discover_dontmind\"]=true,[\"card_player\"]=true,},[\"GAMESPEED\"]=2,[\"CS_COLOR1\"]={[4]=1,[1]=0.10196078431373,[2]=0.32549019607843,[3]=0.098039215686274,},[\"tutorial_complete\"]=true,[\"FASTFORWARD\"]=0,[\"DEMO\"]={[\"win_CTA_shown\"]=true,[\"quit_CTA_shown\"]=true,[\"timed_CTA_shown\"]=true,[\"total_uptime\"]=243.1160592916,},[\"GRAPHICS\"]={[\"bloom\"]=1,[\"crt\"]=50.278326376589,[\"shadows\"]=\"On\",[\"texture_scaling\"]=2,},}" settings_ver = nil new_colour_proto = table: 0x1b777250 {Spades:table: 0x1b7774d8, Hearts:table: 0x1b777348, Diamonds:table: 0x1b777400 (more...)} sound_files = table: 0x1bc7a288 {1:ambientFire1.ogg, 2:ambientFire2.ogg, 3:ambientFire3.ogg, 4:ambientOrgan1.ogg (more...)} shader_files = table: 0x1ba0cdb0 {1:CRT.fs, 2:background.fs, 3:booster.fs, 4:debuff.fs, 5:dissolve.fs, 6:flame.fs (more...)} (7) Lua method 'start_up' at file 'main.lua:4061' Local variables: self = table: 0x1b76e9f0 {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, F_ENGLISH_ONLY:false (more...)} (8) Lua field 'load' at file 'main.lua:1099' (9) Lua function '?' at file 'main.lua:1040' (best guess) (10) global C function 'xpcall' (11) LÖVE function at file 'boot.lua:368' (best guess) Local variables: result = boolean: true main = nil (12) global C function 'xpcall' (13) LÖVE function at file 'boot.lua:377' (best guess) Local variables: func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"]) inerror = boolean: true deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"]) earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"]) INFO - [G] line not found INFO - [G] line not found INFO - [G] file not found: main.lua: No such file or directory
3 comments
first line of the header in the lua script seems to be corrupted. remove all the weird symbols (i had to open it in vim to even get it displaying!) and change it to
--- STEAMODDED HEADER
then, for me most textures were invalid PNGs as well, so i removed everything but the 1x card sprites.
i also removed the second bit where it loads the balatro main sprite from the lua file,
local sprite_logo = SMODS.Atlas{
just in case it would break trying to load a file thats not there./key = "balatro",
path = "balatrotherock.png",
px = 333,
py = 216,
prefix_config = { key = false }
}:register()
i also put the 1x card textures in the 2x folder but this doesnt seem to load the cards. so i had to turn off pixel art smoothing to get the 1x textures.
i hope these issues can get fixed soon, and that in the meantime my comment is helpful :3
INFO - [G] 2025-01-16 01:13:28 :: ERROR :: StackTrace :: Oops! The game crashed
[SMODS BalatroTheRock "BalatroTheRock.lua"]:19: attempt to index a nil value
Stack Traceback
===============
(1) Lua local 'handler' at file 'main.lua:756'
Local variables:
msg = string: "[SMODS BalatroTheRock \"BalatroTheRock.lua\"]:19: attempt to index a nil value"
(*temporary) = Lua function '?' (defined at line 31 of chunk [SMODS _ "src/logging.lua"])
(*temporary) = string: "Oops! The game crashed\
"
(2) LÖVE metamethod at file 'boot.lua:352'
Local variables:
errhand = Lua function '?' (defined at line 742 of chunk main.lua)
handler = Lua function '?' (defined at line 742 of chunk main.lua)
(3) main chunk of file 'BalatroTheRock.lua' at line 19 (from mod with id BalatroTheRock)
(4) Lua global 'loadMods' at Steamodded file 'src/loader.lua:570'
Local variables:
modsDirectory = string: "C:\\Users\\canno\\AppData\\Roaming\\Balatro\\Mods"
header_components = table: 0x1be213c8 {version:table: 0x1be21b18, id:table: 0x1be215d8, conflicts:table: 0x1be21a08 (more...)}
json_spec = table: 0x1be21cd0 {provides:table: 0x1be22550, __:table: 0x1be224d0, version:table: 0x1be22290 (more...)}
used_prefixes = table: 0x1be225d0 {aurinko:aurinko, casl:CardSleeves, ZZB:BalaZZZ, csau:Cardsauce, cruel:CBL (more...)}
lovely_directories = table: 0x1be225f8 {1:C:\Users\canno\AppData\Roaming\Balatro\Mods/BlindEditions/, 2:C:\Users\canno\AppData\Roaming\Balatro\Mods/CardSleeves/ (more...)}
processDirectory = Lua function '?' (defined at line 184 of chunk [SMODS _ "src/loader.lua"])
keyset = table: 0x1bdb2730 {1:-9999999999, 2:-10000, 3:-100, 4:-1, 5:0, 6:69, 7:10000, 8:1e+15, 9:1e+299 (more...)}
check_dependencies = Lua function '?' (defined at line 418 of chunk [SMODS _ "src/loader.lua"])
(for generator) = C function: builtin#6
(for state) = table: 0x1bdb2730 {1:-9999999999, 2:-10000, 3:-100, 4:-1, 5:0, 6:69, 7:10000, 8:1e+15, 9:1e+299 (more...)}
(for control) = number: 5
_ = number: 5
priority = number: 0
(for generator) = C function: builtin#6
(for state) = table: 0x1be26828 {1:table: 0x1ba3fe18, 2:table: 0x1bc71718, 3:table: 0x1be489a8, 4:table: 0x1b84d1a0 (more...)}
(for control) = number: 3
_ = number: 3
mod = table: 0x1be489a8 {version:0.0.0, id:BalatroTheRock, main_file:BalatroTheRock.lua, can_load:true (more...)}
(5) Lua global 'initSteamodded' at Steamodded file 'src/loader.lua:652'
(6) Lua upvalue 'su' at file 'game.lua:316'
Local variables:
self = table: 0x1b76e9f0 {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, F_ENGLISH_ONLY:false (more...)}
settings = string: "return {[\"version\"]=\"1.0.1n-FULL\",[\"greenneedlebugrecheck\"]=true,[\"paused\"]=false,[\"QUEUED_CHANGE\"]={},[\"COMP\"]={[\"score\"]=150321000,[\"name\"]=\"\",[\"prev_name\"]=\"\",},[\"colourblind_option\"]=false,[\"play_button_pos\"]=2,[\"CUSTOM_DECK\"]={[\"Collabs\"]={[\"Spades\"]=\"collab_TW\",[\"Hearts\"]=\"collab_TBoI\",[\"Diamonds\"]=\"csau_ds_d_collab_XR_FS\",[\"Clubs\"]=\"csau_ds_c_collab_WF_vineshroom\",},},[\"STATUSTEXT\"]=0,[\"language\"]=\"en-us\",[\"ambient_control\"]={[\"ambientFire1\"]={[\"per\"]=1.1,[\"vol\"]=0,},[\"ambientOrgan1\"]={[\"per\"]=0.7,[\"vol\"]=2.1234697897806e-08,},[\"ambientFire2\"]={[\"per\"]=1.05,[\"vol\"]=3.6075266819522e-06,},[\"ambientFire3\"]={[\"per\"]=1,[\"vol\"]=2.219854396741e-07,},[\"jen_ambientSurreal3\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientDramatic\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientSurreal2\"]={[\"per\"]=1,[\"vol\"]=0,},[\"jen_ambientSurreal1\"]={[\"per\"]=1,[\"vol\"]=0,},},[\"run_stake_stickers\"]=true,[\"crashreports\"]=true,[\"screenshake\"]=50,[\"CS_COLOR2\"]={[4]=1,[1]=0.53333333333333,[2]=0.40392156862745,[3]=0.64705882352941,},[\"current_setup\"]=\"New Run\",[\"music_selection\"]=\"cardsauce\",[\"WINDOW\"]={[\"selected_display\"]=1,[\"display_names\"]={[1]=\"1\",},[\"screenmode\"]=\"Borderless\",[\"DISPLAYS\"]={[1]={[\"screen_resolutions\"]={[\"strings\"]={[1]=\"1920 X 1080\",},[\"values\"]={[1]={[\"w\"]=1920,[\"h\"]=1080,},},},[\"screen_res\"]={[\"w\"]=1920,[\"h\"]=1080,},[\"DPI_scale\"]=1,[\"MONITOR_DIMS\"]={[\"height\"]=1080,[\"width\"]=1920,},},},[\"vsync\"]=1,},[\"profile\"]=1,[\"csau_color_selection\"]=\"default_csau\",[\"SOUND\"]={[\"volume\"]=50,[\"music_volume\"]=100,[\"game_sounds_volume\"]=100,},[\"music_control\"]={[\"current_track\"]=\"\",[\"desired_track\"]=\"\",[\"lerp\"]=1,},[\"ACHIEVEMENTS_EARNED\"]={[\"ach_csau_discover_supper\"]=true,[\"card_discarder\"]=true,[\"_10k\"]=true,[\"roi\"]=true,[\"ach_csau_discover_speen\"]=true,[\"ach_csau_discover_chad\"]=true,[\"ach_csau_discover_al\"]=true,[\"ach_csau_discover_gnorts\"]=true,[\"ach_csau_discover_kerosene\"]=true,[\"ach_csau_discover_new\"]=true,[\"ach_csau_discover_bsf\"]=true,[\"ach_csau_activate_quixotic\"]=true,[\"big_hands\"]=true,[\"ach_csau_win_vine\"]=true,[\"ach_csau_discover_pivot\"]=true,[\"ante_up\"]=true,[\"ach_csau_discover_reyn\"]=true,[\"ach_csau_discover_pep\"]=true,[\"ach_csau_discover_watto\"]=true,[\"ach_csau_defeat_hog\"]=true,[\"ach_csau_discover_cousinsclub\"]=true,[\"ach_csau_chadley_power\"]=true,[\"retrograde\"]=true,[\"heads_up\"]=true,[\"ach_csau_discover_shrimp\"]=true,[\"ach_csau_discover_disguy\"]=true,[\"legendary\"]=true,[\"ach_csau_discover_diaper\"]=true,[\"royale\"]=true,[\"ach_csau_discover_werewolves\"]=true,[\"ach_csau_discover_blast\"]=true,[\"ach_csau_discover_odio\"]=true,[\"_1000k\"]=true,[\"ach_csau_discover_claus\"]=true,[\"ante_upper\"]=true,[\"ach_csau_skin_vineshroom\"]=true,[\"ach_csau_discover_grand\"]=true,[\"ach_csau_discover_crack\"]=true,[\"ach_csau_discover_fantabulous\"]=true,[\"ach_csau_skin_characters\"]=true,[\"ach_csau_fuckingkill_jimbo\"]=true,[\"cartomancy\"]=true,[\"ach_csau_high_one\"]=true,[\"_100000k\"]=true,[\"ach_csau_discover_quarterdumb\"]=true,[\"ach_csau_discover_meat\"]=true,[\"ach_csau_discover_purple\"]=true,[\"ach_csau_discover_dontmind\"]=true,[\"card_player\"]=true,},[\"GAMESPEED\"]=2,[\"CS_COLOR1\"]={[4]=1,[1]=0.10196078431373,[2]=0.32549019607843,[3]=0.098039215686274,},[\"tutorial_complete\"]=true,[\"FASTFORWARD\"]=0,[\"DEMO\"]={[\"win_CTA_shown\"]=true,[\"quit_CTA_shown\"]=true,[\"timed_CTA_shown\"]=true,[\"total_uptime\"]=243.1160592916,},[\"GRAPHICS\"]={[\"bloom\"]=1,[\"crt\"]=50.278326376589,[\"shadows\"]=\"On\",[\"texture_scaling\"]=2,},}"
settings_ver = nil
new_colour_proto = table: 0x1b777250 {Spades:table: 0x1b7774d8, Hearts:table: 0x1b777348, Diamonds:table: 0x1b777400 (more...)}
sound_files = table: 0x1bc7a288 {1:ambientFire1.ogg, 2:ambientFire2.ogg, 3:ambientFire3.ogg, 4:ambientOrgan1.ogg (more...)}
shader_files = table: 0x1ba0cdb0 {1:CRT.fs, 2:background.fs, 3:booster.fs, 4:debuff.fs, 5:dissolve.fs, 6:flame.fs (more...)}
(7) Lua method 'start_up' at file 'main.lua:4061'
Local variables:
self = table: 0x1b76e9f0 {F_GUIDE:false, F_CRASH_REPORTS:false, F_QUIT_BUTTON:true, F_ENGLISH_ONLY:false (more...)}
(8) Lua field 'load' at file 'main.lua:1099'
(9) Lua function '?' at file 'main.lua:1040' (best guess)
(10) global C function 'xpcall'
(11) LÖVE function at file 'boot.lua:368' (best guess)
Local variables:
result = boolean: true
main = nil
(12) global C function 'xpcall'
(13) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
inerror = boolean: true
deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
INFO - [G] line not found
INFO - [G] line not found
INFO - [G] file not found: main.lua: No such file or directory