#💻・modding-dev

1 messages · Page 299 of 1

modern kindle
#

yea there is blind calc, but it isnt documented

sturdy compass
#

incredible lol

modern kindle
#

it was added awhile ago

scarlet spire
#

I'm attempting to make a voucher that bumps up the "X selected cards" number on applicable tarots and spectrals by 1, but I have no clue how to write a concise description for that mechanic, any ideas?

#

it's really simple but there's no existing terminology around that so I'm a little stuck on it

modern kindle
#

adds +1 to all tarot card increments

#

😎

scarlet spire
#

increments is just another word for increasing

modern kindle
#

i mean you just may as well use words that exist in the english language

scarlet spire
#

I was planning on that, yeah

sturdy compass
errant karma
#

does anybody know how to change the title screen ace suit im desperate over here loll

cursive sentinel
#

update for when you'll be back (if you're interested ofc, you dont /have/ to do this), the increment works just well, the only thing that doesn't work is the reset of the mult if the condition isn't met, but at least it doesn't crash anymore!!!

placid star
#

how can you declare a global variable as 0 (or any integer value) without setting it in a config and resetting the variable everytime you get the joker?

modern kindle
sturdy compass
#

that works, thank ya

modern kindle
#

there should be more added after as well

lucid owl
#

how could i manipulate the blinds that show up on a deck? i'd like to make one where every boss blind is a finisher (don't ask lol)

stark geode
#
calculate = function(self, card, context)

        if context.joker_main then
            return {
                xmult = card.ability.extra.Xmult
            }
        end
        
        if context.end_of_round and context.main_eval and not context.blueprint then
            if G.GAME.current_round.hands_played == 1 then
                    card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.increase
                    return{
                        message = localize('k_upgrade_ex'),
                        colour = G.C.RED
                    }
            elseif G.GAME.current_round.hands_played > 1 then
                card.ability.extra.Xmult = 1
                return{
                    message = localize('k_reset'),
                    colour = G.C.RED
                }
            end
        end
end
#

this should fix the reset issue

#

i changed what you were checking in your else if

sturdy compass
red flower
placid star
placid star
#

i just set the variable to 0 if its nil

errant karma
glad osprey
glad osprey
#

your welcome

#

(i will research when I get home)

cursive sentinel
sturdy compass
glad osprey
stark geode
cursive sentinel
#

i had tried replacing the elseif by just an else but didnt changed much

glad osprey
cursive sentinel
#

it's fine, i'll figure it out later, now i'll sleep x)

#

thank you a lot for all your help !!

faint yacht
lucid owl
#

how could i make every single boss blind be a finisher regardless of ante?

#

for a deck, i should clarify

neat plover
#

whats the variable to check for joker free spaces

sturdy compass
tepid crow
#

that's a fucked up boss blind man

faint yacht
lucid owl
#

this is truly late stage capitalism

sturdy compass
#

LMAO

modern kindle
#

We have micro, now where macro

next timber
#

???????????why?????

glad osprey
#

which lua extension do yall use for vscode

primal robin
#

Official one?

glad osprey
#

which one is that 😭

primal robin
#

Hm there's no official one, that's a bummer

#

sumneko.lua

mild basalt
#

Hey I am new to coding, how would I go about making a joker similar to riff-raff?

glad osprey
#

thx

primal robin
stark geode
next timber
#

the loc vars?? why the loc vars

stark geode
#

idk

#

its mad that the value isnt defined

next timber
#

yea but why loc_vars

#

i mean ill try it ig

stark geode
#

shit i meant config

next timber
#

ohh

lucid owl
next timber
#

yeah that makes more sense

glad osprey
#

first joker of the new mod 🎉

#

(it totally works def)

next timber
#

ok it . only seems to happen when i have my custom joker

#

thats really weird

sturdy monolith
#

how can i check if the player has a certain number of one joker (e.g. check for exactly 5 holograms)

glad osprey
#

whats the atlas key for mod icons i forgot

next timber
#

loop through G.jokers.cards and check if the ability.name is the name of the card you want, and increment a count

glad osprey
placid star
#

how do you constantly update a cards mult based on other actions? for example i have a joker that scales Xmult based on how many jimbo jokers have been sold during the run if that makes sense

minor furnace
cobalt vector
#

The values in my Joker's desc say nil (xnil, +nil, etc), and idk why.

sturdy monolith
cobalt vector
#

whats #varnum#?

sturdy monolith
next timber
hasty mist
#

sorry if i'm misunderstanding something, i'm new to modding, but there's functions for exponential, tetrational, and pentational mult (Emult_mod, EEmult_mod, EEEmult_mod), what do you do if you want to go past pentation?

sturdy monolith
next timber
#

assuming the joker's key is mugiwara

sturdy monolith
cobalt vector
# sturdy monolith text = { "#2#" } would display the second returned variable in loc_vars for...
        text = {
            'Gives one of four effects',
            'when each hand is played:',
            '{C:chips}+#1#{} Chips',
            '{C:mult}+#1#{} Mult',
            '{X:mult,C:white}X#1#{} Mult',
            '{C:money}+$#1#{}'
        }
...

loc_vars = function(self,info_queue,center)
    return {  --#1# is replaced with card.ability.extra.Xmult
        center.ability.extra.chips,
        center.ability.extra.mult,
        center.ability.extra.Xmult,
        center.ability.extra.money,
        center.ability.extra.odds1,
        center.ability.extra.odds2,
        center.ability.extra.odds3,
        center.ability.extra.odds4,
        G.GAME and G.GAME.probabilities.normal or 1 
        }
end,
sturdy monolith
#

but you need to put the returned vars into another vars = {} table

hasty mist
raw geyser
#

What happens if a card is debuffed after first scoring, but before retriggers?

sturdy monolith
#

like this

cobalt vector
# sturdy monolith but you need to put the returned vars into another vars = {} table

You mean something like

loc_vars = function(self,info_queue,center)
    return { vars = { --#1# is replaced with card.ability.extra.Xmult
        center.ability.extra.chips,
        center.ability.extra.mult,
        center.ability.extra.Xmult,
        center.ability.extra.money,
        center.ability.extra.odds1,
        center.ability.extra.odds2,
        center.ability.extra.odds3,
        center.ability.extra.odds4,
        G.GAME and G.GAME.probabilities.normal or 1 }
        }

?

sturdy monolith
cobalt vector
#

will give it a go

cobalt vector
#

should be +40 chips, +4 mult, x4 mult, and +$4

rapid stag
#

bump. cirBox

sturdy monolith
sturdy monolith
# cobalt vector

are you changing the "#num#" for each returned localization variable?

cobalt vector
#

oh

