#💻・modding-dev

1 messages · Page 239 of 1

frosty dock
#

wdym by starting at 1

rapid stag
frosty dock
#

soul_rate is meant to be used for rare cards like the soul that have a chance to replace any card of a given set in booster packs

north brook
#

I was looking to make some of the consumables from some mods rarer

cyan dune
#

Ah... is there another way to change the likelihood of seeing certain cards in a booster pack?

#

Oh, shoot. I just realized this probably only affects booster packs.

north brook
#

hmm

formal parrot
#

John aura

frosty dock
#

cards affected by soul_rate are "hidden" and can't be found outside of booster packs

#

if you want rarities, you'd have to add rarities to a consumable type

glacial bloom
#

Does someone have some simple code that I could look at for reference to help me when creating my own mod? I’m just now getting into coding

frosty dock
#

that includes assigning a rarity to every consumable of that type

frosty dock
north brook
north brook
rapid stag
#

sanity check: is discovered a valid boolean i can expect to find inside a joker's table?
like this isn't the exact structure, but something like card.discovered

formal parrot
stiff locust
#

the discovered boolean in a joker only defines if it is discovered by default or not

frosty dock
#

this is due to pools not being weighted

north brook
#

damn

frosty dock
glad osprey
#

ok aura smods

cyan dune
#

Agh, I'm real sorry this turned out to be a dead end...

plush cove
#

john skibidi

stiff locust
rapid stag
stiff locust
#

SDM0's stuff has a deck that makes his modded jokers appear more often

#

surely you can do the inverse?

paper zealot
#

Is it pronounced "S-mods", or "Smods"? 🤔

north brook
stiff locust
#

ssmods sounds like a food

#

like smores

plush cove
stiff locust
#

but stupid

glad osprey
plush cove
stiff locust
#

i'm movin the needle

formal parrot
frosty dock
#

another thing which is simpler than giving rarities to every card of a type would be to have separate consumable types, they would have controllable shop rates

#

however booster packs would have to explicitly combine them at some ratio

wary mica
#

someone kind enough to help me with installing a modk

#

wait wrong chat

#

lol

vocal cedar
#

@verbal wyvern the remakes continue

wintry solar
#

🥳 🥳 🥳

verbal wyvern
plush cove
next timber
#

how do i destroy a card from another card's seal?

wintry solar
#

we're getting closer

plush cove
#

rejected Joker for Ortalab: "Predictability" (Chaos Theory)

wintry solar
formal parrot
#

I love the red and gold

small moon
#

How is it done with Jokers? When a Joker destroys a card in the played hand what's the logic flow look like for that?

#

Is there an example somewhere?

wintry solar
crimson marlin
#

I know there is "press_play(self)" but what do i use for discards?

scarlet spire
#

looks really good

merry raven
glad osprey
#

how do i check if every card in the deck is identical

next timber
glad osprey
#

im trying to check each cards ability table with the first one but that isnt working

gentle rain
#

im barley into coding for this game (or at all) but can there be line breaks in the title of cards

#

asking for this

#

i can 100% shorten it to PetroDraconic Apocalypse but i want the bit in so bad

#

the reference

chrome widget
#

What's the most effective way to start to implement unlock conditions? You basically just define check_for_unlock() functions on the joker and return true if you want it to be unlocked? My only curiousity is when check_for_unlocked() is fired, because I see a bunch of instances where vanilla code manually sends an argument for the unlock from somewhere, but I'd rather it be relatively standalone

#

Also, does locked_loc_vars and the locked card description target a specific key different from the main one?

#

Oop, I see it. "unlock"

zealous glen
crimson marlin
#

I know there is "press_play(self)" but what do i use for discards?

chrome widget
#

Welp, it seemed to work!!

zealous glen
#

and I imagine the discard equivalent calls that function

tawdry coyote
#

Does anyone know the function for destroying a random joker card?

chrome widget
#

Is there any functional difference between G.P_CENTERS and SMODS.Centers?

normal crest
#

SMODS.Centers doesn't have vanilla centers

chrome widget
#

But does G.P_CENTERS have all modded centers?

unkempt thicket
#

Are there contexts for before held in hand cards trigger and after?

pearl jacinth
#

i'm using 3 celestial objects in my mod but i'm not sure if they've been used in another mod

#

they are heliosphere, hills cloud, and oort cloud

chrome widget
#

Do playing cards have these suit/rank strings as keys somewhere on their tables (this is from the Poker Hand example), or do I have to construct them manually from suit and rank?

#

Hmm... I'll probably have to construct it anyway to make sure I account for editions/enhancements/seals as well too

tawdry coyote
#

How to make a random Joker be discarded by a modded joker

minor furnace
#

So, the Negative edition doesn't simple invert the colors, does it?

hardy viper
#

resources/shaders/negative

#

idk how to read shaders

#

but it looks like it does a lil more

minor furnace
#

ah

#

man then I need to figure out how to apply that shader manually

#

I wanted to make an inverted version of Photograph that actually matched the Negative shader, but that seems beyond my current skillset, so I'll just stick with inverting the colors

green mica
#

Is there a way I could add chips or mult with a consumable or is that stupid?

#

Trying to think about how it would work

chrome widget
#

I did a negative swap for a joker to do this effect with it being a negative, because part of the effect involves swapping its edition to negative for a portion. The last one is what the negative sprite actually looks like

#

Like yeah the colors aren't exact, but white for example is basically a direct inverse, and the other colors get close, aside from the negative lamppost being more yellow than the original green, and the yellow staying bluish

unkempt thicket
#

Are there contexts for before held in hand cards trigger and after?

unkempt thicket
granite turret
green mica
#

I meant more like directly adding to the score but since you would be using the consumable outside of calculation that probably doesn't make sense

unkempt thicket
#

I think that's possible in some capacity.

finite zinc
#

is there a context for on hand level up? trying to see if i can mod something in that like doubles the effect of planet cards basically

gentle rain
granite turret
gentle rain
#

