#đŸ’»ăƒ»modding-dev

1 messages · Page 545 of 1

long sun
#

wait lemme check the shader itself

#

ah i see, ya

robust marsh
#

any way to make sure a custom joker spawns with no edition? I know no_edition is a thing but again I don't know if just slotting that in there would cut it. I've only seen people use that with SMODS.create_card

long sun
#

it mentions drilled and not drilled_consistent

#

hopefully this fixes it

cursive gazelle
long sun
#

ya that was it!! but now, i need a way of removing the base draw step

cursive gazelle
#

Wdym

long sun
#

so what's happening here is

manic rune
#

what

long sun
#

the deck is being drawn with the diffuse shader

#

and then drawn with the drilled_consistent shader

manic rune
#

please provide me some context for this specific sentence.

long sun
#

but i'd like only the latter to be drawn

cursive gazelle
#

Yeah i have no idea

#

LOL

#

Bepis btw can lovely patches help me change a base game shader to a different one ?

ripe jacinth
#

i want to try and make a shader

#

for an edition

#

how do i learn glsl

cursive gazelle
#

It’s pretty difficult

cursive gazelle
ripe jacinth
#

hlsl?

cursive gazelle
#

What i would recommend is going through random shaders you like and seeing how they make the effect

#

That’s how i learnt

ripe jacinth
#

i just want a card effect that basically uhh

#

intense and foreboding glow

cursive gazelle
#

That’s easy

ripe jacinth
#

thats easy

cursive gazelle
#

I have something like this if you want to copy it

ripe jacinth
#

oh

cursive gazelle
#

But it has some extra effect

#

Just get rid of it

ripe jacinth
#

i'll try

cursive gazelle
#

Basically just draws a line

ripe jacinth
#

what language is this written in?

cursive gazelle
#

And increase the values a little for more bright since i have it slightly yellow

ripe jacinth
#

the shaders i mean

cursive gazelle
ripe jacinth
#

..F???

#

i've never heard of F#

#

like ever

#

wtf

cursive gazelle
#

It’s pretty neat yeah

ripe jacinth
#

oh its like C#

cursive gazelle
ripe jacinth
#

in the fact that it's made by micron soft

cursive gazelle
#

Those are my shaders

#

Sadly not commented

ripe jacinth
#

which shader are u talkign about here

cursive gazelle
#

Sword params is the one i’m talking about

robust marsh
cursive gazelle
#

You can download and see them for yourself

cursive gazelle
#

Btw if you need references or code with explaining and comments look in smods /examples / edition example /assets/shaders theres one called ionized that has comments explaining the basics

#

In the github

ripe jacinth
#

is there any code docs on how to implement these as an edition

cursive gazelle
primal robin
cursive gazelle
#

In the GitHub

ripe jacinth
cursive gazelle
long sun
#

my editioned cards are appearing like this. what have i done wrong?

cursive gazelle
primal robin
#

we are doing anything but working on hotpot

#

as usual

cursive gazelle
cursive gazelle
long sun
cursive gazelle
#

I love drawstep

primal robin
#

s

red flower
long sun
#

for which?

#

.children.center, or .ARGS?

red flower
#

children

long sun
#

👍

red flower
#

actually i think it's both

cursive gazelle
#

Schizophrenia

red flower
#

hmmm looking at my code self is fine, but the card argument is wrongly named i think

primal robin
#

s, youre "new" in this chat right, or who are you

cursive gazelle
#

I’m new Somewhat

#

I’ve been in the server for a while but i only made one mod and it’s unfinished

red flower
long sun
#

this doesn't work either. the trues were for no tilt, so i assumed they were unneeded

primal robin
#

I see

#

Also I seen how you can draw. Portfolio?

long sun
daring fern
red flower
cursive gazelle
long sun
#

ah gotcha

primal robin
#

I want to see more your drawings

cursive gazelle
#

Oh i’m not really a good artist in pixel art nor digital since i only use a mouse i just do some sketches lol

#

I’ll show you later tho i’m on my phone currently

primal robin
#

ok

long sun
#

we're not there yet 😭

primal robin
#

only shadow drawn trash

long sun
#

do i still need to replace card with self?

#

oh wait

#

oh i see

#

nevermind

red flower
#

drawstep just has two arguments card, layer

long sun
#

and it's also not using the consistent shader

cursive gazelle
#

That’s a tiny ace

long sun
#

this may just be an issue with the shader though

#

it may be rendering the base card on top of the Ace front

cursive gazelle
#

This happened to me once

#

Accidentally rendered the card with the shader on top of the card

#

Lol

long sun
#

😭

#

wait so, lower priority?

#

here's what the shader's doing anyway

daring fern
#

‎

cursive gazelle
long sun
#

no change with a priority of 0

#

this is so cursed 😭

cursive gazelle
#

I love coding in my note app

