#💻・modding-dev

1 messages · Page 206 of 1

clear epoch
#

if it doesn't work try again with context.after i suppose

wintry solar
#

if you want some sort of visual upgrade that'd change slightly

#

but this will destroy all scored cards with seals

tall wharf
#

oh sorry i am stupid it works now

clear epoch
#

these things definitely need to be documented lmao

clear epoch
wintry solar
#

says someone who clearly hasnt read the docs

clear epoch
#

it's just missing one thing

clear epoch
tall wharf
#

there is

onyx sonnet
clear epoch
#

there's destroy_card which is used for things like caino as far as i am aware

wintry solar
#

?????????

wintry solar
clear epoch
# wintry solar

in my defense, i thought you were referring to a different context XD

onyx sonnet
#

ty eremel

red flower
cerulean rose
#

reusable pointer

solid surge
#

how do i make a lucky card-like joker where it has two seperate chance systems? i havent done chance systems in a while

clear epoch
#

if pseudorandom("blahblahblah") < G.GAME.probabilities.normal/card.ability.extra.chance and you put it in whichever context you want

#

and you put another one with the other chance value

grim remnant
#

for whatever reason, this is overriding high-contrast cards... what are we not seeing here? giving the code for hearts as an example.

cyan dune
#

Add a hc_default = true line to each of your high contrast palettes

grim remnant
#

worked like a charm!

cyan dune
#

Excellent!

pliant perch
#

theyre done

humble girder
unkempt thicket
#

How do you check if a joker has a sticker?

humble girder
#

card.ability[sticker_key] eg. card.ability.eternal

unkempt thicket
#

Why is this doing nothing?

cerulean rose
#

card cost is complicated

red flower
#

it resets every time set_cost() is called

solid surge
#

im severely biting the big one with this code cuz smth seems to be missing

strong jacinth
#

Obviusly some rendering issue

red flower
solid surge
#

where would i put the calculate function

#

wait nvm

onyx sonnet
cerulean rose
solid surge
#

yea im just realizing that bit

#

also it works, its ability just kinda dont

tall wharf
#

very thankful for n' for giving me this power

rose dragon
tall wharf
strong jacinth
#

Doesn't register as a 6 of a kind

sturdy compass
#

To do a 6 of a kind it might be best to start by making a HandPart that returns get_X_same(6, hand)

raw geyser
#

I'm trying to draw a cardarea that is underneath the deck with 3 cards peeking out. How do?

unkempt thicket
#

How can make cards in shop free if they have a certain sticker?

strong jacinth
unkempt thicket
#

I tried that though

cerulean rose
#

ok i figured out what this issue is here
if you don't set should_apply = false it can appear at a 30% rate on all jokers created

onyx sonnet
#

is there a way to activate a joker's effect when it is bought

raw geyser
#

SMODS's add_to_deck

onyx sonnet
#

ty!

sturdy compass
#

That's its own function outside of calculate btw

cerulean rose
#

add_to_deck also happens when jokers are obtained through other means

onyx sonnet
#

Thats perfect

gleaming zealot
#

meow

humble girder
maiden river
#

finally added a keybind so I don't have to hold m balatrojoker

lethal mural
#

how would i make a joker that makes it so discarded cards go back into the deck

maiden river
#

oh I just did this

#

hold on I'll show the code

lethal mural
#

sweet