much to be considered,,,,, will be asking the boys in the lab about this

solar eagle
#

is there a way for a joker to check if it's in your joker build? and not in the collection tab/a joker pack etc

#

actually, wait i know how

#

add to deck/remove from deck

#

manually flag it

plush cove
#

(possibly not 100% accurate, but you get the picture)

solar eagle
#

is it possible to check if other mods are installed?

#

looked but didnt see anything in docs

unkempt thicket
#

Yes, example:if (SMODS.Mods["CardSleeves"] or {}).can_load then

maiden river
earnest stratus
#

Hey all, looking for some guidance. I'm trying to add new decks with my mod and have some things I need to test out. I was finally able to get the game to recognize that my mod is active but the decks aren't showing up. I have them in a file deck.lua, what do I need to put in my main.lua to register them in the game? Thanks in advance

topaz monolith
earnest stratus
#

Thanks, I'm still not seeing my decks added to the collection so I assume there must be something wrong with deck.lua

#

?

topaz monolith
#

Is your deck.lua code correct? Usually, if something is wrong with a line from that file, it usually just stop loading that file altogether, making the rest of the file not load.

#

A screenshot of the code can also allow us to help out as well

solar eagle
#

target = '=[SMODS _ "src/utils.lua"]'
this is the proper lovely syntax to inject into another mod correct?

fickle stag
#

omg hi

solar eagle
fickle stag
#

:D

placid frigate
#

how do I publish my mod in the server

#

I have it on github

fickle stag
#

how do I debug crashes

#

the mod i'm trying just crashes with _f

unkempt thicket
#

Are there contexts for before held in hand cards trigger and after(at the end of rounc)?

solar eagle
#

the first one is context.before and context.cardarea == G.jokers, i Think. this will take place before any scoring at all

tall wharf
#

how would i go rendering shaders on the UI

#

for example i want to have fire on my hardcore challenge UI

topaz monolith
#

Anyone have a fully in depth, step by step, way to create a booster pack and add my custom jokers into the pack? Looked through the wiki and kinda got fully stumped, especially when looking at other mods that add packs for example and most are doing consumables only

unkempt thicket
#

How can i make this trigger the end of round enhancements as well? I know how to but i need a context to set the vaules back as well.

reef belfry
#

just started modding today.... is this even possible to do.

tall wharf
#

yes

tall wharf
#

Genshin Impact???

vast fractal
#

how to make the tooltip properly?

tall wharf
vast fractal
tall wharf
#

that's not how you do it

#

you're supposed to put this in localization file

vast fractal
#

😭

#

it works now

tall wharf
#

i changed it

sturdy compass
#

Can’t have shit in detroit

tall wharf
rose dragon
#

what is half-life?

#

are all jonklers perishable and expire in half the time?

tall wharf
#

hardcore challenges

rapid stag
#

is there a way i can like, reassign the tags at the end of a vanilla planet card's tooltip? like for example, dwarf planet on pluto

rose dragon
#

make challenge where all playing cards are debuffed as if you're always playing verdant leaf

chicot is also debuffed

tall wharf
#
        set_card_type_badge = function(self, card, badges)
            badges[1] = create_badge(localize('k_akyrs_constellation'), get_type_colour(self or card.config, card), nil, 1.2)
        end,
#

ok i buffed the hibana to be hardcore

reef belfry
#

my brain is fried tryna make something without prior knowledge of lua 💔

tall wharf
#

did you put it in loc_vars

rapid stag
reef belfry
#

i just deleted that part of the code cuz i dont even know how to make it retrigger in the first place

tall wharf
#

you change the k_akyrs_constellation to your key

reef belfry
#

i cant really find a good guide for making mods online

tall wharf
#

time to violently explode

rapid stag
tall wharf
#

:3

#

what do u wanna do

rapid stag
# tall wharf what do u wanna do

i am basically painting over all the planet cards with other things
and basically beneath the curtain, i want to change the "planet?" label at the bottom of planet x's tooltip, as well as the "dwarf planet" label under pluto, ceres and eris to the standard "planet" label
& change neptune's "planet" label to the "dwarf planet" label
does that make sense cirSlain

tall wharf
#

you'll have to take ownership

rapid stag
#

thought i might. what do i do once i've done that

tall wharf
#

you set card type badge in take ownership i believe

rapid stag
#

...i see cirDerp .

tall wharf
#

im trying to add emojis to balala

rapid stag
tall wharf
#

pretty much

reef belfry
#

how do you make a canio that targets a specific enhancement rather than face cards

scarlet spire
#

so that'd be
k_dwarf_planet="Dwarf Planet",
and
k_planet_q="Planet?",

rapid stag
scarlet spire
#

ah, okay then yeah in that case taking ownership makes more sense

rapid stag
#

...SMODS.Consumable returns the created consumable, right?

vocal cedar
#

can someone explain the whole "take ownership" of a joker thing? If i start with SMODS.Joker, and say i wanted to change the functionality of Canio to make him ^MULT, how would I go about this?

#

not the ^MULT thing, ill grab that from cryptd, somehow

#

just the

#

take ownership of our dear white jester

rapid stag
vocal cedar
#

one sec

#

oh sick

#

a goldmine

#

thank you

tall wharf
#

hey sorry i haven't been able to help im doing some exam

rapid stag
#

all good cirBlech

tall wharf
vast fractal
#

peak exam items

tall wharf
#

ok back to codinmg

rapid stag
tall wharf
#

i think it's c_neptune

rapid stag
tall wharf
#

i dunno

#

i actually do not know that much about take ownership

#

AFGJKBNASDG

rapid stag
#

i see cirISee do you know how to change the colour that {C:planet} is

tall wharf
#

i certainly do not 😔

#

WTF IT WORKS

#

the UI

primal robin
#

What is this

tall wharf
#

difficulty for the challenge

primal robin
tall wharf
#

😭

tall wharf
#

IT STARTED FROM @manic rune SAYING MY CHALLENGES ARE TOO EASY

