#💻・modding-dev

1 messages · Page 282 of 1

rugged pier
#

"." instead of ":"

red flower
#

yeah

rugged pier
red flower
#

correct

digital niche
#

how can i do it so in the text it says how many rounds the card havve left?

red flower
#

i mean you can put it in any file as long as is not inside an object

rugged pier
#

and the normal contexts still apply within in

rugged pier
#

like if i need to check if a joker is owned

#

oh

red flower
#

context is not passed to that function but you can still use SMODS.find_card

digital niche
#

is there a way to get more discards with debugplus

#

?

digital niche
rugged pier
#

and check for an ability name

minor furnace
#

is it time for me to lock in and figure out how to force disable other mod's content while my specific challenge is active?

red flower
red flower
modern kindle
#

Hi besties

rugged pier
slender bay
#

Queens score again after scoring is totaled and carries over, I have no clue what's going wrong

red flower
rugged pier
red flower
minor furnace
#

oh wait

#

I totally did not see G.GAME.banned_keys

minor furnace
# red flower

does this not require you to provide the specific key of every single thing? Which I can't do if I don't know what mods people may or may not have downloaded

azure pilot
#

How do configs work? If I update a mod.config property, does it stay that way permanently, like between turning off and on the game? How would I reset the config then?

minor furnace
#

maybe I can dynamically add it to the table at runtime based on the list of mods detected?

orchid thunder
#

Why is the game not finding the global variable i made in G.GAME via lovly patch

rugged pier
red flower
rugged pier
#

thank you

digital niche
#

what did i do wrong here?

stark geode
#

i feel like my mod devloping is going pretty good

rapid stag
#

∴⍑ᔑℸ ̣ ℸ ̣ ⍑ᒷ ⎓ꖎ⚍𝙹∷╎↸ᒷ

minor furnace
stark geode
#

i just dont quite know where to go

#

when do i stop

rugged pier
#

okay this works, how do i check if the count is > 0 for this

#

#SMODS.find_Card() > 0

#

?

red flower
orchid thunder
red flower
rugged pier
rugged pier
stark geode
rugged pier
#

awesome

rugged pier
digital niche
#

whhat is wrong here?

stark geode
heady siren
#

Not card.ability.extra, one of the variables you set in the config = {extra = {}} table, you just prefix it with card.ability.extra.yourvariablehere

orchid thunder
red flower
heady siren
#

I was using card.ability.extra. as a placeholder because I thought you were aware of how card variables work

red flower
digital niche
digital niche
rugged pier
# red flower yes, or `next(SMODS.find_card("key"))` is a bit more efficient
local set_base_balatro = Card.set_base
Card.set_base = function(self, card, initial)
    if next(SMODS.find_card('j_csmr_tensoon')) then
        local tensoon = SMODS.find_card('j_csmr_tensoon')
        tensoon.ability.extra.mult = tensoon.ability.extra.mult + tensoon.ability.extra.mult_mod
    end
    local ret = set_base_balatro(self, card, initial)
    return ret
end

would this work, the local tensoon = SMODS.find_card('j_csmr_tensoon') part

chrome widget
#

What's the best place to put some kind of globally updating or random variable?

heady siren
chrome widget
#

Sorry, to clarify, I need an update loop independent of any jokers

digital niche
minor furnace
heady siren
#

If you don't have an extra = {here} table then make it in the config table

heady siren
rugged pier
red flower
minor furnace
red flower
heady siren
#

So it'd be {uses = 0}

digital niche
#

ooh okok

rugged pier
rugged pier
#

how does one do that now

digital niche
heady siren
#

Also, remove the curly brackets on the card.ability.extra.uses = {card.ability.extra.uses + 1}

red flower
rugged pier
rugged pier
heady siren
tired skiff
#

my first joker

heady siren
tired skiff
#

yes

digital niche
#

oh just change from + to - ofc

heady siren
#

card.ability.extra.uses = card.ability.extra.uses - 1

tired skiff
heady siren
#

if card.ability.extra.uses == 0 then
card:remove()
end

digital niche
#

do you also know how i can make the uses show up in the text?

heady siren
tired skiff
#

first time using aseprite

#

i think i have done good

digital niche
heady siren
tired skiff
digital niche
rugged pier
heady siren
digital niche
#

oh okok, ty!

heady siren
#

But replace card.ability.extra.mult with card.ability.extra.uses

brazen tusk
#

if im putting custom sounds in do i just need SMODS.Sound:register_global() in my main lua or is there more i have to do to set it up?

minor furnace
#

apparently, get_current_pool() does not apply to booster packs

heady siren
# digital niche oh okok, ty!

To show the held mult you can also add card.ability.h_x_mult to the vars table and then show that with #2# if it's the second variable

digital niche
rugged pier
minor furnace
heady siren
#

Or if you wanna somehow modify the card as it degrades in uses you could do that

#

Hell maybe even upgrade it with uses

minor furnace
digital niche
rugged pier
#

Is this how i would it? or would i put the mult mod in an update function within the joker?

willow void
#

how do i code a variable that can be tracked between context.before and context.joker_main? i have a condition in before that if returned it want it to score in jokermain

#

i would post code but im on break at work lol

red flower
#

that would probably cause an infinite loop

rugged pier
red flower
red flower
rugged pier
willow void
violet oasis
#

I managed to change background music based on current deck using SMODS.Sound, but how would I got about changing background color as well? I don't need to change the shader effect, I just need to be able to change the color based on current deck. As far as I know you can use ease_background_colour on SMODS.Booster, but I'm not sure how to apply that to decks.

brazen tusk
heady siren
brazen tusk
#

if thats what you are talking about

heady siren
#

That's not how tables work in lua

sturdy compass
rugged pier
# red flower no

just so i understand this correctly for future

