#đ»ă»modding-dev
1 messages · Page 383 of 1
how can i get the amount of hands and discards when a blind is set (this should also account for stuff like burglar) i tried to add an event with a delay to set a var to the hands and discards left but it doesnt seem to account for burglar
burgars proc in my belly
burgers on my mind
my card occasionally has a card stored within its c.a.e and id like to render it inside the card (this is not vore) can i accomplish this with a drawstep
hiya
i have never done any advanced graphics fuckery let alone a single legendary card
drawsteps are just extra draw calls to cards yeah
So in this call I can add particles to card or remove them depends on condition right?
so call draw on the card inside the drawstep?
maybe, that'll call all the relevant steps as well
sirote?
shouldnt this put the text ui on top of the card, or at least have it follow the card
sob
try putting it in card.children
i believe the base draw function draws first than the card here
yeah you might need to put it in card.children
bepisfever
bewiswever
nope
damn
merlinsotrue
the ui text isnt seen anywhere, i tried dragging the card off to an empty space just to make sure its not behind (it isnt)
why is it here though??? đ
with calc_dollar_bonus, how can i add a sound that plays when the bonus is shown on screen and the card shakes, and not when actually calculating the bonus
i think you might need to set the major of the ui element
no, i think i figured it out
the ui just
does not update at all
if i set the major to Strong then it appears where the cards were
đ
which means that it DID move
but never update its position a single time afterwards
and i dont think i have enough brain cells to even figure out why the fuck that is the case
:3
i guess its because those don't update when a menu is on the screen
yeah no LMAO
i believe any elements made after that just don't update
or was it before
actually lemme check
since i did that for dos cards
âčïž
Check #G.I.SPRITE
đ€ what does the number tell me
How much sprites are rendered atm
180
card's front is a sprite
when i open the inventory, its 210
Most likely you are replacing card sprite without removing old one
It should
if i close the inventory and its still 180, does that mean the old sprite is properly removed?
lua ui hard
****ui hard
***hard
****
i loathe css
i loathe html
i hate webdev
why are we normalizing webdev on desktop
css is fine if you do it right (literally just set the font and background colour)
caniKILLandMURDER at her EVIL computer writing EVIL lua
bepis
https://cdn.discordapp.com/attachments/1249793987070525451/1375101147504967840/VERT_2025-05-22_15-18-55.mp4?ex=6830763d&is=682f24bd&hm=d6f557a48b840d7bc74aeba632f50faa08fb4c4e62b5ee4409969466c4c4dab3& How can I make the sunflower to emit that sound not when it does in the video, but at the same time as its name appears on the money screen and it does that little shake
You can check G.I.SPRITE[180] and find a tlas name and pos
you jest but i hold a knife in my youtube pfp
So you can find out what this sprite is
why is it named chips
we just dont know
why are you looking at the atlas
:3
why not just eval G.I.SPRITE[180] ...
chips is vanilla sprite
im sure thats lovely patching territory
Which you didn't remove
damn, maybe ill just delay it till i find a perfect timing
I got an idea for a boss blind.
The Vanilla
All Jokers from any mods are debuffed
thatd break if you had other jokers giving money
yeah I know that's the problem
finally... the first good balatro mod...
this is just kinda annoying to mod pack players and no one else
Remember what they say, you cannot escape the lovely patch
i've been escaping lovely patches for a long time :)
bountiful
hi
i will i have to
hi bountiful
You're just delaying unavoidable
personally it's a bad idea to stop players based on personal choices of the mods they want to play
like yeah you can stop a build but like stoping an entire type of player regardless of their gameplay choices is bad
Making a blind "you lose if you don't have a gold card" by itself is stupid idea
yahimod:
Maybe its funny but it's not fun
Maybe catch that moment where it shakes and if it shakes make sound but idk how
i should probably reorganize these
yeah i hope there is a way to catch that moment
Well it's just a blind, not a whole deck
boss blind: you lose if a joker gives you xchips or ^chips or whatever god did not intend to exist
yeah but it's a run ender
it ends the run if you're playing something with a large amount of modded jokers
banner.toml is just a patch specifically for the banner mod btw lmao
just to get rid of the banner prompt for mechanic/wild dos card
since that brings up the collection menu
yeah that seemed to work, thanks
Yeah... you can reroll the boss if you have the Voucher, or that Legendary Joker
if you're playing something with a large amount of modded jokers you also get less chances to roll directors cut or get chicot
i mean this goes for any blind tbh you can't even vouch to get those things in vanilla
yet alone one quabillion things
just play challengerâs deck in finity and start with directorâs cut i mean what
not a fan of blinds that are too polarizing
But I know, I'd still maybe do it because... it's funny. Maybe make it an optional boss you can turn on/off, or just a separate mod
the same mod also has "all modded jokers are debuffed"
and
"all vanilla jokers are debuffed"
nobody wins... true neutrality
Or this
"everything is debuffed. blind requirement is 300"
Or be kind and say ,,All Jokers debuffed until one modded Joker sold"
"Your score is multiplied by 0"
i feel like "No base score" would be kinder
turquoise tornado
psychic + nostalgic arm in obsidian orb
imo blinds should probably be challenges that encourage smart gameplay or circumvention and really shouldn't kill builds all that often
either that or are just mildly annoying
How about "Game Over when blind selected"
uninstalls balatro and wipes your save if you lose to this blind
good idea
because then i would stop playing the mod
then again to be fair
fuck hologram lol
haha
What are three eyes
ă·
more like opens balatro when you close it
how do i discard every card in hand at once
How is that blind called that discards 2 cards at every play
the hook
Do first G.hand:add_to_highlighted(some_card, true) and this with all the cards in hand, then G.FUNCS.discard_cards_from_highlighted(nil, true)
Maybe there is some other way but that's one of them
the world if my code worked without outside help
sighhhhh
why wont this work?
calculate = function(self, card, context)
if context.joker_main then
if context.cardarea == G.play and context.repetition and not context.repetition_only then
if context.other_card:is_suit("Clubs") or context.other_card:is_suit("Spades") then
return {
mult = card.ability.extra.mult,
card = context.blueprint_card or card
}
elseif context.other_card:is_suit("Hearts") or context.other_card:is_suit("Diamonds") then
return {
Xmult = card.ability.extra.xmult,
card = context.blueprint_card or card
}
end
end
end
end
context.joker_main and context.repetition are not true at the same time
how do i discard a specific card manually
i got a local c = G.hand.cards[i] in a for loop and i want to discard c
G.hand:add_to_highlighted(c, true)
G.FUNCS.discard_cards_from_highlighted(nil, true)
I guess
it discards 5 cards and I want to discard all of them, also doesn't draw cards back so im left with 3 cards after that
hmmmm
You could repeat that until you have no cards to discard XDD
There's probably a function for drawing cards wait
G.FUNCS.draw_from_deck_to_hand(number of cards?) is for drawing cards
how do i check if the player is currently in boss blind
G.GAME.blind.boss
where can i find a list of all G.GAME or G.C stuff so i dont have to ask everytime for the simplest things
Colours are here: https://github.com/Steamodded/smods/wiki/Text-Styling
so.. is there no context when a card is counted in the round won money counting screen?
No, there isn't.
so theres no way to add a sound and a message to it?
There probably is.
I guess it would require patching
the humble lovely patch yeah
yeah not getting into that (yet, Iâm way too begginer for that)
Hi again. Does any1 know how I can add a new event that removes money. The problem is that you cant deduct money when a joker is sold
nvm
ease_dollars
You can.
it dosen't work with me even if the variable is correct
How would you render custom arbitrary text in an info_queue panel without a bunch of hacky methods
If it's even possible
localization file is the way i did it
Could I see how you did it?
I'd much prefer not to create a dummy joker/tag/card for it
first image: a joker you want to have an info queue on (you don't need the vars = {} if you don't need any value afaik)
second image: Mods/YourModName/localization/en-us.lua
Ah, thank you
The localization stuff confused me so much