primal robin
#

Stakes: exists

tall wharf
#

yea but

primal robin
#

Btw for this mod I was planning make a SCROLLBAR

tall wharf
#

too tall...

#

let's go

reef belfry
#

comically complicated ability

primal robin
#

Damn, if tanke into account that developing mod for "more controls" takes so much time, how much time I need to make basically API mod for this big chunk of game where single available way to do something is apply patch blursed

tall wharf
primal robin
#

Also in my plans was make smth like OST manager, basically Trance mod but for music

tall wharf
#

@primal robin I'm sorry for breaking your idea entirely

vast fractal
#

how to localize this properly

tall wharf
strong jacinth
#

If I have my cardarea: local a = CardArea(1, 1, 2, 3)
What does the 1, 1 do?

tall wharf
#

x y of the area

strong jacinth
#

So position?

tall wharf
#

yes

vast fractal
#

its still error for some reason

plush cove
#

you dont need to set it in loc_vars

#

you set the key in the actual blind itself

tall wharf
#

also yes you don't need loc vars for this

vast fractal
#

so it be bl_modprefix_keyblind?

tall wharf
#

like what did you set as the key

vast fractal
#

i mispelled the key 😭

#

i need to stop myself being dyslexic

hushed field
#

cat on the keyboard ❤️

#

the line G.playing_card = (G.playing_card and G.playing_card + 1) or 1 shows up a lot in the code, but I haven't really been able to spot it's use. What functions use the information stored in G.playing_card?

#

oh the copy card function, of course

next timber
#

damn i gotta scrap the black hole seal cause it just makes ghost cards 😔

hushed field
#

what's the intended effect?

next timber
#

if played, after scoring, destroy other scored cards and add their values to the black hole card's

hushed field
#

Oh, that's pretty doable, I reckon. I assume seal logic works similar to enhancements (I haven't touched seals yet), but you can check out the way I've implemented demonic cards! Those sacrifice all non-demonic cards in a scoring hand

next timber
#

ooh will do

#

ive seen people here say its not possible without patching or whatever

hushed field
#

I think the code for that is just in the demonic.lua for the enhancement, and in the lovely.toml for the patch

next timber
#

ah yea

hushed field
#

Well I definitely use a small patch, haha

next timber
#

i dont quite understand patching but i will give it a shot

hushed field
#

The patch you need to do for this is going to be really small, so i wouldn't worry too much about it! It's the level of patch that's probably a good introduction to it 😄

next timber
#

i hope i manage to get it implemented, i'd hate to scrap the poverty card lmao

hushed field
#

It's entirely doable, you'll definitely manage!

next timber
#

ok so im looking through the lovely.toml and what im getting is, target, pattern and position decide where the code is added in, and then payload is the actual code you insert

#

this seems simple

#

ish

hushed field
#

Destruction logic was a bit confusing to me at first, but it makes a lot of sense once you realize that you basically only want to destroy cards through contexts, and never call card:dissolve() yourself

#

yes. If you want, you can try to just patch in some debug or print statements, just to see how it works

#

the lovely dump contains the code with all patches included, so you can also check there if you're code isn't doing what you're expecting it to do

next timber
#

though now i need to consider what will actually happen if multiple black hole cards are played together

#

do they just collapse and destroy the entire hand for absolutely no benefit? lmao

#

i assume for detecting a seal it would be something like SMODS.has_seal(card, 's_boplatro_blackhole')?

hushed field
#

I haven't done anything with seals, but if that function is in the documentation, then I assume so, yes

loud meteor
#

how do i make a mod that customises the starting deck? ive copied the absolute deck example but it doesnt seem to work

next timber
#

in all honsty i kinda just assumed that if it has a has_enhancement() itll probably have one for seals

wintry solar
#

It doesn’t

#

Enhancements only have that for quantum enhancements

next timber
#

ah

#

oh i think i can just do card.seal?

vocal cedar
#

can someone send me the 2x base balatro folder? i lost the original and i really need a fresh one and steams verify files thing aint workin

#

nvm

#

im dumb

#

7zip was open lol

hushed field
#

should a joker that reads 'you cannot draw cards' overrule or be overruled by the serpents effect?

#

the words never and always are in a bit of a stalemate, so I'm trying to figure out whether it's going to make more sense for a boss blind or a joker to take precedence

next timber
#

make them negate eachother maybe?

vocal cedar
#

considering Burgular overrides The Needle?

next timber
#

idk

vocal cedar
#

i would say it negates serpent yeah

#

Burgular can give you + hands on a Needle blind

#

so i think jokers always take precedence

#

hey while im here is anyone good at pixel art and such?

having a weird issue with my hologram reskin with GIMP

hushed field
#

I was going to make a case for that relating to the order of operations when it comes to changing the number of hands you have left, but I think the feeling still holds that the joker'd overrule the boss blind

#

chicot does, anyway 😛

hushed field
vocal cedar
#

nothing wild but

#

here look

#

so

#

we got bro here

#

we got the holorgram card here

#

in game though? nothing shows up on holorgam card

#

and to test this i put a big fat smiley face on my holoram soul and only the smile showed up right

#

i think it has something to do with transparent pixels not like

#

properly rendering?

#

any advide?

#

i mean bro is certantly here

dense vector
#

Oh my god they're all mewing

hushed field
#

is it exported to both the x1 and x2 file? and the layers are properly exported as well?

vocal cedar
#

yeah lmao

#

yeah

#

i think

#

its all one layer lol

dense vector
#

The virgin Vagabond vs chad Baron

vocal cedar
#

just making a big texturepack for me and my friends that combines all my favorite balatro texturepacks lmfao

vocal cedar
#

comical placement of those two

dense vector
#

egg

vocal cedar
#

egg

vocal cedar
#

i tried to upscale it and it just looks like garbage in game

next timber
#

you gotta make sure you're upscaling with nearest neighbour algorithm

#

anything else sucks with pixel art

