#đ»ă»modding-dev
1 messages · Page 457 of 1
You can add a shop_rate value to SMODS.ConsumableType objects iirc
oh, was just me doing that wrong
maybe that works yeah
works but does it for every card, i only want it to select 1 card, either a booster or a joker
wait did G.deck.cards check all cards or only the ones currently in deck?
all
uh, oops
@snow vale do G.playing_cards instead i thnk if it doesnt work properly
your code is affecting both areas
yea this
yeah i want it to randomly select either boosters or jokers, and then select 1 random card
đ I forgor
i forgor how to randomly get something out of table
pseudorandom_element(table, pseudoseed('seed'))
is there a way to reference a consumeables cardarea after it is used? from what i can tell used consumeables dont have a cardarea but im looking for a way to check where it was used from
i must do it so it only happens after each hand
how do i fix it brother
either missing end or spare one
o
what context do i use so it only triggers after each hand played?
wdym? the consumable cardarea is on screen at all times
I dunno if I messed up somewhere Iâll send the code in a bit
i mean after its used, the consumeable's card.area seems to be nil
at least i think
so i cant use it in its use function
well its not G.consumeables
where are you checking exactly
check the smods wiki for all contexts
whats the code that makes cards with editions shake and make a noise
ik
first i tried in the use function but now im trying to hook Card.remove
within which self.area is not G.consumeables when the card is used
but it is if the card is sold instead
i want that but with the reroll noise instead
i dont feel like digging in source rn i wanna ask aorund first
card.area in use also wasnt G.consumeables
when creating a new edition you can add the argument "sound" and that's where you set up a custom sound (it's on the same layer as config, loc_vars, etc)
have you tried this area argument
im not making an edition though
im making an item free
i want it to do the same thing as an edition sound but with the reroll noise
true, but when i try juicing the card it doesnt work
tried with a delay, still doesnt work
unless i need to make it in an event delay
in this area would replace card.area i presume
is there any alternative to overlay_menu? i don't want the ui to take the entire screen
btw if anyone wants to update to the new probability stuff before the next smods release: https://github.com/nh6574/VanillaRemade/pull/20
there wouldnt happen to be a way to check if it was highlighted in that area would there
i mean if it was used then it was highlighted unless you do some Handy stuff
anyone?
help
return {
vars = { card.ability.extra.mult }
}
end,
calculate = function(self, card, context)
if context.individual and context.cardarea == G.play and not context.blueprint then
if SMODS.has_enhancement(context.other_card, "m_stone") then
context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) +
card.ability.extra.mult
return {
message = localize('k_upgrade_ex'),
colour = G.C.EDITION.BLUE
}
end
end
trying to give stone cards a permanent +2 Mult
but it gives chips instead
perma_bonus is chips
use perma_mult for mult
thats stupid
but alright
thanks
its because of bonus cards i think
bump?
found it i think
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = not immediate and 0.2 or 0,
blockable = not immediate,
func = function()
self:juice_up(1, 0.5)
if self.edition.foil then play_sound('foil1', 1.2, 0.4) end
if self.edition.holo then play_sound('holo1', 1.2*1.58, 0.4) end
if self.edition.polychrome then play_sound('polychrome1', 1.2, 0.7) end
if self.edition.negative then play_sound('negative', 1.5, 0.4) end
return true
end
}))
how would i get this hook not to ignore consumable slots but still ignore price?
@gilded blaze (do note im using Finn's Code for this i have no idea how to code myself so...)
oh btw the if condition is wrong, find_card always returns a table
you need next()
oh that fixed it for whatever reason
now to figure out where the voucher and booster pack checks are
it's not like I can debug stuff on phone
I'm highlight card before usage
Because I need some UI which appears only when you highlight card to find proper function to execute
oh
there's add_card and create_card but is there something to destroy a card?
start_dissolve()
its a method
:start_dissolve()
is there anyone else that knows about this?
SMODS.destroy_cards(card)
it's a new function
does it work the same as any of the two card-creation functions (with a table)?
no, it takes a single card or an array of cards
ERROR said that expecting { in 1260
but i already closed it
oh wait
ffs
I(U*(WYGDUHBJXNS:L
fixed
pls stop using card = card
whys that
at best it doesnt do anything
filler episode
@red flower question
if its inside of the return
its "sound ="
but if its in add_to_deck
its "play_sound ="?
play_sound()
whats the sound definition
definition?
like the code for SMODS.Sound
hmm no idea
that is stupid
where is the file
oh wait
N' i have an issue with one of my jokers, its basically 6th sense but u play 4s to get the coffee consumable, yet the consumable which multiplies coffee jokers crashes the game when i try use it but this shouldnt even be effected
key = "joker28",
blueprint_compat = false,
rarity = 2,
cost = 6,
calculate = function(self, card, context)
if context.destroy_card and not context.blueprint then
if #context.full_hand == 1 and context.destroy_card == context.full_hand[1] and context.full_hand[1]:get_id() == 4 and G.GAME.current_round.hands_played == 0 then
if #G.consumeables.cards + G.GAME.consumeable_buffer < G.consumeables.config.card_limit then
G.GAME.consumeable_buffer = G.GAME.consumeable_buffer + 1
G.E_MANAGER:add_event(Event({
func = (function()
SMODS.add_card {
set = 'coffee_jar',
key_append = 'joker28' -- Optional, useful for manipulating the random seed and checking the source of the creation in `in_pool`.
}
G.GAME.consumeable_buffer = 0
return true
end)
}))
return {
message = localize('k_plus_coffee_jar'),
colour = G.C.SECONDARY_SET.coffee_jar,
remove = true
}
end
return {
remove = true
}
end
end
end
}
``` the code has too long a line to take a ss
but why is is detected by my consumable
the consumable
whats the crash
Hey, i'm new to making mods on balatro, does anybody knows how can i make simple mod (or knows mods that actually do that) to modify the phrases Jimbo says when you lose a game? Thx!
extra a nil value on line 20 of the consumable
not every joker has an extra
(v.ability.extra or {}).coffee
also i think coffee might be too generic
wym
if any other mod has a coffee field then it will get detected too
check pinned in #âă»modding-general
oh true i guess i could change it but ill change it when i get to it
for now it should be fine
thx
here's the code btw
How do i go about checking if the player owns a specific joker and that that joker isn't debuffed? I'm trying to make a joker that prevents glass cards from shattering, and my initial thought was to take ownership of the glass enhancement and change the calculate function to only destroy if the player doesn't own the specific joker
ok all fixed i might change the word coffee to coffee and a few numbers
bruh
oh
next(SMODS.find_card("j_modprefix_key"))
has that been there the ENTIRE TIME?
im having a problem. i have an enhancement that breaks itself at end of round```lua
calculate = function(self, card, context)
if context.end_of_round then
SMODS.destroy_cards(card)
end
end}
And a seal that creates two copies of the card with it ```lua
if context.remove_playing_cards then
for i = 1, #context.removed do
local _suit = context.removed[i].base.suit
local _rank = tostring(context.removed[i]:get_id())
if context.removed[i].seal == "shoomiminion_seal" and context.removed[i] == card then
for l = 1, 2 do
local copy_card = copy_card(context.removed[i], 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
end
end
When a card with the enhancement and the seal is destroyed the game freezes and crashes without giving error message. Whats wrong and how could i fix it?
why does negative mult make the mult box go empty and is there a way to fix it
im looking through the code and i just cant figure it out
you think its possibly infinitely creating and destroying the card
i havent read the lower code but i imagine it's creating copies of each card and then immediately destroying it again because it's still end of round
does this also take into account debuffs on the joker?
yes
you need to add , true if you dont want it to
sick. thank you 
oh yeah thats probably it, thanks, i think i know how to fix it, if not i'll probably ask here again lol
Hi, is there a possibility to know where to find information similar to how to check which rank has the most cards in full deck?
if context.end_of_round i think
thank
you mean intellisense
noon
Balatro autofill would be nice
whatever
hi dilly
hi hyper my goaty woaty bestie westie

you freaking despise me
yea well today is january
why?
Wait no I actually havenât eaten am I stupid
we're having the same problem rn
lmfao
do you change the increase variable
no
can you send the full code
i could make u food
are you trying to win me over
because itâs working
how can i debuff a card?
always
whats ur fave food
quesadilla
in general or do you need something specific
i want a blind that debuffs cards held in hand
i dont think ive ever in my life made one myself aside of those that are pre made, but i could give it a go
awesome
Contribute to nh6574/VanillaRemade development by creating an account on GitHub.
I saw I was just reading
all good
so uh, how can i debuff that specific card? (context.other_card)
there's no blind that does so
oh uhhh
just appened .debuff
context.other_card.debuff = true
wdym
N my goat
there are plenty of blinds that debuff specific cards
vanilla
yes
i mean
in vanillaremade
through calculate
yes
which
because what if they mean a SPECIFIC card
it does this
ik
i thought they wanted it for all held in hand cards
then
you made the sandwich
a sandwich would slap rn
help
im still waking up
yeah ik i have discards but
Hi Dilly!!! good morning
i mean
winter you beauty how are you
bashing my head against a wall on a weird quirk of this joker scaling feature
itâs almost 2 pm for mâomg my glorious queen winter hiii I am forever in your debt đ§ââïž
i feel you i often bash my head as well
i believe youll figure it out cause youre such a smarty
like the candy
did you try printchecking
-# smartie
ye
thats it, no candy for you
Oh hi hi!!! Also lots of people are complimenting me today 
its cause ur so awesome and perfect
i forgot to yesterday
can I still get the quesadilla
would u still eat it even if it doesnt turn out good
was it made with love
i would presume so i always cook with love
then consider it eaten
hell yea

beyond awesome
is it ur favorite game
second favorite
whats your fave
how can disable consumeables?
âŠelaborate
ohhh youre just doing blinds ok
uhhhh i think youâd have to hook into the consumableâs use function?
and check that the blind isnât this one
what's the function?
use
Card:can_use_consumeable iirc
and what parameters does it have?
where?
card.lua probably
make sure youâre looking in the lovely dump
does this add multiple times at end of round
I was about to ask that
What how
Bizarre. Weird. Unheard of
i want it to be normal, and often heard of
please be your code instead of smods
shouldnt, crashes
whats the crash
erm this implies any code winter has written to be anything short of perfect
It most definitely is
programmer law unfortunately overrides aura
im a frayed knot
after all Im amazing yet it took me weeks to finish this single joker 
it took me ages to get ym secret service working its okay
not working, what's wrong?
G.GAME.blind is a table
e
ok well g.game.blind iâ
then how can i check the blind?
G.GAME.blind.config.blind.key i think
okk
can you use context.before and context.cardarea == G.play for jokers? i'm trying to make it work but it doesn't do anything
N how are you today
can you send code
im not working so im good
Well thats not before
:D
N did you do tags in vanilla remade?
remove the cardarea check
no
you mean not yet
i dont think i will do them
i mean i have three contexts which should work though?
if anyone else wants to they can pr it
I mean also remove the cardarea check
all three contexts work but simultaneously
which isn't really what i'm looking for
what are you trying to do?
i'm trying to get three different contexts for before it scores, when it scores and after it scores
which SHOULD be what i've done as per the calculate documentation
so before, joker_main, and after?
just use events then?
right
add delay ykwim
yeah i get it
are you sure itâs the same time and not like incredibly fast ?
i mean it's probably like one tick of delay between each context
let me check
yeah no it's at the same time
hand increase is nil
not home so i can't get you an exact image
did you reload the run before testing
i did
i defined something outside of the code i showed

i'm so silly
what is going wrong here
i cant figure it out
wait wtf am i doing
thats all wrong
im stupid ignore me
SMODS.Blind { -- The Singular
key = "singular",
dollars = 5,
mult = 2,
pos = { x = 0, y = 23 },
boss = { min = 9 },
boss_colour = HEX("6a3847"),
calculate = function(self, blind, context)
if not blind.disabled then
if context.debuff_card and context.debuff_card.area == G.jokers then
if context.debuff_card.config.center.key == "j_blueprint" or context.debuff_card.config.center.key == "j_brainstorm" then
context.debuff_card.ability.para_singular = true
return {
debuff = true
}
end
local jimbos = SMODS.find_card(context.debuff_card.config.center.key, true)
if #jimbos > 1 and context.debuff_card.config.center.key ~= "j_chicot" then
context.debuff_card.ability.para_singular = true
return {
debuff = true
}
end
elseif context.press_play then
for k, v in pairs(G.jokers.cards) do
if v.ability and v.ability.para_singular then
blind.triggered = true
end
end
end
end
end,
disable = function(self)
for _, joker in ipairs(G.jokers.cards) do
joker.ability.para_singular = nil
end
end,
defeat = function(self)
for _, joker in ipairs(G.jokers.cards) do
joker.ability.para_singular = nil
end
end
}
``` why no trigger matador \:(
also btw you don't have to reload the run you can just delete the card and spawn a new one in
i mean you still missed the typo
How can i make a joker draw three extra cards from the deck when scoring a specific hand?
no I didnât
i know, but it's the easiest way to explain it
Is there a config key for making an entire deck have a specific enhancement on SMODS.Back?
I'm looking for something sorta like how there's the config.jokers key where you can define a table of jokers you start with on the deck
but YOU would have missed the typo
you see the typos
G.GAME.blind.triggered = true
i think instead of blind.triggered no?
This is like telling me theres something wrong with this orange and then revealing itâs because itâs not an apple
(The apple is in the other room)
bumping this
that effect sounds fun actually
if the declaration is the correct way, everything below is a typo, therefore the typo is what you see
is it possible to do though i'm tryna figure it out
lemme know if you find anything
except you never showed the declaration
if context.before and next(context.poker_hands['Flush']) then
for i = 1, 3 do
draw_card(G.deck,G.hand, i*100/hand_space,'up', true)
end
end
?
i would look at crytid but i don't remember any joker doing something like this
Oh??
lemme try this
yeah Im pretty sure cards_to_draw is for blinds
YEAH i figured lol
Try togaâs thing they know stuff
ahhh
Or replace the draw_card with SMODS.draw_cards(3), actually.
Literally just saw the function when you said this I was about to come in
why is such a simple task hurting my head
can someone send the joker (normal and maybe legendary) and tarot image templates?
i want every card played of the basic suits to grant +3 mult when played coz im adding another suit later but i cant get it to load
ahhh thats why i got an error
https://github.com/balamod/aseprite-balamod-extension
also this maybe
why isnt this working
yeah, but you still saw the typos
only you would know theyre typos, you have more information
idk whats being talked about so im deciding you are both wrong and i wont tell you why
since ur here can u help
Im getting ragebaited and falling for it
repeatedly
are you crashing or smth or is just nothing happening
nothing happening
based tbh
are you just getting +3 mult per suit or something?
whats the idea of the joker
sounds like something a person who missed a typo would say
simply dont get baited by rage, get happy baited
but
but you missed the typo
yeah the issue was that i forgot to restart the run lol
card.ability.extra.suit is a table of suits here
that is true
i believed in you for nothing

so what you are doing is context.other_card:is_suit({"Spades", "Hearts", "Clubs", "Diamonds"})
is it not suppose to me
...what
what
what
i feel stupid
says the person who just missed a typo
oh, i think i understand what you mean now
my brain is fried
sorry, it should only be a string, not a table
it should be something like context.other_card:is_suit("Spades")
ohhh that's what they meant?
yeah, maybe
i want it to recognise all vanilla suits
muahahaha
so when i add my own later it wont effect it
why not just check for it being not a modded suit
then you want to iterate through card.ability.extra.suit
Hello people who dev
hi heaven
coz i dont have the modded suit made yet
everyone else said hi so bye heaven
me either
...make the modded suit first đ
or just do bepis' idea then
im not smart enough for that rn im taking it step by step
how dod i do bepis idea
your turn
if context.individual and context.cardarea == G.play then
for _,suit in ipairs(card.ability.extra.suit) do
if context.other_card:is_suit(suit) then
return{
mult = card.ability.extra.s_mult
}
end
end
end
nice
danke
smods.change_base no?
Sure iâll try that

are you sure

Wrong order đ
dude i thought i first got hit with the are you sure and i was immediately second guessing myself
stay up like i did
i went to bed at like 6
He looks spanishđ
bepis why are we 12 hours apart
dilly im sorry but i literally cant bring myself to follow your path
you hate me
Not quite imo lol
crying int he club rn
same goes with squid and dilly (i think?) too, actually
kinda a shame since yall are awesome to talk to
i am CST
Mamamia
so ye 12 hours
rip
this implies nolan is italian
TRUTH NUKE


true...
curse yall and your nitro privileges!
what the fuck
well s on line 15 which is mult = card.ability.extra.s-mult has a nil value
...s-mult??
use _ not -
toma what the fuck đ

oh shit
so its your fault 
i got it wrong, sorry

in my defense i typed it on discord
we all make mistakes
unless youre metherul
damn thats rough
anyone notice how he is wearing the spare trousers
true...
i forgot annoying orange wait
CAN YOU ALL STOP
lmfao
nvm it's maxed
we did it chat we won
the excess had to go someI FORGOT ABOUT SUPER REACTS
whatcha got there buddy
average clippy experience (annoying asf)
looks like you got a win button there pal
Every card đ gives 1.5xmult is insane
yeah that's how steel works 
You'd need to make every card Steel and have the Hyperlink Seal to trigger held in hand abilities when not in hand.
This is definitely what local thunk wanted
...what is this triggering
G.discard
oh
do you tihnk localthunk will update the game to fix the consumable spelling
therefore breaking everything
wait is it going through G.playing_cards?
Nope
likely no
I thought so yeah
i think instead of modding i will procrastinate and play the hit video game dead by daylight
get back to work
ive been playing numerous incremental and idle games
isntead of working on yggdrasil like i should
:3
okay so after i added the code and all that i tried changing the table and then i got a crash, and the game still isnt granting mult per card
you mean instead of sleeping
whats the code
G.play, G.hand, G.deck, G.discard
oh
whats the crash
sorry ive got myers grinding to do!
one day i want to add minesweeper and snake but i tried for about 32 seconds before giving up for now
Yoo who can help me
I want to know
Can I for example
Remove certain aspects of certain decks
So the text doesn't show
And the effect doesn't apply
Can I do that in the code logs
this is the only way i didnt get a crash
and its args a nil value
thats the crash
wait what am i doing the ijiraq works now i can mod for fun again (/hj)
modding is not meant for fun
Modded decks
youre doing it wrong
thats what i do it for
Checking for context.other_card existing first?
I do it to feed my kids
does this not crash at all
modding is meant to make you mad at everyone and then make them mad at you
it could be that actually
do i change suits_pural to suit
shouldnt it always exist in context.individual and context.cardarea == G.play đ€
yeah that's what one of them
is for
hi somecom
somethingcom
i meant the shorthand
i see i see (i said smittcom)
fair
this is not out of the ordinary for you
hi smt
i dont know how to feel hearing that
like bepis
:bepis:
wait i have one of those
:bepis:
i have a dilly emote
oh you do?
wait so why is my joker not working
it is literally my face
đ

hang on ill dm it to you
dihlatro my goat
the d stands for dilly
...
is this new
or
did you create that before i talked about it
i forgot i had it
since the pfp
its cause im so cool
im concerned about why you created that
so i could say 
in what circumstance do you even use that.
is that a fucking bepis
i should make an emote of everyone here
"damn i want a can of bepis rn"
:
can of wd40 emote
bepis when are you makign the modder yearbook so we all can sign it
i have the gif if you want it
by the end of this year, trust
đ
wait were you doing that that sounds awesome
yeah i think thatd be nice
out of sheer reaction i almost replied with the tow mater gif of 'i want you'
are you gonna do most likelies
i sugfgested it to bepis =]
oh my//
good job
bepis go to SLEEP
o7 o|
wait bepis can you feed my cat
i can give it some bepis
wait bepis can you feed our @sonic cedar
YOU were supposed to feed me
awesome
you threw it away i literally watched it
...i didnt know that was the food...
my honest reaction
this is an unedited image
what the actual flip and freak man
profanity is crazy
moderators explode dilly
i fixed the joker
yes context.other_card existing first was the answer
does anyone know what the card area for the deck view is? and when you click on one does it become G.cardarea.highlighted[1]?
how would one add the blueprint compat indicator to a joker?
...that's not exposed, I think.
it's local to the function that makes it and also you cant highlight cards in it
in spite of u i won my game
oh, thanks!
so you wouldn't be able to tell if a card in the deck view is clicked? (without some crazy hooking)
a few issues I've run into with my code, any helps appreciated
When I destroy multiple clubs/spades, it only adds .1 rather than .2 (for destroying 2 of them)
Then when scoring it doesn't trigger on heart/diamond cards
Canio is there for the example of destroying 2 cards adding +2x rather than just +1x
speaking of that does anyone know what function is called when a card is released from dragging?
maybe the context I got is wrong?
Card:release?
would it not be in card:click?
is clicking the same as releasing the click?
well no but would it not check for if not click?
ohhhh
but idk maybe its also called on release ill check
it works!
nope, its not even called when you click on the card for too long
Card.stop_drag?
is there a way to add an edition for a joker in this joker's calculate function?
does set_edition work here
np!
i might be blind, dense, or both, but how do i get the current amount of chips when the context is final_scoring_step? i've been staring at the docs for smods for 20 minutes at this point and still cant find anything
args.chips and args.mult
hand_chips
how can i check the current deck being used?
G.GAME.selected_back.effect.center.key
thanks!
is it in context, card, self or something else? ("in" meaning e.g. joker_main is in context (context.joker_main))
sorry if im asking dumb questions im tired
No, it is just hand_chips
it's a global variable
thanks
i tried doing this inside the joker but doesnt seem that it works
oh lmao mb
i changed everything to selected but it still doesnt reroll the objective and reward when im hovering over the joker and press z
Is it possible to dynamically change the texture of an enhancement or joker?
Yes.
Thanks. How would i go about doing so?
card.children.center:set_sprite_pos({x = number, y = number}) if the textures are on the same atlas.
SMODS.Blind { -- The Singular
key = "singular",
dollars = 5,
mult = 2,
pos = { x = 0, y = 23 },
boss = { min = 9 },
boss_colour = HEX("6a3847"),
calculate = function(self, blind, context)
if not blind.disabled then
if context.debuff_card and context.debuff_card.area == G.jokers then
if context.debuff_card.config.center.key == "j_blueprint" or context.debuff_card.config.center.key == "j_brainstorm" then
context.debuff_card.ability.para_singular = true
return {
debuff = true
}
end
local jimbos = SMODS.find_card(context.debuff_card.config.center.key, true)
if #jimbos > 1 and context.debuff_card.config.center.key ~= "j_chicot" then
context.debuff_card.ability.para_singular = true
return {
debuff = true
}
end
elseif context.press_play then
for k, v in pairs(G.jokers.cards) do
if v.ability and v.ability.para_singular then
G.GAME.blind.triggered = true
end
end
end
end
end,
disable = function(self)
for _, joker in ipairs(G.jokers.cards) do
joker.ability.para_singular = nil
end
end,
defeat = function(self)
for _, joker in ipairs(G.jokers.cards) do
joker.ability.para_singular = nil
end
end
}
``` Why does Matador not trigger despite having jokers debuffed by the boss blind?
what could be the cause of this error?
there are no subs in balatro
then??
send full crash report
You didnât gift sub
It means something wanted a string but you gave it a nil value.
what could it be...
What is that line in the lovely dump?
is xdollars a valid return value
im gonna assume its not but if it is ill just change my code
No
okay dokay
I believe this is the full list in case you ever need it https://github.com/Steamodded/smods/blob/005335db2aa7566ff7e069bc3cae2323905fe6f3/src/utils.lua#L1505
yeah
Is this the lovely dump?
yeah
Is this the right file?
then what is the right line??
Has the dump changed since the crash?
bump
wdym?
Yes.
yes
okay thanks
Because at that line there should be sub
didnt get it until i saw your example lmao
hmm
lemme use ctrl f
found it
it's some lines below
also i think the error is in this joker somehow?
does anyone know why this edition doesnt do anything?
Yes.
does anyone know how to get your holojobo to stop doing this, i think he really likes phaunus
Wtf is x_chips
i didnt except x_chips to work but the mult doesnt work either
x_chips will work along with xchips

??
You're not setting card.config.trigger
Lil yachty computer gif
not drake
sad
card.config.trigger = true
In context.joker_main
idk why the last edition i made didnt need that
return {
x_mult = card.edition.x_mult
}
end```
like this?
:D why am i getting the âïž
Yes.
a bit of a meta-ish question, but if you was writing the 'best' code for a joker, would you prefer it if if there was only 1 thing in the config extra section of a joker, it uses the extra as a value instead of adding one value into the extra table?
for example, lets say you have a joker with only 1 thing in config extra 'odds = 4'. would the ideal way to write it be this:
config = { extra = { odds = 4 } }, then you reference it with card.ability.extra.odds
or
config = { extra = 4 }, then you just reference it with card.ability.extra
what is the general consensus on this
afaik that's not right
from source or vanilla remade
Probably the first one.
wait nvm
forgot vanilla remade doesnt have editions
source code differs from smods\
First one
first one
Card.ability.extra.odds
nvm
it does tho
thank you guys for your input
It has
it was something else i was thinking of
Thereâs also enhancements
nvm uhhh
lmao imma steal it
i gotta make one for every reaction he does
greatest meme of modding dev 2025
âŹïž â and đ€·
Do the â for me
absolute cinema
what mod is this i want to play it
not that
oh
pibby fourteen
i can wait for it to come out
i think he really likes phaunus
I think your code is going goobers
no i think hes sick
did you fix this yet? I've got a guess on what the issue is
Rap god reincarnated
i feel like it aint working
i dont think you can use blind.triggered in a debuff_card context?
i could very well be wrong though, im not the most knowledgable on matador plus it's coded really jankily
Can I use a back from another mod in my logic by using G.GAME.selected_back.key == b_OtherModPrefix_OtherModDeck? One of my mods adds a deck and the other checks which is the current deck and changes the music and background color accordingly, but I can't seem to make the music mod recognize the deck mod.
LMFAOo
he's thinking
anyways time to steal again
what's this supposed to debuff actually
jokers you have 2+ of and bp/bs
how specific
oh wait
the singular
i get it now
wait then why WOULD matador trigger?
isnt matador with played hands
I mean, based on the code matador should still be triggering
this has got to become a sticker đ
and how will you use it
literally me đ
idk I just find it a tad annoying
WHITE QUESTION MARK???
are you kidding me
NEW REACTION UNLOCKED đ
super f
alr mr crocker
i made it a sticker in my priv server
ok stop
How can i make a joker destory all cards in hand without triggering a variable multiple times
for context, the joker is supposed to destroy a hand after 3 rounds, and destroys itself after doing so 2 times
when i used context.destorying_card, it caused the variable to increment down by 1 for every card destoryed, which is something I don't want
You would probably do it in context.after then.
are âŹïž reactions banned now?
ohhh ok
đ
we gotta get creative
i cant get creative
modding-dev is becoming modding-chat 2
we cannot have this
we should have this tho
I mean it shouldn't even be that bad in modding-chat imo
modding-dev is like modding-chat but with smarter people
i mean that goes unsaid but yes
does it?
I've gotten pushback before when I said "this doesn't really belong in modding-chat"
no way
mr poly bridge is about to see my favorite sticker...
im sorry mr poly bridge!!!
how to set the position of an animated sprite?
card.children.center:set_sprite_pos({x = number, y = number})?
like, i dont use pos?
im saving this before i forget again
also where do i place that
also you forgot the--there you go
where do i place that?
Where you want to change the pos
is there a set size command
ok, got it to work
there def is but i forget what it was one sec
What should i do to prevent the card from destroying every hand afterwards and not resetting the count
Figured it out, I needed to use G.GAME.selected_back.name == b_OtherModPrefix_OtherModDeck instead 
You need to put context.after outside of the other if
lars are you typing an essay again
No, it's G.GAME.selected_back.effect.center.key
Regardless, I do have a modding dev question:
I have to give SMODS an object (in SMODS.get_card_areas), which SMODS then calls with object:calculate(context). Problem is, object's calculate function actually looks like calculate(self, obj_inst, context) meaning the call doesn't line up with the signature. There's a couple solutions I can think of which all involve passing a fake object with a calculate function that pass the context on, e.g.
local fake_obj = create_fake_obj(center) -- could lose some properties or act unexpectedly
-- similarly, `local fake_obj = {}` also works, and is basically a worse version
fake_obj.calculate = function(self, context)
return center:calculate(center, context)
end
return {
object = fake_sleeve,
}
but that has some possible slightly unforeseen consequences with SMODS.calculate_context({post_trigger = true, other_card = object, other_context = context, other_ret = ret}) since object is now a fake instance.
Is there a better way to change the calculate function that I can't think of right now?
oh it was formatting
Really? Because I did EVAL G.GAME.selected_back.name and the value was what I set as the key. Is there any difference?
The name is set to the key if the deck has no name.
G.hand:change_size((-G.hand.config.card_limit)+numbertosetitto)
remembered someone else asked this so i had to go find it
which basically sets your hand size to 0, then adds the number you want your hand size to be
quick maths
2+2 is 4 - 1 that's 3
i feel like this month has been a whole lot about fake objects
like in general in modding-dev
I mean I could lovely patch into the location smods calls object:calculate but that seems rough too
i was literally about to say "maybe patch into the smods object"
also loses lovely backwards compat
Ohhh I see. I've been only setting up the names inside loc_text, but I guess there's an extra name variable? I swear I didn't see it inside the API docs. Would this be the same for everything else (jokers, enhancements, etc)?
Yes.
cool, thanks!
can you set something equal to object and use that instead? then object stays the same?
It worked!
tysm
Do you have a code example to show what you mean?
(I'm stupid)
im just spitballing so give me a second to do that
sure sure
local fake_obj = create_fake_obj(center) -- could lose some properties or act unexpectedly
local notobject = object
fake_obj.calculate = function(self, context)
return center:calculate(center, context)
end
return {
notobject = fake_sleeve,
}
would something in this direction work maybe?
Anyone have any clue why this is failing?
there's no other_card in context.main_scoring is there?
there is not
does anyone know why this doeasnt work at all? im trying to make it so when im hovering over my joker and press z , it rerolls the objective and reward
SMODS.get_card_areas expects a object key with the value of the object, unless this is still about patching (or possibly hooking) the SMODS methods
I've never done enhancements before. How do I have it check the card's suit?
Use card
the function link is a bit of a pain to hook
just use card instead of other_card
Just to double check
oh that looks disgusting to hook oh no
so it's pain and suffering either way?
pretty sure you dont need context , you're checking the card
if i make a image sprite bigger than a joker and make it a joker will it stretch to fit?
itll cut off
if card:is_suit("Hearts") or card:is_suit("Diamonds") then This should work?
Yes.
I have some other ideas I haven't tried yet, so maybe there's a way
is there a way to make it stretch to fit, because i need this specific image to be high quality
just up the size of the atlas
just change the atlas si-yeah
(the px and py specifically)
does anyone know how i can postpone the buffoon pack appearing in the shop till i complete a objective? since i got some objectives that you can complete during a blind and some in the shop
I've talked a bit about it before here #1279246553931976714 message
Does anyone know how to exclude jokers from having a sticker?
Doesn't the smods wiki page literally mention that?

