#đŸ’»ăƒ»modding-dev

1 messages · Page 152 of 1

tender gale
#

the effect itself is just called perma_bonus

#

maybe this requires a lovely patch idk

#

so is there actually any way to do that

cerulean rose
#

whether the effect is being copied

lethal stratus
#

?

cerulean rose
#

to disable effects like scaling on them

restive bronze
vocal verge
#

you can look at red card

tender gale
#

That gives itself mult

#

I want to give a card mlt

vocal verge
#

Yes, i'm aware
I'm saying you could use parts of that code to give the mult to a different card by making it not target itself

#

probably

hardy viper
vocal verge
#

I see no reason why it shouldn't, considering you can apply enhancements to jokers through code

plain apex
#

how can i disable certain consumables from spawning in a booster pack?

hardy viper
plain apex
#

yeah its a booster pack in my mod

hardy viper
plain apex
#

theres like 20 consumables in this category 2 of which will either not function or will crash the game if you attempt to use them in a pack

glass scaffold
#

What's the context check for hearts cards?

plain apex
glass scaffold
hardy viper
#

fyi this is not the best way to do it

#

but this is A way

plain apex
#

well alot of my terrible mod is coded in probably the worst ways lol

hardy viper
#

the downside is that it'll generate those consumeables if you already have every other consumeable

#

or if you get like really really unlucky

#

0.05^100 levels of not lucky

plain apex
#

well with like 20 different consumables they shouldn't have EVERY consumable right?

hardy viper
#

if they do remember it's their fault

tender gale
#

Currently this Joker works as coded, but how can I change it to give scored cards +1 Mult

#

I tried setting other_card.ability.mult but that doesn't do anything

mellow marsh
#

help why are they doing that (ok figured it out, i should be doing skip_materialize for booster cards i suppose?)

lethal stratus
#

whats wrong here?

hardy viper
#

context.other_card can be nil

#

there is no other_card when you exit shop, joker_main, etc etc

weak gate
#

can't tell if this card i made is too annoying or very good

plain apex
#

i was testing with all of the other consumables (the consumables did spawn after like 3 goes of that) but how did jimbo spawn lmao

#

(but yeah thanks as long as they dont have every consumable we chilling lol)

vocal verge
#

very neat actually

weak gate
#

Only part of it, it doesn't copy enhancements, edition, seal... But that might be useful if the enhanced card has the wrong base

vocal verge
#

Figured it wouldn't be as strong as DNA if it's uncommon

#

still decent for deck fixing

weak gate
#

Oh, I have not thought deeply about the rarity level

vocal verge
#

means you can buy standard packs for enhanced cards

weak gate
#

Right, any enhanced card becomes interesting...

cerulean rose
#

it'll generate a specific card instead

gaunt thistle
#

mainly the storing part

#

if it's copying the right onto the left then shouldn't that be switched to fit with death? left -> right

#

otherwise very cool idea

#

me like

vocal verge
#

Right card values into Left card

#

it's just worded differently

gaunt thistle
#

ah ok

#

me small brain

sturdy compass
#

Here's a potentially weird one. I'm trying to retrigger jokers (or more ideally, any card) that contributes Xmult to scoring. I currently have it set to trigger with context.retrigger_joker_check which kinda works, but has the side effect of retriggering on events that do not contribute to the score (i.e. banana extinction checks). Is there any way I can directly check what a card is contributing?

frosty dock
#

context.other_ret

sturdy compass
#

Oh shit that exists?

hardy viper
#

clearly aure is lying to you

sturdy compass
#

I found one (1) instance of it on the wiki so it must be real

#

Surely

gaunt thistle
#

you gotta think about who writes the wiki

#

this conspiracy is like an onion, it's aure all the way down

sturdy compass
#

Shit you're right

hardy viper
#

my onions become tomatoes halfway through

sturdy compass
#

I definitely don't feel like I'm doing something right with this

frosty dock
#

I think the joker return would be in context.other_ret.jokers

frosty dock
sturdy compass
random sleet
lament roost
#

hey guys this might be a dumb question but where would i find all the contexts

random sleet
#

ctrl+shift+f "SMODS.calculate_context"

lament roost
#

uhhh what

slender island
#

how can i create a texture pack with smods?

south folio
#

sorry that I keep posting it- hold on lemme try again

wild patrol
#

Use ```

#

It's put ur code in a box

south folio
#

got it, I forgot it's three

frosty dock
south folio
#

Hey gang, (sorry that I posted this three times now) but I think I screwed up on the logic here, does anyone know how to fix it?

    key = 'j_sniffles',
    loc_txt = {
        name = 'Sniffles',
        text = {
          'Sniffles gains {C:chips}+#1#{} Chips',
          'At the end of each round',
          '{C:inactive}(Currently {C:chips}+#2#{C:inactive} Chips)',
        },
    },
    
    atlas = 'Jokers',
    rarity = 3,
    cost = 3,
    unlocked = true,
    discovered = true,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = true,
    pos = {x = 1, y = 0},
    config = { extra = { bonus = 21, chips_gain = 21 } },
    loc_vars = function(self,info_queue,card)
        return { vars = { card.ability.extra.bonus, card.ability.extra.chips_gain }}
    end,
    calculate = function(self, card, context)
            if context.end_of_round and context.individual then
                    card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_gain
                    return {
                            chips = card.ability.extra.chips
                    }
            end
    end
}```
wild patrol
#

@frosty dock so for disabling boss blinds do u use add_to_deck or calculation

#

For the function of disabling blinds?

frosty dock
#

calculation, add_to_deck only happens once when you get the joker

wild patrol
#

Trying make a card similar to luchador but instead of selling just needs to be in joker slot

#

Ok

#

That makes more sense

wild patrol
#

I guess so

#

I don't know all the jokers by heart

#

Luchador was the one came to mind

frosty dock
#

there's only 5 legendaries

#

somehow still chicot is forgettable

wild patrol
#

Well I have shit luck and barely get good joker cards

#

I think I've only ever gotten blueprint once

south folio
#

damn

wild patrol
#

Hey when I got it

#

My run was a win

south folio
#

that's usually a run winner yea, it's So Good

wild patrol
#

Believe it's how I got the 100,000,000 achievement

#

Might have to move pot of greed out of the deck and into the tarot area

#

Crashes the game if u check the deck status

#

While it's in ur deck

tight thistle
#

@frosty dock sorry for the ping but i need to ask since you told me to unnest my events
is there a way to make card: effects not block eachother? it seems like theyre the only thing that doesnt work when events are placed one above the other instead of being nested

