#💻・modding-dev

1 messages · Page 455 of 1

hybrid shadow
#

now it works as intended

drowsy heath
#

and it says remember to top up bcoz i do want to add the to ups

hidden sable
sonic cedar
#

yes, this is before the break
this is while it's broken, which (with the if statement readded) seems to only happen to the exception jokers i have

drowsy heath
#

and the other bits

hidden sable
drowsy heath
#

i noticed that instantly

hidden sable
#

lemme do a enw showcase

drowsy heath
#

its too late the shame has set in

red flower
hidden sable
normal crest
#

you've been at this for days

sonic cedar
normal crest
#

D:

drowsy heath
#

i need to rename coffee bean to coffee pot so i can use the consumable name as coffee beans

normal crest
hidden sable
drowsy heath
#

then i need to craft up whatever whchcraft u have done so i can use it

drowsy heath
hidden sable
#
SMODS.Joker { -- Decaf Joker
    key = "decaf",
    blueprint_compat = true,
    eternal_compat = false,
    rarity = 1,
    cost = 5,
    pos = { x = 1, y = 15 },
    config = { extra = { mult_loss = 5, coffee = 60 } },
    loc_txt = {
        name = "Decaf",
        text = {
            "{C:mult}+#1#{} loses {C:mult}#2#{} Mult per round",
        }
    },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.coffee, card.ability.extra.mult_loss } }
    end,
    calculate = function(self, card, context)
        if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then
            if card.ability.extra.coffee - card.ability.extra.mult_loss <= 0 then
                card:start_dissolve()
                return {
                    message = "All gone!",
                    colour = G.C.RED
                }
            else
                card.ability.extra.coffee = card.ability.extra.coffee - card.ability.extra.mult_loss
                return {
                    message = "-"..tostring(card.ability.extra.mult_loss),
                    colour = G.C.MULT
                }
            end
        end
        if context.joker_main then
            return {
                mult = card.ability.extra.coffee
            }
        end
    end
}
drowsy heath
#

then i will have milk, sugar, all that stuff

hidden sable
#
SMODS.Joker { -- Dalgona Coffee Joker
    key = "dalgona",
    blueprint_compat = true,
    eternal_compat = false,
    rarity = 1,
    cost = 5,
    pos = { x = 2, y = 15 },
    config = { extra = { mult_loss = 0.4, coffee = 2 } },
    loc_txt = {
        name = "Dalgona Coffee",
        text = {
            "{X:mult,C:white}X#1#{} loses {X:mult,C:white}#2#{} Mult per round",
        }
    },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.coffee, card.ability.extra.mult_loss } }
    end,
    calculate = function(self, card, context)
        if context.end_of_round and context.game_over == false and context.main_eval and not context.blueprint then
            if card.ability.extra.coffee - card.ability.extra.mult_loss <= 0 then
                card:start_dissolve()
                return {
                    message = "All gone!",
                    colour = G.C.RED
                }
            else
                card.ability.extra.coffee = card.ability.extra.coffee - card.ability.extra.mult_loss
                return {
                    message = "-"..tostring(card.ability.extra.mult_loss),
                    colour = G.C.MULT
                }
            end
        end
        if context.joker_main then
            return {
                xmult = card.ability.extra.coffee
            }
        end
    end
}
#
SMODS.Consumable { -- Coffee Bean
    key = 'bean',
    set = 'Tarot',
    pos = { x = 4, y = 0 },
    config = { extra = { coffee = 1.5 } },
    loc_txt = {
        name = "Coffee Bean",
        text = {
            "Multiply {C:attention}Coffee{} cards by {X:mult,C:white}X#1#{} Value",
        }
    },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.coffee } }
    end,
    use = function(self, card, area, copier)
        for _, v in ipairs(G.jokers.cards) do
            if v.ability.extra.coffee then
                v.ability.extra.coffee = v.ability.extra.coffee * card.ability.extra.coffee
                SMODS.calculate_effect({ message = "Refill!", colour = G.C.MULT }, v)
            end
        end
            
    end,
    can_use = function(self, card)
        return SMODS.find_card("j_modprefix_key")
    end
}
#

there

#

soryr for the flood

#

i dont have nitro i had to send invidviual messages

#

pls dont take out your torches and rakes

drowsy heath
#

lmao

#

return SMODS.find_card("j_modprefix_key") what specifics do i put here

#

coz i want it to work on all the jokers

#

but if i put in an id then it would only do that one ?

gleaming yew
#

