#💻・modding-dev

1 messages · Page 453 of 1

lament agate
#

Bakery's mod has a feature that lets you crash on purpose with a DebugPlus command

snow vale
#

giving a message

#

if message aint possible then ill simply make it crash

lament agate
#

like a message before crashing?

snow vale
#

no, like changing the crash message

lament agate
snow vale
#

ok

molten musk
#

how do i check if a card has a seal on it

lament agate
#

the entirety of the modding scene consists of people checking on other people's mod on how they did it And i like it

ashen scarab
#

guys pls help me bcs chat gpt just make me unalive myself can someone help me with creating mod with only 1 card?

snow vale
ashen scarab
#

i want to create a mod that adds one deck with only 1 king of hearts

lament agate
#

ah shit, idk about modding deck

#

uhhh

ashen scarab
#

gpt told me that balatro doesnt support modding decks but mods like cryptid adds a ton of decks

ashen scarab
#

thx mate

snow vale
#

you can mod decks

lament agate
ashen scarab
#

now i know this

stiff quiver
native zinc
#

ChatGPT has probably not read SMODS Documentation

lament agate
#

use deepseek :clueless

ashen scarab
#

okay i will try using this deck creator and again thx for help guys ❤️

stiff quiver
#

i got this crash with this. tbh i have no idea what i was doing, just saw something similar above and tried it ```lua
add_to_deck = function(self, card, from_debuff)
SMODS.Joker:take_ownership("j_smiley",{
calculate = function(self, card, context)
if context.joker_main then
return {dollars = 30}
end
end})
end,

native zinc
native zinc
#

take ownership should not be put in any form of calculate

molten musk
tawdry oriole
#

how can you get the card id of a custom rank? (with get_id()) (as in how do you know what it is)

stiff quiver
molten musk
stiff quiver
#

you could do a for loop that checks for each seal, i dont know if theres a way to check for any seal

stiff quiver
stiff quiver
#

i know all seal keys are stored somewhere, same with jokers etc

molten musk
#

what about going like this card.seal ~= ""

#

would it work?

stiff quiver
#

i think it could yeah, thats easier lol

molten musk
#

github copilot helped lol

vast bough
#

is there docs on explaining how legendary art for jokers is done codewise? like i imagine it's just two separate images but does smods have a little page or article about this lol

unborn bay
#

soul_pos is the atlas coordinate for the second layer

#

similar to pos

vast bough
#

oh perfect then, easier than I thought I thought it would be much more hands on

#

I LOVE SMODS

native zinc
#

just put it above your SMODS.Joker{} ... yada yada

#

actually what are you even trying to do

molten musk
#

its retriggering all cards, not just ones with seals, what did i do wrong?

tired kestrel
#

Why isn't the straight patch modifier work?

#

whenever I get to like have the american joker 95 additiona to it

formal parrot
#

Me when i can’t find something on the wiki but a real man never speaks ill of smods documentation

tired kestrel
vast bough
#

smods is genuinely pretty great all things considered lol

native zinc
native zinc
#

ah right

formal parrot
#

How’s doing patches going

molten musk
#

let me try that

native zinc
#

my first two patches ever worked first try

formal parrot
#

I think you need to do
If not card.seal then

#

But

native zinc
#

do you mean if not card.ability

formal parrot
#

Card reference the joker

#

Not playing cards

molten musk
formal parrot
#

What do you want to do exactly

#

Nil isn’t a string nil means it doesn’t have a value

molten musk
#

repeat cards with seals

crisp coral
#

nil as in nil not "nil"

molten musk
#

like how u can retrigger face cards with sock and buskin

tired kestrel
#

no wait I have an idea

molten musk
#

im making a joker that retriggers cards with seals only

formal parrot
#

Context.individual and context.repetition and context.cardarea==G.play then

molten musk
native zinc
#

you are using card.seal

crisp coral
#

oh wait

#

yeah

native zinc
#

you should use card.ability

crisp coral
#

i think you also need other_card

molten musk
#

one sec let me try that then

crisp coral
#

instead of card

#

i'm too lazy to check the context returns on the wiki though

native zinc
#

other_card.ability

formal parrot
snow vale
#

how can i edit the blind req?

native zinc
#

read docs

formal parrot
#

😭

snow vale
formal parrot
#

Use G.GAME

#

i think

snow vale
#

i used it

#

i used it this way

native zinc
#

okay

molten musk
formal parrot
#

Try .seal

molten musk
native zinc
#

do both

formal parrot
tired kestrel
#

How can you make a joker similar to the four fingers?

native zinc
molten musk
native zinc
#

okay

formal parrot
tired kestrel
#

I just need to use patches

crisp coral
#

ability.seal

crisp coral
#

lol

tired kestrel
#

but what kind of patch would make it straight

formal parrot
crisp coral
formal parrot
hidden sable
tired kestrel
crisp coral
#

obviously 🙄

tired kestrel
#

I mean there's no offense about LGBTQ or to anyone but honestly I was talking about code.

formal parrot
native zinc
snow vale
#

it didnt work

red flower
#

you need to hook into that function and return how many cards

molten musk
native zinc
molten musk
snow vale
molten musk
formal parrot
#

ughhhhh

crisp coral
#

why are you screaming

formal parrot
#

Try doing a for instead of context.individual

#

I hate context.individual

red flower
snow vale
molten musk
tired kestrel
#

Yeah... not wokring either

formal parrot
snow vale
native zinc
formal parrot
#

N do you know how to check for card seals

red flower
#

isn't it like card.seal

formal parrot
#

Not a specific one , just a seal

native zinc
#

what

formal parrot
#

that’s literally what i was saying 😭🙏

tired kestrel
native zinc
#

it's card.ability.seal no

formal parrot
#

Not sure if it worked tho

red flower
red flower
onyx sonnet
#

no, its card.seal

molten musk
#

tried that

red flower
#

both seem to be a thing

formal parrot
#

Its ability.seal yeah

lament zephyr
#

Is there an easier way to make a joker forcibly enhance the first scoring card (like midas mask) and make it only trigger on the first scoring one (like photo)?

red flower
onyx sonnet
#

this is how i check for seals and it works just fine

lament zephyr
#

(First time modding btw)

crisp coral
#

if you have a copy of the code on your phone does that count as rule 4 🤔

molten musk
#

already have that

formal parrot
native zinc
formal parrot
#

Just do .seal 😭🙏

tired kestrel
#

what's the latest?

red flower
#

open the game

molten musk
tired kestrel
formal parrot
#

Si

red flower
tired kestrel
#

Also I just realized balatro is getting a v1.1 but no idea how

tired kestrel
formal parrot
#

That will check for seals so you might want to add not

red flower
#

remove the smods folder and replace it with the new one

tired kestrel
#

iay

#

wait

formal parrot
#

People be reading lovely patches and not knowing how to update mods

molten musk
#

it worked

formal parrot
#

Yeyyy

molten musk
#

🎉

formal parrot
#

(That was my solution from the start btw )

#

😭😭

molten musk
#

bad news

#

i think it only works for played seals

#

not in hand or discarded

formal parrot
#

Add context.cardarea=G.discard and context.carearea=G.hand

tired kestrel
#

OH! now it works!

formal parrot
#

5’4 straight

formal parrot
hidden sable
#

#G.hand.cards

long sun
#

mm, the alternate ability doesn't work

#

can you see why?

molten musk
hidden sable
crisp coral
native zinc
valid leaf
#

anyone knows why the thing to change description isn't working?

native zinc
#

context.cardarea == G.hand

formal parrot
long sun
molten musk
#

umm

long sun
#

it should be vars = { ... }, key = "..."

molten musk
#

it stoped working

#

are u sure its "and"

native zinc
#

how are you checking that the cards are retriggered

#

itt should be or

formal parrot
#

Lol

molten musk
tired kestrel
#

out of curiousity, how do you draw in-game?

#

like not GUI based

#

but rather more

formal parrot
long sun
hidden sable
molten musk
#

oh

#

my bad

tired kestrel
#

like draw multiple images

hidden sable
long sun
#

Add context.cardarea == G.discard and context.cardarea == G.hand

formal parrot
#

Copy paste same if change card area

#

That works aswell

tired kestrel
tall wharf
#

omg ghostsalt

formal parrot
#

Nobody says omg heaven 😔

red flower
#

omg aikoyori

formal parrot
#

I’ll gain my recognition

tall wharf
unborn bay
#

heaven? like the place

valid leaf
molten musk
#

omg heaven

molten musk
long sun
tired kestrel
# tired kestrel

also when I update the Smods somehow the solitare.exe joker is off putting.

molten musk
#

the discard didnt

#

it still triggers once

tired kestrel
valid leaf
#

I'll try, No clue what I'm doing lmao

molten musk
native zinc
long sun
molten musk
#

the purple seal didnt give 2 tarots

long sun
#

can i see your code?

tired kestrel
#

hold on I think I might need to record it

molten musk
formal parrot
#

I won’t draw you pregnant

candid sleet
#

oh wait izz are you making a card that repeats seal effects?

formal parrot
molten musk
candid sleet
#

yeah i tried making one a while back but i am not smart so i couldn't figure out blue/purple seal retriggers

tired kestrel
#

I think I got the position fixed

candid sleet
#

the best i got in the end was instead of retriggering the effects of the seals it would just retrigger any card that had a seal on it (held in hand or played)

#

which doesn't retrigger blue seal

#

but again i am very beginner at this

long sun
#

use context.discard instead of context.cardarea == G.discard instead

tired kestrel
#

Y'know even after fixing the position, how cna I make this effect to be mixed in with the shader itself.

native zinc
near bay
#

how do i make a seal play 2 different sounds when it appears in the standard pack?

tired kestrel
formal parrot
#

And some pseudorandom magic

near bay
#

how do i do that?

formal parrot
#

Local tablename={“soundkey1”,”soundkey2”}

tired kestrel
long sun
#

hmm, i don't think you can retrigger that then

tired kestrel
#

sorry if I had to bother

#

just something I realized when I tryed CRT

formal parrot
#

Pseudorandom(#tablename)

tired kestrel
#

and see how it looks

molten musk
formal parrot
#

You can but you need to make a calculate effect i think

formal parrot
#

Keyword might

#

Add a random tarot

#

Manually

#

Instead of discard

#

Or copy a planet card

molten musk
#

i have other discard seals so...

formal parrot
#

Oh

molten musk
#

its okay

formal parrot
#

Check other mod’s code maybe you can find something

#

Under

molten musk
#

now i need to make it have a chance of destroying retriggered seals "not cards"

tired kestrel
#

just a curious quesiton

#

sorry if I interupt

formal parrot
#

Which shader exactly?

molten musk
#

?

tired kestrel
red flower
tired kestrel
formal parrot
red flower
candid sleet
near bay
molten musk
#

its exactly like mine lol

candid sleet
#

it's a bit wack but here

molten musk
candid sleet
#

i tried the g.discard thing someone mentioned above right now to see if purple discard would create a second tarot but it did not

molten musk
#

yeah, i guess purple works in a unique way

faint yacht
#

Using G.discard or G.deck as cardareas requires you enabling their usage first as optional features.

molten musk
#

which will create a tarot besides the purple seal one

candid sleet
#

i'm gonna try this for purple seal actually, this seems good to me?

vast bough
#

for some reason, i cant get my code to work with legendary joker overlays. the overlay is in atlas right next to the base joker image. the joker appears in game but is only showing the base image (red card)

-- FILE GENERATED BY JOKER FORGE
-- Mod: overlaytest
-- Author(s): overlaytest
-- Version: 1.0.0
-- Description: overlaytest

local mod = SMODS.current_mod

mod.config = {}

-- Atlas
SMODS.Atlas({
    key = "CustomJokers", 
    path = "CustomJokers.png", 
    px = 71,
    py = 95, 
    atlas_table = "ASSET_ATLAS"
}):register()

SMODS.Joker{ --legendary test
    name = "legendary test",
    key = "legendarytest",
    config = {
        extra = {
            
        }
    },
    loc_txt = {
        ['name'] = 'legendary test',
        ['text'] = {
            [1] = 'A {C:blue}custom{} joker',
            [2] = 'with {C:red}unique{}',
            [3] = 'effects.'
        }
    },
    pos = {
        x = 0,
        y = 0
    },
    cost = 8,
    rarity = 4,
    blueprint_compat = true,
    eternal_compat = true,
    unlocked = true,
    discovered = true,
    atlas = 'CustomJokers',
    soul_pos = {
        x = 1,
        y = 0
    },

    loc_vars = function(self, info_queue, card)
        return {vars = {}}
    end
}

return mod
red flower
molten musk
vast bough
near bay
#

how to i make a seal play the sound of the base chip and mult being balanced when it appears in a standard pack?

formal parrot
#

Fixed

molten musk
#

no i dont want fixed

#

how do i do game probability?

onyx sonnet
#

well then do G.GAME.probabilities.normal / 4

molten musk
onyx sonnet
#

preferably you should be using numbers in the card though

#

so like

formal parrot
#

Config

onyx sonnet
#

card.ability.extra.odds which you would define in your config

molten musk
#

i see

onyx sonnet
#

config = { extra = { odds = 4 }}

formal parrot
#

if pseudorandom('vremade_gros_michel') < G.GAME.probabilities.normal / card.ability.extra.odds then

#

You can change the ‘’ string to whatever you want

vast bough
onyx sonnet
#

the string barely matters

molten musk
#

thanks

onyx sonnet
#

the only thing you should be worried about is how likely it is for another mod to have the same string

formal parrot
onyx sonnet
#

so ideally you would put something unique, like the name of the card and the effect

formal parrot
#

Pos={x=1,y=0}
Soul_pos={x=2,y=0}

onyx sonnet
#

pseudorandom("my_cool_joker_mult")

formal parrot
#

Soul pos is the one on top
Your x,y pos (0,0) is empty

red flower
#

this weird in between state of having to recommend the old method for pseudorandom is annoying lol

molten musk
#

will this work for config?

onyx sonnet
#

nono

formal parrot
onyx sonnet
#

oh

#

repetitions and odds are both inside extra

#

they are not their own tables

molten musk
#

i see

formal parrot
#

Remove the } {

#

Do , between them

molten musk
#

done

onyx sonnet
#

config = { extra = { odds = 4, repetitions = 1}

molten musk
#

do i add the if pesudorandom before or after "return repeat"

#

and how do i remove just seal?
not destroy card?

#

does this work? [playing_card]:set_seal(nil)

formal parrot
#

Set_seal (nil ,nil?)

formal parrot
vast bough
# formal parrot Soul pos is the one on top Your x,y pos (0,0) is empty

the x, y is the red card, it is 0,0 because it is the first image (the background). golden ticket is directly to the right in the atlas, therefore it has 1,0. the red card at 0,0 is the one displaying, the soul is not. do the foreground images need to be placed directly below the background images in the spritesheet?

formal parrot
#

It looked like (0.0) was an empty space

red flower
#

it does look like 0,0 is empty in the image

vast bough
#

wait

formal parrot
#

You can place the soul anywhere

#

Doesn’t have to be under the bc

#

Bg*

unborn bay
#

maybe the red card was the soul graphic in this case lmao

formal parrot
#

Yup that’s what i was pointing

molten musk
#

its not removing seals

vast bough
tired kestrel
#

how do you draw as a love.graphic.draw with Sprite ?

molten musk
formal parrot
#

Card reference the joker 😭

molten musk
formal parrot
#

Its (nil,nil,true)

#

Btw

molten musk
candid sleet
formal parrot
formal parrot
molten musk
red flower
molten musk
#

hmm

#

i see

formal parrot
#

You forgot the context

molten musk
crisp coral
molten musk
formal parrot
molten musk
#

skirk is out

#

just so u know

formal parrot
#

😭already?

molten musk
#

yep

#

so go back now

formal parrot
#

Did they added quantum and imaginary ?

molten musk
#

no lol

formal parrot
#

What

molten musk
#

this is genshin not hsr

formal parrot
#

Then how did they added skirk

molten musk
#

cryo

formal parrot
formal parrot
#

😭😭😭

molten musk
#

cryo is coming back strong

#

if u have escoffier and skirk

#

u have best cryo team in the game rn

#

and it does alot

candid sleet
molten musk
# molten musk

umm now its working nicely except it removes seals before retriggering

red flower
candid sleet
#

oh i didnt even realize i used a different context check

#

not really sure what i'm missing here

molten musk
red flower
candid sleet
#

yeah

formal parrot
red flower
formal parrot
#

Oh no

#

Just

#

Change the line order

molten musk
#

it gives me this

red flower
formal parrot
#

Put the remove seal at the end

candid sleet
#

oh ok i wasn't sure if i did that right tbh lmao

#

been a while since i used print

molten musk
red flower
#

or inside the event function

#

not in the parameters

formal parrot
#

Yeah you can’t do conditions after the return

candid sleet
#

Gotcha

formal parrot
#

Can you put it inside the return ? 😭 (idk)

molten musk
#

i know, but what do i do here
do i just make a seperate if for the delete?

#

maybe

formal parrot
candid sleet
#

yeah still nothing when i discard purple seal

formal parrot
#

Manually

molten musk
candid sleet
#

i thought thats what i was doing here 😭

molten musk
#

i know why, lazy to think of a sol..

red flower
manic rune
red flower
manic rune
#

so when the chance procs, context.other_card might not exist

molten musk
#

i know

molten musk
formal parrot
#

Izz take a break

#

Drink some water

#

Adjust your posture and come back

red flower
molten musk
molten musk
formal parrot
candid sleet
formal parrot
#

After triggering

manic rune
#

diabolical indentation

candid sleet
#

indeed

red flower
candid sleet
#

this is probably the messiest joker i have right now

red flower
manic rune
#

we got a if statement thats a million years away from your code and a freaking tower of end

#

😭

red flower
#

yeah i wanted to see if anything is nested

manic rune
#

and yeah, what N' said, this can be prevented by using an auto-formatter

candid sleet
#

i dont know what i'm doing so if i boot it up and it crashes i just add another end to the tower it's a very real method

manic rune
#

sob

molten musk
red flower
manic rune
#

i think that guess is bound to be correct for like, 95% of people in here

molten musk
#

hahahah

formal parrot
#

You looked frustrated >w<

molten musk
#

oh u noticed

candid sleet
#

oh i think i already see the issue now lmaoooo

molten musk
#

what do u think of this solution?

manic rune
#

carearea

molten musk
#

im gonna run it now but wanted to hear your opinions

manic rune
#

just context.cardarea == G.hand alone wont suffice

red flower
manic rune
#

but having an idea on your intended effect first would be useful

red flower
#

youre returning before the other condition triggers

molten musk
red flower
#

also context.cardarea == G.hand is not a robust context check

molten musk
#

hmm i see

red flower
candid sleet
red flower
manic rune
candid sleet
#

i thought it was cuz the if statement for context discard was still part of the above one for context cardarea but i dont think it is

manic rune
#

no wait

#

why are they inside each other

#

😭

molten musk
candid sleet
#

i do not know!

manic rune
#

please put them outside 🥀

red flower
#

none of this will work

candid sleet
#

oh ok awesome

molten musk
red flower
#

that

molten musk
#

oh, didnt see that

#

went to drink water

molten musk
placid star
#

is the deck view a card area? and if so is it possible to check if a card is clicked in the deck view?

red flower
#

it's multiple cardareas iirc

#

what are you trying to do

candid sleet
red flower
placid star
candid sleet
#

so just move them left?

#

or do i need to add something

#

sorry i'm not the brightest when it comes to this 😭

red flower
manic rune
molten musk
#

@red flower context issue or something else?

molten musk
candid sleet
#

the context cardarea repeats are working but the purple discards still are not

manic rune
molten musk
#

last time i talked u where out with your bike and the tire broke or something

manic rune
#

not the tire, the entire engine in it

molten musk
#

before that its either supermarket or had people

manic rune
#

:p what can i say, im everywhere

red flower
lament agate
#

say, if i want to put my own jokers, should it be G.P_CENTERS.j_tngt_blabla?

molten musk
#

local "sometext" = context.other_card??

lament agate
#

alright

red flower
lament agate
#

what do i put in default tho?

red flower
#

whatever you want the default card when you own all other cards to be

lament agate
#

like, own all of the cards inside of the object type?

red flower
#

yes

lament agate
#

alright

red flower
#

only when youre creating a card of that set tho

lament agate
#

i see

molten musk
lament agate
#

c_prefix_key?

red flower
#

yes

lament agate
#

alright

red flower
molten musk
red flower
#

just context.other_card

molten musk
#

sometimes i question if my brain is even working ...

molten musk
#

thank u

#

i have something else i needed help with for the past few days but didnt see u online @red flower

red flower
#

what is it

candid sleet
#

fellas i fixed it

molten musk
#

booster packs only show mod spectrals for some reason

red flower
#

what version of steamodded

molten musk
manic rune
red flower
#

hmm

manic rune
#

gj!

red flower
# molten musk

try updating but if that doesnt work you might need to use the other method to inject them

#

also your default is wrong

molten musk
red flower
red flower
manic rune
#

nxkoo being a role model...

lament agate
molten musk
#

so "G.P_CENTERS." is it or something else?

lament agate
#

here

#

ignore the

#

name

#

thank you

red flower
#

thank you

#

like that

molten musk
#

so my object type code is wrong

red flower
#

i wouldn't say wrong, i think it's an smods bug

stiff quiver
#

i made this mainly as a test of changing a jokers ability but it doesnt seem to be working, whats wrong?

SMODS.Joker:take_ownership("j_smiley",{
        calculate = function(self, card, context)
          if context.joker_main then
            return {dollars = 30}
          end
        end})
molten musk
#

im gonna rest for today

#

continoue this tomorrow

#

see u

#

bye

stiff quiver
#

have a nice rest of your day

stiff quiver
tired kestrel
#

how do you change X and Y with screenshake?

candid sleet
#

why is this pooping itself

faint yacht
#

In that loop, do if v.seal instead.

#

You're also not checking if context.other_card itself exists before doing the seal check.

snow vale
#

why aint this working?

faint yacht
#

As in, context.other_card may not be a "valid" object in a given instance. If you are not using loops, just having if context.other_card and context.other_card.seal makes sure that you have a "card" to check over.

maiden phoenix
#

Darn can you not get the ability table of the target in the localize function?

stiff quiver
#

sorry for asking again, i made this a while ago to test modifying a base game joker but it doesnt seem to be working. whats wrong with it? ```lua
SMODS.Joker:take_ownership("j_smiley",{
calculate = function(self, card, context)
if context.joker_main then
return {dollars = 30}
end
end})