random sleet
tight thistle
#

like, the events work and are called in the correct order at the correct time, but specifically anything that starts with card: doesnt work until the very last event is called

frosty dock
#

unlike other things I don't know the event manager inside out so I can't tell you off the top of my head

sturdy compass
#

where in the world is this calculate function written

frosty dock
sturdy compass
#

but what about vanilla editions

random sleet
#

bettercalc means i can finally have stamps that calculate

tight thistle
frosty dock
frosty dock
sturdy compass
#

Ok here's the primo spaghetti I'm tryna get working. Rn it only gets jokers but no playing cards or effects. I genuinely don't know if I'm looking for the right things in the ret table lmao

faint plank
#

is there any way i can access a card's description for a joker's abilities?

sturdy compass
#

Retrigger all Xmult effects

wintry solar
#

Playing cards don’t use other_ret iirc

sturdy compass
#

I wish that was documented lol

faint plank
#

im new to lua coming from C#, trying to access the word count of joker descriptions for a joker idea a friend of mine had

wintry solar
#

I wish people could read docs lol

faint plank
#

i feel stupid for asking, but where are the docs located?

tender gale
#

I asked this question earlier but didn't receive an answer. Is there a way to permanently apply mult to a playing card the way Hiker gives chips?

sturdy compass
wintry solar
#

No it doesn’t

#

eval_card doesn’t really have anything to do with contexts

#

It just gathers all the effects from whatever it’s been asked to do

#

Either way, you’ll need a separate check for repeating the playing cards

sturdy compass
#

I figured

slender island
#

guys, how i can make a texture pack for all jokers with steammodded?

sturdy compass
tender gale
#

how?

sturdy compass
#

lovely patches

random sleet
#

use my mod

#

it adds perma mult bonuses :3

tender gale
#

Is there documentation of lovely patches

#

I've never made one

random sleet
#

anyway off i go back to watch shadows on cave walls

sturdy compass
#

My mod also does this perma mult tee hee

sturdy compass
tender gale
#

ok

#

what I really meant is, is there an easy way to do this

wintry solar
#

I know that @tepid crow is building it into smods

#

but I'm unsure on where he is in the process

tender gale
#

I'll see if I can make it gain +mult when the card is scored, then give the +mult before any joker triggers

#

which is essentially the same thing but without the need for lovely

wintry solar
#

lovely only helps with making the ui code a bit cleaner

tender gale
#

If/when it gets implented I'll update it

nocturne garnet
random sleet
#

unfortunately someone wrote conflicts = ['Talisman'] in my mod and now it works correctly when i play it

sturdy compass
#

“Someone” Clueless

random sleet
maiden phoenix
#

Wait G.vouchers.cards is a thing???

random sleet
#

it is now

maiden phoenix
#

This is cool

random sleet
sturdy compass
#

Oh shiiiiit imma have to look into voucher calc for my Dark Room card

maiden phoenix
#

Now I don't have to use some random until to count vouchers

random sleet
#

vouchers are almost real cards now

sturdy compass
#

Does anyone happen to know if voucher calc somehow connects base vouchers and their upgrades?

#

Like some sort of .upgraded variable or smthn

random sleet
#

i believe you can access that from card.config.center

maiden phoenix
slender island
#

what i should put in mod code so these textures will replace original ones?

sturdy compass
random sleet
#

no like

sturdy compass
#

I can’t check cuz bed lol

random sleet
#

since you have an instance of the voucher card

#

you can access its center, and that info should be there

#

like uhhhh card.config.center.requires[1] should do it

#

just make sure requires exists first

sturdy compass
#

Ah ok

random sleet
#

then compare the key

sturdy compass
#

That’ll be way better than how I’m currently checking lmao

random sleet
#

technically it's not much better than just checking in G.P_CENTERS[tier2voucher].requires[1] == tier1voucher

sturdy compass
#

I may or may not have some horrendous hardcoding that checks for specific names rn skul

random sleet
#

being able to just arbitrarily access G.P_CENTERS[thing] is something people take for granted

sturdy compass
#

Yeah I should really do that more often

random sleet
# random sleet

also i love when i implement something and it works first try (actual, real)

sturdy compass
#

Pure crack

random sleet
#

no ur fake

maiden phoenix
#

fuck..

sturdy compass
#

It wasn’t first try but I got this rolling now too. Ideally it retriggers all Xmult effects but I’m happy with it just doing jokers for the time being

random sleet
#

chat rate my terrible legendary art

sturdy compass
#

This dude is content with being blind

random sleet
#

i think he has plenty of eyes, actually.

sturdy compass
#

Oh I thought that was a blindfold 😭

maiden phoenix
#

big honeycomb

random sleet
#

haha, yeah a bit lol

sturdy compass
#

Also if I were to make a criticism, there is very little contrast between the soul and the card, maybe make the card a bit brighter in color?

random sleet
#

also me when im a mod dev and i can be completely insufferable and nobody can stop me

sturdy compass
#

Interesting retrigger condition

#

Especially interesting having it retrigger itself

random sleet
#

extremely funny Xmult stacking

#

i might reduce the per-voucher boost

glossy kestrel
#

this feels like an easy x64 but i guess it's legendary so it's w/e if it says "you win"

#

anyone know if you can hide the stake stickers in the collection screen somehow

random sleet
#

it depends on how many vouchers you can afford, but yeah if you have solid econ it's pretty cracked.
probably gonna lower the scaling factor lol

maiden phoenix
#

I have a similar joker and made the boost x0.5 per voucher, x1 might scale very fast

wild patrol
#

Dumb question if I change the pixel size in the smod.atlas for a sprite shit

#

Could I technically make a wider joker card?

maiden phoenix
#

Think so yea

wild patrol
#

Or is there like a legit limit

maiden phoenix
#

Usually people use set_ability for that

glossy kestrel
#

just do it and see what happens

wild patrol
#

Was gonna make a card in the Yu-Gi-Oh card mod if I get an idea a defense position card lol

#

I'mma try it see what happens

wintry solar
#

It’ll try and rescale it

south folio
#

Ok I give up, I have No Idea how to make this joker gain +21 Chips at the end of the round and also actually score some chips

#

I tried for like. 4 hours now

maiden phoenix
#

Remove the last return below

south folio
#

Ok but it still doesn't. score anything

maiden phoenix
#

Try replacing chips in return by chip_mod

south folio
maiden phoenix
south folio
#

got it

south folio
random sleet
#

looks like it works here

south folio
#

that's

#

