#đŸ’»ăƒ»modding-dev

1 messages · Page 225 of 1

strong jacinth
#
  1. I dont understand any of this ui.
latent portal
#

ITS NOT WORKING 😭 😭

onyx sonnet
#

why does this always set the edition to foil?

stuck seal
#

Okay so I have this in the code, now how do I make a run win instantly?

orchid thunder
#

WHAT CAN I USE TO DETECT IF A MOD IS LOADED

#

oop caps

strong jacinth
#

Smods

#

Click mods

orchid thunder
#

like in code

strong jacinth
#

Oh

#

Idk

frosty dock
#

next(SMODS.find_mod('abcdef'))

strong jacinth
#

Yo aure

#

Wait

frosty dock
#

no

#

why would I wait

modern kindle
#

Patience is a virtue

strong jacinth
#

cuz

#

why not

frosty dock
strong jacinth
#

How would I create a button that creates a popup. Im stuck on this.

long sun
#

(bump)

modern kindle
#

Fuck you're true

latent portal
#

does anyone know why this doesnt work 😭

frosty dock
#

plenty examples of this in smods and the game itself

orchid thunder
frosty dock
orchid thunder
#

ok

frosty dock
#

though it's called a mod ID normally

strong jacinth
#

If not, where in smods.

unkempt thicket
#

why does this not work? (the .no_suit and .always_scores)

frosty dock
#

any button, really

#

take the mods button or the consumables button in the collection

latent portal
#

hey john do you know why this isnt doing anything

frosty dock
#

it's a regex patch

#

and you're giving it the raw string

latent portal
#

what should i do instead

#

use '''this'''? orrrr

frosty dock
#

[patches.pattern]

#

you don't need a regex here

latent portal
#

oh okay

frosty dock
#

to make it work with regex, you would need to escape special characters

tall wharf
#

mr john how do i force the game to save properly

opal spade
red flower
#

hey aure how are you doing

frosty dock
latent portal
#

holy shit it worked

#

thanks john

opal spade
strong jacinth
frosty dock
#

that's so nice of you, I can't believe it

#

I'm doing great, ty

red flower
#

I'm glad to hear that

tall wharf
#

😭

#

are you doing exam soon

latent portal
#

im a fake ass bitch aure im sorry

frosty dock
strong jacinth
#

Do i need it?

frosty dock
#

no

#

if your overlay menu has tabs and can be reached by going back, you can have it

#

but not having it just amounts to always being thrown into the first tab and not whatever you last had selected

strong jacinth
frosty dock
#

like from the additions tab in a mod menu

red flower
#

if you close an overlay menu it closes everything so you need logic to go back to the previous one

frosty dock
#

pressing back will send you back to the menu you came from

strong jacinth
#

Ohh, thankis

onyx sonnet
#

Why does this only ever set the edition to foil?

strong jacinth
#

So what exactly do i need?

opal spade
# unkempt thicket So, this should work?

this would break the enhancement center
you're not supposed to change stuff about the center, you're supposed to use set_ability to assign the card a different center

frosty dock
tall wharf
#

ohhhh

#

driving licence?

opal spade
tall wharf
#

i've had mine for a bit

zealous glen
frosty dock
tall wharf
#

it's ok

#

are you going for manual gearshift or

zealous glen
#

I got a driver’s license then never drove

tall wharf
#

just automatic

zealous glen
#

I got it in 2019
 💀

tall wharf
#

💀

tall wharf
#

i believe i first got mine around 2.5 years ago

zealous glen
#

There was nowhere to go in 2020

distant grove
#

uh oh

zealous glen
tall wharf
#

😔

#

i renewed mine a few months ago

zealous glen
#

But, like, it’s not valid where I am now

frosty dock
zealous glen
#

That’s why I didn’t renew it

tall wharf
#

i have never driven a manual

#

i mean does beamng even count

strong jacinth
tall wharf
#

it shouldn't

zealous glen
#

I drove automatic for my training and the exam

zealous glen
tall wharf
#

i drive automatic

tall wharf
latent portal
#

okay so

frosty dock
#

I've had some lessons on manual which is why my license won't be restricted to automatic

latent portal
#

why doesn't THIS work

[[patches]]
[patches.pattern]
target = "functions/common_events.lua"
pattern = '''local stay_flipped = G.GAME and G.GAME.blind and G.GAME.blind:stay_flipped(to, card)'''
position = 'after'
match_indent = true
payload = '''
if G.GAME.modifiers.cherrysmod_allflipped and to == G.hand then
print "it should have worked but let's be real it probably didn't"
stay_flipped = true
end
'''
zealous glen
#

Wait you have restricted licenses?

frosty dock
#

no

tall wharf
#

my licence doesn't say that i have to drive automatic cars

#

but i drive automatic

zealous glen
#

I’ve never heard of such a thing

tall wharf
#

adult moment

zealous glen
#

License requiring specific gear type

tall wharf
#

i do not however have a motorcycle licence

frosty dock
latent portal
zealous glen
frosty dock
#

if I went fully automatic during training and test, I would only be allowed to drive automatic

zealous glen
#

Unless you meant it to someone else

opal spade
frosty dock
#

but I had some amount lessons on manual

dim lynx
#

is this an EU country thing?

zealous glen
#

Confused

dim lynx
#

or some weird state specific

frosty dock
#

oh

#

no I just misread that

#

I thought you were asking about my license being restricted

distant grove
#

anybody got the misprint code

#

i want to look at it real quick

strong jacinth
#

How would i create a tab in this.
-# Very proffesional UI code

dim lynx
frosty dock
distant grove
#

okay

zealous glen
#

I remember during my exam I had a moment of tension because the person driving in front of me let their car die which prompted me to stop to not crash into them. But you’re not supposed to let the car die or stop during the exam. Still got my license tho

dim lynx
#

what do you mean let their car die?

frosty dock
#

uh what, no stopping?

