#💻・modding-dev

1 messages · Page 200 of 1

halcyon osprey
#

they jsut

#

casually appear

#

How do i prevent them appearing in the shop without showman 😭

tall wharf
#

huh

halcyon osprey
#

Like ill hold the card in my joker hand, and then suddenly its in the shop

tall wharf
#

i never had this problem

#

have you started a new run

halcyon osprey
#

I have, it might be because im debugging it into my hand?

spring lantern
#

yeah it's def because of spawning it via debug

#

the game doesn't actually realise you have it

halcyon osprey
#

havent seen any but the burger but i have made it the burger can appear more than ince

#

once

spring lantern
#

it's happened to me plenty while testing

plush cove
spring lantern
#

this joker is feeling quite jolly

#

is there a way to insert the variable associated with a challenge rule into its loc text?

short mauve
#

-# I wish I had enough brainpower to make a mod :(

spring lantern
#

there's some great resources out there to help you get started!

#

it's very scary at first but really rewarding once you learn the basics

rose dragon
jovial harness
short mauve
#

I just need to have the pc version first ig idk

spring lantern
#

i mean pc version is a requirement

plush cove
warm harness
plush cove
warm harness
#

Does anybody know how i can get a joker i made to have additional effects with another joker from the same mod? Like if i have Joker A it does +10 mult but if Joker B is in your Joker slot then it would do +20 instead something like that.

hushed field
halcyon osprey
#

Im wanting to make a card that converts a random joker into negative every 6 rounds, How would i tackle this

hushed field
halcyon osprey
#

what would i put into the psuydorandom?

#

cause i doubt this would work and is enough lmao

hushed field
#

G.jokers.cards

#

which is a selection of all of your jokers. If you don't want to be able to pick itself, you can add a check to see if the selected object is the same as 'card'

halcyon osprey
#

yep entitycount crashes it agh

hushed field
#

store entitycount like config = { extra = { entitycount = 0} }

#

that way you can increment it by using card.ability.extra.entitycount = card.ability.extra.entitycount + 1

halcyon osprey
#

where would config go?

#

in the joker or at the start of the code

hushed field
#

Because currently, you're storing entitycount as an element of the joker, while in the calculate function, you're looking for a global variable called entitycount, which doesn't exist

halcyon osprey
#

i did crash cause of that

hushed field
red flower
hushed field
#

might be easier than trying to fully explain the structure. Each joker should basically always have a config = { extra = {}}, even if it's empty, I'd say

halcyon osprey
#

yeah i have no clue what i am doing

#

` config = { extra = { entitycount = 0} }

SMODS.Joker{
key = 'Entity',
loc_txt = {
name = 'Glitched Entity',
text = {
'Every 6 rounds, Turn 1 Random Joker Negative',
'{entitycount}'
}
},
atlas = 'Jokers',
rarity = 3,
cost = 10,
unlocked = false,
discovered = false,
blueprint_compat = false,
eternal_compat = true,
perishable_compat = false,
pos = {x = 1, y = 0},
config = { extra = {
}
},
calculate = function(self,card,context)
if context.end_of_round then
card.ability.extra.entitycount = card.ability.extra.entitycount + 1
if card.ability.extra.entitycount == 6 then
pseudorandom_element(G.jokers.cards)
card:set_edition({negative = true}, true)
card.ability.extra.entitycount = 0
end
end
end
}`

spring lantern
#

i thought this challenge would be hard but i guess i'm way too good at white stake

#

don't think i can really make it harder in any way that feels natural and fair

red flower
spring lantern
#

but like starting off with a legendary that goes crazy with xmult is a big help

hushed field
halcyon osprey
red flower
hushed field
#

oh, damn, sniped 😛

red flower
#

(it's in the steamodded docs)

halcyon osprey
#

under what category

hushed field
red flower
#

oh they do, just later

#

it should probably be reversed so that people don't use mult_mod + message

halcyon osprey
#

Okay well i can make it make things negative

#

Just

#

adding the 6 round timer on it

#

it just makes a negative every turn

hushed field
#

Values in the config.extra table are stored and altered through the run, so there's where you want to store the base, and count it down

halcyon osprey
#

the extra table?

warm harness
halcyon osprey
hushed field
halcyon osprey
#

ye

hushed field
#

information you store there is able to be changed and saved during the run

#

so if you put a 'countdown = 0' and a 'threshold = 6' there, you can tick it up each end_of_round, and only trigger the event when the countdown and threshold meet

halcyon osprey
#

so like this?

hushed field
# halcyon osprey boop

I'm also working my job, so please don't bump! I'll get to it when I look at discord again

hushed field
#

it should work then

hushed field
#

Do be aware that in this case, it'll only trigger once, and then never again. You wanna set entitimer back to 0 whenever it goes through

halcyon osprey
#

hmmm Okay so it can hit already negative jokers which is an issue

hushed field
halcyon osprey
#

hmmmm

#

well this caused a crash

#

and this doesnt reset the variable

#

Oh got that working!

frosty dock
#

(you were redefining the local card)

halcyon osprey
#

i got it to work for the resetting

#

now, i just need it to sense negative jokers

#

also got no clue how to display the variables on the description

frosty dock
jovial harness
granite bane
#

Question, is there anything out there that just has all the base game decks and jokers but as code?

#

to reference

frosty dock
granite bane
#

that's what I mean though

#

like remade

frosty dock
#

i don't think anyone wants to implement every vanilla effect in smods

granite bane
#

Ah

#

I'm just trying to find all the variables

#

like if I want to make a deck increase ante size (like plasma deck), what would I do?

frosty dock
#

for a general idea of how something works, you can still just have a look at the game code and go from there

#

esp decks aren't that different

granite bane
#

where do I find deck code in the game

frosty dock
#

plasma just has this as its config for the ante scaling and the game converts it to a starting parameter

frosty dock
halcyon osprey
#

curious on how to do this tbh, Locking is preffered but this could be better hmmm

west mason
#

would it be possible to divide a joker's values by 2 temporarily?

calm dock
#

Im currently trying to adding new editions with SMODS.Edition. Everything works fine but it doesnt seem to apply anything regarding the config/loc_vars

I tried comparing it with other editions of other mods, but the main difference is only Im using SMODS.Edition instead of item with object_type = "edition"

Can someone recommend working with SMODS.Edition or just with the object_type variation

frosty dock
calm dock
frosty dock
#

you're not supposed to use the config directly, though I don't see how that doesn't work if you've set up the respective config. I should be like

loc_vars = function(self, info_queue, card)
  return { vars = { card.edition.p_dollars } }
end,
halcyon osprey
pearl trout
#

hello, i've made a retexture of some cards for myself, i already have the 8bitdeck.png file edited with them, how do i get it to work with steammodded? i know it's related to lua but i'm too dumb to understand the language

halcyon osprey
calm dock
frosty dock
calm dock
#
    key = "royal",
    loc_txt = {
        name = "royal",
        label = "Royal",
        text = {
            "Earn {C:money}$#1#{} when",
            "King is played."
        }
    },
    discovered = true,
    unlocked = true,
    shader = 'royal',
    config = { p_dollars = 3 },
    in_shop = true,
    weight = 2,
    extra_cost = 8,
    apply_to_float = true,
    loc_vars = function(self, info_queue, card)
        return { vars = { card.edition.p_dollars } }
    end
})
frosty dock
#