ok I guess I am just cursed

random sleet
#

are you on a recent enough version of steamodded to have bettercalc?

maiden phoenix
#

Yea works on my side too

random sleet
#

if not it might be that context.end_of_round may not be getting the cardarea

south folio
#

ohhhhhhh

#

yeah hold on lemme see

#

....actually do you know where the latest version is?

random sleet
south folio
#

aight let's see if this works

#

Ok the messege bit works!

#

but it doesn't score the +21 Chips

#

like it adds up, it has the graphic that says it adds up by +21 chips

#

but it doesn't actually score the +21 chips

wintry solar
#

it'll only score them the 2nd time round

south folio
wintry solar
#

show code

south folio
#
    key = 'j_sniffles',
    loc_txt = {
        name = 'Sniffles',
        text = {
            'Sniffles gains {C:chips}+#1#{} Chips',
            'at the end of each round.',
            '{C:inactive}(Currently {C:chips}+#2#{C:inactive} Chips)',
        },
    },
    atlas = 'Jokers',
    rarity = 3,
    cost = 3,
    unlocked = true,
    discovered = true,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = true,
    pos = {x = 1, y = 0},
    config = { extra = { chips = 0, chips_gain = 21 } },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.chips_gain, card.ability.extra.chips } }
    end,
    calculate = function(self, card, context)
        if context.end_of_round and context.cardarea == G.jokers then
            card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_gain
        end

        if context.joker_main then
            local chips_to_add = card.ability.extra.chips
            return {
                chips_mod = chips_to_add,
                message = " + " .. chips_to_add .. " Chips",
                colour = G.C.CHIPS
            }
        end
    end,
}```
wintry solar
#

the final return just needs to be lua return { chips = card.ability.extra.chips }

maiden phoenix
#

Message isn't mandatory anymore?

wintry solar
#

no

maiden phoenix
#

Neat

wintry solar
#

it'll do it for you

south folio
#

aight let's see

#

It works!

#

thank you so much y'all for being patient with me, I'm new to modding and coding ^^;

maiden phoenix
#

Yea you'll get better the more you code

atomic edge
#

what variable do i need to change to make the shops have 1 more voucher / booster?

vocal verge
atomic edge
#

thanks

vocal verge
#

actually wait

atomic edge
#

under which file is this?

vocal verge
#

all the vouchers seem to be there

atomic edge
#

thank you very much

wintry solar
#

thats not for vouchers and boosters

vocal verge
#

yeah was about to say,t hat's only for the cards

wintry solar
#

boosters and vouchers requires patching the functions that creates them yourself

atomic edge
#

oh okay thanks

atomic edge
#

how do you guys test vouchers, i mean how do you cheat them in without having to play until you find it?

atomic edge
#

thank you

wild patrol
#

Alternatively you could just set the spawn chance to like 999

#

And it'll take priority over all others most the time

maiden phoenix
nocturne garnet
maiden phoenix
#

screw scoring chips, we scoring tables now balatrojoker

vocal verge
#

(╯°□°)â•Żïž” ┻━┻

nocturne garnet
#

did they change how loc_vars's key thing works

#

also this is literally referencing nothing

wintry solar
#

show code?

atomic edge
#

where can i find the documentation or game code for all the G. variables

maiden phoenix
atomic edge
#

thanks

nocturne garnet
# wintry solar show code?
loc_vars = function(self, info_queue, center)
            return {
                vars = {},
                key = 'hook_pure'
            }
        end,```

probably just bad code
#

wait

#

nvm its just bad code sorry lol

atomic edge
#

if i made a voucher how do i determine its v_ name

#

i see people use v_[voucher name] often in code when refering to a voucher but i never see the voucher named anything v

wintry solar
#

it's v_modprefix_voucherkey

atomic edge
#

and modprefix is the one i chose in the json file right?

maiden phoenix
#

Yes

atomic edge
#

is there a way to check the game code after injecting so i can verify that i did it correctly?

#

or can i just open the file?

tall cradle
#

Can SMODS.Enhancements not send a message?

SMODS.Enhancement {
    key = "fire",
    loc_txt = {
        name = "Fire",
        text = {
            "Gives {C:mult}+#1#{} mult",
            "Increases by {C:gold}#2#{} every time",
            "this card is played"
        },
    },
    config = {mult = 4, increase = 1},
    loc_vars = function(self, info_queue, card)
        return {vars = {card.ability.mult + 1, card.ability.increase}}
    end,
    calculate = function(self, card, context)
        if context.cardarea == G.play then
            card.ability.mult = card.ability.mult + 1
            return {
                message = "Upgrade!",
                colour = G.C.GOLD
            }
        end
    end
}
#

It properly increases, but it doesn't say "Upgrade!"

hidden timber
atomic edge
#

`[[patches]]
[patches.pattern]
target = 'button_callbacks.lua'
pattern = 'asdawdsawd'
position ='after'
match_indent = true
payload = '''
sendDebugMessage("Vani", "MyDebugLogger")
if G.GAME.used_vouchers["v_janm_rerollboosters"] then
sendDebugMessage("Nutra", "MyDebugLogger")
for i = #G.shop_booster.cards,1, -1 do
local c = G.shop_booster:remove_card(G.shop_booster.cards[i])
c:remove()
c = nil
end

            for i = 1, G.GAME.shop.booster_max do
                G.GAME.current_round.used_packs[i] = get_pack('shop_pack').key
                local card = Card(G.shop_booster.T.x + G.shop_booster.T.w/2,
                G.shop_booster.T.y, G.CARD_W*1.27, G.CARD_H*1.27, G.P_CARDS.empty, G.P_CENTERS[G.GAME.current_round.used_packs[i]], {bypass_discovery_center = true, bypass_discovery_ui = true})
                create_shop_card_ui(card, 'Booster', G.shop_booster)
                card.ability.booster_pos = i
                card:start_materialize()
                G.shop_booster:emplace(card)
            end
        end

'''`

hardy viper
atomic edge
#

when i use this in lovely injector it doesnt get recognizeed

#

the pattern is obviously asdwadsaw so it wont get found

hardy viper
atomic edge
#

yes

#

but the console doesnt show that the pattern wasnt found

#

i wrote that just to check if maybe my original patter was wrong

#

usually when the pattern doesnt exist it says so in console

hardy viper
#

odd

#

i can't see anything wrong @gaunt thistle

wintry solar
#

the target file is also wrong

hardy viper
#

is it a functions/

atomic edge
#

oh my god

hardy viper
#

oh shit it's button callbacks of course it is

#

