#đŸ’»ăƒ»modding-dev

1 messages · Page 4 of 1

odd dock
#

oh thats interesting

edgy reef
#

Ok lemme do another run (I got Yorick and Brainstorm)

mellow crag
crisp coral
#

what are we cooking

river fern
#

OOO

#

CARD AREA

slow ocean
shell timber
#

didn't the cine cards guy make a cardarea

slow ocean
#

i was trying to find space that wouldnt overlap with it whenever it came out

random sleet
#

smol card area...

shell timber
#

could actually be kind of interesting?

random sleet
#

trinket area....

shell timber
#

yes

crisp coral
#

oh my god

shell timber
#

nonconsumeable oddity area (?!)

crisp coral
#

yknow you can probably also have a separate area for actives

#

er. active (singular)

random sleet
#

that could be interesting but i think having them in joker slots gives them more mechanical weight? it probably would be trivial to make it a config option though...

shell timber
#

consumeable slots?

#

or actives

crisp coral
#

how'd you make backpack work then

silent sinew
#

trinkets and actives we're making this game isaac

random sleet
#

actives yeah
backpack would just be like "usable jokers give +1 joker slot (up to 3 total)" or something

silent sinew
#

does anyone in chat know how i could pull this off rn

random sleet
#

lovely injection?

silent sinew
#

i have no idea how that works

random sleet
#

its not terribly complicated, you can always reference the lovely.toml in steamodded or check out like, risk of jesters

silent sinew
#

oh it has it in the readme nvm

random sleet
#

oh there's a readme bulbaSip that works too

silent sinew
#

i guess i could just make This Specific Feature lovely exclusive

#

but anyone who doesn't use lovely is a SUCKER anyway! (Joke)

river fern
#

“joke” :3

random sleet
#

thats basically my approach, if its not critical to the gameplay then whatever but ill make anything that mechanically requires my lovely patch only load if lovely is loaded

edgy reef
#

Ok, on an actually practical run that isn't influenced by Legendary joker shenanigans, I think this joker is pretty nice for its effect

#

Wait

#

I can get 2

#

Due to showman

#

nooo it doesn't level it up by 6

#

sad

silent sinew
#

honestly the workflow for lovely injection seems so much nicer than having to hook into shit all the time

#

i'm still gonna make as much of my stuff steamodded compatible as possible but man

random sleet
#

smods will require lovely Soonâ„ąïž anyway

silent sinew
#

good

shell timber
#

hm. Huge Joker is rare now

#

which is good. i needed more rares

#

seems kinda weak?

#

might make it just X2

#

x4 mult iff you're holding 2 colour cards

river fern
#

perkeo


shell timber
#

Ignoring Perkeo For Sanity

slow ocean
#

if you're perkeoing color cards youre not perkeoing cryptid

#

seems fine to me

odd dock
silent sinew
#

does lovely injection affect everything that matches the pattern or only the first thing

edgy reef
bold osprey
#

For the wording i would write "Each time a hand is played, decrease the level of every poker hand by 1 except played hand"

silent sinew
#

ok i give up

frosty dock
silent sinew
#

i just want to decrease percentage but its being so damn stubborn

edgy reef
#

It's supposed to be 1X

frosty dock
#

tbh X0 is funnier bc losing all your clubs is now a lose condition

#

but it has to be eternal lmao

edgy reef
#

Thought of "cultivate a forrest, avoid it getting burned" when taking a shower

silent sinew
#

does steamodded hook into eval card and mess with percentage or something because i cant think of any other reason why it keeps getting reset

frosty dock
#

not sure what you mean by percentage

silent sinew
#

sorry i meant eval play

edgy reef
silent sinew
#

its the variable that controls the pitch of the sound effects when your playing cards and jokers trigger

frosty dock
silent sinew
#

maybe i'll come back to it when i'm not so tired

calm nova
#

anyone know what lua in the game has the description for the jokers

silent sinew
#

loc_txt?

random sleet
#

descriptions are in localizations/<lang>.lua

silent sinew
#

oh thats what you meant

random sleet
#

as is the rest of the text

calm nova
#

i dont see lang.lua

#

ohh nvm

silent sinew
#

i kinda wanna add reversed tarot cards in jokicide tbh

#

i know other mods have done it before but i feel like its probably the most vanilla way to add new tarots

random sleet
#

do it
we need 8 mods that all add reverse tarot

#

it'll be funny, trust 🙏
do it for the funny 🙏

silent sinew
#

also because some of the effects i have in mind i can only see working with pre existing tarots 😭

#

like the "destroy a joker and gain twice its sell value" could only be death ever

slow ocean
#

alright i banged out 3 new [REDACTED] today

#

and fallout 4 is still not done

random sleet
slow ocean
#

i actually touched aseprite today

slow ocean
#

thats how i feel trying to make shaders work with atlases

random sleet
#

did you get it tho

slow ocean
#

no

random sleet
#

oh

slow ocean
#

i mean the shaders i wrote for thac should be fine

#

i was trying to do something for itay but programming

random sleet
#

oh you mean for the flip one

slow ocean
#

yee

#

im sure its possible but i think it would need like some sort of editing on the .lua side of things to input an atlas size or smth

random sleet
#

does the shader know/can you tell it the pos of the sprite and/or size of the atlas

#

.... i see

slow ocean
#

i can flip the uvs, but that doesn't adjust the position on the atlas

random sleet
#

theres probably some jank math that could be done to directly flip the coordinates

#

are you able to access how large the spritesheet is?

slow ocean
#

maybe? you might need to hack self.ARGS.send_to_shader

#

or well, the base of that