```lua
-- code here
```

#

please

#

oh wait

runic pecan
#

So I just spent about half an hour putting up this kind of thing:

frosty dock
#

i don't think edition loc_vars works correctly with card.edition

runic pecan
#

Ignore what I just typed, I forgot edition works differently.

glad osprey
#

how would I add a string to the beginning of every jokers name during specific situations

onyx sonnet
#

How do I create a new tooltip entry for a patched in attribute to playing cards? I wanted it to show up similarly to the extra chips from hiker

halcyon osprey
frosty dock
runic pecan
# halcyon osprey like a guide for us?

More like, you local ctx = context_timing(context) at the start of calculate = function(self, card, context), and then you use if ctx == 'when scored' then instead of if context.individual and context.cardarea == G.play then.

halcyon osprey
#

anyways, How can i make a joker keep track of what hand i play

runic pecan
halcyon osprey
#

I dont want a specific hand, i want it to Get the first hand that it sees, and then only score off that hand

hushed field
calm dock
hushed field
#

it has a lot of info on which information is passed to the jokers in each specific context

runic pecan
halcyon osprey
#

pokerhand, so like, Play a flush, Only scores off flushes, or if it sees highcard, only scores off that

runic pecan
halcyon osprey
#

for as long as you have the joker

#

so entire run

halcyon osprey
#

grants Mult

#

my brain may have come with something from what you gave me, but i wont be suprised if it crashes

runic pecan
#

So your calculate function would be like if context.scoring_name and (card.ability.extra.hand == 'nothing') then card.ability.extra.hand = context.scoring_name end if context.joker_main and context.scoring_name == card.ability.extra.hand then return {mult=card.ability.extra.mult} end with config = { extra = { mult = 10, hand = 'nothing' } }

halcyon osprey
#

well, it didnt crash but it did just casually score everything in hand

frosty dock
halcyon osprey
#

Okay, Wait, what i did, Kinda worked but it is, SO weird

pearl trout
frosty dock
#

SMODS.Sprite:new is the old API

#

you're not supposed to be using it

halcyon osprey
pearl trout
#

oh gotcha

calm dock
granite bane
#

Well I got my first deck done

#

I was gonna word it differently with the "3-7" part but eh it gets the message across. not a very balanced deck I'm sure

Trifolium subterraneum is a type of clover that ranges from 3 to 7 leaves, instead of the typical 3-4.

runic pecan
#

Me when I finally had enough for all the time I have to type ggameprobnorm:

frosty dock
halcyon osprey
#

okay so, It works, but the thing is, if its the wrong hand, it deletes the cards

#

and idrk why

runic pecan
halcyon osprey
#

the x0 is what i want lol, i dont want cards to get deleted 😭

frosty dock
#

context.cardarea == G.play doesn't uniquely identify a context

#

So it happens in destroying_card too

runic pecan
halcyon osprey
#

oooh

halcyon osprey
runic pecan
#

Also G.C.MULT is already its default colour when Xmult is specified.

pearl trout
jagged mortar
#

btw does SMODS.Joker.key have to not have any spaces?

runic pecan
halcyon osprey
#

😭

#

Im new to this

#

this is like, the first time ive done something kinda by myself

#

other joker cards i had bigger help

#

and I actually got it to work

runic pecan
halcyon osprey
#

The card that i made, Triggers x3 mult on every card played, however the first Pokerhand you play is the only one you are permitted to play, playing anything else puts your chips and mult to 0 (aka a debuff but i dont have to do the weird stuff that i dont know what to do)

pearl trout
#

what is key here?

runic pecan
halcyon osprey
runic pecan
hushed field
pearl trout
#

ah so like a variable name

opal spade
halcyon osprey
#

then any joker that grants chips is your chip gen for said hand

#

okay this is just crazy luck the only card i summoned was the spider one (for testing) the others are all rares

opal spade
# pearl trout ah so like a variable name

one important thing to know is that mods appends prefixes to keys so each of the mods can use similar keys but still be distinct
by default u wouldnt worry about it bcos smods does the appending for all the items ur mods adds (so like if u have an atlas with the key of "myatlas" and a joker that uses that atlas, you'll just write "myatlas" in the joker)

pearl trout
#

for atlas, do i still have to call it with something like register? or will it work without that

opal spade
#

just defining it as SMODS.Atlas{} is enough

pearl trout
#

gotcha

opal spade
#
key = 'myatlas',
path = 'myatlas.png',
px = 71,
py = 95
}```
^^ this by itself is already a valid atlas as long as the file exists
halcyon osprey
#

actually, how do i make it that cards dont trigger?

#

that would solve the chip issue

opal spade
#

if the card returns nothing in its eval card then it doesnt trigger/retrigger

pearl trout
opal spade
#

unless your 1x and 2x folders have subfolders

#

basically path already assumes the file to exist at 1x and 2x

opal spade
#

so like no chad no anything

#

perhaps you could just hook eval_card to return blanks for played cards if the condition is met

calm dock
#
SMODS.Edition({
    key = "royal",
    loc_txt = {
        name = "Royal",
        label = "Royal",
        text = {
            "+{C:mult}#1#{} Mult"
        }
    },
    discovered = true,
    unlocked = true,
    shader = 'royal',
    config = { mult = 100 },
    in_shop = true,
    weight = 8,
    extra_cost = 4,
    apply_to_float = true,
    loc_vars = function(self, info_queue, card)
        return { vars = { self.config.mult } }
    end,
    calculate = function(self, card, context)
        if context.cardarea == G.jokers and context.scoring_hand then
          if context.joker_main then
            return {
              colour = G.C.MULT,
              mult_mod = self.config.mult
            }
          end
        end
      end,
})

I also tried hits with card.edition.mult. None responses. But the Tooltip seems to acknowledges the config value.

pearl trout
#

This is my whole code and it's not working, should the console that appears when booting up the game show that the script loaded?


local mayburideck_mod = SMODS.findModByID("Mayburideck")

SMODS.Atlas {

    key = 'mayburireplace',
    px = 71,
    py = 95,
    path = 'MayburiDeck.png'

    }

end```
#

