#💻・modding-dev

1 messages · Page 374 of 1

next timber
#

funnn

timid parrot
#

those are basically your edge cases for removal

sullen fern
#

classic medal

red flower
#

G.playing_cards

burnt cairn
#

thank you 🫡 this would go in the jokers calculate function right

timid parrot
#

otherwise, loop through G.deck and fix all the glass cards

shut crater
burnt cairn
#

then in the joker but seperate to calculate

#

got it

sullen fern
#

and comparison with the regular medal

bleak coral
#

Is there any way to make imgui work w/ balatro mods? Otherwise, is there a basic UI library or smth? Making a personal project, too lazy/not that good at modding to make an actual ui

spice wadi
#

i might be crazy but where on earth are the variables for things like lucky card odds? they seem to exist according to the localisation but theyre not used ingame and i cant find where theyre defined

bleak coral
#

not that good at balatro modding but i've looked into a lil, and thats my best guess

burnt cairn
#

nah #5# refers to the 5th variable in config.extra

spice wadi
burnt cairn
#

which would be defined somewhere mysterious and hidden

red flower
spice wadi
#

i dont think i follow

red flower
#

they are hardcoded in loc_vars too

spice wadi
#

oh where is this?

red flower
#

common_events.lua

spice wadi
#

and since its hard coded, how would i access that as a variable

red flower
#

you can't

#

you need to patch the code

worthy stirrup
#

How could i get the most abundant suit

#

or like, get the amount of cards in a suit

red flower
#

loop through G.playing_cards and count them

spice wadi
#

sorry if this is a question with an obvious answer

worthy stirrup
# red flower loop through G.playing_cards and count them

yea, I mostly just dont know where I could place this in my code

SMODS.Blind {
  key = "SmearBoss",
  loc_txt = {
    name = "The Ugly",
    text = {
      "Debuffs Most Abundant Suit in Deck",
      "(#1#)"
    }
  },
  atlas = 'Bosses',
  pos = { x = 0, y = 1 },
  boss_colour = HEX('9f805e'),

  debuff = {
  },

  boss = {
    min = 1,
    max = 10,
  },

  loc_vars = function(self)
    return { vars = {} }
  end
}
red flower
red flower
worthy stirrup
#

oh, so just write the code twice?

red flower
#

yeah

worthy stirrup
#

oh

red flower
#

i mean you can make a helper function

worthy stirrup
#

ngl, i thought functions were only for jokers

red flower
#

you can add any functions you want to the code

worthy stirrup
#

oh wait

#

i mistook it for events

#

so, if i want to make it a function, i could give it a name and have it be name = function()

#

or would i just have it be function()

spice wadi
red flower
#

yes

spice wadi
#

okay thank you very much

red flower
#

im not sure why smods doesn't do that already

spice wadi
#

wait maybe it does i dont even know how to check

red flower
#

i dont see it in the lovely/dump so it doesn't seem like it

burnt cairn
#

fairly confident theres no unclosed brackets here

red flower
#

you're missing a comma

burnt cairn
#

thanks error message

red flower
#

please get an editor with syntax error highlighting

burnt cairn
#

vscode is scary 💥

red flower
#

vscode is a text editor

burnt cairn
#

💥

spice wadi
red flower
#

like it literally looks less complicated than notepad++

spice wadi
#

if i were to make a patch to add these variables, should i make a push/pull request

red flower
#

you could

#

i feel like they would want the entire logic replaced by take_ownership tho

spice wadi
#

i have no idea how that would work in this scenario

#

is this smth that would just be better to suggest or mention in their discord 😭

red flower
#

i think so

wintry solar
#

I’m not sure if smods should make lucky cards easily accessible or not tbh

burnt cairn
#

its a modding engine would you not want to have everything easily accessible

wintry solar
#

Well that’s what take ownership is for

#

Or do the lucky checks bypass that?

red flower
#

i havent tested but it seems hardcoded

#

if it's not then that's an easier solution to @spice wadi 's problem

burnt cairn
red flower
#

go to extensions and search for lua

#

download the one by sumneko

worthy stirrup
#

wait, is debuff{} only called once?

spice wadi
worthy stirrup
#

for the blinds

scarlet thorn
#

Trying to make a second button like the sell button, and I have all the code exactly the same as vanilla, its just in a different child. Every instance of "use_button" was edited to have my button aswell with the same functionality

worthy stirrup
#

plus it isnt crashing so i dont get any info from it

#

oh right, heres the code

burnt cairn
#

alright got it not crashing nom the add_to_deck and remove_from_deck arent doing anything though

#

this is correct isnt it

red flower
#

no

#

you don't want to take_ownership

#

you want to change the value directly in the card

burnt cairn
#

right

worthy stirrup
#

wait, i should check, can the boss's debuff = {} debuff more than one suit?

bleak coral
#

Anyone know if there's a way to get imgui, or an imgui-like library, to work as a mod? Working on a personal project, tried love-imgui but can't get it to render

placid star
#

this goes up 17 times after one round...

hybrid shadow
#

would it be possible to check if a card isnt in the deck by doing something like
context.cardarea != G.deck?

red flower
red flower
hybrid shadow
red flower
#

yes

spice wadi
#

this might be a stupid question again but why do none of these result in matches even tho i copied the code directly?

haughty hatch
#

hiyas, stumbling my way through making a music mod for my own personal use and am mostly figuring it out butttt

im having trouble figuring out what i would check to see if im in shop for the select_music_track function

at least i assume that is how i would do it

(also sorry to dump a question on top of the other questions)

spice wadi
#

oh also i did dump the lua i believe

#

no differences it seems

lofty sand
#

Hey guys, I'm having some trouble with a copy effect joker. Functionally, it's almost exactly the same as blueprint but it copies both adjacent jokers, except it can't be copied itself (so it doesn't crash from a recursive loop). The copy effect works fine, however the joker is also supposed to get the sell cost of the joker it's copying and subtract that from your money whenever it returns that jokers ability. This works fine for any joker that works during scoring, like any flat mult or chip jokers, retrigger jokers, or on card scoring jokers. However, this does not work on jokers whose abilities function outside of a blind, such as cartomancer, hallucination, even certificate. Does anyone have a suggestion on how I could fix that? lmk if you'd like to see my code and/or a clip showing the issue

quartz ravine
#

To be specific, I thought those mods would work by overwriting the directory of the game. Not so! It actually patches the code on startup when the game runs. So the actual running code may not resemble the balatro source directory

spice wadi
#

just wanna make sure im looking in the right places

quartz ravine
wintry solar
#

they need to match full lines

#

these aren't full lines

spice wadi
#

ohhhh i didnt realise that

#

makes sense

quartz ravine
#

great catch! I didn't notice it either