*Game event when suit or rank changes
*My context is set to true
*My joker automatically updates (but it doesnt need to be in update instead of calculate
*my context is automatically set to false until the game event where suit or rank changes?

red flower
digital niche
#

?

sturdy compass
#

I just need to figure out how to get it to not trigger on played cards

heady siren
digital niche
#

okok, ty!

red flower
iron mantle
#

Does anyone know how you would communicate between a lovely patch and the smods code? i.e. I have a psuedorandom condition in a lovely patch and want to know when that corresponding code runs so I can have the joker do something else if it ran?

rugged pier
red flower
heady siren
rugged pier
red flower
rugged pier
#

okay this helps, thanks a lot!

ancient gorge
#

How can i get the numbers of cards in hand in calculate

red flower
digital niche
iron mantle
heady siren
rugged pier
#

can this break the main file from loading in?

red flower
iron mantle
#

does this imply it can be a custom context that is defined on the spot?

red flower
#

yes

iron mantle
#

I see, thank you!

red flower
#

i usually give my contexts my mod's prefix so they dont conflict with other mods tho

sturdy compass
#

Anyone happen to know how to get the card object an SMODS seal is on?

minor furnace
#

I've hooked out modded booster packs for my challenge now 🫡

    if G.GAME.challenge == "c_reverse_trial" then
        local ret = pack_hook(_key, _type)
        while ret.mod do
            if ret.mod.id ~= "reverse_tarot" then
                print(ret.mod.id)
                ret = pack_hook(_key, _type)
            else
                break
            end
        end
    else
        ret = pack_hook(_key, _type)
    end
    return ret
end```
rugged pier
heady siren
rugged pier
#

although idk what could be causing it

minor furnace
digital niche
rugged pier
#

i commented out my hook and tried to launch the game and it worked but obviously will not update the mult mod for my joker

#

@red flower

heady siren
#

The actual function should not have self, only the ret variable

heady siren
#

That's how I have it set up

red flower
rugged pier
#

nope still

digital niche
heady siren
#

Please post a screenshot of where that is

red flower
red flower
#

i think its because of the cards in the title screen

red flower
digital niche
heady siren
#

odds is an extra variable

digital niche
#

ooh, so extra = {odds = 3}?

heady siren
#

It should not be in config = {here}, it should be in config = {extra = {here}}

#

Notice that you're referencing card.ability.extra.odds but you didn't put odds in the extra table, so it's not in card.ability.extra.odds

#

That's where the game gets confused

digital niche
#

ooooh, didnt realize

#

now i got another crash but on line 407

heady siren
#

What's on line 407?

digital niche
heady siren
#

You have two periods at the end of it

digital niche
#

no thats just when i press backspace and type nothing it shows up for some reason

#

but id doesnt affect in the code, there are some in different places and nothing happenes

heady siren
#

Also what are you doing here? You need an end for the first if statement

#

You only have an end for the second one

digital niche
#

thought it was 1 end for both

heady siren
#

No, those are two separate statements

red flower
heady siren
#

Also you need to put the context.ability.extra.uses if statement inside of the context.main_scoring and context.cardarea == G.hand if statement

digital niche
heady siren
#

That's not the crash problem specifically but it would crash if you didn't fix that part too

#

Is the crash actually referencing the lua file you're currently in?

digital niche
#

so if context.main_scoring and context.cardarea and context.ability.extra.uses?

tall salmon
#

I'm trying to render a sprite on playing cards whenever you have a specific joker, does anyone know a mod that does something similar I could look at?

digital niche
digital niche
heady siren
digital niche
#

yeah

heady siren
#

Alright, just making sure

digital niche
digital niche
heady siren
#

Okay I'm actually getting annoyed at this point, please go take a crash course on how lua works

rugged pier
heady siren
next timber
#

how come when i try to access a card's ability.seal values in the seal's loc_vars, it returns the default values from the config? is there a way to access its actual values?

red flower
rugged pier
#

it calls the hand thing

#

which is what causes the mult to be increased

#

i think i can just add another condition

#

to see if a run is ongoing

#

maybe that will fix

red flower
#

yeah it probably calls it when setting up the deck

chrome widget
#

For some reason I'm getting crashes trying to view editions in the collection?

heady siren
#

Do you have an update function for your edition?

#

If you have an edition

south lintel
#

what should I use to increase the sell value of a joker? I wanted to copy the code from Egg but I can't seem to make it work

chrome widget
heady siren
#

Not the problem I'm used to then

chrome widget
#

My DebugPlus is also crashing whenever I try to manually discover an edition

#

But not if the edition has been discovered by other means

rugged pier
#

let me try

rugged pier
#

its a few types of things that dont work

#

editions is one of them

rugged pier
gleaming zealot
#

transgender woman on my screen

next timber
#

for seals, the card argument in loc_vars is a fake card made using the config data, is there any way to access the actual card's current data?

brazen tusk
#

anyone know how custom sounds work? i've tried looking at the documentation but it keeps saying the sound doesn't exist in the default file (bc it doesn't)

reef nymph
#

Ooc how hard 1-10 is a balatro mod to make? I just had an AMAZING idea for a mod but idk what to expect. Ive coded games before, done minecraft, terraria, and and ror2 mods for reference.

brazen tusk
next timber
#

in some areas its super simple, in others it makes you want to tear your hair out in why is this simple concept so complicated to implement

reef nymph
next timber
#

whats ur idea

gleaming zealot
#

i mean i have an idea for a mod but im lazymaxxing

reef nymph
#

Co-op mod.

next timber
#

multiplayer mod exists, so theres a possibility there

reef nymph
#

Theres a multiplayer race mod to my knowledge

limber blaze
reef nymph
#

but Co-op is much funnier

rugged pier
#

context.hand_drawn does this context get triggered even when you open an arcana pack?

minor furnace
digital niche
#

can someone tell me what to change here pls?

limber blaze
# limber blaze

i really should stop define from working on playing cards but i wanna make this work cause its so funny

#

define fyi:

south lintel
# brazen tusk

well I don't know what I'm doing wrong but it's definitely wrong, the game crashes with "attempt to index field 'ability' (a nil value)"

brazen tusk
rugged pier
#

should be in ability.extra

brazen tusk
grizzled jackal
#

Hello, I'm very new to modding as a whole, and am currently trying my hand at modding balatro. How would I make a joker that turns played face cards into stone, and one that turns stone cards into random face cards?

rapid stag
# sturdy compass <@126725634138439680> Hey I almost got it working

if you remove the first message = localize('k_again_ex'), you run into my problem where it does the message and then the two triggers

so i think we're approaching this from slightly the wrong angle since there's clearly a message = localize('k_again_ex') somewhere in the pipeline that we're not looking at

rugged pier
south lintel
# brazen tusk

yeah I'm really not sure what exactly I'm getting wrong here

reef belfry
#

What obscure reference should i turn into a joker next

rugged pier
tall salmon
brazen tusk
#

dont need the config in there because of how you are doing it

brazen tusk
#

mb forgot to reply

brazen tusk
south lintel
brazen tusk
#

nw 👍

#

i went through the same stuff

#

going through it right now with audio 😭

gleaming zealot
#

Im hatsune miku

digital niche
gleaming zealot
#

cant be enough of us

#

the propagation

stark geode
#

Well there are a lot of trans women who like code

#

So a place like this is bound to contain a good few

next timber
#

we will take over the server

gleaming zealot
rapid stag
#

what the fluoride

rugged pier
#
local set_base_balatro = Card.set_base
Card.set_base = function(self, card, initial)
    local ret = set_base_balatro(self, card, initial)
    if G.hand then
        SMODS.calculate_context{csmr_changed_base = true, card = self}
    end
    return ret
end

does anyone know why G.hand is being called when a consumable card goes into your consumable area? I want this to only trigger when a rank or suit is changed (but also not trigger twice if both are changed)

next timber
#

would it be a bad idea to patch generate_card_ui to include the card's actual data for tooltips instead of the fake table?

stiff locust
#

wait why are there two scholars on the vanilla joker sheet

#

is my shit fucked up or is that how it always is

unkempt thicket
#

how do you lovely patch another mod?

last sentinel
#

I know this has been asked 1 million times but have there been successful patches/mods made that have the fabled "mult hiker" (permanent mult added to card)

rancid bridge
reef nymph
#

Is this a good plays to ask for balance help? or would that be a different channel

heady siren
#

How do I make enhancements trigger when other cards score? I want an enhanced card to gain X0.5 mult whenever another card is scored in a hand

minor furnace
#

to the best of my understanding, I believe this successfully removes modded jokers and consumeables (other than my own) from the shop


function  get_current_pool(_type, _rarity, _legendary, _append)
    local pool, pool_key =  pool_hook(_type, _rarity, _legendary, _append)
    if G.GAME.challenge == "c_reverse_trial" then
        local pool_holder = ""
        for k, v in ipairs(pool) do
            if pool_holder == "" then
                if G.P_CENTERS[v] then
                    pool_holder = "P_CENTERS"
                elseif G.P_TAGS[v] then
                    pool_holder = "P_TAGS"
                end
            end
            if pool_holder ~= "" then
                if G[pool_holder][v] then
                    if G[pool_holder][v].mod and G[pool_holder][v].mod.id ~= "reverse_tarot" then
                        pool[k] = "UNAVAILABLE"
                    end
                end
            end
        end
    end
    local valid = false
    for k, v in ipairs(pool) do
        if v ~= "UNAVAILABLE" then valid = true break end
    end
    if not valid then --failsafe if pool has no eligible members?
        return get_current_pool("Tarot", _rarity, _legendary, _append)
    end
    return pool, pool_key
end```
rapid stag
stiff locust
#

i see

thin anchor
#

where is the deck code located

digital niche
#

is there something wrong in here? its crashing the game in line 20 (the "vars" one

rapid stag
heady siren
digital niche
#

oh, didnt even see that, tyty

heady siren
#

Also it's not return() it's return {}

#

And it's not p_dollars it's card.ability.extra.p_dollars

#

Also you need to put p_dollars into the extra table

#

You should also replace 'lucky' with a different identifier specifically for the joker / enhancement

digital niche
heady siren
#

Also you do return {dollars = card.ability.extra.p_dollars} not return {p_dollars == 20}, you also you == to test if statement conditions, not to set variables, that's just a single =

#

Again, you should go watch / read a crash course on lua

digital niche
#

god i did do a lot wrong

heady siren
#

This is why I'm suggesting that, you are getting basic syntax completely wrong without even knowing it

#

Nothing will work if you don't know the very fundumentals of lua, we aren't here to teach you how lua coding works, we're here to help you with Balatro coding

digital niche
#

no yeah so far everything was turning out ok and working just now things started going bad, i was doing things right most of the time

fringe gyro
#

okay, so i finished(probably not) the code and art for my joker, i did the .lua file, and the .json file, but it's not showing up in Balatro. the collection doesn't include the joker and the Mods tab doesn't show any mods installed. Is there something wrong with my .json file?

heady siren
fringe gyro
#

i mean maybe? all my other mods were working fine, i just moved them all(sans SMODS) out of the mods folder to test mine

heady siren
#

Well those mods are made for that version of SMODS

#

If you're on an older version you may have to use the header instead of the json

fringe gyro
#

okay, lemme try that, will report back

heady siren
#

This is what a header looks like, your mod won't even register otherwise

spiral crown
#

can anyone tell me why the joker isn't scoring or costing money?

heady siren
#

It's just chips not chip_mod, and it's dollars not money_mod

fringe gyro
heady siren
#

mult_mod is the only one that uses _mod

marble flint
digital niche
heady siren
heady siren
digital niche
#

most "should use == for equal"

heady siren
#

If you do == it treats it as a condition instead of setting a variable, so it'll return true or false

fringe gyro
#

is it the 1.0.0 beta (0323b)?

heady siren
fringe gyro
#

oh okay

digital niche
fringe gyro
#

i just wanted to make sure it was supposed to say beta

marble flint
heady siren
digital niche
digital niche
heady siren
#

You don't put card.ability.extra. into the extra table

#

It's trying to reference itself

#

And if it doesn't exist, it can't do that

#

The card.ability.extra. is referencing the value inside the config = {extra = {}} table

spiral crown
#

thank you @heady siren @marble flint could you explain why it only scores the chips?

digital niche
marble flint
heady siren
heady siren
marble flint
#

mult, h_mult, and mult_mod should all do the same thing (except mult_mod doesn't automatically add the message)

fringe gyro
#

i got the new version of SMODS installed but it still isn't showing up. could i put my .json file here so you can check and make sure i did it right?

spiral crown
stark geode
#

made a smods port for the bu lang

marble flint
heady siren
#

Ah, that's the problem, it was adding mult, it just wasn't showing the message

#

So it didn't look like it was adding the mult

spiral crown
#

Ill do a quick check

heady siren
#

I forgot that I added the message manually

spiral crown
#

seems I actually want to use Message instead of teh event manager as well

stark geode
# stark geode

@regal wolf the bu language mod doesn't work with smods so i slapped this together so i can use it, idk what you want to do with it

spiral crown
#

Want "Dunce!" to pop up below the card when exiting a shop lol

tired skiff
#

2 questions
what is m_wild and what is context.other_card.gambling

limber blaze
manic rune
#

brah

tired skiff
#

oh cola

#

the person im looking for

#

in extra credit mod there is a joker called luck 7 that makes 7 act as lucky cards
im trying to do that with queens but make them wild

manic rune
#

thats quantum enhancement

#

haven't used it before though, u can try referencing their code

rugged pier
#

question about how consumables behave when they are added to your card area^

tired skiff
manic rune
#

allowing cards to "have" another enhancement

#

so like, you can technically get a card with all enhancement in the game

stark geode
#

so they either do or dont have the enhanment until observed

#

well

#

scored in this case

manic rune
#

its undocumented so u dont know unless u try it

#

-# i didnt

#

:p

stark geode
#

im not messing with thatither

rugged pier
#

its documented

manic rune
rugged pier
#

lol

stark geode
manic rune
#

doesn't really tell u how to apply enhancement now does it

#

i will argue that most of them do a pretty good job 😭

stark geode
#

ehhhh

#

well ig the main problem is the source code has no docs

stark geode
#

curse you thunk

rugged pier
thin anchor
#

how would you create a random spectral card?

digital niche
#

i accidentaly have overwrite all my code, i went from 380 lines to 70

digital niche
thin anchor
#

ahh...

stark geode
#

SMODS.add_card({key='Spectral'})

spiral crown
#

okay I think I'm close here attempting to have "Dunce!" appear below the card upon the trigger message appears to use variables in the source code so I tried building a string to call but get "Error" instead of the intended text I also tried directly entering a string into the message and that didn't work either can anyone tell me what I'm doing wrong?

stark geode
#

anyone got docs for how the joker return works

rugged pier
digital niche
spiral crown
rugged pier
digital niche
#

yes

rugged pier
#

just ctrl z idk

digital niche
#

already tried

rugged pier
#

say goodbye to your work then unless you have a version history

digital niche
#

im not remaking everything, i give up modding

rugged pier
#

^it puts the message on the joker by default

tall salmon
#

does anyone know how to get rid of the floating copy of the sprite?

#

the one that isn't tilting with the card

thin anchor
spiral crown
tall salmon
thin anchor
buoyant merlin
modest iris
#

can someone help me with somethign quick? i don't think im using patches correctly. here is the patch for a voucher that i want to create

[[patches]]
[patches.pattern]
target = 'card.lua'
pattern = 'local seal_rate = 10'
position = "at"
match_indent = true
payload = '''
local seal_rate = 10
if G.GAME.used_vouchers and G.GAME.used_vouchers["v_rob_seal_the_deal"] then
    print("Voucher active:", G.GAME.used_vouchers['v_rob_seal_the_deal'])
    seal_rate = seal_rate * SMODS.Centers["v_rob_seal_the_deal"].config.extra
end
print("Seal Rate:", seal_rate)
'''

this is the voucher:

SMODS.Voucher{
    key = "seal_the_deal",
    loc_txt = {
        name = "Seal the Deal",
        text = {
            "Cards with {C:attention}Seals{} appear",
            "{C:attention}#1#X{} more frequently",
            "in all card packs"
        }
    },
    atlas = 'Vouchers',
    pos = {x = 0, y = 0},
    cost = 10,
    config = {
        extra = 5 
    },
    loc_vars = function(self, info_queue)
        return {vars = {self.config.extra}}
    end
}

why don't i get any messages from prints and why isn't the probability that cards in packs have a seal 100%? i put 5 extra to get 100% probability for debugging

stark geode
thin anchor
#

o

stark geode
#

Check the pna code of my mod

#

Perkolator

#

In the mods thread thing

thin anchor
#

ok

stark geode
#

It should be in jokers.lua

stark geode
#

That's the one that has it

thin anchor
stark geode
#

Ironic that I forgot

thin anchor
#

sad face

tired skiff
#

how do local thunks work

#

and no im not talking about the person local thunk

thin anchor
#

yay

stark geode
#
local consumable_types = {'Tarot','Spectral','Planet'}
                        SMODS.add_card({set =  pseudorandom_element(consumable_types, pseudoseed('Perkmentia')), area = G.consumeables, edition = 'e_negative' })
                        SMODS.add_card({set =  pseudorandom_element(consumable_types, pseudoseed('Perkmentia')), area = G.consumeables, edition = 'e_negative' })

#

so it uses that

#

but

rich dragon
#

hey there, im trying to learn lua coding, does anyone have a video they watched that helped

fringe gyro
#

so my mod still isn't showing up in the mods tab in-game, even after updating SMODS. Could it be something wrong with my .JSON

stark geode
#

how do i get this "new" tag to go away

limber blaze
fringe gyro
stark geode
#

bruhhhh

fringe gyro
#

ikk it's so dumb lol

stark geode
#

i havent been here long but i feel like i fit in already

fringe gyro
#

oh absolutely

stark geode
#

-# just another idot fumbling around

fringe gyro
#

almost all of my talking has been here

stark geode
#

what even is playing balatro

fringe gyro
#

stg, i have not even played balatro all weekend, i've just been working on this mod XD

#

btw, for some reason it's not showing in the mods tab in balatro, any ideas?

stark geode
#

your mod?

#

lemme see your files

fringe gyro
#

yeah

stark geode
#

a screenshot or smth

fringe gyro
#

i'm very sure the code for the function of the joker is wrong

stark geode
#

well i need to check somthing first

fringe gyro
stark geode
#

huh

#

what joker you think is causing this

reef belfry
#

Should i bump up the rarity

fringe gyro
#

i only have one joker in the mod

stark geode
fringe gyro
#

this is the entire mod

#

oh shit nevermind

stark geode
#

???

#

what was wrong

#

because the joker is fine

fringe gyro
#

i had a comment header on my .json and that was caausing it to not show up

stray dagger
fringe gyro
#

yeah

#

now it's crashing on open, but i can debug it myself

#

./i'm going to stare at it for 5 minutes then come back for help when i can't

stark geode
#

lol

manic rune
#

good morning chat

thin anchor
#

good evening

manic rune
#

good afternoon

red flower
#

good night

manic rune
#

goodbye

fringe gyro
#

hey so you know how i said i would stare at the problem for 5 minutes and come back?

stark geode
fringe gyro
#

has it been 5 minutes yet?

fringe gyro
stark geode
#

its been 3

#

or 4

#

i cant count

fringe gyro
#

it's saying i'm missing a } on a line but i looked and from what i see i'm not missing anything

stark geode
#

you know the drill

#

code

fringe gyro
#

ya one sec

stark geode
#

now

fringe gyro
reef belfry
#

This is such a niche reference that 7 people would get

#

Im gonna go learn how to make an animated joker

stark geode
fringe gyro
stark geode
buoyant merlin
# fringe gyro

There's a comma missing in loc_txt
Third description line

stark geode
#

lmao

fringe gyro
#

thank you

stark geode
#

when you send code can you send it in text form

fringe gyro
#

it didn't fix it, but it probably would have messed something up down the line

stark geode
#

so i can plop it into vs

fringe gyro
#

oh yeah fsfs

#
    key = "Lotus",
    path = "LotusPack.xcf",
    px = 71,
    px = 95
}

SMODS.Joker {
    key = 'TypINC',
    
    loc_txt = {
        name = 'TypINC.',
        text = {
            "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
            "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
            "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
            "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
        }
    },
    blueprint_compat = true,
    perishable_compat = true,
    eternal_compat = true,
    rarity = 3,
    cost = 8
    config = { extra = { mult = 3, Xmult = 1 } },
    atlas = 'Lotus'
    pos = { x = 0, y = 0},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
        end,
        for _, joker in ipairs(G.jokers.cards) do
    local name = G.localization.descriptions["Joker"][joker.config.center.key].name
    local text = G.localization.descriptions["Joker"][joker.config.center.key].text
        for "E" in name do
    Xmult =+1
    end
        for "E" in text do
    mult =+3
    end
end
}
    ```
stark geode
#

atlas is missing a comma

buoyant merlin
#

Last line in a table doesn't need a comma

fringe gyro
#

yeah, i basically copy/pasted that part in

#

if that's the part that's messed up, i'm gonna cry XD

buoyant merlin
#

Um what about that for loop down there? I'm not sure that's valid lua code, since its in a table

stark geode
#

where tf is yor calculate function

buoyant merlin
#

You could try commenting it out for now

#

And see if it works

fringe gyro
#

yeah i was asking for someone to help me with that a few hours ago but no one helped and idk Lua language

#

how comment in Lua?

buoyant merlin
#

--

#

Before a line

#

Errr to the left of one

#

So like

--Example
normal.code()
fringe gyro
#

commented it out but it didn't help

buoyant merlin
#

What parts did you comment out?

#

It should be all lines from the for loop to the last end

stark geode
#

also your for loop wont work

#

they dont work like python

fringe gyro
#
SMODS.Atlas {
    key = "Lotus",
    path = "LotusPack.xcf",
    px = 71,
    px = 95
}

SMODS.Joker {
    key = 'TypINC',
    
    loc_txt = {
        name = 'TypINC.',
        text = {
            "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
            "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
            "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
            "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
        }
    },
    blueprint_compat = true,
    perishable_compat = true,
    eternal_compat = true,
    rarity = 3,
    cost = 8
    config = { extra = { mult = 3, Xmult = 1 } },
    atlas = 'Lotus'
    pos = { x = 0, y = 0},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
        end,
    --    for _, joker in ipairs(G.jokers.cards) do
    --local name = G.localization.descriptions["Joker"][joker.config.center.key].name
    --local text = G.localization.descriptions["Joker"][joker.config.center.key].text
    --    for "E" in name do
    --Xmult =+1
    --end
    --    for "E" in text do
    --mult =+3
    --end
--end
}
    ```
#

it still doesn't work

stark geode
#

you need to add a calculate value to your joker

buoyant merlin
#

Is calculate really required?

fringe gyro
#

how?

#

also would that cause the error i'm getting?

stark geode
#
SMODS.Joker{
    key = 'PerkOlator',
    atlas = 'jokers',
    pos = {x = 0, y = 0},
    soul_pos = { x = 0, y = 1 },
    blueprint_compat = true,
    rarity = 'Perkolator_Perkeo_R',
        --calulate part
    calculate = function (self,card,context)
        if context.ending_shop then
            G.E_MANAGER:add_event(Event({
                func = function()
                    G.E_MANAGER:add_event(Event({
                        func = function()
                        SMODS.add_card({key='j_perkeo', edition='e_negative'})
                            return true
                        end
                    }))
                    return true
                end
            }))
            return {
                message = "Perkeo!",
                colour = HEX('56a786')
            }
        end
    end

}
#

no

buoyant merlin
#

The most important part here is the function definition and the end

buoyant merlin
fringe gyro
#

calculate instead of config?

buoyant merlin
#

Ok so what if you temporarily commented loc_txt out since that's the part its erroring at

#

See if it runs

fringe gyro
#

also that for loop was given to me by someone here

#

and i copy/pasted it

tired skiff
#

what have i done wrong?

buoyant merlin
fringe gyro
#

still doesn't run

buoyant merlin
#

Is there a different error this time?

fringe gyro
#

nah, same one i'm pretty sure

buoyant merlin
#

Did you comment out loc_txt too

#

Since it still says loc_txt

fringe gyro
#
SMODS.Atlas {
    key = "Lotus",
    path = "LotusPack.xcf",
    px = 71,
    px = 95
}

SMODS.Joker {
    key = 'TypINC',
    
    --loc_txt = {
    --    name = 'TypINC',
    --    text = {
    --        "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
    --        "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
    --        "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
    --        "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
    --    }
},
    blueprint_compat = true,
    perishable_compat = true,
    eternal_compat = true,
    rarity = 3,
    cost = 8
    config = { extra = { mult = 3, Xmult = 1 } },
    atlas = 'Lotus'
    pos = { x = 0, y = 0},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
        end,
    --    for _, joker in ipairs(G.jokers.cards) do
    --local name = G.localization.descriptions["Joker"][joker.config.center.key].name
    --local text = G.localization.descriptions["Joker"][joker.config.center.key].text
    --    for "E" in name do
    --Xmult =+1
    --end
    --    for "E" in text do
    --mult =+3
    --end
--end
}
    ```
buoyant merlin
#

You forgot to comment out this }

fringe gyro
#

that's the one for this one up here

buoyant merlin
#

No, that's what the one at the bottom is for

fringe gyro
#

should i anyway?

buoyant merlin
fringe gyro
#

ah okay

stark geode
#

i have it running

fringe gyro
#

same issue

#

wha huh

buoyant merlin
#

Huh
Is it just an error on.... your machine????

stark geode
#
SMODS.Joker {
    key = 'TypINC',   
    loc_txt = {
        name = 'TypINC.',
        text = {
            "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
            "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
            "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
            "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
        }
    },
    blueprint_compat = true,
    perishable_compat = true,
    eternal_compat = true,
    rarity = 3,
    cost = 8,
    config = { extra = { mult = 3, Xmult = 1 } },
    --atlas = 'Lotus',
    --pos = { x = 0, y = 0},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
    end,
    --calculate = function (self,card,context)
    --for _, joker in ipairs(G.jokers.cards) do
    --    local name = G.localization.descriptions["Joker"][joker.config.center.key].name
    --    local text = G.localization.descriptions["Joker"][joker.config.center.key].text
    --end
    --for "E" in name do
    --        Xmult =+1
    --    end
    --    for "E" in text do
    --    mult =+3
    --    end
   }
#

i disabled the atlas because i dont have the rest of the mod

fringe gyro
#

huh

#

okay

#

lemme try that ig

buoyant merlin
#

I was looking at this so closely and I thought there couldn't possibly any errors

stark geode
#

idk i just rearanged shit

buoyant merlin
stark geode
buoyant merlin
#

What's it look like

fringe gyro
#

--SMODS.Atlas {
-- key = "Lotus",
-- path = "LotusPack.xcf",
-- px = 71,
-- px = 95
--}

SMODS.Joker {
key = 'TypINC',

--loc_txt = {
--    name = 'TypINC',
--    text = {
--        "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
--        "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
--        "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
--        "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
--    }
--},
blueprint_compat = true,
perishable_compat = true,
eternal_compat = true,
rarity = 3,
cost = 8
config = { extra = { mult = 3, Xmult = 1 } },
atlas = 'Lotus'
pos = { x = 0, y = 0},
loc_vars = function(self, info_queue, card)
    return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
    end,
--    for _, joker in ipairs(G.jokers.cards) do
--local name = G.localization.descriptions["Joker"][joker.config.center.key].name
--local text = G.localization.descriptions["Joker"][joker.config.center.key].text
--    for "E" in name do
--Xmult =+1
--end
--    for "E" in text do
--mult =+3
--end

--end
}

stark geode
#

try mine

fringe gyro
#
{
    "id": "LotusXDXD",
    "name": "Lotus Pack",
    "display_name": "NyxLotus's Incredible Mod!",
    "author": ["NyxLotusXD"],
    "description": "Just whatever i make is gonna go here prolly",
    "prefix": "XDXDXD",
    "main_file": "LotusPack.lua",
    "priority": 0,
    "badge_colour": "a929ea",
    "badge_text_colour": "ffffff",
    "version": "1.0.0",
    "dependencies": [],
}```
buoyant merlin
#

You don't have steammodded as a dependency..... do you have steamodded installed?

burnt lance
#

Is there a way to quick restart balatro for new mod changes?

stark geode
burnt lance
#

Thanks

stark geode
#

mmmmmmmmmmmmmm

buoyant merlin
buoyant merlin
burnt lance
#

Yup lol

#

I was trying to get these in lol.

fringe gyro
#

yeah i have it installed, should i have it listed as a dependancy?

fringe gyro
#

oh shit

#

okay

stark geode
#

your mod no worky without it

fringe gyro
#

how do?

stark geode
#

its not related to your error

buoyant merlin
#

Try replacing dependencies with

"dependencies": [
        "Steamodded (>=1.*)",
    ],
stark geode
#

im tempted to have you just send me your mod lol

buoyant merlin
stark geode
#

yeah

buoyant merlin
#

Who knows, maybe SMODS doesn't exist because no dependency

fringe gyro
#

didn't fix

#

i could just send over the files

buoyant merlin
#

Last shot: send the file

#

Yeah

stark geode
#

i mean i have a fix

#

i sent it

fringe gyro
radiant plank
#

how do i make a joker perishable

stark geode
#

also what are you using to edit

fringe gyro
#

the only other file is in /assets and it's just my poorly done pixel art

#

notepad++

stark geode
#

switch to vs

#

it'll yell at you if your shit is wrong

fringe gyro
#

okay, one sec

#

let me port all my stuff over

#

actually i'm gponna do that after dinner

#

i'll be back

#

probably tonight

stark geode
# fringe gyro okay, one sec
SMODS.Joker {
    key = 'TypINC',   
    loc_txt = {
        name = 'TypINC.',
        text = {
            "Gives {C:mult}+#1# {} Mult for each {c:attention}letter{} in Joker descriptions.",
            "Gives {X:mult,C:white} X#2# {} Mult for each {C:attention}letter{} in joker titles",
            "{C:inactive}(Currently {C:attention}#3#{C:inactive})",
            "{C:inactive}(Currently {C:mult}+#3#{C:inactive} and {X:mult,C:white} X#1# {C:inactive})"
        }
    },
    blueprint_compat = true,
    perishable_compat = true,
    eternal_compat = true,
    rarity = 3,
    cost = 8,
    config = { extra = { mult = 3, Xmult = 1 } },
    --commented this out to avoid errors
    --atlas = 'Lotus',
    --pos = { x = 0, y = 0},
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.Xmult } }
    end,
    calculate = function (self,card,context)
        --code you want it to exec
    end,
}
#

