#💻・modding-dev

1 messages · Page 416 of 1

rugged pier
#

wait what just happened

viral ember
#

50$ steam gift card

red flower
rugged pier
#

missed out on free money 😔

#

/j

junior tendon
#

I'm very new to balatro modding (like literally started last night) and I'm trying to make a joker that turns scored 7s into lucky cards. For some reason, I keep getting crashes because other_card was a nil value (crash attached). This happens as the hand is played, but before the cards are scored. Does anyone have a fix for this or should I try to find a completely different way to code it? (joker code also attached)

plush depot
#

if i wanted to make an enhancment would i need to make texture for every card in the game or just the card look

junior tendon
#

I believe just the card look

#

the base game has them seperate so unless it affects the actual numbers or something then the card look alone should work

plush depot
#

it might affect the actual numbers

#

i just need it to make a kind of smeared look and itll be like "chip value randomized"

#

would the assets go in x1 and x2? asset for just backgrounmd

gusty hemlock
plush depot
#

gotcah

gusty hemlock
#

You should be able to check them in the resources folder

#

x1 is way lower resolution and using a different sprite sheet entirely and x2 is bigger

#

Enhancements are just a layer, too

viral ember
desert ore
#

does lovely pattern patches only affect full lines of code and not like, snippets of them

gusty hemlock
plush depot
#

is there a way to make the badge color change between multiple different colors
(where it says the mod name)

viral ember
#

bump?

crystal kiln
#

I've been trying to get a specific mechanic for a Joker that I'm modding, but I haven't been able to get it to function properly without crashes or just having it not work, The concept is that every time you play a Flush, the joker would add 1x mult, (similar to the square and droll jokers). I am very new to modding but I have played modded balatro before..

glad osprey
hybrid shadow
#

whats the cardarea for the scoring part of the played hand again

hybrid shadow
snow heron
#

how to check if a card is polychrome? i tried doing card:get_edition() == "e_polychrome" but that didn't seem to do it

glad osprey
north lodge
glad osprey
hybrid shadow
glad osprey
#

whole hand

gilded bramble
hybrid shadow
glad osprey
#

the same card area

#

i think

gilded bramble
#

Just.... Straight up ^3

wild escarp
#

What would I use to make a custom rule to edit the starting deck of a challenge?

glad osprey
#

you gotta destroy 20 exotics to get it

gilded bramble
#

Who up exponenting

hybrid shadow
glad osprey
#

yea

#

i dont think they have an individual area for scored cards

#

what are you trying to do

hybrid shadow
#

i have a sticker, and i want the if statement to check if the card is in the scoring part of the played hand

glad osprey
#

ah

gilded bramble
#

I love it when code messes up for a reason you can't even see

glad osprey
#

look at how green seal from cryptid checks

hybrid shadow
normal crest
glad osprey
#

yea\

#

just flip its logic

normal crest
#

just a cards table iirc

obtuse silo
#

real quick
how would i remove the ability to reroll

hybrid shadow
normal crest
wintry solar
normal crest
#

and by that I mean the button being enabled

wild escarp
normal crest
#

Yeah idk that

timid zinc
#

how do i make the juice up effect happen on the joker in context.individual and context.cardarea == G.play?

hybrid shadow
wintry solar
#

context.cardarea == G.play

hybrid shadow
normal crest
#

That's all I can think of

wintry solar
timid zinc
normal crest
wintry solar
#

but potentially, yeah

normal crest
wild escarp
#

the back apply to run function

normal crest
#

idk in what file exactly but somewhere in the source code, you only really need to know its parameters

#

Which idk off the top of my head

obtuse silo
wintry solar
# normal crest they said on scoring

yeah but it still depends on what exactly the effect is, they might just want some to trigger on cards that are scoring, rather than when they score

normal crest
#

i just hope they understood only the cardarea check isn't sufficient

normal crest
wild escarp
#

Would someone potentially know of a mod that has a challenge with random cards in deck?

timid zinc
wintry solar
timid zinc
#

So like this?

#
            card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_add
            return {
                message = localize{type='variable',key='a_xmult',vars={card.ability.extra.xmult_add}},
                colour = G.C.RED,
                juice_card = card
            }