maiden river
#
Buff({
    key = "card_profaner",
    name = "Card Profaner",
    atlas = "othercards",
    pos = { x = 4, y = 4 },
    text = { "Draw the last 3 cards", "from the {C:attention}discard pile" },
    use = function(self, card, area, copier)
        for i = 1, 3 do
            draw_card(G.discard, G.hand, i * 100 / 3, nil, nil, nil, 0.07)
        end
    end,
    can_use = function(self, card)
        return #G.discard.cards > 0
    end,
})```
#

ignore all the other stuff

#

just look at use

lethal mural
#

actually is there a way to do this with played cards

#

like would i just replace G.discard

maiden river
#

the G.discard is where you're getting the cards from

maiden river
lethal mural
#

like after playing the cards they shuffle back into the deck

#

it was my take on Memory Card for the DNDG mod because DNDG Memory Card is literally just DNA like it has the literally exact same effect

maiden river
lethal mural
#

i c

humble girder
#

is it just me or this looks shinier than it should be

grim remnant
random sleet
#

dont ask why i know what that looks like

mystic river
maiden river
#

ok chatters time for an odd question
I have a custom context being used in conjunction with a custom card area
and I have another card using that custom context (which is just a regular consumable)
I want to use the card to say a message, but the message appears after all of the cards are put away
I'll attach a vid to explain what I mean

#
calculate = function(self, card, context)
    if context.weapon_hit then
            G.GAME.blind.chips = G.GAME.blind.chips - 100
            G.GAME.blind.chip_text = number_format(G.GAME.blind.chips)

            local chips_UI = G.hand_text_area.blind_chips
            G.FUNCS.blind_chip_UI_scale(G.hand_text_area.blind_chips)
            G.HUD_blind:recalculate()
            chips_UI:juice_up()

            play_sound("chips2")
            return { message = "hit!"}
        end
end
#

here's the caculate function too

#

I was thinking it may have something to do with the calculation order, but I'm not too sure
tbh I'm kinda clueless lmao

red flower
#

where's the context called

maiden river
#

oh yeah
lemme get that

#
eventify(
    function()
      SMODS.calculate_context({weapon_hit = true, other_card = context.other_card})
      sendDebugMessage("sent weapon hit context", "ContextCheck")
    end
)
return {
mult = chosen_mult,
card = card,
}
#

here's an excerpt

#

eventify is just a wrapper function I wrote
it just puts things into an event

red flower
#

what happens if you don't put it in an event

#

does it get called too early?

maiden river
#

yeah

#

it gets called before the cards are scored

#

wait actually no that was something else

#

it specifically got called before you would see if you actually got a hit

red flower
#

are you setting blocking or blockable in the event?

maiden river
#

nope

red flower
#

try putting blockable as false

maiden river
#

I'll give it a try

wintry solar
#

the event is 100% the reason why it goes at the end

red flower
#

would returning func in calculate also do what they want? I assume so but never used it

wintry solar
#

yes it should do

plush cove
#

question: are debuffs handled automatically by SMODS during calculation?

#

cuz official balatro code has things like this and I'm wondering if it's necessary to do in SMODS

maiden river
wintry solar
#

debuffed cards shouldn't hit any calculation functions

maiden river
red flower
#

what's the code now

maiden river
#
calculate = function(self, card, context)
        if context.weapon_hit then
            return {
                message = "hit!",
                message_card = card,
                func = function()
                    G.GAME.blind.chips = G.GAME.blind.chips - 100
                    G.GAME.blind.chip_text = number_format(G.GAME.blind.chips)

                    local chips_UI = G.hand_text_area.blind_chips
                    G.FUNCS.blind_chip_UI_scale(G.hand_text_area.blind_chips)
                    G.HUD_blind:recalculate()
                    chips_UI:juice_up()

                    play_sound("chips2")
                end,
            }
        end
    end
#

incredible indentation

red flower
#

I meant using func in the other calculate

#

to replace the event

maiden river
#

OH
I see

#

well, I got closer, at least

#

I got it all working right

red flower
#

yay

maiden river
#

I actually kept both funcs and that makes the timing perfect

#

thanks for all the help

#

side note: making the restart one button press is so nice

granite bane
#

is there a way to get the current hand size?

humble girder
#

G.hand.config.card_limit

#

note that this may be inflated due to negatives in hand, dunno if there's a way to get the base hand size

earnest oracle
#

is there a context in which it just specifies if a Joker is removed from the Joker slot?

rose dragon
#

where in the code does it decide when to do the flames?

granite bane
#

Is it possible to recreate the effect of the Serpent in a joker? has anyone done that before?

red flower
#

yes me

granite bane
#

Can you share the code for how that would work?

red flower
#

that patch is very specific to my joker of course but basically you want to put hand_space to the number you want to draw from deck

granite bane
#

where would I put this and how do I apply this

#

I haven't done a patch before i don't htink

#

and do you have the text in text form, it's harder to look at what's going on in an image

red flower
granite bane
#

Wait do I have to modify lovely?

#

Is there no way to do this in a self-contained mod folder?

#

or do patches apply to lovely from the mod folder

red flower
#

you need to put patches inside you mod's folder in a folder called lovely

granite bane
#

ah

#

ok

red flower
#

you can also have a single file named lovely.toml

unkempt thicket
#

how do you get the config of stickers from jokers?

grim remnant
granite bane
#

ngl I'm very confused about what this code means but I'll figure it out over time I guess

#

essentially I'm wanting to do a joker that, if certain conditions are met, will make it so no new cards are drawn.

red flower
#

you only need the hand_space part and find_card for your joker

#

the rest is for the specific effect of my card

#

similar to mine

#

just so you know I made it so it always draw 1 when the hand is empty because the game tries to draw the entire hand again if not

copper flame
#

Hi- not sure if this is the right place but I don't see a more fitting place to ask

I'm attempting to make a deck skin mod. I have the Custom Files set up, I have the .Lua file made (based off of the template by "VictinZero" ), but when I put it all in my mods folder it instead pulls up art from another mod I don't have installed (That being "Buddies of Scrubby Pack 2")

I don't know what's going on, does anyone know how I could fix this?

copper flame
#

For the 2x ones, yes

main mica
#

Is there a way to check if a challenge was beaten?

Hello future person, I did it using
G.PROFILES[G.SETTINGS.profile].challenge_progress.completed[('c_PREFIX_KEY')]

primal shoal
#

assertoin failed for some reason

SMODS.Sound{
    key = "BALATRO",
    path = "BALATRO.ogg",
    select_music_track = function() 
        return G.STAGE == G.STAGES.MAIN_MENU
    end
}
primal shoal
tepid crow
#

you can probably check how the vanilla game displays the 20/20 unlocked/completed bars

main mica
#

yee, thanks! ^^

lucid sun
#

hey, sorry to ping but did you get any success on this? im trying something similar and not having any luck

vale lake
#

this is a question I've had for a while but I was too afraid to ask, what does times mean in lovely patches?

red flower
#

iirc if the pattern appears more than once, instead of patching every instance you patch it times times

spark remnant
#

how can I get the localised name of the boss with the localize function?

cyan dune
#

Is there something similar to suit_conv for ranks?
Like, with the animation bundled in too?

cerulean rose
#

no

ivory coral
#

any reason why my function might be considered a nil value? I have a function defined in a separate lua file (which is loaded with SMODS.load_file) but when I try to call it in the main file it thinks the function is a nil value global
i have another function in that same file that does get called correctly but any other function i try to put in doesnt work, even if i try putting it in its own isolated file

spark remnant
ivory coral
cerulean rose
#

send the code!!

ivory coral
# cerulean rose send the code!!

SMODS.load_file('extraFuncs.lua')

    if context.thiscontext:is_suit('Spades', true) then return 'Spades' end
    if context.thiscontext:is_suit('Hearts', true) then return 'Hearts' end
    if context.thiscontext:is_suit('Clubs', true) then return 'Clubs' end
    if context.thiscontext:is_suit('Diamonds', true) then return 'Diamonds' end
end```
the code doesnt actually work for completely unrelated reasons but at least it does get called
tldr when i put this code in my main file it calls just fine
but when i load it in another file the game has never seen it before in its life
funny thing is theres another function in `extraFuncs.lua` that does get loaded fine for some reason
plush cove
#

try putting an extra () after the end of the SMODS.load_file

#

SMODS.load_file('extraFuncs.lua')()

paper zealot
ivory coral
paper zealot
#

Loading as Lovely modules also has the benefit of making crashes and errors more easy to read, as the stack trace will show your module and the calling method, instead of simply a line number in the multi-thousands-long main.lua or game.lua

ivory coral
ivory coral
#

well "fine"

paper zealot
#

Where is 'extraFuncs.lua' located?

ivory coral
ivory coral
red flower
#

not to be annoying about reading the docs but

paper zealot
#

Is your mod on GitHub so that we can take a look at it?

ivory coral
paper zealot
#

No worries

ivory coral
paper zealot
red flower
ivory coral
ivory coral
red flower
#

it might be a syntax error

worthy anchor
#

so given the way that showman works, making a new joker that allows duplicates i'd have to patch the lua right? that's not something that i could do without a patch since currently "showman" is hardcoded in right now

paper zealot
ivory coral
#

AAH WAIT DANGIT I MISSPELLED THE FILE AS extraFucs

turbid maple
#

Fuc indeed

red flower
#

F

ivory coral
#

arghhh
idk how that function in it was even working if it technically didnt exist but whatever

paper zealot
#

It probably wasn't, you should try working that out next

ivory coral
#

ghosts man

ivory coral
#

it doesnt seem to function any differently...
either my code is haunted or i just dont know how it works

#

for the sake of my ego ill just say its haunted and pretend like i know lua

