#💻・modding-dev

1 messages · Page 204 of 1

wise jungle
#

no worries

clear epoch
#

but most of the time loc_vars should be enough

sullen fern
clear epoch
#

and loc_txt

#

it does indeed tell you what's inside each joker XD

wise jungle
#

Very fair lmao
I'm just trying to poke and prod (and probably know how can i restart balatro without closing and opening the game itself) as so far it still doesnt work

clear epoch
#

that along with message returns are also ways i debug while modding

normal crest
#

I recommend getting debugplus

#

then you can inspect anything during the game

#

using the console and eval

wise jungle
#

i do have it

normal crest
#

while ingame just open the console and do eval G.jokers.cards[1] for example

#

and everything in the joker will pop up

#

might be a bit overwhelming since there's a lot of UI stuff

wise jungle
#

im witnessing KNOWLEDGE

sullen fern
# sullen fern

i don’t really exactly get the point of me downloading vscode

#

like i know its better but

wise jungle
#

it annoyingly doesnt list all of the values though, just lists bunch of stuff and then goes +14 more values

minor magnet
#

managed to make this work

wintry solar
#

I’d recommend using eval dp.hovered.whateveryouneed and hovering over the card when you press it over specifying a card

normal crest
sullen fern
#

it’s probably not gonna tell me anything about why my game’s crashing when i try to use my joker

minor magnet
#

pasting it in case anyone needs to do anything similar in the futur

normal crest
#

that will show all the keys in the table

#

but only 1 layer deep

minor magnet
#
function Card:add_to_deck(from_debuff)

    local suit_jokers = {"j_greedy_joker", "j_lusty_joker", "j_wrathful_joker", "j_gluttenous_joker"}
    local have_jokers = {}
    for i = 1, #suit_jokers do
        if self.config.center.key == suit_jokers[i] then
            for m = 1, #suit_jokers do
                if m ~= i then
                    if next(SMODS.find_card(suit_jokers[m])) then have_jokers[m] = suit_jokers[i] else have_jokers = {} end
                end  
            end
        end
        if #have_jokers == 3 then
            check_for_unlock({ type = "colorful_jonk" })
        end
    end
hushed field
#

ay, instead of update, I can hook into cardarea:set_ranks, I reckon, and not do this update consistently 😄

wise jungle
sullen fern
normal crest
clear epoch
wise jungle
#

HELL YEAH
thank you so much y'all

#

as it turns out its supposed to be ability, not config

sullen fern
#

table index is nil.

normal crest
#

Why do you send such a little snippet

#

There is more stuff in the crash log

#

send all of it

sullen fern
clear epoch
wise jungle
#

yeah pretty much LMAO

#

there really should be a documentation about this, like even when looking at the balatro code itself it seems to suggest that its config

normal crest
# sullen fern

i'd say update your steamodded first, if that doesn't fix it, remove all other mods and try only with yours

clear epoch
normal crest
#

once a card is actually created, the config in the center is copied to the card's ability

neat plover
#

i wanna make a joker that adds hand size for every hand remaining, but reset it at when starting blind

#

i cant seem to figure this out

normal crest
sturdy compass
#

I think this idea is dead. I keep learning piece by piece how the get_straight function works and I lose morale each time lol

#

I'll keep the code around but that felt horrible

sullen fern
minor magnet
#

how do y'all get sentence highlighting for lovely patches on vscode?

sullen fern
#

it worked

sturdy compass
wintry solar
#

I wish toml files would style my payloads as lua too

#

That would be amazing

minor magnet
neat plover
#

someone tell me wtf is hapening, its drawing enough cards, but the max hand size is fucked up

tall tangle
#

Realistic hand size be like

neat plover
#

is this the right variable?

sullen fern
#

i may have an outdated version of cryptid

neat plover
sullen fern
#

or it may just be cryptid itself

#

becaus ehwen i have cryptid enabled the game crashes when i try to use fun is infinite

clear epoch
#

note that arg is not the amount you set the size to, but the amount you increment it with

#

see if this works

sullen fern
#

i got the new version of cryptid and it worked

wintry solar
hushed field
neat plover
#

changed it up, but now it removes hand size when starting a turn

#

variable names are broken because im completely lost

onyx sonnet
#

trying to figure out how to create a dagger-esque joker that returns dollars instead of mult, doesnt seem to be doing anything at the start of a blind

hushed field
sturdy compass
hushed field
#

oh yeah, never mind, i completely read over the return statement

#

I should go to bed, haha

onyx sonnet
#

but it doesnt seem to be destroying the "sliced" card still

keen coral
#

can the G.hand:change_size() function be used anywhere, such as within a joker's function?

onyx sonnet
#

it does gain the sell value tho

#

so thats a step forward

primal shoal
#

guys am i dumb ````
calculate = function(self, card, context)
-- Check if a Jack is being played to set the flag
local is_jack
if context.cardarea == G.play and context.individual then
if context.other_card:get_id() == 11 then
print("IS JACK")
return {
is_jack = true
}
else
return {
is_jack = false
}
end
end
-- Check if a face card is in hand and the last played card was a Jack
if context.cardarea == G.hand and context.individual then
if is_face(context.other_card) and is_jack then
return {
x_mult = self.extra.Xmult,
message = "X1.5",
card = card
}
end
end
end

onyx sonnet
#

ill try using dissolve instead of destroy

dreamy thunder
neat plover
#

nvm im onto something

hushed field
onyx sonnet
onyx sonnet
dreamy thunder
#

i didnt realise i was using dissolve as well 💀

brisk pond
#
function UTIL.createJoker(args) -- (key, edition)
  G.E_MANAGER:add_event(Event{
    func = function()
      local _card = create_card('Joker',
                                G.jokers,
                                nil,
                                nil,
                                nil,
                                nil,
                                args.key)
      _card:start_materialize()
      _card:add_to_deck()
      if args.edition then _card:set_edition(args.edition, args.edition.negative) end
      G.jokers:emplace(_card)
      return true
    end
  })
end

What do you think?

sullen fern
#

time to work on making a joker that creates consumables when a three of a kind is played

chrome widget
#

Okay yeah I tested it to be sure, I'm on the most recent version of SMODS, no mod is active except DebugPlus, and Verdant leaf just doesn't debuff anything by default

#

I guess I'll try to update DebugPlus and Lovely too to make sure

brisk pond
#

is it on the wiki?

frosty dock
#

yes

hushed field
frosty dock
#

it literally does what your function does but more

sullen fern
#

okay, there we go

#

looking through the runner 2 code

#

if context.before and next(context.poker_hands['Straight']) seems to be what the context should be

#

of course 'Straight' should be 'Three of a Kind'

#

of course, i also need to put in the code for creating the consumables

chrome widget
tall tangle
#

me beating Black stake with Face Card build

#

Fuckin mobile goddammit

brisk pond
#

when a Joker is not debuffed anymore, it calls Joker:add_to_deck(from_debuff = true)?

