#đŸ’»ăƒ»modding-dev

1 messages · Page 469 of 1

royal ridge
#

calculate = function(self, card, context)

#

then you can do stuff with context

#

since it exists

pastel kernel
#

How do I make my joker’s tooltip black?

manic rune
#

{C:black}?

lament agate
#
calculate = function(self, card, context)
        if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
                func = function()
                    for _, original_card in ipairs(context.full_hand) do
                        local copy_card = copy_card(original_card, nil, nil, G.playing_card)
                        copy_card:add_to_deck()
                        G.deck.config.card_limit = G.deck.config.card_limit + 1
                        table.insert(G.playing_cards, copy_card)
                        G.hand:emplace(copy_card)
                        copy_card.states.visible = nil
                G.E_MANAGER:add_event(Event({
                            copy_card:start_materialize()
                        end
                        return true
                    end
                }))
            end
        end
        if context.first_hand_drawn then
            local eval = function() 
                return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES 
            end
            juice_card_until(card, eval, true)
        end,
#

good now?

pastel remnant
#

hello balatro modders

lament agate
#

haaaaaaaiiiii

pastel kernel
pastel remnant
#

uh so I am having some issues

pastel kernel
#

It’s a white background

#

I want to make the text white while the whole text box is black

#

Trying to imitate Undertale text box in some way

molten musk
#

now it stopped saving seals in the table

manic rune
lament agate
#

bepis help me

royal ridge
#

do it

pastel remnant
#

I was gonna explain an issue I was havving but I wasn't having an issue

pastel kernel
royal ridge
#

just a moment

lament agate
#

god please

#

I've been stuck for like a whole day

pastel remnant
#

it was my own code

#

may return later

royal ridge
# lament agate I've been stuck for like a whole day
calculate = function(self, card, context)
    if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
        local copy_cards = {}
        for _, original_card in ipairs(context.full_hand) do
            G.playing_card = (G.playing_card and G.playing_card + 1) or 1
            local copy_card = copy_card(original_card, nil, nil, G.playing_card)
            copy_card:add_to_deck()
            G.deck.config.card_limit = G.deck.config.card_limit + 1
            table.insert(G.playing_cards, copy_card)
            G.hand:emplace(copy_card)
            copy_card.states.visible = nil
            copy_cards[#copy_cards+1] = copy_card
            G.E_MANAGER:add_event(Event({
                func = function()
                    copy_card:start_materialize()
                    return true
                end
            }))
        end
        return {
            message = localize('k_copied_ex'),
            colour = G.C.PURPLE,
            card = card,
            playing_cards_created = copy_cards
        }
    end
    if context.first_hand_drawn and not context.blueprint then
        local eval = function() 
            return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES 
        end
        juice_card_until(card, eval, true)
    end
    if context.starting_shop and G.CONTROLLER then
        return {
            func = function()
                G.CONTROLLER:key_press_update("escape", true)
                G.CONTROLLER:key_press_update("escape", false)
                    
                G.E_MANAGER:add_event(Event({
                    trigger = 'after',
                    delay = 0.1,
                    func = function() return true end
                }))
            end
        }
    end
end,
lament agate
#

sorry to bother 6ou

royal ridge
#

nah it was funny

molten musk
lament agate
#

the last one

royal ridge
#

um

#

code works fine on my end

lament agate
#

god damnut

#

here's the full code

#
calculate = function(self, card, context)
        if context.before and context.main_eval and G.GAME.current_round.hands_played == 0 then
            for _, original_card in ipairs(context.full_hand) do
                G.playing_card = (G.playing_card and G.playing_card + 1) or 1
                local copy_card = copy_card(original_card, nil, nil, G.playing_card)
                copy_card:add_to_deck()
                G.deck.config.card_limit = G.deck.config.card_limit + 1
                table.insert(G.playing_cards, copy_card)
                G.hand:emplace(copy_card)
                copy_card.states.visible = nil
                G.E_MANAGER:add_event(Event({
                    func = function()
                        copy_card:start_materialize()
                        return true
                    end
                }))
            end
        end
        if context.first_hand_drawn and not context.blueprint then
            local eval = function() 
                return G.GAME.current_round.hands_played == 0 and not G.RESET_JIGGLES 
            end
            juice_card_until(card, eval, true)
        end
    end
        if context.starting_shop and G.CONTROLLER then
            return {
                func = function()
                    G.CONTROLLER:key_press_update("escape", true)
                    G.CONTROLLER:key_press_update("escape", false)
                    
                    G.E_MANAGER:add_event(Event({
                        trigger = 'after',
                        delay = 0.1,
                        func = function() return true end
                    }))
                end
            }
        end
}
royal ridge
#

what's the purpose of the starting shop stuff

lament agate
#

by calling controller

royal ridge
#

remove that end right before it

#

that's ending the entire calculate

lament agate
#

before where

royal ridge
#

move it after the

#

that one ends it so move it later

#

to when you want the calculate to end

#

ok i edited the code i posted earlier to add hologram support and uhhh

#

the pausing thing

spice wadi
molten musk
#

nothing

#

its print nothing

#

an empty table

red flower
#

you're returning in the loop as soon as it finds a seal

#

did you mean break instead of return?

royal ridge
#

break is bad there too

red flower
#

yeah

royal ridge
#

since presumably all seals are being collected to randomly select from them

flat mist
#

Hey everyone! I'm looking for someone who can help bring a new mod pack to life — I’ve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I don’t know how to code myself, the ideas are fully written and ready to go. If you’re into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Let’s make something awesome together! These are some of the ideas.

spice wadi
flat mist
#

Other wise I might do that

modern kindle
#

Its pretty unlikely for others here to jump on to do your mod instead of doing their own ill be honest, so its best to try and learn it yourself

pale holly
#

