#đŸ’»ăƒ»modding-dev

1 messages · Page 9 of 1

random sleet
#

like hiker permanent boost but retriggers

royal ether
#

oh

unkempt thicket
#

🩞

royal ether
#

oh gog

random sleet
#

like "this card permanently gains 2 retriggers"

edgy reef
#

I'm bored, anyone have mod ideas?

#

Like API or whatnot?

unkempt thicket
#

like suits

random sleet
#

you should make a angel/devil deal system so i dont have to

river fern
#

stake api....

#

sorry, i mean steak api đŸ„©

royal ether
#

api api

random sleet
#

thats what aure is doing

royal ether
#

true...

random sleet
#

honestly im hesitant to do stuff lately cuz i dont want to just make a huge pile of work for my future self

royal ether
#

@ me from 2 weeks ago deciding to make ~460 cards

#

(why did i do that)

river fern
#

i cant do much for the next few days cuz

#

finals n shit

random sleet
#

ik basically everything in smods 1.0 is going to necessitate redoing stuff ive done

#

so i want to do less stuff in the meantime

#

but also smods 1.0 could take weeks or months

river fern
#

next decade

royal ether
#

does anyone know the difference between context.setting_blind and context.first_hand_drawn

river fern
#

cards exist vs not?

unkempt thicket
#

i believe the first is when blind is selected, and 2nd is when first hand is drawn

royal ether
#

wait that makes sense

#

im kinda stupid in the head i think

river fern
#

more like silly

random sleet
#

chronically silly

river fern
#

im chronically online

unkempt thicket
#

thats just what i think having used both of those in jokers before

edgy reef
#

first_hand_drawn is called in Game:update_draw_to_hand and setting_blind is called in new_round()

#

New round being first

unkempt thicket
random sleet
#

we have a suit api

#

are you somehow not using it

unkempt thicket
#

like pages?

#

for the modded suits

hallow forge
#

so if i wanted to make a consumable that ust be used before a blind which will have an effect on said blind, how would i store if the consumable had been in an effective method

#

nvm

unkempt thicket
wintry swallow
#

im thinking of a design like this, any thoughts?

#

the name will be in front ofc

wild gyro
#

i respect it though

unkempt thicket
#

its been, tho 90% of the work is art rn, at least for sin jokers, tarots and blinds

#

because dynamic code :]

unkempt thicket
#

i just have to get the art implemented in a certain order :/

#

downside to dynamic code

static pecan
rough furnace
#

I was just thinking I might be able to get steamodded loaded on a vanilla copy of balatro with nothing but a modified settings file.

thorn bough
#

has anyone sucessfully added new buttons to the joker select ui, next to the sell button?

thorn bough
#

ooh, time to do some code diving

royal ether
thorn bough
#

#đŸ’»ăƒ»modding-dev message it actually seems like all of my cards have broken shaders? vouchers act the same as the spectrals, and the jokers dont have any visual effect when debuffed? has anyone seen this?

random sleet
#

that sounds strange

#

is it affecting vanilla stuff as well or just your cards?

thorn bough
#

no just my jonkers

#

jokers

#

not even other mods which is the strangest part

#

Fallback art, when i havent added a texture yet also works fine?

narrow pollen
#

is notmario around

#

i'm wondering why the heck my "balatro website" code isn't working

#

oh there it is

unkempt thicket
#

website

narrow pollen
odd dock
#

numbalatro github real?

silent sinew
#

crazy question

#

is it possible to add like

#

"layers" to a joker's sprite

#

other than the soul

mellow crag
#

Probably

unkempt thicket
#

i saw someone do it

#

3 layers

silent sinew
#

i don't want anything else that sticks out i just want the image to be made up of multiple overlayed transparent ones

mellow crag
#

I’m not home so I can’t text it rn

odd dock
#

i saw multiple souls before yeah

silent sinew
#

which is probably more simpler than a soul tbf

#

more simpler what am i 5

odd dock
#

yes

#

a prodigy

unkempt thicket
#

yea, i assume the layers use a axis normal jokers do not so chossing a small but higher number should give that effect

silent sinew
#

considering playing cards literally do the exact thing i'm describing i can probably just reference them lol

mellow crag
#

BTW; if let’s say there was an event this weekend, how many people would wanna participate?

unkempt thicket
#

i would

silent sinew
#

what kind of event

mellow crag
#

A mod jam kinda

#

More of a joker jam

#

We already have a theme in place and stuff

unkempt thicket
#

whats like the winning thing get, or what happens with what wins

silent sinew
mellow crag
#

I wouldn’t say there’s really a winner, more like, it’s a communal corporation event

silent sinew
#

but tbf maybe i can just use a shader or something

mellow crag
#

“Shader”

silent sinew
#

the hue thing is the reason why i need the layer stuff in the first place, cause i want the backdrop on this joker to cycle through hues

#

you'll understand why when you see it

random sleet
#

jonkler jam when

mellow crag
#

I plan on doing it this weekend

random sleet
#

im tempted to say yes but also it may depend on what the ruleset is

mellow crag
#

Wdym?

random sleet
#

like

#

what the rules are?

#

idk how else to describe it

silent sinew
#

wait maybe i can just use children.front for the overlay layer

mellow crag
random sleet
#

idk... its not like i know how to make a joker anyway lol

unkempt thicket
narrow pollen
random sleet
#

on... jokers?

#

one of these days im going to look at enhanceapi's code and understand any of it...

narrow pollen
#

oh

#

carry on then

#

just wasn't sure if you were gonna expand on this to playing cards

random sleet
#

children.front is how playing cards work already isnt it

narrow pollen
#

ye

#

but i have the enhancement draw on the front, and a blank card draw on the center

#

for enhancements that hide the rank

#

like stone

random sleet
#

oh

#

why?

silent sinew
#

ion even know how to give a joker a front im lost here

narrow pollen
#

so you can make them transparent ig?

#

idk

random sleet
#

can you not do that with the center sprite?

#

like glass cards work im pretty sure

silent sinew
#

where can i call set_sprites

