#⚙・modding-general
1 messages · Page 120 of 1
np
just kinda curious cuz i got into looking at balatro mods today, is there any way of disabling specific mods or would i just have to delete them from my folder?
disabling specific mods is a feature in smod 1.0.0
however, for 0.9.8 i personally just move the mod to a different folder
kk tysm
trying to use the deckcreator mod via thunderstore but its dumping out some weird error. anyone had this problem or know a fix?
im using steamodded 0.9.8 uploaded there
Don’t use the Thunderstore version
should i use v0.9.8 release on gh or just main branch
0.9.8 compat on alpha can be buggy, it's better to stick to 0.9.8 if you're only gonna use mods made for it
So the release should do for you unless you want to use 1.0 mods
You mean for retexturing the enhancements?
what the sigma ⁉️
huh 😭
guess i am
suprisingly i don't have rd files on hand
Rhythm Doctor or Necrodancer crossover would be sick
i mean window dance is doable
let me just translate all the code from rd into lua
After updating windows it seems like my game always starts in vanilla mode, anyone know why that might be
wdym "vanilla mode"
As in without mods
reinstall SMODS (+ lovely)
I reinstalled smods, but didn't do that with lovely, I'll try that
Aight yeah, that worked, I think something nuked the version.dll file in my Balatro files
Thanks!
windows defender did
"Mom, I'm thirsty, I want water."
"We have water at home."
Water at home:
L im stupid i meant consumable types
Just use the new key, is the gear example not there?
Sorry didnt see that
Isn’t that easier than The Water
I'm thinking of modding the game, do mods corrupt save data?
Also, I have a current run that I am really proud of but I am scared of messing it up, is there a way to make a backup save of that somehow?
generally no but I would not play modded on a profile you care about
fair, thanks!
%AppData%/Balatro/[profile #]/save.jkr, can be copied somewhere else and moved back later
holy crap thank you!!!!
(im sorry if i missed this somewhere i cannot find it quickly in the server) how do you mod the game?
https://discord.com/channels/1116389027176787968/1217867725532041369
Here’s a guide on how to install Steamodded, the primary modloader for Balatro
It’s written for v0.9.8, but most modding is now on the v1.0.0 beta
For that you need to download the source code directly from GitHub instead of the releases tab (and then copy all of it into the folder)
thank you, ill start working on this in a while!!
I don't know if this has been done before but what about a mod with like Uno cards or something lol
Why are you over there
We love duped cards that aren't placed into the hand correctly ❤️
two cards
five feet apart cuz they're not gay (they're ace)
ah yes... pa ir
I was playing Cryptid and ended up pressing the View Integrity of Game Files button on Steam, and now whenever I press Play, it gives me this error message. Is there a way to just wipe your current run, while keeping all of your meta-progression? Can someone please help me?
you need Talisman
I have it
well, idk then
maybe I need to reinstall steammodded and lovely
reinstall lovely
if you want to just fix the crash you can delete the save.jkr in your profile but your mods won't work anyway
thanks
are there any 1.0.0 deck mods i could look at?
Cryptid has a lot of decks
Me when Brainstorm Copies ||Punishing Bird||'s ||"Lose the run if sold"|| effect (I am using debug mode):
thanks!!!
anyone know what mod/tool balatro university used in his most recent video for the faster restarting... if it's even public? (Video Title: "Canio go [not so] Big (World Record Attempt)" )
thanks
yw
Can someone help me?
Only Bunco?
hey all, I got a custom joker I think is written up, now I need to test. How do I make this show up in shop, without having to constantly reroll to find it? I'm using steamodded
i guess i could make a deck/challenge with it by default maybe...
they're using 0.9.8 but installed the 1.0.0 of bunco
install DebugPlus, then press 3 on the collection page ingame
oh thanks
INFO - [G] 2024-07-02 21:24:36 :: TRACE :: Loader :: Skipping non-Lua file or invalid header: kcvanilla.lua
Noticed my joker wasn't in the collection. Seems like my file is getting skipped? Invalid header?
kcvanilla.lua header:
--- STEAMODDED HEADER
--- MOD_NAME: KCVanilla
--- MOD_ID: KCVanilla
--- MOD_DESCRIPTION: KCVanilla
--- MOD_AUTHOR: [krackocloud]
--- LOADER_VERSION_GEQ: 1.0.0
Sorry if I'm missing something really obvious or in the docs, anyone know what's going on
I copied all my files to a new folder and it works now. Incredible
if MoreSpeeds just isn't enough, then this might be
testing a new mod of mine which simply makes events run as fast as they possibly can
fastg
it affects everything. check out how quick starting a new run is:
runner's dream mod
this is probably going to break things but i'm testing it thoroughly
i like how it looks!
this is so fast and i love it
How well does this play with skip anims option in Talisman?
I would guess pretty well
Wonder if this is an “one or the other” or if it stacks.
They override different aspects so they probably stack (Talisman with the number of animations and jenwalter’s mod with their speed)
all my mod does is override delay in added events to be near-zero (if it's an "easing" event) or zero (if it's an "immediate" event)
basically, the game will run events as fast as its FPS will permit it to
There’s already a mod to skip animations 😅
Although seeing the above comments maybe you could use both :0
yes, but it doesn't change event delays, this one does
how can i start making mods for this game? as in, what programs do i use. i already have lovely injector and steamodded, idk if i need anything else
Mods are written in a language called Lua, which is really easy to use if you have any programming experience
You don't need any tools other than a basic text editor, and all mods have their source code inside the mod folder so you can always open up an existing mod to see how they coded anything
There's also the Steamodded docs, which have a reference of everything you can do with the API
so i need to download lua? or do i just use a text file and then name it as .lua
Just renaming your text files to .lua will work!
You've got to make sure you follow the right format for how Steamodded expects your lua files but yeah no fancy downloads needed
oh wow that's much easier than what i thought!!
and when i'm done coding smth, i just put it in the same folder i put other people's mods in, right?
Yep. There's no special packaging you need to do, just have your folder with the lua files and image assets in the standard Mods folder (just like any other mod)
If you hold down 'm' in-game, it will reload all mods and quit out to the main menu instantly without having to close the game
So, if you've made changes to your mod.lua, you can just save the file and hold 'm' to see those changes in-game
ohh okay. thanks!!
also install #1228149931257237664 for some debug stuff, like spawning Jokers instantly
I need to install DebugPlus, I've just been using a debug deck that loads in the jokers I'm currently testing at the start of the run
Anyone also bump into the problem of shift + / not responding?
You can also set the debug mode to true locally
It won’t have all extra features of DebugPlus
Which I don’t know because I don’t use
mod idea: no 7s. straights and strength skip over 7, and 7s never appear in standard packs.
Why
Aces are now considered 7s
because 7s are useless
Not according to the four ULTRAKILL jokers in Cryptid
but why
❎ jokers that buff 7s in some way
✅ remove 7
you know what
screw you econ 7 that's way stronger than Cloud 9
I made a 7 based once
well technically the wording doesn't specify what is being.
retiggered
Retrigger every scored 7. Earn $7 for every scored 7.
well, that sure sounds more straightforward
back then I accounted for shortening more than having a clear meaning
you just get 14 bucks per 7 assuming no more retriggers
you could also word it like:
Retrigger all 7s, earn 7$ for every scored 7
this implies it will also retrigger non scoring 7s
scored 7s are retriggered and give $7.
so gold, steal and blue seal 7s could get retriggered as well
yeah this sounds better
agreed
this is pretty close to the original desc from the mod author, except they used "n-point cards" 💀
1.0 out yet
steamodded 1.0.0?
Yeah
Like full release
no'
K still bo modding then my computer thinks 0.9.8 is a virus and deletes it repeatedly
anyone know of a mod that would enable / disable jokers, say if I wanted to disable some of the base game jokers to only play with modded ones.
1.0.0 with lovely is not any better, windows defender will flag lovely because it modifies a programs code while it's starting
The only solution is to tell Windows defender to ignore Balatro.exe folder
It deletes the version code when I run my virus detection software
don't remove it
hm, windows defender catching lovely
it's a thing that's happening to everybody
Finally a time it’s good to be using Mac
Tbh I got a different detection personally
how do I copy from the console log?
which log
You can select and ctrl + insert
thanks
So I'll ask again why isn't there just Steam workshop capability
None of this is official
to have workshop support would imply official mod support
It's recognized to some extent, otherwise why would this channel even exist
You'd still need the modding api to be built into the game itself to have proper workshop support
fuck no, why do people think workshop is the ultimate stage of modding? it would surely provide a more restrictive interface and not let us do the advanced stuff we've gotten to with lovely patches
the next best thing would probably be some integration to install mods in-game, which may be coming to steamodded down the line
It just has less issues framework wise for my laptop
I see things more from the perspective of developing mods
also what's the difference on there being an official release for steamodded 1.0? the alpha has been available and is installed the exact same way a future release would be
lovely generally causes less antivirus issues (though defender recently just deleted it for almost everyone)
besides, if there's ever workshop support, modders aren't going to blindly abandon a well established modding API in steamodded
wdym
it should run the same regardless of whether you have a supercharged gaming pc or a laptop
even lovely?
i see it as a matter of trust
and accessiblity
steam workshop is sorta built into steam itself, so theres a loeer barrier of entry, and generally they're scanned for viruses and whatnot
the moral is; not every game needs steam workshop integration. risk of rain 2 is a massive example of that
I mean if you trust the mod you can bypass the warning
first time using the tarot pallete, think it went well
Ooh, is the Ante 8 Blind predetermined?
with this bonus blind yes
I was thinking how knowing what bosses are coming could enable some interesting designs
Because they’d feel less punishing
that was the idea
So… get the mechanics of ante on ante 1-7?
With score requirements still of the 1-7 levels, and not 8
...I've managed to make a savefile so cursed that hitting the Next Round button just. Closes the game
how do i debug this
Go to https://balatro.shorty.systems/ and view your save file
Error loading file: Unexpected token 'o', ..."d","amt":to_big(1.4,"... is not valid JSON
yeah it uh, doesn't work with talisman
vanilla saves are non-comaptible with talisman
yeah so i have no idea why it just closes
i tried to open the game through command line to save the log but it didn't work
Hey, folks. Does anyone have a guide on installing Lovely on Mac? Whenever I drag the script to the Terminal it just gives me a “no permissions” error
I was trying to install Steamodded 1.0.0
But it won’t work without Lovely
DM me in an hour or so and I can help
Guess what? It also doesn’t work with Ankh :) (unintentionally, I promise)
the only thing i can think of it that it's... a perkeo crash, somehow??
since it's the only thing i have that triggers at shop end
Yeah I sold Perkeo and I could proceed to the next round
which makes me suspect it might be an Incantation issue?
i'd assume it's trying to do some stuff with the eternal incan?
i just got the stupidest idea ever
crashing instantly is usually an infinite loop
quick time events in balatro
i dont even know how i would begine to make it
and that would necessitate ui work meaning i would die a horrible and painful death
but one can dream
it would be nice if i could find actual log files for the game but it doesnt seem to save any
can you find a lovely log for it
i don't know where lovely puts its logs
ah, lovely/log
Yeah nothing
it defaultlogs all the extra editins when i enter the shop but then the log just Ends
rip
i just completed completionist+, but i did so with mods installed so I didn't get the achievement on steam - does anyone know a way to redo it and get the achievement without starting all over? do I need to reset my files?
completionist+ is one of the retroactive ones, so you can install the achievementenabler mod
oh yeah. it's all coming together
wow those look freaking amazing
Do you ideas for the effects for any of them?
yeah i have an idea for all of them, but nothings set in stone. ideas are welcome
the modern art one isn't secretly a joker portrait 0/10 wiped from my memory given a bad yelp review /j wait oh my god it is
in all seriousness 10/10 art absolutely amazing
It is in fact vaguely inspired by the shape of joker
Kind of the right half of one
but yes, hard to see and not something i thought too hard abt
https://kcgidw.github.io/kcvanilla/ here u go! feedback or new ideas welcome
might be a bit insane
that red pack is so good lmao
yo who tf put a virus in my lovely 😭
alert level high 😭 🙏
windows defender can't find viruses but it sure can mark not viruses as such
lovely basically works like a virus
long as its directly from github its all fine
kinda confused, whenever i add mods into my mods folder it doesnt show up in the mods tab of balatro, help?
too much shit man
restart your game
has to load the mods
if that doesn't work it's your problem
how do i do that? im a little stupid
by
restarting the fucking game
tf
you close the game
and then
you open the game