indigo whale
quartz ravine
#

Has anyone here posted about their mod on Reddit? I was looking for some more folks who might be willing to test it and let me know what they think 🙂

bleak coral
#

Anyone here know how I could have something like imgui for my mod with Steamodded?

tired kestrel
#

How do you detect the joker key? (just curious)

#

for draw step?

#

like a spesific joker?

sullen fern
#

idk why i made baseball card the giant enemy spider

quartz ravine
#

I am so happy about how this booster looks

quartz ravine
tired kestrel
#

But yeah good to know

quartz ravine
#

The joker would be like this

SMODS.find_card("j_Fox_IncrementalHermie")

#
if next(SMODS.find_card("j_Fox_IncrementalHermie")) then
  local joker = SMODS.find_card("j_Fox_IncrementalHermie")
spice wadi
#

ty everyone here who helped me i finally got that stupid patch working and lucky cards are variable controlled now 🤩

tired kestrel
#

Here's what I've at one point had at first or tried to.

tired kestrel
worthy stirrup
urban wasp
#

why is my edition sound crashing the game??

sullen fern
#

no that's bald bull

tired kestrel
#

I tried this but it didn't show the booster shader on the necromancer card.

SMODS.DrawStep {
    key = 'joker_shine',
    order = 11,
    func = function(self)
        if self.ability.set == 'Joker' and self:should_draw_base_shader() then
            local joker = nil
            if next(SMODS.find_card("Necromancer")) then
                joker = SMODS.find_card("Necromancer")
            end
            if joker then
                self.children.center:draw_shader('booster', nil, self.ARGS.send_to_shader)
            end
        end
    end,
    conditions = { vortex = false, facing = 'front' },
    conditions = { vortex = false, facing = 'front' },
}
red flower
#

you don't need to do all that

#

just self.config.center.key == "j_modprefix_jokerkey"

worthy stirrup
#

How could i make it so my boss blind divides mult by a number?

red flower
#

instead of drawstep

hardy mural
#

how would i apply post shaders to balatro without using reshade anyone know?

red flower
worthy stirrup
#

either works, but after is peferred

red flower
#

you can use calculate with context.final_scoring_step and do mult = mult/number

tired kestrel
# red flower also if it's only for one joker you can use `draw`

oh. and how do I do this to this?

SMODS.Joker{
    key = 'necromancer', 
    loc_txt = {
        ['en-us'] = {
            name = "Necromancer", 
            text = {
                "Create three Ethereal Tags",
                "when Blind is selected"
            }
        }
    },
    atlas = 'Jokers',
    pos = { x = 0, y = 0 },
    config = {
        extra = {
            -- No additional properties required for now
        }
    },
    rarity = 2,
    cost = 4,
    calculate = function(self, card, context)
        -- I don't know
        end
}
red flower
sullen fern
hallow forge
#

don't forget legendary

sullen fern
#

the legendary medals? hm

hallow forge
#

yes

#

they r gold onthe outside right

sullen fern
#

i wasnt really thinking about adding them but i guess i could add a medal for each legendary that unlocks when you unlock the legendary yo-kai

hallow forge
#

please add attention text to that

shut crater
#

can anyone give me the low-down on how to switch localization entries for a joker

#

or just a starting point

sullen fern
#

regular, z, classic, and legendary medals

worthy stirrup
red flower
sullen fern
# sullen fern

of course, when you unlock a legendary yo-kai, you also unlock their medal.

worthy stirrup
#

oh

#

ill try that rq

red flower
sullen fern
#

eg. unlcoking spoilerina nets you her medal, and it can appear in medal packs from now on

#

of course, they’re harder to find than regular medals (like, soul card odds maybe)

worthy stirrup
#

how can i force a card to act as if its glass with a boss blind

shut crater
worthy stirrup
#

quantum... crynig

quartz ravine
shut crater
worthy stirrup
#

oh

#

its not as scary as i thought it would be

shut crater
#

this could very well be the blind leading the blind though

red flower
worthy stirrup
shut crater
shut crater
worthy stirrup
#

thank you

red flower
worthy stirrup
#

the played cards are G.cards right?

red flower
#

G.playing_cards

worthy stirrup
#

i thought that was the entire deck

red flower
#

oh played cards sorry

shut crater
#

context.scoring_hand

#

er

#

context.full_hand

red flower
#

G.play.cards or that ^

worthy stirrup
#

cool, now i gotta find out how to do chances with the seed

runic frigate
#

using the debug mod is there a way to get planet levels?

shut crater
#

(hover in collection and press 3)

#

is there a way to set the back sprite of a card?

runic frigate
worthy stirrup
#

just to check, am i doing this right?

calculate = function(self, card, context)
    if context.check_enhancement then
    for i, card in ipairs(G.play.cards) do
      if pseudorandom('Flote') < 1/4 then
        SMODS.shatters(card)
      end
    end
  end
end,
red flower
#

no i don't think that makes sense

#

I don't know how check_enhancement works but probably not like that
and SMODS.shatters just checks if a card shatters or not, it doesn't break it

#

you also don't want to shatter a card manually during calculation

worthy stirrup
#

how should i shatter a card then

red flower
#

(but if you have to shatter a card outside of calculation do card:shatter() )

red flower
#

OR make it do the quantum enhancement calculation thing maybe, but one or the other

worthy stirrup
#

i probably misunderstood fully but ive got this now

calculate = function(self, card, context)
    if context.destroy_card then
    for i, card in ipairs(G.play.cards) do
      if pseudorandom('Flote') < 1/4 then
        destroy_card = card + destroy_card
      end 
    end
  end
end,
}
red flower
#

closer

worthy stirrup
#

wait, destroy card should be a list

#

but im just adding

red flower
#

no
to destroy a card in destroy_card you need to return { remove = true }

worthy stirrup
#

hm, it seems to also destroy non played cards

#

how do i fix that

red flower
#

context.cardarea == G.play

you also should remove the G.play.cards loop

worthy stirrup
#

oh

#

so now its this?

calculate = function(self, card, context)
    if context.destroy_card and context.cardarea == G.play then
      if pseudorandom('Flote') < 1/4 then
        return { remove = true}
      end 
    end
end,
}
#

it works, thanks

hollow marsh
#

is there any easy way to modify the exisiting deck skins? I'm trying to recolor their suits

tired kestrel
#

By the way when doing desctiptions, what were the colors?

#

like hand size or tags?

wintry solar
#

I am in the middle of adding proper destruction tools for cards

tired kestrel
#

Oh.

hasty mist
#

what is wrong here

red flower
hasty mist
#

it's supposed to be setting the played poker hand's chips and mult to the chips and mult during scoring right before they're multiplied together

red flower
#

and it's not doing that?

hasty mist
#

nope