well just use this for now

#

i need to stop using my mod to test other peoples mods

#

i should use my language pack mod insted

sturdy compass
rapid stag
sturdy compass
#

Coding in a shellnut

rapid stag
#

it especially doesn't make sense because seemingly every other instance of message = localize('k_again_ex') could possibly be occurring anywhere in this sequence is either not for jokers or for specific jokers

stark geode
#

are you adding seal compat to jimbos?

rapid stag
#

so it especially doesn't make sense to me how something was able to solve it despite doing basically the same thing

rapid stag
stark geode
#

jimbos

#

Ship it

stark geode
thin anchor
stark geode
thin anchor
stark geode
#

w

thin anchor
#

thank you i wouldve fucking died

#

like perish

tall salmon
# stark geode code?
local ss = Card.set_sprites --uh oh
function Card:set_sprites(_center, _front)
    ss(self,_center, _front)
    if _front then
        self.children.fossil = Sprite(self.T.x, self.T.y, self.T.w, self.T.h, G.ASSET_ATLAS["cards_2"], {x = 12,y = 3})
        self.children.fossil:set_role({major = self, role_type = 'Glued', draw_major = self})
    end
end
SMODS.DrawStep{
    key = 'fossilized',
    order = 1,
    func = function(self, layer)
        if self.children.fossil then
            self.children.fossil.states.visible = true
            self.children.fossil:draw_shader(
                'negative'
            )
        end
    end
}
stark geode
#