normal crest
#

yes

brisk pond
#

k

sullen fern
#

so lanpan needs to
create three consumables when a three of a kind is played
then self destruct

timber marsh
#

does anyone know how to fix this? my game wont load anymore

chrome widget
#

You're attempting to index an atlas just named "centers". Do you have files named centers in your jokers/1x and jokers/2x folders?

sullen fern
#

i mean
have the joker create a consumable

hot drift
#

Had a silly idea for a modded joker

  • Gives +mult equal to the total Jokers in your collection, but has a 1 in (total Jokers in collection) chance of appearing in the shop
clear epoch
#

it's pretty silly indeed, but in reality it might just be a stupid strong joker that is about as rare as an uncommon at most

topaz sun
#

ante 8

hushed field
hasty ravine
#

I'm not sure what's causing this issue

clear epoch
#

send langer screenshots please, more context needed

normal crest
hushed field
#

there's also no need to add 'true'

hasty ravine
#

Wait this is the wrong card

hushed field
sullen fern
#

looking through the perkeo example

hasty ravine
frosty dock
sullen fern
restive bronze
#

is there a way to change what the final ante is?

sullen fern
chrome widget
#

I think trunk/main is 1428c

minor magnet
#

posted first build of my mod on the threads :]

sullen fern
graceful magnet
#

is there a way to change a card's edition without using card:set_edition, because I think this would be considered mildly obnoxious

wintry solar
hasty ravine
chrome widget
#

Cool. I thought I pulled recent about an hour ago but it looks like there was an issue with my git so I was mistaken that I was posting for the most recent version

#

Okay now I'm on 1428, I'll test it again and delete the issue if needed, my mistake

clear epoch
chrome widget
#

Yep, fixed now. Works fine!!

#

Issue closed

clear epoch
#

buuuuut set_edition does have a silent argument that blocks the animation when set to true

#

so maybe you might just wanna do that instead

graceful magnet
#

oh yeah sweet, thanks

chrome widget
#

I have noticed one other minor bug with SMODS, which is that Mail-in Rebate, when copied by Blueprint or Brainstorm, plays all the money easing and sounds on Mail-In itself, rather than individually on it and each of the copy cards

#

Which I don't think is its vanilla behavior

#

that i confirm is still true as of 1428c

clear epoch
graceful magnet
hasty ravine
#

The card successfully made a random card negative, but nothing is happening after this. Did I forget to include something in the event?

dreamy thunder
#

return true

hasty ravine
#

Ah

#

Thank you

main mica
#

Is there a way to get a list of all Jokers (including injected ones) before init?

graceful magnet
#

is there a list of new contexts available somewhere?

main mica
sullen fern
#

how would i make a joker create 3 consumables

#

or just like
a consumable in general

#

not just 3 of them

normal crest
main mica
#

Works for me

graceful magnet
main mica
#

oh mb

#

lol i patched in a starting_shop myself

normal crest
#

to my knowledge the only new context is starting_shop

plush cove
#

me when the context is starting_shop!! 😳

graceful magnet
#

so if I wanted to make something add another card to the shop, that'd be my best bet probably?

tepid crow
main mica
sullen fern
#

then!! 😳

main mica
#

Im assuming starting_shop works like reroll_shop in the sense that it happens after pooling

#

so if you want to mess with the shop itself you're gonna have to patch

#

but if it's something like adding an additional card that yeah

graceful magnet
#

yeah

wind arch
hasty ravine
#

I see that SMODS has has_enhancement for enhancements. Does has_edition work for editions? I don't see anything for it on the SMODS wiki

chrome widget
#

What is the difference between G.play.cards and G.playing_cards?

normal crest
#

G.play is played cards in a round

#

G.playing_cards is the entire deck

chrome widget
#

okay, latter is entire deck, which is what I need

#

Does that include cards that have been taken out of the deck via being drawn, or just the current state of the deck

normal crest
normal crest
chrome widget
#

Cool, thanks!!

graceful magnet
#

huh that

was easy, but like obviously it's not quite working right

normal crest
#

No

#

edition is a table

hasty ravine
#

Oh, I see

normal crest
#

if you want to check that it's not negative you can do not G.jokers.cards[i].edition or not G.jokers.cards[i].edition.negative

#

you might want to store G.jokers.cards[i] in a local variable to avoid repeating it so many times

restive bronze
#

is there a way to change what the final ante is?

graceful magnet
normal crest
#

G.shop_jokers is the area you want

graceful magnet
#

sweet, and like set_edition is there some function to set a stick like Eternal/Perishable/Rental?

plush cove
#

I've got this code, which adds a Joker of a specified key to the shop. The only downside is that the items available in the shop are always huddled close together

#

But that's not an issue in my use case since the Jokers I use this for are meant to replace shop items, not supplement them

#

and this function is probably flawed anyway

graceful magnet
#

well now it's in the right spot but you can't buy it and you can move it around completely freely

plush cove
#

did you emplace it?

graceful magnet
#

right!

#

there we go

#

now the other part of it, need to figure out how to get the sticker on it

minor furnace
#

is there not an ease hand size?

plush cove
#

there's change_shop_size but that's permanent

minor furnace
sullen fern
#

what do i do in order to make a joker create a consumable

minor furnace
#

in the calculate function you can create a conditional for whatever context you want it to make the card in

sullen fern
#

i already have that

#

if context.before and next(context.poker_hands['Three of a Kind']) then

red flower
chrome widget
#

Ugh I'm making change to edition code that's probably not going to be good for compatibility in the long run. But fuck it, we ball. I will fix it later

minor furnace
red flower
#

SMODS.add_card is better

minor furnace
#

fair point

#

any time I've created cards so far I've just copied and modified existing code from the base game, but using the smods features is probably better

plush cove
#

question somewhat related to the above: currently I have this function, which replaces a Joker in the shop with a new one

what'd be the best way I can make a version of this that doesn't replace the Joker, but also accomodates for the incerased spacing so the items aren't all clustered together?

red flower
#

I have one but it replaces the joker too

#

it does keep the spacing

sullen fern
red flower
sullen fern
#

so it would be SMODS.create_card(t)

red flower
#

depends if you want to automatically add it to the area or not

plush cove
sullen fern
red flower
#

t should be a table

red flower
#

joy_create_card is a list of cards to create that my jokers write to

primal harbor
#

if i have a question about a glitch while launching is this where i need to be?

#

or i guess the game crashing isn’t much of a glitch lol

red flower
#

yes, does it show a crash screen

#

I'm assuming you're modding

sullen fern
primal harbor
red flower
graceful magnet
sullen fern
#

it's a random one

graceful magnet
red flower
#

so you might need to use pseudorandom_element to get the set name between tarot planet and spectral

#

or something fancier if you want modded consumables

graceful magnet
sullen fern
red flower
#

there should be an SMODS table with all the consumables registered

#

idk how its called tho