#

lemme try that

#

it works!

#

Thanks!

sturdy monolith
#

gear 5 works now :D

glad osprey
#

saturday

cobalt vector
#

what does this error message mean?

glad osprey
#

field ability no exist

sturdy monolith
stark geode
#

Config is cooked

cobalt vector
#
            if pseudorandom('fours') == G.GAME.probabilities.normal/self.ability.extra.odds2 then

sturdy monolith
cobalt vector
#

so I just needed to add self.ability to the if statement?

sturdy monolith
thin anchor
#

now who could need this many vouchers

cobalt vector
sturdy monolith
#

also, if you're gonna be using self instead of card, use self.config.extra instead

placid star
sturdy monolith
minor furnace
#

you would need to create a similar global variable to track the jokers sold over the run, I think

placid star
minor furnace
minor furnace
#

then yeah, you'll need to declare something like aG.GAME.jimbos_sold kind of variable, and then hook or patch the function responsible for selling jokers to increment it if the card being sold is a jimbo joker

#

and then reference G.GAME.jimbos_sold in your loc_vars

placid star
#

so i shouldnt return center.ability.extra.Xmult in my loc_vars and i should return my formula for calculating the Xmult instead {1 + {0.5 * Joker_sold}} and then update Xmult in my calculate in context.Joker_main?

#

okay my joker works tysm @minor furnace

glad osprey
#

how do i add a custom colour for messages

errant karma
#

can someone help/give a concrete way on how to change the ace on the title screen coz man i am going insane over heree

#

all i need is for it to be an ace of hearts and not spades

glad osprey
lucid owl
#

how could i manipulate blinds for a deck? i'd like to make sure every boss is a showdown boss but can't seem to figure out how

faint yacht
#

...what's your Lovely version?

errant karma
#

probably outdated, let me go do that rq

buoyant shard
#

are there singular events for when a joker is obtained or removed, or do I have to list each scenario?

glad osprey
errant karma
#

it might be a mod i've got probably causing it

faint yacht
#

Potentially?

#

In my lovely.toml, it just works.

errant karma
#

leme try something

reef belfry
#

Woul u date placeholder chan

errant karma
stark geode
glad osprey
#

how do i make a blueprint have a message rather than the og card

unborn bay
#

are you using card_eval_status_text for that

glad osprey
#

no

unborn bay
#

think you don't need to specify message_card in this situation anyway

glad osprey
#

i did

#

if i didnt it would show the message on the retriggered card lol

unborn bay
#

ah lmao

glad osprey
#

looks like what i did works

orchid thunder
#

how do i force lose

sturdy monolith
# cobalt vector where would I put that?

replace

            if pseudorandom('fours') == G.GAME.probabilities.normal/self.ability.extra.odds2 then

with

            if pseudorandom('fours') == G.GAME.probabilities.normal/self.config.extra.odds2 then

#

(sorry for the delayed response my Internet is shit)

cobalt vector
#

should I change the loc_vars table as well to self.config.extra?

stray dagger
#

i cant get debug plus to work

#

the key binds

scarlet thorn
sturdy monolith
cobalt vector
# sturdy monolith only if you're using self.ability instead of card.ability there too

so then I change

    loc_vars = function(self,info_queue,center)
        return { vars = { --#1# is replaced with card.ability.extra.Xmult
            center.ability.extra.chips,
            center.ability.extra.mult,
            center.ability.extra.Xmult,
            center.ability.extra.money,
            center.ability.extra.odds,
            G.GAME and G.GAME.probabilities.normal or 1 }
            }
    end,

into

    loc_vars = function(self,info_queue,center)
        return { vars = { --#1# is replaced with card.ability.extra.Xmult
            self.config.extra.chips,
            self.config.extra.mult,
            self.config.extra.Xmult,
            self.config.extra.money,
            self.config.extra.odds,
            G.GAME and G.GAME.probabilities.normal or 1 }
            }
    end,

?

sturdy monolith
#

well, no actually, you already had it correct in the original loc_vars since you were originally using center.ability

#

i was saying if you were already trying to use self.ability

cobalt vector
#

So for

if self.ability and pseudorandom('fours') < G.GAME.probabilities.normal/self.config.extra.odds then

I can just replace self.ability and self.config with center.ability and center.config?

sturdy monolith
cobalt vector
#

so

if center.ability and pseudorandom('fours') < G.GAME.probabilities.normal/self.config.extra.odds then

?

#

sorry if Im being dumb idk lua coding much

sturdy monolith
#

either

if center.ability and pseudorandom('fours') < G.GAME.probabilities.normal/center.ability.extra.odds then

or

if self.config and pseudorandom('fours') < G.GAME.probabilities.normal/self.config.extra.odds then
cobalt vector
#

if I use center.ability, then I won't need to change my loc_vars from what I had before, right?

#
    loc_vars = function(self,info_queue,center)
        return { vars = { --#1# is replaced with card.ability.extra.Xmult
            center.ability.extra.chips,
            center.ability.extra.mult,
            center.ability.extra.Xmult,
            center.ability.extra.money,
            center.ability.extra.odds,
            G.GAME and G.GAME.probabilities.normal or 1 }
            }
    end,
sturdy monolith
gilded narwhal
#

hey gang how would I do something to cards that are played but not scored?

cobalt vector
#
            if center.ability and pseudorandom('fours') < G.GAME.probabilities.normal/center.ability.extra.odds then

sturdy monolith
cobalt vector
#

holy crap it worked

#

Thanks!

last sentinel
#

is ease_dollars not the correct call to have an enhancement grant money when scored?

tired skiff
#

how do i check if the player has less than or equail to a certain ammount

#

basicly what is the code for vagabond

glad osprey
#

is it possible to make a joker change sprites

ivory coral
stark geode
scarlet spire
tired skiff
#

(i have looked)

#

im assuming its just G.GAME.dollars <= self.ability.extra

scarlet spire
#

yeah you can just check G.GAME.dollars against the wanted value for that

ivory coral
tired skiff
#

so like g.game.dollars <= 4

scarlet spire
#

i've used ease_dollars a few times with no issue so it's also valid afaik

#

though I assume returning dollars = gives the proper message popup

ivory coral
#

yeah i think that works too
theres a bunch of different functionally identical things like that

slate bison
#

hey guys, pretty new to this stuff, does anyone know if i want to create multiple jokers in my mod can i put 2 .png's in the assets folder or if i should put both assets into one .png file

reef belfry
#

How do i make this look like its "perfumed"

manic rune
#

question, why doesn't this work

tired skiff
#