what in the

tall salmon
#

smods docs are very barebones on drawing sprites

stark geode
#

what are you trying to do

tall salmon
#

display a sprite on top of stone cards when you have a specific joker

#

right now it's every card so it's easier to see

stark geode
#

i dont know enough about this

#

what mod devloping does to an mf

tall salmon
#

I've been looking at some other mods but none of them seem to do anything like this

tall salmon
thin anchor
fringe gyro
#

what template should i use in VS?

#

so good news everyone!/sarc

#

i was editing the wrong damn file the whole time!!

#

i had a copy on my desktop and was editiing that one and not the one that's actually in my mods folder

#

i copied your solution to the right file and it worked perfectly

sturdy compass
#

masterful gambit

fringe gyro
#

Also, how do i make it to where i can see the joker in collectables without unlocking it?

#

also how do i get the names of the owned jokers in to a string?

stiff locust
#

i'm having a really strange bug right now with spectral packs

#

actually i should update steamodded before i complain about this
the steamodded update seems to have solved the problem

stark geode
#

There's a menu that lets you unlock and discover jimbos

tepid crow
sturdy compass
#

yes

#

I unfortunately need to check what set the card is in to get the functionality I want. I'm trying to make seals compatible with Jokers

tepid crow
#

I'm confused, is the card arg in calculate(self, card, context) not the card object?

