#💻・modding-dev

1 messages · Page 45 of 1

wintry solar
#

oh no my cards stay all over the screen D:

edgy reef
#

Sounds like cardarea position isn't being reset.

frosty dock
#

no, it's just a logical or

#

it will always give the first one because even zero is truthy in lua

hushed cradle
#

thanks

#

i was hoping there was some funny thing i could do

#

but i looked it up and i kinda can

frosty dock
#

math.max:

wintry solar
#

Does anyone know where the cardarea position is reset?

tepid crow
hushed cradle
#

thats even easier than the thing i found lol

#

ty

obtuse scarab
#

what if it acted like a mini-investment tag instead of trying to add to a mult, like. you give 5 at every small blind and you get back 10 or 15 at the boss blind

stray osprey
#

does anyone know why cryptid mod keeps crashing

frosty dock
frosty dock
hushed cradle
#

yeah thats what i found online lol

stray osprey
#

i rerolled in the shop

frosty dock
#

uh

#

make sure your cryptid folder isn't also nested

stray osprey
#

it is, but there are 3 other in there too

#

thats in the cryptid

frosty dock
#

... wtf

stray osprey
#

idk man im very confused

tepid crow
stray osprey
#

yes

frosty dock
#

delete that cryptid folder (the one in mods), grab the download again and extract it right into your mods folder making sure it is not nested

#

I wouldn't bother cleaning that up

stray osprey
#

so, the github link says, "comes with the latest version of talisman and steammoded"

#

with the zip file

#

should i just extract cryptid?

frosty dock
#

just take the inner cryptid folder

tepid crow
#

huh, interesting that math did that

frosty dock
#

i actually didn't know that since I installed cryptid and talisman with git

#

interesting

stray osprey
#

okay so i did that

#

ill run it now

#

perfect

#

tysm

#

again

zealous glen
#

Final visualization of Rouge Ribbon, featuring the Loop tooltip.

#

Actually, I figured out how to make it not clickable

mellow sable
olive shoal
#

but isnt it spelt rogue

#

oh wait no

#

rouge the colour

gilded narwhal
#

Guys where is ante chip requirement calculation code stored?

#

Because I want to modify the base of the ante

hallow forge
#

misc_functions.lua

#

get_blind_amount

gilded narwhal
#

Ty 👍

rough furnace
gilded narwhal
#

Hey what are the different possible positions of a lovely payload?

#

Is it just at, after, and before?

mellow sable
#

So you basically have to beat 3 boss blinds in one round

rough furnace
#

oh intresting

gilded narwhal
#

Also how do I inject something after a function ends, would this work?

crisp coral
rough furnace
#

generally, its easier to put your code before somehting rather than behind something

#

but if you need to, you'll have to use a regex patch

gilded narwhal
#

Okay good to know

#

I think I can fix that

#

number_format is the function directly after the one I want

rough furnace
#

also if you just want your code to be run, you can use patches.copy to add it to the end of the file

gilded narwhal
#

There's more than that one patch but thank you

rough furnace
#

oh you can also add it to the beginng

#

yeah make's sense

obtuse scarab
#

tie switch : 3

hushed cradle
#

i thought my lovely patches were messing up the game code

#

but then i looked at the actual source

#

what the hell is the calculate joker function

#

how is it allowed to end like that

mellow sable
#

yes

hushed cradle
#

i cant patch anything multiline without it breaking

mellow sable
#

couldn't you just write a hook if you want to catch it at the end

hallow forge
#

boutta start messing with stuff that shouldn't be messed with

hushed cradle
#

not quite what im tryna do

mellow sable
#

start deleting UI elements balatrojoker

hushed cradle
#

im trying to patch in a whole lot of stuff

#

def a better way to do it

#

but i want to avoid using steamodded cos why not

obtuse scarab
hushed cradle
#

damn

#

i forgot what theyre called

mellow sable
#

SD card?

#

or maybe a floppy disk

obtuse scarab
#

its an SD card yeah

mellow sable
#

but that looks a bit different from a floppy disk

#

so yeah sd card

hushed cradle
#

looks cool

#

what does it do?

obtuse scarab
#

could add the base value of a previously played hand
(if it chooses your lvl 2 full house that you played already, it would add 65 chips and 6 mult to your played hand)

hushed cradle
#

is it a one time thing?

mellow sable
#

Maybe “all hands are considered the same level as your highest level hand”

obtuse scarab
#

thats interesting too

obtuse scarab
#

but i got no idea

#

i just like designing cool stuff

hushed cradle
#

i got no idea what im doing either tbh

#

except im not good at designing anything too

#

sounds cool tho

gilded narwhal
#

How do you make/call a global function in this game

humble tartan
#

Alright got this shit working but I had to fork luasteam to add some stuff

cedar flame
#
local balalib_mod = SMODS.findModByID("balalib")
local s_sprites = SMODS.Sprite:new("balalib_sprites", balalib_mod.path, "sprites.png", 32, 32, "asset_atli")
s_sprites:register()
#

with this:

SMODS.Atlas{
        key = "balalib_sprites",
        path = "sprites.png",
        px = 32,
        py = 32
}:register()
#