SMODS.Joker {
    key = "classy",
        loc_txt= {
        name = 'Classy',
        text = { " {C:chips}#4#{} Chips, {C:mult}#1#{} Mult",
        "{C:attention}#2#{}"
        }
    },
    --atlas = 'Maidenregalia',
    pos = { x = 0, y = 0 },
    rarity = 2,
    cost = 7,
    pools = {["pseudoregamod"] = true},
    
    unlocked = true,
    discovered = false,
    blueprint_compat = true,
    eternal_compat = true,
    perishable_compat = true,
    
    config = { extra = { mult = 0, poker_hand = 'High Card', mult_gain = 5, chips = 0, additional = 5, encore = 0 } },
        loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.mult, localize(card.ability.extra.poker_hand, 'poker_hands', card.ability.extra.mult_gain, card.ability.extra.chips, card.ability.extra.additional, card.ability.extra.encore ) } }
    end,```

Can someone help me understand why the 'nil' ? as far as i check in my code, the **#4#**  should normally aim for the chips but it says nil, any help appreciated
faint yacht
#

-# Started a new run with a fresh copy of it?

pale holly
#

I will retry just to see

faint yacht
#

...hang on...

#

The localize call is not closed off before the other variables after 'poker_hand' is specified for it.

#

Instead, the ) is at the end... should be localize(card.ability.extra.poker_hand, 'poker_hands') ?

modern kindle
#

oh i didnt get to say it btw but good schmorning chat

pale holly
#

that explains it

rotund sable
#

wait nvm

#

i misscounted

faint yacht
#

Bit of a weird layout of config, but who am I to judge... 😅

pale holly
#

it's been my main layout, it sure does look a bit intense considering the numbers of abilities set in lmao

pale holly
#

wait why 5

#

okay that one is a bit weird, it should be 0 too

#

oh wait nvm fault on myside

daring heron
#

Bump

daring fern
daring heron
#

Oh lol

#

what if i just want to put the name here?

#

since this isnt showing up either

tall wharf
daring heron
#

how do i do that again :b

rotund sable
#

with the "src/challenges.lua" being the path

daring heron
#

do i just put that above the current code?

rotund sable
#

i do something like that

daring heron
#

and the path would just be this right?

cedar pendant
#

If anyone here is good at modding cards and doing sprites I have a proposition if you help me make like some cards and stuff for a mod i will pay you with steam games or nitro so DM me 💀

The mod itself is gonna be unbalanced chaos because I think that would be comedic egg

An example of a card

Im Jeong Dae (Player 100): If you have $100 gain +100 mult for each card played ||1 in 100 chance to be impaled with a metal pipe and die||

rotund sable
#

not in the file you want to load tho

daring heron
rotund sable
#

so you put the line to load a file in a file that isn't loaded

#

this is how my main.lua looks like

daring heron
#

like this?

umbral zodiac
#

how do you change the loc txt of an object youre taking ownership of? i have a loc_txt entry in the take_ownership but it's not changed compared to base (i'd imagine since the original uses localization files instead of loc_txt)

daring heron
tall wharf
daring heron
#

ArtBox.lua

#

yes i'm modifying artbox haha

red flower
umbral zodiac
#

oh can you just define the same joker's loc txt in mine and it works

#

thanks

daring heron
#

hm..

#

i mean i can't see why it isnt loading

rotund sable
#

put it in your main mod file

cedar pendant
#

Can someone recommend me a tutorial to make modded cards

daring heron
#

along with the assert thing?

umbral zodiac
daring heron
#

well its loaded in now but i would prefer it to be in it's own file, does the folder name it's in matter? also it crashes whenever i click on it

rotund sable
#

idk if it's relative to the file it's in or the root of the mod

daring heron
#

wekk u feel like the load file doesnt work either way

#

should the "scr" be the mod prefix?

rotund sable
#

it's just the path to the files 😭

daring heron
#

oop

#

well.. it still doesnt load

rotund sable
#

is it still in the wrong file

daring heron
#

huh?

pale holly
#

hey so i need a little help again

    if card.ability.extra.current_round == card.ability.extra.total_rounds then
    G.GAME.blind.chips = G.GAME.blind.chips/2
    return {
    message = "Well rested !"
    }
    end
    end```

the whole thing is meant to divide by 2 the required chips of the blind, and while it works it doesn't properly show it and show still the initial score required, is there a way to fix it ?
flat mist
#

Hey everyone! I'm looking for someone who can help bring a new mod pack to life — I’ve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I don’t know how to code myself, the ideas are fully written and ready to go. If you’re into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Let’s make something awesome together! These are some of the ideas.

pastel torrent
#

