#💻・modding-dev

1 messages · Page 287 of 1

keen tiger
#

okay, so this works but it also triggers on the intro

iron haven
#

hmm

keen tiger
#

is that enough to get balatro in an initialized state?

#

i want to make sure that if i i.e programmatically launch a game im launching it in a well formed state

red flower
#

im not sure, you can check Game:main_menu

keen tiger
#

idk what initialization balatro needs at first

red flower
keen tiger
red flower
red flower
keen tiger
red flower
#

i mean actually reading them not checking for them

stark geode
#

trying to compile asprite got me installing a ms c++ compiler

iron haven
#

I don't know because this is my first time doing this.

stark geode
#

all this to save 20 dollars

red flower
keen tiger
#

oh wait i can just also check for !splash

old bane
#

is there a way to make it so that when you play, you don't lose one of your remaining hands? or would it just be easier to give yourself a hand whenever you play one

storm wharf
#

do i need loc_vars for a retriggering card?

glad osprey
#

why this no work :(

storm wharf
#

can anyone explain why this shows the message but doesn't repeat the score?

red flower
glad osprey
#

agh

#

where do i do that

red flower
# glad osprey agh

i recommend using SMODS.Gradient instead of patching tho, it also automatically adds it to loc_colours

glad osprey
#

oh neato

red flower
red flower
glad osprey
#

now what

#

i promise i am typically this stupid

red flower
#

i think it's modprefix_key

glad osprey
#

still no

#

its not in G.ARGS.LOC_COLOURS

glass scaffold
#

help. pls.

red flower
glad osprey
#

what needed to be in lowercase?

red flower
#

the key

glad osprey
#

0315b

red flower
#

it was added in 0323a

stark geode
#

i caved and paid for asperite

manic rune
#

rq whats the sprite size of blind icon

sturdy compass
glass scaffold
red flower
glad osprey
manic rune
#

much love from Andrew tate ❤️

glad osprey
#

waitnvrem

#

i cant count

red flower
glass scaffold
glad osprey
#

yea no it works now i just cannot count

red flower
sturdy compass
granite bane
#

what would the SMODS.add_card be for creating a random playing card?

sturdy compass
#

...I may have just 98%-ed myself 😭

glass scaffold
red flower
granite bane
#

ah

glad osprey
#

create_playing_cards is what i use

#

idk if theres a better one tho

granite bane
#

what would the create_playing_card( ) be to just make a random card

glad osprey
#

just that iirc

granite bane
#

do I have to manually create random functions for every element

#

oh

glad osprey
#

dont quote me tho

red flower
#

i think you need to create a random for each element, but try that and see if it works

glad osprey
#

can i actually do this or will it just not work

#

the x<y<z

red flower
#

i dont think so

glad osprey
#

not tonumber

#

shit

granite bane
#

you can just use and

glad osprey
#

yea no you dont neet to do anything

#

just keeping it empty works

red flower
#

oh nice

#

idk why vanilla does it that way then

glad osprey
#

"my code" "vanilla"

red flower
#

i think you can infer that i copied it from vanilla code

granite bane
#

game crashes

iron haven
#

hmm

granite bane
#

maybe not let me check wwith something else

glad osprey
red flower
#

yeah it works for me but doesn't emplace it unless you do create_playing_card(nil, G.hand)

glad osprey
#

G.hand can be any card area btw

granite bane
#

how do you make it only go in hand?

glad osprey
#

G.hand

granite bane
#

Oh you meant you can replace that with any card area

glad osprey
#

yea

granite bane
#

I thought you were saying that can appear in any hand and I was confused lol

glad osprey
#

hmmmmmmmmm

granite bane
#

Anything is an exaggeration cause it's not a complete meme joker (if it were fully a meme joker I'd have 'anything' include, say, instantly winning the blind, or crashing the game), but it can do a lot of different things

manic rune
granite bane
#

huh?

iron haven
#

What is wrong? Why doesn't it load?

granite bane
#

why doesn't what load

glad osprey
granite bane
#

oh nice

glad osprey
#

we got url files now??????

iron haven
iron haven
manic rune
#

whats your code

iron haven
quartz ravine
#

Had some random inspiration!

stark geode
#

What if

#

Exodia balatro

manic rune
quartz ravine
#

Yeah I should have put that on my Ghost Rare or Secret Rare decks, instead of my own custom edition

quartz ravine
# stark geode Exodia balatro

Get all five joker pieces and then just auto win everything, lol. Or maybe it retrigger all cards five times, to make it less op

red flower
#

someone did an exodia mod

stark geode
quartz ravine
#

🆙 btw if folks haven't tried it, his/her mod is amazing!

iron haven
quartz ravine
heavy hare
#

what is the way to access nodes in a global UI element? i have UI elements in a table, and i want to remove the table nodes to remove the Sprites that are in them.

 local node = {n=G.UIT.R, config={align="cm",maxw=4, maxh=0.5},nodes={
    -- animated sprite nodes go here
  }}

-- the UIE is a UIT.ROOT node
G.HUD_blind_tracker:add_child(node, G.HUD_blind_tracker:get_UIE_by_ID('blind_tracker'))
#

there will be 3 subnodes in the node object and i want to update them in another function. how do i access them?

iron haven
#

Can someone help with me?

#

lovely, malverk, and steamodded should be in the Balatro mod folder?

quartz ravine
iron haven
#

for AltTexture.lua

quartz ravine
#

Try taking your content and copy and paste it somewhere safe. Then delete from the mod folder and restart Balatro to see if it still errors. Try to isolate the problem

old dirge
#

instead of mult gain

#

how do i make my base mult become multiplied

iron haven
#

it has to do with the files somehow

#

What file is it?

#

hmm

#

FoxDeploy?

quartz ravine
#

step 1 : move your files out
step 2 : does it still crash?
step 3 : move your stuff back in bit by bit
step 4 : eventually you will uncover exactly when the crash comes back

now you know where to look

iron haven
#

Malverk-main

#

that's the file but where in the file?

iron haven
#

but where in the file, FoxDeploy?

#

hmmmm

#

I don't know. what, do you know FoxDeploy?

#

or someone else

granite bane
#

okay so would making a random rare joker be SMODS.add_card({set = "Joker", rarity = 3})

#

or is there a specific set for rare jokers

quartz ravine
#

But try to see if Malverk itself works without changes

iron haven
#

So it is the code I added.

iron haven
#

the code I added.

quartz ravine
#

The error message implies that somewhere, you're not returning a table valu, but instead a string

here's the difference