#

oh no, it's the seal

dense adder
#

does anyone know the call for the blinds base score

tepid crow
#

wait, is it??

#

I'm lost

sturdy compass
#

I believe it's actually the card currently being calculated, which for some reason is agnostic to the card it is applied to

sturdy compass
radiant plank
#

how does one go about setting a config value for a joker at the time of its creation?

#

the value will be time dependent so it needs to be set when its created

tepid crow
dense adder
#

maybe, this is the first time im trying to get make a joker based off of the blinds score

tepid crow
radiant plank
# sturdy compass *maybe* set_ability?

im still not sure where i would be calling this function from, all jokers ive created so far have their config values initialized in the call to SMODS.Joker

tepid crow
dense adder
#

didnt think of that thanks

tepid crow
rugged pier
sturdy compass
fringe gyro
#

how do i do use debug plus to discover my joker?

dense adder
tepid crow
#

no, there's something weird with take_ownership and calculate

#

iirc

tepid crow
rugged pier
fringe gyro
#

o shit that's cool af

rugged pier
sturdy compass
#

Also I just confirmed my theory of every card that gets calculated triggers the seal, as removing the context.other_card == card will retrigger every joker

#

Super odd

rapid stag
fringe gyro
#

okay so i got my joker in the game! now the only thing left is to