zealous glen
#

Not turning off the engine

frosty dock
#

you wouldn't have needed to turn the engine off though?

zealous glen
#

If you mishandle the stick it turns off

dim lynx
#

oh stalling

zealous glen
#

Yes

dim lynx
#

ive always called it stalling the car

zealous glen
#

Idk the anglophone jargon

dim lynx
#

yeah fair enough lol

frosty dock
#

me neither lmao

dim lynx
#

i failed my first driving test cause i failed the parallel park, perfect score elsewise but its an instant fail if no parallel park

frosty dock
#

we get retries for that I think

dim lynx
#

i retried the next day and got it. it was just cause i was borrowing a friends truck for exam and had never driven it before so i didnt know how big it was

zealous glen
#

An actual truck or just a pickup

dim lynx
#

pickup lol

zealous glen
#

Makes sense

#

There’s also something that’s a bit silly. For the first year of my license, any infraction is grounds for losing it. So the game theoretical optimal decision is to not drive for a year balatrojoker

frosty dock
zealous glen
#

Then people lose driving skill practice during that year

latent portal
#

WHAT THE FUCK

#

WHEN I RELOAD A SAVED CHALLENGE THE GAME JUST ACTS LIKE THERES NO CUSTOM RULES ? ??? ??

dim lynx
#

inside voices..

zealous glen
#

I know how dare lawmakers not know game theory

frosty dock
#

we have a 2 year probationary period

dim lynx
#

ours is a year, its called GDL license

#

ours meaning canada

zealous glen
#

Our license

frosty dock
#

lmao

dim lynx
#

it is more strict on losing it like yours victin, but also you cant let people with learners permit practice in your car

onyx sonnet
#

Why does this only ever set the edition to foil?

frosty dock
#

learners permit balatrojoker

zealous glen
strong jacinth
#

Why doesnt this work

dim lynx
#

learners permit is you can drive, but only with fully licensed person in the car

zealous glen
#

You need to take a minimum number of hours in theoretical and practical classes

dim lynx
#

you have to have it for a year before you can get regular license

zealous glen
#

Then you take theoretical and practical exams

dim lynx
#

here no classroom time is required, you can just take test

zealous glen
#

Oh and there was something else too

dim lynx
#

the learners permit test that is, stated before that you need that for a year before you can take road test

zealous glen
#

A psychotechnical test IIRC

zealous glen
frosty dock
dim lynx
#

well most people get the learners test when they are young, so doesnt affect them much as they cant afford car or anything anyways during that time

zealous glen
#

The theoretical classes were pretty useless. I just used the time to read the textbook

dim lynx
#

here if you complete driving school, ie the classroom stuff and things, your insurance will be significantly cheaper

#

so its worth doing

frosty dock
#

theory classes are mandatory here

#

though they're also not that useful for the theory test

#

you just have to know all of the questions lmao

strong jacinth
zealous glen
#

I mean acing the theoretical test just requires knowing the law*

#

It’s not that hard

#

*I lied—it requires understanding the poorly written, multiple choice questions

frosty dock
#

that's the spirit

zealous glen
#

Really why are poorly written tests so common

dim lynx
#

i dont know if its true but ive heard they are written poorly/confusing to catch people who are skimming the questions

zealous glen
#

My issue isn’t with the questions being tricky

#

They can be tricky but not poorly written

#

Like “A could mean B” even though realistically that’s not what they meant

orchid thunder
dim lynx
#

send the code blueprint again

orchid thunder
#
SMODS.Joker {
            name = "mmj-beemario",
            key = "beemario",
            config = { extra = { retriggers = 2 } },
            pos = { x = 0, y = 2 },
            soul_pos = { x = 1, y = 2 },
            rarity = "mariojoker",
            order = 85,
            cost = 20,
            blueprint_compat = true,
            immutable = true,
            loc_vars = function(self, info_queue, center)
                return { vars = { center.ability.extra.retriggers } }
            end,
            atlas = "marioatlas",
            calculate = function(self, card, context)
                if context.retrigger_joker_check and not context.retrigger_joker and context.other_card ~= self then
                    return {
                        message = localize("k_again_ex"),
                        repetitions = card.ability.extra.retriggers,
                        card = card,
                    }
                end
            end,
            cry_credits = {
                idea = {
                    "MarioFan597"
                },
                art = {
                    "Linus Goof Balls",
                    "MarioFan597",
                },
                code = {
                    "SMG9000"
                }
            },
        }
orchid thunder
#

also this if needed

local gradient = SMODS.Gradient{
        key = "mariogradient",
        colours = {
            HEX('E52521'),
            HEX('43B047'),
            HEX('049CD8'),
            HEX('FBD000')
        }

    }

SMODS.Rarity{
    key = "mariojoker",
    badge_colour = gradient,
    default_weight = 0,
    pools = {
        ["Joker"] = true,
    }
}
#

but yeah i have no idea why its crashing

#

it is in this if statement

if next(SMODS.find_mod('Beelatro')) then
end
tall wharf
#

dawg

zealous glen
#

<@&1133519078540185692>

tall wharf
#

<@&1133519078540185692>

#

AH I AM SLOW AGAIN

orchid thunder
#

GET OUT

unkempt thicket
#

Am i using this correctly? G.hand.highlighted[i]:set_ability(G.P_CENTERS.always_scores, nil, true)

zealous glen
#

Or maybe reuse Bell’s

orchid thunder
zealous glen
#

Would need a small patch but I can give the patch to you

#

I do think this type of concept is very weak and pointless

tall wharf
#

¯_(ツ)_/¯

formal parrot
#

Hello

zealous glen
#

@tall wharf anyways do you watch the Bell patch or are you implementing your own variable?

tall wharf
#

i already have like akyrs_forced_selection or something

#

the problem being it doesn't save the selection when i go back to main menu and come back

tall wharf
#

i tried forcing save on card selection

