#💻・modding-dev
1 messages · Page 227 of 1
theres no consistent way to run through a table with indexes which are just words
that isnt random
and not requiring other tables to assist with that task
That modification prevents the crash, but it has the same effect as the old version of the code
...im pretty sure it should debuff the joker during scoring, and de-debuffs it back after scoring
It does, but the X doesn't remain. I think the after is after scoring, but not after the scoring animation?
how do i get a card's rarity?
center 😭
wait, im a little bit lost here, you want the "X" to remain?
Until the animation completes
blame that one ytber :3
😭
Let me go ahead and take a video recording of the current effect
-# i will change all center to card later
how can i give a Joker the booster pack shader?
At some point I have genuinely considered running a preprocessor so I don't have to type card.ability.extra for the 500th time
nevermind
suppose deck ability is to remove enhancements from scoring cards and earn some money for each enhancement removed
how do I use context.individual correctly
this piece of code doesn't crash the game, but doesn't work the way I intended it to 💀
put a space before
hey quick question goobers, if i want to narrow down a hand type played would i change pokerhands = pokerhands to pokerhands = flush or something?
or I guess anything that isn't a dot
o yea
@manic rune
wdym, are you trying to check what the current scoring poker hand is?
If I remove the rebuff code, the X will show, but then the card will never get rebuffed
regex supremacy
yes! i want this joker to see a certain flush and retrigger the whole hand
oh, theres no "X"
Exactly, unless I remove the rebuff code
i have confirmed this and yea, converted cards with enhancements that triggers on scoring stopped working
context.scoring_hand
enhancements that trigger when held still work tho
like steel and gold
have tested seals yet
😭
oh would i use that to then output a retrigger?
going to bed soon dammit
unless you want to check if hand contains the poker hand you want then you'd check for context.poker_hands["Flush"]
this is more what i'm looking for yes!
per usual, ty for helping me learn c:
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 0.0,
func = function()
card.ability.extra["debuffed_card"]:set_debuff(false)
return true
end
}))
maybe try adding this inside context.after instead
dont you need next() for that one?
-# im too used to seeing it being used for this kind of stuff, so im asking to be sure
the goal is a joker that retriggers your hand when its a flush consisting of the largest suit in your deck
which is a bit of a coding jump for but im ready to tango >:3
honestly not sure lol might be
okay yeah you're right
here's an example of how it's done (for a reimplementation of Runner)
@manic rune Very close. I had to make some modifications to ensure that the card was truthy. But, now, it flashes the X and immediately goes away. I think the core issue is that I believe the game triggers after after the score is calculated, not when the animation is done
can vouchers use calculate
I think observatory does it


no observatory's code is inside the calculate_joker function
gdagdagli im bad at this 😭
theres no context differentiating between "after score" and "after animations", since the animations are all done by events, can you trying switching the 'trigger = 'after'" part to trigger = before?
oh thats perfect!! ty!
wiki lists calculate as an api method under Vouchers so I assume it'd work?
what do you mean by "doesnt work the way i intended it to"?
I play a base card and a stone card
it gives money twice, when it should only do once
yeah i can see why
if context.individual and context.cardarea == G.play runs for each played card
but you are also running a for loop inside it to check for every card too
depending if you want the enhancements to score or not before being removed
if you do before the enhancements won't be scored, if you do after they will be scored
both didn't work
the enhancement only gets removed properly if I use context.individual
this is deck ability
there is no "card" variable
context.other_card crashes the game
there is in context.individual and context.repetition
context.other_card refers to the card currently being scored
@manic rune This works:
if context.hand_drawn and card.ability["debuffed_card"] then card.ability["debuffed_card"]:set_debuff(false) end
i thought about that too, but i think its not exactly a surefire way since i think if you have a hand of 13/8 and it doesnt draw a card after you play a hand, then it wont run
like this?
chat did i cook
dumbbell
vertical
why the manual ease_dollars and card_eval_status_text?
epic
sob
oh, is there a better method?
return { dollars = <amount> }
💀
Confirmed, you are correct @manic rune
also @frosty dock, i had to manually check how many times my joker is gonna be retriggered, put it into a var AND run it through this for the joker to actually retrigger played cards like i intended 😭
https://streamable.com/f4zyqw hence, this
Watch "retrigger_joker fix with retriggering Playing Cards (w/o patches or hooks)" on Streamable.
did you try changing the "after" to "before" in the event?
but for other contexts like this one, i have absolutely no clue how to do the same lol
ok i got sidetracked from my current joker, genuinely how do i call for sfx, i have everything set up to a T