formal parrot
#

And i think its missing a )

stiff quiver
#

where am i missing a true?

formal parrot
#
        calculate = function(self, card, context)
          if context.joker_main then
            return {dollars = 30}
          end
        end},true)
stiff quiver
#

oh might be because i put j_smiley instead of just smiley, the documentation says the prefix isnt necessary

worthy stirrup
#

Where should I start looking if I want to add custom options to my mod

stiff quiver
formal parrot
#

Maybe config

#

Also hey flote :3

#

Are you sure your key is correct?

worthy stirrup
#

My key?

#

What for

stiff quiver
formal parrot
worthy stirrup
#

Oh, my bad, and hi

formal parrot
#

@red flower

#

Boss it’s all you

red flower
#

no idea

formal parrot
#

You know its cooked when N has no idea

#

@wintry solar

#

Sorry for ping , we need some help

stiff quiver
#

to be fair my game has been having issues detecting stuff recently. i recently made a seal that worked for everyone but for me, so maybe its a me problem

formal parrot
#

And smods

#

And lovely if you don’t have 0.8

stiff quiver
#

how do i check the lovely version? cause its been the same for like a year now

maiden phoenix
#

I think I'm getting close to something, right now it just added an empty box, not sure why its not populated but it might be done elsewhere

#

(I'm modifying SMODS lovely patch directly cuz I'm lazy)