zealous glen
#

Try using the Bell’s variable and see if that works

#

Or

#

Maybe the variable is saved

#

But you need to reselect the cards

#

Maybe Bell does it manually

tall wharf
#

bell does it every hand

#

which the game saves automatically

zealous glen
#

right?

tall wharf
#

yea

#

it should

stuck seal
#

Is this the correct code for winning a run?
G.STATE_COMPLETE = true

zealous glen
tall wharf
tall wharf
red flower
tall wharf
#

if i click faster than the game could save

#

it does save

#

check the video for reference

stuck seal
red flower
zealous glen
#

DebugPlus has a button for it

#

You can see what that does

zealous glen
#

Although they might be able to crash the game to leave anyways

stuck seal
stuck seal
zealous glen
red flower
stuck seal
latent portal
#

hey guys im back

#

im still trying to get this to work

stuck seal
zealous glen
#

So see what happens when you win a Blind

stuck seal
stuck seal
zealous glen
#

When you win the game, it pops up a menu before you can proceed to the next shop

#

So there’s something there

chrome widget
#

Can you use both color and size control tags in a description? I attempted to use them here but it results in no size change and just the inactive color

"a hovered {C:attention}booster pack{}",
"{C:inactive, s:0.5}This Joker changes seed progression{}"```
unkempt thicket
#

Am i using this correctly? G.hand.highlighted[i]:set_ability(G.P_CENTERS.always_scores, nil, true)

stuck seal
zealous glen
#

Again the winning condition is already there

#

I imagine it’s connected to the Ante

chrome widget
zealous glen
zealous glen
orchid thunder
zealous glen
#

on Jimbo’s teeth

stuck seal
latent portal
#

OKAY SO

chrome widget
#

Ooo! That's a fun idea

latent portal
#

I DONT KNOW WHY

#

BUT IM PRETTY SURE THAT

#

draw_card

#

HANDLES DRAWING CARDS TO THE SCREEN

#

AND NOT DRAWING CARDS TO YOUR HAND

zealous glen
tall wharf
#

😭

latent portal
#

YOU CAN SEE WHY THIS CONFUSED ME.

zealous glen
#

I can’t even blame thunk

zealous glen
#

Blame the English language instead

latent portal
#

okay so

#

then wheres the bit of code that actually DRAWS cards??

zealous glen
latent portal
#

Where's that?

zealous glen
#

There’s also another function that takes both source and destination IIRC

zealous glen
zealous glen
#

Either/or

#

@latent portal also which cards are you drawing

red flower
# latent portal Where's that?

just got to my pc, this worked

[[patches]]
[patches.pattern]
target = "cardarea.lua"
pattern = "local stay_flipped = G.GAME and G.GAME.blind and G.GAME.blind:stay_flipped(self, card)"
position = 'after'
match_indent = true
payload = '''
if self == G.hand then
    stay_flipped = true
end
'''
stuck seal
latent portal
#

thank u tho

#

i've been working with the wrong func the whole time 😭

zealous glen
red flower
zealous glen
#

not even

#

English language

#

It’s its fault not thunk’s for once

red flower
#

i hate English can we patch it out of the game

turbid maple
#

your wish is granted the balatro source code is now entirely in chinese

red flower
#

torre de babel indeed

latent portal
#

yknow what

zealous glen
latent portal
#

it wasnt worth it

red flower
#

lmao

latent portal
#

this challenge fucking sucks 😭

zealous glen
tall wharf
zealous glen
red flower
#

they work well with the cards im making

#

nil

zealous glen
#

They’re all named Joker

#

Can only have 3 v_v

red flower
#

it works like the old gameboy games where you can have 99

zealous glen
#

Now where’s the Balatro archetype

turbid maple
#

weege board deck that spells jimbo

latent portal
frosty dock
latent portal
#

it fucking sucks

frosty dock
#

weegee

red flower
#

if u get all the jimbo letters he comes out of the screen and becomes ur friend

frosty dock
#

K O N G

unkempt thicket
#

Am i using this correctly? G.hand.highlighted[i]:set_ability(G.P_CENTERS.always_scores, nil, true)

frosty dock
#

there is no always_scores center

forest ivy
#

gng, how can i do something when round ends, decrease extra variable by 3, add money and destroy the joker?

zealous glen
frosty dock
#

if you've made one, it needs prefixes

forest ivy
frosty dock
#

if you haven't, set some other flag and hook SMODS.always_scores or use splash context

zealous glen
long sun
#

(bump)

unkempt thicket
forest ivy
#

basically how do i add player money, destroy joker that player has, decrease variable and do something when round ends

#

as 4 diff things

tall wharf
#

shaders are a fuck

frosty dock
#

like _card.ability.my_always_scores = true

#

of course you can make an enhancement that always scores

#

like I said then you just need to add prefixes

latent portal
#

either way CHALLENGE DONE YAY!!

tall wharf
#

accidentally laucnhed jackbox instead of balala

maiden phoenix
#

balatro jackbox gaming

hard flume
#

how is this jack?

#

oh wait let me size it up real quick

turbid maple
tall wharf
#

did you add gender to balatro???

hard flume
tall wharf
#

😭

hard flume
distant grove
#

im trying to get the misprint code

#

uhhh

hard flume
tall wharf
#

😭

#

wifi

green plank
#

this is an insane joker but it is an inside joke in this community

tall wharf
#

speaker

distant grove
karmic heart
#

SANTA

#

I KNOW HIM

distant grove
#

god i loved elf

tall wharf
#

BLUETOOTH

distant grove
#

huh

gaunt wolf
distant grove
#

lol

#

anybody got the misprint code?

#

i cant seem to find it

green plank
distant grove
#

i dont tink your supposed to have ==

#

but idk

green plank
#

it's an additive joker

distant grove
#

ok

green plank
#

sort of like runner or wee joker

distant grove
#

oh so its adding to itself?

stray warren
#

Why are you using 'self' instead of 'card'

green plank
#

idk what i'm doing

#

literally first time modding

stray warren
#

Replace self with card

distant grove
#

do you know how to do a random number for mult?

stray warren
#

Keep the self parameter, just change the usages to card

distant grove
#

cause i cant find the misprint code

red flower
distant grove
#

alr thanks man

green plank
#

it's supposed to be at ^30

#

not at ^10

forest ivy
#

how do i add money to the player ?

distant grove
#

like gold joker?

forest ivy
#

basically yes

distant grove
#

ok

#

you can find the gold joker code there

forest ivy
#

so this isn't even written in documentation

#

💔

distant grove
#

it sorta is?

#

actually yea idk

stray warren
#

nvm, I see your issue

#

in your return block you are returning '10', not 'card.ability.extra.e_mult_mod' for 'Emult_mod'

glad osprey
#

could someone like make a mod that just makes judgement a different colour than the other tarots

chrome widget
#

If I wanted to grab every booster pack in the game (included modded ones), do I just iterate through G.P_CENTERS and grab keys based on the prefix?

chrome widget
#

oh nope, found it

#

Yeah, sorry, slow on the draw there

#

The collection uses the pool

forest ivy
#

another question, how do i destroy a joker ?

green plank
#

yea idk what i'm doing

red flower
forest ivy
#

and it decreases by 3 every time

#

he ends the shop

sacred lily
#

how do i make it that you get extra money every time a card is sold

#

(when a specific joker is in hand)

turbid maple
#

theres a context for selling cards

forest ivy
sacred lily
#

what's that context?

simple mural
#

How can i add an effect for the joker when its scored

sacred lily
#

i'll see if i can figure the rest out myself this time

stray warren
turbid maple
#

try searching for campfire

#

in cards.lua

sacred lily
#

alright will do

red flower
weak gate
#

What's a good mod with a custom card area I could go learn from?

stray warren
# green plank

Yeah, it needs to be e_mult in the return block, not e_mult_mod. that's my bad

red flower
#

joyousspring 🙂

forest ivy
#

kinda late

sacred lily
#

thamnks

turbid maple
# sacred lily alright will do

as for earning money its ease_dollars(amount) unless someone comes along and tells me this is obsolete theres a smod functionalith for it

simple mural
red flower
turbid maple
#

what the hell!!!

sacred lily
#

..god damnit

turbid maple
#

fair I guess ease_dollars is a strange name for a function that gives you money

sacred lily
#

well it helps you get dollars with ease so idk

stray warren
# green plank

Also, you need to increment e_mult instead of e_mult_mod

forest ivy
#

yee ````give_me_money()``` would work better đŸ”„