#
SMODS.DrawStep({
key = “drilledcarddraw”,
order = 21,
func = function(self, card, layer)
if card.edition and card.edition.key == “e_phanta_drilled” then
if card.phanta_drilled_consistent then
card.children.center:draw_shader(
‘phanta_drilled_consistent’,
nil,
card.ARGS.send_to_shader
)
else
card.children.center:draw_shader(
‘phanta_drilled’,
nil,
card.ARGS.send_to_shader
)
end
end
end
})```
#

I just added ARGS to parameter

long sun
#

trying

cursive gazelle
long sun
#

it's back to not rendering at all ;u;

cursive gazelle
#

Is this how people in notepad code ? This is hell

cursive gazelle
long sun
#

okay, i now know what's happening, but not how to fix it

#

the shader is being drawn exclusively

#

nothing else is being drawn over the top of it

wintry solar
#

what needs to be drawn over it?

long sun
#

well, actually, it needs to be drawn on top

#

the center and the front need to be drawn

#

and all the other stuff

wintry solar
#

then set your order to be lower

long sun
#

how low?

wintry solar
#

center is drawn at -10

long sun
#

ah

wintry solar
#

you can find them all in carddraw.lua

long sun
#

-11 it is then

manic rune
#

whats the vanilla function for cloning tables again

#

i forgot

long sun
#
  1. still not working
  2. i need to fix card extras disappearing too
#

-# this is drawn using front

daring fern
#

‎

manic rune
#

smtcom asking the real questions here

#

the "in the position of a seal" part would need you to manually work with positions though, since seal textures are drawn on card-size canvas lol

#

but i assume you can kinda copy the code of how balatro applies the texture of stickers/seals on cards, except change that with the joker's texture?

#

lemme check

long sun
#

mm, i think i see the problem, but i don't know how to overcome it

#

it's disabling the base shader, and also not drawing it

daring fern
manic rune
#

mm one sec, lemme experiment smt

long sun
#

closer

#

mm, this is too difficult to implement

#

i'm gonna omit Drilled from the new update until there's a solution

manic rune
#

hm

long sun
#

i suspect i need to do something more clever with the shader, but the base card needs to be disabled for there to be a hole

#

otherwise, it draws over it

wintry solar
#

what is drilled supposed to do?

long sun
#

it's meant to be a hole through the card

#

+1 consumable slot, unless it's on a playing card, in that case, +1 discard when scored

wintry solar
#

you'll need to set every layer to draw the hole then

#

so instead of stuff using the dissolve shader it'd need to use your shader with a hole in it

long sun
#

mm, i see

wintry solar
#

probably easier to do with a draw_shader hook rather than a draw step

long sun
#

gotchagotcha ^u^

#

i'll look into it, thanks!

manic rune
#

what the hell is G.shared_seals for :3

long sun
#

what does card.ARGS.send_to_shader contain?

manic rune
#

i have no clue where the seal's object is in a card

#

hmmm

daring fern
manic rune
#

mm

#

i tried changing a lot of stuff in there, but nothing seemed to affect the seal's rendering itself though

#

my idea was that you can similarly have a table like that and change the scale in there, but it doesnt seem to change anything

long sun
#

try ability.seal?

#

that's where the object is

#

wait, cancel

#

nvm

manic rune
#

thats just the config table lmao

daring fern
long sun
#

and seal is just the key

#

mm, i see what you mean

manic rune
#

oh, yeah

long sun
#

wait, what about G.P_SEALS?

manic rune
#

i mean, the uhhh something thats placed in a card so that the game knows to render it

long sun
#

is that a thing?

manic rune
#

idk

long sun
#

mm nvm

manic rune
#

it has VT, scale and allat idk what to call it

long sun
#

oh no wait it is that :3

#

it's all in P_SEALS

#

the centers, anyway

red flower
#

the sprite object?

manic rune
#

ye

#

well at least i got it 50% correct on the object one lmao

red flower
#

it's G.shared_seals haha

manic rune
#

wtf............

long sun
wintry solar
#

all seals use the same sprite

red flower
ripe jacinth
#

oh no. im now adding more animated jokers

#

oh god

manic rune
#

would changing stuff in G.shared_seals.Redalso change how all red seals are rendered, or do i have to do some more stuff

manic rune
#

mmmmm

#

idk nothing seems to be changing rn 3:

red flower
#

the alignment is done by draw_shader

#

im pretty sure

manic rune
#

i kinda changed a lot of number values in the seal too

#

and i havent seen anything changing so far

red flower
#

try :set_sprite_pos

manic rune
#

oh that works

#

guh

#

hmmm

red flower
#

yeah all the positioning and stuff is done by the shader i think

#

im not good at the graphics part

long sun
manic rune
#

its harder to just, make the seal rendering bigger than i thought lol

red flower
manic rune
#

maybe i have to patch into here so that it uses another variable to change the scale?

red flower
#

draw_shader has a scale argument i think

long sun
#

weird, this makes no reference of any table values

manic rune
#

mmmm probably ms (maybe the s stands for scale idfk)

red flower
#

yeah

red flower
long sun
#

right icic

red flower
manic rune
#

well it certainly works lol

red flower
manic rune
#

@daring fern sorry for taking too long to answer your question, but you want to change those in the function to change the size and position :p

manic rune
long sun
#

how can i check if the card that the shader is being applied on, in draw_shader, meets certain conditions?

manic rune
#

umm i have no clue what the problem means 3:

#

and i gotta go out to eat for my bday party rn, sorry.....

long sun
#

oh! happy late birthday ^^;

manic rune
#

thanks ghost :3

long sun
#

np bepis :3

long sun
#

<@&1133519078540185692>

#

đŸ€

long sun
#

there's gotta be a better wayyyyy

worthy stirrup
# ripe jacinth

I know this might be a nitpick, i would put it all on one line so you dont have to deal with the changing of rows

long sun
#

i need to be able to tell if a card needs to be rendered with the hole or not, but draw_shader only deals with sprites

#

and i tried a hack solution for that, but to no avail

#

halp 😭

wintry solar
#

oh that is a very good point

hushed field
#

I've been reading up on the way Love2D handles graphics for other shader related issues, and I think I did see that the engine allows for sprite masking đŸ€”

#

But I might very well be misremembering

long sun
#

huge if true

hushed field
#

Oh yeah, Love2D allows you to mask using Stencils, but I'm not sure how that properly translates to how Balatro handles shaders

#

I think there might be an issue with a stencil being a very fundamental objecttype so I don't know how easily you can use it to start messing with Balatro cards

wintry solar
#

I think you'd have to change cards into being individual stencils

#

afaik, the entire screen is one stencil

hushed field
#

interesting

long sun
#

i switched back to doing it the regular way, what i was doing before, and noticed another issue — if a card has a draw, and is drawing another shader, it does it on top of the hole

#

it seems that this can only be fixed by hooking draw_shader

#

i'm honestly inclined to scrap this edition

#

it's causing too many issues 😭

#

ya i'll maybe bring it back later

#

hopefully by then, there'll be better SMODS support for shaders like this ;u;

#

/nm

#

[/not mad]

crystal perch
#

no because it's applying it to a joker yet it gives +1 handsize not +1 joker slot

#

it's basically merging juggler into an existing joker

slim ferry
#

The SMODS.Edition docs say so at least

long sun
#

well ya, i've done that

#

but this card has a draw function attached to it

unkempt thicket
long sun
#

i've tried that

languid canopy
#

currently trying to make a specific joker play a song, however, apparently i cant bc talisman ? (ping plz)

royal badger
#

so normally if card.ability.extra.goldFred = false it should do the else thing, but in game it does nothing (the 3 in pseudorandom was to test if it works, I deleted that 3 now and added all numbers to pseudorandom, but now only goldfred gets acticated and the rest isnt at all) I found out that goldFred is somehow always true, but idk how to fix that

ripe jacinth
#

how do i get my joker to display on the title screen

sand sandal
ripe jacinth
idle plaza
sand sandal
ripe jacinth
#

also how do i get my deck to change ranks

cursive gazelle
royal badger
cursive gazelle
#

If that’s what you want

wispy falcon
ripe jacinth
#
    key = "oopsallaces",
    pos = { x = 0, y = 0 },
    atlas = 'decks',
    loc_txt = {
        name = "Oops All Aces!",
        text = {
            "Every card in the deck is",
            "an Ace."
        }
    },
    config = {},
    apply = function(self, back)
        G.E_MANAGER:add_event(Event({
            func = function()
                for _, v in pairs(G.playing_cards) do
                    -- Only change the rank, keep the suit
                    if v.base.rank ~= 'Ace' then
                        v:change_rank('Ace')
                    end
                end
                return true
            end
        }))
    end
}```
#

here's how i coded it

#

it didnt work

#

where did it go wrong

#

all im getting is "attempt to call method 'change_rank' (a nil value)"

cursive gazelle
#

It’s change_base

#

Not rank

cursive gazelle
ripe jacinth
#

if i want aces

cursive gazelle
#

Try Ace or 14

vocal zealot
#