sturdy compass
#

Doesn’t SMODS have multi-box built in already

red flower
#

is this dynamic multibox

maiden phoenix
sturdy compass
#

Ooooooo

red flower
#

i need to add something like that to my mod too

maiden phoenix
#

If I somehow figure it out and polish it I could make it a SMODS util

red flower
#

but i would use generate_ui

maiden phoenix
#

Oh?

#

That's why I needed your time for this btw 😅

red flower
#

but i need to change the thing immediately after to use it too

maiden phoenix
#

Wdym by the last sentence?

red flower
maiden phoenix
#

Oh, that I don't really mind I think tbh

red flower
#

this adds things to the description dynamically but not with multiboxes

maiden phoenix
#

Yea I wish it was in a multibox, looks fancier

stiff quiver
red flower
maiden phoenix
#

I'd rather prefer it if it added it last tbh

formal parrot
maiden phoenix
#

I saved my desc in AUT but I'm not sure exactly where I should add it (if it's even somewhere here)

red flower
#

i want to switch to use multiboxes instead of a patch if i can

maiden phoenix
#

You and me

red flower
#

im too busy making new jokers

maiden phoenix
#

I want to deal with this now so future me doesn't have to

red flower
#

maybe if you add it to AUT.multi_box in generate_ui it just works