turbid maple
#

get_that_bread()

forest ivy
#

pleasemoney()

hard flume
#

Hihi :)

forest ivy
#

how do u do that

#

in 1 line

#

đŸ€”

stray warren
#

Do you ever see the Joker actually upgarde?

green plank
#

that's what i'm trying to do

#

and no

simple mural
stray warren
#

I mean like the upgrade message, does that ever show up

green plank
#

it doesn't show underneath the joker but on the cards played

simple mural
#

How can i add animation for the joker whent its scores

red flower
#

what kind of animation

stray warren
#

I can copy the code real quick and try to work through it

#

If you would be so kind as to copy and paste the code rather than send an image

green plank
#
    key = 'gptm',
    loc_txt = {
      name = 'Gay People',
      text = {
        "{X:black,C:dark_edition,s:1.25}+^#2#{} Mult",
        "per {C:attention}10{} played",
        "{C:inactive}(Currently {C:dark_edition}^#2#{C:inactive} Mult)",
        spriter('jesterjamz')
      }
    },
    config = {extra = {e_mult = 0, e_mult_mod = 10} },
    rarity = "cry_epic",
    unlocked = true,
    discovered = true,
    blueprint_compat = false,
    eternal_compat = true,
    perishable_compat = false,
    atlas = 'gaypeople',
    pos = { x = 0, y = 0 },
    cost = 10,
    loc_vars = function(self, info_queue, center)
        return {vars = {center.ability.extra.e_mult, center.ability.extra.e_mult_mod}}
    end,
    calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then
            if context.other_card:get_id() == 10 then
                card.ability.extra.e_mult = card.ability.extra.e_mult + card.ability.extra.e_mult_mod
                return {
                    Emult_mod = card.ability.extra.e_mult,
                    card = context.other_card,
                    message = '+^' .. card.ability.extra.e_mult .. ' Mult'
                }, true
                end
            end
        end
}```
#

there

simple mural
#

For example, like the Joker Stencil

green plank
#

oh it is actually working

#

but the number doesn't update on the joker

red flower
simple mural
red flower
#

the mult underneath?

#

that should be automatically added

stiff locust
#

how do I check what type of card a card is

red flower
stray warren
green plank
#

so it's #1# instead of #2#

stray warren
#

In your case, yes

tall apex
#

does anyone know if i can make an edition destroy different jokers/playing cards? c:

green plank
#

i'm asking the people who came up with the idea to clarify if the exponentiation applies to only if 10's are played or even with no 10's played

#

it's half and half

red flower
#

you should get one more ideas person to break the tie

green plank
#

that is what they said

red flower
#

jesterjamz sounds more sure

sullen fern
#

now how do i make custom suits

hushed field
#

you hire a tailor

stray warren
simple mural
#

Why is it not counted even though the number changes?

stray warren
#

Wdym? I'm confused on why you have that string in your message block

#

Also you are comparing card.ability.extra.now to a string of an integer, when it is being assigned an integer in the context check below

simple mural
stray warren
#

Doing that will print that string literally

#

Unless things have changed in Steamodded recently and I do not know about that

green plank
#

ok it does work but i didn't update the initial amount of exponentional mult

#

because it's supposed to start at ^10

stray warren
#

Because the comment you left was a little ambiguous

tall wharf
#

let's go

rapid stag
#

still struggling with trying to work this out in case anyone knows anything

tall apex
#

i like paperback c:

simple mural
tall wharf
#

😭

#

is this Schrödinger's

simple mural
#

And it will change after each hand played.

stray warren
#

So you want the number to be randomly generated after every hand played, correct?

simple mural
stray warren
#

Then you should be in context.after, not context.final_scoring_step

#

and probably remove the or context.ability.extra.now == "1" since it's comparing a number to a string. It will always be false

simple mural
stray warren
#

Feel free to ask anything, that's what this channel is for

simple mural
#

How to find out the first start of the game, and how to save the value after restarting?

stray warren
#

If it is in the ability table (in config in the declaration) the game will save the value automatically

#

And what do you mean find out the first start of the game? Like what the value is when the run is first started?

simple mural
#

I want to get a random value also when I first start the run

stray warren
#

So that when you first pick up the Joker from the shop (or other means) it's a random value?

orchid thunder
#

why is this error

simple mural
#

Yea

stray warren
#

I believe you can do that in the set_ability function in the declaration

simple mural
stray warren
#

Add it to the declaration. You know how loc_vars and calculate are defined. Add it in there, and then add the random number generator code from above into that function's body

#

I can try to find an example for you

simple mural
stray warren
#

In this one, I defined set_ability and did some assignments inside it

#

That will show up on the Joker's initial spawning in

#

Does that make sense?

stray warren
stray warren
#

Yeah I'm not sure, cause that's how Cryptid does its rarities

turbid maple
#

The struggle of needing to implement a new piece of UI and struggling to find where it can fucking fit

simple mural
#

why

stray warren
#

It doesn't do the xChips?

simple mural
#

But i see a value in the joker description

sacred lily
#

is there a way to make it so you lose the game from a joker

chrome widget
#

What is the lightest identifying information for an instanced center? Its node id?

stray warren
# simple mural Yea

Try replacing the math.random call with pseudorandom('xChips', card.ability.extra.min, card.ability.extra.max). But also, you need to be using context.joker_main, not context.main_joker

exotic island
#

crazy joker is looking... crazy...

chrome widget
#

I guess the better question, is it reasonable to use an entire card table as the key in a map?

simple mural
stray warren
#

Yeah, it was

latent portal
#

hey guys hows this deck art look

turbid maple
latent portal
#

oh what

latent portal
#

why does it look like that what

#

hold on

sacred lily
#

ok

red flower
#

this is easier

#

but yeah that probably saves data better

latent portal
#

there we go

#

how does it look?

simple mural
sacred lily
#

it does "x5 mult, 1 in 50 chance per played card that you lose the game"

turbid maple
#

refer to the link I sent you, it just does this in the calculate fucntion

sacred lily
#

ok

tough hearth
#

What's the difference between mult = and mult_mod =? (Noob here)

latent portal
#

hey quick question

#

is it possible to add new decks

tough hearth
#

yes

latent portal
#

does it say that anywhere in the docs

tall wharf
tough hearth
tall wharf
latent portal
tall wharf
simple mural
tall wharf
spring lantern
#

does most_played_poker_hand just never get used

#

whats going on

#

and why did the ui break :(

tall wharf
#

:(

#

i would look in the Ox

spring lantern
#

it does use the same variable i'm using

#

so that's not the issue

tall wharf
#

:(

red flower
#

i think it only updates when you beat a boss

spring lantern
#

the fuck

#

😭

#

am i gonna have to patch this shit

red flower
#

why, just calculate it yourself

spring lantern
#

guhh

#

where can i find how many times a hands been played again

red flower
#

this is the code that updates it

quartz ravine
#

Hey, @red flower

I was playing Yugioh with my son earlier today and he was shook when I used Monster Reborn to summon his Eldlich into my hand to use him. I thought you might appreciate that

red flower
#

into your hand?

quartz ravine
#

Well onto my field! Eldlich is very cool, it was a blast to use him with my manadium cards

red flower
#

oh yeah monster reborn is cool, it's sad that it's not played that much anymore

spring lantern
latent portal
tall wharf
#

is it real deal

latent portal
#

its really real super real supreme

spring lantern
#

see the video

#

it doesn't show the hand name or the level, and the chips/mult stay there

red flower
#

oh i never used that

#

i would complain to the smods people :))

spring lantern
#

shiet

#

hold on let me test again just to make sure it's not just some weirdness from continuing a run

red flower
#

that code seems correct so I can't see how that would happen on your end

#

other than something like what you just said

spring lantern
#

okay yeah it does the same thing

#

gahh time to open up an issue i guess?

forest ivy
#

how do i make the text yellow?

#

like for the money

red flower
#

{C:money}

forest ivy
#

peak, ty

quartz ravine
#

Oh man, this is a fun joker!!

forest ivy
#

pawlatro

tall apex
#

omg cuuuuuuuuute c:

latent portal
#

hey whats the command to change a cards suit again

red flower
#

SMODS.change_base

latent portal
#

does that work for suits?

#

i thought it was only ranks

red flower
hard flume
#

Hihi chat! I'm almost done with my custom suit!!!

tall apex
#

oh nice! c:

#

rn im working on a joker that forces the music to change

#

thats it nothing else LMAO

hard flume
#

I'm working on a collection mod that adds a bunch of random ideas

sullen fern
latent portal
#

is it possible to add an info_queue to a deck

#

because i tried to and it crashed

sullen fern
#

why does it still show error

timid oyster
#

I'm trying to add a modicon but it's not showing up. Do I need anything more than this in the file?

#

This is literally that entire file so I'm wondering if I need anything else

tall wharf
sullen fern
forest ivy
#

is it possible to do something at the start of the shop?

#

not at the end

tall wharf
#

i think they just added like context for start of shop

plush cove
#

in newer versions of SMODS

#

two of my own Jokers use it :3

latent portal
#

hey guys

forest ivy
#

and they didnt add it to docs yet

#

peak

#

ty

latent portal
#

im trying to make a bit of text display a tooltip when i hover over it

#

im doing it right and nothings happening

plush cove
#

show your code

forest ivy
#

is there a {C} color like this ?

plush cove
#

{C:attention}

forest ivy
#

ty

latent portal
#
loc_txt = {
        name = "DIY Deck",
        text = {
            "Start with a deck",
            "full of {C:attention,T:cherrysmod_doodle_info}Doodle Cards{}"
        }
    },```