sound plays in loop?


    update = function(self, card, dt)
        timer = timer + (dt or 1/60)
        if timer >= 30 then
            timer = timer - 30
            if math.random(1, 25) == 1 then
                G.E_MANAGER:add_event(Event({
                    trigger = 'immediate',
                    func = function()
                        play_sound("dark_Taunt")
                    end
                }))
            end
        end
    end,```
rotund sable
umbral zodiac
daring heron
#

amazing, it loads in now

#

still crashes though

#

whever i click on it

pastel torrent
#

thanks for giving me a perhaps solution

daring heron
#

does anyone know how i can fix that?

pastel torrent
#

ty!

umbral zodiac
#

🙏

daring heron
dark quartz
#

i might be really stupid, but switching the pngs out is as easy as just changing the files and giving them the right names in the game assets right?

daring heron
#

does anyone know why this is crashing? and how do i fix it?

#

this is the code

plucky zenith
#

Is there a way, on joker calculation, to change the joker image? I tried changing self.atlas to another registered key, but that didn't work.

faint yacht
#

card.children.center:set_sprite_pos({x = 0, y = 0}) iirc?

#

It will change the image on the Joker, yeah.

daring heron
umbral zodiac
#

does anyone know what i did wrong in this take_ownership? the other stuff seems to work fine but the loc_txt isnt changing at all

vast bough
#

does anybody know the best way to do ^mult and ^chips, is it natively supported by SMODS? was trying to do some shit with math.pow but there is most likely a more elegant solution

umbral zodiac
#

sorry i confused words lmao

vast bough
#

i knew there was a more elegant solution thank u

umbral zodiac
#

nah that's a part of talisman, if you make your mod use talisman you can use emult/echips freely

vast bough
#

oh wait yeah you edited your reply haha, okay thank you

umbral zodiac
#

yea my bad i confused talisman and smods when typing lmao

spice wadi
#

Ik you probably are but look at (or straight up copy) an example from vanilla remade that's similar enough to what you want to do

daring heron
#

thank you so much!

#

i didnt haha

pure salmon
#

how do i get the name of a joker?

#

like, the localised name

granite nymph
#

im trying to make this tarot dupliocate a random consumable

#

and the issue is that if you use it with no other consumables it crasehs

#

and i dont wanna make the require,emt 2 or above because that would break tarot packs

lament agate
#

@primal robin how do you start a new run

primal robin
#

I'm just emulating r press

#

Because it's the most other mods compatible approach

lament agate
#

since using delete and start run crashes the game

#

i have to figure out a way

primal robin
lament agate
#

heres mine

#

help would be appreciated too

normal crest
flat mist
#

Hey everyone! I'm looking for someone who can help bring a new mod pack to life — I’ve come up with over 20 unique Joker ideas and 7 Spectral card concepts, all with cool and creative mechanics. While I don’t know how to code myself, the ideas are fully written and ready to go. If you’re into modding and want to collaborate on something fresh and fun, feel free to DM me or reply here. Let’s make something awesome together! These are some of the ideas.

#

I have tried learning lua but it's seems it is not for me

granite nymph
# flat mist

you should try to learn to code yourself. smods has a wiki on most of the mechanics and if tyou ever need help then just ask here

granite nymph
flat mist
#

And tutorials are not easy enough

flat mist
granite nymph
#

this has the code for all the vanilla jokers

#

you can copy some of the mechanics from there

#

also were not gonna help you if you dont even have the effort to write a message asking for help

flat mist
pastel remnant
#

Hello one and all, how does one do ^mult with talisman? (I think that’s the dependency needed for it)

spice wadi
pastel remnant
#

I was gonna look at the cryptid ones but I was told it often does things in weird ways

spice wadi
# flat mist Hey everyone! I'm looking for someone who can help bring a new mod pack to life ...

Again my guidance for you would be to learn how to make jokers
Start with really simple concepts
Learn from those
Build up your skills
There's a decent amount of guidance and people here will help you if you're trying

Asking for people to make things for you rarely is taken well, and while I understand the reasoning behind getting ChatGPT to write a message for you, it kinda worsens your case

spice wadi
flat mist
normal crest
#

Tho idk if emult is ^mult

pastel remnant
#

Yeah I tried that

#

And

#

It removed the buttons from the menu

#

They just disappeared

normal crest
#

maybe you have an outdated version of talisman?

spice wadi
flat mist
pastel remnant
pastel remnant
flat mist
pastel remnant
#

Ok sure

jagged zodiac
#

I want to make a joker that levels up a hand when sold, but all I've found is how to make it level up when a hand is played
is there like a function I can call to level something up?? or how does that work??

#
    remove_from_deck = function(self, card, context)
        G.GAME.hands[Pair].level = G.GAME.hands[Pair].level + 1,
        return { }
        end,

maybe this actually

#

nope

pastel remnant
#

Look how cola triggers

jagged zodiac
#

ah

#

alright

pastel remnant
#

And then

pastel remnant
#

If context.sold(or smth idk) do
Whatever the hand lvl up code is

daring fern
jagged zodiac
#

oh

#

I couldn't find that function in the hand level documentation of the API :v

#

thanks!!

#

yeah that works!!

spice wadi
granite nymph
jagged zodiac
#

now just add a for loop I guess because I want it upgrade five random hands when sold (might get nerfed to four?? maybe specificially five distinct hands??)

spice wadi
granite nymph
spice wadi
granite nymph
#

how would i check for a specific card

spice wadi
#

G.consumeables.cards[1] for the first card

#

Also maybe change everything to be an if [logic] then return [I guess true] end type thing

#

Might make it easier

granite nymph
#

okay but now its not wokring in booster packs

spice wadi
#

Not sure how to help beyond this point

#

I'm guessing it's a different area

granite nymph
#

but if it is the fool it wont work

small tartan
#

Any mod i can reference to add suites?

granite nymph
small tartan
granite nymph
#

capslock

small tartan
#

Ohh

#

Thanks ^^

jagged zodiac
small tartan
#

This should be okay? Or in card_key must be a single letter?

spice wadi
spice wadi
small tartan
#

Oh okay, thanks

spice wadi
# small tartan Oh okay, thanks

looking at the wiki and another mod, seems it can be whatever you want
from what i understand, the key is used when using things like card:is_suit and card_key is used when creating playing cards

small tartan
#

Oh okay, thanks so much i'm literally too green to balatro modding so finding things is still hard

#

I appreciate you all so much, because i know i can be a pain sometimes

spice wadi
#

you seem alright to me

#

main advice i could give to you is to look at the SMODS wiki, VanillaRemade and look for mods that do whatever youre trying to do at the time

#

the balatro mod wiki can be helpful for that last bit

jagged zodiac
spice wadi
#

Good luck!

#

Remember to use pseudorandom for random stuff ‌

long sun
#

hiya! i'm making a consumable type that, when used, adds a set of cards to your deck

#

how can i put the code for adding these cards into the consumable type itself, so the consumables themselves don't need to do that?

granite nymph
#

does anyone know why this sint working\

#

its supposed to copy a consumable as long as its not exclusively a fool

long sun
#

what's not working about it?

#

is it crashing the game?

#

mm, i can see two problems with can_use

#

first is that the key of The Fool is c_fool

#

and second is that you're assuming you can't have 2 Fools

granite nymph
long sun
#

ah

granite nymph
#

it baidslaly does the perkeo affect

#

and my goal is to prevent it from working if it’s the only card

long sun
#

ahhh i see

granite nymph
#

but also work when its in a booster pack and theres only one card

long sun
granite nymph
#

but its not usable when there’s only one cars

long sun
#

ohh i see

#

you're checking if the card is unequal to the key, rather than the card's key being unequal to the key

#

try adding .config.center.key to the end

granite nymph
long sun
#

yepyep

honest birch
#

question, not sure how advanced of a question this is but, which files exactly do i have to inject in order to add a new hand?

#

ive been losing my mind at this over the last 3 hours 😭, i swear i tried everything and nothing works

long sun
#

if you're using SMODS, you can use SMODS.PokerHand :D

honest birch
#

...i may just be stupid

honest birch
long sun
#

nono don't say that :}

honest birch
#

:3

#

also just in case, this is what ive been up to these past 3 hours

[manifest]
version = "1.0.0"
dump_lua = true
priority = 0


[[patches]]
[patches.pattern]
target = "functions/state_events.lua"
pattern = '''if next(poker_hands["Flush Five"]) then text = "Flush Five"; scoring_hand = poker_hands["Flush Five"][1]'''
position = "after"
payload = '''
    elseif next(poker_hands["Six of a Kind"]) then text = "Six of a Kind"; scoring_hand = poker_hands["Six of a Kind"][1]
'''
match_indent = true

# Patches in some hands
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
function evaluate_poker_hand(hand)

  local results = {
    ["Flush Five"] = {},
'''
position = "after"
payload = '''
    ["Six of a Kind"] = {},
'''
match_indent = true

[[patches]]
[patches.pattern]
target = "game.lua"
pattern = '''["High Card"] =         {visible = true,    order = 12,mult = 1,   chips = 5,   s_mult = 1,   s_chips = 5,   level = 1, l_mult = 1, l_chips = 10, played = 0, played_this_round = 0, example = {{'S_A', true},{'D_Q', false},{'D_9', false},{'C_4', false},{'D_3', false}}},'''
position = "after"
payload = '''
            ["Six of a Kind"] =    {visible = true,   order = 13, mult = 25,  chips = 270, s_mult = 25,  s_chips = 270, level = 1, l_mult = 5, l_chips = 55, played = 0, played_this_round = 0, example = {{'S_A', true},{'S_A', true},{'H_A', true},{'H_A', true},{'C_A', true},{'D_A', true}}},
'''
match_indent = true

# i dunno bro
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = "_5 = get_X_same(5,hand),"
position = "before"
payload = '''
    _6 = get_X_same(6,hand),
'''
match_indent = true

[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
  if next(parts._5) then
    results["Five of a Kind"] = parts._5
    if not results.top then results.top = results["Five of a Kind"] end
  end
'''
position = "after"
payload = '''
  if next(parts._6) then
    results["Six of a Kind"] = parts._6
    if not results.top then results.top = results["Six of a Kind"] end
  end
'''
match_indent = true

[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = '''
if next(parts._highest) then
    results["High Card"] = parts._highest
    if not results.top then results.top = results["High Card"] end
end
'''
position = "after"
payload = '''
  if results["Six of a Kind"][1] then
    results["Five of a Kind"] = {results["Six of a Kind"][1], results["Six of a Kind"][2], results["Six of a Kind"][3], results["Six of a Kind"][4], results["Six of a Kind"][5]}
  end
'''
match_indent = true


# im going to fucking lose it, why is it not even showing the hand in run info
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = '''create_UIBox_current_hand_row("Flush Five", simple),'''
position = "after"
payload = '''
create_UIBox_current_hand_row("Six of a Kind", simple)
'''
match_indent = true
#

thank god for smods 😭 🙏

honest birch
long sun
#

aww np!

pastel remnant
#

so, I am trying to make a joker that scales for debuffed cards sold/destroyed (I will need to copy this over for sold cards too but that should be easy I think) the code attached is responsible for the scalling, however when I hang maned 2 debuffed cards it also scales once, anyone know why this is happening

jagged zodiac
# spice wadi im guessing for this its pretty simple just loop 5 times, pick a random hand (no...

yay I got it working
if you're interested, they're stored as strings it seems, so I wrote a little utility function for myself

get_random_hand = function()

    hand_names = {
        "High Card",
        "Pair",
        "Two Pair",
        "Three of a Kind",
        "Straight",
        "Flush",
        "Full House",
        "Four of a Kind",
        "Straight Flush",
    }

    if(SMODS.is_poker_hand_visible("Five of a Kind")) then
        hand_names[#hand_names + 1] = "Five of a Kind"
    end
    if(SMODS.is_poker_hand_visible("Flush House")) then
        hand_names[#hand_names + 1] = "Flush House"
    end
    if(SMODS.is_poker_hand_visible("Flush Five")) then
        hand_names[#hand_names + 1] = "Flush Five"
    end

    return hand_names[math.random(1,#hand_names)]
end
honest birch
# long sun aww np!

also i just looked at the poker_hand.toml file in steammods and yeah, holy shit thats a lot of work 😭, i wouldve been dead (metaphorically) before i figured it out 🙏

long sun
#

it's soooo much work ;u;

honest birch
#

105 lines đŸ„Č

#

and a ton of problem solving and balatro source code knowledge thats way beyond my level of patience

umbral zodiac
#

ah wait nvm i see your problem

pastel remnant
#

wont that multiply it by the number of removed cards regardless of how many are debuffed, also I based it of Canio and it works in a similar way (tho it counts how many are debuffed... ok nvm I don't need to keep explaining lol

umbral zodiac
#

returning ends the function immedietely. it goes once for the first card, returns the message to upgrade, and stops there

pastel remnant
#

ah

umbral zodiac
#

simply use card_eval_status_text instead of returning a message

pastel remnant
#

so wait

#

replace the return with

#

card_eval_status_text

#

?

umbral zodiac
#

i mean not 1:1 but, use the function

spice wadi
pastel remnant
honest birch
jagged zodiac
#

maybe there's an array already somewhere holding the poker hands and you can use that, I'm not sure

umbral zodiac
pastel remnant
#

it works there's just no upgrade text

pastel remnant
spice wadi
honest birch
honest birch
umbral zodiac
red flower
pastel remnant
#

stealing that

honest birch
#

i still dont really understand the difference between self, context, and card so im trying to get as much insight as possible

#

(before i go back to reading the repo again)

red flower
#

self in calculate is the prototype or center of the card so self == card.config.center

umbral zodiac
#

as N said

#

card is the card itself, self is the generic

pastel remnant
#

it works!

honest birch
#

OHHH okay that makes a lot more sense now

pastel remnant
#

yes!

honest birch
pastel remnant
#

ok goodbye I think I might buff it a little

#

but anyway thanks

red flower
#

also i haven't read the whole convo so idk if you need something specific but to do list has a way to pick a random poker hand from all of them

jagged zodiac
red flower
#

i also forgot to change the check in vanillaremade to use is_poker_hand_visible so I'll do that rq lol

serene granite
#

hiii, does anyone have an idea of how i can create a joker that will generate a random tag when meeting the right criteria? i cant find any good examples from other mods or the vanilla jokers. any advice?

serene granite
#

thank you for the example ! ill look through this

red flower
#

mostly showing the effect so you can ignore everything else

modern kindle
#

hi N

#

how is your illness

red flower
#

im a bit better thankfully, thank you

modern kindle
#

im glad to hear

#

=]

rapid stag
#

anyone got any good examples to figure out shaders from?

jagged zodiac
#

what does the string argument of pseudorandom() do??

flat mist
#

how to set hand size to one using a joker

jagged zodiac
#

probably see how juggler works??

#

G.hand:change_size(1) is my guess

pastel remnant
#

what is the context of a joker being sold?

jagged zodiac
#

remove_from_deck

pastel remnant
#

does that also count like cards?

jagged zodiac
#

sorry

#

no

#

selling_self

pastel remnant
#

not self

#

any joker

jagged zodiac
#

oh

pastel remnant
#

probably not self even

jagged zodiac
#

dunno :v

pastel remnant
#

ugh

red flower
#

context.selling_card

flat mist
#

g is not defined i might suck at it its my first joker so soory

red flower
red flower
jagged zodiac
red flower
jagged zodiac
#

OH

#

nevermind

#

I see now

red flower
#

yes, you can also do pseudorandom("seed", min, max)

jagged zodiac
pastel remnant
jagged zodiac
#

or rather, between 0 and G.GAME.probabilities.normal

red flower
pastel remnant
#

tho

jagged zodiac
pastel remnant
#

by setting hand size way down the game will then set it to 1 I think

jagged zodiac
#

I know

#

but it does that by setting it to its old value plus 1

pastel remnant
#

probably do that

#

like

#

-9999999999 or smth

jagged zodiac
#
    add_to_deck = function(self, card, from_debuff)
        G.hand:change_size(card.ability.extra.h_size)
    end,
    remove_from_deck = function(self, card, from_debuff)
        G.hand:change_size(-card.ability.extra.h_size)
    end
pastel remnant
#

wait no

red flower
#

why context.context

#

also why do you need a whole function to check if a card is debuffed lol

pastel remnant
#

idk ppl I got help from before who are wroking on the same mod told me to use that, I have no clue why

#

but it should work

red flower
#

can you show me the function, im curious to see what it does

pastel remnant
#

I have 0 clue where it is lol

red flower
#

damn

pastel remnant
#

this basically has the full joker in it

red flower
#

assuming that function works you need to fix the context.context

pastel remnant
#

uh

#

oh yeah

errant arrow
#

im curious about creating mods, how would i start?

glossy sky
#

So does anyone know what causes Joker's sell values to reset at the end of a round sometimes? This is the only time my code calls the set_cost function, but after an indeterminate number of rounds the sell value will just randomly reset.

flat mist
#

its not that hard i was worried about for no reason

#

i make my first joker in just 30 mon

#

*min

#

thanks to this community

pastel remnant
#

it works thanks @red flower

red flower
#

extra_value is fine to do exactly what vanilla does with it

fallow breach
#

my friend had an idea for a card where: "if played poker hand is a full house, destroy the cards that make up the pair," but i haven't an inkling on how that would be implemented

#

could someone show me where to start?

thorn furnace
#

Bump

flat mist
#

so i copied the command for displaying the next card , and it should display the card 2 times but is displaying only ones why?

#

its for misprint

red flower
fallow breach
#

interesting thanks i'll try stuff out

red flower
#

patch/hook create_UIBox_buttons()

thorn furnace
#

Oki

red flower
#

well not twice actually

#

but im bad at math so lets say twice

flat mist
#

so how to make it to show 2 next card

red flower
#

ohhh i get it now

#

change one of them to G.deck.cards[#G.deck.cards-1]

#

you will also need to check if the deck size is bigger than 1

serene granite
#

i was looking through all the steamodded contexts, and i found a context for leaving the shop but i cant find the one for entering the shop, like the part that says "Cash Out"

does anyone know what that would be?

flat mist
fallow breach
hushed field
# flat mist DOING THIS I was able to see 2nd card but i want to see next 5 card at once lik...

The effect you want is basically to be able to see the top cards of the deck? Ignore everything else, but this is my joker that has that effect, and all of its effect is just handled in the loc_vars function https://github.com/icyethics/Kino/blob/main/items/Jokers/bttf.lua

GitHub

a balatro mod for movie dorks. Contribute to icyethics/Kino development by creating an account on GitHub.

#

Do seals/enhancements only get access to a context if it's also attached to a main_scoring?

flat mist
hushed field
jagged zodiac
#

is there anything in the game that changes rank except strenght and ouija??

pure salmon
#

no i don't think so

jagged zodiac
#

alright

#

does anybody know how to change a card into a 7?? this is what I'm at now
assert(SMODS.change_base(scored_card, nil, SMODS.rank[7]))

flat mist
#

how to check wether you have bought a joker or not

jagged zodiac
#

wait.. it's called 'Ranks' not 'rank'

jagged zodiac
jagged zodiac
#

mhmmm, but that's a random one

#

I can't figure out what I should put as third argument for a seven

pure salmon
#

it's likely just assert(SMODS.change_base(scored_card, nil, "7"))

jagged zodiac
#

documentation says this

    - Examples: `assert(SMODS.change_base(card, 'Hearts'))` converts a card into Hearts. `assert(SMODS.change_base(card, nil, 'Ace'))` converts a card into an Ace. `assert(SMODS.change_base(card, 'Hearts', 'Ace'))` converts a card into an Ace of Hearts.```
