#💻・modding-dev

1 messages · Page 635 of 1

slim ferry
#

just copy over the vanilla glass loc_vars code but double the numerator

loud summit
#

the numerator is hard coded lol

#

so ill just put 2

slim ferry
#

yeah thats

#

thats doubling it

harsh belfry
#

can't you just

#

push the glass center

#

into the info queue

slim ferry
#

not if you want to

#

do stuff with the variables displayed

harsh belfry
#

mm

ionic basalt
#

Hey y'all, So theres this meme going around, the 1/10000 chance for foxy to jumpscare you. Its a mod thats been made for Terraria, Stardew Valley, Silksong and many others and I was wondering if it would be possible to make a mod like that for Balatro, Thanks!

slim ferry
ionic basalt
#

I KNEW IT EXISTED

slim ferry
#

there also an incredible sequel hold on

marsh sedge
#
if context.destroy_card == destroyable and not context.blueprint then
    if context.cardarea == G.play then
        return {
            message = localize ('k_traitordestroy'),
            remove = true
        }
    end
end```
hmm ok, currently trying to set up a joker that destroys a random played card, except sometimes it doesn't trigger or triggers more than once? not entirely sure what i'm missing here
slim ferry
#

this selects a new random card to destroy any time calculate happens

#

since context.destroy_card is done individually per card to destroy its just a chance of a random card happening to be the currently checked card

marsh sedge
#

ohh

reef bobcat
#

hi everyone, im trying to make a balatro mod for the first time, i only did a bit of coding in high school but im getting the basics i think

#

im trying to make a mod but it's not loading in the game

#

idk if i did the right steps

slim ferry
# marsh sedge ohh

what i do for this is set a flag on the card to destroy in context.before usually

slim ferry
reef bobcat
#

and i used

#
    "id": "",
    "name": "",
    "display_name": "",
    "author": [""],
    "description": "",
    "prefix": "",
    "main_file": "",
    "priority": 0,
    "badge_colour": "",
    "badge_text_colour": "",
    "version": "",
    "dependencies": [],
}```
#

for the mod data at the top

#

plus a youtube tutorial

#

i'll send the link

#

so it's mixing the stuff from these

#

i can send the lua file if you want to look

#

it's not much

#

i've only added one joker to test

slim ferry
#

if the mod isnt loading at all, its likely invalid metadata causing it not to load

#

what are the actual contents of the metadata file?

reef bobcat
#

ok im just gonna send the whole thing

#
    "id": "first_mod",
    "name": "First Mod",
    "display_name": "FM",
    "author": ["Zee"],
    "description": "My first balatro mod",
    "prefix": "first",
    "main_file": "main.lua",
    "priority": -0,
    "badge_colour": "5BCEFA",
    "badge_text_colour": "F5A9B8",
    "version": "1.0.0",
    "dependencies": [Steamodded (>=1.*)
    Lovely (>=0.6)],
}

SMODS.Atlas{
    key = "WonderWoman",
    path = "WonderWoman_Joker.png",
    px = 71,
    py = 95
}

