#💻・modding-dev
1 messages · Page 194 of 1
ok so how am I supposed to get orange and purple out of this code
(im 100% confident that i wouldnt be able to understand ortalab's code 💔)
im sure eremel would be kind enough to help
is this code actually functional
try it?
actually, it might be because of this
hmmm
yeahh probably not, if theres no background color set then it should probably already be transparent if thats the case anyways
oh right
hmm i would probably still try G.C.CLEAR
gotcha, lemme try
extra end
a
several things here
other_card is not defined. you probably meant to use context.other_card, which also isn't a thing in context.first_hand_drawn context
there is also no card that has an ID of 1
im stupid
what should i use then?
depends on what you want to do exactly
well if first hand drawn contains an ace give 3$
what the jimbo is on my screen
that's an extra empty box somewhere
probably the box your stuff was inside of originally
then you need to check the entire drawn hand for aces and not just some unspecified "other card"
if context.first_hand_drawn then
local contains_ace
for _,v in ipairs(context.hand_drawn) do
if v:get_id() == 14 then
contains_ace = true
break
end
end
if contains_ace then
return { dollars = card.ability.extra.money }
end
end
im pretty sure not
it gets a little more complicated if you want it to give $3 per Ace in the drawn hand
no just if
my friend that visually looks like a box with no content in it, what else could it possibly be
i mean, yeah, but where can it be 😭
im seriously gonna become dora, holy s
the for loop is "for_,v"?
it's probably in the function that makes the popup, maybe you need to change the full_UI_table color
hmm, i will try
yeah. the _ is a variable in and of itself and represents the index. it's convention to name unused variables _ in loops like this as to not take unneeded space
oh
do you have any experience with coding?
you might wanna read up a bit on lua and how it works first
basic stuff
idk that stuff just doesnt go to my brain if i dont do the same error 30 times
i still recommend you read a bit of this and try to refer to it if you're not sure how something about the language works https://www.lua.org/pil/contents.html
center 🤮
thanks! ill try that
it fucking isn't a center, it's a card
an example mod called it center
stupid cryptid conventions
example mod?
example mod, yes
which i wonder
I actually dont even remember anymore
in vscode you can f2 to change the name
works mighty fine
its this lol
Isn’t the white box automatically generated
yeah, but im currently trying to find out where it is, currently trying to see whether N' theory works
MY FREAKING RAM
this is new
my steam wont even boot up again
💀
yeah uh, i actually dont think full_UI_table has anything related to color
i tried printing everything
hmmmmmmmmmmmmmmmmm
genuinely gonna crash out 😭
might have to stick with this for a while then, damn
This is a more genericised version that makes the ranges clearer:
local cycle_speed = 3
local sin_time = math.sin(self.TIMERS.REAL * cycle_speed)
colour[1] = (sin_time * 0.5 + 0.5) * (1.00 - 0.50) + 0.50 -- r = 0.50 -> 1.00
colour[2] = (sin_time * 0.5 + 0.5) * (0.65 - 0.00) + 0.00 -- g = 0.00 -> 0.65
colour[3] = (sin_time * -0.5 + 0.5) * (0.50 - 0.00) + 0.00 -- b = 0.50 -> 0.00
making a joker🔥
drawing a joker😭
so true
is this a proper way to patch steamodded
You can also supply an array of colours to a DynaText and it will iterate through the list, making each character a different colour if you want a horizontal gradient that doesn't change
this probably suggests that a description box is already added before everything in here is accounted for
...so i might to track down where the function is
ah
' on the outside and " on the inside
i think i got it and i'm pretty sure the patch now should allow correct ownership taking of everything
for uh the target
clicked through a round or two, didn't seem like i broke anything either
so like this
this is the closest ive got to (game_object.lua, smods) but it doesnt seem to be the place
should be yeah
still no worky 😭
ty for this! I had my own solution involving shiz with a custom lerp function, but this works much better!
try cutting out the indents on the pattern then
still no work
try
so like it currently looks like this
nice but imo the reverts should be in the same file instead of a new one just for those two patches
I tried that
it kept giving me no matches
tried over, under, whatever, could be that lovely does pattern matches before regex matches, idk
only option seemed to be fiddling with priority
Does setting an enhancement gate also work for consumables?
For colours HSL-based lerp usually looks better than RGB-based Lerp since it's travelling around the colour space wheel instead of through the middle
❓
uh huh, I think pattern patches in a file always happen before regex patches? something like that
In the localization files, has anyone documented what the single letter prefixes stand for in the keys? (b, k, ml, ph)
duly noted!
i'd like to follow it if I can understand it, does anyone know what they stand for?
making them regex patches too and putting them after should be good enough, I don't want to fill more priorities than I need to
the better convention is to use your mod prefix
I'm not sure what they all mean off the top of my head but ml is multiline
i still don't think it is being patched correctly
oohhh that makes sense
iirc b is button text, k is for pop-ups (e.g. jokers saying stuff), ml is Multi-Line (I'm guessing), ph I have no idea
Also it's not like Thunk himself even seems to follow these conventions. And you really should use your own mod prefix like aure said
was thinking that too, noticed cryptid did kind of both so thought i'd ask, thx!
k = pop up...hm, goes kook!
a seems to be used for variables?
i wonder if it's broken on macos
i guess if we really want them to be one file I could make them regex patches...
ah
Maybe UI_definitions
where do I find resources on how to make my own mod?
done
i might be stupid
i couldn't for the life of me figure this out
i really do wonder if it's just macos being funny
[[patches]]
[patches.pattern]
target = '''=[SMODS _ "src/utils.lua"]'''
pattern = '''if scoring_hand and card.debuff then'''
position = "after"
payload = '''
if (context.card.ability.should_trigger_individual_debuff) and context.individual then
SMODS.score_card(card, context)
end
'''
match_indent = true
im not on pc right now to check but it's called in a function called something like generate ability uibox
works on windows 🤷♂️
does the lovely log say anything?
it didn't
can you share it anyway?
because usually it should when it patches something
i just packed my MacBook going back to my room
sure, just send it whenever you're back then
in like 10 minutes
the log is not clean at all
btw jsyk
also there is not a single mention of the file being patched
maybe I'm a rare specimen with a MacBook
oh that makes sense actually
nope, its all just generate_UI
i was playing with Cryptid and the Override text didn't work properly
i tried finding that, nothing came up :(
this is actually so numbing my brain rn
what are you even looking for?
generate_ui, im guessing it generates a box first before it considers everything else inside the function
im currently trying to find the outer white box
ah, fun
i love ui code
it is indeed fun
i have searched in literally every file i could think of
in smods and in balatro source code
just where the hell is it 😭
i wish thunk ported react to balatro
you could error inside the UI function you're generating text, that way you can see the stack traceback
oh, how would i do that?
do i just, "sidlsamdlasdma" inside the code and see where it leads me to
you might be able to do something funky where you trace the parent of the ui elements you are working with and delete/overwrite it
error("gimme stack traceback pls")
it's what I do sometimes when I have no idea how the hell I got somewhere
(attaching debugger when)
uhhh how do i do that, (whatever).parent? i will try Larswijn stuff first to see if i can trace down the file though :D
yeah basically
i just dont know which uh
thing you need the parent of
but all ui elements know what their parents are
im guessing desc_nodes
possibly
since it has all of the small boxes in that picture
that might just be the nodes table though
yeah thats a nodes table
I love .nodes[1].nodes[1]
maybe from full_UI_table you can go the other way top-down
when does the Flint happen compared to context.before?
i have figured out absolutely nothing from this honestly
❤️
im dumb at reading crash logs
message.txt
this is what i got from full_UI_table, how do i even somehow get the ui out of this
Hmm, very weird. Lovely 0.7.1 is the right version, but I don't see your patch anywhere in here
im
gonna bang my head against a wall
maybe i will figure out something after a quick reload
want to make sure your lovely file is actually getting loaded by using a known file but non-existent pattern?
(and probably disable all other mods lol)
it is getting loaded i believe
if there are my patches failing
oh this one's the file you're also using for the smods patch?
WARN - [♥] Pattern ' return generate_card_ui(self.config.center, nil, loc_vars, card_type, badges, hide_desc, main_start, main_end)' on target 'card.lua' for pattern patch from Aikoyori's Joker/lovely.toml resulted in no matches
yes
(I didn't see it cuz of the huge amount of Talisman failed patches lol)
it's all in the same file
lol all good
i should arrange them into files
still weird that people on Mac haven't complained about this before though
yeah i think it's just that it's buggy on Mac
I've only seen a single other patch to smods
which is the Cryptid Override code card
ok, i think desc_from_rows is responsible for the whole joker description stuff
as it didn't show the hands overridden
subtitles?
@random sleet
hi, is there a context for a card being destroyed?
The one Canio uses
similar to how Hologram's ability works, but for destroyed cards?
ah lemme see
thanks ^^
Not the one that no one uses
one quick question, can you change position = "after" to position = "during"?
ok
Do you mean “at”?
Ah
it is being loaded
Evil Lars be like:
😈
well I'm out of ideas except "MacOS is being weird"
you should ask Metherul
@gaunt thistle :P
good luck aiko 🫡
not sure how i would achieve that
wh
how would i even figure out what card is calling desc_from_rows, istg everything is followed by something which makes me question my own sanity
Mod containing functionality for my other mods. Contribute to AutumnMood924/AutumnMoodMechanics development by creating an account on GitHub.
yeah sure
is there anything else patching here?
oh
OH
OH GOD THANK YOU SO FREAKING MUCH
🙏
i dont get it
where did you even find that?
i made the subtitles
the generate_UIBox_ability thingy
like a year ago
ack
(not quite, lol)
SMODS' src/utils.lua doesn't show up at all in the log #💻・modding-dev message so I doubt it
ok its in card.lua
gggggg
how to create a mod that changes some values of the original game without adding anything new?
🔨
uh huh
youll need this
idk I still feel like it's more likely me and aiko are missing something rather than MacOS being broken but I can't figure out what
the same file has all the patches
i was just wondering if there was anything else acting on the file
can you run with --dump-all?
Hmm, I have a negative card enhancement that isn't able to be discarded by the player. I'm thinking of whether I want them to just stay in hand when discarded, or to not let a discard go through when they're in the hand. I guess graying out the button might be the way to go, so that they can still be discarded by The Hook? 🤔
on mac?
I mean there's a lot of nuances there (with e.g. trading card, mail-in rebate)
mhm
huh
oh, interesting
is there a SMODS folder in the dumps?
Yeah, though that should be fine, from what I've been able to reason through. It's really just the Hook that I'm wondering about, and whether the play experience is better if you click discard and not all cards go, or whether you're just stopped before hand already.

I personaly think it's be nice to be stopped from discarding entirely
instead of letting me discard then going "no you don't"
Yeah, they already punish you for having them, I don't wanna do a double feels-bad mechanic, haha
I think greying the button out if they're highlighted and not making it clickable should be fine, then. The Hook (and modded jokers)'ll still be able to discard them, but let's just call that synergy
starting to look more likely that lovely isn't doing its thing on mac 🤔
that's so lovely i spent half an hour trying everything

that's so lovely
bassline
that's not very lovely of mr. lovely
OH WAIT
did you try forward/back slash swapping
you are making graveyard so broken, watdasigma
that would be such a stupid and trivial reason, but,
macos uses /
it's just macos being weird as hell
im sorry
myst im making graveyard content pog
when are you adding fusion summons? 👀
joker fusions already exist
hell yea
im not huge on the mechanic as balatro's limitations make it difficult to use well
i love thinning playstyle
Haha fair
I want my decks like my hairline. thin
i do wanna keep adding ridiculous mechanics to the game tho lol
are you adding yugioh into balatro
why does it still only trigger in hand 😔
suit levels, perma mult/xmult/xchips/..., joker stamps, aspects, sts bottles, and graveyard now after i defeated Myst and got the rare drop
wha
ah
was Myst the one piece the whole time
maybe the true Myst was the friends we made along the way
myst was the one who made graveyard lol
i c, i will see myself out
i just polished a few rough spots and will be maintaining it from here as it seems
time to add mana, dexterity mechanics, and palming cards to cheat to the game next
what r palming cards
not enough stealth mechanics in balatro tbh
like hiding it up your sleeve basically
im die goodbye forever
palming cards in balatro could be like, picking 1 card in your hand and having a button to palm it and store it for later. would remove it from your deck until it is retrieved, but like youd be limited to 1 palmed card... except with maybe a voucher? :3
Is the graveyard also added to AMM, Autumn?
yes
oh, that sounds like that uhh one joker which stores a card in themselves
someone posted it here
i have been pushing code incessantly to both mods
Hmm, making AMM a dependency would basically require all your features to be in there, right? 🤔 While I do love the suit levels and graveyard, it's not something I'm planning to design around. There's not a way to selectively turn certain features on or off, is there?
i do need to look into that, something like the SMODS optional features
You can just make the cards unable to be discarded when selected
is there a way to get joker in context.individual
Rather than while in the hand
Oh yeah, that's how I've got it set up rn
can't you use other_joker
if you dont add any way to increase suit levels, they'll always stay at 1 and thus not affect anything
and similarly, the graveyard should be unintrusive mechanically as well, you'd have to specifically do something with it
while the added UI will still be there, the mechanics dont do anything if you dont make them do so
That'd be great! I'd love to make it a dependency instead of having your code just hidden in mine, but my friends all got confused by the additional UI 😛 Though for the enthusiastic modders I'm sure it wouldn't register as relevant
yeah i might just make it so that the UI is toggleable rather than the entire functionality
because im lazy :)
i don't think it works like that
it's a different context
Can't say I don't feel that 😛
i wanna trigger it on playing cards
then is this correct
is there a way to see what a lua file looks like during the game with lovely applied?
*lovely patches
after the game starts, the patched code is in /dump
thank you
that looks jank
it is as jank as it can be
what are you trying to do
okay, so this seems to be the offending line?
card should be _c there
@edgy reef seems like your patch
unless_c is center
idk
card is nil though so seems like the opposite
card does exist as a concept in the larger function (generate_card_ui)
so I think it is intended to be card, there's just not checks for nil
i am trying to make debuff cards give X1.1 mult
in play or in hand?
both
are there checks for nil in other places in that function
-- it is forbidden to dog
SMODS.Joker {
atlas = 'AikoyoriJokers',
pos = {
x = 7,
y = 0
},
key = "it_is_forbidden_to_dog",
rarity = 3,
cost = 4,
loc_vars = function(self, info_queue, card)
return {
vars = {
card.ability.mult
}
}
end,
config = {
mult = 1.1,
should_trigger_individual_debuff = true
},
calculate = function(self, card, context)
if context.individual and context.other_card.debuff and
( context.cardarea == G.play or
context.cardarea == G.hand ) then
return {
xmult = card.ability.mult
}
end
end,
blueprint_compat = true,
}
i feel like if youre calling generate_card_ui with a nil card it should error regardless tbh
scoring doesnt check contexts on debuffed cards
i have an idea, how about running through all cards in your playing hand?
start of the function does this, which I guess generates a default card, but only if card_type is definied?
that's why i am (trying to) patching steamodded to make that possible
i think they should still include debuffed cards
unfortunately i am very stupid
you could just write a function that handles your joker through "find_card" (with all the required retrigger code) and then put it here and whereever the debuffed held cards are debuffed
this is [SMODS] _ utils.lua and the held cards are probably at functions/state_events.lua (unless this function handles both)
yes this is the patch i was trying to do
why are you scoring the debuffed cards
also looking at the state_events that function handles played and held
should it not be
the point of a debuff is that the cards are debuffed
and so i want those debuffed cards to get X1.1 mult
wouldn't that be src/utils.lua
not just utils.lua
maybe that got changed because of the 0.6.0 incompatibility
ye src
nvm then
what if i just
I'd swap cups', wands', and swords' colours because of historical reasons.
ok i can remove them from the game
Is this too convoluted?
This is meant to support Straight build.
i have an idea for a laggy joker, but i dont like the name, any of yall got an idea for a better name?
I think it could be "of", since I chose "from" as in "counting from".
pretty sure it is
does it just, lag your game
if so, Jokernet Explorer
no it just has bad connection
tho i really like that
hmmmmm
Jeague of le Jokers?
crazy shit
"select 5 cards, their ranks will be changed such that they make a straight around the leftmost card" could be more understandable but not as strong
i dont know how to draw angry sweaty men
Might just return false in can_use in those cases.
for example,
x x A x x
-> K Q A J 10
would be confusing for the user since they wouldn't know what went wrong
i think something is wrong here
that straight isn't centered around the ace the hand is
also the ace isn't on the left so that wouldn't work
ohh, so like
if its a 9 then it will be J 10 9 8 7?
ye
Or, if selected K, the pool of ranks would just be {A,K,Q,J} and not including 2.
and there's no straight that works that way for a 2/ace/king
yeah thats seem a bit unnecessarily complicated
laggy joker it is
it's just edge cases tbh
could always make an ace/king turn into 10JQKA
and a 2 into A2345
I mean math.max and math.min are a thing in lua.
Or I can also make it wrap around, and let those 98% players suffer with their 32AKQ.
lmao
The down side would be not being compatible with mods that adds extra ranks. But I can deal with that.
randomly generate 4 cards until they make a straight with the fifth 
blind rabbit hole goes deep :v
TURING LOVE MENTIONED
ok so it SHOULD be possible now, that if you dont use Suit Levels or Graveyard (decided from SMODS.optional_features.amm.suit_levels and SMODS.optional_features.amm.graveyard), as well as Stamps/Aspects/Oddities (determined based on amount of those objects loaded) being more hidden. the collection tab for Oddities will still exist but. eh.
you're a champ! That's awesome. I'll work on making it a dependency for Kino tonight!
functionally, if you dont use oddities the game will no longer attempt spawning them (failing and spawning a jimbo instead), and the packs and tag supplied will not spawn either
I don't plan on using them, but I should add some specific jokers just to interact with the other mechanics, if a player does want them turned on, haha
i deserve to be shot because of what i initially thought when i looked at this.
you could then use the in_pool function to check if those features are enabled!
that way those jokers dont spawn if those features are disabled
i mean
yeah, I've looked into conditional loading already! Just because of the theme of Kino I definitely want Reverie to be compatible, so I looked into how difficult it'd be to add some jokers for if the player has that installed too. That, and the pokémon movie for pokermon, ofc, haha
You're also good motivation for at some point ripping out all features from the content from Kino, and making that a separate mod so people can just mess around with and change those things without needing all my jokers in there
my hope is that if i just. Go Out There And Be The One Who Does The Things. then maybe the one library mod that i make actually happens to catch on who knows
Well, I'm fully bought in 😛
and we get the mechanics presented to be fleshed out across multiple mods
The more I can rely on other people's code, instead of writing my own unique implementation, the easier it'll be to make stuff that's compatible, and that's a big reason already, ofc
because that's what always feels the worst as a modded player when you do like modpacks of stuff is when everything just feels like a totally separate thing
Yeah, exactly
what do you mean i have 5 keybinds for the same thing
average minecraft modpack
I remember the tekkit days of minecraft adding 7 versions of copper that never worked together
oh god
ok this looks more ass than i thought
RIGHT i still want to make the "balatro ore dictionary"
so true 😭
so, autumn, when are you adding crafting, so I can add 7 incompatible coppers to the game?
i never understood how the Create mod in minecraft worked ngl
i only know that water flows = water wheel happy
i have considered adding like. Materials.
but not as a crafting thing
but i guess it could result in a crafting thing
it is that I'm too committed to Kino to just digression into a different mod, but now I have the idea of suits as materials to craft jokers, and it doesn't seem too difficult to make 😛
but uh this is more like having groups for stuff, like food jokers
-# i can do anything
that was my horrible attempt of trying to make a jevil spritesheet 😭
chat why is faygo actually good
ooh, if you do start this soon, let me know, so I'll make my system compatible with it. Once I've got ~150 functional jokers, I wanna add a tagging system for jokers to help with spawning and checking on specific conditions
As I currently already check for genre, and for certain qualities like 'has Batman' or 'has vampires', but I wanna expand that into something modular so I can add to that a lot more easily.
as an asian, i can confidently say that resembles asian languages
epic
very accurate
joker hat on the dog
"I recognize everything except the middle character"
so pretty good
or joker hat on the person
scrumptious
probably uncommon at most, since its a very niche ability
idk why i wanted to add this
please dont joker
idea:
Blackjack Joker:
Gain X2 Mult on 21
Gain +Mult on < 21 (based on total value)
Score 0 on > 21
rarity?
what do you mean by "on 21"?
in the full hand, if the total value of the played cards are == 21
so like two kings and an ace would be 21
(or also just a king and an ace)
huh
X2 Mult if the ranks of all played cards add up to 21
+() Mult if the ranks of all played cards add up to below 21
thats probably easier to understand
ehh, i actually think it should be a common
X2 Mult being locked to a very specific hand combination can hurt most strong builds
and other than that, the other buff is pretty meh
so id say this is an early game joker when you havent built your deck properly yet, aka a common joker
gotcha
damn im not original
just finished this joker, not entirely sure about the rarity and how many rounds until it triggers, any suggestions?
Is there any way to pass an external texture into an edition shader?
i set up a Groups feature
thats a lot of banana john
this is a super basic implementation, i havent done any of the actual pool considerations
So um, 嚴禁遛丑角 actually means "(This area) prohibits walking jokers", so the joker hat needs to be put on the dog's head.
like no duplicates or whatever
first of all, i personally think you should list the chance for each occurrence to happen
and i think 2-3 rounds is fine
yeah
the chances for a legendary are 1 in 10, and the chances for it to be a tarot card instead are 1 in 8
maybe you can have it be in a little info center? just so the card description itself isn't super bloated
dont repeat my mistake lol
is there a global variable like G.jokers. but for consumables?
I wander if there can be a universal library mod that sets the pool of food jokers and everyone can just add their food jokers of their mods to this pool.
You know, for mod compatibility.
yes that is exactly what i am trying to do
it is G.consumables.
but nobody wants to actually make the thing that is helpful
and just wants to complain that it doesnt exist
:)
huh. i got a nil value error from it. alright, i'll take a closer look
OK now I just saw this one, sorry.
probably could take a look at jokers like Tarot Joker or Abstract Joker, I think those create tarot cards and emplace into G.consumables
or really just any joker that makes a tarot/planet/spectral card in your consumables area
sorry
coding libraries be like:
oops
Soul Cycle be like:
why did you put another soul
Now that's a lot of soul gems.
Soulful:
Selling this Joker will create a Legendary Joker
john souled everywhere 😭
"It's pneuming time!"
oops all soul
so actually I didn't make any lovely patches for this
Introducing https://github.com/Steamodded/smods/pull/480
Card.draw is way too annoying to deal with, so why not build an API around making it modular and allowing easy insertions anywhere during the drawing process just by specifying a numerical priority...
LETS GOOOOOO
does it make a bunch of patches from other mods useless? maybe. is it worth it? absolutely.
ab. so. lute. ly.
it's G.consumeables, thunk doesn't know how consumable is supposed to be spelled
Yeah lol i just saw that
Hi! I'm new to the server so I hope that this isn't a dumb question to ask here. I'm recently getting started with modding balatro, and right now I'm pretty curious on how to make a custom joker to add to the game. Are there any guides/tutorials, because I'm having a hard time with finding something like that online
https://github.com/Steamodded/smods/wiki/Your-First-Mod This would be a good place to start
how can i do this?
thank you sm 🙂
There's also #1307744498360520805 message which I think has some video guides
iirc there was a smods branch with something like this but it went stale unfortunately
john, that video is the reason why i called card "center" 😭
omg thats what I was was looking for thanksss
but other than that its really useful
i was about to post that yeah
thanks mate
info_queues are your best friend here, in this case, you'll wanna make a custom info_queue. In your localization file, it's the same as declaring a joker definition, you just have in your Other= section. In your joker code, you just add info_queue[#info_queue+1] = (your info queue localization key here) in between the loc_vars = function(self, info_queue, card) and return { vars = {}} of your joker code
this should be correct, yes?
oh nevermind
its consumeables, not consumables
what the hell

Imagine somebody patches every "Consumeable" into "Consumable" in every file of the game.
who wanna roll on a banner with trash, trash, trash, and trash 🗣️
in the loc_vars function right?
I love how my computer is telling me Balatro is already running when it most definitely is not
yeah
you should def call it card instead
dont be like me 😭
time to reboot
im inside your computer.
ohhh ok thanks you just saved me from the same thing hahaha
if i use copy_card with a joker, can i then use that joker in SMODS.add_card?
how do i use context.blueprint again
with blueprint the card just does not work anymore 😔
it's for blueprint-like jokers, so if you don't want a specific part of a joker to be copied by blueprints (usually used for scaling, because blueprints don't have the variables to scale), you use not context.blueprint
ohh ok making a simple joker wasnt that scary
ok so
emphasis on the word, "simple"
how you make the joker trigger on certain events tho? like if you play a specific hand
yeah i was looking at other jokers on github and they were absolutely crazy
it sounds funny but ill keep the joker on the person
if you want my opinion i think that this specific joker with that specific blind is such a niche case that i think it should stay like this. for a fun rare synergy
uhhhh
somehow take the whole joker's calculation 🗣️
or alternatively, you can store the card you want to "copy" in a table
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_gain
return {
message = 'Upgraded!',
colour = G.C.RED
}
end```
i hope im not asking too many simple things but, how do you add more conditions? like i'm making up an example, if the hand is a three ok a kind of 7
then the card which copies others will read through all of the cards in that table
in context.blueprint
you would have to go through the entire playing hand
see if all of them r 7s
ohh ok, and it should still be in the calculare function?
mhm
ye
you're actually insane
ive gotten this far mostly thanks to everyone else too lol
they have been really helpful
omg yme
i think this is fairly restrictive? it'd need to be strictly a 3 of a kind 7s with no other scored cards
personally i would loop through scored hand and use an incrementing local var to see how many cards in hand are 7s, if i >= 3 execute else end
im not even overexaggerating when i say that i wouldnt know how to create a simple UI if not for everyone's help, best modding community ive ever been a part of ngl
i mean, it kinda depends on what kind of effect you want to achieve
but yeah, your solution should work best in his context i think
I do something very similar for one of my cards. You can reference that if you'd like
Oddly enough it also looks for three 7's
agreed
its such a nice number i would

had to create the localization files so it took me a while, but here it is
ok seriously
we are serious now
Does the grading change per instance of the card?
yeah the chances are for each individual copy of the joker
Hell yeah. Super sick concept
what takes priority when the rng is calculated, the legendary joker or the tarot card?
Remember to add a "{C:inactive}(0/4){}"
wait, nvm.
I would hope the legendary lmao
the tarot card, for the troll factor
nah what, thats brutal 😭
bruhhhhh
but its PSA so that makes sense
they really be manipulating the market with this one 🗣️
the other one i've made is just traumatic evolutions with it being an inverted legendary lucky cat lmfao
+0.1 mult per failed lucky card trigger
I have a similar one at a larger scale but less cross-mod friendly lol
i can actually make jokers whose ability is different depending on what you choose now that i made the turning page stuff, very convenient
if i were to work on a library of ruina mod
this would be a perfect opportunity to give roland his 9 abilities
❤️
imo it should be xmult ngl
like, + x1.02 mult per failed probability check
bcz +mult for an uncommon is pretty lackluster
I don’t think you realize how common probability checks are
Cuz trust me, that card can SCALE
Is there like a tutorial video or something for making these balatro mod wiki pages? I find it not quite easy to chew though the Guide the wiki provides.
am i ok
No I kinda just copy-pasta’d the source from other already established pages and changed it for my purposes. Picked up the syntax fir it along the way
in base game that's good but fine, but damn, yeah so many mods turbo-boost that joker, haha
how does it define what counts as failing, versus succeeding?
It doesn’t even work with other mod’s jokers cuz it’s a hardcoded check 😭
Kinda just common sense. Breaking Gros Michel/Cavendish, Wheel not hitting, lucky card not triggering, etc.
wheel hitting foil should be considered a probability fail ngl
😭
bananas are stated as chance to destroy, not chance to keep
ah yeah if it's hard-coded that makes sense haha
so the check "fails" when it's not destroyed
While that is true, it doesn’t make sense for the card so I took a liberty
Plus gaining +999 mult every time cavendish doesn’t break would be stupid
mr john steamodded i need assistance regarding the blueprint's inability to copy the forbidden to dog joker
i mostly copied this function from the steamodded score card function and i don't know if this is correct or not please enlighten me
Folks, a genuine question: does this card need such specification?
I personally feel like its logical and specification is just bloating the text
If first scoring hand of round has 4 or more unique suits,...
that would make it a bit shorter
theres no such thing
its called poker hand
which implies all cards in it are scoring
i literally make up words for my mod ❤️
Eidolon 6
castorice kit is leaked
the full one
peak
and as i expected, its longer than a wikipedia page
i aint adding that to my mod anytime soon 😭
I mostly was talking about the last part of the effect
i think that part is alright
Also on another note, I made it really easy to add compatibility since it’d just require adding a simple helper function call, but that would require other mods actually adding that lmao
do you want me to add that to my mod ❤️
Hmm, if I want to draw a specific card from the deck to the hand, is it just as simple as :emplace() and then visibility = true
my mod is literally rng on top of rng, it will probably work really well lol
It’s up to u
I wouldn’t write unique
I’m not tryna force people to code compat lmfao
Also why does it show Mr. Bones
nah its fine lol
Death isn’t madness
Color of Sans
I'd add it to mine, but I've got some jokers that would be insanely synergistic combos with it, haha. And planets that double their chances to fail each time they get used, so at the end failing is a 100/100 guarantee
What’s a failed check
its whatever you considered to be a fail
like
hitting that 3/4 on a wheel of fortune
There’s a reason why this joker is designed in a vacuum that is Maximus lmao
failing to get the +20 mult AND the $20 from lucky cards
not breaking glass cards
etc
well I've seen multiple crash reports for Kino where people were playing it with Maximus, so the vacuum isn't that sealed 😛
actually, should this be considered a fail?
Breaking glass does actually count as a fail in my case
I think Breaking Glass should be a success 🤔
Why tho
its more of a loss when they break
You’re losing a card
That’s what the card is trying to do
(unless you got that legendary joker)
Good
Get rid of those cards
why?
Make my deck more consistent
Glasses work well as a fixing tool yes, but the main purpose is absolutely meant to be a risk/reward Xmult generator
And thus I’m balancing around that core ideaology
I think that philosophically it’s a bit inconsistent with other Probabilistic effects
ok how do i get the card blueprint/brainstorm is copying :(
Although I like encouraging Glass be destroyed
'If first hand of round has',
'4 or more scoring cards with',
'a suit, enhances one of',
'them into a Wild Card'
no this doesnt make sense
??
where does the game calculate giving +1 joker slot for negative jokers
cant you just find the locations of blueprint/brainstorm, then from which determine the card they r copying?
i kinda want this to work with jokers from mods too
hmm
its literally perfect to use mr bones idk
^^
I feel like you'd like this card
Maximus mentioned
byeah
You made a blueprint shader?? 😭
If first scoring hand of round has at least 4 suits, enhance a scoring card into a Wild card
stupid did
why isnt it copying
🤔
that's odd
yeah it is odd that it's not copying. you have to pretty specifically code the card to not do that
ill try something
I am absolutely stumped as to why this atlas declaration is giving me Failed to collect data for Atlas
key = "Reverse_Bosses",
path = "reverse_bosses.png",
px = 34,
py = 34
}```
Is there a single joker that uses term "first scoring hand"?
🤔
For some reason, the card gets drawn face down. I'm sure it's got something to do with how cards are stored in the deck, but I can't figure out why it refuses to flip face up when drawn
Idk I don’t care too much, but also I came up with it on the spot
You can massage the wording
nevermind, I think I forgot to make the 2x version...
ig so
but you were onto something
that sounded simpler
told ya, first scoring hand is the way to go ❤️
In first hand of round,
if 4 or more scored cards
have different suits, one
becomes a Wild Card
I could check how I was drawing cards later if you want, but also I recommend drawing a random Romance card instead of the first one you find
can it be "first poker hand"?
I guess
since again, it implies that all cards in poker hand are scoring
The point is to avoid “different” IMO
It’s implied by asking for multiple suits
yes, modded suits compat
what about them
If first poker hand of
round has 4 or more
suits, a random scored
card becomes a Wild Card
he also explicitly says that the card should be unenhanced too
I solved it. The work around I opted for did work, but I just did it wrong, haha. I don't think it should matter too much whether I grab the first one, or a random one, considering the deck is already shuffled
can SMODS.add_card not do editions?
On the latter part, drawing the first one makes the deck unshuffled
As in
The deck is not uniformly shuffled
4 unique suits means that it can be a modded suit
If you draw a random one it stays randomly shuffled
My point was just that “4 suits” means “4 unique suits”
good morning everyone
Well, it's an imperfect randomness, but not one you have any access to as a player. The first romance card in deck was already decided randomly, so taking it out of the order, but not knowing where it was in the order, shouldn't impact the player
If first poker hand of
round contians 4 cards with
unique suits, an unenhanced
one becomes a Wild Card
It impacts the player if they draw more cards, because it’s less likely that they draw a romance card
And more likely that they draw other cards
yes, it would be, except that the deck indexes from top down, so an i = 1 loop iterates through it from the bottom up. But that is a fair point
Well you also draw from the bottom no?
almost there I think
It might be easier if we spoke of the top as the place we draw from rather than the physical top
I think I’d say “at least 4 suits” and not “unenhanced”
yeah at least 4
I mean removing “unique”
what's instead unenhanced? Or just not mention it?
I was going to say not mentioning it
But you could I guess
I find it ugly but maybe it’s better to keep it
same
if you don't specify then it would clash with the description of Midas Mask
which does overwrite the enhancement
maybe I'm misreading my own code, but from my understanding, the next card you draw is the same as G.deck.cards[#G.deck.cards]
-# or change Midas Mask’s text
but it says "All played cards.." which kinda implies overriding
-# gaslight your players
-# gaslight your modders
This is a half-serious suggestion
It depends if you want to invest in rewording vanilla Jokers
except in vanilla, it's never specified that a card needs to be unenhanced, and they never override, right?
well, this description would imply it always changes something
rewording vanilla jokers is evil
no nvm, thinking of editions
Be evil
Also thunk wording isn’t consistent
😭
-# also not always good
consumeables
Anyways did you fix the issue? I can share my code if you want
caino
If first poker hand of
round contains 4 suits,
one scored unenhanced
card becomes a Wild Card
(4 or more is implied with "contains")
Who are Ables and why consume them?
I did! I somehow indexed _rom_spot as 1 instead of i, and changing it to i, so I actually get the proper location, fixed it
i think you should use "a" instead of "one" by that point ngl
That’s true but that’s one case where I think I prefer being clearer ;P
smart
but wouldnt that imply that it should be exactly 4 suits?
no less no MORE
that's entirely subjective, and this situation has precedence with the word contain, as well as making sense in both a vanilla and suit-modded context
oh right
Im dumb
for example, "contains a two pair" also applies to full houses
actually cooked
thanks
I know but as I said “4 suits” implying “4 different suits” is technically subjective
But I don’t think it should be clarified
yes, that is your thought
thats not what i said
what
❓
I've decided to remove random out of equation
How can i pass an external texture into an edition shader?
I think it has to be an extra variable like the others
do custom blinds have a boolean field I can check to see if it has been disabled or not?
Should be the same as vanilla Blinds
got it working, thanks
how do you change the enhancement of jokers in the shop (e.x. negative tag)
I'm cooking something up rn
Just look at negative tag
negative is an edition not an enhancement
Is there anyone good with shaders that can explain to me how they work like I’m a 5 year old
I have a specific effect i want to do but 0 clue how
Even doing CS for as long as i have this shit is just black magic to me
I feel that 
i try to close my eyes and pretend shaders aren't real
Like my mod could be one of the most complex out right now it feels really embarrassing that i don’t know how to do a shader
Lowk if i explained the effect and someone else did it i would credit you and give you $5 idrc anymore
There’s the example shaders
What’s the effect
It gets supplied 3 random textures and mashes random crops and copies of each other on top of one another with black boxes
If this sounds like tmtrainer that’s because it is
the random texture part is easy
I’m not sure how to make the shader do the effect though I’m describing
Isn’t TM Trainer from Pokémon
Yes but I’m making the isaac item
well I looked at the negative tag thing and tried it out
nothing happened
I mean you could use three shaders instead of one
My mods the Isaac mod
Huh
I’ve just been on hiatus for a few weeks, finally getting back to it
I have Champion’s Belt in my mod
Nice
But yes what do you want to apply the texture on?
Finally implemented a description that dynamically changes between two states depending on if death was prevented or not!
Joker
You can use SMODS.Joker:draw and make three calls I think
Huh
With three textures
yeah that makes sense
dry bones is peak
ok I’ll try that first and see if it goes anywhere
It does use three times as many sprites
i gotta go for a bit :p
I have some ideas for how to do with a single shader but they aren’t as concrete
i don't think there's
a better way than this
because the chips mult and stuff won't do anything anyway
idk how it will interact with other mods but idk
i can't pull card ability from blueprint
as in
i want to check if the joker has ability should_trigger_individual_debuff so that it goes thru with the thing
Does anyone know what causes this visual bug?
the X is overriding my custom seal
even tho it's transparent
I imagine it’ll go over the top of every seal, no?
let me check for sure
Debuffed cards have ALL effects deactivated, including editions, enhancements, AND seals.
Debuff covers seals by default.
right i just faintly see the seal
what does next(SMODS.find_card('joker key here')) return? does it return true/false or a reference to the card found?
The card
You'd probably have to make the seal have a higher priority and a higher layer than debuff for the seal to be over the X
It’s just how the shader works then
It does look really weird though
that just debuffs the card indefinitely
I can’t think of how smods would introduce this behaviour though
So it’s probably just vanilla
Wrong layering?
i think this is vanilla
It looks vanilla
sorry to butt in, does anyone know of a better way to do something like this (only display a given line of card text if a config setting = true)? still trying to figure this one out. ^^;
also is your profile picture Stone Card from HoloLive EN
biboo
koseki “Stone Card” bijou
Yes especially on the bottom
Use main_end