How would I go about using g.localization to change the name of planets? Not the individual ones, the overarching type.

ripe jacinth
#

Ace worked.

cursive gazelle
cursive gazelle
#

Did you had that on standby

manic rune
#

touhou texture pack mentioned

red flower
cursive gazelle
#

That was pretty fast

red flower
#

well i already knew about it

vocal zealot
#

I’m not looking for just sprites and names, I’m looking for the actual type. So Astronomer would say “All ‘new name’ cards and Celestial Packs in the shop are free.”

red flower
#

yes

#

that changes the type, the descriptions of cards are hardcoded however

cursive gazelle
#

I can’t recompile balatro right?

red flower
#

yeah people do texture swaps all the time, i think it's just rezipping it

#

idk why you would need to tho

vocal zealot
cursive gazelle
#

I think i spent a week trying to replace the background shader

robust marsh
#

I put my deck sprites in 1x and they work fine for me but my friend is trying the mod out and the game is trying to read 2x. Does anyone know why?

red flower
#

pixel smoothing option on

#

they need to either turn that off or you need to include the 2x texture which you should

frosty rampart
#

^ upscale your sprites to exactly 2x the resolution (WITHOUT ANY INTERPOLATION) and put it in the 2x folder with the same exact filename as the one in the 1x folder

robust marsh
#

alrighty, thank you !

stiff locust
#

i have 2 questions

cursive gazelle
#

Hey meta

#

And marie

stiff locust
#

I wanna blueprint stuff and I wanna retrigger jokers

#

i havent done those yet

frosty rampart
cursive gazelle
stiff locust
#

oh yeah on the blueprint stuff

ripe jacinth
#

how's my deck art?

stiff locust
#

it won't have joker retriggers though

cursive gazelle
#

Blueprint and brainstorm don’t copy the ability they just make the copied joker calculate twice

frosty rampart
#

^ blueprint and brainstorm will automatically run the whole calculate function of the joker they're copying, you have to explicitly add checks for not context.blueprint if there's code you don't want to be copied (e.g. the joker scaling)

stiff locust
#

well that tracks yeah

#

and ik about the not context.blueprint stuff

#

but also how do I retrigger jokers

manic rune
#

you use context.retrigger_joker_check

cursive gazelle
#

Context

manic rune
#

and return repetitions = num

cursive gazelle
#

Return repetition =

cursive gazelle
#

Lol

stiff locust
#

is this like context.indvidual where it goes through every joker

manic rune
#

p sure its context.other_card for checking each joker

stiff locust
#

if context.retrigger_joker_check then
and then
if context.other_card == condition then
return { repetitions = 1 }

#

am i getting that right

#

I also need to actually enable this as an smods option in my mod don't I

cursive gazelle
#

Yes

stiff locust
#

i had to enable deck calculate so i'd assume joker retrigger is also like that

cursive gazelle
#

Idk wdym but

ripe jacinth
#

guys how do i get a joker, that applies random editions to a card, to basically not apply one specific edition

#

(the edition is from a mod)

#

(not my mod)

stiff locust
#

the table should include keys of editions you want it to choose from

#

if you include a number with each edition key, you can set their weight, otherwise they use their base weights

cursive gazelle
#

Check for mod existing first

stiff locust
#

oh god wait if i'm making a blueprint

cursive gazelle
stiff locust
#

I need to use dynatext

#

to do the compatible message

#

don't I

cursive gazelle
#

(Vanilla remade) ctrl+c ctrl +v

stiff locust
#

the problem is that this joker copies 2 jokers

#

so I either need two dynatexts or some other way to display it

cursive gazelle
#

I’m going to say something crazy

#

Tangents has one

primal robin
#

go ahead

stiff locust
#

I am aware that a blueprint that hits both adjacent jokers is not very creative

#

this joker is also going to retrigger those jokers
mostly because I want to see what happens if I do both

cursive gazelle
#

No I’m saying you can reference the code

languid canopy
cursive gazelle
#

From nxkoo

stiff locust
#

just wanna say that before someone gets me

#

what's the double copy joker

languid canopy
#

wait

cursive gazelle
red flower
cursive gazelle
#

Probably play a song when joker is obtained

languid canopy
#

yeah

cursive gazelle
#

Which you can do with just replace

red flower
#

you know you can just do this right

cursive gazelle
#

Replace=

#

Isnt there like a replace function?

languid canopy
#

i list the replaces like
replace= 'music1','music2' etc ?

#

there is

cursive gazelle
#

Try N’s method

red flower
#

just do

select_music_track = function()
        return next(SMODS.find_card("j_modprefix_key")) and math.huge or false
end,
#

also if it's music it has to have "music" in the key

frosty rampart
#

(as per SMODS.Sound documentation, select_music_track is expected to return a number, and the song that returned the highest number "wins" on that frame and gets to be played)

stiff locust
#

remember that if you do select music track

#

your song key must include music

#

or it will crash

languid canopy
#

wuh

crystal perch
#

trying to make a joker that copies the joker to its left, and debuffs the joker to its right
the code and the joker work but it lags the hell out of the game and prevents any actual gameplay from happening

cursive gazelle
#

The lion doesn’t stress himself with the code he just copies it

languid canopy
#

LMFAO

#

true

red flower
cursive gazelle
stiff locust
crystal perch
#

it was written when i was very tired

stiff locust
#

searching up blueprint gives me every instance of blueprint_compat and not context.blueprint

red flower
languid canopy
stiff locust
#

no results

#

i'm confused

crystal perch
#

like you choose a blind and no cards get drawn

red flower
stiff locust
#

no one told me that

stiff locust
#

also what

crystal perch
red flower
#

well no one knows because nobody read my wiki

stiff locust
#

I search your wiki sometimes and half the time i find the answer and half the time i dont

languid canopy
#

i did (partially fake)

cursive gazelle
#

Your honor i haven’t modded in a week

crystal perch
stiff locust
#

I absolutely despise all things UI code

crystal perch
#

not getting flooded with debugs but it's unplayable

stiff locust
#

but I still need to display if those jokers are compatible

#

that's my issue

crystal perch
#

just copy the code from blueprint

red flower
#

the nxkoo example has the ui for it

cursive gazelle
#

Marie it’s simple stop stressing out

stiff locust
#

i am a surgeon

pale holly
#
 config = { extra = {dollar = -25}},
    
    
    calculate = function(self, blind, context)
        if context.before 
        and (context.scoring_name == "Flush"
        or context.scoring_name == "Straight"
        or context.scoring_name == "Three of a Kind"
        or context.scoring_name == "Two Pair"
        or context.scoring_name == "Pair"
        or context.scoring_name == "High Card") then
        dollars_mod = blind.ability.extra.dollar
            return {
                dollars = blind.ability.extra.dollar
            }
        end
    end, ```
trying to make a boss blind that make you lose 25 dollars when playing any hand lower than a full house but all it does i crash, any help ?
cursive gazelle
stiff locust
#

you can put this all in 1 code block yk

pale holly
#

i tried too but i failed oops

stiff locust
#

put three of these symbols ` before and after your message