so basicly the 1x and 2x is where u want the images and basicly the image that is a joker is i think called a atlas (see image 1), you usualy should keep all the sprites in the same atlas but you can have multiple atlas's (see image 2) but you have to in the code for the joker specify what atlas you want to use see image 3

manic rune
#

i want it to replace all "self.cards" with "(self.cards or {})"

tired skiff
#

i have all in 1 image

slate bison
#

thats cool

tired skiff
#

use
pos = {x = ? , y = ?}, to select what one you want
so top left one would be 0,0 and the bottem left would be 0,1

tired skiff
#

but its up to you

slate bison
slate bison
ivory coral
#

afaik jokers always take their sprites from an atlas so its just more convenient to put them all in one atlas

slate bison
tired skiff
glad osprey
#

hey yall
tf am i doing wrong

slate bison
#

yeah

#

that makes complete sense

#

mb

tired skiff
#

so basicly its just selecting a box if that makes sence

sturdy compass
slate bison
glad osprey
#

?

tired skiff
#

but i will prob be useless

#

and im currently in class

slate bison
tired skiff
#

o7 my grades

slate bison
#

LMFAo

#

no im a starter in this so u will know a lot more than me

glad osprey
#

idk why tho

tired skiff
dapper sun
#

how do i turn a card into glass?

tired skiff
#

and also if u need to "copy code" go to a mod and look in the code and it should help roughly

sturdy compass
tired skiff
#

like i find a modded joker simillar to what i want and i "yoink" part of the code

slate bison
tired skiff
#

ahh yes that one

sturdy compass
tired skiff
slate bison
slate bison
#

thats why i came here

#

usually learn on my own

tired skiff
#

my dms are always open so yeah

slate bison
#

will ask u if im lost with anything

tired skiff
#

can u dm me once just so i will get pinged in future

#

if you are ok with that

slate bison
#

suree

terse marsh
#

Hey im working on a mod rn for one of my friends and im trying to add chips to a joker based off the club cards drawn

tired skiff
terse marsh
#

im having some issues understanding lots of the contexts and shit and havent really fucked with lua

tired skiff
#

good luck buddy

terse marsh
#

damn

#

💔

reef belfry
#

Im probably never making an edition

tired skiff
#

if u dont know what you are doing with lua i would not start there

reef belfry
#

Shaders look.. horrifying to deal with..

terse marsh
#

well i know the basics

#

and i understand the syntax

tired skiff
#

i mean you could maybe u could do chips = to the amount of club cards in hand

#

that would be way easyer

terse marsh
#

well yea

#

well ok from what ive read we can see what cards were drawing and then based on the cards were drawing add chips to that card

#

does that not work?

tired skiff
#

i want to see it for future use

terse marsh
#

well im looking at the src code

#

theres a hash for cards drawn

tired skiff
#

pls lemme see

terse marsh
#

yea 1s

terse marsh
#

in instances theres something called draw hash

#

im assuming its related to cards ur going to draw in the future

tired skiff
#

my god

#

i am not smart enough for that

dapper sun
#

why isn't my joker doing anything? i've even set the probability to 1 in 1 in case i was just getting unlucky

#

nvmd

#

i see it now

#

v.other_card:set_ability instead of v:set_ability

#

bc it got left over from before i made the code more like midas mask

#

it's still doing nothing???

sturdy compass
#

Did you remember to save

cinder light
#

Hey just quick question here. I just wanted to know what the context. variable would be for detecting a glass card in the hand

reef belfry
#

I didnt know seals were that big

dapper sun
#

other changes, like me changing the description text, carried over just fine

#

now i'm trying literally copy-pasting the midas mask code and it's still not working

dapper sun
#

huh apparently it isn't saving

glad osprey
dapper sun
cobalt vector
#

I wanna make a joker that randomly triggers one of four effects. Would I use the same code as I would usually use for a probability joker?

dapper sun
#

yep the code's saved

#

but it still isn't working

sturdy compass
#

Is it just straight up not doing anything at all?

dapper sun
#

nope

#

nothing at all

#

even with the probability set to 1 in 1

sturdy compass
#

How is your calculate function being defined?

dapper sun
#

here's the full calculate function. there were parts i weren't including before as they work fine

#

i literally copy-pasted all the glass card logic from midas mask why isn't it working 😭

#

oh i see it

#

G.play

#

midas mask is in G.jokers

#

if this works now i'll explode

unborn bay
dapper sun
unborn bay
#

i need to figure out how to patch card_eval_status_text outside of returned values by smod

sturdy compass
#

Finally my two boss blinds are feeling a little less lonely

tall apex
#

Yipeeee :3

reef belfry
#

so it begins

#

they look really off

gentle rain
#

i disagree!

#

theyre pawsome as tuna

terse marsh
#

hey im having issues with my joker registering when i boot up balatro

#

this is what i got

#

is there something im missing lmfao

glass scaffold
edgy reef
#

It's 0.9.8 API

#

AKA deprecated.

glass scaffold
#

Ah.

terse marsh
#

what works lmfao

#

trying to foollow a couple tutorials and i cant find anything that actually works

lucid owl
terse marsh
#

alright thanks so much 🙏

#

for a first time lua project this is way out of my depth but its interesting lmfao

mild basalt
#

I would assume so

cobalt vector
#
    calculate = function(self, card, context)
        if context.joker_main then
            if self.config and pseudorandom('fours') < G.GAME.probabilities.normal/self.config.extra.odds then
                return {
                    card = card,
                    Xmult_mod = card.ability.extra.Xmult,
                    message = 'X' .. card.ability.extra.Xmult,
                    colour = G.C.MULT
                }
            end
            if self.config and pseudorandom('fours') > G.GAME.probabilities.normal/self.config.extra.odds then
                return {
                    card = card,
                    chips_mod = card.ability.extra.chips,
                    message = '+' .. card.ability.extra.chips,
                    colour = G.C.CHIPS
                }    
            end
        end
    end,
terse marsh
#

I tried my best but i still cant seem to get it showing

cobalt vector
mild basalt
#

While I don't know what to do for a fourth option, could a third option be equal? Sorry if this is wrong, I am very new to modding.

tepid crow
terse marsh
#

Outside of atlas and the SMODS.joker what should i add so it actually registers 😭

#

i downloaded the latest versions of SMODS

#

so idk why it isnt working

cobalt vector
blazing cairn
#

nig

tepid crow
cobalt vector
#

You mean that it could trigger both the xmult and +chips at once?

tepid crow
#

oh wait I'm stupid it's a return it can't do both

#

but can't it still do neither? 🤔

cobalt vector
#

I’ll have to test it a bit more

#

It seems so, yeah

tepid crow
# cobalt vector It seems so, yeah