jagged zodiac
#

I already tried "Seven"

#

it doesn't

#

turned some eights into sevens

pure salmon
#

oh i guess the rank keys are "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K" and "A" then

jagged zodiac
#

no

pure salmon
#

what

jagged zodiac
#

so I suppose "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" and "Ace"

pure salmon
#

why is balatro like this

jagged zodiac
#

wait

#

"Ten" or "10"

#

I'll check

pure salmon
#

i don't do rank manip like ever and the strength function has a utility function iirc

flat mist
# jagged zodiac what do you mean exactly??

Means what the condition for checking that you are viewing at the joker in the collection or after purchasing it in you joker slot
Because I want to display different text in collection and after you by it

jagged zodiac
#

"10"

jagged zodiac
unborn bay
granite nymph
granite nymph
unborn bay
#

what SMODS.change_base is requesting is the key of the suit and rank

#

which is 2-10, Jack, Queen, King and Ace

pure salmon
#

man fuck ranks

unborn bay
#

why would you spell out numbers as words anyway

#

¯_(ツ)_/¯

faint leaf
#

juuuuuuuuuust wondering..... is it possible for every blind for a joker to change artworks?

red flower
#

i will pr smods so it takes "seven" as a valid key

unborn bay
#

im sevening it

pure salmon
pure salmon
faint leaf
#