SMODS.Joker{ 
    key = "WonderWoman",
    loc_txt = {
        name = "Wonder Woman",
        text = {
            "+6 Mult"
        },

    },
    atlas = "WonderWoman"
    pos = { x = 0, y = 0 },
    rarity = 1,
    blueprint_compat = true,
    cost = 2,
    config = { extra = { mult = 6 }, },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult } }
    end,
    calculate = function(self, card, context)
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end}```
#

idk if this is what u want im so sorry😭

slim ferry
#

the bit at the top is from a seperate file, right?

frosty rampart
#

^ the metadata needs to be in a separate json file, and the rest of the code needs to be in a lua file

reef bobcat
#

ohhhhhhh

#

thank you so much

#

so it should just be main.json ?

slim ferry
#

file name can be whatever

#

steamodded will automatically look through any json files for metadata

reef bobcat
#

ah ok

#

does this include the atlas?

slim ferry
#

no the atlas should stay in the lua

reef bobcat
#

ok thank you

#

aah it's giving me this error

slim ferry
#

should be in quotes

reef bobcat
#

ohhhh

slim ferry
#

also fyi all steamodded versions are betas as of now, so youll have to change the version in the dependency

reef bobcat
#

so like put the exact version?

slim ferry
#

doesnt need to be an exact version, its just that the way it is now only allows stable 1.0+ versions which dont exist

#

it would be Steamodded (>=1.0.0~BETA-1221a) for latest version, though it can be made an earlier one if you arent using the features of newer versions

reef bobcat
#

thank you so much

#

just confirming, this is a good .json?

slim ferry
#

yeah

#

this should load

reef bobcat
#

i tried and it crashed

#

and gave the grey-blue error screen you normally get when a mod doesnt work

slim ferry
#

well

#

that probably means it loaded

tepid crow
#

you should probably actually show the full error

reef bobcat
#

sure ok

reef bobcat
#

here it is :c

frosty rampart
#

did you delete the json code from the lua file after moving it to a separate file?

reef bobcat
#

i did yes

frosty rampart
#

ok show the full contents of that main.lua file now

reef bobcat
sick panther
#

how to passively add hands on add_to_deck just like discards are?

#

nvm got it

loud summit
#

its not working SMODS src/utils.lua: 1032 Attempt to index field config (a nil value)

shy seal
#

wait so do you just put code here or what

stiff locust
#

but its generally considered a coding help slash sharing chat

#

tell us about your problems and we might solve them or we might make them worse

vale zinc
#

I've got this Boss Blind that's meant to be a junior Amber Acorn, but after it swaps the Jokers, they act like they were in their original positions, and I even patched it directly at the beginning of G.FUNCS.play_cards_from_highlighted in functions/state_events.lua. What do I do to ensure that the Joker order is changed?

G.FUNCS.play_cards_from_highlighted = function(e)
    -- This is utilized by The Seed.
    if (G.GAME.blind.config.blind.key == 'bl_lapsems_seed') and not G.GAME.blind.disabled then
        local table_of_valid_joker_indices = {}
        for i = 1, #G.jokers.cards do
            if not G.jokers.cards[i].pinned then
                table_of_valid_joker_indices[#table_of_valid_joker_indices + 1] = i
            end
        end
        if #table_of_valid_joker_indices >= G.GAME.blind.config.blind.config.extra.jokers_to_shuffle then
            table_of_valid_joker_indices = LAPSEMS.extract_randomized_elements_from_table(table_of_valid_joker_indices, G.GAME.blind.config.blind.config.extra.jokers_to_shuffle)
            G.jokers.cards[table_of_valid_joker_indices[1]], G.jokers.cards[table_of_valid_joker_indices[2]] = G.jokers.cards[table_of_valid_joker_indices[2]], G.jokers.cards[table_of_valid_joker_indices[1]]
            
            G.GAME.blind.triggered = true
            G.GAME.blind:wiggle()
        end
    end

    --[[
    ...
    --]]
end
#

@frosty rampart

feral tree
#

is it possible to get rid of info_queues? i wanna get rid of the negative and eternal info_queue here

cerulean rose
#

still could use help with this

cerulean rose
chrome widget
#

run that one by me again, Lua?

loud summit
#

hi are you able to use a card variable for a juice_card_until function or do uhave to use a global

loud summit
#

nvm

#

how do you add cards to a hand dynamically

vale zinc
loud summit
#

like in the context.before step

#

by a joker effect

#

after play hand was selected

vale zinc
#

Well, you can probably stuff that in context.press_play.

loud summit
#

? no like the card is already in the selected hand

#

i just want it to be put into the hand

#

after its rank was changed

vale zinc
loud summit
#

change all cards to the same rank and make them score

#

and also change the hand type played

vale zinc
loud summit
#

shoot

loud summit
#

context.modify_scoring_hand

#

cant wait for the wiki to be updated lol

vale zinc
loud summit
#

ok it adds the cards but it doesnt actually change the hand type

#

how do i make it recalculate the hand afterwards

#

ok i give up im just going to make it a standard "select cards and use the item"

cerulean rose
#

i think its context.modify_hand

feral tree
#

on an unrelated note, how would i update the text of the blind score requirement during blind select?

dusk cargo
#

How can I add custom settings into my mod?

vale zinc
cerulean rose
cerulean rose
dusk cargo
round lion
#

how do i create contexts anyway

gilded blaze
cerulean rose
#

ok so i finally figured it out
it should be like this

{
    "descriptions": {
        "Mod": {
            "BossDecks": {
                "name": "Boss Decks",
                "text": [
                    "Turns every boss blind into a deck.",
                    "Each deck applies the boss's effect throughout the entirety of your run, alongside a positive effect that works around (or sometimes with) the boss's effect.",
                    "Upscaled blind symbols {C:blue}by AstraLuna{}"
                ]
            }
        }
    }
}

instead of like this

{
    "descriptions": {
        "Mod": {
            "BossDecks": [
                "Turns every boss blind into a deck.",
                "Each deck applies the boss's effect throughout the entirety of your run, alongside a positive effect that works around (or sometimes with) the boss's effect.",
                "Upscaled blind symbols {C:blue}by AstraLuna{}"
            ]
        }
    }
}
nocturne stratus
#

im trying to start making a balatro mod

#

yet idk where to start

teal grotto
nocturne stratus
#

but how do i go about making them?

#

like what tool

sturdy compass
#

Feel free to ask any dev questions in this channel

daring fern
#

subtle hawk
#

Does anyone know if there is cardarea type that allows cards to be highlightable but also doesn't have card count displayed?

sturdy compass
#

I'm pretty sure newest smods has a config option for count display now

subtle hawk
#

Ah fuck I didn't check the update yet

#

Okay coolio

sturdy compass
#

yeah no_card_count is what it's called

frosty rampart
nocturne stratus
#

im looking at balatro's source code and i don't know where the joker effects are

sturdy compass
#

neato

nocturne stratus
#

i was thinking of just adding more jokers

nocturne stratus
sturdy compass
#

look for card:calculate_joker

nocturne stratus
#

found i

#

it

sturdy compass
#

Though I would also recommend using VanillaRemade as a reference for vanilla card functionality as opposed to vanilla source code

nocturne stratus
#

vanillaremade?

sturdy compass
#

It's much closer in structure to what you will be doing

sturdy compass
#

Genuinely invaluable resource

frosty rampart
#

the wiki in that repo is fantastic too

nocturne stratus
#

its being helpful

sturdy compass
#

glad to hear it

nocturne stratus
#

the joker im tryna make rn steals your money basically whenever it can and adds the number of money you lost to flat mult

#

like when blind is selected you get robbed, when round ends, when leaving shop, etc

#

so you're essentially eternally broke

sturdy compass
#

Definitely doable

nocturne stratus
#

yea

sturdy compass
#

Honestly a decent first joker to get a feel for the api too

nocturne stratus
#

:3 nice

#

i cant find on the wiki how to check for when a player enters a blind

sturdy compass
#

that would be context.setting_blind

nocturne stratus
#

:3 thx

sturdy compass
#

👌

nocturne stratus
sturdy compass
#

correct

#

in your joker's calculate function you check for if context.setting_blind then

nocturne stratus
#

if context.setting_blind then {
G.GAME.dollars == 0
}
?

sturdy compass
#

Close, in Lua you do not need should not use brackets for conditionals. Also I would do ease_dollars(-G.GAME.dollars) instead of G.GAME.dollars == 0

umbral zodiac
umbral zodiac
sturdy compass
#

I'm pretty sure there is a dollar buffer lol

umbral zodiac
#

is there

sturdy compass
#

Just nobody uses it 😭

umbral zodiac
#

mfw nobody told me this when i was trying to figure out the exact same problem for valk 4 months ago

sturdy compass
#

Yeah I see it in Matador's code

umbral zodiac
#

but also a dollar buffer is slightly more complex than the idea of just better support for =money

#

which would be nice to have

sturdy compass
#

probably

nocturne stratus
#

now what controls a scaling mult?

#

card.ability.extra.mult?

sturdy compass
#

an internal variable

#

you set it yourself in the config table of your joker

nocturne stratus
#

ok7

#

config = { extra = { mult = 0 }, },I think that's this line

sturdy compass
#

Yeah that will do

#

I will once again highly recommend using VanillaRemade as a reference. If there's a vanilla joker that has some sort of functionality you're after, be it partially or wholly, you should look at it in VR

nocturne stratus
#

im using vanillaremade

#

at least its joker blueprint or whatever

#

`local current_money = G.GAME.dollars
-- Joker
SMODS.Joker {
key = "Nicole",
pos = { x = 0, y = 0 },
rarity = 2,
blueprint_compat = false,
cost = 1,
discovered = true,
config = { extra = { mult = 0 }, },
loc_txt = {
name = "Nicole",
text = {
"{C:red,s:1.1}+#1#{} Mult, Whenever Blind is selected, all money is lost and added to Mult",
},
},

loc_vars = function(self, info_queue, card)
    return { vars = { card.ability.extra.mult } }
      if context.setting_blind then 
      extra = extra + G.GAME.dollars
ease_dollars(-G.GAME.dollars)
end,
end,
calculate = function(self, card, context)
    if context.joker_main then
        return {
            mult = card.ability.extra.mult
        }
    end
end

}`

#

here's the code idk what im doing

sturdy compass
#

You honestly don't need to make a local var for money, you can use the G.GAME value
extra does not index your joker's mult value, replace it with card.ability.extra.mult as you did for the return
Your setting_blind block should be inside of your calculate function like you have for the joker_main block

nocturne stratus
#

thx

sturdy compass
#

<@&1133519078540185692>

#

oop

#

already gone lol

tepid kite
#

Any idea as to why the game won't show the shop UI again once you claim a joker from the booster pack? Not a dev, just messing with a mod for compat reasons

#

Tarot, planet, and spectral are working fine

#

It returns to the shop but the UI is just... Not there

#

Quitting and loading fixes it

river grail
#

messing with a mod as in, your own mod? or some other mod you downloaded?

tepid kite
#

Other mod! I just noticed an odd bug from the Wallet mod and I kinda want to fix it on my end

river grail
#

are you messing with the other mod files directly or with patches?

granite jay
#

FUCK YOU MEAN TABLE?!

#

LIKE WHAT HOW IS A SINGLE NUMBER A TABLE?!

#

Also that print funciton was to check if the local variable was a table, it was a number.

#

anyone know how to work around this?

nocturne stratus
#

i cant get my mod to appear as a mod option

#

how to fix

#

?

#

i have a json file and a lua

daring fern
tepid kite
granite jay
daring fern
granite jay
#

Well then

#

It works

#

I hate the fact that you have to do that but it does work

granite jay
nocturne stratus
reef belfry
#

why in gods name is the xmult not triggering

granite jay
#

Anyone know how to make a joker trigger on buying a consumable from shop specifically?

#

And not from any other means like tags?

daring fern
granite jay
teal grotto
#

how to make a deck only spawn specific blinds

queen meadow
#

if i were to implement new music to the game that's made in 105 bpm do i have to speed it up to 150 in the files

daring fern
queen meadow
#

thank god 🙏

elder rune
reef belfry
#

that is definetly not it 💔

elder rune
#

Make it guaranteed then

reef belfry
#

i know when the xmult is chosen but its not proccing the xmult

#

since when a card is inert (gave nothing) thats when the xmult was supposed to trigger

#

i just became lazy and removed the xmult for it

elder rune
reef belfry
#

1.25x but it dynamically changes

#

i cant expand further info on "dynamically changes"

elder rune
#

How does it change

reef belfry
#

just know its still an integer that isnt less than 0

#

i cant expand further info on "dynamically changes"

elder rune
#

Cause I'd guess that it lands on 1 which iirc does not show the animation as A*1 = A so why would it

safe saddle
#

so uh my jokers worked but when i hover on them, the game crashed without a crash message

#

like it closed on its own

vague crest
#

trying to make it go through left to right at end of round and give the face cards their seals, sort of like how gold cards collect from left to right, etc. unfortunately, they all gain their seals at the exact same time and it leads to weird player feedback. is there a simple way to change this code to fix that?

storm kraken
#

do you guys like my art

elder rune
vague crest
#

there is a delay there

loud citrus
#

is there a resource i can be pointed to, to learn how to make a custom joker rarity? i don't wan't jokers with the rarity appearing in the shop and that's it.

daring fern
vague crest
#

ohhhhh

#

tysm that was it

#

probably the coolest art ive done in a while

maiden phoenix
glass scaffold
#

OR is there a mod that's doing something it shouldn't be?

loud citrus
umbral zodiac
#

rarity = "modprefix_raritykey"

maiden phoenix
#

i've been beat 😔

umbral zodiac
#

its ok i

maiden phoenix
#

(ty lily)

umbral zodiac
#

have no consolation for you

loud citrus
#

everyone is so nice though 🥹

#

also, picked the perfect color for the error to look scary lol

#

(error not intentional egg )

storm kraken
#

orange slop

loud citrus
wintry solar
glass scaffold
wintry solar
#

Yeah, it’s specifically a mod causing this but I think the root of the crash might be my fault

daring fern
# loud citrus

k_modprefix_key = 'Rarity' in Localization > misc > labels and Localization > misc > dictionary

storm kraken
#

hey guys welcome back to daily ui struggles part 3

#

where i complain about ui

daring fern
loud citrus
#

YAY! thank you lots! i have something really cool cooking up :>

storm kraken
#

are there any ui makers in chat how many people have experienced pain

loud citrus
storm kraken
loud citrus
#

found it :D

storm kraken
#

mhm ive seen that

#

stared at it for like 2 hours before i got to the problem of how i insert the ui

loud citrus
#

i see

wintry solar
#

What are you trying to do?

storm kraken
#

a new card area was simple but now i have the task of a whole menu like run info

stoic void
#

I dont understand lovely, I know its importance, but Its just shat itself

stoic void
#

no

#

I cant use my own mod

#

wtf do I do

storm kraken
#

error of pain and dispair ive had to deal with for 3 days straight

dapper sun
#

that tells us nothing

#

pls copypaste the crash log

storm kraken
#

yes i know

#

i dont wanna look stupider so give me like 3 more days to figure this out happyhappyhappy

loud citrus
#

teaser
i always thought the idea of jokerifying blinds was fun, but doing the opposite of a downside just replicated other existing jokers

wintry solar
#

nvm, found it and fixed the root problem 👍

storm kraken
wintry solar
#

Looks like something you clicked on doesn’t work

storm kraken
#

yep!

wintry solar
#

So show the code for whatever you clicked on

storm kraken
wintry solar
#

do you have a G.FUNCS.market?

storm kraken
#

no....

#

oh my god

#

holy shit

#

thank you

stoic void
bold sleet
#

best guess is either the two strange dots or the use of self.

faint yacht
#
applied_stakes = { "stake_gold" },
above_stake = "stake_gold",
prefix_config = {
    applied_stakes = { mod = false },
    above_stake = { mod = false }
},
daring fern
#

tired kestrel
storm kraken
#

upcoming ui

stoic void
#

What's wrong with this?

storm kraken
tranquil cypress
tranquil cypress
#

😄

stoic void
loud citrus
#

the serpent only exists under bline:disable in blind.lua
where is the game getting the blind ability from??? 😂

tranquil cypress
# stoic void

oh thank you! can you call it cloudzXIII if you don't mind?

stoic void
#

yup

storm kraken
#

im in the hellish depths of ui code

primal robin
#

I'm living in it

storm kraken
#

css 0.5 is really not helping me at all here

plucky berry
storm kraken
#

PLEAASE GO UNDER EACHOTEHR DUMB FUCKS PLEASE

plucky berry
#

ahahahaha

#

i did a thing where i added a third scoring box in the calculation and the fire now only goes on top of chips

storm kraken
#

yayyyy

plucky berry
#

at least it matematically works

plucky berry
storm kraken
#
  • hasnt even coded in the funcitonality yet
plucky berry
#

i think that's the easier part

#

the question is why are you coding fih

storm kraken
#

reasons

slim ferry
#

happens on hover

storm kraken
teal grotto
#

how to make a joker disable the effects of another joker

loud citrus
teal grotto
#

time to get bunco ig

celest blade
#

does anyone know how to make the caino thing where it gives you an effect after you destroy a card

celest blade
bold sleet
#

np

storm kraken
#

another day wasted on ui

#

i feel so

#

competent!

#

😄

bold sleet
plucky berry
elder rune
#

Nah

celest blade
bold sleet
#

SMODS documentation

celest blade
#

ohhh

storm kraken
#

yo chat can i get some ui-ers to answer this
how tf do i change the text of a text node with code 🥺

celest blade
#

neato

storm kraken
#

and im supposed to know how to use that

#

?

bold sleet
#

actually, hold on for a sec

storm kraken
#

🥹

bold sleet
#

{n = G.UIT.T, config = {ref_table = G.hand.config, ref_value = "cards", scale = 0.3, colour = G.C.WHITE}},

storm kraken
#

wow

bold sleet
#

You already know, ref_table and ref_value.

#

right?

storm kraken
#

well i guess i should be more specific

#

how do i get the name of a highlighted card and edit the text with THAT

bold sleet
#

That's a tad bit more complicated.

storm kraken
#

id figure as much

bold sleet
#

I do not know if that data is stored per card or in the center.

stoic void
#

I have a challenge idea

#

but for it to work I need all the cards to have a sticker

#

how do I give cards in a challenge deck a sticker?

wind steppe
#

challenges have an apply function so you could loop through the cards in the deck there and give each one the sticker

wind steppe
#

apply the sticker or loop through the deck

stoic void
#

yea, but how?

#

My sticker is modded

wind steppe
#

that doesnt change how stickers get applied

stoic void
#

I know I can do eternal = true

#

or smth

wind steppe
#

oh why are you doing that

stoic void
#

I didnt say I was

#

I just said I could do that

wind steppe
#

if i remember correctly its SMODS.Stickers[your sticker key]:apply(the card, true)

stoic void
#

"the card"

#

would I do: (cards, {s = vv, r =(v)})

bold sleet
#
for _,v in G.playing_cards do
  SMODS.Stickers[sticker]:apply(v,true)
end

or something like that idk

storm kraken
wintry solar
#

do v:add_sticker('key', true)

storm kraken
#

pleaseee joglaa i need thisss pleading

stoic void
bold sleet
#

You want to pull a card's name?

wintry solar
#

when you loop over the cards

bold sleet
wintry solar
#

like jogla said

stoic void
storm kraken
bold sleet
#
for _,v in ipairs(G.playing_cards) do
  v:add_sticker('prefix_key',true)
end
wind steppe
#

wait theres an add sticker function?

#

the more you know

stoic void
#

So would I do this

#

sorry for being dumb

bold sleet
#

Price you can check one of FG's aux functions.

storm kraken
bold sleet
teal grotto
#

why not just k2 v2 lol

stoic void
#

k2 and v2 are as long as kk and vv

teal grotto
#

not when you go one further

#

also kkk

vestal bramble
#

HOLAA

bold sleet
#

I have never been in the need of going more than 2 loops inwards, but idk

bold sleet
stoic void
#

idk what im doin

storm kraken
teal grotto
#

what's the context for when a joker is triggered?
or is there not one

storm kraken
#

thank you

bold sleet
stoic void
#

idk

teal grotto
#

ty

bold sleet
#

I don't think G.playing_cards has been populated just yet.

stoic void
#

k

#

well, uhhh

#

idk

lilac trail
#

Anyone here good at pixel art? I am not lol. I am trying to make an UNO reverse card, and was wondering if anyone could help me out?

tired kestrel
storm kraken
#

YESSSS

#

I CAN DO ANTYHING

bold sleet
storm kraken
#

yes

bold sleet
storm kraken
#

yes

lilac trail
#

Anyone good at sprite drawing btw?

storm kraken
#

how good is good....

lilac trail
#

It depends, usable and looks okay is what I want

teal grotto
storm kraken
bold sleet
#

It's not even a monospace font.

lilac trail
#

it's really up to personal preference (or in this case, shits and giggles)

bold sleet
#

You have a terrible, terrible sense of humor, or you are a masochist.

storm kraken
bold sleet
bold sleet
#

Then there is your answer.

storm kraken
#

why do you always complain about font

#

and other coders aswell

bold sleet
storm kraken
#

i can read it so i can write it

teal grotto
#

optimal coding font

storm kraken
#

YESSSS

lilac trail
#

Who can make me a sprite rq?

#

or help me with a sprite?

bold sleet
#

I have -3 spriting experience, sorry.

storm kraken
#

who up writing their code in same_mistake

lilac trail
#

okay, I can forgive comic sans, but this is a sin

storm kraken
#

rate the np++

bold sleet
storm kraken
lilac trail
storm kraken
#

just me?

teal grotto
#

i just use vscode idk if u can change the font ;-;

bold sleet
lilac trail
bold sleet
teal grotto
#

oh

bold sleet
#

-# fuck i lost sendien.ttf

storm kraken
storm kraken
dapper sun
dapper sun
slender monolith
#

getting this error after losing a run (after I had already won) with archipelago installed, i did change the scoring limit setting from vanilla after it crashed the first time to see if that would fix it and it still crashed.

mental nacelle
#

is it hypothetically possible to use patches.module to load an object type?

candid acorn
#

how do i access an objectType like if i want to delete cards? the wiki just says ObjectType.delete_card but what am i supposed to replace ObjectType with?

#

its kinda confusing for me can anyone help

lilac trail
#

Anyone interested in helping my with my sprites?

rare torrent
#

how do i make a joker retrigger itself multiple times?

tidal hemlock
#

mod idea: yknow two pair? what about two 3ok for an overselect mod

fleet reef
#

fuller house

storm kraken
tidal hemlock
#

yay

#

have it be called "Three Twice" or "Two Three" or something

storm kraken
#

Three Pa- oh wait

desert ore
#

Double Triple?

storm kraken
#

Triple Trouble

stoic void
#

I played a pi of clubs

#

Its a crash for my new ranks I added

#

being the 0.5, pi and 21

#

not that... this is utils.lua

harsh belfry
#

like the code that created it

stoic void
stoic heron
#

i think something happened here

stoic void
#

true

harsh belfry
#

honestly i don't know

#

somewhat bizarre error

stoic void
#

hmmm

#

Its fine for all my other ranks which is what confused me

#

0.5, 21 and pi give the crash

harsh belfry
#

maybe it is to do with the way cards_played is initialized?

stoic void
#

the only thing I think that is similar between them is that the shorthand is more than one digit

fluid chasm
#

i'm trying to make a joker that get's a +10 multiplier every time you buy a voucher. I'm having an issue where it works with any card you buy instead of only being vouchers. I assume it's an issue with the context but i have no clue which one i should use instead

stoic void
daring fern
stoic void
#

that

#

👍

urban wasp
#

for some odd reason this doesn't ever upgrade

if context.before and context.individual and context.cardarea == G.hand and (context.other_card:is_suit("Hearts") or context.other_card:is_suit("Diamonds")) then
    card.ability.extra.mult = math.max(0, card.ability.extra.mult + card.ability.extra.mult_mod1)
    return {
        message = "Upgrade!",
        colour = G.C.MULT,
        card = context.other_card
    }
end
urban wasp
#

is there any way to get it to trigger on context.before? i want it so that the upgrade happens before the joker triggers

#

actually wait joker_main is after individual

daring fern
urban wasp
stoic void
stoic void
daring fern
stoic void
#

Hmm?

daring fern
stoic void
#

K

vale zinc
#

How may I call Joker calculation a second time? I have this Boss Blind that swaps two Jokers but the Jokers still act like they were in their original spots.

true bane
#

is this the place to put this

#

i cant get my mod to work 😭

#

and i cant figure out why

misty halo
misty halo
#

the error is already there though
attempt to call global 'lobc_deep_copy' a nil value

true bane
misty halo
#

im not a dev nor do i make mods alot but you should probably look around the parts of the code where you use "lobc_deep_copy"

#

dont take my advice with confidence though i dont know alot about balatro modding

true bane
true bane
#

nope

misty halo
#

what the hell are you trying to make then

true bane
misty halo
#

what are you trying to do then

#

how are you making a mod with zero nodding knowledge

true bane
misty halo
#

modding*

true bane
#

im not MAKING anything

misty halo
#

it would be better to go to modding chat to ask about it

true bane
#

ah.

#

shit

misty halo
#

and its likely an error with the mod you installed then

misty halo
#

i legit thought u were making a fkin mod lol

#

Do u have any other mods installed

#

They could be conflicting with eachother

true bane
#

cryptid and yahimod which are disabled

#

handy

misty halo
#

Then shrug

true bane
#

hollowknightdeck

#

uhh

#

thats it i think

#

oh and jokerdisplay blueprint and talisman

stoic void
#

well, they arent face cards

#

what would I make it be if it isnt a face card?

#

0?

#

nah

#

it dont work

stoic void
#

ok, 21 dosent crash

#

why

#

wha

#

The crash is gone?

#

what did I do?

#

the crash is gone

#

completely

idle oxide
#

ive been trying to make a joker play audio on joker trigger for maybe the past hour and im not sure what im doing wrong, ive got it to play instantly but not on joker trigger, new to the modding thing so maybe it seems like an obvious thing that im not getting, this is the code for which doesnt play the sound on joker trigger (even though it should)

    key = "ohnejimbo",
    pos = { x = 0, y = 0 },
    rarity = 3,
    blueprint_compat = true,
    cost = 8,
    discovered = true,
    atlas = "ohnejimbo",
    config = { extra = { mult = 385 }, },
    loc_txt = {
        name = "ohnePixel",
        text = {
            "{C:red,s:1.1}+#1#{} Mult",
        },
    },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult } }
    end,
    calculate = function(self, card, context)
        if context.joker_main then
            return {
                mult = card.ability.extra.mult,
                sound = 'sj_ohnejimboscore'
            }
        end
    end
}```
daring fern
idle oxide
#