Yeah, your logic is a bit messed up. Instead of rolling a single dice and checking the result, you're rolling a dice every time you're checking the result (and thus rolling multiple dice)

cobalt vector
#

Do you mean that each time I have "if self.config and pseudorandom('fours') > G.GAME.probabilities.normal/self.config.extra.odds then
" it rolls the dice separately?

tepid crow
#

kinda

#

yeah

tepid crow
cobalt vector
#

So then

            if self.config and pseudorandom('fours') > G.GAME.probabilities.normal/self.config.extra.odds then

checks if the number is greater than 0.5, and then does the thing if it is?

tepid crow
#

if your card's odds are 2, then yeah it checks if the random decimal is greater than 0.5

cobalt vector
#

So then, if the odds are 4, it checks if its greater or less than 2, right?

tepid crow
#

0.25

#

1/4

cobalt vector
#

oh, yeah

#

And if its 1 in 3, then 0.33

tall wharf
#

range is from 0 to 1

cobalt vector
#

ok got it

tall wharf
#

guys

#

do you use inclusive or exclusive operation to check for chance

#

< or ≤

cobalt vector
#

I use < personally

tepid crow
#

I don't think it matters?

paper zealot
#

Fewer symbols > more symbols

#

(personal opinion)

tepid crow
paper zealot
#

(also tabs > spaces)

#

Coming up next in #💻・modding-dev :

Why my mod saying "Unexpected symbol "≤" in myjerker.lua"

tepid crow
slate bison
#

Does anyone know where is the API for all the text formatting in the game on steammodded? I wanna create the text effect of spectral cards but idk where what is the formatting for it

glass scaffold
paper zealot
tepid crow
glass scaffold
neat plover
#

how do i get the number of empty jokie slots?

slate bison
#

nice thanks

slate bison
#

erm

paper zealot
#

Slightly more friendly UI while I wait for the PR to be accepted

tepid crow
#

what's the difference 🤔

tall wharf
#

should i move useful libraries to its own mod

#

chat

tepid crow
slate bison
#

thats actually cool

paper zealot
#

One is just the raw .md file which is rendered in by GitHub's .md renderer, the other is the full Wiki page rendered by the (very slightly but meaningfully different) wiki renderer

neat plover
paper zealot
#

It makes a difference for the inline svgs

#

And my brain

#

For some reason as-yet unstudied by modern science

#

Also if anyone has access to Safari, let me know if all the SVGS and animations look right

tepid crow
#

the upside for you is that someone else could use the helper functions etc from your library? the downside is that it becomes harder to install for new modding users?

#

but then whoever is interested in wanting to use your helper functions also has to consider the up/downsides of that

tall wharf
#

in case i want to make another mod

#

i liked my card display code

tepid crow
#

if it's for your own mods I think it's a compromise between having to maintain either 2 copies and easier installation for users vs only 1 copy but harder installation for users

unborn bay
#

i stole said card display code it s very cool

shut crater
#

is there a way to get a table of every joker in the game?

#

is it something with G.P_CENTER_POOLS?

#

I answered my own question

primal shoal
shut crater
#

right but I just want jokers, so I'd have to use G.P_CENTER_POOLS["Joker"]

#

and then...do something with that

daring fern
primal shoal
#

are you looking for a joker or are you doing a random selection?

shut crater
#

random selection

primal shoal
#

string.find(k, "j_")
put that in a table
and pick a val with psuedo random and your have your random key