narrow pollen
#

i guess; i'm just not sure how to make the front a blank sprite without making it nil and having it crash

silent sinew
#

i think thats how i do it

random sleet
#

set the front to a negative pos

silent sinew
#

jesus i am lost

#

steamodded definitely doesn't seem to come with any joker front support so i figure i'll probably have to hook into something or whatever

#

but idk what

#

it doesnt help that this is a card game so searching for draw becomes way harder 😭

silent sinew
#

I Cannot Change My Settings

#

also what

#

what are you doing back there

#

you shy or something

#

oh shit i did it

#

now i just need to shift the hue of the center

#

i think i may need to do a shader

#

oh looking in the negative shader i realize my evaluation from before was completely wrong

#

SAT's rgb is hue saturation and value lmao

#

so it is just genuinely a hue shift and inversion

narrow pollen
#

that's what i figured it was

silent sinew
#

for some reason time isn't working in this shader

#

like it sets the hue to something different whenever the card is loaded but then it just stays there

#

is the sprite only drawn once or something

narrow pollen
#

potentially?

#

it would probably get exhausting for the engine to redraw the entire sprite every single frame

silent sinew
#

i mean does it not do that for shine effects

#

what are the rgb values of the shader name vec btw

#

oh nvm

#

.g is literally what i'm looking for

#

i think it's the delta time or something

#

actually no im stupid its just the time in general

#

i got the card looking exactly how i want though now all i need to do is sprite work

narrow pollen
#

i mean, if you give me an idea on how you want it to look, i can try ig

silent sinew
#

i might also try to scroll the texture since i'm doing a shader anyway but idk if that'd work with the borders of the card

narrow pollen
#

i think i'm pretty good at simplistic jokers, at least.

silent sinew
#

oh nah i got the sprites covered

narrow pollen
#

👍

#

idk, i'm just kinda proud of these little joker sprites i've been doing

#

they may not be crazy, but they're turning out how i want to

royal ether
#

chat room am i insane or are these lines the exact same

#

chat

#

the change was

#

one space

#

at the end of the bottom line

frosty dock
#

lol

silent sinew
#

i dont know if the scrolling texture for the center is even possible

#

all the people i'm seeing talk about scrolling textures online seem to have access to stuff they don't give you in the balatro shader setup

#

like being able to set vec4 colour yourself

#

actually maybe the crt shader has the answer i'm looking for

#

oh shit yeah ok this is totally possible

#

i might need to have the center on a different atlas though

#

the atlas tag in joker:new is being weird

#

i have it set to the different one but its absolutely refusing to use anything but the one that matches its slug

#

i guess i could try switching the filenames??

random sleet
#

if one matches the slug itll override im pretty sure

silent sinew
#

oh

#

so i guess i should make neither of them match then

shell timber
#

morefluff change for vanilla parity

silent sinew
#

ok well now the floating_sprite is stuck on the one that's used for its center

#

can the floating_sprite and center not use different atlases??

shell timber
#

i don't think so

silent sinew
#

i guess i have to do a bunch of stupid math with the shader then

#

actually maybe not that much since i can just put the parallax part on the top left

frosty dock
#

it's gonna always use the give atlas if provided

silent sinew
#

that's good

random sleet
#

so uh why cant you just have everythjng on one atlas

silent sinew
#

i was being stupid i can

#

i just wasn't thinking hard enough

#

does anyone know the range of texture_coords.x and y btw

#

oh its 0 to 1

#

ok i got the scrolling but there's weird seams

#

probably some rounding bullshit

silent sinew
#

wtf no matter what i do there's still these awful seams

golden lake
remote coral
silent sinew
#

i've been trying to get rid of this seam

#

for an hour

#

there's apparently a different texel fetching function that doesn't have the issue

#

but it's in a version LITERALLY .1 HIGHER THAN THE ONE LOVE USES

#

OMG

#

I FIXED IT

#

I NEEDED TO DISABLE MIPMAPPING FOR THE SPRITE

#

holy shit it's finally over

zealous glen
#

Good afternoon chat

silent sinew
#

now all i need to do is set a mask so the parallax doesn't go outside the edges of the card

#

uhhh i have no idea how to do that fuck

silent sinew
#

this is probably the most stupid over the top joker ever

#

i so badly want to break the dark colors rule

#

i think i'll just color them spade color

zealous glen
zealous glen
#

This one

hoary sand
#

is it like don't use colors darker than the joker black

zealous glen
hoary sand
#

the gifts

zealous glen
hoary sand
#

?

zealous glen
hoary sand
#

i mean i haven't shown them in game?

#

it's more about the appearance then anything

zealous glen
#

I mean I thought you just wanted to talk about a run with a mod

hoary sand
#

ohhhh

zealous glen
#

Without context it’s hard to tell @_@

#

They look good tho 👍

candid cloak
#

What are the "rules" for Joker art?

hoary sand
#

i think it's just generally trying to maintain the same style as the og ones

#

the game doesn't use pitch black, the darkest color is #4f6367

dawn valve
zealous glen
#

Keep in mind the palette isn’t that fixed

#

Some Jokers use gradients etc.

candid cloak
#

Thanks!

dawn valve
#

Yeah, I'm not following the pallete so strictly

silent sinew
candid cloak
#

What's the pallete btw?

zealous glen
#

How did you do the background?

silent sinew
#

it just loops through a section on the spritesheet and shifts the hue

#

it was harder than it sounds because i spent a genuine hour trying to figure out why the background had seams before realizing i had to turn off mipmapping for that sprite

#

getting a joker to have a front was also interesting but not nearly as hard

zealous glen
silent sinew
#

i mean i'm not sure how else a joker could be animated tbh

#

unless you could just register an animated atlas for it somehow

random sleet
#

you can just load an animated sprite instead

silent sinew
#

oh damn it's that easy lol

zealous glen
random sleet
#

but its not Supported

#

you have to do it

zealous glen
#

I haven’t tried because I’m a bit too lazy to do a 6-frame animation right now

random sleet
#

i should see about whipping something up for that i think i see how to do it tbh