#

code the joker

#

this is gonna suck cuz i have no idea how Lua works, so i'm gonna have to build this from scratch

rapid stag
#

lua is fun and intuitive except when it isn't cirYep

rugged pier
#

can someone help me take a look at how consumables and G.hand works

#

trying to use a hook for set_base

#

and its being affected by things...i didnt think would affect it

rugged pier
burnt lance
#

I finally got my first joker working successfully!

tepid crow
tepid crow
sturdy compass
vocal cedar
#

Why tf is discard_size a nil value here? line 241 is crashing every time? Did i set it up wrong

tepid crow
tired skiff
#

smart people help me out here

fringe gyro
#

how would i get the number for the amount of times a letter shows up in the name of jokers i own?

sturdy compass
tepid crow
#

smods lovely patches that function to add support for :calculate; it is implemented in such a way that if :calculate exists but doesn't return anything, it falls back to vanilla behaviour

sturdy compass
#

Oh I see

tepid crow
#

so if you had a vanilla joker does something, and you use take_ownership to "overwrite" that behaviour using calculate, it doesn't always stop the vanilla behaviour

sturdy compass
#

So I'd return an empty table in the else?

tepid crow
#

yeah that was my suggestion

sturdy compass
#

gotcha

#

I'll give it a go

tepid crow
sturdy compass
#