thank you! it works

stoic void
#

I hover over a custom stake

harsh belfry
# stoic void

you don't have the prefix_config "applied_stakes" set to false

stoic void
#

oh

harsh belfry
#

that could be the issue

#

if it isn't it was still going to be a problem lmao

#

also why is "above_stake" a table in the prefix config

stoic void
#

I was gonna say

#

like this?

stoic void
harsh belfry
#

well if it works lmao

stoic void
#

It crashes

harsh belfry
#

god okay

stoic void
#

T-T

harsh belfry
#

cryptid does this: applied_stakes = { mod = false }

#

for the applied stakes

#

try that

stoic void
#

yup

#

aaaaahhhhh

#

again

#

well, Ima go to bed

harsh belfry
#

okay

slim ferry
#

if i wanted to make a sticker that goes on consumables, can i just do sets = { Consumeables = true } or do i need to put in every single consumable set

#

actually, does stickers in a challenge even check sticker compat

daring fern
rigid solar
#

Did anyone else experience performance dips since the last SMODS release? Mainly when jokers generate in the shop

stiff locust
#

anyone know why these variable colours wouldn't be working? each of their entries just appear in the default black no matter what

#

it is V:1, V:2 etc to grab the colours isn't it

#

i haven't really used variable colours in ages

stiff locust
#