#

not one line at a time, the whole thing

#

type lua after the first set

#

and it will highlight in lua colors

#

the first set

#

not the second

pale holly
#

wait how ?

#

oh

stiff locust
#
right click this message and press copy text to see it
#

muuch better

pale holly
#

got it, thanks

red flower
#

blinds dont have ability

pale holly
#

i'm gonna screenshot the crash just gotta reboot my game

red flower
#

im pretty sure it's that anyway

#

you need to use self.config.extra.dollar

crystal perch
pale holly
red flower
#

yep

#

<@&1133519078540185692>

languid canopy
#

LMFAO

cursive gazelle
#

Mrbeast

crystal perch
#

mrbreast

grand violet
rotund sable
#

Money 💰

languid canopy
#

mrbeast real

crystal perch
#

still need help making this not lag tf out of the game

calculate = function(self, card, context)
        if not context.check_enhancement then
            local other_joker = nil
            local debuff_joker = nil
            local prev_chosen = {}
            for i = 1, #G.jokers.cards do -- Undebuff previously chosen Jokers which aren't currently chosen
                if G.jokers.cards[i].ability.two_faced_chosen and G.jokers.cards[i] ~= debuff_joker then
                    if not G.jokers.cards[i].debuffed_by_blind then
                        G.jokers.cards[i]:set_debuff(false)
                    end
                end
            end
            for i = 1, #G.jokers.cards do -- Mark Joker to copy and debuff, choose debuffed Joker
                if G.jokers.cards[i] == card then 
                    if G.jokers.cards[i - 1] ~= nil then -- Ensure copy Joker exists
                        other_joker = G.jokers.cards[i - 1] 
                    end
                    if G.jokers.cards[i + 1] ~= nil then -- Ensure debuff Joker exists
                        debuff_joker = G.jokers.cards[i + 1] 
                        debuff_joker.ability.two_faced_chosen = true
                    end
                end
            end
            if debuff_joker ~= nil and not (debuff_joker.debuff and debuff_joker.debuffed_by_blind) then -- Debuff chosen Joker if not aready debuffed
                if debuff_joker.ability.two_faced_chosen then
                    debuff_joker:set_debuff(true)
                end
            end
            local ret = SMODS.blueprint_effect(card, other_joker, context) -- Copy
            if ret then
                ret.colour = G.C.BLACK
            end
            return ret
        end
    end
crystal perch
#

i just knew

red flower
#

lmao

manic rune
pale holly
# pale holly

i realised i forgot to replace the 'card' by blind in the ability but since apparently blinds doesn't have abbilities i suppose it doesn't work

stiff locust
#

oh

#

neat

manic rune
#

uh

#

i fucked up somewhere but u get the idea

stiff locust
#

yeah

pale holly
#

Really just trying to do like the Ox but for a specific set of hands, and also with losing money, not a set one

manic rune
#

its also on here btw :3 nudge nudge

cursive gazelle
#

This is more than mayhem

frosty rampart
cursive gazelle
#

What have you done lmao

red flower
#

idk what makes events here tho

crystal perch
#

maybe because it's constantly checking which jokers have been chosen?

red flower
#

that doesnt add an event

stiff locust
#

on my way to make a joker whose sole purpose is to recursively spawn 1,000,000 events which do nothing

crystal perch
#

đŸ€·â€â™€ïž

cursive gazelle
rotund sable
#

set_debuff maybe?

pale holly
red flower
crystal perch
#

oh

red flower
pale holly
#

Oh i already had the crash log

red flower
pale holly
#

Oops my bad, didn't saw it

#

self config for both dollars_mod and the dollars right ?

cursive gazelle
#

Yes

pale holly
#

Alright thanks i'll try that out !

royal badger
#

how do I change the full deck skin? (replacing the standart skin)

crystal perch
#

i'm just gonna start commenting stuff out to see what makes a difference

cursive gazelle
red flower
crystal perch
#

commenting out debuff_joker:set_debuff(true) stops it from lagging

royal badger
red flower
#

oh i see

#

this is always true

#

or always false?

crystal perch
#

always something

red flower
#

either way you never set debuff_joker

cursive gazelle
crystal perch
red flower
#

yeah after that loop

crystal perch
#

oh i see so it never ends

red flower
#

no it does end

red flower
#

your logic for checking which cards are debuffed or not is wrong

crystal perch
#

so how would i fix that logic

red flower
#

idk that's 20 dollars

crystal perch
#

â˜č

cursive gazelle
#

Your ai subscription ran out

#

LMFAO

red flower
#

i would start from the beginning on that one but keep in mind local variables don't stay between calculate calls

stiff locust
#

chat i broke the display code

#

i think i know what broke but also damn

#

this shit fragile

cursive gazelle
#

Can i see

modern kindle
red flower
#

i will destroy it

modern kindle
#

finally, peace

red flower
#

anyway i should actually work instead of balatroing

stiff locust
#

i think it's just because of his localization

modern kindle
#

do not work, watch anime

red flower
#

i wish

wispy falcon
#

Okay, I'm gonna be honest. This is not my code but I just can't figure out why I get this error, please help TwT

stiff locust
#

this is at the bottom of his description

#

it's certainly trying to do things

#

i'm not allowed to show more

#

their colors seem to work properly

#

the light on the right will go green if the right joker can be blueprinted

#

but i'm pretty sure it is supposed to have text in it

red flower
wispy falcon
#

-# I'm giving credits

novel sundial
#

Would anyone have a clue as to why my own mod isn't showing up in game despite being in the mod folder?

red flower
#

do you have a G.C.CSTORM.EFFECT

red flower
wispy falcon
novel sundial
slim ferry
#

It would

#

You need to have a json file with mod metadata

novel sundial
#

That explains, thank you

#

The online resources just recursively say "check the discord"

slim ferry
#

Theres a page for how to set one up on the smods wiki

stiff locust
novel sundial
#

I have

wispy falcon
red flower
#

where does it send you to the discord

novel sundial
#

The link above it (and pretty much every page in the "wiki")

stiff locust
frosty rampart
novel sundial
#

Oh that's convenient, I didn't find wherever that was tucked away in Vanilla Remade

red flower
#

It's hard to actually improve the ""wiki"" if we're not told what the problems are

frosty rampart
novel sundial
#

Like, directly at the top

red flower
#

i dont really want smods to endorse my guide tbh

red flower
#

or a default thing at least i know some people add name

stiff locust
#

probably not a default thing and that's annoying

red flower
#

why, you shouldnt use that anyway because its not localized

rapid stag
#

is it G.P_CENTERS.e_holo or G.P_CENTERS.e_holographic cirDerp

red flower
#

holo

red flower
stiff locust
#

links to gifs specifically are blocked because some people think i'm just gonna post gifs from my computer directly like I have them all saved

#

graagh i hate this place