#
for k, v in pairs(G.P_CENTERS) do  
            if (string.find(k, "j_") and v.rarity ~= 4 then
                table.insert(jokers, k)
            end
        end
shut crater
#

is that preferable to using P_CENTER_POOLS to look at only Jokers, grabbing a key, and then going to P_Centers with that key?

#

I'm very much still new to this and trying to understand the codebase

primal shoal
#

i think if i remeber correctly CENTER_POOLS is everything that can be picked in that run so far and CENTERS is actually everything

shut crater
#

in that case I think I should definitely be using CENTER_POOLS

#

to prevent dupe jokers

#

the goal is for a joker to create another random joker

primal shoal
#

then showman is a thing so make sure to check for that

chrome widget
#

Quick help if anyone knows this off the top of their heads, I'm trying to add an extra node to the definition for the shop UI right here to show a new cardarea, but I can't seem to figure out where to append it/change the tree so that it appears correctly and doesn't shunt the entire menu to the left

tall wharf
#

as in they will always be there

shut crater
#

get_current_pool seems like a solution?

tall wharf
#

chat

#

still thinking about this roach bs

#

actually what if card destroyed

#

idk how i would do that

#

I'll rethink

high sinew
#

I can get my lucky cards to activate for this joker idea is when a two pair is in scoring hand makes all cards lucky enhancement

#

its making the joker trigger cards dont turn lucky

daring fern
high sinew
#

Damn

#

Love making minor mistakes man thanks bro

#

absolute goat thx bro

slate bison
#

anybody knows is where i get the API information for context.other_card?

#

idk if context.other_card:is_queen() is a thing

daring fern
slate bison
#

ohhhhh got it thanks

daring fern
slate bison
#

yeah im pretty new to this so idk how to see the source code :(

#

for the game

daring fern
slate bison
#

yes

daring fern
slate bison
high sinew
#

@daring fern do I need to specify a "Full house" for tat chocloate joker u just saw?

#

or does two pair register it

daring fern
daring fern
high sinew
#

Ahh

#

That’s totally logical it’s how I set up my other jokers

slate bison
rapid stag
#

what are the maximum dimensions of an atlas

slate bison
#

is there a easy way to find what i want in the source code of the game?

daring fern
slate bison
#

that will help a lot

daring fern
rapid stag
#

this is not true. it seems to not like something i tried with a 76480x128 (2x) pixel atlas

#

oh huh, i forgot to change the joker's name

glass scaffold
crisp coral
rapid stag
crisp coral
scarlet spire
#

okay I am extremely confused,

#

why does the upper one crash when I go to it on the new run menu, but the lower one doesn't??

#

oh wait

#

okay i'm blind, it's the #1# not being able to target anything because there's no loc vars

primal shoal
#

ooh this is interesting
the next and previous pages of the collection are preloaded/ not unloaded, so any animated jokers will still play when on the page next to it

sturdy compass
#

If given a chance, Bad Apple will appear in anything one way or another

rapid stag
#

there's already a mod that adds the entirety of bad apple as a joker
not sure how it does its one

glass scaffold
primal shoal
#

if i could figure out of the change the text dynamically every frame then I could do it in ASCII

rapid stag
#

anyway, time to very quickly do my new idea where it appears in inverted colours if the sock and buskin is negative

sturdy compass
#

Oh goodness

late basin
#

is there a function that can check for wild cards? Like is_face() but for wild cards?

cursive sentinel
#

Hi, is it correct to put a if within a if but after its return?

mild saddle
#

I'm trying to debug a mod (that I did not create), that is supposed to replace edition textures (foil, holo, poly, neg) with ones of its own. However, out of all the injects the mod's doing, none of them actually end up targeting anything (which I could deduce from the code). All the editions in the game just look like the base edition.
I have no prior experience in Balatro modding, but I do know how to mod Minecraft, and lovely's injection system seems way easier. Do you know a conventional way to reskin editions / a mod that implements edition reskins that I can use as a reference?

daring fern
glass scaffold
crisp coral
#

well the calculation below

rapid stag
#

total pixels

#

i made a graphic with more pixels that works cirDerp

crisp coral
#

ah no, image dimensions are rounded to the next multiple of 2

rapid stag
#

ah cirDerp

#

if i start from center, how can i get a card's edition?

crisp coral
#

so your old image is loaded as 131072*128

#

center does not store edition, but card does with card.edition

unborn bay
#

a reminder that:
center refers to a card's metadata, like its name, starting values, and rarity
card refers to card

rapid stag
#

ah. so before i add the sprite node, can i do self.edition to get the card edition or will that break things

primal shoal
#

self.edition is a table
self.edition.key is a easy way the check

rapid stag
#

the answer was no

#

gotta pass it into the function first

#

and a quick tprint shows that self didn't even contain edition regardless of the card's edition, anyway

runic pecan
#

I still don't know how to debug this, please help.
fig. 1 : crash message;
fig. 2 : game.lua code in question;
fig. 3&4 : the code of joker that causes said crash.

cursive sentinel
#

how do you show the blueprint compatibility text? is it set by default on false?

cursive sentinel
#

ah sorry i wasnt asking,,, im a newbie asking for help too x)

runic pecan
rapid stag
cursive sentinel
rapid stag
slate bison
#

probably a really stupid mistake im doing, but can someone help me in why is this not working? it keeps saying its something in line 84 or smth but i changed it around a lot and it still not changing

unborn bay
candid willow
#

I now actually have time to work on my mod
does anyone know of a joker that modifies the behavior of existing consumables? I've already figured out how to use take_ownership on its own, not so much as to make it with a joker

slate bison
slate bison
#

oh shi sorry wait

rapid stag
paper zealot
slate bison
wintry solar
#

I think you just need to remove that comma on line 81 but your indentation and line break convention (or lack of) makes your code very difficult to follow

slate bison
#

i mean im kinda copy pasting from source code so yeah maybe thats why

spare furnace
#

is there a way i can have a joker run something after each hand is scored visually? i want to have a card that changes one of its vars after every hand but if i do it in calculate the description changes immediately, meaning the var as used in scoring the current hand looks different from the var as it appears in the joker's description

sharp blade
#

I think you would have to look at the cards currently selected and put whatever calculation you want in the loc_vars function

maiden phoenix
limber rampart
#

sorry if this question is answered somewhere else but i have a deck skin i made that i wanted to upload to the balatro mod manager, where would i go to do that ?

#

or just wherever most mods are uploaded im not even sure if mod manager is the most popular place for mods lol

maiden phoenix
slate bison
#

because im stuck trying to make the extension work

maiden phoenix
#

You can get the lua extension trough vsc

slate bison
#

on the extensions tab?

maiden phoenix
#

yes

slate bison
#

when i search "lua" these are the ones that ppear

#

im sorry im really stupid at this stuff

maiden phoenix
#

Do you have any lua extension in "installed" ?

slate bison
#

so now im trying to find it? idk

maiden phoenix
#

Also which os are you on?

slate bison
#

im on windows

slate bison
#

i didnt find any other :(

maiden phoenix
#

oop

slate bison
#

sadge

maiden phoenix
#

Try this one and disable the old BabeLua one

#

And NPL too

slate bison
#

do i just click in install on the website?

maiden phoenix
#

Yea that should work

slate bison
#

ok im done it does nothing when i click on it 😭

#

oh its not detection vs code on my pc i thingk?

maiden phoenix
#

Odd

#

Can you give me your VSCode version? Go to vsc code on the "Help" tab > About

slate bison
#

no wait i got it

#

idk why

#

i uninstalled the whole thing and installed again

#

i have the lua thing now

#

thank u 🙏

maiden phoenix
#

Np 👍

pale venture
#

Is using VScode worth it? For now i've done all my stuff on notepad++

slate bison
#

im trying to get a joker give 1 random negative spectral card everytime a queen is scored, but it keeps crashing when i play anything other than a queen on my hand

#

does anyone know what the problem is?

slate bison
reef belfry
#

im fresh outta ideas for jokers n stuff

#

should i make a modding post conceptualization to steal other peoples cool ideas

maiden phoenix
#

also the focus = self might cause issue too

slate bison
slate bison
slate bison
#

i didnt know that

#

makes a lot of sense

paper zealot
paper zealot
#

Whoops, it's Shift+Alt+F

slate bison
#

oh damn

#

it worked

drowsy tulip
#

rq is pseudorandom inclusive

#

like if i do pseudorandom(seed, 1, 3) will i get numbers 1-3 or 1-2

cursive sentinel
#

is it possible to create a random tag?

#

i guess not with the create card since it isnt a card type, so i'm not rly sure where to look into

#

tried to understand riff raff and diet cola but they seem built rly different

#

im trying this as a base but im not sure to understand it

drowsy tulip
#

ty

primal shoal
#

any good?

rapid stag
#

in terms of understanding the mechanic? sure.
in terms of balance? i like it.

primal shoal
#

and it loop around to aces so it viable in other build also

reef belfry
#

That is one ugly looking title card

modest iris
#

hey guys, can someone please help me with this issue?

halcyon osprey
#

is increasing the ante as simple as like

ante = card.abilty....ante?

daring fern
halcyon osprey
#

ty!

halcyon osprey
#

okay so how do i make an effect that removes all the jokers you have (except enternals)

and a second effect that removes your whole hand

#

i can do individual card (which is itself), but idk how to remove the whole hand

manic rune
#

what function is run when you play a hand?

pale venture
halcyon osprey
#

ive probably used a couple in my mod alr but idrk what they do people are just helpin me

daring fern
manic rune
#

ty

daring fern
pale venture
#

Yup

halcyon osprey
#

and then the same thing but like G.hand.cards?

halcyon osprey
#

augh

daring fern
# halcyon osprey augh
if context.destroy_card and context.cardarea == G.hand then
    return {remove = true}
end
halcyon osprey
#

this one card is gonna ruin everything and its great

#

just like how Bowser spaces in mario party screw with you big time

#

didnt see that you got a star, it was copied from my star joker lmao

halcyon osprey
#

and i dont think the hand one worked either

daring fern
halcyon osprey
#

yeah, because its apart of my 8 outcomes

daring fern
halcyon osprey
#

it did

#

Hand one didnt work and

daring fern
halcyon osprey
#

the for line

#

and the destroy card doesnt work (this is so confusing lmao)

daring fern
#
for k, v in pairs(G.jokers.cards) do
    if not v.ability.eternal then
        v:start_dissolve()
    end
end
halcyon osprey
#

the joker destroy is amazing yes, now its just the hand

daring fern
halcyon osprey
#

i think i just did it, uhhh lemme test more lmao

#

well that worked lmao

manic rune
#

can i destroy a card without using start_dissolve?

daring fern
pale venture
#

You have to also return a table of the destroyed cards after the loop

manic rune
#

for some reason i cant seem to find the code for start_dissolve function anywhere

#

what

#

wtf happened to my keyboard

pale venture
halcyon osprey
paper zealot
daring fern
manic rune
#

i dont think so

manic rune
#

weird how card.lua didnt pop up

#

-# oh yeah lovely dump doesnt have card.lua

paper zealot
wintry solar
#

What scuffed version of smods are you using that doesn’t dump card.lua

manic rune
#

supposedly the latest one

#

-# i think, i havent updated smods for a few weeks now

crisp coral
#

latest one
havent updated for a few weeks

pale venture
daring fern
manic rune
crisp coral
#

uhh if shouldn't

halcyon osprey
#

well i havent gotten a ghost card, its doing my hand not played cards which is what i wanted

daring fern
halcyon osprey
manic rune
halcyon osprey
#

its if its destroying your Played Cards it ghostifys them

#

i had to deal with many ghosts since i have my board cards destroy themselves after use and they dont do that no more

paper zealot
unborn bay
#

a world without card.lua in the lovely dump

#

sounds dystopian

manic rune
#

is this fun to play against

#

you need to move your card around for it to not be destroyed, basically

cursive sentinel
#

doesn't sound balatroesque that much

paper zealot
daring fern
pale venture
manic rune
halcyon osprey
manic rune
unborn bay
manic rune
#

they are no longer locked to stuff like "When hand is played", "When discard is used", etc

the timer counts down regardless of whatever is going on

#

yes, that also includes during scoring, so you arent just sitting around to wait now

crisp coral
unborn bay
#

like the talisman calculating screen

crisp coral
#

cry about it

manic rune
unborn bay
#

atleast there's an abort button now but

#

yeah

crisp coral
#

(i don't think update runs there)

unborn bay
#

"im finally done" fucking wrong

#

i need to account for cases when extra is already defined in a calculated result table

manic rune
unborn bay
#

what jokers do use the extra table value anyway

#

idk exactly if i actually need to account for that edge case

halcyon osprey
#

whats the context for after a hand is done because im wanting the card destroy effects to happen after everything

manic rune
#

context.after?

halcyon osprey
#

cause rn they get destroyed and still score and stuff, and im fine with the scoring but id really like it if they visually dissapear after

halcyon osprey
glad osprey
#

hmmmmm

#

how in hells name do you do raritys

reef belfry
#

Holy fuck is that dozer grace

unborn bay
#

erm actually its rarities 🤓

glad osprey
glad osprey
halcyon osprey
#

wait a more curious question, is there anyway for there to be a way to Block your enhanced cards from being able to to change?

like i dont want my Blue Space to turn into a goldcard or be deathed or smth

unborn bay
#

guess you could add a check for that and you can prevent a change in enhancement manually

#

in what context are we talking about here

#

like in general

#

or is the enhancement being set manually

zealous glen
#

@manic rune did you see the new fish wording

tepid rock
#

    local my_pos = nil
    calculate = function(self, card, context)
        for i = 1, #G.jokers.cards do,
            if G.jokers.cards[i] == self then my_pos = i; break end,
        end,
        if my_pos and G.jokers.cards[my_pos+1] and not self.getting_sliced and not G.jokers.cards[my_pos+1].ability.eternal and not G.jokers.cards[my_pos+1].getting_sliced then 
            local sliced_card = G.jokers.cards[my_pos+1]
                sliced_card.getting_sliced = true
                G.GAME.joker_buffer = G.GAME.joker_buffer - 1
                G.E_MANAGER:add_event(Event({func = function()
                    G.GAME.joker_buffer = 0
                    G.jokers.cards[my_pos-1]:set_ability(G.P_CENTERS.e_negative, nil, true)
                    self:juice_up(0.8, 0.8)
                    sliced_card:start_dissolve({HEX("57ecab")}, nil, 1.6)
                    play_sound('slice1', 0.96+math.random()*0.08)
                return true end }))
    end,
}

#

crashing and idk why

unborn bay
#

we need line numbers

#

what does your code look like in your Text Editor Of Choice™

tepid rock
#

Relevent part

#

above is just "cost = 2,"

halcyon osprey
#

how can i check for open joker slots (i have cards that make jokers and they ignore the limit lol)

unborn bay
#

you don't need them and the game doesn't like them either

tepid rock
#

last end?

unborn bay
#

also you're creating a variable outside of the calculate function here

#

don't do that

tepid rock
#

gotcha. so just move it down a line?

unborn bay
#

yeah

daring fern
halcyon osprey
daring fern
tepid rock
# unborn bay yeah

Issue now is unexpected error on line 116


    calculate = function(self, card, context)
        local my_pos = nil
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i] == self then my_pos = i; break end
        end
        if my_pos and G.jokers.cards[my_pos+1] and not self.getting_sliced and not G.jokers.cards[my_pos+1].ability.eternal and not G.jokers.cards[my_pos+1].getting_sliced then 
            local sliced_card = G.jokers.cards[my_pos+1]
                sliced_card.getting_sliced = true
                G.GAME.joker_buffer = G.GAME.joker_buffer - 1
                G.E_MANAGER:add_event(Event({func = function()
                    G.GAME.joker_buffer = 0
                    G.jokers.cards[my_pos-1]:set_ability(G.P_CENTERS.e_negative, nil, true)
                    self:juice_up(0.8, 0.8)
                    sliced_card:start_dissolve({HEX("57ecab")}, nil, 1.6)
                    play_sound('slice1', 0.96+math.random()*0.08)
                return true end }))
    end
}