Huh, same thing is happening here. I think the vanilla implementation of red seals just make it act like seltzer? What

vocal cedar
sturdy compass
#

The order of events is exactly the same as the original video

vocal cedar
#

third event sorry

tepid crow
#

also wait

tepid crow
#

not when the seal is on a joker

tepid crow
stark geode
sturdy compass
#

oop wrong reply

vocal cedar
#

Oh. No

sturdy compass
#

Or am I misunderstanding that

vocal cedar
#

Let me@tru that

tepid crow
#

just make sure it always returns {}, so outside all the if checks

sturdy compass
#

ah ok

fringe gyro
#

i should prolly get to bed it is 11 lol

#

night then, prolly gonna keep working on this tomorrow at work XD

rapid stag
#

-# laughs in nearly 4 am

-# ...cries in nearly 4 am

fringe gyro
#

lol

sturdy compass
fringe gyro
#

i'm gonna, night yall

tepid crow
sturdy compass
#

bruh

#

Ah well that's new

tepid crow
#

Uh oh. That might be breaking because one of those contexts is expecting something lmao

#

Starting to look more and more like you'll need Nope's code

#

tbf it also makes more sense to put this stuff in calculate_seal

sturdy compass
#

My vice with calculate_seal is that it doesn't do every seal (at least to my knowledge) cuz I don't see blue or gold in there

vocal cedar
#

this thing update

#

live time

#

like flash a big -1

tepid crow
#

check a joker that uses the animation

vocal cedar
#

then go down to 2

#

hmm okay

tepid crow
#

like drunkard

#

actually, burglar is better

#

drunkard is a bit hard to find the code for

vocal cedar
#

where is burg?

fringe gyro
#

how do i modify the mult and Xmult values?

vocal cedar
#

cards.lua?

tired skiff
#

does somone here understand ease_dollar?

tepid crow
#

yeah in card.lua

manic rune
sturdy compass
tired skiff
manic rune
#

its a function

#

provided in balatro itself

vocal cedar
tired skiff
#

so this should work

manic rune
#

idj if its dollar or dollars tbh

#

try each and see which work lol

brazen tusk
#

what have i got wrong here?

tired skiff
#

well i got it somewhat working

manic rune
#

what does your sounds folder look like

brazen tusk
#

assets > sounds > chomp.ogg

tired skiff
#

i should call it the current state of the economy

manic rune
brazen tusk
#

bc its looking in the default directory

#

when it should be looking in the mod folder

fringe gyro
#

how do i add the names of owned jokers to a string?

#

/how do i find the names and make them a variable at all>

manic rune
#

hmmm weird

rapid stag
#

...why on earth does me taking ownership of fortune teller remove its juice_up() function cirLost

reef belfry
#

Ive ran out of creative juices to make jokers

tired skiff
reef belfry
#

💔💔💔

rapid stag
#

you'll get your fake scam money when you help me fix this damn nonsense with the seals and everything breaking cirREE
-# also give them their account back girldmRage

minor furnace
#

are we gonna ping the mods on that guy?

rapid stag
#

they've probably posted in all channels, so someone else probably already did

minor furnace
#

on the other hand, if everybody thinks someone else reported it, then nobody will

zenith quarry
#

ive been working on this joker for a while can someone vc and help me fix it

minor furnace
#

specifically, the fan art channel

rapid stag
#

...ah. that's the problem.

manic rune
tired skiff
#

i found it but it didnt help me like i hoped it would

#

i want a joker to give money for each wild card in a played hand and remove money for each non wild card

manic rune
#

oh

#

use SMODS.has_enhancement

tired skiff
#

switch get to has?

manic rune
#

SMODS.has_enhancement(context.other_card, "m_wild")

#

that should work

