#💻・modding-dev

1 messages · Page 431 of 1

feral panther
#

-# like this perhaps

#

Thank you very much

gentle rain
#

bump

daring fern
#

It seems to have something to do with the recursive_extra function, I also tried using the new SMODS.merge_effects but that didn't change anything.

subtle merlin
#

I cant help with the latter, but the first issue is bc you have no text to display, so it defaults to ERROR

paper zealot
#

Looking at SMODS.Booster, looks like you haven't defined the group_name string. You can do this either in a localization file or in loc_vars, though the localization file is the better way to do it

daring fern
paper zealot
gentle rain
# paper zealot

do you have an example in-code? im not completely sure what the localization is trying to imply

daring fern
paper zealot
old epoch
#

I'm trying to play a sound, but each time it tries to play the game crashes saying it couldn't find the file. Can anyone help?

play_sound('Bonk!', 0.96 + math.random() * 0.08)
red flower
paper zealot
#

Oh, and the background colour issue is just a typo -- needs to be ease_background_colour instead of ease_background_color

gentle rain
#

lol right

#

curse those pesky canadians...

daring fern
#

The only reference of it in my code is commented out.

red flower
#

hmmm weird

gentle rain
#

im sniling

red flower
# red flower hmmm weird

the only think i can imagine is that it's trying to do something recursively and causing a stack overflow but idk what

daring fern
sturdy compass
red flower
burnt apex
#

My partner (whose much better at coding than me) has tried to help me with setting up a joker, but it isn't triggering in game, any idea whats wrong?

daring fern
#

It happens with my original recursive extra function aswell.

red flower
red flower
#

weird

#

if you use a fake

return { extra = { extra = { mult = 1 } } }

does it crash

daring fern
red flower
#

sorry for making a broken function 😭

modern kindle
red flower
#

the only thing i can think of is that one of the tables has a reference to the other tables

faint urchin
#

I'm trying to make a challenge that bans every card except for one but this code doesn't ban any modded jokers, am i doing this completely wrong or do i just need to make a slight change

local banned_jokers = {}
for k, v in pairs(G.P_CENTER_POOLS.Joker) do
    if v.key ~= "j_ckl_darren" then
        table.insert(banned_jokers, {id = v.key})
    end
end
SMODS.Challenge({
    loc_txt = {name = "Where More Good Things Happen"},
    key = "ckl_wmgth",
    rules = {
    },
    restrictions = {
        banned_cards = banned_jokers,
    },
    unlocked = true,
})
red flower
#

G.P_CENTER_POOLS might not have modded jokers until the game finishes loading

#

so probably it won't work this way

faint urchin
#

is there a different way to do it

red flower
#

uhh not sure

median grove
#

does anyone know how to use the resize.py script?

paper zealot
subtle merlin
#

How do i apply a seal to a card? Is it the same as applying a sticker?

daring fern
subtle merlin
#

Ty!

old epoch
#

I'm trying to play a sound, but each time it tries to play it, the game crashes saying it couldn't find the file.
Code:

play_sound('Bonk!', 0.96 + math.random() * 0.08)
old epoch
#

ah

#

would i put it before the file name?

daring fern
old epoch
#

oh ok

#

let me run that real quick

hazy cosmos
#

Is there some kinda program that makes making a mod for Balatro easier? Almost like MCreator for Minecraft, but for Balatro? Ive had a few others tell me there arent but I figured I'd see if anyone knew anything

hazy cosmos
#

Dang alr, thanks!

old epoch
daring fern
old epoch
#

What does that mean again?

daring fern
old epoch
#

oh

#

lemme find it real quick

#
SMODS.Sound({key = "Bonk!", path = "Bonk!.ogg",})
scenic steeple
#

so, this is doing everything I need it too except for 1 thing, it's not actually giving $2 when an ace or 8 is played, so uhm please help I beg

daring fern
old epoch
#

I put it in the wrong folder

#

Thanks for helping though

exotic imp
#

is there a way to make a joker always have eternal?

exotic imp
daring fern
# exotic imp how

set_ability = function(self, card, initial, delay_sprites) card:set_eternal(true) end

burnt apex
#

Any idea what is wrong here? No errors or crashes but the joker just never triggers

daring fern
violet gulch
#

Am I crazy, or isn't "card" in that instance also the Joker itself?

burnt apex
#

The code was primarily put together by my partner who hasn't played balatro yet but knows lua and coding a lot better than me

violet gulch
#

This is how I check and calculate for Queens of Hearts for example

burnt apex
normal crest
#

i assume your goal is to turn all jacks and kings into queens?

#

or a 1 in 4 chance to do so

pure salmon
#

you can access a card when it is scored by accessing context.other_card in context.individual

violet gulch
#

Preface all this with, I'm still relatively new at this myself. I think within the calculate function you're going to want to check and work within the "context.individual" and use "context.other_card". context.other_card:get_id() of 11 or 13 should be a jack or king.

pure salmon
#

yeah

violet gulch
#

And then because this is a seeded game, and you want it to remain deterministic, while appearing random, you'll want to use "pseudorandom" instead of lua's math.random

burnt apex
#

Oki thanks for the help

hasty mist
#

I know why this doesn't work, UIT has to be something else instead of 1, game.lua apparently has a table somewhere of valid ui types, but i cannot find it

burnt apex
violet gulch
burnt apex
#

thx

#

Ok so the code to check if the scoring card is a king/jack would be this?:

calculate = function(self, card, context)
if context.individual and context.cardarea == G.play then
other_card:get_id() == 12 or
other_card:get_id() == 13 then
return
followed by my return to mess with stuff?

daring fern
burnt apex
#

Ok

violet gulch
#

id=12 is Queens as well. id=11 should be jacks

burnt apex
#

Oh right forgot the scaling for the cards lol

burnt apex
#

calculate = function(self, card, context)
if context.individual and context.cardarea == G.play then
if context.other.card:get_id() == 11 or
context.other.card:get_id() == 13 then
return {assert(change_base(card, nil, 12))

        }

ok this is what i have, when the joker should have triggered i was given an "attempt to index field 'other' [a nil value]" crash

normal crest
#

you put other.card instead of other_card

burnt apex
#

im blind thank you

#

where can i read in the wiki about the syntax for change_base

daring fern
burnt apex
#

Thank you

#