plush cove
ivory coral
#

alright anyway is there a way to get context in a function like this? or some alternative? im trying to run local mysuit = getSuit(other_card) in context.individual and context.cardarea == G.play but my function seems to think context is a nil value for it
the function code is above but ill put it here again

    if context.thiscontext:is_suit('Spades', true) then return 'Spades' end
    if context.thiscontext:is_suit('Hearts', true) then return 'Hearts' end
    if context.thiscontext:is_suit('Clubs', true) then return 'Clubs' end
    if context.thiscontext:is_suit('Diamonds', true) then return 'Diamonds' end
end```
paper zealot
ivory coral
#

yeah that works, cheers

paper zealot
ivory coral
paper zealot
paper zealot
random sleet
#

more relevant for the latter since i dont think anyone is making wild card variants

#

but the SMODS function for checking wild cards can be hooked to look for other qualities than just enhancement too, so just generally better to use it

sullen fern
#

why do planet and spectral card edits not load when using a custom texture pack

#

it does use the tarot sheet, why does it not work

runic pecan
#

How to copy effects of multiple jokers in one joker?

unkempt thicket
#

How do i change the position of a joker with code?

runic pecan
unkempt thicket
#

joker slot position

runic pecan
#

Sounds doable, but I’m not sure how to do so, either.

#

I’d try manipulating G.jokers.cards first.

chrome widget
#

uhh curiosity, can you use lovely patches on SMODS itself?

cerulean rose
#

yes

chrome widget
#

The patches don't specify a "repo", so I was kind of under the assumption it could only target files from the main program

cerulean rose
runic pecan
#

I'm still not confident if this could work as intended.

wild escarp
#

Looking to start making mods, mostly just looking at custom jokers. Anyone got any tips on where to start?

runic pecan
#

Based on your user name I hope it's Gravity Falls themed.

wild escarp
#

Haha, just experimenting for now. Want to know what I'm doing first.

chrome widget
#

Hmm yeah, patching SMODS and not overwriting it is inherently dependent on people's SMODS folder being named something specific in this case

#

since I can't control the mod installation of other mods, it's easier (even if vaguely disgusting feeling) to just copy whole smods functions and overwrite them lol

#

(at least I think)

runic pecan
edgy reef
#

So it should be completely irrelevant.

chrome widget
#

it works for some others, but the primary thing I need to do is to add basically a "quantum edition" calculation, which needs to be in specific places in calculate_context to match up with how editions are triggered in the vanilla game

#

I can do it for calculate_edition() though

chrome widget
#

Because all the file targets use the root of the vanilla game's file tree, at least in the examples I can find

#

I.E. functions/state_events.lua is actually balatroCode/functions/state_events.lua

edgy reef
#

Yea that's the default chunk name.

#

SMODS provides it's own that's relative to src

red flower
#

'=[SMODS _ "src/utils.lua"]' works no matter what the folder is called

#

for example

tall wharf
#

the coloured squares were rendering way behind in layers when i opened it from the collection

chrome widget
#

(do double vs singlequotes matter here?)

red flower
red flower
tall wharf
red flower
tall wharf
#

I'll experiment more when i get back

#

another simpler question

chrome widget
#

Cool, thanks 👍

tall wharf
#

is G.GAME only exclusively valid when you're actually playing

chrome widget
#

G.GAME is the table from game.lua that's loaded on startup afaik

edgy reef
#

Nah, G.GAME only loads after a run starts

chrome widget
#

Oh, I see. I thought some game values were used for startup. My mistake. Things like the splash screen are just in the global table

edgy reef
#

I do know that it's nil at certain times

tall wharf
#

ok so I'm trying to have my tooltip event not got at insane speed

runic pecan
red flower
#

i think so

#

oh instead of return? probably not why

#

instead of card_eval_status_text yes

runic pecan
#

So return is OK here?

turbid maple
#

Tried to see if I could get a card to be scored from hand and I really did not think its ramifications through

red flower
#

yeah, you use calculate_effect if you're trying to make a second message pop up or something

#

a card to be scored from hand like this?

runic pecan
turbid maple
#

Were you trying to reply to me

red flower
#

yes

turbid maple
#

Yeah

#

I have it implemented as an enhancement

#

problem is I'm trying to figure out how to logically consistent with other effects because the game kind of expects that scored cards are obviously played

red flower
#

yeah sounds complicated

turbid maple
#

Like this should logically be retriggered by Mime but I can't figure out a good way to do that

red flower
old bane
turbid maple
#

yeah I just shove all cards with this enhancements into scoring_hand so it basically gets scored like you played it outside your poker hand with Splash

cerulean rose
red flower
#

also yeah

sullen fern
#

why does malverk have to be a pain in the ass to use

red flower
#

maybe its a you problem

sullen fern
#

becuase having to figure out what’s going on with a friend’s malverk texture pack mod is

#

not fun

#

here's the crash log they sent me, see if you can tell what's wrong.

runic pecan
#

Maybe the real pain in the hind is the communications we loss along the way.

rose dragon
#

how can i get this working with talisman? (crashing when scoring, cannot compare number with table)

runic pecan
#

"table expected, got string", yet not telling you what string it got. Love coding in lua.

sullen fern
#

example code from the lua

runic pecan
tacit hazel
#

to_number I think is the big->small func

runic pecan
tacit hazel
# rose dragon how can i get this working with talisman? (crashing when scoring, cannot compare...

I think the issue here is the > 0 bit

lua will refuse to compare a bignum (which is a table) with a number, you need to manually convert them to bignums
so like.. wrap your entire (math.floor(blah)) thingy with to_big() (I don't think you need to wrap the 0 with to_big too? but it doesn't hurt)
You might also want to wrap hand_chips/mult with to_big() as well - I can't remember if that's necessary but if they're both small-nums, that'll cap out there

if you want to be compatible with both talisman and not-talisman, probably check if to_big exists beforehand :P

paper zealot
quasi bison
#

how does baseball cards effect work?

#

as in how does it xmult after a specific joker is played

turbid maple
#

try searching for its effect in card.lua

red flower
quasi bison
#

oh makes sense

#

thank you

wild escarp
#

So once I have some lua code, and I'm ready to start testing, how do I set up the actual files?

turbid maple
#

tried to reload the game while the lovely dump was open in my editor for the 10th time award

chrome widget
#

Usually when I boot the game back up it writes to the files as expected and they change while the editor is open

turbid maple
#

it complains about file being open in another process and crashes

chrome widget
#

hmm strange. Not sure why I don't have that issue

turbid maple
#

huh. strange

runic pecan
wild escarp
#

I got it figured out I think, had to make a .json.

#

Just having other issues now.

runic pecan
wild escarp
#

It's always the little things that trip me up, I often just have to go over it a couple times or have someone else point out my stupidity.

turbid maple
#

yeah okay im scrapping the scored from hand idea for now

tall wharf
#

wait what

turbid maple
#

huh

tall wharf
#

what did you scrap

turbid maple
#

"Scored when held in hand" enhancement

tall wharf
#

ah

#

is that not just variant of iron card

turbid maple
#

what is an iron card

tall wharf
#

steel

#

my bad

turbid maple
#

ah no the idea was that the card is actually scored

tall wharf
#

so as if it's in hand

#

right

tall wharf
#

yoinky sploinky

turbid maple
#

so a full hand of this would let Triboulet go wild

tall wharf
#

how do i pass loc_vars to center

runic pecan
#

Common or Uncommon?

iron iron
#

we are honey

tall wharf
#

we live we love we lie

turbid maple
#

we joker

keen coral
#

any ideas on why my super simple baron mimic isn't working properly? it should be returning 2.5x mult when a queen of a particular suit is held in hand. feels like it's missing some functionality code but i stole a lot of this code from card.lua so idk what it'd be missing

plush cove
#

remove the "card = self"

normal crest
tall wharf
#

it does not go in the center for some reason

normal crest
#

What is it?

tall wharf
#

i tried making my own center

keen coral
normal crest
keen coral
#

omg so sorry i replied to the wrong msg

#

i meant to reply to astrapboy just misclicked LOL

tall wharf
keen coral
turbid maple
#

you're comparing card:is_suit() (which should take an argument of the suit youre checking iirc) to the smitten_card thing you define to be a table

#

try contex.other_card:is_suit(<that thing>.smitten_card.suit)

keen coral
keen coral
tall wharf
#

i want this thing to adjust speed based on if the original card is in the area which play is happening

rose dragon
#

how can i stop this from erroring? (n is a talisman big number)

for i = 1, n do
    result = a ^ result
  end
keen coral
runic pecan
manic rune
#

another one of those weird retrigger shenanigans

#

it only seems to retrigger the first played card

#

while according to this, it should retrigger all played spades cards

tall wharf
#

hold on i think i might cook

manic rune
#

any effects that target cards will only retrigger for the first card

#

dunno why that happens 😭

manic rune
manic rune
#

like

#

saving the number of retriggers the joker has into a variable, then use context.repetitions

#

hm

grim remnant
storm kraken
wise jungle
# tall wharf HELP

me: "ooh, an ad saying that I won a million bucks? Don't mind me if I do!"
my PC, suffering from the consequences of my actions:

wise jungle
sullen fern
#

dead lion reference?

tall wharf
sturdy compass
#

How would I prevent this info card from appearing?

#

It's being pulled from the chrysalis info card but I'd rather it not do that

plush cove
#

you think that's bad

sturdy compass
#

This was my attempt to stop it but clearly it didn't work (this is in the chrysalis card code)

manic rune
#

what the fuck happened 💀

primal shoal
#

not what i expect to see

plush cove
sturdy compass
#

It is SO nice

#

I recommend

#

thank you random person in this chat for opening my eyes

primal shoal
#

any way this would actually work

apply = function(self)
        G.E_MANAGER:add_event(Event({
            func = function()
                for _, card in ipairs(G.playing_cards) do
                    if card:get_id() == '13' or card:get_id() == '11' then
                        assert(SMODS.change_base(card, nil, self.config.only_one_rank))
                    end
                end
                return true
            end
        }))
    end
sturdy compass
#

This is where it went down lmfao

#

(marie is not the random person I swear 😭)

sturdy compass
#

What are you trying to do

#

And what object type is it (back, card, etc)

primal shoal
#

back

runic pecan
sturdy compass
#

oh yuck

runic pecan
#

Namely this part:

sturdy compass
#

Actually it looks like you can define your own generate_ui function in a card

manic rune
#

you can

sturdy compass
#

Tho I'm not smart enough to do UI work lol

manic rune
#

it overrides your joker's description too

#

so you will have to manually do the work ❤️

runic pecan
#

Or make a dummy center in localization file, and then copy-paste the description you want.

manic rune
#

i decided to add a feature which auto adds some stuff in here to joker_main, so if i were to declare chips = 50 then the joker will return 50 chips in its joker_main calculation

#

❤️

sturdy compass
#

I took a peek inside generate_card_ui and uh

#

No thanks

random sleet
primal shoal
#

whats the G.___ for the whole deck

random sleet
#

i do this for my artist tooltips so i dont attempt to take credit for other peoples' cards

#

G.playing_cards for the full deck

#

or G.deck.cards for the current deck

sturdy compass
plush cove
random sleet
#

its a value applied to the card when it is a fake card made for info queuing

sturdy compass
#

Ah I see

tall wharf
#

:3

#

development resumes today

random sleet
#

development resumes yesterday

plush cove
random sleet
#

it's just a short walk of 400 days through the void to get there

tall wharf
#

today i will try to add score animation preview to card preview

#

:3

random sleet
plush cove
tall wharf
#

yiay

sturdy compass
tall wharf
#
AKYRS.DescriptionDummy{
    key = "yona_yona_ex",
    generate_ui = function(self, info_queue, cardd, desc_nodes, specific_vars, full_UI_table)
        local cards = {}
        local card = AKYRS.create_random_card("yona")
        card:set_base(G.P_CARDS["S_4"], true)
        table.insert(cards,card)
        local card = AKYRS.create_random_card("yona")
        card:set_base(G.P_CARDS["C_7"], true)
        table.insert(cards,card)
        SMODS.Joker.super.generate_ui(self, info_queue, cardd, desc_nodes, specific_vars, full_UI_table)
        AKYRS.card_area_preview(G.yonacards,desc_nodes,{
            override = true,
            cards = cards,
            w = 1.2,
            h = 0.6,
            ml = 0,
            scale = 0.5,
            func_delay = 0.5,
            func_list = {
                function (ca) if ca and ca.cards then ca.cards[1]:juice_up() end end,
                function (ca) if ca and ca.cards then ca.cards[1]:juice_up() end end,
                function (ca) if ca and ca.cards then ca.cards[2]:juice_up() end end,
                function (ca) if ca and ca.cards then ca.cards[2]:juice_up() end end,
            }
        })
    end,
}
#

does this code makes sense

random sleet
#

no

manic rune
#

:3

#

no

random sleet
#

:3

primal shoal
#
        G.E_MANAGER:add_event(Event({
            func = function()
                for _, card in ipairs(G.playing_cards) do
                    if card:get_id() == 13 or card:get_id()  == 11 then
                        print("test") -- never gets here
                        assert(SMODS.change_base(card, nil, self.rank))
                    end
                    return true
                end
            end
        }))
    end

what do i do for this deck

plush cove
strong jacinth
#

Hey! How would I add a custom tab to run info? And all of a special consumable type was there

sturdy compass
tall wharf
#

proper spacing introduced 😭

sturdy compass
kind olive
tall wharf
kind olive
#

Yoooo that's pretty cool

#

I love the artstyle too!

runic pecan
primal shoal
#

assert was failing

storm kraken
runic pecan
primal shoal
#

12, string

runic pecan
storm kraken
#

how do you check for the amount of money spent in the shop edegabudgetcuts

primal shoal
#

it worked thx

random sleet
#

you could try making a fake wheel of fortune localization to refer to

#

as much as it's a dumb solution, it is a solution

plush cove
#

thanks to Astra

random sleet
#

pong

plush cove
random sleet
#

oh man now wheel of wheel of fortune is gonna look less stupid if you have thac and mistigris together

#

mod compatibility asHeart

plush cove
#

We love accidental mod synergy

storm kraken
#

thumbs up emoji

onyx sonnet
#

Im trying to create a joker that retriggers all heart cards, and has a 1 in 4 chance to destroy each heart card
but i cant figure out what im doing wrong, any suggestions?

primal shoal
#

that might require events

#

check the example Cavendish

plush cove
onyx sonnet
#

this was happening before removing the S too

plush cove
#

if context.cardarea == G.play and context.individual and context.other_card:is_suit("Hearts")

onyx sonnet
#

the destruction works fine

plush cove
#

if context.repetition and context.other_card:is_suit("Hearts")

frosty dock
#

it still needs the area check

#

just replace individual with repetition

onyx sonnet
#

👍

runic pecan
#

Sometimes context doesn’t have other_card, so nested if might be needed.

onyx sonnet
#

it does here because of the fact that im checking in G.play, so a hand has been played

#

and the rep context happens before destroying_card

#

unless something happened in the scoring process at a time in which it shouldnt have, this should work fine

frosty dock
onyx sonnet
frosty dock
#

if context.cardarea == G.play and context.repetition and context.other_card:is_suit("Hearts") then doesn't work?

onyx sonnet
#

yes

frosty dock
#

i can assure you it does work

#

but

#

you're using a config value you never defined

onyx sonnet
#

oh my god

random sleet
#

aure thank you for voucher calc
-# back under my rock i go

frosty dock
#

👀

onyx sonnet
#

thank you aure

random sleet
#

idek if voucher calc was your idea at all but

#

hee hee hoo hoo

frosty dock
#

it was

random sleet
#

sick

#

yes those are just +4 Mult and X4 Mult btw

wise jungle
random sleet
primal shoal
# random sleet

"if context.other_card.area == G.play" should be
if context.other_card and context.cardarea == G.play

random sleet
#

this context doesn't have a cardarea

primal shoal
#

what is this in then?

random sleet
#

context.check_enhancement

#

oh wait

#

nvm

#

it gets run through SMODS.calculate_context

#

d'oh

#

but also that part isnt the issue

#

that's actually the part that works

#

the suit check screws up

#

like i can make this work on all played cards like that

primal shoal
#

whats the error log

random sleet
#

there isnt one

#

the game dies

wintry solar
#

Probably some infinite loop bullshit

#

Check enhancement is probably called inside is suit

random sleet
#

ohhhhhhhhhhh

#

checking the suit implies checking has_no/any_suit

#

got it

manic rune
wintry solar
#

I’d need to see the repetition code

random sleet
#

just set up this budget version

#

close enough thumbs

manic rune
#

i thought since its retriggering the joker itself, the effect should be retriggered too anyways

wintry solar
#

Well then the retrigger code

manic rune
#

...uh, its the exact same code as yesterday

#

wait

#

its not the correct joker but thats how it calls the retriggers too

#

this is the part of the code which doesnt work as intended: it should give +5 mult for every spade card scored

onyx sonnet
#

how do i make a joker shake as long as a condition is being met? like trading card or DNA
the function the vanilla game uses keeps crashing my game

manic rune
onyx sonnet
#

beyond self becoming card

#

Oops! The game crashed:
functions/common_events.lua:1277: attempt to call upvalue 'eval_func' (a nil value)

random sleet
#

please observe above

onyx sonnet
random sleet
#

the middle function should return false when you want the card to stop juicing

onyx sonnet
#

👍

primal shoal
#
        if context.cardarea == G.play and context.individual and context.other_card:get_id() == 12 then
            card.ability.extra.queen_count = card.ability.extra.queen_count + 1 
            print(card.ability.extra.queen_count)
        end
        if context.joker_main and card.ability.extra.queen_count >= 2 then
            print("Should work")
            return {
                Xchip_mod = card.ability.extra.Xchips
            }
        end
        if context.end_of_round then
            card.ability.extra.queen_count = 0
        end    
    end

not doing anything
queens detected but no change is made

random sleet
#

it's making the change invisibly

#

_mod versions of those are used to do invisible changes that will update on the next message

primal shoal
#

yeah so much so that the score is not changing

random sleet
#

use xchips

primal shoal
#

nope

manic rune
#

did you update your smods

primal shoal
#

yep

#

did that change xchip?

onyx sonnet
random sleet
#

it must be a function

#

the one i have set up just checks if the active variable is ever false, and then stops juicing

#

or if youd rather think of it this way,

#

it keeps checking if active, and if so it keeps juicing

onyx sonnet
#

ty!

random sleet
#

nonono

#

put the function in-line like i have it

#

and it only takes one variable; this will be the card

#

you're attempting to call the function (which isn't working because you've defined it as a local variable of this object, and you're attempting to reference it globally.)

#

a key part of this is that functions are just variables

#

so function(function(f) hee_hee_hoo_hoo() end) end is valid

#

assuming the outer function expects to receive a function

#

which, here, juice_card_until does, on the second argument

manic rune
#

should it be appearing in shop?

crisp coral
#

isn't in_pool supposed to be a function

manic rune
#

...huh

#

so, i need to do

in_pool = function()
  return false
end

?

random sleet
#

yep

manic rune
#

bruv, thanks

random sleet
#

i love making random mod compat

timid star
random sleet
#

show graveyard

onyx sonnet
#

what about V

random sleet
#

just what i called the variable

onyx sonnet
#

do i need to replace it with something?

random sleet
#

it's a card

#

but you can't call it card since that's already used in this scope

onyx sonnet
#

i see

random sleet
#

card2 or something would also work

#

you could also call it weird_thing_with_A_REALLY_STUPIDface and it would work

onyx sonnet
#

noted

#

@random sleet im not sure it works

random sleet
#

can i see what you have rn

onyx sonnet
#

it doesnt crash but it also doesnt do anything

random sleet
#

uhhhhh

#

are context.joker_main and context.end_of_round true at the same time

#

i dont think they are ?

onyx sonnet
#

jokers get evaluated as usual at the end of round

#

but without putting joker main, it evalues every possible element that could be evaluated at the end of round

#

so it does the ease ante for every card, consumable and joker present

random sleet
#

you probably want context.end_of_round and context.cardarea == G.jokers ?

onyx sonnet
#

ill try that

random sleet
#

this is what i have for a joker that triggers at the end of each boss blind

#

i think context.main_eval is the important part actually maybe

#

try that ><""

onyx sonnet
random sleet
#

ohhhh yeah maybe

onyx sonnet
#

which i should probably add lol in case someone uses a mod that retriggers jokers

random sleet
#

idk its been a while since i wrote that joker (like 3 weeks most)

onyx sonnet
#

ty for the help !

wintry solar
humble girder
random sleet
#

new cat joker just dropped

tall wharf
#

let's go

modern patio
#

peak shit

neat plover
#

`Oops! The game crashed:
main.lua:1370: bad argument #1 to 'load' (function expected, got nil)