the } at the end is line 116

zealous glen
hardy viper
tepid rock
#

Could you ellaborate where (I am new to this)

unborn bay
#

you're missing an end for the if statement check

hardy viper
#

blue = needs an end red = ends

#

they're imbalanced

tepid rock
unborn bay
#

im pretty sure theres an end for the for loop and the statement within that for loop lmao

#

yes inline end statements exist

hardy viper
#

oh shoot

#

i missed two yeah

#

sry am on pgone

unborn bay
#

pgone

tepid rock
#

theres dotted lines cus im on vcs, should each line have an end basically?

hardy viper
#

no

#

only control flow statements need ends (if, for, while, repeat, function)

#

you need one for the if statement

paper zealot
# tepid rock Relevent part

Your formatting and indentation is wild. Try installing the Lua extension and running the auto-formatter with Shift+Alt+F

tepid rock
#

tried installing the lua extension, is not working and I do not have the knowledge to get it to work

unborn bay
#

vscode -> extension icon in side bar -> search -> lua -> install

#

it's that shrimple

tepid rock
#

which is actually lua?

#

Idk if i missed one btw but its back

daring fern
paper zealot
unborn bay
#

you're using Visual Studio

#

not Visual Studio Code

#

two different programs

#

i fucking hate how microshaft named it like that its so confusing

