#💻・modding-dev
1 messages · Page 501 of 1
any idea how to fix this error text?
why does that not show it for me?
i honestly have no idea
Have you hooked loc_colour somewhere?
nope
still gives the same error, here's the crash screen if it helps
but it worked this time for some reason
"that" as in the joker I'm trying to spawn? cause it works fine when I spawn it myself, it's only crashing when I spawn it through this joker
Show your code
okay apparently for some reason the rarity text colour is just white?
forced_key
are you using a mod prefix?
in that key
j_<mod_prefix>_<name>
exact same error on invalid key
am i supposed to define a primary_color for the rarity or something?
because currently the text color just doesnt work at all
Rarity colours aren’t put into text formatting
did smods wiki lie to me
and why doesnt it go into text formatting when it does get added to G.ARGS.LOC_COLOURS
It doesn’t get added to that table
as in?
why does this only work in the debugplus console? play_sound("para_yourtakingtoolong", 1, 1)
i've also tried returning the sound and that doesn't work either
Oh wait it does
it's supposed to behave like egg until after 21 rounds (changed to 3 here for testing) where it destroys itself and creates a chick joker (which I've already set up and tested, and it works just fine)
Can I see your rarity definition?
badge_colour
oh 😭
is there a way to let sticker descriptions appear to the side of the description like with tarots? and if so does anyone know what the key for eternal stickers are?
whats with the inconsistent use of color and colour in smods
God damn it
this game can spell color wrong so i can use semicolons
afternoon moddingchat
was working with tester again
does anyone know why this returns a crash upon transformation?
-# it looked like something to do with burglar, so i have the code for the effect of the fake one here as well just in case
How do i draw step a tag?
I don’t think you can, they’re not card objects
oh hey bfb lol
anyway i have a consumable that works with eternal so i can tell you with at least some confidence its
info_queue[#info_queue + 1] = {key = "eternal", set = "Other"}
-# i believe i recall having to ask about it here actually LOL
now i did and instead it gives a stack overflow
that worked thank you!
are you trying to make the joker create itself
awesome ! (np :3)
nope, it's a different joker
i even set it to destroy itself after it creates the new joker
can i see the code
there was a photo here but idk if it's still accurate
you are missing a context check
Unfortunately same problem, the soul card floating sprite are the same total pixel dimensions as the underlying card, which means the rotation always matches if they're positioned at the same origin. I'm trying to use the UI sprites for suits which are 18x18
how would yall reccomend I tell the player to install galdur if they don't have it
im thinking a simple popup on the main menu
Use the dependencies field in your mod metadata
crash
That's a dependency tbh
i want to do a popup so people go to my mod's config
Is there any way to retrigger cards that score on blinds?
If the experience would be so much lesser without Galdur, why not just make it required?
its not really lesser
im tryna make balatro repainted compatible with smods and so far im strugglin for some reason
literally all i have
is that like this line after riff-raff creates 2 jokers?
it just makes selecting a deck last of a scroll sim
no, it's the if context.setting_blind ...
I want to create a blind that retriggers glass cards and debuffs the rest
use context.repetition in calculate
didn't you make that one miku song
oh i think i get it now thx
could i do if G.play to make a joker only trigger during a hand? or does G.play still exist when no hand is being played
Oh so calculate function also works on blinds?
hahahahaha not me sorry. Im an impostor
yes
That answers everything
what are you trying to do
i want to have a scoring effect in context.post_trigger but i cant have that happen outside of a hand being played
help im dying here
you can check for context.other_context
is it possible to change the scored chips before actually adding it to the total score
are you overwriting the default joker atlas
trying to
thats what the mod is meant to do
never replaced vanilla assets before
'^^
its the files name Jokers.png
yes, modify the global hand_chips (you probably want context.final_scoring_step)
looks like its not able to find the file
are you not using malverk?
show the file path
my dad helped me install a new hard drive the other day he mustve fucked something up REAL bad
kkty
i totally forgot malverk is a thing
im looking in the Cryptid code, trying to understand how to make ^# work, but im not understanding what to do
talisman implements that iirc
-# oh
Can someone tell me why the mult is gaining properly, but the message isn't returning and the card doesn't stop juicing? fixed
how do i set a card for the return message to appear under? i know it's card = but idk what to put in next. i tried 'j_modprefix_jokername' but didn't work
message_card = card_object
which card do you want to put it under
where the FUCK is my texture pack 😭
the joker that was just added, j_cm_chick
local card_added = SMODS.add_card{...}
return {
message = "...",
message_card = card_added
}
is it normal that the mod isnt even appearing in the mod list anymore after adding the malverk dependency
god i feel like an idiot
you probably wrote the dependecy wrong
if its not the correct format it just doesnt load
wonderful
youre missing a comma
fuck my ass
i forgor
:skulk
i have malverk 1.1.3 what the hell
did i format it wrong
try lowercase malverk
good news i think it worked, bad news is i keep getting the most mysterious ass crashlogs
fym "alt_text_rep_repainted_jokers" 😭
alt_text is probably a prefix malverk adds, rep your mod prefix, repainted_jokers your key
disregard all actually i forgot a target
What does your assets folder look like
🙃
im gonna "borrow" some code so i can try to get diviner to work
new, more relevant question: how does juice_card_until work? because apparently doing this does NOT make it shimmy until the counter is reset. instead it makes it do absolutely nothing. no shimmy, does not get jiggy. do not let her on the dance floor she will be embarrassed thoroughly
also hi dilly
wave emoji
the chance thing for it is still nil in nil for some reason so i want to get that fixed
🌊
ive gotten no further in my cpu and gpu adventures
pain
i got kinda close but then didnt
have you considered buying another drive
where it was trying to pull cpu value but would freeze for a second every time you hovered over the card
which is not good
i had no idea /lh/s
i could devour you before you counted to 11
12
see
wait i think i might have figured it out
i think the issue is that i can't spell "pseudorandom"
e before u....
many such cases
english is hard 🪦
terrible advice
❌
✅
you dont have any sour cream and cheddar chips rn thats why youre being a hater
more like an apple stinky pie
yea, im activiating my hidden malware in your code, gg
hmmm is there a way to make fixed probabilities on jokers because 2 of the probability based joker ideas i have would be pretty overpowered with increased chances
*activating 
tomas MID will now never release
I firgured out a way
full thing
if pseudorandom("seed") < 1/odds
diviner still says nil of nil 🪦
or this too actually
By not using the smods functions of probability
did you spell it right
if you want to still be compatible with the success and failure stuff then you can fix your own probability or something but i would just recommend not caring
yeah i think i spelled it right this time so its probably another thing i forgot
damn
malverk doesnt support changing deck sprites does it
i stole this part but i probably dont need to use it tbh considering diviner might not be overflowing most of the time
if it's G.Game then it should be G.GAME
GAME in capital
oh okay
there were a few other "Game"s in there too so i fixed those as well
it works 🔥
i just need to fix the description now lol
additionally, forget what i said about disregarding i guess???
right image's message displays, left one's doesn't
i thought we had sound support or is it something else?
it's not like the sound doesn't exist either?
wait should they not have prefixes?
it's added by smods
is that a newer thing? i had to have them like this before to get them working
not a new thing, always been this way
the event runs until the function returns true
Is making mods easy like roblox studio
its the same language
so probably
id say easier since balatro is inherently much simpler of a game
except Roblox uses a modified version of it
I dont know all the parents
Roblox has workspace for all the stuff idk what balatro has
does calculate_effect work differently? ive used that too and it needed prefix
The call to SMODS.Sound shouldn't have the prefix in the key, since it's added
Using the sound does need the prefix
ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
i was thinking in reverse
no wonder i was so confused lmao
...no wait then why does this work without issue
time to make evil bucaneer
to my knowledge it shouldn't, since your sound would be "hpfx_hpfx_fall"
but it
is
smods removes the prefix on most object keys if you add it
is it "most" because of these situations in particular
It should show a warning rather than silently remove it
how do i get highest card to score (leftmost in case of ties) and only that card
play high card /j
Ok my card applies an enhancement but it does it to the same card If I do it again even with another card. How do I check if it has any enhancement and pick a new card?
for the other thing just return { add_to_hand = true } if context.other_card is the highest
this gives you if it has an enhancement: next(SMODS.get_enhancements(card))
ok now i actually have no idea
i think IDs are always numbers
or nominals
never worked with custom ranks tho
Comparing SMODS.Ranks[rank].sort_nominal
arent the face cards different? maybe im misremembering
srry could you be a little more specific
The rank with the highest sort_nominal would be the highest rank
it's not like it doesn't reach because the mult does in fact gain...
it just doesn't message?
ill try removing the prefix i guess
hmmm how do i modify swashbuckler's vanillaremade code to include its own sell cost too
remove the if joker ~= card then
im assuming that checks to make sure the joker isn't itself
yes
mfw i forget to change a variable
ok it's not the sound at all, actually. the message is just getting skipped completely
whats if you remove card=card
you wouldn't remove the prefix here
what is G.GAME.consumable_buffer? i always thought it was just the consumable slots
i know
i was checking to see if it was the sound period
message didnt call regardless
how do i get this thing to show up
you never have to do card = whatever
i added that earlier
because the message isnt returning
here
can you send the entire calculate function
ok topaz works
mostly
-# (i forgot to replace a mult with a chips again)
when a card creates a consumable in scoring it usually does so in an event
so lets say another joker says "+1 mult per consumable", if the consumable is added in an event the joker wont see it because its done after scoring, but if you dont do it in an event the animation looks bad
so the buffer is there to temporarily say that there's one more consumable
(same with the joker and dollar buffer)
ok now it gives chips
this doesn't work
SMODS.Ranks[card:get_id]
``` is nil
card:get_id()
SMODS.Ranks[card.base.value]
but also N is right the id might be fucked
Why isn't this actually destroying the card/reducing the rank
is that self
mm
what's a playing card's rank proprety called
why is it self
idk
use card
a...rank?
i mean like
Also, math.random returns a number between 0 and 1, excluding 1
oh we literally just mentioned it earlier
card:get_id()
card:get_id() or card.base.value depending on what you need
king is 13 btw
first is the id of the card which is what vanilla uses for ranks and the second is the key of the rank
my next target
neither of those are colors
my favorite color....13....
(bump)
if you think about it 000013 is a valid hex code
is there like a get_rank thing to get the rank
rank or id?
right
youre not gonna believe what we just said
this has to be a joke
Card:get_id() works essentially equivalently
you can do that with :get_id()- ya ^^;
hello winter
Hello!!!!!!
14 = Ace
hi winterrrr
does it give me numbers?
ye
if it does good
2-14 for base ranks
yay
11 is Jack, 12 is Queen, 13 is King, 14 is Ace
ikik
also gshgjdhjgh people saying hi to me when I join a convo is very,,,,,,,, 
(bump)
its just slightly blue lol
what the fuck is G.RESET_JIGGLES 😭
ohhhh nvm thats
right ^^;
"Does anyone else need to know how to check card ranks?"
how do you get the number on the card
technically the answer is card.base.nominal but yeah
winter are you knowledgable in message returns
how do i check a card's rank
no like on the sprite
YEah probably
More than most people probably
go to your local store
ty winter youre amazing such a wonderful person
aaaand i realized i put this in the wrong chat at first
whoops
meant to ask the above here 😭
remix pack be like
im gonna make gaslamp joker next though i do need to make a new placeholder sprite too
yknow it is similar to it now that i think about it LOL
-# tho i didn't know of it until after i started this 😭
no way impossible quiz skips
do you have any idea why both the message and jiggle dont proc here, but literally every other aspect of the card works fine?
you need 7 to skip the finisher boss blinds btw
-# just one otherwise
umm i dont have the code with me rn to check but you might need to hook some function for this
sanity check but do you have talisman skip animations
dude i dont even have talisman enabled
just making sure
id cry
but yeah talisman can come back on once im sure the mod works withOUT it
....dilly cursed me i want pie now...
hmmm
like smth that would adjust select_card depending on what's selected or
yeah, whatever uses select_card
What's the reason for commenting out those lines?
Wanted to see if they were the reason the message wasn’t working (it was not)
So no reason atp
does anyone know where the kinda tv bending effect is made?
well hm
i think i know what to do then im just not sure how 😭
-# or how to construct the function rather

how would i check if a card with a specific enhancement is discarded?
she was just asking bro smh /j 
The other stuff within the if statement is working?
Otherwise the counter wouldnt increment, ergo the mult wouldnt gain
My first assumption would be if the game for some reason doesn't actually process return messages aside from saving from death for this specific context. But I don't think that's true? Probably?
doesn’t rocket check the same way
if context.discard and context.other_card.ability.set == 'Enhanced' i think
something like that id guess
i have this but it doesnt do anything i fear, modeled off of faceless joker
oh
There are actually two separate end of round contexts but yeah'
sick as hell ok
oh wait you said specific enhacmenet tho uh
also not like an individual card thing i should clarify
just like, if discarded hand contains a wild card
the other check should be SMODS.has_enhancement(context.other_card, 'm_wild') given you're checking for wilds
mb
Okay yeah my assumption is wrong, it should resolve messages here
What's the intended behavior of the card sending the message? Does it do anything weird with its cardarea?
Literally just says Yum on mult gain
cause it’s
Yum Heart
she’s “using her active”
have no idea what that means
Isaac
why does this do absolutely nothing? does the hand played counter get incremented before card scoring or something?
this is a seal btw
can other_card be card
oh I see carry on
so I don't see anything explicitly wrong with this code on the face. What do those additional functions you have do?
isaacMult and then counterIncrement
got it working, ty!!
Exactly what you think but I’ll send pictures
-# np ! :3
yes
i changed it to be <= 1 and it still did nothing
so there has to be something else
could the delay just be too short maybe?
put a print inbetween ifs then test to see what it doesnt like
Do messages work for other jokers
Yes
Honestly im not really sure why you're using that first function tbh
me neither, i might change it back to just Mary if I don’t end up using it anywhere else
otherwise it'd just be equivalent to have the table you send to SMODS.calculate_effect() be the return table in the calculate function
okay genuinely what is happening here ive tried everything i can think of
right
it works though so I’m not worried about it atm
Do you have any hooks/patches related to this joker or functions like SMODS.calculate_effect or SMODS.calculate_individual_effect
only for her unlock
and could that be blocking the messages?
why is G.consumables not crashing
Show Da Code
toma have you hooked smods functions
why would it?
Yes
it's G.consumeables
The reason why is because context.other_card can never be card.
lmao
its a seal
so it can
let me get back to my computer 👍
So it never gets to the mispelling to crash anyway
also show these
trying to make a joker that's like constellation but for unique consumables, but this method triggers on every consumable instead of only unique consumables. anyone know why?
.config.center.key
not .ability.key
when I get back to my computer (with my dog atm)
okay i changed it and still nothing happens
yeah if it doesn't crash is because something is wrong earlier in the check
should i be using context.main_scoring instead?
it's the context.other_card == card
context.main_scoring would be what you want, yeah
okay i see
i thought it should be context.other_card == card because vanillaremade does it for the purple and blue seals
for whatever reason the main gimmick of this joker doesnt work (storing)
also, why do all the vanillaremade spectrals have the shader drawing stuff at the end? i once made a spectral and forgot to add that but it still got the shader
spectrals have a default drawstep that does that
vremade_spectrals do not
i should add a comment on that if i havent
is there an easy way to create a random consumable
SMODS.add_card{ set = "Consumable" } iirc
idk if it has the misspelling
<@&1133519078540185692>
hi
yo his profile was crazy 😭🙏
can you make it your profile for 37 hours
hi winter
hi dilly!!!
I’ve named him gonk
it has still been angering me..
The system info?
ive been getting close on the gpu front but the freaking display just doesnt match what im seeing and i cant figure out why
Mmm, yeah
cpu wise im probably gonna just simulate it
I'm trying to figure out an answer for the sprite rotation problem you saw
we both struggling fr
i have no problems everything in life is great
N why dont you do this thing for me then
N' please help me with weird shader drawing offset bullshit
Also wait I was curious. there's a rule in the server that says "no swearing" but it clarifies mostly in regards to like..... slurs and insults at others
Am I allowed to just say general swears?
ill be fr i be cursing and havent been reprimanded
like it's nice if im allowed to say the fuck word yeah
my logic has been if its not meant to be an insult
like if its directed to someone then bad
Nodding sagely
how could i add new colours to LOC_COLOURS?
i swore to quite some people in modding chat
i still had no issue
maybe the modding chats are a lawless land
who knows
This is what Idid:
function loc_colour(_c, _default)
ref_loc_colour(_c, _default)
G.ARGS.LOC_COLOURS.fanworks = G.C.FANWORKS
G.ARGS.LOC_COLOURS.crystal = G.C.CRYSTAL
return G.ARGS.LOC_COLOURS[_c] or _default or G.C.UI.TEXT_DARK
end```
what are G.C.FANWORKS and G.C.CRYSTAL in there?
how do you do that
By the time your mod loads, the G.C table is already initialized by the vanilla code
and where did you put this? also in main?
Yeah
Oh no well I put that in a different file because of the way I organize things
you can put it wherever as long as the file gets loaded correctly from main
also, are the letters put into HEX() case sensitive?
i don't think so
I just capitalize them generally because most image editing software I've seen does
Start debugging
that's all the SMODS func
damn
<@&1133519078540185692> get em, boys
i cant find the @ omg
not my goat vitto they wouldnt
🔫
wait guys i wanted mr east money
we're feeding the mods a lot today
You can also put two more characters at the end of any HEX() function for opacity
I typically don't use it for UI purposes but I do use it elsewhere
gonna go bowling again tonight, lemme see if I can finish some stuff,,,,,
hiiiiii winter do u know where the bendy tv screen effect thingy is made?
why do i get nil in my description????? i am going insane
does card.ability.extra.seal return a key?
it does
colours are easier if you just do
loc_colour()
G.ARGS.LOC_COLOURS['key'] = HEX('code')
...```
you don't need to hook the function
just call loc_colour() at the top of your main file
then you can just add them anywhere
The CRT shader? Yeah
Ah, cool
nah the thingy that makes card areas kinda bend towards the edge of the screen if that makes sense
it does but the issue is that card.ability.extra.max_highlighted doesnt show in the description
I think I vaguely know what you're talking about but can you give an example?
and your loc_txt has #1# in it
eval the card.ability.extra.max_highhlighted with debug
so you know how this is kinda tilted to give a 3d effect?
and custom card areas end up looking completely flat
that's the CRT shader
how do i do that
ohhh
eval cardarea.cards[card index].ability.extra.max_highlighted
whats the card index
Is there any way with an event manager event to not have it slow down when the deck is being viewed?
yes
so in cardarea i would do G.consumeables
but isnt that still going to return nil?
why would the loc_vars and the eval command return a different value of the same variable
if you're using debugplus just do eval dp.hovered.ability.extra.max_highlighted whilst hoering over the card
well it still gives nil
idk what im supposed to get out of that
because obviously that will give the same as the loc_vars
did you restart the run before testing
is there a way to fix this crash?
funnily enough this is caused by vanilla certificate if it draws a club or diamond card on checkered deck, and you try checking your full deck
i made a new run every time
update smods
why do you have nothingmod installed
again?? 
uninstalling it wont fix the issue (it does nothing) but like why
idk what nothingmod is i'll be real
your version is two months old
it probably came with my install
how would i get the chips and mult of a given poker hand?
G.GAME.hands[key].chips and .mult iirc
ur gonna check if youre using the right variable
if i wanted to allow the player to discard with money if they dont have any discards remaining, where would i find the place to hook or patch or whatever the process would be?
vscode literally does that for you
can you screenshot the whole line
mhm but you need the check it in game aswell sometimes??
why not just lose money and gain a discard if you run out of discards
seems easier
and i did???
its not in extra
oh huh
i was considering something like this, it seems a little unclean but this was my fallback
since itd cause things like an automatic money loss with burglar
fair
guess the effects not the exact same
but well the consumable is still crashing
despite it literally being the same as the vanillaremade code for the seal spectrals
show your whole code
how do i check a blind's required score
G.GAME.blind.chips
the seal needs the mod's prefix
tysm
why dont the vanillaremade seal spectrals add the vanillaremade seals..
because that was getting people confused
keep in mind some people go look for how to add a vanilla seal and think they need to do all the vremade stuff
why is the vanillaremade telescope doubled up like that
because im dumb
Because it's just that cool
Double the SMODS 💪
SMODS.Joker{
key = "brokenphone",
atlas = 'Jokers',
pos = {x = 4, y = 2},
loc_vars = function(self,info_queue,card)
local _hand, _tally = nil, to_big(0) -- ty vanillaremade for giving me all this code
for _, handname in ipairs(G.handlist) do
if SMODS.is_poker_hand_visible(handname) and to_big(G.GAME.hands[handname].played) >= to_big(_tally) then
_hand = handname
_tally = to_big(G.GAME.hands[handname].played)
end
end
return {vars = {_hand, to_big(G.GAME.hands[_hand].chips) / to_big(2), to_big(G.GAME.hands[_hand].mult) / to_big(2)}}
end,
rarity = 1,
cost = 3,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,
calculate = function(self, card, context)
if context.joker_main then
local _hand, _tally = nil, to_big(0) -- ty vanillaremade for giving me all this code
for _, handname in ipairs(G.handlist) do
if SMODS.is_poker_hand_visible(handname) and to_big(G.GAME.hands[handname].played) >= to_big(_tally) then
_hand = handname
_tally = to_big(G.GAME.hands[handname].played)
end
end
return {
chips = to_big(G.GAME.hands[_hand].chips) / to_big(2),
mult = to_big(G.GAME.hands[_hand].mult) / to_big(2)
}
end
end
}
It says "attempt to compare number with table" but doesn't give me a specific line. Where did I forget a to_big?
Is it the nil _tally?
it always gives you a line, you should look for it in Mods/lovely/dump
(if it's not a line from your mod or another mod)
Is there a scenario in which retrigger_joker_check would be called with an other_card that is not a joker
i cant find an example of why it doesnt apply to custom cardareas and why it does to all vanilla stuff
As far as I'm aware it applies to custom cardareas? If you have a custom cardarea set up correctly in the global table it will def draw before the CRT shader does
hm i hooked into Game:start_run and it doesnt like to work
Fairly certain it's because start run can override the G and G.GAME tables
I would call start_run_ref first probably?
okay, so, idea i have that im wanting to execute and i have no clue how id go about it:
i want a joker i have to make the screen slightly darker and cause rain to fall from the top of the screen (maybe diagonally?) down past the bottom
how would i go about this?
if the answer is shaders i will cry /j
shaders
😭
damnit i have no clue how to make shaders and dont really have interest in learning, fuck
ugh trying to figure out how to mess with the view deck screen is gonna be so irritating
I notice that there's this num_suits_shown value that counts up in here tht's not.... used anywhere?
What's that about?
?
new debug tech
seals on jokers mod
Only with smods
nvm 
What does it output
There’s a mod that does it IIRC
Well it depends on what exactly you’re trying to do
testing now
You might be able to cheat with images or a combination of images and shaders
weve been using this tech 🤦♀️
I have these obscuring suits, so I need to set the suit counts to question marks and then reorder all the copied cards to arrange them by their fake suits instead
There's no easy way to hook it to make some of these changes unfortunately and i've recently become a Patch Hater
Why?
where could i find information on using images?
oh my god the message triggered oh my god it gained
but WHY
did it gain
TWICE
I don’t think that exists specifically
Maybe L Corp could be useful with their cutscenes
Because the only way I can stop the function from sorting the deck by suits in advance is to eliminate the sort line here, which means circumventing/reimplementing the entire code, which is dumb and boring and needs to be maintained if this original code is changed
I meant why hate patches
Similar reason. Need to be maintained if the original code is changed and the target breaks
round it triggered on plus code
went from 8 to 12
i am plagued forevermore by this damn double trigger
Hooks are less likely to break
I don’t know if that’s true
Thunk could just change the signature
Or remove the function
Or rename it
Thunk updates the game very rarely, SMODS tends to keep function signatures the same at all costs to prevent breaks for existing mods
Yeah but the same is true for patches
Like yeah I'll have to update everything when the Vanilla game receives its big gameplay update but so will SMODS
the game froze on the fourth round (the round it's supposed to trigger on)
Turns out, when a blind uses the new probability contexts, other_card is no longer a joker
I remember @manic rune having an issue with the Retrigger Joker context
Perhaps I can just hook get nominal......
Anyways, I remember preferring hooks when possible but this kind of behavior break is exactly what patches are for. Balatro isn’t a scalable engine
am i fucked
Looking at it im probably going to need to reimplement the entire function anyway
yay
Patch
@wintry solar sorry to bother, but is this intended
I can’t send the evil Kermit GIF
yes
:c
in context.retrigger_joker_check, context.other_card is not a joker, but the blind
if the blind uses the new probability contexts within its calculate
NARRRRRR
fr though the number of changes I need to do makes it seem like it's genuinely easier to do just branch it to new code with a hook, since I'd have to do a dozen patches or smth for this
oh that's a bug then, probability checks shouldn't be retriggerable
I think you could just patch an if check to add a separate branch, but—without looking at the code—, can’t you just set a flag somewhere and change the displayed output without any further computation?
And then do something similar when ordering
The number of things I need to change in the displayed output is pretty high unfortunately
I thought it was 4 UI elements and the order of cards
Maybe 8 since the UI elements can alternate in some circumstances
The main thing is modded additional suits, since with the added pagination, it means that I can't just dumbly reorder the rows in each page
Because in a circumstance where you have modded suits, if it only reorders per page, you have more information about which suits might be which from the get go
Maybe I misunderstood how your effect worked
I would probably just hook it and divert it to a custom function when it's necessary
I thought it was Smeared for face-down cards
im gonna have to yea
no?
It does
But you can’t tell which suit it is
Like face-down
So it’s smearing the face-down-ness
That makes sense to me as combining Smeared and face-down
Anyways, Smeared doesn’t apply to custom suits
So it didn’t seem like your effect should
In no way do I benefit describing this effect as "Smeared + Face-Down"
actually, just in general, should blinds even be passed to retrigger_joker_check? cus it happens regardless of context used by the blind
It obscures the suit. The rank is still visible, and once I finish reimplementing this, the actual suit relation between cards will remain the same probably. All information about the card is visible except the visible information of the suit
no, probably not
I mean you don’t need to
I was just asking if it was, and it does seem like I understood it correctly
Which still doesn’t explain why custom suits are relevant
Because this effect will also mask custom suits
How would it group them?
By suit
Does pseudorandom return an integer?
But how
I don't know what you're asking. It creates a masked visual appearance and then applies it to the suit
The example had two colors
So I imagined there were two masks
that example had four colors
I haven't added any checks to ensure that visually similar colors can't be used in combination
It chooses from a list of 38 colors, chooses one of 4 random suit appearances, and then saves it as the masking visual info for the underlying suit
Colors cannot repeat
then they should uninstall it and play the game normally 🙃
Well there are 152 possible combinations so the first option is covered
So colors can repeat
Then there are only 38 possibilities
Oh wait shit you're right it's currently with total replacement
Because the other combinations don’t matter
there should be 152 possible combinations and I'll fix that
So colors should be able to repeat with a different visual suit
Does pseudorandom return an integer or any double between the given bounds?
just ideally it won't repeat colors if it doesn't absolutely need to
I’d maybe suggest using different colors since I found it difficult to see more than 2 in your example
if you give it bounds it is an integer, yes
Ok
otherwise it is from 0->1
Although upon further inspection I only saw a single, transparent pink card
That's cool but that's not the problem im trying to solve rn
For a total of 3 colors
Inclusive of the bounds I'm assuming
Anyways, so each suit gets a new color and symbol?
So you can still tell suits apart?
yes
So I need to reorder the suits for display in the deck view so that the player can't positionally identify them by their load order
I think you could change the atlas for the suit textures and reorder the SMODS list of suits
And change the atlas for the suit icons
Doesn’t that accomplish the result you want?
Without touching the deck UI
Wait so the vanilla suit order is load order?
temporarily reordering the SMODS suits might work
And temporarily changing multiple atlii
Because you don’t need to touch the UI at all, from what you told me
(it's actually reverse load order but yeah)
so it loads Diamonds -> Clubs - > Hearts - > Spades, and then displays Spades -> Hearts - > Clubs -> Diamonds descending
Huh
You don’t even need to change the displayed suit count
I do yes
So modded suits with negative priority get loaded before vanilla and as such displayed after?
And mods with positive priority get loaded after and as such display before?
I mean yeah I could but I was just gonna change the default numbering personally
Which is more visually indicative that the real suits are being hidden, rather than that you just have new suits entirely
I think it’s easier and makes more sense to change the icons
It's easier and I don't think it makes more sense for my use case
Because it’s weird if it’s counting Spades when there aren’t Spades
Mhm, which is why it says your Spades are ?
because you do have spades, you just can't see them
I do have them but I can’t see them
how would you replace a music track with another depending on if you have a joker
But I can see this other suit
Shovels
So showing a count of Shovels makes more sense
It’s more useful to the player
like if i want to replace the main theme with another .ogg if you have say lusty joker
Because the player can manually count how many Shovels they have
They don’t need to be reminded there might be Spades in their deck
You're missing the design intention here and I'm not gonna argue it further either way
I’m saying that it’s better UX to display a count of cards
Because the count isn’t hidden
The suit is
everything works now, timing wise! now the only issue is the curse of the double trigger
yes i wrote "line break" in the console to separate rounds
Better UX is not more important than intentional design. I can make the UX of the intentional design better, but I will not sabotage a design I haven't even tested on the assumption that the UX is bad
It’s not an assumption, and the alternative is as far as I can tell, easier to implement
As I said, I won't continue debating this
Hyperfixation ?/150?
7
do more
Epic
Hi dilly
🐘
hello
How are you
do more
Another Chicken Joker
im alright, little frustrated at thing i cant make happen so far
hope youre well
Also not the spaces in file names 😭
Do more or there will be consequences

I’ve had some crummy weeks
m o r e
more
i hope things have improved since then
im out of elephants
do lore
no lore this version
Hikari wouldn’t approve of this 💔
take more instead
Magnus solos
i solo magnus
in a fight right
In bed right
what if i became you
i solo a lot of people but typically I prefer co-op
<----- polyamorous
replace the music
Add to deck
ok well no /j
i mean the replace music part
hey i just knocked on the door let me in
Check smods.sound it has documentation
k
Also there’s an example
hey buddy I know you have a girlfriend so you better establish your relationship boundaries fast
In the examples
lmfao
i just said i was at the door gosh
cant a pal come over and say hi
where
In the smods example mods
im tellingggg
You can also ask mysthaps
🤓
where is that agai
also I forgot to say hi Heaven hi Heaven
do you give X1.5 mult
Ok we have a problem
hi HeaveN’
hi toma
thanks
I have a tag that spawns jokers directly into your joker slots
do you also get double trigger issues frequently
It checks if you have room first
dilly you can't just respond to me making a joke about polyamorous intercourse with that lmaooooo 😭
Who u gonna tell huh
i get triggered often but i dont know what that means
I can 
Good boy
yo wtf

no thats it
Hi N
However, the problem is that it checks it when its context is up, therefore 23 copies of this tag spawns 23 jokers without stopping at the joker limit
mods tie him uyp
heyo
MUHAHAHAHAHAHA
scaling a value scales twice and I end up having to use the square root trick
then check in the event?
no my values scale correctly
So I put the check in the tag's yep func?
yes
And make it return false if the check fails?
no
is there a way to see all the suits are loaded into the game
I don't want the tag to despawn without giving a joker if the size check fails
TOMMAAAA HIII
try doing the check in an event then
SMODS.Suits
Or I'm gonna have to do another global variable
only one man would join on that wave with me….
hiiiiii somecom
I already made one to grab last blind's reward money, what's one more?
it's the priority
do not call me that
you have any idea why it could happen? and why it keeps happening to me this consistently?
thats a crazy thing to say
is this in any context? or a specific one?
I don’t think so? for example, Mary’s is an end of round thing and Chud’s is probability hits
Or hell, even with fake Perkeo copying 2 instead of 1…
maybe the link is a context? I’d have to get back to my computer
thought you meant me for a second
dude stop being so aggressive omg
toma stop
toma why are you being mean to me
toma
please
im begging you
junko enoshima
is the matermind
cherish your loved ones NOW 
how do i check if a player is in a blind agai
context.setting_blind is for when you select a blind idk if thats what youre asking though
only when i too am cherished....
the 16th student... watch out for her...
G.GAME.blind.in_blind i think
The one they call Mukuro Ikusaba.....
how can i use a for loop to run code a random amount of times (between two values)
yes
that made me laugh
this is my first time using lua so i have no clue how to use its for loops
ur welcome
yeah no the contexts arent really linked
maybe a hook i did messed something up?
cause if you remember, this happens with ijiraq while it has wee joker's effect
for i = 1, pseudorandom("seed", 1, 30) do
-- code
end
that looks fine
here's the effects then
also note, the messages themselves return once
it's the gains (or perkeo for some reason) that double proc
idk maybe one of my hooks??
...is it because there's two separate calculate_joker hooks or am i coping
no, it's because in one of them you call the reference twice
please be the ijiraq one let me have an easy fix

that's an easy fix tho
no wait it's still easy

job done
IM FREEEEEEEEEEE
wait
hold celebration, jolyne
test first
also remove the print checks the joker works
(am i stupid what's the difference)
(oh yeah that's bad)
it's a new card type and idk how to add it to be sellable
If it doesn't automatically be given it like consumables, you'll have to hook use_and_sell_buttons() to add a condition for it (or you could patch to add it to the condition that does it for jokers)
ui... ooga booga...
I'll have to find where that is, and one last question... How do i give it debug compat
Similarly you'll also need to change card_focus_ui() for controller support
oh and i need to give it its own counter
whats that smods function to check if the player has a joker
i still haven't figured out controller support
SMODS.find_card('key')
probably find_card if you mean a specific one
thanks
Right now it shares the same spot as jokers but I'm gonna have on the other side with the new card type's number
or just underneath, idk yet

Is it possible to override a Joker's name that was setup in a localization file? I wanted to try changing the name of a Joker when it's Negative to something else
your own joker or from vanilla/another mod?
my own
ok but why is it not jiggling after the third round (it procs after the fourth as intended)
Awesome, I'll give it a shot, thanks!
did you try printing what c.a.e.rounds and c.a.e.c_rounds are at that point
like in the if?
HOLY SH it's working
before the if
i read children maker

where in the code is this?
why does this seem to always return true
CardArea:draw
which one is which
okay but what file. I can't find it atm
Use global search
n.... it's incrementing a counter.... come on.....
(c_rounds left, rounds right)
i didnt know c_ was supposed to mean counter 😭
Okay, ui thing works, what now...
it looks like it should work to me idk