Additional Context:
Balatro Version: 1.0.1n-FULL
Modded Version: 1.0.0~ALPHA-1414a-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.7.1
Platform: Windows

Stack Traceback

(3) global C function 'load'
(4) main chunk of file 'main.lua' at line 1370
(5) global C function 'require'
(6) LÖVE function at file 'boot.lua:323' (best guess)
Local variables:
c = table: 0x3d9ca5a8 {identity:false, version:11.5, accelerometerjoystick:true, modules:table: 0x3d9ca5f8 (more...)}
openedconsole = boolean: false
confok = boolean: true
conferr = nil
(7) global C function 'xpcall'
(8) LÖVE function at file 'boot.lua:362' (best guess)
Local variables:
result = boolean: true
(9) global C function 'xpcall'
(10) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
inerror = boolean: true
deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])`
this

#

happens when i try to use trance

strong jacinth
#

Maybe i've missunderstood the docs, buit this doesnt work. It doesn't register as a six of a kind.

manic rune
#

but i want the cards to all be triggered, not just the first one

wintry solar
#

This sets the retriggers to 0 after the first card

#

Right?

strong jacinth
#

Would this work?

SMODS.PokerHandPart {
    key = "crjk_SixOfaKind",
    func = function(hand)
        if #G.play.cards == 6 then
            if G.play.cards[1].rank == G.play.cards[2].rank and G.play.cards[1].rank == G.play.cards[3].rank and G.play.cards[1].rank == G.play.cards[4].rank and G.play.cards[1].rank == G.play.cards[5].rank and G.play.cards[1].rank == G.play.cards[6].rank then
                return { hand }
            else
                return {}
            end
        end
    end
}
#

And how would i intergrate it into my pokerhand?

runic pecan
strong jacinth
#

Oh, thanks

runic pecan
#

Instead of a long-'S and/or chain, I'd always prefer checking each boolean value in a for loop.
It just looks nicer to me.

strong jacinth
#

So thankies

limpid flint
#

There's too many buttons inside escape menu now

#

can somebody help me to make the menu look better?

#

I have two ideas in mind

  1. two column layout
  2. a grid layout that looks like collection menu
tepid crow
#

yayyyy, the thing we knew was coming finally happened

tepid crow
runic pecan
limpid flint
#

This is a concept image i quickly put together

limpid flint
limpid flint
tepid crow
#

why tf does Jimbo's Metrics have 3 buttons in there lol

crisp coral
#

Fold can just be removed ngl, Handy can be removed with SMODS installed, Jimbo's Metrics can use SMODS tabs instead

random sleet
tepid crow
#

yeah Handy can probably move to SMODS config, and Jimbo's Metrics def needs to change something

tall wharf
limpid flint
tepid crow
#

why tf does python's os.makedirs not respect shortcuts

limpid flint
#

but I still think the escape menu can be overhaulled

crisp coral
#

boom cleaned ui

wintry solar
#

that menu is cluttered but there are so many unnecessary buttons there

crisp coral
#

Jimbo's Metrics has SMODS metadata i don't see why it can't be moved to the mods tab

limpid flint
#

I'll just @tacit hazel

humble girder
tepid crow
#

13-Jan-25 02:29 <SYMLINKD> ManagerSettings [..\BalatroModded\ManagerSettings]

humble girder
#

that is again kind of windows's fault

#

windows symlinks are ass

tepid crow
#

doesn't mean python's os.makedir should start doing the most unintuitive shit

humble girder
#

try Path(your_path).mkdir(parents=True, exist_ok=True)

tepid crow
#

I think I'll just ask dim to use os.path.realpath

humble girder
#

no reason to ever not use pathlib

tepid crow
#

Dim already doesn't use it

#

you're probably right, but... 🤷‍♂️

humble girder
#

python standard lib is sometimes a mess so i wouldn't be surprised if all the path handling shit from os is mostly untouched

#

to retain compatibility with, well, everything

tepid crow
#

yeah that sounds about right lol

humble girder
primal robin
crisp coral
#

🎉

tall wharf
#

🎉

primal robin
#

Still waiting for single place for all lovely mods settings

tall wharf
#

❤️

rough basin
#

hey yall, im kinda new to this so excuse the horrifying code at the bottom which is almost definitely wrong, but im currently unable to even see the text of the joker i've implemented. the lua code is here:

    key = "wild_joker",
    loc_text = {
        name = "Wild Joker",
        text = {
            "{X:mult,C:white} X#1# {} Mult",
            "when Wild Card is played"
        }
    },
    config = { extra = {Xmult = 1.5} },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.Xmult} }
    end,
    rarity = 3,
    cost = 8,
    calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then
            if SMODS.has_any_suit(context.other_card) then
                return {
                    Xmult_mod = card.ability.extra.Xmult
                }
            end
        end
    end
}```
red flower
#