hushed field
#

that's probably part of the issue somewhere

vocal cedar
#

no cause 2x only kicks into effect with pixel smoothing

#

and worst part?

#

i deleted the 2x folder lol

#

before i messed with the image it WORKED in game with only a 1x folder

#

in fact watch this

#

downloading the orignal texture unedited it looks like this

manic rune
#

isnt that legendere jokers

vocal cedar
#

yep

#

yeah i got permission from eaze tho

#

im not uploading anything

manic rune
#

oh, i see

vocal cedar
#

just doin shit

manic rune
#

just to be sure :3

vocal cedar
#

basically

#

the texture pack and mod are completely seperate btw

manic rune
#

oh sweet, love the name changes

vocal cedar
#

the mod is just gonna rework the legendaries right

#

and i changed the nameplates

#

making them slightly better for late game

#

and i wanted to use his art

#

and he is fine with merging mods as long as i credit yadda yadda

#

the texture pack with the mogging jokers is just like

manic rune
#

also, is the name changed legendere jokers texture pack a separate mod?

vocal cedar
#

a merge of all the funniest textures i could find for balatro

manic rune
#

or is it fused with your textures too

manic rune
#

oof

vocal cedar
#

when i release the mod with the changed mechanics yeah

his art
my name changes
my new functionality

etc

manic rune
#

kinda hoped it is, i really like the changes but i dont think they fit with mewing jokers 💔

vocal cedar
#

LMAO

#

they dont

#

this texture sheet again

#

is for my friends

#

who dont wanna insytall the modloader

#

non distributed just me and them lol

manic rune
#

icic

vocal cedar
#

but the hologram card is now getting fucked up

#

like i think i know why as well man

#

its fucking gimp going out and just

#

not handling translucent pixels wll or smth

manic rune
#

oof

#

thats annoying

#

you should probably switch to krita imo

#

its free, and i find it better than gimp

next timber
#

oh myg od im stupid

vocal cedar
next timber
#

im doing

has_blackhole_card = true
if not has_blackhole_card then
  first_blackhole = i
end
#

my genius

#

it frightens me

manic rune
#

💔

vocal cedar
#

ugh thats annoying

#

gimp changes the colorformat

#

so i gotta go thru

#

and remake this whole fuckin shit again

manic rune
#

oof

next timber
#

ayy i got the black hole card to destroy the other cards!

#

now i just gotta figure out how to increase the values

#

it even properly synergises with revive

#

in fact thats. thats kinda terrifying

broken cliff
next timber
#

a card that absorbs all other cards values by destroying them, and a card that duplicates when destroyed

vocal cedar
#

thankya

vocal cedar
broken cliff
#

gl with ur exams

tall wharf
#

i got no clue how i added a different page

wintry solar
#

I think holograms soul just needs to be slightly transparent

reef belfry
#

I dislike how these look but idk what to change abt them

tall wharf
#

hey eremel

#

how do i render fire behind ui elements

wintry solar
#

🤷‍♂️

tall wharf
#

ah

wintry solar
#

I haven’t bothered looking at that

tall wharf
#

i just want to give this page some flare that's all

#

ty tho

#

i guess I'll have to figure it out myself

wintry solar
#

I’d just look at how the chip and mult ones do it

#

I can’t imagine it’d be too hard

tall wharf
#

yeah i saw something along the lines of flame handler

hushed field
#

flame handler must be the coolest job to have as a tron-guy in the balatro code

tall wharf
#

maybe i should switch out stars for sprites

#

also i think love2d doesn't support coloured fonts?

#

like i tried using emoji fonts

manic rune
#

sometimes i have a stroke reading through my own code

tall wharf
#

but it didn't do anything

wintry solar
#

I don’t think the difficulty rating feels properly attached to the name of the challenge

manic rune
#

the difficulty rating reminds me of osu ngl

tall wharf
#

maybe i should encapsulate the challenge button inside the translucent box

wintry solar
#

That would help

#

I also think some spacing between each challenge chunk would do the trick too

tall wharf
#

also i could try to make the flame go up in case of hard difficulty

#

that would be so cool

shell timber
#

how would you average ranks using the smods rank api

#

i mean i could manually make an order but that seems annoying

next timber
#

what text formatting is used for greyed out text?

vast fractal
#

C:grey

next timber
#

thanks lol

tall wharf
manic rune
#

depends on what you want to do

#

but usually its C:inactive

next timber
#

do i win the longest info box competition

wintry solar
#

No

next timber
#

didnt think so

wintry solar
#

Not even close

next timber
#

lol

#

well good to know its not too long i spose

tall wharf
#

not even close

hushed field
#

tl:dr joker incoming

wintry solar
#

Nah I think bepis wins that category very easily

tall wharf
next timber
#

JESUS

tall wharf
#

bepis has PAGES of descriptions

#

@manic rune show them

wintry solar
#

Tldr is just a load of random crap that isn’t important

next timber
#

what does that even do??

tall wharf
#

true

#

+1 mult for every playing card in hand and in play

next timber
#

lol

tall wharf
#

that description isn't updated

#

it still says +4 Mult

next timber
#

whats the easiest way to get the total values of a card? like total chips/mult/etc including edition+enhancement+seal

tall wharf
#

you recursively sum it up™

next timber
#

damn

reef belfry
#

Maybe i planned too many

hushed field
#

i've spread my joker sheets up, just for my own sanity, haha

tall wharf
reef belfry
#

Huh

tall wharf
#

jokers

reef belfry
#

Its 71 x 95

tall wharf
#

yeah but how many of them per row / column

reef belfry
#

40

tall wharf
#

oh

reef belfry
#

So basically like in the hundreds

tall wharf
#

1600 jokers

reef belfry
#

Oh.. thousands..

#

Yeah im gonna size it down

tall wharf
#

not gonna lie i thought i had it be crazy big at 10x10

#

40 x 40 = 1600

strong jacinth
#

How would i create a table that has cards?