sullen fern
#

i don't want to have to account for every single modded set

normal crest
#

SMODS.ConsumableTypes for types

#

SMODS.Centers and check if center.consumeable for cards

sullen fern
#

how would i do that

red flower
#

take this with a grain of salt

local choices = {}
for k, _ in pairs(SMODS.ConsumableTypes) do
    table.insert(choices, k)
end
local set = pseudorandom_element(choices, pseudoseed("anything"))
SMODS.add_card({ set = set or 'Tarot' })
sullen fern
#

lets just see if this works

restive bronze
#

is there any way I could change what the final ante is?

normal crest
#

the choices should be empty to being with

#

Tarot, Planet and Spectral are in SMODS.ConsumableTypes

red flower
#

oh are the regular ones there too

#

edited

sullen fern
#

it worked

#

it only creates one at the moment

topaz sun
#

guys, how do I add a shader to a stake's sprite (like gold stake)?

#

I cant find the source code for the gold stake shader

primal harbor
#

this is what my mods folder looks like, is this correct?

sullen fern
topaz sun
primal harbor
#

undefined label

#

here’s the error again

red flower
#

you might want to check if you have room, unless you don't care

topaz sun
primal harbor
#

ok, thanks for the help, any other suggestions for mods to try out?

sullen fern
#

but first, making the card self destruct

topaz sun
#

And there are many more. These are just the ones I use all the time

sullen fern
#

right?

graceful magnet
#

yeah just go find the Example Jokers stuff in SMODS documentation and look for the example Gros Michel

graceful magnet
#

okay they're stable if there's only one of them

#

so I need to put safeguards in to make sure this card cannot be duped

sullen fern
#

this part of gros michel

graceful magnet
#

yep

sullen fern
normal crest
#

do if context.before and context.main_eval and ...

graceful magnet
#

is context.other_card valid inside of context.selling_card?

sullen fern
#

ayyy

#

it worked

plush cove
normal crest
normal crest
#

damn it

#

now i gotta retire

red flower
graceful magnet
#

in my defense when the main calculate function has card in it and the context uses card to not necessarily be the same thing, I may want to check to see what it's looking at

#

like a 2 would do so much for clarity

red flower
#

yeah I think some of it can be confusing

sullen fern
#

i wanna do something i've wanted to do for a bit

#

making a new consumable type

#

and a new seal

brisk pond
brisk pond
# brisk pond
function UTIL.showTextJoker(args)
    if not (args.card and args.type) then return end

    -- Setup eval according to args.type
    local evalTypes = {
        RankUp = { message = 'Rank UP!', colour = G.C.RED },
        Beyond = { message = 'Beyond!', colour = G.C.RED },
        Chips = { message = ((args.value or 0) < 0 and '-' or '+')..(args.value or 0), colour = G.C.CHIPS },
        Mult = { message = ((args.value or 0) < 0 and '-' or '+')..(args.value or 0)..' Mult', colour = G.C.MULT },
        JokerSlot = { message = '+'..(args.value or 1)..' Joker slot', colour = G.C.ORANGE },
        CopyCard = { message = 'Copied!', colour = G.C.ORANGE },
        Negative = { message = 'Negative!', colour = G.C.BLACK },
        Upgrade = { message = 'Upgrade!', colour = G.C.DARK_EDITION }
    }
    if not evalTypes[args.type] then return end

    local eval = {
        message = evalTypes[args.type].message,
        colour = evalTypes[args.type].colour,
        card = args.card,
        noJuice = args.noJuice,
        sound = args.sound or 'generic1'
    }

    -- Prepare the message
    local message = function(_eval)
        attention_text{
            text = _eval.message,
            scale = _eval.scale or 0.7,
            hold = 0.7,
            backdrop_colour = _eval.colour or G.C.BLACK,
            align = 'bm',
            major = _eval.card,
            offset = {x = 0, y = -0.05 * _eval.card.T.h}
        }
        play_sound(_eval.sound or 'generic1', 0.98 + 0.04 * math.random(), 1)
        if not _eval.noJuice then
            _eval.card:juice_up(0.6, 0.1)
            G.ROOM.jiggle = G.ROOM.jiggle + 0.7
        end
        return true
    end

    -- Show the message
    if args.istant then
        message(eval)
    else
        G.E_MANAGER(Event{
            func = function()
                return message(eval)
            end
        })
    end
end

for context

red flower
#

is if args.istant then supposed to be instant

brisk pond
#

i don't think that's the problem

#

the game crashes

graceful magnet
#

well you can't init something that doesn't exist

brisk pond
#

what am i initing?

sullen fern
#

ah... yes, time to make something.

graceful magnet
#

it is trying to initialize a function it does not have

red flower
#

that's not a function

graceful magnet
#

well, not like function function

red flower
#

it shouldn't crash, that's not the problem I just wanted to point it out

brisk pond
#

I changed to instant

#

still crashes

sullen fern
#

now i need to make the self destruct seal

brisk pond
red flower
#

just saw the problem
G.E_MANAGER:add_event(Event{
func = function()
return message(eval)
end
})

graceful magnet
#

that's... odd

I don't know what changed (nothing did) but for some reason, when the game isn't paused, Polychrome, Negative, and Eternal seem to just vanish from the randomizing

red flower
#

you're missing add_event

brisk pond
#

oh yeah

red flower
brisk pond
#

thanks

#

so i was initing the E_MANAGER

graceful magnet
#

(this is all handled in update, shoulda had that in screenshot)

red flower
#

does pseudoseed return a number?

#

i didnt know that

graceful magnet
#

between 0 and 1 yeah

red flower
#

I use pseudorandom

graceful magnet
#

but it was properly randomizing between all values earlier

#

so I stopped touching the update code

red flower
#

i don't see anything wrong with it so I might try pseudorandom

graceful magnet
#

okay I cobbled together dogshit code that fixes it, now back to the more pressing issue

#

this code works fine when there's one Conman

if there are multiple, the cards that get created become glitchy and that's an issue, what'd be a way to circumvent some of these issues

sullen fern
#

seal creation in progress...

plush cove
sullen fern
#

fuck

#

i suposse i should replace local selfdestruct = with SMODS.Seal

#

now, for the thing that the self destruct seal is known for. giving +5 mult and +150 chips

#

oh and also making cards go boom

slender mango
#

iterating through pairs(SMODS.PokerHands), why are some hands missing (pair, flush, straight)

slender mango
sullen fern
plush cove
red flower
slender mango
slender mango
sullen fern
rose dragon
#

(not vscode tho)

#

How can I change the X (in the base hand score preview area) to a different symbol? I've patched in this code which lets me access it

,mult_symbol = self.HUD:get_UIE_by_ID('mult_x_symbol')

(patched into G.hand_text_area)
but how do I visually change the text and the text colour?
-# I patched in the ID "mult_x_symbol" to the symbol.

sturdy compass
#