players don't look at the settings anyway

rough basin
#

oh my god

#

im going to just go end it all silently

#

thank you

runic pecan
limpid flint
#

Oof...that idea might not live long though

tall wharf
#

HOW DO I DRAWSTEP 😢

#

@frosty dock hello drawstep broke my letter and null card rendering what did it do

frosty dock
#

basically anything you were patching into Card.draw is now being overwritten

#

you can take ownership of draw steps you were patching, you can still patch them or you can add your own depending on what you need

vital warren
#

Heyo, really easy question Im sure, so sorry if dumb

tall wharf
#

😭

vital warren
#

But I got a skin for the tarot cards I made and I was wondering how to turn it actually...into a mod?

tall wharf
vital warren
#

I got it working on my game by replacing the resorce files, but I dont want others to have to do that

tall wharf
#

even if i add do DrawStep

#

and it will just not clash with each other

#

right

vital warren
#

Whaaats that?

tall wharf
vital warren
#

And that can help turn it *into( a mod?

tall wharf
#

pretty much you can turn that into a texture pack you can use with Malverk

tall wharf
vital warren
tall wharf
#

active texture pack not being darkened

vital warren
#

Its been like 6 years nooooooo

kind olive
#

hey I've been digging through chat a while but has anyone been able to replace the soul gem sprite successfully for The Soul card yet?

tall wharf
#

you mean

kind olive
#

just the soul itself yeah. I got the background sprite drawn out but I can't figure out in code how to replace the soul itself.

#

I'm doing a Subathon theme for my buddy and I want to replace the soul gem itself with a Bit

#

I've figured out 99% of everything I need for this project except how to actively replace the image drawn. Is it tied to the shaders or something I didn't consider looking into?

#

I did at least find the lines that point to the location of the sprite, but can't figure out how to replace where it is loading the assets specifically for the soul gem itself.

#

It doesn't look like it's actually pulling from Enhancers.png at the same stage it pulls assets from it for everything else in the image file.

#

Just replacing the atlas through SMODS isn't doing enough.

...
    SMODS.Atlas({
        key = "centers",
        path = "Enhancers.png",
        px = 71,
        py = 95
    }):register()
...
frosty dock
#

you need to replace the G.shared_soul sprite

tall wharf
#

@frosty dock also how do i prevent let's say front from rendering

manic rune
vital warren
tall wharf
#

i got halfway there but i will need to remove the frontal lobe of these cards to make them disappear

frosty dock
tall wharf
#

patching steamodded also doesn't work on mac just yet

frosty dock
#

oh right

tall wharf
#

i guess i am taking ownership

#

never done it before

rough basin
#
    key = "wild_joker",
    loc_txt = {
        name = "Wild Joker",
        text = {
            "{X:mult,C:white} X#1# {} Mult",
            "when Wild Card is scored"
        }
    },
    config = { extra = {Xmult = 1.5} },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.Xmult} }
    end,
    rarity = 1,
    cost = 8,
    calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then
            return {
                message = localize { type = 'variable', key = 'a_xmult', vars = { card.ability.extra.Xmult } },
                xmult = card.ability.extra.Xmult
            }
        end
    end
}
    