rugged pier
#
local set_base_balatro = Card.set_base
Card.set_base = function(self, card, initial)
    if G.hand and G.consumeables  then
        SMODS.calculate_context{csmr_changed_base = true, card = self}
    end
    local ret = set_base_balatro(self, card, initial)
    return ret
end

why does G.hand and G.consumables along with set_base get triggered everytime i buy a tarot card or even win a blind, i just want it to trigger when a suit or rank changes on a card 😭

tired skiff
manic rune
#

what ur code looks like rn

tired skiff
#

is says the error is on line 109 and that line has - money line

#

im stupid

#

i have a extra l

#

im actualy stupid holy

manic rune
#

lmao

rugged pier
#

lol

normal crest
#

Its probably in card.lua

tired skiff
#

yup that was it

tired skiff
#

im actualy top 10 most stupid people ever

manic rune
#

im in top 1

#

u aint taking my spot

tired skiff
#

my bad i wasnt trying to take that seat

normal crest
#

are you really stupid if you were able to recognize ur errors.

tired skiff
#

it only took me 3 hours

#

give or take

#

maybe more like 2 hour to fix my code

#

and when i say me i mean conke

#

now how tf do i word this joker

rugged pier
normal crest
#

Try just looking for "modify_deck"

rugged pier
normal crest
#

Is it called in multiple places

rugged pier
#

yeah

#

across many files as well

normal crest
#

Only matters if it's passrd to check for unlock

rugged pier
rugged pier
normal crest
#

Game.lua is just definition

tired skiff
#

ok thats enough coding for today gn

normal crest
#

Try seeing the spots it gets used at in card.lua, one of those two has to be for ranks changing

rugged pier
normal crest
rugged pier
normal crest
#

Could you send a ss of the set base one

rugged pier
#

its the last line

normal crest
#

Those conditions are prob what u wanna use in your hook

#

Alongside your current ones

#

just the last line ofc

rugged pier
#

instead of G.hand

normal crest
#

if G.hand would just check that the hand area exists

#

I'd say for now try just the self.playing card and not initial

#

And see if it works like you intended

rugged pier
#

if G.hand and self.playing_card using this right now

#

will report back

normal crest
#

make sure to add not initial

#

unless u also want to includr when cards are created, if the name of that variable is to be trusted

rugged pier
#

IT WORKS

#

the only bug right now is

#

if a card is already jack of hearts

#

and i convert it to "hearts" with the tarot card

#

it still adds mult since it calls the set_base function

rugged pier
normal crest
#

uhhhh

normal crest
#

as for the spectral adding cards i'm not sure

dense adder
#

does someone know what consumables are qualified as when you use them?

             if pseudorandom('Alchemy') < G.GAME.probabilities.normal / card.ability.extra.odds then
                 G.E_MANAGER:add_event(Event({
                   func = function()
                     local _card = copy_card(context.other_card,nil)
                     _card:add_to_deck()
                     G.consumeables:emplace(_card)
                     return true
                 end
                 }))
             end
         end

trying to duplicate it when you use a consumable

rugged pier
normal crest
#

not really cus, self would be the card that is changing rank and suit

dense adder
#

yes

normal crest
#

checking context.consumeable == card is always false cus card is your joker

#

what you should do is remove everything after your using_consumeable check

#

and inside your copy

#

use context.consumeable instead of other_card

rugged pier
#

i suppose theres no way around it

#

going to scrap this idea

rapid stag
#

does SMODS.Atlas add the mod prefix or no cirDerp

rapid stag
# rugged pier wdym

when i call SMODS.Atlas() and specify a key -

does SMODS automatically prefix the mod prefix to that key

old bane
#

not for atlases no

rugged pier
old bane
#

at least i don't think

rugged pier
#

just put the atlas name

old bane
#

when i do it it doesn't

rapid stag
#

so everything but atlas and deckskin does girldmDead

reef belfry
#

it looks kinda off

orchid thunder
reef belfry
#

1 in 3...

orchid thunder
#

Idk maybe 1 in 6 Chance To do it

#

But idk what the I tent was here

brazen tusk
#

I’d word it the other way around personally whatever you go with

#

eg. 2 in 3 chance to create a random consumable whenever you use a consumable.

sturdy compass
minor furnace
#

what does a purple seal do on a Joker though if you can't discard it

#

or gold seal because you can't play it

dense adder
sturdy compass
minor furnace
#

and then this means you're guaranteed a planet from blue seal every single round

sturdy compass
#

Indeed

minor furnace
#

very powerful

sturdy compass
#

It's a rare for a reason

old bane
#

btw what do people think about these four effects as seals for jokers specifically
The last one is a permanent discard btw (passive effect)

dense adder
#

i jus tneed to find a way to save the value of the card before it destroys itself

rugged pier
#

SMODS.has_enhancement(context.other_card, 'm_lucky') this checks for if the card is a lucky card, how would i check for any enhancement without using "or" for every enhancement?

old bane
rugged pier
dense adder
#
        -- useG.E_MANAGER:add_event(Event({
          if context.using_consumeable then
              if pseudorandom('Alchemy') < G.GAME.probabilities.normal / card.ability.extra.odds then
                  G.E_MANAGER:add_event(Event({
                    func = function()
                      local card = copy_card(context.consumable,nil)
                      card:add_to_deck()
                      G.consumeables:emplace(card)
                      return true
                  end
                  }))
              end
          end
#

when testing this it keeps trying to create the duplicate after it goes away, so i will need to create a temp value to save that cards value ir delay the destruction

#

nevermind wasn't that

tawny narwhal
#

Dayum Aseprite turned me into an artist lmao

#

Art is done

#

Now I gotta figure out how to make it a thing

#

like wat it gon do

rugged pier
#
            if context.other_card.config.center ~= G.P_CENTERS.c_base then

would this work as a way to iterate over all the scoring cards

manic rune
manic rune
tawny narwhal
#

I like

#

I was thinking diet cola could be used, but I didn't have any ideas how

#

now I do

#

what rarity would that be you reckon?

manic rune
#

i think rare, its a literal deck effect lol

#

the potential when u got this early and stacking up all the double tags is gonna be insane

#

🔥

tawny narwhal
#

tru tru

normal crest
#

and you typed consumable correctly

#

but it's context.consumeable

#

inside copy_card

dense adder
#

i would have never found that its context.consumeable that fixed the issue, thank you so much

manic rune
#

hmmm

#

i hope

#

putting a boss blind in the position of a small blind can be achieved

#

without patching

#

❤️

#

time to try

manic rune
#

small AND big blind

#

:3

#

-# they arent that hard

agile thistle
#

it can

#

the ante will advance however

manic rune
#

really?

#

dang