tall wharf
strong jacinth
#

Is it as simple as:

local t = {}
t.insert("Gold")
local card
for i, v in t do
  if v[i] == "Gold" then
    card = SMODS.create_card(set = "mycustomset", area = area3, key = v)
    area3:emplace(card)
    i = i + 1
  elseif v[i] == "Steel" then
    card = SMODS.create_card(set = "mycustomset", area = area3, key = v)
    area3:emplace(card)
  end
end
#

Like would this work

#

-# (Im not really familiar with the lua syntax)

maiden phoenix
#

What are you trying to do? Randomly add gold or steel playing cards?

strong jacinth
#

I want a system, where i can display all cards in t

#

Would this work?

manic rune
#

pathetic

dreamy thunder
#

Not even close..

manic rune
#

all that... just for a fraction of my power

next timber
#

is there really no easy way of getting the total chip, mult and xmult values of a card other than just summing up every single attribute that controls them

manic rune
#

mhm

#

editions work on their own calculation stuff

reef belfry
#

How would this even look on a card

tall wharf
manic rune
#

behold

next timber
#

pages????

manic rune
#

pages, yes.

dreamy thunder
#

This game aint balatro anymore

manic rune
#

and even then

#

one of my jokers' first page is still longer :3

strong jacinth
manic rune
#

:3

dreamy thunder
#

😭

manic rune
#

oh, but mind you

#

i even intended to add light cones

#

which is just another layer of equipment

#

this shit

#

aka page 5

#

:3

loud meteor
#

to add a seal to all cards for a back, is it just this in func=function()

  G.playing_cards[i]:set_seal(G.P_SEALS.Red, nil, true)