calculate = function(self, card, context)
if context.individual and context.cardarea == G.play then
if context.other_card:get_id() == 11 or
context.other_card:get_id() == 13 then
return {assert(SMODS.change_base(card, nil, 'Ace'))

Currently have the card its meant to become set to ace since that is what the example has, even if its 'Queen' iIget "tried to call SMODS.change_base with invalid arguments suit="nil" , rank="Ace" (or rank="Queen")"

-# also sorry if me asking for so much help is annoying

daring fern
normal crest
#

you want to do SMODS.change_base(context.other_card, nil, "Ace")

burnt apex
#

Ok sweet it worked!

#

Is it possible to have it do the flip animation similar to how death works and or a custom animation, before the cards are discarded?

modern kindle
#

you can probably do card:flip()

burnt apex
exotic imp
#

how do i make it so that my joker can't show up more times with showman?

daring fern
sturdy compass
#

Incorrect

#

You'd do it via an in_pool function

daring fern
sturdy compass
#

Ah

#

Read it wrong myb

#

Well you still wouldn't need a hook, you could still use in_pool

red flower
whole lava
#

how can i make the held in hand card give more chips when played next time for every destroyed card?

sonic cedar
#

how to add a joker to your jokers with the console?

red flower
#

eval SMODS.add_card{key = "key"}

exotic imp
red flower
#

i would recommend the in_pool method too personally

in_pool = function(self, args)
    return not next(SMODS.find_card("j_modprefix_key"))
end
#

the other method is

local smods_showman_ref = SMODS.showman
function SMODS.showman(card_key)
      if card_key == "j_modprefix_key" then
          return false
     end
     return smods_showman_ref(card_key)
end
#

you don't need to check in this one actually

#

like that

exotic imp
#

I see why you recommend the in_pool method

sonic cedar
#

had a crash involving this function in card.lua
any idea what it's for?

#

(line 242 being for key, _ in pairs(self.T) do)

red flower
#

iirc it sets the size of the card correctly when setting the ability to a different one

#

like from wee joker to another

sonic cedar
#

huh...

#

well in terms of set_ability (this is the fodder joker for ijiraq justraq transformations i was talking about) i have this?

#

which is within its function of course

red flower
#

i feel like that has some extra stuff that's not needed like the set_sprites or card.config.center

sonic cedar
#

granted this hasnt been worked on in a while
smods has been through some huge updates since

red flower
#

card:set_ability(exceptions[...] or jkey or "j_joker", true) should work

#

(obviously abbreviated)

sonic cedar
#

settign that up

#

one issue

red flower
#

that was also abbreviated

sonic cedar
#

i see

#

fixing

#

i'll see if it crashes
for some reason it still uses the regular sprites though???

red flower
#

that's weird, you shouldn't need to use set_sprites

exotic imp
#

what would be the code to give the strength tarot card?

red flower
#

maybe you do inside set_ability

sonic cedar
#

it has patches, maybe one of these isnt working?

red flower
sonic cedar
#

on it

#

now what do i put in it is the question

red flower
exotic imp
sonic cedar
#

strenght....

red flower
sonic cedar
#

k

red flower
sonic cedar
#

n

red flower
sonic cedar
#

teehee

#

one more check before i test

#

actually that true wasnt there

#

alr here's hoping

#

yeah no that's regular supernova

exotic imp
sonic cedar
#

yes /gen

sonic cedar
final jewel
#

How am I supposed to link my localization for my Joker's text (I know I already have text in my joker but I want to remove it) ? I know its a dumb question.

sonic cedar
#

just remove the loc_txt

final jewel
#

yeah but it doesn't work

#

It shows nothing

red flower
sonic cedar
#

gonna find out

sonic cedar
final jewel
#

yeah like in my screen shot

sonic cedar
rapid stag
#

what's the mod that shows the joker values in a box beneath the joker

red flower
#

JokerDisplay!

sonic cedar
#

jokerdisplay

#

I wonder who made that

rapid stag
exotic imp
#

I think it looped a few times (ignore the fact of the description being written wrong) any ideas why? this is my code

red flower
red flower
#

ctrl+f end_of_round there

#

there should be a couple more checks you need to make

final jewel
exotic imp
red flower
#

no

#

i didn't want to type it but if you want me to 😭

exotic imp
red flower
sonic cedar
#

I just want it to have the ability of the joker and then transform when it’s triggered is that so much to ask

red flower
#

i think the problem might just be calling set_ability inside set_ability

sonic cedar
#

wait actually?

errant fulcrum
#

Im sure its obvious but why does this reset when a blind is selected?

    apply = function(self)
    G.E_MANAGER:add_event(Event({
        func = function()
        -- = -3,
        --G.GAME.current_round.discards_left = +3,
        ease_hands_played(-3)
        ease_discard(3)
        return true
    end
    }))
end
red flower
sonic cedar
#

Do you see how it says current round

red flower
#

you need G.GAME.round_resets.hands/discards

errant fulcrum
#

Oh okay

red flower
#

you want both actually so they modify the value properly the first time

frozen turret
#

hello, i just got here an i need help. I wanted to make a mod to the base game where the only thing that changes is the names of items/jokers/poker hands/etc i thought this would be easy but i cant get it right can anyone help?

burnt apex
#

I probably won't be able to finish working on it tonight, if it isn't too much of a hassle can someone dm me the wiki links to the documentation on pseudorandom and how to use card:flip?

red flower
burnt apex
#

Ah

#

That feels a bit short sighted, at least for pseudorandom.

Any tips on how to use them?

red flower
#

for card:flip() you just do that and it flips the card

burnt apex
red flower
#

uhhh maybe an event in final_scoring_step? im not sure

frozen turret
frozen turret
burnt apex
#

The order of actions for my joker would be

Score king(s)/jack(s)
Chance Trigger Calico
Flip and flip back to show that they are now queens
Discard played hand

red flower
#

or use vanillaremade for english maybe

red flower
burnt apex
#

For mac

frozen turret
burnt apex
#

Ah

frozen turret
#

like theres stuff on how to make the balatro text and font but not how to change names of things in game

burnt apex
#

I think I saw a video on just renaming things but not sure if it would work for Mac

tall wharf
red flower
#

thank you aiko

tall wharf
#

"Show Package Contents"

frozen turret
tall wharf
#

Steam version right

frozen turret
#

i have steam version, yes

tall wharf
frozen turret
#

never seen a .love file before

tall wharf
#

it's inside balatro.love

red flower
#

i have never seen love before

frozen turret
#

how do i even open that?

tall wharf
#

copy it out of the app

#

and rename the end to .zip

#

then extract it

frozen turret
#

so like copy and paste it onto desktop

crisp coral
frozen turret
#

ok im here with it

#

sorry i need a bit of hand holding, ive never done anything like this

red flower
#

you need the localization folder from there

frozen turret
#

id.lua?

red flower
#

the one for the language you want

sonic cedar
frozen turret
shell kite
#

How do I generate a planet card of the last played hand type with a joker?

red flower
sonic cedar
paper zealot
frozen turret
unkempt rover
#

Can someone help me? I want to know what splash does in the game code. I've tried to look everywhere but I can't find it. I want to create a seal so that the card that has this seal is always scored, but I don't know how to make this seal because I don't know what splash does for the card to always be scored.

I hope you understood what I meant

paper zealot
rugged pier
#

i love how you can just send vanillaremade

#

for a bunch of the questions now

red flower
#

that's why i made it :3

rugged pier
#

very cool repo

#

thank you for making it

tall wharf
#

back in my day we didn't have vanilla remade

tall wharf
#

you had to manually ask it to show mult message

red flower
#

back in the day we had card = self

rugged pier
#

can confirm

chrome widget
#

I have a blind that I have no idea if I can implement

#

The concept is that Scaling Jokers scale in reverse... but the infrastructure required to do that and make it not be jank might be too much

crisp coral
#

back in my day we didn't have smods.joker

chrome widget
#

I wonder if there's some really lower-level Lua thing I could take advantage of to know when a value on a table has changed?

crisp coral
chrome widget
#

Why what's Cryptid 's jank for it

#

For a friend

crisp coral
#

there are a lot of values that can change while not necessarily being scaling

chrome widget
#

I know, yeah, that's what I'm concerned about

crisp coral
chrome widget
#

All of my jokers are very specific about it

rugged pier
chrome widget
#

I don't put scaling values anywhere but in the extra table, but I can't expect everyone to use the same paradigm

rugged pier
#

For example^

subtle merlin
#

Apparently im a better coder tired than awake because ive figured this out on very little sleep but now i just cant? Why does it just crash on use?

chrome widget
#

Hmm yeah if I can take advantage of this, I could definitely do something more along the lines of "scaling jokers don't scale"

#

Because it's more reasonably to just expect to prevent values in card.ability or card.ability.extra from changing, rather than interpreting what changes mean

#

I don't know how many effects that might prevent that aren't necessarily scaling though

#

Often a major consideration for mod compatibility isn't "how would this work in a best case scenario" and more "what's the most generalized way to do this to account for code potentially being written in an suboptimal way"

crisp coral
#

what line is crashing

subtle merlin
crisp coral
#

💥

rugged pier
#

If you just make all numbers zero then it would remove 1. Total value as well

chrome widget
#

No it's more like id intercept the changes and revert any changed values back to what they were at the start

rugged pier
#

Hmm

chrome widget
#

Because setting them to 0 requires more assumption (I think) about what values mean

rugged pier
#

Easiest way is to do a temporary debuff?

chrome widget
#

Hmm

#

Well... arguably yeah

rugged pier
#

But idk how to differentiate between scaling and giving the ability

chrome widget
#

Yeah it would also debuff certain other jokers

rugged pier
#

Also scaling jokers that score at the same time

chrome widget
#

It's a tricky problem but not impossible. If it means learning more about metatables though, it'll be a fun challenge!!

rugged pier
#

Like split pants

rugged pier
chrome widget
#

I'm familiar with something similar because at my old job, we used a ReactJS UI, which typically has a paradigm that it doesn't update the UI until any value has changed and tracks changes to those values

rugged pier
#

:o

chrome widget
#

For performance reasons but also it's useful to the developer to know when the UI receives an update rather than it just being continuous

shell kite
#

How does tags generation works?
I want to generate a tag randomly

unkempt rover
tall wharf
unkempt rover
tall wharf
#

why exactly does it not work

unkempt rover
tall wharf
#

a what

unkempt rover
unkempt rover
# tall wharf a what

Basically, the card with the seal scores points even if it is not to score in the poker hand played.

dense wedge
#

I want to create a modded joker that creates one red-seal steel king every round, how would I go about doing this?

subtle merlin
#

How would i get the direction that a card is facing?

unkempt rover
scarlet spire
#

what about it doesn't work

vague crest
#

is there a readily available database with all the code names for like, money colored text, mult text, and all that fun stuff in joker descriptions?

subtle merlin
vague crest
#

YAYY ty

subtle merlin
#

We really should get someone to pin the wiki here, or maybe that mod starter pack thing that was mentioned this morning

vague crest
#

might be my fav joker art ive drawn

#

i drew a bunch for femto labs collection too but i think i have a much better grasp on pixel art now

sturdy compass
#

Is this a reference to MTX Whales?

#

Absolute banger of a card art btw

vague crest
#

not a reference to anything specific just found a really cool photo i liked alongside some others looking for whales

sturdy compass
#

I meant the functionality but that's still neat

vague crest
#

ohhh no not sure what that is 🙏

sturdy compass
#

Like a Microtransaction Whale lol

vague crest
#

ohhhh i see

#

in my head the cards are little plankton

#

in a way we are all the whale

subtle merlin
unkempt rover
native zinc
#

how can i tell if you're in the big blind shop

#

G.GAME.blind:get_type() == "Big" doesn't work in shops

#

i could store the last blind but i'd like to know if there's something better for this

peak tiger
#

How would one increase/set the money per remaining discard stat?

umbral zodiac
#

change G.GAME.modifiers.money_per_discard

#

does anyone know if theres some super awesome and efficient way to check both

  1. if the player's deck contains a specific hand
  2. and get the bare minimum cards that make up that hand
umbral zodiac
#

yea i had a funny idea for a deck that always makes you draw the hand with the highest score that's also in your deck

umbral zodiac
#

i have ideas but i feel liek all of them would cause exponential amounts of comparisons/checks if you got more cards

frozen turret
#

how do i get the mod i made to show up here?

native zinc
#

get_straight() is really slow function wise

#

52 choose 5 is 2598960

umbral zodiac
#

actually

#

do you know what function is used to get whatever hand is being selected by your current cards

#

i could just guess based on what happens if you """select""" all of your cards and then get a valid list of cards which applies to that hand

native zinc
umbral zodiac
#

hell yea thanks

chrome widget
#
    -- boss blind shop
elseif G.GAME.round_resets.blind_states.Small == 'Defeated' and G.GAME.round_resets.blind_states.Big == 'Upcoming' then
    -- small blind shop
elseif G.GAME.round_resets.blind_states.Big == 'Defeated' and G.GAME.round_resets.blind_states.Boss == 'Upcoming' then
    -- big blind shop
end```
native zinc
#

very useful

chrome widget
median grove
#

ive already installed pillow for resize.py but im getting this message from the script

C:\Users\philippe\AppData\Roaming\Balatro\Mods\PhilsAwesomeMod\assets\1x>py resize.py Jokers.png
Traceback (most recent call last):
File "C:\Users\philippe\AppData\Roaming\Balatro\Mods\PhilsAwesomeMod\assets\1x\resize.py", line 2, in <module>
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

umbral zodiac
paper zealot
#

It's also not absolutely necessary to use resize.py, and it's almost definitely easier to resize it with a proper image editor like GIMP or Paint.NET or Krita. Just make sure you resize with "Nearest Neighbor" or No filtering" and they'll look fine

umbral zodiac
#

how could you make a card draw first priority? i have this code that i feel like, should work, but when i eval it it never draws the list of cards first (regardless of when i run it)

native zinc
umbral zodiac
#

cryptid code is MOCKING me with this

sturdy compass
#

Cryptid code is stinky to reference

umbral zodiac
#

tbf theyre one of the few mods i know does draw priority

#

also my mod is a cryptid addon so i am inclined to look there first

sturdy compass
#

Unfortunate

frozen turret
#

ok so i have an init.lua file that changes the text of items but when the mod is launched, the regular game text appears to overwrite my modded text

#

theres still something slightly off

#

also chatGPT has no clue what the fuck is going on either so it cant help me

sturdy compass
#

Using CGPT will never work for this

frozen turret
#

i know this

frozen turret
tight notch
#

how would I make a boss blind check for a specific joker?

#

would this work?

hexed stump
#

I'd need to check my code though

tight notch
#

tested, it does not

umbral zodiac
#

skips the effort of having to do it yourself

subtle merlin
hexed stump
#

np

#

jusst saw it and was like oh shit I struggled figuring that out

tight notch
#

ok how do I force a loss

runic jay
#

How does one make it so a joker shows two messages? I currently have message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } }, and message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } }, but only the chips message shows up

wintry solar
#

Is there a reason you’re not using the default messages?

whole lava
#

how can i get cards in hand?

subtle merlin
whole lava
#

i want to make all card held in hand get an enhancement

subtle merlin
#

G.hand are the cards in hand

wintry solar
#

G.hand.cards

whole lava
#

ok thanks

glass scaffold
runic jay
wintry solar
#

Yeah, calculation has default messages so you don’t need to add them yourself, you just need to use the correct keys

runic jay
#

Tell me more, because this is something I don't really understand as I'm new to making Balatro mods

wintry solar
#

I’d recommend looking at the calculation guide on the smods wiki

whole lava
runic jay
robust falcon
#

Can you access the hand_chips and mult after a hand is played from a joker?

frozen turret
glass scaffold
wintry solar
faint yacht
#

...what would be the return for the context.check_enhancement? 🤔

wintry solar
snow vale
#

how can i level up a poker hand?

robust falcon
snow vale
wintry solar
#

Add level_up_hand = "handname"

glass scaffold
compact valve
#

hello, I've been looking into modding balatro with no prior experience. found out about steammodded, examplemod, and the basic process of setting up a joker, but where do I go to figure out implementing specific effects, say a joker that scales mult for played stone cards?

snow vale
#

how can i retrigger first scoring card? ik how to retrigger every scoring card, but not the first one specifically

primal terrace
#

It only retriggers context.scoring_hand[1], which is the first card in the played hand

runic jay
# wintry solar Can you show the entire return block?

Sorry it took so long, I was doing something, but here it is return { mult_mod = card.ability.extra.mult, chip_mod = card.ability.extra.chips, message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } }, message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } }

snow vale
#

wait what??

#

main problem is that i cant know what's the problem

turbid igloo
#

is there a way to make a joker disappear like the gros michel?

north lodge
#

Are you trying to have it make itself disappear and remove itself?

turbid igloo
#

is there a difference?

north lodge
#

I'm just asking exactly what you're trying to achieve

turbid igloo
#

no i just dont know the difference, can you explain it?

north lodge
#

This is Gros Michel remade with SMODS, I would highly suggest looking through its source to understand what you're trying to achieve.

turbid igloo
#

okok i understand

#

so extinct you cant find it in the shop anymore

wintry solar
turbid igloo
#

but what if i whant it just to remove itself?

#

want*

runic jay
vale quarry
#

Hey all, I started working on a seed finder software (heavily inspired by Immolate and The Soul but CPU-bound). I don't know if it is the right place to discuss that, but if you are interested, here is the link: https://github.com/izanagi1995/balatro-seed-finder. It was built with ease-of-use, performance, and custom filters in mind. At some point, I would like to use it at a high scale to index all Balatro seeds.

I would love any feedback, ideas, or contributions 😊

wintry solar
north lodge
vale quarry
north lodge
#

Aha I see! I didn't realize that immolate used the GPU. That makes sense!

vale quarry
#

I still get solid results even on the CPU, depending on the complexity of the filter, it can scan around 50M seeds per minute on my M2 Pro. I get results for any of the current filters in less than 2 minutes.

north lodge
#

And of note, just because it concerns another question I had been wondering about, there isn't a DLL involved here right? Just c/cpp code?

snow vale
#

how can i create a negative card?

vale quarry
north lodge
snow vale
#

yeah but i have to create it

#

i thought something like this would work

vale quarry
#

@north lodge , don't hesitate to let me know if you give it a go !

violet void
#

If I remember correctly there was a "card_eval_status_text" in smods right? does anyone know which one it is

robust falcon
wintry solar
snow vale
#

oh

#

okk tysm

robust falcon
#

Is there a way to get the current blinds score?

snow vale
#

is there something wrong here?

wintry solar
#

Capital P

snow vale
#

epik

#

why isn't this working?

wintry solar
#

Because I here is a card object not a string

snow vale
#

oh

#

so how do i do it so it works?

faint yacht
#

i.config.center_key iirc?

runic jay
#

Like it doesn't even give the mult and chips now

wintry solar
runic jay
#

Here's a picture to make it more clear

spice wadi
#

Can you show the entire code

#

@runic jay

wintry solar
manic rune
#

replace number with your card.ability.extra stuff from before

runic jay
#

oh

#

I am an idiot it appears

#

yeah it works now

#

Just didn't think of changing the number to the number of the thing

cobalt iron
#

Is there a way to check how much mult there is while you are playing a hand?

manic rune
#

mult

#

its literally just mult btw

rare torrent
#

how can i change the main menu ace card and gradient? can't seem to find any doccumentation online

spice wadi
violet void
red flower
violet void
violet void
#

I only need the card to to do that little shaking (like juice_up) and display a message, with no other effect

red flower
#

then yeah

violet void
rare torrent
daring fern
#

#

Also how would one have a card have multiple editions?

#

And multiple of all things that can't have multiple things?

manic rune
#

smtcom asking the real questions of the year

faint yacht
#

...quantum editions and quantum seals?

ripe kestrel
#

how can i make a new rarity?

spice wadi
violet gulch
#

So I'm trying to determine which cards in the played hand are unscored and feel I like it should be simpler than I'm making it. Currently my thinking is just compare the G.play.cards to context.scoring_hand and if G.play.cards[i].id doesnt exist in the scoring hand, that would be how I'd know its not scored. Not that that is terribly difficult, but before I do it, I'm just checking to make sure there isn't some scored flag on the individual cards that I'm missing.

pure salmon
#

is there any way i can check if the discarded hand contains another hand? i found G.FUNCS.get_poker_hand_info(G.hand.highlighted) in cryptid but it only seems to return the poker hand itself, i.e if i played a flush five it would only return 'Flush Five', whereas i would want a table like {'Flush Five', 'Five of a Kind', 'Four of a Kind', 'Flush', ...} etc.

red flower
pure salmon
violet gulch
pure salmon
#

i don't blame you lol. the wiki is missing a lot at the moment

#

also, is there a context specifically for buying a booster pack? context.buying_card does not trigger on booster packs, and i also don't want a context that triggers when i, say, skip for a booster pack

violet gulch
#

so context.open_booster would be no good because it triggers on boosters from skips right?

pure salmon
#

yeah

red flower
#

there's not afaik

pure salmon
#

for a few cards where i'm using buying_card which includes shop cards and vouchers, but ideally i'd want them to trigger on any shop purchase

#

guess i'll probably have to patch that in

violet gulch
#

can you hook ease_dollars?

pure salmon
#

isn't ease_dollars also used in boss blinds like the ox?

violet gulch
#

local old_ease_dollars = ease_dollars function ease_dollars(mod,instant) local ret = old_ease_dollars(mod,instant) G.E_MANAGER:add_event(Event({ trigger = 'immediate', func = function() SMODS.calculate_context({money_changed = true}) return true end })) return ret end

red flower
#

ease_dollars is used for any money manipulation so it's definitely not what you want

pure salmon
#

yeah i thought that

violet gulch
#

my current thought (sorta hacky) would be could do that, set a flag for money spent, then use the context.open_booster and check for that money spent flag

#

but depending on context triggering order, could fail I guess

red flower
#

i think just patching where boosters are bought is just easier

pure salmon
#

yeah i'll look into that

violet gulch
tardy juniper
#

how do i make a joker create a specific joker?

red flower
tardy juniper
#

okay, thanks :3

violet gulch
violet gulch
pure salmon
#

oh

rare torrent
#

how can i make this trigger on a shop reroll? it's supossed to 2 the mult every reroll that there isn't a rare joker and reset if there is, but right now it's doing nothing

    local found_rare = false

    -- Assuming shop.jokers is the table with current jokers after reroll
    for _, joker in ipairs(shop.jokers or {}) do
        if joker.rarity and joker.rarity >= 3 then
            found_rare = true
            break
        end
    end

    if found_rare then
        self.ability.mult = 4
    else
        self.ability.mult = self.ability.mult * 2
    end

    self:juice_up()
end,```
pure salmon
# pure salmon oh

i was about to say you can still use context.individual and context.other_card, just with an extra context.cardarea == "unscored" check

pure salmon
#

it's used in vanilla for flash card

violet gulch
#

I was trying to destroy cards anyway, so was using context.destroy_card which I realized was the card object. I said it was a dumb question. I'm not caffiened enough yet.

pure salmon
#

i have asked much stupider questions here lol you're good

tardy juniper
#

okay, so... how do rarities work? am i getting it right?

rare torrent
# pure salmon `context.reroll_shop` exists if that's what you're looking for

what like this? ```if waffle and context.reroll_shop then
local found_rare = false
for _, joker in ipairs(context.reroll_shop) do
if joker.rarity and joker.rarity >= 4 then
found_rare = true
break
end
end

if found_rare then
    waffle.ability.mult = 4
else
    waffle.ability.mult = (waffle.ability.mult or 4) * 2
end

waffle:juice_up()

end

calculate = function(self, card, context)
if context.joker_main then
    return {
        mult = self.ability.mult or 4,  -- fallback to 4 if nil
        colour = G.C.WHITE,
        card = self
    }
    end
end,

}

#

it's crashing

pure salmon
stiff quiver
#

whats the variable for the cards in the deck? lua for _,playing_card in ipairs(all cards in deck) do

pure salmon
#

G.playing_cards

#

do you mean in full deck or currently in the deck?

stiff quiver
#

full deck

pure salmon
#

G.playing_cards is correct

stiff quiver
#

thanks!

copper thorn
#

i need help, i wanna make a joker that works like blueprint but increases how many time it copies the joker each time a straight is played, how could i do it ?

rare torrent
# pure salmon `context.reroll_shop` only exists in the calculate function, move all the rare-f...

ok i got something like this ```calculate = function(self, card, context)
if context.reroll_shop and type(context.reroll_shop) == "table" then
local found_rare = false
for _, joker in ipairs(context.reroll_shop) do
if joker.rarity and joker.rarity >= 3 then
found_rare = true
break
end
end

    if found_rare then
        self.ability.mult = 4
    else
        self.ability.mult = (self.ability.mult or 4) * 2
    end

    self:juice_up()
end

if context.joker_main then
    return {
        mult = self.ability.mult or 4,
        colour = G.C.WHITE,
        card = self
    }
end

end,

tardy juniper
#

why does my rarity say error...?

#

im probably just missing something simple

spice wadi
tardy juniper
pure salmon
# copper thorn i need help, i wanna make a joker that works like blueprint but increases how ma...

the blueprint code starts at line 3831 in this file, by the looks of it you would need a variable in config.extra that increments by 1 every time you play a straight (if you need help with that, Ctrl+F "runner" in the same file), and then just trigger SMODS.blueprint_effect(card, [joker to retrigger], context) with a for loop like so:

-- replace "repetitions" with whatever you end up calling your variable
for i = 1, card.ability.extra.repetitons do
    SMODS.blueprint_effect(card, [joker to retrigger], context)
end
pure salmon
normal crest
pure salmon
#

oh yeah, it gets returned in blueprint

#

hm

normal crest
#

G.shop_jokers.cards

crisp coral
#

close enough

rare torrent
#

ok imma try that now thanks guys

copper thorn
pure salmon
normal crest
tardy juniper
#

nvm, got it to work

tardy juniper
#

thanks tho :3

crisp coral
#

wtf is merge effects

pure salmon
wintry solar
normal crest
#

its not much more complex than your for loop

copper thorn
pure salmon
#

that's fair enough, i know absolutely nothing about SMODS.merge_effects so maybe someone else here is better equipped to make that work

normal crest
crisp coral
wintry solar
#

Yeah it can be used for that

spice wadi
# tardy juniper ~~whats that...~~

Find the bit about text localisation on the SMODS wiki
Basically it's a file containing all the text for your mod in a particular language
I'm guessing since you didn't set any localisation for your rarity, it can't find the name for it and puts error instead

rare torrent
#

ok i have 2 more questions
1- is it possible to replace the +4 mult in the description with the current mult?
2- how do i make it show a message when rerolled like +8 mult or +16 mult?

    key = "waffle",
    loc_txt = {
        name = "Waffle",
        text = {
            "{C:mult}+4{} Mult, {X:mult,C:white}X2{} every",
            "shop reroll without finding",
            "a {C:red}Rare{} Joker"
        }
    },
    atlas = "waffle",
    rarity = 3,
    cost = 10,
    unlocked = true,
    discovered = true,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = true,
    
        -- Initial multiplier state
    ability = {
        mult = 4
    },
    
    juice_up = function(self)
    -- Optional: particle/sound effect or debug print
    print("Waffle juice up triggered! Current mult: " .. tostring(self.ability.mult))
end,

calculate = function(self, card, context)
    -- Only run multiplier update if reroll is happening
    if context.reroll_shop then  
        local found_rare = false
        for _, joker in ipairs(G.shop_joker or {}) do
            if joker.rarity and joker.rarity >= 3 then
                found_rare = true
                break
            end
        end

        if found_rare then
            self.ability.mult = 4
        else
            self.ability.mult = (self.ability.mult or 4) * 2
            card_eval_status_text(self, 'extra', nil, nil, nil, {mult = self.ability.mult, text = "+" .. self.ability.mult})
        end

        self:juice_up()
    end

    if context.joker_main then
        return {
            mult = self.ability.mult or 4,
            colour = G.C.WHITE,
            card = self
        }
    end
end,

}```
pure salmon
spice wadi
pure salmon
#

also, card.ability.extra is preferred over self.ability

spice wadi
snow vale
#

(how do i fix it)

whole lava
#

is this one print lol for every card held in hand?

snow vale
#

yeah i think

#

not sure

rare torrent
# spice wadi 1. Yes, look into loc_vars 2. When rerolled, you can return `{message = "your me...

ok part 2 is working but in the description it's just showing nil value ```local waffle = SMODS.Joker{
key = "waffle",
loc_txt = {
name = "Waffle",
text = {
"{C:mult}+#1#{} Mult, {X:mult,C:white}X2{} every",
"shop reroll without finding",
"a {C:red}Rare{} Joker"
}
},
loc_vars = function(self)
return {self.ability.extra or 4}
end,

atlas = "waffle",
rarity = 3,
cost = 10,
unlocked = true,
discovered = true,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,```
wintry solar
whole lava
snow vale
#

hmm

#

idk

#

ask someone good at coding

whole lava
#

oh ok

pure salmon
#

is there a reason for _, card in ipairs(table) is preferred over just for card in table

spice wadi
wintry solar
rare torrent
# spice wadi Can you send the entire code Because it seems that you've entirely removed the c...
    key = "waffle",
    loc_txt = {
        name = "Waffle",
        text = {
            "{C:mult}+#1#{} Mult, {X:mult,C:white}X2{} every",
            "shop reroll without finding",
            "a {C:red}Rare{} Joker"
        }
    },
    loc_vars = function(self)
        return {self.ability.extra or 4}
    end,

    atlas = "waffle",
    rarity = 3,
    cost = 10,
    unlocked = true,
    discovered = true,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = true,

    ability = {
        extra = 4
    },

    juice_up = function(self)
        print("Waffle juice up triggered! Current mult: " .. tostring(self.ability.extra))
    end,

    calculate = function(self, card, context)
        -- On shop reroll
        if context.reroll_shop then  
            local found_rare = false
            for _, joker in ipairs(G.shop_joker or {}) do
                if joker.rarity and joker.rarity >= 3 then
                    found_rare = true
                    break
                end
            end

            if found_rare then
                self.ability.extra = 4
            else
                self.ability.extra = (self.ability.extra or 4) * 2
                return {
                    message = "+" .. self.ability.extra .. " Mult"
                }
            end

            self:juice_up()
        end

        -- Main joker effect
        if context.joker_main then
            return {
                mult = self.ability.extra or 4,
                colour = G.C.WHITE,
                card = self
            }
        end
    end
}```
spice wadi
rare torrent
#

oh okay

snow vale
#

how can i make that show correctly?

spice wadi
#

Can you show the original

#

The code I mean

snow vale
#

oh ok

spice wadi
snow vale
#

i mean i cant show the whole code, it's too long..

west prism
spice wadi
# snow vale

Okay I see the issue
I don't think you can do that
Have multiple formatting things one after the other like that

snow vale
tardy juniper
#

how... can i make it create a joker when sold?

snow vale
#

or i simply cant

rare torrent
# spice wadi I said a *table* called extra Like vars = { extra = { mult = 4}} And for loc_va...

wait im confused, like this? ```local waffle = SMODS.Joker{
key = "waffle",
loc_txt = {
name = "Waffle",
text = {
"{C:mult}+#1#{} Mult, {X:mult,C:white}X2{} every",
"shop reroll without finding",
"a {C:red}Rare{} Joker"
}
},

loc_vars = function(self, info_queue, card)
    return {card.ability.extra.mult or 4}
end,

atlas = "waffle",
rarity = 3,
cost = 10,
unlocked = true,
discovered = true,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,

ability = {
    extra = {
        mult = 4
    }
},

juice_up = function(self)
    print("Waffle juice up triggered! Current mult: " .. tostring(self.ability.extra.mult))
end,

calculate = function(self, card, context)
    -- On shop reroll
    if context.reroll_shop then  
        local found_rare = false
        for _, joker in ipairs(G.shop_joker or {}) do
            if joker.rarity and joker.rarity >= 3 then
                found_rare = true
                break
            end
        end

        if found_rare then
            card.ability.extra.mult = 4
        else
            card.ability.extra.mult = (card.ability.extra.mult or 4) * 2

            -- Optional message when rerolling
            return {
                message = "+" .. card.ability.extra.mult .. " Mult"
            }
        end

        self:juice_up()
    end

    -- Main joker effect
    if context.joker_main then
        return {
            mult = card.ability.extra.mult or 4,
            colour = G.C.WHITE,
            card = self
        }
    end
end

}``` it's crashing tho

normal crest
spice wadi
spice wadi
rare torrent
normal crest
# snow vale

the game parses this kind of text on startup, you're just adding plain text without the parsing

normal crest
spice wadi
#

If the issue continues send a screenshot of the full code with the line numbers visible

west prism
#

Is there a context right after context.hand_drawn? Trying to make a joker to always draw additional cards but context.hand_drawn is only true if there's space in hand to draw into

rare torrent
normal crest
#

your loc_vars function is wrong

#

you want to return { vars = { card.ability.extra.mult } }

rare torrent
west prism
wintry solar
#

That doesn’t tell me at all what you’re trying to create

rare torrent
spice wadi
normal crest
#

that's notepad++

rare torrent
spice wadi
#

You should probably use visual studio code and install the lua extension

#

Makes things a lot easier imo

rare torrent
#

i don't like visual studio code that much tho

whole lava
#

idk why it doesn't print lol in lovely log

pure salmon
west prism
pure salmon
#

doesn’t hand_drawn trigger after the cards enter your hand anyways

wintry solar
pure salmon
#

where are all these contexts coming from

wintry solar
#

I am the context wizard

pure salmon
#

smods really needs some better docs lol, i’m not qualified enough to write them

wintry solar
#

Oh yes i changed it whoops

west prism
#

nice ty both

rare torrent
#

wait ok just found out this isn't working ```calculate = function(self, card, context)
-- On shop reroll
if context.reroll_shop then
local found_rare = false
for _, joker in ipairs(G.shop_joker or {}) do
if joker.rarity and joker.rarity >= 3 then
found_rare = true
break
end
end

        if found_rare then
            card.ability.extra.mult = 4
        else
            card.ability.extra.mult = (card.ability.extra.mult or 4) * 2

            -- Optional message when rerolling
            return {
                message = "+" .. card.ability.extra.mult .. " Mult"
            }
        end``` because i did get a rare joker in the shop and it still multiplied it by 2
wintry solar
#

G.shop_joker.cards

normal crest
red flower
tardy juniper
#

how can i make it create this card when sold...?

normal crest
#

use only context.selling_self

worthy stirrup
#

Do yall have any ideas how I could animate these in the collection? this is the code im using

update = function(self, card, dt)
        -- Store animation state in self
        self._counter = self._counter or 0
        self._timer = (self._timer or 0) + dt

        -- Update animation every 0.05 seconds
        if self._timer >= 0.5 then
            self._timer = self._timer - 0.5
            self._counter = (self._counter + 1) % 4
            self.pos.x = self._counter + 4 -- Update self's position directly
        end
rare torrent
tardy juniper
normal crest
#

G.shop_jokers.cards

rare torrent
normal crest
#

with the s

#

jokerS

rare torrent
#

oh

#

wait my bad

wintry solar
#

Yeah i just copied what you had because I don’t know all the shop areas off the top of my head 😂

normal crest
#

What are all the contexts added since may 9th

sonic cedar
#

can anyone tell me why this is defining as a table?

red flower
rare torrent
normal crest
normal crest
sonic cedar
worthy stirrup
#

Im just wanting to check, in the docs it says "Cards are considered added when they become undebuffed (in this case, from_debuff will be true)." if from_debuff comes in as false, does that mean it was purchsed/spawned in and will never trigger from undebuffing?

whole lava
#

how to use the x mult and x chips in talisman mod?

red flower
scenic steeple
#

so, this is doing everything I need it too except for 1 thing, it's not actually giving $2 when an ace or 8 is played, so uhm please help I beg

wintry solar
formal parrot
#

dollars =card.ability.extra.dollars

scenic steeple
#

grand

#

thx

maiden phoenix
#

out of curiosity

red flower
#

it's the anaglyph tag timing during the evaluation screen

worthy stirrup
scenic steeple
#

snow

worthy stirrup
scenic steeple
pure salmon
#

is there a function to get base.nominal that returns something like 0 or nil for rankless cards

modern kindle
#

What are you trying to do

onyx sonnet
pure salmon
modern kindle
#

You could just check if it has m_stone i guess and return 0 manually

pure salmon
#

why the fuck does get_nominal() return -80.33... for stone cards

red flower
#

just use SMODS.has_no_rank

pure salmon
#

got it

modern kindle
red flower
modern kindle
#

Oh that reminds me of a question i had you can prob answer N

red flower
#

shoot

modern kindle
#

Can I still detect modded suits from card.base.suit or is that still pulled from has_no_suit
I remember awhile ago I believe that's where modded ones were messed with for some reason

tall wharf
#

yay

tall wharf
#

unfortunately the mod authors are dynatext and it might affect performance somewhat

wintry solar
#

You didn’t update galdur!

tall wharf
snow vale
#

how can i know if a card is destroyed?

sturdy compass
red flower
#

enjoying the new smods release

sturdy compass
#

Does the new SMODS automatically pass in a pseudoseed now?

red flower
#

for pseudorandom_element it just takes the string like pseudorandom does

sturdy compass
#

Huge

fallow condor
#

I know it's crashing because of the assets not working correctly, but I can't find why it is crashing because all the sizes should be right.

harsh raft
#

anyone know what the gluttonous joker is called in the game files I'm getting this
INFO - [G] Error: Joker center not found for j_gluttonous_joker

fallow condor
#

instead of j_gluttonous_joker

red flower
#

j_gluttenous_joker

harsh raft
fallow condor
#

mb

#

it's j_golden and not j_golden_joker

#

why gluttenous?

pulsar furnace
#

how do i make that a consumable its not destroyed after using it? ( in context.using_consumable )

unborn bay
primal robin
#

Of course it is, every letter is a separate ui element

unborn bay
#

precisely

fallow condor
unkempt rover
#

Can someone help me, I want to make a seal that when the card with the seal is played it is always scored

modern kindle
#
    keep_on_use = function(self, card)
        return true
    end
pulsar furnace
modern kindle
#

oh my bad gangster, i thought it was a consumable

hybrid shadow
#

will the new smods release fuck my code up at all

fallow condor
fallow condor
#

not sure tho 😭

sturdy compass
#

Cuz that should be a static text field, should it not?

unborn bay
#

its probably easier to add the marquee effect to dynatext instead of it being in every goddamn ui element in the game

sturdy compass
#

That seems like an egregious reason to drop performance 😭

unborn bay
#

plus it makes sense to be in dynatext

modern kindle
#

its simple, have a system that wont mind the drop

sturdy compass
#

Well yeah but that’s still a little wonky

unborn bay
#

also its not like dynatext is gonna immediately gonna fuck up your day anyway

#

it won't kill your grandma

#

unless the author string is very very very long and at that point they might as well put et al.

red flower
#

& co

fallow condor
#

what is the thing for current money called?
Like the card.ability.extra_value in card.ability.extra_value = card.ability.extra_value + card.ability.extra.price

red flower
modern kindle
unkempt rover
red flower
fallow condor
#

I'm only spreading misinformation 😭

red flower
#

nah this is just undocumented

modern kindle
#

insert undocumented func sticker

fallow condor
modern kindle
#

yea, thats G.GAME.dollars

fallow condor
#

at end of round in this case

#

but I don't think that matters

fallow condor
fallow condor
#

?

wintry solar
#

I’m not 100% sure if that would update the ui, you could use ease_dollars(0.5*G.GAME.dollars)

violet gulch
unkempt rover
red flower
red flower
unkempt rover
gusty hatch
red flower
gusty hatch
#

there's a cute cat too

#

kitty~~

#

yay

violet gulch
#

the cat is very cute

gusty hatch
#

its adorable

#

:3

red flower
gusty hatch
#

really!?

#

thats awesome

#

youve got to be very advanced then

#

im learning the ropes myself rn

#

its my 4th day

red flower
#

good luck :3

gusty hatch
#

sankiuuuu

#

do you want me to share my progress?

#

i got some cool jokers made

red flower
#

i mean if you want to

violet gulch
#

I swear the worst part is trying to sort out art for these jokers

gusty hatch
#

I remember that @manic rune and @wind steppe helped me a lot in the beggining

#

I would ask them for stuff too

gusty hatch
gusty hatch
unkempt rover
#

@red flower

unkempt rover
violet gulch
sick viper
#

anyone knows how to change the card of the title screen and change it for a joker?

gusty hatch
#

I made this three

#

I understand they look rookie

#

but they dont hurt the eyes

#

(I hope)

#

As soon as i keep practice it will get better

red flower
red flower
gusty hatch
#

im right now studying how to make the third effect

violet gulch
gusty hatch
#

G.Game stores gamestate variables

#

I'm hoping that accesing that variable makes me able to know the current player money

magic summit
# gusty hatch

These look cool honestly one of my favourite designs ive seen recently

gusty hatch
gusty hatch
violet gulch
#

Here are mine that currently have something other than a placeholder

gusty hatch
violet gulch
#

Left two my brother did w/ AI help

gusty hatch
#

I love those pets!?

#

What are their name?

#

furrets?

#

nono

violet gulch
#

Otters

gusty hatch
#

Otters!!!

#

I love those

#

they are very detailed v nice

#

The concept of the casino joker has a lot of potential

#

and the bowling joker is funny

#

but i would correct it by giving you a little help:

violet gulch
#

I've got two main themes right now:
Bowling
Casino/Blackjack

gusty hatch
unkempt rover
gusty hatch
#

This is the balatro palette

gusty hatch
# gusty hatch

@violet gulch always colour using the original palette

glad osprey
gusty hatch
#

its supposed to be an extension of other behaviour its why its worded that way

#

but i gochu ill change it

#

it wont say "free" anymore

unborn bay
#

feel like this is just wraith 2

gusty hatch
unborn bay
#

intriguing

glad osprey
#

nah it makes sense just funny lol

gusty hatch
#

TRUE THAT

#

I was just trying to extend the concept of "beverages" from diet cola

turbid maple
#

the meta is credit card debt into alcohol speedrun

#

its peak

gusty hatch
#

its a cool observation

violet gulch
gusty hatch
#

ill change the description and make a capture one second gang

gusty hatch
#

I forgot about the third texture; but the other two have an amogus hidden somewhere

#

can you guys find the two amogus? uwu xd

unkempt rover
#

It's the code I put in the mod N'

red flower
#

did it work

unkempt rover
#

Don't

red flower
#

can i see the whole code again

unkempt rover
red flower
#

please

gusty hatch
#

ok guys I can confirm that this does set your money to cero

unkempt rover
#

@red flower wrong code

gusty hatch
#

that code was cool tho

#

did you happen to add at any point a tarot card to the player?

#

i need that behaviour figured out

#

@unkempt rover can i copy your homework?

unkempt rover
gusty hatch
#

thank you

red flower
gusty hatch
red flower
gusty hatch
#

<@&1133519078540185692>

unkempt rover
karmic creek
#

Why are you doing it again

gusty hatch
#

sorry to interrupt

red flower
# gusty hatch this one

i wouldnt recommend pinning that link specifically because it doesnt point to the main page, also it's already in the thread in modding-chat

gusty hatch
#

because in my first comment i havent commented the link

red flower
polar tulip
#

Oh man

exotic hedge
#

💔

primal robin
karmic creek
#

I’m not pinning resources in this channel - egg will pin in threads but in main channels it’s usually exclusively rules posts

gusty hatch
#

there are a lot of miscellaneous threads there

#

finding the docu was to me unexpected,

#

but i understand you make the rules

#

thank you for your time regardless

modern kindle
# daring fern

my only real guess is to look at how smods implements quantum enhancements and try to apply that methodology to editions
i think it was something talked about loosely before but i never saw anything further come of it

#

actually, sorry for ping @chrome widget

you had/have a quantum editions patch would you be able to pass that here

unkempt rover
#

Worked

chrome widget
gusty hatch
#

ok guys, it looks like this is not the way to spawn a card:

chrome widget
#

It's inherently very simplified and is based on my specific single joker use case

compact valve
#

how does one start a balatro mod that reworks existing jokers

gusty hatch
daring fern
modern kindle
daring fern
gusty hatch
final jewel
#

What is wrong in my code I keep crashing when I want to see My consumable

daring fern
gusty hatch
#

ok well this does not work

daring fern
gusty hatch
gusty hatch
#

which is entirely my fault

#

I'm sorry

final jewel
daring fern
chrome widget
# modern kindle icic i know something wants to do something with quantum editions (hell at some ...

Unlike with Quantum Enhancements, this actually sets permanent values on a Joker that it then calculates as normal using the lovely patch. In this specific case, it's based on a Joker that treats all editions as Holo, Foil, and Polychrome in addition to their base effect, so right now the code just adds those three in addition to whatever edition is being set. You'l have to chane the code to get something to directly set and unset quantum editions

modern kindle
#

thank you very much bestie
@daring fern you can take a gander at what winter has done

gusty hatch
snow vale
#

how can i know if a joker is destroyed?

daring fern
snow vale
#

to give mult for every destroyed specific joker

daring fern
snow vale
#

hm i see

gusty hatch
#

My mod now has three functioning jokers!!!!

snow vale
#

the wine looks like the acid from deltarune chapter 2

gusty hatch
#

Thank you everyone I'm really learning from yall

pure salmon
gusty hatch
#

I know its out its just life got me yk?

#

Ill get there I promise

modern kindle
#

i havent even finished undertale yet

gusty hatch
snow vale
gusty hatch
#

the final boss fights are super cool and difficult

snow vale
#

ive already finished deltarune...

modern kindle
#

asgore happened on my pacifist route and i stopped there

snow vale
#

is that a joke

modern kindle
#

no

gusty hatch
#

asgore is very good boss

snow vale
#

also it's a neutral route

modern kindle
#

once i saw what flowey did to my boy

gusty hatch
modern kindle
#

i ceased

snow vale
#

or maybe pacifist but not true pacifist

snow vale
gusty hatch
#

cool beans

#

anyway; I'm going to flex my mod in general 💪

#

ill see you around in a sec

snow vale
#

ok

modern kindle
#

one day ill probably finish the game but
who knows when cause i have alot to get through anyway

mossy helm
#

hey everyone 👋
it's me! A random user struggling with atlas

snow vale
#

yay

#

what do you need

copper thorn
#

hey it's me again, im trying to make a card that retrriger every stone card

what am i supposed to put instead of "is_face" ?

chrome widget
#

if SMODS.has_enhancement(context.other_card, 'm_stone') then if you want to check for quantum enhancements
if context.other_card.config.center.key == 'm_stone' then if you only want to check base enhancements

snow vale
copper thorn
#

thanksssss

modern kindle
modern kindle
#

more you know

final jewel
snow vale
mossy helm
#

cream

chrome widget
#

has_enhancement checks for both base and sents the quantum enhancement context

modern kindle
#

oic