Holy shit built-in SMODS card bonuses are finally real Prayge

sullen fern
#

i need to make the card have extra mult and chips

#

and i also need them to be destroyed when scored

red flower
rose dragon
# red flower where did you patch it so I can check the structure?

here are the two main patches i used

[[patches]]
[patches.pattern]
target = 'functions/UI_definitions.lua'
pattern = '''
{n=G.UIT.T, config={text = "X", lang = G.LANGUAGES['en-us'], scale = scale*2, colour = G.C.UI_MULT, shadow = true}},
'''
position = "at"
payload = '''
{n=G.UIT.T, config={id = 'mult_x_symbol', text = G.GAME.mult_symbol or "X", lang = G.LANGUAGES['en-us'], scale = scale*2, colour = G.C[G.GAME.ui_mult_c or "UI_MULT"], shadow = true}},
'''
match_indent = true
times = 1

[[patches]]
[patches.pattern]
target = 'game.lua'
pattern = '''
blind_spacer = self.HUD:get_UIE_by_ID('blind_spacer')
'''
position = "after"
payload = '''
,mult_symbol = self.HUD:get_UIE_by_ID('mult_x_symbol')
'''
match_indent = true
times = 1
red flower
#

Instead why don't you patch it to a ref_table so you can change it dynamically?

#

Instead of text = "X" you do something like ref_table = G, ref_value = "x_symbol"
And then you change G.x_symbol

rose dragon
red flower
sullen fern
#

where are seals located in the balatro source code

old bane
plush cove
red flower
#

so true

old bane
#

text = "twitter"

sturdy compass
old bane
#

yippee (i would put the emoji here if i had nitro)

hasty ravine
#

I only want a condition to happen if all cards in the played hand are spades. Is there something wrong with my for loop?

#

No matter what I play, it always thinks theres no spades in my hand. I know this is whats happening because when I switch it to 'true' it works for all hands I play

red flower
#

G.hand is the held hand

hasty ravine
#

OH

#

OHHH

#

I see

old bane
#

G.play is the played hand

hasty ravine
#

Thank you

sullen fern
#

balatro source code is all over the place

red flower
#

you also have context.full_hand and context.scoring_hand

sullen fern
#

i don't even know where the red seal code is

old bane
red flower
old bane
#

oh repetition

sullen fern
old bane
#

i got the two mixed up

sullen fern
#

wait fuck

#

FUCK

red flower
#

you mean the enhancement?

rose dragon
sullen fern
#

fuuuck... thats not how red seal works

#

is there a seal that gives mult to a card

#

probably not

old bane
#

there's an enhancement

#

and an edition

sullen fern
#

hm

#

would that work for seals

old bane
#

seals have their own calculate function so i think that you can definitely make it so it gives mult

plush cove
hasty ravine
#

Oh also, for events is there a way to add like a buffer before the next card's effect triggers?

old bane
red flower
#

maybe G.UIT.T doesn't take func tho

#

and you might need to put it on the parent

sullen fern
old bane
sullen fern
#

oh...

#

if context.main_scoring and context.cardarea == G.play then

old bane
#

yes

sullen fern
#

so i may have to specify the chips and mult

#

but this is a start

old bane
#

yeah there should be like a config in seals where you can set that kind of stuff?

sullen fern
#

it’s probably the same as the jonkler

frosty dock
#

seal config gets put into card.ability.seal

sullen fern
#

do i replace card.ability.extra with card.ability.seal

plush cove
#

why is the background white

#

all I did was put this in my localization

#

how can I make the background not white

red flower
#
SMODS.current_mod.description_loc_vars = function()
    return { background_colour = G.C.CLEAR, text_colour = G.C.WHITE, scale = 1.2 }
end
red flower
#

maybe it should be the default tbh

random sleet
#

art's always by Gappie but nobody every asks how's by Gappie

#

yeah that was pretty weak i'll work on it

red flower
#

Gappie where art thou

old bane
#

how's "by" Gappie

red flower
#

add a card to the bottom like this

old bane
#

yu-gi-oh!!!!!

sullen fern
old bane
#

i think that should do it, might wanna test it tho

sullen fern
#

but the values are gonna be nil

#

if i don't specify them

old bane
#

you have to set them in the config

#

not a file but like an array in the seal

sullen fern
old bane
#

yes

#

config = {mult = x, chips = x}

chrome widget
#

are edition values storied in card.ability like with other centers?

sullen fern
#

i need to clear out the loc vars because i took the seal code from the pokermon silver seal

frosty dock
chrome widget
#

annoyed and confused, then

old bane
#

source code go brr

chrome widget
#

I'm basically attempting to have editions act as other editions (a legendary that makes all editions act as Holo, Foil, and Polychrome in addition to their regular effect (barring overlap ofc), and this should be enough to do it, but by the time calculation comes, all values except the edition's default ones are reset

if card.edition.holo or card.edition.foil or card.edition.polychrome or card.edition.negative then
    card.edition.holo = card.edition.type == 'holo' and true or multi_editions
    card.edition.mult = card.edition.holo and G.P_CENTERS.e_holo.config.extra or 0
    sendDebugMessage('mult: '..card.edition.mult)
        
    card.edition.foil =  card.edition.type == 'foil' and true or multi_editions
    card.edition.chips = card.edition.foil and G.P_CENTERS.e_foil.config.extra or 0
    sendDebugMessage('chips: '..card.edition.chips)
        
    card.edition.polychrome =  card.edition.type == 'polychrome' and true or multi_editions
    card.edition.x_mult = card.edition.polychrome and G.P_CENTERS.e_polychrome.config.extra or 1
    sendDebugMessage('x_mult: '..card.edition.x_mult)
end
sullen fern
sturdy compass
#

Enhancements are the new suit Le

old bane
old bane
sullen fern
sturdy compass
#

I took the cryptid placeholder pill lmao

old bane
#

i love placeholders !

plush cove
sturdy compass
#

NAHHHHH

plush cove
#

fire all balatro artists, replace them with placeholders

sturdy compass
#

Five Golden Rings isn't his tho

old bane
#

"four calling birds"

sullen fern
#

the seal doesn't show up...?

old bane
#

you need a sprite for it

#

unless you already do

sullen fern
old bane
#

can you see it in the collection?

sullen fern
#

no

old bane
#

hm

#

are you sure you loaded in the mod properly

sullen fern
grim remnant
#

out of curiosity, since the docs aren't clear, how do we make some calculations (like for scaling or decaying variables depending on certain factors) not trigger with blueprint? just and context.no_blueprint on the if statement?

random sleet
#

and not context.blueprint

grim remnant
#

ah, that makes sense.

old bane
#

i've never seen that before

sullen fern
#

did i do the code wrong?

old bane
#

i don't think so