let's goooo replicas can spawn in shop now! (only if there's a copy of an existing joker)
It doesn't even draw the cards if I use before
...draw?
fgngngngh i hate timing 💔
oh this must be some jank with context.other_card being unset after calculation
wait, whats the joker equivilent of e_something.ogg or music_something.ogg
You would think post_trigger would work....
joker equivalent? wdym
like for a sound a joker is supposed to make
do i have to name the file j_something.ogg
same thing for regular jokers toooo
thats what i have, im not getting a crash but i cant hear it at all :(
you need to register the sound with SMODS.Sound
i have done that
and you need to play it
...
or sound = in a return function yes ik
if only you could return "repetition" in here too
so that i can do the same :3
you can do that in context.repetition
then I can't tell you what's wrong if you don't show code
yeha that's how that works
is this fixed in latest smods
I don't think so. but you can create a local reference to context.other_card outside the event for now
but what if i want the code to only retrigger the "Played cards give +5 Mult" part, for example?
-# for an english major student, my grammar is atrocious
alr then
then you could use joker retriggers to retrigger yourself instead of the playing card
no, im doing exactly that
but like i said, it only retriggers context.joker_main consistently
for other contexts, it doesnt work properly at all
what's your smods version
uh, wait
you could like, ask.
ok that worked but did I do something wrong with return { dollars = <amount> } because I did not gain money
please show your code
@manic rune Could G.jokers help? I am not sure what those values are.
huh should be fine then, I'm like pretty sure that's been working
but I can investigate
its the joker area where you put your jokers in
where money 😭
that sounds annoying omg . 3.
it is, since my mod has self retriggers as a core mechanic
How is context.cardarea used in this context?
im literally considering about removing it entirely if its this inconsistent and buggy lmfao
you are telling the code what cardarea it should check
and in your case, its G.jokers, which is already correct
when is self_retriggers set?
it's reset to zero after one calculation
There's gotta be an event for post play
after
I only see it modified in joker_main
if context.end_of_round
That's end of round, not end of hand
what does end of hand played would mean ?
does context.after work?
all cards are triggered but score not added to tally ?
Once the hand animation completes. after appears to be after scoring is calculated, not when the animation is actually done
oh wait thats weird
I need hand_drawn, but for it to also trigger if you're done playing and there's no more cards to draw because you're near the end of the deck
yeah uh, what im planning to do is:
- during joker_main, the joker increases self_retriggers when a certain condition is met
- afterwards, that var is sent to context.retrigger_joker_check to be checked, then retriggers the joker by that number of times
i also tried moving the self_retriggers modification part to context.before, but the same happens, and its even buggier since context.individual and context.cardarea == G.play now only retriggers for the first played card
yeah there's your problem
you're resetting it to zero after the first retrigger check
So it retriggers one context, then does nothing until set again
...oh, i thought what context.retrigger_joker does is go through this entire code block by the number of times repetition is returned
hell of a joker
it was supposed to retrigger for all played cards lol, but it only works for the first card which has been on my nerves for quite a while now
show code
it checks individually for each context
:3 i blame the non-existence of a documentation about this
but yeah, that does explain everything, thanks :D
it was uh, the context.individual and context.cardarea == G.play + retrigger joker stuff, should be fixed now though
-# maybe
Hi chat Smiley face
EGADS
😭
you tried sending me straight to the abyss
How many chips should Cat Rank give
9 base for 9 lives prob
10000000000
...wait, so where am i supposed to set card.ability.extra["self_retriggers"] = 0?
?????????????????????????????????????????????????????????????????????????????????????????????????????????
then just add the rank to each 9 for individualized score
i finally got it, i feel so stupid
at the first retrigger, it will definitely stop when it goes through that context
probably need a workaround for this one, fuck
it says play a sound WITH any message, i didn't put it in the same return with the message i put it in the return that was scoring the hand
wherever you want it to stop retriggering
tiny
@manic rune Is there a hook for when next_joker would have been triggered? Perhaps that's the answer? I'm at wits end
😔
just to be sure, im supposed to keep self_retriggers until all the calculations have been done, and afterwards i can set it to 0?
also can i just say i see the mario galaxy font and i fw it heavy X3
you can also retrigger based on context if that helps
there we go
context.other_context is the checked context
your text has bewildered me
@tall wharf How did you assign the Art Credit?
a lot of shenanigans
nope, i dont think hook is the answer you are looking for 😭
unfortunately, i think im too inexperienced with this timing kinda stuff to help you
maybe try asking john smods or someone else, sorry :(
Hmm... Would Cash work better as a suit or rank?
Cash of Cash
both could work ngl
Clash of Clans
Call of Cutie
i absolutely despise retrigger_joker now that i realize the way i thought how it worked is wrong
😭
wait how does it work
@frosty dock Here's the context: #💻・modding-dev message - I want to show the card next to my custom card as debuffed, but I want that to disappear as soon as the player is able to play another hand. The problem with after is it appears that triggers after the scoring is done, not when the whole animation completes. This works, but it doesn't show the Joker as being debuffed, which can be confusing
ngl implementing it like you thought it worked would be the most jank thing I've ever seen
hello john smods now that you're here
💀 no money
i'll be queing up behind brandon
yea i wont lie retrigger joker kinda worked as i expected it to lmao
have you seen my sliced edition?
you had some high hopes bepis
💔
yes
The original idea I had was for it to be a rank that gives chips equal to money, but I felt that was too... strange for a rank?
welp, off to fixing pretty much all jokers which work around that
purgatory
But now that I sat on it, I think it could be fun
looks like everything works as intended
I'm about to have dinner, I'll have a look at this later
Thank you! I'll maybe do some real work now 🙂
why did you sit on money
❤️
show off 💔
losing my mind over end_of_round return func why is it not doing anything 💔
wym by that
@frosty dock hi sorgy for another ping but i also want to ask now that you're here
so i have a joker which changes the suit of all the cards in your held hand with the change_base function
for some reason Mult and Lucky enhancement all stopped working on any card converted this way
Bonus still gives the extra chips correctly, Glass still triggers, and Gold and Steel behaves as normal
is this something about the game or am i using change_base wrong? or should i use somethingh else
please have a look after you're done with brandon thanks
just if context.end_of_round should suffice, honestly
For mine, @manic rune ? That would make this play a lot less dynamically
it triggers the destroy animation like 50 times if it's just that
this still doesnt retireogimamgamo
did you try adding "and context.cardarea == G.jokers" too
:(
no no that bit is already fine
it's the return
shi aint doing nothing
not even the print
never used functions in return before, so idk 💔
WHY DOESNT THIS RETRIGGER
LIKE
ok wait, im completely removing ALL methods of setting self_retriggers to 0

asd
...that somehow worked
man
🔫
does anyone have any further insight into either this or the undiscovered custom legendary joker description thing i'm still having?
is there a context which tells whether the joker is being retriggered or not?
im a bit LOW right now though
so
i want to make something cool and awesome and special
a new kind of booster pack
a Jimbo Pack
-# that doesnt seem special
be nice now, everyones own little mod and idea is special in their own way ♥
i need this, to uhhh
set this to 0
but somehow making it so that this block wont run
when you open it, it shows you some cards you could potentially get (tarot/planet/spectral cards, jokers, playing cards, special cards that give you money, cards that do nothing, and sometimes rarely even a voucher), then flips them over and shuffles them, before forcing you to pick one to take like a little minigame
if the joker is being retriggered
how plausible is this
its possible, yeah
very possible, though you'll need to be a bit comfortable with lua, because the wiki won't have a very direct guide for that
what are you trying to do? dont retriggers count themselves down to 0 anyway?
im fairly comfortable
the thingggg is, if i dont have that then the self triggers is permanent
then it's definitely doable!
i just want the joker to retrigger everything in its calculation once
quick question, would this be pleasible or not
then after that, set self_retriggers to 0, so that the next time it wont retrigger everything again
you'd have to somehow get a system clock
or well
input FROM the system clock
without the context to tell the joker whether its being retriggered or not, it kinda just sets the self_retriggers to 0 immediately, then no other contexts are retriggered
so like, retriggers are shutting themselves down because of that
-# god im dumb at transferring my idea over
i know i had an issue in calculate running several times to return effects, i just made modifier flags to make it store it once per round
so i assume you can do something similar to that per scoring that should trigger it no?
once per round isnt exactly what im looking for, my jokers basically have this stat called Speed
each point above 100 increases Excess Action Value by 1, and each 100 Excess Action Value will retrigger the joker once
ye i know it wasnt once per round thats why i said once or however many times per scoring hand
just an exmaple was mine was once per round
but if the joker is being retriggered, then it will still go through that context and affect it too, right?
Can i make a consumable not sellable ? Like selling it does nothing nor gives money, or just straight up disable the sell button ?
cant you store how many it was triggered, once it reaches the amount triggered then set whatever flag to false so then it can return what youre looking for
ie, triggers once, sets flag to false unless it has whatever value to trigger again, then it increases storage table by +1
i did exactly that, actually
woag
but it still doesnt work
i dont know 😭
so my idea was that it retriggers all contexts, right?
then i set a "timer" here, which goes down by 1 for each time its run
when it reaches 0, self_retriggers is also set to 0
but the thing is that it still shuts itself down immediately ❤️
have you tried asking it nicely to retrigger correctly
nicely(card.ability.extra["self_retrigger"] = 0)
you can also give your code the idea that youre about to crash out in a supremely diabolical way and it will take pity on you sometimes
(this is effective for me 30% of the time)
hey is there a context for if you're actively in a blind?
theres a context for when a blind is selected/starts
hmm, ok, im trying to make it so that my joker doesn't trigger when you're in the shop, or anywhere that isn't a blind
Have you sorted this out yet? I have some time to help out now
shop is in blind
nope, im currently still trying to get it working 💔
dont we have a shop start context now anyway
ah. well, it adds chips, and adding chips when not in a play state results in a crash
If you want to drop all the relevant stuff for this retrigger that would be handy then I don’t have to trawl through chat
i thin context.starting_shop is the new context for shop
is there an unlock condition to unlocks a Joker after defeating a certain boss blind?
it definitely retriggers properly now, but i dont know how to set self_retriggers to 0 at context.before, but also make it so that the code completely ignores it if the joker is currently being retriggered
so you can just debuff it when that happens, undebuff after
ah ok, wait
You can add a not context.retrigger_joker to anything you don’t want to retrigger
anyone else getting an issue rn with the mod manager where the game just won't open?
i tried swapping the steam mod, it'll start to boot up
and then just close itself
and the lovely log seemingly says theres nothing wrong
hey guys
so
i just found out
that
there's actually a booster pack template in the files of balatro
huge
this is EXACTLY what im looking for, thanks so much 😭
i managed to fix everything on my own with that, so theres no need to trouble you with dumb problems about that mechanic anymore ❤️
-# please dont say that
LMAO
honestly lua programming is the most obnoxious shit i've ever worked with lmfao
That’s great news! I’m hoping to have my updated calculation page done soon that will have little tips like this throughout it
that would be really great, and maybe finally we will have DOCUMENTED undocumented features :3
Don’t be silly I’ll just add more undocumented stuff
the crack addict (balatro player) when they run out of crack (balatro)
what's the most obscure undocumented feature in smods rn?
the one none know of
rn for me it's unlock conditions
rn for me it's launching the game
i think we'd be in a pretty freakin bad position there if we couldnt launch the game
well when you enhance, you quanumify them, hope that helped
the position i'm in rn:
the game loads and then closes itself
have you already done the method of removing mods 1 by 1 to see if a mod doesnt agree with your setup
yes it seemingly isn't any one mod
but occasionally the game just doesn't work
idk
so i've got my joker sort of working, but im running into an issue where the text is showing up on the joker it's looking at rather than the preffered outcome being it shows it's own message under itself
probably your computer issues at that point 😭
what do you mean by that?
can you specify where a message comes from?
you can
oh how?
i used Pokermon the other day and every joker bio was "Needs text to work"
return{
card = (the card you want the message to pop out from),
message = "something"
}
oh, can i use two return functions to seperate where it sees the other joker triggering but it itself gives the chips?
or alternatively, if you want the return{} to still have messages on the joker, but you also want some messages to be on other cards
use card_eval_status_text()
this is my set up rn, im aiming for the chips to be under this joker, rather than the one it's seeing trigger
card_eval_status_text(card, 'extra', nil, nil, nil, {message = "Hello World!"})
oh
remove cardarea, post_trigger
remove other_card
put card = card, in there
so it should be something like
return {
card = card,
chips = card.ability.extra.chips,
sound = 'cringe_sfx_mfw',
}
What you've done here is copied the table the SMODS docs showed you for what the context contains
This isn't the correct format for return tables
ah . 3.
not something you actually return lol
so um, now my game crashes when i select cards
Not sure it's 100% related to this, but you'll need to add an additional check for the cardarea
do you goobs wanna see the joker btw
Right now you're only checking context.post_trigger, but you only want to check that for certain card areas (G.jokers, primarily)
oops, wrong direction
wait so add back the stuff i had?
no
No
ah.
oh.....
gawt dayum

okie lemme try this
Im like 120 on a good day but I never actually learned home keys typing so I only use my index fingers, which is more mistake prone
Larger movements and all that
i leave you all int he dust at a solid lioke 40-60 😎
i forgot to log in most of the times, but here :3
OK NOW I CAN EARN CHIPS IN THE STORE WHAT THE FUCK

thats actually kinda cool i might keep that
Perhaps the post_trigger needs to be checked for G.play instead?
post_trigger checks for a lot of context lol
cant you also just debuff it in context.starting_shop so it doesnt work in shop
behold, premptive scoring
I'm trying to finish up every joker I have an asset for and I'm now arriving at them being either coding challenges or really vaguely defined concepts of a concept for an ability 😢 I miss being able to just burp up 10 jokers in an hour
i finish a joker every 2 hour
because of the nature of my mod
thats the one im working on!! its mfw joker
its fine :3
it gives 5 chips whenever a joker triggers
Yeah, I can imagine, Bepis, haha
remember, all bugs are features
I have some that are really easy to do, but then I've been working 3 days exclusively on getting Nope to work (though that did need a whole generic system to be set up, so that makes sense)
i uh, always try to make my jokers more unique than others, like this one
PREACH!! most people don't know attack canceling was originally a bug in sf2, but they kept it because they liked it, and its now one of the most prominent mechanics of the genre!
little fun fact for you folks c:
her e1 also makes it pretty fun to play around with the mechanic too
you would have to reposition the inflicted card in your hand so that it always spread to 2 cards
Balatro modding is fun cuz I get to add whatever and no one can stop me /hj
im gonna try this for science tho
it is
my first joker is a chain smoker, it really is open ended
no one can stop me from turning balatro into a turn-based game :3
crap
girl did you actually just retest XD
well im definitely rusty now ❤️
zamn, i think before i had some surgeries on my arms i was up there in wpm too
now though im in agony going to 60
im a pretty good typist myself lmfao
damn, what happened?
i was in the service, nerves got fried in both arms and prior to surgeries my body tried fixing it by destroying muscle
so now im sorta cucked on typing speeds
holy fuck I just figured out how to hook functions
It's like the whole world just opened up to me
how do people use google sheets
I had an idea for the Cat Rank, but I'm not sure how easy it would be to implement.
oof, sorry to hear that :(
i don't like using sheets frankly
ah.
why limit yourself to google sheets
sorry to hear that
make your own website instead :3
poorly, but effectively
each colored box represents a person and if completed, in progress, or not their job
nah but srsly, yall use google sheets to plan out your jokers?
do you just slap this here
all gang, i try my best here nonetheless
i don't like planning
i got that real bad memory so if i dont write it down i will NOT remember
i actually still have some of the jokers i planned here
:3
the way i described them doesnt make it sound like they are jokers from balatro at all lmfao
The idea is that it starts out giving 9 chips, but loses .5 chips every time it's played, until it reaches 0, then resets back to 9
redstome..,
yeah thats cool
should be easy
good luck :D
oh also in hindsight i should ask bepis, preferred pronounce? c:
im a guy
okie cool just checking!
REAL
I'll probably get that working later, when I implement more stuff to my mod
:3

Hey is there a program that makes programming a mod for balatro easier?
who up coding in they visual studio
lowkey fr
i dunno how yall have that game activity tbh 😭
extension
Thx
This is my current list of anyone can think of anything else they’d like explaining
pretty sure its just called discord presence
oh i see
Halo
oh now its crashing again heck
hi :D
-# do i know u?
How’s working on your mod been ?
can i even edit my own mod wiki page
its been good
on wikipedia it's like
made a lot of progress thanks to everyone's help
conflict of interest but this isn't
everything i could ever ask for is all on here
:3
oh, what about stuffs like where to find the colors?
for localization
hamburger c:
some people dont know where to find them lol
and maybe other global vars some people will be asking for too, like current score, score requirement, but that does seem a bit too much work
how do i phrase
ok new question time
the chips are triggering, but the sound is only triggering once and not when other jokers are triggered
. 3.
any other elements i intend to incorporate
-# that explains your blinds
yeah but do you have to vent it towards others :3
no but like, do you know me from somewhere? 😭
that seems a bit random, but i really appreciate it
secret super fan you have
theres no way i have fans lmfao
im ur fan bestie
i mean, my mod is not even out yet 💀
aw, im ur fan too :3
awe c:
Hmmm, maybe a useful values part could help for that
that would be cool to have for beginners
i need more help ugh-
What are you struggling with?
i hit the wall with a stick so hard i chipped a tiny bit of it away
well, my joker is functional in practice, its just the visuals and sounds that are all wack
What’s the intended effect?
right now i have this, but the intended effect is for this joker to be the one with the +5 flair
the other problem is the sound isn't playing when it's scoring chips, but rather before the played even starts which is weird
yes.

it's called cringe circus for a reason LMAO
Anyway, you’ll need to provide a custom message to have a custom sound play
And replace the card = card line with message_card = card
No
For your custom message use chip_message = something and add sound = “key” instead of your play sound line
can i make the custom message just say how many chips are scoring (almost always 5 at a time)
i tried this but that didnt work
Don’t use brackets
ohhh
i hit my limit of 10 YouTube shorts per day I'll go back to code
my limit is more akin to 10 as well
just hours instead of shorts
hmm, now theres no message
Oh wait hang on
chip_message = {
message = “+”..card.ability.extra.chips,
sound = “key”
}```
THIS IS THE ANSWER OM G
I forgot how chip message works 🤣
with 2 periods?
concatenation operator
Yes
my face when . .. and ... have three completely different meanings
Looking at the code it seems message card doesn’t work for scoring messages, I should update that
how does this look chat
oh isn't there a way to make the backround blue instead of yellow?
like the particles behind the text
i did that a bit ago but now ive forgot
({...})["1".."2"] = "a"..({...})[1].b
completely valid code that does absolutely nothing
Who’s gonna be the first to add blackjack to balatro
Yo
cardsauce
A popup is just a root node right?
battle music accomplished! all battle themes cleanly sync with each other, though they won't sync with balatro's standard theme because idk how long it is 
also nintendo lawyers please don't kill me
Add colour = G.C.BLUE to the chip message table
was looking all over smod wiki for this, thanks so much for all your help
wait i think having two of these and one trigger genuinely softlocks the game...
nice!!
oh shoot the chip message is still appearing
Can’t you look at the sound file?
How to determine that the boss blind is over?
true
anyone got any ideas?
depends on what you want
if it's a joker effect at end of round (like campfire resetting) then you can just use context.end_of_round and G.GAME.blind.boss
chat
I thought it might have been talisman but i'm not sure, Shuffling out mods hasn't seemed to help? it's almost like some mod is leaving behind files even after I remove them from the modfolder?
NO
idk honestly anyone willing to help me is my actual fucking hero 🙏🏻
have u tried removing mod half by half
Like Rocket?
Yo
Another Estrogen?
😭
How do i create a tab_definition_function
When I beat the boss blind, boolean
But what for
Maybe it's not necessary anymore, I wanted to make a joker that gives money after the boss blind
Just do what Rocket does
Almost, just a fixed amount
Yes
use chips_mod instead of chips
But it’s the same mechanism as Rocket
But I found another idea to implement
I’m not telling you to do Rocket 2: the Rocketning
chat wtf
Goth cards
kirby
this card doesnt have a chips mod but ill try
😭
Yo N
im replacing the self destructs sticker
How are you?
this broke it :c
It will just give money with a chance at the end of the round.
I wonder how many mods have the Temporary/Self-Destructive sticker
I think 3 at least
Isn’t that just perishable
No
How is it different
Temporary goes away at the end of round
So I buy a joker for one round?
better?
How can I add money?
You can just return dollars IIRC
Can I have a full comparison of both?
On a card?
I think I like the original more
You could also do three teeth instead of buck teeth, maybe
I tried doing this but i got an error
What error
hey quick question
how do i set up the loc_vars of a booster pack
I meant the one you posted a few minutes ago
because card.config doesn't work
Also on a card in-game
oh
-# (Bump)
Since Stickers have their own shader too
You just return the amount you want to add
(I also don't know how to make random normally)
Take a look at Pippi Panini from my mod
Not quite the same but similar
Is this some kind of mod or did you make it yourself?
It looks too centralized
I think you can use the Eternal space
Since nothing should be Eternal and Temporary
That’s what I did
nvm

It looks good. At most I’d suggest what already suggested re: positioning and teeth, but the art itself looks
-# Bump, again
is anyone here experienced with making custom booster packs?
Depends, why
i'm trying to make one
I got the basic information down, but I need help with basically everything else
Like what, specifically
Like how to set up certain cards to appear in the booster pack
Have you checked the docs for anything useful?
I've been reading the docs
But I learn better with examples
Also
Quick question
Can you generate a voucher inside a booster pack
like is it theoretically possible
Yes
Awesome
Theoretically anything is possible, it just depends how far you're willing to go
i might be giving up on trying to get as many mods as possible
it's simply just too obnoxious and mods simply just aren't compatable enough lol
i wanted to see what it would be like if I had like 1K different jokers lol
balatro modding is difficult :3
On the smod wiki is there an updated guide/example on registering new objs
Not specifically creating their functions, just registering
Everything in the wiki is updated afaik, some things might just be undocumented
Yo N
no
Hru?
fine thanks
Sup N
hii
i love undocumented things in smods wow
u can check the ones in joyousspring but i dont know how useful that will be
Any new mods you're working on?
how did you manage to get this sorted? mine just crashes
just the one
Or still joyous
im making 170 new jokers for it

it's official art
Or do you make it yourself
dont tell konami
-# Sure
sorry
this is my code
SMODS.Booster{
key = "jimbopack",
loc_txt = {
name = "Jimbo Pack",
group_name = "Jimbo Pack",
text ={
"Play a minigame for",
"{C:attention}#1#{} of {C:attention}#2#{}",
"random rewards"
}
},
atlas = "boosteratlas",
pos = {x = 0, y = 0},
config = { extra = 3, choose = 1},
loc_vars = function(self, info_queue, pack)
return { vars= {self.config.choose, self.config.extra} }
end,
weight = 3,
cost = 5,
kind = "jimbo"
}```
Anyone know how to compare money with a value since it just crashes for me when I attempt it
thank you!
btw
u dont need to add EVERY value
some values are just set automatically by default
for example, blueprint_compat is always true by default
Btw does anyone know what i need in a tab definitoion
I’d recommend setting them all
Gotcha
Havent seen an example of mass registering jokers
yes it's a function that returns a UI definition table
as opposed to doing them manually 1 by 1 (
)
Hihi
i have an objecttype in joyousspring where i register all the jokers from my mod, if that's what you mean
i can send u the link if it helps
But like how do i "use" it, how do i put a card are for example
you put the cardarea in a UIT.O node
you need to create it inside the function or it will get destroyed after and cause problems
So inside the tab create func
yeah
Anyone's got a guideline list for spritesheets like jokers ?
Wait, i forgot, how do i create a card area?
Theres an aseprite plugin I intend to use but its more about the overall sheet formatting, spacing..
How can I repeat Hiker Joker but with money?
Hey, quick question, is there a simple way to always spawn a joker as a certain edition (like when it shows up in the shop I guess)
check the games code for CardArea(0,
Easiest way to know that is to look at how it's implemented in Cryptid on Stardust, Foil Joker, and the ones for Holographic and Astral card bonus boosts.
Those Jokers always show up as their relevant editions.
Nice, thanks for the lead
how do i change the starting deck like abandoned deck
Are there any simple card area mods?
i dont play many mods sorry
is this not how you change a card's base anymore
assert(SMODS.change_base(context.other_card, nil, "5"))
getting assertion failed crash on this line
show full code
silly
.
I still don't understand what I need to do to permanently add dollars(
👀
you usually have to use event managers
the dentist i mean the tooth:
How do i create a basic button?
I'm stupid what should I do
G.play not G.Play
i love UI
what are these?
Thx
I hate UI (How did you create the card are)
should be a SMODS wiki page on those
open creates the graveyard overlay and show shows the button when you have something in there
small issue, i keep hitting this crash randomly out of nowhere
it only happens on my branch but I can't think of anything I've changed that would cause this
How do I make it show permanently?
Jist like: return true or sum
blind calculate is legit
just don't include a "func" in your button
i just don't know why it's so crashy 😭
Oh, thanks
or is it literally just me
Ok, so when a new run starts, I want the deck to remove a card and replace it with a queen, i have event manager set up but idk what to do
Brazilian Balatro? 🤔
like how do i even do something like that
No HUE Balatro as HUE offset in photo editor
I see
guild tags are dead
Guild Tags?
weird discord feature
I’ve only seen them recently
i think you have to like remove a card from G.playing_cards and then emplace a queen into G.playing_cards
crying
you can remove by doing something like card:start_dissolve() or something
Oh...
Dumb question, firstly I dont know why G.GAME.dollars is a table, but how would I get the value of it to compare
you have talisman™️
ahhh
that'd be it
I didnt have it previous when working on this mod that explains it
thank you
thank you
you could also look at the examples for decks in the example mods from smods
they will probably be able to explain it better than i can
how would I destroy a card after it scored?
what's thingo2
I saw this before but couldnt exactly figure it out
I'll attempt it again
i wanted to make a mod that replaces the polychrome sound but the game crashes every time the sound tries to play, what's missing here?
how do i combine my custom ace with the regular ace or hide the regular ace
quick question
slow answer
Hot defined, but it shouldnt be a problem right?
i want to make a table with certain values
Its the button that makes it crash
i want each value to have a different weight
how could i do that
(im selecting one at random using pseudorandom)
lazy answer fill the table with lots of copys of the same item you want to have a higher weight
(dont do this)
smart answer fill the table with lots of copies of the same item
you can give them number weights then sum all of them and get a random number between 0 and that sum and that's your item
so
Hihi :3
Is there a function to alter the base amount of chips a card gives?
okay!
thank you!
Wordly balatro
normally the letter doesn't go outside but for some reason if i scale the cards down properly it looks weird
what do i need to set to not have it do that
Where you have to use words to win
- Do i need to define it.
- If i define it, can it be empty.
hey whats the set key for tarot cards again
capital T?
yes
alr
yes. the return table can probably be empty? if you're testing just set all three of them to the function you already have
@tall wharf how did you implement the debuff seal? I can't find it :<
How could I prevent a consumable from being sold ?
is there anywhere where i can reference the keys for all the card sets (tarot, spectral, etc?)
G.P_CENTER_POOLS['set_key'] might work
search P_CENTERS
where that
it's in game.lua i think
Do you need to get the keys for a certain card set?
btw can i use pseudorandom to get a number like this
yes, the second and third arguments are min and max
Did you ever make this?
yes
does pseudorandom generate decimal numbers by default?
is there a way to make it so it doesn't do that?
floor it?
like for example
im looking for 1, 2, or 3
(entries in a table)
wtf do i do if it returns .34
math.floor
If you have an random number between 0 and 1, you can scale and translate it t have an uniform distribution in any range
Fire idea or nah ?💯
you can cast it into an integer before or after
I think after might be easier to think about
but also if you want to select from a table
there's already a vanilla random function for that
SMODS.blueprint_effect?
Not as an uncommon 
Like make it at least multiplicative multi
local ret = SMODS.blueprint_effect(card, blueprint_card, context)
if ret then SMODS.calculate_effect(ret, card) end
btw what i was saying before with the weights was something like this:
{{item = "item1", weight = 1},
{item= "item2", weight = 0.2},
{item="item3", weight =0.1}}
then you get a number between 0 and 1.3 and if it falls for example in 1.25 then that's greater than the sum of the first 2 so you select item 3
gotcha
So I have to calculate the effect inside my Joker's calculate function?
so for instance
or return it
i could check the number i generated with the weight of every number in the list
I can change the colour of the message box
then if the weight is lower i add it to a variable and keep looking?