forest ivy
#

why dont they just call them yellow , green, orange💔

simple mural
# simple mural

But i have one problem... The value changes faster than the calculation goes, although it calculates correctly vedalUUH

sullen fern
simple mural
#

And also changing the value has no visual effect

plush cove
latent portal
#
descriptions = {
        Other = {
            cherrysmod_doodle_info = {
                name = 'Doodle Card',
                text = {
                    'Grants {C:chips}double chips{}',
                    'Has no suit',
                },```
plush cove
#

is Doodle an enhancement or an edition?

#

can you have Lucky Doodle Cards or Polychrome Doodle Cards or Lucky Polychrome Doodle Cards?

forest ivy
#

peak

#

took me so long to remake one random simple joker

#

from reddit

forest ivy
sullen fern
#

can anyone help me with figuring out what's wrong with my localization file

latent portal
#

It's a big old bodge

simple mural
latent portal
#

other two what

#

oh

#

theyre offscreen

sullen fern
plush cove
latent portal
#

Yes

#

You can have a Lucky Polychrome Red Seal Doodle card

sullen fern
#

so many errors, and yet i don't know how to deal with them...

latent portal
#

The weirdest thing is, the tooltip works fine with the Doodle Cards themselves

#

But not for the deck

sullen fern
#

sorry if im being annoying about this

#

it's just that i'm really confused

#

the prefix IS correct

#

which is "puyo"

hard flume
#

they're in the game!!!

simple mural
sullen fern
#

females

hard flume
#

yes. i added a women suit to the game

simple mural
#

This is a new suit?

hard flume
#

yes

tall wharf
#

😭

turbid maple
#

show us the mtf king

tall wharf
exotic island
#

BEHOLD my masterpiece

hard flume
exotic island
#

crazy joker

turbid maple
hard flume
#

here's all of the suit

quartz ravine
#

Weird all of my cuustom jokers appear in the shop even if I already have them in my jokers and don't have showman

tall wharf
#

sliced edition

quartz ravine
# tall wharf

What if it triggered three times and applied 0.95 xmult?

tall wharf
#

no halving value

tall apex
#

does anyone know how to make a joker call for different music when it spawns? im struggling so hard w/ this

exotic island
tall apex
quartz ravine
#

I love it triggering many times, but halving the result. So funny

quartz ravine
cerulean rose
#

look at jimball

unkempt thicket
#

What determines how long something a tag gives lasts? like how the juggle one gives +3 hand size for a round, what makes it only one round how can I increase that amount?

tall apex
simple mural
#

I have an idea for the joker
It will gain xmult equal to the current round, but if you don't win the round with this joker for one hand, the game is considered lost vedalUUH

#

all or nothing joker

plush cove
tall apex
#

heck i cant find where jimball calls for the myoosic . 3.

simple mural
tall wharf
#

uh

latent portal
#

For SOME reason

plush cove
#

w!!!

latent portal
#

The mouse-over text can't reference entries labeled "Other"

tall wharf
maiden phoenix
#

That's such a silly joker effect

exotic island
#

look at my boy, hes beautiful

hard flume
#

Now... Do I work on my new ranks or do I add Jokers for the suit first?

tall apex
plush cove
#
SMODS.Sound({
    key = "music_jimball",
    path = "music_jimball.ogg",
    sync = false,
    pitch = 1,
    select_music_track = function()
        return next(find_joker("cry-Jimball"))
            and Cryptid_config.Cryptid
            and Cryptid_config.Cryptid.jimball_music
            -- Lowering priority for edition Jimballs later
            and 7
    end,
})```
#

the music isn't handled by the Joker itself

tall apex
#

i am a foolish fool

simple mural
#

Joker gains x0.5 mult per card in the deck but destroys a random card after each hand played vedalUUH

tall apex
plush cove
latent portal
#

WHY ISNT THIS STUPID TOOLTIP WORKING

#

UGGHGHHHHG

tall apex
#

sorry im new to lua, i appreciate the help <3

hidden timber
tall apex
#

woagh

tall apex
quartz ravine
#

Man you can spend a lot of time working on shaders. I am trying to make a sparkling effect like on Yugioh Secret / Ultra Rare cards and boy oh boy is it not easy

latent portal
#

hey foxdeploy

#

you sound smart can i ask u for help with something

tall apex
simple mural
#

It's so interesting to write a mod for my things and play with them

quartz ravine
#

sure, ask away

simple mural
latent portal
#

ok so

#

im trying to get a tooltip to appear when i hover over text

#

but it REFUSES TO WORK

latent portal
latent portal
unkempt thicket
#

What determines how long something a tag gives lasts? like how the juggle one gives +3 hand size for a round, what makes it only one round how can I increase that amount?

quartz ravine
#

Take a look at @tall wharf 's mod, they got this working very well.

#

I haven't tried it myself

forest ivy
# tall wharf

somebody gotta tell this joker he will be the only reason the score will catch fire

tall apex
#

ugh, it's still not calling the music

#

why sounnds hard

#

I GOT IT

#

this is the stupidest fucking joker and it's caused me so much trouble oml

safe cobalt
#

new joker created

tall apex
safe cobalt
#

it costs 19 in the shop

modern kindle
#

that would make sense considering it is called the 19 dollar fortnite card

#

it is not called the anything but 19 dollar

safe cobalt
#

fr

plush cove
#

when you sell it, you should gain $0 because yes, you're giving it away

tall apex
safe cobalt
#

true true

quartz ravine
#

that borked me for like three hours till I finally asked Mr. Steammodded how it works

tall apex
quartz ravine
#

ugh, that sucks!

tall apex
#

let me show you my perfectly balanced and functional joker

distant grove
#

19 dolla fortnite card

#

wow!

tall apex
#

best joker.

quartz ravine
#

lol!

distant grove
#

big iron

tall apex
#

this is all it does.

distant grove
#

true

tall apex
#

and it's legendary

#

so you can waste soul on it LMAO

distant grove
#

fr!

tall apex
#

that's it's entire purpose to absolutely screw you out of a legendary

stray wing
#

I have a sound I am adding to one of my jokers, and I think it is either being pitched up or played faster - is there a way to check / prevent this?

tall apex
#

but other than that idk

stray wing
#

oh wait it might be because sound effects increase in pitch when your score goes up (?)

#

Like, in scoring as the flames come out the sound effects pitch up

tall apex
#

ohh they do do that

stray wing
#

Anyone know if there's a way to avoid that / disable it for a specific sound effect?

tall apex
#

that i do not know sorry friend

stray wing
#

thanks anyway

#

I'm at the 90% mark of coding this mod, we will figure it out somehow

faint yacht
#

return { pitch = 1 }

stray wing
stray wing
stray wing
tall apex
#

yibeeeeeeeeee

#

i was wrong that it only applies to music tracks tho

stray wing
#

Well if I had tried it when you had said it, it would have worked so I'd call that a win

forest ivy
#

gng, can somebody slide me a classic joker sprite ?

simple mural
#

How can i get a hands?

#

And how can i instantly end the run?

unkempt thicket
#

How can i make a tag that gives something for longer than a round, like hand size, hands, discards, slots? (then remove after said time)

dusky island
#

how I mod this game?

#

I want to make joker cards :(

turbid maple
#

I wanted to add custom localization fields to a joker is patching init_localization and all that a dumb idea

red flower
#

as in more boxes in the description?

turbid maple
#

yeah

#

not like, append to info_queue in a way but fit more boxes in the joker UI

red flower
#

yeah you can use init_localization to add those to the localization file and the generate_ui function on the joker to actually add the boxes

#

well not the extra boxes bit but something similar

turbid maple
#

aight 👍

#

doing this does look like something that could easily part of SMODS I wonder if a PR for this would be nice

exotic island
turbid maple
#

.. why the hell can name be a table?

sleek siren
#

How would I be able to replace a function with lovely?

turbid maple
#

you want to completely replace it?

sleek siren
#

Yes ^^

turbid maple
#

if you're gonna completely rewrite it it'd be simpler to just redefine it in your lua code

sleek siren
#

Oh? How so?

turbid maple
#

you can just... write your version of the function with the same name

#

then the game just calls your version instead

#

it's fucked

sleek siren
#

Oh! Ok ^^ Thank you!

tepid crow
#

also, completely replacing a function is a big no-no for mod compatibility

sleek siren
#

Ahhh, fair

manic rune
# dusky island how I mod this game?

Balatro Modding Starter Pack, the copypasta :3

If you are new to modding, make sure that you understand the basics of LUA first before proceeding. There are a lot of good tutorials out there, so I won't link one here :)

For beginners, here are some links you should check out in order to familiarize yourself with what you are getting into:

  1. https://github.com/Steamodded/smods/wiki/Your-First-Mod
    ◩ This should give you some instructions, and it also serves as Steamodded's Documentation. Please read it :)
  2. https://www.youtube.com/watch?v=Zp-4U5TlbxY&t=7s
    ◩ A Modding Tutorial video. It is a bit outdated, but generally does well at telling you what to do.
    -# (Note: There are some parts in the video where they called cards "center". Don't do that, it's bad practice, they are cards.)
  3. https://github.com/Steamodded/examples/blob/master/Mods/EditionExamples/EditionExamples.lua
    ◩ It's good practice to check out the example mods, as well as other mods too for reference.

Once again, remember to read the Documentation. There also other links which you might find useful, such as:

  1. https://github.com/ethangreen-dev/lovely-injector?tab=readme-ov-file#patches
    ◩ Patches.
  2. https://discord.com/channels/1116389027176787968/1228149931257237664
    ◩ DebugPlus, a very useful mod for modding.
  3. https://forums.kleientertainment.com/forums/topic/129557-tutorial-function-hooking-and-you/
    ◩ Hooks.

-# Sent: 10 times

sleek siren
#

Thank you! ^^

tepid crow
#

I love the counter lmfao

manic rune
#

also, if i want to make it so that after a hand is played, a card in hand is destroyed, what would i need to do?

initially thought that context.destroying_card will work too, but it seems it doesn't

manic rune
wintry solar
#

context.destroy_card is the actual context, destroying_card is just a unique flag for scored cards

manic rune
#

o

unkempt thicket
#

How can i make a tag give something for an ante instead of a round like hand size?

turbid maple
# sleek siren Ahhh, fair

If this works for you you can "hook" the function. Here's an example:

local _some_balatro_function = some_balatro_function
function some_balatro_function(args)
  local ret = _some_balatro_function(args)
  if args.yourmod_flag then
    ret.rig_wheel_of_fortune = true
  end
  return ret
end
#

oh init_localiztion refuses to parse the center if text isn't present

#

aight fine

weak gate
#

is there a way to force a boss blind using DebugPlus? I need to test a Joker in Amber Acorn

turbid maple
#

I just reroll until I get it

weak gate
#

well, impractical to play, or skip/use Win Blind 23 times...

turbid maple
#

+1 Ante

weak gate
#

aha yes

turbid maple
#

Skip to Ante 8 Boss Reroll til Acorn Save State

#

👍

weak gate
#

and then eval G.FUNCS.reroll_boss() neat

tepid crow
main mica
#

WHAAAAT omg

#

secret feature :0

tepid crow
#

I mean... if the question is "how do I spawn X in" the answer is usually "press 3 on it in the collection screen"

weak gate
#

wouldn't cross my mind

tepid crow
#

now you know 🙃

latent portal
#

question!

#

is there a variable that stores your highest hand score (same run)?

manic rune
#

you would probably need a hook for that

#

-# or maybe even a patch, depends

tepid crow
#

doesn't the continue run screen display your highest hand score?

gilded narwhal
#

hey gang is there a context for changing antes

tepid crow
manic rune
gilded narwhal
#

or would i have to do like if context.end_of_round and G.GAME.blind.boss

latent portal
#

because i had this idea for a joker

Dumbbell
Gain $5 when you beat your highest hand score this run
(Score to beat: X chips)

tepid crow
manic rune
#

hmm

topaz monolith
#

Can the repetition thing in the return part affect the joker itself? Like I want it to get a 1/3 chance to retrigger itself, which grants Xmult. If so, how would it look like?

turbid maple
#

what the fuck do you want from me

tall apex
#

hey do you guys know the text color for blue

#

is it like c:chips or something

forest ivy
#

really

#

important

#

thing

#

'dont be afraid of asking questions'

manic rune
#

oh right

#

i will add that, thank

forest ivy
#

on fucking god id never make anything if i wasnt asking random easy questions here

topaz monolith
manic rune
#

dude, same.

forest ivy
tall apex
#

my guess was right c:

topaz monolith
#

Looking in the source files for balatro and the color location, yeah, there is actually a bunch. globals.lua

mellow marsh
#

where should i report a smods bug? the highlighted lines crash if i am setting the edition of a negative card when it hasn't been added to an area and G.hand is nil (which i'm realizing as i type this that that is an incredibly niche situation which i can resolve myself, i was accidentally setting my card to be inherently negative in 2 places so it crashed when viewed in the collection)

chrome widget
#

We predicting some card packs

chrome widget
tall apex
#

one more question, how specifically do you get card values to description? I did it before but don't really understand it

tall apex
chrome widget
#

In the object's loc_vars function, you return a table for the UI display, containing another table vars = {[value]}

The description reads the values inside the vars table by index when you use a tag like #1#, #2#, etc

merry raven
#

I need to learn how to make UI boxes that display cards like that, I got an Edition that works like a pocket discard pile so I need to learn how to do that

chrome widget
#

So at the bottom of loc_vars

return { vars = { 'test'} }

And then if your description is simply the string "#1#", it'll display the word 'test'

#

Because it's accessing and printing out the first value in the vars table to replace that 1 tag

tall apex
#

ohhhhhhh

mellow marsh
#

hmm, is there a way to get an addition to not be added to the collection? (specifically stickers if that matters)

#

i added something similar to the stake win stickers for my mod and don't want them showing up as if they were gameplay stickers

chrome widget
#

I believe I saw something in the docs to specifically hide something from the collection, lemme check

tall apex
#

wait is this wrong?

merry raven
#

It's card and not center isn't it? Or is it interchangeable?

mellow marsh
#

tis just a variable name so it wouldnt affect whether it works or not

#

typically it's called card though yeah

chrome widget
mellow marsh
#

ah convenient thank you

chrome widget
latent portal
#

hey guys

#

quick little ask

pulsar flower
chrome widget
tall apex
#

is not.. :c

latent portal
#

is there a command to force a joker to display a message?

tall wharf
chrome widget
#

Do you have a crash log?

mellow marsh
tall apex
#

is that not it?

sturdy compass
latent portal
manic rune
latent portal
#

i understand better if its visualized

manic rune
#

or i might be wrong

#

let me check

#

nevermind, its self, info_queue, card

#

hm

chrome widget
#

I usually have it set up like this so I think info_queue comes first yeah

    info_queue[#info_queue+1] = {key = "artist_poul", set = "Other"}
    return { vars = {G.GAME.probabilities.normal, card.ability.extra.enhance_chance} }
end```
#

But yeah, what kind of error are you seeing kawaii?

#

A crash? Is it showing nil values?

sturdy compass
tall apex
manic rune
#

definitely replace "center" with "card" though

#

they are not the same

latent portal
sturdy compass
#

np np

tall apex
#

do you just wanna see the entire code? its not a very complicated joker

chrome widget
#

Sure

turbid maple
#

had the pleasure of digging itno generate_card_ui

#

I am still clueless on how any of this works i hate UI

gilded narwhal
#

hey gang how do i change the amount that rerolls implement by?

tall apex
#

its prob super obvious im just stoopy

mellow marsh
#

ohhh

tall apex
#

it's supposed to give 5 chips whenever any other joker triggers c:

mellow marsh
#

ok sneaky issue, you've ended the config table at the wrong spot

#

the only thing it should contain is your extra table

manic rune
#

oh yeah

tall apex
#

guh?

chrome widget
#

the config table currently contains your entire code

manic rune
#

config is missing a }

chrome widget
#

add another brace before the comma

mellow marsh
#

in other words, this needs to be moved up here

tall apex
#

AH

#

ty wise gamer of gaming

chrome widget
#

So the reason why it's not working is because it's looking for loc_vars where it expects it to be, but it wasn't currently where it's expected, so it just subs nil values

tall apex
#

icicicicicic c:

mellow marsh
#

feels nice to be able to help with stuff instead of needing help myself

tall apex
#

kinda what i love about this sorta stuff

#

big soup of knowledge

chrome widget
#

I've done custom UI for exactly two things and both times it's kinda wehh, I steal what code I can because I'm not a UI programmer

#

This one for example basically does something very similar to Jimbo's win/loss quotes

tall apex
chrome widget
#

Hell yeah tgirl hours