what

#

i have never heard of this in my life

#

i want them to be attention colour if the stage threshold is reached

#

but inactive if it hasn't been reached

#

is it just that attention doesn't work in the

#

i guess

#

oh yeah that is it

#

so what's inactive then

paper zealot
#

G.C.UI.TEXT_INACTIVE

stiff locust
#

gotcha

wintry solar
#

you could use G.ARGS.LOC_COLOUR.inactive too

stiff locust
#

i see

daring fern
#

granite jay
#

Anyone know how to make a Joker that adds a random card from a consumable booster pack to your possession?

#

Like when you open a booster pack, the Joker should be able to take one of the consumables and add it to your collection if you have the room.

daring fern
# granite jay Like when you open a booster pack, the Joker should be able to take one of the c...
if context.open_booster then
    G.E_MANAGER:add_event(Event({
        func = function()
            if G.pack_cards and G.pack_cards.cards[1] then
                local consumeables = {}
                for k, v in pairs(G.pack_cards.cards) do
                    if v.ability.consumeable then table.insert(consumeables, v) end
                end
                if next(consumeables) then
                    local consumeable = pseudorandom_element(consumeables, 'seed')
                    SMODS.add_card({key = consumeable.config.center.key})
                end
            end
            return true
        end
    }))
end
loud citrus
#

