#💻・modding-dev
1 messages · Page 263 of 1
are there any other weird calculate_effect() stuff
I assumed joker retriggers didn't work with it either, though I haven't tested that
yeah these would work in a similar way
Hi guys, I am trying to use debug plus to check out some vsalues for a highlighted card like so
eval {#G.hand.highlighted[1]}, I want to see how my selected card's enhancements / abilities are configured
But the syntax is escaping me a bit 😄
how does the eval work for the juice_card_until. I assume it stops checking once it returns false once, right?
juice_card_until should be renamed to juice_card_while
I thought I understand how it works, but it seems that I only get the function to behave the first time it's supposed. Afterwards, it doesn't at all
I have a card that will activate every X hands. So it tracks the hands played and is then ready. It has this function in it, @hushed field
juice_card_until(card, eval, true)```
It will keep jiggling until the card sets it's own ready back to false
eval print(G.hand.highlighted[1]) idk if you need to do print with eval but itll work
ah, maybe I should make the function simpler and just have the check take place in the card logic 🤔
this depends on the order of operations, it seems like in lua the # has predence over the [1], so you're indexing a number at that point
or wait
am I tripping
nope I'm wrong
what are you trying to do with the # there?
hey is there a variable for whatever the current mult is
i want to add an 'exponential' joker
but i need the mult to make that happen
current mult like the hand's current mult
I think during scoring it's stored in a global called mult
like if regular flush was played then mult would be 4
ohhhh that is why i kept getting 1 in my output. I forgot lua's casting syntax. the # is like a .Count() property in other languages. Thanks 😄
like 2 ^ mult? mult ^ 2?
mult^2
but i may make it 0.2^mult
or whatever makes it balanced
because i know damn well that can get really unbalanced really fast if i dont cripple the shit out of it
ill do mult^2
easier to control
doesn't 0.2^x approach 0
may be a little busted
i would do end of round like regular joker
or regular gold joker i mean

higher operations can be balanced as long as they are restricted in some way
like an upper limit you mean?
I like the card, but "lose $-3" reads really weird haha
dammit
¯_(ツ)_/¯
gives 3 bucks and 6 mult every hand seems legit
seems balanced to me
^2 mult is probably too strong for a vanilla adjacent environment though
globals are G.__ right
have you tried out Talisman for this or do you need it to be independent
huh
for the mult thing? no, it's literally just mult
talisman allows e_mult
there we go
man i was excited about writing that
so im looking for context that my joker would trigger after another joker triggers
Hi guys, quick question. I made this enhanced card which is like a crappy stone card that gets better the long you have it
I made a joker to play with it, but it's context never seems to trigger. anyone see what I am missing/
-- playing card retriggers using .repetition
return {
message = localize("k_again_ex"),
repetitions = card.ability.extra,
card = card,
was_blueprinted = context.blueprint,
}
elseif context.cardarea == G.play and context.other_card and context.other_card.ability and context.other_card.ability.name == "Grass Card" then
if context.other_card.ability then inspect(context.other_card) end
return {
message = localize('k_again_ex'),
repetitions = 2,
card = card
}
elseif context.repetition and context.cardarea == G.hand and context.other_card.ability and context.other_card.ability.name == "Grass Card" then
if (next(context.card_effects[1]) or #context.card_effects > 1) then
return {
message = localize('k_again_ex'),
repetitions = card.ability.extra,
card = card
}
end```
so like it would be
1 2 3 4 5
1!! 2 3 4 5
1 2 3 4 5!!
1 2!! 3 4 5
1 2 3 4 5!!
Bonus picture of joker
i may make an enhancement called 'burnt' card that has a 1 in 20 chance to level up whatever hand its played in
is that a good idea or is it a bit broken
more like "space" cuz of the 1/20
too weak? too strong?
I think it's pretty good
well im basing it off the burnt joker
it sounds more like space joker
yeah that could work
and then i could make some jokers that play off of it
oops all sixes would be good for it
talking vanilla
gotta make sure you have good visibility for the suits/ranks though on a dark bg like that
yeah
this one?
im more worried abt spades/clubs than diamonds/hearts
thats perfect
thanks a bunch
mm this mod is gonna be great
i need to adjust some code though
i need to seperate my deck skins from my everything else
what about 1 in 10 but it also costs $2 when it proc's?
1 in 10 seems far too strong
especially considering luck boosting jokers
Anyone see why I am not able to process on my own custom enhancement here?
Like, retrigger every card scored?
good point, I forgot about the luck boosters
yeah every scoring card
Remove the if around the return
thanks!
oh dear lord i have some good ideas for this mod
i also have an idea for a ‘bomb joker’ that gives a crazy mult but has a 1 in 20 chance of destroying itself and every joker adjacent to it
I have some jokers with effects like that, and they're some of my favorites to play with
gros michel from hell
I love a good risk/reward
gros bombel
then i make the cavendish version that’s a 1 in 500 chance to just nuke all of the jokers
but it’s like 6x mult
b
b!
here's my first concept
looks good, if a bit blurry
the blurriness is on purpose
i felt like ading it to the edges gave it a nice look
ctually\
hold onb
why are you in my shop
I will add a print around all played cards to see what I am missing for my grass dudes
$-1 dollars 😢
i’m genuinely cooking with this mod
Me when I boil an egg on my laptop that's trying to calculate my eeee4000 score
remove the space
Spaces kill the functionality
between c and attention
No spaces between brackets
god damn it
Same goes for when you're stacking effects

god forbid i want readable code
same here
{X:mult,C:white} works. {X:mult, C:white} doesn't
Readable code? In my joker poker?
joker poker: balala
'I LOVE LUA' i say behind tears and gritted teeth as i add yet another end because apparently brackets werent good enough for this language
My teammates in a League match when we're 0-1 behind 15 minutes in the game and we can surrender
what do you mean poker jo- i mean poker j- i mean joker jo- i mean-
Hahaha
theres a joker in my mod called 'The Jonker' that reduces chips by 100 and sets mult to 0
mfw im playing gold stake and i get an eternal jonker from a judgement
best joker evar
readable code chat
i feel bad for players
seems legit
is that ur mod tho
I was originally gonna do a legendary joker for the movie Joker but I opted for Barbie instead. I'll make Joker the Jimbo equivalent for when I remake every vanilla joker as a Kino joker
will it have blinds ?
probably
baby jonkler
the Jonker
welp if it will then i'd love for u to ping me when itll be released
also that one joker thats bleeding is the lobotimized joker
This is inevitable in a bunch of languages though, haha
going insane from my tiredness
i got mad at my code so i lobotomized jimbo
What's stopping you from sleeping, Aiko?
😭😭😭😭😭
and yes, that is margret thatcher joker
development...
development must resume
if then
if then
if then
if then
end
end
end
end
It doesn't, sleep is important too
lua moment
me when the when the when the when
i added maimai jokers to the game
add blinds 🔥
why 'if then' and not just like 'if {}' or 'if:'
im so C pilled right now
tbh for me best way would be
if:
yap
end
I'm making an add-on mod that allows people to define custom joker sets, and everything's just gonna be long lists 😭
u mention where it ends and don't type then
end makes me so irrationally angry
sounds peak
no not C
everyones favorite joker!!! jombo!!!
if {
code
}
tbf you can and your if thens
that sentence
makes
no sense
ts pmo
to be fair, you can and your if-thens
it looks carnivorous
unfortunately my end 





wtf
kasane teto
how do i add blueprint effects
SMODS.blueprint_effect ?
the code i just posted actually does blueprint
i wanna add something that tells blueprint wtf to do
im not trying to add in retriggering
im trying to make my joker retriggerable
context.blueprint iirc
jokers are copied by default, you need to tell them when NOT to be copied by blueprint
no cuz that's too broad
it's gonna trigger like 100 times
check for not context.blueprint for effect that shouldn't be blueprinted
things can be blueprinted by default
ok so if its blueprinted by default then im good
my legs are in pain
yknow the feeling when you're just playtesting your mod
and you get a good vanilla run
all the time
i dont playtest my mods
and then you realise "shit i cant count this to my vanilla runs"
but you get this ante 2
and im pissed as hell
I only play test 'N's mod, I barely touch mine
damn!
hi pepsi
is this language here good
oh my god
hi
might want to split the lines
otherwise?
This pic for a moment made me think my code was dangerously short:
it will just be very long
no i mean is the text fine besides the lines being wonky
I would also do {C:green}#1# in #2#{}
no this is fine
i just have a lot of things to check
got it
also Cryptid has Astral
btw N, I was trying to go through the log to find it, but you had some code to properly format localize stuff, right?
galactical cards
no mod stuff has shown up in shops
-- scourge deck
SMODS.Back({
atlas = "devils_deckbox",
config = {
scourge = true,
scourge_price = false,
},
...
if I want there to be an event that triggers at a certain point mid-run that sets scourge_price to true how would I code that in? When an if statement checks one of these variables it looks like:
if self.effect.config.scourge then
so would I need to do something similar to assign the variable too?
you're the
i can be used as any token yes
pretty sure backs have the calculate function as well
N
A
toke'N
how do i upgrade the played hand is the question
there's a little function called upgrade hand
oh alr
return {level_up = true}

or upgrade, wait lm check
so you can probably just find the context you want to change that variable in and then assign it
this is probably better
yeah, it's level_up
and iim sure theres a context for being played
i still upgrade hand the manual way
does level_up still have problems with the text when leveling up a different hand than the one played
level_up only can upgrade the played one, no?
97 year old mod still upgrades hands tbe old way
Which problem? I didn't think it had one when showing diff hands
I have a joker that levels up a random hand after using a planet card
😭😭😭😭
oh yeah, I think so
I still keep forgetting to fix it in Kino, and people tell me about it, so I assume it's still there
it just doesn't display the text for the upgraded hand it just shows "+"
oh i realize my wording was unclear. i know how to create an event that triggers when i want it to in the run, i just was asking if i needed the whole self.effect.config.variable_name bit for assignment statements
Oh no mine definitely shows the text, let me look at mine in a sec to verify I'm not misremembering
i probably do tbh
hi
im still learning to read curlies as tables cuz im extremely javascript pilled
yeah you do but I think you need to use the other variable?
iirc self is like the prototype or smtn while back is the actual thingy
I think the text hanging around is when you do it not during scoring iirc
i want to set a flag that remains active for the entire rest of the run no matter what else happens
yeah i do it in a custom context
I need to take another look at it at some point
yeah but that has the opposite problem of not deleting the text lol
i fixed it by doing it manually but still
this still look right so far?
yea but it removes the text if i select another card anyway so i figure its not the worst, it does at least show the hand being upgraded :b
"chance" should be green too i believe. u could prob also put "upgrade" on the first line
alright\
I think the atlas should be 'enhancementatlas'
how do you make shaders?
very complex iirc
through great effort and confusion
you can do
update_hand_text({ sound = 'button', volume = 0.7, pitch = 1.1, delay = 0 },
{ mult = 0, chips = 0, handname = '', level = '' })
more
you are basically telling the GPU how to manipulate pixels
with insanity
uh oh
just find free shaders online lol
just credit whoever made them
you'll have to fix it
god dammit im already insane i dont want to go to the asylum
the aslume?
oh yea that does the job, thanks
why are you trying to write shaders? are you stupid? /ref
i want to make an enchantment
alr
I wanna give shaders another shot soon because I desperately want to make Abduction not look like fucking shit, haha
i will never willingly write a shader
I really liked working with shaders in unity, but that had a shader graph and a visual editor
ok so no shaders then
should i just use images?
i want to give shaders a shot but instead just press a button that says 'cool shader'
Speaking of which, where can I find guides about making joker shaders?
is the point that you're very smart
there is no guide
no
apart from the one on steamodded wiki an the examples
otherwise you are on your own
that is in fact the point
I'M NOT SMART
yes you are
aiko wants to flex how epic and smart they are
I'M STUPID AS A FUCKING ROCK
yeah showoff
says the person making a math deck
if youre stupid the rest of us are fucked
true
i still have one secret addition to my mod that i haven't revealed
i think i have a clue as to how i can go about it
is it your iq test results?
the entirety of super mario bros
no I'm average in terms of IQ
i hope my enhancement works
i may make an ‘alien joker’ that galactifies all face cards played
rare ofc
question mark
sorry that's copyrighted by me already, tough luck ❤️
Perish
ufo joker?
You arent in this episode.
ice:start_dissolve()
ice:shatter()
ice:destroy()
does context.destroying_cards go through G.hand?
Haha, probably nothing similar to yours, no worries. Mine's called 'Alien' after the movie 😛
but just so that the court proceedings will include this as evidence, proof that my mod has both an Alien joker and ufos
context.destroy_card does iirc
took me a whole ten minutes to draw that ufo in Aseprite, and then a whole 2 hours to get that 0 to be beamed up by it in the UI 🥲
too poor for aseprite so i use the lamer brother libresprite 
gave bro a buzz 😭
aseprite is free if you compile it
my goat libre i use libreoffice writer for my papers lmao
😭
oh boy i love piracy!
I compiled manually on my Linux machine but ended up just buying a license because compiling on Windows is a pain in the ass
lol
give.
is that a new context?
its not piracy because its included in the license
i only have linux builds
no
i don't think you're allowed to distribute the build
sob
was there a premade way to assign enhancements to cards randomly at the start of a challenge?
the aur seems to get away with it
I’m pretty sure they have it on their website
pretty sure the AUR package just automates the compilation and doesn't distribute the binary
which aseprite's git repo itself has a build.sh
on windows it takes like 9 gigs of nothingburger if you never intend to compile anything ever again though
if i fall asleep i blame you all 😭
yeah i just checked
development must resume today
Okay. We will pinch you using crumpled jimbo
even the aseprite-bin package just takes the purchased .deb and upwraps it
how do we feel about this
im sleeping comfortably at work
real
if you use arch linux and the aur it cleans up after
alternatively
just have alot of space on your machine
easy fix
and youll want to compile latest aseprite later on im sure
yeah but it's probably annoying for people who only want aseprite to install entirely unrelated things
thats tough, buy it on steam then
What the fuck is a Visual Studio.
this is True!
sacrifice convenience for having it for free
i see this as a windows problem rather than a convenience problem
oh no, making custom rules for challenges is going to need a bunch of lovely patches, aren't they? 😢
as everythign seems to be
Not really?
urggg...
I just want to compile a C project why is the first result telling me to install an entire IDE
it only depends on if the rules like
although windows is one large inconvenience itself
because its windows
actively work against the game
I guess I can hook into some, but there's no object or calculate context to set rules up with, right?
they just work all the time
G.GAME.modifiers.xyz
nil or true
yeah, but the game's not just gonna guess what it needs to do based on vibes of what I name the rule 😛
that's a very aiko coded blind haha
maybe it's just because i'm used to editing the source but hooks work very well for a lot of things
eg. i did all debuffs using a hook i believe
well too bad im making it anyways
I think for some it'll work, others'll be patches, judging from what I need them to do.
Oh yeah that one's inevitable
but it's a lot less than you think it'll be
ooh i could have a boss blind that turns every enhancement's effects negative
like instead of steels doing 1.5x mult they do 0.5x mult
thats defo like a big evil boss blind
hey so if i made a 5th suit could it be rolled by stuff like ancient joker
Ancient Joker's hardcoded iirc.
we
if it's in your deck
awe
i think steamodded patched it
please help my legs don't want to pull me up anymore
This PR corrects an oversight in SMODs by patching the reset_ancient_card() function to automatically assemble the list of available suits, rather than using a hardcoded list of the 4 standard suits.
agreed, development is commencing
my body isn't feeling it
only if there was a way for me to code without effort
its okay, ill do the resuming of development, you get your rest as i believe you said you are sick
this is why you must use your fingernails instead
have fluids, make sure you eat
become a spider
ok no fuck vibe coding i hate vibe coding all my homies hate vibe coding
did you see that ‘vibe coder’ who had like a billion billion vulnerabilities in their site
im unfamiliar whats vibe coding
what on earth is vibe coding 😭
(context: vibe coding is when you use 100% AI to make a project to get rich quick)
was typing context
balatro modding has made me a better programmer because deepseek is hopeless when it comes to this
fellow modders, i know what we are going to do today
😭
aure are you ok
if you use ai 100% you arent coding 😭
did you just learn about vibe coding today
no ik about vibe coding
that's why it's just coding for the vibes
with how ass my shit is it may as well be 😭
ai absolutely fucks up coding in some languages too
i rather shit code from someone and them asking a billion questions then just ai generated mod
i have used ai to tell me where im being fucking stupid when i cant tell where im missing a comma or some shit before
that aspect is at least useful
Im not sure if this is the right place to ask but considering how only modders are here yall can give me the best answers. does anyone know how to exactly use the "replacejokers" mod?
not like linters exist?
i mean its just making new junior developers not know how to code, or debug
i literally JUST watched a video about that wtf
no crtitical thinking at all
ive never in my life used
job security for seniors lmao
oh yeah hold on i just remembered something
true
all fun and games until they quit smh
istg crtical thinking is shown to go down
i mean thats fine
google should make that 100%
a lot of code is just copy and paste from stack overflow anyways
dude all these hacker groups are probably salivating at all the shitty code they get to exploit soon
stack overflow my beloved
i might be cooking chat
aiko youre fuckin always cookin get out the got dam kitchen
i just plugged in my second monitor and rotate it towards my bed
wowie
development resumes
i’m at my alternative setup with one monitor
and i’ve been cooking
once i get to my big setup with 2 monitors
i’ll be unstoppable
you need to get those setups that let you just have a whole desk you can rotate and move from your bed
i recently got a second monitor from facebook market place
one of those mf gamer cradles
i lowballed that
ive got 3 monitors, one that was a couple hundred bucks, one that was like 60, and one i stole from a hotel i did security for (they said i could take it)
this second monitor is special
because it's a pen display
paid like 400 bucks or some shit
zamn
it's 21"
mine is like 120 bucks
165hz, my dad used to have it but he gave it to me since he didn’t like curved monitor
mine is 40 bucks, i love having discord and spotify open on it!!
i just got this shit
it aint the absolute best but it does its job
me when using an old ViewSonic 1024x768 monitor that technically doubles as a monitor for my pre-2005 PCs:
thats all you need tbh
why the heck are my messages doubled
not point on spending a fortune for a second monitor
your just so special
I have a regular monitor and a wall mounted tv that I use as a second monitor so I can watch movies while I work, ofc
over my main one
balatro goes kino moment
i love that
THE PROBLEM ARISES
not my jimbo
THE GAME STARTS ON MONITOR 1
Just get some tvs silly
turn that shit on
Balatro Discord goes Kino
ey mom get the camera im in that pic
which one of those three are you?
😭
if you don’t use game speed 4 what are you even doing
x16
i did change the effect of this so it is a bit better
too tiktok brainrot pilled, cards move fast now
it no longer resets
i was installing my mod on my gfs system and her ass was still on normal speed and i forgot how slow it was
i’ve never seen anyone play on .5 besides amber acorn
.5 is trolling
what do yall think about my blind that makes all of your enchantments Evil
I could probably release my mod today, but it wouldn't have any jokers, so im considering holding tye mod back and implementing the jokers i planned on adding next update first
Help I looked into the deck back, fell into it, and I’m still falling
sounds hard to code
hi vic :D
Hello Dillster
seems really interesting if i can get it right though
what would i even call it
The Flip
The Heel
i wouldn’t make it a regular boss blind
it seems way too strong for a regular boss blind
Upward Ultima
I think it’s not strong enough for a showdown
i mean this is my regular boss blinds

i mean
imagine a deck that plays around steel cards that suddenly gets fucking crippled
I once made Cerulean Bell into an ordinary boss blind
or any enhancement actually
Because I didn’t think it was strong enough to be a showdown
also plant 2
I changed it slightly just to make it different
literally half the game is now crippled because of the blind
good morning everyone
i feel like it’s worth a showdown
morning
Imagine the Plant
I disagree
hi bepis
mfw the blind makes me go fuckall in debt because i have a billion billion gold cards
™️
It’s a bit unfortunate how Balatro Blind system works, but I don’t think “can sometimes cripple a specific build” is a powerful or interesting type of boss
So I wouldn’t make it a showdown
but it cripples alot of builds
It’s both weak and uninteresting
the mercy descending gif
How are you Dillster
lmao
Jhariah reference
But it doesn’t cripple them a lot
im donig well!
im feeling pretty motivated today
i hope you are also doing epicly
does anyone know what the correct name for the context of "whenever a joker is added to the joker area" is for calculate functions
It’s a minor inconvenience usually
come on man, mult cards aren't even that strong 😭

bepis
whomst
hi aiko
polychrome that gives you the 0.25x mult
face cards all give x0.5 mult

context.card_added and you need to check that the card is a Joker
i guess you just made an impossible boss
the showdown that increases the ante every other hand played
appreciate it!
OMG OMG
showdown that swaps ante with rounds played
what is it a good idea
naninf or bust
Also @tall wharf did I tell you I finished implementing The Wind?
wtf real
dear god
a really wanna make a blind called ‘Symphony of Sorrow’
mult is divided /100, but you get 100 hands
it literally exists just to spite you
and some are even playable. I'm setting up an implementation to randomly assign a number of cards in the starting deck an enhancement based on a challenge rule. That's probably something useful enough to figure out how I write good push requests for SMODS
it’s not about being easy or difficult
it’s about causing the player suffering
they can beat it easy enough but it’s gonna take a long ass time
oh shit you have challenges implemented
are they pushed to your git? i wanna steal your code (with permission) to start implementing my own
if only i could force game speed to be 0.5 while the blind is active </3
oh right chicot
someone actually did that
but for a joker
i think they forced your game speed at 0.1
Should I rename Rouge Ribbon to Lavender Loop?
-# or Lilac Loop maybe
not yet. Pushing them tonight somewhere, I reckon. But the code for challenges is all over atm, besides defining them
as long as i can find em is all i care about
would you guys download a mod with just editions, enhancements and seals or shoukd i hold off until ive added jokers
wait what if i added a joker that gives you +5 joker slots but at all times half of your jokers are disabled and the ones that are disabled cycle randomly
Blind that makes the player take physchem lab classes
wip
🏳️⚧️
blind that when lost, sends hired goons to your home
why so true
is it bad that i like cute thing as a grown ahh person
bout as useful as The Club on checkered
why is true 2025’s new meme
No
Didn’t you watch
The Spongebob movie
anything but obs bro
:3 foil + bonus support
steam does clipping too
you can record the past 2 hours always and then just clip it
how it feels to spread misinformation
aiko, can i make it so when you play HONKAI word then u get a free roll :3
Is that accurate to IRL
-# cross-mod content
and also how i can put user in control on converting letter deck to letter+math hybrid deck
i can
yes, try it :D
i was thinking of making a Sonic Heroes deck skin pack
inaccurate because mihoyo would never be that generous
oh, sweet
can you make it so it increases G.GAME.hsr_free_roll by 1 :3
I wanted to try ZZZ but I didn’t have enough memory
That’s what I thought
except for zzz and hsr 💔
i mean, hsr is becoming pretty generous with how much stuff they r giving away
I need to buy a new PC if I want to play ZZZ
same
hold on
id make a zzz mod if i got to play it :3
I had a parts list but I didn’t buy it
Development resumes tomorrow?
development resumes today+1...
tomorrow
I liked making the Dichrome Edition a lot
Kinda makes me want to make something else a bit similar to it
Aiko's Shenanigans tomorrow
this code is saying "ERROR":
localize((G.GAME.current_round.book_card.rank or 14).."", 'ranks')
also hai, aiko! :D
i think im gonna call my mod Astropulvis
Me procrastinating the Scott Pilgrim Deck Skin:
👋
Astropulvis is the latin word for stardust
Maybe it’s missing a type= or vars=
mm? clarify? sorry
I think it’s not identifying what you’re trying to localize
with positional arguments
So maybe it needs to be a table with key and value pies
pairs*
how do i fix that one sprite in particular from looking like a misprint
this one
its the only one that does this
lmao it looks crosseyed
it is at 0 0 in the spritesheet but thats all i can think of that causes it
i have lost my own magic
you properly measured them right
yes
tried that, am now getting nil
What position is it using?
how do i apply an enhancement to a card using a joker
i have the context set up
i just need the thing to actually manipulate it
That’s very odd
context.other_card:set_ability('m_enhancement') I think.
yall
is the enhancement in my case would be whatever key i turned into the enhancement?
bepis pls
we have hsr at home
balala
for april fool: turning my mod to be referencing whatever that game is
how do i use debug plus to do that
i have debug plus but it’s not really doing me any favors
Press 3 in the collection.
oh my god
}
SMODS.Joker {
key = "alien_joker",
loc_txt = {
name = "Alien Joker",
text = {"Turns any face card played into a {C:purple}Galactical{} Card. "}
},
rarity = 3,
atlas = jokeratlas.key,
pos = {x=6,y=0},
cost=5,
discovered = true,
calculate = function(self, card, context)
if context.individual and context.cardarea == G.play then
if context.other_card:get_id() == 11 or 12 or 13 then
context.other_card:set_ability("galactical")
return {
message = "Abducted!"
}
end
end
end
}
SMODS.Enhancement {
key = "galactical",
loc_txt = {
name = "Galactical Card",
text = {"{C:green}#1# in #2# chance{} to upgrade", "he hand this card is played in."},
},
config = {extra = {odds = 20}},
atlas = enhancementatlas.key,
pos = {x=0,y=0},
loc_vars = function(self, info_queue, card)
return { vars = {(G.GAME.probabilities.normal or 1), card.ability.extra.odds}}
end,
calculate = function(self, card, context)
if context.main_scoring and context.cardarea == G.play then
if pseudorandom('galactical') < G.GAME.probabilities.normal / card.ability.extra.odds then
return {level_up = 1}
end
end
end
}
what am i missing?
you missed
the prefix
and the class prefix
which would be
m_yourmodprefixyouputinthejson_galactical
ohh
4…
still cruel
3…
taking player's money is cruel
2…
still cruel
1…
still
You win!
Next Blind!
+$20 but halves your money
I already have another idea like that
:)
fucking hell now what is it
try updating steamodded
i have latest
98%
}
SMODS.Joker {
key = "alien_joker",
loc_txt = {
name = "Alien Joker",
text = {"Turns any face card played into a {C:purple}Galactical{} Card. "}
},
rarity = 3,
atlas = jokeratlas.key,
pos = {x=6,y=0},
cost=5,
discovered = true,
calculate = function(self, card, context)
if context.individual and context.cardarea == G.play then
if context.other_card:get_id() == 11 or 12 or 13 then
context.other_card:set_ability("m_astropulvis_galactical")
return {
message = "Abducted!"
}
end
end
end
}
SMODS.Enhancement {
key = "galactical",
loc_txt = {
name = "Galactical Card",
text = {"{C:green}#1# in #2# chance{} to upgrade", "he hand this card is played in."},
},
config = {extra = {odds = 20}},
atlas = enhancementatlas.key,
pos = {x=0,y=0},
loc_vars = function(self, info_queue, card)
return { vars = {(G.GAME.probabilities.normal or 1), card.ability.extra.odds}}
end,
calculate = function(self, card, context)
if context.main_scoring and context.cardarea == G.play then
if pseudorandom('galactical') < G.GAME.probabilities.normal / card.ability.extra.odds then
return {level_up = 1}
end
end
end
}
heres just the part i just now added
its just pulling the key from the atlas variable
instead of referencing the key directly
was i cooking
im failing to see what ive missed here
urgh...
sorry...
maybe in the midst of all the changes
i fucked up the run save somehow
let me start a new run
yep that was exactly it lmao
wait hold on
what is this
have you tried playing with that card
yes
hmm weird
it doesn’t affect the king
wtf
OH
OH MY GOD
I JUST REALIZED
You should check for context.other_card:is_face()
yeah it’s only looking for one card at a time
sis wrote it like math problems
_ _
do this
also juice the card too
how
Card:juice_up(scale,wiggle)
can i. make the transformation happen right as the message appears
can i shove it in the return somehow
all at once?
do you want to do it before or after scoring
before
i think you can check for context.before
ok let me try that
if context.before and context.cardarea == G.play then
loop for each card in play with ipairs(G.play.cards)
change each card
end
end
i see
i can confirm that the enhancement works as intended
i may add a whole new category of consumable
Ritual cards… yes
😭
they’re like spectral cards on crack
all red ish
so they can have really positive effects but it all comes with a big price
are you aiming for a sci fi space or a horoscopic space
i’m aiming for honestly whatever tf i want
both would be cool
that is so fire
ritual cards
and then horoscope cards?
‘Blood Pact’ card that gives you a random eternal rare joker
dude why is my creative energy peaking right now
what has this game done to me
that’s fun
i don’t mind stuff like that
cryptid is meant to be broken as fuck anyways
wtf
yo I've got some of those in my mod
accidentally pressed F12
A balatro mod of epic proportions. Contribute to FluxC0/Astropulvis development by creating an account on GitHub.
🔥
got the github up
mostly just to save the files but
go peer through my awful code if you dare
how do we feel about the blood pact ritual
being on checkered deck and you roll the fucking eternal ancient joker
tribute deck and rolled an idol
i’ll have to think of more ‘ritual’ cards
destroy all jokers and gain $50
Sacrifice?
¯_(ツ)_/¯
yes
i crave for the clean code
this is my main file
oh nice
so it fucks up if the load fails presumably
i have the same thing without asserts
kind of
i made a util function to load all files in a folder automatically
so each card/enhancement/anything is in its own file
impressive
cause i dont like having all the enhancements or whatever in one file cause it would get big and hard to read
its 5 lines of code and 2 are just saying function
so really like 3 lines
also
i copied the idea from paperback
heres the code
-- while scourge deck "price" is active, set all new joker sell values to $-10
-- triggers whenever any card is added, still a bit redundant but shouldnt lag anymore
calculate = function(self, card, context)
if context.buying_card then
-- sets the sell value of all jokers to $-10 (shoutout paperback)
for _, v in ipairs(G.jokers.cards) do
v.sell_cost = -10
end
return {
cardarea = G.jokers,
buying_card = true,
card = self
}
end
if context.card_added then
-- sets the sell value of all jokers to $-10 (shoutout paperback)
for _, v in ipairs(G.jokers.cards) do
v.sell_cost = -10
end
return {
cardarea = G.jokers,
card_added = true,
card = self
}
end
end
This code works as intended when buying a Joker (it sets the sell value of all Jokers to $-10) but it fails when Jokers are added by something like Judgment. I also wanna create a boolean that the deck sets to true sometime mid-run that causes this to be activated for the rest of the run
Why do you have context.buying_card while also having context.card_added?
oh my god my brain
does card_added eclipse all the scenarios buying_card would trigger in?
hmm are there any methods of making jokers less likely to appear? like having a lower weight in the pool
I think so.
lemme try it
The only thing it doesn't do is vouchers I think.
asking cause i wanna do 5 jokers that have 5 different sprites and slightly different effects per sprite but i want each of these to have a weight of 0.2 as opposed to the average joker's weight of 1
(theyre all tour posters teehee)
alsooo thinking of doing a tag or maybe several tags that are stronger than the average tag but are less likely to appear
i’m gonna add the skibidi joker
tried card_added and it didn't work at all
Could you put a print statement somewhere in there to check if it is triggering?
i know its not a problem with what's inside the function because the exact same statement worked properly when it was inside buying_card, and it makes a very immediately noticeable change to the game state
i wanna make the ‘average logan subplot’ image into a joker
does anyone know how to add custom tags to the info queue in a card,
also how to use it in add_tag()?
omg that's great
hey quick question could i use a higher res image for like a few jokers if i just define the atlas correctly
or would they be far too large
I don’t see why not
they get scaled down
because i wanna quadruple the res for this one in particular
I’d just link to a separate atlas for them
yeah
yes, some mods do this. JoyousSpring's a good example of it
word of warning for that, cardsauce does it and it makes stickers smaller
just downloaded the LOVE2D annotations from source, is there somewhere specific i put them?
i’ll make like ‘high res joker atlas’
at a high enough res theyre barely visible