sullen fern
#
    name = "selfdestruct",
    key = "selfdestruct",
    loc_txt = {
        name = 'Self Destruct Seal',
        text = {
            "{C:red}Card is marked to explode!{}",
            "{C:mult}+#1# Mult{}, {C:chips}+#2# Chips{}.",
            "Card {C:red}self destructs{} after{C:attention}being scored{}."
        }
    },
    badge_colour = HEX("FF0368"),
    config = {mult = 5, chips = 150},
    loc_vars = function(self, info_queue)
        return { vars = {card.ability.seal.mult, card.ability.seal.chips} }
    end,
    atlas = "atlasseal",
    pos = { x = 1, y = 0 },
    calculate = function(self, card, context)
        if context.main_scoring and context.cardarea == G.play then
            return {
                mult = card.ability.seal.mult,
                chips = card.ability.seal.chips
              }
        end
    end
}
)```
red flower
#

i love changing things nobody is going to see

slender mango
#

how can i get the starting chips and mult of a specific hand

chrome widget
#

G.GAME.hands[hand].s_mult and G.GAME.hands[hand].s_chips

sullen fern
#

because at first glance there doesn’t seem to be anything

#

becuase i have NO IDEA why the seal isn’t appearing

#

and i don’t want to have to redo everything

old bane
#

hmm

sullen fern
#

i guess i gotta redo it

#

nvm

#

i figured out what was wrong

#

never fucking mind!

#

why does it not work

steady smelt
#

is there a way to put custom jokers in the middle of the joker list? just adding order = 120 to the joker definition doesn't work

sullen fern
sullen fern
#

the seal SHOULD appear so

plush cove
sullen fern
steady smelt
red flower
#

I don't think so, unless you play to hook the collection functions

sullen fern
#

i have no idea why it isn't showing up

steady smelt
#

i know you can reorder the suits

sullen fern
#

like it has no reason to just

#

not be there

#

I CREATED YOU

steady smelt
#

i did

table.insert(SMODS.Suit.obj_buffer, 1, table.remove(SMODS.Suit.obj_buffer, #SMODS.Suit.obj_buffer)) -- Sort suits
table.insert(SMODS.Suit.obj_buffer, 1, table.remove(SMODS.Suit.obj_buffer, 1))

to put my custom suit last, idk why it works though i pulled it from somewhere else

#

so idk how to apply that to jokers

sullen fern
red flower
#

oh then idk maybe there's something like that

red flower
sullen fern
red flower
#

if you put the debug message on the file does it print

sullen fern
red flower
#

does that mean it does or it doesn't

sullen fern
#

hold on

#

i forgot to save the main lua file

#

it just doesnt.

#

other is a folder that exists

#

and seals is inside of it

red flower
#

can you screenshot it

sullen fern
#

wait. why is it saving seals to the jokers folder.

#

vscode, you silly goose.

#

that's not where it goes!

#

you silly sausage, you had me running in circles!

#

and i can now say with complete honesty that hovering over a card with the seal crashes the game

red flower
#

you're missing card in loc_vars

sullen fern
#

same error but now its local

#

instead of global

red flower
#

never made a seal so i dunno

sullen fern
nova finch
#

Is it possible to make a card not score at all?

paper comet
#

Does anyone know what I need to put in to make it only trigger on glass cards? Currently it does it for every type of card

sullen fern
# sullen fern

why is the game crashing when hovering over a card with the seal

#

i thought i did everything right

nova finch
red flower
sullen fern
#

it has the correct sprite now at least

#

still crashes when i hover over a card with it though

nova finch
sullen fern
red flower
dusk night
#

Hey, I wanted to see if I could make a better keyboard control mod, and one thing I think would make it better is if it could stick little reminder overlays of the key for certain UI elements, the same way it works when you play with a controller (like putting a little "x" over the "play hand" button). If anyone already knows where/how in the code this is done, you could probably save me a lot of effort.

rapid stag
#

ok, so i have a joker that increases its xmult every time a wheel of fortune fails (the functionality is based off the one in cryptid) and for whatever reason, if it's being copied by a blueprint/brainstorm, each wheel fail will do the xmult increase an extra time for how many blueprints/brainstorms are copying it, even though i don't tell it to do so in the loc_vars function. all the loc_vars function does is return the joker's xmult vars? i don't understand what's going on here cirLost i don't want blueprint/brainstorm to make it increase multiple times. am i misunderstanding something about what blueprint/brainstorm does fundamentally?

lavish lake
#

Guys what's the image for the vertical joker overlay? I already found the base card in the game files but cant find the vertical joker overlay image

red flower
dusk night
#

fwiw, I think the code which creates the "View Deck" overlay when you hover over the deck in the round view is at cardarea.lua:390 or so, and looks like:

            self.children.view_deck = UIBox{
                definition = 
                    {n=G.UIT.ROOT, config = {align = 'cm', padding = 0.1, r =0.1, colour = G.C.CLEAR}, nodes={
                        {n=G.UIT.R, config={align = "cm", padding = 0.05, r =0.1, colour = adjust_alpha(G.C.BLACK, 0.5),func = 'set_button_pip', focus_args = {button = 'triggerright', orientation = 'bm', scale = 0.6}, button = 'deck_info'}, nodes={
                            {n=G.UIT.R, config={align = "cm", maxw = 2}, nodes={
                                {n=G.UIT.T, config={text = localize('k_view'), scale = 0.48, colour = G.C.WHITE, shadow = true}}
                            }},
                            {n=G.UIT.R, config={align = "cm", maxw = 2}, nodes={
                                {n=G.UIT.T, config={text = localize('k_deck'), scale = 0.38, colour = G.C.WHITE, shadow = true}}
                            }},
                        }},
                    }},
                config = { align = 'cm', offset = {x=0,y=0}, major = self.cards[1] or self, parent = self}

but it's not totally obvious how that works, so if anyone already knows how it works or has examples of it being messed with successfully in other mods, that'd be cool

paper comet
dusk night
#

the main thing i'm curious about how to put an overlay on top of specific objects

sullen fern
#

please help. i don't know what in my seal is crashing my game

sullen fern
#

wait.

dusk night
sullen fern
#

i see the issue.

red flower
sullen fern
#

nevermind.

rapid stag
red flower
#

context.blueprint_card

sullen fern
#

can someone who's actually made a seal help me

lavish lake
#

Can anyone tell me how to check for winning hand, the last card in that hand, and how to apply a seal to a card?

red flower
red flower
sullen fern
paper comet
red flower
#

what does it do exactly

sullen fern
#

it says something is wrong on line 18 but when i check line 18 i see that nothing is wrong

#

on the surface at least

#

if its saying that something went wrong on line 18 then

paper comet
# red flower what does it do exactly

so it basically goes through all the cards, if its glass it gives the x1.5 mult as it should. Then, when all the other jokers would do their effects it gives ANOTHER x1.5 which it shouldnt

nova finch
sullen fern
#

attempt to index local 'card'

#

[a nil value]

lavish lake
red flower
#

well there's a reason i didnt answer those

sullen fern
#

removing "card" from the loc vars makes it show global instead of local

#

where are the seals located in cryptid's files

red flower
#

ok, i see the reason

#

loc_vars doesnt have card

#

you need to use self.config

sullen fern
#

self.config?

red flower
#

just did a search on github

sullen fern
#

so would it be self.config.mult then

lavish lake
red flower
#

oh wow

sullen fern
#

i dont know why its saying error instead of my mod name

pure trellis
#

Has anyone made a guide on what to do to make a card in a mod?
Like the type of shit where someone takes a (probably simple) card from a mod and explains what each bit of the code for it does
Or is this more of a "figure it out by looking at other people's mods' code" type of thing

red flower
#

i think there are some youtube guides but I've never seen them

pure trellis
#

and I already checked #1209506514763522108's guides but the best I could find there are explanations on how to download mods themselves yknow?

#

ohhhhhhhh dang I didn't see that

#

swag, thanks mate

red flower
#

the main smods wiki also has most info

pure trellis
#

oh this is literally exactly what I was looking for lmao

sullen fern
#

please ignore the comment i made to vent out my frustrations about this seal

red flower
#

self.config.extra.mult

sullen fern
#

there we go

plush cove
sullen fern
plush cove
#

under "name", add
"display_name": "Thrills and Chills"

sullen fern
#

still. error

plush cove
#

did you restart the game after adding in "display_name"?

sullen fern
#

yeah?

#

it's there

#

in the json

plush cove
#
{
    "id": "thrillsnchills",
    "name": "Thrills and Chills",
    "display_name": "Thrills and Chills",
    "author": [
        "violetblooded"
    ],
    "description": "A mod that adds various doohickeys and whatchamacallits.",
    "prefix": "thrills",
    "main_file": "thrills.lua",
    "priority": 99999,
    "version": "0.0.0~PRERELEASE",
    "website_url": "https://magmmlcontest.com/wiki/index.php/Alabell",
    "badge_colour": "ff0368",
    "dependencies": [
        "Steamodded (>=1.0.0~ALPHA-1307d)"
    ]
}```
#