thank you

red flower
pure salmon
#

i haven't looked much into it tbh

#

oh fr you can do that?

flat mist
red flower
#

yeah

granite nymph
long sun
#

aww

#

there's something else then

red flower
flat mist
#

Explain a little

red flower
#

no

#

i dont think im good enough at writing to make a tutorial but i might have to do a FAQ for commonly asked questions

#

sadly vanillaremade doesn't do everything

granite nymph
#

im trying to make it usable as long as theres at least one card other than the soul

thorn furnace
thorn furnace
granite nymph
#

currently it works with two cards but if its in a booster and theres a single card in the consumables it wont work

red flower
#

maybe the pattern is wrong?

granite nymph
#

sorry for asking here a lot btw

thorn furnace
#

i clicked extract on balatro so it shouldn't be wrong i dont think

formal parrot
#

You’re good

#

I think

formal parrot
#

As long as you don’t sell it

thorn furnace
# red flower may i see it
[manifest]
version = "0.0.1"
dump_lua = true
priority = 0

[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "local discard_button"
position = "before"
payload = '''
local hold_button = {n=G.UIT.C, config={id = 'hold_button',align = "tm", padding = 0.3, r = 0.1, minw = 2.5, minh = button_height, hover = true, colour = G.C.GOLD, button = "discard_cards_from_highlighted", one_press = true, shadow = true, func = 'can_discard'}, nodes={
    {n=G.UIT.R, config={align = "cm", padding = 0}, nodes={
        {n=G.UIT.T, config={text = "Hold", scale = text_scale, colour = G.C.UI.TEXT_LIGHT, focus_args = {button = 'z', orientation = 'bm'}, func = 'set_button_pip'}}
    }}
}}
print("Test")
'''
match_indent = true
times = 1

[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "G.SETTINGS.play_button_pos == 1 and play_button or discard_button,"
position = "after"
payload = '''
hold_button
'''
match_indent = true
times = 1
jagged zodiac
#

doing something like
return { dollars = 77 }
in a calculate function should be enough to give 77 dollars, right??

jagged zodiac
#

hmm

red flower
jagged zodiac
#

what does ~= mean??

red flower
red flower
thorn furnace
red flower
#

you can also use regex and add a .* at the end maybe but yeah it should work

thorn furnace
#

that seemed to work dance

#

thanks

granite nymph
#

the goal is to not let it be used when its the only carsd

#

ornqwhen theres no cards

modern kindle
thorn furnace
pure salmon
#

how do i access the round variables for idol and castle? i want to use them for shattered jokers

red flower
formal parrot
granite nymph
#

specifiaclly the bottom part

thorn furnace
daring fern
glad osprey
#

how do I make soul cards show up more

red flower
red flower
granite nymph
red flower
#

oops

#

config.center

#

i typed it backwards

frigid cargo
#

im trying to make a voucher that gives 6x weight on tarot cards,

-- TarotMonopoly
SMODS.Atlas{
    key = 'TarotMonopoly',
    path = 'TarotMonopolyVoucher.png',
    px = 71,
    py = 95,
}
SMODS.Voucher {
    key = 'TarotMonopoly',
    loc_txt = {
        name = 'Tarot Monopoly',
        text = {
            "{C:tarot}Tarot{} cards appear",
            "{C:attention}#1#X{} more frequently",
            "in the shop",
        }
    },
    atlas = 'TarotMonopoly',
    pos = { x = 0, y = 0 },
    config = { extra = { rate = 24/4, display = 6 } },
    unlocked = false,
    requires = { "v_tarot_tycoon" },
    pools = { ["T3V"] = true },

    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.display } }
    end,

    redeem = function(self, card)
        G.E_MANAGER:add_event(Event({
            func = function()
                G.GAME.tarot_rate = 4 * card.ability.extra.rate
                return true
            end
        }))
    end,
}