sullen fern
chrome widget
#

Really confused right now but somehow I've broken the vanilla loc_vars in generate_ui for wheel of fortune and im not really sure how....?

lofty sand
#

this joker works in the sense that it copies the ability of any joker that is compatible with blueprint, but the sell cost penalty seems to not apply to some jokers seemingly arbitrarily. It works with scaling jokers, scoring jokers, and retriggers seemingly fine, even stuff like baron and mime. However, it for some reason it doesn't work with jokers including burnt joker, beginning of round abilities like certificate, blind select abilities like cartomancer, and other abilities like hallucination. does anyone know what might be going on or how I can fix it? lmk if you'd like to see a clip of other examples, or if you'd like to see the code

red flower
sullen fern
chrome widget
#

So SMODS.Center:take_ownership() accepts a key, a table of values to replace, and then an argument for whether it should be silent. I have this contextual table that adds either a change to the loc_text, a change to the atlas/badge, or both. But for some reason doing this breaks the description even though I haven't changed the name of the center which is what vanilla uses to determine the vars for consumeables

if skins or queer then
    local build_table = {}

    if queer then
        build_table.loc_txt = {
            ['en-us'] = {
                name = "The Wheel of Fortune",
                text = {
                    "{C:green}#1# in #2#{} chance to add",
                    "{C:dark_edition}Foil{}, {C:dark_edition}Holographic{}, or",
                    "{C:dark_edition}Queer{} edition to",
                    "a random {C:attention}Joker"
                }
            }
        }
    end

    if skins then
        build_table.atlas = 'fnwk_tarotreskins'
        build_table.set_badges = function(self, card, badges)
            badges[#badges+1] = FnwkDynamicBadge('jojopolis')
        end
    end

    SMODS.Consumable:take_ownership('c_wheel_of_fortune', build_table, true)
end```
hasty mist
red flower
#

yes exactly that

hasty mist
#

why does it not work for me then

wintry solar
#

What do you mean by it doesn’t work

hasty mist
chrome widget
#

???? Are you not able to use loc_txt and localization files simultaneously???

#

Or is there something else weird going on that's changing the name of it behind the scenes?

final monolith
#

It took me too long to understand the queer joke lol

chrome widget
#

Lmao yeah. Point being, it is applying the new description, the new art, and the new badge, but it's also seemingly changing something else when I was under the impression that :take_ownership() only changes the fields you actively give it

#

Aura for example is also changed in its loc_txt and doesn't break?

red flower
red flower
#

yeah it does that for me

hasty mist
#

but this code does not modify the hands at all

#

what could possibly be causing this not to work

wintry solar
#

Do note that if you then change the level of the hand it will undo that

hasty mist
#

great

#

ill worry about that later

#

i know some mods get around that so i can just look at how they do it

#

but i still want to get this to work

red flower
#

yeah i just have this idk

hasty mist
#

literally exactly what i did

#

what the fuck is wrong

tired kestrel
wintry solar
#

What’s your smods version

red flower
hasty mist
#

1.0.0~BETA-0509c-STEAMODDED but it also includes aikoyori's font pr that hasn't been merged yet

hasty mist
red flower
#

maybe cryptid or talisman messes with that

#

with the big num levels

faint yacht
#

Are you actually updating the base mult or the total mult?

G.GAME.hands[hand].l_chips = to_big(G.GAME.hands[hand].l_chips) + to_big(lchips)
G.GAME.hands[hand].l_mult = to_big(G.GAME.hands[hand].l_mult) + to_big(lmult)
G.GAME.hands[hand].mult = math.max(to_big(G.GAME.hands[hand].s_mult) + to_big(G.GAME.hands[hand].l_mult)*(to_big(G.GAME.hands[hand].level) - to_big(1)), to_big(1))
G.GAME.hands[hand].chips = math.max(to_big(G.GAME.hands[hand].s_chips) + to_big(G.GAME.hands[hand].l_chips)*(to_big(G.GAME.hands[hand].level) - to_big(1)), to_big(0))
hasty mist
#

im trying to update the base mult

faint yacht
#

s_mult & s_chips, then.

#

Just remember to also update the "total" mult, counting the levels' l_mult & l_chips with the changed s_mult & s_chips.

hasty mist
#

hold on

#

let me try using to_big

#

okay that crashed

#

hold on

wintry solar
#

No

#

That’s not what you’re trying to do

hasty mist
#

okay

#

let me think about this

wintry solar
#

You must have something else thats either stopping your joker from triggering or is resetting the hand score

#

Have you thrown a print in your calculate to make sure it’s happening?

hasty mist
#

im trying to see if i can use to_big

hard mica
#

is this possible?

hasty mist
#

i think

#

doesnt seem to activate on the final scoring step though

#

it shows the second i play a hand

#

unsure if that matters at all

wintry solar
#

Yeah that’s fine

#

What’s your mod list?

hasty mist
#

oh hold on

#

i disabled everything except the necessary mods and it works

#

seems to be some sort of mod conflict

#

troubleshooting rn

#

also you seem to be incorrect

#

leveling up the hand does not reset it

#

found the culprit

wintry solar
#

Did you change it to s_mult?

hasty mist
#

i didn't

eager oak
#

So i've never ever modded balatro before, and i had this idea for a mod
Basically a Joker, that has a 1 in 4 chance to take a dollar from you in exchange for a X5 multiplier
is that possible?

wintry solar
#

Levelling up should 100% reset it unless something is modifying the level up function

hasty mist
#

probably cryptid if i were to guess

#

which is a dependency for my mod anyways

#

what 😭

#

but yeah the culprit for the code not working seems to be entropy

#

already brought it up with ruby

#

once thats fixed it should work just fine

#

ty for the help yall

#

not the first time entropy has interfered with my code

sullen fern
#

its not supposed to look like that......

heady siren
#

Is it possible to change the alpha / transparency of a sprite on the fly?

sullen fern
old orbit
#

hi chat i'm working on my first modded joker and am wondering if there's anything blatantly off here, as well as if I can make it so that if the chips value is negative it'll appear as "5 - 3i" instead of "5 + -3i" or something

    key = 'euler',
    loc_txt = {
        name = 'Euler',
        text = {
            "Increases Mult and Chips",
            "based on this value:",
            "{C:mult}#1#{} + {C:chips}#2#i{}"
            "When you score a:",
            "Face Card: Gain i.",
            "Ace: Multiply by i",
            "Other: Lose i."
        }
    },
    config = { extra = { mult = -1, chips = 1} },
    rarity = 2,
    atlas = 'ModdedVanilla',
    pos = { x = 1, y = 0 },
    cost = 6,
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, card.ability.extra.chips } }
    end,
    calculate = function(self, card, context)
        --TODO: Check the scored card. 
        -- If it's a Face, increase chips by 1. 
        -- If it's an Ace, multiply chips by negative 1 and swap chips and mult. 
        -- Otherwise, decrease chips by 1.
        -- After checking each scored card, increase mult by mult and chips by chips.
    end
}```

also hoping it's a relatively balanced joker, but fine with it being pushed. 🤷.
wintry solar
heady siren
old orbit
#

i'm wondering if the wording feels coherent too, get that it isn't following convention but nothing about this is

heady siren
#

Gotta keep track of those commas

#

I need to know how to make it not just pop out of existence ;~;

old orbit
heady siren
#

But it just stops existing instead of gradually fading out, that's the issue

sullen fern
heady siren
#

Benjamin of the deca variety

red flower
sullen fern
red flower
#

whats the size of each sprite is it 71x71?

sullen fern
#

yeah all of them are 71x71

red flower
#

hmm

scarlet thorn
#

it could be the card area

#

or whatever is storing them

#

how is it defined?

sullen fern
#

what do you mean byt hat

scarlet thorn
sullen fern
#

they're consumables.

scarlet thorn
#

Then yea, im pretty sure the area is whats stretching them

sullen fern
scarlet thorn
#

set display_size and pixel_size on them

#
display_size = {x=71, y=71},
pixel_size = {x=71, y=71},```
sullen fern
#

that didnt work

#

that straight up changed nothing

scarlet thorn
#

Did you define it on the consumables themself or the atlas. you need it on the consumables

sullen fern
#

the consumables

scarlet thorn
#

show

sullen fern
scarlet thorn
#

mmm

red flower
#

delete display_size and pixel_size?

scarlet thorn
#

I guess the only other solution is make the sprites 71x95, but not use the bottom part

remote scarab
#

Wait why in atlas its px/py instead of x/y ?

scarlet thorn
red flower
red flower
scarlet thorn
#

??

red flower
#

i want to see something

sullen fern
#

nothing happened

hallow forge
red flower
hallow forge
#

and us elovely patches to make it work

#

that's how i made grim skills smaller than standard

sullen fern
#

another lovely patch, eh?

hallow forge
#

lovely patches are amazing

#

i use them all the time

scarlet thorn
scarlet thorn
hallow forge
#

it's bad practive and makes the hitbox too large

scarlet thorn
hallow forge
#

the yo-kai medals are their own objects

#

seals an stickers go onto cards

#

different things

scarlet thorn
red flower
#

but half joker does it and that's fine?

hallow forge
#

last time i tried that it did nothing

red flower
#

it does

scarlet thorn
#

yea it works

wintry solar
eager oak
red flower
scarlet thorn
scarlet spire
# scarlet thorn Its legit how vanilla does it fym

seals and stickers do that because they're specifically meant to be overlaid onto cards of the same size, not the case for completely unique objects of a specific size like blind chips, blinds, tags, etc

sullen fern
spice wadi
# eager oak In that case how should i go about it?

Well firstly you should learn the basics of modding, Steammodded (the mod loader) has a good wiki
Then honestly just look at how the base game does things
You can look at the source code by opening the balatro executable with winrar or similar
Then look for things with chance abilities and abilities that take away money like the rental sticker

scarlet thorn
wintry solar
#

Yeah I think the atlas is likely the issue

sullen fern
scarlet spire
#

yeah if this is a custom consumable type I guess they're always expecting a card-sized object, so the atlas will always take whatever size the sprites are and stretch them out to the size of the card

scarlet thorn
# sullen fern

Are they taller than the sprite? Like if you hover into the blank, does it hover the card

sullen fern
#

nope

hallow forge
#

nice

scarlet thorn
#

sick

#

it takes a community to create a balatro mod 👍

scarlet spire
#

it would be nice if custom consumable types could have default scaling options where you can set how big the consumable type is meant to be

#

unless it was added recently, I don't think undiscovered sprites let you change their size yet, so a consumable type that is smaller than the average card will still have a fully-sized undiscovered sprite

spice wadi
red flower
#

astra did a lot of work

sullen fern
#

i may be a bit forgetful but i do have to take ownership of a specific modded joker in order to add it to a custom object type, right?

red flower
#

no, you can add it directly to the objecttype

sullen fern
#

even if the mod that the joker is from isn’t loaded?

red flower
#

yeah you don't use take_ownership for that at all

but I don't know if you can add it to cards directly or if you need to inject it after tho

#

im guessing you need to inject it after

digital sun
#

the wiki doesnt seem to tell people all the functions and stuff where would i find that

red flower
#

if you mean all the vanilla functions then there's no place for that, you need to read the game's code/other mods' code/ ask here

digital sun
#

dang,,

shut crater
haughty cargo
#

I need help with UI programming, I am making a config page for my mod, but it isn't updating the value with what I input, and is also shifting to the right when I put the value into the text box
edit: The value is being nil for some reasom

#

do I need to do anything special to get a number value out of it?

unreal cosmos
#

would this joker work out

haughty cargo
#

maybe making it -4, 5, 10 could be better

#

but maybe a bit more to be uncommon, as there is the golden joker which is +4/blind (12/ante) and is only a common

haughty cargo
#

could be nice, as scaling is good, but seems very similar to rocket but with a dollar subtraction on small and big blinds

heady siren
#

Pierogi Joker

hybrid shadow
haughty cargo
#

I assume

hybrid shadow
#

anyway how do i have a joker check if the entire played hand is face cards (separately, i also need a joker to check if the entire hand is Hearts)

native zinc
daring fern
heady siren
#

Better than what I was going to suggest

daring fern
hybrid shadow
digital sun
#

how do you get the number of jokers the player has

daring fern
digital sun
#

ohhh thats what hashtag does

hybrid shadow
heady siren
#

# originally meant number, so

daring fern
hybrid shadow
daring fern
hybrid shadow
#

just fixed that

unreal cosmos
#

how do you make text orange in balaui

#

?

spice wadi
#

Can you explain more please
Because that looks like the correct way of making text orange

spice wadi
#

Oh

#

I mean

hybrid shadow
spice wadi
#

I think using C:attention is what is usually done for orange text

lofty sand
#

Hey, if I have a copy effect joker, what is a good way to check for when a copied ability is triggered, specifically from the copy effect joker?

wheat pulsar
#

hi i use the context.pre_discard to search pairs of cards and then mark the cards, then in a context.discard y destroy the cards but after that the game doesnt update the space of the deck

daring fern
lofty sand
#

wym

daring fern
lofty sand
#

sure, but what if it's a joker that doesn't return a table, like burnt joker, or cartomancer, or certificate, hallucination, etc

unreal cosmos
#

should this be uncommon?

daring fern
unreal cosmos
#

knockoff yorick gains +1 chip

#

if that was unclear

worthy stirrup
brisk rose
#

The continuation of the card exporter thing strmnn is working on and I'm helping with parts of

unreal cosmos
spice wadi
midnight coyote
#

‘Shader uniform ‘bleached’ does not exist. a common error is to define and not use the variable’

#

is it because i’m using ‘astropulvis_bleached’ rather than just ‘bleached’?

quartz ravine
#

Either my reading comprehension is...not so great or The Height is bugged

quartz ravine
hybrid shadow
hasty mist
#

this consumable of mine is egregiously broken, how do i make it so it can specifically target consumables, not be stupidly common (soul_rate seems to not be working?) and make it so it can only appear after ante 8 (in_pool function isnt working)

digital sun
#

heres the function for a joker that randomly triggers another joker. i want to make it so that when it triggers itself, you get x1.25 mult. i think whats wrong is that its not detecting that its triggering itself, but i may be wrong. can someon help?

daring fern
#

That is the most efficient way.

midnight coyote
#

but

#

im just

#

confused

#

it looks fine, at least

daring fern
digital sun
#

whats the difference

#

between pseudorandom and math.random

daring fern
quartz ravine
#

just name the file bleached.fs and it will work perfectly

midnight coyote
midnight coyote
quartz ravine
#

I don't know, it looks freaking dope dude

brisk rose
#

not having that working made the thing I was doing take forever to fix

#

lol

quartz ravine
#

laucnh balatro and then run watch shader pathto/bleached.fs, it should work.

midnight coyote
#

do i have to do this every time

hasty mist
#

ok this consumable is so broken i genuinely need to rewrite it from scratch

quartz ravine
#

No, I mean that is how I loaded your shader just fine. It's a cool command you can use within DebugPlus to monitor a file for changes and reapply them in real time. Works great for shaders

midnight coyote
#

im so confused as to why it currently is not loading though

quartz ravine
#

Hey, @midnight coyote can you show me how you're loading the shader? that's probably the error

midnight coyote
#

i put the SMODS.Shader code into a shaders.lua file into modules/init, which is loaded before any content ever is

quartz ravine
#

I have my shaders in Modfolder\assets\shaders

then I load them like this

SMODS.Shader({ key = 'etherOverdrive', path = 'etherOverdrive.fs' })

Be sure your shader file is in the same place, and again that it has an extern that matches the file name. The file you sent me worked fine when I put it in the right spot

midnight coyote
hollow locust
#

Hey uh
could one of you guys help me out with an SMODS.Suit thing

midnight coyote
#

i’m starting to think this game literally just hates me

midnight coyote
#

i’m gonna push this upstream

#

i’m just. so stumped

#

wtf

hasty mist
#

how do i make it so a consumable can be used on other consumables

#

specifically

#

able to highlight one consumable in a pack, or in the tray

#

and use it on it

#

with the can_use function

daring fern
midnight coyote
#

can you even select 2 consumables at once?

daring fern
digital sun
#

how do i use pseudorandom?
i think im using it wrong

hasty mist
daring fern
digital sun
#

or can you just put any number

daring fern
hybrid shadow
#

how do i have a joker destroy the played card

digital sun
daring fern
next timber
#

how come removing the tag ui element makes the dark background move onto the "or" instead of the skip button??? (the run button is the skip button i just changed the localisation)

rapid stag
#

chat, let's say i want to use a table like a queue (i.e. like a C# queue). how?

hasty mist
#

this spectral has been absolutely driving me insane for ages

hybrid shadow
rapid stag
#

and it just rotates the elements up every time a new one is added

daring fern
brisk rose
#

why does git do the identity check after trying to commit?

rapid stag
daring fern
rapid stag
#

ahhh

brisk rose
daring fern
midnight coyote
#

could it be the fact that the folder inside the mod directory in AppData is a symlink to the actual mod folder in my home dir

wind steppe
#

does anyone know how i could open a booster pack after a blind is defeated automatically? (through a joker)

hybrid shadow
#

because i want it to only destroy the played card when the other contexts (except i guess context.joker_main) are true

daring fern
midnight coyote
#

nope wasnt it

#

UGGHGHHH

#

this fucking shader vro

hybrid shadow
plain apex
#

if nil is good wheres nil2
nil2:

wind steppe
daring fern
sullen fern
#

there’s no doubt about it, i’m gonna have to think of ideas for, a whole lotta yo-kai medals

plain apex
hybrid shadow
daring fern
sullen fern
#

some ideas may or may not be original but, whatever.

hybrid shadow
wild escarp
#

Do I at least have the right idea here? Trying to make a blind that disallows any hands of one rank or suit and I get an error "Attempt to index fiel "poker_hand" a nil value (just doing this to get used to blinds first).

debuff_hand = function(self, cards, hand, handname, check)
    if next(self.poker_hands['Flush']) and not self.disabled then
        return true
    end
end
wild escarp
#

idk what else to do man, I'm just clueless.

heady siren
#

I have my own deck skin, and I've made a version of it where hearts / diamonds and spades / clubs have the same colors for smeared joker, how would I go about replacing the atlas or atlas path on the fly to make it update in real time, if that's even possible?

daring fern
heady siren
#

I've tried taking ownership of my own atlases like the log yelled at me to do, but it just makes the game crash trying to find the current mod

primal robin
rapid stag
#

i forget, is it G.P_CENTERS.<JOKER KEY>.unlocked or G.P_CENTERS.<JOKER KEY>.locked? cirDerp

primal robin
#

discovered

rapid stag
#

i'm not talking about discovered

#

i'm talking about locked

#

it's a separate thing

primal robin
#

unlocked

rapid stag
#

although i guess if a joker is discovered, it's also not locked cirDerp

digital sun
#

is there a way to turn the cards face down like in the boss blinds? i remember the game didnt like it when i tried to debuff cards outside of a blind

daring fern
# hasty mist could you show how exactly
if #G.consumeables.highlighted + ((G.pack_cards and G.pack_cards.highlighted[1] and G.pack_cards.highlighted[1].ability.consumeable and #G.pack_cards.highlighted) or 0) == 2 then
    return true
end
```?
wild escarp
#

Now I've got this, which at least doesn't crash, but it disables any hand. What should I be checking to only disable those specific hands?

debuff_hand = function(self, cards, hand, handname, check)
    if next(hand['High Card']) or next(hand['Pair']) and not self.disabled then
        return true
    end
end
desert wind
#

hi guys, im trying to make my first mod for balatro and the first joker i want to add to the game is bascially diet soda but instead of giving you a double tag when you sell it, it gives you a negative tag when a blind is selected but i have this issue where it just doesnt work lol. any halp woiuld be greatly appreciated. also on a side note im not very experienced in lua

wild escarp
daring fern
desert wind
wild escarp
wild escarp
#

Thank you!

hasty mist
#

how do i make it so i can select a card from a booster pack into the consumable slot

sturdy compass
#

You have to do some patch shenannigans

hasty mist
#

fuck

sturdy compass
#

yeah lmao

sullen fern
#

legendary yo-kai and their medals

wild escarp
#

Is it possible to have odds show up modified by oops on a boss blind?

wind steppe
#

does anyone know how to get the booster pack to open instead of just sitting in the center of my screen? calculate function:

    calculate = function(self,card,context)
        if context.end_of_round and G.GAME.blind.boss then
            local key = 'p_para_foodpack'
            local card = Card(
                G.play.T.x + G.play.T.w / 2 - G.CARD_W * 1.27 / 2,
                G.play.T.y + G.play.T.h / 2 - G.CARD_H * 1.27 / 2,
                G.CARD_W * 1.27,
                G.CARD_H * 1.27,
                G.P_CARDS.empty,
                G.P_CENTERS[key],
                { bypass_discovery_center = true, bypass_discovery_ui = true }
                )
            card.cost = 0
            card:start_materialize()
        end
    end
shut crater
wild escarp
#

I mean, the text of a boss blind. Not sure what wheel has to do with that.

shut crater
#

the boss blind, The Wheel, does this

daring fern
desert wind
#

for the sprites of jokers do they have to be in the same png file or is there a way to have multiple png files?

wild escarp
#

Ah, in game blind code is kind of annoying to implement, I'll try though.

wind steppe
shut crater
desert wind
#

thank you

gusty iron
#

Very stupid deck idea i had:

Imaginary Deck

Start off with 26 normal cards, [6 Spades, 6 Hearts, 7 Clubs, 7 Diaminds]
and 26 imaginary cards [7 spades, 7 Hearts, 6 Clubs, 6 Diamonds]

And add ichips, and imult.

Thd final chip score calculation is:

(ChipsxMult)x(iChipsxiMult)

Would this somehow be possible

daring fern
wind steppe
daring fern
wind steppe
wild escarp
#

Will do.

remote scarab
#

I simply cannot get this sound file to work cursedexhausted

daring fern
#

How lag inducing would All jokers get duplicated when boss blind is defeated be?

wind steppe
daring fern
#

Which you would have to have cryptid to use.

wind steppe
#

almost certainly crash the game within five antes

brisk rose
#

probably a love2d abstraction thing

wind steppe
#

does anyone know how to get the booster pack here to open instead of just sitting in the center of my screen? calculate function:

    calculate = function(self,card,context)
        if context.end_of_round and G.GAME.blind.boss then
            local key = 'p_para_foodpack'
            local card = Card(
                G.play.T.x + G.play.T.w / 2 - G.CARD_W * 1.27 / 2,
                G.play.T.y + G.play.T.h / 2 - G.CARD_H * 1.27 / 2,
                G.CARD_W * 1.27,
                G.CARD_H * 1.27,
                G.P_CARDS.empty,
                G.P_CENTERS[key],
                { bypass_discovery_center = true, bypass_discovery_ui = true }
                )
            card.cost = 0
            card:start_materialize()
        end
    end
daring fern
wild escarp
#

Damn, cryptid code is a mess to look through.

red flower
#

i know, right

wind steppe
#

apparently cryptid is just a mess

red flower
#

in my defense I never said check cryptid

wind steppe
#

true

red flower
#

anyway youre missing this part of the code

rugged helm
#

is there a sprite/animation template for boss blinds?

rugged helm
#

🔥

#

ttyty

wild escarp
#

Soo... properly displaying odds on a blind. Game code is another world, and Cryptid is a mess, is there any decent reference material?

daring fern
#

Why did this happen?:

wind steppe
#

numbers are very accurate approximations

red flower
#

3.14 ≈ 4

wild escarp
# red flower what's the issue?

loc_vars displays blind text properly in the collection, with oops modifying odds. collection_loc_vars displays properly in a run, however, oops doesn't modify that number.

wind steppe
#

why does this crash

    calculate = function(self,card,context)
        if context.end_of_round and G.GAME.blind.boss then
            SMODS.create_card({set = "Booster", key = "foodpack"})
        end
    end
#

I've opened the pack separately so it's not that

daring fern
red flower
wild escarp
#

Yeah, kind of figured. Seems like cryptid made a whole function to check for oops, and then modify the text if you have oops. I'm not doing all that, so it'll have to do I guess.

wind steppe
red flower
#

did you do the use_card thing

wind steppe
red flower
shut crater
#

I'm in an interesting situation where I think my loc_vars is causing infinite recursion on the info_queue and I'm not sure how to prevent it

red flower
#

if not card.fake_card

shut crater
#

is that a thing

red flower
#

yes

#

i had that problem with two cards that referenced each other

shut crater
#

how do you know everything

red flower
#

i just know what i know

hasty mist
wind steppe
#
    calculate = function(self,card,context)
        if context.end_of_round and G.GAME.blind.boss then
            SMODS.create_card({set = "Booster", key = "p_para_foodpack"})
            G.FUNCS.use_card({ config = { ref_table = card } })
        end
    end
red flower
#

some of the other stuff in that code might be important

daring fern
red flower
#

oh yeah didnt notice that

pearl jacinth
#

what happened

#

what is s

shut crater
#

a number, apparently

pearl jacinth
#

these single letter variables are hard to debug

shut crater
#

what's going on on line 114 of text.lua

#

or...1812 of misc_functions.lua

scarlet thorn
#

something

pearl jacinth
#

i think i solved it

rapid stag
#

question - if i want to use poll_edition() to apply an edition, do i feed its output into a set_edition() or do i use it as i would set_edition()?

pearl jacinth
#

nevermind i didn't

wild escarp
#

Is there something to check if a card has been retriggered?

pearl jacinth
#

if "{X:mult,C:white}X#1#{} Mult" then why does the text appear black

red flower
#

your localization is cursed

wild escarp
#

That makes things difficult/impossible.

daring fern
pearl jacinth
wild escarp
red flower
hybrid shadow
#

what's wrong with these lines (it pointed me to what's inside the return)

