#⚙・modding-general
1 messages · Page 69 of 1
muscle cramps in your lower leg at 2am that really hurt but you can't say anything since you don't want to wake up your family
taxes
oh i also need to do some concept art for that other mod idea feder
ooh yeah
milk is best when you let it sit
oh god so many mods
still thinkin abt the theme but itll come to me
spoken like a true meth head
milk doesnt have legs you fucking imbecile
Balatro in 2025 will have like +20 pages of Jokers, 6 additional consumable types, 3 new mechanics, 40 new vouchers, 30 new blinds
mine does 
thats terrifying
you lose ante 1 half the time
i think you're lowballing it a lot
and that's just the base game
woah flashing images
HOMESTUCK ASS ANIMATION
i love the smell of epilepsy in the morning
paint roller voucher?
me too but I clicked on it anyways
i would die instantly if i was epileptic i love bright flashing colors
homestuck fan response
ouch!
lyman we should infest this server with terezi profile pictures i think
me and you and some other people maybe
think about it..
imagine i read it and end up hating it, not love hate but normal hate
that'd be very homestuck
i like homestuck
i still dont know what it is
banned
nobody has given a satisfactory response
number 1 rule of homestuck is you can't like it
its a webcomic, you should read it
A tale about a boy and his friends and a game they play together. About 8,000 pages. Don't say we didn't warn you.
ok this looks pretty alright
nah i'm not reading 8000 pages
I miss the old homestuck
but its good
its cringe, and very popular with people who were on the internet within a certain time frame
ive gotten through 2000
god dammit
i really dont care if its good i'm not reading 8000 pages of any one thing
taps the no kanye references sign

i always think of a parody first then kanye
You outed yourself
i have a moral obligation to make cursed stuff
i know for a fact that im going to accidentally create an infinite loop somewhere
no sprite for colour theory yet
i like how specific paint roller is and then “Some”
it's how codex arcanum specifies cauldron
for Codex is 50%
welcome to codex: we love ambiguity
Colour Theory more like Silly Theory
LOL Mods can do some funny shit.
does anyone know if i change a card in G.deck if it affects the G.hand copy
ikr
can somebody help me, im making a joker like perkeo but with jokers and ive messed some thing up, whenever i hover on a joker or playing card (not tarots planets etc) it crashes
ignore the horrible coding, i suck at it
by chance if i just wanted my joker to not have an ability i can leav the ability out right?
like the ability i want doesnt have a variable so i can just delete this right?
ability = {
extra = {ease_dollars(8)}
},
Color gamuts for most computers are skewed away from some colors so this is fine
i need to actually do something in the balatro artstyle to show people that i'm competent with it but i have no ideas or excuse to use it
i would make my own mod but i think i would rather not learn lua within my lifetime
Hey, so I just went through and separated out each of the Joker Sprites from the spritesheet. Would it be useful/okay to post the Zip here?
im gonna cry, context.buying_card is called twice with the exact same parameters when you buy a joker
if its consistent
set a local variable to true the first time around, then check it the second time around and just set that variable to false
yea i just did that