maiden phoenix
#

multi_box isn't called in generate_card_ui tho?

#

nvm misread

red flower
#

well it wouldnt be aut in generate_ui

#

it would be full_UI_table.multi_box i think

maiden phoenix
#

Does it still work if it isn't initiated in the func?

red flower
#

where is it initialized

#

i dont have the code rn

maiden phoenix
#

Both G.UIDEF.card_h_popup and localize it seems

#

the card_h_popup one is for the box creation part

#

Wonder if I could fill it out at this moment but idk which param I'm supposed to modify to add the desc in

stiff quiver
#

dont know whats wrong with my game though

formal parrot
#

You might need to reinstall it or something

red flower
#

are you sure youre editing the correct code

formal parrot
#

This doesn’t happen

formal parrot
red flower
#

like maybe youre editing a copy

stiff quiver
#

its only some stuff thats broken

red flower
#

is it in the same file?

stiff quiver
#

yeah

red flower
#

could you send the file?

maiden phoenix
stiff quiver
red flower
red flower
manic rune
#

help :3

stiff quiver
manic rune
#

how is it that im stuck at this more than figuring out how to check mouse circles 😭

red flower
# manic rune

just check if hoveredCard is the same as before before setting it to nil

manic rune
#

oh fuck you are right

native zinc
manic rune
#