daring fern
pearl jacinth
analog spoke
#

does anyone have code that replicates the functionality of the Negative edition? In the same one that VanillaRemade has the jokers and such?

#

I want to refrence it for an edition's effect I am making

wind steppe
red flower
wind steppe
#

it does show three items instead of three thousand though

hybrid shadow
analog spoke
daring fern
hybrid shadow
red flower
analog spoke
#

ahh, ok, I'll check it out then! :3

#

ahh it is done through a config 😭 that uhh, is not what I was expecting ashjfbsdjbfs, guess I can't use this for refrence with my "-reroll cost" idea bsdjfbsfj

red flower
#

you can use on_apply and on_remove

analog spoke
#

ahh, ok, last time I tried it didn't work, but I'll try again, thank you! I shall be back then, soon, lol

#

wait a sec, my temporary effects I used as placeholders aren't even working? whuh?!

#

😭 I is so bad at this abfsdhbsjd omg

hollow locust
#

Is there a way to add a specific Rank card to a suit? i.e. I want to add a 3.5 Rank to only one suit

analog spoke
rapid stag
#

is there a way to add two 1D tables together?
like say i have a table of strings and another table of strings and i want to concatenate them

red flower
rapid stag
#

yes!

red flower
red flower
rapid stag
#

oh merge_lists will just work, ok