hold on... there's nothing here that indicates what this should be used for, like for the playing cards, tarot, etc

frosty dock
#

damn where are you pulling this old code from

#

btw it's best to use malverk for texture mods

pearl trout
frosty dock
#

there's plenty of examples out there

#

there's no point in basing your mod off the old system when there's something better available

tall wharf
#

is it just the playing cards

frosty dock
#

oh right, playing cards

#

if it's playing cards, use SMODS.DeckSkin

tall wharf
#

bridget playing cards ❤️

mystic river
#

brisket <3

crisp coral
#

brisket?? where

minor furnace
#

development resumes today

pearl trout
#

damn people fw bridget here?

minor furnace
#

time to figure out how to initialize a dummy version of a blind

pearl trout
#

i’m making a retexture of her

minor furnace
#

like from guilty gear?

pearl trout
#

yeah

#

i already have the designs, i just can’t code to save my life, and i’m taking CS LMAO

minor furnace
#

nice

crisp coral
#

im planning to take cs

#

🥀

tall wharf
#

and here i am drawing

minor furnace
#

I have a bachelor's in CS, but game design is a different skillset entirely from what you learn in the classroom lol

pearl trout
#

that’s funny cause i’m shifting to art instead after 2 semesters of CS

#

but i wanna continue modding balatro cause it’s p fun

tall wharf
#

I'm in year 4 of com sci i think it's too late to quit 💔

minor furnace
#

maybe just a little late 💀

sonic cedar
crisp coral
#

no time is too late

strong jacinth
#

If I wanted to add a button that did something similar to the Run info button, (With a popup) And a centered checkbox, how would i do that

#

(I want the button to be where the run info and the button is, Instead of the ri and op being ½ i want it to be ⅓ With my button)

frosty dock
#

grim does something of the sort of its skills button iirc

strong jacinth
#

-# Ik its github

#

-# But where

runic pecan
frosty dock
runic pecan
#

Oh, that grim. Sorry.

frosty dock
pearl trout
tall wharf
#

for playing cards you don't need that

pearl trout
tall wharf
#

SMODS.DeckSkin will work

pearl trout
#

omg i keep getting redirected to different stuff

#

i'll try that

tall wharf
#

Malverk works good if you want to retexture jokers

frosty dock
#

Malverk works for anything but playing card textures

strong jacinth
#

It's crashing...

proud pier
#

since the ink suit color is similar to spades, i dont know how to make the tarot look different from the world

#

maybe i color the background instead and make the center white?

pearl trout
#

where do i indicate the file name of the textures?

tall wharf
#

path

#

hold on

#

u have to

#

make an atlas

frosty dock
#

you need to also have an atlas

tall wharf
#

and use that in the atlas option

frosty dock
#

the thing we had before

pearl trout
#

ohhh

frosty dock
#

the DeckSkin then uses the atlas

pearl trout
#

it's starting to make sense now

tall wharf
#

so you make these

#

then you put it here

#

don't forget the mod prefix in the lc_atlas

frosty dock
#