i tried doing the math and i need 24/28(i think) but idk if putting the rate to 12 will work, vremade has 4x rate on 8 which makes sense cause to get 32 weight its 4*8, im not very smart in math so i dont know

granite nymph
#

thank you

queen vector
#

i don't know what i am doing here

red flower
thorn furnace
# thorn furnace wait why is it red

KHD_TrunksWat
what I'm gathering is that setting colour doesn't actually do anything
leftmost button is supposed to be green and rightmost button is supposed to be gold

red flower
thorn furnace
#

what's the point of adding colour then >.>

red flower
#

dunno

thorn furnace
#

I am so sad I was going to add another mechanic but i forgot

#

now i gotta remember what i was gonna add

red flower
thorn furnace
#

probably extremely bad

granite nymph
#

anyone know why my game is crashing when i clikc run info?

red flower
#

can i see the screen with the new smods version, is it the same error? also post the entire log

ocean goblet
#

how do you go about getting like, the floor value for money?

#

i wanna make a card spend money only if you have enough but also work if you have jokers that let you go into debt

granite nymph
#

this is the newest one rifght

fallow breach
#

so for a card that's supposed to remove the pair from a full house when it's played, i'm thinking something like this

#

it triggers when you play a full house but it destroys every card played and in your hand

red flower
granite nymph
red flower
#

no idea then it might be a mod doing it

granite nymph
#

so talisman is just broken for now

next timber
#

ughhhhhhh main_start doesnt show in edition tooltips

ocean goblet
#

actually more directly

#

how do i check if money is above or below a specific value?

modern kindle
#

just check if G.GAME.dollars is above or below whatever value

vast night
#

hi. just rq: how do i check if talisman is enabled?
(ps: also why does it not crash for me and work completely fine without talisman and to_number, but for my friends it crashes?)

ocean goblet
#

it prints the starting value each time

vast night
ocean goblet
vast night
ocean goblet
#

no actual error, it just isn't updating G.GAME.dollars each time

#

so say i start with 14 and try to enhance 4 cards (which should cost 20)
instead of only enhancing the first two, because the money would run out,
it enhances all 4 and sends my money into the negatives

ocean goblet
#

oh cool ranma1/2

#

i need to finish that someday

queen vector
#

y, im making a mod full focused on Ranma

vast night
thorn furnace
vast night
#

Also: Does anyone know how i can modify a Card UI Object to show a custom text? This is my center generator:
Edit: I've tried making that with localization but I'm unsure what I did wrong

local function fate_card_center(fate)
    -- copies center of triboulet
    local ret = {}
    for k, v in pairs(G.P_CENTERS['j_triboulet']) do
        ret[k] = v
    end

    -- sets internal shit
    -- ret.set = 'Fates'
    ret.name = fate.name
    ret.key = 'f_' .. fate.id

    -- gets rarity and fallback sprite x
    local rarity = 'Regular'
    local fallback_x = 0
    if fate.weight >= 3 and fate.weight < 6 then
        rarity = 'Epic'
        fallback_x = 1
    elseif fate.weight >= 1 and fate.weight < 3 then
        rarity = 'Mythic'
        fallback_x = 2
    elseif fate.weight >= 0 and fate.weight < 1 then
        rarity = 'Uber'
        fallback_x = 3
    end

    ret.rarity = rarity

    -- sets sprite
    ret.atlas = 'fates_Fates'

    if fate.x then
        fate.x = fate.x * 2
    end

    ret.pos = { x = fate.x or fallback_x, y = fate.y or 0 }
    ret.soul_pos = { x = (fate.x or 3) + 1, y = ret.pos.y }

    -- removes config
    ret.config = {}

    -- return card center
    return ret
end
modern kindle
next timber
next timber
#

in the collection, the Slime edition shows the randomly changing Xmult

#

but when its applied to a joker it doesnt

vast night
#

dno idea. sry

red flower
#

how are you doing it

#

i think the docs might be outdated because main_start just works

hardy viper
#

while true do end
guys will this code work i made it using chatgpt

vast night
modern kindle
#
function love.load()
    N = loved♄
end
#

smiley face

red flower
#

unicode error

modern kindle
#

im going to explode

vast night
modern kindle
#

no heart

vast night
modern kindle
#

thats what im sayin!

#

N needs hearts

#

N is awesome

red flower
#

im going to explode

modern kindle
#

hey im the one who said that

#

you arent me silly

digital niche
#

anyone know a good tutorial for coding in lua in general? (not a balatro based question its just im not sure where to ask)

vast night
modern kindle
#

steal someone elses code from wherever, break it apart, learn

#

thats how i do it anyway

short girder
#

Is there an unlock type for amount of cards held in hand!!!

digital niche
short girder
midnight hornet
#

hi, is there. a collection of sentence that the game joker always tell you? I mean the ones when you loose, or a list of all his dialogs.

rotund sable
#

open up balatro in something like 7zip and go localization>en_us.lua>line 3903

#

that's where it starts

rotund sable
faint leaf
#

cause right now either whenever i hover on the joker, the sprite disappears or crashes

jagged zodiac
#

how do I create a fool specifically??
I thought this
SMODS.add_card({ key = "fool" })
but that doesn't work
"Fool" doesn't either

red flower
jagged zodiac
#

oh..

faint leaf
jagged zodiac
modern kindle
#

thatll be 37 dollars and a mcflurry

red flower
granite nymph
#

localization isnt localizing

short girder
rotund sable
#

did anyone make an automation script to merge images into atlases or everyone just "suffers" with them

granite nymph
#

spritesheets?

rotund sable
#

could name it like that

granite nymph
#

i dont mkae an individual joker amd combine it onto one spritesheet

red flower
next timber
#

i put each joker as a seperate frame in an animation and just export it as a spritesheet