mb for the ping

hidden timber
# hardy viper haven't heard u talk about windows release at all, what's the word about that

I am currently renewing my room and am very busy. But the current problem about windows (and linux) is that lovely is being used more different, so I have to adjust the codebase for those. Also the paths work more differently than macOS. But other than that, there should not be many issues implementing windows functionality, so dw I am working on it right now as we chat

atomic edge
#

thanks

tall cradle
#

Does anyone know how I can call this event after the hand has finished, but before all the cards go back to the deck (similar to glass cards)

 G.E_MANAGER:add_event(Event({
    trigger = "after",
    delay = 0.5,
    func = function()
        if pseudorandom("kaboomers_fire_destroy", 1, 8) == 1 then
            card:start_dissolve(nil, true)
        end
        return true
    end
}))
violet void
solar eagle
#

i think

solar eagle
#

context.cardarea = G.jokers and context.remove_playing_cards

tall cradle
#

I've been noticing the lack of some context items for that, with that being one of them

solar eagle
#

you can just check for this context

wintry solar
#

just change the area

tall cradle
wintry solar
#

then you're checking for it wrong

tall cradle
#

Basically the exact same code

wintry solar
#

or you're not using better calc smods

tall cradle
#

that might be why

wintry solar
#

why would you use old calc

tall cradle
#

I don't even remember to be honest

wintry solar
#

the whole point of better calc was to unify calculation so every item gets the same contexts

tall cradle
#

Wouldn't that require a seperate version of steamodded, or has it been merged with main

wintry solar
#

its been in main for 3 weeks now

tall cradle
#

Alright

#

Even after updating, it's still saying the context item is nil

#

These are the only boolean values that a simple loop through could find

wintry solar
#

have you destroyed any playing cards?

tall cradle
wintry solar
#

remove_playing_cards only happens if cards are being removed

frosty dock
#

wouldn't this be an enhancement?

#

actually destroying a card would be context.destroy_card, but I'm not sure either of these are sent to playing cards

wintry solar
#

you can do it in discard too

frosty dock
#

glass cards are kinda hardcoded rn, we could at least expand that into a destroy_self check

wintry solar
#

you can destroy yourself

tall cradle
#

Whats the method to destroy a card, and when does it get called

wintry solar
#

ortalab's sand cards do

nocturne garnet
wintry solar
#
if context.destroying_card then
    return {
        remove = true
    }
end
frosty dock
#

then maybe I'm confused, I didn't actually try unhardcoding the glass card check

solar eagle
#

with a boss blind how does one access the array of played cards?

#

G.hand.cards is not it

tall cradle
#

Attempting this just never destroys anything

solar eagle
#

G.hand.highlighted?

tall cradle
solar eagle
#

many such cases

#

hmm maybe i can hijack the debuff_hand function

frosty dock
#

it's G.play.cards at that point

storm kraken
#

was the one hour of making this worth it

solar eagle
solar eagle
#

note that the bar at the top of the planet card is supposed to highlight which planet it is

#

in my case i've switched solar systems

storm kraken
#

psyche is an asteroid

solar eagle
#

just highlight one asteroid tho

#

not all of em

storm kraken
#

k

#

updation

#

also whoever can guess what asteroids(?) are orbiting it gets nothing

wintry solar
#

new planets or texture pack?

storm kraken
#

new planet.

#

god this stands out so much 😭

violet void
sturdy compass
#

Why would anyone take that? Is it meant to be a super late-game joker?

nocturne garnet
storm kraken
#

how would i set this badge with planet? on it to something like... asteroid

#

or really how would i set any badge to anything custom

#

woah i foun localisation that does something

#

maybe i could use this

#

this is as close as i'll get to asteroid 😭

violet void
sturdy compass
#

That use case relies so heavily on luck that I can only see it being used when you already have a thinned out deck and an extra joker slot for some reason

violet void
#

should I lower its price more?

south folio
#

How.....do I make a joker apply a holographic edition to a card?

solar eagle
#

look into how aura does it

#

and do the same thing

south folio
#

yeah I tried doing that

it just destroys it after doing that

solar eagle
#

like the card is destroyed?

frosty dock
south folio
#

like its not there anymore in the deck

south folio
storm kraken
frosty dock
#

or just put a string instead of a localize call, it's just not localizable in that case

ionic verge
#

anyone got any thoughts?

wintry solar
#

Looks a bit wonky 😅

ionic verge
#

how would i get them to not go blank like that until they were stoned?

long sun
#

clever concept!!!

solar eagle
# ionic verge hm

add the mult highlighting around the "+4", als the reason its nil is most likely nothing returned in loc_vars

ionic verge
#

i know that part

#

ill get to it

#

im worried about the bigger thing at hand

wintry solar
#

Got to do some clever tricks with card attributes

ionic verge
#

mhm?

south folio
storm kraken
#

woohoo

wintry solar
#

Like this

ionic verge
#

so just copy that?

wintry solar
#

There might be some extra stuff I did let me check

#

Give it a try

ionic verge
wintry solar
#

I don’t know where you had it before

ionic verge
#

i meant this line

wintry solar
#

Oh there was code

#

Let me look

#

Yeah there should be okay

ionic verge
#

ok

solar eagle
#

i just ctrl+f for card names

#

and its usually there

ionic verge
wooden nexus
#

GOt a poll that i want your opinions on

wintry solar
#

That’s just where I’ve done a similar effect

violet void
sturdy compass
#

Yeah not to hot on that idea

wintry solar
#

I mean at the moment this joker effectively reads “your deck has 8 cards”

violet void
#

How could I buff it?

wintry solar
#

I don’t see a situation you would ever want this card unless you’ve already fixed your deck massively

south folio
#

Ok I'm kinda lost now

wintry solar
south folio
#

Trying to make scored pair cards turn holographic

violet void
wintry solar
solar eagle
#

if i'm trying to debuff a specific rank with a boss blind how should i go about that?

#

tried SMODS.set_debuff(card) in recalc_debuff but this doesnt work for some reason

south folio
#

thank you thank you

wintry solar
#

Might need an event too

south folio
#

ok it didn't work

solar eagle
#

thank you!

frosty dock
#

Also can't you just return something in recalc_debuff?

violet void
solar eagle
#

i have no idea what is supposed to happen in here

frosty dock
#

-> bool

#

means you should return a boolean

solar eagle
#

i return true and everything is debuffed

#

i return false and nothing is

crisp coral
#

well yeah LOL

#

you need to specify specific cards you want to debuff

solar eagle
#

i have just understood how it works