can anyone help me out with this? not exactly sure why there's no x-mult happening. sorry if this is obvious im quite new to modding balatro

humble girder
#

there is no context.individual for G.play+

#

remove the cardarea check altogether

frosty dock
#

wdym

humble girder
#

oh

#

stupid

#

you're looking for context.joker_main

#

wait no

#

asdf.

tall wharf
#

how do i actually take_ownership

humble girder
#

my brain is broken

frosty dock
#

context.individual and G.play is perfectly valid

humble girder
#

yeah i mixed up individual and joker_main

#

but then i read the description

#

i'm being crazy rn leave me alone

rough basin
#

oops nvm

rough basin
tall wharf
#

ill need my frontal lobe ready

humble girder
#

i actually have no idea what's wrong it it

#

i do know you won't need the message

rough basin
#

good to know

frosty dock
# tall wharf how do i actually take_ownership
local old = SMODS.DrawSteps.front.func -- if you want to reference the old function
SMODS.DrawStep:take_ownership('front', {
  func = function(self, layer)
    -- do whatever, call old(self, layer) to access the original
  end,
})
tall wharf
#

thanks

#

was writing something but i guess i don't need to make the whole thing anew

vital warren
# tall wharf

Okay So, Im dumb, where do this? It is apart of the Mod itself?