end```
hybrid shadow
#

how do i get the game to let the player play hands larger than 5 cards

north lodge
#

Doesn't Cryptid have that capability?

#

You can peak at their sauce

hybrid shadow
#

cryptid is largely spaghetti code due to being a community project but ill see if i can find out where it may be

faint yacht
#

With the HandLimitAPI, it is SMODS.change_play_limit(mod), where mod is number to increase by.

hybrid shadow
rugged pier
#

how do i get the current stake of the game?

faint yacht
hybrid shadow
#

anyway its saying that change_play_limit is a nil value

faint yacht
#

SMODS.change_play_limit(), full function and a thing as of 0530b.

hybrid shadow
#

ah i gotta switch smods versions again, hope nothing breaks

faint yacht
#

And the apply function executes for applying/removing of sticker.

hybrid shadow
#

now its doing smth rlly weird

faint yacht
#

¯_(ツ)_/¯

wintry solar
#

what's the effect of the sticker?

hybrid shadow
wintry solar
#

so you'd want to look at context.hand_drawn I think, and then modify the limits when it's contained in the drawn cards, and then check for it being played/discarded and turn them back down

hybrid shadow
# hybrid shadow

the only real issue is that the card with the sticker keeps increasing the number whenever other cards get selected (and the number didnt go down when it was discarded so i gotta fix that too)

faint acorn
#

I tried to make a joker that prints out another joker called 'package' however an error gets given when the joker attempts to create a package. Any help is much appreciated

signal lotus
#

if im developing a mod how do i spawn in a joker to test it

hollow sphinx
#

is saying all vlc[number] audio files do not exist when i know for a FACT that they are in the right spot and have the right names. (might be deserved for the elseif spam though...)

hybrid shadow
wintry solar
wintry solar
plush depot
#

guys can u give me ideas for enhancments
red: x1.5 mult when scored
orange:
yellow:
green:
blue: +25-100 chips when scored
purple:
this is just what i have so far, its for my mod called colorful cards

hollow sphinx
#

NEVERMIND I DID IT IN THE WRONG FILE

hybrid shadow
hollow sphinx
#

now it's saying that it can't read the ogg bitstream

valid citrus
#

What is that mod that rerolls the run until u get a seed that gives u a legendary in the first skip pack

#

Also can i mod the game if i have it through xbox game pass

hollow sphinx
valid citrus
#

Where would i be able to mod balatro then

red flower
#

steam

valid citrus
#

Ok

#

Can i transfer the date from my xbox game pass balatro account to the steam one or no

wise turtle
#

what context could I use if I want my joker card to always be the first joker scored after playing cards

hybrid shadow
red flower
#

they can but it's the opposite of what they want

hybrid shadow
red flower
#

yes

hybrid shadow
#

is context.after the right one then?

#

or is that not right either

red flower
#

no that's after final_scoring_step

#

pre_joker might work? idk if that's passed to jokers
or before but idk if that handles scoring

serene granite
#

heyy can anyone help me with a consumable i am working on, i am able to destroy a selected card but i dont know exactly where to go from here. i have been reading through the steamodded resources but im not sure exactly how to do this

i want the consumable to only be able to destroy a selected card from a random rank, so the tarot chooses a random rank then the player can only destroy that card if they have it in hand

chrome widget
#

Whelp I didn't expect this feature to take nearly as much effort as it did

hybrid shadow
red flower
#

honestly, i have no idea how to check if a card has a sticker :3

#

but you would loop through context.hand_drawn which is a list of the cards drawn

hollow sphinx
serene granite
#

how do i have a random rank selected? like mail in rebate, i want to impliment that to a consumable

wise turtle
plush depot
#

can anyone tell me how i would get the texture of my enhancement and the actual enhancment working

#

i just need it to do x1.5 mult

red flower
#

like almost exactly

plush depot
#

dang

upbeat bronze
#

how simple would making a joker play a custom sound when obtained be

plush depot
chrome widget
#

I cant believe I had to rewrite half of the game's consumeables to get this to work 😔

#

Mod compatibility with this is gonna suck probably

red flower
red flower
plush depot
upbeat bronze
#

i expected something more complicated

chrome widget
plush depot
#

ah like jojos bizarre adventure right

#

i have never watched that show

red flower
chrome widget
#

Yeah this is a JoJo mod

hybrid shadow
serene granite
chrome widget
#

Regardless the primary implementation issue with this is that a ton of vanilla consumeables use the ability.consumeable table, which is a reference (not a copy) of the center they're drawn from. So not only did I have to add config values and change implementations for cards that weren't set up to have a variable selection limit, but I also had to change the others too otherwise I couldn't change the limit on an instanced card without it applying to all new instances of the card since it'd change the center's value too

#

Blegh

red flower
#

i love vanilla jank

long sun
#

hiya! quick question, how do you localise a Joker's name?

#

would it be localize("j_prefix_name_of_joker", "Joker")?

chrome widget
#

localize{type = 'name_text', set = 'Joker', key = card.config.center.key}

#

Or wherever you're drawing your key from

long sun
#

cheers ^^

timid zinc
#

Is there a built-in context that allows me to make cards drawn face-down through jokers? i've tried context.hand_drawn, but it flips AFTER it's drawn

red flower
#

context.stay_flipped

#

check context.to_area == G.hand and return { stay_flipped = true }

hybrid shadow
#

what's the same-card version of context.other_card? is it just context.card?

red flower
#

it's still other_card

long sun
#

mm, this code isn't getting any matches

#

i'm assuming G.P_CENTER_POOLS.phanta_Zodiac is nil — where would all Zodiacs be listed?

red flower
#

can't you print something to confirm that?

#

like print(j)

long sun
#

oh mm, i should've done that first, there are 13 tables in it

#

ya so it's not that then dfkjgndfjkg

north lodge
#

Is G.ROOM the game window?

red flower
#

i think so

long sun
#

mm, so j.config exists, but not j.config.center

#

i'm guessing there's no center, since it hasn't been created, but uhm. am a bit confused

red flower
#

j is the center

long sun
#

oh :D

#

ohhhh i see

#

so the config is where extra is ^^

red flower
#

yes

long sun
#

gotchaaaaaa

#

okay ya i can handle the rest from here ^^ cheers!

north lodge
#

Help me understand here:
create_UIBox_your_collection_jokers() creates the UI for the collection jokers. It does this by creating 3 different CardAreas which it then adds 5 jokers each to.
When it creates the CardAreas, it provides the X, Y, W, and H values, G.ROOM.T.x + 0.2*G.ROOM.T.w/2, G.ROOM.T.h, 5\*G.CARD_W, 0.95\*G.CARD_H

#

Nowhere is the Y different, yet the CardAreas show on different Y values when the collection comes up.

#

Are they being moved into the center somewhere else?

long sun
#

i think that's the spacing being handled automatically

#

UI elements act like HTML flexbox

#

(iirc, correct me if i'm wrong)

north lodge
#

I originally thought that would be the case; however, I've basically copy-pasted the whole function, and it yields me 3 stacking card areas on top of one another.

long sun
#

mm, weird -u- i was wrong then

north lodge
#

The fact that the Y value is G.ROOM.T.h makes me think they are off screen potentially and moved in? But that also feels wrong because (originally before I started messing with the Y value myself) the cards spawned halfway offscreen.

long sun
#

okay weird ^^ one more bug to solve

#

this line: names[#names + 1] = localize{type = 'name_text', set = 'phanta_Zodiac', cards[i].config.center.key}

#

is giving me ERROR

#

the set's key is phanta_Zodiac

#

printing cards[i].config.center.key gave me c_phanta_gemini

#

did i miss something? ^^

red flower
#

like ghostsalt said

long sun
north lodge
long sun
#

ah no, i see my own issue -u-

#

i forgot to add key =

red flower
long sun
#

YESSSSS OKAY MY JOKER FINALLY WORKSSSSS 🎉

#

thanku guys :D

north lodge
red flower
#

i made my own collection for my mod's menu if you need a reference

#

but it's basically just copying the normal one

north lodge
#

Part of my problem lies in that this is a custom ui element in the Options menu, but I think I've put myself in the right direction

upbeat bronze
#

how would i call and use the information of a card's suit in a hand

#

smods wiki does a piss poor job with describing anything regarding calling info

red flower
upbeat bronze
red flower
#

card.base.suit iirc

upbeat bronze
#

well yeah

#

but like

#

how

red flower
#

well that's a different question

#

SMODS.change_base

#

it's in the utility docs

hybrid shadow
#

alr i tried smth and am not sure why it isnt doing anything (sort of mishmash from vanillaremade, context from hanging chad and code from dna)

red flower
#

is this a joker?

hybrid shadow
#

sticker

#

im guessing i did smth wrong there

red flower
#

hmm try removing the cardarea check

upbeat bronze
#

im guessing this is nowhere close to anything that'll be functional

#

balatro in general has 0 good examples of jokers changing suits on cards. tarots yes but from what i see they work differently

hybrid shadow
red flower
upbeat bronze
#

is it really just that simple?

red flower
red flower
upbeat bronze
#

damn guess i was over complicating it

#

fair nuff

#

thanks

turbid crystal
#

how can i find the name of a joker if i have just the key

hybrid shadow
tardy juniper
#

okay... all of the values in the menu show nil.
i don't know what's wrong, i don't know what to do
when i trigger the joker the game crashes

tardy juniper
#

well problem is this is i kinda have no clue what i'm doing

red flower
tardy juniper
#

i'm using like a template... just changing values and functions how i presume it would function
the thing is i did it with another joker and that one works just fine

red flower
#

does that one have a loc_vars function

hybrid shadow
# tardy juniper uh.......
loc_vars = function(self, info_queue, card)
 return {
  vars = {
   card.ability.extra.poker_hand,
   card.ability.extra.repetitions,
   card.ability.extra.rep_mod
  }
 }
end```
tardy juniper
#