end```
?
manic rune
#

thats not how you run a for loop

loud meteor
#

im getting some issues but cant figure out whats wrong

manic rune
#

for i = 1, #G.playing_cards

loud meteor
#

i got it from the examples page

manic rune
#

and i think you can just do

for i,v in ipairs(G.playing_cards do

#

and use v instead of G.playing_cards[i]

loud meteor
#

ah alr ill try that

manic rune
#

also, if it still doesnt work then check if this is correct later, i never touched seals before but thunk tends to keep his keys at lowercase

maiden phoenix
#

Also I think SMODS has an util function to add a seal

strong jacinth
manic rune
#

is that a new card area

#

if so, im as clueless as you, sorry

loud meteor
manic rune
#

:3

strong jacinth
manic rune
#

💔

next timber
#

what is the h_chips value in a card's ability

#

or just. anything starting with h_

maiden phoenix
loud meteor
#

ah ok

#

all g, dw about it

maiden phoenix
strong jacinth
maiden phoenix
#

Gold cards uses h_dollars and steel cards h_x_mult iirc too

strong jacinth
#

Do you know SDM?

maiden phoenix
#

Eeehh my best bet would be to look at card creating consumable code such as the Incantation spectral card or the create_playing_cards func

loud meteor
next timber
#

ok so does card.base.nominal + card.ability.bonus + card.ability.perma_bonus + (card.ability.seal.chips or 0) + (card.edition.chips or 0) account for all ways a card earns chips when played (without jokers)?

#

or am i missing some random obscure way a card can have extra chips

strong jacinth
#

Is SMODS.consumable_type documented

opal holly
strong jacinth
#

I want a consumable, that you cant use? Would that be a consumable or like what type?

next timber
#

its listed as a subclass

#

i think

strong jacinth
#

But like how would i create a lets say a card with the object tyupe?

maiden phoenix
#

Do you want to make a new consumable (a tarot, planet, spectral) or a new consumable type?

next timber
maiden phoenix
#

(I love failing copy paste)

strong jacinth
#

How would i do that

hushed field
#

create a new type of consumeable and make it so 'can_use = function()' returns false

hushed field
#

no

#

it's just the function just like the one that tarot cards use when you haven't selected a legal number of cards

tall wharf
#

@wintry solar how about this one

hushed field
#

though you'd hook or patch if you want the use button to not be there, i think

strong jacinth
#

Whats primary and secondary color?

manic rune
next timber
#

i honestly have no clue about primary

wintry solar
tall wharf
#

gave it some room for the arrow to breathe

manic rune
#

aiko has transcended into both the ui and shader field

#

impossible

hard flume
#

Hihi!!!

tall wharf
#

!!!

#

hello hello

manic rune
#

hi 🥕

wintry solar
#

I’d maybe put the green identifier on the bottom row

hard flume
#

I'm almost done with my first world!!

manic rune
hard flume
#

This is the longest I've ever worked on a project without abandoning it

vast fractal
#

chip is not chipping

#

or it should be hand_chips?

manic rune
#

whats hand_chips, and mult

#

you are referring to a variable which doesnt exist

#

im pretty sure

vast fractal
manic rune
#

i dunno how plasma deck looks like, but you need to refer to whatever is inside it

#

you cant just call mult

#

like, you know how you need to call card.ability.extra[something]?

wintry solar
#

They do exist

#

You should return chips = and mult =

#

Unless you are purposefully not wanting a message

#

In which case it should be chip_mod iirc

unkempt thicket
#

How can i make this trigger the end of round enhancements as well? I know how to but I need a context to set the values back as well.

vast fractal
manic rune
#

💔 what kind of knowledge is this

#

the inconsistency is killing me

hard flume
#

Hihi!

#

I'm making new consumables. What effects should I try to add?

wintry solar
manic rune
#

oh

#

ohhh

#

so they are global vars, got it

next timber
#

so i have a card and its ability.seal.chips = 270, but when i hover over the card, according to the tooptip it's still 0?? like im doing print(card.ability.seal) and the chips is showing up as 0, but when i do eval G.hand.cards[1].ability.seal it shows 270 chips like it should

#

why is it doing that

high eagle
#

I have a query

#

I’m trying to make a joker that gains mult whenever a card changes suits, is that possible to do within balatros source code? If so, how would I go about doing that?

tall wharf
#

why are people changing source code directly 😭

high eagle
crimson marlin
#

Does anyone know how to destroy cards? im trying to make a custom boss blind

drawn_to_hand = function(self, card)
card:destroy()
end,

brisk basin
high eagle
#

Yes

brisk basin
#

What do you mean by "within balatro's source code"?

manic rune
#

wtf is going on :33

high eagle
manic rune
#

oh wait nevermind, ipairs stuff

#

silly me

primal robin
wintry solar
#

I think smods is at the stage where its code is easier to write than vanilla

tepid crow
#

probably, but the first step of installing lovely+steamodded is still pretty big

wintry solar
#

yeah I guess

manic rune
#

i dont know why i even struggled at this simple task :3

spark owl
#

I has a question

manic rune
#

description PAGES and still using info_queue is crazy ngl

spark owl
#

Does anyone know how to change the legendary jokers’ art

#

In terms of like coding

manic rune
#

look at how legendere jokers do it

hushed field
#

are banned keys only checked at the start of the run, or can you update those dynamically?

spark owl
manic rune
#

weird

#

are you sure your code is exactly like theirs

spark owl
#

The first one is for me

#

and the second is Legendere

#

wait

#

they are both the same

#

bruh

#

there we gio

manic rune
#

-# notepad????

spark owl
#

It’s a LUA

#

and I could use notepad to change it

#

If there’s another app I could have been using that’d make this easier then

please do tell me I’m very stupid

manic rune
#

visual studio code

#

the app that makes code look like this

spark owl
#

ok Ty

modern kindle
#

If you don't want that you can use sublime, notepad++, etx

#

Also hi bepis

spark owl
#

I’m downloading it rn

#

Oh I should also probably tell you like

#

How it’s breaking

#

Whenever one of the cards load in
It just says that the Atlas is nil

manic rune
next timber
#

ok so if doing card.ability.seal in the loc_vars of a seal doesn't actually give the card's real seal values after theyve been modified, then how do i access that information

spark owl
manic rune
#

:3 i actually never touched stuff regarding replacing arts of existing jokers before, so its weird it doesnt work

spark owl
#

Yea

#

here's like what happens when i try to look at the cards

#

What

mellow pendant
#

Hi I'm posting here because I don't know where to ask for requests so my idea was a quality of life that would prevent moving the cards after submitting a hand so that it would keep the order given by the player instead of reorganizing based on color or value. I don't know how to code personally and I don't know how difficult it can be to do but I hope my idea can interest someone except if it has already been done and in this case I would like to have the name 😅 . thanks in any case

spark owl
#

WHAT HAPPENED HERE

vast fractal
#

spelling ig or key

tall wharf
#

damn i love triboulet

tall wharf
#

3 times...

mellow pendant
tall wharf
#

what didn't work

mellow pendant
#

It keeps reorganizing

mellow pendant
tall wharf
#

there's a toggle that says "Sort Hand" next to the cards

#

if you turn that off i think it does what you want it to

spark owl
#

okay yea i did something wrong here

manic rune
#

😭

#

can you show me your joker png file

spark owl
#

somethign is HORRIBLY wrong here

manic rune
#

oh, actually

#

can you try turning off Malverk

spark owl
#

itself

#

oh

#

ok

tall wharf
spark owl
#

I swear if that was the issue the entire time

#

Nope

#

It was not

tall wharf
#

Malverk is the mod that provides Texture Pack API

manic rune
#

im assuming, since it also fucked up BlueStorm by replacing Blueprint/Brainstorm art with something else

spark owl
mellow pendant
tall wharf
manic rune
#

😭

mellow pendant
tall wharf
#

did you install Cartomancer

manic rune
#

did you install the latest version of cartomancer

mellow pendant
mellow pendant
tall wharf
#

show mods page

manic rune
#

show the mods folder please

#

mhghgh

#

ok im gonna stop interupting

#

😭

spark owl
#

Or the other person

manic rune
#

nop, i was talkign to Hirame, but hm

mellow pendant
tall wharf
#

can you go in it

manic rune
#

can you show me these files

tall wharf
#

click on the mod

manic rune
#

but for your mod?

#

-# talking to hanaka

spark owl
manic rune
#

gghghg

spark owl
#

Flash bang mb

#

But there it is

manic rune
#

no, its not that, dont worry 😭

tall wharf
mellow pendant
spark owl
#

Maybe I gotta change some other stuff

#

In the mod

#

Hang on

tall wharf
#

i was about to punch the table

manic rune
#

im confused

tall wharf
#

slamming my head against the wall

mellow pendant
manic rune
#

why does it CHOOSE the mime sprite

#

that doesnt even exist in his .png file

#

😭

tall wharf
#

so sorry

spark owl
crimson marlin
#

im making a custom boss blind that has an effect when you discard, i know there is press_play, but what do i use for discards?

manic rune
#

wtf

mellow pendant
manic rune
#

i think

tall wharf
#

no not yet

manic rune
#

-# damn

tall wharf
#

@frosty dock is still ironing out bugs i think

manic rune
#

icic

crimson marlin
#

pluh

manic rune
#

can you help Hanaka with his problem, aiko

#

im bad at this shi 💔

frosty dock
manic rune
#

i see :3

tall wharf
spark owl
#

Ok

tall wharf
#

yepp

spark owl
#

Also uh

#

Should probably say spoilers for the game I made these cards for

#

Rabbit hole

#

Catalyst and Yomi are like endgame stuff whoop

#

But anyways yea this is the file

tall wharf
#

and the code?

manic rune
spark owl
tall wharf
#

i think you should do what legendere does

spark owl
#

okok

tall wharf
#

as in vertical™️

spark owl
#

i'll do that

#

can you send me that image

manic rune
#

wha

manic rune
#

mine looks different

#

😭

tall wharf
#

huh

#

i use the malverk version idk

manic rune
#

this is their code

spark owl
manic rune
#

so it should work

tall wharf
#

ok just

vast fractal
#

how to modify the blind requirement when a hand is played

tall wharf
#

stack the pngs

spark owl
#

i'll try the malverk version

spark owl
#

and see what the code is

tall wharf
#

G.GAME.blind.chips and don't forget to G.GAME.blind.chip_text

manic rune
#

i think the code for the malverk version of legendere is different

slender cape
#

does anyone know any mods that add custom face card skins into the friends of jimbo menu? im trying to figure out how using the github guide but itd help to see a reference

#

all the ones i can find just replace existing ones

tall wharf
#

i have one

slender cape
#

thank you :D

high eagle
# high eagle ?

Maybe I can check the existing cards that change suit? Idk

turbid maple
#

I'm extracting the real time-ification part of my mod into a separate mod and I can't think of a good name for it

manic rune
#

RealTimeBlinds, simple

#

im assuming that only blinds use it :3

turbid maple
#

alright I'm giving shops a 30 second timer now that you said that

hushed field
#

Should I make a mod that ties the price of Egg to your local egg prices and every frame updates to inflation?

manic rune
#

what the fuck

#

cryptid counter

#

:3

hushed field
#

12 jokers left and I'm officially through all the art assets I've made

turbid maple
manic rune
#

How I crashed the Stock Market to beat Balatro Gold Stake

#

:3

manic rune
#

yeah but actually

manic rune
#

what if it works on vnd instead

#

so its like $5000 per egg 💔

tall wharf
#

Toki means Time

turbid maple
#

john balatro

tall wharf
#

and is also BA character

turbid maple
#

you're so right

#

it's toki now

manic rune
#

oh wow

#

thats a cool name

hushed field
#

Before I started Kino, my hobby gamedev project was a monopoly-like that tracked the stock market of a certain period to base a lot of it's things off, and if I ever finish that my dream is for that game to become super big because the current economic downturn makes certain builsd OP ❤️

next timber
#

my confusion just keeps growing
this seal is gaining chips. when its scored after having absorbed cards in the past, it does add the correct amout of chips to the score. so WHY does the tooltip still say +0 chips

turbid maple
# tall wharf NO

on a more serious note I was planning to make Shiroko turn cards in the shop free but timers extend to the shop as well

unkempt thicket
#

what config value does gold cards use?

tall wharf
#

why is it on a timer 😭😭😭😭

turbid maple
#

funn

hushed field
tall wharf
#

balatro but go fast

high eagle
#

I do not mean to be annoying but like . I am stuck

next timber
hushed field
spark owl
#

i have

next timber
#

im looking at m3gan.lua because that appears to be a sci-fi card, and its literally just return { vars = { card.ability.extra.lower_by } }

spark owl
#

changed the code of the mod

#

into Malverk

#

NOW

#

IT WORKSSSSSS

#

YAYYYYYYYYYY

#

tysm

hushed field
next timber
#

ah i see lol

high eagle
#

. How would I view balatro’s source code again

next timber
#

your mod has. so much content

turbid maple
#

you can unzip balatro.exe and you'll see the source code

next timber
#

ok this looks simple

high eagle
#

Where would it be again

normal crest
#

I recommend looking at Mods/lovely/dump for the code

high eagle
#

I see

normal crest
#

That will have the patches made by SMODS too

high eagle
#

Thank you

crimson marlin
#

Im making a custom blind that destroys your cards when you draw them but i cant make it work tho, does anyone know how to fix that? (also my code:)
drawn_to_hand = function(self, card)
card:destroy()
end,

normal crest
#

Also you can find the balatro exe by clicking browse local files on steam

next timber
hushed field
next timber
#

ima just try what you did and see what happens

hushed field
turbid maple
#

Browse local files

next timber
#

are you really a real mod developer if you dont have a shortcut to steamapps common on your desktop

rain slate
#

What can I use to figure out which deck the run is using

normal crest
hushed field
#

I've got the balatro mod folder pinned in my file explorer haha

rain slate
next timber
#

this isnt working i geuninely just think the card variable is wrong somehow

rain slate
crimson marlin
#

how do you destroy cards? I cant find anything about that

minor furnace
#

It might finally be time for me to separate out my main into different files...

tall wharf
#

:3

rain slate
#

also try having just the card.ability.seal.chips stuff without all the card and or self.config... stuff

next timber
#

the print is returning {seal = {mult=0,chips=0,x_mult=0,money=0}}

rain slate
#

what does config look like @next timber

next timber
high eagle
#

What is a “badge” exactly btw

tall wharf
rain slate
# next timber

then it should just be card.ability.chips without the .seal in between?

agile thistle
rain slate
#

like try ```lua
return {
vars = {
card.ability.chips,
card.ability.mult,
card.ability.x_mult,
card.ability.money
}
}