#

it would be very nice if like any of this was documented though

#

unrelated, is there a way to check if a card has been flipped?

frosty dock
#

card.facing == 'back' I think

wintry solar
#

Complaining about a function not having documentation when you’ve been shown it does is certainly a choice

frosty dock
#

there's literally nothing more to it

solar eagle
#

it doesnt really explain anything else, like what returning the bool does

#

sure you can figure it out with some poking but thats not the point of documentation?

#

its to explain that for you

frosty dock
#

what should it do other than indicating whether to debuff the card or not

solar eagle
#

anyway

frosty dock
#

If I need to write "Return true to debuff the card, return false to not debuff it" for you to understand that's a 98% issue

#

I wonder if there's a use for calculate-ifying blind functions đŸ€”

#

pft mobile

wintry solar
#

I was considering that too

turbid maple
#

much easier than poking around smod source and figuring out what you're supposed to use

solar eagle
crisp coral
solar eagle
#

that and Try and find things in the game source but its also wacky

violet void
crisp coral
#

source code or die

frosty dock
#

ngl I look at my own docs sometimes

violet void
turbid maple
#

I think lock is a better word than block

#

as in they're locked into the hand

#

or a better word idk if you told me a card is blocked I wouldn't have the faintest clue what it's doing

south folio
solar eagle
#

softlock = true on a consumable flags it as not appearing until its poker hand has been discovered? or am i misreading

#

ah i probably have to do stuff with in_pool

#

not sure how to check if a poker hand's been discovered per run tho

normal crest
#

G.GAME.hands["blah blah"].visible

#

I believe

storm kraken
solar eagle
#

tried it but wasnt working :(

storm kraken
#

-# i think thats how the thing goes

solar eagle
#

ohhh it goes in config

#

i just had it as a regular property

#

me when i fail to read the balatro source

storm kraken
#

always have to read it twice

ionic verge
#

@wintry solar i tried putting in the code you showed me and it didnt work

wintry solar
#

You need the bits outside the event too

wild patrol
#

Dumb question you think jinzo should block all blinds or just boss blinds?

#

I feel like all blinds fits the theme

ionic verge
wintry solar
#

Well it definitely needs to be context.other_card, what’s the crash?

ionic verge
#

...maybe i just remove the juice_up, bc thats where it crashes

#

one sec

#

even after removing that it crashes on the first mention of contextothercard

#

which is weird cus my if statement is set up right

#

oh yeah right before it crashed it also got rid of the rank like it previously did

wintry solar
#

What’s the main context check?

ionic verge
wintry solar
#

Hmmmm

#

I’m not sure, I’ll have a proper look later

ionic verge
#

ok

hushed briar
#

this code closes my game without a crash message when i select a card, does anyone see the issue? is this loop just using too much memory or something?

    if not card.debuff then
        local other_joker = nil
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i] == card then other_joker = G.jokers.cards[i-1] end
        end
        if other_joker and other_joker ~= card then
            --Get list of 7s
            local sevens = {}
            for k = 1, #G.hand.cards do
                if G.hand.cards[k]:get_id() == 7 then table.insert(sevens, G.hand.cards[i]) end
            end
            
            
        end
    end