long sun
#

guess who's back >:3

primal robin
long sun
#

looking to work on implementing these again

faint leaf
long sun
#

these packs have a few cards each, and they tell you what's in them

next timber
long sun
#

i'll be implementing them as a consumable type that adds them to your deck when used

#

i'd like to have some code that handles this within the consumable type itself, or something that applies to all of them

#

however, SMODS.ConsumableType doesn't allow for this

#

would having something that adds this code to each of them work?

#

is there a better way of doing what i want to do?

red flower
next timber
#

a loc file

red flower
#

no idea then sorry

hexed stump
#

Hmm, does calculate not work on stickers on playing cards?

next timber
granite nymph
red flower
#

yeah it might not work for me either

hexed stump
granite nymph
#

does anyone know whats wrong with my localization files

#

specifically the tarots

long sun
#

did i just code something complicated on my own :OOO whatttt

#

đŸ„ș 🎉

primal robin
#

if it's not Ui then it shouldn't be that hard

long sun
#

oh what! are stickers not allowed

#

okay workaround

sonic cedar
#

if i were to put this in my joker's code, then this would make the variable's selection be itself right?
local chosen_joker = card

red flower
#

yeah

sonic cedar
#

yes... good...

ruby moon
#

Can someone teach me on dm How do I make a mod so I can change the skin of the playing cards? In total there will only be 4 sprite sheets, 2 HC and 2 LC, It could be through Malverk or an independent mod, I just need guidance on the codes I need to type ✊😔

sonic cedar
# red flower yeah

semi-related question, i can see that copy_card uses strip_edition, but unless i missed it i'm not seeing anything for ADDING an edition. is there a param that does that or is it something id have to do separately with like set_edition?

red flower
#

the last thing

sonic cedar
#

id cry if i didnt actually understand how to do that

long sun
#

you know how Marble Joker puts its Stone cards in the middle of the screen for a bit, before adding them to the deck?

#

is there a way i can do that using the SMODS API?

queen vector
#

i am doing it well?

long sun
#

you missed a comma after pos { ... }

#

and i'm gonna presume you missed an end after the if statement's end

red flower
queen vector
long sun
long sun
#

cheers :D

#

uhmmmmmmm

sonic cedar
#

you emplaced it in G.play

long sun
#

ough true

red flower
#

no thats correct

long sun
#

ough true

red flower
#

return doesnt work in a consumable

sonic cedar
#

oh this is a consumable i see

#

mb 😭

long sun
#

OH gotchaaa

#

lemme try that now

#

still stuck -u- i don't know if i can do this outside of a round

#

[which, i did that]

red flower
#

can i see the code again

long sun
#

maybe it's a timing issue

#

i'll add a delay

red flower
#

hmm yeah no idea

long sun
#

OH i think i see what's happening??

#

the consumable is being put into the deck

red flower
#

oh yeah a used consumable goes into g.play too

long sun
#

dfgjnjkgndfj sobbbbb

#

is there a way to dissolve the consumable before it adds everything?

#

but not destroy it?

#

i.e. remove it from G.play

red flower
#

ill give you another idea: add nil, stone_card to draw_card

long sun
#

whereabouts?

rotund sable
#

what if you use SMODS.add_card instead of SMODS.create_card

red flower
#

as the last 2 arguments

long sun
#

gotchagotcha

red flower
sonic cedar
#

unrelated consumable question:
does anyone know if consumables share the same rates as their packs?
e.g "do both planet cards and planet packs use G.GAME.planet_rate?"

long sun
#

okay better! but the stone card wasn't added to the deck preview correctly, and the limit wasn't updated

rotund sable
#

idk i had a similar problem and i fixed it somehow, one of the steps was switching to add_card
this is the code i ended up with

local card_1 = SMODS.add_card  { set = "Base", edition="e_polychrome", enhancement = "m_steel", seal = "Red", front = "S_J", area = G.deck }
local card_2 = SMODS.add_card  { set = "Base", edition="e_polychrome", enhancement = "m_steel", seal = "Red", front = "S_J", area = G.deck }
G.E_MANAGER:add_event(Event({
    func = function()
        card_1:start_materialize()
        G.GAME.blind:debuff_card(card_1)

        card_2:start_materialize()
        G.GAME.blind:debuff_card(card_2)
        
        G.hand:sort()
        return true
    end
}))
#

i think add_card was for updating the number under the deck

#

uhm

red flower
#

<@&1133519078540185692>

long sun
#

NO WAYYYYYY

#

/kidding

red flower
sonic cedar
#

for FREE?

long sun
#

will try

sonic cedar
long sun
#

ooh!! so the effect that adding a delay had was me getting to see the pack moving to make way for the card

#

but now the card is drawn face down

red flower
#

i think its because it's added facedown to G.discard with add_card

#

try create_card with this

G.playing_card = (G.playing_card and G.playing_card + 1) or 1
stone_card.playing_card = G.playing_card
table.insert(G.playing_cards, stone_card)
long sun
#

alrighty

#

YESSSSSSS THIS WORKS PERFECTLY đŸ„ș

#

TYTYTYTY

normal crest
#

don't ask me where in the code it is done tho

granite nymph
#

des anyone know why my localization doesny work

normal crest
#

ConsumableTypes don't add your mod prefix to the key by default

granite nymph
red flower
#

ConsumableTypes don't add your mod prefix to the key by default

granite nymph
#

yip is my prefix

red flower
#

you need to take out the prefix

granite nymph
hard flume
#

How would I go about making a sticker render a card differently? Is that possible

hard flume
red flower
granite nymph
modern kindle
#

Im sorry but seeing the same messages typed twice in a row back and forth made me freaking lose it
I chortled

red flower
#

i mean i copied it for comedic effect so thanks

modern kindle
#

Youre a silly fella

red flower
long sun
#

WHAT DID I DOOOOO

granite nymph
#

do you want my tarot filers

granite nymph
long sun
#

i think this is as a result of me not knowing very much about what these specific functions i'm working with do

#

have a gander ^u^

granite nymph
sonic cedar
long sun
#

ah, this one is called Acid Purple

granite nymph
#

link :?

red flower
granite nymph
long sun
red flower
long sun
#

OHHHHHHH IT GOT WORSE

granite nymph
#

i know im confused too 😭 😭

#

mods

sturdy compass
#

<@&1133519078540185692> get him

granite nymph
#

throw this guy into the stratosphere

sturdy compass
karmic creek
#

yeet

sturdy compass
#

Yote

exotic hedge
red flower
granite nymph
#

thank you fort your isuness

exotic hedge
sturdy compass
#

Like damn bro pick one Sob_praying

queen vector
#

i THINK i almost got this, i only need to turn every scored card once i do a Full Hosue, any tip?

sonic cedar
graceful vapor
#

I'm going to make a mod but idk how to create a joker function in the first place

#

I'll just sample everything from other mods