lua
local iAmAString = "my strval"
local table = {"hello}
iron haven
#

AltTexture({ key = 'myprefix_F deck', -- the key of the texture set = 'Cards', -- define the object type that you are retexturing, see wiki for full list of types id = "foxtrotdeck", name = "F deck", path = '8BitDeck.png', -- the filename of your spritesheet, saved in assets/1x AND assets/2x loc_txt = { -- [NYI] Localization text for tooltips displayed in the texture selection screen - can be added to a localization file under [descriptions][alt_texture] name = 'F Texture', text = 'Cards are different' } })

quartz ravine
#

I would start by looking super closely at examples from Malverk and double check syyntax

iron haven
#

I would let a malverk expert help

spark pumice
#

I'm having trouble with programming... The first part and middle work fine, but the last part isn't doing quite what I want it to? It ends up destroying all the heart cards in hand, and not just the ones played. Admittedly I don't really know what I'm doing

quartz ravine
#

Weird, I am correctly counting all of the Jokers of matching edition in my deck, but for some reason my loc_vars in the description doesn't update

iron haven
#

...

quartz ravine
quartz ravine
spark pumice
iron haven
#

I'm bumfuzzled/foxed

daring fern
spark pumice
#

OH I see

#

Yeah looks like that fixed it! Ty!

sour marsh
#

does anyone know where in the code is the function to close a booster after it's done being used?

#

i found card:open()

#

there might be an easier way to do what i'm trying to do but i feel like i'm pulling on a thread that's getting longer and longer

sour marsh
#

i'm trying to make a consumable that shows you a selection of consumables and lets you pick one to delete from the run permanently

daring fern
sour marsh
#

so what i'm gathering for now is that i have to create a card area for the consumables similar to the one created for a booster

daring fern
sour marsh
glad osprey
#

how would I make balatro bluescreen your pc

daring fern
glad osprey
#

that's what I did for my joker only deck

sour marsh
glad osprey
#

holdon lemme check where you have to put the key

rapid stag
#

does nayone know what the arguments of Sprite() are?

glad osprey
sour marsh
#

so i would ideally want a dummy booster that doesn't show up anywhere

sour marsh
manic rune
#

man im so confused

daring fern
manic rune
#

for some reason my code increases a joker's atk by 4% when i put it 2%

modern kindle
#

Set it to 1%
Solved

manic rune
#

wtf...

manic rune
sour marsh
#

gonna try that thank you so much!

manic rune
radiant plank
#

how does one go about indexing unlocked hand types?

daring fern
manic rune
long acorn
#

this will make it work in the first hand of the round only right

manic rune
#

shouldnt it be 1?

#

im actually not sure when that gets increased

#

if its immediately when you play a hand then that will never work

long acorn
#

i copied it off trading card so that might be the prob

manic rune
#

dunno

#

see if it works :p

#

if it doesnt then increase that by 1

long acorn
#

yea it crashed lmao

#

huh it still crashed when i set it to 1

iron haven
#

BepisFever, do you know lua?

#

or Malverk?

long acorn
#

ok i found a first hand played thing from a different mod

tf does juice card mean

maiden phoenix
#

Juice_card_until is for stuff like DNA or Trading Card to make them shake until their effect has/can't be activated

manic rune
manic rune
iron haven
long acorn
#

it was meant to be hands_played not hands_used lol

manic rune
#

yeah

#

❤️

manic rune
iron haven
#

ok...

long acorn
#

what do i put in the if statement that checks that theres no face cards in the played hand

manic rune
#

i dont think theres any

#

but you can go through the whole context.full_hand

#

if v:is_face(), then the hand has a face card

#
for i,v in ipairs(context.full_hand) do
  if v:is_face() then return end --doesn't run anything below this, basically
end
iron haven
#

...

long acorn
manic rune
#

you do put it in the calculate function

long acorn
#

so like

manic rune
manic rune
long acorn
#

and on top of the return block?

manic rune
#

yes

long acorn
#

so thisll work now

manic rune
#

mhm

long acorn
#

nice thanks

long acorn
#

now the next part

i found the code used for familiar
now how to slot it into joker code

iron haven
#

hmm

reef belfry
#

This just kinda looks bad but idk what id make it look like

long acorn
iron haven
long acorn
#

what

iron haven
#

...

sour marsh
#

i think SMODS.create_card() doesn't work for boosters

#

i'm probably doing something wrong but i used the default create_card and it worked

iron haven
#

I have no idea how to fix my error.

long acorn
#

where the fuck do i put the rng variables aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

sour marsh
#

creating the card in the return statement is cursed

long acorn
#

if it works it works ack

sour marsh
#

usually you would do

if context.whatever then
  -- create playing card
  return{whatever = true}
end
sour marsh
long acorn
iron iron
#

how do i remove a suit from the starting deck? read the wiki but it just confused me a bit

iron haven
# sour marsh what's your error?

It has to do with this
AltTexture({ key = "myprefix_F deck", -- The key of the texture set = "Cards", -- Define the object type that you are retexturing id = "foxtrotdeck", name = "F deck", path = "8BitDeck.png", -- The filename of your spritesheet, saved in assets/1x AND assets/2x loc_txt = { -- [NYI] Localization text for tooltips displayed in the texture selection screen -- Can be added to a localization file under [descriptions][alt_texture] name = "F Texture", text = "Cards are different" } })

#

Yes, this

sour marsh
# long acorn oh it doesnt have to be in the return statement? ive put all the joker effects ...

nah, the return table lets you set specific variables that can do different things depending on the context
there's also return { remove = true } for some contexts that let you remove cards
anything else goes before the return statement
https://github.com/Steamodded/smods/wiki/Calculate-Functions

GitHub

A Balatro Modding Framework. Contribute to Steamodded/smods development by creating an account on GitHub.

digital niche
#

is there a way to make a joker value be duplicated everytime something specific occurs? i have the code for getting +2 mult everytime a blind is skipped, how could i make the mult just go duplicating, like, 2 - 4 - 8 - 16 etc

iron haven
sour marsh
digital niche
#

if i want to do a number times another will it be number . number or number * number ??

iron haven
sour marsh
iron haven
#

I want to get the textures into the game.

sour marsh
#

so you want to retexture a deck called F deck?

iron haven
#

No, I want to make a deck to retexture the playing cards to F deck

sour marsh
#

remove that line

#

and run the game

iron haven
daring fern
sour marsh
#

they're using Malverk

#

wait hold on

#

i don't see your mod in the modlist

#

@iron haven

daring fern
#

Like friends of jimbo.

#

But for all ranks.

digital niche
#

is there something wrong here?

sour marsh
sour marsh
daring fern
#

Doesn't look like it does.

#

It only works for the back of the playing card.

sour marsh
#

@iron havenhttps://github.com/Steamodded/examples/blob/master/Mods/DeckSkinTemplate/DeckSkinTemplate.lua here's the example mod in SMODS that covers DeckSkin if you need more help

GitHub

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

daring fern
sour marsh
#

i was gonna ask you that too

#

in the error code i didn't see your mod

iron haven
sour marsh
#

do you have your mod folder set up?

iron haven
sour marsh
#

i mean for your mod

daring fern
iron haven
daring fern
iron haven
daring fern
iron haven
daring fern
#

In your mods folder?

iron haven
#

yes

peak tiger
#

How do I check the amount of cards discarded?

daring fern
peak tiger
#

in context.discard

digital niche
daring fern
sour marsh
# iron haven

do this: @iron haven

  1. Remove malverk since you won't be using it
  2. Download this example mod pack and unzip it https://github.com/Steamodded/examples/tree/master
  3. Find the DeckSkinTemplate folder
  4. paste it in your Mods folder, this will be the template for your mod so you don't have to make it from scratch, you can change the names of the folder and the files inside if you want
  5. Read this https://github.com/Steamodded/smods/wiki/Mod-Metadata this will explain how to format the .json file you will find in the folder to fit the needs of your mod
  6. Read the .lua file so you familiarize yourself with SMODS.Atlas and SMODS.DeckSkin, here is the documentation detailing how they work https://github.com/Steamodded/smods/wiki/SMODS.Atlas https://github.com/Steamodded/smods/wiki/SMODS.DeckSkin
  7. change whatever you need to change to fit your mod

If you get lost along the way feel free to tag me, if i'm still awake i will respond

peak tiger
#

second question, what is the way to add/remove money in scoring?

daring fern
#

Both work for negative numbers I think.

sour marsh
#

is there a way to make keep_on_use not send the card to your consumable slots and then emplace it somewhere else?

#

i think what i'm doing is just an insane hack that steammodded wasn't built for

#

or balatro for that matter

daring fern
sour marsh
#

yea

sour marsh
daring fern
# sour marsh yea

You could try looking at pointer and check what name is inputed and check if its one of how many choices of consumables.

sour marsh
#

i think i'm just gonna create a dummy consumable with the same texture

#

that does the actual card removal

#

and is only summoned in the dummy booster

sour marsh
#

i mean it wouldn't make sense to do that outside of my niche case

sour marsh
iron haven
sour marsh
iron haven
sour marsh
#

nono

#

read the link i sent you in step 5

#

that's what the json would look like

iron haven
#

so

sour marsh
#

you will not be using the AltTexture code you made, that is from malverk and it's unfortunately not capable of replacing cards

crisp coral
#

why asre you using vs for this

#

sob

iron haven
#

what else do I add?

reef belfry
#

it looks too chonky compared to the actual consumable cards

sour marsh
#

i can't find the documentation for SMODS.ConsumableType

#

does it not exist

#

ok im just gonna look at some other mods that use it

iron haven
#

Don't I have to add the file to 1x and 2x?

sour marsh
#

yea

#

make sure the 2x file is 2x the size

iron haven
#

How do I do that?

#

Make the image 2x size.

reef belfry
#

that probably depends on what app ur using to make em

iron haven
#

ok now?

sour marsh
#

in aseprite it's easy

#

just make the canvas twice the size then select your original sprite and resize it to the entire canvas

#

in photoshop/gimp/krita it's probably similar

daring fern
iron haven
#

I did that. Now what do I do?

sour marsh
#

put the 1x file in 1x and the 2x file in 2x

#

then keep going through the steps

daring fern
iron haven
#

it isn't there.

daring fern
iron haven
#

wait, it didn't save.

daring fern
iron haven
#

there

daring fern
reef belfry
#

kinda expected it to be going down than up

daring fern
#

The mod thats not showing up.

iron haven
#

in examples-master?

daring fern
#

Yes.

iron haven
#

I replaced the template. fyi

sour marsh
iron haven
#

FDeck.

sour marsh
#

and delete examples-master

iron haven
tawny narwhal
#

what da hell is this

iron haven
#

oh

tawny narwhal
#
(263->)        if context.retrigger_joker_check and context.other_card ~= card and context.other_card.ability.extra and context.other_card.ability.extra.is_jet_joker and not (context.other_card.ability.name == 'SUPCruise' and context.other_context.end_of_round) then
            return {
                repetitions = 1,
                message = "Refuelled!",
            }
        end
    end```
iron haven
#

It is there but the cards didn't change.

daring fern
daring fern
sour marsh
iron haven
# sour marsh what is in the .lua file?

`local atlas_hc = SMODS.Atlas {
key = "skin_hc",
path = "skin_hc.png",
px = 71,
py = 95,
}

local atlas_lc = SMODS.Atlas {
key = "skin_lc",
path = "skin_lc.png",
px = 71,
py = 95,
}

local icon_lc = SMODS.Atlas {
key = "icon_lc",
path = "icon_lc.png",
px = 18,
py = 18,
}

local icon_hc = SMODS.Atlas {
key = "icon_hc",
path = "icon_hc.png",
px = 18,
py = 18,
}

SMODS.DeckSkin {
key = "example",
suit = "Hearts",
loc_txt = "Example",
palettes = {
{
key = 'lc',
ranks = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', "King", "Ace",},
display_ranks = {"King", "Queen", "Jack"},
atlas = atlas_lc.key,
pos_style = 'deck',
suit_icon = {
atlas = icon_lc.key,
},
},
{
key = 'hc',
ranks = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', "King", "Ace",},
display_ranks = {"King", "Queen", "Jack"},
atlas = atlas_hc.key,
pos_style = 'deck',
colour = HEX("9734f0"),
suit_icon = {
atlas = icon_hc.key,
},
},
},
}`

#

that ^

sour marsh
tawny narwhal
spark pumice
#

Here’s how my first joker went! It was annoyingly enough the simplest one I came up with, but it still resulted in a lot of bug fixing thay took longer than the original programming itself… despite that it’s actually a lot of fun to play! Balanced? Nah. That’s why it’s Cryptid Inspired. I’m planning to also add Kinito, PAL, Wheatley, GladOs, and like- maybe a few others? But also it’s a solid Joker on its own tbh. How do I uh- make it available to download? I’ve never gotten this far on a project before ngl-

daring fern
reef belfry
#

does this look stupid

#

the name i mean

spark pumice
#

I think it’s sick as hell

#

I like how it kinda has a subtle parallax effect to it? Due to the letters in the center being smaller? It kinda looks like a hallway a little bit it’s awesome

daring fern
iron haven
#

8BitDeck

sour marsh
#

in SMODS.Atlas you need to change the png files to the ones you want to use

iron haven
#

renamed them to FDeck and FDeckX2

sour marsh
#

they need to be the same name

#

in both the x1 and x2 folders

iron haven
#

`local atlas_hc = SMODS.Atlas {
key = "skin_hc",
path = "skin_hc.png",
px = 71,
py = 95,
}

local atlas_lc = SMODS.Atlas {
key = "skin_lc",
path = "skin_lc.png",
px = 71,
py = 95,
}` these?

sour marsh
#

right, after path =

#

change it to the name of your sprite

iron haven
#

the key?

#

oh the path

#

ok now?

#

`local atlas_hc = SMODS.Atlas {
key = "skin_hc",
path = "FDeck.png",
px = 71,
py = 95,
}

local atlas_lc = SMODS.Atlas {
key = "skin_lc",
path = "FDeck.png",
px = 71,
py = 95,
}`

sour marsh
#

run the game and see if it throws an error, make sure both the 1x and the 2x files have the same name

#

and make sure they are in their respective folders

#

assets > 1x
assets > 2x

iron haven
#

It is on only the hearts

sour marsh
#

yeah

iron haven
#

SMODS.DeckSkin { key = "example", suit = "Hearts", loc_txt = "Example", palettes = { { key = 'lc', ranks = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', "King", "Ace",}, display_ranks = {"King", "Queen", "Jack"}, atlas = atlas_lc.key, pos_style = 'deck', suit_icon = { atlas = icon_lc.key, }, }, { key = 'hc', ranks = {'2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', "King", "Ace",}, display_ranks = {"King", "Queen", "Jack"}, atlas = atlas_hc.key, pos_style = 'deck', colour = HEX("9734f0"), suit_icon = { atlas = icon_hc.key, }, }, }, } How do I do it for all the suits?

sour marsh
#

you need to make another SMODS.DeckSkin
and change suit = "Hearts",for the next suit

#

basically copy all that

#

and make it the next suit

#

and so on until you have 4

iron haven
#

I do

#

Now run it?

sour marsh
#

yea

#

lets see

iron haven
#

still on the hearts

#

do I have to do it in order?

sour marsh
#

ohhh

#

i know what it is

#

right

iron haven
#

?

sour marsh
#

do you have your spritesheet?

#

what order are the decks in?

iron haven
#

in the code?

sour marsh
#

in the image

iron haven
#

hearts clubs diamonds spades

sour marsh
#

can you send me a screenshot of your lua code

iron haven
#

this?

sour marsh
#

change the key on each DeckSkin so it's a different one

sour marsh
#

whatever you want

#

you can name it afte the suit

#

as long as they are all different

iron haven
#

do I do the ones in pallete or no?

sour marsh
#

no not those

iron haven
#

ok

sour marsh
#

then just run it

iron haven
#

ok

#

it works

sour marsh
#

we are so back

#

now change the sprite to whatever you want

#

and you're done

iron haven
#

ok

long sun
#

[thanks, on his behalf :)]

sturdy compass
#

Lmao

mystic moth
placid star
#

hey guys how would one find a jokers position in the card hand thingy? I'm looking to make a joker to retirgger other jokers to thr left and right but I'm struggling with finding positions... :(

sturdy compass
#

You’d loop through G.jokers.cards with a standard for i=1… loop. When G.jokers.cards[i] == card, store the value of i somewhere and use that as the baseline of where your joker is located

sour marsh
#

ok i finally managed to create the boosters but my brain is fried

#

forget that if you saw it i'm stupid

tawny narwhal
daring fern
tawny narwhal
#
    key = 'ACarrier',
    loc_txt = {
        name = 'Aircraft Carrier',
        text = {
            "Retriggers all {C:attention}Aircraft{} type Jokers",
        }
    },
    rarity = 2, -- Uncommon
    atlas = 'AircraftCarrieratlas',
    pos = { x = 0, y = 0 },
    cost = 5,
    loc_vars = function(self, info_queue, card)

    end,

    calculate = function(self, card, context)
        if context.retrigger_joker_check and context.other_card ~= card and type(context.other_card.ability.extra) == 'Table' and context.other_card.ability.extra and context.other_card.ability.extra.is_jet_joker and not (context.other_card.ability.name == 'SUPCruise' and context.other_context.end_of_round) then
            return {
                repetitions = 1,
                message = "Refuelled!",
            }
        end
    end
}```
#

I assume I've implemented the new condition wrong

daring fern
tawny narwhal
#

oh bruh

#

yeah you right

daring fern
#

Also I think it needs to be lowercase.

#

My mistake.

iron haven
#

why is it offcenter?

daring fern
#

How can I retrigger Jimbo at the end of a run?

long acorn
iron haven
daring fern
long acorn
#

guess i just add that to the return block then?
so it triggers hologram

iron haven
daring fern
long acorn
#

message = 'Again!' or something like that

daring fern
sour marsh
daring fern
sour marsh
#

emplace a consumable to my hand

#

but it doesn't work it goes to the consumable area

daring fern
sour marsh
#

yea

#

i might need to create a new card area

#

fuck my chungus life

#

copied the code that draws cards into hand and replaced it with hex hoping it would just work

#

it doesn't

daring fern
#

Wouldn't ```lua
local card_ = create_card("Spectral", G.hand, nil, nil, nil, nil, 'c_hex')
card_:add_to_deck()
G.hand:emplace(card_)

sour marsh
#

hmm

#

i don't wanna add it to the deck tho

#

i just wanna show it temporarily

#

i would just remove it afterwards right

#

but i don't want it to show up in the deck summary

daring fern
#

It wont count as a playing card I don't think.

red flower
sour marsh
#

IT WORKS

#

i had to add it to deck

sour marsh
#

ok now i need to make this happen only once

#

i don't know if update_pack is the right function

daring fern
sour marsh
#

i think it would work in this case

#

since i'm only creating one card anyways

sour marsh
daring fern
sour marsh
#

lmfao

#

peak

native zinc
#

pain !

placid star
#

how does one retrigger a joker? like blueprint does

daring fern
placid star
#

uhm I'm trying to make a joker that copies the jokers to the left and right IF both are copiable

#

so blueprintable I think

daring fern
#

And ```lua
if G.jokers.cards[i] == card and G.jokers.cards[i-1] then
return SMODS.blueprint_effect(card, G.jokers.cards[i-1], context)
end

#

It would have to be all in one return though.

placid star
#

here is my code at current (I MIGHT be new to lua) sorry for low dhitty quality I'm at school and disc is banned unless you have a vpn 😪

daring fern
placid star
#

so I'd put both of the code you sent inside a for loop?

placid star
#

stupid question but how do you check if a jonkler is blueprint compatible?

daring fern
# placid star stupid question but how do you check if a jonkler is blueprint compatible?

Put this in the update function ```lua
local other_joker = nil
if G.STAGE == G.STAGES.RUN then
for i = 1, #G.jokers.cards do
if G.jokers.cards[i] == card then other_joker = G.jokers.cards[i+1] end
end
if other_joker and other_joker ~= self and other_joker.config.center.blueprint_compat then
card.ability.blueprint_compat = 'compatible'
else
card.ability.blueprint_compat = 'incompatible'
end
end

placid star
#

I'm sorry I'm rly new to this, I dont have an update function and I wouldn't know where to put one...

daring fern
#

Just put update = function(self, card, context) above your calculate function.

placid star
#

does that not only account for the right joker tho?

daring fern
#

You would have to set a different variable to the left joker.

placid star
#

ah okay!

#

in calculate would i do an if to check if both left and right joker are compatible?

daring fern
placid star
#

but would that lead to one of them being activated when the other isn't compatible?

daring fern
#

You probably would have to check then.

placid star
#

okay I'll do some testing, thanks for all the help tho! I can't thank you enough !!

iron iron
#

im confused on how the text colour works for suit, how would i use a colour tag (like C:mult) with this suit

sour marsh
#

i give up for today

#

gonna continue tomorrow

#

i was so close too but my brain is cooked

sour marsh
#

the same as any other loc_txt

iron iron
sour marsh
#

to add your suit

placid star
daring fern
placid star
#

ohh

sour marsh
#

but i'm not sure exactly how the key is formatted

iron iron
#

played cards with {G.C.SUITS[prefix_Leaves]}Leaf{} suit give +x mult when scored

#

or no curvy braces for the tag

sour marsh
#

no hold on

#

there might be a better way to do it but here's my solution

#

give me a sec

sour marsh
iron iron
#

ahhhhh that makes sense

primal robin
#

Just look at the Ancient joker water

iron iron
primal robin
#

Just check vanilla balatro code

sour marsh
#

it's the same

iron iron
primal robin
#

What do you mean?

placid star
placid star
iron iron
daring fern
heavy hare
#

how do you update the nodes that are used in an UIBox? do you update with a new table or do you access them via get_UIE_by_ID to update/delete?

#

like i have 3 nodes that make up a table and i want to delete them it updates

#

G.HUD_blind_tracker:get_UIE_by_ID('tracker_small').remove()
^ something like this

crisp coral
#

:recalculate()

heavy hare
#

does that work with the removing of nodes? it didn't seem to update

crisp coral
#

it should

primal robin
#

Removing node doesn't require recalculate by itself

daring fern
#

Why does this not put a seal on every card in a pack?

placid star
primal robin
sour marsh
#

Lua moment

daring fern
#

Also what is the difference?

primal robin
#

pairs for object, ipairs for array

daring fern
#

This works and this is in the calculate function.

primal robin
#

This doesn't crash just because G.shop_jokers.cards.highlighted doesn't have seal

#

Use ipairs anyway

long acorn
primal robin
#

pairs iterate all keys until first nil, ipairs only integer keys (1, 2, 3 and go on) until first nil

placid star
#

does anyone know what all the contexts are? if that makes any sense lol

daring fern
daring fern
placid star
#

how does context.other_joker work if I'm not too much trouble...

daring fern
#

It's for things like baseball card.

placid star
#

ahh, I'm having alot of trouble making a blueprint type joker, do you think it'd be easier to just retrigger jokers instead?

placid star
#

so another thing to stare at for 3 hours... worth it

tall wharf
#

this is why you mentally limit the amount of retriggers

placid star
#

well my joker retriggers 2 jokers once but I just cant seem to grasp it..

long acorn
daring fern
#

Try putting playing_card_joker_effects({true}) after it creates the card.

long acorn
#

that did it thanks

placid star
#

could anyone point me in the direction of make a retrigger jerkler?

daring fern
placid star
#

okay that's done!

daring fern
# placid star okay that's done!

Then you put this in calculate ```lua
if context.retrigger_joker_check and not context.retrigger_joker and context.other_card == (Right_joker or Left_joker) then
return {
message = localize("k_again_ex"),
repetitions = card.ability.extra.retriggers,
card = card,
}
end

placid star
#

is that really it?

#

do i need to ammend my update function at all

daring fern
#

You shouldn't.

#

You probably should check for blueprint compatibility.

#

Because not context.blueprint doesn't apply for retriggers.

placid star
#

hm

#

I'm getting an error about a local pool fix

daring fern
#

Show the error.

placid star
#

it's on boot

daring fern
#

What does your code look like?

placid star
#

I uploaded it to the git hub

daring fern
placid star
#

oh shit that was me splicing segments of code together a while ago whoops

#

my laptop just died so I can't fix it rn but could that be the issue?

daring fern
#

It probably is because raritys have pools and raritys need prefixes.

quartz ravine
# placid star

you can hit control+c to copy that error from the game. Taking a picture of the error, lol.

placid star
quartz ravine
#

Don't know if it was mentioned but retrigger_joker_check has to be enabled also at your mod's base config.lua level

placid star
quartz ravine
#

SMODS.current_mod.optional_features = {retrigger_joker = true}

#

otherwise SMODS custom handling of joker retriggering does not work. Not related to your error

placid star
#

well when I get back home to my rig I'll update the pool and make an actual sprite for the joker lol

quartz ravine
#

Looks good to me 🙂

sour marsh
quartz ravine
#

How does a Glass or Stone joker only appear when you have at least one of those cards? I am trying to implement the same but I didn't see where that is done in the code

daring fern
#

Does anybody know why when I play a deck it looks like this?

hushed field
quartz ravine
quartz ravine
hushed field
#

you have the flags which are for things like cavendish

hushed field
#

and pools which are used for card packs and such

quartz ravine
#

normal deck for comparison

daring fern
hushed field
# daring fern I do.

that's why it looks flat. All the cards are stacked in the same spot for the sleeve sprite to not mess with it. You're just not using a sleeve

daring fern
#

How could I make it so things can have 2 seals?

reef belfry
#

I guess i can have them as placeholders for now

primal robin
#

That's fire

gilded goblet
native zinc
#

oh hey it all fits

hushed field
native zinc
#

i should make all the face cards 5s prolly

mellow sierra
#

how do i make a joker spawn a specific tarot card when blind is selected?

hushed field
mellow sierra
hushed field
#

(also great pfp)

mellow sierra
#

i want it to create the highpriestres for example

#

thank u man 😄

#

cant really find it in the documentation

hushed field
#

I can check the specifics once I'm at a PC, but I'd check documentation or Smods code for SMODS.create_card, which should get you there. I think it's in utilities?

mellow sierra
#

ill check rn

#

so in the if statment it should be SMODS.create_card("t_highpriestess")

#

or t_high_priestess

red flower
#

SMODS.create_card{key= "c_high_priestess"}

native zinc
mellow sierra
mellow sierra
#

is that to check for avalible slots or?

red flower
#

add_card puts the card in the area you want

#

or you can do area:emplace(card)

native zinc
# mellow sierra wdym

you gotta tell the card where it's going else it'll be very confused and lost (as in hovering over the card area and not working)

gilded narwhal
#

Okay gang what do we think of these legendaries

mellow sierra
#
            if context.setting_blind then
                SMODS.create_card{key= "c_high_priestess"}
                card:set_edition('e_negative', true)
                card:add_to_deck()
            end

    end
        
}

so far i have it like this but its kinda fucked it spawns it top right and dosent count as a consumable neither can i use it

#

did card:add_to_deck()
cause i saw that in the perkeo example though i would give it a try

red flower
#

G.consumeables:emplace(card)

hushed field
red flower
long urchin
#

how would i change this pack's offset? my current code isnt working
context.shop_card.children.center.offset.x = context.shop_card.children.center.offset.x - 20 context.shop_card.children.center.offset.y = context.shop_card.children.center.offset.y - 20

mellow sierra
#

eaven without e_negative same problem

red flower
#

remove the add_to_deck and emplace
add_card does both of those automatically

mellow sierra
#

add_card without parameters?

red flower
#

add_card automatically emplaces in the correct area for the object key you give it

long urchin
#

wheres the documentation on modifying ui? things like an object's offset or scale

#

im trying to see if im using the right command

red flower
mellow sierra
#

@red flower

calculate = function(self,card,context)
            if context.setting_blind then
                local card = SMODS.add_card({set = 'Tarot', key='c_high_priestess', area=G.consumeables})
                return true
            end

    end

fixed it like this thank u for helping out and answering my stupid questions 🫶

native zinc
#

ok

#

maybe i need to cool it off a bit

long urchin
#

so then how do i change the alignment/position of cards? things in my shop are offset and i need to realign them

quartz ravine
#

Wow, this maybe goes a bit too hard

native zinc
#

we've all been there

#

balanced mod then suddenly 1e11

quartz ravine
#

@red flower I have struggled so much with making Ghost Rare work with a shader. That effect is just soo cool looking in cards. But my wife pointed out to me that there is some unique art at play, and also custom hologram foil layers in the card to make it possible

#

I know as a fellow Yugi head, you'll know what it is I am trying to do

long urchin
#

how do you check a joker's rarity & edition?

daring fern
#

And joker.edition.polychrome/holo/foil/negative for editions

long urchin
daring fern
long urchin
long urchin
#

ahh ok ok

red flower
quartz ravine
#

For real!?

#

That makes your mod even more insanely well done then

#

This goes soooo well together. This uncommon card, maybe I will make it a Rare, retriggers cards when the hand is a flush.

This custom edition is like the card having it's own built-in hiker!

manic rune
#

i still cant figure out how to remove this with the least amount of effort as possible :p

manic rune
#

Gains +5 Chips when scored
(Currently +5 Mult)

quartz ravine
#

ugh! How do I not see this sort of thing, lol

#

mmmmmmmmmmmmm

long sun
#

is there a way to check the current ante?

#

oh, nvm, found it?
G.GAME.blind_ante

daring fern
late basin
#

Hi everyone! I wanna make a custom Joker mod but I'm not sure how to get started. I've installed Steammodded and Lovely but I'm not sure where to go from here? Is there a FAQ for creating your first mod and how to access the bit where I can modify game code? Thank you so much!

long urchin
daring fern
# long urchin

You would check context.shop_card.config.center.rarity

#

And not context.shop_card.edition

long sun
#

what's the variable for the small blind? i know the one for boss blinds is G.GAME.blind.boss

#

oop! found it

#

G.GAME.blind:get_type() == "Small"

tall wharf
#

ghost

long sun
#

haihaiii!

quartz ravine
#

Cool, each card has it's own unique id! I was trying to work around the issue of editions not having access to the base.card obj by making a global tracking table to look up the card.

But I was doing that using card.base.id, the effect? All identical card (like Kings of Clubs) would share an increasing perma_mult!!

long urchin
#

Is there a way to globally check if a card's sprite is smaller (i.e. half joker, photograph, wee) or would I have to add in manual exceptions

#

I wanna globally check so that it's modproof

#

Like, is there a tag that defines it being smaller and I can check that tag?

quartz ravine
#

Oooohhh, you can declare mod level functions and use them in Debug plus!!!

signal oak
#

i wanna mod balatro but vs studio keeps giving me the same error every time anyone know how to fix this?

olive saddle
#

I want to get the in code name for a spectral card that a mod adds so I can make the ghost deck start with it, how do I do that?

quartz ravine
#

Google 'Adding Lua to Env Variables Windows'

signal oak
quartz ravine
#

actually TBH I have not tried just running Lua 'hello world' in that context, I am not sure if it should work

placid star
#

@daring fern okay so im back but on my rig this time! it works... but it only retriggers the right joker and im not too sure how to retrigger the left aswell

placid star
modern kindle
#

Oh while I'm here for the moment something, how did you fix your issue of eternal glass cards staying on screen?
I'm out of the house for the day but I figured I'd pick your brain while you're here

daring fern
placid star
#

git hub copy and pasting fucked up my indentation

modern kindle
#

As a minor help you can select all of it, right click, and format selection if in vscode

south lintel
#

what do I use if I want to add/subtract money on a joker trigger?

daring fern
#

You can either use ease_dollars(number) or return dollars = number

quartz ravine
#

Weird....my edition code does not seem to see info for the card it applied too

For instance, this card has +20 extra chips, but in loc_txt from my edition, I don't see those values. I am trying to do this to support showing extra chips for jokers which have my custom edition

daring fern
south lintel
#

yep

quartz ravine
daring fern
# south lintel yep

You have to put ```lua
SMODS.current_mod.optional_features = function()
return {
post_trigger = true
}
end

#

Then you have to use context.post_trigger

placid star
south lintel
daring fern
placid star
#

i did not.. i didnt know there was a print function lmao

#

okay so a couple of things, when i change which joker its copying it no longer copies and it still only copies the right joker

daring fern
#

My mistake.

placid star
#

IT WORKS OMG

#

THANK YOU SO MUCH YOURE THE BEST

#

but erm, can i get it to say something other than 'again'

daring fern
placid star
#

it worked tysm!!

olive saddle
daring fern
olive saddle
#

right

olive saddle
daring fern
placid star
#

how would one make the 'compatible' 'incompatible' thing in blueprint description in a custom joker?

hushed field
#

check how the loc_vars are set up for vanilla's blueprint, and copy that over!

#

it's a custom ui node passed to the main_end return key

daring fern
# placid star how would one make the 'compatible' 'incompatible' thing in blueprint descriptio...

You put lua main_end = (card.area and card.area == G.jokers) and { {n=G.UIT.C, config={align = "bm", minh = 0.4}, nodes={ {n=G.UIT.C, config={ref_table = card, align = "m", colour = G.C.JOKER_GREY, r = 0.05, padding = 0.06, func = 'blueprint_compat'}, nodes={ {n=G.UIT.T, config={ref_table = card.ability, ref_value = 'blueprint_compat_ui',colour = G.C.UI.TEXT_LIGHT, scale = 0.32*0.8}}, }} }} } or nil in the return of loc_vars

placid star
#

ill have a look ty!

modern kindle
#

Hi ice my friend

olive saddle
hushed field
#

yo yo dilly

modern kindle
#

How goes the movie watching

#

Have you made an Oppenheimer consumable yet that destroys every played 5 and instead creates a 2 and 3 of the same suit

daring fern
manic rune
#

good morning chat

modern kindle
#

Bepisss

manic rune
#

helo

hushed field
#

I have joker art for it that's sat unused for like a month but I don't wanna make a big bomb joker based on the actual nuclear bombs dropping, haha, so I've been trying to find an alternate effect

modern kindle
#

But that's not super great

hushed field
#

I wanna finish up the Codex system and have it interact with that in some way. As a 'solving equations' kinda thing, but I've got no clue yet beyond that, haha

olive saddle
hushed field
placid star
olive saddle
#

I'm editing the files of an existing mod

daring fern
olive saddle
olive saddle
olive saddle
#

IT WORKED

manic rune
#

whats with everyone having the profile border

quartz ravine
#

yes....finally figured this out! I made an enchantment like Hiker, which makes a card upgrade in chips when scored

quartz ravine
#

If you play a high card, with these two jokers...then it goes really well

#

I am wondering...is the deck an object I can apply an effect to? I would ilke to render an edition effect on the deck area, to demonstrate that the cards within are all X type

rain slate
#
SMODS.Sticker {
    key = 'cursed',
    atlas = 'tecci_stickers',
    pos = { x = 0, y = 0 },
    badge_colour = G.C.PURPLE,
    loc_vars = function(self, info_queue, card)
        return {
            vars = {
                G.GAME.cursed_rounds or 3,
                card.ability.cursed_left
            }
        }
    end,
    calculate = function(self, card, context)
        if context.end_of_round and context.cardarea == G.jokers and not context.blueprint then
            if card.ability[self.key] and to_big(card.ability.cursed_left) > to_big(0) then
                if to_big(card.ability.cursed_left) == to_big(1) then
                    card.ability.cursed_left = 0

                    G.E_MANAGER:add_event(Event {
                        func = function()
                            card:set_ability('j_joker', nil)
                            card:remove_sticker(self.key)
                            card:juice_up(0.8, 0.8)
                            play_sound('foil1', 1.2, 0.4)

                            return true
                        end
                    })
                else
                    card.ability.cursed_left = card.ability.cursed_left - 1

                    return {
                        message = localize {
                            type = 'variable',
                            key = 'a_remaining',
                            vars = { card.ability.cursed_left }
                        }
                    }
                end
            end
        end
    end,
    apply = function(self, card, val)
        card.ability[self.key] = val
        card.ability.cursed_left = G.GAME.cursed_rounds or 3
    end
}
``` is there something extra you have to do to get your stickers to show up in the shop? I can reroll like 1 million times and no Jokers will have the sticker.
peak obsidian
peak obsidian
long urchin
#

how could i use debugplus to check the value of G.CARD_W here?

wintry solar
#

type in eval G.CARD_W

#

It’s 2.0something

long urchin
#

ok good

quartz ravine
#

Oh it wss G.deck

sturdy compass
long urchin
#

how can i set an objects scale to a specific value? Ive only figured out how to change it, but i need to set it

#

im making something that replaces shop cards with packs, and so i need to scale the cards to the size of the packs:
context.shop_card.children.center.scale.x = 71 * 0.8059 context.shop_card.children.center.scale.y = 95 * 0.8059

#

the problem is nonstandard joker sizes: photograph, wee, square, and half all warp the pack texture. I want to set it to specifically that value rather than scale it by that value so that way i can fix all of those jokers as well as handle nonstandard joker sizes from mods

quartz ravine
#

I will keep working on this, but so far this route doesn't work

G.deck.children.center:set_edition or send_to_shader

Could you nudge me in the right direction if you have some time, @wintry solar ?

placid star
#

can anyone figure out why my joker isnt displaying with its proper sprite? it WAS working but then i changed a couple things that i cant rly remember about and now its the default sprite and rarity :(

long urchin
#

is the atlas the same?

placid star
#

here is the atlas, its the only one

placid star
wintry solar
gilded narwhal
#

Steamodded should add ^mult support like it does with xchips

#

At least with adding a sound

daring fern
rain slate
gilded narwhal
#

Oop

wintry solar
gilded narwhal
#

Good to know

wintry solar
#

The only reason it added Xchips was to stop everyone asking for it and having many different implementations of it

quartz ravine
#

my heart was so sad when I realized that xChips is that same thing as mult, lol

radiant plank
#

if i wanted to render an immovable card inside a ui, what is my best course of action? is it to create a card, set the properties i want on it, then do something like this?

{
    n = G.UIT.O,
    config = {
        object = my_initialized_card,
        role = { role_type = "Glued" }
    }
}
daring fern
#

How could I draw a second seal on a card?

hardy viper
#

it might be card.VT.draggable

radiant plank
#

thanks that's very convenient

#

will i need to manually set the screen coordinates for the card, or is that managed by setting my ui object's config.object to the card?

#

not at my desktop so i cant try anything out right now

rain slate
#

stickers are so weird. for some reason the label text doesn't change when I set label lua tecci_cursed = { name = 'Cursed', label = 'Cursed', text = { 'Converted into {C:attention}Jimbo{}', 'after {C:attention}#1#{} rounds', '{C:inactive}({C:attention}#2#{C:inactive} remaining)', }, } and the sticker also never gets applied to a Joker in the shop unless I force it to with ```lua
should_apply = function (self, card, center, area, bypass_reroll)
return true
end

hardy viper
#

and put the cardarea in the ui

radiant plank
#

okay makes sense enough, thanks for your help

rain slate
#

that's why it's never in the shop

daring fern
mental nacelle
#

trying to figure out what and not not means right now

#

self.boss = blind and not not blind.boss

placid star
#

why does it seem like my custom common joker shows up so much more than every other joker, oh yeah and it can have dupes without showman

zealous glen
zealous glen
placid star
#

but why is it so common

sleek siren
#

Is there a way I can have text on the side of the screen when a joker is in use?

So that way I can have joker details being shown at all time?

zealous glen
# placid star oh shit yeah

Creating a copy with Debug Plus doesn’t remove it from the shop. It showing up a lot seems like confirmation bias

placid star
#

i remember seeing stuff about weight, do new objects have different weights compared to already defined rarities?

sleek siren
# zealous glen Like https://discord.com/channels/1116389027176787968/1241580123766128761?

Yeah! Although at a larger scale so that viewers could be able to see it easily, like Undertale Chaos Mod

https://gamejolt.com/games/undertalechaos/896330

So that viewers can see a list of things to vote on

Game Jolt

🎮 Undertale Chaos is a mod that adds effects that your friends or viewers can vote on. Effects can vary from setting your player sprite to Temmie to teleporting you forward five rooms. The highest...

zealous glen
#

Idk about it though

sleek siren
#

Oh! I found a UI guide, I think that may help

long urchin
#

whats the 'set' keys for planet cards, tarot cards, and playing cards?

#

like the config.center.set value to check it

zealous glen
#

I think it’s just Planet, Tarot, etc.

#

Playing cards don’t have a set I think

#

Unless the set is named after the center

long urchin
#

mmm ok ill have to check the booster pack values then

red flower
#

playing cards are "Default" and "Enhanced"

zealous glen
#

Those are the centers

#

But Idk if they’re sets

red flower
#

you get them with card.ability.set

zealous glen
#

Because you can’t SMODS.create_card then

red flower
#

oh yeah no but theyre called sets too

zealous glen
#

I see. I had thought they were just Center object types or something

runic pecan
#

...I think I added too many badges.

scarlet spire
#

is there a sensible way to detect when the player gains/loses a consumable? I'm trying to make a joker that depends on how many consumables you have, in real time

red flower
daring fern
hushed field
scarlet spire
#

in particular, this is the mechanic

daring fern
hushed field
#

It'll be inefficient, but not in a way thatll impact performance, but I'd just make it set that every context check

scarlet spire
#

that sounds like a bad idea

red flower
#

it would do that in update, i think that one is justified

scarlet spire
#

i'd rather have it trigger only when a consumable is added/removed, otherwise keeping track of the hand size value itself is a bit of a nightmare

hushed field
#

That exists in every context, even in the shop

sturdy monolith
#

glsl can make bocchi

red flower
#

i mean you can do it on a consumable being used or sold but that might not take into account other mods destruction effects and you need to keep track on the modified hand size anyway

scarlet spire
#

does anything else modify extra hand size?

zealous glen
scarlet spire
#

because I don't want the effect to overwrite, say, turtle bean

zealous glen
scarlet spire
#

I know

nocturne garnet
red flower
#

you only need to keep track of the modified hand size, you can make it independent from other effects

hushed field
#

You'll wanna set the modified handsized from that joker, so that you can see if it's changed. That should prevent you from overwriting the other effects

zealous glen
#

Adding Consumeables can use the modded context card_added

#

Removing consumables needs to be divided into two parts

#

Sold or destroyed

#

Sold is built-in

hushed field
#

I have a joker that I struggled with a similar issue with regarding chance, and @modern kindle wrote a pretty cohesive function to ensure it didn't overwrite other parts for it

zealous glen
#

Destroyed needs a bit of work but mods have done it

runic pecan
#

Tweaked it from 1.2 to 1.
What size is the mod badge, though?

modern kindle
zealous glen
#

omg it’s dilly

modern kindle
#

Hi vic!!

zealous glen
#

omg it’s riv falcon

#

How are you

modern kindle
#

It's very rainy here but I'm doing alright

#

I didn't want to get up and exist today but I did, so thumbs up to me

#

How are you?

zealous glen
#

Some days can be hard but I’m proud you did it

#

I’m doing well today I think

modern kindle
#

:D

scarlet spire
#

okay I have a weird system but it seems to work

#

where every update tick I'm just checking the difference between the value of #G.consumeables.cards and a variable I set to #G.consumeables.cards last update tick, to get the change in consumable count every update tick

#

and applying that change to the handsize on that update

#

the handsize gets set perfectly fine, but discarding the purple seal just Decides to draw more cards than it should

hushed field
scarlet spire
#

checking if they aren't equal, then if they aren't, change handsize by the difference and make them equal again

hushed field
#

I suspect it'll be because the game doesn't set the buffer properly, so it draws cards weirdly because the purple seal sets the buffer, but doesn't set the hand size, then a card gets set to be drawn because the hand isn't full. Then the tarot becomes real, and actually increases the hand size, and another card is set to be drawn. So it accidentally draws 2 cards

#

I suspect you can solve it by just checking the buffer together with the total

scarlet spire
#

it looks like changing handsize always draws a card even when it obviously shouldn't?

#

adding 1 to handsize when I'm at 11/8 cards still draws another card, putting me at 12/9

hushed field
scarlet spire
#

I haven't patched anything related to hand size so this should be stock behavior

#

smods is 0319c

hushed field
#

but that is on 0323a

scarlet spire
#

i'll upgrade and see

supple fractal
#

question, why do print(G.GAME.blind.chips) and print(G.GAME.chips) return their values with hi attached to the end of the number?

runic pecan
#

Is it card.rarity or card.center.rarity?

scarlet spire
long urchin
# daring fern You would do `not joker.edition`

this isnt working right. I used a seed to get a shop 1 polychrome blueprint, and instead it just made a polychrome jumbo pack

            if context.shop_card.config.center.set == 'Joker' then
                if context.shop_card.config.edition then
                    packselect = 'p_buffoon_mega_1'
                elseif context.shop_card.config.center.rarity > 2 then
                    packselect = 'p_buffoon_jumbo_1'
                else
                    packselect = 'p_buffoon_normal_' .. math.random(2)
                end```
scarlet spire
#

unrelated to my joker

hushed field
#

are you testing with any other mods installed?

scarlet spire
#

just debugplus

#

I have a suspicion

#

(suspicion was wrong)

#

do you have any optional features enabled?

hushed field
#

retrigger_jokers and the unscored card area

zealous glen
#

I remember some GitHub issue about hand size changes

#

but also I don't think checking every frame is a good idea

#

or necessary

modern kindle
#

I have a joker that sets a hand size and draws temporarily once I'm home i can look

hushed field
#

that wouldn't affect turtlebean, though, would it?

modern kindle
#

It shouldn't touch it no, i thought the issue was smth that was being done was impacting turtle bean my b

scarlet spire
#

that's so odd, why is it happening to me but not you

#

to the extent that turtle bean does it too

hushed field
#

I'm testing some jokers rn, but after that I'll clear my mods file and install smods clean with only debugplus, and see if it happens on my end still too

#

maybe I've patched something that accidentally solves that behaviour, but I don't think so. The only patch in the draw behaviour I have is one that stops all drawing from happening if you have a specific joker, but that can't affect this

zealous glen
#

I don't know if I would consider DebugPlus' remove to be reliable to test this

rain slate
#

how are you supposed to change the text at the bottom

#

label doesn't do anything ```lua
tecci_cursed = {
name = 'Cursed',
label = 'Cursed',
text = {
'Converted into {C:attention}Jimbo{}',
'after {C:attention}#1#{} rounds',
'{C:inactive}({C:attention}#2#{C:inactive} remaining)'
}
}

zealous glen
#

That's a badge

rain slate
#

I know

#

but others I've seen use label for that

zealous glen
#

That's probably modded

#

I've never seen that

scarlet spire
signal oak
#

can anyone help me with my first joker? the github page really isnt helping me understand anything i have steammodded downloaded and lovely but what now?

scarlet spire
#

also just tried it with selling and it does the same thing

signal oak
zealous glen
zealous glen
rain slate