how do i flip cards as apart of a joker? i want to flip the first hand drawn.

loud citrus
golden field
#

why is my joker not activating when i play a card played previously this ante

SMODS.Joker {
    key = "samekh",
    blueprint_compat = true,
    rarity = 2,
    cost = 6,
    pos = { x = 3, y = 1 },
    config = { extra = { mult = 1 } },
    atlas = 'samekh',

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

    calculate = function(self, card, context)
        if context.individual
        and context.main_eval
        and context.cardarea == G.play
        and context.other_card.played_this_ante == true then
            context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) + card.ability.extra.mult
            return {
                message = localize('k_upgrade_ex'),
                message_card = context.other_card,
                colour = HEX("7e6752")
            }
        end
    end
}
spiral mural
#

how do i have info_queue exclusive text?

golden field
chrome widget
golden field
granite jay
#

How do you retrigger consumables such as Planet cards?

daring fern
granite jay
#

Ah ok

#

I meant for a joker

#

Actually that could be a simple solution lemme try smth

frigid cargo
#

is there a way to check if all jokers are already flipped?

daring fern
granite jay
daring fern
granite jay
# daring fern Code?
  calculate = function(self,card,context)
        if context.using_consumeable then
            if context.consumeable.set == 'Planet' then
                return {
                    repetitions = 1
                }
                --context.consumeable:use_consumeable()
            end
        end
    end,