random sleet
#

right. idk what glsl offers for logic based on the given image

silent sinew
#

have you tried editing uv.x and uv.y

slow ocean
#

i did

#

like i said, flipping the uv.x and y doesn't accomodate for the whole sprite sheet being rotated

silent sinew
#

i remember that moving everything around in the sandbox i was using but idk how it works in balatro

slow ocean
#

it works fine for things that dont have an atlas

#

like my jokers

#

but jimbo will display as a flash card for example if you just flip uvs

mellow crag
#

autumn!

random sleet
#

you'd need to know the size of the atlas image; could hardcode it for 71x95 sprites, so i think all you need is to figure out atlas size sensing

#

feder!

#

did you investigate the thing i dm'd you

silent sinew
#

idk if this is a thing in lua but maybe you can like make a new atlas on the fly that's cropped to that specific joker's sprite

slow ocean
#

hardcoding it to 71x95 might not work since the way the game does 1x and 2x sprites

random sleet
#

im not sure if its my fault or the api and i was too tired to figure it iut

slow ocean
#

i might tackle it again in the morning

#

i've tried doing a ratio of 71:95 to see if that would work instead but i might be too dumb at glsl and it just stretched everything

silent sinew
#

are you sure you need a shader to just rotate a sprite anyway?

slow ocean
#

i know you dont

#

but itay was doing a visual request of mine and one of the ways of trying to do it was a shader

#

so i figured i'd try to tackle it

silent sinew
#

i see

slow ocean
#

