#💻・modding-dev

1 messages · Page 570 of 1

wooden nexus
#

I FOUND IT

wheat jewel
#

Posted about this earlier but i need help figuring out how to make a joker give money if the volume of music is set to a specific level

#

if anyone has any pointers to mods that do something related to the sound settings, let me know

charred widget
#

I want to make a specific consumable effect a specific joker. How can i do that?

frosty rampart
#

need more details than that (primarily, what's the intended effect)

#

paperback does something very similar (the "Stick" jokers give a certain amount xmult for each Stick joker you currently own), you may want to reference that. iirc the functions that are related to that set are in the utilities folder -> misc_functions.lua

wild escarp
#

How could I make a boss and finisher be the only blinds to show up, effectively removing all other blinds from the pool?

frosty rampart
#

step 1 is to hook the get_new_boss() function, if you want more help you'll have to explain what your goal is exactly

lethal spindle
#

Guys, I'm still asking this question

#

But where do I place this sort of code

#

Does it go in lib or smth?

wheat jewel
frosty rampart
#

that wasn't directed at you

lethal spindle
#

Plz?

frosty rampart
# lethal spindle

it goes wherever code is loaded from in your mod, i.e. not in any other functions or object definitions

wild escarp
lethal spindle
#

So in something like Terminus.lua?

azure flicker
#

I want the probabilities to say 1 in 4, why does it say 4 in nil?

lethal spindle
wheat jewel
frosty rampart
frosty rampart
azure flicker
frosty rampart
frosty rampart
frosty rampart
wheat jewel
#

despite me doing a check for the volume level being equal to a value that changes every blind

frosty rampart
frosty rampart
wheat jewel
#

setting the level the music volume will be compared into a set number makes it work

#

so something about math.random doesn't make it work at all

#

if there is a solution to make it to where generating a random number another way will make it work i gotta find it

frosty rampart
#

tbh that doesn't make much sense; my hunch is maybe you just weren't checking the card's level properly? because you don't have a debug print for the card's level, but it is in the loc_vars. so i assume you don't have localization set up yet/it's set up improperly, because otherwise you'd see the value in the joker description and either match it properly or see that it's some weird decimal number or something

wheat jewel
#

lemme check on that thank you for letting me know

#

tried to debug print it but nothing gets returned in the debug menu

#

cuz the description inside the joker does change

#

but the comparison never procs for the joker

wheat jewel
winter flower
#

are you trying to change extra.level to be a random value or

wheat jewel
winter flower
#

pseudorandom?

#

i’m too tired to look at if it was pseudorandom_probability or pseudorandom

wheat jewel
winter flower
wheat jewel
#

get yo rest

#

i tried to convert pseudorandom to a number since it's a table

rocky osprey
#

how do you make mod icons appear i believe this is common ball knowledge but idk MaxVerstappen

#

thanks aikoyori'sshenanigans i understand it now

random flint
#

Hi i am trying to make a Joker that uses Current Money as a Xmult and failing, if anyone knows how im messin it up, grately appreaciated im dumb as bricks :D

random flint
#

ah

#

it still crashes

random flint
#

just realised i left out line numbers

daring fern
random flint
#

could you explain with more detail, i am as stated, dumb as bricks

daring fern
random flint
#

okay

#

so

#

how do i make the joker have their x_mult be based of current money

#

because if it crashes before i can get to the file

daring fern
random flint
#

oh wait now it works for some reason

#

what the hell

#

nevermind it's broken again

random flint
#

i'm guessing around line 91

daring fern
random flint
#

okay, so like a hydra the errors won't die fix one and more will take it's place however main problem is gone so thank you.

#

main thing now is

#

is there a way to make it not say xnil here

#

and i mispelt guarantee

#

oops

wheat jewel
#

I recently updated my steammoded after not doing so for a couple months, and now the mod i'm developing is not compatible since i was developing it on an older version of smods

#

i tried to fix my probability statements for some jokers but that doesn't seem to work

#

idk what to do to fix my mod at this point

#

the error doesn't say any lines of code from my mod that could be causing this error

#

This is the version i had for months before updating it to the recent release from 2 years ago

#

I don't know what was changed that broke my mod, but i think imma just specify in a release that it only runs on that version because idk if i have the energy to overhaul all of my code to work on the latest release

latent perch
wheat jewel
#

why?

latent perch
#

that's a Talisman error

#

try updating it

wheat jewel
#

lemme get on that

#

it's an older version of talisman too i think

latent perch
#

(In case you don't know already, Talisman makes it so you can't just write if x == 3 then ..., you'd need to write if to_big(x) == to_big(3) then ...) (I think)

latent perch
latent perch
wheat jewel
#

for dollar bonus calcs i think

latent perch
#

dunno the exact syntax, might work too

#

you should check the Talisman docs or somethin!

wheat jewel
#

i will

#

also should i change my probability statements since i never updated them after that one update that fixes probability displays

latent perch
#

oh

#

well in that case just check whatever Talisman is up to

wheat jewel
#

updating talisman is working fine

#

i went ahead to update my pseudorandom stuff too from that one update

#

but now oops all 6s multiplies the probabilities by 4 instead of 2

#

for some reason

daring fern
robust marsh
#

How would I make a card eternal without the eternal sticker?

daring fern
robust marsh
wheat jewel
wheat jewel
daring fern
wheat jewel
#

What's the variable that is used for ingame sound effect volume level?

robust marsh
#

How would I make it so you can't continue the run after a win, similarly to how losses do it by graying out the continue button

robust marsh
#

remove_save() seems to have worked

mystic river
#

that's one option

robust marsh
#

yup, works just fine thankfully

thorn basin
#

How can I make an enhancement retrigger the adjacent cards?

daring fern
thorn basin
daring fern
# thorn basin how so?
if context.repetition and (context.cardarea == G.play or context.cardarea == 'unscored') and SMODS.pseudorandom_probability(card, 'electro_card', 1, card.ability.extra.odds) then
    local retriggers = {}
    local my_pos
    for i, v in ipairs(context.full_hand) do
        if v == context.other_card then
            my_pos = i
        end
        if SMODS.has_enhancement(v, 'm_modprefix_key') then
            if i > 1 then
                retriggers[i-1] = (retriggers[i-1] or 0) + 1
            end
            if i < #context.full_hand then
                retriggers[i+1] = (retriggers[i+1] or 0) + 1
            end
        end
    end
    if retriggers[my_pos] then
        return {repetitions = retriggers[my_pos]}
    end
end
```?
thorn basin
thorn basin
daring fern
#

You don't want them to retrigger other cards with that enhancement?

thorn basin
umbral zodiac
#

how can i make a card have absolutely no tilting from ambient or hover

daring fern
umbral zodiac
#

oh ty

thorn basin
robust marsh
daring fern
robust marsh
#

ah

#

mb, thank you

thorn basin
wintry solar
thorn basin
daring fern
real crown
#

How can I make the fill-up Joker for a rarity pool something other than Jimbo?
Like if the Jokers run out of that pool, the Joker given by me will be the one always offered?

slim ferry
#

you would have to create an objecttype with all jokers of that rarity and then create them from that objecttype instead

slim ferry
#

oh get current pool handles defaults too? interesting

real crown
#

Thank you, I'll look into how to do that, unsure about hooks

#

Or is there a reference/source I could use?

slim ferry
real crown
#

Thank you!

thorn basin
slim ferry
#

replace it with self, would imagine

thorn basin
#

aight

daring fern
# thorn basin oh

You need to change it to G.P_CENTERS.m_modprefix_key.config.extra.odds

thorn basin
slim ferry
#

deck is the default for anything without a defined message_card

#

<@&1133519078540185692>

#

kill

#

thanks mods

thorn basin
daring fern
thorn basin
#

oh, I see

slim ferry
#

not really, right? you could just use similar logic to blueprint finding the card to the right

thorn basin
thorn basin
#

ah

robust marsh
#

how would I make it so you can pick up a specific joker from the shop, even if you don't have enough space for it

#

similarly to how negative does it

daring fern
robust marsh
#

ty

slim ferry
# slim ferry not really, right? you could just use similar logic to blueprint finding the car...

wouldnt something like this work

calculate = function(self, card, context)
  if context.repetition and context.cardarea == G.play then
    for i = 1, #G.play.cards do
      if G.play.cards[i] == card then my_pos = i end
    end
    if context.other_card == G.play.cards[my_pos-1] or context.other_card == G.play.cards[my_pos+1] and SMODS.pseudorandom_probability(card, "<seed>", 1, card.ability.extra.odds) then
      return { repetitions = 1 }
    end
  end
end
#

why is it so close together wtf

daring fern
#

If you could, red seal would retrigger every playing card.

random flint
#

Hi, Xnil is confusing, i've seen it in a bunch of different posts from different versions, my code is below specifically for the joker with the xnil problem, when it triggers the right value appears underneath it too

wintry solar
shell timber
#

actually what is going on

random flint
#

so

slim ferry
#

x_mult = <value>

#

in your config

shell timber
#

why is it 0+G.GAME.dollars?

random flint
#

the joker gives mult based on the amount of money

#

divided by 10

#

the 0 was there incase it needed a number to just hav ea number

#

it's not really needed

slim ferry
#

most xmult starts at 1 is i think what they mean

random flint
#

no it starts at 0

shell timber
#

it should probably be 1+

slim ferry
#

i said

#

most xmult

random flint
#

it's bad if you got no money

shell timber
#

okay. im assuming your xnil issue is the jokers description showing currently xnil?

slim ferry
#

well anyway

slim ferry
#

the loc_vars just arent set up correctly

random flint
#

visuals

random flint
slim ferry
#

you dont have a card.ability.extra.x_mult

#

you have a card.ability.extra[1] with the same value as the nonexistent global x_mult so its just nil

random flint
#

o

slim ferry
#

you would just want to do the same calculation for the xmult effect in the loc_vars

#

vars = { (G.GAME.dollars or 0)*0.1 }

random flint
#

:O

#

oh it works

#

thank you

#

i did not really understand how loc_vars worked

#

now i do

#

thanks

slim ferry
#

you probably also dont need the config since you arent using it anywhere

random flint
#

ta

robust marsh
# wintry solar What’s this for? There’s likely a cleaner way of doing this

Quest joker of sorts, it allows you to go on an "alt path" when you are holding it.

I'm using this for it right now and it seems to be working fine

local old_check_for_buy_space = G.FUNCS.check_for_buy_space
function G.FUNCS.check_for_buy_space(card)
    if
        card.config and card.config.center and card.config.center.key == "j_tdec_photoquestion"
    then
        return true
    end
    return old_check_for_buy_space(card)
end
slim ferry
#

couldnt you just always make it spawn as negative or smth

robust marsh
#

this feels cleaner

wintry solar
#

If it’s intended to not really take up a slot

robust marsh
wintry solar
#

Otherwise it only has this negative like property when you already have full slots

#

No you can remove all that

robust marsh
#

alright, thank you

#

yeah that worked perfectly, thank you a lot

dapper sun
#

going back to this,, may try to find a way to put the upgrade button on the left instead

robust marsh
#

how exactly could I make the screen continuously shake, if that is even possible

hidden mirage
#

whats the correlation between sound filenames and keys

dapper sun
#

there isn't rly one afaik, keys aren't tied to filenames

hidden mirage
round lion
#

is there any way to skip having to actually redeem the vouchers

dapper sun
#

i'm surprised the smods documentation doesn't have one tbh, since it has a whole page about text styling

distant junco
#

whats the hands equivalent to ease_discard?

daring fern
robust marsh
distant junco
#

thnaks

robust marsh
round lion
#

im trying to make a blind autoredeem a voucher for purposes of not being limited to blind hooks, and im pretty sure it will be too flow ruining if i leave the animation in

#

how do i skip it and spawn a voucher as redeemed

daring fern
hidden mirage
round lion
real crown
#

Why does the ... part keep triggering when I sell the Joker? It should only trigger when it's destroyed

        if not context.selling_self and not context.blueprint then
            card.ability.extra.destroyedstate = true
        else
            card.ability.extra.destroyedstate = false
        end
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end,

    remove_from_deck = function(self, card, from_debuff)
        if card.ability.extra.destroyedstate == true then
             ...
        end
    end```
slim ferry
#

because remove_from_deck happens after context.selling_self is calculated iirc

#

at least not at the same time

real crown
#

Can I put a context.selling_self inside remove_from_deck?

slim ferry
#

no, that would have the same issue as i just said

#

also context isnt passed into remove_from_deck anyway

#

so it would just crash from trying to index a nil value

real crown
#

Is there a context for card being destroyed and not sold?

slim ferry
#

and not set it back to true anywhere because thats pointless

real crown
#

Oh right, good point

still cedar
#

Why this error appear explain please

real crown
#

Thank you!

slim ferry
#

you dont need an end for every single line of the if statement

#

which is what you presumably did

still cedar
#

Thanks

hidden mirage
#
if context.individual and context.cardarea == G.play then
            if SMODS.pseudorandom_probability(card, 'jackpot', 1, card.ability.extra.odds) then
                table.insert(card.ability.extra.cards_to_enhance, _card)
                G.E_MANAGER:add_event(Event({
                    func = function()
                        card:juice_up() 
                        return true
                    end
                }))
            end
        end
        if context.after then
            for _, card in pairs(card.ability.extra.cards_to_enhance) do
                card:set_ability(pseudorandom_element(G.P_CENTER_POOLS.Enhanced, 'jackpot1'), nil, true)```
how come cards that will becoe stone in the after context get defaced (turn blank) beforeafter even happens? how can i prevent this
distant junco
#

does anyone know the shop rate of normal tarots?

distant junco
#

god damn it i thought it would be there but i didnt check

#

woe is me

distant junco
#

four what

#

its a decimal isnt it?

cursive gazelle
#

Shop_rate=4

distant junco
#

oh i thought it had to be between 0 and 1 okay

rocky osprey
#

it's not colors man

#

in fact you can set the rate to 100000 and it still works

round lion
#

will i have to paste in the unmodified parts of calculation if i take ownership of a blind.

distant junco
#

actually i will not answer since i dont know

real crown
#
                key = "j_head",
                stickers = card.stickers,
                force_stickers = true,
                edition = card.edition
            }```
Transferring the edition works, but for some reason it doesn't work with stickers, any idea?
cursive gazelle
#

You don’t have to

round lion
#

so it doesnt overwrite the calculation part if i add it in?

cursive gazelle
cursive gazelle
real crown
round lion
#

this is leaving me confused.

real crown
#

Just checked, neither of them do anything with sitckers

#

They just copy the card itself

cursive gazelle
cursive gazelle
real crown
#

So I copy the card to have the sticker and the edition, and then change the copied Joker to the Joker I want?

round lion
#

s mods documentation is leaving me conflicted rn with what your saying

cursive gazelle
#

And edition

real crown
#

Yes

#

Joker A spawns Joker B with same stickers and edition

cursive gazelle
#

Hmmmm

real crown
#

Although actually stickers might not be important, I'm fine with just having the edition, and that part works

cursive gazelle
#

Can you do print of the stickers of one joker with .stickers in the console

#

Tho if it didn’t exist it would say nil

real crown
#

When I tried it didn't crash, it just didn't copy the sticker

cursive gazelle
#

Print it

#

And see if it returns a table of stickers

hidden mirage
#

difference between returning Xmult_mod and xmult?

thorn basin
#

how can I make a function for a voucher that makes the booster packs from the shop cost 1$ less?

cursive gazelle
cursive gazelle
slim ferry
thorn basin
slim ferry
hidden mirage
slim ferry
#

because that just always changes the cost

cursive gazelle
#

When entering a shop

slim ferry
#

wdym

cursive gazelle
#

Nvm

#

I misunderstood

hidden mirage
#
{
    cardarea = G.jokers, -- G.hand, (G.deck and G.discard optionally enabled)
    buying_card = true,
    card = self -- the card being bought
}```"card = self -- the card being bought" is this meant to be used for juggler and other jokers like that or for a scaling joker for example
slim ferry
#

its just meant for jokers that trigger on buying another cards

#

for passive effects like juggler use add_to_deck since that triggers when the card is added in any way

cursive gazelle
#

And remove_from_deck to counter change

hidden mirage
slim ferry
#

well the context is calculated in the method for buying a card

#

and in that method, self is the card being purchased

hidden mirage
#

👍

slim ferry
#

also if it says its the card being bought it probably actually is the card being bought

thorn basin
slim ferry
#

G.GAME.used_vouchers is the vouchers that have been purchased in the run

slim ferry
#

so it would be G.GAME.used_vouchers.<voucher key>

thorn basin
#

sorry

#

I meant booster packs

slim ferry
#

in the hook you would check if self.ability.set == "Booster"

#

i think

cursive gazelle
slim ferry
#

horse

thorn basin
# slim ferry i think

but what would I put inside the check?
that's why I was asking for the G.GAME for boosters

slim ferry
#

wdym the G.GAME for boosters

thorn basin
#

inside the check how can I modify the cost of booster packs?

slim ferry
#

i mean idk, i imagine set cost returns a number so you could run the original function first and then try to subtract the output by 1 in the check

#

and if it doesnt then. idk

hidden mirage
#

how to get the key of a shop item, because rn im using card.key but it seems to be unique between two mercurys for instance

slim ferry
#

card.config.center.key

hidden mirage
#
local id = card.config.center.key
            if not Table_contains(card.ability.extra.cards, id) then
                card.ability.extra.cards[#card.ability.extra.cards+1] = id
                card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_gain
                return{
                    message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } }
                }
            end```it only scales once ::(
still cedar
#

How to merge these if into one? As I understand it, if this is not done, the second if will not work

slim ferry
#

alternatively you could replace the returns with SMODS.calculate_effect({<return table>}, card)

slim ferry
hidden mirage
slim ferry
#

its context.card, card is the joker itself

hidden mirage
#

how to get suit

slim ferry
#

.base.suit

round lion
#

whats the steamodded page for custom badges?

slim ferry
#

also for rank just use card:get_id()

hidden mirage
#

id = context.card:get_id()..context.card.base.suitonly triggers once for first playing card, every one after that nothing

slim ferry
#

yeah because its also checking for the key i assume

#

which is the same for all base playing cards

hidden mirage
#
            if card.is_playing_card then
                id = context.card:get_id()..context.card.base.suit
            else
                id = context.card.config.center.key
            end
            if not Table_contains(card.ability.extra.cards, id) then
                card.ability.extra.cards[#card.ability.extra.cards+1] = id
            end```shouldnt be
slim ferry
#

hm thats

#

yeah idk

hidden mirage
#

its intentional now i guess

slim ferry
#

does G.GAME.starting_deck_size get changed automatically or do i have to manually change it if i change the starting deck size?

round lion
#

when is it unnecessary to store a variable into config extra?

#

by that i mean put it in config = {} outside extra

slim ferry
#

generally stuff outside extra is only for values that are automatically used

#

from anything outside of extra only specific variable names get stored also

red flower
#

not true

#

everything gets saved

slim ferry
#

wha

#

i cant believe smods docs would lie to me wtf

red flower
still cedar
#

How to make any inscription appear when this is triggered (for example, reduce or downgrade)

violet void
#

Is anyone able to tell where to specify where achievement's names and descriptions go on loc file? Prefix a_ doesn't work either

smods wiki location doesn't work

wheat jewel
#

How can i make a joker check if another joker is eternal, tried using the context and smods method but it doesn't work

slim ferry
#

the key is wrong

#

achievements dont have a class prefix

violet void
#

I tried both with and without class prefix

slim ferry
#

hm

#

try ach_<modprefix>_<key>

violet void
#

that worked, thanks! 🫶🏽

slim ferry
#

context.check_eternal is for manipulating eternal properties in SMODS.is_eternal

wheat jewel
#

how can i check if another joker is eternal

slim ferry
#

SMODS.is_eternal

#

like you did there

wheat jewel
#

like this

slim ferry
#

also that trigger is supposed to be replaced with the card running the check

#

so card here

#

also other_card doesnt exist there

#

other_joker already is the card

wheat jewel
#

i did this and got a crash

still cedar
#

How to add an ability Xchips

slim ferry
#

you can just return xchips = <number>

#

just like xmult

slim ferry
wheat jewel
cursive gazelle
normal crest
still cedar
slim ferry
#

return

#

as in

#

put it in the return table

wheat jewel
cursive gazelle
still cedar
wheat jewel
#

this is the full thing

slim ferry
#

hold on

#

this is all the scoring returns

normal crest
cursive gazelle
wheat jewel
#

lemme try that

cursive gazelle
#

Shouldn’t you return card

slim ferry
still cedar
normal crest
slim ferry
cursive gazelle
still cedar
wheat jewel
cursive gazelle
#

What is reading

#

Does find_card work only for jokers ?

wheat jewel
normal crest
#

Wrong message to reply to tho

cursive gazelle
#

Does it not work for playing cards in hand ?

#

I guess i’ll just do a for loop

normal crest
#

no, by default it searches jokers, consumables and vouchers

round lion
#

do i need to add the mod prefix for keys in scripts within the same mod

slim ferry
#

wdym by that

red flower
#

hiii srockw

cursive gazelle
#

So yes

floral marsh
#

is there a function to force-play a specific hand after the main hand has been drawn
I maybe found it blind:press_play() or G.func and smth there?

wheat jewel
#

does anyone know what the variable for sound effects volume is called?

daring fern
floral marsh
prisma loom
#

I'm currently looking for coders and wonder what is the better way to do it

rotund sable
#

Good start is recruiting yourself

prisma loom
#

wdym?

slim ferry
#

people generally arent going to join you in anything if you havent made anything at all

prisma loom
#

Mod is already out actually but only half of the content

#

I just need some of that coding magic to finish the rest

slim ferry
prisma loom
#

if that's the right place to recruit folks

slim ferry
#

idk youll probably find people

#

but i meant like just a post for your mod in general so people will even find it in the first place

rotund sable
#

Generally if you have any problems you can ask here

slim ferry
#

also that yeaj

#

tbh i feel like ive seen that dice voucher before

prisma loom
#

not my thing at all

#

especially when there's absolutely no adequate tutorial

#

for coding toddlers

#

it always like:
step 1 - here's how to make resprite mod
step 2 - here's how to make a simple mult joker
step 3 - ... there's no step 3, everything complex go figure yourself

modern kindle
#

Well there are definitely resources to help
Vanilla remade is a huge help for beginners and non beginners
It has a great wiki and shows you how to do a good few things by example

rotund sable
#

I see tutorial hell mindset

#

But maybe that's just me

modern kindle
#

Also greetings farmer

rotund sable
quick scarab
obtuse silo
#

this isn't removing the face cards from the deck in the challenge

rotund sable
prisma loom
# rotund sable I see tutorial hell mindset

Yes and for good reason. I dont feel great when I have to spend hours to squeeze small drops of crucial info from some random ass resource just to make an X little thing for my mod

#

it's pure insanity

modern kindle
obtuse silo
#

vanillaRemade says otherwise

modern kindle
#

Oh ic

modern kindle
rotund sable
#

Oh damn I'm late again

#

Mobile sucks

#

I'm also stupid

#

Because deck != Challenge

obtuse silo
#

i'm using the wiki
i just used VanillaRemade to find out how i need to format it

red flower
#

ill fix it

modern kindle
#

Hi N

red flower
#

hewwo

obtuse silo
#

ah
yeah i was kind of weirded out that you put 'T' for mad world's "no_ranks" listing considering that you have Ten and Three

red flower
#

no thats correct

#

T is the card_key for ten

#

3 is the one for 3

obtuse silo
#

odd

#

so what exactly is still causing the face cards to appear in my challenge deck

red flower
#

that the no_ranks is wrong i think

#

im trying to figure out whats the correct format

brittle yacht
#

anybody know how to do the emojis like in tangents?

#

i went diggin through and couldnt find anything

red flower
lament agate
#

jk

brittle yacht
#

lol

lament agate
#

so

#

hold on

cursive gazelle
#

I think it’s with SMODS.Font

maiden phoenix
#

Careful Nxkoo I'm watching

lament agate
#
  1. download font with emojis in it (i.e NotoEmoji)
  2. put that in your mods folder (Mods/assets/fonts)
  3. define the font in your main.lua like
SMODS.Font({
    key = 'COCKS',
    path = 'fonts/COCKS.ttf',
    render_scale = 200,         -- Base size in pixels (default: 200)
    TEXT_HEIGHT_SCALE = 0.83,   -- Line spacing (default: 0.83)
    TEXT_OFFSET = {x = 0, y = 0}, -- Alignment tweak (default: {0,0})
    FONTSCALE = 0.1,            -- Scale multiplier (default: 0.1)
    squish = 1,                 -- Horizontal stretch (default: 1)
    DESCSCALE = 1               -- Description scale (default: 1)
})
  1. apply the font in your loc_txt or localization files (i.e {f:thefontkey})
loc_txt = {
    name = "{f:custom_font}Dawg",
    text = {
        "I just lost my,",
        "{f:COCKS}Dawg{}"  -- Uses Balatro's default font index 5 (Noto JP)
    }
}
brittle yacht
#

holy

#

i did not expect a wall of text

wild escarp
#

Could anyone point me in the right direction for doing some cryptid compatibility?

lament agate
maiden phoenix
lament agate
lament agate
brittle yacht
lament agate
#

i know
;3

red flower
#

(obviously remove the ace and ten)

obtuse silo
#

I see
thank you

brittle yacht
#

has an error!!! >:D

#
    name = "{f:custom_font}Dawg",
    text = {
        "I just lost my,",
        "{f:COCKS}Dawg{}"  -- Uses Balatro's default font index 5 (Noto JP)
    }
}```
#

missed an equal sign

obtuse silo
brittle yacht
red flower
#

yeah, why

brittle yacht
#

at "loc_txt = {"

#

its supposed to be ==

red flower
#

no

#

== is for equality not assignment

brittle yacht
#

VSC is so ahh

cursive gazelle
#

Blaming vsc is crazy

red flower
#

you probably put it in the wrong place and thats why it got confused

brittle yacht
#

it said that was an error twin

#

😭

slim ferry
#

yes thats why you probably put it in the wrong place

#

because that shouldnt give an error

brittle yacht
#

well it did

#

sorry guys

cursive gazelle
brittle yacht
#

im gonna go outside now

#

how in the world do i add a credits tab

#

im geeked af

lament agate
#

im SO sorry

wide chasm
#

bump

brittle yacht
slim ferry
brittle yacht
prisma loom
#

Might sound like a dumb question but where do I find assests?

brittle yacht
prisma loom
#

I swear I saw them before

prisma loom
#

that's why Im asking

brittle yacht
#

ya gotta go to the other thing

#

appdata

#

not steamapps

cursive gazelle
#

Or mod assets

brittle yacht
#

wait i might be geeked

prisma loom
#

game assests

#

x1 x2

#

folders

#

I cant find them

tranquil cypress
#

you can extract the exe and it'll have the balatro folder with all the stuff inside

cursive gazelle
wispy falcon
#

What is saved = 'ph_mr_bones' for?

cursive gazelle
#

And you’ll find them under resources folder

prisma loom
#

I forgot the process

#

I reinstalled bala

#

lost the folders

#

ic ic

#

found it

#

thx

wispy falcon
quick kraken
#

Has localthunk said anything about 1.1 and old mod versions compatibility?

brittle yacht
#

where is this coming from?

wispy falcon
#

Someone know how to change the Jimbo on the Game Over Screen?

slender bay
#

fair warning I am a bit of a dumbass, but I am trying to get this to work but I'm not sure how, I'm trying to make it so every time an ant is added to the deck it adds 0.5 xmult

slim ferry
#

so like abstract but ants?

slender bay
slim ferry
#

so abstract but specific i see

#

well you probably wont want to use add/remove_from_deck and instead just count the amount of eligible jokers in the calculate directly

slender bay
#

so what would that look like?

rotund sable
wispy falcon
rotund sable
#

I think so

#

Never used that tho

slim ferry
wispy falcon
rotund sable
#

I believe it was somewhat documented in some release notes

slim ferry
wispy falcon
split saddle
#

removing cards directly from the deck (using SMODS.destroy_cards) makes new cards not show up in the deck, is there any way to fix it?

slender bay
split saddle
#

no
i want to destroy an amount of cards equal to the cards added to the deck

#

so i'm doing it during card_added

slender bay
#

pretty sure your still supposed to use context.destroy_card in that case

knotty steppe
#

idk what this means

split saddle
#

then i'll store the amount of cards in the joker, right?

robust marsh
#

how would I make a specific blind show its name and text both as "???", but reveal them once you enter the blind?

knotty steppe
robust marsh
cursive gazelle
#

To load them

cursive gazelle
robust marsh
#

alrighty

#

tysm

#

: )

cursive gazelle
#

Im on phone

knotty steppe
#

so you need the raw text

#

local files = {
"lib/smods.",
"items/joker/Button",
"items/joker/Swapbot"
}
for i, v in pairs(files) do
assert(SMODS.load_file(v..".lua"))()
end

robust marsh
#

oh yeah also Idk if you saw this in modding chat but I want to show you something we've been working on in a bit as a short snippet

knotty steppe
#

but it crashes on start

cursive gazelle
#

Try ipairs instead of pairs

split saddle
#

am i doing something wrong?

knotty steppe
rotund sable
split saddle
#

the event is there so that it doesn't destroy the cards immediately after adding (if you have your whole deck in hand you can't tell when/what gets destroyed)

knotty steppe
rotund sable
knotty steppe
#

it works now thx

#

now it crashes when i try to view the atlas

rotund sable
knotty steppe
#

i knwo why

#

i just dont have a atls :P

#

or not

#

can i not add smods.atlas in ther joker.lua

rotund sable
#

As long as it's loaded it should work

#

And the keys match

knotty steppe
#

it is before the smods.joker

rotund sable
#

Why are you specifying atlas in atlas

still cedar
#

How to make any inscription appear when this is triggered (for example, reduce or downgrade)

knotty steppe
split saddle
knotty steppe
#

anytime the joker would appear on screen the game crashed

still cedar
rotund sable
#

Meaning the keys probably don't match

knotty steppe
rotund sable
knotty steppe
rotund sable
#

It starts at 0,0 btw

robust marsh
wispy falcon
#

What is the center of a custom consumable?

knotty steppe
split saddle
#

nvm i was thinking of something else xd

rotund sable
#

If it's black it's probably out of the image

knotty steppe
#

but its the same image and same size

rotund sable
#

?

knotty steppe
#

the name is diffrent but the image itself is identical between the two

rotund sable
knotty steppe
#

but i plan to later make them diffrent

#

thier the same while i get them funcitonly working

#

the correctly sidplaying joker is at 0,0
the other is at 1,0

dapper sun
#

how do i add a card button on the left of the card (like the use/sell buttons)

rotund sable
#
.xxxxx
y
y
y
real night
#

how do you do stuff for retriggering jokers

frosty rampart
#

enable the "retrigger_joker" optional feature, and then return repetitions = number during context.retrigger_joker_check (where "number" is the number of times you want to retrigger the joker)

#

during retrigger_joker_check, context.other_card is the joker being checked to potentially retrigger, context.other_context is the context that that joker triggered in, and context.other_ret is what that joker returned

wispy falcon
#

Why does SMODS.JimboQuip not work for me?

frosty rampart
#

elaborate on "not work"

wispy falcon
#

It just doesn't show up, no matter how high I put the rarity

dapper sun
wispy falcon
#

And how do I change the center to a custom center?

violet void
slim ferry
#

you mean in-game?

violet void
#

yes

slim ferry
#

order of anything in-game is decided by the order in which the objects are created in your mod

dapper sun
#

for modded achievements, i'd assume that it's like other modded assets in that its order comes from the order they're initialized in code

slim ferry
#

yeah

#

so you gotta swap them around to change the order

violet void
#

I wanted to avoid making these achievements individually but I guess I can't order them this way even using ipairs ;-;

slim ferry
#

ipairs SHOULD do the order of the table tho

#

thats wierd

scarlet lion
#

Can someone help me test my mod? I don't have anyone to test but myself :(

slow lotus
#

i made a mod, but it doesnt show up on the mods menu (still shows up on bmm)

slim ferry
#

what does your metadata file look like?

rotund sable
#

Yeah sounds like an invalid metadata

slow lotus
#

i filled everything correctly

slim ferry
#

can you show the file

slim ferry
#

the art looks amazing so youll definitely get some attention i imagine

prisma loom
#

hope so

slim ferry
prisma loom
#

XD

#

sure

slow lotus
#

this is metadata

slim ferry
#

oh its joker forge i see

#

best to ask joker forge discord then

slim ferry
# prisma loom XD

people shill their mods constantly when anyone asks for mod suggestions, its basically the standard lmao

#

also i should see some of the ideas if some of them look relatively simple to code

violet void
red flower
#

maybe try using order?

robust marsh
#

errrr r r how would i manually call the blind defeat function? Because with my current setup i have multiple blinds that are supposed to appear instantly after one another

#

and defeat never triggers

faint yacht
#

G.GAME.blind:defeat()?

frosty rampart
#

referencing endless entropy from entropy is probably a good idea
(i think? i've never actually seen it in action, but i'm pretty sure it's what you want)

violet void
robust marsh
slim ferry
#

is there any point to returning card = card in a joker?

wintry solar
#

No

wispy falcon
#

How would I count seconds in a consumable?

slim ferry
#

how does defining a function as operation for scale_card work?

frosty rampart
#

the whole "operation = function(..." goes inside the scale_card function call
it's like the function when you're adding an event, if you've done anything with that before

robust marsh
tranquil cypress
dapper sun
#

dw abt it i just squished them

tranquil cypress
#

nice!

mellow thunder
#

I'm trying to make a joker subtract a maximum amount of money when a boss blind is defeated, and never set the player's money to a negative number. It works fine by itself, but if I have a duplicate of the same joker the second one always subtracts the same amount of money as the first, even if it puts the player's money in the negatives. Is there something obvious I'm missing here? I'm trying to use the money buffer thing but idk if I need to change it for subtracting money, or if it even helps at all. If there's a simple way to make only the first joker charge money that would work too. I'm also looking for a way to hide the "-money" message that pops up if possible. (card.ability.extra.deduction is the same number as card.ability.extra.dollars except it's negative)

wispy falcon
#

How do I fix it so that it automatically gives the dollar every 10 seconds rather than when I interact with something?

        if self.config.timer >= 10 then
            self.config.timer = 0
            return{
                dollars = self.config.dollars
            }
        end
    end,```
faint yacht
#

ease_dollars(amount)

wispy falcon
rotund sable
#

instead of the return i assume

wispy falcon
#

Okay, that still does the same

frosty rampart
#

it needs to be in an update function instead of a calculate function

rotund sable
#

then not the calculate function

frosty rampart
#

the calculate function only runs when you interact with things

wispy falcon
#

That works, thank y'all :3

red cradle
#

How to check card for modded seal?

red cradle
#

card.seal == "Name" doesnt work

frosty rampart
#

use debugplus, hover over a card with the seal, and run eval dp.hovered.seal in the console to see what the string is. it's probably something of the form "modprefix_Name"

red cradle
#

thanks

faint yacht
#

Those are usually it, yeah... my Seal^2 would be toga_sealseal, for example.

red cradle
#

yae i find it

quick scarab
#

Making a joker that is basically the horse from Yahimod but its not working, it keeps crashing

#
local upd = Game.update
function Game:update(dt)
    upd(self, dt)
    if G.jokers then
        for i = 1, #G.jokers.cards do
            if G.jokers.cards[i].ability.name == 'j_fnaf_balloon_boy' then
                local _bb = G.jokers.cards[i]
                local _bbc = G.P_CENTERS.j_fnaf_balloon_boy
                if _bb.ability.extra.round < _bb.ability.extra.maxround and _bb.ability.eternal ~= true then
                    _bb.ability.eternal = true
                end
            end
        end
    end
end

SMODS.Joker {
    key = 'bb',
    atlas = 'Joker',
    pos = { x = 0, y = 0 },
    rarity = 1,
    cost = 3,
    unlocked = true,
    discovered = false,
    blueprint_compat = false,
    eternal_compat = false,
    perishable_compat = false,
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue + 1] = { key = "fnaf_sprite_WIP", set = "Other" }
    end,
    add_to_deck = function(self, card, from_debuff)
        SMODS.add_card('j_fnaf_balloon_boy')
        card:start_dissolve({G.C.RED})
        card = nil
    end,
}
#
SMODS.Joker {
    key = 'balloon_boy',
    atlas = 'Joker',
    pos = { x = 0, y = 0 },
    rarity = 1,
    cost = 3,
    unlocked = true,
    discovered = false,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = false,
    no_collection = true,
    config = { extra = { x_chips = 0.5, round = 0, maxround = 3}},
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue + 1] = { key = "fnaf_sprite_WIP", set = "Other" }
        return { vars = { card.ability.extra.x_chips, center.ability.extra.round, center.ability.extra.maxround}}
    end,
    calculate = function(self, card, context)
        if context.joker_main then
            local bb_voice = math.random(1, 3)
            return {
                x_chips = card.ability.extra.x_chips,
                func = function()
                    if (pseudorandom('fnaf_bb_voice') < 1 / 3) then
                        card:juice_up(0.1, 0.2)
                        if bb_voice == 1 then
                            play_sound('fnaf_bb_voice1')
                        elseif bb_voice == 2 then
                            play_sound('fnaf_bb_voice2')
                        elseif bb_voice == 3 then
                            play_sound('fnaf_bb_voice3')
                        end
                    end
                end
            }
        end

        if context.setting_blind and not context.blueprint then
            card.ability.extra.round = card.ability.extra.round + 1
            if card.ability.extra.round >= card.ability.extra.maxround then
                card.ability.eternal = nil
            end
        end
    end,
}
dapper sun
#

does anyone know why my joker's effect isn't working? it should make steel cards and slime cards act as both enhancements but nothing's happening

quick scarab
slim ferry
dapper sun
#

oh

slim ferry
#

also dont use SMODS.get_enhancements in context.check_enhancements

#

thats like

#

waiting for a stack overflow

dapper sun
#

i didn't know it was an optional feature

dapper sun
slim ferry
#

context.other_card.config.center.key == "m_steel" or context.other_card.config.center.key == "m_slime"

dapper sun
#

ty

slim ferry
dapper sun
#

i see

#

it's still not working

wild escarp
#

How could I make a single joker less common within a given set? I've made them all one rarity, removed them from the pool, and only spawn them within a booster pack. I'd like one of them to spawn less often than others though, like the soul or black hole. I tried adding them to an ObjectType to spawn them from that instead, but when adding an entry in rarities for the one joker, the game ends up crashing, what could I be doing wrong?

wintry solar
#

m_slime isn't your key

#

you need m_modprefix_slime

dapper sun
#

oh i see the problem

#

i was looking for m_elle_slime but it was still stored as m_elle_slimed

#

bc i forgot to save me changing that

#

...i was also checking for stone cards instead of steel 😭

#

i may have stupid

feral tree
#

is it possible to make certain boss blinds exclusive to a certain deck?

slim ferry
#

Yes, you would use the blind's in_pool for that

feral tree
#

is there a shortcut for making a blind exclusive to decks from the same mod or do i have to put each one in manually?

slim ferry
#

Objects have their original mod stored so you could use that

#

Idk how you'd get to it for a deck though

ocean sinew
#

check G.GAME.selected_back

winter flower
#

how do i make it so that a stake has to be unlocked by gold stake

#

and also how do i make it so that showdown antes appear every 2 antes

round lion
#

did you add gold stake into appied stakes

#

*applied

feral tree
#

so G.GAME.selected_back.config.center.pools.MOD_ID?

round lion
#

and i dont really know about pools well to awnser the second one.

feral tree
#

something totally-ish different i need to know

#

how can i get an event to detect when you enter the shop?

#

i know i can just have it detect a global varible and have it be turned on somewhere else when the shop is entered

#

but is there an easier way to do so?

loud summit
#

hey does the "name" field in the SMODS.joker call actually matter

#

since its going to be overwritten by localization/en-us

round lion
loud summit
#

so i can just leave it off with no consequences?

#

oke good

red flower
#

the name field doesnt do anything

loud summit
#

oh

#

is it just there for the coder to have a readable name?

red flower
#

well, i think it gets saved to card.ability.name so you can use that instead of a key but that's just asking for mod conflicts

loud summit
#

oh

red flower
#

you can do something funny which is name you joker showman or something to make it work like showman

#

could* since smods checks for the key now

loud summit
#

meat

#

neat

wispy falcon
#

Is there something for making a joker give exponent?

winter flower
#

though beware you do need talisman

wispy falcon
#

Forget that then, I'm not at that point, if I even ever get there

wheat jewel
#

What is the variable for the game's sound effect volume

loud summit
#

hey how do you get how much the current hand scored during a context.after trigger

urban wasp
#

you could technically do the current mult times the current chips and make that the score but then you also need to somehow account for the fat that the scoring operator can be changed

loud summit
#

hm.

frosty rampart
#

as per the 0827 release notes, SMODS.calculate_round_score() should be a fine replacement for hand_chips * mult that properly accounts for if the scoring calculation is different

loud summit
#

so calling that in context.after will get the score that hand got?

frosty rampart
#

i think so, yea

loud summit
#

cool thx

mystic river
loud summit
#

how do you get the current blind reqirement

wispy falcon
#

What are these called?

wispy falcon
obtuse silo
frosty rampart
wispy falcon
frosty rampart
#

like the numbers?

wispy falcon
#

Yep

obtuse silo
#

the variables should just be hand_chips and mult

frosty rampart
#

yes to just read the numbers, hand_chips and mult (literally just like that, they're global values) work fine

mystic river
#

not even capitalizing his global values, smh thunk, literally unplayable

wispy falcon
#

I find it funny how it's hand_chips but not hand_mult

wild escarp
#

How can I make one card in an object type show up at a lower rate than the others? I've got this, which crashes.

rarities = {
    key = "j_willatro_consciousness",
    rate = 0.1
}
brittle yacht
#

why is this

frosty rampart
#

without talisman they should just be numbers. with talisman they'll be the big number format

wide chasm
#

whats the context for all cards in the playing hand? i only see contexts for cards that score, but i want to trigger the ones that dont score too

wide chasm
#

oh aight

wide chasm
#

im looking for the cards played, regardless if theyre scored or not

#

not the entire hand

wispy falcon
wide chasm
#

huh

#

then why would my joker be doing that

#
SMODS.Joker {
    key = "singularity",
    blueprint_compat = true,
    rarity = 4,
    cost = 20,
    atlas = 'nebula_atlas',
    pos = {x=4,y=2},
    config = {
          x_mult = 1,
          extra = { xmult = 1, xmult_gain = 0.1 }
    },
    loc_vars = function(self,info_queue,card)
          return {
            vars = {
                card.ability.x_mult,
                  card.ability.extra.x_mult,
                  card.ability.extra.xmult_gain
            }
          }
    end,
    calculate = function(self, card, context)
    if context.first_hand_drawn then
        local eval = function() return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES end
        juice_card_until(card, eval, true)
    end
    if context.full_hand and context.destroy_card and G.GAME.current_round.hands_played == 0 then
        card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_gain
        return {
            remove = true,
            xmult = card.ability.extra.xmult, 
        }
    end
end
}
#

seems fine

dapper sun
#

how do i set the sell cost of a joker to a specific amount

red flower
dapper sun
#

doing maths sounds easier tbh

#

nvmd

#

how do i hook card:set_cost but only for a specific joker

red flower
#

hook the function and then check if self.config.center_key is equal to you joker's key

dapper sun
#

ok

mellow thunder
#

currently trying to make a joker not trigger if another copy of the same joker has been triggered beforehand, does anyone know what I'm doing wrong here? Also if anyone knows how to get rid of the message that pops up when the joker changes your money that would be nice to know as well

frosty rampart
wispy falcon
#

How do I check in which area a card is located?

dapper sun
#

so like this?

red flower
#

set cost doesnt return anything

dapper sun
#

oh

red flower
#

i would recommend looking at the original

dapper sun
#

good point lol

red flower
dapper sun
#

this is run after the vanilla code, right?

red flower
red flower
dapper sun
#

cool

#

ty

wheat jewel
dapper sun
#

how do i make a joker start with eternal

wispy falcon
#

By the way, what's the difference between card and self?

red flower
red flower
#

they're just argument names

mellow thunder
wispy falcon
red flower
red flower
# wispy falcon For example in consumables

self is the prototype object of the card in the functions of SMODS.Consumable (it is the SMODS.Consumable itself) while card is the specific card instance you're evaluating
self == card.config.center

wispy falcon
#

Okay, got it

wheat jewel
#

How can i store the original rates of common, uncommon, and rare jokers without permanently altering them?

#

trying to make a joker, destory a joker and have other jokers of that rarity no longer appear in the shop for one shop visit

#

and have it reset at the end of the shop

#

if anyone could help me with this it'd help alot

#

nvm got it fixed

wild escarp
#

Anyone able to help with this crash message? It only happens when I add this into my ObjectType.

rarities = {
    { key = "j_willatro_consciousness", rate = 0.01 }
}
wild escarp
#

Nevermind, seems like I can only change the spawn rate of a rarity within an object type.

round lion
#

well now i cant even use the mod.

wild escarp
round lion
#

what is a mode r

frosty rampart
#

is there an easy way to get something like context.post_trigger on playing cards and editions too, or do i just have to inject my own calculate_context calls into the main scoring loop

round lion
#

how the hell am i meant to handle crossmodding

#

i tried to make a crossmod joker and it just ignores the dependencies flag i set, instantly running into a crash since OBVIOUSLY THE MOD ISNT THERE.

frosty rampart
#

if next(SMODS.find_mod("mod key")) is true, then the mod exists. wrap your crossmod joker in an if statement checking for that

#

and take the other mod out of the dependencies folder, since you don't require the other mod

round lion
#

someone said to put the dependenciee flag into the joker object

frosty rampart
#

interesting

round lion
#
SMODS.Joker{
    key = 'jimboGE',
    dependencies = {"kino"},
    loc_txt = {
    name = "{C:wdylg_Gangster}Joker{}",
    text = {"{C:red,s:1.1}+#1#{} Bullets",
    "{C:attention}THIS IS NOT A MOVIE JOKER.{}"}
    },
    rarity = 3,
    generate_ui = Kino.generate_info_ui,-- this is the part where it runs into a spike wall while CLEARLY ignoring the dependencies flag.
red flower
#

yeah that makes sense

red flower
#

the definition of the joker is obviously going to ignore dependencies

#

because those are not loaded yet when you run SMODS.Joker

frosty rampart
feral tree
#

so returning a message from a playing card causes it to show up after the card's chip score, is there a way to make it only display the message and not the amount of chips?

slender bay
#

any advice on how to make this work? trying to make it so every ant in the deck adds to the mult

final jewel
daring fern
split saddle
#

removing cards directly from the deck (using SMODS.destroy_cards) makes new cards not show up in the deck, is there any way to fix it?

obtuse wraith
lethal spindle
#

Guys, is there a way to get 2x assets if I have the 1x copies?

#

The pixel image resizer kinda blurs the images...

daring fern
sonic cedar
#

can anyone tell me why my values arent resetting when i sell the joker? they get added just fine

#

G.GAME.trig is so they dont keep piling their passives on each other over and over

#

1st image is remove_from_deck, the other 3 are add_to_deck, and in order

#

nvm im just stupid

subtle merlin
#

(this IS balatro related, im doing this for a convoluted blind) would anyone with love2d experience be able to explain why file is nil here?

#

i swear-

final jewel
sonic cedar
final jewel
#

yeah ik that

#

but its the info queue i think

daring fern
final jewel
#

oh right

#

What do I need to do so

red flower
#

what the link toma sent says 😭

#

in this case if G.hand then will work

final jewel
red flower
final jewel
#

I need some sleep ig

crimson dune
#

Hey, someone has been getting this mysterious crash with this mod, does anyone know why this is the case?

subtle merlin
subtle merlin
red flower
#

it's basically the same thing

daring fern
lethal spindle
feral tree
subtle merlin
lethal spindle
#

Oops! The game crashed:
Syntax error: functions/common_events.lua:3429: 'end' expected (to close 'function' at line 473) near '<eof>'

A bad lovely patch has resulted in this crash.

Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~BETA-0913c-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.8.0
Platform: Windows

Stack Traceback

(3) C function 'function: 0x3ab7edc8'
(4) global C function 'require'
(5) main chunk of file 'main.lua' at line 892
(6) global C function 'require'
(7) LÖVE function at file 'boot.lua:323' (best guess)
Local variables:
c = table: 0x3ab857a0 {identity:false, version:11.5, accelerometerjoystick:true, modules:table: 0x3ab7f1f8, gammacorrect:false, title:Balatro, externalstorage:false (more...)}
openedconsole = boolean: false
confok = boolean: true
conferr = nil
(8) global C function 'xpcall'
(9) LÖVE function at file 'boot.lua:362' (best guess)
Local variables:
result = boolean: true
(10) global C function 'xpcall'
(11) 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"])

#

Whhat is this??

#

I just updated steamodded...

subtle merlin
fathom star
#

what should i do?

daring fern
fathom star
#

do i put that before or after

#

oop wait

#

Thanks!

#

so how do i add a name to the edition

lethal spindle
#

Does it have to do with incompat with latest smods?

subtle merlin
#

My current guess is a mod that is expecting an older smods version has a patch and that messes everything up, do the mods you have rn have compatibility with the newest smods release, and are all of them updated?

lethal spindle
#

Since I have a developing mod...

#

Even a text takes delaying to send

robust marsh
slim ferry
#

formatting jumpscare wtf

urban wasp
slim ferry
#

look i thought it was just bad and not also the worst indentation ever

hidden mirage
#

how to imitate card:is_stone()

dreamy lodge
#

How do I make the game not go into a infinite loop and explode when two cards both mention eachother?

dreamy lodge
#

yes

hidden mirage
#

how to determine what type of booster is being skipped with context.skipping_booster

daring fern
daring fern
hidden mirage
hidden mirage
random flint
#

so for a twist i wanted to make a chip version of the ceremonial dagger, however im getting an error about the curly bracket and im not exactly sure why

dreamy lodge
hidden mirage