Oh BTW these are like
Each line is a different joker
(Ehnancement and glass is one uncommon Joker, chips of last played hand is another uncommon Joker.

red flower
drowsy heath
#

oh so just leave it as is

sonic cedar
# red flower ok the problem is: i still dont understand what your joker does lol

there are two main components to this

  1. the costume, a fodder joker that just picks a random joker to disguise as to serve as a transformation for ijiraq WITHOUT me having to program in 150 joker files
  2. the exceptions, jokers with effects that can't be copied with the costume (conditions seen in the second image) or if i want to create a custom effect which the costume will use instead

the patch is to make the actual effects get transmitted properly, which, when setup properly works. but ONLY for the costumes? the exceptions' effects don't activate, and they don't transform

red flower
#

in can_use

drowsy heath
#

i will let ratmilk explain he wrote the code @hidden sable

#

how that bit work

red flower
hidden sable
sonic cedar
hidden sable
#

that can is only a thing that makes it so you cant use coffee beans if you have no coffee cards

drowsy heath
#

ohhhhh

hidden sable
#
can_use = function(self, card)
        for _, v in ipairs(G.jokers.cards) do
            if v.ability.extra.coffee then
                return true
            end
        end
    end
#

put that there

red flower
sonic cedar
#

I almost sent a sticker

hidden sable
#

whats that one balatro mod that adds those little buddies on your screen

#

like a tiny cuter version of cards

red flower
#

partner

hidden sable
#

thanks

sonic cedar
hidden sable
red flower
#

no the code is probably on the right track it's just the effect itself is complicated

#

i would need to know more about it to help

#

about the code i mean

normal crest
sonic cedar
#

it’s never been more over

drowsy heath
#

what could i do with that tho

sonic cedar
drowsy heath
#

what have i done

wintry solar
normal crest
#

Or when does it get a costume

sonic cedar
sonic cedar
sonic cedar
wintry solar
#

Does it put a new costume on if you’ve already revealed it?

sonic cedar
drowsy heath
red flower
hidden sable
hidden sable
sonic cedar
# wintry solar Does it put a new costume on if you’ve already revealed it?

yesish, but having multiple ijiraq at once isn’t possible, as they destroy each other, leaving one

basically if you have ijiraq, you can still find a costume, triggering the costume will turn it into ijiraq, which will destroy the other ijiraq

the ijiraq will have the effect of its initial costume and any other costumes you find

hidden sable
#

I WANT MY DISCARDS ANDREW

#

chat is this enough discards

normal crest
drowsy heath
# hidden sable whas the last thing you did

so i erm made the consumable and the consumable type run in the main lua after putting the coffee beans in the coffee consumable type, it worked in the collection page and i saw it but then loaded into a round n crash

hasty mist
#

how do you target all jokers to the right

sonic cedar
hidden sable
#

for everything you added

drowsy heath
hidden sable
normal crest
sonic cedar
# red flower everything lol
  1. costume
  2. costume's transformation function that gets called once joker is triggered
  3. override that handles per-ante costume changing and also resetting of the effect table
  4. override of usage of the costume's transformation function
  5. ui code overrides
  6. example of an exception's transformation code (troubadour in this case)
drowsy heath
#

i didnt know what to change it to i got confused and must have eft it

sonic cedar
drowsy heath
#

@hidden sable what do i put there

sonic cedar
normal crest
#

what does one of those exception files look like in its entirety

#

it isn't very clear in the pics you sent

#

at least to me

sonic cedar
drowsy heath
normal crest
#

Oh so the exceptions are actually different jokers

drowsy heath
#

well it didnt work and now im even more confused

normal crest
drowsy heath
#

okay so nevermind it did work but not on the jokers i designed

#

i need to work it in to them tho

sonic cedar
#

the exceptions also have this

#

but they use a version of it that uses card instead of self

normal crest
#

but I'm not confident I understood the problem entirely yet

sonic cedar
sonic cedar
drowsy heath
#

ok so @hidden sable i have the things all working now but they only work with you joker which uses the coffee in its code yet mine dont use that, is there a way for me to make a list of accepted jokers on the consumable instead of reworking my jokers

normal crest
sonic cedar
drowsy heath
normal crest
drowsy heath
#

i just need to let the consumable know which jokers it can effect

#

without reworking my jokers

normal crest
#

So the actual effect of the troubador exception happens in add_to_deck and remove_from_deck

#

which is what's presumably not triggering

normal crest
#

But the only thing it does in context.after is transform back to jiraq

sonic cedar
red flower
drowsy heath
#

the code ratmilk gave me for the consumable it effects jokers that have coffee written into them whereas my other jokers i made just have coffee as a pool

normal crest
drowsy heath
#

so they are not picked up in it

#

is there a way to add a list of accepted jokers to the consumable instead of changing all my jokers to work with coffee as that makes the obtype pointles

#

ill just hsow u the consumable code u will understand

drowsy heath
red flower
# drowsy heath

just change v.ability.extta.coffee for (v.config.center.pools or {}).coffee

drowsy heath
#

in the function at the bottom

#

or in the middle

#

ill do the one on line 17

#

wait all of them ?

hidden sable
drowsy heath
#

the exact thing im trying to avoid is reworking the jokers

hidden sable
red flower
#

yeah the problem is that you need something in the card's ability to multiply

red flower
hidden sable
#

just uhhh

drowsy heath
#

where did this battle start

hidden sable
#

duble block me

drowsy heath
#

just chill behave

normal crest
# sonic cedar

Can you print the return value of calculate_joker alongside the key it's currently copying

hidden sable
sonic cedar
normal crest
#

inside the for loop you assign it to joker

#

in the patch

sonic cedar
#

oh in the patch i thought you meant the override one

normal crest
#

just to confirm, right now it works properly with every other effect, but when it reaches one of your exceptions it doesn't transform back to ijiraq and stays as that exception

sonic cedar
sonic cedar
vague crest
#

i have a joker which changes which rank will trigger its conditions each round, but I cant figure out how to start it at a random rank. whats the process for this?

normal crest
#

just to know whose return value it is

sonic cedar
#

Ofc ofc

normal crest
sonic cedar
#

literally yes

normal crest
#

they have differences

#

besides one using self and the other card

#

if those aren't intentional then you shouldn't have two separate functions that do the same

sonic cedar
#

huh oh no those are

hidden sable
sonic cedar
normal crest
#

was it only copying j_joker

sonic cedar
#

"why am i sending a costume instance?" i did not gain 4 mult. so now i dont know what the hell is going on

sonic cedar
#

it can only copy jokers that would turn into the guy by the way
you cant somehow give it a blueprint and now it's blueprint

#

it would have to be specifcally the fake (exception in this case) version of it

normal crest
sonic cedar
#

BUT

#

it transformed

normal crest
#

can you try removing the calculate function from your troubador exception

sonic cedar
#

as for what i did:

  • started a run
  • spawned the costume (eval SMODS.add_card({key = 'j_hpfx_costume'})
  • got splash (this will not work, the exception hasnt been added yet either)
  • restarted
  • spawned the costume
  • got jimbo
  • went into a blind
  • played a hand
  • no mult gain
  • transformation occurs
  • close game
normal crest
#

if j_joker actually turned back i suspect that stuff you put in the exception is messing with it

sonic cedar
normal crest
#

yeah but troubador exception is the one that's not turning back right

sonic cedar
#

no that was an example

#

none of them are

normal crest
#

well do all of the exceptions have the same context.after part

sonic cedar
#

no

normal crest
#

can you show me the code for an exception you have tried

sonic cedar
#

here's raised fist

daring fern
#

normal crest
#

and if so, can you try without it

sonic cedar
#

without the

normal crest
#

well they clearly don't transform with it

#

so that's pretty much my logic

sonic cedar
#

i mean i guess i can? i dont know what you expect to happen but

#

sure ill take it out of raisedfist and try and get it

hidden sable
#

anyone know what this is?

normal crest
#

check if the repo has a wiki section

sonic cedar
normal crest
#

which of the prints is that, surely not the print(k, joker) line

normal crest
#

or did it ever print test

sonic cedar
#

there was never an ijiraq

#

and the table was never calculated

#

because the card never transformed

hidden sable
#

anyone know how to add partners

normal crest
#

isn't that due to this line in the costume

sonic cedar
normal crest
#

Yeah but it worked with j_joker cus of that variable, no?

sonic cedar
#

because j_joker was made from the costume

normal crest
#

is that not correct or am I missing something

sonic cedar
#

you'll typically see or because again
they're exceptions to the costume's rules

vague crest
#

hi, trying to create a variable like mail in rebate, where would i create a variable like this?

#

since i can see it's not really part of the joker itself

sonic cedar
#

either in your overrides or your main file it's one of those

normal crest
sonic cedar
#

it's not an exception

drowsy heath
#

okay so i fixed everything

drowsy heath
#

i made all new coffee jokers that work with the consumable

#

AND they also work with the coffee pot

#

so i get mult from them

#

i guess i dont need as much help as i thought i did

normal crest
#

that was pretty much my line of thought here

hidden sable
drowsy heath
#

i wanted help had issues and ended up without it an found a solution, its ugly and oh it is but it works

drowsy heath
#

whats that

hidden sable
drowsy heath
#

I WILL REMOVE RATMILKS DECAF

#

now i just need more coffee jokers

#

i want abt 5

sonic cedar
hidden sable
drowsy heath
#

im also making a chips variant of the coffee pot so you can get Xchips per coffee cards u have too

drowsy heath
#

latte gives base +20 and nothing else i want one that doesnt expire

tardy raven
#

solution? trying to load the LUA files in a directory in the mod

drowsy heath
#

i want to add things that help with other decks such as plasma thats why i want xchips rlly coz plasma is fun and everyone mains chips on there

normal crest
#

This code is all over the place I'm now more confused than ever before

sonic cedar
#

example:
braised fist triggers, turns into ijiraq. While it is turning into Ijiraq, it adds j_raisedfist or whatever it is to the table

hidden sable
#

braised

vague crest
normal crest
sonic cedar
normal crest
#

if for an exception it added the original key

sonic cedar
#

?

#

why would i want it to add the exception's key

normal crest
#

don't you want ijiraq to replace troubador's behaviour with your exception's

sonic cedar
#

the costume version

#

which already works

normal crest
#

so the costume version of the exceptions is the one with a different effect, the actual copied effect is the original one

sonic cedar
#

yes

#

the exceptions' custom effects are never copied

#

which is intended

lament agate
#

does anyone has a blank voucher template?

sonic cedar
#

adding to the table worked fine as well too
but i cant add to the table
if the joker cant transform

normal crest
#

okay so this is the mean in which non-exception jokers turn into ijiraq again right

normal crest
#

and thru what means are exceptions meant to turn back to ijiraq

sonic cedar
#

hi somecom

modern kindle
#

hi also smt and hyper and srock and lurkers

sonic cedar
#

demoted to hyper it's over for me

#

i knew i shouldve flipped it around

#

(hi dilly)

modern kindle
#

its okay youre just a girl

#

what would you prefer i call you

sonic cedar
#

i was joking if we're fr
youre just like one of the 2 people that didnt use toma so i found it funny

modern kindle
#

lmfao

#

i just didnt know if you had a pref

sonic cedar
#

my preference is: "whichever one tells me you're talking to me"

modern kindle
#

you are now 'the'

#

:)

sonic cedar
lament agate
#

do you guys ever play vanilla

sonic cedar
#

i want to

modern kindle
#

the problem is whenever i make mods for some thing i decide my mod is the objective best way to play the game

sonic cedar
#

just like deltarune 3/4

modern kindle
#

i did it for lethal company and this now

lament agate
#

i was coding a joker that gives you money and self destruct itself when they found a specific joker in a shop

#

the thing is

#

i dont know what joker

#

would i want it to be

#

😭

sonic cedar
lament agate
#

im not putting common joker

sonic cedar
#

(obelisk)

lament agate
#

you're crazy

sonic cedar
#

oh im insane

normal crest
modern kindle
# sonic cedar oh i dont have that issue ever

i have the issue all the time
lategame upgrades for lethal i think is the goated way to play, and since i only ever play my mod i think its the best

the only other things is i intend on trying out all ym friends mods when im release ready

its not that i think im better than everyone elses
i just only ever see mine lmfao

lament agate
#

the key for the rare poker hand is j_the_family right

#

or j_the_duo

normal crest
sonic cedar
normal crest
#

I need to see this with my own eyes or I feel like I'm gonna go insane

sonic cedar
#

let me push this out so it's up to date for you tho

normal crest
#

what's the name of it?

#

oh it's in your profile nvm

normal crest
#

good commits

sonic cedar
#

thank you

modern kindle
#

i also think good commits

sonic cedar
#

double thank you

hidden sable
#

im gonna add a partner thing to my mod and i wanna make it where it detects consumables not jokers is that a thing i can do?

normal crest
sonic cedar
#

im gonna get you

#

that's why im HERE

normal crest
#

no, but, literally none of the jokers work, not even related to ijiraq

sonic cedar
normal crest
#

I wasn't aware this was an issue to begin with

sonic cedar
#

only the transformations work

hidden sable
sonic cedar
#

"how"
i am in this channel for a reason

normal crest
#

i am going to explode into a million pieces

vague crest
#

helloo, trying to figure out how to change this code to switch every time a boss blind is defeated, rather than at the end of the round, is there a simple change to do this?

sonic cedar
modern kindle
daring fern
#

sonic cedar
sonic cedar
hidden sable
sonic cedar
normal crest
daring fern
modern kindle
hidden sable
sonic cedar
normal crest
hidden sable
#

i posted that here to show theres something about individual quips

normal crest
#

that solves the jokers not triggering

#

as for ijiraq, I don't even know how I'm supposed to get it ingame

sonic cedar
#

well

#

you can trigger jokers now so

#

eval SMODS.add_card({key = 'j_hpfx_costume'})

normal crest
#

But how do you get it without spawning, or is that not implemented yet

normal crest
#

I see

sonic cedar
#

ijiraq itself is not in the pool

normal crest
#

okay well that works I guess

sonic cedar
#

here's a list btw

normal crest
#

well now that your jokers trigger again you can probably find the issue....

#

but i'll try

sonic cedar
#

goated

#

would you rather be named after a black cat or a white one

normal crest
#

an orange one

#

becasue i'm stupid

sonic cedar
#

orange ones are the smartest ones smh

#

...except one

modern kindle
#

im so tired of the smart people here calling themselves stupid cause what does that make me smh

sonic cedar
#

stupider

modern kindle
#

D:

sonic cedar
#

the truth hurts

#

🥀

modern kindle
#

ur just being mean to me because u think im cool

sonic cedar
#

this is true

#

i think youre awesome

modern kindle
#

:D

#

youre also awesome

sonic cedar
#

im so rotted i could hear the good ending music in my head

modern kindle
#

lmfao

modern kindle
#

sometimes thats all you need

normal crest
#

okay well i just tried with making the fodder_card j_raised_fist, spawned costume, after triggering it turned into ijiraq, then I played a hand with ijiraq and it triggered the effect

#

so idk

sonic cedar
#

ot

#

it

#

worked?

normal crest
sonic cedar
#

four lines.

#

actually no that last one is barely a line you jut removed local

#

it took three lines

normal crest
#

also here you need to remember calculate_joker returns two values

sonic cedar
#

OK WAIT IMPORTANT THING

modern kindle
#

better it takes only a few small changes than needing to redo it all

sonic cedar
#

DOES IT STACK PROPERLY

normal crest
#

haven't tested that

sonic cedar
sonic cedar
drowsy heath
#

this is right its just another / for a subfolder yeah ?

#

just coz i had alot of them and it was a pain to keep it in a big list

#

now ik what im looking for

sonic cedar
#

"folder/another folder/another another folder/you get it/file"

#

it's like file explorer

#

or. you know. a filepath

normal crest
sonic cedar
normal crest
#

okay so we should've started with "all the jokers stopped working"

#

would've saved us a couple hours

sonic cedar
#

funny enough that's uh

#

that's where it started

#

but then

normal crest
#

also those print statements are super laggy, remove them when testing or your pc will explode

daring fern
#

sonic cedar
#

i was sending you walls of print of course they're laggy 😭

normal crest
sonic cedar
normal crest
#

probably due to hpfx_Transform adding it directly

sonic cedar
#

wait that's right i removed the

daring fern
sonic cedar
#

let me put that back in transform

sonic cedar
normal crest
#

they can be in the commit description that fixes it

#

i hardly deserve them anyway, we spent 2 hours talking about stuff that wasn't the issue at all

daring fern
#

sonic cedar
normal crest
#

ngl yes, the issue was such a minor thing

sonic cedar
#

can i be in denial in peace srock

normal crest
#

yes

#

happy june 25th

sonic cedar
#

gimme an hour

#

how's tomorrow looking im not there yet

hasty mist
#

nothing i was doing at the time ingame had anything to do with this code

daring fern
sonic cedar
daring fern
sullen brook
#

Hey all. I know this is probably a stupid question, but I'm super new to all this and I can't figure out why this line in my challenge code isn't working to put a spectral card I created in at the start.

The cbfk is the mod prefix I'm using, and I've tried without the c, without the cbfk, without both, and it never puts that consumable in at the start of the challenge.

sullen brook
daring fern
sullen brook
#

Can provide more if helpful

daring fern
sullen brook
#

omw... -facedesk-

sonic cedar
#

that's thunk's fault

sullen brook
#

Geeze, I see the confusion now. Thank you for the quick clarification.

sonic cedar
#

it will happen again so dont stress

#

after 3 times it's your fault for being literate (i am joking)

vague crest
#

is it possible (and if it is possible, how?) to have the blueprint compatible thing appear twice on a joker? for example if I wanted to have a joker that retriggers jokers to the left and right under certain conditions

sonic cedar
subtle merlin
#

Question: can i have a table that contains a return and it's table?

daring fern
subtle merlin
#

noted

drowsy heath
#

If I wanted a joker that gained had size per obtype joker I have is that possible

normal crest
sonic cedar
#

it’s called a bonus

#

(I had to literally count 501 for the bit)

normal crest
#

you're a programmer, why'd you count

normal crest
#

just let computer do it

hidden sable
#

how do i turn a card negative if i have the cards reference, the reference could either be a consumable, joker, or playing card

sonic cedar
drowsy heath
sonic cedar
normal crest
tardy raven
#

trying to implement a joker that levels up hands 3 additional times when a planet card is used, current code doesn't work. anything I did wrong here?

normal crest
#

it will handle the diff types of negative automatically

drowsy heath
#

Is there a joker from a mod i can use as an example that you know of

normal crest
tardy raven
#

hmm

#

is there an smods equivalent to this?

vague crest
#

would be cool

normal crest
sonic cedar
tardy raven
#

mm

#

alright

vague crest
#

i can see that the description takes main end and only main end

#

tried a main_end2 and it didnt add anything extra and i tried changing the original to main_end3 and it removed the compatibility thing completely so

normal crest
#

you'd want to make main_end a column UI element that has two rows, one for each compatible thing

vague crest
#

ooh i see i see i think im seeing the vision

#

its really interesting to see how this stuff actually works

subtle merlin
hidden sable
normal crest
vague crest
#

ohh my PEAK

normal crest
#

honestly that's better than a column

#

it's clear which one is left and right

vague crest
#

the funny thing

#

its actually flipped right now for some reason LOL

#

easy fix though

sonic cedar
sonic cedar
hidden sable
vague crest
#

one day i like set up 5 jokers that didnt do anything with the intention of setting them up one by one and the description for all of them was "this joker does something amazing!" i was saying that phrase in vc like the whole day

drowsy heath
#

i found out by playtesting my mod is somehow on equal level of balanced as base balatro

#

im shocked

#

i managed to not pull a cryptid

solid grotto
#

I'm trying to remove the edition from a joker, why doesn't this work
(I'm assuming the first parameter in the set_edition call, "nil", stands for no edition)

hidden sable
#

how do i get a cards edition

normal crest
normal crest
#

might be nil

hidden sable
normal crest
#

if card.edition and card.edition.negative

hidden sable
#

k

wild escarp
#

How would I check for unscoring cards?

daring fern
manic rune
#

is that an optional feature 🤔

hidden sable
#

am i defining this right

normal crest
daring fern
hidden sable
tardy raven
normal crest
manic rune
#

mm

#

i see

sturdy compass
#

Rare Astra question
What would the context combo for me be to have this booster spawn and open at the start of an ante? Ignore the current combo because it does not work lmao

vague crest
#

im sooo confused trying to get this to work

manic rune
#

try looking into lcorp's code, in one of their challenges they have it so a booster pack is opened at the end of ante

vague crest
#

it should just retrigger both jokers when the criteria is true (once every 4 hands) but instead it does nothing besides throw a weird error into the console the hand after it's supposed to trigger

normal crest
vague crest
#

wdym by store return exactly?

daring fern
normal crest
normal crest
wild escarp
#

This doesn't seem to be working, which contexts should I be using here? I just want the joker to gain xmult for every unscoring card.

if context.main_scoring and context.cardarea == "unscored" and not context.blueprint then
    card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.xmult_gain
end
vague crest
#

ihave this and it's not throwing the weird errors anymore but its still not triggering if theres anything else i missed

normal crest
#

in the 2nd loop you're still assigning other_joker instead of other_joker2

#

also you don't need two loops for that

#

you can do both assignments in one

vague crest
#

ohhhh my god 😭 ok good catch and ty

tardy raven
sturdy compass
tardy raven
#

very stumped

tardy raven
daring fern
normal crest
# tardy raven

that looks good, what's the actual contents of the file

tardy raven
wild escarp
vague crest
#

ohhh it works its just like a hand behind for some reason

vague crest
#

i got some weird bits to work out i fear 💔 but its functional !! ty everyone

drowsy heath
#

if i wanted a consumable to make something lucky would the edition be lucky or lucky_card or something like that

tardy raven
# tardy raven

i'm unsure if toml need to be called within a main.lua or not???? from what i parsed they execute automatically

normal crest
# tardy raven

can you go to Mods/lovely/dump/functions/common_events.lua

#

and see if you can find your payload

#

just ctrl + f "modify_level_increment"

normal crest
#

lucky is not an edition

#

it's an enhancement

drowsy heath
#

thats what i meant

normal crest
#

you'd so other_card:set_ability('m_lucky')

drowsy heath
tardy raven
#

seems like it's there?

normal crest
#

i'm not sure why it wouldn't work

tardy raven
#

heres the code for the jokers

#

if I happened to miss something

vague crest
#

out of curiosity what math function is % actually doing here? trying to understand the loyalty card functions better

drowsy heath
#

i took a guess but didnt work

normal crest
#

so 5 % 2 would be the remainder of 5/2, which is 1

normal crest
daring fern
weak gate
#

has any of you done a custom UI with a custom tooltip? Can't figure out how tooltips work

drowsy heath
#

was a guess but how would i make it work

normal crest
#

your calculate function is outside the joker definition

tardy raven
#

you mean line 25?

normal crest
#

26 for me

#

and add a comma right after the closing } in the soul_pos line

tardy raven
#

oh i was looking at the wrong lua

#

Fail

drowsy heath
normal crest
drowsy heath
#

no but for the way im doing it

drowsy heath
hidden sable
#

how do i check for for every card under 52

#

like how many cards under 52

daring fern
normal crest
hidden sable
#

so if i had 50 cards in deck i would get 2 back

drowsy heath
daring fern
normal crest
scarlet imp
#

is there a way I can test to see if a hand defeats a Blind or not? currently I have if context.after and not context.end_of_round then but the second condition doesn't seem to do anything

drowsy heath
#

i mean the structure, i dk how to make your line fit into my code

#

i want it to make all cards held in hand lucky

normal crest
#

replace all this with what I said

drowsy heath
#

oh

#

thank you and sorry for the confusion

wild escarp
#

How could I condense this into a singular message instead of a message for each card?

if context.main_eval and context.cardarea == "unscored" and not context.blueprint then
    card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.xmult_gain
    return {
        message = localize('k_upgrade_ex'),
        colour = G.C.MULT
    }
end
normal crest
#

my bad

tardy raven
#

file structuring drives me a little up the wall

daring fern
drowsy heath
normal crest
#

remove the =

drowsy heath
#

ok

normal crest
#

you made that one up

normal crest
drowsy heath
#

odd, im tired i might head to bed after i get this one done then

#

i clearly need it, this whole consumable ive been upside down

normal crest
#

it will let you know of any syntax errors before launching the game

wild escarp
normal crest
#

and can automatically format your code to make it easier to read

tardy raven
#

yeah Ive been using Zerobrane for a while

tardy raven
#

ill grab that shortly

hidden sable
daring fern
tardy raven
hidden sable
#

anyone know whwtas wrong here

tardy raven
#

card is functional

drowsy heath
wild escarp
hidden sable
daring fern
drowsy heath
wild escarp
#
local message = false
if context.main_eval and context.cardarea == "unscored" and not context.blueprint then
    card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.xmult_gain
    message = true
end
if context.before and message == true then
    message = false
    return {
        message = localize('k_upgrade_ex'),
        colour = G.C.MULT
    }
end
hidden sable
drowsy heath
#

okay im calling it a night its nearly 6am and i wanna be alive tomorrow ive slept all day last 3 days and worked at night lmao

daring fern
#

Also context.before happens before context.individual

hidden sable
#

keeps happening when i select the first blind

wild escarp
hidden sable
#

turns out this line is REQUIRED

#

since partners never does a check to see if extras even exists

vague crest
#

one last weird issue, what seems to be happening is it doesnt retrigger any jokers if it cant trigger the joker to the right ?

scarlet imp
#

I also tried context.blind_defeated and it does nothing

hidden sable
#

thanks jacob

final jewel
#

Am I using the right condition for checking the edition of a playing card

hidden sable
#

how can i disable the behavior of cards not showing up twice for only my consumables

#

like a showman

scarlet imp
daring fern
hidden sable
# daring fern

so in_pool(self, args)
return { allow_duplicates = true}

daring fern
final jewel
vague crest
#

how would i check if blueprint didnt find a joker to retrigger?

#

or if like, blueprint retriggering a joker doesnt actually do anything

#

specifically during a hand

#

because whats definitely happening i tested it more is if joker2trigger isnt anything then jokertrigger never triggers

#

otherwise it works fine

#

and this only happens during a hand, it works fine with copying in the shop

timid parrot
#

Is there a way to detect and count the triggering of scoring effects during a hand? Trying to make a Joker that adds mult equal to the number of scoring effects before the Joker is reached in the main Joker scoring step

#

I had a version before new calc that was very hacky

timid parrot
#

I found a way a while back. I’d have to check how I did it when I’m back at my PC

timid parrot
scarlet imp
#

I want it to be in context.after or sometime around then. The Joker's effect is that it gives $3 when played hand does NOT defeat the Blind

tardy raven
#

I assume this is the correct way to format this??? (trying to make a joker which sets cash to 0 and generates a random tag when destroyed, at the set cash to 0 part)

timid parrot
scarlet imp
#

thanks lol

stiff quiver
#

whats the prefix for tarot cards?

timid parrot
#

Iirc all consumables are prefixed with c_

hidden sable
scarlet imp
#

no not like that, it's like Todo list where it gives you money mid-blind

hidden sable
#

oh then uhh

scarlet imp
#

that part works fine, I just need to make it so that the effect does not proc when blinds are defeated

stiff quiver
timid parrot
#

If you have the source you can check. I haven’t touched modding in a while

abstract ingot
#

first time coder, I am trying to understand how all this works and am a bit unsure bout my code (and why lots of it is all red)

timid parrot
abstract ingot
#

do i copy/paste my code itself or screenshot be better?

hasty mist
#

Is there a way to make a joker only appear as a hidden card in spectral packs?

timid parrot
#

idk if there's some API stuff that would get the job done now tho

abstract ingot
#

to share it

timid parrot
#

lemme check that first

tardy raven
lament agate
#

planet only requires c_ right

#

like all consumables?

timid parrot
# scarlet imp thanks lol

ok so this was my hacky solution to tracking chips for joker and blind purposes. Use a different variable name if you want to go this route

hidden sable
abstract ingot
#

first attempt

timid parrot
#

then my context check was context.after and G.GAME.eman_chips < G.GAME.blind.chips

tardy raven
scarlet imp
timid parrot
hidden sable
timid parrot
#

I might check how much of what I did was necessary

#

cuz it's been a while

#

but that requires I go digging thru the source code

scarlet imp
#

Yeah I think its on the right track though, thanks

timid parrot
#

I know I used it for both a joker and a boss blind

#

which is probably why there's two injects

hasty mist
#

How do you ensure a joker isn't in it's respective rarity's pool?

timid parrot
#

where do you want it instead?

tardy raven
hasty mist
#

i want it to keep its rarity, but not be in it's pool

timid parrot
#

prob just set the in_pool function to return false or nil

hasty mist
#

itll have its own condition for being created

hidden sable
timid parrot
hasty mist
#

ah, ive used that before, i wasnt sure that would work, its caused issues for me before

hidden sable
#

or return nil idk

tardy raven
#

i know the basics around lua (mostly) but

#

i'm nowhere near advanced

timid parrot
#

yeah so basically

#

the ease_dollars part is very much not part of the return

#

it's something else

lament agate
hidden sable
lament agate
#

thanks

hidden sable
#

shoulda just tried it bro

lament agate
#

i mean

#

i did

#

i thought it will be different

hidden sable
#

all consumables are c_

tardy raven
hidden sable
#

planet, tarot, spectral

#

it's all c_

#

even my custom consumables are c_

hidden sable
#

learn lua

#

you are writing in lua

timid parrot
#

what are you even trying to do exactly?

lament agate
tardy raven
#

wanted to figure out the sets cash to 0 part first

timid parrot
#

sets cash to 0 part is just this

lament agate
#

did i do something wrong?

hidden sable
daring fern
hidden sable
#

just use the Planet pool

hasty mist
#

How do you target all jokers to the right of a joker?

lament agate
#

you guys couldve told me

hidden sable
lament agate
#

😭

hidden sable
hasty mist
lament agate
#

BAHAHAHAHA

#

alright fair

hasty mist
#

the including part was a misspeak

#

my bad

lament agate
#

how do you get to the planet's pool tho

timid parrot
daring fern
hidden sable
daring fern
# hasty mist my bad
for i=1, #G.jokers.cards do
    if i > my_pos then
        table.insert(cardstotheright, G.jokers.cards[i])
    end
end
#

my_pos is the position of the joker that you would've put in a variable.

tardy raven
timid parrot
hasty mist
#

alrighty, thank you

timid parrot
#

and skip the whole if statement that's kinda pointless

hasty mist
#

i dont understand for loops yet even though ive been really trying

timid parrot
tardy raven
#

ahh

#

where would I do that

#

sorry for my amaturish nature i'm kinda learning smods as I go along

timid parrot
#

yeah that's from the Cryptid mod, but to make your own fallback if Cryptid isn't loaded, you'll define one in your main lua file

tardy raven
#

should probably re-read the manual a few times along the way

tardy raven
#

ohh

timid parrot
#

sorry, Talisman

#

mb

tardy raven
#

well I def don't have talisman

#

should I grab it or is there a workaround

hidden sable
timid parrot
#

add this line to your main lua file to_big = to_big or function(x) return x end

timid parrot
#

it's just the start index of the for loop?

hidden sable
timid parrot
#
for i=(my_pos + 1), #G.jokers.cards do
    table.insert(cardstotheright, G.jokers.cards[i])
end
tardy raven
hidden sable
timid parrot
#

I don't think a bunch of ? reactions is a substitute for a question

abstract ingot
#

error launching, total rookie at coding so I'm confused when looking at this section of my code

#

the code for ref

daring fern
abstract ingot
#

ohhh

#

gotcha

hidden sable
#

when mr poly bridge reacts ❓ to my message

daring fern
hidden sable
#

i feel like mr poly bridge is a gd fan, only they would do this

hidden sable
timid parrot
hidden sable
#

i can feel it

#

in my bones

daring fern
timid parrot
#

guess I gotta look at the SMODS source?

hidden sable
#

dammit he actually has a solution

hidden sable
#

like any other hook

timid parrot
#

I need to know what parameters it has to hook it lmao

scarlet imp
#

what's the global value for the amount of chips the player has already scored

daring fern
daring fern
hidden sable
#

forgot the h

#

G

#

I MEANT G

tardy raven
timid parrot
timid parrot
#

damn

#

and this is how I find out that they added support for X chips

sonic cedar
scarlet imp
#

real

#

boutta get hit with the ❓

faint yacht
#

Such has been worth exploring this for copy support.

timid parrot
hidden sable
scarlet imp
#

i figured it out, but maybe you could

#

I want to do it in context.after though

timid parrot
#

because I could use a solution that's better than injects lmao

hidden sable
#

mr poly bridge suggestion: instead of 🤷‍♂️ use

scarlet imp
timid parrot
#

sure

scarlet imp
#
[[patches]]
[patches.pattern]
target = "blind.lua"
pattern = "self.chips = get_blind_amount(G.GAME.round_resets.ante)*self.mult*G.GAME.starting_params.ante_scaling"
position = "before"
payload = '''
G.GAME.blind_health = get_blind_amount(G.GAME.round_resets.ante)*self.mult*G.GAME.starting_params.ante_scaling
'''
match_indent = true
times = 1

then, to check whether or not the played hand defeats a Blind, I do this:

if context.after and G.GAME.chips + hand_chips * mult < G.GAME.blind_health then
#

works perfectly, and isn't too difficult to understand I think

#

I think the global variable is gonna be really useful to me later on too, since I want to add other Jokers with similar effects

timid parrot
#

wait are hand_chips and mult globals?

sonic cedar
hidden sable
scarlet imp
timid parrot
#

shiiit I didn't need a patch at all

scarlet imp
#

bruhhhh

#

frl

#

I'm so dumb 😭

hidden sable
#

yall reinventing the wheel or what?

abstract ingot
#

im losin' it

scarlet imp
hidden sable
hidden sable
#

next patch is gonna be making a mod using nothing but patching

timid parrot
hidden sable
#

balatrojoker why are all the jokers so happy, can we get one joker that's just depressed af

tardy raven
hidden sable
hidden sable
#

what are the legendary jokers even based on?

hidden sable
scarlet imp
#

I've never seen Canio in my life officer

hidden sable
#

spot what's wrong with this image chat

timid parrot
#

nothing, those are the 6 jokers you can get from the soul

hidden sable
timid parrot
#

wait whaaa

#

is it a magnified wee joker?

scarlet imp
#

Jimbo at home:

hidden sable
hidden sable
#

look at the finer details

timid parrot
#

you miscolored his uh... idk what those dots are called

#

they match the wrong part of his hat

hasty mist
timid parrot
#

just comparing it to this

hidden sable
timid parrot
#

well uh that's 3 guesses wrong so uh

#

what is it?

hidden sable
#

also some pixel scaling is off but it's not that

hidden sable
sonic cedar
hidden sable
#

he isn't checking for his opps anymore

timid parrot
#

ohhhh

sonic cedar
#

Oh we did it already

timid parrot
#

oof

sonic cedar
#

damn

hidden sable
#

fun fact the irl versions of trib and yorick wore red not blue or orange and black

sonic cedar
#

that wasnt fun at all

timid parrot
#

so I'm making a boss blind and this doesn't seem to be triggering

hidden sable
#

spot what's wrong in this image

timid parrot
#

or rather, something's off cuz it's supposed to destroy your winning hand

#

but it isn't doing that

hidden sable
crisp coral
#

this is the fucking modding dev chat

hidden sable
formal parrot
#

Good morning dev chat

floral narwhal
formal parrot
#

Looks normal

hidden sable
formal parrot
#

Negative chip value goes unreasonably hard

floral narwhal
#

Its same for mult

#

how can i fix it?

hidden sable
floral narwhal
#

made a mod with minus topic

#

like minus ranks and ....

sonic cedar
#

Stack overflow

#

💥

hidden sable
timid parrot
#

do blinds have a calculate context for destroying cards?

floral narwhal
floral narwhal
hidden sable
timid parrot
floral narwhal
#

making chip value show minus numbers

timid parrot
#

probably requires some kind of lua injection

tardy raven
#

is there a way to make it so this calc requires 3 of the same card to execute?

timid parrot
#

so like each card triggers the effect if there's 3 of them?

tardy raven
#

the idea is that it's a joker that only triggers if there's 6 of the same card

#

3 i mean LMAO

#

three 6's in one hand = joker gives chips

timid parrot
#

oh that's the main scoring step

#

and a for loop

floral narwhal
timid parrot
#

idk

#

I don't know how it all determines the display, but there's probably a bug that prevents it from rendering negative numbers

abstract ingot
#

There should be extra in line 38?

tardy raven
floral narwhal
#

thats not only problem this is problem cause if i paly this hand minus values turns into positive values

timid parrot
timid parrot
tardy raven
#

ive read through them a decent bit but not in their interity

timid parrot
#

like -2 x -200 = 400?

floral narwhal
timid parrot
#

oh

hidden sable
timid parrot
#

both

pale holly
#

Trying to make my voucher so it gives double tags for any blind skipped but it'll crash the moment i redeem it with a Context is Nil error, any help please ?
(i also used vanilla remade for the double tag part, edited it partially)

    key = 'solarwind',
        loc_txt= {
        name = 'Solar Wind',
        text = {
        "Complete itself with the Slide",
        "Double tags for each blind skipped"
    }
},
requires = { 'cymbal_slide_redeemed' },
    pos = { x = 0, y = 0 },
    redeem = function(self, card)
        check_for_unlock({ 'solarwind_redeemed' })
    if context.skip_blind and not context.blueprint then
                    return {
                func = function()
                    G.E_MANAGER:add_event(Event({
                        func = (function()
                            add_tag(Tag('tag_double'))
                            play_sound('generic1', 0.9 + math.random() * 0.1, 0.8)
                            play_sound('holo1', 1.2 + math.random() * 0.1, 0.4)
                            return true
                        end)
                    }))
                end
            }
        end
    end,
}```
timid parrot
#

man I love technical debt

#

somehow, somewhere, I managed to make retriggers stop working

#

how? idk

pale holly
#

retriggers out of stock

tardy raven
#

retrigger machine broke

timid parrot
#

imma just update my smods and see if that fixes it

hidden sable
timid parrot
#

when the shit in your programming catches up to you

#

in my case it's discovering that my poorly documented code broke the retrigger machine

formal parrot
# hidden sable what's technical debt

When you leave some bugs to fix later or adjust you build up debt that you’ll eventually need to fix
Like not making a localization file and instead making a loc_txt in every joker then deciding i want a localization file now you have shit ton of stuff to edit

timid parrot
#

...

#

that's something I should probably do, huh

formal parrot
#

Probably before its too late

timid parrot
#

yeah

formal parrot
#

Its easier imo

timid parrot
#

oh I'm sure it is once it's set up

#

currently tho I need to figure out what in God's name I did to break retriggers as a mechanic

formal parrot
#

I’ve spent 2 hours figuring it out because i was using mod key instead of prefix

timid parrot
#

oof

formal parrot
#

Yeah probably don’t do that lmao

tardy raven
pale holly
#

wait the loop part is when trying to exactly score three 6s right ?

pale holly
#

it should be something like this, i worked on a joker require exact precise cards too earlier

tardy raven
pale holly
tardy raven
#

alright, i'll give this a shot

pale holly
#

this is how my full code looks like with this implemented

#

if that can help to see how it should be used

#

Also, Joker Forge is what i used for the specific triggers of played cards x time in the played hand, you should find it in the #1209506514763522108 tab, it's still a huge wip but it can be useful

tardy raven
#

might have formatted this incorrectly?

pale holly
#

there's two (( in red, i think it's a syntax error

timid parrot
#

ok I fixed the retrigger machine

pale holly
timid parrot
#

here's a point of advice, don't forget the return part of your hook

lament agate
#

how do you fix this