#💻・modding-dev
1 messages · Page 232 of 1
??
??
??
??
??
seems you have a lot of nodes in a column
The nice thing about stickers is that they can stack, so you can make multiple types of new card upgrades out of them
??
Oh okay. I'll look at how some other mods do that. If I can't figure it out, I'll just use Stickers. Thanks though!
??
stickers are actually so versatile when you actually know how to get them working ❤️
congratulations, your balatro has been taken over by this guy
ok i got a much simpler question to ask now
ok so
where can i get the number value on a joker that determines its order in the collection
for example, jimbo would be 1, perkeo 150, wheres that stored
This you?
I know I'll use stickers for Runes, but I don't necessarily think I want Effects to be stickers. If I have to, I'll make them stickers. But I'm willing to do the hardwork to get them to function how I want them to
card.config.center.order
what are these for?
thank you thank you
buffing word length i'd assume
You don’t need the inner columns
so 3 letter word, 4 letter word, etc
ohh
yeah the inner columns mean the individual text nodes are stacked vertically
the width of the text nodes would also end up being scuffed
You can force a minimum width right
I'd at least set a minimum width
better but text still dont show up
maybe even fixed width
probably
fixed with would be great for a grid
not sure what the default is there
also still pretty long for a bingo board
Maybe the outer column can squeeze
Idk what would be the setting for that
Maximum height?
Hello people! Anyone knows how I can make a modded joker create another modded joker in the code? It doesn't seem to work if I use their key
SMODS.add_card({key = "j_modprefix_key"})
😦
Thank you!!!
might be a padding issue? idk
hey does anyone have like a guide layout for the skeleton of making a challenge? im a visual person and some of this word stuff is getting lost on me c:
why is the text invisbible :dismay:
have you tried adding a colour to the text nodes?
huh maybe
What are the contents of extra.bingoBoard and is tostring() necessary?
pretty sure not
since lua is very lenient and numbers kinda count as strings too. i think
I don't think it likes passing numbers where strings are expected
strings are indexable while numbers aren't
oh yeah
yes
perkeo 2...
tried changing it to this and still no text show up :(
G.C.UI.TEXT_LIGHT is pure white, try G.C.UI.TEXT_DARK
ah
yup, adding anything that isnt letters seems to break the code, hm
here's a suit from my mod as an example of what i'm trying to do
the key is RedPuyos
weird
You've also set w and h for the containers to extremely small values. Try something closer to 3 or 4
any reason as to why it STILL doesn't work
i have it set up correctly so why does it not work
like seriously
set them to 2
this shit is absurd
do symbols in a string like "-" even matter, like what
For reference the full screen width (on a 16:9 monitor) is about 20 units
oh what the fuck
needs to go into misc
where it used like 6-8 for a pretty big looking square
wow how readable
cant wait for white puyos
HUH???
What about the invisible puyos
ive only made jokers i wish i could help :(
i am ammassing knowledge, for i am the student, not the master c:
e3 confirmed?
e3 was cancled bcos it couldnt beat the big blind
the misc.challenge_names is how you get there in the table
OHHHH gotcha
tyty
it'll also need the proper prefixes
Lime effy mentioned
Is * a wildcard character?
You’re not returning a “colours” field in loc_txt lol
i thought- wait i dont i need the key for the challenge?
i dont fucking know 😭
oh my fucking god, and when i thought i couldnt hate string manipulation more
do i just fucking copy from the game or what
Maybe it’s doing regex
THIS HAPPENS
that's c_modprefix_key
ohhh gotcha
Basically yeah
lua does not have regex
string.find uses a pattern by default
string.find does use lua patterns
fourth param to string.find is "raw" which will disable Lua pattern matching functionality
which isn't regex
oh, is it this one?
pretty much is to anyone that doesn't know regex
yes plain
( ) . % + - * ? [ ^ $
The character `%´ works as an escape for those magic characters. So, '%.' matches a dot; '%%' matches the character `%´ itself. You can use the escape `%´ not only for the magic characters, but also for all other non-alphanumeric characters. When in doubt, play safe and put an escape.
did you add scale?
oh
content of a g.uit.t cannot be changed interactively
fuck
do i have to do dynatext 😭
how interactively do you need it to change
pretty
Oh, are you setting the values to bingoBoard after creating the UI?
like
there we go
in fact you could call it very
cuz it's a bingo board
it need to changes when a cell is daubed
and also it needs to generate a random board
but does it need to update during the time the description is shown?
it regenerates as soon as you hover again
anyone wanna mess around with this :3
i think i can share the link
it has dummy strings '??' in it
i hate ref_tables
can I see the code again
every time a language is made without direct access to pointers an angel loses its wings
could probably run another loop, checking how many keywords fit the match
then prioritize the keyword with the longest length
yeah that's not a reasonable default haha
i should do something like this for my mod
or make vscode macros
is there any documentation for SMODS.Center:extend?
why are you making text lmao? so that people can read it? nerd
you can always check out the website lol, but i think you will definitely get your eyes R-word'ed if you do :3
dunno if I'm having a skill issue or smth is up with smods but
I destroyed a card with Sixth Sense and now my deck is... strange
there isn't really meta-docs on how to make/extend smods classes
I recommend staring at smods src/game_object.lua until you get it /s
sarcastic?
there isn't much magic to extending SMODS.Center specifically
it's already a finished class (in the sense that it has everything a class needs to have to be viable to call), so extending it just means adding default properties and functions
les go????
im gonna turn balatro into a rougelite
??
nut
this still feels like black magic
for some reason still not grid aligned
can I see the code again?
oh wait, wouldn't the text nodes need fixed width too?
😭
what if i turn this into a program
and you can add shit and allat into it, then it copies the modified string to your clipboard...
there we go
it is noe grid aligned
hell ye
just need to reduce the spaces between rows
I think I've found the spectral six
invisible 6
thats def an improperly destroyed card
destroy it after 2 blinds to copy a random playing card
What’s your smods version?
Is there a way to force a certain card to be drawn?
0305c beta
Question: To make new cards for the deck, is it better to do it with a white or transparent background?
The h and w parameters aren't doing anything here as they're not used by UIT.C and UIT.R UIElements - only minw, maxw, minh and maxh. I'd recommend just removing them, the container will size itself to fit the contents
force draw it when/where exactly
Does it still happen on newest version?
uh
lemme check
preferably during the normal draw stage after the blind has been entered but if thats impossible i dont mind doing it afterwards
also drawing it from deck to hand
I remember fixing some sixth sense stuff but I can’t remember when it was
oH you mean draw as in draw from the deck my bad
I'm pretty sure sixth sense issues were fixed between 0301a and 0305c
I was wondering why you're trying to get a card to render
lol
I don't think the fix would be flawed in a way where it causes ghost cards though...?
I don't remember the names but misc_functions.lua should contain some code that show you how cards are drawn
thanks! ill go check em out rn
I know there's one like draw_from_discard_to_deck
essentially it's just moving cards around cardareas
a dumb idea, but what if how it works is that you draw cards from G.deck.cards in order?
so you can just put any card to the first index of G.deck.cards
and maybe it will draw that card first, idk :3
that is true
...wait it is?
I think everything's regular on the newest version
the deck is actually shuffled and drawn in order
why does this crash in the stickers part?
SMODS.add_card({set = 'Joker', area = G.jokers, key = 'j_idk_fallocardiaco2', stickers = 'eternal'})
no trickery to see here
🔥
see how stickers is plural?
it needs to be a table
oh okay
stickers = { 'eternal' }
ty
perfect
ty bepis
😭 it was just a dumb guess, didnt expect it to be how it actually works
also you can omit the set and area. set is only needed when generating a random card, and area is inferred from the key when spawning a fixed key
it was a smart guess
hmm, how can I apply additional effects to the soul sprite like hologram does? not the shader itself, but just making it move around more, and having no shadow
Oh my goodness
can someone help me with making this look better, thanks :3
how would i go about changing a sprite of an enhancement based on a config attribute?
@frosty dock when does the deck get "shuffled"?
wanted to have it change sprite depending on the "active" atribute
you could uh, check whether active is true or not inside calculate, then set the pos of the joker's sprite
and is there any specific way to set the pos again?
inside of calculate?
ill give it a try
me omw to try a new deck (i am hyperfixated on the misprint deck)
On a scale of 1-10 how hard is it gonna be to make Roland?
It's always funny to leave a message of insult
Right now when a card activates I have it telling the player to off themselves
Naturally that won't make it to release but
mhm, i understand lol
i want to nerf glass cards in one way or another
the x2 mult is just busted as hell 💔
I have a card that has a 20% chance to turn your hand into glass:)
if i were to ever make support jokers for glass cards
they will definitely include something to make them more prone to become destroyed
for X2 Mult you should expect those cards to be destroyed very frequently
1/4 is still too lenient 💔
Shit you say that but most times my shit break 1st use 💔
that 1/4 usually feels like 1/10
i broke 4 glass cards in a row before, so im not biased at all 👍
especially with how out of hand it can get once you start duplicating glass cards
I seem to have the inverse of most people where my wof hits often, but my glass breaks often as well
exactly
its hard to balance "retrigger playing cards" jokers primarily because of glass cards existence 😭
do u balance your mod???
You could just make it read the glass center and not retrigger those
do you want something like this to happen :3
i love seele
she has higher base speed compared to others
which means she can consistently retrigger herself without needing others' help
with enough eidolons she can push her speed up to 200, which means 1 retrigger every hand
letsgo
maybe we could..,, enhance them in some sort of way..

im doing every character justice :3
they will all have their own use in some way
even arlan (he will be useful in hand-draining teams)
Frankly we should allow multiple enhancements on one card
I want a lucky stone card
thats quantum enhancement.
you're onto somethin...
nope
Haters in this world
still trying to figure this out
i've gotten it to almost work on varying levels of jank, but none of them actually function
Does anyone know what causes this?
k so
it does work
but as soon as the card goes to the deck the sprite goes back to the original x:0 y:0
what do you mean by "go to the deck"? is this a playing card
-# also, fix your indentation
and you can actually use not card.ability.extra.played instead of card.ability.extra.played == false :3
To make people mad I'm gonna start making the most diabolical indentation possible
please.
search for G.deck:shuffle() in game code
from memory, at end of round and when playing cards are added into G.deck
what's funny is that the deck pile behaving this way is completely obvious if you know about the misprint exploit
ohh
i think i heard about it
misprint can show the next card in your draw pile
as one of the random texts
yep
question
to check a card's edition, do you do card.ability.edition or card.edition?
How can i check the rairty of each joker in shop?
so context.setting_blind would be an appropriate time to change the order of the deck, right?
seems about right
👍
but anytime during the round is fair game too, depends on what you want to do
"At the start of a round, always draw a card of your most numerous rank and another of your least numerous rank."
most numerous rank?
most numerous, as in quantity
yeah, its an enhancement
for example in this deck, it would pull the first seven it finds and first eight it finds to the top of the deck
what if I have 1 hand size
this shit is so ass
I have some cards that draw specific cards from the deck, you don't even have to shuffle to make that work, if you have certain cards that care about that.
actually it would probably draw your most numerous only
since this changes the deck order instead of adding it on later
Quick question, how do i size a popup
Its main purpose is to facilitate deck fixing, so you always draw the cards you're trying to get rid of and the cards you want more of
FUCKING FINALLY
@frosty dock sorry, but is there a way to add Mult without needing to use return?
NVM
if theres multiple ranks that fit the criteria, it picks the first one of those that it finds
HERE CORRECT VIDEO
god this is so cool
I am NOT doing Vocab in Balatro 😭
yes
the scrabble mod is probably my fav ever
if you want an effect outside of calculate, you should use SMODS.calculate_effect
e.g. SMODS.calculate_effect({ mult = 4 }, card)
what i want to achieve here is that it chooses random cards in hand, then give +mult, xmult and allat
if you want to add mult in a calculate function without returning, you should add it to a table to return later
😭
it will all add up to the "Mult" instead of adding it one by one, which doesnt look very good imo
Have a friend making a Joker sprite but I coded this earlier
SOUND WARNING
you can achieve that in a single table too
this will do it, right?
you can stack consecutive effects using the extra property of an effect
use = function(self, card, area)
if G.jokers.cards == nil then
G.E_MANAGER:add_event(Event({trigger = "before", delay = "1", blocking = true, blockable = false, func = function() return true end }))
return SMODS.calculate_effect({message = "Nope!", sound = "cancel"}, card)
end
local available_jokers = {}
for _, v in pairs(G.jokers.cards) do
if not v.edition == "e_negative" then available_jokers[#available_jokers + 1] = v
end
end
local chosen_card = pseudorandom_element(available_jokers, pseudoseed("HENSHIN !! ! !!!"))
if chosen_card == nil then
return
end
G.E_MANAGER:add_event(Event({trigger = 'before', delay = 0.4, func = function()
card:juice_up()
play_sound("generic1")
chosen_card.edition = "e_negative"
return true
end
}))
end,```
I don't recommend calc effect inside calculate because it will be out of order with other effects
this isnt doing anything. what am i doing wrong?
hey does anyone know how to make a challenge joker negative?
this is utterly unreadable on mobile
edition = "negative"
or "e_negative"
how much of that is inside if G.jokers == nil then
i dont remember which
i thought so but its naut
.
i missed an end
oh wait no i didnt
nvm
only 2 lines are inside if G.jokers.cards == nil then
this is how it looks on mobile btw
it takes me a bit tho
im gonna go do something rq
if u guys have any ideas drop them here and ill try them
oh it was that i had it formatted wrong c:
but the fact you still can read it is insane 💔
does edition == "e_negative" even work?
ignore the kitty cat
better
i forgot it resets the mult if its in context.before lmfao
not v.edition == 'e_negative' 😭
this JOKER wont turn negative and is making millions doing it, find out how by clicking the link below
why do I regularly see people do that
.com
Negation takes precedence
for am i stupid enlighten me plox c:
So not v.edition is evaluated first and results in a boolean
i love order of operations
the way you have it, you're refencing a variable named e_negative
LET'S GO
which doesn't exist, so it's like it wasn't even there
gotcha :3
guh???
ohh
of course it's vanilla
logic
the e_ is auto-added in this case
aure
I should patch in a check there that doesn't prepend if it's already there
does this scoring hand include prefix
how do i make a joker not appear in the shop?
what
this JOKER wont WILL turn negative and is making millions doing it, find out how by clicking the link below
(it worked)
I don't get what you think should have a prefix
scoring_hand is a table of scored cards
it includes the mod prefix for modded hands
SMODS.has_enhancement(val, 'm_key')
oh nice, thanks
forever wait
hey im back whats the fix again
i mean...
what has balatro come to
:3
it does look very cool
does anyone have the id for the vouchers overstock and overstock plus?
btw
“no_profane” so sad
by no profane i meant no slurs
the single 31-letter word
let me swear in my scrabblatroh okay nevermind
can i use the fuck word

bkt
bkt
any home dog know where i could find these? c:
yeah i did use a little python to preprocess data
snoil.,,
snel..
you can make the word fuck in the mod
life saved
i just don't allow slurs
real..,
yaaaaaaaaaaaaaaayyyyyyyyyyyyyyyy !!!!

woagh,,,.
hit game satisfactory if it wasn't satisfying
-# (I've had a save from 6 months from 1.0 release and we just launched Tier 6 2 months ago)

guh?
-# irony is that i got that one friend who's into factory games addicted to Balatro
miku
oo wee oo
will setting a jokers rarity to legendary automatically add it to the soul pool or do i have to do that manually?
-# it is crazy yea
ahem
where was i
pretty sure it ddoes
is that another miku
ok, thanks!
it does.
miku but uh

ok sick
i wanna get my legendary from it :((((((((((
would you want this
especially Eridanus
it uh, makes glass cards have some effects in hand as you can see
X1.2 Chips and +5 Mult (insignificant)
m
I'm advised not to continue this joke any further
challenge is challenging
3:
m
m from hit mod cryptid
-# all of the shit also scales with stats, so no need to fix that luckily
i have a question
no
that i still need answered

go on
is there any way to stop the player from clicking on stuff/using the ui?
show code
context.other_card
ands if i wanna get suits would it be context.other_card.base.suit
mhm
How do i resize a UIBox?
well if you ask a question and then post another thing it's hard to answer
I don't think you can resize create_UIBox_generic_options other than setting a minw
For that i use config, correct?
7
Like cm? Inches? Pixels?
idk 7
"I don't think you can resize create_UIBox_generic_options other than setting a minw" proceeds to set other things
ideally you;d use a function instead
so you can account for things like wild cards
Minw is minimmum width? Or?
minimum width
context.other_card:is_suit("Clubs")
will work even on wild cards or smeared joker spades
I wanna set the maximmum width? Or?
How do i check if its the first blind in an ante?
there's only minw
now that you mention it does anyone know what the numbers mean in UI scaling
like whats the unit
not minh?
not for that function, no
Still the same full screen
then the size of the inside nodes is wrong
n do you actually like working with UI
no
oh wow sorry 100 is a lot
not the full code but why wont this destroy the debuffed cards in the played hand (it only works on held ones for some reason)
SMODS.Joker {
key = 'Vault',
loc_txt = {
name = 'Card Vaulting',
text = {
"When a {C:attention}Debuffed{} Card is played {C:mult}destroy{} it",
"Gains +{C:chips}#3#{} Chips and +{C:mult}#4#{} Mult for every card destroyed this way",
"{C:inactive}Currently{} +{C:chips}#1#{} {C:inactive}Chips{} +{C:mult}#2#{}{C:inactive} Mult",
"Idea: BoiRowan"
}
},
rarity = 1,
atlas = "Jokers",
pos = {x = 3, y = 17},
cost = 5,
unlocked = true,
discovered = false,
eternal_compat = true,
blueprint_compat = true,
perishable_compat = false,
config = {
extra = {mult = 0, multmod = 1, chipmod = 15, stored_chips = 0} -- Default initialization of stored_chips
},
loc_vars = function(self, info_queue, card)
return {
vars = {
card.ability.extra.stored_chips,
card.ability.extra.mult,
card.ability.extra.chipmod,
card.ability.extra.multmod
}
}
end,
calculate = function(self, card, context)
-- Ensure stored_chips is initialized to 0 if it is nil
card.ability.extra.stored_chips = card.ability.extra.stored_chips or 0
-- Check if the card is debuffed and not at the end of the round
if context.individual and context.other_card.debuff and not context.end_of_round and
(context.cardarea == G.play or context.cardarea == G.hand) then
context.other_card:start_dissolve() -- Destroy the debuffed card
card.ability.extra.stored_chips = card.ability.extra.stored_chips + card.ability.extra.chipmod
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.multmod
The this was, i thought it was pixels
How do i check if its the first blind in an ante?
debuffed cards are not scored 😭
Now where is my card area
so im going to have to rework this suggestion then?
i think you'll just have to mark destroy in main
i don't know
i have this problem too
maybe I'll have to wait until steamodded adds some debuff scoring shenanigans
SMODS.add_card{area = yourcardarea}
™™™™™™
I also thought sizes were in pixels until it made everything comically large
obviously put a key or set in there
balatro is 15x15 pixels wdym
15 jimbometers
i have function called AKYRS. card_area_preview or something that is just a heavily modified N's code
alongside adding events to the thing
How do i check if its the first blind in an ante?
nvm i found a way to do it
SMODS.Joker {
key = 'Vault',
loc_txt = {
name = 'Card Vaulting',
text = {
"When a {C:attention}Debuffed{} Card is played {C:mult}destroy{} it",
"Gains +{C:chips}#3#{} Chips and +{C:mult}#4#{} Mult for every card destroyed this way",
"{C:inactive}Currently{} +{C:chips}#1#{} {C:inactive}Chips{} +{C:mult}#2#{}{C:inactive} Mult",
"Idea: BoiRowan"
}
},
rarity = 1,
atlas = "Jokers",
pos = {x = 3, y = 17},
cost = 5,
unlocked = true,
discovered = false,
eternal_compat = true,
blueprint_compat = true,
perishable_compat = false,
config = {
extra = {mult = 0, multmod = 1, chipmod = 15, stored_chips = 0} -- Default initialization of stored_chips
},
loc_vars = function(self, info_queue, card)
return {
vars = {
card.ability.extra.stored_chips,
card.ability.extra.mult,
card.ability.extra.chipmod,
card.ability.extra.multmod
}
}
end,
calculate = function(self, card, context)
-- Ensure stored_chips is initialized to 0 if it is nil
card.ability.extra.stored_chips = card.ability.extra.stored_chips or 0
-- Check if the card is debuffed within the full hand and not at the end of the round
if context.joker_main then
-- Iterate through the full hand and destroy debuffed cards
for _, hand_card in ipairs(context.full_hand) do
if hand_card.debuff and not context.end_of_round then
hand_card:start_dissolve() -- Destroy the debuffed card
card.ability.extra.stored_chips = card.ability.extra.stored_chips + card.ability.extra.chipmod
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.multmod
anyway i forget how do i do the like text for both mult and chips during its scoring thing
-- Grant the chips
SMODS.eval_this(card, {
message = "Upgrade!",
colour = G.C.CHIPS
})
end
end
end
-- Return chips and mult
if context.joker_main then
return {
message = localize {
type = 'variable',
key = 'a_chips',
vars = { card.ability.extra.stored_chips }
},
chip_mod = card.ability.extra.stored_chips,
mult_mod = card.ability.extra.mult,
card = self
}
end
end
}
Would context.blind.small work?
how does the game handle if a joker has negative sell value?
ehh, cant really right now
Im guessing it substracts the value instead of adding it
since a positive + a negative results in substraction
yes, that's the most likely thing
mainly wondering if
#1: you wouldn't be allowed to sell it if it would put you in debt
#2: the number renders right
you would be allowed to sell it
since the game doesnt expect negative sell value
the number would also render right
i see, i see
looks fine to me
i wanna make a joker that's like gift card x misprint: the buy low sell high priestess. each joker changes sell value at end of round, usually like +3 on average, sometimes going up and sometimes going down, with a chance for it to wildly swing and a chance for it to reset to 0
i know there’s a way to make specific suits not appear in the base deck
but how do i do it
i wanna make specific suits only availible in standard packs
still looking for a way to do this
been trying to figure it out since like, a week ago
i need to up my art game for my mod
i can only make so many in a day before getting tired
How do you get the current blind?
G.Game.blind
G.GAME.blind
so what do i change this to if i want them to NOT be in the base deck
i want them to still appear in standard packs but not in the base deck
welp it's not crashing anymore, so thats progress. now how the heck do I add things to the tab
plan is to have it display:
'Bosses Completed'
Suits:
[window][etc][etc][etc]
Hand:
[needle][etc etc]
Money:
[0x][etc]
and have the rune pop in there after the boss blind is completed
any help getting off the ground would be greatly appreciated
for now just getting it to even say hello world would be a huge achievement
still trying to find a way to make specific suits exclusive to standard packs
i know in_pool exists
bumpalump
make a function that returns a UI table https://github.com/Steamodded/smods/wiki/UI-Guide
I do stuff with tabs here if you want reference https://github.com/nh6574/JoyousSpring/blob/fd7f60a0c1539989e7fb1fde114bc36a158d721c/src/banishment.lua#L146
Erm that's not an asteroid 
tell that to multiplayer mod
Kill...
I will have words 
this is still the hardest one to draw by far
yeah that's the whole gimmick
don't quote me on this but I think you need to check args.source == "sta" in in_pool
of course there're words
so i just put that in the "in_pool" section
I'm making new boss blinds, and for some reason it keeps forcing them to use the "small blind" and "big blind" sprites (pulling from default sheet?) instead of using the atlas i've specifically designed and set it to
got the logic working, might need to pretty it up later
i dont think theres in_pool for suits actually
but quick question not about code to chat
with this current exact wording, what do you think the scaling is
damn
the intended reading is ||X2, applied many times as there are completed lines, aka X(2^lines)||
I'd say something like ||"repeat for each completed line"|| maybe
oh, that's a weird way to format that part
but i realised it can also be read as ||+ X2 mult per line, aka X(2*lines)||
[New spoiler for an upcoming Joker for my mod's alpha](#1343670935122870342 message)
anyway, it doesn't seem to work for what they wanted anyway
or does it
awesome!! thanks
either way i would make it display the current total mult
else at least someone will be confused by it
the excuse is that i cant get the joker to repeat itself
is there an easy way to get a joker to trigger when it has a joker to the left of it? i looked at blueprint but that got confusing fast
Id assume it scales multiplicatively
if you want a Blueprint effect you can use the SMODS utility function for it
what if it's worded more like
X1 Mult
Each completed line doubles the above value
it has to be a specific joker?
no, just whenever one is to the left of it
oh so blueprint but for the other side?
mhm!
redprint
doesn't need to copy the ability though
Hihi! I'm going to get Effects working and then take a break from developing my mod to actually play it. The whole point of it is that I wanted to make it so I could play it.
true
this is what i thought would work but i dont understand it X3
ohhhhhh
also use card instead of self
well it depends
if it's like Blueprint then it would run in every context
except probably blueprint
well it doesn't seem to be like blueprint
??? okay wait, this seems like a bug? I can't get it to happen again, but twice now the custom atlas for my blinds has been replaced with the vanilla one until I switch away and back to the second page, where the blinds will then be displayed correctly
odd
it just needs to trigger when the one to the left of it does as its scoring
not literally at the same time but like after
does this read better
then you need this probably
again though need to figute out how to tighten thr gaps between rows
and also preferably how to put the suit shapes into the cell and also change cells colour
I just need to decide. Should Effects be more like consumables or should they be more like card abilities? This is the main thing I'm not sure about
latter probably impossible
Nah, I've seen mods do it before
and that should only do it for the left with the other code?
By card abilities I mean like. Modifiers like enhancements and stuff. There's stickers for that, and there's also other work arounds
you need to check that other_joker == context.other_card
it's a uit.t how do you change their colour

for because jonkler
at the very least i'd love to have red and black suits distinction
and also possibly daubed cells colour too
maybe green
so wait what where?
in the if statement?
yes
syntax error
formatting stuff correctly is hard--
God I just realized. I have to make a recorder cover of the Balatro theme----
your missing an end here

that's for the for
Double this joker's Mult
for each completed line
oh ok then it's weird formatting, does it work now? if not post the entire calculate please
sure c:
hey john smod can you change the colour of a text ui with code
i just want it to make a noise when there is a joker to the left of it
idrk
ah.
ideally i would like to colour the text with their respective suits colour
or is it completely static
the last one to clarify
by text ui you mean a text node?
yaaaaaaaaaaaaay it worke
is it possible to disable the downscaling of food jokers as a joker ability (i.e: popcorn, ice cream, turtle bean)
you can reference the suit colours by setting colour to G.C.SUITS[suit] where suit is the suit you want the colour of
yeah but that's static isnt it
i have to set it in the node itself
or can it be referenced and changed
when does it need to change
once when the card is generated to colour the cells based on suits
and probably when that cell gets daubed to distinguished it from remining cells
if the color should change while the description continues to be displayed, more work is needed
but most descriptions don't update like that for changed values either
so this should be good enough, it is regenerated each time you hover
you'd just need to store the suits in another table in your card's ability and reference that in the colour
i'm not sure i get what you want
if i hover over the card and just sit there displaying the description box
is the color supposed to change during that?
color of suits can be changed depending on the enable high contrast colors option
no i get that
on the add_to_routine, it generates 25 playing cards to populate the cells
but while the description is being displayed, nothing else should happen that changes anything at all
and so i want it to be like, for example, if the cell is 7D, it uses the diamonds colour
ohh! i get it. the suit it uses for the color needs to change depending on the suit of the corresponding playing card
How do i get a random rank?
and then when it gets duabed, it turns green or something to separate it from the undaubed cells
why is your rough gem blue ,
dont ask questions you dont wanna know the answer to kiddou
the waltered white ,
:)
You stole my idea. I was going to have that as a card for my Woman Suit. /j /j /j
ASDGJMLASDJGADSGAKS:DGASDG
all it does is :3
That's fair lmao
maybe ill give it super secret functionality tho
Tbf this Joker isn't original either so I don't really care.
egg
I'll probably have my own Blahaj as well, just with a different name and art as to not overlap with yours
It'll probably do something with the Woman Suit, but I'm not sure what yet
egg
also what playing card mods are you using?
oh i drew this art myself, and please don't stress yourself with anything like that, blaj is for everyone c:
any ideas?
Boymoding
Queens can be used as Kings or Jacks
so true
also watame mentioned
lets go sasuga hitsujiisan
its my own 5 minute doodle as well so idk if you could copy the art besides either screenshotting from that vid or finding my computer and downloading the files as this mod isn't even out yet
ion wanna deal with github XD
You can tell my mod is made by an autistic person because it has Trans Woman and Yume Nikki
balatro's consumables have some code for checking if you can use them or not, i assume you can apply that to other ui elements?
um, hello? based department?
maybe just a bit
you can tell my mod is made by an autistic person because of this probably
Here's the Yume Nikki Booster, called the Nexus Pack. I've yet to actually make the consumables
I can sing and do a pretty good Patrick impression, if you want a non AI cover. Not gonna force ya though
what do you intend them to do
that's an interesting bit of info
I didn't expect the description to have all the lyrics
that'd be awesome, actually! As of now idk if i could find the instrumentals to mix audio in as i found this shitpost on youtube, but i might take you up on that
They'll convert a card into being an Effect Card,
Replied to the wrong person lmao
what are you trying to do exactly, Cherry? I have conditions under which consumeables aren't used, as well as some hooks on cards that can't be discarded or jokers that cannot be sold
wrong person
what's an effect card
effect monsters?
hey N'
Nono, I've yet to fully decide what they do, but they're based off of the Yume Nikki Effects.
:3
LETS FUCKING GOOOOOOOOOOOOO
hii
IT WORKS
oops c:
some of it
do you know how to prevent the player from using ui somehow?
hell yeah
recurive table indexing my beloved
that'd be cool actually, if i could find a midi i'd mix it in, but again up to you! c:
the problem im having is with my jimbo pack. instead of waiting for the whole thing to be done, the player can just. take a card early
which crashes the game
i do that for my mod
hell yeah
patching the button isn't too difficult either
could i prevent the player from selecting a card the same way?
maybe you can hook card:highlight?
I think it might be easier to read if it went from grey to marked
why is this nil? local rank = SMODS.Ranks[math.random(1,#SMODS.Ranks)]
where is it
deck code
SMODS.Ranks is not an ordered table
if you're trying to pick a random card rank i'd recommend psueorandom_element() instead
use pseudorandom_element(SMODS.Ranks, pseudoseed('whatever'))
i dare say that didn't exactly go swimmingly
that error suggests you did the hook wrong
JimboTime = false
local cardhighlight = Card.highlight
function Card:highlight(is_higlighted)
if JimboTime == true then
return
end
cardhighlight(is_higlighted)
end```
i assume so
is this wrong?
cardhighlight(self, is_higlighted)
fuck
^^
though since it looks like you're trying to use change_base() there you migth want to put .key at the end, since thats what change_base() actually takes
Card:highlight(is_higlighted) is syntactic sugar for Card.highlight(self, is_higlighted)
this is also true
holy shit that works
first time ever that my shitty coding works so quick
now to disable the skip button...
Question, i wanna have a type of secret Boss blind that can only be summoned under certain circumstances. Is that possible at all?
yesh
...wheres the code for the skip button again
it's in a couple of places, you should try hooking G.FUNCS.can_skip_booster
which file is that in
button_callbacks
how would i go about adding a custom entry to the key parameter in localize?
i want to add a special scoring effect with its own sound effect using message and i presume that's how one would do it, probably with a lovely patch but i dont quite know how those work
for the message itself, you just add something to the dictionary in a localization file
as for the sound, you should register it using SMODS.Sound and then you can just do
return {
message = localize('your_message_key'),
sound = 'modprefix_soundkey',
}
its a variable, so not a "real" message
variable as in the text gets passed vars?
yes, as i said its a new scoring effect
ive seen examples like key = 'a_mult' before so i thought id try to add something to that
these are from misc.v_dictionary in localization files
so cool
awesome
yeah i saw that while digging into the smods code but i dont know how hooking or patching works really
i assume its used to add extra code into existing files but how do i do that
something neat i found out while making the jimbo pack
you just made a pack? I just started one myself, and have a question if you have the time c:
I think it's more like SMODS made Vouchers work perfectly fine in packs; not sure








