#đ»ă»modding-dev
1 messages · Page 255 of 1
cause sometimes when the card has 0 chips, it still says +0
if context.joker_main and card.ability.extra.chips > 0 then
return {
chip_mod = card.ability.extra.chips,
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } }
}
end
you don't need to write the message manually
Just return chips = X
are there any smods docs for G.GAME?
i need to read the game state, unsure what i can read
i see the event manager should allow me to dispatch in-game actions right?
As far as I know, it queues whatever event you want into the event queue.
so could i use to queue like "play hand"
as if im like actually playing the game?
Is this a possibility?
Well, yes and no.
That would require a lot of extra work.
oh, hmm
The idea of the events things is for stuff to happen not instantly.
ahhh
yea
As far as I know, every little animation the game does for each card, like scoring chips, mult, moving cards and etc, those are all events.
They happen in a sequencial order, which is the event queue.
makes sense
So exactly, what is the question here?
im looking to puppeteer in-game actions, its not exactly a traditional mod
if i cant do that from a mod ill just mock in-game clicks, its just more tedious to do that
if its not exactly feasible ill just do my plan b lol
Alright.
Maybe, just maybe, you can do that with a mod.
Each button you click I think triggers a function or something.
At least for buttons, I think.
its weird since if balatro is just a big pile of lua there should be a way to trigger the routine for selecting a hand or discarding
Probably a lovely patch or a extremely complex mod.
What are you trying to do, exactly? A replay system of sorts?
lets just say im trying to externalize the game state, so some extra processing, and then send an action back in
oh ... this doesnt work
Then idk.
ok ill do plan b
That's a tad bit more complex than what my stupid brain can do.
Lemme take a look...
are there more experienced modders in this chat?
hihi! can someone check over my code? i don't think my context is correct
(the cards do nothing)
wait, would it be possible/allowed for me to track balatro's stack for me to identify the subroutine being called for in-game actions?
I realize I gave you bad advice. The context gets reset, so the splash functionality you'd have to patch in. But I think like Eremel said, there's a context catered to doing that, called modify_scoring_hand
You could just hook into the button presses
thats what i was saying earlier
But yeah there are states to read out
i would have to track balatro's stack tho
since idk if the fns are exposed
im able to do this if its allowed and theres a usable debugger
how do i use pools in the rarity thing
where even is this in the docs
It depends on what you wanna do. You can just inject or hook into them and interact from there
i made a new rarity but my joker is not appearing in the shop at all
(bump)
Everything about splash and unscoring cards is still undocumented, so it's not surprising you can't find it!
not sure what you mean by this
sob
Lovely patches allow you to inject code directly into the source code, so that you can add to or change vanilla functions
i dont need to add to them, just call them
Ooh, then you can just call the button event for playing a hand, right? I'm not sure what you're end goal is, so the best approach might depend on the details
yeah thats what i want basically
the balatro mod im making is mostly a thin communication interface for another thing I'm building
you could consider it a remote almost
Just call the function when you want it to be called, it'll functionally simulate a button press, except no visual feedback will happen on the button, I suspect.
How would one do this?
but how, is this a public api or do i have to locate the routine with a debugger
what's going wrong? Currently you're upgrading every card that scores for every unscored card played
It's Lua, all code is public and almost everything in Balatro is globally scoped. #1349064230825103441 message
Oh, just check the source code. It's in the ui Lua file somewhere. SMODS is an API that'll help you with some additional functions probably
wait its not minified/obsfucated
take a look at my poker joker
bruh what
it should upgrade if it's unscored
i was running on webdev logic, i was expecting some obsfucated bundle full of stuff like function fn2f3ab383_37b281a(_a, _b, _c, _a1, _d)
jokers with meta jimbos rock
wild thanks
You don't have to iterate over each card scored and unscored in that case. Currently it'd trigger for every unscored card played
ah kay ^^ what should i do, then? i'm new to making enhancements
thank you kind sir
that is so true
Haha that explains the miscommunication. Nah, Balatro's very open and you can do anything with it as long as you can read code haha
I reckon there wouldn't be much of a modding community if that were the case. Minified JS might as well be assembler for how readable it is
"no scoring for you"
how would you compare how many chips you score (the blue box) to the blind requirement?
Context.main_scoring and context.cardarea == "unscored" should have the enhancement triggered when unscored
how do i call this
of course i do if context.modify_scoring_hand
Is this possible?
I suspect you return {add_to_hand = true} for each card you want to add to the scoring hand. I've not used it before, but that is what it reads like
ouch
I assume it gets called for each specific card, so you just return it, I reckon
is there a shortcut to reload the game quickly?
hold M for 1 second
(iirc)
oh, two issues with Ghost Seal
- what's this dark outline around it?
(code)
it works, thank you
The dark outline is an alpha issue from your pixel art editor. I wish I could tell you the tool, but there are tools to remove it
And badges need labels for their tect, iirc
Probably. But I know someone shared a tool here last month that automatically does it to every file in a folder
ooh ^^
Lm check if I can find it because I definitely need to use it myself too
is there a way to get notified of when the game state changes?
so i can differentiate between shop/blind select/play/scoring
Inject into the state manager, I'd say, or just check the game state variable and when it changes.
It's accessible fully, after all
is there a viable way to do polling
i dont want to have a tight while(true), is there an equivalent to setInterval
doesnt smods already allow this with the extended contexts
I suspect this is where you find out that I just happen to have looked a lot at the Balatro code, but you yourself are gonna now more about coding in general, haha. My approach would be to just hook a function into the state manager that triggers whenever the state changes, and then base your implementation on that.
got it, ill do that i assume, have to dig into it
@wintry solar Question about the localization argument for malverk and how it works? Asking as I'm running into an odd issue when the code for the TexturePack object is included it seems to weirdly affect the descriptions of a couple of deck/back descriptions such as Plasma and erratic decks causing them to not properly update if the language is changed, it only seems to update those ones to last language used if the game is reloaded
Is this able to be done?
Balalo
did you find it?
Does anybody know why the badge color in game wonât change? It happened with the last joker I made. I set it to be a purple, and it stays as the default color
I think you said to change it to uppercase. I previously had it lowercase and it didnât work đ
also i'm not sure you can put the badge colour there iirc
No, sorry, but I'm on my phone. I need to use it myself, so I'll search for it again when I'm back home after the weekend, and I'll send it to you if I find it
ah :{
try adding that to the JSON file
ah okay ^^
From what I remember this should all be green text

That is part of my JSON file! If thatâs what youâre saying
I might be stupid tho
I just followed the GitHub tutorial for the metadata. I donât know whatâs going on
Try putting â- in front of it all :3
Might be a silly question. But is that two hyphens, a space and then another hyphen?
If your image editor supports it, you want to export the png with an option somewhere along the lines of "preserve color data for transparent pixels," assuming you have a work file for the art.
It might also refer to it as an "optimization" of some sort (saving color data for totally transparent pixels makes the file larger)
Ah you use GIMP as well. Yeah, jusy above the drop-down.

Nope just 3 hyphens, discord does it silly
Oooh that's very good to know
It might need some extra setup to actually have the right data in the transparent parts. One method of doing it is having your very bottom layer be the color of your outline, and then having a totally solid Erase layer above it.
I'll look into it. I assume there's plenty of good guides on the process for Aseprite, luckily
Like this?
Firch had made a tool
If your outlines are multicolored, you can make that bottom layer a copy of the image, and slightly blur it (the smaller the blur the better the colors will match, usually 1px is ideal). For safety's sake in that scenario I usually do a few copies, each lower one blurred one additional time.
Is this something that is able to be accomplished?
can't the Voucher create a Consumable
yup! esp when you're doing pixel art you gotta remember to click on this:
and switch
and this goes for literally every single tool in the program (sigh)
Aseprite doesn't preserve color data for transparent pixels
No, I mean like when you buy the voucher instead of being redeemed, it gets put in the consumable slot.
v_v
krita!!
and I'm proposing an alternative
Aseprite!!
Aseprite better smh my head
GIMP :3
That the voucher creates a consumable of itself?
Nono, in front of the entire line! Itâs usually to make it so the line isnât actually read, but I think it reads those very specific things even if done that way
No, that it creates a Consumable that does what you want the Voucher to do as a Consumable
Aseprite my beloved
That's not Lua
fonts not working
So, I recreate all the vouchers as consumables?
Sure? Idk what you have in mind
That's my secret
Oh itâs not?
I'm always making sh*tty pixel art
Real!!!!
is this shitty pixel art
ig my "no draw art yet" card is literally Blank
I suspect you could just hook or patch the voucher use function and emplace it in the consumeables area, no?
No you have to scale it down and up 15 times
Thatâs why itâs called pixel art duh, more pixel compression the better
you have to save it at lowest resolution then screenshot it and save the screenshot again
multiple times
That's how I make joker art for Kino
or just move it from the Voucher area to the Consumable area
Only ever save it in jpg, it's true.
but I don't know why they want Vouchers where they're not supposed to be
i'm sincerely doubting all of your advice
I advise you to become asbestos
well i meannnnnn, Pattern was technically a consumable, right?
I've won Best Balatro Mod for 12 years in a row, and best Joker Art for a Joker called Morbius twice, so I'd say my advice is prrretty stellar
Good schmorning chat
If you become asbestos, then asbestos can't hurt you
dang it.
what's pattern
unused vouchers found in some demo versions
Hm. I can't think of a ligma for that.
It's not a Consumable
aware. i said "technically"
have you tried updog
also not technically
like, it doesn't do anything passively over the run, it just gives you stuff
you seemed to be destroying cards incorrectly early
doesn't make it a consumable
again, ya, i didn't say it was a consumable
just that it does something that a consumable could do
i mean 'technically' it is because you 'use' a voucher to 'get' a 'benefit'
checkmate
unlike other Vouchers, it did something only when purchased
I mean you're setting them to nil
It's like a wrong way to destroy cards
is it not in a local var??
I think that context is like the context for Individual, and that you just wanna return true, instead of the card object
oh
ice my goat
weren't the cards disappearing in the video?
How do I apply the voucher shader to the consumable?
draw method
pass the shader
they were actually just being returned to the deck fsr
Also you can't for loop a return statement that way, it'll stop after the first hit!
Unless I'm doing it incorrectly, the hyphens are showing up as red anywhere I put them
consumables don't do things when purchased either
oh hm
mine is like this and is functioning :3
sorry took a sec for my pc to boot up
that is outdated
doesnt that only work for back compat
me when i when i when
dangerous life you live im ngl
if you want to move cards, it should probably be in an event, and/or done at the end of scoring
if it stops working i can just re-make it, no?
you might also need to hook Card:can_calculate

all i wanted to do was retrigger unscoring cards đ
this seems too complicated of a way to do that
exactly
Instead use the 'unscored' CardArea
well i wanted to score them then retrigger them
I'd rewrite the context to assume that context.modify_scoring_hand runs for each card. That you you can just check if the card is unscoring, and add it the hand
i do this
i still have things written in old ways but until it stops working im not inclined to change it
kimmty
there's also a context for manipulating cards that are included in scoring or not
Quite sure that's the exact context they're using!
she's just like me (autism in the eyes and likes confined small spaces)

2%
I was changing it in my JSON, not my lua file. I included the badge color in my lua file and it's working now. Thank you!
ah no need for table delete from table shenanigans
i'll try
ohhhhhhhhhh, yeah np!! idek if i have a .json file LMAO
i put that stuff in my main
damn ur livin life
BADGE_COLOUR
đŹđ§
I was told by another modder that it's ssuggested I have a JSON file. Im not really sure what they do, but I just copy and pasted the template into my JSON
BADGE_COLOUR đłïžââ§ïž
idk if color works
if you want free delete table from table code ```lua
for j = 1, #lf do for k = 1, #ls do
if lf[j] == ls[k] then -- thing in lf is also in ls?
for i = j, #lf-1 do -- then starting at lf thing:
lf[i] = lf[i+1] -- replace it with the thing before it (effectively deleting original lf i)
end
lf[#lf] = nil -- yeet the last thing in lf (bc lf[#lf-1] = lf[#lf] rn)
end
end
aint nothin sad about it
common america L
easy, colour = color đ
iwahabaohowahuh
Spelling's variable, you know
it appears that my lua file is the only one making changes. I changed the hex color again my my lua file but kept my JSON file the same, and the color changed. So im not sure what the deal with that is
hey guys! iâm back, and iâm still confused on why this little snip of code doesnât do what i want it to
i dont think boja, tsyvat, farba, kleur or vĂ€rvi works đȘđș
Not a real language
when i say 'chips' im not talking about fries..........
those are multiple real languages
what about cor and couleur
languages arent real
Simply not true. We all know English (American english) is the only real language
-# high key wasn't about colors but i changed the topic to not make it depressing

gay
-# thats entirely the point actually
for k, v in pairs(G.playing_cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(true)
end
end
end,
remove_from_deck = function(self, card, from_debuff)
for k, v in pairs(G.playing_cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(false)
end
end
end,
calculate = function(self, card, context)
if not context.blueprint and context.playing_card_added then
for k, v in pairs(context.cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(true)
end
end
end
if context.individual and context.cardarea == G.play then
if not card.ability.extra.dead then
if context.other_card:get_id() % 2 == 0 then
return {
mult = card.ability.extra.mult
}
end
end
end
end```

mmm
awww
Have people worked with the blind calc additions to SMODS btw? Is it stable?
Can you show the full log?
i haevnt seen anyone upload too much blind calc as of yet, but i presume its stable nonetheless
Most of it seems normal to be, but cards debuffing themselves either don't work or I did something wrong
Hmm, I assume I gave you some bad directions about how to use that context then. You might wanna check when that context exactly triggers
oh
Hmm, no checking the smods code it should work that way
itâs supossed to debuff all odd numbered cards
but that doesnât seem to be working.
hey guys (gender neutral), how would i check if a played hand contains exactly one card?
Oh wait, reading it proper, why are you making a table?
The table will get wiped
It's local, so after each context check, it creates a new one and throws out the previous one
I recommend the simpler solve of doing 'context.other_card.splashretrigger = true', and then checking that during the repetitions context, and just setting it to false again afterwards
i might just have to ask @stray warren because theyâre the one that wrote the code
is this how i do it
never tried making a mod compat with talisman before so idk what im doing
bepisss
hiii
i need to do talisman compat but why isnt it just as easy as if talisman make to_big end
it seems shi breaks when money is infinite
idk either :3
but my mod scaling is probably gonna go insane the more shit i add, so its best i take care of this early
idk if im doing it wrong tbh, it doesnt crash anymore
tâ·â á· âáăȘá âŽđčâ êâž â áá· âž ÌŁâá· á·ăȘá”âáăȘâž ÌŁâăȘ âŁ âž ÌŁáÊêá· âđčăȘâž ÌŁ
i also tried just putting it G.GAME.dollars, same results
but removing to_big on card.config.center.cost and it crashes, so thats definitely mandatory
hmmmm
high key you gave me an amazing idea
add_to_deck = function(self, card, from_debuff)
for _, v in ipairs(G.playing_cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(true)
end
end
end,
remove_from_deck = function(self, card, from_debuff)
-- Remove debuff from all odd cards when The Doise is removed
for _, v in ipairs(G.playing_cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(false)
end
end
end,
calculate = function(self, card, context)
-- Ensure new odd-ranked cards added to play area are debuffed
if context.cardarea == G.play then
for _, v in ipairs(G.play.cards) do
if v:get_id() % 2 == 1 then
v:set_debuff(true)
end
end
end
-- Apply Mult when even-ranked cards are scored, if The Doise is alive
if context.individual and context.cardarea == G.play and not card.ability.extra.dead then
if context.other_card:get_id() % 2 == 0 then
return { mult = card.ability.extra.mult }
end
end
end
}
if i understood what you wanted, this works
gonna make enchantment table consumables
can u speak enchantment table
theoretical question
is it possible if i want to replace a sound of a mod with the one that came from my mod
oh
i think i know why
i dont even think comparing "inf" with "5" is valid
:3 im so fucking confused
oh i have plans im so excited
women :3
women <3<3<3
:3
yeah it stopped crashing
issue is: i have no clue how to make it work
hold on context.other_card.splashretrigger doesnt exist iirc
is it not calculate_retriggers() or something
function Card:set_perishable(_perishable)
self.ability.perishable = nil
if self.config.center.perishable_compat and not self.ability.eternal then
self.ability.perishable = true
self.ability.perish_tally = G.GAME.perishable_rounds
end
end
``` bro why do they not use `_perishable` at all here
:3?
lua convention is that if you arent using a variable you mark it with underscore
they use it in Card:set_eternal and Card:set_rental ```lua
function Card:set_eternal(_eternal)
self.ability.eternal = nil
if self.config.center.eternal_compat and not self.ability.perishable then
self.ability.eternal = _eternal
end
end
function Card:set_rental(_rental)
self.ability.rental = _rental
self:set_cost()
end
if it returns true prob
ââá”ê ||đčâ, *âăȘá·ăȘá”âáăȘâž ÌŁ á ||đčââ· âđčăȘâž ÌŁ *
hey this isn't super dev related but i just wanted to say i really appreciate this modding community c:
;3 aw
:3
besides it's very counter-intuitive to have a function called set_perishable that takes what seems like a boolean argument, only for it to not be used at all in the function and for it to just set it to true
sames,,,,,,,
do i have to be this specific
does anyone know the variable for money? so i can set up an if statement dependent on how much you have
G.GAME.dollars
it just makes me so happy seeing my shitposts come to life and merge with the base game and other peoples mods, i love seeing how modded jokers interact with eachother making for newer weirder strats :3
alr thanks
I'd recommend using Card:add_sticker instead
I'm removing stickers
cursed tbh
bepis
then use Card:remove_sticker
hi aiko
i am so coojked...
im trying to make my mod compatible with talisman :3
I don't think either of those functions exist
at least not in my dumped card.lua
they're in smods utils.lua
aiko hi omg :3
cant be as cooked as me
fire asf!! i have been doing that from the get go, i love talisman c:
woah its aiko chat
I see
i hate talisman
im so confused about how it works rn đ
what are these cart art
im confused about how lua works, with enough time and research you can totally understand it!! :3
5 balls
No, it doesn't, you'd set it yourself! It'd be a temporary variable that'd allow you to check if a card has a specific quality
ah
it crashed my game did i screw up
It's not for the retrigger context, but I can send you a joker from my mod that uses the same concept to check if a card needs to be destroyed, if you'd think that could help?
oh i just need the talisman thing got it
do i use this to compare Infinity with a number
baseball huh
idk, im sure they have a discord where you could ask for help!! :3
the easiest way to deal with talisman is to uninstall it
ok this is weird
why do these two jokers have a different back? (they're all flipped at that moment)
the lucky cat is the correct back
could it be something from debugplus?
wtf
why isnt this working
what is the to_big() function
u forgot this
oh right
to_big that too
ohhhh truw
...do i just make my mod incompat with talisman at this point :3
yeah i have an idea
what's bugging me is mostly the modify_scoring_hand thing
haiko (heheheufaguifapleasehelpI'mgoinginsane)
it's so triggering to me that it's misspelt
hi
or is it like to big num or smtn
NOW where did i screw up
People keep damn installing my mod with cryptid tho
unfortunate curse
what's the to_big function
talisman
what's that
turns integers into tables that can handle big numbers
or well
bigger numbers
dude, same
OH CAUSE IT STARTS AT
im so stupid
do i still need the other stuff?
i dont think you need to to_big(G.GAME.dollars) since its already a table
@wintry solar Would you be able to tell me why my perm mult increases by 2 every trigger instead of once?
gold bars
aiko....
actually its more like +3 i guess since im counting the base mult i want it to have
reminder that https://en.wiktionary.org/wiki/âš#/media/File:Blue_circled_9.svg this file is on wikipedia
How do i get the sell value of a consumable?
if context.buying_card and G.GAME.dollars <= 0 and G.GAME.dollars > to_big(0) then
you forgot to to_big the first 0
i did
wait then i dont need
see, the funny thing is
not only does my mod have a dependency that has talisman as a dependency
but my mod has talisman as a dependency itself because it uses the exponentiation function that talisman provides
đ
wait what the fuck that is such a flawed logic
dasda
icic
local valueToPutInIf = to_big and to_big(G.GAME.dollars):le(0) or G.GAME.dollars <= 0
????????????
what are you trying to do
the inf in question is in G.GAME.dollars
is it like
way beyond 1e309
im doing stuff like
"if you have more money than (x), yes"
its just so i can buy something without crashing with talisman
...whats :le(0)?
local valueToPutInIf = to_big and to_big(G.GAME.dollars):le(some_value_lol) or G.GAME.dollars <= some_value_lol```
?
turns out if a card is splash'd then... it's not in unscored?
đ
less than or equal
yes, splash scores all cards!
oh, i see
making them scored :3
gte i'd assume
local valueToPutInIf = Talisman and to_big and to_big(G.GAME.dollars):gte(some_value_lol) or G.GAME.dollars >= some_value_lol
oh hm
check for talisman too
maybe im doing something wrong
now?
because sometimes mods just add to_big
Oh yeah, you explicitly removed it from unscored by splashing it!
:3 how do i do that
does this still work for that thing credit card does with the negative money
_
womp wompp gotta detect it somehow
should
i tried destoying it... it fucking made it a ghost
i am not a code wizard by any means
You detect it by marking the card as you splash it
why is he upside down
just Talisman?
if this works then im forever in ur debt aiko :3
aiko after casting level 5 code fireball
i have to add consumables to all of this đ
how do you properly destory a card
wtffffffffff
https://github.com/icyethics/Kino/blob/main/items/Jokers/fight_club.lua
Here's how I mark a random card for destruction, for example, by setting a custom value and then checking it. In your case, you also wanna turn it off again, though
Alright I am stumped - I have followed the smods example as best as I can but the in game values come up nil, any insight as to what I am doing wrong?
consumable
did you restart a new run
wait, i think i found my error
I just started the game and opened my collection to view the card
Try respawning the joker and see if it's still nil
what i dont get is why aye never prints
perhaps i'm checking context.cardarea wrong?
OH
you're supposed to use loc_vars
it's not local_vars
The modify_scoring_hand may not check that cardarea ever
how do you destroy a consumbible
That was it! Oh my the simple little things haha
Works now :3
No, that won't change anything. Contexts are given in bundles, so that one won't be true
they only become debuffed when played
i want them to ALWAYS be debuffed.
hm
like how a blind does it
I was so confused because Cosmos
You can simply run a for loop through your scoring hand, and return empty if you find the current card. If you do not find it, return add to hand
i did this, i had to force it to always be debuffed by doing this every frame
update = function(self, card, dt)
card:set_debuff(true)
end
LOL Well thats a coincidence, I just named mine after me
but thats a permanent debuff no matter what
yeah⊠as long as the mod ID is different
so where do i put this in my code
great question, i brute forced my code, i am not the guy to ask
@sullen fern what are you trying to do
always have odd cards be debuffed when the doise is in play
?????????????
use context.debuff_card
Brazil?
this is the code iâm looking at, for reference.
and I'm suggesting the new SMODS feature
well, i donât know where to put it!!!
THE BLIND CALCULATE FEATURES!!!
alongside everything that handles contexts
calculate
the calculate function in blinds is such a good thing to have
no longer do i have to hardwire my shit in the events
so now that i have this what do i do to the if statement in calculate
so it would be if context.cardarea and context.debuff_card
if valueToPutInIf
if iâm looking in the right area
well, if context.debuff_card and foo(context.debuff_card) then
which is this one
oh duh
the âensure new odd ranked cards added to play area are debuffedâ section
-ish
đ
also need to handle unscored cards
coding with serif font is crazy
what colors are used when a card is sold
why
bc i want to have the dissolve be the same color
I think it's like money
it crashed after i went into negative
what are you trying to do
it didn't return anything
i s'pose
wait hold on
what are you doing
what do you want to do
would you rather
yea
credit card effect
so, how would we do that
yeah i got that
iâm still confused on where iâm intended to put all thid
inside the calculate function?
yes.
if context.cardarea == G.play and 'unscored' then
đ
you'll need to check which context too
đ§đ·
is there an unscored context?
what are you trying to do
always have odd cards be debuffed by the doise
local coldcash = Talisman and to_big and to_big(G.GAME.dollars):gte(0) or G.GAME.dollars >= 0 or to_big(G.GAME.dollars):lte(0) or G.GAME.dollars <= 0
would this fix it
always or when played
idk
always, i already gave them when played
im watching this sorry
but it wasnt good enough
are they adding Brazil to Minecraft
always.
then you don't need to check the CardArea
What's the doise for object?
i see
how do i change the players amount of cash
nvm
i scrolled up
aw shit, here we go again
Reminds me. The Minecraft movie is coming out on my birthday. Not sure if thatâs a good or a bad gift đ
i think you mean A minecraft movie đ€
i was going to put the finger but its not on discord
yea, it crashesz whenever you try to leave the shop
ok wild question, can I force another joker to trigger after it's already been triggered?
Anyone know if lua does pass by value or pass by reference for equality?
Like if I compared full_hand to scoring_hand, would it trigger an objet or value reference comparison
got it working, if anyone wants to know how, color can be card.dissolve_colours
erm, akshually⊠đ€ âïž
what does juice_up do?
juice_up means jiggle this card
oh
if card.facing ~= 'back' then
if context.other_joker.post_joker and JoyousSpring.is_monster_archetype(context.other_joker, "Fluffal") or JoyousSpring.is_monster_archetype(context.other_joker, "Frightfur") then
for _ = 1, card.ability.extra.copy do
context.other_joker.calculate(self, context.other_joker, context)
end
return {
}
end
end
end```
If this works how I think this works, I am gonna do some horrendous shit
Are you making a JoyousSpring add-on?
correct
Rad!
if you can guess what the gimmick of fluffals is gonna be, you can imagine how broken it's also gonna be
oops
rot a te
@tall wharf is it possible to G.GAME.chips/5 with talisman
yes
im so cooked
me when i forget\
im trying to make a hand that only scores when you have no hands left in your hand or deck and you are only playing one card, this is what my code looks like so far
if G.hand == 0 and G.deck == 0 then```
i dont know how to check if your only playing a single card
au contraire
i believe i remembered too much
Bepis you're making me dread doing talisman compat đ
this is it right
-# that local var is supposed to represent the comparison at the bottom but for talisman
you will have to do it eventually
:3
not really, its a whole separate mod so its never a requirement
which is used by a huge portion of the modding community
so just for the sake of making your mod much more convenient to play with
you would have to make it compat with talisman
...and uh, i want to keep my players too :3
the only 'need' is having balatro
if talisman made themselves easier to work with it wouldnt be a prob
I have no idea đ€·ââïž
Half of the crashes I see are people trying to run Kino with Cryptid or something and talisman freaking out
I really wish there was a way for that compat to be talisman-sided but sadly it's not
âčïž
I finally made a page for this in #1209506514763522108 btw, in case u didn't see :3
the mod's name is Aneyh Vampirica :3
youd think theyd just pull whatever they change and make the compat inside change whatever
i dont actually understand how talisman works myself
Turn numbers into tables so you can have big numbers
and too many mods already added stuff to make them compat with talisman anyways, so i think theres less need to make it more convenient to change how that works
...OH ITS RIGHT
It's just annoying honestly that another mod is such an important compat, but I get that people want to play mods in huge packs
Or just turn some things off, instead of swapping whole things out
bepis is less than equal just lte
probably needs to to_big card.config.center.cost too
Is there a write up for talisman compatibility you're following btw, Bepis?
less or equal is lte
...no, im copying the code aiko gave
this one
for some reason the game crashes every time i hover over the card now
thats why i was asking cause i changed it to lte
I wonder what needs to be bigged and what Talisman takes care of normally. I should honestly look into Lua's quantum tables and see what those can do
Someone that sounded smart was talking about them in the context of quantum ranks as well, and that seemed like a good solution
this is not it either
...WHY IS IT EVEN BREAKING
IT WORKED EARLIER
WHAT
i am so close to absolutely breaking it down
its whatever is being compared with values that are changed by Talisman
like G.GAME.chips, G.GAME.blind.chips, G.GAME.dollars, and such
if you were to compare them with "5" for example, you need to to_big(5)
to turn 5 into a table
ghh
im also struggling with talisman, but can u show me that line
-# whats with that theme
uh
you know what, heres my theory
im listenin
this is the problem, because:
if to_big(G.GAME.dollars):lte(0) returned true, then sure, everything works normally
BUT
if it returns false
then it will run G.GAME.dollars <= 0 again
and as we know, G.GAME.dollars is a table
so it will fucking break
you need to_big(0) on that
whats the calc function
here goes
IT FUCKING LIVESSSSSSSSSSSSSSSSSS
if i have a mod, and its lua is called for, how could i get it to run a python script if able to be done at all
i have a script that randomizes the color in a trance color file
and i want to have that run everytime i boot up the game
DONT GIVE ME HOPE IM TERRIFIED
oh my god it didnt crash
real moment of truth is going into the negatives
why arent you transforming
I should add JokerDisplay to the list of mod compatibilities to set up next too
yeah (let me reopen the game.... i3 core....)
I trust N to have made it doable, his code is some of the neatest I've seen in any mod, after all
oh.....
wait i should get negative first
wha
what do u trust me with??
i would trust you with my life
im testing something, hold on
im watching a vtuber play my mod rn its nice
I'd trust you to not send me to the shadow realm without valid reasons
idk whats going on over that side toma
đ
mine works normally
can you show me your to_big function
yes
you are successful N'
dont forget me pls :3
i need to find time to play your mod
i dont even play mine that much lol
which Vtuber
uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
same, i fucking love yugioh AND balatro
can you try printing just to_big(0)
i dont know what the fuck is going on :3
do i change num to x
...i guess?
try it
to_big = to_big or function(x) return x end
heres my entire function
im only at 310 đ
there are 57 lines in my main file
there are 2012 in mine
and like 5k3 lines in my jokers.lua, but thats not a fair comparison since my mod is vastly different from others :3
question, do you have talisman running
hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
okay letâs see if num was the issue
i also made it one line
darn
oh wait the eval
nilâŠ
bruh
đ
do you have anyyy other content mod rn
like, ones that add jokers and such and are compatible with talisman
none enabled
maybe my talisman version? which version should i have
The newest probably
yeah what version are we on though
this is my version
ive been haivng moderate success in converting my shit to to_big but its been alot of fucking around and finding out
Mood
theft.,,,
tf
and me (we had the same issue which was funny)
me when i borrow anything
REAL I ASK TO BORROW THINGS AND I FEEL SO EVIL AND MANIPULITIVE AND I GO MUE HE HE

DID IT WORK

what does this mean đ the documentation doesn't mention a "center" param anywhere
TALISMAN CONQUERED đŁïž
i think create_card is just for jokers
might be wrong though
the docs says i can do tarots/spectrals
o
i asked paperback dev about a snippet of code. turns out it has an MIT license so I didnt even need to ask
I should probably pay more attention
yea i get the same error
this is my code
not sure if anyone can spot whats causing an error in the card.lua file of all things
i notice the stack traceback starts at (3)
why not start at (1)
i just updated steamodded (it did not fix the problem)
u have a similar issue to me
the key needs to include prefixes
c_modprefix_sealtarot
Also for the edition it should be edition = 'e_negative'
ohh
i get a similar error
but im not sure why it gives me the error because I'm doing all of the code atm with get enhancements function
so it shouldnt fuck up with prefixes if it gets all the prefixes from the cards
how do i check how many cards are selected in hand?
G.hand.highlighted
would this code work then for seeing if youre playing 1 card with no cards left at all?
if G.hand == 0 and G.deck == 0 and G.hand.highlighted == 1 then
end
end,
}```
it depends if g.hand == 0 if u select a card
it might be g.hand == 1 and g.hand.highlighted == 1 cause you still have it in ur hand technically
#G.hand.cards & #G.deck.cards & #G.hand.highlighted
test this with debug messages i suppose
just have it print the current value at the relevant time and see which way it behaves
+1 for "just print it out and see"
if you're not familiar with how that works this is the function i use https://github.com/wingedcatgirl/MintysSillyMod/blob/c7d147822d146a6bb041c6aa5a478e689c62aaf5/MintysSillyMod.lua#L108
og yea
and this
print it out and see doesnt work for me
in my currrent issue
how would i go about creating a custom texture pack for face cards + aces? ive seen other people have done it prior
at this point i dont think ill ever figure out this issue
goodness its been like a day now of this one thing đ
i recommend using the dev version as a base instead of main
does anyone remember how to set your own order of jokers in the collection?
does anyone know what causes card.lua:261: attempt to index local 'center' (a nil value)
it seems to be a common problem with fucking with cards, spawning them or changing enhancements
from what i can tell
It's based on load order
i distinctly remember there being a way to override the specific order
I figured it out. 1. I need to use G.P_Centers (something like that i left the house so i forgot) when using set ability.
and 2. It does return an empty table without all the ternary stuff i was doing, but even with the ternary stuff I had the logic backwards so it was returning nil instead of c_base
I have a few issues left to iron out, cause I realized the context for final scoring step is right after itâs calculated, not after the score is finished displaying (eg final scoring step is right after the cards are calculated against which is right after all the cards are played)
So I should switch it to being after. Also, I havenât tested it but iâm very sure that it will swap enhancements until it reaches the end because it evaluates the left card with the enhancement, swaps with the right card, then evaluates the right card which now has the enhancement so it will swap again
set_ability works with string keys now
well
it didnât for me
or maybe it did
cause now that i think about it it might have been because i fucked up the ternary from the beginning
so it was doing nil
probably that then
how would i go about creating a card like The Soul for custom rarities, and if possible, where could i look for examples?
cryptid has gateway
As simple of a concept this joker was, it was a good learning experience to try and understand how the modding for the game works - and I am happy to say it works!