i think its consistent
hopefully
testing it rn
alright looks consistent enough for me
i will deal with it in the future
how the hell do playing card uiboxes work ugh
generate_uibox_ability_table returns a table with 2 important parameters: .main and .info. main is a parsed string of the card's main description, and info is a table of parsed strings of tooltips
you can just rip it apart from there
goodnight modders of balatro
isn't beaver on sell?
yea but on sell kinda sucks in balatro
i guess
diet cola
diet cola is good
ok bad example
no but i get what you mean
this way theres incentive to actually level the card too
at least on-buy means you can keep editions(/stamps :))))) around
(ik this is balamod shhhh)
oh god speaking of editions i need to figure out a way to transfer editions on buy
should holographic overwrite foil?
i.e if i had a foil card and i combine a holographic into it should it become holographic
the way i have it currently is that if you buy one from shop it instantly combines
ah
probably gonna change that actually
but i dont wanna figure out the dragging thing...
yeah ok it looks pretty good
i just had a really fun idea for a new consumable
is it a poker chip
sadly no (although it would be fun to make "bets" during gameplay)
hey
i should get on that XD
but
that's cool!
:)
it's a different kind of consumable
but before that, it's time to actually make a proper alchemical API!
holy shit oddities
oddity API jumpscare XD
the best example mod you've ever seen coming Soon™️
theres like four or five more things i need to make for oddity api
what are those?
oddities are registered with rarities, but they dont do anything atm (theres no pools or whatever)
oddity packs
i kinda wanna make it so you can make non-consumable oddities with some similar code to how usable jokers work
and update my cloned tarot api functions to how current tarot api works with regards to at least debug messages and stuff
oh yeah and figure out some way to hook into Shop Code to let oddities be in the shop
silver btw
tag sliver
the new space reverie casually cooked up
i cant use that space
How do you guys deal with the graphic on new cards? Do you make a new png and set center data or adjust the original?
XD
hm, i need effects for brown, grey, green, and peach
would be so nice if this game had a quick restart option
hold r
my brain: need good programming music
me: ok like what
my brain:
my brain: need good programming music
i have some recs
might be..
actually moving double to grey and making silver polychrome
brown can be standard tag??
and 2 rounds because that's weak
Does anyone have templates for joker cards?
if you use aseprite here's one by lyman
I tried aseprite once i gues
In gamemaker 3
Might try aseprote yet again, thanks
mousing over an oddity pack crashes the game aaaaa
low effort, just took a photo and vaguely quantized and dithered it
homestuck reference
im literally doing everything codex does
ugh
i hate having to work without an api
oops! all nil!
everything's nil for no fucking reason!!! :DDDDD
i dont understand how literally any of this code works!!! :DDDDD
rapidly this is becoming less of a Fun Brainteasing Puzzle and quickly devolving into I Am The Stupidest Person To Ever Walk The Earth, Why Does This Code Fail Only When I Use It
@sleek granite that's how i felt doing EnhanceAPI
and how i'm currently feeling re-coding the straight detection of X Cards
but it's all good
because i'm figuring out a more efficient way to do it
there is few problem with api
oddityapi cancelled im just going to bed before i forget how to breathe or whatever the fuck will come next
AAAAAA I THINK I MADE SOMETHING FUN
what
yeah, i'm aware there are a few minor glitches. i'll get those fixed once i get X Cards released
cools
it's not ready yet
assuming steamo doesn't harvest my code and add enhanceAPI to steamodded before i get around to it (which they have my full permission to do!)
isn't steamo like super busy recently
what is steamo's role in balatro?
they're the creator of steamodded
oh cool
also nearly filled page 2 of jonklers
The first of the two dual presidents of United States
Homestuck is wild
I think it was @wanton rapids. How did you make an automatically winning card?
i didnt?
i did
how did you do it?
what did you cook
what is it?
isn't this just those chess consumables
That is certainly not what I had in mind but that's like ten times cooler
wait someone is doing that>
yes
dw they didnt make one for a pair so yours isnt an exact copy of one
Does it play your most played hand?
i was planning on making ones for all hands XD
is that part of alchemicals
nope
made a separate thread for it in #1231518402208731146
yeah sorry about that they made 9 of them (3oak and everything better)
no the badge said pick a card
Pick A Card is the name of my testing mod
btw how many projects you gonna start at once
I currently have 4/5
is this a common thing?
yes
itay can i maybe pick your brain at some point about Aspect logic stuff
i am trying to make it make sense
the more i try the more it becomes apparent i need to make my own API
I have:
Fusion Jokers (just released)
Codex Arcanum (working on 1.1, nearly finished)
Math Mod (Concepting/funny)
Secret mod
Composite Hands (Concepting)
like, Aspects are weird because they run in their own loop so to speak
actually i just got an idea ill go post that in your thread
Their effects can insert into really dumb stuff like, Mind inserts into the G.FUNCS for drawing cards to deck
oh of course
I have
Balatrostuck
i have...
The issue is becoming that using consumables doesn't actually trigger an effect, the only thing Aspects gain from consumables is level up and changing current aspect
- jokerfusions
- the sin color mod
- numbalatro
- enhanceAPI
- x card (coming soon[tm])
The actual Aspect logic runs in the game's core loop
i have:
morefluff
sixtysuits (augh)
There are some Aspects like Light and Heart which can run their effects in calculate_joker
But then there's also Aspects like Void and Doom which need more than calculate joker can offer
and you wonder how you will turn that into an API?
why is everyone making their own apis these days
no clue
that's the thing, there is no good way to do that XD
I guess my main issue is, I'm unsure at which point I should insert code for this
I've split it into 3 groups
same lol
Group A is stat changes, easiest of the bunch
that's a good idea
Joker that is basically Isaac's "NO!" trinket?
Group B is joker-like calculations, harder but it just makes you use the calculate_joker in similar way as Observatory does
mine is much more broad
group C is the worst one, it's persistent mechanics changes
things like Mind, Doom
Serpent mechanics, pulling probability from a different joker's calculation and like
using that to determine if you spawn a negative fool
it's a lot of bs
i got A:subatomic cards, B: Particle cards C:Other
A and B I've solved pretty easily, a lot of the effects can just live in consumable slot
And in calculate_joker
it's the C category that really bites me in the ass
also, you don't have to expose an API
and for that I need to at least know where to insert myself
A should be easiest for me, B is the little problem for me
because there's no clear point for inserting that logic
specifically Doom is tricky because it relies on knowing 2 values
if there is no logical common point to insert logic, i don't think exposing an API would be best
yeah
i'm thinking to just, hardcode it with aliasing and hope for the best
but like, the problem remains - where
yes
Doom needs to have a point of access where it's able to poll 2 pieces of information
a) the denominator of a probability roll
b) the success of the probability roll
this feels impossible to do????
at least, extremely difficult
the sucess is stored in every if statement that uses probability
yeah, that much i know
the harder part is actually combining the 3 pieces of information
you can sit at pseudorandom, and just make it an impossibly high number
there you have the 2 pieces
yeah problem is that the denominator is fluid
it's the denominator of the joker/card/tarot that rolls
make it a variable
you don't get it do you
it's not a variable
it's a piece of existing game data
that I want to poll
then its already a variable
i made a list but it was too long so i put it in a zip file
yeah, but that means that it's harder because
what's this
a list of the things i made
and that's why I'm asking itay because like
why a zip 😭
I'm trying to figure out how to actually do that
the way discord renders txt files
i'd rather have that than having to download a zip
grab the other_card's (joker/tarot/playing) probability roll with denominator
because at that point it's actually easy
it's just
wouldn't oops all 6s do that to doble it
no???
and if not theres some other joker mods that does the opposite
both kinds of opposite
if other_card.roll_success == false and other_card.odds < self.level then
spawn_negative_fool() -- shorthand for spawning negative fool
end
like this is the final line
but for it to work
it needs to
a) hook into any ongoing probability roll
b) be able to get the denominator of the probability roll as well as the success of it
c) refer to its own level
these are the actual like, problems at hand
so now i'm trying to see if there's any common threading I can use to say, actually pull that off
the easiest way to get the ball rolling would be to hardcode all probability-based abilities, but then you run into a problem
a) everything I've made also has to be on there
b) compat issues
i feel like what you want is still similar to whoo all 1s, in ortalab
no
this has nothing to do with the probability value
and everything to do with the other value
the value that you divide the probability value by
yea, i saw a joker that does the opposite let me find it
this value
this value here
this is what i'm interersted in
not probability
the actual number you divide by
that's what scales up and is basis for comparison
this is what i want not G.game.probabilities
I don't want G.game.probabilities
yea, i remember seeing a joker in my list that decreases that
its not
a joker
it won't help
because i'm not looking for a joker code
this is a persistent ability
that hooks into the actual rolls
not a joker that exists in the cardarea
i don't have access to joker api because again, it's not a joker
and the issue i'm having is with figuring out how to actually get these values without like, hardcoding a list of all jokers, tarots and such that rely on probability
because that breaks compat big time
would hardcoding an array of ability names work? yeah it would
would it be a particularily useful or good solution? hell no
yeah, an API is probably what you want
yeah but then the problem becomes that if I make an API that API will like, still not solve the core problem
the core problem here is when you stack mods together and they don't work the way you'd expect
say someone has a probability-based joker in their mod
and they want to play Balatrostuck and their mod together
not really i don't think
tbh, it would probably be easier if we could like
program the game to process fractional probability
its primarily about identifying the pool of cards that rely on probability rolls
interrupting myself to say "holy shit" here
but okay, here's my thought
all probability effects in the games are based on an "odds" value
correct
and that variable has always been a whole number
and that's the number i want
that's not the problem here
the problem is getting that 5 in 2 in 5
consistently
across multiple sets
is there a way to guaranty jokers or spawn jokers in, im trying to test a custom one rn
debug mode
uhhhhhhh
@lavish jackal this might be of use to you
for k, v in pairs(G.GAME.probabilities) do
G.GAME.probabilities[k] = v*2
end
end```
how do i do that lmao
add the mod
OH
again, the easiest way to accomplish a solution to my problem would be to make a massive list of all the ability names that deal with probability, and that way I'd be able to isolate them
that's usually noted in the "odds" variable
yeah i know that
but there are exceptions to that
so I'm trying to figure out a way to get that value
like a debug mode mod?
yes
the issue with getting that value is that say, for example
wheel of fortune just uses extra
...i guess you could look in the localized version of the description chat.
search through lines for the regex formula %d+ in %d+
could do so yeah
that would be more viable
but then you run into another problem of
i found it, thanks
tbh, you'll drive yourself mad striving for 100% mod compatibility
true
their fault tbh
you either pull from the card object or the desc
<- is the idiot that coded EnhanceAPI
i guess the desc would be the safest bet then
if someone doesn't include the x in y line then it's their fault why Balatrostuck Doom doesn't work with their stuff
that just leaves 2 Aspects then
The problem with these 2 is that they rely on context.scoring_hand and context.discard respectively
you can put them in calculate_joker then?
those are Joker contexts
but issue is that, there is no joker
it's a persistent ability
or wherever the call for it is
calculate_joker would technically work but then the problem is that
you have no self.ability.name check
or hm
maybe you do?
it's weird
technically speaking I could try to pull an Observatory
isn't the v the denominator?
this line specifically
honestly, you'd probably have to do a multi-pronged effort
to ensure maximum mod compatibility
looking in every place that an odds value normally is, AND the loc_def
i suppose that in this context, the "jokers" would be the actual played cards for Breath/Blood
don't all consumables get a calculate_joker call
unsure, this isn't like, a normal consumable though
for i=1, #G.jokers.cards + #G.consumeables.cards do
local _card = G.jokers.cards[i] or G.consumeables.cards[i - #G.jokers.cards]
--calculate the joker edition effects
local edition_effects = eval_card(_card, {cardarea = G.jokers, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, edition = true})
i think
i need help
only for joker_main
this is more like
like, aspects are more like a game variable
rather than like, a consumable proper
using a consumable just
bumps up a number
and swaps current aspect in use
using the consumable is just the first step
what is joker_main and why is it always joker_main
joker_main is the one for stuff like +4 mult, x1.5 mult, +100 chips
should i do the really good idea or should i continue debugging tres
disgust
Gm chat 👋
hi
after much more pain i have decided to postpone the really good idea
does "discovered" value on cards work properly in steamodded?
I mean if I'll set the discovered to false, would it reset every time the joker registers again (when relaunching the game for example)?
ummmm
i think it does now
how do I get rid of the description when it is not discovered?
I believe there is a var for that?
hide_desc?
trying it rn
hmmm I can't check if the card is discovered for some reason
I can apply hide_desc and it works fine, but I don't know how to apply it to undiscovered cards specifically
also it doesn't remove the title
bingo
i am not sure if I want to work on Composite Hands rn
welcome to my world
oh yeah
itay i already do that every time i write myself into a corner with the stupid big mod projects of mine
procrastinating oddityapi by making homestuck suits and jokerstamps and
joker stamps is really fun
boosters are going to kill me
thanks
one or more of us should really use twitter more so there can be a spotlight on mods that arent Balatro Solitaire Texture Pack
yeah thats how that works
i couldnt tell you why thats how that works, but it do be like that
speaking of, what meaningless distraction will i use to avoid dealing with booster pack code until a proper api exists....
good
are the unlock effects planned for steamodded?
I think I've seen someone mention that
?
is it dying?
what is happening
2 weeks ago isn't that long ago tbh
(definitely the latter
the last update was last week actually
dev branch
even better
mystjokers update coming never since im too lazy to art
autumn why are you trying to kill this chat 😭
Rude
sorry I didn't mean to be :(
I just started a completely new save file for testing purposes and this is the very first booster pack I open...
balatro are you kidding me???
I got the mod where you can choose your shops first joker.... I chose cavendish... yup you can totally get it.
(free because of skipping small blind for poly chrome joker on beta branch)
rainbow banana...
You can also get legendaries in your first shop as well, they cost 20 though.
so you HAVE to skip for coupon or an editioned joker to get it.
ooof the cards that aren't in the collection shoudn't do that
(although I wish jokers did that, tboi style)
should override the name but not the desc in that case
my grand plan for making mods is wait for everyone else to figure out how to do cool shit and then copy them
imagine all the mods we'll have in like, year from now
4d balatro first person shooter,,
5d poker with time travel
Balatro but every Joker you get hunts you in real life
When" Ride The Bus" rides into your house
Nice sell button you got there
5 jokers vs speedrunner rematch finale
i dont i hate modding stupid modding ruining my weekend
I also realized I'm making an update without writing down any changelog
i dont think ive seen a proper changelog out of literally anyone here
I'll 100% miss two or three things I added/changed
the shadow people
definitely not me
HAVE YOU SEEN MY CHANGELOGS 😭
i love vague early homestuck references
i put a lot of care into them......
you can't just spill the beans on our organized takeover....
Gotta love having a clean README 😊
myst unironically i dont think ive used a single mod of yours other than houserules 0.0.0.1
so no
I made a third, easy Joker, Hamster. The visual/sound needs some fixing but it works. (Although I need to debug the Blueprint interaction.)
Oog
vague homestuck refrances my beloved
hampter
hampter
hampter
It's hard to evaluate balance when I have two of them, which I believe is because the debug doesn't remove the Joker from the pool
Dog does seem like an above average scaler if you can get it going.
I didn't have Hamster synergy beyond two Hamsters, but it also seems like it has a lot of potential
who even is this douchebag
im gonna make something really low effort brb
It's less than the $4 of Golden Joker, but you also reroll while you do it
Tag is a bit anti-synergistic because you see less shops
rerolls are worth more than the eco
Anyways, as I said, I do think Hamster is strong, it's just hard to gauge when the only synergy I had for it was impossible to obtain in a normal game
ankh:
Are there any mods that auto-sort the joker order?
Like, alphabetically?
Optimal order
makes D6 Tag a better Investment Tag actually
6 rerolls from $0 nets you $25
and you get the money earlier
Later because you skip one shop
earlier than investment i meant
If you don't skip, you get half of the $ one blind earlier
Anyways, I do think the feeling of buying selling in Balatro is slightly less fun than in SAP
IIRC, you could just click and drag twice, but in Balatro it takes four clicks
speaking of SAP, imagine if you could freeze items in the shop until next time
mod still crashes on startup :/, can anyone check if im missing something? like a comma or closed bracket
thats my favorite tinkers construct material
no
cryting
theyre literally publically released lmao
https://github.com/AutumnMood924/TheAutumnCircus/releases/tag/0.2.2 download my trash
What can we do and what can't we do with Blueprint? I'm trying to make Hamster work with it, but I'm not sure if I should change the countdown variable I have in extra in Blueprint
Todd and Steven are the wrong way round lmao
joker yaoi...
it is done
old man yaoi…
you should exclude the effect of changing the countdown in blueprint, but activate the effect if the condition is met regardless
Does this mean that I can check the value of the countdown while in Blueprint, but I should check if it's Blueprint just to avoid changing it?
Like this
if context.reroll_shop and self.ability.name == 'Hamster' then
if self.ability.extra.rolls == 1 then
if not context.blueprint then
self.ability.extra.rolls = 3
end
ease_dollars(self.ability.extra.dollars, true)
else
if not context.blueprint then
self.ability.extra.rolls = self.ability.extra.rolls - 1
end
end
end
hhhhh why is it so hard to detect if a card is in the collection or not 
tinker's construct?
mc mod
oh there's an addon that literally adds that cover art
as a tcon material
i have no idea why
weezerium
please free me of the burden and use the weezer art
just idk, make a Weezer Joker or sth
jeezer
woker
"wokers are ruining our poker, jimbo" — old jeezer
for my seal look good?
looks about right
I love the artstyle. What's supposed to be written?
oops 6 or the effevt?
i love balatro mods but juggling the different versions in un-version-named folders on steamodded is giving me anxiety
steamodded management... some day
you can name the folders whatever you want
do i start versioning my mods...
Both
0.0.0.0.0.0.0
Oops 20
i love trying to use enhanceapi
i'm sorry for your loss
So it's indeed "oops6"
yea ima change it to 20 tho thats smarter but yea same effect as oops 6
you is right
||babalatro||
To be fair, both are a bit confusing, especially with that keming
Oh, then main do "Oops all 20s"
thank you for using my awful spawn
"Oops! All..."
all effects, positive and negative, are "very guaranteed" to trigger.
side effect: any glass card plays turns the entire hand to glass and shatters it
basically, chance based effects always proc but with some twist, possibly a horrible drawback
alright so im pretty sure enhanceapi just doesnt work
awesome
so much for making enhancements i guess
just gonna post this in the off chance i did something moronic
what happened? i put a testcard in there earlier
this happens constantly
can you send the github link?
fine give me a second to find it in recycle bin
it's... in its own forum post...?
can tyou send the forum?
no, like... you're kind of doing it backwards
ok so it doesnt work then
the table needs the variables that define your enhancement
oh
that's valid lua syntax for literally every other function
it passes that table as argument 1
i'll try it
i had an idea
all i'll say
but if this works that's even more confusing
what if a Weezer balatro mod
nope
i tried hooking into localize
whatever straight in the trash this idea goes
it adds 1 new joker (Weezer) 1 new deck (Weezer deck) 1 new Tarot (Weezer) 1 new blind (The Weezer) 1 new tag (Weezer tag)
literally just said "hey, if you could maybe print your args and then do whatever you were gonna do that'd be great"
this is nothing new
i am incapable of coding anything anymore
cant do packs cant do enhancements
literally peaked already
it's not just a you thing
whatever im done
weezer blind
you've lost
fuck you
that is indeed a loss
autumn left the server
yeah their name turned white so i checked and yeah 0 mutual servers
why cant i find it 😭 omg
might make Peach "create a soul card for every 9 rounds you've held this" or smth
missing an end at the calculate func
Myst what do you think of Weezer blnd
i think it looks good
it's
it's
its also loss
but
can i suggest an effect for weezer blind
whenever you play a card, play buddy holly
you must play four of a kind
it adds:
- 1 new Joker (Weezer)
- 1 new Blind (The Weezer (Can only play 4 cards)
- 1 new Tarot (Weezer)
- 1 new Seal (Weezer Seal)
- 1 new Enhancement (Weezer Card)
nvm it wouldntve changed anything
too much weezer
itay did you see the weezer joker
no
ohhhhh i understand now
disclaimer: i only said this because my brain autofilled it with the game
what game
I think the Weezer joker should gain X0.5 Mult for every 4oaks Jacks played
x0.4 because four
the blue card even
something about 4
now i feel kinda responsible 😞
even if it isn't my fault that lua is counterintuitive sometimes
I've also been trying to understand it, but just because I want to make a square red instead of blue
i posted the seals
what if the Weezer seal retriggers played cards 4 times but only if 4 weezer seals are played
tbf it was also trying to do stuff that the community has little experience on
but seeing it left just. sucks
is this too strong?
It's weaker than Trading Card IMO
it's a consumeable
what kind
colour, the kind i'm working on now
packs add them to your consumeable area, and they scale based on how long you've been holding them
for example, if you wait 6 rounds before using this, you get 3 cards destroyed and $12
Depending on price and availability it sounds fine. Weaker than Hanged Man since you can't control it and it takes longer to power up, but has a higher ceiling.
I want to say it's a bit weak
that's fair enough
Since the base game doesn't care much about holding consumables, it's more a question about how much does it cost to get one, versus how good it is compared to the other options, and how often you can change colors
But you can't buy them whenever
colors when i show them my The Monster:
hm
Spectral packs are rarer than Tarot packs
might make it lower money gain and only 1 round
So you aren't going to be changing colors every round
By the way, I was thinking about adding some new consumables that didn't show up in existing pools. Is your code available anywhere?
update's not out yet, check out codex arcanum though
But is the code to create a new consumable type there?
autumn is upset because it doesnt think that it has anything to offer to the community
hiiii
thats why it left
they left the server ):
yeah
yeah
just in a bad spot mentally right now, i think
it happens
yeah it's just this
yeah like
oh burnout too ya
i literally made an entire "fake localization" function
just to get around issues i had with localize as a function
i dont thnk this is about that
that issue was just a catalyst for something that was building up
i know, i'm just saying that i can understand how it feels to get frustrated because you have no idea what's going wrong
if i were you guys I'd maybe try to reassure them or something idk, maybe give it time too though like
thing is
autumn is cool i thnk
no shared servers
just send a friend req
especially because it's ass o clock for me
yeah uhm i'd just give it a few days
i'm at least giving it a few hours bc going to bed soon :p
thats okay
I thought about doing that, but I don't know it so I feel like I shouldn't @_@
yeah waiting is probably the best thing to do rn
yeah
if anyone does, they can feel free to pass on a "sorry" from me
just worried about it is all
progress!! i got a new crashlog!! still dont know how to fix it tho :(
what's the crash?
you're missing a localisation for your joker
can you send your code?
dms?
alr
oh, the issue is you don't have a loc_def defined
huh
hey does anyone know how to make a joker flip the cards in your hand?
how do i define that
Ooh, I don't but I'd also like to know
I'd look at how the Boss Blinds do it
something like this i think:
loc_def = function(self)
return { self.ability.extra.mult, self.ability.extra.x_mult, self.ability.extra.bald_tally }
end,
It's a function that takes self and returns a dictionary of values you can use for tooltips on hover
where would that go?
You can do something like
SMODS.Jokers.j_YOURSLUGHERE.loc_def = function(self)
return {}
end```
inside init
Card:flip()
wait its that simple?
I guess it still needs to apply at some time
where would i place that inside this code
actually, i've been wondering, why is literally everything in the config part of SMODS.Joker:new?
I'm not sure about pcall since I don't use it. I'd just define calculate and loc_def after registering the Joker
im not good at this ok 😭
Like this:
local localization = {
fourleafclubber = {
name = "Four Leaf Clubber",
text = {
"Lucky Clubs trigger again",
}
},
}
function SMODS.INIT.FourLeafClubber()
local jokers = {
{
name = "Four Leaf Clubber", slug = "fourleafclubber",
config = {extra=1}, rarity = 1, cost = 0,
blueprint_compat = true,
eternal_compat = true
},
}
-- Add Jokers to center
for _, v in ipairs(jokers) do
SMODS.Joker:new(v.name, v.slug, v.config, {x = 0, y = 0}, localization[v.slug], v.rarity, v.cost, true, true, v.blueprint_compat, v.eternal_compat, "", "j_"..v.slug):register()
SMODS.Sprite:new('j_'..v.slug, SMODS.findModByID("FourLeafClubber").path, "j_"..v.slug..".png", 71, 95, "asset_atli"):register()
end
-- Lucky Seven
SMODS.Jokers.j_fourleafclubber.calculate = function(self, context)
if context.repetition then
if context.cardarea == G.play then
if self.ability.name == 'Four Leaf Clubber' and context.other_card:is_suit("Clubs") and context.other_card.ability.name == "Lucky Card" then
return {
message = localize('k_again_ex'),
repetitions = self.ability.extra,
card = self
}
end
end
end
end
sendDebugMessage("Loaded FourLeafClubber~")
end```
ok now i need to figure out how to get the 'Card:flip()' to activate for every card
i can immediately tell it's the structure of mystjokers lmao
Let me know when you do.
kk
Yes, I followed the tutorial
not for long, mystjokers is getting a rewrite
wahoo
It still needs to proc at the appropriate time, and preferably before the card is drawn else you would've been able to see it
i'm just not releasing it yet because i hate art grr
hm. what should green do
It makes discards green
Something with rerolls if you haven't done it?
The colour is fitting so yea
local success, error_message = pcall(function()
local j_omni6 = SMODS.Joker:new('Omni6', 'omni6', {
ability_name = 'Omni6',
ability = {
extra = {
penalty = 0,
},
},
config = {mult=10},
spritePos = {x=0,y=0},
loc_txt = {
name = 'Omni6',
text = {
'{C:red}+#1#{} Mult'
},
},
rarity = 2,
cost = 6,
unlocked = true,
discovered = true,
blueprint_compat = true,
eternal_compat = true,
atlas = "j_omni6.png",
mod_id = 'BoolMod',
calculate = function(self,context)
if next(context.poker_hands["Straight"]) then
local has_a_six = false -- we declare a variable, starting as false
for k, v in ipairs(context.full_hand) do -- for every card in your full hand
if v:get_id() == 6 then -- check if the current card we're looking at is a 6
has_a_six = true
end
end
if not has_a_six then
return nil
end
ease_dollars(5)
return {
message = localize('$')..self.ability.extra.penalty,
colour = G.C.MONEY,
delay = 0.45,
card = self
}
end
SMODS.Jokers.j_omni6.loc_def = function(self)
return {}
end
end
})
``` so like this?
I guess
why is everything in the {} actually
that's not how you declare a joker with SMODS.Joker:new
also you forgot a comma
But yeah, I'd define calculate outside and not define loc_def because it doesn't need to
where?
You define calculate then loc_def but there's no comma between them. Also, as suggested, I think the whole structure should be different
Try this
There’s some comments above and below like
--- STEAMODDED HEADER
etc.
Yeah, change the names/slugs and the calculate function definition
alr
yeah that's not quite how that works... it's going to change to something more like this (a single table parameter), but for now it's best to follow the example on the Steamodded wiki or of any other joker mod besides jelly
SMODS.Jokers.j_YOURSLUGHERE.calculate = function(self, context)
---YOUR DEFINITION HERE
end```
using self is technically misleading
Why?
the first argument is not the table the method is defined on, i.e. not SMODS.Jokers.j_YOURSLUG
instead, it's a Card object
sure you can use self to match the code in the original calculate_joker exactly, just keep in mind it's misleading
Ah, I see
using self is still easier to copy the code from calculate_joker over
(hi)
yea
there's also the difference of what gets passed to calculate vs. tooltip, which is obscured by using self
👀
So you just play an empty hand but as a pair 🤔
coming soon to a mystjokers near you, a billion separate lua files
Challenge Deck: Start with no cards but have some of those consumables
I can think of cheesy ways to implement this that wouldn't account for hands included in the played hand, since technically there are no cards
that one t. cain challenge
say there would be a card that plays 3oak, it's important to keep in mind pair jokers should also trigger
that's how I do it
it only count sas a 3oak if i do a 3aoak
Not necessarily
i feel like that's counterintuitive
I see it more as overwriting the hand type from High Card to a specific one, but since it’s empty it doesn’t contain any hand except High Card
a 3oak should contain a pair just as much as it contains a 3oak
Well, if you overwrite it doesn’t even contain high card
nope, there's no high card either if there's no card being played
It depends on the definition
I do agree a new hand for the Empty Hand would make sense
But without such a definition it ought to be High Card
I'm just saying 3oak inherently contains a pair if it's meant to contain a 3oak
I think High Card’s definition should just be “is a set of cards”, which includes the empty set
i mean in text, the definition of high card is literally "none of the above"
so in a way, it does contain the empty set, because that doesn't make any hand that isn't high card
But that’s a consequence of the definitions. If you can construct a 3OAK that doesn’t contain a Pair, say, by overwriting the empty hand to be a 3OAK, then it doesn’t contain a Pair
but then it also doesn't contain 3oak
But then the above hands don’t contain High Card, or do they?
(don't get me started on the set containing all sets that don't contain themselves)
they don't
I guess if we look at the power set of the hand, then each set of a single card is High Card, so they do contain High Card
{A
} is contained in {A
, A
} so it does contain High Card
It doesn’t, except you’re redefining it so that it does
it's fine to say that a hand played via this mechanic doesn't contain a hand type because no hands were played, I'm just saying it's inconsistent to say a 3oak played this way contains no pair but does contain 3oak
I disagree in the sense I could see it being defined either way, but I agree that it’s non-intuitive for the average person
I don't mind either way, but either one such 3oak triggers both jokers that target pairs and 3oak, or neither
The way I see it working is that you’re not redefining what hand it is, you’re redefining what hand you perceive it as, hence when you ask “give me the power set of this hand” you only see the empty set
Hence no pairs
except that isn't how the game calculates hands
it takes the cards and asks each hand type if it's fulfilled, then uses that data to determine if a hand is contained
I don’t know how the game does it in particular, but in an abstract sense I could see both working. Especially because implementation-wise, I could see the output of the function that calculates hand type be captured then overwritten
hey, i can always predefine the appropriate hands for each composite hand
Mod that adds extra hands that are subsets of existing hands: 
wdym?
I’m just saying if another mod added more hands that were subsets of existing hands, then they wouldn’t work because you hardcoded the subsets
It’s not a real issue unless you want your mod to be compatible with something that might exist
eh, what subset of an existing hand could I even make that is always satisfied if a certain other hand is
I didn’t say it made sense to do that
3-card straights?
But anyways, Stone Hands
Spectrum cards?
i mean you could always run the hand calc thingy on a dummy hand and go off that
like, composite hands for Spectrum
Not Spectral?
Spectrum is a hand type in Six Suits
yeah sure
Spectrum is 5 cards of a different suit?
me when "Play a Spectrum Five"
but how about this example
this is a flush, but it will trigger pair related jokers
Four Eyes
You can make Spectrum with four suits
but that's not something every flush does
i love that