analog spoke
red flower
#

replace self for card

#

where there are yellow lines

hardy viper
#

loc_vars = function(self, info_queue, card) no?

analog spoke
#

ahh okey

hardy viper
#

unintuitive

analog spoke
red flower
#

hmm it's probably card.ability instead of card.config but I've never done editions

analog spoke
#

mhhh

#

hmm, let me check the editions in vanilla remade rq

red flower
#

(or just hardcode it to 2 if that doesn't work :3)

analog spoke
#

card.edition.x_mult ahhhhh

red flower
#

that makes sense

analog spoke
#

if this doesn't work either 😭

midnight coyote
#

why does the same damn shader look so different on 2 types of things?? (look at card sharp vs that 2 of spades there)

red flower
rapid stag
#

question - if i wanted to hook into the functionality used when the reset profile button is hit, what should i be hooking? cirDerp

red flower
#

are we doing shenanigans

wind steppe
#

does anyone know how booster pack tags remove the blind select screen

shut crater
midnight coyote
#

because this edition is meant for cards

#

not jokers

shut crater
#

as my Discord status for the last week might indicate, I'm really not the person to ask

midnight coyote
#

i see

shut crater
#

just be aware that playing cards have their parts drawn in two steps

#

try turning your card to stone and see if the shader is still gross. If that fixes things, then the second drawstep is probably your root cause

tall wharf
#

🐴

red flower
#

iirc it's because playing cards have a front and a center

#

while other cards only have a center

hasty mist
#

checking if something is greater than or equal to is >= right

shut crater
#

based on the type of graphical error your shader is probably doing something bad with transparency

hasty mist
#

awesome

midnight coyote
#

that second drawstep is fucked

tall wharf
midnight coyote
tall wharf
#

in your shader

midnight coyote
#

okay this seems to be a recurring issue

#

the jokers also don’t have any transparency

tall wharf
#

i think you get the original alpha for it

#

then you return that

shut crater
#

somewhere in your shader you're overwriting the alpha to become 1

wind steppe
#

does anyone know how booster pack tags remove the blind select screen

midnight coyote
#

i see that

#

when i clamp the alpha down i set the second value to be 1

#

or the third i mean

#

second is 0.7

#

let me grab the code

#

no

#

wrong

#

vec4 effect(vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords) {

    vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba;
    vec4 tex = Texel(texture, texture_coords);
    vec3 color = tex.rgb;
    vec4 final_color = vec4(
                  contrastMatrix(1.5) *
                  saturationMatrix(0.5) *
                  color, clamp(bleached.x,0.7,1.0));

   


    return dissolve_mask(final_color, texture_coords, uv);
}
#

there

#

where would i grab the original alpha

#

tex.a?

sullen fern
#

behold, ortalab compatability.

midnight coyote
#

yup

#

i think i fixed it? lemme see

#

damn right i did

#

thank yall so much

#

alright

glad osprey
midnight coyote
#

new issue, how do i exclude an edition from being able to be pulled from poll_edition

#

good news

#

figured that out too

sullen fern
glad osprey
#

joker is called sane joker

#

activated when no straight

sullen fern
#

oh

hardy viper
#

does this mean being straight is insane

red flower
#

yes

rustic swallow
#

how would i apply a random enhancement to a card when its scored?

sullen fern
#

an idea that popped into my head was to give the ortalab jokers the tribes from yo-kai watch 4 and beyond

#

but like, fuck that.

#

that would take a bit too long

midnight coyote
#

how do i look for a card's edition

rapid stag
#

to see the specific edition,

#

should first check against nil, because if it doesn't have an edition, it'll be nil and you don't want to try indexing edition if it's nil,

but you can check card.edition.type and it'll be any of 'foil', 'holo', 'polychrome' or 'negative'

#

so long as, again, edition isn't nil. which it will be if there is no edition

shut crater
midnight coyote
#

okay

quartz ravine
#

@tall wharf , how is The Height meant to work? I encountered it earlier today and needed 400 chips to win, but still lost after scoring 8k + chips total

rapid stag
#

did you read the blind description? i'm pretty sure the height requires either exact or slightly below the req cirDerp

midnight coyote
#

then this should work? i ended the func too

#

because it doesnt work

rapid stag
midnight coyote
#

or astropulvis_bleached?

rapid stag
#

try the latter

midnight coyote
#

alright

rapid stag
#

if that doesn't work, i guess just do the key instead

tall wharf
#

basically

midnight coyote
#

that works

#

great

tall wharf
#

uh

midnight coyote
#

time to make the hand types that play around the lack of suits

hasty mist
#

why does this read as nil? it's in loc_vars

quartz ravine
# tall wharf

aH! when I played, the score didn't increase or change at all, not sure if that was expected 🙂

tall wharf
#

huh

tall wharf
#

you're on latest right

rapid stag
shut crater
midnight coyote
#

oh boy i sure do love figuring out how tf this works

#

so for greyscale flushes i just need to check for if every card has no suit

rustic swallow
#

how would i apply a random enhancement to a card when its scored?

rapid stag
#

oooh, i just wrote this myself

analog spoke
#

I never did figure out all the issues here :< even with them being set to plain numbers instead of config vars it didn't work correctly

rapid stag
analog spoke
# analog spoke

I uhh, I'm kind of tired honestly :< I haven't been doing too well mentally, lol, and dealing with problem after problem like this is kinda bringing me down :< I might take a break for a bit, anfknsdjkfnjsk tho I'm not sure what I'll do instead, as I don't really have anything to do, honestly

rapid stag
rustic swallow
hasty mist
#

what could be causing this?

#

i know how complex this code is, hoping theres an easy fix i overlooked or something

midnight coyote
#

dont use chips

hasty mist
#

ah

midnight coyote
#

that may be it

hasty mist
#

so if i change that what in the joker do i have to change as well

midnight coyote
#

just change the args in the func

hasty mist
#

so all mentions of chips in the function?

hasty mist
#

unless achips is also a global

midnight coyote
#

idk then

tall wharf
# quartz ravine Oh I see!

i really am wondering about the version of my mod you're running because I've been moving functions around

midnight coyote
#

thats what i thought it was

#

srry

hasty mist
#

damn

#

😭

#

im gonna have to wait until tomorrow to fix i think

digital sun
#

supposed to be a 1 in 4 chance to destroy the card, and gains x0.25 mult from destroying the card

#

actually now that i think about it i should probably lower the mult or the chances

#

but thats a later thing

midnight coyote
#

is hand a table in SMODS.PokerHand?

open aspen
#

hi chat

#

how can i open multiple instances of balatro easil

#

easily

rustic swallow
digital sun
#

ohh i may be stupid

rustic swallow
#

it happened to me aswell

open aspen
digital sun
#

i think nucleus co-op works but i havent tested it

#

ive used it for some other games

#

it might not have it tho

open aspen
#

okay

#

ty

digital sun
#

why is my random not randoming

#

its always upgrading

rustic swallow
digital sun
#

ill try

midnight coyote
#
SMODS.PokerHand {
  key = "greyscaleflush",
  mult = 7,
  chips = 50,
  l_mult = 3,
  l_chips = 15,
  example = {
    { 'S_K', true,  edtion = "e_astropulvis_bleached" },  -- King of Spades, does not score
    { 'S_9', true,  edition = "e_astropulvis_bleached" }, -- 9 of Spades, scores
    { 'D_9', true,  enhancement = 'm_stone' },            -- Negative Lucky 9 of Diamonds, scores
    { 'H_6', true,  enhancement = 'm_stone' },            -- 6 of Hearts, does not score
    { 'D_3', false, edition = 'e_astropulvis_bleached' }  -- Red Seal 3 of Diamonds, does not score
  },
  evaluate = function(parts, hand)
    local suit_increment = 0
    for i = 1, #hand do
      if SMODS.has_no_suit(hand[i]) then
        suit_increment = suit_increment + 1
      end
    end
    if suit_increment == 5 then
      return { hand }
    else
      return {}
    end
  end
}
#

why does this not work?

#

wait

rustic swallow
digital sun
#

it work

rustic swallow
#

np

digital sun
#

also what does xmult mod do

rustic swallow
#

i think its just used in the vanilla game

#

but smods uses Xmult

digital sun
#

ah

midnight coyote
#

??!??

#

im so

#

confused

scarlet thorn
#

.

sullen fern
#

entropy?

midnight coyote
#

this is probably so fucked isnt it

#

ugh

#

i wish some mod fucking implemented this

#

or like

#

custom hands

#

i mean

#

because

#

i am at a loss here

scarlet thorn
#

whats the prob?

midnight coyote
#

im trying to make a hand type

#

with 5 suitless cards

#

and i have'

#

no idea how to use evaluate

scarlet thorn
#

ive never done a poker hand

#

lemme see

hybrid shadow
midnight coyote
#

bleached removes suits

scarlet thorn
#

does is_suit work on them?

#

or wait nvm

midnight coyote
#

ive been trying SMODS.has_no_suit()

scarlet thorn
#

you have to patch it then

digital sun
#

how do you make it so that you can buy a card anytime kinda like how negatives work
like no matter how full you are on jokers you can get it

scarlet thorn
#

add ur own enhancement there

midnight coyote
scarlet thorn
midnight coyote
#

i already hooked the function

#
function SMODS.has_no_suit(card)
  if card.edition and card.edition.type == "astropulvis_bleached" then
    return true
  end
  if G.GAME.blind then
    if G.GAME.blind.config.blind.key == "bl_astropulvis_the_dip" then
      return true
    end
  end
  return smods_has_no_suit_ref(card)
end 
scarlet thorn
#

and whats the poker hand look like?

hybrid shadow
midnight coyote
#

im checking for the lack of a suit

#

theres more than one thing that lacks a suit

midnight coyote
#

just realized

#

that last card isnt showing as scored in the example

#

w/e

#

ill fix it later

#

i know theres the issue of

#

ugh

#

idrk

#

this is confusing me

#

im gonna go look at cryptid

#

where does it define its hands even?

hybrid shadow
#

bulwark is right at the top

midnight coyote
#

okay

#

im gonna modify bulwarp

#

bulwark

vast fractal
#

why add_mult become a table for some reasom

scarlet thorn
#

I see the problem

digital sun
scarlet thorn
vast fractal
#

omg, but how make it sure the mod is fine with talisman tho

scarlet thorn
#

@midnight coyote whats ur localization file

midnight coyote
#

just figured out that its totally loc_file

digital sun
#

how do you make a joker destroy a card thats held in your hand

midnight coyote
#

  misc = {
    achievement_descriptions = {},
    achievement_names = {},
    blind_states = {},
    challenge_names = {},
    collabs = {},
    dictionary = {

    },
    high_scores = {},
    labels = {
      astropulvis_bleached = "Bleached"
    },
    poker_hand_descriptions = {
      ['astropulvis_greyscaleflush'] = {
        [1] = "5 Suitless cards."
      }
    },
    poker_hands = {
      ['astropulvis_greyscaleflush'] = "Greyscale Flush"
    },
    quips = {},
    ranks = {},
    suits_plural = {},
    suits_singular = {},
    tutorial = {},
    v_dictionary = {},
    v_text = {}
  }
}
#