agile thistle
#

C:\Program Files (x86)\Steam\steamapps\common\

hard flume
#

Hmm... Do I wait until before or after the Custom Modifier API is made to make Effects?

minor furnace
#

not that it makes any difference, but it's interesting

high eagle
#

I’m browsing the source code in an attempt to locate where it changes suits, but I can’t find the parameters where it identifies “the world”?

tall wharf
#

why are you using notepad to code

high eagle
#

turbid maple
tall wharf
#

😭

high eagle
#

I see

rain slate
tall wharf
#

I'm sorry but like

tall wharf
#

you're debuffing yourselves

high eagle
#

What is a better coding software

tall wharf
#

vs code

rain slate
#

visual studio code

next timber
#

they just show nil instead of 0 now

tall wharf
#

it has colours

hard flume
#

Yeah I use visual studio code

high eagle
#

ok thank you

turbid maple
#

vs code (i use nvim on arch btw)

next timber
#

vscode ftw

rain slate
tall wharf
next timber
#

this code is in a seal

high eagle
#

But still my question stands, where does balatro define the suit-changing tarot cards? (World, Stars, Clubs, etc)

turbid maple
#

should.. be in cards.lua?

minor furnace
high eagle
#

Thank you

minor furnace
#

all of the suit-changing tarot cards are done here, not referenced by name