crystal perch
#
calculate = function(self, card, context)
        if not context.check_enhancement then
            local other_joker = nil
            local debuff_joker = nil
            for i = 1, #G.jokers.cards do -- Mark Joker to copy and debuff, choose debuffed Joker
                if G.jokers.cards[i] == card then 
                    if G.jokers.cards[i - 1] ~= nil then -- Ensure copy Joker exists
                        other_joker = G.jokers.cards[i - 1] 
                    end
                    if G.jokers.cards[i + 1] ~= nil then -- Ensure debuff Joker exists
                        debuff_joker = G.jokers.cards[i + 1] 
                        debuff_joker.ability.two_faced_chosen = true
                    end
                end
            end
            if debuff_joker ~= nil and not (debuff_joker.debuff and debuff_joker.debuffed_by_blind) then -- Debuff chosen Joker if not aready debuffed
                if debuff_joker.ability.two_faced_chosen then
                        debuff_joker:set_debuff(true)
                end
            end
            for i = 1, #G.jokers.cards do -- Undebuff previously chosen Jokers which aren't currently chosen
                if G.jokers.cards[i].ability.two_faced_chosen and G.jokers.cards[i] ~= debuff_joker then
                    if not G.jokers.cards[i].debuffed_by_blind then
                        G.jokers.cards[i].ability.two_faced_chosen = false
                        G.jokers.cards[i]:set_debuff(false)
                    end
                end
            end
            local ret = SMODS.blueprint_effect(card, other_joker, context) -- Copy
            if ret then
                ret.colour = G.C.BLACK
            end
            return ret
        end
    end

update on my part: it works now and doesn't lag the game out but it only updates the debuff when another event triggers (like selecting a card)
this is honestly a tradeoff i'm willing to take though i'd ideally want it to always happen

red flower
#

yeah that makes sense because context doesnt run every frame

stiff locust
red flower
#

may i see

stiff locust
#

i don't know how this code works

red flower
#

oh thats fine

#

localize can return multiple things but name_text is always a string

stiff locust
#

wait how am I supposed to give it the name

red flower
#

also key should be right_joker.config.center_key

#

and you dont need string.sub for this

stiff locust
#

nothing is showing up still

#

i don't understand any of this

#

why do they even get the joker names

#

if they're never used

#

why does the node have text when the text is going to be Compatible or Incompatible anyway

#

i didn't change any part of this code and it's just not working for me when it apparently worked for the other guy but what if it was never designed to display text

#

but why would they have it use internal text values if they'd never be used

red flower
#

idk it's nxkoo

stiff locust
#

they do this shit for money

#

their code surely isn't broken

#

i just don't get what it's doing differently for me

red flower
stiff locust
#

all of them?

wispy falcon
#

How do I make it, so that a Joker doesn't get shown in 'Your Collection' and 'Additions'?

red flower
stiff locust
#

right

crystal perch
#

how do i check if a card has a specific seal?

stiff locust
crystal perch
#

thanks yous

wispy falcon
stiff locust
#

do it again

stiff locust
#

oh

#

i have got to do that to jevil

#

anyway it works now but they truncated the damn

#

where did my message go

#

what

#

i attached a cool picture to it

#

oh right

#

bruh

wispy falcon
stiff locust
#

he keeps showing up

#

while i am testing

#

I can't say anything here anymore

#

the text appear now but the string_sub confuses me

#

i know what it does but why do it like that

#

even ste looks awful

red flower
#

idk it's nxkoo lol

#

theres a reason i dont play tangents :3

stiff locust
#

it works fine on longer names anyway

#

thank you Suspiciously Anvil-Shaped Green Joker

#

man where did my cartoon anvil go

#

now i gotta do another thing

#

is there a way I can find which achievements the player has unlocked

royal badger
#