(Note: that's the old format)

tall wharf
#

oh?

#

ill check the wiki in a second

frosty dock
#

there's been an overhaul to the DeckSkin API. It's still compatible with the old format but it's been removed from the docs

tall wharf
#

palettes you say

pearl trout
tall wharf
#

the default value is that

#

(i do not remember why i put it there)

frosty dock
#

in fact that's the default value, you only need to touch it if it's a different kind of sprite

#

(like an animated one)

pearl trout
#

is there a way to have only one deckskin for all suits?

manic rune
#

is there a context for when you discard?

i mean, there's context.discard but it seems to run for each card discarded, while i only want it to be once

frosty dock
strong jacinth
frosty dock
pearl trout
#

oh i see

proud pier
#

seems different enough

pearl trout
red flower
tall wharf
#

mr smods mentioned that this is the old format

tall wharf
pearl trout
#

is this just atlas = prefix_key of the atlas i made?

#

is the prefix required

strong jacinth
#

Is the modding code the same as game code?

manic rune
tall wharf
red flower
strong jacinth
#

If i copy the game code for a button, and edit the size, would that work.

red flower
#

yes

strong jacinth
#

And how do i modify existing UI

pearl trout
red flower
tall wharf
tall wharf
#

if so i think you can use collab

pearl trout
#

i just edited in my pixel art to the 8bitdeck.png of the game

manic rune
#

hn

pearl trout
#

put it on top of the face cards basically

tall wharf
#

so like the entire thing

pearl trout
#

yeah

tall wharf
#

'deck'

strong jacinth
#

That i can learn from

red flower
manic rune
#

or do i need to declare a specific card area here?

strong jacinth
minor furnace
#

this might just be a Lua unfamiliarity thing for me, but I cannot for the life of me figure out how objects of a specific class type are initialized

red flower
proud pier
#

yeah im not sure about this one

manic rune
#

i think Grim does smt like that?

strong jacinth
manic rune
#

odd

strong jacinth
#

So its hard to look for something i dont know how it looks.

pearl trout
#

any idea why this is still not working

SMODS.Atlas {

    key = 'mayburireplace',
    px = 71,
    py = 95,
    path = 'MayburiDeck.png'
    }

end    

SMOD.DeckSkin {
    key = 'mayburiskinhearts',
    suit = "hearts",
    ranks = ranks,
    atlas = 'maybr_mayburireplace'
    pos_style = 'deck'
    }
end```
manic rune
#

prob bcz of steammodded ver conflicts

#

idk

strong jacinth
#

I know that it does "something like that." But its hard to look for "Something like that"

strong jacinth
tall wharf
#

also

#

i think you need both lc_atlas and hc_atlas but i am not sure

pearl trout
#

oh i see

tall wharf
#

you can just set it to be the same one for now

manic rune
pearl trout
#

oh i missed a comma

manic rune
#

man

tall wharf
#

wassup big dawg

manic rune
#

wassup big dawg

tall wharf
#

this is still a hell of a description

manic rune
#

and why isnt pre_discard documented

#

or uh, im missing smt

tall wharf
strong jacinth
manic rune
strong jacinth
#

Like gives

manic rune
#

info queue

#

it adds the small box next to your joker

pearl trout
#

@tall wharf can i see what your function looks like?

tall wharf
#

have a look

red flower
manic rune
#

wha

#

i used ctrl + F to find it 😭

tall wharf
#

time to

#

add what i wanted

#

actually i feel like doing art

#

so i will not code

manic rune
#

oh wait

#

i think my wifi is genuinely so shit it didnt fully load the page

#

thats the end of my page

#

😭

red flower
#

clone the wiki locally 🙂

tall wharf
#

why is video game

cerulean rose
manic rune
#

why is game video

tall wharf
#

why the long face

manic rune
#

why so serious

#

yeah uh

manic rune
# red flower ?

i tried this, it still prints equal to the number of cards i discard

tall wharf
#

hello my mod now has 10 jokers

manic rune
#

glorious

tall wharf
#

i will make art for the rest of them

manic rune
#

istg do not the joker looks so weird

#

when i look at it unzoomed

#

😭

ivory coral
#

whats the ability.name for Bonus cards? ability.name == 'Bonus Card' doesnt seem to work, though it does work for wild cards so im guessing the name is different for some reason

tall wharf
red flower
manic rune
#

is it forbidden to egg though

minor furnace
#

how would one initialize a blind object?

manic rune
pearl trout
#

the debugger window when opening the game is showing "Could not open device." is this supposed to happen?

tall wharf
#

huh

manic rune
#

(i keep forgetting to turn off the mention when reply)

tall wharf
#

does it crash

pearl trout
#

nope

pearl trout
#

i run the game normally, i check the decks in the setting and it doesnt apply

red flower
tall wharf
#

did you add prefix to the atlast in deckskin

manic rune
#

oh, i think it can be annoying when ur in the middle of something and the mention sounds pop out of nowhere

ivory coral
red flower
#

im in the middle of working so this is the best time to annoy me

#

i dont want to work (dont tell my boss)

pearl trout
manic rune
#

im your boss N'

minor furnace
manic rune
#

this was a social experiment.

pearl trout
#

the prefix is initialized at the header right

tall wharf
#

uh

#

yeahh

#

right

#

the header format

pearl trout
#

yeah

manic rune
#

man

tall wharf
#

show code rn

manic rune
#

i freaking love SMODS.Jokermmmmmmmmm{}

red flower
#

i have balatro pinned to the taskbar, resetting with m is annoying

manic rune
#

i could just add another keybind to restart on press honestly

tall wharf
#

❤️

manic rune
#

but my lazy ass aint doing that even though its easy 💔

pearl trout
#

oh i removed my mod from the mod folder and the error is still there, might be an issue with my injector, gonna redownload it

minor furnace
#

oshi no ko mention 👀

manic rune
tall wharf
#

🩸

manic rune
#

🔵 🔴

tall wharf
#

💢

manic rune
#

💩 ending

tall wharf
#

lmao

manic rune
#

forever hating onk for the ending 💔

tall wharf
#

no lighting

#

with "lightning"

manic rune
#

it actually looks like the skybox in Minecraft

halcyon osprey
#

allo there again

manic rune
tall wharf
#

ello mate

tall wharf
halcyon osprey
#

i got a joker functioning on my own mostly lol

tall wharf
#

nice

manic rune
#

nice

#

hello im tony

halcyon osprey
#

anyways is it bad i dont know what the variable for the money is, is it cash, gold, or what 😭

#

im like searching the thingy

manic rune
#

G.GAME.dollars

#

i dont know why its called dollars, but yeah

tall wharf
#

depends on what u wanna do

manic rune
#

its how much money you have in the run

halcyon osprey
#

i wanna make a cloud 9 but with just every card on deck

tall wharf
#

that is truer

manic rune
#

oh nvm

halcyon osprey
#

and then it breaks forever

manic rune
#

isnt it just cloud 9 with modified if statement for the cash tho

tall wharf
#

i haven't messed around with money much

manic rune
#

sam

#

jetstream sam

halcyon osprey
#

such messy code but it functions

#

i got the first bit at the top from someone

proud pier
#

How do i reskin a modded tarot with malverk?

pearl trout
#
SMODS.Atlas {
    key = 'mayburireplace',
    px = 71,
    py = 95,
    disable_mipmap = true,
    path = 'mayburideck.png'
    }
    

SMODS.DeckSkin {
    key = 'mayburiskinhearts',
    suit = "hearts",
    ranks = ranks,
    lc_atlas = 'maybr_mayburireplace',
    hc_atlas = 'maybr_mayburireplace',
    pos_style = 'deck'
    }``` i fixed some obvious stuff but it still wont work :(((
#

it still uses the default deck

tall wharf
#

try Hearts with uppercase H

minor furnace
#

so the blind effects don't work yet but I love the way this switches the blind when the hand is played. And I didn't have to do anything special to implement that

#

visually I think this is really cool

tall wharf
pearl trout
#

no way

#

it worked

#

omg

modest lake
#

are localization files loaded automatically?

tall wharf
#

❤️

#

bridget

long sun
#

how can i get the number of enhanced cards in the deck?

#

the method that Driver's Licence uses isn't immediately copyable

tall wharf
#

hmmm

#

what do i do with the quasi connectivity

#

3d is so weird to do in pixel art

minor furnace
#

So this seems to create the blind object at least visually, but it doesn't let me call Blind:press_play() on it

        G.GAME.blank_played = false
        G.GAME.blank_blind = self.eligible_blinds[math.floor(pseudorandom('blinds')*#self.eligible_blinds) + 1]
        G.GAME.blank_obj = Blind(G.GAME.blind.T.x, G.GAME.blind.T.y, G.GAME.blind.T.w, G.GAME.blind.T.h)
        G.GAME.blank_obj:set_blind(G.P_BLINDS[G.GAME.blank_blind])
        return
    end,```

```press_play = function(self)
        G.GAME.blank_played = true
        G.GAME.blank_obj:press_play()
    end,```
#

because it crashes saying attempt to call method 'press_play' (a nil value)

onyx sonnet
long sun
#

true

#

i could write a function

#

hokai, thanks :)

onyx sonnet
#

👍

tall wharf
#

😭

#

wrong emoji

#

this is difficult

minor furnace
#

on the bright side, any blind that has a card debuff effect appears to have taken care of itself, because they debuff and rebuff on their respective hands without me having to do anything fancy

tall wharf
minor furnace
#

oh wait

#

you might be right

#

I think I might have called it on one of my custom blinds that doesn't have a press_play effect

runic pecan
#

I think these are everything listed in smods wiki. Am I missing anything?

manic rune
#

whats that for?

minor furnace
manic rune
runic pecan
tall wharf
#

-# *undocumented features

manic rune
#

-# gotta love when someone tells you to read non-existent data 🗣️

runic pecan
#

I am confident that every documented context (that I'm going to need) has been included.

broken cliff
#

u could also uh do for i,v in pairs(context) and printout i ig

#

might work

#

idk. only helps if there are undocumented contexts

halcyon osprey
#

gn chat

manic rune
#

gn

tall wharf
#

gn chat

manic rune
#

thac ng

modern kindle
#

Gm chat

red flower
minor furnace
#

so that's fun

whole grove
#

Could someone plsssssss help me. I have a joker idea, but I don't know how to do it. I want to make a joker: If the first hand of a round is 1 card it transforms that card into a queen. Any idea how I would do that.

crisp coral
#

check DNA's code for first hand

minor furnace
#

so, if I move the set_blind() outside of this if statement, it throws a nil error..

            G.GAME.blank_blind = self.eligible_blinds[math.floor(pseudorandom('blinds')*#self.eligible_blinds) + 1]
            G.GAME.blank_obj = Blind(G.GAME.blind.T.x, G.GAME.blind.T.y, G.GAME.blind.T.w, G.GAME.blind.T.h)
            G.GAME.blank_obj:set_blind(G.P_BLINDS[G.GAME.blank_blind])
            G.GAME.blind:set_text()
        end```
#

I thought I had properly defined a global for it, but it seems like something's not persisting

mellow torrent
#

hey quick question, is there a way to quick reset balatro when testing localization? it's a bit slow to relauch balatro to look at the changes

west mason
#

how can i make a joker be debuffed for a certain number of rounds?

minor furnace
#

which still relaunches it, but you don't have to do it manually

mellow torrent
#

oh well it's better than nothing! thanks

crisp coral
#

also hi blooky

mellow torrent
#

oh hi!!

#

also yeah i do have debugplus

mellow torrent
crisp coral
#

yeah that's normal

tidal eagle
#

can someone tell me how i can get started making my own mods?

crisp coral
#

the cards' loc should have changed

red flower
tidal eagle
novel violet
#

Hey out of curiosity, has anyone made a super-basic mod template with basically nothing but a very basic test joker? I think it'd be a really nice resource for new modders to have

#

Just want to make sure no one's made something like that before I do it myself later today ;p

frosty dock
novel violet
#

Well sure, those are great examples of code to look at, but I'm moreso talking about a skeleton with a common.lua, assets folder with a placeholder Jimbo texture, placeholder json, and code for one test joker

mellow torrent
#

which honestly i think that's it

novel violet
#

This would mainly be for ppl who want to learn balatro modding but don't know very much programming at all. I found a template extremely useful when I first started SPM modding because there were a ton of moving parts, balatro is nowhere near as complex at all but I still think it could maybe be a useful resource ;p

manic rune
#

true

novel violet
#

You'd just pull it, replace json stuff, import your own assets, rewrite common.lua to have whatever you want, etc. etc. just saves time and could be a good learning resource

steady smelt
#

how do i make a custom suit list below the default ones instead of above them?

minor furnace
#

So apparently, it's only my custom blind object that doesn't persist when I reload the game...

print(G.GAME.blank_played)
print(G.GAME.blank_blind)```
modern kindle
minor furnace
# minor furnace So apparently, it's only my custom blind object that doesn't persist when I relo...

this is how I was handling them, but I guess it's not quite right

    local eligible_blinds = {
        'bl_hook',
        'bl_ox',
        'bl_arm',
        'bl_club',
        'bl_wheel',
        'bl_fish',
        'bl_psychic',
        'bl_goad',
        'bl_plant',
        'bl_serpent',
        'bl_pillar',
        'bl_head',
        'bl_tooth',
        'bl_flint',
        'bl_mark',
        'bl_reverse_berkano',
        'bl_reverse_dagaz',
        'bl_reverse_perthro',
        'bl_reverse_ansuz'
        --'bl_reverse_void'
    }
    G.GAME.blank_blind = G.GAME.blank_blind or eligible_blinds[math.floor(pseudorandom('blinds')*#eligible_blinds) + 1]
    G.GAME.blank_played = G.GAME.blank_played
    G.GAME.blank_obj = G.GAME.blank_obj
    return
end```
novel violet
steady smelt
modern kindle
novel violet
#

I didn't know these could be used as templates & I wanted to learn how other mods worked, so what I did was pull the source for a mod (I think it was plantain?) and modified it until none of the original code remained xD

#

I found that to be a really cool way to figure out how all the files are read in lua, very interesting to me that you don't have to do #include for literally everything you use like i did in c++ 😭

modern kindle
#

I think i started working on 1326a for steammodded
So my code still retains alot of stuff from that because 'fuck you it works' but I need to start going back and changing things to the better way they have things set up now

manic rune
#

someone should definitely start making tutorial vids

minor furnace
#

what is the correct way to set a custom global variable that persists over a reboot?

novel violet
manic rune
minor furnace
#

and it's only that one variable

manic rune
#

hm

minor furnace
#

is it because it's a table?

manic rune
#

probably something setting it wrong

manic rune
minor furnace
#

this is the only place in the code I could find "MANUAL_REPLACE" at, so maybe this is related

#

I'm going to post the code, because I feel like the odds I'm doing something wrong with the global implementation are pretty high

#

I should probably make the list of eligible blinds a global too for simplicity's sake

minor furnace
#

so it must be with the way I'm initializing the dummy blind?

tall wharf
minor furnace
#

minecraft joker

tall wharf
minor furnace
#

I was gonna say that looked like a redstone block and a piston

tall wharf
#

i mean

#

those are

#

in fact

#

redstone block and piston

minor furnace
#

indeed

tall wharf
#

art by

#

me

#

™️

minor furnace
#

very nice very nice

tall wharf
#

3d is hard to do in pixel art

minor furnace
#

yeah I bet

hushed field
#

luckily squares you can measure out generally, but oof once the corners get complex, it becomes so much harder

minor furnace
#

just model it in 3d and then project the image down to a flat surface

jovial harness
#

Hard to do but you made it work! I love the art

#

Also the JOKER text being like minecraft chat is a really neat touch

minor furnace
#

meanwhile I will continue to be vexed by my ambitions exceeding my current knowledge of how to implement features

#

I'm this close to hard-coding in all of the blind effects

tall wharf
#

ty

#

i guess 2000 hours in aseprite paid off

pseudo cape
#

does anyone know where a good place to start would be when learning to mod Balatro? I know some lua and I've got like a basic understanding of how lovely and steamodded work, but I didn't know if there was a like guide anyone had made with tips for getting started

jovial harness
#

The SMODS wiki and the examples

#

Lemme go get the links

pseudo cape
#

thank you!

jovial harness
#

You don't even need to know how lovely works, but it's definitely helpful if you want to do more particular things like changing joker backs

pseudo cape
#

just starting I'll probably just try and make a basic joker or something, I made a custom deck design for face cards before, but I've got no clue if the mod I made even still works (or where I put it :p)

#

I've still got the art for it I made at least

minor furnace
#

yeah I've got absolutely no clue why my global object is resetting to 'MANUAL_REPLACE' when I reload the game

west mason
#

how can i make an an edition applied to a joker remove itself from the joker and then apply a different edition?

tall wharf
#

@pearl trout did you post the mod on gamebanana 😭

for future reference please post it in #1209506514763522108 and probably GitHub nobody uses gamebanana for Balatro

minor furnace
#

This is definitely the function that is causing me problems, and I'm pretty sure it is because I'm trying to use a table...

  local ret_t = {}
  for k, v in pairs(t) do 
      if type(v) == 'table' then
          if v.is and v:is(Object) then ret_t[k] = [["]].."MANUAL_REPLACE"..[["]] 
          else ret_t[k] = recursive_table_cull(v)
          end
      else ret_t[k] = v end
  end
  return ret_t
end```
#

so I need to figure out how to load it manually when the game boots up I think

wintry solar
#

You can’t save objects like that

hasty ravine
#

I'm getting an error saying that there's an unknown value near 'local', but I don't see anything weird.

minor furnace
graceful magnet
#

encountering an error trying to make a deck start with vouchers

wintry solar
#

That way

tall wharf
wintry solar
#

It won’t save objects in G.GAME

minor furnace
#

so then, where can I put it that it will save?

hasty ravine
#

I see

wintry solar
#

Look at how it saves the card areas

wintry solar
minor furnace
cerulean rose
hasty ravine
#

Whenever I open a booster pack, it's giving me an error due to the pseudorandom and I'm not sure why

hasty ravine
graceful magnet
minor furnace
graceful magnet
#

it's getting caught up on the apply_to_run parts now, and it's getting hung up on one of the game's own variables??

sonic cedar
#

for some reason, the chip gain on my joker isnt working? is there any ideas to make this work?

onyx sonnet
#

How do I create a new tooltip entry for a patched in attribute to playing cards? I wanted it to show up similarly to the extra chips from hiker

onyx sonnet
sonic cedar
onyx sonnet
#

i dont think im qualified to assist in this

#

maybe its your return?

#

what is new_mult being returned as

graceful magnet
sonic cedar
onyx sonnet
#

well im pretty sure you are the one that defines how returns are managed, and your return is just giving back a value without modifying any values

#

what is the return new_mult suppossed to be doing

#

wait this isnt in calc

sonic cedar
#

no

onyx sonnet
#

yeah im just gonna step back and let someone else help

sonic cedar
#

ok thanks for the attempt

warm harness
#

Hello, it's been hours and i can't figure out how to make one of my jokers to display a message at the start of a round. Anybody would like to enlighten me on how i could figure it out?

old bane
warm harness
#

Okie i'll try that thanks!

graceful magnet
tall wharf
#

uh

tall wharf
#

i think it should call a different function

sonic cedar
tall wharf
tardy wind
#

bro using vim theme

sonic cedar
#

wait what was the tag for checking jokers again
i dont think ive had to use it yet

tall wharf
#

joker ability name idk if steamodded has a util for this

#

nah

sonic cedar
#

damn

#

well then what do i do?

tall wharf
#

self.config.center_key == "prefix_key" ?

sonic cedar
#

ill try that out

minor furnace
#

persistent global variables on save continue to elude me

graceful magnet
tall wharf
tall wharf
#

❤️

wintry solar
minor furnace
#

again, a table

wintry solar
#

It’s to do with how it serializes it though iirc

minor furnace
#

is it because it indexes it like this cardAreaTable.cards[#cardAreaTable.cards + 1] = self.cards[i]:save() instead of doing a table.insert() or something similar?

pseudo cape
#

yippie

#

finally got something to work

wintry solar
#

I don’t remember exactly how it works but I’m sure it’s to do with table depth or something

sonic cedar
tall wharf
#

what is wrong with the joker file

hasty ravine
#

Am I not implementing pseudorandom here correctly? Why is it saying 'a nil value'?

sturdy compass
#

"pseudorandom", not "psuedorandom"

sonic cedar
tall wharf
#

card.config

#

i think

#

@sturdy compass YOU

sturdy compass
#

hi

hasty ravine
#

oh my god

tall wharf
#

why are you faster than me again

sturdy compass
sonic cedar
hasty ravine
sturdy compass
hushed field
#

Code shouldn't ever have used complicated words like pseudo, ability, and consumable, the spelling errors cause too much harm

minor furnace
#

well, the name of the copied blind persists through save so I can probably set it up to create the table when the save is loaded 🤔

#

that might be easier

tall wharf
sturdy compass
#

banana man

glad osprey
#

how the fuck

hushed field
tall wharf
#

PICKAXE 😭

sonic cedar
hushed field
tall wharf
#

ah

glad osprey
#

?

old bane
#

so i copied the code from debugplus's "win blind" function to use in a consumeable, but if i tried just copying the code directly, i could never actually use it, but if i remove the
if G.STATE ~= G.STATES.SELECTING_HAND then return end
then it bugs out and draws another hand while the win screen is playing >_<

tall wharf
#

G.jokers.cards[i].config

#

❤️

sonic cedar
#

bluenana

hushed field
# glad osprey ?

Because of lovely injects, the line numbers in those files won't actually match the line numbers in the source code. The lovely folder in your mods folder should have a dump of the injected code

neat plover
#

ow would i check the number of cards being played???

glad osprey
#

ooooh

old bane
neat plover
#

oh i am braindead

hushed field
onyx sonnet
#

How do I create a new tooltip entry for a patched in attribute to playing cards? I wanted it to show up similarly to the extra chips from hiker

old bane
#

the question of the ages (i haven't figured this out but i think i saw some other mod was able to do this, one sec lemme pull it up)

hushed field
onyx sonnet
#

oooh

#

ill look rn

hushed field
#

That's upgraded like hiker, at least

old bane
sonic cedar
tall wharf
#

😭

hushed field
#

If you want a separate text box, Kino has one for genres you could peak at, though I won't act like I write competent code

tall wharf
onyx sonnet
#

I will look at those some other time, could be useful for custom enhancements

sonic cedar
onyx sonnet
sonic cedar
onyx sonnet
#

do i just, add this in its own folder?

tall wharf
#

idk if it's safe to put a function in card ability

#

because cryptid might very well change that to 4.2

old bane
tall wharf
#

or crashes

onyx sonnet
hushed field
#

I should start looking into how to make descriptions dynamically change. I'm working on a system for jokers to change effect based on whether they're in slot 1 or not, and I wanna keep the descriptions a slight bit contained

onyx sonnet
#

btw where do i put the lua file from that repo?

tall wharf
#

there is a check

hushed field
#

Also considering whether I should make a system that expands descriptions into more detailed ones if you press a key, because some of my jokers are... Wordy

tall wharf
#

so i think you can just put a function that changes the card

old bane
tall wharf
#

inside the ability

old bane
sonic cedar
old bane
hushed field
sturdy compass
#

Bruhhhhh I still can't figure out this stuff I started trying to do last night dissolved curse you straight calc

old bane
tall wharf
clever abyss
#

is there already a boss blind that was made that is kind of like an opposite of psychic, basically played hands cannot have 5 card? if not i was wondering how i could go about doing that

sturdy compass
#

I have NO clue how it works lmao

tall wharf
#

it's ok vro i spent 3 days just to throw the work away

sturdy compass
#

The horror

hushed field
#

I'm planning on just diving deep into undocumented waters and seeing if I can give jokers specialized descriptions. Updating in the fly would still leave the problem of having to put game text in the code rather than in the localization file

sturdy compass
#

The worst part is that I feel like I'm close. What I have rn makes any 5-card hand return as a straight for some reason

clever abyss
#

im just trying to make it where any 5 card hand just doesnt score

old bane
sturdy compass
tardy wind
sturdy compass
#

the huh

old bane
clever abyss
tardy wind
sturdy compass
#

smthn like that

clever abyss
#

i need the template for a blind in general actually

tardy wind
sturdy compass
#

it'd probably be a return true in debuff_hand

tardy wind
#

did you make a new Straight hand ?

sturdy compass
rose kettle
#

hey people im working on making a custom language mod for balatro and for some reason every time i test it it returns to base english, i used balatro uni as an example and for some reason even the base mod doesnt work

clever abyss
#

actually is there a fresh custom blind template?

tardy wind
#

you might be modifying/returning always true so it always returns as a straight

sturdy compass
#

ew yucky formatting

tardy wind
#

ew

sturdy compass
#

why it look like that

granite bane
#

If I wanted a deck to remove every card and then manually add a specific set of cards, what would I do?

remove_card doesn't seem to work unless I'm using it wrong

tardy wind
#

oh wait

#

you need to expand

sturdy compass
#

yeah lol

#

trust me tho it does NOT look like that in IDE

tardy wind
old bane
granite bane
#

deck creator?

old bane
proven stump
#

On the subject of tooltips, I'm attempting to add a tooltip to a UI element that is NOT a card. tooltip is insufficient as doesn't seem to allow customizing the style.

Ideally I'd leverage detailed_tooltip, but this process involves passing the config through the generate_card_ui function, which is a bit unwieldy to grok and is producing an Error tooltip. Is there a source that better describes how to use detailed_tooltip correctly?

sturdy compass
granite bane
#

is deck creator up to date with the current version though?

tardy wind
#

oh use face/aces as any cards in a straigth

sturdy compass
#

basically yeah

tardy wind
old bane
tardy wind
#

(without having 5 cards played)

sturdy compass
sturdy compass
tardy wind
#
if straight_length >= (5 - (four_fingers and 1 or 0)) then
            straight = true
        end``` this dont make sense ? its always true
sturdy compass
#

That's base SMODS, not me

tardy wind
#

which code is yours if you can strip it down

sturdy compass
#

This right here is all I added (not counting the initial has_face_filled declaration at the top)

tardy wind
#

since I assume get_straigth actually doesnt make your hand become one

kindred heron
#

What is this juice up

sturdy compass
sturdy compass
#

I reread the question and I'm so sorry lol

#

but like wdym "what is it" lmao

tardy wind
sturdy compass
#

I agree lol

kindred heron
#

So i go to discord and ask

tall wharf
kindred heron
#

"Tf is juice up"

sturdy compass
hushed field
sturdy compass
#

byeah

kindred heron
#

Ok

sturdy compass
#

so I was answering the question right

#

the fkn gif made me think you already knew 😭

tardy wind
kindred heron
#

No lol

old bane
sturdy compass
#

SMODS ranks are weird man

tardy wind
#

the two is clearly filling in a gap it shouldnt

sturdy compass
#

And as I said, it goes for any 5-card hand

old bane
#

just so we can have it be like absolutely no straight is possible there

tardy wind
sturdy compass
#

I'll test that when I get the chance. I can't launch the game for a half hour or so due to classes lol (the screenshot was old)

tall wharf
#

how about this

sonic cedar
#

i am mining blocks and shit

tardy wind
#

also indexing via val works ? isnt vals a table so val is an object, not an index ?

sturdy compass
#

Imma be so real, I've stared at the function for so long and I cannot make sense of how it actually ticks

hushed field
tardy wind
sturdy compass
#

I'm aware. I've tried

kindred heron
#

Stupid problem
i cant get this thing to say 1.5 mult instead of nul ingame

sturdy compass
#

that gives you the first entry in the returned vars table

granite bane
#

Where do I find the message sent from sendDebugMessage

sturdy compass
kindred heron
#

So it has to be 1?

sturdy compass
#

yes

#

'{X:mult,C:white}X#1#{} Mult'

old bane
#

because each number inside # # represents a variable in loc_vars i.e. #1# is your first variable, #2# is your second, and so on

kindred heron
tall wharf
#

ill fix smth

old bane
# kindred heron

i noticed your loc_vars uses center instead of card, maybe try replacing center with card in both the function() and the return {vars =}

tall wharf
#

a streak of blue

#

no more placeholder

granite bane
#

why is this not working in deck code?
sendDebugMessage(tostring(G.playing_cards))

#

its crashin

sturdy compass
old bane
#

ah

#

but- but- my standard ‼️

kindred heron
#

No still

sturdy compass
#

show code

minor magnet
#

opinions?

kindred heron
sturdy compass
chrome widget
#

Is the information about stickers stored anywhere specific? Like how Seals are in G.P_SEALS, centers are in G.P_CENTERS? I want to add the sticker information on a consumable popup, do I just feed in G.localization.descriptions.other.[sticker]?

old bane
sturdy compass
minor magnet
pearl trout
kindred heron
#

Oh please don't let this be the bug

pearl trout
#

ohhh gotcha

sturdy compass
#

it is

#

variables are case sensitive lmao

old bane
tall wharf
#

there are literally 11 mods for Balatro on GB

tall wharf
#

😭

kindred heron
#

You were right

sturdy compass
#

Yeah mod hosting sites won't do you any good

kindred heron
#

It was

sturdy compass
#

yep

old bane
tepid crow
#

github is so much easier for mod creators and so much worse for users haha

minor furnace
#

apparently the latest version of steammodded causes this condition to fail inside of tarot packs if G.STATE == G.STATES.SELECTING_HAND or G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK or G.STATE == G.STATES.PLANET_PACK and #G.hand.cards > 1 then

old bane
#

tbf with balatro mods you can legit just download the "source code" and put it in it's really easy

hasty ravine
#

Will a context like this count for all hands that have a Pair in them (like Pair, Three of a kind, four of a kind, two pair, full house, etc)?

old bane
minor magnet
#

chips scored are damage

frosty dock
hasty ravine
#

Like this?

old bane
kindred heron
#

Forgot the sprite lol

minor magnet
hasty ravine
#

Okay yay

kindred heron
#

The true invisible joker

frosty dock
minor magnet
#

i'm probably going to put that in an info queue

old bane
hasty ravine
frosty dock
#

that doesn't just mean all hand types that inherently contain pairs though

minor furnace
frosty dock
#

if a flush contains a pair, that counts too

#

heck even straights can contain pairs

old bane
frosty dock
minor magnet
frosty dock
#

I think you're just forgetting about G.STATES.SMODS_BOOSTER_OPENED

sturdy compass
old bane
#

this one needed three info-queues because i didn't want the description to be fifty miles long

minor magnet
tall wharf
edgy reef
tall wharf
#

creative process

sonic cedar
final pewter
#

so i am following the example mod of Runtem for the random chance of being destroyed taking some bits of the gros michel 2 example and it wont understand what "context" means.
i have checked for typos and therre are none, any advice?

link to the example mod, the thing i attempted to copy is at line 377 (https://github.com/Steamodded/examples/blob/master/Mods/ExampleJokersMod/ModdedVanilla.lua)

GitHub

Steamodded example mods. Contribute to Steamodded/examples development by creating an account on GitHub.

old bane
#

i wonder if i can make a consumable that allows you to skip a blind and go straight to shop 🤔 I know it's possible to go into shop inside a blind because of cryptid's code cards but idk if it's possible to win/skip a blind through a consumable

tall wharf
#

this is the first time ever i feel like the fire i draw feels hot

granite bane
#

what function would I used to add a card to a deck

#

right now I'm doing

                local t_cards = {
                    "7",
                    "6",
                    "5",
                    "4",
                    "3",
                    "7",
                    "6",
                    "5",
                    "4",
                    "3"
            }
            G.playing_cards = []
                for i = #t_cards, 1, -1 do
            G.playing_cards[i] = create_playing_card({front = G.P_CARDS['Clubs'..'_'..t_cards[i]]})
 
                   -- G.playing_cards[i]:set_base(G.P_CARDS[random_s .. "_" .. random_r])
                   
                end```
#

and it's not working

#

so I assume it's either not create_playing_card, or I'm not using it right

#

oh nevermind G.playing_cards = [] doesn't work

#

huh.

#

oh wait

#

oof i used wrong brackets

#

i think

pseudo cape
#

I'm working on a joker and I'm attempting to make it play a sound when triggering, for some reason the sound isn't being registered though, and the game crashes when the joker triggers. All my folders are in the right place, and my sound registering looks like this:

SMODS.Sound:register_global()

SMODS.Sound ({
    key = 'yippie',
    path = 'yippie.ogg'
})

when I try to trigger it later I'm using this:

play_sound('yippie')
minor furnace
#
  if G.STATE == G.STATES.SELECTING_HAND or G.STATE == G.STATES.TAROT_PACK or G.STATE == G.STATES.SPECTRAL_PACK or G.STATE == G.STATES.PLANET_PACK and #G.hand.cards > 1 then
    return true
  end
end
tall wharf
onyx sonnet
#

is there a context for when a joker appears in general? like when its seen in shop or gets created by judgement

#

basically a context for when a joker starts existing in any shape or form

tall wharf
#

so when a specific joker appears

onyx sonnet
#

yea

tall wharf
#

you want it to do somethingh

onyx sonnet
#

its for a joker that uses random poker hands, i cant figure out how to randomize the first

onyx sonnet
tall wharf
#

like if the joker appear

#

as in

#

if you already have a joker and if another specific one appears

onyx sonnet
#

no

tall wharf
#

or just if joker appears

onyx sonnet
#

just if the joker itself appears

tall wharf
#

then you can use add to deck i believe

onyx sonnet
#

does that work for when it appears in shop before you buy it?

sturdy compass
#

I believe it only works after you purchase

onyx sonnet
#

grr

#

how does To Do List randomize its first poker hand

granite bane
#

is there somewhere I can find all the base functions?

#

stuff like "set_base"

#

I'm searching through the wiki on the steammodded page and can't find a lot of stuff

onyx sonnet
granite bane
#

I don't know how to do that

onyx sonnet
#

you can extract the exe for balatro with anything like 7zip or winrar

sturdy compass
#

What functionality are you going after?

onyx sonnet
#

This joker is meant to scale with each hand played of the same type as the random type, and the type changes at the end of the round

granite bane
minor furnace
#

and now back to my regularly scheduled trying to figure out how to make a global table variable that persists on reload

spring lantern
#

you can probably just create it in reset_game_globals

onyx sonnet
sturdy compass
onyx sonnet
#

i mostly look at the functions in jokers (inside the card.lua file)

minor furnace
spring lantern
#

huh

tender python
#

is there a file or place that has simple mechanics we can mix and match for those who aren't good with coding? example something like increasing xmult by x1 when a blind is selected. Sorry if this has been asked a lot!

spring lantern
#

works fine for my case

sturdy compass
granite bane
#

So from what I'm looking at, is G.playing_cards[i]:remove_card() right?

onyx sonnet
sturdy compass
minor furnace
spring lantern
#

in my case i create the table only if run_start

red flower
spring lantern
#

mostly because it changes dynamically

granite bane
#

ugh

onyx sonnet
granite bane
#

are there people out there who are able to legitimately just look at the source code and know exactly what to do?

sturdy compass
#

You're also probably gonna want to hook into init_game_objects so you can set an initial fallback value for when you're not mid-run

sturdy compass
granite bane
#

I'm looking at the source code and I just can't figure out what i'd do here