#

when in doubt make the animation just some random stuff

zealous glen
#

I know I could test with something else

silent sinew
#

imagine if you had to do some hacky snes esque shit with palette cycling in a shader

zealous glen
#

But I already have the first frame (base Joker art)

golden lake
#

/gen

#

i need this now

silent sinew
#

also lemme grab the code

random sleet
#

lenticular stuff

#

?

silent sinew
#

yeah lenticular

#

someone make a lenticular joker and wow everyone with your shader knowledge

#

-- IN INIT

G.SHADERS['shader'] = love.graphics.newShader(SMODS.findModByID('modname').path.."/assets/shaders/shader.fs")


-- OUTSIDE OF INIT

local card_draw_ref = Card.draw
function Card.draw(self, layer)
    card_draw_ref(self, layer)

    layer = layer or 'both'

    if (layer == 'shadow' or layer == 'both') then
        self.ARGS.send_to_shader = self.ARGS.send_to_shader or {}
        self.ARGS.send_to_shader[1] = math.min(self.VT.r*3, 1) + G.TIMERS.REAL/(28) + (self.juice and self.juice.r*20 or 0) + self.tilt_var.amt
        self.ARGS.send_to_shader[2] = G.TIMERS.REAL

        for k, v in pairs(self.children) do
            v.VT.scale = self.VT.scale
        end
    end

    if (layer == 'card' or layer == 'both') then
        if self.sprite_facing == 'front' then 
            if self.ability.name == "The Knight" then -- replace "shader" with shader filename, use "dissolve" and delete the other args for no shader, it still needs to be there tho or else the other sprites will be drawn over it
                self.children.center:draw_shader('shader', nil, self.ARGS.send_to_shader)
                self.children.front:draw_shader('shader', nil, self.ARGS.send_to_shader) -- if you didn't manually add a front to your joker then get rid of this
                self.children.floating_sprite:draw_shader('dissolve',0, nil, nil, self.children.center,scale_mod, rotate_mod,nil, 0.1 + 0.03*math.sin(1.8*G.TIMERS.REAL),nil, 0.6) -- these two are only required if it has a soul
                self.children.floating_sprite:draw_shader('dissolve', nil, nil, nil, self.children.center, scale_mod, rotate_mod)
            end

            if self.seal then -- i think this part is required for joker stamp compat lol
                G.shared_seals[self.seal].role.draw_major = self
                G.shared_seals[self.seal]:draw_shader('dissolve', nil, nil, nil, self.children.center)
                if self.seal == 'Gold' then G.shared_seals[self.seal]:draw_shader('voucher', nil, self.ARGS.send_to_shader, nil, self.children.center) end
            end
        end
    end
end
#

@golden lake

golden lake
#

and that works with additional stuff like editions?

silent sinew
#

also the code to add a front to a joker if anyone wants it

-- function below from Numbuh214
function align_layer(card, layer)
    v = card.children[layer]
    if v ~= nil then
      v.states.hover = card.states.hover
      v.states.click = card.states.click
      v.states.drag = card.states.drag
      v.states.collide.can = false
      v:set_role({major = card, role_type = 'Glued', draw_major = card})
    end
end

local card_setspritesref = Card.set_sprites
function Card:set_sprites(_center, _front)
    if _center then
        if _center.name == "name" then
            G.ASSET_ATLAS["atlas"].image:setMipmapFilter();
            self.children.front = Sprite(self.T.x, self.T.y, self.T.w, self.T.h, G.ASSET_ATLAS["atlas"], {x = 0, y = 0}) -- change pos as needed
            self.children.center = Sprite(self.T.x, self.T.y, self.T.w, self.T.h, G.ASSET_ATLAS["atlas"], {x = 1, y = 0})
            align_layer(self, "front")
        align_layer(self, "center")
            align_layer(self, "floating_sprite") -- delete this if no soul
        end
    end
    card_setspritesref(self, _center, _front)
end
silent sinew
#

gulp

#

if it doesn't then i have some work to do

#

i know you can nest shaders considering negative has two of them but it might be something you have to do manually i don't know

golden lake
#

check with debugplus

#

add negative edition to the knight

silent sinew
#

i'm going to bed rn but i'll try to remember later

frosty dock
#

oh damn, seal polling in standard packs is inconsistent with their order in center pools

#

i don't want steamodded to change rng if no additional seals are loaded

#

that's inconvenient 💀

zealous glen
random sleet
#

change the pool before the function loads

#

this will definitely not be a mess

zealous glen
#

Maybe have a function to compute the pool?

#

Can seals have flags? Maybe they could have flags

frosty dock
#

I'll just have a separate list that starts off with the order they're in for the vanilla poll

#

it's not that much overhead, it's fine

random sleet
frosty dock
#

lmao

random sleet
frosty dock
#

where

#

... did my 'end' go?

rough furnace
#

It's at the end of the last line

frosty dock
#

ik

#

line_prepend can be weird like that

random sleet
#

downside is i dont think i can really make it so the framerate is controllable

#

oh also it breaks constantly

#

yeah no animated jokers can be someone smarter's claim to fame

#

it crashes as soon as any other code so much as breathes on the sprite

narrow pollen
#

just dropping a teaser of what i've been cooking before passing out

#