(i've also removed the SMODS.init block and findModByID instance from handpreview, which is calling balalib, but i'm pretty sure the error i'm getting is from balalib itself)

#

now when starting a run i get engine/sprite.lua:11: attempt to index field 'atlas' (a nil value)

#

i've seen others mention this error being caused by failure to register an atlas resource, but i'm creating and registering it in the same command here so i don't believe that's the case

gilded narwhal
#

Something is wrong here 😭

cedar flame
#

i hope this makes sense, let me know if there's any info i need to give

hallow forge
rough furnace
#

anyone got a 1.0 mod that adds new ranks?

obtuse scarab
hallow forge
#

I literally just figured out how to modify the shop

obtuse scarab
#

just a suggestion

mellow sable
rough furnace
#

already on it

obtuse scarab
#

epic win?

rough furnace
#

it's good enough for what I need

obtuse scarab
#

epic win.

rough furnace
#

for anyone who somehow finds this, here's the rank ```lua
--- STEAMODDED HEADER
--- MOD_NAME: Rank Test
--- MOD_ID: RankTest
--- MOD_AUTHOR: [WilsontheWolf]
--- MOD_DESCRIPTION: Testing for ranks

------------MOD CODE -------------------------
SMODS.Rank {
key = 'Test',
card_key = 'TEST',
pos = { x = 12 },
nominal = 15,
face_nominal = 0.4,
shorthand = 'TEST',
straight_edge = true,
next = { '2' },
}

------------MOD CODE END----------------------

#

Also thunk moment

#

theres a method to set the suit but not the rank

rough furnace
#

ok am I missing something or doest the game just straight up not have a variable with all the ranks in it

mellow sable
#

SMODS.Ranks

rough furnace
#

I need to support the base game

#

I got this rn

#

oh also I have the jankiest card lookup because the game doesn't let me get this info easy

#

haven't tested it yet

#

and it doesn't work™️

#

okay it works but the order is all screwed up with steamodded

#

okay silly hack worked

hallow forge
rough furnace
#

Mega reroll might sound better than reroll-mega

edgy reef
#

Could also increase text size, should be able to fit all of it into the button.

cedar flame
#

i'm totally stumped

mellow sable
#

i got this so many times in early cryptid dev and it had to do with not using the mod prefix in the atlas

cedar flame
#

oh, as in the mod directory? i did think it was odd that the sprite command contained the path but the atlas command didn't seem to call for it

mellow sable
#

the prefix defaults to the first four letters of your mod ID iirc

cedar flame
#

hmm...

mellow sable
#

but you can set it in the header

#
--- STEAMODDED HEADER
--- MOD_NAME: Cryptid
--- MOD_ID: Cryptid
--- PREFIX: cry
--- MOD_AUTHOR: [MathIsFun_, Balatro Discord]
--- MOD_DESCRIPTION: Adds unbalanced ideas to Balatro.
--- BADGE_COLOUR: 708b91
--- DEPENDENCIES: [Talisman]
--- VERSION: 0.4.2

as an example from my mod header

cedar flame
#

ooh lemme check for that, thank you!!

#

i assume you then just use G.ASSET_ATLAS["prefix-balalib_sprites"] instead of G.ASSET_ATLAS["balalib_sprites"] in Sprite() calls?

#

with prefix being whatever i set it to

mellow sable
#

underscore not dash

cedar flame
#

gotcha

mellow sable
#

so prefix_balalib_sprites

cedar flame
#

okay this is super useful info, i'm gonna make the changes

mellow sable
#

glad to help!

cedar flame
#

oh my gosh it works immediately, you've saved me

#

i really had no idea where to go haha

#

thanks again :D

mellow sable
#

yw

hallow forge
edgy reef
#

Blank spot? 🤔

hallow forge
#

for now

unkempt thicket
#

people out here revamping the game

#

insane

hallow forge
#

gotta get people interested in my mods

#

(coming to Bonus Blinds btw)

rough furnace
hallow forge
#

lol

#

can't wait for balatro to release

edgy reef
#

Modded object previews would be fire for some mods ngl

hallow forge
#

for now it's be a negative rare joker, Mega Reroll rerolls the rare joker as well

south galleon
#

how do make it show the description

zealous glen
zealous glen
zealous glen
# rough furnace ok wait what is a refresh?

MathIsFun got it. If you can think of another way to express it, I’d consider it. Although now I can add tooltips to Blinds, I might add more, even if this one is currently hardcoded

zealous glen
zealous glen
#

Always has been

south galleon
#

i added a prefix, still nothing

#
--- MOD_NAME: Mic's Mad Mod
--- MOD_ID: micstarots
--- MOD_AUTHOR: [I_am_Mic]
--- PREFIX: mic
--- MOD_DESCRIPTION: Work in Progress mod that adds a bunch of stuff

----------------------------------------------
------------MOD CODE -------------------------
SMODS.Enhancement {
    name = "m_thirsty",
    key = "thirsty",
    badge_colour = HEX("ffd70d"),
    config = { x_mult = 3, chips = -100},
    loc_txt = {
        -- Badge name (displayed on card description when seal is applied)
        label = 'Thirsty Card',
        -- Tooltip description
        description = {
            name = 'Thirsty Card',
            text = {
                '{X:mult,C:white} X#1# {} Mult,',
                '{C:chips}-#2#{} Chips when scored.'
            }
        },
    },
    loc_vars = function(self, info_queue)
        return { vars = {self.config.x_mult, self.config.chips,} }
    end,
    atlas = "thirsty_atlas",
    pos = {x=0, y=0},

    -- self - this seal prototype
    -- card - card this seal is applied to
    calculate = function(self, card, context)
        -- repetition_only context is used for red seal retriggers
        if not context.repetition_only and context.cardarea == G.play then
            return {
                mult = self.config.x_mult,
                chips = self.config.chips,
            }
        end
    end,
}

SMODS.Atlas {
    key = "thirsty_atlas",
    path = "thirstycard.png",
    px = 71,
    py = 95
}```
zealous glen
#

You don’t need to add one, though you can

#

The default one is made of the first four letters of your mod’s name

#

Also I think you used the wrong syntax to define it anyways

#

Usually keys will look like j_mics_joker_name for your mod

south galleon
zealous glen
#

The format is the same one as vanilla

#

But it uses your mod key

south galleon
#

okay okay, but if j_ is for jokers, what is it for modifiers, or consumables, editions etc

wintry solar
#

It’s almost always the first letter

#

So for those you said, m_, c_ and e_

#

Oh thanks markdown 🙃

south galleon
#
    name = "m_thirsty",
    key = "m_mics_thirsty",
    badge_colour = HEX("ffd70d"),
    config = { x_mult = 3, chips = -100},
    loc_txt = {
        -- Badge name (displayed on card description when seal is applied)
        label = 'Thirsty Card',
        -- Tooltip description
        description = {
            name = 'Thirsty Card',
            text = {
                '{X:mult,C:white} X#1# {} Mult,',
                '{C:chips}-#2#{} Chips when scored.'
            }
        },
    },
    loc_vars = function(self, info_queue)
        return { vars = {self.config.x_mult, self.config.chips,} }
    end,
    atlas = "thirsty_atlas",
    pos = {x=0, y=0},```

like this?
(i took this for an example mod for seals but i made so that its a modifier instead of a seal )
zealous glen
zealous glen
frosty dock
#

So in this case your real key would be m_mics_m_mics_thirsty

south galleon
#

so ill just put thirsty?

frosty dock
#

yeah

south galleon
#

okay everything seems to work on the tarot card, its the enhanced card i dont know how to do

frosty dock
south galleon
frosty dock
south galleon
frosty dock
#

wait my bad your prefix is mic not mics

#

G.P_CENTERS.m_mic_thirsty then

south galleon
frosty dock
#

what does your enhancement constructor look like now?

south galleon
#

liek teh card itself??

frosty dock
#

the definition like SMODS.Enhancement { ...

south galleon
#
    name = "Thirsty card",
    key = "thirsty",
    badge_colour = HEX("ffd70d"),
    config = { x_mult = 3, chips = -100},
    loc_txt = {
        -- Badge name (displayed on card description when seal is applied)
        label = 'Thirsty Card',
        -- Tooltip description
        description = {
            name = 'Thirsty Card',
            text = {
                '{X:mult,C:white} X#1# {} Mult,',
                'but {C:chips}-#2#{} Chips ',
                'when scored.'
            }
        },
    },
    loc_vars = function(self, info_queue)
        return { vars = {self.config.x_mult, self.config.chips,} }
    end,
    atlas = "thirsty_atlas",
    pos = {x=0, y=0},

    -- self - this seal prototype
    -- card - card this seal is applied to
    calculate = function(self, card, context)
        -- repetition_only context is used for red seal retriggers
        if not context.repetition_only and context.cardarea == G.play then
            return {
                mult = self.config.x_mult,
                chips = self.config.chips,
            }
        end
    end,
}```
frosty dock
#

and the tarot?

south galleon
#
    set = "Tarot",
    name = "The Mosquito",
    key = "mosquito",
    config = {
        -- This will add a tooltip for seal when hovering on spectral.
        -- `s` means seal (set), `seel` is mod prefix, `_seal` is added at the end automatically for all seals
        mod_conv = 'm_mics_thirsty',
        -- Tooltip args
        tarot = {x_mult = 3, chips = -100},
        -- How many cards can be selected.
        max_highlighted = 1,
    },
    loc_vars = function(self, info_queue, center)
        -- Handle creating a tooltip with seal args.
            info_queue[#info_queue+1] = G.P_CENTERS.m_mic_thirsty
        
        -- Description vars
        return {vars = {center.ability.max_highlighted}}
    end,
    loc_txt = {
        name = 'The Mosquito',
        text = {
            "Enhance {C:attention}#1#{} card",
            "into a {C:attention}Thirsty Card{}"
        }
    },
    cost = 3,
    atlas = "mosquito_atlas",
    pos = {x=0, y=0},
    use = function(self, card, area, copier)
        G.E_MANAGER:add_event(Event({
            trigger = 'after',
            delay = 0.1,
            func = function()
                for i = 1, card.ability.max_highlighted do
                    local highlighted = G.hand.highlighted[i]

                    if highlighted then
                        highlighted:set_enhancement('m_mics_thirsty')
                    else
                        break
                    end
                end
                return true
            end
        }))
    end
}```
languid mirage
#

if mod prefix is mic then set_enhancement call is wrong

#

key should be m_mic_thirsty

#

but it's unrelated to the tooltip

frosty dock
#

oh right I see

#

the loc_txt is wrong

languid mirage
#

oh ye

frosty dock
#

there's no label and description for enhancements, it's just name and text at top level

#

tbf it's inconsistent and there should be no description subfield ever

languid mirage
#

ye that was super annoying to figure out for seals

wintry solar
#

Some things should have a separate label though

#

They need entries in different localisation tables

south galleon
#

yeah, ive just based the seal mod, and instead of a spectral that gives a seal, its a tarot giving an enhancement

languid mirage
#

you shouldve checked cryptid

frosty dock
languid mirage
#

but whatever now

frosty dock
#

the label not being used in the main description is a bit redundant, but I think that's alright

#

issue added

south galleon
frosty dock
#

enhancement docs are still missing

wintry solar
#

Ah yeah that makes sense

south galleon
#

thats just my goal right now, make a modded enhancement tarot card

frosty dock
#
        description = {
            name = 'Thirsty Card',
            text = {
                '{X:mult,C:white} X#1# {} Mult,',
                'but {C:chips}-#2#{} Chips ',
                'when scored.'
            }
        },
#

replace this with just the inside

            name = 'Thirsty Card',
            text = {
                '{X:mult,C:white} X#1# {} Mult,',
                'but {C:chips}-#2#{} Chips ',
                'when scored.'
            },
south galleon
zealous glen
#

You still have to hardcode Enhancement effects, right?

south galleon
#

i thought its similar to coding seals

wintry solar
frosty dock
wintry solar
south galleon
#

ok (kinda) good news, it worked

#

but idk what that top white font name is about

wintry solar
#

Yeah I’ve had that as well, I think it’s just an issue in the api we need to fix

frosty dock
south galleon
#

alright got it

#

that worked, but the little description here is still gone

#

also idk if this is just my mod, every base enhancement cards here now has "+0 extra chips"

languid mirage
#

you can test by moving your mod out of mods folder

languid mirage
frosty dock
south galleon
frosty dock
#

like 0716a

languid mirage
#

mods/steamodded/core/core.lua after the header

#

I don't remember if it's in logs

frosty dock
#

it just shows below the game version on main menu

languid mirage
#

oh right xd

#

I forgot

south galleon
languid mirage
#

you have mics, should be mic

#

for mod prefix

#

same with highlighted:set_enhancement call

frosty dock
south galleon
frosty dock
#

did you install using git or direct download?

#

with git, you just need to run git pull in command line to update, for direct download you basically just have to get rid of the old files and download the new ones the same way you did for the version you have

south galleon
frosty dock
#

alright

#

just download this again and replace your steamodded folder with these files

#

I do recommend using git as we still update frequently

south galleon
#

will do

south galleon
#

these are my only problems

obtuse scarab
#

thinking of a battery pack joker today…

#

it has 0 or 1 sell value but it would recharge all jokers that diminish over time (ice cream, popcorn, ramen, turtle bean, there’s probably another one i’m forgetting)

obtuse scarab
#

either that or it could be called free refill

zealous glen
south galleon
#

is there a way where i can make a card subtract chips instead of adding them when scoring?

zealous glen
#

Not natively afaik

#

The game automatically ignores negative values

south galleon
#

aw dang

zealous glen
#

But you should be able to hook the function to edit its behaviour

#

Although I’m not sure what would be a good practice

#

Since other mods may not want that kind of behaviour

south galleon
#

i see

#

waht about

#

dividing something in half

#

(chips only, not mult)

languid mirage
#

xchips is a thing

#

not natively tho

#

tho it's still in development and has a few issues

south galleon
languid mirage
#

x0.5 is the same as dividing by 2

#

idk why are you asking question about subtraction again

south galleon
#

just checking

languid mirage
#

feel free to request minus chips function there

crisp coral
#

-mult works so idk why -chips wouldn't work

south galleon
#

we need more chip love

wintry solar
#

I’m pretty sure you can subtract chips

#

I’m sure I’ve done it

zealous glen
#

I think vanilla doesn't accept it, but maybe since then Steamodded has added the functionality

south galleon
#

i mean its simply just subtracting chips

#

it cant be more simpler than that

zealous glen
#

It's not about difficulty

#

I think thunk didn't want that mechanic and made it impossible to avoid errors/corner cases

south galleon
#

i guess halving the chips is good enough

#

(which im sure it is, maybe)

hushed cradle
#

hi

#

you know how

#

when you quit out

#

like if you open a booster pack

#

and then quit out

#

and then go back to the run

#

it like saves as you start opening the booster pack

#

does anyone know what the name of that function is or where it might be

#

like when the game saves the state

#

so you can go back to it when you enter the run again

#

i tried making a thing write to a save file when the function save progress is called

#

but that doesnt seem to be often enough

zealous glen
#

I think it's just save_run

hushed cradle
#

ty

#

ive been looking through the code but i swear im just stupid

zealous glen
#

I'm thinking whether or not to show which bosses, and how. I can show one Boss tooltip but I'm not sure how to do two

south galleon
#

some form of multiphase boss?

zealous glen
#

Yes, but the phases are existing Bosses

#

Though they'll be random

south galleon
#

for an ante 8 blind

zealous glen
#

Thanks

crisp coral
#

crimson dusk walked so tyrian patriarch could run

south galleon
#

(also why is the song so sped up i kinda love it)

zealous glen
#

Also depending on how I finish this, I can make it scalable rather than hardcoded

zealous glen
crisp coral
#

i mean i could too but i have no reason to

#

since multibosses are only for Crimsons and two other bosses that require hardcoding

zealous glen
# crisp coral i mean i could too but i have no reason to

Tyrian Patriarch selects them randomly, so the way to do it is probably 90% of the work to fully automate it. Also I could make a Joker out of this

Pinging you to ask about attention_text. Just curious how L Corp did it, since I want Tyrian Patriarch to say “Magnificent!” before you fight it

#

oh lol if you reset halfway through it doesn’t save the state 😅

crisp coral
#

alert_debuff

zealous glen
#

I imagine it’s the same in L Corp

crisp coral
#

wdym?

zealous glen
crisp coral
#

the state of what

zealous glen
#

The multi Blind state

crisp coral
#

i don't store the blind state

zealous glen
#

Like, if you exit and reenter in Blind 2 of 3, it thinks it’s the last Blind

crisp coral
#

i think.

#

oh wait i prolly do

#

will check when i get back to my hotel

zealous glen
#

I didn’t mean to test this so Idk how Ribbon works. Maybe that one would have the same behaviour as L Corp, whatever that is

crisp coral
#

i think i only store original blind

obtuse scarab
#

oh noes : (

i thought that maybe the temporary cards like this could update slowly as it gets used up

obtuse scarab
#

just a cosmetic thing

#

wow !

obtuse scarab
#

bro got popped

south galleon
#

😭

zealous glen
#

You can contribute to Aura if you want

obtuse scarab
#

aura wasn't exactly what i was envisioning, but i suppose i could anyway

wintry solar
#

It’s a simple thing to do actually, if you can make the different sprites I can throw it together

obtuse scarab
#

or maybe it was

#

im not too sure

south galleon
#

i guess make a spritesheet?

zealous glen
#

I mean, Aura also intends to track the state of different Jokers via the sprite

#

They discussed food Jokers before

obtuse scarab
#

yeah thats it

zealous glen
#

I just think they haven't done it yet

obtuse scarab
#

i was still scrolling into the thick of it

wintry solar
#

Yeah I’m not sure if aura wants them to be animated or not though

zealous glen
#

even if they only make keyframes, I think that would be of help

south galleon
#

thast weird

wintry solar
#

Yeah, I just mean I’m not sure if their scope is for it to be animated and reduce, or just reduce

south galleon
#

does jimball from cryptid use aura?

obtuse scarab
#

im thinking on adding lighter streaks to the pins to signify that it's been accessed before

zealous glen
#

MathIsFun reused Jimball for Aura

south galleon
#

oh wow

obtuse scarab
#

im actually really proud of this design

zealous glen
#

It's very good

mellow sable
#

Although Aura is more complex now

hushed cradle
#

how do i get current mod path?

zealous glen
#

SMODS.current_mod.path

hushed cradle
#

tysm

languid mirage
#

current_mod changes after your mod is loaded

hushed cradle
#

local lang_path = SMODS.current_mod.path..'localization\\en-us.lua'

#

does this work then or nah

tepid crow
#

as long as it's defined outside a function should be fine

hushed cradle
#

yea

languid mirage
#

^

hushed cradle
#

cool

#

thanks

fallen tendon
frosty dock
obtuse scarab
#

nothing in particular, i cant make it work in game due to not knowing how to code it

#

i just like making card designs

fallen tendon
#

That would totally be a good mechanic

#

Just saving stuff on cartriges

#

Idk what you would save but it would be cool

obtuse scarab
#

maybe you could save a hand that you played and you can load the SD to play it at any time

fallen tendon
#

It could be like a new consumable type maybe

zealous glen
obtuse scarab
#

ah

#

but yeah just idea of saving some part of your run would be awesome

hushed cradle
#

also wait wdym

#

like if i have a file in a localization folder

#

itll just work

zealous glen
#

With Steamodded, yes

hushed cradle
#

damn

#

like if its called smth like 'nuts'

#

itll show up in the options as seperate

#

and called nuts

#

i dont have steamodded installed so i cant test it myself easily

languid mirage
#

@frosty dock btw in antivirus section of getting started on wiki it's probably better to not show default path to steam library, and instead say to access via steam - balatro - properties - installed files (e.g. I don't have steam library on disk c)

#

but idk how often people do that so maybe it's easier with default path

gilded narwhal
#

Hey guys anything wrong you can spot here?

zealous glen
#

why the last patch?

gilded narwhal
#

Could you have that function anywhere?

zealous glen
#

I guess the alternative is doing NFS.load, which, fair

gilded narwhal
#

I'm calling it here

zealous glen
lament fjord
#

There seems to be a missing newline (and I suspect why it isn't completely trashing the mod on the mod creator's side has something to do with newline platform differences)

languid mirage
#

steamodded overrides that btw

#

steamodded override is in main.lua if u want to see the exact code

#

hm is that Saturn mod, I remember something similar there

lament fjord
#

Yeah

#

Even when I manually write a patch to correct that, it still ends up doing something which causes other modded stuff to have error placeholder strings

#

Lovely is about as robust as a tower of popsicle sticks and wood glue

obtuse scarab
#

i kinda wanna draw unique backs for some of the base cards too

languid mirage
#

so I assume it breaks a lot of stuff with steamodded

languid mirage
languid mirage
obtuse scarab
obtuse scarab
# obtuse scarab

this would introduce a new kind of card, marked cards

you can just see what they are even if they are face down

#

ehh maybe something else for that one

languid mirage
#

should be just paper, maybe with Joker signature and a date

obtuse scarab
#

well it's a photograph. the film needs to have a negative to develop

#

the backside of the picture is the black part, thats what the picture develops on

#

this one is humorous ...

languid mirage
obtuse scarab
#

i suppose it does matter on what was being referenced when photograph was made

#

but lots of camera film does it like that

#

the kind of film that i'm familiar with is fujifilm instax

#

something like this

obtuse scarab
shell tangle
#

Question, isn't load already a keyword? How would I make this work?

zealous glen
#

what’s the question exactly

frosty dock
#

it's not a keyword, it's just a function in the global scope

#

you can still put a function named load on any table just fine

#

it's not a reserved keyword

shell tangle
#

Currently have it as this for testing, and just uses the default sprite rather than changing to this on load.

  load = function(self, card, card_table, other_card)
    card.children.center:set_sprite_pos({x=1,y=0})
  end,

Tried putting in sendDebugMessage{'Loaded Card Test'} under the load function, got a crash, but, might be outdated steamodded, so I'll make sure to update and such before doing anything more with that.

unkempt thicket
#

how does one call a yes_pool_flag?

tepid crow
frosty dock
#

these {} need to be ()

shell tangle
shell tangle
# frosty dock these `{}` need to be `()`

Alright, yeah, stupid mistake on my part, it is getting activated when loaded, so I suppose the issue might be with set_sprite_pos? Odd, because I have another one that changes it at the end of round which does work, and I just copied it from there.

zealous glen
#

I think set_ability should be sufficient, depending on what you want to do

frosty dock
#

yeah probably, the timing on load might not allow for that

zealous glen
#

It’s a bit weird because set_ability is called but later overwritten

#

But not completely

#

I know extra variables are overwritten

shell tangle
#

set_ability does not seem to be working on load, but it does work in the collection and upon picking it up.

Basically, the idea is a card which changes between the suits at the end of round, and changes the sprite to reflect that. It's working,, but upon exiting and reloading, it goes to the default sprite, rather than the sprite related to the suit.

zealous glen
#

The game uses set_ability to change some Sprite properties

#

Because set_ability is called on load

#

Since each card has to be recreated

#

Check out Aura to see how it handles Castle

shell tangle
#

Will take a look, probably making a stupid mistake somewhere, thanks.

zealous glen
shell tangle
#

Aura has it hooked into Game:start_run(), I'll see if I can work something out from there.

river panther
#

Balanced or broken?

zealous glen
#

Seems weak

#

How much was Square Joker again

tepid crow
#

square joker is 4

hushed cradle
#

can anyone tell me whats wrong with is "if\sself.ability\.name\s\=\=\s\'Lucky\sCat\'\sand\scontext\.other\_card\.lucky\_trigger\sand\snot\scontext\.blueprint\sthen\s*self\.ability\.x\_mult\s\=\sself\.ability\.x\_mult\s+\sself\.ability\.extra"

#

its saying invalid escape

#
                    self.ability.x_mult = self.ability.x_mult + self.ability.extra```
#

its finding that bottom bit

tepid crow
#

why aren't you just using spaces

hushed cradle
#

because its multi line

frosty dock
#

just use spaces for normal spaces

hushed cradle
#

oh cool i didnt think you could do that

#

mb

frosty dock
#

for newlines, use a newline followed by [\t ]* for indentation

#

\s* works i guess, but this is more readable

#

you also don't need to escape =

hushed cradle
#

cooll

#

ty

tepid crow
#

also it seems like this can be a regular pattern and doesn't need to be regex in the first place?

frosty dock
#

+ you do need to escape

tepid crow
hushed cradle
#

"if self\.ability\.name == \'Lucky Cat\' and context.other_card.lucky_trigger and not context.blueprint then\s*self\.ability\.x\_mult = self\.ability\.x\_mult \+ self\.ability\.extra"

#

this still doesnt work

#

am i dumb

#

wait i see it

#

nvm

#

do i need to escape .

#

and _

#

?

#

okay i dont

hushed cradle
#

figured it out

#

but its multiple lines

tepid crow
#

wait, lovely's pattern doesn't support multi-line matching?

hushed cradle
#

dont think so

frosty dock
#

yeah it doesn't

tepid crow
#

wtf

#

I feel like lovely patching needs a bit more documentation

hushed cradle
#

is there any?

#

i havent read any

tepid crow
#

there are the examples on lovely readme with some comments 🙃

hushed cradle
#

sorry its still giving me problems

#

do i need to escape '

#

oops

#

'

#

quote marks

#

its giving me error if i do 'Lucky Cat'

#

damn it

#

\'Lucky Cat\'

#

or

#

'Lucky Cat'

#

it gives errors for both

hushed cradle
#

is it just \n

tepid crow
#

yeah

frosty dock
tepid crow
#

but an enter in a multi-line string should also work

frosty dock
#
'''first line
second line'''
hushed cradle
#

ah ik why it was giving me problems

#

its cos i had the card.lua dump open

#

so it wasnt changing

#

or smth

#

idk how that works

frosty dock
#

new util method SMODS.create_card just dropped

#

examples

hallow forge
#

can we still use the normal create_card?

frosty dock
#

sure, if you like to type out nil, nil, nil, nil

hallow forge
#

just asking to know if i need to go back and change all my code

edgy reef
#

It should just be an easier version to use.

wintry solar
#

you can remove the ( ) from functions?

frosty dock
frosty dock
hallow forge
#

i'll wait a bit before changing it, just to avoid false reports of people without updated Steamoddeds

wintry solar
#

oh wait does this stop the weird edition crash when it rolls editions twice and overwrites the first one with a blank edition?

frosty dock
#

it should, though I was never actually able to repro that crash

#

no_edition stops the forced edition roll on jokers, so there's no need for extra set_edition calls

#

also area is completely optional and determined from context

wintry solar
#

nice

#

I'm assuming the third example is creating a random tarot card that has the dum prefix in it's key?

frosty dock
#

it's used for the RNG seed

wintry solar
#

oh, that gets passed to the pseudoseed?

#

that makes sense

maiden phoenix
mellow sable
unkempt thicket
#

how do you remove blinds from pools?

hallow forge
#

ban them

unkempt thicket
#

I suppose that's a way, but I would like to "ban" them in certain decks instead of challenges

hallow forge
#

take owneership and change the in_pool maybe

hushed cradle
#

do you guys ever have problems where you try to do something

#

and it doesnt work

#

like itll say some value is nil

#

so ill try print the value

#

to see if its nil

#

and itll be like table 3981

#

or whatever

#

clearly not nil

#

and then the rest of the code runs fine

hallow forge
#

that seems a u r misinterpeting the error

hushed cradle
#

but only after printing

#

no i swear sometimes my code only works if im printing stuff

hallow forge
#

that shouldn't be feasible

hushed cradle
#

i tried iterating over G.shop_booster

#

and it was like nah thats nil

#

and then i printed it and it was a table

#

i dont get it

#

tried to iterate over it again and it worked

#

its like my code is trying to be difficult on purpose

#

its like yeah you got an error here

#

so i investigate

#

and its goes nah i was just messing

solemn coral
#

Having some difficulty with a lovely patch

--Any Joker effects
if effects.jokers then 
    local extras = {mult = false, hand_chips = false}
    if i == 1 then
        if effects.jokers.chip_mod then
            if effects.jokers.mult_mod then
                effects.jokers.mult_mod = effects.jokers.mult_mod + effects.jokers.chip_mod / 2
            else
                effects.jokers.mult_mod = effects.jokers.chip_mod / 2
            end
            effects.jokers.chip_mod = 0
        end
    end
    if effects.jokers.mult_mod then mult = mod_mult(mult + effects.jokers.mult_mod);extras.mult = true end
    if effects.jokers.chip_mod then hand_chips = mod_chips(hand_chips + effects.jokers.chip_mod);extras.hand_chips = true end
    if effects.jokers.Xmult_mod then mult = mod_mult(mult*effects.jokers.Xmult_mod);extras.mult = true  end
    update_hand_text({delay = 0}, {chips = extras.hand_chips and hand_chips, mult = extras.mult and mult})
    card_eval_status_text(_card, 'jokers', nil, percent, nil, effects.jokers)
    percent = percent+percent_delta
end
#

Here's what the patched code looks like - everything inside the i == 1 if statement is my patch, and everything else is the base game scoring code

#

What I'm trying to do is make it so that if your first joker would give chips, it instead gives half as much mult

#

Mechanically, this works. The value of effects.jokers.mult_mod is properly changed, and it has the desired effect.

#

However, when it displays the value in the text diamond under the card, it still uses the old chips value, even though effects.jokers.chips_mult should have been changed by that point (and I know it has been changed, since it calculated 0 chips properly)

#

What do I have to do to get it to display the right value there?

sly forge
#

I think setting effects.jokers.chip_mod = 0 made card_eval_status_text think your effect was a chips effect (it checks in order, it can't handle both chip_mod and mult_mod I think)

#

try setting it to nil

placid frigate
#

is there a place i can download the .lau library for visual studios?

limpid flint
#

Lua?

placid frigate
#

yes

limpid flint
placid frigate
#

oh true

#

thank you

zealous glen
narrow pollen
#

pfft

#

gotta love rounding errors xD

hushed cradle
#

why is all the code to do with ui so confusing lol

#

wtf are all these nodes

#

does anyone know where i put in a colour

#

cos apparently its trying to index colour but its nil

#
                emboss = 0.05,
                minh = 6,
                r = 0.1,
                minw = 10,
                align = "cm",
                padding = 0.2,
                colour = G.C..BLUE
            },```
#

is this not right?

maiden phoenix
#

Shouldn't it be G.C.BLUE?

hushed cradle
#

it was

#

it was actually black but i changed it blue to send it here

#

so that mistake isnt in the code

#

which ik is weird lol

#

got it to work

#

its all good

#

could anyone send a ss of the talisman settings menu thing?

#

nvm

#

all good

hushed cradle
#

anyone know if i can make it so

#

when the back func of a button is called

#

it goes to settings but with the chosen tab being a specific one

#

instead of just the game tab

hushed cradle
#

in lua can i do a, b = b, a?

frosty dock
#

yep

hushed cradle
#

awesome

hushed cradle
#

finally got my thing working

#

i can now reroll for specific legendaries and editions

#

using the seeds

#

instead of how i was doing it before w having it open each pack and check lol

#

so much quicker

night pagoda
#

Uhh, I'm trying to do info_queue for j_joker, but it doesn't want to show its variable

#

any workarounds?

frosty dock
night pagoda
#

also tried doing this

frosty dock
#

hm that's awkward

night pagoda
#

yeah it's really weird, everything else worked fine

frosty dock
#

vars for vanilla jokers get passed in from Card:generate_UIBox_ability_table() and don't get regenerated in generate_card_ui

languid mirage
frosty dock
#

that does rely on this lovely patch

night pagoda
#

oooh, thanks!

languid mirage
#

oh does it

#

xd

#

I thought it was vanilla

frosty dock
#

I should probably import that to steamodded anyways

languid mirage
#

or am I misremembering the function

#

Ig cryptid patch runs before steamodded

night pagoda
#

😭

frosty dock
#

the patch is now in steamodded

night pagoda
#

works now, thanks!

crisp coral
#

oh hey the bobm issue finally got fixed

frosty dock
#

yep

wintry solar
#

finally had time to make balloon sprites 🎉

hushed cradle
#

does anyone know if i can change the colour for the tickboxes?

#

ive managed to change the colour of the clicky left right selectors

#

and also the colour of tabs?

#

ah

#

source code is surprisingly helpful

hushed cradle
#

does anyone know how i change the colour of these?

#

thank you

frosty dock
#

i think these should be G.C.RED

hushed cradle
#

but how do i change them

#

i want to make them blue

#

but im not sure where the colour goes

#

theres multiple tabs and configs and i cant figure it out

#

managed to find the back button

frosty dock
#

you can just assign a new color table to G.C.RED

hushed cradle
#

id rather not

#

i have trance and i use it all the time

#

but i wanted it to actually be the colour

lofty igloo
#

yoo

#

we ballin

hushed cradle
#

damn

lofty igloo
#

Translated the background shader to GLSL and trying to incorporate it into a web app for a Balatro utility now

hushed cradle
#

thats cool as hell

wintry solar
#

I’m pretty sure you can just pass a colour into the create_tabs arguments

hushed cradle
#

i tried that and it didnt do anything

#

ill try again

zealous glen
shell timber
wintry solar
#

Huh, it seems that create tabs never passes the colour through to the buttons

#

Even though the first line of the function makes sure a colour is set

hushed cradle
#

i could probably patch it to accept colours

#

right?

crisp coral
#

there's probably a default color set

lofty igloo
tepid crow
zealous glen
crisp coral
#

no

#

because that is never needed in base game

lofty igloo
#

Damn, so I possibly wasted my afternoon translating it to GLSL

#

xD

wintry solar
hushed cradle
#

cool

#

thanks for having a look

#

i was actually stumped

lofty igloo
#

Oh well, good practice anyways

#

And was fun too

zealous glen
# crisp coral no

I agree, I might add the alert icon to Blinds with tooltips, if I figure out when is a good time to do that

lofty igloo
#

Not too good at fragment shaders

tepid crow
wintry solar
#

Take a closer look though, it’s hard to follow source code on mobile

shell timber
#

yeah looking at shaders is kind of interesting

crisp coral
#

shaders make me want to pull my hair off

wintry solar
#

Shaders is just maths

shell timber
#

100% justifiable

hushed cradle
#

it looks like it sets the outline colour, then the inside colour, then the tabs as the contents

zealous glen
hushed cradle
#

not sure how i squeeze the tab colour in

crisp coral
#

i made a shitty pixelation shader and i deem it good enough

zealous glen
#

Doing the math is the easy part

lofty igloo
wintry solar
hushed cradle
#

yeah i think i got it now

#

just gotta check

lofty igloo
#

Honestly, my frag shaders usually end up as "fuck around and find out" and result in a weird amalgamation of maths

hushed cradle
#
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "{n=G.UIT.R, config={align = "cm",padding = args.padding or 0.2, minw = args.minw or 7}, nodes="
position = "at"
payload = "{n=G.UIT.R, config={align = "cm",padding = args.padding or 0.2, minw = args.minw or 7, colour = args.tab_colour or G.C.RED}, nodes="
match_indent = true
overwrite = true```
#

this does not seem to work

#

it wants a new line apparently

#

i suck at these patches tho

wintry solar
#

That’s not what to do

hushed cradle
#

ah

#

that would be why

wintry solar
#

I can write the patch in around 30 mins for you

hushed cradle
#

i would really appreciate that

zealous glen
#

Okay, this works

#

It wor—wait a minute

crisp coral
#

reward is kinda redundant

zealous glen
#

I agree but I'm using the vanilla function that creates the UI

#

I can try to remove that row from it

#

why doesn't it show the Plant?

wintry solar
# hushed cradle i would really appreciate that
[[patches]]
[patches.pattern]
target = 'functions/UI_definitions.lua'
pattern = '''tab_buttons[#tab_buttons+1] = UIBox_button({id = 'tab_but_'..(v.label or ''), ref_table = v, button = 'change_tab', label = {v.label}, minh = 0.8*args.scale, minw = 2.5*args.scale, col = true, choice = true, scale = args.text_scale, chosen = v.chosen, func = v.func, focus_args = {type = 'none'}})'''
position = 'at'
payload = '''tab_buttons[#tab_buttons+1] = UIBox_button({id = 'tab_but_'..(v.label or ''), ref_table = v, button = 'change_tab', label = {v.label}, minh = 0.8*args.scale, minw = 2.5*args.scale, col = true, choice = true, scale = args.text_scale, chosen = v.chosen, func = v.func, colour = args.colour, focus_args = {type = 'none'}})'''
match_indent = true
#

then wherever you need to change the tabs colour, just add a colour = G.C.BLUE for example to the function

wintry solar
#

I don't know why this isn't in the game already

hushed cradle
#

maybe thunk just forgot, but because of the default colours he didnt realise

wintry solar
#

but this bit already exists

#

it just then isn't used anywhere else in the function

hushed cradle
#

oh what

#

no idea then

wintry solar
#

it's an easy patch though, so whatever

hushed cradle
#

easy patch for some lol

zealous glen
#

Remove the rewards

#

I have a theory for why the Plant doesn't show its icon, so I'm going to test it. If that fails, I'm gonna pretend I don't see it

#

Nope, theory failed

rough furnace
#

Curious

#

Is it discovered?

zealous glen
#

Yes

lofty igloo
hushed cradle
#

next is the lil arrow lol

zealous glen
wintry solar
#

I'll have a look for it

hushed cradle
#

i was mostly joking lol

#

that bit doesnt bother me

#

the tabs themselves were so obnoxious

zealous glen
#

These are the Blinds I have at the moment. I might not keep all of them, but let me know what you think

wintry solar
#
[[patches]]
[patches.pattern]
target = 'engine/ui.lua'
pattern = '''love.graphics.polygon("fill", get_chosen_triangle_from_rect(self.layered_parallax.x, self.layered_parallax.y, self.VT.w*G.TILESIZE, self.VT.h*G.TILESIZE, self.config.chosen == 'vert'))'''
position = 'before'
payload = '''love.graphics.setColor(self.config.colour)'''
match_indent = true
#

there you go

hushed cradle
#

wow you actually did it

#

thank you

zealous glen
#

Now with an alert icon!

wintry solar
#

Where are you setting tooltip blind 2?

zealous glen
wintry solar
#

Is it the exact same structure as blind 1?

zealous glen
#

Yes

wintry solar
#

Huh

#

And that node has an atlas and pos value?

zealous glen
#

I'm going to put this in a loop next

wintry solar
#

Oh

#

Those are different

#

You find the atlas from tooltip_blind but the ui thing is called tooltip_blind_1

#

Change this name

#

It overwrites the blind which is why it defaults to small blind

zealous glen
#

I'll verify in a minute

#

I'm changing something else but Idk where the error is because the file name isn't shown

#

Wait I got it

#

Thanks @wintry solar!

hushed cradle
#

im thinking about adding a way to search for specific jokers w my mod instead of just legendaries

#

do you think have a text box to put in names for them is possible

#

or just having like an option cycle for rarities

#

or similar

wintry solar
#

I think it was feder who added a search box

hushed cradle
#

its possible w just lovely right?

wintry solar
#

I guess so, yeah

hushed cradle
#

cool

#

so far ive got a way of checking the next card in a specific queue

#

so i guess having a text box could work

rough furnace
#

Yeah, the game does even have a text field you could probably reuse

#

Its used for profile names and seeds

hushed cradle
#

oh yeah you can put in a name for you profile

#

and seeds i completely forgot lol

#

right then thats next on the list

#

do you have any idea why canios name in the code is caino?

#

is that just a mistake or is there an actual reason for it

wintry solar
rough furnace
#

It was mispelt, and then fixed in the localization but not code

hushed cradle
#

ah ofc

#

good ol thunk

rough furnace
zealous glen
#

You can see how feder did it, maybe

#

I don't remember them releasing the search box mod though

hushed cradle
#

ive found create_text_input in the source code

#

so i think ill be alright

zealous glen
#

I'm thinking of going with this. I'm also considering changing the Chip background to fire, but that means I'd need to animate fire

hushed cradle
#

damn

#

looks cool as hell

zealous glen
#

Thank you!

hushed cradle
#

the refresh thing is nice

#

is it possible to get them elsewhere

#

or just from these boss blinds

zealous glen
#

The multiblind code is based on Myst's L Corp, the colorful Showdown Blind background is from Bunco, and the theme is a reference to Kill 6 Billion demons

zealous glen
hushed cradle
#

thats nice

#

a consumable of it would probably be broken tbf

rough furnace
#

Are you trying to search the collection, or just your own stuff?

hushed cradle
#

me?

rough furnace
#

Ywah

hushed cradle
#

im rerolling seeds for specific jokers

#

at its just legendaries

#

but i want to make it so you can look for any joker in first booster pack

#

any edition

rough furnace
#

Ah I see

hushed cradle
#

already got most of it done

rough furnace
#

I know someone wanted to be able to search the collection to make it easier to spawn jokers in DebugPlus

#

But I didn't feel like working with ui's

hushed cradle
#

uis are a pain

#

all the nodes and stuff confuse me

zealous glen
#

Tooltips I find a bit easier because you can imagine it in your head

#

The Blind tooltips were confusing to me though

hushed cradle
#

the other ui stuff just looks like a mess

#

although im sure its very well done

rough furnace
#

I just wrote my own ui system instead of trying to figure out thunk's

hushed cradle
#

but just doesnt make sense if you dont understand it

zealous glen
#

I'm sure it's not, it's thunk /j

hushed cradle
#

fair enough lol

teal estuary
#

im not sure if this should go in here or #⚙・modding-general , but im having a really hard time figuring out how to make my joker actually do anything: ELI5, whats the best/easiest way to do it? im using steamodded and did try something, but nothing came of it 😭

zealous glen
#

Define a calculate function

hushed cradle
#
    do stuff```
#

smth like that

#

its been a while since ive used steamodded lol

teal estuary
#

i tried botching something from the source code to see if it'd do anything, but nada

zealous glen
#

This is how I create a Joker that refreshes Hands, Discards, and the deck when sold

teal estuary
#

oh it has to be in the joker table? that makes sense

zealous glen
#

The _generate_main_end is a function I defined to change the tooltip

zealous glen
teal estuary
#

interesting

zealous glen
#

The important line is SMODS.Joker(data)

teal estuary
#

im currently using the jokerAPI example thing to actually get a joker in the game

#

i do have one question though, what is the function actually doing here? like, what does mult_mod do?

zealous glen
#

The function that evaluates play collects these returns and applies them to the hand being played

teal estuary
#

oooh okay

zealous glen
#

Also end_calculate_context isn't necessary anymore

#

I think you probably want joker_main

teal estuary
#

so SMODS.joker_main(context) then?

zealous glen
#

no

#

context.joker_main

teal estuary
#

ooh

#

okay, so then - whatever goes in there is what the joker will do? (sorry for being such a dumbass, i havent used lua much ever 😭 )

languid mirage
#

it isn't about lua tbh

hushed cradle
#

dont think is quite what i was going for

languid mirage
#

It's more of familiarity with the source code

teal estuary
#

fair enough

languid mirage
#

you should unzip balatro.exe

teal estuary
languid mirage
#

and look through calculate_joker function

#

to see what contexts apply and where

wintry solar
#

anyone know how to disable this question mark?

hushed cradle
#

not a clue

#

sorry

teal estuary
#

grabbed a random mod from the forum page, i think im starting to understand now

#

ty

frosty dock
wintry solar
#

I can't even find where it's created :/

hushed cradle
#

anyone got any idea how i align this?

#
                            prompt_text = "Enter Joker Name",
                            max_length = 21, -- delayed grat i think
                            text_scale = 0.4,
                            w = 2.5,
                            h = 0.4,
                            align = 'cm',
                            ref_table = Blueprint.SETTINGS.autoreroll,
                            ref_value = "searchForJoker",
                        }),```
#

this is wwhat my thing looks like

#

oops i pasted it twice

crisp coral
#

i just got home and it's midnight so might not be accurate

wintry solar
#

ah yes

#

spotted it

crisp coral
#

but i'm pretty sure i had to mess with it for abno discovery

#

ah gotcha

hushed cradle
#

anyone know all the align options?

#

or how i could find them

languid mirage
#

idk if that's helpful in that situation tho

crisp coral
#

they're in ui.lua

languid mirage
#

still didn't do any UI stuff

hushed cradle
#

thanks

crisp coral
#

but on top of my head [t/c/b][l/m/r]

zealous glen
#

New Showdown Boss Blind!

Tyrian Patriarch
Defeat two Bosses before playing this (1 refresh)
Let me know what you think!

hushed cradle
crisp coral
#

if it's like one line then top wouldn't change anything

#

in a tiny space

hushed cradle
#

lol

zealous glen
crisp coral
#

guh

zealous glen
#

So a priori no modded bosses (besides my own)

hallow forge
#

does The Needle give your hands back after beating it

zealous glen
#

Needle isn't whitelisted

#

Neither is Water

hallow forge
#

sad

frosty dock
# hushed cradle

how is that structured? is it a row containing 2 columns or why does it look like that

hallow forge
#

sad

zealous glen
#

Water could be feasible, but Needle just makes it too hard IMO

teal estuary
#

im cooking i swear (this looks correct to me but i must be fucking up somewhere)

hushed cradle
#

i can send the whole thing

#

well not the whole thing

#

but like the thing

hallow forge
zealous glen
hushed cradle
#

im creating tabs

#

and the tabs are tags and jokers

#

then in the jokers tab

#

theres just a table of nodes

#

which are all the ones you see in the image

#

but for some reason

#

the text input is there

frosty dock
#

yeah I'm asking how these nodes are organized, maybe they need to be restructured

crisp coral
hushed cradle
#

uh

frosty dock
#

before you do any other checks, that is

crisp coral
#

ok gn gonna start fixing my mods tomorrow

teal estuary
crisp coral
#

hopefully before the autumn chui mod stream

frosty dock
#

put your chained ors in parentheses

zealous glen
#

Here it might not matter too much

frosty dock
#

x and y or z will run z if x is false

#

x and (y or z) won't

teal estuary
wintry solar
#

🎉🎉

frosty dock
teal estuary
frosty dock
#

yeah so your mult isn't inside extra

#

this is technically fine since that specific name is also transfered to card.ability, so card.ability.mult would work, but using extra is recommended

#

some values in config are directly copied to card.ability

teal estuary
#

oooh, okay

frosty dock
#

but extra is always copied fully

teal estuary
#

that does explain a lot 😭

hushed cradle
teal estuary
#

so, should i use card.ability.mult here then? just wanna make sure

frosty dock
teal estuary
#

oh shit, it works

#

woohoo!!

frosty dock
hushed cradle
teal estuary
frosty dock
#

uh not quite

#

either you put mult in config directly, or you do

zealous glen
frosty dock
#

config = { extra = { mult = x } }

teal estuary
#

ooooh

#

gotcha

#

would it be better to do that for every config in the future?

frosty dock
#

yeah, otherwise you would have to make sure the value you're using actually gets copied to ability, only a fixed set of them do