im sorry for being dumb

native zinc
#

why smods injecting a shader i deleted

#

question mark.

stiff quiver
red flower
#

ty let me check

worthy stirrup
#

How do i save the option the player made

SMODS.current_mod.config_tab = function()
    return {n = G.UIT.ROOT, config = {
        -- config values here, see 'Building a UI' page
    }, nodes = {
    {n = G.UIT.C, config = {align = "cm", padding = 0.1}, nodes = {
    {n=G.UIT.R, config={minh=0.1}},
    create_option_cycle({options = ralseichoices, current_option = 15, colour = G.C.RED, w = 5, scale = 1}),
}}
    }}
end
red flower
torpid glade
#

So looking at this sprite sheet, how would I go about assigning each card position in the code? How do the legendaries work?

red flower
#

combined with the new syntax

manic rune
stiff quiver
#

i didnt know there were two different sintaxes

torpid glade
red flower
stiff quiver
#

what would i need to change that for? i didnt code that part, it was done by the person who started the mod

red flower
#

you would change it for SMODS.Atlas i think

#

i never coded pre-1.0

#

idk why the take_ownership thing is not working tho

#

i dont think its that

#

did you code this part?

stiff quiver
#

no, didnt code that either, almost every other thing is done by me though

red flower
#

thats replacing any take_ownership you do

