#💻・modding-dev

1 messages · Page 292 of 1

zealous glen
#

I think so

#

my mod

#

and others

glad osprey
#

how the FUCK do localization files work

zealous glen
glad osprey
#

i have no clue how they work

#

what am i supposed to do here

tepid crow
#

have you peeked the vanilla localization files?

glad osprey
#

...

#

1 second

#

ok so still confused but differently this time

#

how do they work for card sleeves

zealous glen
#

@tepid crow do you know anyone who knows cards sleeves

glad osprey
#

found the page in the wiki this is very silly

tepid crow
#

wait was this a cardsleeves question all along? 😭

vocal cedar
#

Anyone know whats causing this crash, i get it quite a lot...

frosty dock
#

yeah update smods

tepid crow
#

aure too fast for me

zealous glen
#

on mobile it doesn't show me

tepid crow
#

🙂‍↕️

zealous glen
#

idem

#

:0

vocal cedar
#

all isee is unsatble betas

tepid crow
#

they're all unstable betas

zealous glen
#

it's unstable betas all the way down

tepid crow
vocal cedar
#

great lol

#

thank you thou!

frosty dock
#

also uh i think I've fixed quantum enhancements now

#

I'm not fully confident there isn't some jank interaction I missed, but it seems to work fine

sullen fern
tepid crow
vocal cedar
zealous glen
frosty dock
#

yeah pretty much

tepid crow
zealous glen
#

But QE were introducing a lot of lag up to causing the game to run out of memory

red flower
#

ok having a function in a card's ability table causes the game to crash, noted

frosty dock
dapper sun
#

how do i get the score for the played hand?

zealous glen
frosty dock
#

I'm not saying it didn't crash

#

I'm saying it didn't cause a stack overflow

#

basically the quantum enhancement calculation calls set_ability for each extra enhancement, which calls into remove_from_deck, which adds an event calling G.GAME.blind:set_blind(nil, true, nil)

#

which recalculates debuffs on all cards

tepid crow
glad osprey
#

yes

frosty dock
#

which caused another round of quantum enhancement calculations on those playing cards

frosty dock
#

I'm doing good but I'm kinda busy atm

tepid crow
# glad osprey yes

good luck, let me know if you have any questions besides the wiki 🫡

glad osprey
#

how do i ban playing cards similar to the abandoned sleeve and checkered sleeve

tepid crow
#

check the code for those sleeves

glad osprey
#

i am and its all gibberish

tepid crow
#

abandoned sets a game modifier, checkered goes through the deck during apply and modifies it

glad osprey
#

i meant specifically for the combo

#

like checkered deck+sleeve

tepid crow
#

oohhh

daring fern
tepid crow
#

there's a new context on card creation (and modification) you need to handle

glad osprey
#

interesting

spark pumice
#