I'll try it out in a bit
I was spending like 4 hours trying to get it working for a silly joke on one of my jokers
why does it do thattt
Probably discarding at the wrong time
yeah but it still doesn't do what i want anyway
move the discard_cards_from_highlighted out of the loop
Maybe that helps
You need to be careful when moving cards and when destroying cards
If you do it at the wrong time it breaks things
now recalculate crashes game
moment
it's probably because of weird state stuff to do with discrading while using a consumable
so yeah use an event
if only i knew how to do that... gonna have to figure it out later ig
smods documentation covers it
guysss why does my shallow_copy of G.jokers.highlighted[1].ability.mult pull a nil value on the jimbo joker and immediatly crash the game :(
(ref code im trying to understand provided by baimao)
Hi guys. Does anybody know how i can make kings, queens, jacks and aces all count as the same suit, similarly on how smeared and paredolia do it
shallow_copy dosen't exist
says the error
do you intend to call SMODS.shallow_copy because i think that exists
probably?
just try :)
Is there a way to check if a boss blind is a finisher?
finisher?
The Ante 8 blinds
Yes
Which is, without hardcoding a table with all the finishers?
im trying to get this to only trigger once but its triggering for each card that ive discarded
its supposed to be a joker that gains chips and mult each time you run out of discards
Take a look at the part of vanilla code that defined all Bosses, or at SMODSâ wiki
oh it's config.blind.boss.showdown
ignore the G.hand.cards[1] part that was me trying to make it only trigger for the first card as a workaround but i realized that it would play an animation for the first card
Also that doesnât do that
yeah ik
Take a look at the wiki
It just checks if the hand isnât empty
I thought G.hand.cards[1] was getting the first card
i was going to add more but im too dumb to think of what to check if its equal to
As I said, it checks if the hand isnât empty
Itâs not empty if it has a first card
It doesnât do anything else with that card, it only checks if it exists
Youâre not comparing that card with anything else
yeah im saying i wouldve if i knew what to check it with
i didnt finish coding that one specific part
i just need it to only trigger once when you discard
why no work
what's i? what's .discarded? what's begin_discard?
no idea tbh i lost hope so im using chat gpt now...
consumable that discards your whole hand
When used?
yes
You will probably want to look into context calculations for SMODS
Do you know where this is?
nvm i figured it out
i did context.pre_discard and G.GAME.current_round.discards_left == 1
sadly chatgpt doesn't know balatro so unless you know what you're doing it's not going to help
https://github.com/Steamodded/smods/wiki/Calculate-Functions here I guess right
Agreee itâs better to learn Lua and SMODS documentation and use gtp as a resource for other stuff
yeah it's really making stuff up every time and have actually helped me only once
Yes I would begin to understand how context works
Like using context.discard is my initial guess for ur consumable but also im not sure i understand the point of a consumable that discards hand, sorry
a normal discard can only discard 5 cards and i want a card to discard every card and also not use up a discard
you can't use context in use
Oh shoot forgot lol I just never hear a consumable that discards for u
So give extra discards?
nope, if you have 3 discards you use that consumable, it discards everything, and you still have 3 discards after that
Go look at reboot in code.lua in cryptid I think that will help you
dear god that works
that does all cards discarded the entire round right?
nope... the cards come back.. and it's not even random they always come back in the same order
yeah i cant read draw_from_discard_to_deck guess what that does
(doujinshi as in, fan-made work, ships, etc)
I can't believe that I spent 3 hours on something that is one line long
idk why, but it removes the enhancement first before retrigger
event after a delay?
good schmorning chat
's what i did for creating the lesbian cards with tarots
make source card queen of hearts + lesbian -> duplicate after .1s and play tarot use sound
use an event, calculations are done before all the animations happen
also don't return card:set_ability
how are you N
im doing good
Wbu
im very tired, i woke up 7 minutes ago in time for my class starting now lmfao
thank god its online
good morning dilly
hi bepis, how is your night
Schood evening Dilly
then make somethin happen silly
hello vic, how fares you
Iâm okay
its true, you should also play my hit mod called balatro star rail, i put a ton of work into my mod called balatro star rail its very star rail in balatro you should play it
this guy @manic rune thought i did a good job
đ
Idk if I know that one lol is it on Mira or post?
Hey dilly thanks for adding that feature to your mod, Balatro Star Rail, that saved those orphan dogs from the dog orphanage from drowning and rebuilding the orphanage after the fire
Amazing what you accomplished with a Balatro mod
hey what can i say, im a peoples person
im here to help
You can always stab[REDACTED]
Hype Iâll check out
For legal reasons donât stab
i shall stab
i think you should stab
i agreee
Bats should you think I
i think if you get arrested you can blame vic and vic will get in trouble but you wont
cause vic said it first
its true it was allllll vics fault
so true dilly
does that make sense, do you guys understand what the joker does from my description
i think the problem comes from making people do math from the card, i can understand it but whos gonna wanna sit there and think of what the squared result is
ideally if a hand is selected itd be neat for the card to displayt he mult it would give
Is that a pvz mod?
yup
using 2 as an example is not a good idea
sob
hey theres a mod for that
Agreeed love adding it for my peeps
yeah just changed it to 3 and 9
it should be built in..
I usually add joker display compat now and localization technique so u can see output
i truthfully dont even think any of my stuff has built in joker display compat i should try and work on that
its true, jokerdisplay should be in the base game
the only mod i tried integrating and was successful in was talisman
its true, localthunk acknowledged it
Itâs very easy to do if u donât know how
never heard of that
is there anything special i gotta do for jokerdisplay
Itâs a mod for joker display but you can also add ur own
well thats outta my depth i dont know what code is
I have for a leveling pepper system in my mod that I made where it will tell you Mult it gives in total
It changes joker or pepper and keeps the previous mult from peppers
but give me the tldr rundown of what i gotta add for joker display compat
so i can add it to my list
What is joker display?
I can help you out feel free to dm with questions
This is clutch asf too
đŠ
all this work i gotta do....
but much obliged ill get into it
this is why joyousspring doesnt have full support :3
Oh I see. That reads as a little too cluttered for me
Itâs not too hard to add imo
But it's a nice option!!
there are options to display them differently but yeah
i figure its nice to add compat for in the way i did talisman, my mod works both with and without talisman installed
so since jhoker display lets me make it regarding if its installed or not works well
Yee you can toggle what shows for it
makes it so i can just make it if people wanna
Iâll send a joker display example for u
This is how they kinda look
Only wil display if activated and so
in the newest update you can just add them to the joker definition
Yooooo
New update?!
i mean its like 5 months old by now
Might have to go back and change all my code for joker display đ
I followed a diff mod way of how they did but def gotta look into that
i was gonna say what ive seen is gonna make it a nuisance to add a whole extra fuckin file full of definitions for all my goons
but if i can just add it to joker def thatd be ideal
how do i get the lvl of the hand played?
Yea def a tedious thing to do but why I set mine up early on for my mod
G.GAME.hands[context.scoring_name].level
Most of my cards had similar text tho so it was easy to make a dummy joker display and use for a lot
i didnt even set up talisman compat until i was like 50 jokers in, and i didnt even split up my files until then either
i didnt have a localization file until like a month ago lmfao
Godamn đ
all of my shit was in one file
Yea I set up talisman immediately a month back when starting out my mod
a couple of us didnt really want to put talisman compat in because its oto much bs to care about
Cause the pepper level joker was first idea and needed talisman for the Carolina reaper and future jokers
I donât blame u itâs a help mod for stuff I wanna do in future of my mod so I have it in for now
my mod is much better separated now at least
But itâs barely used rn in it since most jokers are pretty vanilla code
lol you should see the folders in Rafa and iâs mod crazy amount
i need to separate a little more, but i never find it worth it to have another file unless theres a substantial amonut
i know some crazy people do 1 joker per file
not me though, this is my joker file lmao
yea shes a big one
its real funny cause i can go back to the first one i made
and the most recent one i made
and see how much more ive learned
lol same
cause i havent changed shit from my first joker
Yea thatâs fair
I just finished my first set of the joker ideas I had set wise so I highly imma touch em again for a while
my terrible mindset is that if it works i try to not change it
i know things can be done so much better
but if it functions thats my goal
Besides prob added sum sound fx and shi
Only change if broken or bugged or needs fixing is best way
yea thats my general idea
Yee how Iâve been doing mine so I get it
But once I set up one transformer joker in my set for seeets all were so easy to make
i know some people would look at my code and say 'what.'
but hey
if it works..
And since I havenât honestly seen any other mod do that idea I knew I had to lock in on it for the sweet set in mod
Same đ
I hope no one peeks the fucking logic for the enfuse snacks
They will be livid
One text block of itâŠ
Cause it checks if cards have enhancement and if so gives new one
my most annoying joker was probably my freakin secret service joker
cause i had to back then figure out how to manage cards being destroyed with tarots and if they were glass and etc
cause i needed specific ranks, and then checking for specific shit for retriggers, then making duplication work properly
I love statistics thatâs those random chances đ
My god so complicated yea I see what u mean
Mine are pretty simple features cause I didnât wanna over complicate yet đ«©
the neat thing is the number sold is random each run from 5-10
so it changes per run, could be 5 one run, next run is 9, etc
Thatâs actually really cool this is most of my joker set for sweet
The idea if hand played turns cards into enhancements specified
ooo icic
what does frosti do
i think this is fair enough (it's gonna be turned into a rare joker at some point), the amount earned is weighted slightly towards the min value
ooooo
money
oooooooo
It can get pretty insane
can i return 2 messages at once in calculate so it first displays one message and then the second one?
SMODS.calculate_effects
I had hanging Chad with sock and bussin with a frosting king hot that baby up to like $30 crazy
cuz I want to have a message that's funny but also a message that tells you what the joker did
Thatâs easy!
All my jokers say a funny message when triggered
i feel like doing a joker per file is most efficient and readable
Gingy triggers a sound fx of the scene when he gets kidnapped by lord Farquhad
if it's something builtin (ie, +money, or +-mult/chips) you can just do this
it'll do the +money first
And asks him who the muffin man is đ
then what would you do so that works
i think readability doesnt come into play when ctrl f exists
if youre in a centralized joker file you know what youre dealing with
if the entire mod is in one file then i think readability sucks but
I want funny message first and then what the joker actually did
i think if the file is all jokers readability is more of a non issue
If you wanna see if you like the way I design feel free to try my mod see if thatâs the way u wanna do it
or that backwards, idc
rn everything's in one file for now but it'll be changed once i'm closer to completion
mostly so I can only have to watch a single file with the debug mod
All sweet jokers have messages and sounds btw
i wish there was an auto-watch feature
readability shouldn't be something you worry about until you're ready to release
if it's for you then if you understand it it's fine
i do recommend getting your split up done sooner
only because my god making my localization file was ass after so long
yeah im working towards localization
buut atm i just want features over style/readability
I've always programmed this way, features/implementation over readability/reusability
Localization is supreme use it and fix up ur code as soon as possible đȘ
once it works you can make it more readable but until then you should pump out features instead
yea i agree with that
frankly my belief is when my mod releases people dont need to think my code is beautiful, its for me to udnerstand at the end of the day
and my mod wont be a stand in for learning
you got people like bepis, eremel, n for that
im no savant of code
I started same way with no localization very big mistake
yeeee
i do at the least try and make up for it with comments
i do like to make an api of sorts before publishing to make things easier for people to add things
comments arent something you should overuse, verbose variables are better
If early release of mod ur making I would just specify itâs pre release maybe you can do in git and see what bugs or stuff people run into before real
ie instead of doing
-- this does something
do
this.something()
ye
Yus super helpful itâs how Iâm designing mine
As an example, something like this, where the variables themselves explain what they do
Yee thatâs helpful
I wouldnât worry about making code a whole book on how you did just focus on making work
is there a context for enhancements for when they're drawn to hand?
You can add that stuff later once itâs working for peeps

Yus poll enhancements and has enhancements
i mean yea you have things like mult and stuff which are self explanatory, but i still prefer comments
like yea duplicated_to_add is pretty self explanatory, but i still like leaving shit like the comment i posted
Depends on what for
no wait i'll explain better
changing duplicates_to_add to added_joker_duplicates or something similar would have the same effect
in an enhancement code, i want an effect to occur when it is drawn to hand
I gotchu
yea idk, i think it makes it easier for someone who doesnt know what theyre doing to read comments
but end of the day its personal pref
yee
does anyone know why this triggers at the wrong time? the extra joker slot triggers 3 times when the booster pack is opened instead of once when a joker is selected from it
SMODS.Booster{
key = 'foodpack',
loc_txt = {
name = 'Food Pack',
text = {
'Choose 1 of 3 Food Jokers with a Negative Sticker'
},
group_name = '(You\'d like...)'
},
config = {extra = 3, choose = 1},
atlas = 'Boosters',
pos = { x = 1, y = 0 },
create_card = function(self, card)
return SMODS.create_card({set = "Food", area = G.pack_cards, skip_materialize = true, key_append = "does rng seeding matter that much?", stickers = {'para_negativesticker'}, edition = 'e_negative'})
end,
weight = 0,
cost = 0
}
SMODS.Sticker{
key = 'negativesticker',
sets = {Joker = true},
rate = 0,
atlas = 'Stickers',
pos = { x = 0, y = 0 },
should_apply = false,
loc_txt = {
name = 'negative sticker',
text = {
'+1 Joker Slot'
}
},
apply = function(self, card, val)
G.jokers.config.card_limit = G.jokers.config.card_limit + 1
end,
}

Like steel checks if in hand?
check if it's being added to the joker bar?
For Xmult
not really, like on card drawn
i have it on hand_drawn, but it doesn't account for card drawn after the handsize changes
probably not ideal but couldnt you throw a check in update or somethin
when the joker leaves the booster pack and goes into the joker slots
checking handsize and if the card was drawn
Iâm not sure tbh I havenât done myself or seen
then card_added and cardarea == G.jokers would work probably
Idk any context checks for if drawn that turn
this would also pass if it's bought from shop, duplicated, or spawned
im trying to organize my mod but it seems like this doesnt work?
i tried with a / as well
doesnt work and crashes
what is jokers.wide
Why is ur key for atlas so weird
Why is it weird
It's the path
Iâve never seen an atlas key done that way
the key should just be the name of the png
ideally i make things one word or no spaces myself
ie WideJonklers.png
but yours does look weird
Keys are suggested to be case sensitive
right yea im changing my shit
Ur way of calling the png is hella strange
I'm used to calling it like that from tboi modding
--Creates an atlas for cards to use
SMODS.Atlas {
-- Key for code to find it with
key = "tarots",
-- The name of the file, for the code to pull the atlas from
path = "Tarots.png",
-- Width of each sprite in 1x size
px = 71,
-- Height of each sprite in 1x size
py = 95
}
heres an example
the file is named Tarots.png
how do i transform a joker into another one (not random, always into the same)
I suggest doing it the way most people including myself build it call if simole names for urself and nothing weird
Like my jokers are literally sweet_jokers for name
joker:set_ability("j_modprefix_otherkey")
and i guess otherkey is the joker's i want it to transform to key?
yes
If it's not vanilla you need to put the mod prefix tho
You need to use ur id you made in json always for anything creating
Mine is mills so you will see that imbedded all over my code
All jokers for ex have âj_mills_nameâ
Consumables âc_mills_nameâ
If not base game
and if i want the joker to not be available in shop, so it can only be transformed to? something about pools?
i dont usually use loc entries so can anyone see what im doing wrong?
hehehehe
Use in pool logic
To stop from what u want it to not spawn in
-- localization/en_us
{set = "Other", key = "gojo_deck", vars = {}}
return {
descriptions = {
Other = {
gojo_deck= {
name = "Gojo Deck",
text = {
"Your text here icba to copy it"
}
}
}
}
}
heya how would you make consumable detect if theres already specific one in your consumables
oop
fixed
jjok
this doesn't seem to do anything? (other than show the sticker texture)
SMODS.Sticker{
key = 'negativesticker',
sets = {Joker = true},
rate = 0,
atlas = 'Stickers',
pos = { x = 0, y = 0 },
should_apply = false,
loc_txt = {
name = 'Negative Sticker',
text = {
'{C:dark_edition}+1{} Joker Slot'
}
},
calculate = function(self, card, context)
if context.card_added and context.card_area == G.jokers then
G.jokers.config.card_limit = G.jokers.config.card_limit + 1
end
end
}
oh wait
uh
i thought you'd attach it to a joker
im not sure how sticker calc functions work
i'm not convinced that anybody actually knows how SMODS.Sticker works
so just in_pool = false? will that work and make it unobtainable in any way?
documentation sure doesn't
in_pool = function(self, args)
return not args or not args.source or (args.source ~= 'sho' and args.source ~= 'sta')
end,
Stops from shop and packs
Like legendary
lmao
can i make a joker not appear in the jokers list? probably not right
Goes in deck not other pretty sure
I think Editions have a config value to automatically change CardArea limits
Hey, how could I have my boss do something whenever a heart is scored?
like in collection or in pool?
I donât think so sorry
in collection
yea i was just about to say no collection exists
oh hell yeah
you would just use gojoeck not jjok_gojodeck
anyone knows that? :>
does anyone know how i can add more quips to jimbo without changing the en_us file (since i want it to be like any other mod)
Set up a function to check it?
quips you mean info queues?
why is it not in Back?
When
i don't just want to add another negative edition
ive been told 3 different sets now
Anyways use SMODS.find_card
quips, the lines jimbo says at the end of a run
any suggestions on what i should draw on this card
Iâm explaining how Editions work. I think itâs easier to extend their code to Stickers and other objects
TRUE!!
i don't think stickers have config?
documentation doesn't say anything about it
what would go in the loc_txt in this case
i did but im trying to organize my mod cause rn its messy and i wanted to put the art for the jokers n such in different folders but not sure how to do the path cause it crashes
to be fair documentation doesnt answer alot fo things
nothing, you dont use loc_txt if you have a loc file
basically im making a consumable that when added checks if you dont have same one already, if yes destroys itself and boosts the other one
I wouldnât do it like this
show code
then how
config with stickers does work but you have to use it as self.config.extra.[varname]
b_modprefix_key
How I set up mine
As I said before you can use SMODS.find_card
yeah okay but i want my joker art to be in a different folder inside 1x so its more organized
but not sure how to do the path
I wouldnât mess with ur assests folder tbh
This is part of my boss blind code, when a heart is played, the little pop up for x.5 mult appears on the side instead of above the card, how could i fix this?
Keep way it is
calculate = function(self, card, context)
if context.individual then
if context.cardarea == G.play then
if context.other_card:is_suit("Hearts") then
return {
x_mult = .5,
card = card
}
end
end
end
end
damn if i let it like that , its just gonna be hella messy
how many assets are in your folder that you feel like its messy
Just put all ur jokers in a set in same png?đŻ
you know and exists right?
Thatâs how u organize it
im aware
some jokers have different sizes so idek
wait so would that be
config = {card_limit = 1},
```or
```lua
self.config.extra.card_limit = 1,
thats not a lot lol
thanks will see if my smooth brain can make it work
Then you put any with that size in a seperate loop
anyway try removing card = card
got it, ill try that
Set up ur main to call the file and readjust how I built atlas to way u want itâs very easy
To be changed
config = { extra = { card_limit = 1 } },
any time you refer to it outside of the config you use self.config.extra.card_limit
thanks, it worked
this still does nothing whatsoever
are you testing your loc_vars or the actual sticker code?
sticker code
dont have loc_vars for dynamic description yet
SMODS.Sticker{
key = 'negativesticker',
sets = {Joker = true},
rate = 0,
atlas = 'Stickers',
pos = { x = 0, y = 0 },
should_apply = false,
loc_txt = {
name = 'Negative Sticker',
text = {
'{C:dark_edition}+1{} Joker Slot'
},
label = 'Negative Sticker'
},
badge_colour = G.C.DARK_EDITION,
config = { extra = { card_limit = 1 } },
calculate = function(self, card, context)
if context.card_added and context.card_area == G.jokers then
G.jokers.config.card_limit = G.jokers.config.card_limit + self.config.extra.card_limit
end
end
i may be stupid but shouldn't your math be in a return?
How do i check a cards ID again?
how would i add a joker and/or a consumable to the player's hand?
or rank
Is it possible to modify a vanilla blind to make it not appear with a specific deck?
thanks
what is ease_discards actual right name because this one crashes
check wasteful code
this does the exact same thing (see: nothing)
return {card_limit = self.config.extra.card_limit}
ok it's ease_discard i know now
i know minty's silly little mod does that, maybe look at that code?
could i mayhaps get a link to it?
is this able to be done bc i aint even sure
if card:get_id() == 2 then
return {
mult = mult - 2
}
where did the rest of the G.jokers.config.card_limit math go
whole calculate function is
calculate = function(self, card, context)
if context.card_added and context.card_area == G.jokers then
-- G.jokers.config.card_limit = G.jokers.config.card_limit + self.config.extra.card_limit
return {card_limit = self.config.extra.card_limit}
end
end
if ur returning mult or chips you dont have to manually add that so i assumed it was the same
that is not what i said at all
move the G.jokers.config.card_limit math into the return
remove all else in the return
Bump
that just crashes?
calculate = function(self, card, context)
if context.card_added and context.card_area == G.jokers then
-- G.jokers.config.card_limit = G.jokers.config.card_limit + self.config.extra.card_limit
return {G.jokers.config.card_limit = G.jokers.config.card_limit + self.config.extra.card_limit}
end
end
dont do an assigment in a return
whats the effect
it'd just be return mult = -2 for the 2 i believe
"Aces, Twos, Threes, Fives, Eights subtract",
"their rank of mult when scored",
"(Aces count as 1)"
hey gang how would I make context.end_of_round call only once for a deck calculate function
I tried main_eval but that only works for jokers apparently
not context.repetition and not context.individual
what do i return then
nothing
does this make a message for me or do i need to do it my self?
it should make a message automatically since ur returning mult
That still makes it return a bunch of times
can i see the code
youre missing the individual
shit, i forgot to mention, this is a boss blind calcuate, not sure if that effects anything or not
but, its seemingly not noticing that the numbers are being played
wait
i forgot to do end for the last calcualte part
i dont think calculate works on boss blinds?
it weirdly does
this is from the documentation tho so take it with a grain of salt
has anyone here actually worked with stickers and knows how they work? i no longer trust the documentation
context.other_card:get_id()
oh
fuck
it really do be my own self fucking up my code
idk if i wanna fix this or not
its funny is the thing
is it possible for a seal to be able to copy other seals? like i want a seal to be randomize itself every ante to a random seal , so ante 1 has the red seal and ante 2 it has the gold seal , is it possible?
pros: its funny
cons: its negative chips
also did you really make a blind specifically to counter fibonacci
what did fibonacci ever do to you
can you make a joker that counters my blind
you must think i have free time
boss blind -4 mult lmao
i wish
one that specifically debuffs luchador and nothing else
really more of a baseball card counter tbh
really hard probably, but how can i save the first discarded card in a round to then make it guaranteed to be drawn in the first hand of the next round?
and also that but for the entire hand
the fun part is im just playing balatro normally until i encounter my boss blind and then i just code it to work
The Ball - Cards of Uncommon rarity give 0.5X Mult
i might add that actually
"the head cannot appear as a boss blind" lmao
i dont got that kinda patience cause half the time my blinds crash
how can i check if a round has changed/ended?
i feel like if you wanted to counter matador you'd just make it do nothing
i get to play balatro and then i code
that reminds me though i need to further improve my gauntlet blind
all heart cards are debuffed, all lesbian cards are queen of hearts (by default)
its a 3 phase blind that does quirky shit
you got converted into the right card?
YEA...
Blind: The Life - turns all cards held in hand into the right card when hand played
that sounds fun
boss blinds entire ability is shop rerolls cost double (has 0 effect because you can't access the shop during a boss blind)
anyone know?
not my cryptid ://RUN
Baron Mime build, put red seal steel king on the right of held hand, play high card, profit
://RUN đ€§
bad idea: everytime you encounter it theres a chance for it to be the left card instead
reading the blind explains the blind
eeeee
This context is used for end of round effects.
if context.end_of_round and context.cardarea == G.jokers then
{
cardarea = G.jokers, -- G.hand, (G.deck and G.discard optionally enabled)
end_of_round = true,
game_over = game_over -- true or false
}
This context is used for effects on cards from jokers at the end of the round.
if context.end_of_round and context.individual then
{
cardarea = G.hand, -- (G.deck and G.discard optionally enabled)
end_of_round = true,
individual = true,
other_card = card
}```
actually it would be interesting to have a boss blind that reverses the direction in which the played hand is scored...
not sure if that's what you need, but yeah.
photochad counter by sheer muscle memory
im trying to make a seal that has a random seal effect every round so yeah that might be what i need
different boss blind that debuffs the first face card in played hand
awesome, good luck! :D
roffle is ruined
how would i spawn in a negative copy of a joker/consumable with the key?
obviously it's called The Election
the RTGame ruiner: boss blind that disables all card held in hand effects
boss blind where you CANT go 20 dollars into debt EVEN IF YOU HAVE credit card . yeah this would be a run killer đ
debuffed in the credit card
boss blind where if you're in debt you instantly game over
i made that a stake!!
The Landlord
this is JUST a credit card counter and an anti-rental thing
well
boss blind that randomly gives negative mult between 10 and 230
specifically misprint counter? glorious
that would ruin some of my cards
theres the credit card, gold card, platinum card, and black card i have for debt increases, and then a debt collector card that gives mult for every 5 bucks below 0 you are
truly
The Lack of Printing Errors
The Laser Printer
wait
it even uses the same pseudo seed so if misprint gives +23 the blind gives -230
boss blind that just debuffs chicot
LMAO
and nothing else
chicot paradox
they spend the entire time just debuffing each other
hey peeps need some help with slay the jokers
been working with the dev on it and were stuck, trying to get it running correctly on linux
bump?
we have narrowed it down to getting the auto updater python script to run and send info to his servers
why would you need to run it on linux? balatro is already a windows game
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = '''self:splash_screen()
'''
position = "after"
payload = '''
os.execute('start /b /usr/bin/python3 "/media/Backup/Steam Games/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser/AppData/Roaming/Balatro/Mods/SlayTheJokers/stj_uploader.py"')
the issue is here:
payload = '''
os.execute('start /b /usr/bin/python3 "/media/Backup/Steam Games/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser/AppData/Roaming/Balatro/Mods/SlayTheJokers/stj_uploader.py"')
boss blind that gives -25 chips per stone card in deck â€ïž
and it works with Proton on Steam
wtf? i dont see whats wrong?
we need to get wine(proton on steaam) to execute the python script
SMODS.createcard({key = 'namespace_key', edition = e_negative})
I think Chicot specifically checks if it's a boss blind, but that means if you make a blind effect NOT a boss blind, you could disable chicot there :3
but cant quite sort out what to tell it to do
big blind that debuffs chicot
yes
big blind that makes chicot perishable
YES
the plant in 6 antes
can anyone help me? idk why this crashes my game lmao
do you have a 1x atlas and a 2x atlas?
yeah
this always made me wonder why there isnt a The Metal boss blind that debuffs number cards
and The Amateur that debuffs aces
it could be an issue with the path of the Atlas, if its in a subfolder, etc
or just gives -20 chips and -4 mult
that would also counter Scholar lmfao
anyways, ping me if you know how to trick wine into running a python script so we can get stj working for linux players too
"attempt to call field createcard"
how do i store joker descriptions in the localization files instead of inside loc_txt
might need something like set = 'Joker' or set = 'Spectral'
perkeo counter is just a boss blind that destroys all negative consumables when hand played
the thing is, it can go either way
observatory naneinf is ruined
add "dump_loc": true to your .json, then delete everything in dump.lua that isn't from your mod
SMODS.add_card({key = 'j_modprefix_key', edition = "e_negative"})
do two separate createcards depending on then
make a joker that scores the discarded hand instead of the played hand :3
(helps to disable as many non-your mods as possible first)
you can spawn any joker, or any consumable you want
The Trash - destroys all discarded cards
burnt synergy?
oh no D:
not my hit the road
better version: The Censorship - destroys discarded Jacks without triggering discard effects
The Meat - -100 chips -20 mult, +5 chips +4 mult each hand played
calling popcorn meat is a bit of a stretch
BOSS RUSH - Phase Blind (every 12 antes)
Fight all vanilla boss blinds in a row. Your hands replenish after each victory.
goodluck.
im not calling popcorn meat, im saying the opposite of ice cream and popcorn would be meat
well, technically it wouldn't be meat, but like.. bamboo?
can anyone help me, im new to modding,
how does :set_ability() work?
how would i check if the player entered in a valid joker key?
The Hen - reduces sell price of all jokers by $3 for each played hand
more of a giftcard counter (if you have 3 of them)
card:set_ability("m_lucky") changes a card into a lucky card for example
and temperance counter lmao
The Job: cannot rearrange cards
(im calling it The Job bc its what most Balatro players fear)
calculate = function(self, card, context)
if context.before and context.main_eval and not context.blueprint then
local faces = 0
for _, scored_card in ipairs(context.scoring_hand) do
if scored_card:is_face() then
faces = faces + 1
scored_card:set_ability('m_gold', nil, true)```
here is the calculate function for the Midas Mask joker
Strength counter: The Weakness - Reduce rank of all played cards by 1
more explination:
i have a string which the player enters, i was wondering how i would check if this was a valid joker key
if you use it on an Ace would it become a King?
me playing all my Kings to make more queens for Shoot the Moon:
if G.P_CENTERS[key] then?
can't have that
how do i use it with modded enhancements
boss blind where queens held in hand give -13 mult
The Patriarch
HA
change the key for "m_[mod prefix]_[key]"
ohhh ty
oop someone beat me to it ty
what would you call the jack debuffing blind
The Pactolus: Removes gold from all played cards
2 in 1 counter
maybe 3 in 1 if its before Vampire
jokes on you, I have pareidolia and midas mask :3
how would i format the negative edition in my joker description
The Blind - No cards count as face cards
its the exact counter to midas mask, thats why it removes gold
{C:dark_edition}
The Blank - does nothing...?
I have a joker that forces the joker on the right to trigger after all other events :3
anyone know how I could check for sealed cards in smth like context.discard?
also the loyalty card counter would similarly be awful
how to i make that a card doesnt score
x0.25 mult every 6 hands played
The Void - Destroy every non-unique card played
this is DNA counter
debuffs jokers if multiple exist
oh also
call it The Boredom
me when i have to score 900 points on small blind ante 1
with a force selected card
Violet vessel will be the last one
oh this is also checkered deck counter
if card.ability.extra.name ~= 'seal_name' then```
Maybe something like this, I haven't touched seals before so i'm not 100%
how would you counter abandoned deck though
itll go:
Verdant Stake
Crimson Stake
Cerrulean Stake
Amber Stake
Violet Stake
The Face - Only play face cards
i'll give it a shot
this is just the boss blind that disables all number cards
true
red deck and blue deck already have a counter
how do we counter yellow deck?
start $10 in debt
immolate counter - adds 5 random cards, -20 dollars
yellow deck just gives you $10 so like... multiply your current money by -1?
credit card makes it huge
can't have that
also someone rate this (the card is wip)
only $20 but it should be counterable :3
this took way too long to make.. until i tried copying the way i did it for the doujinshi author joker...
The Shopkeep - Sorry Jimbo, I don't give credit
anyways im gonna make a library for this
does anyone know how i can copy other seals effects?
just debuffs Credit Card
blind tooltips
rated 10/10
THANK YOU!!
how do i make that a card doesnt score?
lemme check the documentation rq
alrighty
was gonna copy the code from vanilla remade buti thought there might be an easier way of doing it
seems a little unbalanced
it's like pointer if it was slightly different
arent tooltips like that a thing baked into steamodded
the council
my main issue is how ill do jokers with underscores
you could reference how splash makes cards count in scoring and like, reverse it?
this is for the deck, and the sidebar tooltip doesn't work
so I needed to copy how the vanilla decks did hovers
ended up just adding tl keys stuff to P_CENTERS
uhh, no like debuffed but without adding the effect
I'd say just copy the code for now, if there's an easier way then I'll see if I can figure it out
alrighty thank you
(yes I tried "{T:bl_head}" and it didnt work)
im not following
nvm
how do stickers actually work?
mine does nothing rn and it's supposed to give +1 joker slot
SMODS.Sticker{
key = 'negativesticker',
sets = {Joker = true},
rate = 0,
atlas = 'Stickers',
pos = { x = 0, y = 0 },
should_apply = false,
loc_txt = {
name = 'Negative Sticker',
text = {
'{C:dark_edition}+1{} Joker Slot'
},
label = 'Negative Sticker'
},
badge_colour = G.C.DARK_EDITION,
config = { extra = { card_limit = 1 } },
calculate = function(self, card, context)
if context.card_added and context.card_area == G.jokers then
G.jokers.config.card_limit = G.jokers.config.card_limit + self.config.extra.card_limit
end
end
}
tbh i have no clue how to get them to work, which isnt good because i have an entire mechanic based around stickers
im not convinced that anybody actually knows how they work but still i try
yeah i dont think anybody actually knows how they work
Is there a way that I could make a enhancement that makes the chip values and bonus chip values not score?
make it give negative chips?
Maybe... although I don't want it to show up on the scoring screen
debuff?
to replace the base chip value you can just do replace_base_card = true,
im not sure if what im doing is good , trying to mkae it so this seal copies other seals effects but idk if im doing it the right way
Oh!!! Ok! ^^
Where would I place that? and may I see an example?
idk how youd remove the extra chips (i assume you mean extra chips added by hiker since youre overriding bonus cards anyway with it being an enhancement)
how would i change rarity chances?
hi, one question, how can i put this messages in my customs jokers?
(as in, how do i make rare and uncommon jokers 4x rarer)
this is my enhancement which uses the replace base card