#

There were two solutions i tried

spiral mural
#

how do icheck what deck is being played

daring fern
granite jay
#

Ok

#

thx

spiral mural
granite jay
# daring fern You need to hook `Card:use_consumeable`
local use_consumeable_ref = Card.use_consumeable
function Card:use_consumeable(area, copier)
    local effects = {use_consumeable_ref(area, copier)}

    if copier.set == 'Planet' then
        local rodgerlings = SMODS.find_card('j_dandy_rodger')

        for _,v in pairs(rodgerlings) do
            effects[#effects + 1] = {
                message_card = v,
                colour = G.C.FILTER,
                message = localize('k_again_ex')
            }
            effects[#effects + 1] = use_consumeable_ref(area, copier)
        end
    end
    
    local ref = SMODS.merge_effects(effects)
    return ref
end```
Ok so I did the hook, but now the game crashes when I use a consumeable. Any way this could be fixed?
daring fern
granite jay
#

As in you move him

#

I'll see what I can do actually

#

Anyone know how to move a card from one card area to another?

#

Like move smth from the Booster Pack area to your consumable Area?

final jewel
loud citrus
#

if you can, show line 28 and the surrounding context

final jewel
#

its kinda weird

frosty rampart
#

your hand types are defaulting to something that isn't actually a hand, so upon initialization it tries to access the level of a hand that doesn't exist

#

this is why stuff in vanilla like to-do list still default to some value like high card, not an extra empty value

final jewel
#

ooooooh

frosty rampart
#

also, unrelated to the crash, but your add to deck function edits card.ability.hand_typeX and not card.ability.extra.hand_typeX

final jewel
#

honnestly I am trying to create a planet that select to random planet and show them when the planet is created

frosty rampart
#

just replace all instances of "giga_no_hand_select" with "High Card"
(and also fix the add to deck thing i mentioned)

final jewel
#

ok good

#

but like in collection it will show high card

frosty rampart
#

yea that's fine

#

todo list i think just shows a random hand in the collection anyway

#

as long as the rest of the description makes it clear that it picks a random hand

loud summit
#

does partner and finity use the same keys for win/lose quotes

#

if not how exactly are you supposed to specify partner quotes

feral tree
#

is it possible to check if you have a specific achievement

final jewel
#

Idk why but I cant use my planet

#

like it just dont let me use it

harsh belfry
final jewel
#

yea but I wasnt using one before and it was working but now no

#

cause can_use is true by default

harsh belfry
#

i don't actually think theres a default for that

#

but idk lmao

#

like can_use is not defined on the base SMODS.Consumable object

#

and theres an explicit check checking to see if a consumable has the can_use function at all

final jewel
#

but why I was able to use it before

harsh belfry
#

theres still code that runs after

#

if there isn't a can use function

#

normally it doesn't actually do anything

#

since its for the vanilla tarots

#

but mayhaps the stars aligned

final jewel
#

yeah i dont really know why its kinda weird

#

You were right but yeah Im gonna investigate why it was working before

final jewel
#

how do I make that it only select unlocked hand

faint yacht
#
local names = {}
for k, v in ipairs(G.handlist) do
    if G.GAME.hands[v] and G.GAME.hands[v].visible then names[#names+1] = v end
end
local hand = pseudorandom_element(names, pseudoseed('thehistoryoftheentireworldiguess'))
final jewel
#

thx

urban wasp
#

why doesn't this destroy itself

if context.skip_blind then
    for i = 1, card.ability.extra.create do
        add_tag(Tag("tag_juggle"))
        card:juice_up(0.4, 0.4)
        play_sound("tarot1")
        return nil, true
    end
    G.E_MANAGER:add_event(Event({
        func = function()
            play_sound("tarot1")
            card.T.r = -0.2
            card:juice_up(0.3, 0.4)
            card.states.drag.is = true
            card.children.center.pinch.x = true
            G.E_MANAGER:add_event(Event({
                trigger = "after",
                delay = 0.3,
                blockable = false,
                func = function()
                    G.jokers:remove_card(card)
                    card:remove()
                    card = nil
                    return true
                end
            }))
            return true
        end
    }))
    return {
        message = localize("k_eaten")
    }
end
faint yacht
#

'cause of the return nil, true.

#

...also, just do SMODS.destroy_cards(card) in the event-

urban wasp
#

wait in one part

#

this is historically what i've used to destroy food jokers

#

okay also for some reason this is displaying ERROR instead of what i'd like it to

faint yacht
#

k_eaten_ex

#

As for the Food Joker destruction, SMODS.destroy_cards(card, nil, nil, true).

urban wasp
#

just replacing

G.jokers:remove_card(card)
card:remove()
card = nil

?

faint yacht
#

That's the inside event.

urban wasp
#

yes? so i assume that's it

faint yacht
#

Remove the inside event and have the remaining event just be SMODS.destroy_cards(card, nil, nil, true).

urban wasp
#

yeah so just

G.E_MANAGER:add_event(Event({
    func = function()
        play_sound("tarot1")
        card.T.r = -0.2
        card:juice_up(0.3, 0.4)
        card.states.drag.is = true
        card.children.center.pinch.x = true
        G.E_MANAGER:add_event(Event({
            trigger = "after",
            delay = 0.3,
            blockable = false,
            func = function()
                SMODS.destroy_cards(card, nil, nil, true)
                return true
            end
        }))
        return true
    end
}))
faint yacht
#
G.E_MANAGER:add_event(Event({
    func = function()
        SMODS.destroy_cards(card, nil, nil, true)
        return true
    end
}))

even.

urban wasp
#

oh boy 😭

storm kraken
#

time to get to work on functionality

#

uhhh

elder rune
#

You know what that means

crisp coral
#

:grodetrue:

lyric maple
#

bump

storm kraken
reef belfry
#

how do you get the base chips of a played pokerhand

daring fern
storm kraken
#

im putting so much G slop in my mod

stoic void
#

dang

storm kraken
#

i need to make this text automatically reload when selected fish is changed

#

tiem to learn dynatext!

stoic void
#

why tf is it comic sans

storm kraken
#

because i like it

loud citrus
#

i'm trying to replicate The Club blind as a joker, why is the context.other_card not valid?

slim ferry
#

context.debuff_card is the card

storm kraken
dapper sun
#

that doesn't need to be in a patch

#

why're you creating a button callback inside a patch

storm kraken
#

idk

#

anywaysss

#

my main problem is the text not updating

bold sleet
#

Try using this.

#

Replacing ref_table and ref_value with your values.

storm kraken
#

still the same problem (the green text only updates when i leave and reopen this menu after clicking the buttons)

#

i wonder

#

is it something to do with the fact that its all in a create uibox function

#

thatd probably make sense

bold sleet
#

It shouldn't be, though.

dapper sun
#

have you got a func callback?

#

those update

storm kraken
# storm kraken

these leads to that (which i now put in a regular lua file instead of a patch)

dapper sun
#

ah

#

and what does e.config.object:update_text() do?

minor magnet
storm kraken
#

supposedly update the text
-# source:

#

-# this is from the game files

storm kraken
#

ok there were like 3 different update functions and i finally found the one for dynatext

#

now

#

i need to find a conditional to add so the game doesnt shit itself

#

more G slop yay!!

#

ok it just doesnt wanna work

#

so fun

#

what if a try with regular text

#

highkey may have forgetting this was a dyna text thing

#

WAA

junior tapir
#

Is there some kind of convinient context that triggers with the joker being hovered over (just like when the joker description appears)?

primal robin
#

So there's second fishing mod

#

First one was made by so talented guy, I missing him (

storm kraken
#

what happened?

junior tapir
wintry solar
#

That should work fine

junior tapir
#

it tells me field 'children' is a nil value

wintry solar
#

check for card.children first then

storm kraken
#

my code
how the fuck do i make the dynatext update in real time instead of only updating on closing and reopening the menu

#

ive tried alot of things and im probably stupid but holy shit

golden field
#

question: how do i make an sealed card be always drawn face down

bold sleet
bold sleet
#

👍

storm kraken
bold sleet
#

Lonballo, got it.

storm kraken
#

this game is taunting me

wintry solar
#

you need to use ref_table and ref_value for your text instead of text

golden field
#

how would i do that

golden field
storm kraken
idle oxide
#

trying to create photograph and chad on joker sell, not sure where ive gone wrong, game also crashes with "jokers/jokers.lua"]:459: attempt to call method 'give_joker' (a nil value)

    key = "roffle",
    pos = { x = 0, y = 0 },
    rarity = 2,
    blueprint_compat = false,
    cost = 8,
    discovered = true,
    atlas = "roffle",
    loc_txt = {
        name = "Roffle",
        text = {
            "{C:dark_edition}Looks Inside{}",
        }
    },
      calculate = function(self, card, context)
        if context.selling_self then
context.cardarea = G.jokers
    context.elling_card = true
    card = card
            return {
                func = function()
    G.E_MANAGER:add_event(Event({
        func = function()
            local keys = {'j_photograph', 'j_hanging_chad'}
            G.GAME:give_joker('j_photograph', G.jokers)
            G.GAME:give_joker('j_hanging_chad', G.jokers)
            return true 
        end
    }))
end
            }
        end
    end 
}```
storm kraken
#

it works now oh my fucking god

storm kraken
teal grotto
#

ugh how do i make text a custom colour
like {C:something}

storm kraken
chilly raft
teal grotto
chilly raft
#

some options you have

teal grotto
#

not just red,mult,blue,chips,green,money,gold,attention,purple,white,inactive,spades,hearts,clubs,diamonds,tarot,planet,spectral,edition,dark_edition,legendary,enhanced

#

can i like make more of these

storm kraken
#

i think youll need to add those yourself with patches

#

patches

teal grotto
#

😭

#

wait how about
G.ARGS.LOC_COLOURS["thing"] = thing

idle oxide
#

if you want hex

#

not sure

teal grotto
#

but like text stuffs

#

imma try G.ARGS.LOC_COLOURS["colour"] = G.C.modprefix.colour

#

nvm im stupid asf and didn't see
what was right underneath

#

didn't realize this was here lol

idle oxide
#

negative was intentional

teal grotto
#

well i sure didn't think it was accidental

hazy carbon
#

hello there, i was just looking at the contents of the balatro+ app on macOS and found the terminal which runs the game, can anyone tell me what it can be used to do or if its just something the software does. Like can it be used to edit the save file and stuff?

storm kraken
#

how do i use ref table on loc_txt.text please chattt i needdd thisss

bold sleet
#

can ref_value be a number?

#

Will it work?

storm kraken
#

i got it to work

bold sleet
#

no shit!

storm kraken
#

whats the logic behind w and h never working for ui

#

like wtf is that

bold sleet
#

I usually work with minw and minh

#

So try using those idk

storm kraken
#

why does setting min and max h to the same value work BETTER THAN THE REGULAR H

bold sleet
#

I do not know.

#

But I urge you to use those instead of normal w and h.

#

on every UI element you have made, probably

wintry solar
#

I think it’s because they are dynamically sized containers so they don’t have a w and h property or something

storm kraken
#

can i not do that

bold sleet
#

I think UI definitions and actual UI objects work differenctly.

#

They don't have such a thing as 'nodes' inside them.

#

There is a function to find nodes by their id, though.

#

(provided you give them one)

storm kraken
#

oh awesome

#

i just give all of them ids

bold sleet
storm kraken
#

uh huh

#

wait

#

how am i supposed to get the uibox if it uses a local variable

bold sleet
#

You can plug that in to get a certain node, I think.

#

Worst case scenario you use e.children[n]...

#

Not certain if it works, but I have seen some commented code from local that does that.

storm kraken
lilac trail
#

How does localization work? I've read the docs, and I thought what I was doing would work but I guess I was wrong?

lilac trail
#

give me uno moment

#
SMODS.Joker {
  key = "j_no_u",
  --[[ other irrelevant info here ]]
}

-- en-us.lua
return {
    descriptions = {
        Joker = {
            j_no_u = {
                name = "No U",
                text = {
                    "Swaps Mult with Chips."
                }
            },
        }
    }
}```
teal grotto
#

mod prefix?

daring fern
wind steppe
#

in the SMODS.Joker just put no_u

lilac trail
wind steppe
#

and then your key should be j_modprefix_no_u

lilac trail
#

okay, thanks

storm kraken
#

can this exist?

daring fern
storm kraken
#

yuh

daring fern
storm kraken
#

awesome!

dapper sun
#

i could use that maybe

#

can't use my laptop until boxing day tho shrug

storm kraken
#

😔

dapper sun
#

btw if you're handling cards from in a ui popup menu, you may have to worry about used_jokers updating

#

i've had quite a bit of trouble with it in the past and it still has bugs sometimes
-# am hoping the id thing will help me fix it for real this time

primal robin
#

I thought check you added do the trick

dapper sun
#

i thought so too

#

but there's still the occasional desync between cards and the table

#

encountered it in a run last night

primal robin
#

I have an idea for possible cause

#

SMODS.find_card

dapper sun
dapper sun
dapper sun
primal robin
#

SMODS.find_card executes SMODS.get_card_areas, which depends on parametr selects card areas to check for existing a jonkler

dapper sun
#

ah

primal robin
#

And by default it only checks G.jokers, G.consumeables, G.vouchers

#

Fortunately for you easy patch can be done

dapper sun
#

what about the shop cardareas?

bold sleet
#

Hey chat, question: what the fuck do these tables have inside them?

dapper sun
#

scoring_hand = table of scoring cards
scoring_name = hand name/key
poker_hands = table of hands contained in hand

daring fern
bold sleet
#

uh...

bold sleet
#

Is there somewhere where I can look at how the table would look, or something?

dapper sun
#

why?

primal robin
#

Game calculates all poker hands you hand contains and includes cards in this poker hands

bold sleet
#

Because I need that data.

dapper sun
#

current played poker hand is scoring_name

bold sleet
#

oko

dapper sun
#

and you can find the times a hand has been played in G.GAME somewhere i think

primal robin
#

Just check obelisk idk

daring fern
# bold sleet Because I need that data.
local chips = 0
for k, v in pairs(G.GAME.hands) do
    if v.played == G.GAME.hands[context.scoring_name].played and v ~= G.GAME.hands[context.scoring_name] then chips = chips + 50 end
end
if chips > 0 then return {chips = chips} end
primal robin
#

also break makes sense when you found hand you need

bold sleet
#

Thanks for the code.

#

Mind if I uh... yoink it?

primal robin
#

<thanks for inspiration gif>

dapper sun
primal robin
#

hm..

dapper sun
#

since this is for a custom shop

storm kraken
#

which alt is this

dapper sun
#

and SMODS.find_card is for checking when a card is held

bold sleet
primal robin
dapper sun
#

out for xmas so gimme a sec to grab a repo link

white hull
#

hey y'all, where in the source code is the main scoring loop located?

normal crest
#

functions/state_events.lua in G.FUNCS.evaluate_play iirc

white hull
#

thanks!

dapper sun
primal robin
#

I do believe issue in loading

#

Because when card is loaded, it does not update used_jokers

#

Because it, well, loads

dapper sun
#

even with the hooks?

primal robin
#

When card is loaded, it sets ability to nothing first, and then just set new values it needs without calling set_ability

#

And I see you using loading in your shop

dapper sun
#

i see

primal robin
#

I'm not sure 100% but in theory issue somewhere here

dapper sun
#

i wanna try and write down everything abt thisso i can fix this on boxing day

primal robin
#

Also possible that you opened a shop, it saves, you bought joker in normal shop, and your shop loaded with this one so you get duplicate

#

Depends on when loading is is happening

dapper sun
#

no i bought the card earlier from the custom shop and it appeared in the custom shop later in the run

#

i've been playing a lot of my challenge where i only have the custom shop

#

so it skips the vanilla shop

primal robin
#

Needs more time for debugging

#

We can do this later if you want

dapper sun
#

ty

#

i'd do it rn but family doesn't want me on my laptop bc they're old and just see it as anti-social

primal robin
dull bane
#

excuse me'

#

ur like

#

devs right?

#

do you think u could help me out with a crash?

primal robin
#

yes we are

#

go ahead

dull bane
#

oki

storm kraken
#

im john fish market

dull bane
#

so

primal robin
#

I do believe Qualatro shouldnt be lovely mod, proably installed incorrectly

#

Also a bunch random mods in here

dull bane
#

huh

#

im using balatro mod manager

#

i dont know how i'd install it incorrectly

dapper sun
primal robin
#

is it lovely mod

#

in most cases if content mod listed like this something definitely wrong

#

No it isnt, so

#

find Qualatro in mods folder and show what it contains

dapper sun
#

ah i haven't seen the log since i'm on mobile

slim ferry
#

Qualatro doesnt work on latest steamodded iirc

primal robin
#

commits says it should

dapper sun
#

worth trying tho

#

since newest steamodded was only a few days ago

#

oh latest qualatro release was 2 days ago

dull bane
#

uhm

#

now this is showing up

primal robin
#

same log

dull bane
#

??

#

wdym?

#

i got rid of like

#

2 mods

#

how is it the same

dapper sun
#

did you check the clipboard

dull bane
primal robin
#

I mean the're not 100% same, but issue is same