ohh

#

okay lemme try

#

okay... the game no longer crashes. that's a good thing

#

made another mistake in the if, i guess

#

thanks :3

#

the numbers show up too!

coarse plank
#

the art and rarity show up correctly for the second joker show up correctly however the name and description are gone.

desert ore
#

are there any decent regex guides or like a regex generator thing? I can't really wrap my head around this

rapid stag
#

uhhhhhhhh why is my condition not entering? can_use should be returning true in this condition

tardy juniper
#

stuck again... might be a stupid question, but i've never programmed in this language before either.
how can i make it so the retriggers increase and trigger when the played hand matches the one in config, and contains an ace?

red flower
granite nymph
#

it just works

rapid stag
red flower
#

are you using samplejimbos?

tardy juniper
#

it is, and yeah

red flower
tardy juniper
#

which ones are good?

#

i couldn't really find any

tardy juniper
#

thank you

desert ore
# red flower what are you trying to do?

add and not context.retrigger_joker to every instance of not context.blueprintunless I'm misunderstanding how pattern patches work, or there's a way to do that with hooking, but I think regex is the only way? idk

red flower
#

uhh why?

#

wouldn't that break a lot of mods?

desert ore
#

Idk, I don't want retrigger jokers to double scale things. and I don't want to comb through every joker

#

I could make it a setting to turn on and off as well

#

I'm trying to make retrigger effects more reasonable but maybe that's foolish

red flower
#

hmm no idea then, I have used regex patterns but never for multiple lines

desert ore
#

god help me

coarse plank
#

silly question but is the little joker text on the sides of most jokers a png i can download, I want to make sure its sized correctly.

upbeat bronze
#

am i missing something here?

red flower
#

yes, the second calculate overrides the first one and also that's not how add_to_deck is written at all

upbeat bronze
#

alright...

rapid stag
#

i actually wanna bump this in case anyone knows anything

red flower
#

why is there an if, why is it in calculate

upbeat bronze
#

game told me to put an if there

#

or rather it said expected then

#

i assumed every then needs an if

red flower
#

yes

#

but i didnt write then

upbeat bronze
#

ok but it crashes without a then

#

unless it shouldnt be a calculate at all?

red flower
#

that's what I'm saying!!!

#

please check vanillaremade

#

ctrl+f add_to_deck

formal parrot
#

Guuurrrrrr

red flower
#

gura

formal parrot
#

Rip gura

red flower
#

o7

formal parrot
#

o7

red flower
#

never watched her

formal parrot
#

Same

red flower
#

i liked amelia

formal parrot
#

Who’s amelia

red flower
#

watson

formal parrot
#

Oh

#

I like neuro sama

#

Didn’t amelia watson retire

red flower
#

yes

upbeat bronze
red flower
#

show code

upbeat bronze
#

oh i had 1 too many ends

chrome widget
#

Hmm, why do you have to assert SMODS.modify_rank?

red flower
#

you don't have to but if you do it will give you useful info and crash properly if it fails

hardy viper
#

and then crabs ate her or smth

red flower
#

deserved for being british

formal parrot
#

The British aren’t real