#

lol

formal quest
#

How can I display the contents of a table of strings?

hasty mist
#

why isnt this hook working? i'm trying to track the amount of money spent during a run

unborn bay
#

the mod function is local in the function

#

you cannot override local things

hasty mist
#

what should i do then

#

that's in the original function and im not sure what to do instead

#

i dont really know what it is

crisp coral
#

if mod < 0 then dollars_spent = dollars_spent - mod end
return dollarsspent(mod, instant)

formal quest
#

How do I create a Black Hole? Finding vanilla keys is hard.

rotund sable
#

c_black_hole id guess

red flower
#

theyre all in game.lua

#

or the localization files

queen vector
#

how do i do to change multiples cards of a hand at once?

red flower
#

loop through context.scoring_hand

queen vector
#

i'll try, thanks

sturdy compass
#

You should also get the VSC Lua Extension

formal quest
red flower
#

you need to loop through each string and concatenate them or something like that

long sun
formal quest
red flower
#

i dont see anything wrong there but it's weird that the context check is inside another check so maybe the problem is in the first if statement

#

unless the message does appear

formal quest
#

Oh, I left some checks that weren't supposed to be there

granite nymph
#

so when the card scored it adds 10 to the chips but it doesnt score the chips (also the sound doesnt work

ocean goblet
long sun
#

this doesn't seem to work either

red flower
#

shot in the dark because i have no idea
maybe for i = #all_cards, 1, -1 works?

long sun
#

Maybe??

formal quest
red flower
#

unzip the balatro.exe

sour garden
#

i'm trying to have a joker index the lowest rank in the deck, but the game crashes in the elseif firstcard then check with attempt to index field extra (a nil value)
i have card.ability.extra.currentcard in loc_vars

long sun
#

well, that fixed the Sleeve issue

#

but that's about it

granite nymph
#

why isnt it adidng the chips

red flower
sour garden
#

ah okie

red flower
long sun
#

the last added card sits in the middle of the screen, and the game is softlocked

red flower
unborn bay
#

FUCK

red flower
#

:3

#

updated docs when

red flower
granite nymph
long sun
#

which? the second or the third?

red flower
long sun
#

rightright

lunar finch
#

I wanna make a mod how do i

unborn bay
#

wait is this for an enhancement

#

just check for the card's card area then

#

like the card itself

vast bough
unborn bay
#

card.area == G.play

granite nymph
#

it goes through the deck and scores the cards in the deck

#

even in discard

long sun
#

didn't do anything

unborn bay
#

well yes because it runs for every card

#

context cardarea isnt gonna do anything

#

because its not specified

#

the only times it is specified is during context.individual

long sun
#

code is currently

granite nymph
#

it goes up to like 200 chips cause it checks every card in the deck and it just goes right back down to normal amount (MINUS BONUS CHIPS) after

red flower
long sun
#

aren't they already?

#

or did i misread

granite nymph
#

okay so

red flower
granite nymph
#

it applies the estxtra chips (including the ones inside of the deck and the discarded one) and when the actual card scores it just resets

long sun
#

oh i see

#

like so?

red flower
graceful vapor
#

Is this a good start or is this very wrong

pale rampart
#

does anyone know or know where to find how to add how many times you played a certain rank card? (this code is pretty dumb)

red flower
graceful vapor
#

Is this a good start or is this wrong

red flower
long sun
#

nothing changed ;u;

red flower
#

other than that it looks fine

graceful vapor
#

Or is it the only }
I'm not good at lua I have no experience

granite nymph
graceful vapor
#

I'd rather learn java lol

granite nymph
#

hkl.ESDC SDfjbnmhrsBFGhjkv

red flower
frigid cargo
#

i wanna try creating a voucher that changes the reroll for retcon from $10 to $5 but i know its in a function, how can i change that function from my mod?

granite nymph
#

OBS

#

DIDNT RECORD

unborn bay
#

i love black screen

#

make sure you focus into the window

frigid cargo
graceful vapor
granite nymph
#

when i focus OUT of teh window it starts recording

red flower
frigid cargo
#
   config = { extra = { rate = 24/4, display = 6 } },
    unlocked = false,
    requires = { "v_tarot_tycoon" },
    pools = { ["T3V"] = true },

    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.display } }
    end,

    redeem = function(self, card)
        G.E_MANAGER:add_event(Event({
            func = function()
                G.GAME.tarot_rate = G.GAME.tarot_rate * card.ability.extra.rate
                return true
            end
        }))
    end,
}

does the math seem right for the rate?

red flower
frigid cargo
granite nymph
#

i couldn’t get the sfreenrecording to work so

#

there you go

graceful vapor
#

If I want to make the Xmult change from a variable do I add a variable like

    loc_vars = function (self, info_queue, card, xmul)
        xmul = 1
    end,

-# gackt we can't have 2 things with the same name

#

and then put the variable in here?

granite nymph
# granite nymph

it’s just supposed add chips to the card, apply those chips, and ghen nothing else

#

but as you can see e

#

it’s doing all of that

graceful vapor
red flower
#

well, i have good news

graceful vapor
#

bruh

#

I though I made new cool thingledy

red flower
#

this is the code for green joker

#

from the main game

#

it does what you want but with mult instead of xmult

graceful vapor
#

Oh ok

#

lol

#

I'll just study that joker then ._.

granite nymph
red flower
frigid cargo
#

how can i change the amount a booster pack can give?

graceful vapor
#

I'll just make it only go up lol
How hard could it be for a noob? đŸ« 

red flower
frigid cargo
red flower
#

so dynamically?

frigid cargo
#

sure i think

red flower
#

if it's for a voucher or something you probably need some patches

frigid cargo
#

ah

#

i still have yet to learn what that is, thanks for the info tho

red flower
#

sadly a lot of vanilla things are not made to be customizable lol

frigid cargo
#

dang, unfortunate

granite nymph
red flower
#

yes

graceful vapor
#

What's the context for hand played?

red flower
#

there are many, green joker uses context.before

granite nymph
#

im not 100% sure howe to do that to be honest

red flower
#

add card.area == G.play instead of the check you had before

vast bough
graceful vapor
#

This too hard lol

granite nymph
graceful vapor
#

It's perfect ✹

#

Or is it?

granite nymph
#

okay so the issue is that the chips are applying and everything but right at the end it resets to the normal amount of chips

red flower
#

because the message looks wrong

granite nymph
#

no

graceful vapor
granite nymph
#

it will have the extra amount of chips on the right

#

and then when the card scores the chips reset back to the regular amount before all the extra chips

red flower
graceful vapor
#

No lol

#

Do I need to put the path in there

red flower
#

yes

red flower
granite nymph
#

the blue box

red flower
#

that's the left

graceful vapor
granite nymph
#

oh

#

:(

red flower
# granite nymph

but yeah that's what i meant, is the message on the card what's wrong?

graceful vapor