humble girder
#

other than the message getting doubled

tall wharf
vital warren
#

OKay, How do I do that-

vital warren
#

Im VERY new to this

humble girder
#

xmult definitely should work

tall wharf
red flower
#

i use xmult

rough basin
vital warren
tall wharf
#

ok works now

red flower
#

whats up with the second row

tall wharf
#

ok i take it back this is better than patching who knows what

tall wharf
humble girder
rough basin
#

well its not doing that and im super confused now lol

humble girder
#

same

tall wharf
humble girder
#

let me just slap this into a blank mod and see how it reacts

rough basin
#

im using the debug mode to spawn in the joker could that be affecting it somehow someway

humble girder
#

nope

#

i test my jokers that way all the time

#

it works for me

#

what version of steamodded are you on

rough basin
#

ok i just got it working with mult instead of xmult

humble girder
#

but xmult should work on latest main (return "1.0.0~BETA-0301f-STEAMODDED"˙)

rough basin
#

im not on latest main rn im on an older version i think

#

lemme just switch up rq

#

maybe some weird error with the specific version im using

humble girder
#

always develop against something recent at least

rough basin
#

good to know

tall wharf
#

wow i can send HTTP request to a backend now

#

thank you

crisp coral
#

holy shit SMODS.https

tall wharf
#

writing js backend for my balatro mod

crisp coral
#

what is a funny thing to do with this newfound information

tall wharf
#

a blind where every time someone defeats it it goes up by 1.01x

#

but if someone loses to it it decreases by 0.99x

rough basin
#

this is awesome

tall wharf
#

i added compatibility for draw step api

humble girder
#

never resume runs after updating smods

rough basin
#

damn

#

aight

tall wharf
#

i guess I'll keep bumping the minimum version of smods in my mod

rough basin
#

so basically always start from a clean slate

#

okay its working tysm

#

actual life saver

karmic arch
tall wharf
#

maybe

zealous glen
#

Daily wordle

karmic arch
#

Daily jokes from Jimbo?

zealous glen
#

aikoyori about to buy an Anguilla domain for them

manic rune
#

rq guys, whats the color for cash again?

zealous glen
#

money

zealous glen
manic rune
#

im fine, my parents dont talk to each other today at all, but so far nothing has happened

manic rune
#

thanks tho