high eagle
#

I see

#

That makes sense for why I couldn’t find it, ty

minor furnace
#

generally, all of the consumeable effects will be in that function

next timber
#

i genuinely just think loc_vars is being passed a fake card or some other card that isnt the actual card for some reason. because i can use eval to check the card's actual values and they're working correctly, it's just that the seal can't seem to see them

minor furnace
high eagle
#

….

#

This is harassment /j

rain slate
# next timber this code is in a seal

maybe lua return { vars = { card.ability.seal.chips, card.ability.seal.mult, card.ability.seal.x_mult, card.ability.seal.money } } then? I'm certain you don't need to do all of the card and [] or self.config.[] stuff, and knowing lua it might cause some weird stuff

next timber
#

id bet my life rn that this is just gonna be returning 0, 0, 1, 0 but ill try

modern kindle
rain slate
#

like you can't just do lua local value = 1 print(value) and expect it to print 2

next timber
#

no? in the original screenshot i included the calculate which changes the value when the card is played alongside other cards

#

lemme send it again hang on

#

and i know the number is going up correctly because in the main_scoring context i can get it to give the increased number of chips

high eagle
#

so if i were to do this, would it add 4 to my joker every time (by calling hanafuda_mult with my new joker)? or is that not how it works

#

wait wait wait nvm

turbid maple
#

are you overriding Card:change_suit??

high eagle
#

im trying to make it so that whenever card:change_suit is ran, a variable is stored

#

but it might not work now that im thinking about it moar

turbid maple
#

okay let's back up for a sec

#

instead of what you're doing to implement your idea can i ask what you're trying to make exactly

#

a joker that triggers when a card changes suit?

high eagle
#

a joker that gains mult whenever a card changes suit

#

yee

turbid maple
#

mm okay there's gonna be multiple parts to this

high eagle
#

i thought so

turbid maple
#

First: To get a Joker to run its effects, its calculate function needs to be called with an appropriate context (which is just a table of variables containing relevant state of the game)

high eagle
#

i'd assume the appropriate context is whenever a consumable is triggered?

manic rune
#

you would need a hook

high eagle
#

unless there is another aspect of balatro that causes suits to be changed, idk

turbid maple
#

Unfortunately, a card changing its suit is not something the base game cares about so the game will not call any calculation functions when a suit is changed, so your Jokers will never know about this event

high eagle
turbid maple
#

you could try to adapt the event called when a consumeable is used but that'd be clunky and would break if someone modded in a dif. source of suit changing

turbid maple
rain slate
#

maybe you could patch it to call the calculate function and add your own context to it?

turbid maple
#

SMODS.calculate_context is the handy function that calls calculate for all the Jokers currently owned

high eagle
#

I seee

deft niche
#

what's the correct syntax if I want to add a random edition/seal/enhancement to a card when it scores?

sorry if I'm interrupting

turbid maple
# high eagle I seee

so making up some names, the line that'd handle this would look something like
SMODS.calculate_context({ change_suit = true, changed_card = self }

#

then in the Joker's calculate function you can check for context.change_suit

high eagle
turbid maple
#

now how to get this line of code into the game is another matter

rain slate
#

lovely.toml right?

manic rune
#

...im a bit confused on why this is wrong

turbid maple
#

you'd put it into Card:change_suit but it's generally advised to not replace an entire function of your own because it would not play nice with other mods that want to do things to that function

#

there's two ways to do this: Lovely patches (if you need to inject the code into an arbitrary location or completely modify the function) or hooking the function (if all you need is your code to run before or after everything else in the function)

#

generally if you can the latter is simpler

manic rune
#

in another function

#

this works

#

im so fucking confused

rain slate
manic rune
#

how so

rain slate
#

in the first screenshot you have .readBuffs[card]

#

in that second screenshot you have .readBuffs(card)

manic rune
#

.

#

oh my fucking god you are right

#

💔

#

im dumb, thanks

next timber
#

lmao

high eagle
#

btw

turbid maple
# high eagle Hi how can I hook the function? Thank you a lot for your help by

Hooking would look like this

-- This takes the function defined in the vanilla game and stores it into a variable for later reference
local _card_change_suit = Card:change_suit

-- We redefine the original function...
function Card:change_suit(new_suit)
    -- Then call the stored reference to the original function so it still works
    _card_change_suit(self, new_suit)

    -- Then do whatever we want after (or before if you want)
    SMODS.calculate_context( ... )
end
quartz ravine
#

I had this dream of making a Yugioh style Ghost Rare filter shader, but now that I have looked at it really closely, it looks like the card game has special artwork for ghost rares that contribute to the hologram/ 3d effect.

I could get the color shifting working but it doesn't look as cool as I thought it would

manic rune
#

since its what most mods use to change the suits of cards

turbid maple
#

I have no clue

manic rune
#

but if SMODS.change_base runs Card:change_suit then it should be fine

hard flume
#

What if I added nightmare variants of Jokers...?

high eagle
#

this would all be included here, right? (ignore the steammodded comment text, im using it as a template)

rain slate
#

also I feel like you should be using pseudorandom_element for these

turbid maple
#

looks like it calls card:set_base

high eagle
manic rune
hard flume
#

Oh is that something that already exists?

manic rune
#

-# they added corrupted versions of jokers, fyi

hard flume
#

Oh. Fair enough

deft niche
high eagle
#

oh wait nvm i see

tall wharf
#

NOT THE SMALLANT FONT 😭

remote shell
#

the what

deft niche
#

I have read through the calculate page on the steamodded git a couple times but couldn't find anything regarding changing a card's type

rain slate
#

yeah you wouldn't find them there

deft niche
#

figured

hard flume
# remote shell

Oh cool. Nightmare Jokers would be similar but like. They also serve as a Yume Nikki reference

rain slate
#

I only know how to set the edition which is something like ```lua
context.other_card:set_edition({ negative = true}, true)