I still dont know what Im doing wrong.. I did it like the site (https://www.love2d.org/wiki/love.graphics.draw) said and the game still crashes ( I first tried it with a Video because I want to play a video but I thought I try it with a Pic first but both dont work)

                    Freddy = love.graphics.newImage("frame20.png")
                end
                function love.draw()
                    love.graphics.draw(Freddy, 0, 0)
                end```
wispy falcon
#

How would I check what type of card the player bought in the shop?

stiff locust
#

if card.ability.set is nil, I think that means it's a playing card(?)

wispy falcon
stiff locust
#

context.buying_card

#

during that context, context.card is the bought card

wispy falcon
stiff locust
#
if context.buying_card then
  if context.card.ability.set == "Joker" then
    ---do stuff
  end
end
wispy falcon
#

Okay, thank you :3

novel sundial
#

Anyone have an idea why my jokers are low res? Each card is 71x95 and defined as such in the atlas

stiff locust
#

(you did make 2x upscaled versions right)

novel sundial
#

yeah! and it is on...

#

That's weird, maybe something is fucked up with the 2x version then? spruceThink

novel sundial
#

Something is fucked with the 2x version.

#

Photoshop FUCKED me that's what

stiff locust
#

aseprite makes it easy

#

big recommend

slim ferry
#

A lot of editing software just always apply aa for no reason

frosty rampart
#

you need to make sure the interpolation is none when you do the upscaling

#

or just use aseprite/libresprite

novel sundial
#

Yeah I'm just not gonna worry about it rn, just wanted to make sure I was doing it right

rotund sable
novel sundial
#

You might be able to tell but these are temp assets :P

quick scarab
#

I want to basically make so 7s count as wild card, is it possible?

#
SMODS.Joker {
    key = "toy_bonnie",
    blueprint_compat = true,
    rarity = 2,
    cost = 5,
    atlas = 'Joker',
    pos = { x = 3, y = 5 },
}

local Wild_7 = playing_card:get_id() == 7
function Card:is_suit(suit, bypass_debuff, flush_calc)
    local ret = Wild_7(self, id, bypass_debuff, flush_calc)
    if ret and next(SMODS.find_card("j_fnaf_toy_bonnie")) then
        return SMODS.smeared_check(self, suit)
    end
    return ret
end
#

I remembered that a mod did something kinda similar

frosty rampart
crystal perch
#

i have a seal which is applied to jokers and i would like its xmult effect to happen after the joker's effect
usually i'd do this with context.post_joker but i believe that's only for editions

calculate = function(self, card, context)
        if context.joker_main then
            local sealed_jokers = 0
            for i = 1, #G.jokers.cards do
                if G.jokers.cards[i]:get_seal() ~= nil then
                    sealed_jokers = sealed_jokers + 1
                end
            end
            return { xmult = (card.ability.seal.extra.Xmult_gain * sealed_jokers) + card.ability.seal.extra.Xmult_base }
        end
    end
#

btw this gains xmult for each joker with a seal

#

currently with context.joker_main the xmult happens before the joker's score, which means it multiplies before adding base mult

vernal path
crystal perch
#

no that's exclusively for editions

#

and i tried it and it didnt work

wintry solar
#

It should work, I don’t recall is being locked to editions

wispy falcon
#

Where can I find all the default messages for message = localize('k_upgrade_ex')?

crystal perch
#

the game's localization files in en-us.lua

manic rune
#

balatro's localization file, yeah

crystal perch
vernal path
wintry solar
#

Can you show the code?

crystal perch
#

well i don't want it to work like baseball card i'd like it to use the other jokers to influence it's xmult gain but not its scoring

#
SMODS.Seal{
    key = 'green_seal',
    atlas = 'JokerSeals',
    pos = { x = 2, y = 0 },
    loc_txt = {
        name = 'Green Joker Seal', --name of card
        label = 'Green Joker Seal',
        text = { --text of card
            '{X:mult,C:white}X#1#{} Mult for each',
            '{C:attention}Joker Seal',
            '{C:inactive}(Currently{} {X:mult,C:white}X#2#{}{C:inactive})'
        }
    },
    config = { extra = { Xmult_gain = 0.15, Xmult_base = 1 } },
    badge_colour = G.C.GREEN,
    calculate = function(self, card, context)
        if context.post_joker then
            local sealed_jokers = 0
            for i = 1, #G.jokers.cards do
                if G.jokers.cards[i]:get_seal() ~= nil then
                    sealed_jokers = sealed_jokers + 1
                end
            end
            return { xmult = (card.ability.seal.extra.Xmult_gain * sealed_jokers) + card.ability.seal.extra.Xmult_base }
        end
    end,
    loc_vars = function(self, info_queue, card)
        local sealed_jokers = 0
        local Xmult_current = 0
        if G.jokers ~= nil then
            for i = 1, #G.jokers.cards do
                if G.jokers.cards[i]:get_seal() ~= nil then
                    sealed_jokers = sealed_jokers + 1
                end
            end
        else
            sealed_jokers = 1
        end
        Xmult_current = (card.ability.seal.extra.Xmult_gain * sealed_jokers) + card.ability.seal.extra.Xmult_base
        return { vars = { self.config.extra.Xmult_gain, Xmult_current } }
    end
}
#

this is the full code

wintry solar
#

Oh it is unique

#

Huh

#

Then there’s no supported way to do what you’re trying to do

crystal perch
#

context.post_joker is defined in the base game right

wintry solar
#

No

vernal path
#

You could do a lovely patch somewhere around local eval = eval_card(_card, {cardarea = G.jokers, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, edition = true, post_joker = true}) in functions/state_events.lua

crystal perch
#

yeah i was thinking to do that

vernal path
#

Could also put in a pull request to smods and get the context updated to be more universal

crystal perch
#

i've just never had to code a new context so i'm reading over the smods code to figure out how

#

or edited an existing one

vernal path
#

You can check how Extra Credit did it with initial_scoring_step before it was implemented

wintry solar
#

You can also use post trigger I guess

crystal perch
#

also tried post_trigger and it didn't work

vernal path
#

I'm not sure I've seen other context additions

vernal path
crystal perch
#

yeah i have

crystal perch
vernal path
#

Well, i think they updated to use smods 711a, but they might still be using their code for it.

crystal perch
#

i have an old extra cred version thankfully

vernal path
#

It was from Clown Car, i think was the name

#

+44(?) mult, -3 dollars before cards score

crystal perch
#
# New context to modify mult/chips before hands are played - used for Clown Car
[[patches]]
[patches.pattern]
target = 'functions/state_events.lua'
match_indent = true
pattern = '''if modded then update_hand_text({sound = 'chips2', modded = modded}, {chips = hand_chips, mult = mult}) end'''
position = 'after'
payload = '''
for i=1, #G.jokers.cards do
    eval_card(G.jokers.cards[i], {cardarea = G.jokers, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, before_but_not_as_much = true})
end
vernal path
#

I love context.before_but_not_as_much

wintry solar
#

That’s a bad way of doing it

#

Just look at how smods does it

vernal path
#

i mean, this is how smods does post joker, this is the only reference in state events ```lua
-- calculate edition multipliers
local eval = eval_card(_card, {cardarea = G.jokers, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, edition = true, post_joker = true})
if eval.edition then effects[#effects+1] = eval end

crystal perch
#

yeah i'm looking at that now

wintry solar
#

I mean if you’re trying to patch that directly just remove the edition clause

vernal path
crystal perch
#

so change if eval.edition then effects[#effects+1] = eval end to effects[#effects+1] = eval or somethin

#

or just remove that line entirely

#

i'll try it couldn't hurt

wintry solar
#

I don’t think so

#

Just if next(eval) then 


frosty rampart
#

yea you do need to add something to the effects table

timid zinc
#

does anyone know why my denominator is getting reduced to 1?

vernal path
#

arghhh my eyes

#

flashbang

timid zinc
#

Okay, here's the second image as dark

vernal path
#

by the gods are you using np++ lmao?
Also, can I see the localization?

#

I have a feeling you might have two #1#s

crystal perch
#

awesome it works

[[patches]] #   CHAK
[patches.pattern]
target = "functions/state_events.lua"
pattern = '''
    if eval.edition then effects[#effects+1] = eval end'''
match_indent = true
position = "at"
payload = '''
    if next(eval) then effects[#effects+1] = eval end'''
vernal path
#

nice!

timid zinc
crystal perch
#

now i gotta see if this broke anything else 💀

vernal path
crystal perch
#

well polychrome works and i'm pretty sure that's the only thing base game which uses it so we're gucci

wispy falcon
#

How do I show a variable in a message? Because message = card.ability.extra.tarotsBought doesn't seem to work

red flower
#

message = tostring(card.ability.extra.tarotsBought)

vernal path
#

although really you should be localizing it :3c

red flower
#

a number?

manic rune
wispy falcon
modern kindle
manic rune
#

một

red flower
modern kindle
#

how do you say that

red flower
#

bepis is number 1

manic rune
#

aw

manic rune
modern kindle
#

i have multiple #1s

manic rune
#

idk how to even describe it lmao

modern kindle
#

i have bepis and n and eremel and smt and toma and meth and

red flower
#

cant believe winter is not number 1

modern kindle
#

the list goes on to infinity

manic rune
#

i see...

versed swan
manic rune
#

im flattered

red flower
#

are we entering the metatable meta

modern kindle
#

because N has questioned me im buying him 2 games in 9 days

red flower
#

nooooo

manic rune
red flower
#

no this is from smods

manic rune
#

o

#

thought thats ur patch lmao

modern kindle
#

you shouldve just said yes and blew bepis' mind

red flower
#

i kinda understand what they do but idk where i would use them

manic rune
#

this is the card limit thingy for editions, stickers pr right

red flower
#

yeah

manic rune
#

mm

#

i will study metatable and come back to give opinions on that

#

:p

wintry solar
#

I think in the right situations they're insane tech

manic rune
#

and using metatables make u look really cool too imo

#

very closely followed behind by lua patterns :p

#

anyways i think i kinda understand now, it uh redefines the behaviours of a table basically if im understanding it correctly

so i can have t1 + t2 doing different things

#

oh hey

red flower
#

yeah it's like operator overloading and setters but written in a weird way

quick scarab
#

still no luck

manic rune
#

thats not how you hook lol

frosty rampart
#

yea you still aren't hooking properly

manic rune
#
local is_suit_ref = Card.is_suit
function Card.is_suit(...)
   local ret = is_suit_ref(...)
   if next(SMODS.find_card("j_fnaf_toy_bonnie")) then
      return true
   end
   return ret
end
quick scarab
quick scarab
manic rune
#

no

#

wat r u trying to do

quick scarab
#

7s work like wild cards

manic rune
#

ic

#
local is_suit_ref = Card.is_suit
function Card:is_suit(...)
   local ret = is_suit_ref(self,...)
   if self:get_id() == 7 and next(SMODS.find_card("j_fnaf_toy_bonnie")) then
      return true
   end
   return ret
end
wispy falcon
#

Why does {C:attention, s:0.8s} only change the size and not the color?

wintry solar
#

remove the space

#

and the s at the end

wispy falcon
#

The s was a typo OwO

robust marsh
#

I'm making a deck that increases shop prices. However whenever I reroll in the shop and go to the menu then load back into the run said cards (whether it is jokers, tarots or planets) will go back to their original values. Is there a way to make them persist?

hushed field
robust marsh
#

I imagine the second part is also why they are the only ones having their price set back to normal

hushed field
#

Just hook set_cost, if you wanna limit it to specific card types

red cradle
#

Before playing first hand, each non-face card gives dollars equals to half its rank. Why its not working
if context.disard and not context.blueprint then
if G.GAME.current_round.hands_played == 0 and G.GAME.current_round.discards_used == 0 then
if not context.other_card:is_face() then
return {
dollars = context.other_card:get_id() / 2,
card = context.other_card
}
end
end
end

robust marsh
royal badger
red flower
#

what the hell is SMODS.Hook

royal badger
red flower
royal badger
red flower
#

what part is troubling you?

royal badger
#

its just kinda hard to understand when I started modding like 3-4 days agodead

#

I think If I had an example code that I can test in game I would maybe read out of it what it does or how it works

red flower
royal badger
#

if I copy that code and try it is it working in game?

red flower
#

yes

tender ermine
#

How do I check for a certain tarot key when in context.using_consumeable?

royal badger
#

okay I will try my best to understand it and thank uchi_comfy

red flower
red flower
tender ermine
#

Thanks

timid night
#

Yooo, is there a way for me to give myself a card at the start of the game? maybe with a deck or something? Ive made a custom joker but I actually need to test it

knotty orchid
#

you can spawn jokers with debug plus

red flower
#

or at least not the joker set

#

also cryptid does this hook wrong

#

it should be like that

royal badger
red flower
#

correct

clear ocean
quick scarab
#

Speaking of Hooks, one if them that I was using broke everything

quick scarab
#

I can't select or play any card now

clear ocean
#

it looks like the only two kinds of jokers will need to have some sort of soul pos scaling too

clear ocean
#
newcard.T.w = newcard.T.w * 1.1 * 1.2
newcard.T.h = newcard.T.h * 1.1 * 1.2
#

is the T or the w/h to grab the soul pos

red flower
#

neither

#

newcard.children.floating_sprite

clear ocean
#

and the suffix will be .T.w or .w?

red flower
#

T is the transform, w is width

timid night
red flower
#

3 on the collection

clear ocean
red flower
#

press tab to see the shortcuts

stiff locust
#

Somebody make the hologram sprite bounce like the DVD logo

#

right now

red flower
clear ocean
#

is there some way to do that for lua like check if it has that kind of children something like floating_sprite isn't nil?

red flower
#

if newcard.children.floating_sprite then

clear ocean
#

thanks 👍 ill add that when i get back from therapy since it's in about fifteen minutes

long sun
#

i know you can't see the whole line of code, but why is this displaying red not active, instead of green active, whenever i'm able to use it?

#

i'm certain that the function is returning the correct value

#

is the main_end not being kept up-to-date?

red flower
#

main_end is remade every time you hover it

long sun
#

i don't get it then -3-"

red flower
#

<@&1133519078540185692>

long sun
#

beat me to it ^^;

#

all the other usernames were in the way

polar tulip
#

Preside @red flower

#

Praise *

red flower
long sun
#

i'm so confused 😭

crystal perch
#

W catan

stiff locust
#

chat how do I get profile stats

#

as values in the code

wintry solar
long sun
#

true

#

you can see that the card may be used, so it must be returning the correct value there too

wintry solar
#

oh

ocean sinew
#

how to do something whenever a joker gets destroyed

crystal perch
#

how do i check if the triggered context returned chips, mult, or xmult via post_trigger

slim ferry
#

other_ret should be a copy of the return table

short girder
#

required code context

red flower
crystal perch
slim ferry
#

Yeah im pretty sure

red flower
crystal perch
#

oh you need to call other_context in tandem with other_ret

red flower
#

no i do it there because i check for it to affect specific suits

crystal perch
#

i'll just send the code

local return_whitelist = {
    chips = true,
    mult = true,
    xmult = true
}

SMODS.Joker{ -- +Mult per other Joker triggered
    key = 'copy_cat', --joker key
    loc_txt = { -- local text
        name = 'Copy Cat',
        text = {
          '{C:mult}+4{} Mult per other {C:attention}Joker{}',
          'ability scored'
        }
    },
    atlas = 'Jokers', --atlas' key
    pos = {x = 1, y = 1},
    rarity = 1, --rarity: 1 = Common, 2 = Uncommon, 3 = Rare, 4 = Legendary
    --soul_pos = { x = 0, y = 0 },
    cost = 5, --cost
    unlocked = true, --where it is unlocked or not: if true, 
    discovered = true, --whether or not it starts discovered
    blueprint_compat = true, --can it be blueprinted/brainstormed/other
    eternal_compat = true, --can it be eternal
    perishable_compat = true, --can it be perishable
    config = { 
        extra = {
            mult = 4 --configurable value
        }
    },
    calculate = function(self, card, context)
        if context.post_trigger and not context.blueprint then
            for i, _ in pairs(return_whitelist) do
                if context.other_ret[i] then
                    return {
                        card = card,
                        mult_mod = card.ability.extra.mult,
                        message = '+' .. card.ability.extra.mult .. ' Mult',
                        colour = G.C.MULT
                    }
                end
            end
        end
    end
}
red flower
#

this is the effect

crystal perch
#

similar to mine but i just want it to be if another joker scores at all it gives +4 mult

red flower
#

then just ignore the other_context stuff

#

the main idea is the calc_keys part

crystal perch
#

i'll try that out thank you

stiff locust
#

anyone know how i can get profile completion percentages

#

like how much you've discovered/got sticker on/unlocked

#

i figured it out

dapper sun
#

how do i do something at the start of every hand?

#

what context do i use

sturdy compass
#

Probably context.before?

frosty rampart
#

context.initial_scoring_step if you want it to count in score, context.before otherwise
(context.before comes before the score is re-set to the base poker hand's value, so that e.g. space joker can level up the hand and have it count for scoring in that same hand)

dapper sun
#

ty

stiff locust
#

is there a context.before that comes after the score is re-set to base hand value

frosty rampart
#

yes, context.initial_scoring_step

stiff locust
#

ok

#

holy water is so back

#

obligatory tsunami plug

timid night
#

Hey is there a reason why this isnt working?

remove_from_deck = function(self, card, from_debuff)
        -- Tests if context.joker_main == true.
        -- joker_main is a SMODS specific thing, and is where the effects of jokers that just give +stuff in the joker area area triggered, like Joker giving +Mult, Cavendish giving XMult, and Bull giving +Chips.
        print("joker removed from deck")
        if from_debuff == true then
            return
        end

        print("not debuffed")
        return {
            mult_mod = card.ability.extra.mult,
            message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } }
        }
    end

"joker removed from deck" and "not debuffed" print, but no mult is added or message appears, ive tried without using return also.

#

this is in a joker

#

(also you might be able to tell, but I dont have any lua experience)

wintry solar
#

return values are only for calculate functions

timid night
#

Ive tried without using return, but it doesnt do anything either

wintry solar
#

you can't do that in remove_from_deck

mystic river
#

remove from deck happens when the card is removed
is this an effect you want to have happen when the card is removed?

dapper sun
#

have you tried using SMODS.calculate_effect instead of a return

timid night
#

Basically, my card stores mult each round, and when it is sold, it is supposed to add the mult to the scoring, ive tried using context.selling_card but it didnt work either

timid night
#

how do I use that?

wintry solar
#

that's not going to work

#

you can't apply mult outside of the scoring steps

dapper sun
#

SMODS.calculate_effect({message struct}, card)

timid night
#

Ah alright, do you think there is a workaround or is this card just fundamentally not going to work>

wintry solar
#

in a couple of days, there'd be a workaround

#

it wouldn't be clean, but it would function as you like

timid night
#

how do you mean?

wintry solar
#

there are new features coming to smods that would make this possible in a jank way

unkempt thicket
#

How can i make this not trigger the repetition warning? if context.individual and context.cardarea == G.hand and not context.end_of_round then if context.other_card.edition ~= nil then local text,disp_text,poker_hands,scoring_hand= G.FUNCS.get_poker_hand_info(G.play.cards) SMODS.score_card(context.other_card, {cardarea = G.play, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, post_joker = true, edition = true, pre_joker = true}) end end

stiff locust
#

is there a way I can see if the current profile used the unlock all button

#

wait i think i found it

#

is it profile.progress.all_unlocked or profile.all_unlocked

#

it's the second one

hallow slate
#

How would I get the cards scored in the winning hand of a blind?

faint yacht
#

context.after, context.full_hand or context.scoring_hand and G.GAME.chips > G.GAME.blind.chips?

hallow slate
faint yacht
#

I have this Joker that applies enhancements to cards before they're drawn off, so yes.

hallow slate
#

Oh sweet! Thanks Ali!

clear ocean
#

going to probably have to like scale it

#

but it seems to work

#

okay i don't think it is working or something

red flower
#

i think you need to mess with the shader then

clear ocean
#

If I’ll be honest that seems to be too much for me so I’ll just not include the legendaries and holograph sorry balalas

stiff locust
clear ocean
#

Right now the soul pos cards like hologram, soul, and the legendaries aren’t scaled correctly for the main menu

#

Tried scaling by the floating sprite but it doesn’t seem to work

stiff locust
#

could you not use SMODS.drawstep to redraw their soul_pos sprites manually at the right scale and offset

#

if it can animate a soul_pos surely it can do that

wispy falcon
#

What context would be good to use for destroying a consumable after the hand scored? And how do I prevent all consumables of the same type to be destroyed when I want to destroy only the one that has been used?

hushed field
wind steppe
#

what do i access to get the current ante

#

also does context.end_of_round evaluate before or after the ante increase

wispy falcon
wintry solar
wispy falcon
wind steppe
#

check theautumncircus's fire potion code

wispy falcon
hushed field
#

Or confections in Kino, which function almost exactly like that

wintry solar
#

don't do that

red flower
#

try SMODS.destroy_cards(card)

runic pecan
#

Has anyone done a blueprint enhancement yet?

wispy falcon
faint yacht
#

-# The juice up of swap = true in return also occurs before the card scoring animations kick in, lmao.

wispy falcon
faint yacht
#
return {
    swap = true,
    message = localize('toga_pagefileuse'),
    colour = G.C.PURPLE,
    sound = not silent and togabalatro.config.SFXWhenTriggered and "toga_mmeclap",
    pitch = not silent and togabalatro.config.SFXWhenTriggered and togabalatro.randompitch(),
    message_card = context.other_card
}

Or... like usual, I may be missin' something.

wintry solar
#

no it was broken

#

thanks

faint yacht
#

👍

mossy quest
#
    j_rickie_mirror = {
        name = 'Mirror Joker',
        text = {
            "Swaps the {C:chips}chips{} and",
            "{C:red}mult{} of your hand."
        }
    },
},```
```SMODS.Joker {
    key = 'mirror',
    rarity = 3,
    atlas = 'mirrored_joker',
    pos = { x = 0, y = 0 },
    cost = 7,```
all of a sudden the localized text for my joker quit loading
Fixed!!!
clear ocean
#

@stiff locust something like this?

stiff locust
#

I don't get how the code exactly works but yeah something like that

clear ocean
#

is there a way to like a key for the floating sprite?

wispy falcon
#

Okay, how do I change the background/text color of my badge (on the card info) and button (in the collection) of my consumable type?

clear ocean
wispy falcon
#

But I mean on my consumable type, not my mod. Just like I said

frosty rampart
clear ocean
clear ocean
red flower
#

i dont

clear ocean
#

thats okay

wispy falcon
clear ocean
#

is there a way to have the joker i added to be behind the ace

frosty rampart
clear ocean
#

maybe have the ace actually be a random rank and suit too, maybe...

wispy falcon
frosty rampart
#

dunno lmao
i tried to address that by outright replacing primary_colour with text_colour in my initial PR (and secondary_colour got moved to bg_colour), but for very understandable backwards compatibility reasons it doesn't do that anymore

wispy falcon
#

Anyways, it works now. Thank you so much >W<

rapid stag
#

what context do i check if i want to do something when another joker is destroyed? cirLost
do i just do context.remove_playing_cards with cardarea == G.jokers?

clear ocean
#

i figured what i could do is remove the ace and spawn in another card and have the first one a playing card

#

there's emplace but not sure if there's one to remove a card from G.title_top

unique steeple
#

does anyone know why my Balatro is crashing when i play cards and try to score i keep getting this error