end```
wintry solar
#

You need to check for a context

hushed briar
#

well its supposed to be a blueprint-like card, and blueprint doesnt check context since its supposed to trigger under whatever context the copied card does

#

is this just too much to run under that condition

frosty dock
#

there's an infinite loop with checking extra enhancements here

#

so context.check_enhancements and other potential future contexts need to be ignored

hushed briar
#

ahhhh ok, i figured there was a loop somewhere, didnt know no_blueprint was a context, thank you!

spring lantern
#

how should i go about changing a joker's sprite during runtime? is changing the pos value enough?

ionic verge
#

wow that is some beautiful code preview in game.lua

spring lantern
#

oh yeah the source code for the game has some... interesting parts to it

ionic verge
#

yep

#

i remember when i first delved into it and saw card.lua's way of setting up the ranks

#

beautiful stuff

#

anyways real quick
where is set_edition defined in vanilla code?

wintry solar
#

card.lua

ionic verge
#

hm
coulda sworn i checked there

#

ok

wintry solar
#

its overridden by smods though

ionic verge
#

mhm

#

i was looking to patch in a context into it

#

cus i want to do this

spring lantern
wintry solar
#

thats now very strong

violet void
#

its once per ante

wintry solar
#

does it gain per card or per action?

violet void
#

per action

wintry solar
#

oh okay then

ionic verge
wintry solar
#

thats fine

wintry solar
ionic verge
#

how would i hook it

#

is that the same as patching or?

spring lantern
frosty dock
# ionic verge how would i hook it
local se = Card.set_edition
function Card:set_edition(...)
  -- do something before
  se(self, ...)
-- do something after
end

note I don't remember the arguments and cba to look them up and I don't think it returns anything

wintry solar
#

it's edition, sileent, immediate iirc

wintry solar
#

no outside the joker

south folio
#

I know it's probably possible but how would I like. make a Joker Upgrade whenever you """upgrade""" an Ace to a 2

ionic verge
#

but if you want it to account for modded ways of upgrading cards you may need to patch in a new context

south folio
#

I see I see

ionic verge
#

so i know what to look for

frosty dock
#

pretty sure it's in overrides.lua

ionic verge
#

got it

#

thanks

maiden phoenix
late shadow
#

recently starting my balatro mod, whats the function to make a joker create a tarot card? i cant for the life of me figure it out
as well as wrapping my head around what exactly does "1 in 4 chance" type of functions

#

i cant rlly find either

#

im also working on it with a friend who did a bit of it but neither of us have gotten it to work

storm kraken
late shadow
#

whenever i look at the thing i cant figure out which thing denotes each number

#

like

#

odds is the larger number

#

but idk what determines the smaller one

storm kraken
#

vagabond maybe?
or cartomancer?

late shadow
#

i cant find it bc i dont 100% understand all of what im looking at quite yet

frosty dock
#

which is 1 normally

late shadow
#

oh yeah i cant find which lua file is even the jokers either

#

lol

frosty dock
#

but can be changed by dice

late shadow
#

ty

#

couldnt figure it out ty

frosty dock
#

I should note jokers aren't nicely in one place

#

most effects are in card.lua

ionic verge
late shadow
#

thats odds ?

frosty dock
#

other than that, yes

ionic verge
#

ok thanks

frosty dock
#

you can also have something like a 2/5 chance, you'd just display the numerator as 2*G.GAME.probabilities.normal

late shadow
#

ahh thx

#

uhh what is key_append

#

and forced key

atomic edge
#

in which game file is the code to add vouchers to the shop?

wintry solar
ionic verge
wintry solar
#

or just if edition then ...

ionic verge
#

true

late shadow
hushed briar
#

do we have a way to calculate how many times a card should be retriggered
like say i have a card in hand, and i want a joker to do something based on the amount of times that card in hand would be retriggered
i know SMODS.calculate_repetitions exists but i cant seem to make that work in a joker's calculate function without crashing the game

ionic verge
#

alright since im not getting an answer in normal chat (its moving too fast)
can aura replace an edition, or does it just do it if its editionless

hushed briar
#

aura cant be used on a card that already has an edition

ionic verge
#

ok

#

damn, no funny synergy idea

hushed briar
#

i dont think any edition application effects in vanilla can override existing editions

#

like ectoplasm cant be used if all the jokers you have are already editioned

ionic verge
#

yeah

#

unfortunate cus i have this joker

#

and if you could you could keep stacking it

#

which would be funny

wintry solar
#

you cna always add your own edition generation

ionic verge
#

yeah i can

#

theres a joker i have that gives all stone cards foil

#

which is funny with this one in tow

wintry solar
#

you'll have to be careful btw, this'll trigger whenever a pack is opened with an edition too

#

or whenever you open your deck view

#

or the collection

ionic verge
#

mhm

#

well i also am checking for stone cards

wintry solar
#

in fact it might just crash when you open your collection on the main menu

ionic verge
#

mhm

#

ill look into it

#

does context exist in the main menu

#

cus if it doesnt i can check for context ~= nil

turbid maple
#

I hooked up code to trigger a calculation with a custom context whenever a Joker gets destroyed but I'm not 100% sure how to trigger the Joker animation and messages

Is it just calling card_eval_status_text?

atomic edge
#

guys in which file is the code for the vouchers getting spawned in shop i cant seem to find it

ionic verge
#

specifically the hook does

wintry solar
#

let me guess, jokers is nil or something like that?

late shadow
#

just reasking bc i havent gotten an answer but what does key_append and forced_key do

south folio
#

is there a function to Count how many cards you have in your full deck like how cloud 9 does it?

spring lantern
#

is there a way to change the sprite of a joker when it gets triggered

turbid maple
restive bronze
#

why is my context.end_of_round triggering 7 times 😭

turbid maple
#

so that might work? I also wanted to have a joker change sprites

wintry solar
turbid maple
frosty dock
#

😭

#

why would anyone think that's useful

turbid maple
#

average bug report

spring lantern
#

Oops!

restive bronze
frosty dock
storm kraken
spring lantern
wintry solar
#

đŸ€” do I build in a delay option to set edition similar to delay sprites in set ability

frosty dock
spring lantern
#

wait no i got it working

frosty dock
#

so card.children.center for the main sprite or card.children.floating_sprite for the soul

spring lantern
#

yea i was doing it wrong thx

#

just :set_sprite_pos() those two

hushed briar
#

is it possible to add repetitions during the repetition step without using return? in case i need to do it multiple times in the same function?

wintry solar
#

no

#

what are you trying to achieve?

hushed briar
frosty dock
#

for multiple retriggers, just put repetitions as how many

#

i.e. count the sevens first, then return

hushed briar
#

i guess so, just doesnt work with how i was hoping to do it visually

ionic verge
wintry solar
#

the crash

#

was for a nil value right?

ionic verge
#

ill post the rest of the log too

wintry solar
#

yah

#

I think you just need to check if the card is in G.playing_cards before calling the context

ionic verge
#

dont worry about mod #5 it literally does nothing

hushed briar
# frosty dock ... how?

the way it works currently has it juice up each 7 as its counted and to factor in retriggers on them
itll just be a lot less exciting if i have to just count them and do the counted retriggers all at once

#

i mean ill do it if thats what has to be done

wintry solar
#

whats wrong with that video?

frosty dock
#

i'm pretty sure that's still possible

#

you'd just have to do some stuff with func returns

young dew
#

am i doing something wrong with the atlas?

Stack Traceback
===============
(1) Lua local 'handler' at file 'main.lua:612'
    Local variables:
     msg = string: "engine/sprite.lua:36: attempt to index field 'atlas' (a nil value)"
     (*temporary) = Lua function '?' (defined at line 31 of chunk [SMODS _ "src/logging.lua"])
     (*temporary) = string: "Oops! The game crashed\
"
SMODS.Atlas({key = "showdown_banana", path = "Jokers/banana.png", px = 35, py = 43, atlas_table = "ANIMATION_ATLAS", frames = 8})

create_joker({ -- banana
    name = 'banana',
    atlas = "showdown_banana",
    pos = { x = 0, y = 0 },
    rarity = 'Uncommon', --cost = 4,
    blueprint = true, perishable = true, eternal = true,
    unlocked = false,
    check_for_unlock = function(self, args)
        if args.type == 'extinct' and args.name == 'Cavendish' then unlock_card(self) end
    end,
    calculate = function(self, card, context)
        --
    end
})
frosty dock
#

jokers pull their atlas from ASSET_ATLAS, not ANIMATION_ATLAS

young dew
#

i want to make an animated joker with its own atlas and the wiki says to put ANIMATION_ATLAS for that

frosty dock
#

yeah it doesn't work for that

#

maybe it's worth adding an api feature to smods that allows making any centers animated

wintry solar
#

thats one of the things on my endless list to figure out

young dew
#

so how can i do animated textures?

#

nvm i found out

#

👍

faint yacht
#

Not a lot of animated modded Jokers out there... even I only have just the 1.

ionic verge
mellow sable
#

Does anyone know the difference between the 1x and 2x files

ionic verge
#

(its used for the pixel smoothing option)

mellow sable
#

Are the 1x files needed

#

Ah

#

So basically if I don't have pixel smoothing It will use the 1x?

#

Ah I see now

#

Ty

rigid harbor
#

Im trying to make a texture pack for Vanilla + Cryptid, I've confirmed that the code works but I'm having an issue that its trying to grab the new sprites from Cryptid itself instead of my mod
Is there a way for it to go back to my mod's assets to get the correct sprite?

function SMODS.INIT.RazzJokers()
    sendDebugMessage("Razz's Jokers Texture Pack: Now Loading!")

    local RazzJokers = SMODS.findModByID("RazzJokers")

--- Vanilla Jokers
    local sprite_jkr = SMODS.Sprite:new('Joker', RazzJokers.path, 'rz_jokers.png', 71, 95, 'asset_atli'):register();
    
--- Cryptid Jokers
    if (SMODS.Mods["Cryptid"]).can_load then
        sendDebugMessage("Razz's Jokers Texture Pack: Cryptid Discovered!")
    
        SMODS.Atlas:take_ownership("cry_atlasepic", {
            key = "atlasepic",
            path = "rz_atlasepic.png",
            px = 71,
            py = 95,
        }
        ):register()
    end
#

Ive tried just adding my custom texture to the cryptid assets folder and it worked, Im just not sure how to go back to the correct directory (new to coding, searched around a lot but couldnt find anything like this)

wintry solar
#

see if the table contains the card that you're changing th eedition of

sturdy compass
hushed briar
rigid harbor
sturdy compass
#

weird indeed wtf

rare bobcat
#

Turning on debug mode in the files on my laptop but forgot how

#

Isn’t it something in conf.lua or am I in the wrong place?

violet void
rare bobcat
#

Please Santa

frosty dock
#

Anyway uh

#

that doesn't quite seem like expected behavior, it should use the path of the mod taking ownership and not the original

frosty dock
#

DebugPlus*

#

-# I am devolving into wilson

rare bobcat
#

I also did that

#

It’s tweaking

sturdy compass
rare bobcat
#

Nvm I’m tweaking

frosty dock
#

everything's tweaking

ionic verge
#

alright what did i do wrong

rare bobcat
#

Had to turn off ctrl for keybinds

#

Smh my head

frosty dock
ionic verge
#

good question

frosty dock
#

G.playing_cards may not exist the same way G.jokers or G.hand may not

ionic verge
#

fixed that part

#

ok that should work then

frosty dock
#

~= nil moment

#

i love explicitly checking for nil when false was never an option

ionic verge
#

can i just check if G.playing_cards or something

rigid harbor
ionic verge
#

also, just checking for in general knowledge
if you do an if statement on a variable, and it doesnt equal nil or false, it equals true alongside whatever value it actually is?

frosty dock
ionic verge
#

like if i check for 'if variable' and variable = 'some string value' itll return true for the if statement?

frosty dock
#

any value is "truthy" except for nil and false

#

yes, that includes zero, empty strings and empty tables

sturdy compass
#

truthy and falsy is such a weird but helpful concept imo

ionic verge
#

got it

frosty dock
sturdy compass
edgy reef
sturdy compass
#

JS is like a rock in my shoe, I can't seem to get rid of it while it annoys the hell out of me

ionic verge
#

just saw you can do stuff like this, will it actually do anything ooooor?

wintry solar
#

yes

#

if you hold it it'll give 50 chips

hardy viper
#

javascript is simple the outcome is whatever a toddler would predict it to be

sturdy compass
ionic verge
#

niiiice, very pog

#

me when observatory at home

hardy viper
#

shoutout cat

ionic verge
#

kibitty

sturdy compass
ionic verge
#

ooo cool

hardy viper
#

interesting

ionic verge
#

i like it

wintry solar
#

stealth cat

ionic verge
#

wait wait wait holy shit

ionic verge
hardy viper
#

we need a joker that gives mult corresponding to the estimated value of your computer

#

surely nobody will have a problem with grabbing all your hardware info and proceeding to make several https requests including that hardware info

sturdy compass
#

Suuuuuuuuurely

hardy viper
#

better idea, 0.1 mult per free gigabyte on your system

#

slightly less malicious

wintry solar
#

you could do cpu temp

hardy viper
#

true...

#

ram capacity

frail dagger
hardy viper
#

so true

frosty dock
#

xd

rigid harbor
hardy viper
hardy viper
#

0.1 mult per free gigabyte of ram would be nothing 😭

snow valve
#

Hello! I am new to balatro modding and I was just wondering where in the files the actual look of an edition is applied, i.e. when a joker becomes foil, what is the function that makes the card look foil, I am hoping to use this function separately from actually applying an edition.

frosty dock
#

what if it's XMult and starts at 0

snow valve
#

thank ya

hardy viper
#

they are programmed in a modified version of GLSL for love2d

hardy viper
frail dagger
#

Gain +0.25x mult per used gigabyte of storage

hardy viper
#

this joker gains 0.25x mult whenever a garbage collection cycle occurs

frail dagger
hardy viper
#

i wonder what would happen if you made all the G.I tables weak

#

how badly would that fuck shit up

#

does that even do anything

#

im not too sure how the specifics of garbage collection in lua work

frosty dock
hardy viper
#

nevermind im actually Wrong

hushed briar
royal carbon
#

Did anyone ever make a guide for migrating from oldcalc to bettercalc? I just updated and there's so many new bugs that I have no idea how to fix

hardy viper
#

rewrite any calculate functions that weren't written like a joker calculate function

wintry solar
#

I dont think repetition checks handle anything other than repetitions from memory

hushed briar
#

well shit

hardy viper
#

calculate functions did not all behave the same way before

#

now they do

#

they all act the way joker calculate functions always have

wintry solar
#

they actually work better now

hardy viper
#

so the migration guide is to make all your calculate functions act like joker calculate functions

wintry solar
#

because they all return to the same place (except repetitions lul)

hushed briar
#

well at the very least this implementation does add the repetitions, even if it doesnt do any juice up effects or anything on the 7s

tender gale
#

this code i referenced baseball card gets this error, what could be wrong?

wintry solar
#

joker_main doesnt have other_joker

tender gale
#

oh

#

what should the context be then

#

I mean it gets the same error if joker_main is removed so idk what it is

frosty dock
hushed briar
#

what is the purpose of blueprint setting context.blueprint_card = context.blueprint_card or self instead of just doing context.blueprint_card = self

tender gale
#

thanks

atomic edge
#

can anyone please explain to me how i can make a voucher add an additional voucher to every shop

#

ive been struggling like hell

random sleet
#

ortalab has one of those, maybe you can check how theirs works

atomic edge
#

i think they only have one for boosters but ill recheck thanks!

#

oh my god you are right

#

lifesaver

random sleet
#

lol the voucher one is tier 2 of the booster one too

wintry solar
atomic edge
#

what does kraken do?

wintry solar
atomic edge
#

wait did you make ortalab?

violet void
wintry solar
#

I am the main dev for it yeah

random sleet
#

this game is like clay and we can create anything from it

atomic edge
#

wow great job on it absolute 10/10 mod, thats how i got inspired to make my own

random sleet
#

2 text boxes is almost as exciting as whatever the hell that particle light show is

#

wait is Kraken just Universe with downside

#

(based universe is op)

wintry solar
#

what is universe

random sleet
wintry solar
#

then yes

#

I think this one is my favourite

random sleet
#

oh man

#

well thats all the impetus i need to nerf universe lul

#

(it needs it tbqh /gen)

minor gyro
#

hellow fellow people

maiden phoenix
snow valve
#

What's the function to destroy a card?

mellow marsh
#

this doesn't matter anymore & everyone has moved on but i may be incredibly stupid

random sleet
mellow marsh
#

idk how i didnt notice this line at the top of my file the entire time

frosty dock
random sleet
#

six suits's back 🎉

dense sigil
#

Is there anyone familiar with crashes that might be able to help me?

frosty dock
frosty dock
maiden phoenix
snow valve
#

Whatever sixth sense uses

#

To destroy when played

random sleet
snow valve
#

I already have the context and id checks

frosty dock
#

hm i don't like the camelCase params in here

#

@wintry solar can i get a review on this sometime? I've gone over most of it but i wanna be sure I'm not missing anything important. ty

random sleet
#

aure how cursed is it to run SMODS.calculate_context from a joker calculate function

frosty dock
#

uh that looks quite cursed, esp with joker_main not using calculate_context the first time

random sleet
#

based

hushed briar
#

anyone have an idea of how i might change what the cost displayed on the Reroll Boss button is? i've already changed the functionality i just cant find where to change the visual

frosty dock
#

that's functions/UI_definitions.lua

hushed briar
#

ah thank you!

wintry solar
frosty dock
#

they're a bit jank haha

pliant dew
#

Does anyone have a color palette for Spectral cards handy?

wintry solar
#

They’ll fit right in then!

frosty dock
#

indeed

#

one thing I'm not entirely sure about (and haven't tested) is different palettes within the same suit

#

palettes are saved per suit, so switching from one skin that has a palette to another skin that doesn't have that same palette should make it reset to default and stay that way even when switching back to the first skin

#

i'm not sure if this is wanted

#

or if palette settings should also be saved per skin?

tepid crow
frosty dock
#

i think I fixed it

#

but lemme see

tepid crow
#

👀

frosty dock
#

yeah i didn't mess up the fix, looks all good

tepid crow
#

you sure 👀

#

(somehow the contrast one is fixed though? đŸ€”)

#

oh I see, you always reset G.COLLABS.colour_palettes[self.key] = {}

frosty dock
tepid crow
#

tis

frosty dock
#

i'm doing those exact steps and it doesn't happen on my end..

#

what commit are you on

tepid crow
#

đŸ€š

#

hold on let me make sure it's not a different mod or anything

#

oh, fun

#

you actually need to have one of the custom artworks enabled

#

(not default)

#

you have that?

#

anyway I'm on 20c6df1e873f4759fe0d9ecc9a7206b2a220ab58

frosty dock
#

oh mkay got it

tepid crow
#

didn't have the custom artwork?

frosty dock
#

yeah

real sun
#

Hey does anyone know if you can change the already made joker's names like changing the cermonal dagger to (insert name here)

tepid crow
#

you should be able to overwrite the localization name

#

do you know how to do localization?

real sun
#

Like get into the archive files?

tepid crow
#

I guess that's how you can read balatro's localization?

#

no I meant how to do modded localization

real sun
#

Nope

#

I have it modded

tepid crow
real sun
#

Ok so find what matches in the archive?

tepid crow
#

you have to find the matching key? but you shouldn't even need to go into balatro's localization

#

one sec I'll give an example

real sun
#

Ok

frosty dock
tepid crow
# real sun Ok

if you have this localization/en-us.lua file with:

return {
    descriptions = {
        Joker = {
            -- make sure you get the right joker key - they can be found in game.lua:368
            j_ceremonial = {
                name = "Name!",
                -- in case you want to change description:
                -- text = {"line1", "line2"},  
            }
        },
    }
}
real sun
#

yes found it

tepid crow
#

(this obviously will only work for when you have the game's language set to english)

real sun
#

ohhh i see thank you

tepid crow
#

does it not??

real sun
#

but the ability's still work right?

tepid crow
#

interesting đŸ€”

frosty dock
#

yeah i just thought that might happen

real sun
#

hmm

frosty dock
#

defaults being weak caused other issues

tepid crow
real sun
#

ok

frosty dock
#

maybe en-us can be a weak default if a different language is selected and keep default as a strong default

tepid crow
frosty dock
real sun
tepid crow
frosty dock
#

oh right I forgot about that

snow valve
#

anybody know why this is crashing?

#

brand new to lua

#

assume i messed up the syntax somehow

tepid crow
# snow valve

can you just copy-paste lines 45-54 in a codeblock in chat here? đŸ€”

tight thistle
#

god i hope that makes sense... i dunno how to word it better

weary jungle
#

i am so bad at events

tight thistle
#

so am i!

tender gale
#

I might have to nerf Letter Blocks

native pebble
#

I see in the rules: "and no discussion of debugging the source code"... I have a question that might fall under that. Anyone know what that entails?

tepid crow
#

I don't think anybody actually knows

weary jungle
hardy viper
weary jungle
#

how do i do dialog

#

i might be doing it wrong and i just dont realize

hardy viper
#

like jimbo dialogue or what

weary jungle
#

yea

hardy viper
#

ah

#

yeah no clue

tepid crow
#

you need a localization key

snow valve
tepid crow
#

nice job 👍

weary jungle
tepid crow
#

and how do you call the "talk" function?

#

(I forgot the name)

weary jungle
#
                    card:say_stuff(5,nil,{
                        monologue = {"start1"},
                        pitch = math.random(2,4)*0.2
                    })```
tepid crow
#

you shouldn't need that second part in say_stuff

native pebble
#

I am learning to program to create a neural network that can play Balatro. I would like to read the memory of the game to accomplish this rather than use visual inputs... Any idea on how that can be accomplished?

tepid crow
#

but the rest seems fine

hardy viper
native pebble
#

Lol, no, but it's not that deep

hardy viper
#

i doubt any neural network can handle the amount of input that's necessary to make a balatro ai work

native pebble
#

Maybe. I'm only learning, but I suspect it can

weary jungle
#

balatro ai wont play wheel 10 times!!!!

#

blasphemy

hardy viper
native pebble
#

Yes

hardy viper
#

alright

native pebble
#

Which is why visual inputs would be easiest, but I'm not doing that

hardy viper
weary jungle
#

this event is doing its thing and i dont know how to stop it