maiden phoenix
#

Tried fetching the joker through G.P_CENTERS but its still an empty box

stiff quiver
#

yeah now it works

#

also fixed the problem i was having with the seal i made not working

red flower
#

ok i dont know how that caused the other problem but amazing

stiff quiver
#

yeah that one doesnt make much sense but i'll take it

#

but for some reason is creating cards without a backsprite (for context the seal created two copies of itself when the card with it was destroyed)

#

i think that already happened before though, since some people that tested it had the same result

#

still doesnt make sense

formal parrot
#

Lovely art btw

stiff quiver
#

not done by me, it was done by two of the other people im doing the mod with

formal parrot
#

Did you used copy card

#

Or other function ?

#

Probably should take a look at the code of cryptid (the spectral card )

#

Maybe certificate aswell

lament agate
#

how do you detect if certain item is in a shop

#

is it possible

stiff quiver
#

i didnt because i was told it was crashing when testing it, so i did this ```lua
G.E_MANAGER:add_event(Event({
func = function()
print(_suit)
print(_rank)
local _card = create_playing_card({
front = G.P_CARDS[suit..''.._rank],
center = G.P_CENTERS.c_base}, G.hand, nil, nil, {G.C.SECONDARY_SET.Enhanced})
SMODS.change_base(_card, _suit,_rank)
_card:set_edition(context.removed[i].edition or {}, nil, true)
_card:set_seal(context.removed[i].seal, true)
if next(SMODS.get_enhancements(context.removed[i])) then
_card:set_ability(context.removed[i].config.center)
end
SMODS.change_base(_card, _suit,_rank)
G.GAME.blind:debuff_card(_card)
G.hand:sort()
print(_suit)
print(_rank)
SMODS.change_base(_card, _suit,_rank)
G.E_MANAGER:add_event(Event({
func = function()
SMODS.calculate_context({ playing_card_added = true, cards = { _card } })
return true
end
}))
return true
end}))

red flower
lament agate
#

sayy like

#

i want this joker to detect if there's this joker in this shop

#

or this item

red flower
#

G.shop_jokers is the cardarea for the shop

lament agate
#

so like

#

SMODS.find_card and G.shop_jokers?

red flower
#

nope

#

you will have to iterate through G.shop_jokers.cards

lament agate
#

ah cruds

#

alright then

#

thanks

#

how do you detect the future one tho?

red flower
#

no idea

#

but ive seen it done

stiff quiver
#

to fix this i'd have to fix the loc_vars of the joker right?

red flower
#

yes

stiff quiver
#

ok thanks

split panther
#

i genuinely cant figure out how probabilities work in this

#

help

lament agate
split panther
hallow forge
#

pseudorandom(pseudoseed('seed')) < G.GAME.probabilities.normal/odds

snow vale
#

why is this not working?

red flower
#

tags dont have normal contexts

#

they have specific ones for tags

snow vale
#

hm?

red flower
#

i dont know how to be more clear than that

snow vale
#

would you know how to make that work?

red flower
#

no idea

stiff quiver
#

does anyone know how showman works? cant barely find it in the base game's code, only appears like 3 times

primal robin
#

Basically hardcoded

crisp coral
red flower
#

theres a util function for showman now

primal robin
snow vale
#

i was 1 second late

azure valley
#

ok so, need some help, I'm trying to hook into end of round scoring to also score cards as if they were played (for secondary effects, like gold seal) and I'm having some trouble getting anything other than chips from the card working.

I've a rather large set of patches to make this work, so it's difficult to share succinctly. I can upload to github if need be, but the gist is, I think I should be in common_functions.lua, and I patched eval_card to reevaluate the area of the code that looks for editions, but I'm thinking there's an additional context check for something that's different between end_of_round and main_scoring, despite main_scoring being present in the context. What code actually controls whether or not an edition is applied? It's something that SMOD has patched, so I'm not seeing it in the lovely dumps, but it's not something that I've been able to find looking around the smod files.

crisp coral
#

can vanillaremade show me how to remake my life

stiff quiver
#

i already checked in vanilla remade, it just says "theres no good way of making it"

red flower
red flower
#

check the new version

stiff quiver
#

oh, i didnt know there was a new version

red flower
#

i update vanillaremade with every smods change

daring fern
maiden phoenix
#

Huh, close enough?

snow vale
#

showman's original key is ring master 💔

red flower
azure valley
#

I'll look into that, thanks

snow vale
#

i mean is

primal robin
#

Wdym was? It' ring_master still

snow vale
primal robin
#

(edited)

#

aanyway

red flower
#

hi sleepy

long sun
#

this function isn't detecting the Today & Tomorrow sleeve:

#

but #SMODS.find_card("sleeve_phanta_stormcaught") does

red flower
#

i dont think find_card detects sleeves

daring fern
red flower
long sun
#

ya but #SMODS.find_card("sleeve_phanta_stormcaught") detects the Stormcaught sleeve correctly

#

unless i mistook something

red flower
#

does it

#

or is it always true

long sun
#

double checking

daring fern
long sun
#

(ah, true)

#

how can i detect the current sleeve, then? ^^;

daring fern
long sun
#

cheers ^^

stiff quiver
#

time to reroll a thousand times to see if the thing i did with showman works!!

maiden phoenix
#

Yoo I finally did it

azure valley
#

Somethingcom, you seem to be reasonably knowledgeable about balatro mod development. May I ask for a code review before I start making a hash of things? I'm about 90% of the way through creating a rather complicated joker, and it's my first attempt at a mod, though I am a fairly experienced programmer.

snow basin
#

anyone here now the difference between
1__profile.jkr.data
and
1__meta.jkr.data

azure valley
#

use \ in front of your _s

wintry solar
formal parrot
red flower
#

we found the issue

formal parrot
#

Oh

#

What was it ?

red flower
#

they were taking ownership of all jokers later in the code

stiff quiver
#

we figured it out

formal parrot
#

Sorry for bothering eremel

wintry solar
#

No worries

stiff quiver
#

well, not we, N figured it out lol

formal parrot
#

When will the smods font be documented?

red flower
#

@/aikoyori

formal parrot
#

And if there’s an example somewhere

red flower
#

i think breeze was working on it

formal parrot
#

Ohh

red flower
#

i use it in my mod if you want an example

formal parrot
#

Is it in dev branch !

#

?

formal parrot
stiff quiver
#

btw N what do i have to put in card_key? the key of the card i want to be affected by showman? ```lua
local smods_showman_ref = SMODS.showman
function SMODS.showman(card_key<-)
if next(SMODS.find_card('key of joker that acts as showman')) then
return true
end
return smods_showman_ref(card_key<-)
end

