#💻・modding-dev

1 messages · Page 267 of 1

native zinc
#

you start with the full Raine had went to the apartment ... then you clip onto a few sentences later Later she recalled that she'd left at... then when you're confident no one's paying attention at that point you drop into the simple present She finally saw the remainder of accident — her cat broke all her wine glasses.

#

great stuff

#

oops

midnight coyote
#

THIS VERY LANGUAGE GOES AGAINST THE GRAIN OF EVERYTHING I HAGE EVER LEARNED

manic rune
#

HOW DO YOU

DEBUFF A JOKER 🥀

native zinc
#

i was typing Too Much there

manic rune
#

im gonna check crimson heart or whatever :(

crisp coral
#

i used py in class and i kept fucking up 0 indexed lists

zealous glen
#

and “broke”

native zinc
#

simple past*

#

womp

gaunt thistle
#

list indexes are the lest of your concern in lua

manic rune
uncut grail
#

hey guys can somebody help

midnight coyote
#

so how should i handle this

manic rune
#

it fucking uses set_debuff() instead

#

:3

midnight coyote
#

just check if #g.jokers.highlighted == 1?

zealous glen
#

There’s actually a werewolf hidden inside each Lua program

manic rune
#

well thats annoying

uncut grail
#

i don't get where the config values i put are stored (in-game)

zealous glen
midnight coyote
#

before trying to manipulate it

manic rune
#

god the new discord ui sucks ass

zealous glen
uncut grail
#

they are not in G.consumeables.cards[1].config

midnight coyote
#

all lua programs are built with blood, sweat, and a controlled substance or two

uncut grail
zealous glen
#

Not config

native zinc
zealous glen
#

yuriwolf

hushed field
#

I don't see why this would per se cause this, so I assume it might be that there is different information that the use_card function assumes to be true for booster packs because technically they only open in specific contexts. Does the behaviour work properly if you use the consumable in the shop?

zealous glen
#

I think you can only open a pack while in the shop or selecting a Blind

#

So maybe transitioning from another state is broken

twilit cargo
#

tweakin out before finding out it's 1-indexed and then tweaking out figuring out why != Doesn't work 🥀🥀🥀🥀

native zinc
#

my first lua error was !=

manic rune
midnight coyote
heady siren
#

GLua literally just readds != for people used to other languages

twilit cargo
midnight coyote
#

i’m too used to godot

tall wharf
#

hello

twilit cargo
native zinc
#

idk i somehow understood ~= immediately

twilit cargo
tall wharf
#

im notg brit

zealous glen
native zinc
#

i still think x= might make more sense

#

yeah logic

midnight coyote
zealous glen
midnight coyote
#

that looks like a definition

tall wharf
#

❤️

native zinc
#

x x= 3

#

syntactic whitespace

#

colon three

midnight coyote
native zinc
#

i have made an esolang before

midnight coyote
#

and honestly you should be executed for making the suggestion /lh

manic rune
#

is this brutal

#

-# yes theres two of them in effect at the same time

twilit cargo
lethal ridge
#

hi guys how do i fix this 💀

tall wharf
midnight coyote
#

also me and a group of friends are making fucking exodia in balatro

#

or something like it

manic rune
#

did someone mention rhythm doctor

lethal ridge
midnight coyote
native zinc
#

i love rhythm doctor so much

lethal ridge
midnight coyote
lethal ridge
#

but i changed it on purpose

zealous glen
lethal ridge
west mason
vast fractal
#

is there a way on how to know which toml file is used to patch game files?

zealous glen
native zinc
heady siren
#

Sometimes I forget that time exists while playing or modding Balatro

zealous glen
hushed field
lethal ridge
#

bruh

#

this new discord update

#

is breaking my chat

tall wharf
heady siren
#

I barely even notice a difference

lethal ridge
#

just now i couldent type anything

native zinc
#

alternatively, pov: the charter is a sadist
xx-xxx-

tall wharf
#

I'm buying FL studio 24

native zinc
#

good idea

zealous glen
tall wharf
#

you know what

lethal ridge
#

idk why its broken

#

😭

hushed field
#

can someone check something for me on the latest official smods release?

tall wharf
#

I'm going to buy winrar while I'm at it

zealous glen
lethal ridge
#

am i supposed to use something like pixel size or display size

midnight coyote
#

use 7zip people 😭

uncut grail
#

how would i juice up the consumable card im trying to use (like hermit when doubling money)

tall wharf
#

(i use 7zip)

lethal ridge
uncut grail
zealous glen
zealous glen
#

Not self

#

99% of the time when using SMODS

#

Card is the card

#

Self is the prototype

uncut grail
#

OHH

#

that makes a lot more sense

tall wharf
#

i only allow myself 5 minutes of Twitter

#

per day

twilit cargo
twilit cargo
tall wharf
zealous glen
lethal ridge
uncut grail
#

but not really because i don't get why self.config.limit does not give me the limit, instad giving me nil

zealous glen
lethal ridge
uncut grail
zealous glen
#

Jimbo is Buddhist

lethal ridge
#

just like the atlas

vast fractal
#

is there a way on how to know which toml file is used to patch game files?

tall wharf
#

G.whatevercardarea.config.card_limit ?

zealous glen
lethal ridge
zealous glen
#

Then swap

#

Then go back

twilit cargo
uncut grail
forest ivy
long sun
#

hiiiii modding devvvvvvvvv i've got another question ^^

tall wharf
#

can I post my own mod on the mod manager

midnight coyote
#

jetbrains ides are the best

tall wharf
long sun
#

still trying to get my animated card to work, have i done something wrong?

long sun
zealous glen
#

There’s a PR for it though

#

Well

#

They almost work

#

But something breaks

#

And no one ever fixed it

long sun
#

ah

vast fractal
zealous glen
long sun
#

ya it's this error

uncut grail
# zealous glen No

how would i do it then? if self does not exist, where can i get the variables i set in the prototype config

zealous glen
#

….area works

zealous glen
#

What are you trying to do here

#

The first part doesn’t make sense to me

uncut grail
#

no clue

#

my main goal is just to make a hermit esque effect

#

so i have this hermit-esque card that has "limit" in config, which is set to 30

long sun
#

i guess i can't do it right now, then ^^ unfortunate

uncut grail
#

inside the use method

tall wharf
zealous glen
long sun
#

okay

zealous glen
lethal ridge
#

wait

tall wharf
#

it has animation

zealous glen
lethal ridge
#

why does my joker mult increase by 1.5 ingame

#
        if context.cardarea == G.play then
            card.ability.extra.x_mult = card.ability.extra.x_mult + 0.5
            return {
                message = 'Consumed',
                colour = G.C.RED
            }
        end
zealous glen
#

Which I think is Jimball polished

lethal ridge
zealous glen
tall wharf
zealous glen
#

And there’s the aforementioned PR

uncut grail
lethal ridge
#

and it give me 1.5

uncut grail
tall wharf
#

yeah but you didn't check for other context

zealous glen
long sun
#

looking at jimball's code, i've got no idea how it works 😭 there's nothing about animation there

uncut grail
zealous glen
#

I believe

uncut grail
#

wait, what if i just get rid of the extra

#

so like

#

card.ability.limit

zealous glen
zealous glen
manic rune
#

i just realized

#

saving cards to a table is probably not a good idea

zealous glen
long sun
manic rune
#

since if you re-enter the run, i think all cards are made anew according to new information

zealous glen
#

Yes

manic rune
#

sooo the better way is to probably mark the joker with something

uncut grail
#

i created the card in a save file before it had config

manic rune
#

-# wait

uncut grail
#

im my worst enemy

manic rune
#

are yall having a conversation about smt of that topic rn

#

😭

zealous glen
#

At least you’re not your best enemy

zealous glen
#

You need to add a variable to the card itself

manic rune
#

i was actually talking about my mod lol, but yeah

zealous glen
#

In general

lethal ridge
#

wait u cant do this?

card.ability.extra.xmult += xmultgain

manic rune
#

no

lethal ridge
#

my code error when i do

zealous glen
#

Like when you want to destroy it later

manic rune
#

lua doesnt have +=

lethal ridge
#

fr

#

???

#

when i was coding in roblox all the time i used that

manic rune
#

yes but thats LUAU

#

this is LUA

lethal ridge
#

🪦

manic rune
#

🪫

long sun
#

which script is the atlas changing in?

#

i can't find it

zealous glen
#

Americans when they learn they speak other languages in other countries:

manic rune
#

rest in piss 💔

zealous glen
#

-# I know you aren’t American

#

Rest in bepis

#

Go to sleep now

zealous glen
long sun
#

right

midnight coyote
#

okay can i assert SMODS.LoadFIle

#

and then load my files that way

#

because im about to break up my code into multiple files to make it easier on me

lyric blade
#

How do I retrigger a card until it meets a certain condition?

midnight coyote
#

just have it in a loop thats checking for the condition and if it isnt met retrigger

lethal ridge
#

draw until you get a green card

lyric blade
#

xD

midnight coyote
#

nobody answered me

#

shoud i be able to

#

assert(SMODS.LoadFile()

#

and if i do

#

is the path relative to project root

manic rune
#

yes, its possible to do so

#

its load_file btw

midnight coyote
#

got it

manic rune
#

this is what i did for mine

long sun
#

so, question about Aura

midnight coyote
#

so for directorie

#

do i use unix style slashes in my path

long sun
#

do i use it as a dependency, or put its code in my mod?

manic rune
#

use "/"

midnight coyote
#

okay

#

so like unix

lyric blade
midnight coyote
#

and this is relative to the project root

lethal ridge
#

why is my thing nil

tall wharf
#

i am cooked

lethal ridge
midnight coyote
#

so if i have PROJECT_ROOT/src/jokers.lua

i would do

SMODS.load_file("src/jokers.lua")

midnight coyote
#

alright good to know

lethal ridge
tall wharf
#

?????????????

limber blaze
#

SMODS.load_file returns a function and maybe an error btw

lethal ridge
#

balatro looks so different like that

limber blaze
#

so youll need to call the return result of the function

hushed field
#

@zealous glen you'd started messing around with the new boss blind update, right? Are there any contexts that don't work for boss blinds?

tall wharf
manic rune
#

question

#

how do i make a blind that cant be disabled?

#

i see disable(self) in here

limber blaze
#

idk if you can stop the ui text from dying but you can just not undo the effect

#

additionally you can manually debuff all blind disabling jokers as a hidden part of the blinds effect

long sun
#

ya i've got no idea what this code is doing either 😭

manic rune
tall wharf
#

0 is even

midnight coyote
#

this is my mod description

limber blaze
#

just have a big table of all the modded jokers that disable blinds youll probably wanna look into how the ui text is removed

#

so you can undo that

long sun
#

hhhhhhhhhhhhhhhh

tall wharf
manic rune
#

:3 god

#

that should be implemented into SMODS...

midnight coyote
tall wharf
#

what do you have so far

limber blaze
midnight coyote
#

a new enhancement

tall wharf
#

what they do

midnight coyote
#

and a new consumable

midnight coyote
tall wharf
#

😭 i love her

lethal ridge
#
card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.x_multgain

why does my game crash and tell me x_multgain is nil even when i put it in config

 config = {
        extra = {
            x_mult = 1,
            x_multgain = 0.5
        }
    },
tall wharf
midnight coyote
limber blaze
lethal ridge
limber blaze
#

i forgor what assert does

#

but i did not do it using assert

tall wharf
#

sure is

midnight coyote
lyric blade
#

Is there a way to retrigger a card without if context.repetitions then return {blalblabla}?

midnight coyote
#

so if one of those files didnt load

#

it would crash immediately

limber blaze
#

okay i know the issue

lethal ridge
limber blaze
#

SMODS.load_file returns a function that when called actually loads the contents of the file

manic rune
#

is this accessed when i use G.GAME.blind.resistances?

tall wharf
limber blaze
#

so you need to do SMODS.load_file(path)() or something like that

hushed field
limber blaze
#

i just do it like this

midnight coyote
tall wharf
long sun
#

ughhhhhhhh i can't see what does what in Aura's codeeeee

tall wharf
#

DO I DIG FOR STRAIGHT FLUSH

long sun
#

just gonna not bother for now, maybe i'll be better at Lua programming later :}

midnight coyote
#

alr there it goes

midnight coyote
#

ROYAL FLUSH

#

DIG DIG DIG

#

99% OF GAMBLERS QUIT BEFORE THEY HIT THE JACKPOT

tall wharf
#

good enough

manic rune
#

aiko

#

check out myst's new blind

tall wharf
#

WHAT BLIND

#

I WAS TOLD

#

NOTHING

#

WHAT BLIND

limber blaze
#

you gotta

long sun
#

hhhhh i'm upset i've asked for so much help for my mods :<

tall wharf
#

too late

limber blaze
#

worst thing ever

midnight coyote
tall wharf
#

gnome user detected

hushed field
#

aiko, bepis, do you two happen to know which calculate contexts work for blinds and which don't?

tall wharf
manic rune
#

uhhh

midnight coyote
hushed field
#

haha, maybe I should just do that

manic rune
#

context.before, context.after, context.final_scoring_step, and pretty much all other contexts that u think blinds can do :3

hushed field
#

I guess I can make darth vader choke you out before you score, instead of after

midnight coyote
#

i fixed the problem of it not being in the joker areas btw

manic rune
hushed field
#

final_scoring_step doesn't work on my end

#

oh wait no I see

#

fuck

#

i'm dumb

manic rune
#

my boss is ready

#

:3

hushed field
#

minor splling mistake ❤️

manic rune
#

3 phases, allat passives, time to change some stuffs and im gonna push it

tall wharf
#

wtf is 5枚のカードをプレイしなければならない

manic rune
#

whats that

midnight coyote
tall wharf
#

ok it's just psychic ig

limber blaze
#

5 cards must be played for hand to score

lethal ridge
#

helpp

#

why is my variable nil

#

💀

midnight coyote
#

aseprite cli doesnt add length limits so my sprite sheets are just long

lyric blade
#

What is the proper way to do it?

tall wharf
#

what is the crash

hushed field
#

what's the crash that it gives?

lyric blade
#

Oh wait

uncut grail
#

trying to figure out why my config is not getting copied to the consumeable table

tall wharf
lethal ridge
#

can anyone help

lyric blade
#

Of course it crashes cause normal cards don't give lucky trigger which causes an infinite loop

limber blaze
uncut grail
lethal ridge
#
config = {
        extra = {
            x_mult = 1,
            x_mult_mod = 0.5
        }
    },
    calculate = function(self, card, context)
        if context.cardarea == G.play then
            card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.x_mult_mod
            return {
                message = 'Consumed',
                colour = G.C.XMULT
            }
        end
    end
tall wharf
#

WHY IS THIS IN ENGLISH WAS

lethal ridge
lyric blade
manic rune
#

this should make it so that the boss only spawns at ante 8 right?

uncut grail
#

help im gonna die

hushed field
#

Darth Vader blind works, just need to make a pleasing indicator for 'm

limber blaze
#

should fix it

lethal ridge
hushed field
#

Am I going to make a hand that floats beneath the joker, to indicate it's being forced choked?

midnight coyote
#

how do i get a pseudorandom number between 0 and 1

manic rune
manic rune
#

thats exactly what it does

midnight coyote
#

oh

manic rune
#

🥀

midnight coyote
#

oh my godf

lethal ridge
midnight coyote
#

how do i get the game seed so its actually a bit random

manic rune
lyric blade
manic rune
#

pseudorandom("good morning sunshine") works

uncut grail
#

so that can't be the issue

tall wharf
#

ok now why the fuck

uncut grail
#

it's generally good practice but it's not the issue for them

lethal ridge
#
uniquenamethatsmodsdoesntuse = 0.5
uncut grail
#

afaia

lethal ridge
#

lets test this

uncut grail
manic rune
#

touhou consumables

#

check it out chat

uncut grail
#

AHH touhou...

#

peam jumpscare

lethal ridge
#

@manic rune 💀

manic rune
tall wharf
#

i am concerned because it does not have localization

uncut grail
manic rune
#

on the same run?

lethal ridge
manic rune
#

make a new run, and try it again

uncut grail
#

oh yeah btw you have to change runs

lethal ridge
#

okay

lethal ridge
manic rune
#

EXACTLY

#

💔

lethal ridge
#

ohhh

#

that might explain it

midnight coyote
#

whats the highlighted joker again? g.jokers.highlighted[1]?

zealous glen
manic rune
uncut grail
lethal ridge
midnight coyote
manic rune
hushed field
uncut grail
# manic rune whats your joker code looking like
use = function(self, card)
        G.E_MANAGER:add_event(Event({
            delay = 0.4, 
            trigger = 'after', 
            func = function()
                local bank = {}
                for i = 1, #G.jokers.cards do
                    local joker = G.jokers.cards[i]
                    if (not joker.ability.eternal) then
                        table.insert(bank, joker)
                    end
                end

                local joker = pseudorandom_element(bank, pseudoseed('infinity'))
                local sticker = SMODS.Stickers['eternal']

                -- add an eternal tag
                play_sound('gold_seal', 1.2, 0.4)
                joker:juice_up(1, 0.5)
                sticker:apply(joker, true)

                -- double money
                play_sound('timpani')
                card:juice_up(0.3, 0.5)
                ease_dollars(math.max(0, math.min(G.GAME.dollars, card.ability.extra)), true)

                return true
            end
        }))
        delay(0.4)
    end,    
#

it can't find card.ability.extra

#

config looks like this

manic rune
#

.

#

wha

#

thats new 😭

#

ive never seen someone using extra as a var itself before

#

💔

midnight coyote
#

how do i replicate a joker

uncut grail
#

i was inspired by thunk

manic rune
#

just use extra = {smt = ...}

uncut grail
#

(thunk used those like that for every consumable 😭)

manic rune
#

and use card.ability.extra.smt instead

lethal ridge
#

do i use

uncut grail
#

im lazy

#

it should not change anything

midnight coyote
#

how do i duplicate a joker

lethal ridge
tall wharf
midnight coyote
#

do i just add card with whatever id the selected joker is

manic rune
uncut grail
#

trying with the change

lethal ridge
#

but it trigger 3 time like u said

tall wharf
#

weak ahh card tbh

midnight coyote
#

why can nobody give me a straight answer dawg

tall wharf
#

but context.individual and context.cardarea == G.play

lethal ridge
midnight coyote
#

off i go

uncut grail
midnight coyote
#

i suppose

uncut grail
#

still like this, no

lethal ridge
lethal ridge
tall wharf
manic rune
#

wait, do consumables even have extra?

midnight coyote
#

?

tall wharf
#

copy_card is vanilla function

midnight coyote
#

oh alright

#

and does it take a card object

#

or is it a method

uncut grail
#

plus, yes they do

manic rune
#

mmm

uncut grail
#

for some reason my extra is not in the ability.consumeable

maiden river
uncut grail
lethal ridge
#

if im correct

context.cardarea == G.play

this triggers everytime a card is scored right?

maiden river
#

You also have to have context.individual

lethal ridge
manic rune
#

can you try printing G.consumeables.cards[1].ability.extra

uncut grail
#

hermit:

daring fern
uncut grail
#

my card:

uncut grail
tall wharf
uncut grail
# uncut grail

judging from this, consumeable just isn't config for some reason

#

which it should be

lethal ridge
#

wait what is context.main_scoring 💀

maiden river
tall wharf
#

for card effect i believe

lethal ridge
forest ivy
daring fern
tall wharf
uncut grail
tall wharf
#

spad pls do not kill me

#

im bad at drawing and coding

opal spade
lethal ridge
#

the smods context thing so confusing

opal spade
#

smods' calculate_context (aka everything except the actual main scoring) calcs jokers first THEN playing cards, when it should be the other way around based on how the scoring thing works

lethal ridge
#

im going to go eat dinner i cannot take this anymore

opal spade
tall wharf
#

Thailanmd

#

rfiophwrsiopghjwr

#

what the fuck am i reading

manic rune
#

bing chilling

#

is it weird that

#

streamable doesnt delete my old videos

opal spade
#

i wonder, has anyone tried to untie the movement of objects from framerate yet

midnight coyote
opal spade
#

or the other way around, forcing that behavior when the game is not lagging

hushed field
#

is there a base funciton to have blinds put text on the screen?

tall wharf
#

attention_text?

hushed field
#

oh damn wasn't even familiar with that function, that's super helpful

#

I assume hold is the amount of seconds the text'll stay up on screen?

manic rune
#

:3

daring fern
#

Where are glass cards defined?

lyric blade
#

Like enhancement types?

#

At game.lua, line 651

daring fern
#

Where does it check to break?

hushed field
tall wharf
#

aaaaaaaaaaaaaaaaaaaaaaa

manic rune
#

its a reference to how bosses have different element resistances in the game :3

opal spade
normal crest
#

What's your UID Bepis

opal spade
manic rune
hushed field
manic rune
red flower
hushed field
# manic rune well, i can just reduce the size of the text themselves if i want to fit more pa...

Yeah, that's in the hover_over UI, right? I was imagining something underneath the blind. I was considering making some blinds that buff or nerf certain genres, and how I'd make that fit in a ui box somewhere on the left of the screen. Or whether I'd want it to be on the jokers themselves with some indicator. If I end up doing that, and it looks good, I'll send you the code for it, haha, if you'd be interested

manic rune
#

thatd be nice!

tall wharf
#

why am i online again

hushed field
#

Is there a thread with library/api mods?

charred dagger
lyric blade
#

So I have a little problem. I want to retrigger a Lucky Card until it gives a lucky trigger. Since you only can return stuff once, this code retriggers Lucky Cards only once (No matter if the third if is a while statement or not). context.repetition doesn't happen again after a retrigger. So what do I do? Should I remove the return and write the entire retrigger code? Bad idea I guess

manic rune
red flower
#

there are some in the modded wiki

lethal ridge
#

imgonna crashout

hushed field
crisp coral
#

i need to follow my old threads lol

hushed field
#

Also, I was visualizing something like this (i used the hsr elements because I don't have icons made for the genres yet), to illustrate. Ignore the thematic clashing going on 😛

lethal ridge
#

how do i destroy a card when i play it

#

what is the function

hushed field
lyric blade
normal crest
hushed field
#

context.destroy_card, I'd check the wiki for the specifics before I end up explainining it wrong on accident, haha

lethal ridge
lyric blade
hollow hull
#

I’m building a balatro arcade cabinet using a vertical (portrait) monitor. I plan to use DisplayFusion to split the monitor so Balatro is in 4:3. the remaining real estate (above the play field) is still open for “something”. I looked to see if anyone made a high score database/tracker. I’ve also considered some kind of replaying video or the Balatro joker site that lets you see all jokers and their stats.

Any ideas? I am now looking into making the high score setup myself. Basically some kind of middleware that captures the high score at the end of the game and inserts it into a database that can be displayed in a web page. It’s super basic of an idea though. My scripting skills are fine, my runtime skills are meh. Any suggestions on other channels or discords to ping on ideas is welcome as well
I have been thinking logistically how this would work and I think my query is, if I wanted to capture specific details about a run in the game (highest score is one) is there a way to pipe this over to a flat file for testing? I am a little outside my league when it comes to mod dev, I am an IT person but not experienced with mods. I'd also be willing to put a bounty up if that's the proper way to go about this

hushed field
#

I reckon you're approaching the project like this is a game where you'd need to read the binary to get high scores out of it, but luckily everything's very exposed!

lyric blade
hushed field
#

I know @ larswijn was messing with recursive retriggers, but apparently there's some logic issues that make that something that's not very easily done

hollow hull
lyric blade
#

That's what I found but it sounds very difficult. Well there porbably is somewhere something about predicting pseudorandoms online

hushed field
hollow hull
tall wharf
#

balatro goes kino

lyric blade
tall wharf
hushed field
hushed field
opal spade
manic rune
normal crest
manic rune
#

im actually planning on playing again over there, since its getting boring over here :3

hushed field
manic rune
normal crest
#

Sure!

#

I don't ever see myself playing the game again lol, such a chore

hollow hull
# hushed field Nothing unreasonable about that, I think. I assume that if you're not doing anyt...

Just for my arcade at my house. I build and setup various adhd fueled projects regarding cabinets (driving and fighting for example) and I am going to make a casino esque cabinet for balatro to add to it. At this point the idea is just to create something that augments the 4:3 playing field above, but my ideas include things like having leds ramp up color like the run flames do, or more. I would definitley make the idea public somehow to inspire others and maybe give some ideas. I already bought an actual casino door assembly for the bottom with a marquee.

manic rune
normal crest
#

Like starting over

manic rune
#

well i want smt else to do lol, at end-game theres really nothing else other than just hop in, grind for a few minutes then out

hollow hull
hushed field
hollow hull
#

The chrome bottom I already have.

opal spade
normal crest
manic rune
manic rune
red flower
#

is jokerdisplay an api mod

manic rune
#

...maybe?

opal spade
heavy hare
#

hey der, i'm poking around the UI_defintions.lua to try and move the position of the deck in the UI (the card back location). could someone point me in the right direction?

hushed field
#

I assume something changed in the blind code with the new patch making this break. Anyone got a clue?

hushed field
sweet nimbus
#

could someone tell me the reason this doesnt recognise this enhancement?
playing_card.ability and playing_card.ability.effect == "Hazard Card"
I have tried using the name or the key but it isn't working either way so idk to do

red flower
tall apex
#

So I may feel super stupid, I just found out aseperite has layers like photoshop

opal spade
sweet nimbus
hushed field
tall apex
hollow hull
# hushed field oooh very sick, definitely make a yt video about it if you get that finished up....

Hardware will be simple enough. Cabinet seems straightforward. The door will add a ton of cred to the idea that it is a video cab. Even capturing the flames on the monitor can be done with something like SignalRGB right out of the box.

If I can get some mods to add to the look and feel (and playability) of a high score display (and really that's open ended, there's probably a lot of cool things that I am missing) then it should come together nicely.

I need to find a way to offer a bounty for this, while I probably could hack something together with enough time, I think paying someone to do it with experience seems more advantageous. Then I can just make it public in a proper fashion and let others try the idea too

tall apex
hushed field
# sweet nimbus m_poke_hazard, the enhancement key

playing_card.config.center ~= G.P_CENTERS.m_poke_hazard if you want it to for sure have the physical enhancement. SMODS.has_enhancement(playing_card, "m_poke_hazard") if you wanna make it compatible with potential quantum enhancement implementations!

lyric blade
hushed field
hushed field
hushed field
hollow hull
#

I can make a who what where front page on github, make some mockups etc and then have the code backend for managing other aspects

hushed field
#

github's the main way mods get spread around

hollow hull
#

cool i'll start with that, thank you

midnight coyote
#

github is good

#

it also lets you add kanban boards

manic rune
#

nexus mods....

midnight coyote
#

if you have ideas but aren’t ready to code them yet

midnight coyote
manic rune
#

truly

midnight coyote
#

Nexus Mods, where the tagline is ‘you want some website with that ad?’

manic rune
#

im pretty happy with how my mod is turning out

#

and so far - still NO lovely patches needed yet!

#

:d

midnight coyote
#

i wanna do 50 jokers

tall apex
hushed field
#

The custom blinds are crashing my game but I don't know why

midnight coyote
#

at least

#

and 24 ritual cards

#

i have 3 ritual cards pretty much done

#

and 5 jokers

manic rune
#

i wanna port the entire hsr to balatro

#

:3

hushed field
#

me but for the entirity of letterboxd

red flower
#

me but for the entirety of pokemon

tall apex
manic rune
#

-# wdym pokemon 😭

tall apex
midnight coyote
#

i might make a joker that interacts with a vanilla joker

hushed field
midnight coyote
#

nostalgia critic joker that gains x6 mult and destroys the credit card if it’s there

red flower
midnight coyote
#

‘a JIMBO CREDIT CARD?!’

manic rune
#

oh

#

i cant imagine how wild a pokemon mod made by you would be ngl

red flower
#

(im joking anyway)

manic rune
#

i feel like any content mod under your hands would be insane

#

:3

red flower
#

❤️

manic rune
#

currently i strive to make my mod as quality and packed as your mod and myst's

midnight coyote
#

what if i added a joker sticker that switches it to a random joker every round

red flower
#

what if you did

midnight coyote
#

call it ‘indecisive’

hushed field
#

The dream is to make a mod that feels as polished as joyousspring honestly

manic rune
#

same...

midnight coyote
#

my goal for this mod is to dismantle vanilla meta

#

i’m gonna fuck shit up so much

midnight coyote
#

that you have to play with the mod to make it work

manic rune
#

my goal is also to make everything in vanilla balatro have some sort of use

#

through jokers and relics im gonna add

manic rune
midnight coyote
#

has anyone ever added the tarot cards that aren’t in major arcana

red flower
#

my jokers are too independent

midnight coyote
#

that’s what i plan to do

#

like the credit card one

#

it activates on the credit card existing

hushed field
#

I wrote some notes on the types of archetypes I could find in vanilla, and made sure to add at least one movie joker that focuses on each

#

though I don't have a skipping blinds focused on or tag focused one yet

uncut grail
#

how do i get the amount of cards held right now?

manic rune
#

#G.hand.cards

uncut grail
#

and how to check if i'm even holding any

hushed field
#

i... how does true end up in this table? where am I going wrong with this boss blind?

manic rune
uncut grail
#

thanks!

hushed field
#

bepis have you pushed any of your blind code to your git?

manic rune
#

oh, nop

#

i havent finished sushang yet

#

😭

long sun
#

i'm back againnnnnnnn haiiiiii

manic rune
#

is there anything you need assistance with?

#

hi ghost :D

long sun
#

hai :333

#

this code didn't work:
info_queue[#info_queue + 1] = { set = "Planet", key = card.ability.extra.chosen_planet }
my Joker changes planet cards, and i'd like to add a tooltip for its chosen planet

manic rune
# manic rune oh, nop

and there are still some stuff i want to polish, like how jokers get immediately debuffed with no juice_up + eval_message rn

long sun
#

how should i do that?

normal crest
hushed field
manic rune
long sun
#

[card.ability.extra.chosen_planet is formatted like, eg., c_pluto]

manic rune
hushed field
#

was just pasting it in, haha

manic rune
#

ah icic :3

hushed field
#

this is the one that's crashing it, but I suspect that's because of the alphabet, mostly 😛

manic rune
#

hmmm

#

which line is wrong here? (oh wait, its probably the return)

normal crest
#

Oops I'm lagging

hushed field
#

i'm aware I need to add a math.floor there, btw, haha

manic rune
#

i actually havent used modify_hand yet, so im not sure if i can help you with it 💔

hushed field
#

but it's not the modify hand that's breaking it

manic rune
#

h

#

oh

hushed field
#

it's the fact that eligible_boss[k] is true, rather than a number

#

but fuck me I don't know why that's the case

manic rune
#

hm

#

thats odd

normal crest
#

did you start a new run

#

I remember someone else had this issue before

hushed field
#

let me try a fresh one

manic rune
#

i wonder who i took this from

daring fern
#

How could one change the loc_txt of an enhancement if a joker is present?

normal crest
#

When you have a negative one

uncut grail
#
for i=0, #G.hand.cards do
    if SMODS.has_enhancement(G.hand.cards[i], 'glass') then
        return true 
    end
end
#

is this the right way to check for glass cards in hand?

#

if there are any

uncut grail
#

oh, yeah.... lua...

azure pilot
#

Is it possible to hit Talisman's max numbers? Like, before the game crashes

manic rune
#

you can actually just do

for _,v in ipairs(G.hand.cards) do
  if SMODS.has_enhancement(v,"m_glass") then return true end
end
#

and also, im pretty sure it should be "m_glass"

uncut grail
#

fair!

#

thanks a lot

hushed field
uncut grail
#

oh and yeah check out the cool card

manic rune
#

wait

#

that looks like the back of a yugioh card

uncut grail
#

LOL KINDA

lament agate
#

so the mult and chip is only at common_events.lua and nowhere else?

daring fern
uncut grail
#

oh btw where would i find the joker code

#

for example shoot the moon

#

where would that be located

daring fern
uncut grail
#

the source code of the calculation

#

so this is like

#

all of it?

daring fern
#

Yes.

uncut grail
#

thanks

thin anchor
#

balala

manic rune
#

lalaba

thin anchor
#

egglala

manic rune
#

lalala

hollow hull
#

@hushed field well, made a mockup at least

thin anchor
#

jimbos arcade machine

manic rune
#

how do i replace the showdown music with something else for a specific blind?

hollow hull
#

Anyone interested in discussing a bounty for some mods for the project I posted feel free to dm me.

#

it's non profit, just making something cool

lethal ridge
#

this doesnt really explain

#

can smoeone help explain

#

i wanna destroy card upon benig scored

opal spade
lethal ridge
#

find where balatro calculates the glass card breaking

#

and change that

tall wharf
daring fern
#

I don't know how to remove the text.

opal spade
lethal ridge
tall wharf
#

when will i have ace of pentacles

lethal ridge
#

like in glass card descriptio/?

tall wharf
#

ALDO

#

hit added 4 latin suits

daring fern
manic rune
#

💔

tall wharf
thin anchor
#

oh my

#

inflation

lethal ridge
#

im not too good at modding

lethal ridge
#

'Creates a random consumable or joker at the end of shop',

how

open aspen
#

?

#

how to do that?

lethal ridge
#

ohh

#

context.ending shop

#

there

open aspen
#

i love when i ask a question then realize the answer right away

#

i swear 75% of my questions are that

lethal ridge
#

ok but the thing

#

i need to know

#

is how do i make a random joker or consumable

open aspen
#

yesterday i was halfway through writing a question and solved the problem before hitting send 😭

open aspen
#

im really unfamiliar with the code

#

I mean, I've been working on a sticker, and I know there is a SMODS.Stickers table that has all keys to stickers

#

including my modded sticker

lament agate
#

bump, i need to know

open aspen
#

So perhaps theres a SMODS.Jokers table?

#

No idea how to do it for consumables though

lethal ridge
thin anchor
lethal ridge
lament agate
hushed field
#

good amount of blinds in there. In the future I wanna update the xenomorph blind's drool to be animated though

lethal ridge
lament agate
open aspen
#

lovely?

#

is that

lethal ridge
open aspen
#

a lovely reference!!

lethal ridge
#

game.lua has mentions of sounds in there

open aspen
#

???

#

Have u decompiled the code

open aspen
#

that helped me a lot with patching and hooks and just generally referencing code

lethal ridge
lethal ridge
#

game.lua contains this

lament agate
#

i just wanna patch the mult and chips sound

#

but idk where the hell is the lua

open aspen
lethal ridge
#

did u check sound manager

open aspen
#

and patch that

lament agate
#

where is the sound manager

open aspen
#

have u decompiled the game

lethal ridge
#

@lament agate PLAY_SOUND

#

wait

#

wrong copy past

#

hold on

#

here

open aspen
#

i open it in vscode and do ctrl shift f to search all files

lethal ridge
#

wow

open aspen
#

there is a file called sound_manager.lua that defines a function called play_sound

lethal ridge
#

card.lua contains many play sound functions

open aspen
#

you gotta decompile the actual vanilla game

lament agate
open aspen
#

i would just extract that and open it in VSCode so its easier

#

but its in engine

open aspen
#

the sound_manager file

lament agate
#

thanks

open aspen
#

and that contains play sound, so you could probably reference that and patch it

lethal ridge
#

card.lua doesnt contain any play_sound with multhit

open aspen
lament agate
long sun
open aspen
#

like can i see loc_vars in its entirety?

long sun
#

ah kay

open aspen
#

just in case

open aspen
long sun
lament agate
open aspen
#

im not sure how actually info_queue works but the example on wiki just gives a key like this

lethal ridge
#

i found some

open aspen
#

it kind of looks like ur doing that tho (not sure how set = "Planet") works

lethal ridge
#

in ui_definitions

lament agate
#

ill try that

lethal ridge
#

idk if it works

open aspen
#

you could do that too yea

#

i was gonna suggest patching the play_sound function itself

lament agate
#

oh it has multhit2

#

can i put 2 things in the pattern?

#

or is it only one

long sun
#

oh uhm

#

hold on a mo

open aspen
#

I patched a function in my code

#

I'll show you how I did it

lament agate
#

sure

lethal ridge
#

with multhit

open aspen
#

something like this in my code

long sun
#

there we go, here's an example where i used that format successfully

open aspen
#

there is a function called prepdraw, which I changed the behaviour of by overwriting it with an extra parameter called check

#

so if i want to use this modified version I can pass true as the last variable

long sun
#

ah wait, lemme try doing this? maybe?

open aspen
#

in this case play_sound is a global function so you can do it much the same way

open aspen
long sun
#

dfjkngdfkjgnkjdfng sorry to bother 😭

crisp coral
#

ngl why don't you just hook play_sound

open aspen
lethal ridge
#

@open aspen finally i found it

#

the create card function

lament agate
open aspen
#

the same way i patched prep_draw

#

literally just redefining it in my code

crisp coral
open aspen
#

in my case since I wanted the original function still I made a variable called prep_draw_ref = prep_draw before changing it

crisp coral
#

same function

lethal ridge
#

ok wait i gotta go read documentation

#

thanks

open aspen
#

and if u look at my code, if "check" is false it just calls the original function

lament agate
lethal ridge
#

rip

open aspen
#

so perhaps pseudocode for you would be

play_sound_ref = play_sound
function play_sound(whatever the parameters are idk)
    if multHit1 were passed or multHit2 were passed then
        play_sound_ref(your sound)
    end
end
lethal ridge
open aspen
#

something like that would be how you could hook it

lethal ridge
#

and it will create?

lament agate
#

can i use that?

crisp coral
#

yes

open aspen
#

yea go ahead ofc

daring fern
open aspen
#

its pseudocode ofc so you gotta make the if statement and paste whatever the parameters are

lament agate
#

let me get this straight

#

this is the payload?

open aspen
#

payload as in?

lament agate
open aspen
#

yes i think?

#

like lowkey

lament agate
#

but whats the target

open aspen
#

not familiar with that patching

open aspen
crisp coral
lethal ridge
#

how would i add random cards tho

open aspen
crisp coral
lethal ridge
#

rarity as in rare common blah blah blah

lament agate
#

wait so i make another lovely.toml for this alone?

#

i cant combine it?

lethal ridge
#

set as in like tarot, spectral, planet ?

crisp coral
#

no, hooking is done in your main lua file

open aspen
#

^

lament agate
#

OH

#

okay

open aspen
#

i was never familiar with the toml thing on smods

#

or how that worked

frosty dock
#

that's not "on smods", those are lovely patches

lament agate
#

whats the function?

open aspen
#

see im unfamiliar 💀

lament agate
#

SMODS.Sound?

lethal ridge
#

SMODS.add_card(
{
set = ...
}
)

open aspen
#

play_sound

frosty dock
#

SMODS.Sound

lament agate
#

alright