didnt do anything
might be dumb question but do most mods work on mac
i'd think so
💀 mac users
are the mods compatible with the steamodded version you're using?
not 100% sure tbh
lol, well make sure they are
cuz i legit just installed one and that ones working fine
its saying i cant open it using the run_lovely.sh script bc apple cant check it for malware lmao but the installation guide says that steam is bugged on mac and thats the only way to load it
send screenshot
it said that too
just go to terminal and type sh path/to/run_lovely.sh
ok
I haven't checked the Finder image lmao
the Mods folder should be in Library/Application Support/Balatro
its saying "no such file or directory"
did you seriously type path/to/run_lovely.sh instead of the actual path
i copied and pasted what you said
i honestly didnt know that was what it meant lmao sorry
hold option key, right-click run_lovely.sh and choose Copy file as pathname
it still said it cant be opened for the same reason as the other
right-click liblovely.dylib and choose Open with > Terminal
you'll still have the pop-up but it now has the Open button
got it i think
h
Cosmic Collapse is genius and I love that idea
I might actually take inspiration from some of these for my own mod
yo i just got it working on macos if u need any help
mostly what the other dude was saying is right tho
Interesting ideas. I had the same effect as Joker-Chan written down
I'm trying to download something but for some reason downloading balatromods before is now causing errors for me
does anyone know how to fix the lovely injector issue?
steamodded has more mods
I have no idea where to find the lovely injector thing
do not use the injector, use lovely instead
lovely is an injector LMAO
I did it like a year ago
or smth
i don't think balatro has been out for a year
just verify file integrity on steam
ik but
I'm trying to download a diffrent thing
and it's for some reason trying to do something with the balatro mod file that doesn't even exist
what are you trying to do
uhh
so I have no idea how to fix this
so I was thinking if I could delete the lovey injector thing
this has happened for me multiple times
do this and update the lovely and steamodded
I'm not trying to download a balatro mod
I jsut want to fix this problem that is happening because of the balatro mod thing
delete version.dll
i thought verifying did that oops
nah verifying only checks balatro.exe i believe
where do I find that..?
It's not there...
can you send a screenshot
you probably left version.dll in downloads or your desktop or something
look through your downloads folder, your desktop, wherever else you mightve put it
It was in system32..
😭
so...
wait no
?
k
i would say to look at the date modified before removing it
but it probably changed because you deleted it
Don't deletr the system32 one
there is 9 of them except for system 32 one...
youre looking for a version.dll that is not 32kb
nvm it found a 10th one
the lovely version.dll i have is 3114KB, so look for one around that big
yea youre gonna find a decent amount
out of curiosity, where was it
download 💀
classic
Does your mod project have a forum post yet? I'd like to keep track of it when it releases
Also, guys, has anyone experience crashes with Codex Arcanum mod before?
i think its a cool idea but im not sure it will be easy to implement. I don't see anything in the OG code that has a concept of a joker retriggering
Yeah retrigger jokers were really complex to add
will definitely make a post in the future, but not now. i have almost nothing to show for it rn, dont want to jump the gun
I made an API for it in my mod that I plan to add to Steamodded eventually
Besides using MathIsFun’s API, my other idea for it was to hook eval_card to situationally call itself* twice.
But I’m not sure that works exactly
I'm definitely saving jokerchan and power grid for last
guys i been having a brain meltdown after this one:
any ideas how to debuff a random card in hand?
Working code for flipping a random card as example:
function Blind:stay_flipped(area, card) local blind_type = self:get_type() if not self.disabled and area == G.hand then -- Apply the 1 in 7 chance to boss blinds only if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 53 then return true end end return false end
THIS RIGHT HERE WONT WORK!!:
function Blind:debuff_card(area, card) local blind_type = self:get_type() if not self.disabled and area == G.hand and card.area ~= G.jokers then -- Apply the random chance to apply debuff for boss blinds only if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then card:set_debuff(true) end end end
using this debuffs the entire deck not only hand, i just cant wrap my head around why the flips works but debuff wont
function Blind:debuff_card(card) local blind_type = self:get_type() if not self.disabled and area ~= G.jokers then -- Apply the random chance to apply debuff for boss blinds only if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then card:set_debuff(true) end end end
Blind:debuff_card's parameters are card, from_blind, not area, card
You want to check the card.area
This debuffs all cards because area here is nil, which is always different from G.jokers
so if i get you right should i use:
if not self.disabled and card.area == G.hand and card.area ~= G.jokers then
mm no that nils the game.
Are you on smods 0.9.8 or 1.0, and are you overwriting the base game Blind:debuff_card function?
for now overwriting since im quickly testing
as opposed to using the smods mod.debuff_card
so what could i change to fix it? i feel like there is little code to change but cant realize what
could you post the code you currently have? it's likely something small somewhere in your code
sure, one moment!
function Blind:stay_flipped(area, card) local blind_type = self:get_type() if not self.disabled and area == G.hand then -- Apply the 1 in 7 chance to boss blinds only if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 53 then return true end end return false end
function Blind:debuff_card(area, card) local blind_type = self:get_type() if not self.disabled and area == G.hand then -- Apply the random chance to apply debuff for boss blinds only if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then card:set_debuff(true) return end end end
@maiden marlin flipping works just fine and flips only drawn hand, if i use
if not self.disabled and card.area ~= G.jokers then
it considers the deck and not only drawn hand. so its half working!!
the other method discord wouldn't allow me to send in one message:
function Blind:debuff_hand(cards, hand, handname, check) if self.disabled then return end if self.debuff then self.triggered = false if self.debuff.hand and next(hand[self.debuff.hand]) then self.triggered = true return true end if self.debuff.h_size_ge and #cards < self.debuff.h_size_ge then self.triggered = true return true end if self.debuff.h_size_le and #cards > self.debuff.h_size_le then self.triggered = true return true end if self.name == "The Eye disabled" then if self.hands[handname] then self.triggered = true return true end if not check then self.hands[handname] = true end end if self.name == "The Mouth disabled" then if self.only_hand and self.only_hand ~= handname then self.triggered = true return true end if not check then self.only_hand = handname end end end if self.name == 'The Arm disabled' then self.triggered = false if G.GAME.hands[handname].level > 1 then self.triggered = true if not check then level_up_hand(self.children.animatedSprite, handname, nil, -1) self:wiggle() end end end if self.name == 'The Ox disabled' then self.triggered = false if handname == G.GAME.current_round.most_played_poker_hand then self.triggered = true if not check then ease_dollars(-G.GAME.dollars, true) self:wiggle() end end end end
that's not very readable, consider using codeblocks:
```lua
code_here()
```
Have you updated Blind:debuff_card(card) based on Myst's advice?
You still have incorrect arguments
as for design, if you're going to debuff cards in hand, I'd process debuffs on the whole deck- then people know what cards will be debuffed
i used
function Blind:debuff_card(card, from_blind)
local blind_type = self:get_type()
if not self.disabled and card.area == G.hand then
-- Apply the random chance to apply debuff for boss blinds only
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then
card:set_debuff(true)
return
end
end
end
but wont debuff anything
people wont know what cards are flipped so i followed that idea. do you think its possible to achieve?
It's definitely possible to achieve. I just want to make sure your effect isn't one of the ones that would benefit from being debuffed in deck. If it's random then it's fine
oh, you have to call Blind:debuff_card() manually. think of it as recalculating whether a card should be debuffed or not
right, i want it to be random .later i will add more conditions like top amount of debuffs but first i need to get this right, so only drawn hand is where the debuff happens
Blind:debuff_card() is only called at specific points in the base game. You'll want to call it after drawing a hand
is it intentional that you're putting other debuffs from blinds out of use?
they're doing temporary testing
exactly that yes.
can you guide me in how to call it after drawing the hand?
I see
my mind thinks it should be really similar to how im succesfully flipping random drawn cards
yeah, it's completely different
there are a couple places in the code you could do it, you could modify Blind:drawn_to_hand
I think that's a reasonable one
right, i modified that before:
function Blind:drawn_to_hand()
if not self.disabled then
if self.name == 'Cerulean Bell disabled' then
local any_forced = nil
for k, v in ipairs(G.hand.cards) do
if v.ability.forced_selection then
any_forced = true
end
end
if not any_forced then
G.hand:unhighlight_all()
local forced_card = pseudorandom_element(G.hand.cards, pseudoseed('cerulean_bell'))
forced_card.ability.forced_selection = true
G.hand:add_to_highlighted(forced_card)
end
end
if self.prepped and #G.jokers.cards > 0 then
local jokers = {}
for i = 1, #G.jokers.cards do
if not G.jokers.cards[i].debuff or #G.jokers.cards < 2 then
jokers[#jokers + 1] = G.jokers.cards[i]
end
G.jokers.cards[i]:set_debuff(false)
end
local _card = pseudorandom_element(jokers, pseudoseed('crimson_heart'))
if _card and self:get_type() == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 100000 then
if _card.area == G.jokers then
_card:set_debuff(true)
_card:juice_up()
self:wiggle()
end
end
end
end
self.prepped = nil
end
the idea was to take the crimson heart ability and apply it globally to all blinds that are boss
it works! but.. i have to elaborate the debuff code here for drawn hands too it seems
im not so sure how to do so but if you say i should try it here its a good starting point
not sure I got my point across, sorry. I was saying, just add a line that calls Blind:debuff_card on all cards in G.hand.
there is an issue in that set_debuff is supposed to recalculate the debuffed state of a card. so you'll have to save the result of the random check (debuffed or not)
that set_Debuff is disabling the joker correctly after some tests.
sorry, edited above. call Blind:debuff_card
as far as i know i only changed the detection of blind from crimson to type boss and added pseudorandom and also a last check for jokers
alright. to update the debuff on cards you'll have to call Blind:debuff_card on all cards in G.hand each time a hand is drawn
but not sure if this is correct before attempting to call it:
function Blind:debuff_card(card, from_blind)
local blind_type = self:get_type()
if not self.disabled and card.area == G.hand then
-- Apply the random chance to apply debuff for boss blinds only
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then
card:set_debuff(true)
return
end
end
end
I think it's correct
but, there's lots of little things that can be wrong. go ahead and try it out as is
hm, actually I think no cards are in hand when Blind:debuff_card() is called at the start of the round, so your function won't do anything unless you actually add another call when each hand is drawn
function Blind:stay_flipped(area, card)
local blind_type = self:get_type()
if not self.disabled and area == G.hand then
-- Apply the 1 in 7 chance to boss blinds only
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 53 then
return true
end
end
return false
end
function Blind:debuff_card(card, from_blind)
local blind_type = self:get_type()
if not self.disabled and card.area == G.hand then
-- Apply the random chance to apply debuff for boss blinds only
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 53 then
card:set_debuff(true)
return
end
end
end
Blind:debuff_card() is called in set_blind which is before drawing cards i believe
and then
-- Debuff all cards in G.hand with a probability
for _, card in ipairs(G.hand.cards) do
local blind_type = self:get_type()
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then
self:debuff_card(card, from_blind)
end
end
end
seemed to do the job
@maiden marlin thank you, and everyone else!
great! (this will break with DNA but let's not worry about that for now)
how so?
i see... i tested
any idea how to avoid calling the method when using dna or any other method that draws cards to hand , cryptid
that's really tricky. what you want is to roll for a debuff on the new card, while keeping the old debuffs the same
actually playing cards will also apply debuff to alraedy cards drawn. i thought this was for the drawn cards only not cards in hand
so, you'll need to set a variable on the card after you roll for yes/no on debuffing it
try setting something like card.ability.ANY_NAME_HERE = ... and clearing that variable on every card in Blind:defeat()
how about this:
local new_cards = {}
for _, card in ipairs(G.hand.cards) do
if not card.drawn_to_hand_checked then
card.drawn_to_hand_checked = true
new_cards[#new_cards + 1] = card
end
end
-- Debuff
for _, card in ipairs(new_cards) do
local blind_type = self:get_type()
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 1 then
self:debuff_card(card)
end
end
end
you'll want to set a variable that keeps track of whether the card was debuffed- if blind:debuff_card() is called, you want to return the same answer
but after niling the blind on defeat, will that be a problem ? will it track purged and non existant debuffed cards?
i added
self.dissolve = nil
self:set_blind(nil, nil, true)
-- Clear debuff effects on all playing cards
for _, card in ipairs(G.playing_cards) do
card:set_debuff(false)
end
-- Clear debuff effects on all jokers
for _, card in ipairs(G.jokers.cards) do
card:set_debuff(false)
end
return true
end)
i was surprised the blind defeat didnt have this code as failsafe, probably a good reason im missing
look at this magic code:
function Blind:debuff_card(card, from_blind)
local blind_type = self:get_type()
if not self.disabled and card.area == G.hand then
-- Apply the random chance to apply debuff for boss blinds only
if blind_type == 'Boss' and pseudorandom(pseudoseed(self.name)) < G.GAME.probabilities.normal / 10 then
if not card.debuffed then
card:set_debuff(true)
card.debuffed = true
end
end
end
end
no worries ive had very little issues since
Could you invite me to this please? I so want to try multiplayer with my spouse.
I'm assuming this is the server Eons linked https://discord.gg/24HXDxrtn3
could anyone help me learn how to mod balatro? I've never modded a game before so I'm new to all of it
what am i cooking? idk but it's funny and a little cool
If you're a dev, yes. If you're a user, not so much
figured out it was because of a mod i was using, got rid of it
it was the joker display one
4/3 D:
i just didn't add a check yet
real i tried and failed for like 20 mins if someone posts a video walkthrough ill marry you
ty o7
woohoo!
my game always seems to crash when (i assume) an unlock pop up appears when going to the main menu and i dont know how to fix it without disabling all my mods
achievements are not accepted by steam even though I use achievement enabler, can someone help me
you have to finish a run for it to register iirc
The full crashlog would probably be useful
Can't tell what mod is causing it with just this
Not sure but cryptid might be the culprit
DID I HEAR A ROCK AND STONE?
karl would approve of this
I think the effect is interesting - upgrades your hand type, but you can hold onto it and wait until you've got the perfect hand to use it on
the trick is that how it upgrades it depends on the cards
e.g. mult cards will permanently add +4 mult to the hand type
currently it considers the card's rank, enhancement and edition for upgrades
and i've also made it so that when a card is exhausted/destroyed, it will level up the hand once
should i be using steammodded 1.0?
Depends
If you just want to play with mods, see what version your mods support
If your developing mods, you'll probably want to consider 1.0, as that way you don't have to rewrite once it's final and also I'd you have issues, we can fix them before 1.0 releases.
What do I need to do differently in order to create a modded Joker in code? I can create vanilla Jokers just fine, but attempting to create a modded Joker crashes with the following error:
functions/common_events.lua:2245: attempt to index local 'center' (a nil value)
What’s your code to create a vanilla/modded Joker?
apply = function(back)
G.GAME.joker_buffer = G.GAME.joker_buffer + 1
G.E_MANAGER:add_event(Event({
func = function()
local card = create_card('Joker', G.jokers, true, nil, nil, nil, 'j_afmad', "afdeck")
card:add_to_deck()
G.jokers:emplace(card)
card:start_materialize()
G.GAME.joker_buffer = 0
return true
end}))
end
what’s your mod prefix
Mod ID is 'AF2024', Joker key is 'j_afmad'
The Joker key isn’t j_afmad; SMODS automatically adds your mod prefix as an infix: j_prefix_jokername
I'm a bit confused
If I change the Joker to have key = 'afmad' and the Mod ID is still AF2024, what key do I have to call?
did you specify a prefix in your mod header?
I... might not have
then your key should be j_AF20_afmad
if you don't specify a prefix, it's the first four characters of the mod id
Ah ok
you might want to change the prefix though
What's the parameter name for that? MOD_PREFIX or something else?
Without setting the prefix, this key still doesn't work
Aight after combing through the Steamodded repo a bit found out that it's just PREFIX, and after setting that it now works
Thanks everyone
How would you rank the following Blinds:
- Base Chips can’t be greater than money
- +5% Blind Size for each $1
- All cards are debuffed if you have $10 or more (increased $ on victory)
rank as in difficulty or?
Going off immediate impressions I'm'a say 1, 3, 2 from easiest to hardest
yeah for difficulty id go with 1, 3, 2
Mainly difficulty but other factors too
1 makes the most sense as a Showdown Blind, while one of the other two make more sense as normal Blinds
Maybe I’ll buff 1 and I’ll think which of the other two I want to add (maybe both)
1 would be harder if you specified Chips in general, but with specifically Base Chips seems pretty easy to bypass with your garden variety chip engine
2 is Violet Vessel as long as you have $40 or more (which you are probably doing in the later pre-endless antes, especially if you have Seed Money)
I could also specify a percentage of money, but maybe I’ll tweak to make it harder. I had already considered making it affect Chips rather than just Base Chips.
Although I have a different Showdown Blind that affected Base Chips and Base Mult and that one is too harsh
3 is Verdant Leaf as long as you have $10 or more (which you are almost certainly doing past ante 2 or 3), though you can roll down in the previous shop to get past that, and the increased reward makes it more viable to do that
They're giving me "Finisher Blinds' little siblings" vibes, which I weirdly like the more I think about it
There’s also a combination of 2 and 3 which scales faster (e.g. +10%) but only for each $1 above $10
I recently installed steamodder 0.98 and using a hand speed mod. Seems to not be loading at all now. Do I need to update anything? Sorry I'm a n00b at this so appreciate any help 🙂
4 speed super slow now xD
1st one is pretty annoying for high Chip hands (two pair, straights etc), and probably very hard on plasma
Really depends on how you play, but more often than not I'd invest into planets, so having a cap on base chips is rough
The other boss I mentioned set your Base Chips and Mult to your level :)
Though I changed Chips to X5 because the original was too rough
I didn’t find the non-Showdown version (only Base Chips) that hard, but I’d also change it to X5
Please provide more information :<
Report the bug in the mod’s thread in #1209506514763522108 preferably with the actual error message
Where is a good place where I can like browse Balatro mods?
is there a balatro mod which disables joker cap?
A lot of mods mention "steammodded 1.0.0+" but where in the world can you even find it? I can only find 0.9.8 and back..
You need to download the main branch code https://github.com/Steamopollys/Steamodded
lol thanks 😩
Any ideas what it could be where only one mod doesn't load any graphics? Trying out snoresvilles turbulent jokers, but the other jokerpacks I've added shows new card graphics normally. It plays correctly as well, just that it's jimbo on every card 
the images are all in the directory when I check
theres like, hundreds of different ways that could happen
i'd imagine its either an incorrectly named directory or sprite sheet
guys, what is the name of mod with colour palettes like this?
thx
Crap, looks like more stuff isn't right for me 😩 Got my first crash just now the second I scrolled to a new deck in the list, also from turbulent jokers pack so somethings def. off for me with it
are there a collection of art templates for mods, eg. blank jokers, blank tarots, blank spectrals, blank planets
Oh another quick question, verifying steam files completely removes steamodded/modfiles from %appdata% right? 👍
um, not sure
i don't think it will
it only verifies things that steam downloaded
so %appdata% is completely untouched i think
oh okay, thanks! Maybe it was löve/lovely getting removed because its in the steam folder I'm thinking of, or I'm just talking nonsense lul 😄
lovely (version.dll) has been getting caught by anti-viruses recently so its probably that
yeah I got that too when I installed it
You can hover over an object and look at the badge under it to see what mod it comes from
I presume they don’t have the mod installed and want to install it
yep, I just saw it in some video
guys, how to update steamodded? Just launch new injector?
use lovelyhttps://discord.com/channels/1116389027176787968/1217867725532041369
Can someone link me to a mod that disables animations?
isn't it in the vanilla game?
nope
I'm pretty sure it is
directly disables, not speeds up.
Skips animations?
skip the animations, you mean?
Talisman?
Depending on what you want, either https://discord.com/channels/1116389027176787968/1241172556849876993 (scoring) or https://discord.com/channels/1116389027176787968/1258019898244993096 (everything)
tnx!
yw
i think it looks good
The only thing I don't understand is why call methods aChips and aMult
But then also addMoney
Single letters in names are pretty confusing
stay true to the thunkness
Should be called addingAllTheBonusChipsFromTheJokerToTheTotalOfTheChipsCount
Nah, it should be called ac()
c()
instructions unclear, accidentally added chips in c++
Accidental operator override 🦭
least useful consumable playing card ever.
(it can only be used on the blind select screen.)
.
Is there such a thing?
anyone have a good grasp on lonely/brainstorm mod here?
i followed the readme.txt but still nothing is happening
firstly, is Lovely installed? (you should see a command prompt open before Balatro if so)
ope yes
and actually i resolved it
lovely was pathing to a different mod folder
tyvm for your prompt reply
yw
how can I fix that? (here's the mod list)
as I said earlier, update your steamodded
Huh... Now do that with 60 suits
why the latest version is 0.98
no not from the releases, from the source
you're looking at 0.9.8, but you need 1.0.0 steamodded
oh thx
out of curiosity, how much did yall play before starting to mod the game, did most people go for the "all gold stickers on all jokers" thing before modding?
im just bored/curious
I finished c++ before getting into modding
I don't really play modded content, or not yet at least, just started creating mods
I think majority didn't do c++ tho
Does anyone know if there is a list of mods for steamodded 1.0?
Not a full list, but a lot are in https://discord.com/channels/1116389027176787968/1255696773599592458
I did a few decks on gold stake and most of the achievements except completionist + and ++ and the all challenges achievement before just swapping to modded completely
does anyone know if the boredom joker (i think) can retrigger copies of itself?
like if i had 2 would they keep triggering each other
from cryptid
or could it retrigger a brainstorm thats copying it or similar
No
The way I have the API set up retrigger jokers can’t trigger other retrigger jokers, otherwise you could get infinite loops with ex. Boredom and Canvas
cool i thought so
my pc is just dying
current fps 6 😭
its been counting my score for the past 20 mins
im gonna have to pull the plug
Or you could use Talisman
And reload the save
Low FPS probably means a lot of calculating
i have it set to disable scoring animation already if thats what you mean lol
ye
ill just have to end the run here then
exponentia is very strong lol
especially with double scale
does any1 else have an issue where they cant screen share balatro to discord after modding it
like instead of showing hte game it shows the
other window that opens up
this thing
When is the dice mod getting art
Specific ahh question
I don’t think anyone has tried
no I don't think it's about modding, I've shared my screens and never had this problems
could be wrong tho
if there are multiple windows discord should be able to pick that up
think it just has to do w/ playing balatro on fullscreen idk why
i changed to windowed borderless and it works fine
i was on windowed the whole time
you can deactivate the window if its giving you trouble
This game's robustness continues to astound me
(Thank Observatory for this)
rlly? whenever i try to close the window it closed the gmae so i thought u just had to keep it open 😭
how do i deactivate it 🙏
spent 24 hs trying to fix this: i need to guarantee 10 random different debuffed cards, anyone can help me, please?
function Blind:debuff_card(card, from_blind)
self.debuff_count = self.debuff_count or 0
self.debuff_attempted = self.debuff_attempted or false
self.debuff_target_count = self.debuff_target_count or love.math.random(0, 10)
if not self.disabled and not self.debuff_attempted then
if self:get_type() == 'Boss' and card.area ~= G.jokers then
if self.debuff_count < 10 then
-- Check if the debuff has already been applied
if not card:has_debuff() then
card:set_debuff(true)
self.debuff_count = self.debuff_count + 1
end
end
if self.debuff_count >= self.debuff_target_count then
self.debuff_attempted = true
end
end
end
end
if anyone know how, dm me no matter the time, i will really appreciate this
simply add "--disable-console" to the launch options
why dose this happen?
yes
it was working last week and i havent updated
mod list
steammoded isint working/instaled?
is there a mod that repetedly refreshes seeds untill the first shop has something spesific or a sertin skip tag with something in it (like soul)
I believe you are looking for https://discord.com/channels/1116389027176787968/1242974974701080617
now make it a standalone mod
Is there a way to check the game state immediately after using a consumable? For example, say I wanted to check the game state after using a Wheel of Fortune to see if it granted any editions, how would I go about that?
Using context.using_consumeable by itself checks the game state prior to the consumeable going off, and adding context.after doesn't work
Just overwrite use_consumeable, probably
(contexts are very limited, not everything is implemented)
Overwriting the context completely seems a bit extreme, but is there a way to make my own context?
Simplified English WIP 
Hooking use_consumable
How would I go about doing that?
You store the original function in a variable, then overwrite the original but call the stored function inside
Aight, so I managed to hook into use_consumable and make my own context:
local old_usecon = Card.use_consumeable
Card.use_consumeable = function(self, area, copier)
local out = old_usecon(self, area, copier)
for i = 1, #G.jokers.cards do
G.jokers.cards[i]:calculate_joker({after_consumeable = true, consumeable = self})
end
return out
end
But for some reason the new joker calculation is still taking place before it sees an edition has been added
that's due to event logic
you need to use an even yourself if you wanna go after the events from the use function are done
update lovely
how exactly?
oops, there
get this one
nope, still not working idk
now i get
Error
Syntax error: game.lua:4: '=' expected near 'Game'
Traceback
[love "callbacks.lua"]:228: in function 'handler'
[C]: at 0x7ffa7b572fa0
[C]: in function 'require'
main.lua:16: in main chunk
[C]: in function 'require'
[C]: in function 'xpcall'
[C]: in function 'xpcall'
verify game files on steam
600 drunks?
No, they're so drunk they're seeing 600x
I love discarding cards
function Blind:debuff_card(card)
-- Shuffle function
local function shuffle(t)
local n = #t
for i = n, 2, -1 do
local j = love.math.random(1, i)
t[i], t[j] = t[j], t[i]
end
end
self.debuff_count = self.debuff_count or 0
self.debuff_attempted = self.debuff_attempted or false
if not self.disabled and not self.debuff_attempted then
if self:get_type() == 'Boss' and card.area ~= G.jokers then
-- Gather all cards into a single list
local all_cards = {}
for _, playing_card in ipairs(G.playing_cards) do
if playing_card.area ~= G.jokers then
table.insert(all_cards, playing_card)
end
end
-- Shuffle the list of all cards
shuffle(all_cards)
-- Debuff the first 10 cards from the shuffled list
for _, playing_card in ipairs(all_cards) do
if not playing_card.debuff then
playing_card:set_debuff(true)
self.debuff_count = self.debuff_count + 1
if self.debuff_count >= 13 then
self.debuff_attempted = true
break
end
end
end
end
end
end
`
just in case anyone cared about this mechanic i implemented. finally got it working.
it debuffs in this case 13 cards minimum each blind boss, no matter which boss. and shuffles it with fisher yates shuffle algorithm, which i think is pretty neat
Quick question, I modded Balatro and put something in through the directory, yet I can no longer find the mod file on my computer, and it essentially won't let me mod anything else into the game
Balanced
Windows?
I use a custom card deck where hearts are red, diamonds are blue, clubs are green and spades are black. I managed to use a lua file to change the card deck and joker png's. But how do I change the in game texts to the correct colors? Thanks.
I think those are hard coded
Yeah, on Steam
it is suits yeah
theres' like 3 tables
for suit colors
or wait
lemme check
might be misremembering smth
iirc suits is set to either so_1 or so_1 depending on if you have high contrast enabled or not
yeah during load time
oh no!
Lol im stupid ig
Search for %appdata% on the start menu searchbar
You can also execute a command to open it directly but I forget if it’s just %appdata% or if it needs something before
I believe it's just Windows + R -> %appdata%. That's what I've been using.
holy moly chat...
Neat
cooking something up
4 in 3 chance to float away
gives... how much??
too much Cryptid
it uses the foil(?) cycling colour
DARK_EDITION
have you achieved flipped but showing debuff?
some of this jokers are debuffed and i cannot tell
the "+1 joker slot but debuff rightmost joker" voucher
not a mod dev, idk
what mod is the one showing debuffed below the card? any idea?
jokerdisplay

Go ahead. Play the game.
lol
i love , it's my favourite game
cavendish??
that's clearly .
This one is actually on me. I'm working on it
Should be fixed
Ig this is much shorter than the original
"Cards you already own can appear again"
that doesn't apply to booster packs having multiple copies of a card you don't own
Duplicate cards can appear
should I straight up make a WIP post for this tho
Vouchers:
can multiple copies of a voucher appear tho (I'm not talking about Cryptid's Equilibrium deck)
voucher tag
it makes the next ante voucher appear simultaneously with current one
This calculate function took like three days to write
But it finally does what I want
No hooking or added contexts required
lmao I like the <= check
I am become plant, destroyer of runs
gotta love that Oppenheimer tarot
too much power for one man to handle...
Are there any mods to launch the game faster? xD
May I suggest a catapult?
any ideas to completely rework ancient joker? i want to give it another task but dont know what
little trick to show the debuff layer above the flipped joker if is debuffed:
elseif self.sprite_facing == 'back' then
local overlay = G.C.WHITE
if self.area and self.area.config.type == 'deck' and self.rank > 3 then
self.back_overlay = self.back_overlay or {}
self.back_overlay[1] = 0.5 + ((#self.area.cards - self.rank) % 7) / 50
self.back_overlay[2] = 0.5 + ((#self.area.cards - self.rank) % 7) / 50
self.back_overlay[3] = 0.5 + ((#self.area.cards - self.rank) % 7) / 50
self.back_overlay[4] = 1
overlay = self.back_overlay
end
if self.area and self.area.config.type == 'deck' then
self.children.back:draw(overlay)
else
self.children.back:draw_shader('dissolve')
end
if self.sticker and G.shared_stickers[self.sticker] then
G.shared_stickers[self.sticker].role.draw_major = self
G.shared_stickers[self.sticker]:draw_shader('dissolve', nil, nil, true, self.children.center)
if self.sticker == 'Gold' then
G.shared_stickers[self.sticker]:draw_shader('voucher', nil, self.ARGS.send_to_shader, true, self.children.center)
end
end
-- Draw debuff shader if the card is debuffed
if self.debuff then
self.children.back:draw_shader('debuff')
end
end
thats not very normal is it
so question about dx tarot curses... are the icons for them meant to disappear once you fulfill the criteria to lift the curse or is it a marker that the curse cannot appear again
me when people actually use my mod: ❤️ 😍 ❤️🔥 💝 💖 💓
no rare cards 
yeah that's a shame
Thank you for the reply. I tried inserting this code but it doesn't work. What am I missing?
Did you overwrite the existing function instead of hooking?
you can just change G.C.SO_1 in your mod code without overriding set_globals
This is the code in the lua. So hooking, right? I have moderate coding skills...
I mean, as you wrote it it looks more like an overwrite than a hook 🤔
victin wants you to "wrap" around the original function, and replace all of its calls with the wrapped version
aure's solution would probably work too though
in fact, set_globals is called before mods are loaded, so you could only possibly change it with lovely
and if the overwrite was being applied, all other colors would be gone from the game, which would have caused major issues
a hook would equally have no effect
Ok, I'm in over my head... What should I put into mod lua to overwrite the suite colors?
G.C.SO_1 = {...}
G.C.SO_1 = ... with all the hex values you already have there
Oh so that’s why it doesn’t break
I was trying to understand why it didn’t break which is why I asked if it was a hook or not
I wasn’t trying to suggest hooking
Crashes the game https://pastebin.com/RchmYMKA
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Your hexes aren’t hexes
Well, Hearts’ isn’t
hearts has one extra character
right!
please don't reply ping me, thanks
yeah I'm pretty sure the game doesn't allow hexes to be 7 chars
no more game crash, but it isn't working
I think it might allow 8 though
Try SO_2
Or change the contrast
If the game is still open
yeah, for alpha values
6 or 8, but most definitely not 7
yeah its RRGGBB or RRGGBBAA
Tried SO_2 and SUITS... same result. Change contrast? Man, here was I thinking it would be easy... The comment says these values are for the high contrast suit colors. I'm using the standard suit colors.
SO_1 is normal colours
You could try setting SO_1 and SUITS, I’m not sure where the game overwrites the values
This is my full lua file. Maybe someone can spot the problem https://pastebin.com/siiFmzkA
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
well that was a fun rabbithole
somewhere, at some point the colours get saved in the function LOC_COLOURS at misc_functions:1493
when I override (or hook into) that function I can change the colours
for suit, _ in pairs(G.C["SO_1"]) do
local colour = (SMODS.AltTextures.Suit[name].suits and SMODS.AltTextures.Suit[name].suits[suit] or SMODS.AltTextures.Suit["Default"].suits[suit] or nil)
G.C["SO_1"][suit] = (colour and HEX(colour) or G.C["SO_1"][suit])
G.C.SUITS[suit] = G.C["SO_1"][suit]
end
``` this 100% works though
it even updates live
oh, that's cool
but I'm new to steamodded, and I'm getting an error on AltTextures?
AltTextures aren't released yet
bruh
Could you edit it in in my lua? Tried some variation, but the game crashes.
but in that code snippet the AltTextures stuff is just grabbing a table of suit colours like this
suits = {
Clubs = "1e7a46",
Spades = "255e85",
Diamonds = "d18a18",
Hearts = "ff4ca1"
},
yeah doesn't work for me if I try something like this
suit_table = {Hearts = HEX('ed2324'), Diamonds = HEX('3bb3f8'), Spades = HEX("000000"), Clubs = HEX("ffffff")}
for suit, _ in pairs(G.C["SO_1"]) do
G.C["SO_1"][suit] = suit_table[suit]
G.C.SUITS[suit] = G.C["SO_1"][suit]
end
this works for me though Colosso, should probably try that
are you on smods 1.0?
... I am, and now that you say it, that might be an issue
oh, that might do it huh
By the way @west hill do you want to add additional colors?
Should your code be inside function SMODS.INIT.FourColorDeck() or outside?
I had code to generate a Wild color that smoothly transitions between the four different suit colors, and it automatically updated when changing colors
No INIT in 1.0
^ depends on what version of steamodded you're using
I wasn't planning on adding any additional colours like that
That sounds interesting though
proper capitalization doesn't fix it 🙃
Balatro Version: 1.0.1f-FULL
Modded Version: 1.0.0-ALPHA-0630a-STEAMODDED
Love2D Version: 11.5.0
Lovely Version: 0.5.0-beta5
That’s 1.0
It has no INIT
this is the working version I had
old_loc_colour = loc_colour
function new_loc_colour(_c, _default)
suit_table = {hearts = HEX('ed2324'), diamonds = HEX('3bb3f8'), spades = HEX("000000"), clubs = HEX("ffffff")}
return suit_table[_c] or old_loc_colour(_c, _default)
end
loc_colour = new_loc_colour
(I did change the colours for visibility btw, so you'll have to change those back)
oh maybe the early version of alttextures that got merged in by mistake is stopping you guys from updating the table normally
lmao that'd be something
that would also explain why mine works
yeah, I think it would load your code but then it will overwrite it when it sets the card texture to the default one
I'm totally lost now. Would you want to edit my lua? https://pastebin.com/siiFmzkA
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
something like this
--- STEAMODDED HEADER
--- MOD_NAME: Four Color Deck
--- MOD_ID: FourColorDeck
--- MOD_AUTHOR: [wout25]
--- MOD_DESCRIPTION: This mod change the default deck to match the standard colors used in four color decks in poker.
----------------------------------------------
------------MOD CODE -------------------------
-- AFAIK, `INIT` like this is no longer necessary in steamodded 1.0.0?
function SMODS.INIT.FourColorDeck()
local FHC = SMODS.findModByID("FourColorDeck")
local sprite_cards_1 = SMODS.Sprite:new("cards_1", FHC.path, "8BitDeck.png", 71, 95, "asset_atli")
local sprite_jkr = SMODS.Sprite:new("Joker", FHC.path, "Jokers.png", 71, 95, "asset_atli")
local sprite_ui_1 = SMODS.Sprite:new("ui_1", FHC.path, "ui_assets.png", 18, 18, "asset_atli")
sprite_cards_1:register()
sprite_jkr:register()
sprite_ui_1:register()
end
old_loc_colour = loc_colour
function new_loc_colour(_c, _default)
suit_table = {hearts = HEX('ed2324'), diamonds = HEX('3bb3f8'), spades = HEX("000000"), clubs = HEX("ffffff")}
return suit_table[_c] or old_loc_colour(_c, _default)
end
loc_colour = new_loc_colour
----------------------------------------------
------------MOD CODE END----------------------
that is extremely old code
@tranquil vessel can you comment out lines 430-434 of utils.lua in the steamodded files and try the for loop again?
sure
yeah that fixes it
good to know
I suppose when the final version is merged anyway people should migrate to using that to retexture things
How long will it take for AltTextures to be merged? If it's gonna be a while, might be nice to remove those lines from utils.lua so other people don't trip over the same thing
I have a fully working version that is available to test but ejwu wanted to change a few things
It works! Thanks a lot for the help. At first it didn't because of the capitalisation of the variables Hearts, Diamonds, Spades, Clubs. It has to be hearts, diamonds, spades, clubs.
Ah alright. Good luck then :)
Nice! I'll be honest, I fucked something up in the steamodded headers when copy pasting 😅
didn't think it would but it did
should now also be fixed in my original message
No wories, I didn't copy the header
I don't know if this is the correct place to ask this but is it possible to modify the quickrestart mod to automatically restart until an ante which contains an arcana skip with a soul card in it? (or does such a mod already exist?)
I haven't heard of the quickrestart mod, but maybe https://discord.com/channels/1116389027176787968/1242974974701080617 is what you're looking for?
thanks a lot! i'll have a look
Yeah, Brainstorm has this functionality
how get install streammodded? i tryed and no mod folder appeared
You must create it
if you have lovely installed, yes
can i name it anything or it has to be named mods
folder with mods has to be named Mods
still dont work, what am i missing?
i click Windows download right
i read it all b4, i still dont get it.
what to do after i copy version.dll, and added a "Mods" folder. then put a mod into it (unziped, and the whole folder)
where did you put version.dll
in balato folder
yeah, so when you start the game you should get a console
which would indicate that lovely is installed
its brainstorm mod
no
that appears with steamodded only
if you just need brainstorm, I believe the folder needs to be named Brainstorm
like
Mods/Brainstorm
otherwise it won't work
does it look ok
nope
?
go into explorer, and in the path paste this %AppData%/Balatro/Mods
well
%AppData%/Balatro/
then press enter
Oh
And name is “Mods”
Right?
Cap m and all lower
I assume anyway, I'm not a windows users but it's similar to whatb you do for mac
I think so
I can’t make a Folder
Oh wait
I’m stupid
@fervent owl sorry
U prb rageing at me rn
I think stupid went offline lol
He will see it later
so u good now?
Nope
oof
https://discord.com/channels/1116389027176787968/1209564621644505158 try going here, this is fairly active and people (who use windows) can help you there
wait the mods tab didnt appear but commands work
so ig its a win?
Can you screenshot your mods folder?
Okay so you don’t have a mods button because you haven’t installed steamodded
...
question how do i download mods? i want to learn the game first but i was curious i saw someone with a full stone deck
do i put the version.dll in the folder b4 mods one?
full stone is possble witjout mods
no no, version.dll is lovely
No version.dll is to install lovely and that goes in the game directory