#

like naming it atom 2 would probably be better

dire palm
hardy viper
unborn bay
#

vsc that one geometery dasher level

tepid rock
#

NVM, fixed it

#

Just need to figure out how to get my code to work

modern kindle
#

Good schmorning chat

thin anchor
#

schmornin'

cursive sentinel
#

i unlocked all before i knew about the debug mod to test out my jokers, but now my main profile is locked out of achievements, is there a way to undo it?

halcyon osprey
#

how do i like make my deck start me with 1 extra hand slot and 1 extra joker slot?

cursive sentinel
#

which one is the save file?

daring fern
cursive sentinel
#

thank you!!

modern kindle
halcyon osprey
daring fern
placid star
#

does anyone know if negative mult is at all possible with smods?

cursive sentinel
#

you mean getting into negatives?

#

or going under 1?

modern kindle
#

it technically is from a numerical standpoint, i have a card that give -5x mult on specific conditions

#

it doesnt really show up on the display (ie it doesnt say x chips x -number mult) but the chip score you have will be neg

tepid rock
#

issue again, sorry for being a pain ^^'

    calculate = function(self, card, context)
        local my_pos = nil
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i] == self then my_pos = i; break end
        end
        if context.setting_blind and not self.getting_sliced then
            if my_pos and G.jokers.cards[my_pos+1] and not self.getting_sliced and not G.jokers.cards[my_pos+1].ability.eternal and not G.jokers.cards[my_pos+1].getting_sliced then 
                local sliced_card = G.jokers.cards[my_pos+1]
                    sliced_card.getting_sliced = true
                    G.GAME.joker_buffer = G.GAME.joker_buffer - 1
                    G.E_MANAGER:add_event(Event({func = function()
                        G.GAME.joker_buffer = 0
                        G.jokers.cards[my_pos-1]:set_ability(G.P_CENTERS.e_negative, nil, true)
                        self:juice_up(0.8, 0.8)
                        sliced_card:start_dissolve({HEX("57ecab")}, nil, 1.6)
                        play_sound('slice1', 0.96+math.random()*0.08)
                    return true end }))
                end
            end
    end

it is meant to be destroying the joker on the left (like ceremonial dagger) then giving negative to the right but nothing is happening

#

on blind select

cursive sentinel
daring fern
cursive sentinel
#

ahh so this are the saves

#

ok so i use the file 1's

runic pecan
#

Is it possible that SMODS.blueprint_effect returns nil?

daring fern
#

Is it possible to change the message when returning dollars?

runic pecan
runic pecan
daring fern
halcyon osprey
#

is there a way to make a card not retrigger

daring fern
halcyon osprey
#

My Board cards are all card that can be Played or Held, and if i have a seltzer they can be retriggered, A couple of them, i dont want retriggered because they summon a strong joker

dire palm
#

Is it possible to have my Joker give Xmult when it's debuffed? I thought that would do the trick but it just does nothing.

daring fern
daring fern
dire palm
#

Never hooked anything before. How do I do it?

zealous glen
daring fern
dire palm
#

Do I put this inside my Joker or before?

daring fern
stark geode
#

Me after opening the Lua docs

keen tiger
#

Has anyone tried to load a native lib in a balatro mod?

keen tiger
#

Did a cursory glance w/a search and asked claude and it seems possible

red flower
#

i didnt end up using it but i did try out some libraries once, i just copied the way smods does it

keen tiger
#

got it

#

also this might make this mod better to use for more stuff

modern kindle
#

does anyone know the key for hanged man off the top of their head before i start diggin

#

im assuming its c_hanged_man but im not certain, i suppose just testing it will verify that

#

it sure was

zealous glen
#

At least it wasn’t misspelt

modern kindle
#

yea i just had the consumable consumeable happen in the challenge

#

lmao

zealous glen
#

It’s not loading properly here

modern kindle
#

its just a horse shakin his head no

tepid rock
tepid rock
zealous glen
tepid rock
#

NVM, works but now it kills the one on the right then gives me this error


    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue + 1] = G.P_CENTERS.e_negative
    end,
    calculate = function(self, card, context)
        local my_pos = nil
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i] == card then my_pos = i; break end
        end
        if context.setting_blind and not card.getting_sliced then
            if my_pos and G.jokers.cards[my_pos+1] and not card.getting_sliced and not G.jokers.cards[my_pos+1].ability.eternal and not G.jokers.cards[my_pos+1].getting_sliced then 
                local sliced_card = G.jokers.cards[my_pos+1]
                    sliced_card.getting_sliced = true
                    G.GAME.joker_buffer = G.GAME.joker_buffer - 1
                    G.E_MANAGER:add_event(Event({func = function()
                        G.GAME.joker_buffer = 0
                        G.jokers.cards[my_pos-1]:set_ability(G.P_CENTERS.e_negative, nil, true)
                        card:juice_up(0.8, 0.8)
                        sliced_card:start_dissolve({HEX("57ecab")}, nil, 1.6)
                        play_sound('slice1', 0.96+math.random()*0.08)
                    return true end }))
                end
            end
    end
    
}
placid star
runic pecan
#

How to set a minimum value for joker name font size?

runic pecan
#

With SMODS.has_enhancement(context.other_card, 'm_steel') being true, how do I access this Steel card's held-in-hand Xmult?
I originally thought it'd be context.other_card.ability.config.h_x_mult but the game crashed and said config is nil.

daring fern
runic pecan
daring fern
runic pecan
#

So not context.other_card.config.h_x_mult, then.

wintry solar
runic pecan
tepid rock
glad osprey
#