try this

glass arrow
#

anyone know why this might be happening?

red flower
plush cove
sullen fern
#

maybe something in the seal's code is fucking with it?

glass arrow
red flower
#

that's just a warning

#

oh wait no

glass arrow
sullen fern
red flower
# glass arrow

it needs to have a suit, even if the docs say otherwise?

#

I'm guessing it can't find the card's suit

red flower
#

you need G.hand.highlighted[1]

dusk night
#

Is there some easy way to reload mods without having to restart balatro?

glass arrow
rapid stag
#

so uh... what did i do cirLost how did i break negative? this should be 7/8

i imagine that debuff includes editions, i imagine something happened weird with it and it didn't undebuff properly. i've been using SMODS.debuff_card() to debuff and undebuff. is there something i need to do to make negative here work again or

red flower
dusk night
#

also if there's some kind of dev guide that answers this and all the other questions I'm going to have in the next few minutes, that'd be awesome

glass arrow
#

i kept trying other_card and it was like 'no' and i was confused. im pretty new to this

red flower
dusk night
sullen fern
#

the seal itself doesn't apply the chips and mult

red flower
#

with smods

red flower
sullen fern
#

it worked

#

now for the destroying part

#

which should be the same as destroying a joker

nova finch
nova finch
sullen fern
#

like this, right?

red flower
sullen fern
#

except that it wouldn't be g.jokers

nova finch
#

also i couldn't find any documentation or examples of the context

red flower
#

it's not documented

nova finch
red flower
#

context.individual doesn't occur at the same time as modify_scoring_hand

#

put that if outside

#

the elseif part i mean

nova finch
#

i tried that

#

and it didn

#

t

#

do anyhting

red flower
#

can you post how you did it

sullen fern
nova finch
red flower
#

no

#

put it outside context.individual

nova finch
#

oh wait

#

sorry

sullen fern
# sullen fern

i don't think this is how removing a playing card works

nova finch
#

i quickl;y chacnged it back

#

i had it outside

dusk night
#

is there a way to get an inspector running on the game's lua? i don't just want to write/bind a bunch of printf statements

sullen fern
#

i want it to be destroyed after scoring

#

and idk if g.card is a valid thing

red flower
nova finch
#

nothing

red flower
#

what version of steamodded do you have

nova finch
red flower
#

try updating

sullen fern
# sullen fern

can someome help me
the intent here is to have the card be destroyed after being scored

#

am i doing anything wrong?

rapid stag
red flower
sullen fern
red flower
#

what is main_main_scoring

sullen fern
#

...fuck

red flower
#

also main_scoring and after don't happen at the same time

sullen fern
#

so how am i gonna do it after scoring then

red flower
#

just after

sullen fern
#

entirely new problem just dropped. g.card probably isn't a valid thing

#

wait

#

no, that's not it

red flower
#

you dont need that line

#

card:remove already does that

#