zealous glen
#

I like it more if it’s not named any real world currency

#

just $

manic rune
#

yeah but in the game, the variable holding the amount of money you have in a run is literally G.GAME.dollars

#

😭

zealous glen
#

Not in the game

#

Just in the code

#

There’s other inconsistencies too

manic rune
#

my point still stands, why is it called dollars

#

while the color is money

#

💔

#

we dont talk about consumeables

zealous glen
#

Like xmult and x_mult

#

and other spellings

frosty dock
#

oh hey

manic rune
#

oh thats neat

zealous glen
manic rune
#

the second image looks better rite

frosty dock
#

i think so

crisp coral
frosty dock
#

i could but that's more effort

tall wharf
#

what's with Minecraft modders naming mods after elements

#

also as good as Create mod is i think the mod name kinda sucks to look up

#

used to suck

zealous glen
#

Balatro and Spectrals

light gazelle
#

mods still have plenty of fun names

zealous glen
turbid maple
#

I think it started with Sodium and everyone just followed suit

zealous glen
#

Cryptid, Aura, Trance, etc.

turbid maple
#

not the biggest fan of mods being named after ingame items

zealous glen
#

I am

#

But also I think MathIsFun is, and many of those mods have their hand on it

tepid crow
#

though that probably fucks with the sleeve select doesn't it 🤔

zealous glen
#

Do you reselect a sleeve on continue?

tepid crow
#

no but it's present

dim lynx
#

Well it shouldn’t be if you can’t reselect it

dim lynx
#

It should just be on the deck there

#

Cause it’s a sleeve

tepid crow
#

yeah and then you cant see the sleeve name

dim lynx
#

What if I use my mouse and hover over it

frosty dock
#

i mean i didn't specifically test with sleeves but i don't think i pushes the play button off screen?

zealous glen
#

“Maybe make it a pop up 😈” — The evil genie Descartes was talking about

frosty dock
#

that works just barely

dim lynx
dim lynx
#

Oh it does in that one that John smods posted

gaunt thistle
tacit hazel
# limpid flint This is a concept image i quickly put together

Yeah I probably should have expected that
Figured it'd probably be good enough if the debug stuff didn't show up when in _RELEASE_MODE, but I could see how it's still irritating heh

Pushed out an update to move the debug stuff to the smods config menu

frosty dock
gaunt thistle
#

understood have a nice day

zealous glen
#

Isn’t there an animal that can squirt blood from its eyes as a defense mechanism

frosty dock
manic rune
frosty dock
manic rune
#

nice, thanks

frosty dock
#

also it's lying, we're not a mod loader

zealous glen
zealous glen
frosty dock
#

but I've done enough UI for today

crisp coral
#

can the text be white at least

#

text dark looks ugly

frosty dock
#

i mean fine

manic rune
#

that seems racist myst

frosty dock
#

but i think the dark text is more annoying

vital warren
#

Okay, I got some more questions about this whole "Mod thing" cause the my first Mod thing has me confused

manic rune
#

you should make the UI flashes red and white every frame aure

#

that would make it even more annoying ❤️

vital warren
#

If anyone wants to answer that would be awesome

manic rune
#

(im def getting a seizure if thats the case)

gaunt thistle
molten estuary
#

Does anyone know if it’s possible to modify the .lua files to change the odds for things like Negatives to show up?

crisp coral
gaunt thistle
manic rune
#

white > dark, you said so yourself...

vital warren
#

Where do I actually write the code?? Can I just do anything that exports .lua files?

manic rune
#

im taking yall's cat gifs, thank you

vital warren
#

Do I need to download and compile Lua?

manic rune
molten estuary
vital warren
#

Oh, its that easy? Damn

frosty dock
vital warren
#

OKay, Ill use visual studio, its what Im most used to

molten estuary
#

Yeah a lot of programming languages are

tepid crow
gaunt thistle
#

yeah use vscode, not notepad

zealous glen
strong jacinth
gaunt thistle
#

dont be naughty

frosty dock
molten estuary
tall wharf
#

@gaunt thistle do you have any preliminary information on why the lovely patches that patches other mods don't work on macOS

gaunt thistle
#

visual studio

manic rune
#

aure, i used visual studio for coding 😭

tall wharf
#

😭

manic rune
#

(for the first week)

vital warren
#

Yeah, I know, looks like it has Lua built in

red flower
strong jacinth
manic rune
#

i didnt even know that until someone corrected me 😭

zealous glen
unkempt thicket
#

I still use vsc

manic rune
#

i had to manually indent my code, that was annoying

gaunt thistle
manic rune
sullen fern
#

what are the valid object types for malverk

gaunt thistle
#

anyone else having weird issues on Mac?

manic rune
#

play "Thick of It" in the background

#

🗣️

tall wharf
tepid crow
molten estuary
sullen fern
tall wharf
manic rune
#

apple arcade?

frosty dock
molten estuary
tall wharf
#

Apple Arcade version is basically moving which I'm not going to mod

tall wharf
molten estuary
tall wharf
#

just not lovely patching other mods

strong jacinth
# strong jacinth

Someone gave a tip of making that a poker hand part. I have done it, but idk how i include it.

crisp coral
gaunt thistle
#

other mods or the game itself?

tall wharf
#

the game patches works fine

#

just the =[SMODS _] thingy

frosty dock
#

why does this look ass

molten estuary
gaunt thistle
#

show me one of the patches that whiffs

gaunt thistle
zealous glen
gaunt thistle
#

try single quotes on the buffer name

tall wharf
zealous glen
#

I created the .luarc.json file but I feel like it’s not showing anything it wouldn’t show otherwise

tall wharf
#

sorry i had to accept a call for a bit

frosty dock
gaunt thistle
#

ya

vital warren
#

OKay, Question Again-

So, when making a Mod, Im done the whole ID part, for the code, is just done below it?

gaunt thistle
#

you have quotes, try single quotes

vital warren
#

A new tab, More likely

frosty dock
gaunt thistle
#

make it flash aure

zealous glen
zealous glen
gaunt thistle
#

and I mean the background red, not the text

#

red to green to red to green

tall wharf
#

:>

zealous glen
#

Green!?

frosty dock
#

oh hey i have an excuse to make SMODS.Gradient

zealous glen
#

Do you want my gradient code which was akai’s

frosty dock
#

no ty

zealous glen
vital warren
#

Im a dumbass, Im stuck-

vital warren
#

This guide feels more like a wiki and I dont know where to start-

strong jacinth
#

Yo, john, This dopesnt work

manic rune
#

yo, lunacy