The Code for some reason Glitches with 4 fingers, like if I play 4 Heart cards and one spade (which doesn't score), the upgrade doesn't trigger and the heart cards aren't destroyed and I'm not sure why

#

I forgot to include the code for the destruction of the cards but I'm assuming it isn't necessary since it's just the activating of the upgrade that's not working

dapper sun
#

how do i get the score of the just-played hand?

placid star
#

does anyone know the context used for increasing hand size, like juggler does

glad osprey
#

ease_hand iirc

#

no

placid star
#

wouldnt that permanently add to it?

gleaming zealot
#

Minecraft: Lua Edition

glad osprey
#

G.hand:change_size(mod)

gleaming zealot
glad osprey
glad osprey
placid star
glad osprey
#

for a joker that would be in add_to_deck and remove_from_deck

#

assuming you'd want it to work like juggler

placid star
glad osprey
heavy hare
#

i'm trying to extend the UIBox class, but it's not appearing the same way as a UI box.
do you just have to make a class and init the base class?

Blind_Tracker = UIBox:extend()

function Blind_Tracker:init(args)
    UIBox.init(self,args)
end
glad osprey
placid star
#

OHHH

#

so, would it be G.hand:change_size(G.hand.config.card_limit)

glad osprey
#

yes

#

I don't know if it is config.card_limit tho

placid star
#

hm, i dont think it is cause that didnt work in game...

glad osprey
placid star
#

yeah

glad osprey
#

ok

#

in the console type
eval G.hand.config and send a screenshot

inland charm
#

Sorry for not responding, had a physics quiz lol. I didn't save the original code that I tried, but I was using context.playing_card_added. I think it was something like
for k, v in pairs(context.cards) do
cards:convert_suit('Hearts')
end
However, I'm pretty sure that context.cards doesn't refer to the actual card added in this context and I couldn't find anything that does.

gleaming zealot
glad osprey
#

I think

inland charm
#

Nah that looks like Balatro

glad osprey
#

ah my b

glad osprey
placid star
#

so it would be G.hand.config.card_limit?

glad osprey
#

yea

placid star
#

hm, thats what i had before

glad osprey
#

lemme see your code

placid star
glad osprey
#

oh

dapper sun
#

how do i look at g.game properly?

zealous glen
glad osprey
#

it's not context.add to deck those are their own functions lol

#

like calculate

placid star
#

ohh

#

so it would be more like

...
end```
glad osprey
#

yep

inland charm
# zealous glen Ah, that's because vanilla is inconsistent about it

Yeah that's why I made a lovely patch to just change the suit when the card is added. So far I just have it automatically turn all playing cards added to hearts. Don't know how I should set up the if...then since I'm very new to this and don't have a lot of experience with lua (made a very basic tboi mod once is about all I got).

daring fern
zealous glen
inland charm
#

What would you do instead?

zealous glen
#

Idk

#

Either do something slightly different

#

or try to find the latest cards added

#

or hook/patch add to deck

dapper sun
inland charm
#

I'll try messing with it a bit more

#

It would definitely be better / easier if I could get the joker to just do it

spark pumice
hexed stump
#

Is there an easy way to directly change how much money remaining hands give you, like the green deck does? I've hit a bit of a roadblock figuring it out

#

I know it's possible just to check the remaining hands but I'd prefer to do it the other way

placid star
#

@glad osprey okay so i want it to double whatever to hand size is at tany moment, not just double what the hand size was when it was aquired, so i put it in an update and presumably it crashed my game at e31 hand szie

glad osprey
#

ah

#

i do not know what to do then

placid star
#

i mean its not that important add_to_deck will more than work!

heavy hare
heavy hare
#

mk

graceful magnet
#

I can't find an example of in_pool in usage so I'm left to assume this is valid

#

cool, how would I go about calling a game over

#

for a remove_from_deck

silk scaffold
#

man learning how to make jokers is nottt easy!!

zealous glen
#

I recommend making a smaller mod first

silk scaffold
#

ive had coding experience elsewhere but ive not got experience with lua tho it feels a bit similar to python

zealous glen
#

ah you're also working with survival

silk scaffold
#

yah

#

yee

#

im rlly excited for u guys to see the effects we've written based on nevernameds' art

#

we also have nevernamed workin with us on that front :p

zealous glen
#

I got a bit envious ;P I want to see them for inspiration but I don't want to see them so I can't make similar things

#

I also had animated one of nevernamed's arts as a test

spring lantern
#

soo how do i make it so the mod desc background doesn't burn my eyes?

silk scaffold
spring lantern
silk scaffold
#

if youre interested i mean to join the process

spring lantern
#

how do i change it

zealous glen
spring lantern
#

what have i done

red flower
zealous glen
#

so I would undo whatever you did to make it white

red flower
silk scaffold
#

is there any way to make mod profiles 😭 i always turn off all my other mods while i run nevernamed to debug

zealous glen
red flower
spring lantern
#

that's without using loc yeah

zealous glen
spring lantern
red flower
red flower
zealous glen
spring lantern
zealous glen
#

I had asked if nevernamed wanted some Jokers coded in but they wanted them to stay together

dapper sun
#

how do i get the chips of the hand you just played after scoring?

silk scaffold
#

Ty dude, yeah, its a journey rn for myself -- and honestly me and survival came into it hoping to learn.
There's a few rules we have set for the mod which is 1) No asset / Joker other than Nevernamed's work, any other asset would have to be like minor effects and sounds and stuff, and then its to just respect the art that we've been given which is to mean proper credit is there for nevernamed

#

I think the idea is to genuinely make a giant expansion of balatro itself with all the jokers and ideas planned

#

Which yk.. takes a lot of work 😭 but im excited anyway

zealous glen
#

I think discussing Joker ideas might be interesting

#

As I said I liked the ones that (survival?) came up with

#

I think my favorite one was Atom

rich geyser
#

Hey, can someone help me real quick? I've been trying to create a custom deck for my Balatro mod, but it's just not working

Here's the code btw

    key = 'DeckPik1',
    path = 'Decks.png',
    px = 71, 
    py = 95
})

local function register_deck()
    local carludeck = {
        name = "Carlu Deck",
        slug = "carlu_deck",
        config = {
            extra = {
                starting_hand_size = 10,
                starting_money = 6,
                discards_per_round = 0,
                starting_jokers = {}
            }
        },
        unlocked = true,
        discovered = true,
        atlas = 'DeckPik1',
        pos = {x = 0, y = 0}
    }

    SMODS.Decks:add(carludeck)```
inland charm
#

How do you hook functions? I checked out the klei forum thing that's been posted a few times here but I'm still kind of confused tbh... I want to hook add_to_deck to make it so cards added are converted to hearts.

modern kindle
#

As far as I know smods.decks isn't the way to go anyway
Isn't it smods.Back?

rich geyser
#

then again, the tutorial is old

dapper sun
faint yacht
inland charm
#

context.cards is being wack tho

#

It's acting like a boolean in that context

#

the SMODS page for the context.playing_card_added does also mention how sometimes cards is true instead of giving the card.

#

At least from my understanding

#

Idk im not good at this lol

reef belfry
#

What does the thing in the middle look pike

glad osprey
#

orange

silk scaffold
#

orange

reef belfry
#

Awesome

silk scaffold
#

makes me crave an orange rn tbh

graceful magnet
rich geyser
#

It's me again guys, the deck now appears, but it still isn't working with the properties I set, any clues as to why?

SMODS.Atlas({
    key = 'DeckPik1',
    path = 'Decks.png',
    px = 71,
    py = 95
})

-- Create and register the deck
local carludeck = SMODS.Back({
    key = "pik_carlu",
    loc_txt = {
        name = "Carlu Deck",
        text = {
            "Start with {C:attention}10 cards{} in hand",
            "Start with {C:money}$6{}",
            "{C:red}No discards{} per round"
        }
    },
    config = {
        extra = {
            starting_hand_size = 10,
            starting_money = 6,
            discards_per_round = 0
        }
    },
    discovered = true,
    unlocked = true,
    atlas = 'DeckPik1',
    pos = {x = 0, y = 0}
})

carludeck:register()

print("[PIKAJOKERS] Deck successfully registered!")```
thick panther
#

How would I get the number of cards in the deck? Would I get the length of the number of items in G.hand.cards?

keen tiger
#

how do you view messages sent via sendTraceMessage?

high sinew
#

Quick question for modding is there an easy way to set up the base game If i wanted to make a mod?

thick panther
crisp coral
spark pumice
#

How do you get a joker to do something when sold? I tried looking at the invisible Joker code and I don't understand in the slightest...

crisp coral
#

context.selling_self in calculate function

spark pumice
#

Oh I see ty!

inland charm
#

How do I make my joker show up in shops, booster packs, etc.?

#

Do I need to specify pools it's in or is it automatically added to them?

tepid crow
#

If you're not using a custom rarity, all of that will be handled for you

#

You can also add a "spawn condition" if you want (like how glass joker only shows up when you have at least 1 glass card)

#

But that part is optional

inland charm
#

So if I just put it in as rarity = 2 then it'll spawn in shops at the same rate as uncommons

#

?

tepid crow
#

Yeah

lucid owl
#

anyone have examples of code for a custom booster pack?

sullen fern
#

i think it’s about time i start implimenting stuff like editions and enhancments

spark pumice
#

It isn't doing what I thought it would- First part works but whenever I sell the joker it always just says Invalid Joker no matter where I put it

sullen fern
rapid stag
stark geode
#

time to actally get some modding done

narrow iron
#

consumables can have a ‘calculate’ function right?

stark geode
#

what the hell am i doing wrong

narrow iron
#

The X in Xmult isnt capital in your loc_vars function

rapid stag
#

is there a way, in a joker's calculate(), to see when another joker is triggered?
i have a joker that i want to make another joker do a thing immediately after the other joker being triggered

red flower
rapid stag
# red flower context.post_trigger

cirThink i see. i thought post_trigger was for that specific joker that calculate() is for
but you mean to tell me that context.post_trigger is called on other jokers when a joker is triggered?

red flower
#

yes

#

i think it's an optional feature you have to enable tho

red flower
rapid stag
red flower
#

hmm not sure

#

you can always change the message_card tho

rapid stag
#

i mean i guess i can also just do SMODS.calculate_effect() too

spark pumice
#

I tried it and now it's making non-existent jokers??

sturdy compass
#

Just made this guy. Thoughts?

glad osprey
#

why does this freeze when i start a run

red flower
tepid crow
glad osprey
#

ah

#

how do i not do that then

tepid crow
#

only modify the card when needed

#

instead of always modifying the card

glad osprey
#

didnt work what

tepid crow
#

how'd you get that 7?

glad osprey
#

stremgtj

tepid crow
#

🤔

#

how are you doing the check?

rapid stag
#

question, do i HAVE to call SMODS.Sound:register_global() when i have sound assets or are they loaded without my having to do so

glad osprey
tepid crow
# glad osprey

that's a weird way to write that in lua, does that work?

glad osprey
#

no

pulsar flower
tepid crow
sturdy compass
glad osprey
#

it was not equal prior

tepid crow
stiff locust
#

assert(smods.change_base crashed when i tried to do it

narrow iron
#

how can i edit the buttons that appear on cards, like the use and sell buttons?

stiff locust
#

and it worked without the assert

stiff locust
narrow iron
#

thats fine with me

tepid crow
stiff locust
#

look at uhhhhh

#

fusion jokers and joker evolution, they add buttons

glad osprey
stiff locust
#

if you wanna remove buttons, SDM0's stuff bakery cards remove the use button

lucid owl
tepid crow
lucid owl
#

as in, let the player use a card that can be used on the hand or something similar

lucid owl
# red flower i don't follow

for all packs, when selecting a card you can press "select" to add it to your consumables, or you can press "use" to use it on the cards present, but my booster doesn't show the "use" button on cards

red flower
#

oh you would probably need a patch to have both i think

#

or a hook

lucid owl
#

well that's annoying lol

#

or wait, i just mean having the use button

red flower
#

oh im pretty sure thats a setting in the booster but i dont remember what rn

manic rune
lucid owl
#

can you use hex colors for ease_background_colour?

manic rune
#

its possible, yeah

lucid owl
#

perfect, thanks

stark geode
#

hey how do i check if a card is being retiggerd

manic rune
modern kindle
manic rune
#

i want to punch someone rn

rapid stag
#

anyone know the args for start_dissolve()?

manic rune
#

this is killing me

#

💔

#

actually dunno what sd is :3

tepid crow
#

literally the line above it

manic rune
#

oh wait

#

🔫

#

why did i think it was a function already, didnt think it was a hook 😭

tepid crow
#

though I don't like how math names stuff like that

#

it doesn't tell me the name of the function if I didnt already know it

manic rune
sturdy compass
manic rune
#

maximus i think april fools might have already been over

tepid crow
sturdy compass
#

Totally unrelated but how to I change the atlas pos of a card (cuz this doesn't work)

tepid crow
glad osprey
#

no lmao

#

I'm giving up on that for today

lucid owl
#

anyone know how to get the use button on consumables in a booster pack?

tepid crow
old bane
#

(prolly could look at cryptids double sided)

narrow iron
#

im looking at another mod to try and learn how to do something and im curious whether this is something the mod adds or if this is in the base code? card.config.ref_table

sturdy compass
blazing cairn
#

what is the size of consumables

graceful magnet
#

trying to make a Joker that absorbs the accumulated values of other jokers, but it returned an error that I thought I'd accounted for

stark geode
#

i just learned the importance of playtesting lol

#

my pna joker was so buggy

#

looks like i fixed it tho

old bane
#

same for all the other ones too

graceful magnet
#

OH

#

I missed those

old bane
#

also for right_joker specifically you have them be left_joker in the adding part

graceful magnet
#

oops pff

old bane
#

when it's supposed to be card.ability.extra.Xmult = card.ability.extra.Xmult + right_joker.ability.extra.Xmult

old bane
#

i may not know how to do much but i know of examples that show how to do it lol

old bane
#

-# why is there an extra card area

stark geode
#

i can acually read the sorce code

#

am i cooked

old bane
#

nerd

blazing cairn
sturdy compass
old bane
# blazing cairn bump

wdym, like the sprite size, the size of the array that holds consumables, how to get the limit of consumables you can have, or something else?

old bane
old bane
blazing cairn
#

ok thx

sturdy compass
old bane
# blazing cairn ok thx

for tarot cards there's 4 pixels on each side that are empty and one pixel on both the top and bottom that are empty

sturdy compass
#

This is not mine, it's the Balatro Modding wiki lmao

graceful magnet
old bane
#

oh lmao

rapid stag
old bane
#

essentially yes

rapid stag
#

how can i control the pitch of a sound played via calculate() return table/SMODS.calculate_effects()?

old bane
#

but i would still keep the extra space to keep it in line with the style of balatro

blazing cairn
#

got it thx

old bane
old bane
#

wonder if i'd be able to make my own page on the wiki

tepid crow
narrow iron
#

ive made a custom CardArea, but when i try to add a card to it the number of cards increases but the card never visually shows up, how can i make a card actually appear in the area?

last sentinel
narrow iron
sullen fern
#

i need to finish the occlupanid card sprites and then i can get to work on making custom editions and enhancments

last sentinel
# sturdy compass HUGE

had a random challenge that i made months ago buried in my mod that was overwriting back_trigger_effect😭

sturdy compass
#

oh my goodness Sob_praying

silk scaffold
#

wondering what im doing wrong but honestly i think im not understanding where to find things in the documentation

#

would u guys mind if i shared my crash log here and maybe someone could give me an idea of what im doing particularly wrong 😭

sturdy compass
#

That's plenty fine

tender meteor
#

anyone have advice on where to start with modding?

tender meteor
#

thank you

last sentinel
#

is there a way to have a deck change the starting ante? other than just starting with hieroglyph

daring fern
rapid stag
#

i'm making something that's sort of like hiker, but mult - and it basically gives permanent +1 mult per card enhancement, edition and seal (so if all 3, +3)

but is adding permanent mult to a card even possible cirLost

daring fern
rapid stag
#

or i could notice this page in the wiki cirDerp thanks

narrow iron
#

how can i give a custom card type a default CardArea?

normal crest
#

you can add any card to any card area

narrow iron
#

i was thinking abt that wrong, your right

#

thanks

barren roost
#

what is the best way to add a new challenge? i tried adding it to the challenges file in the Balatro folder but that didn't seem to work

rapid stag
#

remind me how to check if a card has an edition or enhancement? ...although i think seal is stored differently, too. isn't it card.seal?

daring fern
daring fern
#

Rehash.

rapid stag
#

...how can i write a hash # in a joker description? cirLost i tried escaping it, but it causes a crash

graceful magnet
#

for some reason this isn't getting any XMult from vanilla XMult scaling Jokers despite Xmult being the variable used by vanilla Jokers. It works with my modded Jokers though.

rapid stag
#

...please don't tell me i have to use a main_end for it girldmDead

rapid stag
#

...i guess that's one way of doing it

paper zealot
#

🤔 Use the # to print the #

graceful magnet
#

oh okay it's much worse, I broke the whole thing

daring fern
graceful magnet
#

it picks up XMult from Cavendish

daring fern
#

Cavendish uses card.ability.extra.Xmult

graceful magnet
#

ahh

tepid crow
daring fern
graceful magnet
#

Alright yep got it working sweet

rapid stag
# daring fern `card.seal` is for seals `card.edition` is for editions and you can use `SMODS.h...

girldmDead
except now i've run into the problem of has_enhancement() only checks for the specific key you pass into the second arg, if you pass nothing, instead of returning true for any enhancement, it seems to just alwys return false? which gives false negatives when a card has an enhancement

and get_enhancements() returns a table with keys, so # would be useless

is there really no simply way of querying whether or not a card just has any enhancement

tepid crow
#

next(get_enhancements(...))?

rapid stag
#

...huh? cirDerp

tall wharf
#

free nitro

tepid crow
#

if get_enhancements returns a table with keys, next grabs the "first" value (according to pairs)

rapid stag
#

ohhhh. so i can do if next(get_enhancements(...)) then and it would enter the condition if there is any enhancement

tepid crow
#

all you need to do at that point is make sure it isn't nil, which I believe is implicitly done by an if-block in lua

tepid crow
#

please double check

rapid stag
tepid crow
#

😄

manic rune
#

god

#

i never thought drawing a fan would be hard

#

;sob

iron iron
#

how do yall make sure the line breaks in text are consistent, do you like count the characters or smth

tall wharf
manic rune
#

i dont know

tall wharf
#

you never realise how difficult something is until you try to do it

manic rune
#

true

#

i thought m7's bow was harder than the fan

#

-# it wasnt

#

like, not even close 🥀

tall wharf
#

does anything think adding solitaire into balatro was easy

manic rune
#

i

#

dont think anyone thinks so aiko

sturdy compass
#

no.

runic pecan
#

If it's not here, then where???

tall wharf
#

i just want to push the Balatro's engine's limit

tall wharf
manic rune
#

i want to kms

#

this is so ass

#

💔

runic pecan
tall wharf
#

no as in you check with the debug console

runic pecan
tall wharf
#

This sprite is ass. Session terminated.

tall wharf
runic pecan
tall wharf
#

😭

#

idk much about smod pool

runic pecan
#

Like, this pools feature is very recent.
I'm sure I've seen versions of smods wiki prior to containing that one.

tall wharf
#

how do i render different font in text lol

manic rune
#

idk wtf i did :3

tall wharf
#

this shit ain't a fan it's a mt fuji with that curvature 😭😭😭

manic rune
#

idk 😭

#

i cant do shit with 71x95

tall wharf
#

sounds like a lot of pixel but it isn't

manic rune
#

exactly

#

i have like

#

5 days experience of pixel art

#

❤️

tall wharf
#

tingyun is gone 💔

#

image is not mine i don't have tingyun

manic rune
#

-# tf u mean u dont have tingyun

tall wharf
#

-# i don't remember rolling for her

manic rune
gleaming zealot
manic rune
tall wharf
gleaming zealot
#

aiko do u want my account

#

i dont play anymore

tall wharf
#

i have my own it's ok

gleaming zealot
tall wharf
#

besides i can probably just ask a friend to borrow their account

manic rune
#

i

#

have no clue

#

what to do with the background

#

💔

tall wharf
#

i still have their account on my hoyolab app

gleaming zealot
manic rune
#

i already have an account lol

tall wharf
#

idk what they were cooking tbh

manic rune
#

-# what the fuck is that

#

😭 thats crazy

#

your friend doesnt roll ANY signature light cone???

tall wharf
#

i stole someone's account

gleaming zealot
#

hmmm

#

i forgor my uid but the name is HelenaKirara

#

i also forgor hoyolab login so

#

cant see my uid

tall wharf
#

i still have no clue

reef belfry
#

i quit hsr in like 1.2 when they gave me bailu 3 times in a row as my 50/50 loss

gleaming zealot
tall wharf
#

C30 Qiqi or something at this point

#

i forgot the genshin terms

#

it is c ok

manic rune
#

19 more to go

minor furnace
#

who up starring they rail

tall wharf
reef belfry
#

i think thats 15 too many

zealous glen
zealous glen
#

Who’s the character

reef belfry
#

schneider from reverse1999

zealous glen
#

It makes me think of Ruby from Rwby if she were an orb

zealous glen
#

?

reef belfry
#

yeah

zealous glen
#

It seemed interesting but I never played it

runic pecan
primal shoal
#

has anyone done a custom page rank playing card before ?

primal shoal
# tall wharf what

in a arcane tarrot deck there is a "page" rank
so its "page -> knight -> queen -> king"

tall wharf
#

i remember there is

#

how do I give my mod more character

zealous glen
zealous glen
#

Or something that makes it unique

runic pecan
# zealous glen Search for movie genres

I saw that, and the method it uses isn't going to be more helpful for my case than just manually build up a table for all the pools I'll need.
And it didn't use the pools parameter in question.

tall wharf
#

my mod has no theme

runic pecan
tall wharf
#

😭😭😭😭

runic pecan
tall wharf
runic pecan
#

Aaaand my question on this pools parameter is still not answered.

reef belfry
sturdy compass
zealous glen
zealous glen
#

Feat. Minecraft

#

versus Math: The Movie: The Game

zealous glen
zealous glen
zealous glen
unborn bay
#

chat i am terrible at art

zealous glen
unborn bay
#

i need to be more original dude the leftmost joker of this list is literally just burnt joker 2

olive saddle
celest aspen
#

Anyone know what I could be doing wrong with my use of SMODS.Sound ? I keep getting a thread error when its about to play the sound. Code: (Just the important bits)
//initialization
SMODS.Sound( key='metalpipe', path= 'metalpipe.ogg')
//my attempt to play the sound
play_sound('PIPE_metalpipe') (my prefix is PIPE)

File is in mod\assets\sounds\metalpipe.ogg

reef belfry
#

dont you need the prefix on the key and file name too

#

well thats what i did atleast

#

anyways how does one make a consumable destroy itself

#

specifically after a round

#

nvm found it

unborn bay
celest aspen
reef belfry
#

ive got it setup like this

tall wharf
reef belfry
#

well it still works so im not gonna touch it since id probably break something

tall wharf
#

i could be wrong tho

#

that's it I'm going to touch grass

celest aspen
#

I figured it out. I had it in the wrong mod folder for some reason. Thats what I get for trying to work on this at 5am instead of sleeping

#

I clicked on the wrong "assets" file tab in windows explorer and didn't bother checking if it was the right one turbofacepalm

dapper sun
#

i'm trying to make a joker that does something when cards are destroyed, using context.remove_playing_cards. immolate isn't working correctly with it though.

#

bot

zealous glen
#

<@&1133519078540185692>

unkempt thicket
#

<@&1133519078540185692>

rose dragon
#

point and laugh at this user!

cobalt nexus
#

anyone know why my cryptid isnt working please help im asking in both channels becuase i really cant figure it out

cobalt nexus
#

Ok so i did some digging

#

i found that this was the line causing the error

#

so i commented out that function

#

not sure if that will ause problems down the line bt right now it works

#

ok it caused a problem as soon as i started the first blind

#

ok I dont understand it. I changed "flags" to "flaags" and now it partially wokrks but stil crashes but at a different point. Confused

#

ok i had another crash in utilis.lua, so i also commented that out now it works

#

ill update withscreenshots of what i did in a minute, and ill let you know if it crashes again

last sentinel
#

please only use this chat for modding development questions

cobalt nexus
#

sorry man im so tired i thought i was in the modding chat lol

last sentinel
#

then why did you tell the modding chat to look at what you were sending here

cobalt nexus
#

becuase i sent it here and then i blanked cause i saw my prevois messages here and just kept on writing without thinking mb

last sentinel
#

aight my b

tall wharf
#

@manic rune what's new since penacony

cobalt nexus
tall wharf
manic rune
#

and of course

#

hp inflation

#

jingliu is dogshit now ❤️

cobalt nexus
tall wharf
#

wtf happened to meta

tall wharf
manic rune
#

its quite literally mandatory to roll every single new char

#

else you will fall behind

tall wharf
#

😭

#

p2w

hushed field
#

gacha be gachaing

cobalt nexus
manic rune
#

ran out of art juice

tall wharf
#

i said download cryptid from the code button

hushed field
#

SMODS fixes the vanilla bugs with spectrals not triggering destroy effects, right?

cobalt nexus
cobalt nexus
tall wharf
unborn bay
#

update cryptid and update smods as well

manic rune
tall wharf
reef belfry
#

Ive spent more time reading the smods docs than my actual school books

unborn bay
tall wharf
#

you are

unborn bay
#

current dev build uses latest smods

tall wharf
#

haya you are so pro

runic pecan
#

Is it an absolute necessary to load SMODS.Atlas code before any other object that uses said atlas?

#

nvm, not relative anymore.

next timber
#

how can i make a joker only appear if you have a specific suit in your deck?

zealous glen
#

in_pool

runic pecan
last sentinel
#

does context.consumeable.ability.set no longer work for telling what kind of consumable is being used?

last sentinel
#

hmmm

#

oh wtf i changed nothing and now it works

#

love when that happens

manic rune
#

hmm

#

weird

#

this is inside a blind's calc

#

and i think it will duplicate cards instead of destroying them if the blind is defeated for some reason

#

.

#

wait nvm

#

realized its remove, not destroy

#

ghh

#

nop, it still duplicates

#

thats odd

reef belfry
#

for some reason thats oddly comical

manic rune
#

odd

icy moat
#

why does destroying card have to be so difficult

reef belfry
#

the person who guesses what this joker does gets to choose the obscure reference i have to turn into a joker next

hushed field
tall apex
#

AW ORANGE SLICES

#

I could mess up an orange rn

manic rune
tall wharf
#

don't mind me

tall wharf
#

that's what I'm seeing

#

i don't know if i can get closer than this

tall apex
#

woagh

#

Complicated

tall wharf
strong jacinth
#

How do i create something similar to Ortalabs index card?

reef belfry
#

No

#

Unless you hit it spot on

daring fern
strong jacinth
daring fern
strong jacinth
#

Yes. you can change suit with the same ui

spring lantern
#

y'all know what the pool flag for lucky cards is? i have a joker that interacts with them so i want it to appear when you do have at least one like lucky cat

daring fern
strong jacinth
runic pecan
#

When for _,J in ipairs(G.jokers.cards or {}) do, is it J.center.config.key or just J.key?

reef belfry
#

whats the correct string of code for this...

daring fern
strong jacinth
tall wharf
#

how do i move child with parent

icy moat
#

But using dissolve with custom color

hushed field
paper zealot
icy moat
#

Yeah I tried that! But you cant change the destroying effect

hushed field
#

ah, the custom colour I don't know how to set up, I've never considered doing that. I think the easiest solution is to patch the context so that you can pass along a dissolve color

icy moat
#

Destroying directly with :start_dissolve creates ghost card so I cant use that either

#

Unless i can emulate the vanilla balatro destroying card effect

hushed field
#

patching the context would be the better solution, I reckon

icy moat
#

Oh thank you so much for that info! Imma try that first before patching

hushed field
#

i'm kinda surprised there isn't actually a default way to pass along a dissolve colour in smods at this point, haha

icy moat
#

I tend to avoid patching because i dont know if i should patch the vanilla function or smods function

reef belfry
#

maybe im just dyslexic cuz damn

icy moat
stark geode
#

so it wont create any more banans at this point

lament agate
#

what happened here

stark geode
zealous glen
#

I had an idea for a mechanic but I’m not sure how I’d integrate it 🤔

red flower
stark geode
hushed field
zealous glen
#

Mainly Grim, Familiar, and Incantation

#

So it destroys the card and adds more cards into your deck

red flower
stark geode
spring lantern
#

at least thats how i do it

zealous glen
manic rune
#

good morning everyone

stark geode
hushed field
zealous glen
#

But since Jokers are created in Events, the buffer represents the difference between calculation time and animation time

#

It’s the same thing with the dollar buffer

red flower
#

makes sense

zealous glen
#

Or the Consumeable buffer

stark geode
#

tbh i dont really understand what the buffer does

zealous glen
stark geode
#

like the diffrence in jokers

zealous glen
#

The difference of the quantity being buffered

#

Here it’s the number of Jokers

hushed field
# zealous glen Game design-wise

It sounds like a mechanic you kinda want to be a whole broader archetype, or the legendary equivalent to something like a Seal, I'd say

limber blaze
stark geode
zealous glen
zealous glen
zealous glen
limber blaze
#

i think therell be a way to automatically do a consumables use effect but idk if you can find a list of consumables that will work without just hardcoding it

zealous glen
#

I can make Consumeables automatically use an effect

#

The issue is handling the requirements

#

The Star wouldn’t do anything without selected cards

tall wharf
#

TIL Jack Black has ADHD

zealous glen
limber blaze
zealous glen
zealous glen
limber blaze
#

if you only have a few effects tooo theres less choices to make around which consumables you want to have on your cards

stark geode
#

i removed all the buffer stuff and it works

zealous glen
paper zealot
# tall wharf is this correct 😭

That might not do it. Try using set_alignment or set_role, something like

akyrs_drag_storage:set_alignment({
    major = self,
    bond = "Strong"
})
modern kindle
#

Good schmorning chat

zealous glen
#

Hello dilly

#

How are you

modern kindle
#

Hi vic

#

I'm okay, just opened my eyes to this world in the realm of awake

#

How are you

zealous glen
paper zealot
stark geode
red flower
#

i think it's because you were increasing the buffer before checking space, that's why i was confused

hushed field
zealous glen
#

The main idea is that you know what you’ll get

stark geode
#

regardless of how many there were

#

once it hit 3 it stopped

zealous glen
reef belfry
#

does this sound way too risky

zealous glen
#

Yes

reef belfry
#

what should i change it to

zealous glen
#

I would change it so you can affect the probability in some manner

reef belfry
#

whar

zealous glen
#

:?

zealous glen
#

I think having some options like from a Booster Pack would be interesting, but I don’t want to make a literal Booster Pack, I think

brazen tusk
zealous glen
brazen tusk
#

its already a risking destroying the joker

zealous glen
#

But I’d remove destroying the Joker

reef belfry
#

its supposed to be like that

zealous glen
#

Or again make it able to be removed

brazen tusk
#

is it supposed to act as a debuff idk how you get it

zealous glen
reef belfry
#

after defeating the boss blind the associated joker gives 2 pieces of oranges

zealous glen
#

People are giving their opinions

reef belfry
#

i mean

#

i meant like as the buff

brazen tusk
reef belfry
#

one of its purposes is just consumable slots clog

#

im writing it right now

zealous glen
#

The sell effect is part of the buff in the risk because you can’t opt to get rid of it without being punished

hushed field
reef belfry
#

should i just make it Small blind instead of BIg blind

zealous glen
zealous glen
hushed field
zealous glen
hushed field
zealous glen
# brazen tusk ^

It’s slightly less risky but it doesn’t address the issue still

zealous glen
#

Like maybe the Joker creates the Tag sometimes, and the Tag opens a Booster pack state, and there you can teach the effect to a card?

unborn bay
# reef belfry does this sound way too risky

i feel like the chance of losing money is a bit too much considering i sell stuff to get money blueprint seems a bit counterintuitive to lose more money just because you don't want them to take up consumable slots

rain slate
#

but like what's wrong with this 😭 ```lua
for i = 1, #G.jokers.cards do
local joker = G.jokers.cards[i]
G.E_MANAGER:add_event(Event {
trigger = 'after',
delay = 0.15,
func = function()
local _pool, _pool_key = get_current_pool('Joker', joker.config.center.rarity, nil, '_ritual'..i)
local center = pseudorandom_element(_pool, pseudoseed(_pool_key))
local it = 1

                while center == 'UNAVAILABLE' do
                    it = it + 1
                    center = pseudorandom_element(_pool, pseudoseed(_pool_key .. '_resample' .. it))
                end

                joker:set_ability(G.P_CENTERS[center])

                return true
            end
        })
    end
#

it's supposed to turn each joker into a random joker of the same rarity but it keeps giving like rares

#

even though I give it joker.config.center.rarity

rain slate
rain slate
tall wharf
#

i thought i attached screenshot

rain slate
#

OH MY GOD

#

it's because

#

get_current_pool does like weights and shit

#

(type(_rarity) == "number" and ((_rarity > 0.95 and 3) or (_rarity > 0.7 and 2) or 1))

reef belfry
rain slate
#

so inputting config.center.rarity will just like always give rare

reef belfry
#

Lose money = consumable slot or keep the money and lose some deck fixing

#

or leveling

#

or actually just consumabless

#

plus its tied to a joker

daring fern
#

How could one put a custom info_queue on a card if it has more than 2 seals?

paper zealot
# tall wharf

You're hooking Card.drag? Is this for your Solitaire mod, trying to drag a stack of cards together?

rain slate
#

and then localize it in descriptions = { Other = { something_something = blah blah

daring fern
rain slate
#

...yes?

#

you can put that on any joker or card or consumable

paper zealot
# tall wharf

I haven't tested it, but my instinct is that if you just set the parent and major of each card to the card that it's dropped onto, then the child cards should be carried along with their parents automatically

runic pecan
#

Chat, I need some reword advice.

daring fern
# rain slate ...yes?

I don't think you understand if a joker or card or consumable that my mod does not own, has more than 2 seals I want to display how many of each seal it has.

rain slate
limber blaze
rain slate
#

wait I know where the code that generates that stuff is lemme find it

limber blaze
#
version = "1.0.0"
dump_lua = true
priority = -1

[[patches]]
[patches.pattern]
target = "functions/common_events.lua"
pattern = 'for _, v in ipairs(info_queue) do'
position = "before"
payload = 'if (Entropy.FlipsideInversions[_c.key] or (_c.ability and Entropy.FlipsideInversions[_c.ability.name])) and HasFlipside() then info_queue[#info_queue+1] = {key = "inversion_allowed", set = "Other"} end'
match_indent = true

something like this

red flower
rain slate
#

I don't know if this is the best way but you can patch generate_card_ui in common_events.lua (lines 2747-3231), check if it has more than 2 seals and then add another thing to the info queue

reef belfry
daring fern
strong jacinth
#

How do i do a conditional hook?

daring fern
strong jacinth
#

Hook*

#

How would i check if a card has an edition, then hook is_suit

stiff locust
#

just do the edition check inside the hook

#

and only run the code if the check passes

reef belfry
#

what should i do next

stiff locust
hybrid iris
#

dart monkey

stiff locust
#

the zero zero zero dart monkey
real ones miss this

crisp coral
#

weiward romance is better

hushed field
#

Content sets are working. Gonna set them up through a config for now. I should see if I can come up with an easy way to just allow all content from a certain mod through 🤔

stiff locust
#

oh uh

#

is there any way to

#

retrigger consumables

#

like you can retrigger jokers

strong jacinth
rain slate
#

why is one of my jokers not in its rarity pool

zealous glen
rain slate
#

that's why it keeps giving me jimbo

hushed field
rain slate
#

because that rarity only has 2 jokers and one of them is just. not in the pool

stiff locust
rain slate
#

nvm I know why

stiff locust
#

say i wanted to hook uhhh

rain slate
#

so that's just gonna be annoying until I add more jokers

zealous glen
stiff locust
#

G.FUNCS.can_play

#

that'll work

#

i'd go like
local tsun_canplay = G.FUNCS.can_play

crisp coral
stiff locust
#

i added my mod prefix because i don't know i don't want it to break anything

zealous glen
stiff locust
#

now you redefine the original function

#

with its original arguments

crisp coral
stiff locust
#

in this case G.FUNCS.can_play = function(e)
now you write the code that you want to run inside that function

stiff locust
#

i'm going off an example that someone donated to me so i'm not 100% on all of this

#

but this method has worked for me pretty much every time

odd palm
#

hello ive decided to mess around and wanted to make jokers, where is a good start to make one

stiff locust
#

there's a video guide somewhere

#

and the steamodded example mods

odd palm
stiff locust
#

you can read the documentation but

#

no one likes reading

#

so

odd palm
#

i most likely just need documentation

#

i read

stiff locust
#

holy shit

#

the 2%

#

who can.. read

odd palm
#

my only issue is how im going to add the joker textures itself

runic pecan
ivory coral
#

hi chat
ive this code thats meant to change a joker into another joker
toConvert[i]:set_ability(G.P_CENTERS[j_joker]), where toConvert[i] is a joker and j_joker is a placeholder for now, but it's giving me the crash
card.lua:255: attempt to index local 'center' (a nil value)
for some reason, any idea what's causing it?

hushed field
#

set_ability("j_joker") should work

ivory coral
#

aaah that does indeed
i tried that earlier but the key i fed it must not have been a string
thanks lad

stiff locust
wintry solar
#

the center is fine to use

stiff locust
#

i'd recommend using the vanilla joker sheet as a base and applying your sprites on top of it so you guarantee the spacing is correct

#

and then you need to define an atlas

#

that's the easy part

hushed field
#

Oof, figuring out how to do UI for this cardset mod is going to be real tricky. I think the best approach will be to add a button on the deck select and pick the sets from there, somehow

zealous glen
hushed field
zealous glen
tall wharf
#

@paper zealot how would i unbind the major do i just set it to nil

zealous glen
zealous glen
paper zealot
tall wharf
#

ah

ivory coral
paper zealot
zealous glen
stiff locust
# odd palm my only issue is how im going to add the joker textures itself
SMODS.Atlas {
    key = "ModJokers",
    path = "filename.png",
    px = 71,
    py = 95,
}

example atlas i just grabbed, place this near the top of your mod code

the path is the name of the file containing your jokers, which should be under your mod's folder/assets/1x/filename.png in this case
the atlas key is what you write in a joker under the atlas argument telling the game which sheet to use, in this case atlas = "ModJokers"
the px and py are the width and height of each sprite for tiling
on the joker you also have the pos value, which is written as pos = {x = 0, y = 0}
x = 0 and y = 0 is the top left corner of your sprite, add 1 to the x to go right by one, add 1 to the y to go down by one

you should also upscale your sprites by 2x and place them in /assets/2x/filename.png, these double sized sprites are used when the pixel art smoothing setting is enabled

oh yeah and if you wanna do the legendary floating head thing, define a soul_pos like the pos value and place the second layer as a joker in your spritesheet

zealous glen
#

Me projecting the desire to play my mod into your mind:

ivory coral
zealous glen
#

Anyways, see my example above

zealous glen
#

That way I can turn any Consumeable into Earth

ivory coral
zealous glen
#

It’s in the wiki

hushed field
rain slate
hushed field
rain slate
#

lemme get the code

zealous glen
#

N’ showed me a video of it seeming to work

#

But reading the code I wasn’t sure if only setting the ability was enough

#

copy_card does more than that so I felt like there must’ve been a reason

reef belfry
#

I should probably make a non legendary joker

ivory coral
#

me when i realize ive just spent the last few hours coding something that already exists

hushed field
zealous glen
#

It copies the ability table too

rain slate
#
                    local rarity_key = get_rarity_key(joker)
                    local _pool, _pool_key = get_current_pool('Joker', rarity_key, nil, '_ritual'..i)
                    local center = pseudorandom_element(_pool, pseudoseed(_pool_key))
                    local it = 1

                    while center == 'UNAVAILABLE' do
                        it = it + 1
                        center = pseudorandom_element(_pool, pseudoseed(_pool_key .. '_resample' .. it))
                    end

                    joker:set_ability(G.P_CENTERS[center])
``` @ivory coral and for `get_rarity_key` it's ```lua
function get_rarity_key(joker)
    local _rarity = joker.config.center.rarity
    _rarity = (type(_rarity) == "number" and ({ "Common", "Uncommon", "Rare", "Legendary" })[_rarity]) or _rarity

    return _rarity
end
zealous glen
#

And I think it sets sprites too

zealous glen
#

Second step, search vanilla code that does something similar

#

The game already creates Jokers, so…

hushed field
# zealous glen It copies the ability table too

yeah, that's true. I think it'll potentially have issues with cards that do sprite manipulations, but even then, I haven't run into problems. Half joker and legendaries are also properly converted by just using set_ability

red flower
#

what about wee?

hushed field
rain slate
zealous glen
#

Was there Yu-Gi-Oh! for the Wii

red flower
#

my coworker calls the switch the wii and it drives me insane

#

"im playing mario for the wii"

#

which one

hushed field
#

my coworker calls us wii when he's discussing our activities

zealous glen
#

Did you see the new Mario Kart for the Wii?

red flower
#

im blind to anything above 60 dollars

hushed field
zealous glen
#

Mario Kart Arcana Force XXIII — The World

zealous glen
hushed field
#

90

#

80 for digitial

#

50 in the bundle

zealous glen
#

I have a Swiitch I haven’t touched in years 🤔

hushed field
#

I'm gonna set up a thread for this unfinished card set mod, because that way people can intercept me doing dumb fucking code before I try and make this a new api mod people should definitely make their mod compatible with

#

i have a switch controller and no switch 🥲

red flower
#

i have a ps5 controller and no ps5

hushed field
#

btw, N, I'd love if you could check the code and see if there's anything you'd do different, or that might cause issues. Because ideally, this mod would be a great JoyousSpring addition, haha

ivory coral
#

alright my own way does actually work now so i'll stick with it
in the future i'll be smarter about it

red flower
last sentinel
#

hmm anyone know why when using copy_card the copy has the wrong playing card Back

#

and how to avoid it lol

red flower
#

thats a vanilla bug, i think it sets a default back

last sentinel
#

ahhh gotcha

hushed field
#

#1358087455126847589 I'm not really here to work on it for the rest of the weekend, but this skeleton for it is working

#

I might still figure out today how to have it output a file with all keys properly formatted for a given mod, but who knows if I get that working, haha

tall wharf
#

help lmao

daring fern
manic rune
#

i have no clue how to make the text bigger

rain slate
manic rune
#

i needed to change max width too it seems

#

i tried tweaking that but i guess it already hit the max width cap

#

got it working tho

#

thats fun

manic rune
#

why is it not changing the text?

#

im sure the target is right, and it definitely detects card.ability.break_meter too, since i put a print in there to check

red flower
#

you should use ref_table and ref_value instead probably

manic rune
#

yeah im experimenting with that rn

#

no clue whats ref_value supposed to be aiming at though

#

like, i know its gonna be using ref_table, but where am i supposed to set break_meter on the card for ref_value to check

red flower
#

you can do ref_table = card.ability, ref_value = "break_meter_text" and just update the text alongside the value

manic rune
#

ohhhhh

#

got it, thanks :3

stark geode
#

how would one check what jokers the player has