(and G.card doesn't exist)

sullen fern
#

it does remove the cards but, um

rose dragon
#

why does this either:
multiply by default
not score at all
or, rarely, work as intented?

ease_to = G.GAME.chips + math.floor(
    (G.x_symbol == "X" and hand_chips * mult)
    or (G.x_symbol == "+" and hand_chips + mult)
    or (G.x_symbol == "-" and (math.abs(hand_chips - mult) + 3))
    or (G.x_symbol == "/" and (math.abs(hand_chips / mult) + 1))
    or (G.x_symbol == "^" and hand_chips^mult)
    or 0
),

(lovely patch, at, pattern: ease_to = G.GAME.chips + math.floor(hand_chips*mult),)

-# G.x_symbol is getting changed by the deck BEFORE scoring

(deck calculate code):

if context.before and not context.other_card then
            local reveals = {
                {symbol = "X", colour = G.C.UI_MULT},
                {symbol = "+", colour = G.C.UI_ADD},
                {symbol = "-", colour = G.C.UI_SUB},
                {symbol = "/", colour = G.C.UI_DIV},
                {symbol = "^", colour = G.C.UI_POW},
            }
            G.E_MANAGER:add_event(Event({
                func = (function()
                    local reveal = nil
                    while true do
                        reveal = reveals[math.clamp(math.floor(pseudorandom("curious")*#reveals), 1, #reveals)]
                        if reveal.colour ~= G.C.UI_MULT_ALT then
                            break
                        end
                    end
                    G.x_symbol = reveal.symbol
                    ease_colour(G.C.UI_MULT_ALT, reveal.colour, 0.05)
                    return true
                end)
            }))
        end
        if context.after and context.cardarea == G.play then
            G.E_MANAGER:add_event(Event({
                delay = 4,
                func = (function()
                    G.x_symbol = "?"
                    ease_colour(G.C.UI_MULT_ALT, G.C.UI_QUESTION)
                    return true
                end)
            }))
        end
red flower
sullen fern
#

it does remove the cards from the deck though

#

the cards get removed but the deck number doesn't change

#

52/46? that doesn't seem right

#

ethereal floating cards

sullen fern
#

hm

#

maybe it's something to do with context.after

#

because it removes them when they're scored

#

which is not what i want

#

i want them to be removed after scoring

#

context.final_scoring_step

#

maybe

#

that didn't help

red flower
sullen fern
red flower
#

what did you write

sullen fern
#

me?

red flower
#

yes

sullen fern
red flower
sullen fern
#

G.card:remove_card(card)

red flower
#

G.card doesn't exist

#

try card.area:remove_card(card)

sullen fern
#

WHY ARE YOU LIKE THIS

red flower
#

wait those are playing cards right

sullen fern
#

yeah

red flower
#

there's a context for that

#

probably something like

if context.destroying_card and context.destroying_card == card then
  return { remove = true }
end
#

but never made a seal so i dunno

nova finch
#

is there a way to check if a card is changed to a certain suit? i wanna make a joker that triggers when that happens

red flower
#

i dont think there is by default, you need to hook a function to check manually

red flower
#

idk then

sullen fern
#

it DOES remove the cards

#

it just doesn't update the deck number

#

and it does. that

red flower
#

how is the code looking now

sullen fern
red flower
#

remove the event 😠

sullen fern
#

now what

red flower
#

delete all of this

red flower
sullen fern
#

okay

#

it worked

#

holy shit

red flower
#

yay

#

im going to sleep then

sullen fern
#

now to impliment the first of many alabell cards

tall wharf
#

yay

sullen fern
#

does anyone have a consumable template

bold gyro
#

Hey y'all, I'm trying to create a joker that destroys all scoring stone cards, but currently it destroys all scored cards if there is a stone card. How do I fix this?

if context.destroying_card and not context.blueprint then
      for k, v in ipairs(context.scoring_hand) do
        print(v.config.center)
        if SMODS.has_enhancement(v, 'm_stone') then
          --if pseudorandom('stonemason'..G.SEED) < (G.GAME.probabilities.normal / card.ability.extra.odds) then
            return {
              remove = true
            }
          --end
        end
      end
    end```
tall wharf
#

oh my

sullen fern
red flower
tall wharf
#

you can also just loop thru hand and

#

check which card is stone

#

right

red flower
#

you don't need a loop, it's called on every scored card

tall wharf
#

I'll need to update my code to use the SMODS functions

#
calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then
            if context.other_card.ability.name == "Stone Card" then
                context.other_card.ability.aiko_about_to_be_destroyed = true
                for i = 1, card.ability.extra.chip_add_stack do
                    SMODS.calculate_effect({
                        chips = card.ability.extra.chip_add,
                        juice_card = context.other_card,
                    },card)
                end
                
            end
        end

        if context.destroy_card and context.cardarea == G.play and not context.blueprint and not context.destroy_card.ability.eternal then
            
            if context.destroy_card.ability.aiko_about_to_be_destroyed then
                return { remove = true }
            end
        end
    end,```
#

this is the worst way of doing it

red flower
sullen fern
tall wharf
sullen fern
#

i dont think i actually made the alabell consumable correctly

tall wharf
#

have you made ConsumableType yet

#

because you'll need that

sullen fern
#

yueah

#

i just didn't fully complete it

#

wait i forgot to put an equals after loc_txt

nova finch
#

I'm trying to get a count of how many enhanced diamond cards there are in the cards but this code keeps continuously adding up
Does anyone know why this happens? I'm still really new to this so any help would be appreciated

rose dragon
sullen fern
#

full thing

#

every time i try to check the consumables my game crashes

rapid stag
#

...really does not like me trying to print #G.jokers.cards huh

i just want to see how many jokers there are
nevermind, skill issue on my part cirDerp

sullen fern
nova finch
#

i just needed to reset the count at the beginning every time

sullen fern
#

the consumables thing doesn't even show up. lol

#

on the additions section of my mod

#

still don't know what's going on

#

this is correct, right?

tall wharf
#
SMODS.ConsumableType{
    atlas = "consumablesAlphabetPacks",
    key = "Alphabet",
    primary_colour = HEX("ffaf19"),
    secondary_colour = HEX("5cecff"),
    collection_rows = {6,6,6},
    shop_rate = 0,
    loc_txt = {
        collection = "Alphabet Cards",
        name = "Alphabet",

        undiscovered = { -- description for undiscovered cards in the collection
            name = 'Unknown Alphabet',
            text = { 'Find this card when', 'letters are enabled' },
        },
    },
}
#

this is from my mod

#
SMODS.Consumable{
    key = "Wild",
    set = "Alphabet",
    atlas = 'consumablesAlphabetPacks',
    pos = { x = 6, y = 1 } ,
    cost = 6,
    loc_txt = {
        name = "? for ????",
        text = { "Convert up to #2# selected card's","letter to {C:red}Wild (#1#){}" },
    },
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue+1] = {key = 'lettersWild', set = 'AikoyoriExtraBases'}
        return {
            vars = {
                string.upper(card.ability.extra.letter),
                card.ability.extra.max_selected,
            },
        }
    end,
    config = {extra = {letter = "#", max_selected = 1}},
    
    can_use = function(self, card)
        return #G.hand.highlighted <= card.ability.extra.max_selected and #G.hand.highlighted > 0
    end,
    use = function(self, card, area, copier)
        for i=1, #G.hand.highlighted do
            local percent = 1.15 - (i-0.999)/(#G.hand.highlighted-0.998)*0.3
            G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.15,func = function() G.hand.highlighted[i]:flip();play_sound('card1', percent);G.hand.highlighted[i]:juice_up(0.3, 0.3);return true end }))
        end
        
        delay(0.5)
        
        for i=1, #G.hand.highlighted do
            local percent = 0.85 + (i-0.999)/(#G.hand.highlighted-0.998)*0.3
            G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.15,func = function()
                G.hand.highlighted[i].ability.aikoyori_letters_stickers = card.ability.extra.letter
                G.hand.highlighted[i]:flip();play_sound('tarot2', percent, 0.6);G.hand.highlighted[i]:juice_up(0.3, 0.3);return true end }))
        end
    end,
    in_pool = function(self, args)
        return G.GAME.letters_enabled
    end,
}
sullen fern
#

a dead giveaway, this should say 7 instead of 6

#

or, has it always been 5?

#

no, it should be 7

#

no it's always been 5

tall wharf
#

sullen fern
#

so it does identify my consumable tyoe

#

with my mod disabled

tall wharf
#

why do you not click on it

sullen fern
#

because it crashes the game

tall wharf
#

huh

sullen fern
tall wharf
#

I'm pretty sure you didn't set the set property properly for your consumable cards

sullen fern
tall wharf
#

huh

sullen fern
#

so why does it crash

#

if it identifies the consumable type

tall wharf
#

try temporarily removing the consumables code

restive bronze
#