stiff quiver
#

so if i wanted joker to be affected i'd put "j_joker"?

red flower
#

then in the if condition you check if card_key == "key"

maiden phoenix
stiff quiver
#

oh that makes sense, thanks!

formal parrot
#

Can’t wait to see the mod

#

Do you have a thread ?

stiff quiver
#

for my mod?

formal parrot
#

Yeah

stiff quiver
#

we dont have a thread in this server no, we do in a different one

#

but the mod is in nexus mods if you want to try it out

#

its called neuratro

snow basin
#

anyone know what "STATE": 5 means in save.jkr?

primal robin
#

G.STATES value

maiden phoenix
#

yea dynamic multi_boxes doesn't seem possible if the description isn't a multi_box one in the first place

red flower
#

can you make all of them multiboxes

maiden phoenix
#

I tried to but I keep getting crashes on my attempts

#

Oh you meant manually? Yea I did that for my jokers

#

but it sucks if you want to make this work on vanilla jokers or sum

#

If it worked that would have made for a funny alternative FusionJoker API

snow basin
tawdry oriole
#

how do you make it so a custom rank doesn't appear in every vanilla deck by default?

#

you could take ownership of every deck and just remake them to not have the ranks but i'd think there would be something easier

red flower
#

it's in the docs

#

in the in_pool part