(yes, i made some changes to the website code. yes, i will be sharing them once they're all done.)

unkempt thicket
#

(not exactly what you did but i did make changes)

silent sinew
#

it's basically the same as walkie except it gives 40 chips directly instead of 10 chips 4 mult

zealous glen
random sleet
#

not really it doesnt actually work

#

if Anything happens to the sprite it breaks cuz the AnimatedSprite code is ever so infuriatingly different i guess

zealous glen
remote coral
zealous glen
random sleet
#

ok its more that other stuff would need to know its animated

#

i think

golden lake
frosty dock
#

bro

maiden phoenix
#

Can there be compatibility conflict if a mod uses their own enhancer.png file and I use my own for my own stuff?

#

Oh wait the mod i'm thinking about does it differently nvm

frosty dock
#

you should always use your own atlases unless you're modifying all of a vanilla one

mellow crag
#

Heloooo guys

#

What is up

frosty dock
#

the math.ceil

mellow crag
#

that's it

#

im not asking what's up anymore

frosty dock
#

;-;

#

chat which suit map is better? In 1, the values are the y values for the suit in question in the atlas. In 2, the suits are just in order in which they are in the spritesheet, but that means suit_map[1] corresponds to y=0 and it's less efficient needing to loop the list to find a suit

bold osprey
#

I love it

frosty dock
#

fun

bold osprey
#

LMAO

#

it's because of Jimbo and its fricking tutorial

frosty dock
#

lmfao

bold osprey
#

why is the game making me do the tutorial again ? I swear

frosty dock
#

just play on an unlocked profile

bold osprey
#

That's the neat part

#

I don't

#

XD

#

well I do have some XD but I managed to fix it

#

The fix being deleting the mod

#

and I made the mod 😭

#

welp

#

I completed the tutorial... SO I can't find the problem

#

That's how you fix your mods

#

say there's no problem

#

Also anybody knows what's cuasing this logging wit hSteamodded, it's annoying me very much

frosty dock
#

some testing artifact on generate_card_ui, I guess

zealous glen
#

I think I'll release a small mod that adds negative cards to the game so other people don't have to implement it on their own.

rough furnace
#

Oh neat

#

The game does already properly render negative cards but they don't function

zealous glen
#

I thought it would be hard then I decided to try using lovely and it was easy.

zealous glen
#

Now I need to fix the tooltip and that extra juice while evaluating and it's done, I think?

rough furnace
#

It also seems to slow down when drawing the cards

zealous glen
#

The draw is a bit weird but I don't know how to make it smoother.

#

I know the issue is I draw cards individually, but with arbitrary negative cards in the deck I don't know how to fix it, except rewriting the function that draws cards.

long gust
#

negative gives +1 joker slot

rough furnace
#

Yeah haven't looked at how the code works, but maybe you could just add some code to the draw function to deincrement the number or whatever when it draws a negative

fair inlet
#

just make negative cards +1 hand size and make it not being able to be copies by death/cryptid etc for balance

zealous glen
#

The mod only makes them function

zealous glen
#

If you make a card in your hand negative it also squeezes them together. That couçd be improve

zealous glen
#

I had another effect which I wanted to speed up but I have no idea what makes animations accelerate or not

glacial oasis
#

What is the entry point for balatro when you start the game? is it main.lua?

bold osprey
#

I need your help yall

#

each of these mods work perfectly fine alone

#

but when I try to launch a game with both of them it's an infinite loading screen

mystic swift
zealous glen
#

I can make them display the tooltip for consumables, but if I try to add a custom tooltip to the localization file it errors.

narrow pollen
golden lake
#

what did i do

#

oh no

#

i should nerf this to be like, just the joker on the right

narrow pollen
#

and the rarities are... kind of arbitrary atm? i'll probably make punch clock common, maybe make magic number uncommon given it has amazing retrigger synergy

edgy reef
#

First it was Lua syntax infecting my GDScript, now it's the other way around.

#

Also refactoring is amazing

frosty dock
#

👀

edgy reef
#

WHAT

frosty dock
#

it's... uh..

#

different

zealous glen
#

I tried adding a new entry to the localization, but it doesn't seem to work?

mellow sable
#

This is going to make it so much easier

hoary sand
#

why does scholar show up twice

golden lake
#

i hate modding i hate modding

mellow sable
#

It’s a Balatro University cameo

golden lake
#
    function SMODS.Jokers.j_cueball.loc_def(card)
        card.calculate_joker({generate_ui = true})
        return {card.ability.extra.card1, card.ability.extra.card2, card.ability.extra.card3}
    end

why does this not work

#

it works on my friend's end but not on mine

edgy reef
#

wait wha

mellow sable
#

Are you on 1.0.1f?

golden lake
#

yes

#

wait no

frosty dock
#

alright now I just have a bunch of ugly function overrides to get through

golden lake
#

/gen

frosty dock
#

some of these I do really just wanna keep as destructive as they are

golden lake
#

this is the error i get

#

im on 1.01f now, same error

mellow sable
#

It could be a version diff, maybe your friend is playing 1.00 or something

#

That’s all I can think of

#

I know one of my lovely patches is different in 1.00/1.01 for Cryptid

silent sinew
#

is there a way to tell if a suit is "light" or not? ie blackboard effect

golden lake
#

ok i fixed it by just putting everything in locdef

#

Yokcos made this sick card for Balatrostuck and it wasn't working, but now it is

silent sinew
#

actually i gues i can just look at how the bunco cassette tape thing handles it

#

if it does it manually i will be sad

silent sinew
#

oh it's super manual

#

that's sad

zealous glen
#

I mean how else would it be done

silent sinew
#

are suits not just automatically registered as light/dark for blackboard?

zealous glen
#

No

silent sinew
#

so if you have blackboard with sixsuits it doesn't count moons???

golden lake
zealous glen
silent sinew
#

that's genuinely wacky

zealous glen
golden lake
#

someone should code a ContrastAPI or sth

#

like, an api that adds like

#

Light and Dark suit registers

zealous glen
#

I was conceptualizing an effect for a different omniscient character

golden lake
#

and changes vanilla jokers to work with dark light suits

silent sinew
#

i guess i'll just have to check for every mod that adds new suits and add the "dark" ones to a table or something

zealous glen
#

But I wasn't sure what, besides playing with the deck face-up

golden lake
#

or do what i said

hoary sand
#

should smeared smear all lights with each other? or just specific pairs

golden lake
#

add 2 global variables for dark and light suits

#

take ownership of vanilla jokers

mellow sable
zealous glen
#

Why is it dark and light and not blacks and reds?

golden lake
#

call it like, TwilightAPI or someshit

zealous glen
#

Demo Smeared had Black and Red

golden lake
#

yeah that could work too

zealous glen
#

But thunk changed it after people complained

silent sinew
#

honestly that probably wouldn't be too hard lol

zealous glen
#

it was unclear

silent sinew
#

the api thing

hoary sand
#

does flower pot work with sixsuits?

golden lake
#

and you'd be doing people a favor

#

because then people would be able to like

#

use things

slow ocean
#

Flush and pale

zealous glen
#

I think it's too specific IMO, but I guess it people want it

#

too specific to be an API

golden lake
#

not really

silent sinew
#

definitely not

golden lake
#

it's an essential thing for mods that add a lot of suits

slow ocean
#

Nah that's kind of the point of an api

silent sinew
#

bunco has a card that uses it too

hoary sand
#

i feel like it should just be part of the suit api

zealous glen
#

Why should mods conform to binary suit allocations

silent sinew
zealous glen
#

I mean, if you add a lot of suits you could group them in more than two colors

silent sinew
hoary sand
#

it'd probably be better to allow any number of colors

silent sinew
#

like bunco and sixsuits

golden lake
zealous glen
#

Define two groups for vanilla but allow an arbitrary number of them for modded

golden lake
#

you'd just have the light/dark or red/black divide as the primary divide

silent sinew
#

are there really any mods rn that add a third color though?

golden lake
#

also Lyman look

hoary sand
#

stars/moons could

#

as opposed to red/black

zealous glen
#

Balatrostruck adds 12 /hj

slow ocean
#

Hello hi akai

hoary sand
#

600 suits pairing things could just be turned into colors

slow ocean
#

I just finished my first training shift

zealous glen
#

How did it go?

slow ocean
#

There's broken glass everywhere

#

(It was okay)

hoary sand
#

colors would be more of possible categories than anything else

zealous glen
#

Glad to hear it ended up okay

slow ocean
#

What am I to be gazing upon

zealous glen
#

ponder the orb

golden lake
slow ocean
#

❀

#

My beloveds

#

Also did the new patch finally drop?

hoary sand
#

i think so

#

1.0.1f?

slow ocean
#

Yes

golden lake
slow ocean
#

Did the mod thanos snap happen yet or does 0.9.8 still work fine if you update lovely

golden lake
#

do you get the jokes Lyman

#

also no

#

mods work

#

im on 1.0.1f

#

all good

slow ocean
#

OK phew

golden lake
#

but yeah lyman do you get the jokes

#

Tower, Strength, Temperance, Hanged Man

slow ocean
#

You told me yeee

hoary sand
golden lake
#

no

#

the diamond should be nerfed

#

this thing cranks out

#

way too much money with two eggs

#

you get into like

#

$90 per round

hoary sand
silent sinew
#

how do you check if a mod is loaded again

golden lake
#

in like 5 antes

zealous glen
hoary sand
hoary sand
frosty dock
golden lake
zealous glen
silent sinew
#

so would i just do like

hoary sand
#

i mean that's still pretty normal

silent sinew
#

if SMODS.findModByID('SixSuits')

zealous glen
#

nah

hoary sand
frosty dock
#

1.0: if SMODS.MODS.SixSuits

hoary sand
#

gift attack

golden lake
#

holy shit square joker..

frosty dock
zealous glen
# golden lake

How do you check if the Flush has a specific suit though? Do you iterate over all Flushes contained in the hand?

golden lake
#

btw @slow ocean what should be the 5th card of the Dersite set

edgy reef
golden lake
#

if it contains a Clubs Flush

#

it destroys all played cards

#

so if the hand is Flush

#

and at least one of the scoring cards is Clubs

#

it counts

frosty dock
#

wait so if I play a diamond flush with one wild card, it also counts?

zealous glen
#

That's not how I'd interpret Clubs Flush

silent sinew
#

are there any other suits i should add

zealous glen
#

I thought a Clubs Flush should have five (or four) Clubs at least

golden lake
#

that's really funny I like that

narrow pollen
golden lake
#

no

#

i think its funnier that way

narrow pollen
#

i guess that's fair

zealous glen
zealous glen
odd dock
frosty dock
#

eh, I'm likely adding something for this to the API anyways

hoary sand
#

i mean the names are internal so it's whatever

golden lake
zealous glen
golden lake
#

if it contains a clubs flush

hoary sand
golden lake
#

it do thing

zealous glen
#

I don't think four Clubs and a wild is all Suits

hoary sand
#

^

mellow sable
#

8s and Nulls

odd dock
silent sinew
#

i'm not adding 600suits compat sorry

golden lake
zealous glen
#

and make methods apply to any element of the list

golden lake
#

it makes wild cards proc on all 4 of them

#

and i think if you can use that to your advantage that's great

silent sinew
#

yeah i'll let mods define new colors and a suit's color

zealous glen
#

and other people agree with my interpretation of Suit Flush

golden lake
#

it's not clear in a way which is more like a secret mechanic

hoary sand
golden lake
#

it's still working with what you're describing

hoary sand
#

like above common good

zealous glen
#

Ehhh I don't really see it that way

frosty dock
#

I was thinking suits can define a smeared_suit field, and any suits with matching smeared_suit values count as the same suit under smeared joker rules

golden lake
#

you're arguing balance for Balatrostuck, I don't think that's an argument that can be won or posited

zealous glen
golden lake
#

i think its hilarious that you can proc them on wildcards

zealous glen
hoary sand
#

maybe just add reminder text? idk

zealous glen
#

The mechanic can be whatever you want

golden lake
#

the description is clear enough

zealous glen
#

I just don't think the Joker description is clear vis-a-vis people agreeing with my interpretation

golden lake
#

it tells you the primary function

#

the primary function works correctly

#

you'll only ever run into the other usage if you like

zealous glen
#

Use a Wild card

golden lake
#

yes

zealous glen
#

who does that đŸ€”

#

Wild cards ew

frosty dock
golden lake
#

and it won't screw you over, it'll actually make you go "oh shit this works?"

zealous glen
hoary sand
#

wild cards need a buff

zealous glen
#

Etc.

golden lake
#

Balatrostuck is full of unspoken technicalities

#

i think its fine as is

zealous glen
#

I'm not criticizing the existence of technicalities, I'm saying the technicality is based on a definition you find intuitive but most people seem not to

#

Anyways

#

It's your mod

golden lake
#

i thought of wording that i guess you might be happy with because i'm happy with it

frosty dock
# zealous glen So?

i could allow a list of smeared_suits and check if the compared suits have any one suit in common

#

I'm just not sure I like the possible implications of that >_<

silent sinew
#

god i'm gonna have to add a new type of suit color to test this api

hoary sand
#

shouldn't smearing be transitive?

zealous glen
#

something something bitwise operators

hoary sand
zealous glen
#

just define a large binary number and if two suits have a 1 in the same binimal place they're the same

hoary sand
#

at that point just use a set

#

does lua have sets?

silent sinew
#

aren't stars considered light and moons dark by something in the mod already

frosty dock
frosty dock
#

so it does whatever it does by default

silent sinew
#

maybe i was thinking of something else

frosty dock
#

which is treat them as black

silent sinew
#

i guess i should also take ownership of smeared with this mod?

hoary sand
#

array table
vector table
set table
map table
queue table
struct table
class table
lua is so silly <3

silent sinew
#

are blackboard and smeared the only vanilla jokers that have an effect related to suit "color"

golden lake
#

@zealous glen

hoary sand
#

why isn't there a red equivalent to blackboard?

golden lake
#

because redundancies

hoary sand
zealous glen
golden lake
#

btw Victin what do you think of the effects of the Dersite jokers

hoary sand
#

the only other differences between suits are the four rock things right

silent sinew
#

is this how i reference jokers i take ownership of?

frosty dock
#

yep

silent sinew
#

cool

frosty dock
#

the 1.0 way is also slightly different

golden lake
#

Hegemonic Brute my beloved..

hoary sand
#

marbled steel (steeled marble?) jumpscare

frosty dock
#

SMODS.Joker:take_ownership('blackboard', { calculate = function(self, context) end }

zealous glen
# golden lake btw Victin what do you think of the effects of the Dersite jokers

They're all very impactful, but I'm not sure how even their strength is. CD seems a bit weaker because Stones have less synergy usually. DD seems situational, but when it works it works very well. Jack is risky since he destroys before scoring, but the long-term benefit of a smaller deck is strong, and you might only ever play two hands with him. HB can help manipulate your deck but it can take a while, and eventually you'll likely want to get rid of him.

golden lake
#

Jack is the only one who has effect after scoring btw

zealous glen
#

Ah, then he's less risky

#

But it makes sense IMO because that's what players would assume

silent sinew
#

ok i set up a local variable in blackboard that should be a table of all the suits it'll accept but i'm not sure how to get this to work with a table

golden lake
#

ie. HB -> Strength, DD -> Temperance, CD -> Tower, Jack Noir -> Hanged Man

zealous glen
zealous glen
#

Makes me think what they were in the official Homestuck tarot set

#

also if you are still looking for another Dersite Joker, maybe the Mayor?

silent sinew
#

i guess i could just do something like

for k, v in ipairs(G.hand.cards) do
all_cards = all_cards + 1
local done = false
  for i,w in ipairs(goodsuits) do
    if v:is_suit(w, nil, true) then
      done = true
    end
    if done then
      black_suits = black_suits + 1
      return
    end
  end
end
zealous glen
remote coral
slow ocean
#

Still out and about slow to respond

#

I'd have to think on that tbh

golden lake
#

I think that'd be really funny

zealous glen
#

Why?

#

The other dersites were common; though maybe you intended to change that

golden lake
#

no no as the 5th of the set

#

4 commons, 1 uncommon

edgy reef
golden lake
#

also Mayor is arguably like

#

the weakest of them

#

so having him have a better effect than all the agents would be hilarious

zealous glen
#

He also unites both Prospitians and Dersites, so I think there's some Flush flavor to be had there if you continue the theme

golden lake
#

I wanna do something with this

zealous glen
#

all suits are green

frosty dock
golden lake
zealous glen
mellow sable
#

Smeared Joker synergy!

frosty dock
#

all jokers are orange

zealous glen
golden lake
#

that'd make sense

#

but what does he replicate

edgy reef
#

(Vagueposting about Index Card most likely being hell to implement for this reason)

zealous glen
golden lake
#

sounds a bit complex

frosty dock
#

mhm there was an idea to introduce an is_rank function, but that just might take quite a lot of patching

#

also makes straights calc really obnoxious as you have to also be careful not to count the same card twice

golden lake
#

also @zealous glen what do you think of making a mirror set of Midnight Crew jokers with a Straight Flush proc

#

or a Straight proc

zealous glen
#

Hmmm! Sounds fun!

golden lake
#

they'd be Rare instead of Common

zealous glen
#

I support Straight Flush synergy but four Jokers at Rare might be a bit much.

golden lake
#

wait aren't there 4 secret hands?

zealous glen
#

3 if you don't count Royal Flush I think

golden lake
#

hmm

#

trying to conceptualize how they could work

#

I really like the idea of a parallel Midnight Crew set

#

with like, "reverse" Tarot effects

silent sinew
#

why is this giving me an error

golden lake
#

no dot before []

silent sinew
#

o

#

right

golden lake
#

its just G.suitcolors[v]

zealous glen
silent sinew
zealous glen
# silent sinew

when mod adds 600 suits to that list (it extends the box outside the screen):

golden lake
#

blackboard jumpscare

silent sinew
#

cool it works

golden lake
#

now do it on smeared

silent sinew
#

i wonder if i can get the colors in

zealous glen
#

Do you know any mods that extend the localization dictionaries?

golden lake
#

plenty

#

nearly all of them actually

zealous glen
#

Wait can steamodded handle new editions?

#

I don't want to add a new edition, I just want a new dictionary entry for it

golden lake
#

it can handle new editions

zealous glen
#

Like, Negative has two dictionary entries

narrow pollen
zealous glen
#

I want to add a third

narrow pollen
#

and then reword smeared joker to say

silent sinew
#

flushes can be made with any suit of the same color

narrow pollen
#

"Flushes can be made with any 5 cards of Bright or Dark suit"

zealous glen
silent sinew
#

it's light and dark

narrow pollen
#

i mean, that's also fair

zealous glen
silent sinew
#

cool

narrow pollen
#

but at the same time, i think more ambiguous wording would help the state that modded balatro already finds itself in

mental wind
#

I'm currently trying to download the steammodded modloader, but chrome keeps blocking it, saying it's a dangerous download. Is there some other way to download it, or another mod loader I could use?

zealous glen
mental wind
#

How do I do that?

zealous glen
#

Otherwise, you can check out how to install Steamodded with Lovely

zealous glen
mental wind
#

I saw one thing saying to right click and save link, but that didn't work

golden lake
#

Brights and Darks is better because it doesn't enforce like, red coloring on the other part of a set

#

like, not every set will have Blacks and Reds

mental wind
#

The only option given is delete from history

zealous glen
#

I mean, I don't think it enforces Red coloring as much as Brights enforces Bright coloring

golden lake
#

I'm gonna have a hardcoded joker that groups together Pale and Flushed suits

mental wind
golden lake
#

wrong chat

#

this is the chat for developer stuff

short surge
#

we are all dangerous here

golden lake
#

exactly

#

we will steal your honda civic

#

nobody give them the answer that's gonna encourage them to bring the conversation offtopic more often, we have to make an example out of this one

mental wind
#

my bad, I thought this would make more sense in dev chat since I am planning on using it to make and test mods, but it makes sense that it should be in standard modding chat

golden lake
#

it's one of the most frequently asked questions and the reason we had the chat/dev schism to begin with

mental wind
#

ah, my bad

golden lake
#

you can literally just search it up in the #1209506514763522108 forums under guides and you'll get results

#

this is why im convinced we should beat up people who use AI chatbots over search engines

#

not saying you do, just a tangent

zealous glen
#

I don't trust AI chatbots to search but they can usually write simple programs right. But they're not consistent IMO

royal ether
#

hell no chatgpt sucks ass at coding

zealous glen
royal ether
#

every time ive used chatgpt ive spent days debugging the code

#

also good morning chat

zealous glen
zealous glen
zealous glen
zealous glen
silent sinew
#

i fucked sometihng up

zealous glen
silent sinew
#

i have no idea what i'm doing wrong here genuinely

#

maybe i need to do colors[k] instead?

narrow pollen
silent sinew
#

wait i think i know what i need to do

#

hold on

#

THERE we go

golden lake
#

you are going to save Murphy's 600 suits showcase fr

#

also hear me out, suit collection stamps

#

on the cards

#

like, a little stamp in the bottom left corner

#

that's either red or black

#

indicating if they're a bright or dark suit

unkempt thicket
silent sinew
#

i'm just gonna have tooltips for each suit color that will show on smeared and blackboard

golden lake
#

It can get ridiculous though

#

So I would advise maybe adding an option in the options menu to have a stamp or other kind of indicator for bright/dark suits

silent sinew
#

if you have that many suits you're asking for it tbf

golden lake
#

it doesn't even have to be much

silent sinew
#

i don't think it'll matter unless you're deliberately using a shit ton of suits

edgy reef
zealous glen
silent sinew
#

are you not able to set colors using loc_vars

zealous glen
silent sinew
#

that doesn't work if the amount of colors you're using is dynamic so i'll just leave it alone i guess

edgy reef
#

Thank god I was right that Prolétaire wasn't 1/5 of the code, but this joker is definitely pushing it

#

Literally 2x the lines of every other joker

#

And it's gonna be more with the custom blinds

#

(Yes, I've been spending the past 4 hours refactoring Ortalab)

edgy reef
silent sinew
edgy reef
#

Ok yea

edgy reef
short surge
#

does anybody know what G.STATE_COMPLETE is responsible for?

#

I feel like there is something in between G.FUNCS.play_cards_from_highlighted and G.FUNCS.draw_from_deck_to_hand, but not sure what exactly

royal ether
#

im pretty suree its used for checking if a blind is dead after calculating a hand?

#

i think?

short surge
#

do you know what happens exactly after you throw all played cards into discard pile and before you draw cards? I feel like there must be something that I missed completely

silent sinew
#

for some reason this shows both colors in the collection but only 1 during gameplay

short surge
#

like you said, i think there's something about blind state checking, but not sure if there is more

silent sinew
#

acually maybe it'd because i'm redefining key hold on

#

nope that wasnt it

short surge
#

now I'm thinking maybe it's Game:update_draw_to_hand(dt)

golden lake
#

It contains logic that determines stuff like if X cards discarded, draw X cards

#

but it can be modified to be sth like, if X cards discarded, draw 10 cards

short surge
#

i see

#

then i guess it was Game.update_hand_played?

#

so many shady business between stages

still jacinth
#

ok ive coded with js and py before, but never with lua. so i cant really understand any of the code. how would i go about adding something such as a joker, tarot card, tag, etc?

silent sinew
#

would absolutely fucking adore if it could tell me what ipairs it's talking about i can't lie

golden lake
#

ipairs is whenever it break downs a table into pairs where the key is an integer and the value is whatever

golden lake
#

whats down the stack trace

edgy reef
#

lmfao

still jacinth
royal ether
#

obviously its the ipairs on line 1754 🙂

golden lake
#

@silent sinew whats down the stack trace

zealous glen
golden lake
#

whats below that statement

#

show me whats below that one line of error

silent sinew
#

i think the issue is here but i dont know where

edgy reef
#

Bunch of loc_txt related things

golden lake
#

can you just show me the stack trace please

edgy reef
#

Idk how it works so

#

😱

odd dock
golden lake
#

balatrotale

silent sinew
#

i'll get the stack trace ok

odd dock
#

too used to pinging me 😔

zealous glen
#

I was trying to do that to get Negative Card tooltip to show

golden lake
#

yeah you're passing a null table

zealous glen
#

But anyways, I think you get a nil instead of a table with parsed text

golden lake
#

is there anything below this

silent sinew
#

i have no idea how i'm passing a nil table

golden lake
#

what's the closest part of stack trace that shows your mod's code

silent sinew
#

none of it shows any of my mod's code

golden lake
#

like, try to find a part of the stack trace where it specifically says sth like at file 'your_mod'

silent sinew
#

my best guess is that i % 2 somehow ends up never being 1

golden lake
#

it will say that

#

oh yeah you have to add 1

#

modulo is

#

a 0 range

#

array tables are 1..n

#

not 0..n

#

so you want to do ((i - 1) % 2 ) + 1

#

otherwise the value will start at 0

#

we love off by 1 errors

silent sinew
#

that still crashes with the exact same error

zealous glen
silent sinew
zealous glen
# silent sinew

I don't know if when executing the tooltip is a good time to create the localization, especially when it's not parsed

#

I think the game parses the localization when it initializes a language and then saves it

golden lake
#

yep

silent sinew
#

i'll just format it after a mod adds something that should be put in it then

zealous glen
#

I have a mod that edits the localization and it just works

#

I'm trying to mod the localization for a different mod and it doesn't work

#

I don't understand

golden lake
#

all of this just so that suits mods dont break Smeared and Blackboard

silent sinew
#

ok that was it

golden lake
#

Flower Pot compat when?

zealous glen
silent sinew
#

i just had to not format it in the tooltip function

zealous glen
silent sinew
#

i'm still having the unrelated problem where smeared is only showing one tooltip outside of the collection though

zealous glen
silent sinew
#

why does it matter

silent sinew
zealous glen
silent sinew
#

it's a function for other mods to call

zealous glen
#

But you're calling it to test

#

Where

silent sinew
#

after everything is registered

zealous glen
#

Inside or outside the init?

silent sinew
#

in

#

the function is defined before the init

zealous glen
#

Let me try that

zealous glen
silent sinew
#

idk

silent sinew
zealous glen
golden lake
#

keep it as error

#

its funnier that way

#

its like "what the fuck?? how did you get your playing cards negative??? "

zealous glen
#

I feel like there's a simple solution I don't know and it drives me mad

golden lake
#

btw Victin

zealous glen
#

I think I'll release the API like this so other people can fix it for me

golden lake
#

did you see the new Aspect backgrounds that Yokcos made?

zealous glen
#

I don't think I did

golden lake
zealous glen
golden lake
#

Balatrostuck is one of the mods of all time

#

I love the Time one

zealous glen
#

It's such a high quality mod

golden lake
#

they did such a good job on it

zealous glen
zealous glen
still jacinth
#

does the file where i declare the vouchers have to be named something specific?

golden lake
wintry swallow
#

im thinking of making a spectral card that makes like 5 wild cards because i think wild cards are pretty fun

#

might make it less than 5 bc it might be op

still jacinth
#

nvm found it 👍

wintry swallow
#

nice

still jacinth
#

what do i put before the .path?

#

the thing is just in the assets 1x and 2x folders

#

oh im dumb

#

how is it unsupported file format

#

is it not supposed to be a png

wintry swallow
#

wait what happened

#

i can prob help

still jacinth
#

here lemme get some screenshots

wintry swallow
#

Oh wait I see ur problem

still jacinth
#

for some reason i cant take a screenshot of game but this is the code

wintry swallow
#

Oh u changed it

#

Hmm

#

And what’s the error

still jacinth
#

it says unsupported file format

wintry swallow
#

Like when you open balatro?

still jacinth
#

ye

#

could not decode (file path) to imagedata: unsupported file format

#

with (file path) just being where the file is

wintry swallow
#

Wait do you have any other mods

still jacinth
#

in the mods folder its just lovely and Steamodded

#

got a screenshot

edgy reef
#

Took me 5 hours to do but Ortalab is no longer one egregiously long .lua file.

#

2850 -> 76 is one hell of a transformation

still jacinth
wintry swallow
still jacinth
#

alr ill check

#

i think everythings spelt correctly

wintry swallow
#

thats weird

still jacinth
#

ok what the actual hell

#

i replaced it with a different png file and now it works

wintry swallow
#

thats how coding is sometimes lol

still jacinth
#

yeah lmao

#

am i doing this right

wintry swallow
#

i think the last one should be "Booster"

still jacinth
#

still only says 32 vouchers in collectionn

#

but also that makes sense that it would be that

wintry swallow
#

like the SMODS.INIT one

still jacinth
#

oooooh

#

LETS GO IT WORKS

wintry swallow
#

hooray

silent sinew
#

define_suit_color seems to be working fine

#

but making a new color doesn't which is weird

#

ok i think it works for blackboard but something in the smeared function is making it not register as a flush when i play a hand of gays and leprechauns

#

ok blackboard's actual effect doesn't work either what

royal ether
#

there's no visual indicator for being pinned other than the tooltip, right?

silent sinew
#

ok i got blackboard working but

#

i think i got the context wrong

#

because it triggers 3 times

#

that should be an easy fix

unkempt thicket
#

when you get this working, I'd love to see how to do it, because I'm working on six hundred suits.

silent sinew
#

no idea why my smeared joker code isnt working

still jacinth
#

how do i make a joker that has like, gains X1 mult every time a 9 is played?

thorn bough
#

turns out having multiple pinned cards is... kinda jank?

silent sinew
#

oh my god is_suit gets run like a million times when you select 5 cards

crisp coral
thorn bough
#

im basically just using the builtin code, and it probably doesnt matter too much?

golden lake
#

we're crashing the game with this one

silent sinew
#

oh now custom suits dont even work with light or dark flushes when they did before

#

wonderful

#

what did i even change

golden lake
#

idea

#

you should add green suits

#

they turn the cards green

silent sinew
#

i think i'll just overwrite is_suit because it works exactly the same as it does normally

#

just with added features

#

that did not fix anything

#

what the actual fuck am i doing wrong

#

this SHOULD work

#

colorlist only has values
suitcolors.colors[color] has suits

#

i'm losing my goddamn mind

short surge
#

guys i need some big brain to help me...

edgy reef