here's the misc table

#

this should be the part that matters

#

i looked at bunco for the hands part

#

idrk what to do

midnight coyote
#

i do not know

#

removed it

shut crater
# scarlet thorn whats that [1]

it's a way of creating an array (numeric table) with an element at a specific key, which is not necessary since this is a numeric array

scarlet thorn
midnight coyote
#

i dont knowwhats wrong with my loc file

#

i dont think hands have prefixes

scarlet thorn
#

they do

#

or well

#

mod prefix only

midnight coyote
#

yeah i got that

#

but

#

why is it

#

doing this

#

ugh

scarlet thorn
#

mmm

proud raptor
#

Joker concept

Each round, make a negative copy of this joker
+5 chips, +1 mult

make this and uhhh idk man

midnight coyote
#

you got any ideas

scarlet thorn
#

Something with the text.

#

...

rustic swallow
#

how would i make two pairs be considered full houses?

#

with a hook

midnight coyote
scarlet thorn
hybrid shadow
midnight coyote
hybrid shadow
hybrid shadow
midnight coyote
#

nope

#

same crash

hybrid shadow
#

whats the crash say

midnight coyote
#

i changed the key of the hand to see if that was the issue

#

in loc file and lua file for the def

#

so thats not it

hybrid shadow
midnight coyote
#

lemm see

hybrid shadow
#

like moving that section to before the descriptions

midnight coyote
#

nope

hybrid shadow
#

also the } after the description should have a comma after it