#đ»ă»modding-dev
1 messages · Page 469 of 1
How do I make my jokerâs tooltip black?
{C:black}?
calculate = function(self, card, context)
if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
func = function()
for _, original_card in ipairs(context.full_hand) do
local copy_card = copy_card(original_card, nil, nil, G.playing_card)
copy_card:add_to_deck()
G.deck.config.card_limit = G.deck.config.card_limit + 1
table.insert(G.playing_cards, copy_card)
G.hand:emplace(copy_card)
copy_card.states.visible = nil
G.E_MANAGER:add_event(Event({
copy_card:start_materialize()
end
return true
end
}))
end
end
if context.first_hand_drawn then
local eval = function()
return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES
end
juice_card_until(card, eval, true)
end,
good now?
hello balatro modders
haaaaaaaiiiii
No like the whole text box
uh so I am having some issues
Itâs a white background
I want to make the text white while the whole text box is black
Trying to imitate Undertale text box in some way
lovely patching
now it stopped saving seals in the table
lovely patching somewhere then
bepis help me
I was gonna explain an issue I was havving but I wasn't having an issue
Oh
just a moment
calculate = function(self, card, context)
if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
local copy_cards = {}
for _, original_card in ipairs(context.full_hand) do
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
local copy_card = copy_card(original_card, nil, nil, G.playing_card)
copy_card:add_to_deck()
G.deck.config.card_limit = G.deck.config.card_limit + 1
table.insert(G.playing_cards, copy_card)
G.hand:emplace(copy_card)
copy_card.states.visible = nil
copy_cards[#copy_cards+1] = copy_card
G.E_MANAGER:add_event(Event({
func = function()
copy_card:start_materialize()
return true
end
}))
end
return {
message = localize('k_copied_ex'),
colour = G.C.PURPLE,
card = card,
playing_cards_created = copy_cards
}
end
if context.first_hand_drawn and not context.blueprint then
local eval = function()
return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES
end
juice_card_until(card, eval, true)
end
if context.starting_shop and G.CONTROLLER then
return {
func = function()
G.CONTROLLER:key_press_update("escape", true)
G.CONTROLLER:key_press_update("escape", false)
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 0.1,
func = function() return true end
}))
end
}
end
end,
many many thanks
sorry to bother 6ou
nah it was funny
?
unexpected symbol near if
the last one
ghhhh
god damnut
here's the full code
calculate = function(self, card, context)
if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
for _, original_card in ipairs(context.full_hand) do
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
local copy_card = copy_card(original_card, nil, nil, G.playing_card)
copy_card:add_to_deck()
G.deck.config.card_limit = G.deck.config.card_limit + 1
table.insert(G.playing_cards, copy_card)
G.hand:emplace(copy_card)
copy_card.states.visible = nil
G.E_MANAGER:add_event(Event({
func = function()
copy_card:start_materialize()
return true
end
}))
end
end
if context.first_hand_drawn and not context.blueprint then
local eval = function()
return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES
end
juice_card_until(card, eval, true)
end
end
if context.starting_shop and G.CONTROLLER then
return {
func = function()
G.CONTROLLER:key_press_update("escape", true)
G.CONTROLLER:key_press_update("escape", false)
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 0.1,
func = function() return true end
}))
end
}
end
}
what's the purpose of the starting shop stuff
pauses the game
by calling controller
before where
move it after the
that one ends it so move it later
to when you want the calculate to end
ok i edited the code i posted earlier to add hologram support and uhhh
the pausing thing
What's actually happening
What's being printed
you're returning in the loop as soon as it finds a seal
did you mean break instead of return?
break is bad there too
yeah
since presumably all seals are being collected to randomly select from them
Hey everyone! I'm looking for someone who can help bring a new mod pack to life â Iâve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I donât know how to code myself, the ideas are fully written and ready to go. If youâre into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Letâs make something awesome together! These are some of the ideas.
It's actually pretty easy to learn if you want to go for it
One of the easiest games to mod imo
Actually its not my field
Other wise I might do that
Its pretty unlikely for others here to jump on to do your mod instead of doing their own ill be honest, so its best to try and learn it yourself
SMODS.Joker {
key = "classy",
loc_txt= {
name = 'Classy',
text = { " {C:chips}#4#{} Chips, {C:mult}#1#{} Mult",
"{C:attention}#2#{}"
}
},
--atlas = 'Maidenregalia',
pos = { x = 0, y = 0 },
rarity = 2,
cost = 7,
pools = {["pseudoregamod"] = true},
unlocked = true,
discovered = false,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,
config = { extra = { mult = 0, poker_hand = 'High Card', mult_gain = 5, chips = 0, additional = 5, encore = 0 } },
loc_vars = function(self, info_queue, card)
return { vars = { card.ability.extra.mult, localize(card.ability.extra.poker_hand, 'poker_hands', card.ability.extra.mult_gain, card.ability.extra.chips, card.ability.extra.additional, card.ability.extra.encore ) } }
end,```
Can someone help me understand why the 'nil' ? as far as i check in my code, the **#4#** should normally aim for the chips but it says nil, any help appreciated
-# Started a new run with a fresh copy of it?
I did, but actually it just shows even in the menu
I will retry just to see
...hang on...
The localize call is not closed off before the other variables after 'poker_hand' is specified for it.
Instead, the ) is at the end... should be localize(card.ability.extra.poker_hand, 'poker_hands') ?
oh i didnt get to say it btw but good schmorning chat
wait i just noticed that actually
that explains it
#4#
wait nvm
i misscounted
Bit of a weird layout of config, but who am I to judge... đ
it's been my main layout, it sure does look a bit intense considering the numbers of abilities set in lmao
also yeah that was the issue, thanks !
wait why 5
okay that one is a bit weird, it should be 0 too
oh wait nvm fault on myside
Bump
It's misc not Misc
Oh lol
what if i just want to put the name here?
since this isnt showing up either
wait did you make sure your file is loaded
how do i do that again :b
assert(SMODS.load_file("src/challenges.lua"))()
with the "src/challenges.lua" being the path
do i just put that above the current code?
i do something like that
and the path would just be this right?
If anyone here is good at modding cards and doing sprites I have a proposition if you help me make like some cards and stuff for a mod i will pay you with steam games or nitro so DM me đ
The mod itself is gonna be unbalanced chaos because I think that would be comedic 
An example of a card
Im Jeong Dae (Player 100): If you have $100 gain +100 mult for each card played ||1 in 100 chance to be impaled with a metal pipe and die||
not in the file you want to load tho
hm?
from this i gathered the file isn't loaded
so you put the line to load a file in a file that isn't loaded
this is how my main.lua looks like
like this?
how do you change the loc txt of an object youre taking ownership of? i have a loc_txt entry in the take_ownership but it's not changed compared to base (i'd imagine since the original uses localization files instead of loc_txt)
hm, i dont think so.. it still doesnt load it
where is the main mod file
you need to use a localization file too and use the same key
put it in your main mod file
Can someone recommend me a tutorial to make modded cards
along with the assert thing?
doesn't seem to be working for me
well its loaded in now but i would prefer it to be in it's own file, does the folder name it's in matter? also it crashes whenever i click on it
the string part can be any path
idk if it's relative to the file it's in or the root of the mod
wekk u feel like the load file doesnt work either way
should the "scr" be the mod prefix?
it's just the path to the files đ
is it still in the wrong file
huh?
hey so i need a little help again
if card.ability.extra.current_round == card.ability.extra.total_rounds then
G.GAME.blind.chips = G.GAME.blind.chips/2
return {
message = "Well rested !"
}
end
end```
the whole thing is meant to divide by 2 the required chips of the blind, and while it works it doesn't properly show it and show still the initial score required, is there a way to fix it ?
Hey everyone! I'm looking for someone who can help bring a new mod pack to life â Iâve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I donât know how to code myself, the ideas are fully written and ready to go. If youâre into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Letâs make something awesome together! These are some of the ideas.
this basically
sound plays in loop?
update = function(self, card, dt)
timer = timer + (dt or 1/60)
if timer >= 30 then
timer = timer - 30
if math.random(1, 25) == 1 then
G.E_MANAGER:add_event(Event({
trigger = 'immediate',
func = function()
play_sound("dark_Taunt")
end
}))
end
end
end,```
put that line in the main file
i believe you have to return true in the event
i'll let you know
thanks for giving me a perhaps solution
does anyone know how i can fix that?
đ
bump
i might be really stupid, but switching the pngs out is as easy as just changing the files and giving them the right names in the game assets right?
Is there a way, on joker calculation, to change the joker image? I tried changing self.atlas to another registered key, but that didn't work.
card.children.center:set_sprite_pos({x = 0, y = 0}) iirc?
It will change the image on the Joker, yeah.
Could anyone help?
does anyone know what i did wrong in this take_ownership? the other stuff seems to work fine but the loc_txt isnt changing at all
Thank you!
does anybody know the best way to do ^mult and ^chips, is it natively supported by SMODS? was trying to do some shit with math.pow but there is most likely a more elegant solution
if youre doing emult / echips you should probably make your mod depend on talisman so you don't instantly hit naneinf, which in such case you can just use emult instead of something like xmult
it is not supported natively by smods though
sorry i confused words lmao
oh, i saw emult in cryptid but i just aassumed it was a custom cryptid thing lol
i knew there was a more elegant solution thank u
nah that's a part of talisman, if you make your mod use talisman you can use emult/echips freely
oh wait yeah you edited your reply haha, okay thank you
yea my bad i confused talisman and smods when typing lmao
The eternal and pinned thing should be in the same part as the ID
Ik you probably are but look at (or straight up copy) an example from vanilla remade that's similar enough to what you want to do
im trying to make this tarot dupliocate a random consumable
and the issue is that if you use it with no other consumables it crasehs
and i dont wanna make the require,emt 2 or above because that would break tarot packs
@primal robin how do you start a new run
mmm i see
since using delete and start run crashes the game
i have to figure out a way
localize { type = "name_text", set = "Joker", key = key }
bump
Hey everyone! I'm looking for someone who can help bring a new mod pack to life â Iâve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I donât know how to code myself, the ideas are fully written and ready to go. If youâre into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Letâs make something awesome together! These are some of the ideas.
I have tried learning lua but it's seems it is not for me
This sounds like ChatGPT
you should try to learn to code yourself. smods has a wiki on most of the mechanics and if tyou ever need help then just ask here
also bumping again
I have tried but there's mechanics are really complicated that I Wana apply
And tutorials are not easy enough
Yes it is đ
this has the code for all the vanilla jokers
you can copy some of the mechanics from there
also were not gonna help you if you dont even have the effort to write a message asking for help
Sorry for that I have write a message previously but nobody noticed it so I think maybe chatgpt could help
bumping
Hello one and all, how does one do ^mult with talisman? (I think thatâs the dependency needed for it)
You could probably look at the code for jokers that use that
I was gonna look at the cryptid ones but I was told it often does things in weird ways
Again my guidance for you would be to learn how to make jokers
Start with really simple concepts
Learn from those
Build up your skills
There's a decent amount of guidance and people here will help you if you're trying
Asking for people to make things for you rarely is taken well, and while I understand the reasoning behind getting ChatGPT to write a message for you, it kinda worsens your case
Yeah but anything like ^mult is weird enough anyway haha
Actually I was working with a coder at first. He made 2 jokers but then he tosted his laptop and now I am stuck with my remaining ideas just sitting around.
Talisman allows you to return emult I believe, so it doesn't get much simpler
Tho idk if emult is ^mult
Yeah I tried that
And
It removed the buttons from the menu
They just disappeared
maybe you have an outdated version of talisman?
Still, write the message yourself and maybe include info about like
Are you willing to let people use your concepts in their mod instead with credit or are you asking them to make a mod under your name
No I just wanted to play my ideas. It doesn't matter wether you use your name or mine
Maybe idk Iâll try and download it again
Can you tell me the gist of these ideas
I have dm you
Ok sure
I want to make a joker that levels up a hand when sold, but all I've found is how to make it level up when a hand is played
is there like a function I can call to level something up?? or how does that work??
remove_from_deck = function(self, card, context)
G.GAME.hands[Pair].level = G.GAME.hands[Pair].level + 1,
return { }
end,
maybe this actually
nope
Look how cola triggers
And then
bump
If context.sold(or smth idk) do
Whatever the hand lvl up code is
if context.selling_self then
SMODS.smart_level_up_hand(card, "handname")
end
oh
I couldn't find that function in the hand level documentation of the API :v
thanks!!
yeah that works!!
What is the crash
tried to index feild other card a nil value if i rememver correctly
now just add a for loop I guess because I want it upgrade five random hands when sold (might get nerfed to four?? maybe specificially five distinct hands??)
Can you show the full crash
Probably yeah
To the first part
I just realised this logic doesn't make sense, the end bit
#G.consumeables.cards is a number and you're checking if it's a specific card
how would i check for a specific card
G.consumeables.cards[1] for the first card
Also maybe change everything to be an if [logic] then return [I guess true] end type thing
Might make it easier
my goal is to make sure if theres only one card that isnt he fool it will copy it
but if it is the fool it wont work
Any mod i can reference to add suites?
vremade?
Sorry i don't understand
yeah, that's something I know how to do, but all these events I've never worked with before :v
This should be okay? Or in card_key must be a single letter?
im guessing for this its pretty simple
just loop 5 times, pick a random hand (not sure where all the hand types are stored), level it up with the function for that
i dont think it has to but it probably should be a single letter or only a few letters
Oh okay, thanks
looking at the wiki and another mod, seems it can be whatever you want
from what i understand, the key is used when using things like card:is_suit and card_key is used when creating playing cards
Oh okay, thanks so much i'm literally too green to balatro modding so finding things is still hard
I appreciate you all so much, because i know i can be a pain sometimes
you seem alright to me
main advice i could give to you is to look at the SMODS wiki, VanillaRemade and look for mods that do whatever youre trying to do at the time
the balatro mod wiki can be helpful for that last bit
mhmm, that's what I planned to do
actually gonna try to do it now
hiya! i'm making a consumable type that, when used, adds a set of cards to your deck
how can i put the code for adding these cards into the consumable type itself, so the consumables themselves don't need to do that?
does anyone know why this sint working\
its supposed to copy a consumable as long as its not exclusively a fool
what's not working about it?
is it crashing the game?
mm, i can see two problems with can_use
first is that the key of The Fool is c_fool
and second is that you're assuming you can't have 2 Fools
itâs supposed to be the modded fool card
ah
it baidslaly does the perkeo affect
and my goal is to prevent it from working if itâs the only card
ahhh i see
but also work when its in a booster pack and theres only one card
_ _
currently no
but its not usable when thereâs only one cars
ohh i see
you're checking if the card is unequal to the key, rather than the card's key being unequal to the key
try adding .config.center.key to the end
to the end of g consumable cards iâm assuming
yepyep
question, not sure how advanced of a question this is but, which files exactly do i have to inject in order to add a new hand?
ive been losing my mind at this over the last 3 hours đ, i swear i tried everything and nothing works
if you're using SMODS, you can use SMODS.PokerHand :D
...i may just be stupid
ive been messing around with a .toml file btw
nono don't say that :}
:3
also just in case, this is what ive been up to these past 3 hours
[manifest]
version = "1.0.0"
dump_lua = true
priority = 0
[[patches]]
[patches.pattern]
target = "functions/state_events.lua"
pattern = '''if next(poker_hands["Flush Five"]) then text = "Flush Five"; scoring_hand = poker_hands["Flush Five"][1]'''
position = "after"
payload = '''
elseif next(poker_hands["Six of a Kind"]) then text = "Six of a Kind"; scoring_hand = poker_hands["Six of a Kind"][1]
'''
match_indent = true
# Patches in some hands
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
function evaluate_poker_hand(hand)
local results = {
["Flush Five"] = {},
'''
position = "after"
payload = '''
["Six of a Kind"] = {},
'''
match_indent = true
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = '''["High Card"] = {visible = true, order = 12,mult = 1, chips = 5, s_mult = 1, s_chips = 5, level = 1, l_mult = 1, l_chips = 10, played = 0, played_this_round = 0, example = {{'S_A', true},{'D_Q', false},{'D_9', false},{'C_4', false},{'D_3', false}}},'''
position = "after"
payload = '''
["Six of a Kind"] = {visible = true, order = 13, mult = 25, chips = 270, s_mult = 25, s_chips = 270, level = 1, l_mult = 5, l_chips = 55, played = 0, played_this_round = 0, example = {{'S_A', true},{'S_A', true},{'H_A', true},{'H_A', true},{'C_A', true},{'D_A', true}}},
'''
match_indent = true
# i dunno bro
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = "_5 = get_X_same(5,hand),"
position = "before"
payload = '''
_6 = get_X_same(6,hand),
'''
match_indent = true
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
if next(parts._5) then
results["Five of a Kind"] = parts._5
if not results.top then results.top = results["Five of a Kind"] end
end
'''
position = "after"
payload = '''
if next(parts._6) then
results["Six of a Kind"] = parts._6
if not results.top then results.top = results["Six of a Kind"] end
end
'''
match_indent = true
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
if next(parts._highest) then
results["High Card"] = parts._highest
if not results.top then results.top = results["High Card"] end
end
'''
position = "after"
payload = '''
if results["Six of a Kind"][1] then
results["Five of a Kind"] = {results["Six of a Kind"][1], results["Six of a Kind"][2], results["Six of a Kind"][3], results["Six of a Kind"][4], results["Six of a Kind"][5]}
end
'''
match_indent = true
# im going to fucking lose it, why is it not even showing the hand in run info
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = '''create_UIBox_current_hand_row("Flush Five", simple),'''
position = "after"
payload = '''
create_UIBox_current_hand_row("Six of a Kind", simple)
'''
match_indent = true
thank god for smods đ đ
and thank YOU for pointing me in the right direction :D
aww np!
so, I am trying to make a joker that scales for debuffed cards sold/destroyed (I will need to copy this over for sold cards too but that should be easy I think) the code attached is responsible for the scalling, however when I hang maned 2 debuffed cards it also scales once, anyone know why this is happening
yay I got it working
if you're interested, they're stored as strings it seems, so I wrote a little utility function for myself
get_random_hand = function()
hand_names = {
"High Card",
"Pair",
"Two Pair",
"Three of a Kind",
"Straight",
"Flush",
"Full House",
"Four of a Kind",
"Straight Flush",
}
if(SMODS.is_poker_hand_visible("Five of a Kind")) then
hand_names[#hand_names + 1] = "Five of a Kind"
end
if(SMODS.is_poker_hand_visible("Flush House")) then
hand_names[#hand_names + 1] = "Flush House"
end
if(SMODS.is_poker_hand_visible("Flush Five")) then
hand_names[#hand_names + 1] = "Flush Five"
end
return hand_names[math.random(1,#hand_names)]
end
also i just looked at the poker_hand.toml file in steammods and yeah, holy shit thats a lot of work đ, i wouldve been dead (metaphorically) before i figured it out đ
it's soooo much work ;u;
105 lines đ„Č
and a ton of problem solving and balatro source code knowledge thats way beyond my level of patience
context.remove_playing_cards only runs once per removal, even if it's removing multiple cards. multiply the gain by #context.removed
ah wait nvm i see your problem
wont that multiply it by the number of removed cards regardless of how many are debuffed, also I based it of Canio and it works in a similar way (tho it counts how many are debuffed... ok nvm I don't need to keep explaining lol
returning ends the function immedietely. it goes once for the first card, returns the message to upgrade, and stops there
ah
simply use card_eval_status_text instead of returning a message
i mean not 1:1 but, use the function
This might not take modded hands into account though (skimming this)
I am fully bish bashing my way through this I have no clue what that function does or how to call it
take my suggestion with a mountain of salt because im absolutely unsure at all on how hanged man works internally or how card removals work but what if hanged man simply treats 2 cards removed as a single action instead of 2 seperate actions? (if that makes sense)
I don't add any hands with my mod
I guess it's incompatible with other mods then, but I won't worry about that until the mod works with otherwise vanilla
maybe there's an array already somewhere holding the poker hands and you can use that, I'm not sure
try this card_eval_status_text(card, "extra", nil, nil, nil, localize("k_upgrade_ex"))
it works there's just no upgrade text
it is in fact the return, the way the code works is by looking at both removed cards via the for loop
Yeah maybe look at the code for some of the functions to try and find where all the hand types are stored
out of pure curiosity, what argument types are needed for card_eval_status_text? im looking through smods source code and im guessing this is a balatro source code thing and not an smods addition
OHH aight thank you, i didnt notice the for loop because reasons
i cant lie i dont remember the middle 3
the ones i remember are
card to do the animation, type (usually just "extra"), idk, idk, idk, and the message to display
i dont remember exactly but i recommend using SMODS.calculate_effect({message = "message"}, card) instead
stealing that
yeah the three middle ones seem to be weird, in the smods source one of them is percentage sometimes but they dont seem that important, also one more technical thing, why put "card" as the first argument and not self?
i still dont really understand the difference between self, context, and card so im trying to get as much insight as possible
(before i go back to reading the repo again)
self in calculate is the prototype or center of the card so self == card.config.center
self = the center, not the instance of the card
as N said
card is the card itself, self is the generic
it works!
OHHH okay that makes a lot more sense now
yes!
nice!!
you should switch out the return with return pseudorandom_element(hand_names, "seed") to take the seed into account
also i haven't read the whole convo so idk if you need something specific but to do list has a way to pick a random poker hand from all of them
ah of course, thank you
oh righttt I couldn't think of any joker that did that, but To Do list does I guess
I'll look how it does that
i also forgot to change the check in vanillaremade to use is_poker_hand_visible so I'll do that rq lol
hiii, does anyone have an idea of how i can create a joker that will generate a random tag when meeting the right criteria? i cant find any good examples from other mods or the vanilla jokers. any advice?
thank you for the example ! ill look through this
mostly showing the effect so you can ignore everything else
im a bit better thankfully, thank you
anyone got any good examples to figure out shaders from?
what does the string argument of pseudorandom() do??
how to set hand size to one using a joker
what is the context of a joker being sold?
remove_from_deck
does that also count like cards?
oh
probably not self even
dunno :v
ugh
context.selling_card
g is not defined i might suck at it its my first joker so soory
you need to check if it's a joker
it's basically a secondary seed so the random results from your call dont affect other calls
ah, and what does it return?? because it seems like it always just returns whatever is needed, but there are no arguments to tell it the min or max
nor any scaling/modulo stuff to get it within specific bounds
dont put function calls in returns unless you need the value to be returned (in this case you dont), the G.hand line should go before the return
but the yellow G is just a warning, ignore it
a float between 0 and 1
yes, you can also do pseudorandom("seed", min, max)
so I don't need to define the meaning of that string anywhere?? just put in something that makes sense and it'll work
I don't think I do in this case thankfully also how do I get info abt the card sold? like if its debuffed?
or rather, between 0 and G.GAME.probabilities.normal
yeah, usually the recommendation is key of the joker or the key of the joker + ante
https://github.com/nh6574/VanillaRemade/blob/1b4ea069ada01eb25fd41d79e6b951960879f87f/src/jokers.lua
look at Juggler
juggler increases not sets
the card is context.card
tho
yeah
by setting hand size way down the game will then set it to 1 I think
add_to_deck = function(self, card, from_debuff)
G.hand:change_size(card.ability.extra.h_size)
end,
remove_from_deck = function(self, card, from_debuff)
G.hand:change_size(-card.ability.extra.h_size)
end
so this should do what I want?
wait no
this
this
why context.context
also why do you need a whole function to check if a card is debuffed lol
idk ppl I got help from before who are wroking on the same mod told me to use that, I have no clue why
but it should work
can you show me the function, im curious to see what it does
I have 0 clue where it is lol
damn
this basically has the full joker in it
assuming that function works you need to fix the context.context
im curious about creating mods, how would i start?
So does anyone know what causes Joker's sell values to reset at the end of a round sometimes? This is the only time my code calls the set_cost function, but after an indeterminate number of rounds the sell value will just randomly reset.
its not that hard i was worried about for no reason
i make my first joker in just 30 mon
*min
thanks to this community
it works thanks @red flower
idk exactly what but some other things call set_cost, that's why it's not a good idea to modify cost that way
i would recommend hooking or patching set_cost
extra_value is fine to do exactly what vanilla does with it
my friend had an idea for a card where: "if played poker hand is a full house, destroy the cards that make up the pair," but i haven't an inkling on how that would be implemented
could someone show me where to start?
Bump
so i copied the command for displaying the next card , and it should display the card 2 times but is displaying only ones why?
its for misprint
use context.destroy_card to destroy the card, check if context.scoring_name == "Full House" and then you would need to use context.scoring_hand to check the card that repeats twice or context.poker_hands["Pair"] to check for the pairs that make that hand (but I think that would also include the three of a kind)
interesting thanks i'll try stuff out
patch/hook create_UIBox_buttons()
Oki
that makes it twice more likely to appear because it's random, not appear twice
well not twice actually
but im bad at math so lets say twice
so how to make it to show 2 next card
ohhh i get it now
change one of them to G.deck.cards[#G.deck.cards-1]
you will also need to check if the deck size is bigger than 1
i was looking through all the steamodded contexts, and i found a context for leaving the shop but i cant find the one for entering the shop, like the part that says "Cash Out"
does anyone know what that would be?
context.starting_shop
DOING THIS I was able to see 2nd card but i want to see next 5 card at once like a text in row (9D 7S 8D 4S ) like this
how do i check if a card with the same rank is repeated twice?
The effect you want is basically to be able to see the top cards of the deck? Ignore everything else, but this is my joker that has that effect, and all of its effect is just handled in the loc_vars function https://github.com/icyethics/Kino/blob/main/items/Jokers/bttf.lua
Do seals/enhancements only get access to a context if it's also attached to a main_scoring?
what have i replace with question marks
those are strings, they're placeholders for the collection. You can replace them with whatever you want
is there anything in the game that changes rank except strenght and ouija??
no i don't think so
alright
does anybody know how to change a card into a 7?? this is what I'm at now
assert(SMODS.change_base(scored_card, nil, SMODS.rank[7]))
how to check wether you have bought a joker or not
wait.. it's called 'Ranks' not 'rank'
what do you mean exactly??
this is how ouija does it
mhmmm, but that's a random one
I can't figure out what I should put as third argument for a seven
it's likely just assert(SMODS.change_base(scored_card, nil, "7"))
documentation says this
- Examples: `assert(SMODS.change_base(card, 'Hearts'))` converts a card into Hearts. `assert(SMODS.change_base(card, nil, 'Ace'))` converts a card into an Ace. `assert(SMODS.change_base(card, 'Hearts', 'Ace'))` converts a card into an Ace of Hearts.```
no with a "7" works!!
I already tried "Seven"
it doesn't
turned some eights into sevens
oh i guess the rank keys are "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K" and "A" then
no
the ace is "Ace"
what
so I suppose "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" and "Ace"
why is balatro like this
i don't do rank manip like ever and the strength function has a utility function iirc
Means what the condition for checking that you are viewing at the joker in the collection or after purchasing it in you joker slot
Because I want to display different text in collection and after you by it
"10"
yeah, it has its own 'increase' function
those are for prefixes when you set it via set_base
oh, I see
I have no idea
duidnt mean to respond to that message
what SMODS.change_base is requesting is the key of the suit and rank
which is 2-10, Jack, Queen, King and Ace
man fuck ranks
juuuuuuuuuust wondering..... is it possible for every blind for a joker to change artworks?
i will pr smods so it takes "seven" as a valid key
im sevening it
def possible, Cardsauce's Bootleg Joker does this
thank you n' joyousspring
you would use card.children.center:set_sprite_pos (if they're all in the same sheet)
Means what the condition for checking that you are viewing at the joker in the collection or after purchasing it in you joker slot
Because I want to display different text in collection and after you by it
yeah
doesn work
for that you need to use loc_vars and return a key
Explain a little
no
i dont think im good enough at writing to make a tutorial but i might have to do a FAQ for commonly asked questions
sadly vanillaremade doesn't do everything
im trying to make it usable as long as theres at least one card other than the soul
I think I'm forgetting something obvious
Don't you just put your toml files in a lovely folder if you want to patch something
ooh alright thank you
yeah
weird
the patch just doesn't seem to be doing anything then
currently it works with two cards but if its in a booster and theres a single card in the consumables it wont work
maybe the pattern is wrong?
sorry for asking here a lot btw
i clicked extract on balatro so it shouldn't be wrong i dont think
may i see it
As long as you donât sell it
[manifest]
version = "0.0.1"
dump_lua = true
priority = 0
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "local discard_button"
position = "before"
payload = '''
local hold_button = {n=G.UIT.C, config={id = 'hold_button',align = "tm", padding = 0.3, r = 0.1, minw = 2.5, minh = button_height, hover = true, colour = G.C.GOLD, button = "discard_cards_from_highlighted", one_press = true, shadow = true, func = 'can_discard'}, nodes={
{n=G.UIT.R, config={align = "cm", padding = 0}, nodes={
{n=G.UIT.T, config={text = "Hold", scale = text_scale, colour = G.C.UI.TEXT_LIGHT, focus_args = {button = 'z', orientation = 'bm'}, func = 'set_button_pip'}}
}}
}}
print("Test")
'''
match_indent = true
times = 1
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "G.SETTINGS.play_button_pos == 1 and play_button or discard_button,"
position = "after"
payload = '''
hold_button
'''
match_indent = true
times = 1
doing something like
return { dollars = 77 }
in a calculate function should be enough to give 77 dollars, right??
yeah
hmm
not a == b is (usually) wrong, it should be a ~= b or not (a == b)
what does ~= mean??
pattern needs to be the whole line
not equal
oh
i figured it probably wouldn't work because it's a really long line
you can also use regex and add a .* at the end maybe but yeah it should work
when i use a ~= b it lets the card be played even if its the only card
the goal is to not let it be used when its the only carsd
ornqwhen theres no cards
make it do everything
wait why is it red
how do i access the round variables for idol and castle? i want to use them for shattered jokers
can i see how you did it
Its not red
the button is red
G.GAME.current_round.idol_card and G.GAME.current_round.castle_card?
how do I make soul cards show up more
oh it needs to be G.consumeables.cards[1].center.config.key
patch this?
tried to index feild "center" a nil value
im trying to make a voucher that gives 6x weight on tarot cards,
-- TarotMonopoly
SMODS.Atlas{
key = 'TarotMonopoly',
path = 'TarotMonopolyVoucher.png',
px = 71,
py = 95,
}
SMODS.Voucher {
key = 'TarotMonopoly',
loc_txt = {
name = 'Tarot Monopoly',
text = {
"{C:tarot}Tarot{} cards appear",
"{C:attention}#1#X{} more frequently",
"in the shop",
}
},
atlas = 'TarotMonopoly',
pos = { x = 0, y = 0 },
config = { extra = { rate = 24/4, display = 6 } },
unlocked = false,
requires = { "v_tarot_tycoon" },
pools = { ["T3V"] = true },
loc_vars = function(self, info_queue, card)
return { vars = { card.ability.extra.display } }
end,
redeem = function(self, card)
G.E_MANAGER:add_event(Event({
func = function()
G.GAME.tarot_rate = 4 * card.ability.extra.rate
return true
end
}))
end,
}
i tried doing the math and i need 24/28(i think) but idk if putting the rate to 12 will work, vremade has 4x rate on 8 which makes sense cause to get 32 weight its 4*8, im not very smart in math so i dont know
i don't know what i am doing here
if context.before and context.scoring_name == "Full House" then -- you can change before to the timing you want, check the docs
-- your code here
end
:0 Thx!

what I'm gathering is that setting colour doesn't actually do anything
leftmost button is supposed to be green and rightmost button is supposed to be gold
bump
func = 'can_discard' changes the color
oh
so it'll go away when I manually change that
what's the point of adding colour then >.>
dunno
I am so sad I was going to add another mechanic but i forgot
now i gotta remember what i was gonna add

i wonder how that would look with this
anyone know why my game is crashing when i clikc run info?
can i see the screen with the new smods version, is it the same error? also post the entire log
how do you go about getting like, the floor value for money?
i wanna make a card spend money only if you have enough but also work if you have jokers that let you go into debt
this is the newest one rifght
so for a card that's supposed to remove the pair from a full house when it's played, i'm thinking something like this
it triggers when you play a full house but it destroys every card played and in your hand
did you try restarting the run
i started a new run with like three different decks
no idea then it might be a mod doing it
it was talisman???????
so talisman is just broken for now
ughhhhhhh main_start doesnt show in edition tooltips
just check if G.GAME.dollars is above or below whatever value
hi. just rq: how do i check if talisman is enabled?
(ps: also why does it not crash for me and work completely fine without talisman and to_number, but for my friends it crashes?)
gotcha, but unfortunately it doesn't seem to be updating each time i run the function in this
it prints the starting value each time
what are you trying to do?
and what is the error exactly?
no actual error, it just isn't updating G.GAME.dollars each time
so say i start with 14 and try to enhance 4 cards (which should cost 20)
instead of only enhancing the first two, because the money would run out,
it enhances all 4 and sends my money into the negatives
if Talisman
y, im making a mod full focused on Ranma
thx
This is getting increasingly separated from being QoL by the minute
ty
Also: Does anyone know how i can modify a Card UI Object to show a custom text? This is my center generator:
Edit: I've tried making that with localization but I'm unsure what I did wrong
local function fate_card_center(fate)
-- copies center of triboulet
local ret = {}
for k, v in pairs(G.P_CENTERS['j_triboulet']) do
ret[k] = v
end
-- sets internal shit
-- ret.set = 'Fates'
ret.name = fate.name
ret.key = 'f_' .. fate.id
-- gets rarity and fallback sprite x
local rarity = 'Regular'
local fallback_x = 0
if fate.weight >= 3 and fate.weight < 6 then
rarity = 'Epic'
fallback_x = 1
elseif fate.weight >= 1 and fate.weight < 3 then
rarity = 'Mythic'
fallback_x = 2
elseif fate.weight >= 0 and fate.weight < 1 then
rarity = 'Uber'
fallback_x = 3
end
ret.rarity = rarity
-- sets sprite
ret.atlas = 'fates_Fates'
if fate.x then
fate.x = fate.x * 2
end
ret.pos = { x = fate.x or fallback_x, y = fate.y or 0 }
ret.soul_pos = { x = (fate.x or 3) + 1, y = ret.pos.y }
-- removes config
ret.config = {}
-- return card center
return ret
end
in case it gets lost in the sea of message requests i shot you a dm so i wasnt possibly openly stupid to try and assist
thank youuuu
dont suppose anyone has any way of fixing the dynamic text not being shown..
what's the problem
in the collection, the Slime edition shows the randomly changing Xmult
but when its applied to a joker it doesnt
dno idea. sry
works for me
how are you doing it
i think the docs might be outdated because main_start just works
while true do end
guys will this code work i made it using chatgpt
While I'm at it: How can i close the config window and reopen it to update the ui when i press the paste button?
function G.FUNCS.paste_secret()
local clipboard = get_clipboard()
FATES.config.ws.secret = clipboard
if SMODS and SMODS.can_load then
SMODS.save_mod_config(SMODS.Mods['fates'])
end
end
-# also sorry for asking so much
unicode error
im going to explode
function love.load()
G.Players.N.status = 'Beloved'
end
no heart
:(
im going to explode
anyone know a good tutorial for coding in lua in general? (not a balatro based question its just im not sure where to ask)
imo tutorials are overrated. you learn the most by doing. find a small project. ask around. find answers. get better <3
steal someone elses code from wherever, break it apart, learn
thats how i do it anyway
Is there an unlock type for amount of cards held in hand!!!
yeaah its just ive been coding mods for a good amount of time but im not sure where to start to make the game itself yk? there is a lot of thing i dont have any idea how to start making
If no then do I necessarily have to put something in my arguments or would just putting if #G.hand.cards >= x make it work
hi, is there. a collection of sentence that the game joker always tell you? I mean the ones when you loose, or a list of all his dialogs.
found this in the localization files
open up balatro in something like 7zip and go localization>en_us.lua>line 3903
that's where it starts
bumping this desperately
then the tutorial is from lines 4012 to 4196
okay, im having a little trouble with this lmao
lets say i want to do this for the ancient joker (Each played card with [suit] gives X1.5 Mult when scored,
suit changes at end of round)
how would i change the joker's sprite so that it shows which suit it is in the image (assuming i have a image sheet like that)
cause right now either whenever i hover on the joker, the sprite disappears or crashes
how do I create a fool specifically??
I thought this
SMODS.add_card({ key = "fool" })
but that doesn't work
"Fool" doesn't either
oh ok, thats more complicated look at how the Aura mod does it with Castle
key would be c_fool iirc
oh..
i take on way too ambitious ideas lmao
alrighty that worked, thanks
thatll be 37 dollars and a mcflurry
my problem is that i try to interact with vanilla stuff the least possible amount in my mod so any questions about editing vanilla stuff (specially texture packs) is usually out of my wheelhouse lol
Bumping this fella!!!
did anyone make an automation script to merge images into atlases or everyone just "suffers" with them
do you mean like
spritesheets?
could name it like that
personally i makwe my jokers striafght on the spritesheet
i dont mkae an individual joker amd combine it onto one spritesheet
Use this free tool to make a sprite sheet for your Unity game and optimize performance for your 2D game.
i put each joker as a seperate frame in an animation and just export it as a spritesheet
guess who's back >:3

looking to work on implementing these again
aw damn lol
i think im just gonna make this 1 joker⊠4 seperate jokers.. it would be easier for me and it isnt like a crucial thing that it NEEDS to be 1 joker
these packs have a few cards each, and they tell you what's in them
oop sorry i was making food lol, here
i'll be implementing them as a consumable type that adds them to your deck when used
i'd like to have some code that handles this within the consumable type itself, or something that applies to all of them
however, SMODS.ConsumableType doesn't allow for this
would having something that adds this code to each of them work?
is there a better way of doing what i want to do?
no idea, honestly
i copied misprint's code and it worked in the info_queue just fine
are you using loc_txt or a loc file?
a loc file
no idea then sorry
Hmm, does calculate not work on stickers on playing cards?
strange, it works on the info queue for the consumable that applies it, but not the joker it's applied to
the tarots in my localization file dont work
oh oops i didnt check for that lol
yeah it might not work for me either
Wait I bet it was using individual nvm let me see
OH!! oh my god this actually works what
did i just code something complicated on my own :OOO whatttt
đ„ș đ
if i were to put this in my joker's code, then this would make the variable's selection be itself right?
local chosen_joker = card
yeah
yes... good...
Can someone teach me on dm How do I make a mod so I can change the skin of the playing cards? In total there will only be 4 sprite sheets, 2 HC and 2 LC, It could be through Malverk or an independent mod, I just need guidance on the codes I need to type âđ
semi-related question, i can see that copy_card uses strip_edition, but unless i missed it i'm not seeing anything for ADDING an edition. is there a param that does that or is it something id have to do separately with like set_edition?
the last thing
id cry if i didnt actually understand how to do that
you know how Marble Joker puts its Stone cards in the middle of the screen for a bit, before adding them to the deck?
is there a way i can do that using the SMODS API?
i am doing it well?
you missed a comma after pos { ... }
and i'm gonna presume you missed an end after the if statement's end
no, but you can look at how vanillaremade does it, i simplified it a bit
yeah, also im figuring how to do it so all the cards in the played hand gets the same suit as the higher card
could you shoot over a link?
you emplaced it in G.play
ough true
no thats correct
ough true
return doesnt work in a consumable
OH gotchaaa
lemme try that now
still stuck -u- i don't know if i can do this outside of a round
[which, i did that]
can i see the code again
hmm yeah no idea
oh yeah a used consumable goes into g.play too
dfgjnjkgndfj sobbbbb
is there a way to dissolve the consumable before it adds everything?
but not destroy it?
i.e. remove it from G.play
ill give you another idea: add nil, stone_card to draw_card
whereabouts?
what if you use SMODS.add_card instead of SMODS.create_card
as the last 2 arguments
gotchagotcha
that wouldnt change anything
unrelated consumable question:
does anyone know if consumables share the same rates as their packs?
e.g "do both planet cards and planet packs use G.GAME.planet_rate?"
i dont think so
okay better! but the stone card wasn't added to the deck preview correctly, and the limit wasn't updated
idk i had a similar problem and i fixed it somehow, one of the steps was switching to add_card
this is the code i ended up with
local card_1 = SMODS.add_card { set = "Base", edition="e_polychrome", enhancement = "m_steel", seal = "Red", front = "S_J", area = G.deck }
local card_2 = SMODS.add_card { set = "Base", edition="e_polychrome", enhancement = "m_steel", seal = "Red", front = "S_J", area = G.deck }
G.E_MANAGER:add_event(Event({
func = function()
card_1:start_materialize()
G.GAME.blind:debuff_card(card_1)
card_2:start_materialize()
G.GAME.blind:debuff_card(card_2)
G.hand:sort()
return true
end
}))
i think add_card was for updating the number under the deck
uhm
<@&1133519078540185692>
yeah i think add_card does solve that
for FREE?
will try
cause this is for cards right
so where the heck do they do the rate stuff for boosters?
(this is game.lua)
ooh!! so the effect that adding a delay had was me getting to see the pack moving to make way for the card
but now the card is drawn face down
i think its because it's added facedown to G.discard with add_card
try create_card with this
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
stone_card.playing_card = G.playing_card
table.insert(G.playing_cards, stone_card)
I think boosters just use the weight value they have
don't ask me where in the code it is done tho
ConsumableTypes don't add your mod prefix to the key by default
yip is my mod prefgix
ConsumableTypes don't add your mod prefix to the key by default
yip is my prefix
you need to take out the prefix
it ook it oyut and i still borkes
How would I go about making a sticker render a card differently? Is that possible
Take it out in ONLY the consumable type. Keep it for the consumables themselves
can i see the code
Im sorry but seeing the same messages typed twice in a row back and forth made me freaking lose it
I chortled
i mean i copied it for comedic effect so thanks
Youre a silly fella
can you send the whole file
WHAT DID I DOOOOO
WHAT DID YOU DO đ
i think this is as a result of me not knowing very much about what these specific functions i'm working with do
have a gander ^u^
what is that theme
(sorry i wasnt home)
so to change the appearance rate of certain packs, id have to patch? or take ownership?
ah, this one is called Acid Purple
link :?
yes pls
it comes with Visual Studio Code iirc
no idea, are you sure the modprefix is correct?
Bump
OHHHHHHH IT GOT WORSE
100% sure
i know im confused too đ đ
mods
<@&1133519078540185692> get him
throw this guy into the stratosphere

yeet
Yote

cardsleeve is trying very hard to get the card
thank you fort your isuness
Donât take this one from me đ
It really wants the deck but also the card đ
Like damn bro pick one 
i THINK i almost got this, i only need to turn every scored card once i do a Full Hosue, any tip?
remembered by_kind existed
will this work or no?
I'm going to make a mod but idk how to create a joker function in the first place
I'll just sample everything from other mods
lol
How can I display the contents of a table of strings?
why isnt this hook working? i'm trying to track the amount of money spent during a run
what should i do then
that's in the original function and im not sure what to do instead
i dont really know what it is
if mod < 0 then dollars_spent = dollars_spent - mod end
return dollarsspent(mod, instant)
How do I create a Black Hole? Finding vanilla keys is hard.
c_black_hole id guess
loop through context.scoring_hand
i'll try, thanks
You should also get the VSC Lua Extension
Storing a list of hand names, and want the card description to show them
you need to loop through each string and concatenate them or something like that
reposting this â why is this happening if the pack tries to spawn multiple cards?
Found the key, but it still doesn't spawn. Is there another issue with this code? I copied it from vanilla remade cartomancer.
i dont see anything wrong there but it's weird that the context check is inside another check so maybe the problem is in the first if statement
unless the message does appear
Oh, I left some checks that weren't supposed to be there
so when the card scored it adds 10 to the chips but it doesnt score the chips (also the sound doesnt work
holy shit lum catsareliquid??
this doesn't seem to work either
shot in the dark because i have no idea
maybe for i = #all_cards, 1, -1 works?
Maybe??
Where do I find my localization files?
unzip the balatro.exe
i'm trying to have a joker index the lowest rank in the deck, but the game crashes in the elseif firstcard then check with attempt to index field extra (a nil value)
i have card.ability.extra.currentcard in loc_vars
why isnt it adidng the chips
you have _, card in the loop which is overriding the card argument
ah okie
what other issue was there
the last added card sits in the middle of the screen, and the game is softlocked
remove the cardarea check
context.before does not specify a card area
FUCK
oh i think this is an event order thing, try adding that event at the bottom inside the bigger event at the top
i needed context card area becuase now it checks the entire deck
which? the second or the third?
????
it doesn't
rightright
I wanna make a mod how do i
wait is this for an enhancement
just check for the card's card area then
like the card itself
modding starter guide #1349064230825103441
card.area == G.play
it does though
it goes through the deck and scores the cards in the deck
even in discard
didn't do anything
well yes because it runs for every card
context cardarea isnt gonna do anything
because its not specified
the only times it is specified is during context.individual
code is currently
it goes up to like 200 chips cause it checks every card in the deck and it just goes right back down to normal amount (MINUS BONUS CHIPS) after
i think they still need to be in an event
okay so
you removed the event around them, they need to still be in an event inside that event
sorry events are complicated lol
it applies the estxtra chips (including the ones inside of the deck and the discarded one) and when the actual card scores it just resets
sorry did you try what haya sent or
Is this a good start or is this very wrong
does anyone know or know where to find how to add how many times you played a certain rank card? (this code is pretty dumb)
if that doesn't work i have no idea lol
Is this a good start or is this wrong
i dont think there's a variable for that? i might be wrong
you need to keep track of that yourself
ok đ
nothing changed ;u;
you dont need to post it twice đ
you have an extra } in loc_vars
other than that it looks fine
I don't see any extras
Or is it the only }
I'm not good at lua I have no experience
I'd rather learn java lol
hkl.ESDC SDfjbnmhrsBFGhjkv
that } shouldn't be there no, it's not closing any {
i wanna try creating a voucher that changes the reroll for retcon from $10 to $5 but i know its in a function, how can i change that function from my mod?
man this show is so entertaining, 10/10
Do I get rid of it or add an opener?
when i focus OUT of teh window it starts recording
get rid of it unless you need it
config = { extra = { rate = 24/4, display = 6 } },
unlocked = false,
requires = { "v_tarot_tycoon" },
pools = { ["T3V"] = true },
loc_vars = function(self, info_queue, card)
return { vars = { card.ability.extra.display } }
end,
redeem = function(self, card)
G.E_MANAGER:add_event(Event({
func = function()
G.GAME.tarot_rate = G.GAME.tarot_rate * card.ability.extra.rate
return true
end
}))
end,
}
does the math seem right for the rate?
you probably need to patch/hook G.FUNCS.reroll_boss_button, G.FUNCS.reroll_boss and create_UIBox_blind_select to change the 10s to 5s
dang, idk how to do that but ill try
If I want to make the Xmult change from a variable do I add a variable like
loc_vars = function (self, info_queue, card, xmul)
xmul = 1
end,
-# gackt we can't have 2 things with the same name
and then put the variable in here?
what's the ultimate goal?
itâs just supposed add chips to the card, apply those chips, and ghen nothing else
but as you can see e
itâs doing all of that
To make he joker gain +1 xmult every hand played and -1 xmult every discard used
well, i have good news
this is the code for green joker
from the main game
it does what you want but with mult instead of xmult
i cant even begin to debug this
i can help if you reply to my earlier question
how can i change the amount a booster pack can give?
I'll just make it only go up lol
How hard could it be for a noob? đ«
one of yours or a vanilla one
both
so dynamically?
sure i think
if it's for a voucher or something you probably need some patches
sadly a lot of vanilla things are not made to be customizable lol
dang, unfortunate
about doing what haya asked?
yes
What's the context for hand played?
there are many, green joker uses context.before
im not 100% sure howe to do that to be honest
add card.area == G.play instead of the check you had before
my obs wasnt working
okay so the issue is that the chips are applying and everything but right at the end it resets to the normal amount of chips
wdym, like the message?
because the message looks wrong
no
What's this
it will have the extra amount of chips on the right
and then when the card scores the chips reset back to the regular amount before all the extra chips
did you define an atlas
yes
right of what
that's the left
Where do I put the path
but yeah that's what i meant, is the message on the card what's wrong?