formal parrot
upbeat bronze
#
    key='TDSOTM',
    loc_txt={
        name='The Dark Side Of The Moon (1973)',
        text={
            "If {C:attention}played hand{} contains {C:attention}two cards{}, the right card",
            "becomes the {C:attention}suit{} of the left card.",
        }
    },
    blueprint=false,
    perishable=true,
    eternal=true,
    unlocked=true,
    discovered=true,
    rarity = 1,
    cost = 4,
    atlas = 'vinyl',
    pos = {x = 5, y= 0},
    config={ extra = {size=2}},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.size } }
    end,

    calculate = function(self, card, context)
        if context.joker_main and #context.full_hand == card.ability.extra.size then
            SMODS.change_base(context.full_hand[2], context.full_hand[2].base.suit)
        end
    add_to_deck = function(self, card, from_debuff)
            play_sound(vinyl_TDSOTM)
        end
    end
}```
didnt change the suit, didnt play the sound. im suffering
chrome widget
red flower
upbeat bronze
#

whuh

red flower
#

also i made a typo before the second [2] should be a [1]

chrome widget
#

If it's not technically needed, I'll remove it I suppose

upbeat bronze
#

do i have to add it above the calculate?

red flower
formal parrot
#

N have you played entropy before ?

red flower
#

no

upbeat bronze
#

well i cant add another end between the calculate and add to deck, the game crashes if i do that

formal parrot
#

Fuck :D

red flower
#

i installed entropy to troubleshoot something but that was it

formal parrot
#

Do you know how i can add the jimbo that talks when you lose

#

To the start of the game

#

To welcome you

red flower
north lodge
#

Alright, I almost got everything, the last part is in this, for some reason that option cycle button is outside of the UI when I have the (inner darker) box element.
Relevant code (see label):

return {
    n = G.UIT.ROOT,
    config = {
        align = "cm",
        padding = 0.05,
        colour = G.C.CLEAR,
    },
    nodes = {
        {
            n = G.UIT.C,
            config = {
                align = "cm",
                padding = 0.05,
                r=0.1,
                colour = darken(G.C.UI.TRANSPARENT_DARK, 0.25),
            },
            nodes = { -- cut out for space, irrelevant for this
            }
        {
            n = G.UIT.C,
            config = {
                align = "cm",
                padding = 0.05,
                r=0.1,
                colour = darken(G.C.UI.TRANSPARENT_DARK, 0.25),
            },
            nodes = {
                { --\/\/\/ THIS
                    n = G.UIT.C,
                    config = {
                        align = "cm",
                        padding = 0.05,
                        r=0.1,
                        colour = darken(G.C.UI.TRANSPARENT_DARK, 0.25),
                    },
                    nodes = Showman.deck_tables,
                }, --/\/\/\ THIS
                create_option_cycle({options = joker_options, w = 4.5, cycle_shoulders = true, opt_callback = 'showman_ui_joker_page', current_option = 1, colour = G.C.RED, no_pips = true, focus_args = {snap_to = true, nav = 'wide'}}),
            },
        },
    },
}
#

I have a feeling it is because of the type n = G.UIT.C but I am not really sure what else it would need to be in order for the option_cycle to end up inside, when it is normally inside before the dark box is added.
Is it a height issue and it gets pushed out because it runs out of space?

north lodge
upbeat bronze
#

ive tried
end,
end

ive tried
end,

ive tried
end,
end,

#

only one where it doesnt crash on startup is single end no comma

north lodge
red flower
red flower
#

sadly it's hard to read on mobile

upbeat bronze
red flower
#

can it be a screenshot pls

#

but i think add_to_deck is still inside calculate

upbeat bronze
normal crest
#

you have an extra end inside add_to_deck

red flower
#

remove the last end
and in the part you have

    end,
end,

change it to

    end
end,
#

also blueprint, perishable and eternal are not correct fields

upbeat bronze
#

oh

#

needs _compat dont it?

rapid stag
#

wait, can_use is called every frame you have the consumable highlighted? cirSlain wacky

red flower
rapid stag
red flower
#

if the button has a condition

upbeat bronze
#

aight the effect works now but the audio still doesnt play and im not sure if thats due to me messing up the file/folder structure or if the code doesnt work

red flower
#

oh play_sound needs a string

upbeat bronze
#

yeah its prefix_key isnt it?

red flower
#

yes but you're not giving it a string

#

a string goes between quotes

upbeat bronze
#

oh

#

so

play_sound(vinyl_TDSOTM

#

then i wanna say...

#

,"filename")?

red flower
#

no

upbeat bronze
#

was worth a shot

red flower
#

play_sound("vinyl_TDSOTM")

upbeat bronze
#

oh

red flower
#

also you need to define an SMODS.Sound if you haven't

upbeat bronze
#

and that would just be at the top like

red flower
#

yes

upbeat bronze
#

how...would i define that

#

smods wiki doesnt have an example for defining one

#

unless im just stupid

coarse plank
#

I don't know what I am doing, I am just copying perko code and hoping for the best, I get an error message however

red flower
coarse plank
#

make a copy of the fool when playing full/flush house

rapid stag
#

someone remind me the correct syntax for calling localize with a_xmult?

red flower
high sinew
#

Just curious if there’s a way to add a consumable slot in general for base game

#

I know there is not sure on how to use

red flower
#

G.consumeables:change_size(1) should work i think

#

or changing G.consumeables.config.card_limit

high sinew
#

Ok bet

#

Is there a way to make a consumable always negative too?

upbeat bronze
red flower
high sinew
#

Where that specific consumable is always negative in packs shop etc

#

Might do this instead

red flower
#

you can make it negative in set_ability

high sinew
#

Would you have to do this in the booster or can u just do it in card

red flower
#

you can add it to the card

high sinew
#

Ok bet I’ll try it out

coarse plank
red flower
#

show code

coarse plank
#

if context.before and next(context.poker_hands['Full House']) then
G.E_MANAGER:add_event(Event({
func = function()
SMODS.add_card{key="c_fool"}
return true
end
}))
end

red flower
#

oh ok sorry i didn't even notice that wasn't inside calculate

coarse plank
#

ah, do i just add calculate = function(self, card, context) before it?

coarse plank
#

thank you so much, you have helped me like 3 times in the past 24 hours xd

daring fern
#

turbid crystal
#

is there a way to iterate through the keys of all jokers in the game without having to write them all out

rapid stag
wild escarp
#

So, the idea of this joker is that it gives eternal to the joker on its right, but eternal stays when it's sold, and it removes eternal from previously eternal cards, and only one works at a time, can anyone help me?

calculate = function(self, card, context)
    if G.jokers then
        local other_joker = {}
        local protected_joker = {}
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i].config.center.key == 'j_willatro_bodyguard' then 
                protected_joker[#protected_joker+1] = G.jokers.cards[i+1] 
                for j = 1, #protected_joker do
                    protected_joker[j]:set_eternal(true)
                end
            end
            for j = 1, #protected_joker do
                if G.jokers.cards[i] ~= protected_joker[j] then
                    other_joker[#other_joker+1] = G.jokers.cards[i]
                    for k = 1, #other_joker do
                        other_joker[k]:set_eternal(nil)
                    end
                end
            end
        end
    end
end
modern kindle
#

I dont understand what you're saying
It stays eternal but loses eternal?
What do you mean by previous jokers with it lose it

normal crest
#

My understanding is that you buy it, every card loses eternal, but the card to its right is somehow always eternal?

modern kindle
#

But what if a different card is to its right because this one is sold?
Said eternal stays when it is sold, meaning a new card would get eternal if its sold and it should lose eternal status

wild escarp
#

Well, if you put a joker to the right of it, that joker becomes eternal, all fine. But when you sell this joker, that other joker will remain eternal, not good. Now, if you get an eternal joker and this card, it removes eternal from that joker if it's not on the right of this joker. Very confusing, I know.

normal crest
#

So while you have the joker the card to its right is always eternal, and the only eternal?

#

or is that what is not supposed to happen

daring fern
wild escarp
#

How would I do that?

sonic cedar
#

i have returned with what i hope is a simple question!

how do i check for when a glass card gets shattered

daring fern
# wild escarp How would I do that?

You would get the joker to right put eternal on it and do card.ability.flaggedbyeternal = true then you would check in update if there are jokers not to the right that are eternal and have that flag and remove it.

frigid cargo
#
    config = { extra = {chips = 50},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.chips, card.ability.extra.chips + ((G.GAME.consumeable_usage_total and G.GAME.consumeable_usage_total.spectral or 0)*100)}}
    end,
    calculate = function(self, card, context)
        if context.using_consumeable and not context.blueprint and context.consumeable.ability.set == "Spectral" then
            return {
                message = "+".. 100
            }
        end
        if context.joker_main then
            return {
                chips = card.ability.extra.chips +
                    ((G.GAME.consumeable_usage_total and G.GAME.consumeable_usage_total.spectral or 0)*100)
            }
        end
    end,
}

im tryna add 100 chips for every spectral card but it doesnt update the "currently +50" (50 is the starting)
(im also really new to this so idrk what im doing)
(the code works its just the text i dont understand)

normal crest
#

what does your loc_txt look like

sonic cedar
#

can you send the txt

#

yeah

frigid cargo
#
loc_txt = {
        name = 'Gabba Ghoul',
        text = {
            '{C:blue}+100{} Chips per {C:spectral}Spectral{}',
            'card used this run.',
            '{C:inactive}(Currently {C:blue}+#1#{C:inactive})'
        }
    },

ignore the name im not the drawer or the person making the ideas

normal crest
#

so the number between # corresponds to the order in which you return vars in loc_vars

#

so #1# refers to the first one you return, which is 50

#

which is why it says at 50 all the time, you want to make that #2#

frigid cargo
#

ah

upbeat bronze
#

what the hell did i just find

#

what is deep wiki

frigid cargo
sonic cedar
urban wasp
sonic cedar
#

if i knew nearly enough about tags id help

#

maybe your recursion loop is busted

urban wasp
#

yeah i mean i just took from cryptid's epic tag's code

sonic cedar
#

are all your returns there?

urban wasp
#

wdym

sonic cedar
#

cause if its a stack overflow maybe you left something open

urban wasp
#

i mean

#

this is the exact same code as another tag that i have that has the same intended effect but for an exotic instead

#
SMODS.Tag {
    key = "exotic_tag",
    atlas = "crp_tags",
    pos = { x = 2, y = 0 },
    min_ante = 4,
    config = { type = "store_joker_create" },
    apply = function(self, tag, context)
        if context.type == "store_joker_create" then
            local rares_in_posession = { 0 }
            for k, v in ipairs(G.jokers.cards) do
                if v.config.center.rarity == "cry_exotic" and not rares_in_posession[v.config.center.key] then
                    rares_in_posession[1] = rares_in_posession[1] + 1
                    rares_in_posession[v.config.center.key] = true
                end
            end
            local card
            if #G.P_JOKER_RARITY_POOLS.cry_exotic > rares_in_posession[1] then
                card = create_card("Joker", context.area, nil, "cry_exotic", nil, nil, nil, "cry_eta")
                create_shop_card_ui(card, "Joker", context.area)
                card.states.visible = false
                tag:yep("+", G.C.RARITY.cry_exotic, function()
                    card:start_materialize()
                    card.misprint_cost_fac = 2
                    card:set_cost()
                    return true
                end)
            else
                tag:nope()
            end
            tag.triggered = true
            return card
        end
    end,
    crp_credits = {
        idea = { "Unknown" },
        art = { "Glitchkat10" },
        code = { "Glitchkat10" }
    }
}
#

i changed nothing but the rarity mentioned

sonic cedar
#

oh hey youre the exotic guy

urban wasp
#

and this tag works

#

so i have no idea

urban wasp
sonic cedar
#

is mythic in your pool

urban wasp
#

what exactly do you mean

sonic cedar
urban wasp
#

how do i "do" a rarity 😭

#

i didn't make it either

#

maybe you're misremembering

sonic cedar
#

were you not the guy who posted abt it before

urban wasp
#

i don't think so

sonic cedar
urban wasp
#

i see the issue now

#

i just have to add pools = { ["Joker"] = true }, to the mythic rarity definition now right

sonic cedar
#

-# oh my god i have no idea what do i even say here
yeah probably try it out chuck_grin

brittle tide
#

I'm trying to make a joker that gives a 25 percent decrease to shop prices when held. however, when I sell it, it keeps the discount and I was wondering if there was a way to get it to remove the discount.

urban wasp
oblique pond
#

flip a coin, it will work if you guess right

urban wasp
#

-# okay i don't know where it went

glad osprey
sonic cedar
urban wasp
#

oh here

#
SMODS.Joker {
    key = "statically_charged",
    config = { extra = {  } },
    rarity = "crp_exomythic",
    atlas = "crp_jokers",
    pos = { x = 1, y = 6 },
    soul_pos = { x = 2, y = 6, extra = { x = 3, y = 6 } },
    cost = 200,
    blueprint_compat = true,
    demicolon_compat = false,
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue + 1] = G.P_CENTERS.e_crp_overloaded
        return { vars = {  } }
    end,
    add_to_deck = function(self, card, from_debuff)
        if G.GAME.modifiers.cry_force_edition and not G.GAME.modifiers.cry_force_edition_from_deck then
            G.GAME.modifiers.cry_force_edition_from_deck = G.GAME.modifiers.cry_force_edition
        elseif not G.GAME.modifiers.cry_force_edition_from_deck then
            G.GAME.modifiers.cry_force_edition = "crp_overloaded"
        end
    end,
    remove_from_deck = function(self, card, from_debuff)
        if G.GAME.modifiers.cry_force_edition_from_deck ~= "Nope!" then
            G.GAME.modifiers.cry_force_edition = G.GAME.modifiers.cry_force_edition_from_deck
        else
            G.GAME.modifiers.cry_force_edition = nil
        end
    end,
    crp_credits = {
        idea = { "Glitchkat10" },
        art = { "Tatteredlurker" },
        code = { "Glitchkat10", "MathIsFun_" }
    }
}
sonic cedar
#

i didnt even see ur message im sorry 😭

urban wasp
#

isn't really a great example because of cryptid-specific variables but

brittle tide
#

thank you guys

urban wasp
#

🔥

oblique pond
urban wasp
#

yea

#

it's more fun though

#

kind of

#

(misprintize kill me now)

oblique pond
#

let me tell you how much I’ve come to hate Cryptid:misprintize() since I began to live (I have not had to mess with it yet)

urban wasp
#

i spent like an hour trying to get additive value manipulation working

north lodge
#

This guy still does NOT want to fit cleanly underneath the darker box, wtf

urban wasp
#

the jankiness of cryptid's code and my mediocre coding experiemce made it very difficult

sonic cedar
# brittle tide I'll try that out

basically

add_to_deck = function(self, card, from_debuff)
    --code that does the discount
end,
remove_from_deck = function(self, card, from_debuff)
    --code that does the discount but opposite
end,
brittle tide
#

Alright cool

daring fern
sonic cedar
#

oh so it really was that

sonic cedar
daring fern
urban wasp
#

chudhit 🔥

north lodge
#

How do I make a UI element that is just text? I can't find anything that is like just a label, only create_text_input

hollow sphinx
#

trying to change cards into an enhancement from a consumeable but using extra = 'prefix_key' doesn't work

sonic cedar
wild escarp
#

I think I've made progress, however:
A: Jokers to the left of this card keep eternal
B: Any jokers made eternal by this one stay eternal after it's sold
C: This joker can remove eternal from previously eternal jokers
D: Two of these jokers do not work together(minor)
E: idk, this stuff is just confusing

calculate = function(self, card, context)
    if G.jokers then
        local other_joker = {}
        local protected_joker = {}
        for i = 1, #G.jokers.cards do
            protected_joker[#protected_joker+1] = nil
            card.ability.flaggedbyeternal = false
            if G.jokers.cards[i].config.center.key == 'j_willatro_bodyguard' then
                protected_joker[#protected_joker+1] = G.jokers.cards[i+1]
                for j = 1, #protected_joker do
                    protected_joker[j]:set_eternal(true)
                    card.ability.flaggedbyeternal = true
                end
            end
            for j = 1, #protected_joker do
                if G.jokers.cards[i] ~= protected_joker[j] or (G.jokers.cards[i]:set_eternal() == true and card.ability.flaggedbyeternal == true)then
                    other_joker[#other_joker+1] = G.jokers.cards[i]
                    card.ability.flaggedbyeternal = false
                    for k = 1, #other_joker do
                        other_joker[k]:set_eternal(nil)
                    end
                end
            end
        end
    end
end
hollow sphinx
sonic cedar
#

mod_conv is one variable

#

like card.ability.mod_conv

sonic cedar
sonic cedar
merry frost
#

Are all the scores in Balatro calculated at once or are they done as the animation plays?

sonic cedar
sonic cedar
upbeat bronze
#

is there anything noticably wrong here?

merry frost
sonic cedar
upbeat bronze
#

but im not sure if anything there will mess with anything else

sonic cedar
#

only one way to find out,,,

upbeat bronze
#

ai helped me a bit with it

hollow sphinx
sonic cedar
#

man what is this 😭

sonic cedar
north lodge
daring fern
north lodge
hollow sphinx
sonic cedar
hollow sphinx
#

m_???

#

ive been missing that :(

sonic cedar
#

you need that...

hollow sphinx
#

good to know :((

frigid cargo
#

how do i find the limit for consumables

sonic cedar
#

count until you find it

merry frost
#

Agh damn

#

Oh well

hollow sphinx
sonic cedar
#

did you

#

what's the config now

hollow sphinx
#

this is the config, SURELY this is right

sonic cedar
#

mod_conv

hollow sphinx
#

omg

sonic cedar
#

you didnt change it 😭

hollow sphinx
#

how i miss these things is beyond me...

#

and it's still doing nothing..

#

surely everything in the config at least is right now 🥲

sonic cedar
#

...can you send the full code

hollow sphinx
#

yeah...

daring fern
#

card.Enhancement doesn't exist.

upbeat bronze
#

Are we all mature like...is it ok for a mod to contain a swear? I genuinely dont know what community consensus on that is

frigid cargo
#

whats the code for counting the amount of consumables you have at the current moment?

willow plinth
upbeat bronze
#

Aight

hollow sphinx
daring fern
frigid cargo
north lodge
#

What do the different UI element G.UIT._ types mean? I figure T is for text, O is for object, but I am really struggling to understand the differences.

sonic cedar
frigid cargo
daring fern
frigid cargo
#

ok thanks

urban wasp
sonic cedar
urban wasp
#

do you not remember the conversation around there

#

😭

#

you told me to insert the mythic rarity into the joker pool

sonic cedar
#

i remember,,,

urban wasp
#

i did and it no workie

#

here

sonic cedar
#

I SAID I REMEMBER stolen_choke

urban wasp
sonic cedar
#

wait this is a tag not a rarity am i stupid

urban wasp
#

this is a tag, but the change that i made was that i inserted the rarity it creates into the joker pool

sonic cedar
#

yeah i said that cause i thought it was a rarity for a second

#

that's a rarity thing

urban wasp
#

oh

#

yeah i mean i still don't know how to fix this

#

and uhh

sonic cedar
#

...unless you didnt put that into the rarity code either..

urban wasp
urban wasp
#

pools = { ["Joker"] = true },?

sonic cedar
#

the pools th-yeah

urban wasp
#

yeah; again, that's what i said i did here

sonic cedar
#

oh ok

#

there's gotta be something that exotic uses that mythic doesnt and it's just in your mythic code causing bs

#

otherwise im out of ideas catsmirk

nova eagle
#

are consumables, decks, blinds, and skip tags any harder to make than jokers?

#

i'm considering expanding my mod past just jokers, but worried about the quality dropping.

manic rune
#

nop

nova eagle
#

also, how do i set up a joker spritesheet? the mod has so many custom jokers that i feel it would be much better to just have a spritesheet instead of each joker as its own image

manic rune
sonic cedar
# manic rune nop

you cant send (tenor) gifs but
[spongebob forcing himself through the wall of the krusty krab gif]

#

hi bepis

manic rune
nova eagle
sonic cedar
#

me who did it manually

manic rune
sonic cedar
#

i know her she's me

#

hi ygdras

#

yggrsdas

#

windowsill thing

manic rune
#

sob

coarse plank
#

is there a way to just beat the blind out right

sonic cedar
#

debugplus

coarse plank
#

made a silly light joker i want to code

sonic cedar
#

win blind button

#

oh coding wise

#

i forgot the thign hold on

urban wasp
sonic cedar
#

om pretty sure

#

im

coarse plank
#

ill try it, thank you!

urban wasp
#

crp

sonic cedar
#

shite

frigid cargo
#
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.xmult_gain, localize('High Card'), card.ability.extra.xmult } }
    end,
    calculate = function(self, card, context)
        if context.before and next(context.poker_hands['High Card']) then
            card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_gain
            return {
                message = localize('k_upgrade_ex'),
                colour = G.C.RED
            }
        end
        if context.joker_main then
            return {
                xmult = card.ability.extra.xmult
            }
        end
    end
}

Why does it still upgrade even if card isnt a high card?

daring fern
hollow sphinx
#

trying to swap the values of chips and mult, but nothing happens with this.

daring fern
frigid cargo
coarse plank
urban wasp
upbeat bronze
#

so im having an issue

sonic cedar
upbeat bronze
#

this code partly works

urban wasp
upbeat bronze
#

it turns the card to glass, BUT strangely does NOT have them give the 2x mult, BUT also still allows them to break

#

am i using the wrong timeframe?

sonic cedar
umbral zodiac
umbral zodiac
#

ive had this rarity ingame for 23 microeternities and it's never been the cause of issues directly

sonic cedar
urban wasp
umbral zodiac
#

can we pls turn balatro into a text based game im so god damn tired of ui

sonic cedar
#

you dont want that i promise you

umbral zodiac
#

i do
i don't like ui at all ever

sonic cedar
urban wasp
urban wasp
umbral zodiac
#

monocraft is the goat

sonic cedar
frigid cargo
sonic cedar
urban wasp
umbral zodiac
daring fern
umbral zodiac
#

i love monocraft

urban wasp
#

oh

coarse plank
#

line 138 state dne

frigid cargo
urban wasp
umbral zodiac
#

eeh

#

ive been using it for like 2y and its a real good one

#

unless you can suggest any other monospaced fonts for me to try out im stickin with it

urban wasp
#

i feel like you would use comic sans when writing a resume

sonic cedar
urban wasp
umbral zodiac
#

did you just r/ yourself brodie

#

brochacho, perhaps

coarse plank
urban wasp
#

yes

urban wasp
#

(i don't even know if that's an actual subreddit)

#

-# it probably is tbh

daring fern
coarse plank
#

that prob makes sense xd

urban wasp
#

oh hell no

sonic cedar
urban wasp
#

the balatro font isn't even monospace

#

kill me

umbral zodiac
#

lmao

#

would you rather monocraft or m16x11 or whatever its called

urban wasp
#

what's "whatever it's called"

#

oh you mean

#

uh, neither

umbral zodiac
#

wiiideee chips

urban wasp
#

i would quit coding if those were my only options

sonic cedar
sonic cedar
urban wasp
umbral zodiac
#

gonna be so real with you
the larger sin than the font is your coding env being so light

sonic cedar
#

it is at max brightness rn and my phone can go higher

urban wasp
umbral zodiac
#

environment

urban wasp
#

mmm

sonic cedar
#

environm-

#

yeah

urban wasp
#

it's not that bright

umbral zodiac
#

THERE we go.

sonic cedar
#

where is your mul

#

t

umbral zodiac
#

i had to reimplement mult deletion because the one i made in vallkarri relies on activating it mid-run, not starting with it

urban wasp
#

i mean like this is my bg color on vs code, p sure this is the standard for dark mode in vs code

sonic cedar
umbral zodiac
#

shh

urban wasp
umbral zodiac
#

i think i mightve deleted mult a bit too hard

sonic cedar
urban wasp
#

still trying to get help on my stack overflow insta-crash over here

urban wasp
sonic cedar
#

have you tried not overflowing the stack

#

is that still an option

urban wasp
sonic cedar
#

uhhhhhhhhh Beel_sweat

#

oh hey look there's something (the person)!!! im sure they know AE_Thumbs AE_Thumbs AE_Thumbs AE_Thumbs AE_Thumbs

urban wasp
#

sob

echo aurora
#

Is this code wrong?

daring heron
umbral zodiac
#

debugplus

urban wasp
umbral zodiac
#

not that i have a problem with it but i find it incredibly funny that of the 3 names i have you use the one that is least prevalent

urban wasp
#

i am NOT calling you "vallalalari avalakakkarii"

#

literally casting a spell

umbral zodiac
#

😭

#

val is fun too

urban wasp
#

nah nia better

sonic cedar
#

yeah that'll do

umbral zodiac
#

god this reminds me that i really want to make an ariral joker

daring fern
urban wasp
sonic cedar
#

say that again

umbral zodiac
#

that again

echo aurora
sonic cedar
urban wasp
#

i'm very sad that i can't post tenor gifs in here

#

i assume normal uploaded gifs still work though

#

"Nope!"

daring fern
sonic cedar
#

well damn

urban wasp
echo aurora
urban wasp
#

also, seals on every joker guy, you're always lurking and you're always here, do you have any idea why my funny hard crash happens 😭

modern kindle
#

Something is a very smart and cool guy :)
It is cool he is around to help so many fellas

daring fern
sonic cedar
urban wasp
#

i see; usually i get that crash due to what i mentioned

sonic cedar
#

I knew it wasnt that because of how much I had to do to it before catsmirk

#

pensiveclown_cc

urban wasp
#

well

#

no mythic tag today 🔥

#

mythic tag tomorrow chat

#

trust (i'll figure it out (probably not (hopefully though)))

sonic cedar
#

I forgot to check if ret am I stupid

#

That wasnt it oh no

#

what if I comment it out

#

Oh so it’s not even those ones

echo aurora
#

Anyone know how to create this part?

sonic cedar
#

oh it’s my blind check code

sonic cedar
#

haven’t made one myself yet but it’s that one

echo aurora
daring fern
sonic cedar
#

“Well now why isn’t it working”
<— she didnt uncomment her glass code

glad osprey
#

breaking the sound barrier speedrun:

sonic cedar
#

is that bloodstone

#

where tf is my mult

glad osprey
#

where tf is my oops

sonic cedar
#

touché

sonic cedar
glad osprey
sonic cedar
#

my bad true

glad osprey
#

even playing a pair gives you enough mult that the game needs to start bringing out #

#

(that joker is sort of good)

sleek cliff
#

can someone explain to me how the hell to do make this code work, it doesn't crash, it just doesn't do anything and the help I got earlier I cannot understand what they were saying

urban wasp
#

lol

glad osprey
#

we got another carot tho

sleek cliff
#

another kakarot

glad osprey
#

what

sonic cedar
sonic cedar
#

tisn'

#

isnt

#

jfc

sleek cliff
#

Its if a gold is played, but ill remove that and see what happens

red flower
urban wasp
red flower
#

that's probably it

urban wasp
#

exotic tag works perfectly fine though

sonic cedar
#

does the exotic tag use a gradient

red flower
#

exotic uses dark_edition?

worthy stirrup
#

Is there a way to get the month and day?

red flower
#

or an smods gradient

urban wasp
red flower
#

what's the code for that

urban wasp
#

i have no idea where it is

#

cryptid don't have a "rarity.lua" like me

#

might be able to find it though

sleek cliff
sonic cedar
upbeat bronze
#

hmm

#

my joker doesnt quite work

sleek cliff
red flower
hard vigil
solid mesa
#

geometry dash mentioned

upbeat bronze
#

whenever you get a chance, take a peek

hard vigil
#

this is my one in a lifetime message in modding dev im off to modding chat now

upbeat bronze
#

it applies glass

urban wasp
# red flower searching in the cryptid code tag:yep always uses a static color or dark_edition

then how did i do this 😭

SMODS.Tag {
    key = "exotic_tag",
    atlas = "crp_tags",
    pos = { x = 2, y = 0 },
    min_ante = 4,
    config = { type = "store_joker_create" },
    apply = function(self, tag, context)
        if context.type == "store_joker_create" then
            local rares_in_posession = { 0 }
            for k, v in ipairs(G.jokers.cards) do
                if v.config.center.rarity == "cry_exotic" and not rares_in_posession[v.config.center.key] then
                    rares_in_posession[1] = rares_in_posession[1] + 1
                    rares_in_posession[v.config.center.key] = true
                end
            end
            local card
            if #G.P_JOKER_RARITY_POOLS.cry_exotic > rares_in_posession[1] then
                card = create_card("Joker", context.area, nil, "cry_exotic", nil, nil, nil, "cry_eta")
                create_shop_card_ui(card, "Joker", context.area)
                card.states.visible = false
                tag:yep("+", G.C.RARITY.cry_exotic, function()
                    card:start_materialize()
                    card.misprint_cost_fac = 2
                    card:set_cost()
                    return true
                end)
            else
                tag:nope()
            end
            tag.triggered = true
            return card
        end
    end,
    crp_credits = {
        idea = { "Unknown" },
        art = { "Glitchkat10" },
        code = { "Glitchkat10" }
    }
}
upbeat bronze
#

but doesnt do the 2x scoring

#

but does allow them to break

#

im attempting to like make it re evaluate the cards after applying glass but it just

#

wont

red flower
modern kindle
#

Shouldn't you do context before for converting to glass before scoring so it'll properly convert it

#

Or am I crazy

sonic cedar
#

Was about to ask the same thing

upbeat bronze
#

im understanding it more than ive been with the help of an ai but this issue is being a bit of a pain

red flower
modern kindle
#

I have a joker who converts cards to glass and I use context before to ensure the 2x scores

upbeat bronze
modern kindle
#

So I assume thats why you arent triggering the 2x but are breaking

urban wasp
upbeat bronze
#

also seemingly doesnt work on diamonds even with smeared joker so i assume i'd have to write special code for that

urban wasp
#

but then how is it a gradient??

#

i don't understand

red flower
urban wasp
#

i never even knew there was a vanilla supported way to do gradient rarities

sonic cedar
#

this 97 year old Balatro mod still makes gradients the old fashioned way

red flower
#

the problem is that SMODS.Gradient adds extra info to the color that the attention text function doesn't like

#

I'll make an issue later

modern kindle
#

Im horrified of updating smods with how out of date my stuff is

red flower
upbeat bronze
#

Oh

modern kindle
#

Context.before

#

Yea

sonic cedar
upbeat bronze
#

I have but it just doesnt apply the glass at all when i do that

sonic cedar
#

guys why does this crash my game

chrome widget
upbeat bronze
#

I assume i'd need to check suit first then context.before?

sleek cliff
upbeat bronze
#

To fix that?

#

Unless im misunderstanding

glass scaffold
glad osprey
urban wasp
modern kindle
urban wasp
#

"we both crode"

glass scaffold
sonic cedar
red flower
# urban wasp 😭

anyway a hacky way to fix it is to just use { color[1], color[2], color[3], color[4] } as your color

modern kindle
#

Whats ur favorite color N

red flower
#

green

glass scaffold
urban wasp
upbeat bronze
#

Idk i'll ask more bout it tomorrow

#

Its 2am and i gotta sleep

modern kindle
# upbeat bronze Yeah still wouldnt work

Im certain it would, its likely just an incorrect implementation
Cause again, I have a joker who does convert to glass and scores properly
Its just a 1 in x chance to convert the hand to glass and it works properly

sonic cedar
glass scaffold
sonic cedar
#

like the size

glass scaffold
#

32 x 32 at 1x.

sonic cedar
#

do you have a 2x at

#

2x

glass scaffold
#

Yep

urban wasp
# urban wasp i'm just going to use a hex average

bruh

SMODS.Tag {
    key = "mythic_tag",
    atlas = "crp_tags",
    pos = { x = 7, y = 0 },
    min_ante = 5,
    config = { type = "store_joker_create" },
    apply = function(self, tag, context)
        if context.type == "store_joker_create" then
            local rares_in_posession = { 0 }
            for k, v in ipairs(G.jokers.cards) do
                if v.config.center.rarity == "crp_mythic" and not rares_in_posession[v.config.center.key] then
                    rares_in_posession[1] = rares_in_posession[1] + 1
                    rares_in_posession[v.config.center.key] = true
                end
            end
            local card
            if #G.P_JOKER_RARITY_POOLS.crp_mythic > rares_in_posession[1] then
                card = create_card("Joker", context.area, nil, "crp_mythic", nil, nil, nil, "cry_eta")
                create_shop_card_ui(card, "Joker", context.area)
                card.states.visible = false
                tag:yep("+", HEX("#ffb300"), function()
                    card:start_materialize()
                    card.misprint_cost_fac = 4
                    card:set_cost()
                    return true
                end)
            else
                tag:nope()
            end
            tag.triggered = true
            return card
        end
    end,
    crp_credits = {
        idea = { "Unknown" },
        art = { "Glitchkat10" },
        code = { "Glitchkat10" }
    }
}
glass scaffold
# red flower

I threw that in the SMODS.Blind part and in the SMODS.Atlas part, all of them led to the same crash.

urban wasp
#

ah

glass scaffold
# red flower

Unless the atlas, pos, AND the atlas_table all go on one line, then I got no idea.

glass scaffold
red flower
sonic cedar
gray void
#

Im just askin out of curiosity
Can a tag or a card description be added animations or stuffs like
The tag wiggles/shakes while the card tagged is highlighted

solid mesa
red flower
#

it needs to go in the atlas

sonic cedar
glass scaffold
red flower
#

yes

glass scaffold
#

(I tried that before, no dice.)

red flower
#

ANIMATION_ATLAS tho

glass scaffold
sonic cedar
red flower
#

it needs to be

sonic cedar
#

oh
well then

red flower
#

it can be a 1 frame animation im pretty sure

glass scaffold
#

Alright, trying it with ANIMATION_ATLAS.

#

Oh wait, missed the frames var.

red flower
#

yes

glass scaffold
#

That seems a little convoluted for a static blind texture.

#

But whatever, it works

sonic cedar
red flower
glass scaffold
red flower
#

remove the check

#

also indent properly yes

sonic cedar
glass scaffold
red flower
#

crashes are good

sleek cliff
sonic cedar
modern kindle
glass scaffold
red flower
#

(this is a bit i dont think that)

modern kindle
sonic cedar
sleek cliff
glass scaffold
red flower
sleek cliff
red flower
#

thank you

#

i doesn't exist

#

because you're not doing a loop

sleek cliff
#

oh?

sonic cedar
#

“I think im getting the hang of these patches” I says oblivious

I was then stabbed 100 times in the chest

red flower
#

context.full_hand[i] is always nil

sleek cliff
#

oh, I thought you were the one who told me to put it there lol

red flower
#

well i might say different things in different contexts

sleek cliff
#

wait it was another person lol

#

should I remove te full_hand thing then?

red flower
#

i dont know what the effect is

sleek cliff
#

If a gold card is played, then the Joker is debuffed

#

its a reference to the Cyberman's old weakness, gold

north lodge
#

@red flower Finally after hours of reversing, trial and error, and plug and chug, I got it

red flower
sleek cliff
#

thank you