(it's flip flop from fusion jokers)

random sleet
#

i think itd look better if druggler/junkard visually rotated when switching so i'd still stick to inengine personally but idk how much you run into "i have to fight every line of code in this game to rotate a card and have it stay there"

slow ocean
#

from what feder was going through it was Not Fun

random sleet
#

yeah... :( i guess an alternative is do a fancy animation and then try to seamlessly switch to the rotated shader

#

or just not be flashy with it idk

frosty dock
#

druggler sounds like something else :I

silent sinew
#

just make thunk add the utility in the base game giggle

queen scroll
#

hello i have a question: how does the game figure out which sprites are rendered on top of others?

slow ocean
#

imagine the word druggler is here or smth

frosty dock
frosty dock
queen scroll
#

yeah, but i want to make a card render on top of an entirely different card

slow ocean
#

like a seperate card?

queen scroll
#

yeah

slow ocean
#

or just like the image of a card

frosty dock
#

oh

queen scroll
#

yeah, i have two jokers and i want one to render on top of the other regardless of order

unkempt thicket
slow ocean
#

you love to see it

edgy reef
#

I GOT SMEARED

frosty dock
edgy reef
#

Maybe setting it to 0.3X might be too much...

shell timber
#

oh what does the gnu joker do (or is that reshuffled)

edgy reef
#

Reshuffled Bull

slow ocean
#

is it intentionally spelled forrests

#

it should be forests otherwise

edgy reef
#

bruh

#

:programming:

slow ocean
#

its ok

edgy reef
queen scroll
stiff locust
narrow pollen
#

holy shit that felt good

#

oops, forgot i was replying to something, mb

#

anyway

#

just got a minor visual issue fixed in enhanceAPI

errant flower
#

hey so im new here and im trying to figure out how to get my modding adventure on the way

calm nova
#

so its reading this as a nil but im confused cause have it the same as my other jokers??

#

its a path for the sprite

narrow pollen
#

can we see some of the surrounding code? a bit hard to understand what's going on from just a simple "nil" error

calm nova
#

yea my bad

calm nova
bold osprey
#

size 0B

frosty dock
#

ah yes

golden lake
#

morning balatro modding nation

frosty dock
#

gm

calm nova
#

morning

bold osprey
#

morning

errant flower
#

moring

calm nova
bold osprey
#

the uppercase

#

@calm nova

calm nova
#

i tried and same thing

bold osprey
#

i have no idea

calm nova
#

man

bold osprey
#

maybe a problem here

#

which would cause the nil

#

no that's not it

#

it's the last instance of Sprite call that causes problems wtf

calm nova
#

yea its weird

bold osprey
#

crashes on load ?

#

shouldn't there be an end here ?

calm nova
#

yes sir

bold osprey
#

or you added one too many end

calm nova
#

when i do it crashes for that

#

yea says one too many

bold osprey
#

i think you have 1 too many end somewhere whch would cause it to be called outsde the init so a global nil

#

beautfied code

#

clearly one too any end soewhere

#

should do it

#

before the if crackedstone reove one and add one after the last end of crackedstone

calm nova
#

forsure i mightve went to crazy lol

bold osprey
#

can help

calm nova
#

thank you that forsure will

bold osprey
#

it works ?

calm nova
#

trying rn

#

yea it works thank you

bold osprey
#

🙂

calm nova
#

so remove a end then add one whenever i add another joker?

bold osprey
#

no

#

just put it inside the function

#

x)

calm nova
#

ahh okay

mellow crag
#

I don’t like UI

shell timber
#

who does?

mellow crag
#

I’m working on tabs for the hand API

#

Cause it can get really long

#

But it just won’t refresh when I move the page!

bold osprey
#

itay i'm gonna make a huge update to the sound Api XD

shell timber
#

evidently

mellow crag
#

What’s in it?

bold osprey
#

the one on core rn is missing so much

shell timber
#

hm. how can i make jimbo cube

maiden phoenix
#

Was gonna say every 3oak with 3 cards do something but im pretty sure that already exists

random sleet
zealous glen
#

I think a slider would make more sense for hands

random sleet
#

scroll bars are illegal

mellow crag
random sleet
#

good luck coding one o7

#

probably actually harder tbh

gray apex
#

Is it possible to make a voucher add free rerolls for each shop? It seems like G.GAME.current_round.free_rerolls gets reset to 0 whenever the shop is rerolled.

mellow crag
#


 right?

random sleet
#

no

mellow crag
#

Oh

whole sun
#

I had an idea for a mod that I’d love to make but don’t know where to start.

mellow crag
random sleet
#

i cannot recommend enough that you do not look at the convoluted and jank code in my mod

#

(look at sixsuits or mikas mod instead i think those are generally cleaner)

worthy depot
#

Your code makes me cry low key.

whole sun
#

I guess all the coding I really need to figure out is how to implement a joker, and Ceremonial Dagger. If Lua is as straight forward as people make it out to be, it shouldn’t be the worst

random sleet
whole sun
#

Easier than learning C+ at least

random sleet
#

lua is pretty easy

#

you can use 7zip to open balatro.exe and extract the lua meat inside

whole sun
#

I’d say the only coding knowledge I have is Scratch, but I did take an html class in college

golden lake
#

just saw a video of some dumbass trying to say people have double standards for defending thunk on if-else statements but criticizing yandev for the same thing đŸ€Š

#

dude its almost like they're 2 different games

random sleet
whole sun
#

Kinda figured

zealous glen
random sleet
#

nah everything's pages

golden lake
#

Lua's great honestly now that I wrote it for a while

zealous glen
random sleet
#

not really the same thing

mellow crag
#

It’s either I do endless node chaining, or I figure out a way to actually reload the pages correctly

surreal marsh
#

redeem() changes current_round_voucher to nil in an E_MANAGER event, and I want to change it back, but my event freezes the game. Does anyone know why it freezes the game and how to change current_round_voucher as I want?

zealous glen
#

You could cheat and make it discrete instead of continuous, like pages but each page has hands from n to n+k

golden lake
mellow crag
#

How do I access the nodes of the overlay

#

That is the question

random sleet
#

is it THAT different from collection pages? lol

mellow crag
#

Kinda

golden lake
#

balatro UI is the real part of balatro held by hopes and dreams i think

mellow crag
#

Since collection pages have cards that can refresh themselves and alert the page

random sleet
#

ah i see

mellow crag
#

I can’t do that with the hand UI

#

Since it does not really exist

#

It’s just an array of ui objects

crisp coral
#

the people who make fun of thunk's joker ifelse have never seen the nodes[1] hell

golden lake
#

my thoughts

mellow crag
#

When do we make the balatro mod slander video?

random sleet
random sleet
#

treat it like switching to voucher view, perhaps

crisp coral
#

carefully call the remove function for every children object

zealous glen
#

@mellow crag what if you use create_slider to render the hands from n to n+k?

random sleet
#

idk im just spitballing im stuck at work

golden lake
#

it shouldn't be too difficult provided you can identify the container

random sleet
mellow crag
#

I am not home rn sadly

mellow crag
random sleet
#

pretty sure its recursive

mellow crag
#

I cannot identify the container

golden lake
#

hm crap

crisp coral
#

what container we talking bout

mellow crag
#

If only you could add an id to a container, and get it using a func

zealous glen
crisp coral
#

each row of poker hand? or

shell timber
#

hm

mellow crag
shell timber
#

X3 mult, you cannot see joker slots

mellow crag
#

I am working on a poker hand API, so I want to introduce pages of hands, to make sure that the hands don’t overflow

crisp coral
#

PAGES HELL

#

ONE OF US

mellow crag
#

My friend

#

I am so deep in pages hell it hurts

golden lake
#

this is gonna be awful isnt it

random sleet
#

just wait til he gets it done and then i add enough hands for 10 pages

crisp coral
#

since i'm planning to do something to the run info ui ig i can see where it is

#

add a hand for every permutation of cards played

whole sun
#

I’m in insomnia mode so I guess I’m gonna try learning a bit of lua through reverse engineering

mellow crag
#

No it will work fine don’t worry

#

Oh sorry for the reply ping

crisp coral
#

weh

golden lake
#

that's what you get for suggesting that myst..

mellow crag
#

And I also have another ui problem that I am working on

whole sun
#

So why can’t we ping Myst on reply?

mellow crag
#

But that one is with the joker menu

zealous glen
#

I think the function you want is create_UIBox_current_hand_row

mellow crag
golden lake
whole sun
#

Fair

zealous glen
golden lake
#

the problem arent the rows

mellow crag
#

The problem is with changing the displayed rows

zealous glen
#

But I meant like to start searching the code

golden lake
#

its to add pages

mellow crag
#

Oh the pages exist

golden lake
#

so that you can split up the hand row

mellow crag
#

The button does “switch berween pages”

zealous glen
#

I thought it’d be a slider

mellow crag
#

But the display does not change

crisp coral
#

oh this is similar to how i added rows to houserules

golden lake
#

i think you'll have to effectively rewrite thunk's logic though to a bit

#

because currently all hands are being drawn together in one call

mellow crag
#

Rewriting never scared me

golden lake
#

you'll have to do it recursively i think?

mellow crag
golden lake
#

oh good

#

then you need to add the pages button i presume?

mellow crag
#

The problem is switching between two displays of hands

random sleet
#

i think the best way to do it for vanilla parity is to just re-generate the whole UI, which is what i think it does when you go between tabs in runinfo already?

golden lake
#

hm

#

ok so it has pages

#

so the arrows don't do stuff?

mellow crag
#

The only problem is refreshing the display for each page

mellow crag
#

The display is the issue

crisp coral
#

okay so what you wanna do is just regenerate the entire uibox for each page

mellow crag
#

And I think I know how to do it

golden lake
#

what about the display

golden lake
#

oh god

mellow crag
#

But I need to reach the uibox for that

crisp coral
#

well isn't it just the return for create_UIBox_current_hands

mellow crag
#

Yeah

crisp coral
#

like just overwrite that with the pages func

mellow crag
#

But I need to find where to place that

crisp coral
#

oh hm

mellow crag
#

I already edit this function

#

It works correctly

random sleet
#

the code for switching between poker hands/blinds/vouchers holds the key....

crisp coral
#

lookign at create_tabs gives me a headache

mellow crag
random sleet
#

same lol

crisp coral
#

wait fuck i need to mess with this exact function for a thing i want to do

#

killing myself

#

don't worry i have a solution

golden lake
#

careful, thunk might see this..

frosty dock
#

lmao

golden lake
#

also this is a little offtopic but i need to share it with y'all

golden lake
#

this is specifically for the devs though

#

this is my dev music

#

helps get the juices flowing

gray apex
#

Is it generally a good idea to replace a vanilla function with a modified one? I've modified the new_round function so that my free reroll vouchers work for each shop, but will that have unintended consequences?

random sleet
#

it wasnt exactly explained well, but i was a bit under the impression this chat was more specifically for people trying to get help with code? not 100% tho

golden lake
#

not for help with stuff

#

just dev stuff generally

crisp coral
#

the main point was to not get "how install steamodded" during a convo anyway

golden lake
#

if any other mod calls that function expecting vanilla behavior

#

you're screwing them over

#

don't modify vanilla code

random sleet
#

or

use lovely

crisp coral
#

lovely

#

i need to use it for mystblinds just to not have High Card displayed lol

gray apex
random sleet
#

patch it with lovely or hook it normally?

crisp coral
#

i think you can just append the voucher code at the end

golden lake
#

you should be fine just appending the code yes

gray apex
#

How might I do that?

golden lake
#

don't override the function though

#

you make a ref

#

what's the function called?

#

new_round?

gray apex
#

Yeah, in the state_events lua file

golden lake
#

ok so what you want to do is

#
local new_roundref = new_round
function new_round()
new_roundref()
-- your code here
end
random sleet
frosty dock
golden lake
#

gotcha

gray apex
#
local new_roundref = new_round
function new_round()
    new_roundref()
    if G.GAME.used_vouchers.v_gm_extra_roll then
        G.GAME.current_round.free_rerolls = G.GAME.current_round.free_rerolls + 1
    end

    if G.GAME.used_vouchers.v_gm_free_roll then
        G.GAME.current_round.free_rerolls = G.GAME.current_round.free_rerolls + 1
    end
end

Like this?

golden lake
#

no self

#

sorry

crisp coral
golden lake
#

also its new_roundref here

#

not red

gray apex
#

Whoops

golden lake
#

but yeah

random sleet
gray apex
#

Also is there a good way to give myself vouchers? I'm currently just spamming 16 negative copies of a custom joker that gives a Voucher Tag.

random sleet
#

DebugPlus can spawn vouchers into the shop

golden lake
#

deck creator

#

will have to check out debugplus fr

random sleet
#

its very helpful, big recommen

mellow crag
#

Bold to assume I use lovely

worthy depot
crisp coral
#

this user does not use lovely

#

@ meth, crush their balls

golden lake
#

wait tf im also not using lovely

#

i thought i was

#

i guess when i updated i fucked it up

#

1 sec chat

random sleet
worthy depot
crisp coral
#

autumn how do you create card

random sleet
#

idk ask your mother

random sleet
gray apex
crisp coral
#

try calculate_reroll_cost(true)

random sleet
#

looks right to me, did you misspell a voucher name perchance

#

oh and the thing myst said

gray apex
#

These voucher names are right, I'll give Myst's suggestion a go

#

Still $5 rerolls

local new_roundref = new_round
function new_round()
    new_roundref()
    if G.GAME.used_vouchers.v_gm_extra_roll then
        G.GAME.current_round.free_rerolls = G.GAME.current_round.free_rerolls + 1
    end

    if G.GAME.used_vouchers.v_gm_free_roll then
        G.GAME.current_round.free_rerolls = G.GAME.current_round.free_rerolls + 1
    end

    calculate_reroll_cost(true)
end
crisp coral
#

hm

#

double check your vouchers

gray apex
#

Double checked and the voucher names here are correct

#

This part of the function here

local chaos = find_joker('Chaos the Clown')
G.GAME.current_round.free_rerolls = #chaos
calculate_reroll_cost(true)

is placed within one of those G.E_MANAGER:add_event things.
Does that change the order in which the code is run?

random sleet
#

ohhhhhh yeah

#

that'll do it, events are ran at the next appropriate available timing

gray apex
#

So it's being run after my appended code?

random sleet
#

yeah

#

what you can do in that case is add another event of your own

#

which will then happen after the one in the original function (Queue rules not Stack rules)

gray apex
#

Alright, I'll give this a shot

#

Yes! It works!

gray apex
#

Thanks yall!

whole sun
#

Here's the resprite work I've got so far

#

Any art advice for merging the mouth into the frilly bits at the bottom?

maiden phoenix
#

I wonder, if I set an ability extra to "{C:attention}something", will it write the whole thing or apply the color change? Unless there's a better way to achieve this?

random sleet
#

itll write it out

frosty dock
#

you can add a colours field to loc_def iirc

maiden phoenix
#

The thing is I don't want the color change on a specific variable state

frosty dock
#

you can ref it in loc text like {V:1} but you'd need to know before hand where the color has to be

crisp coral
#

alright chat place your bets will this work first try

frosty dock
#

no

crisp coral
#

correct

#

:programming:

#

i forgot to return t anyway

#

lmao

frosty dock
#

whenever i see nodes[1] spam, the answer is no

random sleet
#

and put them up next to each other without a space between

frosty dock
#

might have to be an empty string instead

random sleet
#

its inelegant but it works. like a sledgehammer is technically a skeleton key.

#

oh true

maiden phoenix
#

I'll give the {V:1} a try first

#

Thanks

shell timber
#

oh wack

#

simplified joker triggers on common oddities

random sleet
#

LOL

frosty dock
#

unrelated, but how should center key prefixes be enforced? required component in the header next to the other stuff or something else?

random sleet
#

wait does baseball card work on uncommoddities

frosty dock
#

it could be set in code technically, since it doesn't need to be known pre-load

shell timber
#

it might?

random sleet
shell timber
#

it doesn't check the card's set so

frosty dock
#

init functions run after mods load, so that's no concern

frosty dock
random sleet
crisp coral
#

wait why do i need to do nodes shit

random sleet
#

idk you're the one doing it???

shell timber
#

hm. i should make some tarots/planets/spectrals/etc.

crisp coral
#

yeah idk either but

frosty dock
#

now what is a valid key prefix?

#

lowercase letters only?

random sleet
#

i currently use Thac_ but i can adapt

crisp coral
#

is ĂŸ a valid prefix

random sleet
ionic isle
#

are oddities easier to create than tarots/planets/spectrals?

frosty dock
#

i think convention should be lowercase

#

imo digits are fine, other chars idk

random sleet
#

only major difference is that they have rarities

crisp coral
#

if i can't use ĂŸ as a prefix i'm quitting modding

#

/j

shell timber
#

just got yorick twice in a row

random sleet
#

pog?

ionic isle
ionic isle
#

might switch to making oddities then

shell timber
#

also offering is so fun

ionic isle
#

ikr

frosty dock
#

fine, it won't be more restricted than mod ids are just to be consistent

crisp coral
#

thorn wins

frosty dock
#

since it can default to the start of mod id

#

and you could just abuse that either way

zealous glen
#

Can I use α as a prefix? Can I use 🙂 as a prefix?

shell timber
#

can you?

crisp coral
#

idk

#

fuck around and find out

frosty dock
#

uh... it will be annoying when you ever want to reference that object by key, but sure

shell timber
#

yay!!

crisp coral
#

autumn did joker emoji its fineeeeee

shell timber
#

emoji card type

crisp coral
#

🃏

random sleet
#

oh yeah i did do that huh

#

debug console still crashes on unicode tho

crisp coral
#

buy a new debug console

ionic isle
ionic isle
#

there are a lot of emojis though but its definitely an interesting idea

zealous glen
#

I can in Python and Julia :P

frosty dock
#

how would we like this for init functions?

function SMODS.current_mod:init()
    
end
random sleet
#

i like that a lot

crisp coral
#

how did this work

#

holy shit

frosty dock
mellow crag
shell timber
#

pretty fun run, last joker was ms paint

#

(the nine of diamonds has +120 chips)

crisp coral
#

okay i need to do the from run_info stuff

narrow pollen
crisp coral
#

but basically i'm just adding a tab that lists modifiers applied to run

narrow pollen
#

nice

frosty dock
crisp coral
shell timber
#

comet randomly upgraded 4oak twice but it just came in clutch

#

thanks comet!

zealous glen
whole sun
#

Does the dev channel also include art?

crisp coral
#

okay i think i need to create a separate function that lists out modifiers but that's fine

zealous glen
shell timber
#

also i love buyselling money oddities

whole sun
zealous glen
crisp coral
#

oh that sure is a madness

random sleet
#

mindflayer madness?

shell timber
#

no it's funnier when it does nothing

whole sun
#

planning on it being a Jimbothulu

zealous glen
random sleet
#

(its dark and my phone is dying hhhh)
looks cool tho

shell timber
#

anyways, mods work on 1.0.1e with the same lovely dll

whole sun
#

Thanks

crisp coral
random sleet
shell timber
#

buy using i mean

#

from shop

random sleet
#

ohhh right
still need to implement that behavior in packs programming

frosty dock
random sleet
#

localization support? nice
guess thats +1 to procrastination paying off haha

frosty dock
#

xd

shell timber
#

hm. joker borders

gaunt thistle
#

gnostic did you ask me to crush someone's balls

#

I have a vague memory of seeing that notification

#

might've been a dream

random sleet
#

was someone else but that did happen

golden lake
#

meth do you know where savefiles are stored on linux perhaps

crisp coral
#

hi that was me

gaunt thistle
#

thanks

#

it was funny

#

@odd dock knock em over the head and give them the lovely treatment

whole sun
#

What tools do I need to open a Lua file?

#

or is it just notepad?

maiden phoenix
#

Vscode is recommended, along with a lua extension.

zealous glen
gaunt thistle
#

please use at minimum something like notepad++

crisp coral
#

why can't i figure out the logic for this

#

guh

zealous glen
#

Are there people who program in MSword?

whole sun
#

I've used VSCode before so I'll give that a go

shell timber
#

there's other editors but vsc is beginner friendly enough

calm nova
#

ill add or take away a end but it tries to close different lines

crisp coral
#

i was in the middle of implementing modifiers tab but electricity decided to die for two seconds

crisp coral
#

line 769 extra end
line 770 missing end

golden lake
#

@calm nova you got an answer

frosty dock
#

1.0.1e really gonna mess with steamodded even more huh

random sleet
#

hows that

crisp coral
#

how so

frosty dock
#

now all modded jokers can't be perishable

golden lake
#

wha

crisp coral
#

oh

random sleet
#

OH

crisp coral
#

lmao

golden lake
#

how

random sleet
#

perishable_compat

crisp coral
#

well

#

0.9.9

frosty dock
#

you think I would throw another param into that mess?

crisp coral
#

yes

#

bandaid fix

#

go

random sleet
#

tablecalll .....

#

idek if thats a real term

frosty dock
#

nil, nil, nil, nil, nil, nil

#

💀

crisp coral
#

oops! all nils

random sleet
#

just make it default to true

#

bandaidiest of bandaid fixes

frosty dock
#

I'll put an API-unsupported default value if I do release 0.9.9 ever

random sleet
#

real talk tho im so happy perishable_compat is real

frosty dock
zealous glen
frosty dock
zealous glen
#

Then at least the function inputs becomes more compact

crisp coral
#

aure doing god's work

frosty dock
#

I'm one step ahead of you there, the question is just to what extent I want to bother dealing with legacy code

random sleet
#

Real API!

#

i should make oddityapi look more like that

frosty dock
#

I mean I'll make myself go through making a consumable type api

random sleet
#

oddities have rarities im pretty sure i still need to special case them

zealous glen
#

Blessed balatraure gaming

whole sun
#

Ceremonial bowl from Ramen Art. Thoughts?

zealous glen
frosty dock
#

so hidden rarities?

zealous glen
#

I guess. I just want effects that create objects that can’t be obtained elsewhere

#

Like the Milk my Cow Joker makes

frosty dock
#

so basically a card type that has no collection associated with it-?

zealous glen
#

Not necessarily, because I could have Jokers create token Jokers, token Consumables, maybe token Packs, etc.

random sleet
#

rarity api....

zealous glen
#

Or Consumables that create those

frosty dock
#

so just generally an option to hide cards from the collection and pools

random sleet
#

that would be based

zealous glen
frosty dock
#

collection is linked to pools i think, so that shouldn't be too hard to achieve

crisp coral
#

i love writing 50 lines of untested balatro ui code at a time

random sleet
#

so one ui table?

frosty dock
#

half a ui table

calm nova
crisp coral
#

ping reply

golden lake
#

debugplus is great

#

about to speed up creation of balatrostuck tenfold

random sleet
#

you're shellÂąome

zealous glen
#

Why does the C overlap the spoiler bar

mellow crag
#

Looks really good

random sleet
#

feder jumpscare
how goes the handpages insanity

crisp coral
#

why are you

#

like this

calm nova
mellow crag
random sleet
#

oh fair

crisp coral
#

okay i quit i don't think you need to see your applied rules

mellow crag
frosty dock
#

squashing boilerplate code is fun ngl

crisp coral
#

yknow what sure

#

i'll throw my spaghetti code to you in dms

frosty dock
golden lake
#

oh god doing testing an i ran into the funny

hardy basin
#

I still have no idea what “do not debug source code” means

sleek notch
#

attachign a debugger to the source code, I guess

hardy basin
#

if that’s what it means then why not write that

#

Like the plain reading i get from that is “do not fix any bugs” or even “do not try to understand the source code” but if it’s meant to be the latter then how are you supposed to make mods

#

I kind of don’t like that one of the few rules there are is extremely ambiguous

#

Especially given that depending on what “debug” is supposed to mean it could impact a wide category of mods

crisp coral
#

don't worry none of us know either

#

go ahead, buy a joker

random sleet
#

curse of the blind

crisp coral
#

TRUE

#

might make this only affect shop and boosters

random sleet
#

curse of the labyrinth when....

crisp coral
#

6 blinds per ante

random sleet
#

lets joe
unironically ante curses would go hard

mellow sable
shell timber
maiden phoenix
#

Are you doing wiki work?

shell timber
#

do you want to?

crisp coral
#

colors are a bit

#

hm

shell timber
#

yeah

maiden phoenix
#

I'm just wondering

crisp coral
#

also moods lmao

hardy basin
#

Okay but people did that with nan seeds and it’s apparently fine

maiden phoenix
hardy basin
#

Like if bugfix mods are banned why not just
 say that

crisp coral
#

wait

#

that's the fucking mouth moods cover

shell timber
#

it is

#

colours are a bit off

#

am fixing

crisp coral
#

killing you with hammers

shell timber
#

mouth moods has the most iconic cover so i did that

golden lake
#

good news everyone, balatrostuck is almost ready for beta release

#

(jokers only)

random sleet
#

this is supposed to be good news?/j

golden lake
#

i will need to consult the alchemist wizard to get aspects and zodiacs to work

crisp coral
#

oh no

golden lake
#

@random sleet do you want an early access

#

i can invite you to the GH before i open it for public

random sleet
#

not specifically i have enough bugs that are my own fault

golden lake
#

i meant moreso for playtesting

#

than debugging

mellow sable
#

Something like a QoL mod that has bug fixes should be good too

#

It’s just like, we shouldn’t be using this chat to point and laugh at some funny bug that’s caused by a typo in the code

crisp coral
golden lake
#

omg like in isaac

gaunt thistle
hardy basin
#

I think you explicitly did in response to a message i sent (though tbf that was in the context of me already knowing where and why it happened)

crisp coral
#

now i make the exact same modifier but for consumables

#

killing you

gaunt thistle
#

who?

shell timber
#

slight tweak to the colours, orange might be a bit saturated

sleek notch
#

Moods or noods

gaunt thistle
shell timber
#

moods

hardy basin
#

yeah i’m not trying to make fun of the bug. rng code is easy to get wrong and it doesn’t meaningfully affect the game that much it’s just something i think about probably more than i should

surreal marsh
mellow crag
#

back home

golden lake
#

hello feder

#

also is steamodded gonna retire classic injector in favor of lovely then?

mellow sable
#

Making an improved RNG system is very different than if you had just, say, joined the chat and starting criticizing the internals of the current one (which, yes, I agree has its flaws)

mellow crag
#

also hmmmmm.

crisp coral
#

it gone

#

🩀

shell timber
#

hypercompressed text

#

also shit it's 2024.

golden lake
#

yeah it is

shell timber
#

wtf

crisp coral
#

lmao??

zealous glen
mellow sable
#

Yeah, that might be more on the line than I thought

gaunt thistle
#

I would definitely ask thunk directly rather than theorizing what that rule pertains to

crisp coral
#

oh my god what have i done

mellow crag
#

Do you know if you can get a UI node based on a specific ID?

shell timber
#

anyways what should the mouth moods joker do

golden lake
shell timber
#

hm

crisp coral
#

if it's a Moveable then you can use get_UIE_by_ID

mellow crag
crisp coral
#

comedy

shell timber
#

face down oddities

crisp coral
shell timber
#

at autumn you should make it so oddities can specify a face down sprite

mellow crag
shell timber
mellow crag
#

and then how do I get it? and can i get its nodes?

crisp coral
#

moveable object is like

#

a dynamic uibox

mellow crag
#

oh cool

#

wait how do i specify its id?

crisp coral
mellow crag
crisp coral
#

oh ew discord doesn't like formatting that

#

you add a node of G.UIT.O (object node used to add moveables)

shell timber
#

hm. what do the mixtapes do

mellow crag
#

like this?

crisp coral
#

you must add it to a separate object node

mellow crag
#

oh

crisp coral
#

i believe

mellow crag
#

so i can just sneak in a little object node and then traverse upwards?

crisp coral
#

yea prob

mellow crag
#

so like this

#

and then i can traverse upwards? how so?

crisp coral
#

wait traverse upwards

#

i don't think so

mellow crag
#

then i can encapsulate the entire thing in a node object probably

crisp coral
#

unless get_UIE_by_id returns the entire uibox

#

but i think it just returns that specific node

mellow crag
#

no but it has to be in a root

#

aaaaa

crisp coral
#

pain

mellow crag
#

like this maybe

shell timber
#

kind of a combination of ortalab and bunco's mixtape and cassette

mellow crag
#

umm...

shell timber
#

yay!!!

crisp coral
#

no more poker

#

everybody go home

mellow crag
#

so apperantly you cannot place it inside the node object

maiden phoenix
shell timber
#

playing just stone should get you the null hand

golden lake
#

Balatrostuck is starting to clarify 2 gamebreaking builds

#

you have the Vriska build that just completely wipes the floor with RNG by making all RNG succeed and/or pay off big time

#

and you have the Dave build that introduces deterministic effects you can always predict and control to a great degree

#

just made a system that guarantees you can get Death every single goddamn round

shell timber
#

trying to fix the freaky shader

mellow crag
#

i dont wanna do UI anymore

#

I have no idea what to do

crisp coral
#

you must suffer... like i have...

shell timber
#

hm this is pretty freaky ngl

mellow crag
#

YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

shell timber
#

awesome

crisp coral
#

win

odd dock
#

feder are you good with ui or just fast at trial & error?

mellow crag
#

XD

shell timber
#

freaky jokers now make a vine boom sound when they spawn

candid cloak
#

Is there a way to check discard size?

crisp coral
#

VICTORY

mellow crag
#

not yet

#

i need to move the tab

crisp coral
#

now we move the page button to the correct node

mellow crag
#

i have no idea how to do that XD

zealous glen
candid cloak
#

Yes

#

We're creating a card that only actives if you discard 5 cards at once

zealous glen
# candid cloak Yes

I imagine you can see how Burning Joker checks the hand among cards discarded and see if it helps

#

There’s also Faceless Joker

#

Checking for three discarded faces

bitter sand
golden lake
#

Skeet Spectrum when

#

or Spectrumblaze

#

Spectrumblaze House

#

also as for Dogs and Cats

bitter sand
#

wt- i don't understand

#

too much brain in here for me

shell timber
#

flush spectrumblaze house

golden lake
#

how would a Flush Spectrum work

#

they're kind of opposing

hardy basin
#

tbh i would ask thunk but idk the right way to do that

shell timber
#

4 wild cards + something else

hardy basin
#

Like that’s what i would have done in the first place but i want to let the man have his peace etc

golden lake
#

Flush Spectrumblaze House sounds so cursed

hardy basin
#

i’d be happy to pull it if that’s over the line

zealous glen
#

Canis major?

odd dock
crisp coral
#

chat how we thinking about this for a showdown

odd dock
#

interesting

night pagoda
#

Flush spectrum straighrblaze house with dogs and cats inside

crisp coral
#

just fucking cripples your base values

golden lake
#

what would even a Flush Spectrum Straightblaze House score

golden lake
hardy basin
odd dock
#

like this @local thunk

#

i do wonder how much he dislikes pings, but i'll probably just ask if i see him around

golden lake
#

alternatively via the proxy of a moderator

#

like, asking a mod "what did thunk mean by this" might be good

hardy basin
#

yeah

odd dock
#

would they really know that?

golden lake
#

its more so a proxy

hardy basin
#

I mean my assumption is no, but they would know the best way to ask thunk

odd dock
#

fair enough

crisp coral
#

how lovely

#

@gaunt thistle hey lovely nerd, how does ordering work here

#

i'd like the stuff to be triggered after steamodded's

tepid crow
#

which would boil down to "don't include source code when reporting bugs"

#

but that's just my interpretation

mellow crag
#

fully done!

slow ocean
#

so real

frosty dock
#

dope

#

flushblaze housin' it

crisp coral
#

REAL

mellow crag
#

SHIT WAIT WRONG IMAGE

crisp coral
golden lake
#

btw feder how would you make a joker effect with no jokers present because joker_main is kind of not working for me

bitter sand
# crisp coral

are perishable, rental and pinned modded ? 'cause i never saw them

hot jetty
#

were u able to use it? like where did u put ur mods?

shell timber
#

perishable and rental are 1.0.1, pinned is from challenges

hallow forge
#

it said legacy, so I didn't

hot jetty
#

but u can install it normally on mac, just dont know where to put the mods

crisp coral
bitter sand
#

okay thx

broken vine
mellow crag
#

this is so perfect

#

I'm in love

bitter sand
#

this is so ||fucking|| perfect

mellow crag
#

true!!!!

golden lake
#

60 Hands when?

bitter sand
loud pumice
#

Is there anywhere I can find documentation on modding for balatro? I'm wanting to make some more jokers but am having trouble figuring out exactly what's going on just by looking at other peoples code

random sleet
bitter sand
#

i'm trying to make a suit and i though about crown what do you think guys ?

mellow crag
#

What mod adds an additional voucher to the shop?

#

or is that a vanilla thing?

bitter sand
#

i think it's vanilla but i'm not sure

unkempt thicket
random sleet
#

theres a tag that does that

mellow crag
random sleet
#

yea Voucher Tag

mellow crag
#

oh yes

#

Voucher Tag

random sleet
#

silly feder

#

do the pages work? :o

random sleet
#

oh sick

river fern
#

600 ranks, 600 suits, 600 hands

random sleet
#

i just woke up sry

mellow crag
#

all now XD

random sleet
#

only thing id say is the page buttons position should probably remain the same

#

(parity with vanilla ui)

#

flushblaze five my beloved....

silent sinew
hallow forge
random sleet
mellow crag
#

is there a mod that adds another voucher slot?

gaunt thistle
#

shouldn't be hard to make a priority val in the patch file

random sleet
#

i think thats already a thing right?

#

smods has one listed anyway

silent sinew
#

i think i'm gonna try adding some more custom sounds to jokicide today

#

still haven't checked out the sound api update but it should be really useful

whole sun
#

Do I need permission to use Jimbo's name in my mod?

broken vine
#

Jimbo is canon so it's fair game

golden lake
#

sunday do you want to beta test balatrostuck

#

im rolling it out to some people who are fairly active in the balatrostuck thread to see what their thoughts on it are before I do a full release

silent sinew
#

damn is it already that close to being finished?

mellow crag
#

umm...

#

how do I add only one XD

unkempt thicket
#

vouched

broken vine
golden lake
honest tartan
#

How do you add a custom color to be used in the loc_txt? Like {C:pink} for example?

loud pumice
#

Guys I am very dumb, is there any documentation anywhere?

odd dock
golden lake
#

yeah!!

#

dm me

honest tartan
silent sinew
#

i think i implemented the bleached effect wrong

#

should editions be applied before or after the joker effect i forget

#

oh nvm its before

#

i'm gonna try using the actual edition effect function but i wouldnt be surprised if that doesnt work for xmult < 1

#

oh nvm it does!

#

i actually need to make a custom sound for bleached triggering because i forgot edition xmult has a different sound than joker xmult

hoary sand
silent sinew
#

and then i need to test it on playing cards too

mellow crag
wintry swallow
#

is there api for creating a card type (like steel cards, glass cards, that kinda thing)

wintry swallow
#

thanks

frosty dock
#

I'm currently trying to figure out inheritance without any native implementation of classes which has been fun

hoary sand
#

?

wintry swallow
#

im trying to move my mod from jellymod and its honestly going pretty well

hoary sand
#

i think the engine has an inheritance system

frosty dock
#

right there's Object:extend

#

I even looked at that, should have thought of using it, not just replicating it

silent sinew
#

time to try and somehow recreate the foil sound

hoary sand
#

what do you have to do with it

frosty dock
#

basically I want a parent SMODS.Center class to host any subordinate card types like jokers and consumables to reduce boilerplate

royal ether
#

morning chat room

silent sinew
#

its definitely not just a regular sine wave but idk what it is

slow ocean
#

oh worm?

hoary sand
slow ocean
#

what are you trying to recreate it?

silent sinew
#

yeah

hoary sand
#

why?

slow ocean
#

im assuming first one is the original

silent sinew
#

and i cant just sample the original because the harmonies are different for each chord

silent sinew
silent sinew
slow ocean
#

sounds eq'd

#

eq'd or some how fades out a bit at the end

#

second one has a wee bit long of a sustained tone

hoary sand
#

what do you want the variant to sound like

silent sinew
#

i want it to descend instead of ascend

#

there's also that weird ringy sound on the final note

#

that's definitely not a sine

hoary sand
#

wait where is the ringing coming from

#

at the end of your clip

#

it's not in the oggs

silent sinew
#

maybe i'm not using the right word for it

hoary sand
silent sinew
#

the last note just has a weird "punch"

royal ether
#

yo feder may i use the idea for having a separate page for modded consumable sets in balamods consumable api