is there a way I could change what the final ante is?

tall wharf
#

there is a way

sullen fern
#

even when removing the consumable code, still crashes

tall wharf
#

now temporarily remove consumable type

sullen fern
#

i have a feeling that it's the consumable type that's at fault

restive bronze
sullen fern
#

still crashes

tall wharf
tall wharf
restive bronze
# tall wharf you

Do you know how to change the final ante or you know about a mod that does it?

tall wharf
#

this just means that the Alabell cards was probably good

tall wharf
sullen fern
#

consumable type is probably the one at fault here

#

but what happened here

tall wharf
#

if you did and it still crashes i think it's something else

sullen fern
#

yeah it still crashes

tall wharf
#

try loading the game with just your mod

restive bronze
#

ok so I found that "win_ante = 8" but how could I modify that when getting a joker or something

sullen fern
#

its still gonna crash

#

here's ALL of it

tall wharf
#

do you have any other mod that might crash the game

sullen fern
#

nope

#

all i have enabled is debug+ and my mod

tall wharf
#

ok

#

ah

#

you need to prefix your atlas

#

with your mod prefix

#

maybe

#

mod prefix in json file

sullen fern
#

the joker atlas is "atlasjoker" and i didnt have to use a prefix for it

#

so no.

sullen fern
tall wharf
#

ah I'm stupid

sullen fern
#

?

tall wharf
sullen fern
#

cryptid

tall wharf
#

yeah umm

sullen fern
#

what

#

because even without cryptid it still crashes when i click on the consumables section

tall wharf
#

I'm trying to check with my own code

tall wharf
sullen fern
#

doesn't help

#

i dont even know what the deal is

rapid stag
#

pseudorandom_element() is causing crashes for me? cirLost
nvm, i was calling it at a very stupid point in runtime cirDerp don't do that

sullen fern
#

i dont know man. i just dont

lavish lake
#
SMODS.Joker {
    key = "stamped_document",
    loc_txt = {
        name = "Stamped Document",
        text = {
            "Adds a {C:attention}Purple Seal{} to last card in {C:attention}winning hand{}"
        }
    },
    rarity = 1,
    atlas = "joker_atlas",
    pos = { x = 1, y = 0 },
    loc_vars = function (self, info_quene, card)
        info_quene[#info_quene+1] = G.P_SEALS.Purple
    end,
    calculate = function (self, card, context)
        if context.after then

        end
    end
}

How do I add the rest of the functionality? I really need some help

sullen fern
#

im just gonna

#

sleep

tall wharf
#

the code looks good to me

sullen fern
#

i have no idea what it means

#

or why it’s importsnt

tall wharf
lavish lake
#

last last ditch effort have you tried updating lovely and smods

tall wharf
#

oh yeah

#

uh

#

1422 is pretty recent

#

0.7.1 is the latest lovely version

lavish lake
tall wharf
#

ok

sullen fern
#

i doubt its a lovely or steamodded issue

#

if lotiera and zodiac cards can work then why not alabell

tall wharf
tall wharf
#

not sure how i would telegraph to the player

rapid stag
wintry solar
lavish lake
pliant perch
#

only have 1 more legendary joker left

rapid stag
tall wharf
#

😭

tall wharf
wintry solar
pliant perch
rapid stag
pliant perch
#

joe biden 😭

tall wharf
lavish lake
pliant perch
#

i will consider it but im not great at drawing real people

rapid stag
tall wharf
#

idk

wintry solar
rapid stag
wintry solar
lavish lake
pliant perch
#

also fun fact krusty was originally supposed to be homer in a disguse but they changed it

tall wharf
#

ah ok

#

i guess

#

uh

#

it

pliant perch
#

already jimbo

#

but dont worry

#

i have the perfect canidate

#

the weird background character from amazing world of gumball

#

once im done with this ill still have to work on finding like 140 more clown characters but its ok

#

i figure something out

#

and also i guess not everyone has to be a clown

sturdy compass
#

The metamorphosis trio!

lavish lake
#

Uhh.. nobody knows how to add seals to cards? Dang it..

shell belfry
#

What does juice_card_until mean

sturdy compass
#

It'll endlessly wiggle the card

shell belfry
#

thanks

rapid stag
#

what is happening?

#

i'm pretty sure there's only one place where the name of the stone card is pulled and that is from m_stone

#

so how... what

how is it working and not working

onyx sonnet
rapid stag
# onyx sonnet It could be that the English localization for the game in stone cards and tower ...

tower card seems to pull it from a specific variable - if you look at the english localisation, it has a #1# and #2#

also, that function should be changing the actual string that they're pulling from - and as evidenced by how SMODS.process_loc_text() changes marble joker... it is. but... it's also not.

this was also working as expected before the new steamodded beta, so there's also a likelihood that something in there is not acting right (this is on steamodded beta-0301b)

halcyon osprey
#

So, i wanna, make a joker that increases the amount of cards you can play (from 5 to 6) and i need to make a patch or something, i dont really know how to do that, at all

tall wharf
#

including me 😭

halcyon osprey
#

😭

#

idk how to do it lol

wintry arch
#

would this be an appropriate channel to post sprite art for custom decks?

halcyon osprey
#

i think that one miught be chat

tall wharf
#

Keep in mind that the game only account for poker hands with 5 cards

halcyon osprey
#

Oh yeah i dont want a 6 of a kind thing

#

I just want it to be a normal poker hand plus another card

tall wharf
#

you'll have to patch the game.

halcyon osprey
#

yeah

#

idk how too 😭 astra says that this one should be an easier one to do though

shell belfry
#

I’m new to modding and i cant figure out how to get this to work

tall wharf
#

are you using notepad to code

shell belfry
#

yeah

tall wharf
shell belfry
#

I’m trying to make it so that whenever a card is destroyed, it makes a King of the same suite.

sturdy compass
plush cove
tall wharf
#

vscode

#

but if you hate Microsoft you can use VSCodium

plush cove
#

certified microsoft hater

rose dragon
#

what even is the difference between vscodium and vscode?

plush cove
#

one is microsoft and one isn't

tall wharf
#

vscodium doesn't have Microsoft stuff

rose dragon
tall wharf
#

yes

rose dragon
#

what's the difference between codium and intelliijs lua support?

plush cove
#

codium's is better

rose dragon
#

what extensions should i use? are they any extensions made for balala/lovely?

shell belfry
#

Alright here

#

how can i fix this

tall wharf
#

and update deck card limit

sturdy compass
#

Or use SMODS.create_card instead

shell belfry
plush cove
sturdy compass
#

It’s a function that takes a table of values like ‘key’ or ‘set’ and goes through the motions of creating and adding the card to your deck for you

shell belfry
#

is it the same. like SMODS.create_card({'H'..'_'..'K'})

tall wharf
#

do i just delay?

rapid stag
#

question.

when i do
for X, Y in ipairs(G.jokers.cards) do
what is X?