is it possible to lock buying a certain booster pack until a condition is met?

#

like make it impossible to purchase (it can still show up tho) until you do something

runic pecan
dire palm
dire palm
daring fern
runic pecan
dire palm
daring fern
#

It has to go last.

daring fern
dire palm
#

I'm doing tests by going against Crimson Heart.

runic pecan
daring fern
glad osprey
#

definitaly

dire palm
wintry solar
#

Debuffed cards would never hit calc joker

#

They get handled in eval_card

dire palm
#

So, should I just replace the joker_main context to eval_card?

tropic sparrow
#

I'm making a joker that gives one of these effects. how do I code multiple possibilities and then randomize which one is picked? (equal odds of course)
I imagine I need to make a separate list of variables then use psuedorandom. but if someone knows of a mod/joker in a mod that does something similar I would accept that too.
I do have the smods wiki open trying to gather as much information as possible before asking but I figure something simple like this could be explained quicker

hushed field
#

yeah, just a pseudorandom and then some if-statements should take care of that

keen tiger
#

I'm not fully sure what Balatro's lua runtime is

#

Or what it supports (this lua library is some native lib bindings)

#

Ok so Balatro does use LuaJIT2, so maybe it will werk

runic pecan
dire palm
#

So, since nothing I've tried so far is working, anyone got any idea how I can have my Joker give Xmult when it's debuffed?

ruby delta
#

@glass scaffold how are you

limber blaze
glass scaffold
ruby delta
old bane
#

unless you do some lovely shenanigans

high sinew
#

Whats the best way for having a joker not show up in shop? I want them to be in theory an upgraded version of a previous joker so its upgraded versions wouldnt be showing up in shop

shut crater
high sinew
#

ok bet

#

Also my Xmult isnt really working on my ghost pepper joker its crashing everytime saying round _reserve isnt working does this look right?

wintry solar
#

What on earth is round_reserve

keen tiger
zealous glen
#

I saw some post about how to make Balatro use LuaJIT2

keen tiger
#

its annoying and fiddly but you can put a .dll into the common folder like lovely

zealous glen
#

Yeah it was something like that

keen tiger
#

and then import the dll

#

annyoing but ehhhh

tranquil vector
#

Is there a way to obtain the sprite of last acquired(or bought) joker? I have this to get the name of the joker but I cant seem to get the sprite, I tried something using G.ASSET_ATLAS["Joker"] but failed miserably

    local original_buy_from_shop = G.FUNCS.buy_from_shop
    G.FUNCS.buy_from_shop = function(e)
        original_buy_from_shop(e)

        local c1 = e.config.ref_table
        if c1 and c1.ability and c1.ability.set == 'Joker' then
            G.E_MANAGER:add_event(Event({
                trigger = 'after',
                delay = 0.1,
                func = function()
                    last_joker_name = c1.ability.name or "Unknown Joker"
                    return true
                end
            }))
        end
    end
tranquil vector
#

I would like a sprite copy of the joker to display elsewhere for my vision impairment making it hard to look at the top of the screen

south lintel
#

this crashes with attempt to index field 'other_card' (a nil value). how do I properly reference and change the played cards? I thought this was correct

wintry solar
#

You can’t use other card inside events

#

You’ll need to save a local reference to it

south lintel
#

that worked, thank you

#

nvm, now it crashed attempting to call method juice_up which is nil

#

and it's not the juice_up I have in my code since I removed it and it still crashes

zealous glen
#

@frosty dock has also made an accessibility support mod IIRC

south lintel
tranquil vector
zealous glen
shrewd cobalt
#

Can a joker use the tag_add context to detect if a tag was added?

glad osprey
#

why not red

faint yacht
glad osprey
#

why is she a credit card

#

nvrm

tall wharf
glad osprey
#

yep

tall wharf
#

is that Saturday Tasogare

glad osprey
#

yes

native star
#

maybe the real Allison was the money we lost along the way

shrewd cobalt
formal parrot
#

Based

grand sage
#

my seal is appearing as xnil mult instead of 1.5mult does anyone know why?

errant karma
#

ok so i found a way to move the card to the left but it does this to the multiplayer cards and cryptid cards:
how do i fix this?

grand sage
sturdy monolith
#

how can i replicate wild card but for ranks

high sinew
daring fern
sturdy monolith
sly marten
#

I know this has probably been asked a million times, but I can't seem to find an answer myself

Where can I find all the base game Joker functions in order to reference them for creating modded Jokers?

grand sage
#

Excuse me i was wondering how i would make a seal increase the amount of $ the card gives by 1 when scored and then destroy the card at 10$

terse marsh
#

Hey ik this is prolly a dumb question but im working on a joker that works similar to wee joker how would i display the current amount of chips held in the text box

sturdy monolith
terse marsh
#

awesome i appreciate it 🙏

spare furnace
sturdy monolith
#

other question, how can i multiply the finalized score of a hand
(e.g. if i score 20 chips after jokers finish scoring, i multiply the final score by 2 and now that hand instead earned 40 chips)

terse marsh
#

also another thing how do i create a script to just spawn that joker in when i start a run

tall wharf
#

hold on i might be stupid

#

maybe context.after

#

I'm not sure anymore

formal parrot
#

Jk aiko don’t nuke me

terse marsh
#

in the context of playing diff cards how can i grab the suit

#

like check the suit

graceful magnet
#

got a crash and the offending line is the context.scoring_hand[context.other_card] <= card.ability.extra.cardCount, trouble is I'm not sure which is returning nil

faint yacht
#

Are you trying to count how many cards are in the scoring hand?

sturdy monolith
#

how do i display a shader for an enhancement instead of for an edition

#

or are shaders locked to editions

graceful magnet
faint yacht
#

...I think you'd want to iterate over the context.scoring_hand to find what specific card is currently being evaluated first, then check? #context.scoring_hand would give you the total amount of scored cards.

grand sage
#

got this error when attempting to use my spectral card to apply a seal

spare furnace
stark geode
#

so i need to track how many colas are sold in a run

#

but im not sure how i should do it

sturdy compass
#

I'd say take over cola and make it iterate a global game variable that you define yourself

faint yacht
bold sleet
#

Odd question: Is there a way to make so balatro re-evaluates the hand type played?

spare furnace
#

i mean when the cards are initially drawn at the beginning of each hand

#

context.before is at the beginning of scoring

bold sleet
#

i.e. you have a card that when played, changes suit and or rank, and you want balatro to update the hand played accordingly.

bold sleet
spare furnace
#

yaya

graceful magnet
#

this is not detecting at all

bold sleet
#

mod prefix?

graceful magnet
#

that's the azzy

bold sleet
#

hmmm