maiden phoenix
stiff quiver
#

how do i check how much a reroll has cost?

pure salmon
#

how do i make a consumable that directly adds to the blind score?

modern kindle
#

Good schmorning chat

maiden phoenix
pure salmon
#

do you have to update the ui manually?

manic rune
#

yes

manic rune
maiden phoenix
#

no

manic rune
#

you dont?

#

is it just for blinds chip

maiden phoenix
#

Nope, I use it myself, didn't need to

maiden phoenix
modern kindle
#

Bepis*

manic rune
#

what the hell is this inconsistency.

maiden phoenix
#

thunk moment

normal crest
#

hi bepas

manic rune
#

hi srockw

#

i added joker petting :3

normal crest
#

but can you add bepis petting

manic rune
#

possibly

#

im pretty proud of this :3

modern kindle
#

For every joker pet, gain x0.1 mult

manic rune
#

Joker must be petted every round, else X0.5 Mult

pure salmon
#

where is the current blind's requirement stored?

manic rune
#

G.GAME.blind.chips or smt

modern kindle
#

G.game.bli-

#

Yea

#

Mobile slowness :(

manic rune
#

im on phone too dilly

modern kindle
#

Nvm im ending myself

manic rune
#

😭

pure salmon
#

well that's not so bad

manic rune
#

stop

modern kindle
#

Lmfao

pure salmon
#

how do i fix that

#

is there a way i can force the game to check if the round should be over

red flower
#

try

G.STATE = G.STATES.HAND_PLAYED
G.STATE_COMPLETE = true
modern kindle
#

👋 N

stiff quiver
#

what's the name for the cost of a reroll?

red flower
#

hmm you might need to do that if the chips are greater and then add end_round()

stiff quiver
pure salmon
#

how do i change this add_card to exclude cards that are not perishable-compatible

red flower
#

you would need to pick the key yourself or make an objecttype

snow basin
#

Does anyone know what G.STATES.PLAY_TAROT does?(STATE 6)

chrome widget
#

I believe it's the state when for example you use The Wheel from your consumable slots

#

It flies to the middle of the screen, plays its animation, and then your controls are locked until it finishes

snow basin
#

Ok

azure valley
#

I think I finally have my first joker finished 🎉

lament agate
#

gratss

azure valley
golden flower
#

just notice your video it's a very nice idea 🙂

formal parrot
#

Great job

azure valley
#

Thanks, yeah it took a bit of doing to get it working

modern kindle
#

Very epical good job

formal parrot
modern kindle
modern kindle
#

What kind of lawyer

formal parrot
#

Hmmm

#

I really never thought about that

#

Maybe marriage related cases or drugs

#

Sounds fun

shell timber
modern kindle
#

Criminal always sounds interesting, my aunt considered it before she went civil and ended up saying she just didn't really like all the things she heard and saw people having done in trial
Which is fair

formal parrot
modern kindle
#

But doesn't everyone always have 3 sides if you think about it

#

Therefore everyone is innocent

formal parrot
#

Probably more than 3

modern kindle
#

Idk i tried counting once and stopped at 3

#

Can't figure out what's more than 3 though maybe thats why

shell timber
#

actually more like !?

formal parrot
shell timber
#

yeah okay i understood that

formal parrot
modern kindle
#

Mr triangle is it true you like the triangle or is it a facade

#

Well chat that settles it
Couldn't face the reality of such a query

hybrid shadow
#

how do i get localization text to be a certain hex color

maiden phoenix
#

Calc and ret shows chips and xmult

red flower
#

try {calc, ret}

maiden phoenix
#

I will in a bit, not on pc rn

proud depot
#

How would i get all jokers without an eternal seal?

red flower
#
local list = {}
for _, joker in ipairs(G.jokers.cards) do
  if not joker.ability.eternal then
    list[#list + 1] = joker
  end
end
modern kindle
#

You guys ever think about how cool and awesome N is

red flower
#

i dont i think the opposite in fact

modern kindle
wind steppe
#

ur awesome

chrome widget
#

Big fan

red flower
#

😭

modern kindle
chrome widget
#

Gjfjdh thank you,,,,

vale glen
#

N' cool, ye yeh

modern kindle
#

:)

vale glen
#

AxyraaN'das... A_ThinkTao

hardy viper
#

damn i cant really partakein this can i\

#

oh i definitely can

#

beautiful

drowsy heath
#

What is hapnin

hard mica
#

how can i check when im in the shop and when im in a round?

drowsy heath
#

N' appreciation ?