#💻・modding-dev

1 messages · Page 202 of 1

tender python
#

thank you! it fixed the crashing, they are being destroyed when played now but ones in hand stay

#

might be something on my end again

red flower
#

you need or not a comma

tender python
red flower
#

you need destroy_card for G.hand

steady smelt
#

how do i prevent erratic deck from adding 13 cards when i apply my custom suit to it? currently it only randomizes to my custom suit when it's in the pool for the deck, but then it also starts with 65 cards instead of 52

#

i am unfortunately not knowledgeable enough to know what that means or how to do it

tall wharf
#

that person is telling you to patch the game's code

tender python
steady smelt
#

yeah i got that part, not the rest

tall wharf
#

actually do erratic decks automatically add custom suits with Steamodded

steady smelt
#

if i dont remove it from the pool it adds 13 cards like the other decks then randomizes between the 5 suits

#

if i do remove it from the pool it doesn't add any cards but then can't randomize to my suit

minor furnace
#

I don't suppose there's a Blind function I can call to modify the cards in the played hand after they score, is there? Because I don't think see one on the wiki

steady smelt
tall wharf
#

ah so you want it to appear there but not add more cards

steady smelt
#

correct

tall wharf
#

what does your in pool code look like

steady smelt
#

currently this

#

the function basically checks if the new suit has been enabled for that run which happens when you use the tarot that turns cards to the new suit

#

but for erratic it'd be enabled by default which is pretty easy to do in that if statement

#

i can make erratic specifically have the new suit by adding

if G.GAME.selected_back and G.GAME.selected_back.effect.center.key == "b_erratic" then
     return true
end

but then it has the problem where it adds 13 cards still

tall wharf
#

i wonder if it's practical to just remove 13 cards from the deck

steady smelt
#

is there an easy way to do that randomly enough? because it'd work

#

ideally i'd want it to not generate them at all but it's the same outcome either way

old bane
tall wharf
#

when i did my letters deck i just

#

hook onto the game

#

now that i think about it i think extra cards are a bit more fair if you wanna add the cards to the deck

minor furnace
steady smelt
minor furnace
#

actually, this is probably not too hard to patch

tall wharf
#

i think you'll have to make it not in pool and then randomize the deck once the deck actually are there

steady smelt
#

might screw with other mods though

#

i'll probably end up not letting it be in erratic in the first place but this is in my head now

old bane
#

more coding tomorrow :snooze:

tall wharf
old bane
#

new joker idea: selling it gives you another joker egg

#

"Get a Better Joker"

steady smelt
#

that reminds me, someone asked the other day what i thought blue stake should be reworked to since localthunk said he was gonna rework it from -1 discard and my first thought was 'all spades debuffed' which is insanely funny

#

gotta make that a mod at some point

#

just change blue stake and up to debuff all spades

chrome widget
#

What's the best way to change a sprite's atlas at runtime, not inside one of the main centers functions? Do I just do G.P_CENTERS[key].atlas and change it there, or is there a better way to do it with SMODS tools?

plush cove
tall wharf
plush cove
#

sleepy joker gains mult at the end of every round, you sell it and get Awake Joker, which applies that mult

tall wharf
#

eepy joker

steady smelt
minor furnace
#

uhhh whoops

plush cove
plush cove
steady smelt
#

oh that's cute

plush cove
#

because scary face gives it nightmares

old bane
#

does that mean it just gets X1 mult if you buy it with scary face

steady smelt
#

make it where smiley face prevents you from selling it

tall tangle
#

Should be debuffed with scary face, reactivated by happy face

steady smelt
#

happy dreams

plush cove
tall wharf
#

i just bought chicken mcnuggets

#

ill make a joker out of it

old bane
plush cove
tall tangle
steady smelt
#

i like how it is now just as an easter egg though

old bane
#

Toad joker that just sells you thing jokers

tall tangle
#

I just saw Toad Joker and immediately thought of Super Smash Bros as a joker pack

steady smelt
#

how many people have already made joker joker where the picture on the joker is of the default joker

old bane
plush cove
#

imagine if it gave +4 mult though 😳

steady smelt
#

but you can get both w/o showman

tall tangle
#

I'm gonna go flesh this idea out.

old bane
#

+8 Mult O_O

steady smelt
#

and it's uncommon and more expensive for no reason

plush cove
old bane
steady smelt
old bane
steady smelt
#

the loner: x1 mult if played hand contains a high card (a la the tribe the order etc)

plush cove
#

(also from Cryptid)

steady smelt
#

gods im so smart

old bane
#

no chip version tho?

#

+0 Chips

plush cove
tall wharf
plush cove
#

i think my jokers peaked when I made banana factory though

steady smelt
#

please tell me you just get banana every round

#

i wanna make a joker now that's just -1 chip every scoring spade

plush cove
#

(It changes to Cavendish after Gros Michel destroys itself)

old bane
tall wharf
#

DO YOU HATE SPADES

steady smelt
#

oh you have to buy it that's funnier

steady smelt
plush cove
#

i will say, the best thing you can do with Banana Factory is:

  • get Gros Michel
  • get Banana Factory
  • destroy Gros Michel
  • get Cavendish
  • get Showman
  • infinite Cavendish glitch
steady smelt
#

new deck idea, the only change is you don't have any face cards of spades

#

i see you have placeholder art do you need card art

old bane
#

new joke joker:
Selling this Joker loses the run. Does nothing.

plush cove
steady smelt
#

rigged but fair

tall wharf
#

i love gappie's art

old bane
tall wharf
#

will there be monster of a description like this

plush cove
tall tangle
minor furnace
steady smelt
old bane
plush cove
minor furnace
#

I was trying to debuff cards after the hand was scored and did a little oopsie lmao

old bane
steady smelt
#

wording implies second

tall wharf
old bane
tall wharf
old bane
#

how does one design tags beside "shop has thing joker" and "give booster pack for battle cards"

steady smelt
#

content joker: -3 mult for each scoring spade

tall wharf
#

prototype netherite

steady smelt
plush cove
old bane
#

Idea: Foresight
See the first # cards on the top of your deck. Upgrade by winning Blinds.

steady smelt
#

or just as a tarot or smth with a set #

#

i like the idea of consumables that are meant to be used during rounds like that specifically but they dont rlly fit tarots as is so it'd be a whole thing prob

steady smelt
#

to be clear i know literally nothing about any mods ive literally never looked at any

old bane
#

there's an alchemy mod (idk if that's the real name but it's what i call it) that introduces a new card type that is pretty much that

steady smelt
#

i have seen alchemy a bit, didnt know that was the concept tho

#

just in yt thumbnails tho

ionic fractal
#

do you have to program in all 4 possibilities for two independent 1 in 2's where one of them destroys the card since you say when you destroy the card in the if statement before the return or is there a slightly easier way

opal spade
tall wharf
old bane
opal spade
#

why make an effect that requires that much text in the first place

tall wharf
#

there are people who makes them even longer

opal spade
#

I know

old bane
#

me

ionic fractal
tall wharf
#

in reality it just gives chip mult xchip xmult per scored card

#

upgrades every planet uses

#

resets at the end of ante

#

i moved onto something simpler

steady smelt
#

gives me an idea for a joker that resets hand levels every ante but levels up all discarded hands

#

or smth

steady smelt
#

yeah thinking abt it a bit

#

just buffs high card runs more

#

or not even rlly

tall wharf
#

decrease all hand level by 1 every end of ante

steady smelt
#

then its too good i think

old bane
#

not really

#

hand levelling doesn't scale that well

steady smelt
#

then you get 8 levels per ante free

old bane
#

i don't think

#

oh you mean discarded hands

#

well even still

steady smelt
#

yeah

old bane
#

discarded means you just discard high card which isn't that strong

steady smelt
# plush cove

i forgot how to read and stopped after the first two lines and it was rlly funny

plush cove
#

fuck you! unlevels your flush

steady smelt
#

for every scoring spade, remove 1 level from played hand

plush cove
#

what is it with you and spades

tall wharf
#

WHY DO YOU HATE SPADES SO MUCH

old bane
#

i wonder how ppl design utility jokers too because i feel like my mod has a lot of scoring jokers (and some money jokers) but not a lot of utility

steady smelt
#

idk but i'm committed at this point

#

oh speaking of balancing i need help w a card for my suits mod

tall wharf
#

ah yes

#

the "Not Spades" suit

plush cove
#

If deck contains a
Spade card, sets
money, chips and
mult to 0

steady smelt
#

so new suit is only accessible via tarot card, or with a deck that adds it as a fifth suit (65 cards), and the stone retriggers all of them 2x

old bane
tall wharf
#

i loev placehodler

steady smelt
#

huh what

minor furnace
#

well I've got 10 custom blinds now in a semi-stable state, it seems

plush cove
minor furnace
#

M

old bane
minor furnace
steady smelt
#

new joker i was thinking of one that adds times mult per new suit card played but resets if you play a hand with none (i like the idea of having to play new suit cards every hand to keep up with it) but idk how to balance it well

tall wharf
#

Visual Studio, Bluetooth, C, M, HTML, Fork, F, N, ⚪ , ⚫

minor furnace
tall wharf
old bane
#

high key thinking of making a custom game mode where you can play using battle cards instead of regular cards and you do damage to the blinds using the cards 🤔

#

so just an rpg lmao

tall wharf
#

no more judgment here is mine

plush cove
#

The IRS
Lose X0.1 Mult for every dollar you have not paid in taxes
(Currently X-962.51 Mult)

old bane
#

just never win

steady smelt
tall wharf
#

yea i showed this a few times you just play wordle

plush cove
sturdy compass
#

I think I have some neat blind ideas

plush cove
tall wharf
sturdy compass
old bane
plush cove
minor furnace
old bane
vernal path
tall wharf
vernal path
#

ikr

tall wharf
#

time for more boss blind

minor furnace
steady smelt
#

nails on chalkboard joker: x0 mult if any cards held in hand are spades

plush cove
old bane
#

okay this is sick

vernal path
steady smelt
tall wharf
sturdy compass
old bane
#

The Elk when a Joker that guarantees probabilities walks in:

minor furnace
plush cove
# plush cove

this is specifically designed to kill Lucky Card builds

old bane
tall wharf
#

(it says joker)

minor furnace
#

I spend too much time browsing the balatro subreddit...

tall wharf
#

i want it to kinda fit the art i am going for so i

#

copied over the one i had

steady smelt
vernal path
sturdy compass
minor furnace
#

but what does it do? 👀

sturdy compass
#

"YOOO I RECOGNIZE THAT JOKER soylook"

vernal path
minor furnace
#

cool concept, difficult to trigger

sturdy compass
#

Indeed

plush cove
minor furnace
old bane
plush cove
#

more localization-friendly version

sturdy compass
old bane
#

cooking literally

vernal path
old bane
minor furnace
#

now that I'm "done" with my boss blinds I'm going to push them to main 🙃 hopefully I didn't miss any cases, but that's what playtesting is for

sturdy compass
plush cove
minor furnace
vernal path
# plush cove

i think thats probably better, so that there's no chance it might actually be helpful

old bane
#

I've got a T-Rex and a Go-Fish card

plush cove
sturdy compass
#

That's a good idea

minor furnace
#

pushed to main 🫡

old bane
sturdy compass
old bane
#

gamer

minor furnace
#

My goofy ahh finisher blinds to follow

plush cove
#

so far the boss blind ideas I feel most proud of are:

  • The Journey: hand must not score less than the previous one
    and
  • The Joy: Jokers are rearranged in the order they appear in the Collection (and cannot be moved)
minor furnace
#

diabolical, I love it

plush cove
#

when you get a straight flush on your first hand and it doesn't solo The Journey

old bane
minor furnace
#

boy was it a pain to get working though

plush cove
#

this one could be devastating

minor furnace
#

is this before or after scoring

plush cove
tall wharf
#

i will go insane

tall tangle
#

okay okay okay okay okay I have... an idea

minor furnace
old bane
#

i wonder if i should make the enemy kings Boss Blinds or Legendary Jokers 🤔 or maybe I could make it so that you unlock the jokers after you win that specific blind

tall tangle
#

Given that I have ZERO idea how to mod, I can't make this idea, but I need input on whether this idea is good or shit.

old bane
#

let's hear it

tall tangle
#

And then someone can take the idea and run with it if it's good.

#

Lemme grab it rq

minor furnace
#

All ideas are good ideas

old bane
tall tangle
#

There, that's it, that's the basis of the idea.

minor furnace
#

Man I want to make a challenge and new deck to go with my Jokers and blinds

old bane
#

ooh i see

old bane
# tall tangle

do you think the joker would have like a button to activate its "activated effect"

minor furnace
tall tangle
#

And you can only activate it after its charge condition is met

#

And then the lifespan tells you how long until it dies a la food jokers.

#

I can keep coming up with these until I run out of roster.

old bane
#

ooh

tall tangle
#

(I think I may have made Kirby slightly broken)

old bane
#

not really

tall wharf
#

chat how does this look

old bane
#

similar to blueprint

#

but just with an added ability

tall wharf
tall tangle
#

You can get three negative blueprints out of Kirby before he dies.

#

I think that's kinda broken.

old bane
#

hm

tall tangle
#

Again... I have no idea how to make... any of this.

minor furnace
tall tangle
#

So like... if someone wants to make this... I can keep supplying ideas for the rest of the roster... but I can't make them myself.

tall tangle
# minor furnace tbh that’s a legendary level effect

The point of keeping his rarity low is that he does die after using his active three times, and using the active destroys a joker - if you're not paying attention, you'll kill the joker you're copying - but I could bump it up to Epic easily.

#

So like... am I cooking or am I crumbling to an obsession?

tall tangle
tall wharf
#

it's in the game now yea

tall tangle
#

personally would move the dark pixel down out of the nose patch

#

but that's an opinion

minor furnace
#

I fear for the day I need to make a joker sprite that isn't essentially just a resprite of an existing one

tall wharf
#

i mean i guess that works too

#

i should write desu for the funny

old bane
#

Boss Blind
The Wiggler: Playing your most played hand doubles the score requirement (only triggers once).

tall tangle
# old bane cooking

Well with that tiny little bit of affirmation I will be doing nothing but adding to this list when I'm not working, sleeping, or spending time with my girlfriend...
Or developing my other obsession, making D&D 5e14 character sheets for the Brawlhalla roster...

tall tangle
minor furnace
#

Development on my multi-stage Finisher Blind begins tomorrow

sturdy compass
#

You are not aiko smh

minor furnace
#

I'm a fraud

tall tangle
#

HOW DARE

old bane
#

three phase boss blind go brr

minor furnace
#

I was going to make it 4 🙃

tall tangle
#

Wait wait wait

#

Anybody tried Worldless? (The game, not a mod)

minor furnace
#

I have not

minor furnace
tall tangle
#

It's got some good material to pull from to make a themed mod.

#

Might have to drum up that kind of idea.

tall wharf
#

now my entire mod has art rn

tall tangle
#

EAT PANT JOKER

#

NO SHOT

minor furnace
#

who up crafting they mines

plush cove
#

heya, just curious

are there any known advantages or disadvantages to using the left solution vs the right solution for destroying Jokers (i.e. Gros Michel)?

tall wharf
#

i thought dissolve also has the dissolve effect

tall tangle
#

Yeah that's what I was gonna say

plush cove
tall tangle
#

remove just kills it (as in the case of Gros Michel, tossing up "Extinct!" popup), whereas dissolve is intended to burn it like, say, the one joker that kills sixes and makes spectral cards

plush cove
#

i might just stick to using remove() but i was curious about the alternate solution

tall tangle
#

So it's a matter of just removing the card or removing it with an animation

minor furnace
#

I think you can also return {remove = true} from your calculate function

plush cove
minor furnace
#

ah

#

nevermind then

tall tangle
#

me when Card no longer includes Joker because I've been thinking in mod idea terms way too hard

#

That's me, the ideas guy who has no skills to carry out those ideas.

vernal path
tall wharf
#

i thought the observer looked weird so here's a fixed ver

plush cove
#

imagine having art in your mod

tall tangle
vernal path
tall tangle
#

There'll definitely be people in here willing to help you figure that out or direct you to instructions for it.

tall wharf
lucid sun
#

hey man so i did this and switched it from 100000 to 0 as per your second msg but now am getting reset on every hand played lol

tall wharf
keen coral
#

177: attempt to index field "cm_card" [a nil value]

cm_card looks to be defined and given values, so i find it odd that it's not receiving a value at some point down the line. do i need to define it in config as well?

sturdy compass
keen coral
#

did some looking and realized i never actually specifically defined it. i went ahead and defined it in loc_vars and am running a test rn

sturdy compass
#

That should prolly do it

scarlet spire
#

would these two boss blinds (and/or similar bosses) be possible to implement without patches, or would I have to mess around with the scoring code to get these to work?

tall wharf
plush cove
#

LAXGT

vernal path
#

Is there a plugin or something I can use for VSCode to see all the global functions and what have you for smods and balatro?

primal shoal
#
     if context.joker_main then
        if context.other_joker.key == "runner" then
           return {
                Xmult = card.ability.extra.Xmult,
                message = "X1.5",
                colour = G.C.Red
              }
            end
         end
      end

how would this be done properly

sonic cedar
vernal path
# runic pecan

i realized this moments after i sent the message, lmao. It also works just to have the entire mods folder as the workspace.

plush cove
#

this is how I have it set up :3

tall wharf
runic pecan
tall wharf
keen coral
#

216: attempt to field index 'cm_card' [a nil value]

i am defining cm_card on the line prior. is this not how you'd define it?

old bane
old bane
normal crest
keen coral
#

ah, so the other rets contained in there are unnecessary, then?

normal crest
#

huh?

keen coral
#

i'm defining ret.cm_card , then redefining it with ret.current_round.cm_card.rank and ret.current_round.cm_card.suit. those two rets would be unnecessary and be the cause of the issue, correct?

normal crest
#

What is your expected result?

tall wharf
#

❤️

#

fuckin letter pack

#

i did NOT SEE PRUNE

rose dragon
tall wharf
#

I DON'T KNOW

#

doesn't happen here

#

oh it was card sleeves

plush cove
tall wharf
tall wharf
#

ok i fixed my mod time to go home

primal shoal
#

how do you find your modded joker card for boosters.
are they the default set?

        local new_card = SMODS.create_card{
            set = 'Joker',
            key = #key for joker
        }
        return new_card
plush cove
#

"j_[prefix]_[jokername]"

primal shoal
#

thank you it worked 🙏

plush cove
#

heya, I have an idea for a Joker that triggers seals when a card is played (so if you have a blue seal, you get a planet card even if you just play the card)

what'd be the best way to develop this that accounts for modded seals?

#

(if it's even possible)

tepid crow
# tall wharf

Oh yeah I do that cuz it starts looking real weird if the deck has depth while in the sleeve

#

Also because otherwise the deck can escape the sleeve 😭

tall wharf
#

😭

tall wharf
#

how do i make a sleeve

#

want to make sleeve compat for my letter deck

tepid crow
tepid crow
tall wharf
#

sorry i meant i want a custom sleeve

tepid crow
#

Ah yeah check out the link I sent, should have most of your answers

tall wharf
#

is there a template for sleeve art

tepid crow
tall wharf
#

fair

#

Will look into it

#

the sleeves are 71x95 right

hushed field
tall wharf
#

ah

#

2 pixels wider

primal shoal
#

what is t in "SMODS.create_card(t) -> Card"

plush cove
primal shoal
#

ah thx

tall wharf
#

hi alrexx

spring lantern
#

hola

tall wharf
#

i should come up with trivias

#

kinda want to run a language model so that the answer can be a bit dynamic

#

but like

#

AI

spring lantern
#

my god

#

bro yall doing some dark magic while im struggling to do the most basic shit wtf sober

tall wharf
#

the answer shouldn't be exact in case you just can't spell it

spring lantern
#

shut up i hate you i hate you i h

tall wharf
#

😭😭😭😭😭

spring lantern
#

/ j

tall wharf
#

no need to j you are allowed to hate me for this

#

as i might have to use LLM

spring lantern
#

how would you even hook that into the game

tall wharf
#

probably an executable that runs a model bundled with the mod

#

I'll have to open source that too

zealous glen
#

I mean if it’s just spelling you don’t need LLM

#

You could measure word distance the classical way

spring lantern
#

do it like that one nes jeopardy game that lets you write penis as the answer and detects a whole different word instead

tall wharf
#

i don't want the mod to be big

spring lantern
#

too late epicsmith

zealous glen
#

You can run NES games in Balatro

#

So just literally run that NES game

spring lantern
#

yea there's a whole ass love2d NES emulator

#

lmfao

zealous glen
#

emulating love2D in love2D

tall wharf
#

beat super mario bros to win blind

#

ok jokes aside it's actually hard to do that

zealous glen
#

how so

tall wharf
#

no like hard to win

spring lantern
#

i feel so out of place in here with my teeny tiny wittle jokers that do the most basic shit

tall wharf
#

i haven't even gotten past 8-2

zealous glen
tall wharf
#

this is why i should not do comsci

zealous glen
zealous glen
#

You can for example count how many characters you need to change to get to the correct answer

tall wharf
#

In information theory, linguistics, and computer science, the Levenshtein distance is a string metric for measuring the difference between two sequences. The Levenshtein distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other. It is named after...

spring lantern
#

like pwease y me jokew not woerk wehhh

zealous glen
tall wharf
#

what if the problem has multiple valid answers i don't even think about

zealous glen
#

You can also weight the distance by keyboard type

hushed field
#

llm's are overkill for most trivia answers, unless you require big sentences containing logical reasoning in your answer, and need that to be parsed

tall wharf
#

i guess i can just ask the gibidi toilet for that

zealous glen
crisp coral
zealous glen
#

That’s how it works

crisp coral
#

you can just return right

spring lantern
#

i have no idea what im doin no more

tall wharf
#

omg hello myst

hushed field
#

levenshtein is also explored really well so you don't have to come up with the implementation yourself. I'm sure there's lua libraries that do very complicated stuff for you in text parsing

spring lantern
#

like ive never used calculate effect i always used eval this but now its deprecated and there's no info on calculate effect anywhere on the wiki and im like

crisp coral
#

hi aikoyori

zealous glen
#

by the way in terms of xMult Hiker, do you think it should stack additively with Glass or Multiplicatively

crisp coral
#

so true bestie

zealous glen
#

There’s SMODS.Joker and the entire Calculation wiki page

#

What else do you need

#

There’s vanilla and modded examples too

spring lantern
#

i mean the SMODS.calculate_effect() function that replaced eval_this()

#

i at least know the very basics

zealous glen
#

Ah

#

I don’t think you need to run it

spring lantern
#

my brain is going to die a fiery death

zealous glen
#

Just use a return

#

and no calculate_effect

spring lantern
#

either way shits just broken sober

zealous glen
spring lantern
#

i also tried a return

#

for the regular lucky card functionality i do wanna use calc effect so that both effects can trigger like in base game

#

dont wanna overwrite that

zealous glen
#

You can make both effects work on a return

spring lantern
#

i know but there's the whole chance mechanic and i was like meh just do separate ifs

#

like sure i can simplify it but my brain is already dying as is

zealous glen
#

You can make both effects work on a return with separate ifs

#

(although you don’t need them)

spring lantern
#

i'll deal with actually making good code later rn i'm too busy trying to make code that does something useful

#

which i cant do it seems

zealous glen
#

I mean the code doesn’t do anything

#

So I suggest trying the way me and Myst suggested

spring lantern
#

yes im doing a return for the first one

crisp coral
#
local res = {card = card}
if pseudorandom() then -- first check
  res.mult_mod = 20
end
if pseudorandom() then -- second check
  res.dollars = 20
end
return res
zealous glen
#

return {mult_mod = check and val or nil, money = check2 and val2 or nil}

crisp coral
#

maybe

zealous glen
#

I don’t know how the messages would look passing both at once

spring lantern
#

rn i'm trying to get the odds bypass working

zealous glen
#

Also judging by Myst it’s dollars not money

zealous glen
spring lantern
#

it is dollars

zealous glen
#

You probably want check or though

tall wharf
#

damn uh

zealous glen
#

You also didn’t ask it to answer the question you could’ve asked

crisp coral
tall wharf
#

it's not true tho

#

the nearest star is the sun

zealous glen
#

But you didn’t ask if Proxima Centauri is the nearest star

#

And you didn’t ask it to answer the question you didn’t ask ;P

tall wharf
#

this model seems smart enough

#

it's still pretty big tho

crisp coral
spring lantern
#

so uhh does this look good

zealous glen
#

And thus to not answer it

tall wharf
#

235 MB

zealous glen
spring lantern
#

that's how base game does it

#

it has different seeds for money and mult

zealous glen
#

You can set the second and third variables as multihit or followed by their checks

zealous glen
spring lantern
#

i hhave no idea then

zealous glen
#

I was talking about advancing the RNG without using it

zealous glen
#

Oops

#

I meant to say put the third first, then add hascat or after the =

#

You also don’t need the ~= nil

spring lantern
#

ohhh okay i see

#

so like this so that having the cat bypass doesn't mess with rng

spring lantern
#

okay now i gotta figure out why sometimes the cards only give money and not mult which is what i was trying to fix all along 🥲

zealous glen
#

I mean that’s normal

spring lantern
#

it should be a guaranteed hit for both in theory

tall wharf
#

guys i think it's John F Kennedy

spring lantern
#

ohn F. Kennedy

tall wharf
#

incredibly

#

i guess i should prepare a list of questions

spring lantern
#

i didnt know he was the first person to be born in the US

tall wharf
spring lantern
hushed field
spring lantern
#

okay now i'm getting double mult hits

spring lantern
#

i'm like an old cranky grandma with my mult_mods and eval_this()

#

so anyway seems like i'm not actually overriding the base game lucky card calculations

zealous glen
#

Maybe because vanilla doesn’t use calculate

spring lantern
#

those happen in get_p_dollars and get_chip_mult

#

so i need to silence the part that does lucky card calculations in those

#

now question is how

#

do i hook into them and copy/paste the base game code minus the lucky card segments?

#

and not call the original func obv

tall wharf
#

Will cry to sleep tonight

spring lantern
#

BRO 😭

tall wharf
#

i wonder what the continent is

spring lantern
#

which continent contains the river known as the father of africa? hmm i wonder

tepid crow
hushed field
#

tell it to account for the coastline paradox, the question's too hard otherwise

crisp coral
tall wharf
#

look i get the no llm sentiment but i think this is funny

zealous glen
spring lantern
#

right patches exist

#

this seems like a good first ever patch to make

#

how do lovely patches work again?

#

like i need a separate file with the patch right

#

i assume lovely has docs i can check

zealous glen
#

a .toml

spring lantern
#

yea that's it thx

#

my first ever patch, game runs so far, i hope i didn't break anythin 🥲

#

wait hold on

#

i need to make it so that lucky cards are specifically ignored

primal shoal
#

how do you get the chip amount after the cards have been scored?

spring lantern
#

now where do i put this

#

oh i need to call it lovely.toml that's why it wasn't running

#

oh my god it worked finally

hushed field
#

if you don't want one giant toml file for all your patches, you can have them have individual names if you put them in a folder named ./lovely, iirc

lavish lake
#

Guys how do i better format my mod code? Atm all jokers are stored in 1 file.

plush cove
#

that's actually not an uncommon practice

some people also prefer to have their jokers split into individual lua files (for example, me!)

hushed field
lavish lake
spring lantern
#

think i'm starting to creep into cryptid territory with this

#

turns out using anhk on a joker that creates negative perishable copies of owned jokers is busted

#

because it's usually not meant to copy itself but if there's a separate copy of itself already then it can target that

#

🥲

hushed field
lavish lake
random sleet
#

my jokers apear in the same order every time (they are all in one file)

hushed field
hushed field
random sleet
#

thats what line numbers are for

#

also im stupid and do dumb things

lavish lake
hushed field
lavish lake
random sleet
#

im 65 jokers 97 consumables 8 vouchers 6 enhancements 1 edition 8 stamps 12 aspects 5 suits and a bottle

#

oh and two tags

#

four if the two in AMM count

spring lantern
#

think i need to fix this...

#

also need to stop creating jokers that are both perishable AND eternal

hushed field
wintry solar
#

ortalab has the best file loading, it doesn't use some jank helper function that throws all the objects through it

random sleet
#

thac has the best file loading its completely stupid and makes no sense

hushed field
zealous glen
#

I think my file loading is based on THAC and Cryptid

random sleet
#

im sorry vic

zealous glen
spring lantern
#

how do i get the id of a specific card?

#

as in for example the id of a joker in G.jokers.cards

hushed field
#

nice

zealous glen
spring lantern
#

i meant key sorry

frosty dock
#

card.config.center.key

spring lantern
#

why do i get my terms all mixed up all the time

#

yea thx

#

my dyslexic ass was calling it id

lavish lake
#

Are there any documented joker description color definitions?

red flower
#

they're defined in loc_colour()

#

not sure what file it was

shadow rapids
#

Showdown blind idea:
When ante 8 is entered, it will generate 2-3 random standard blinds (excl. The Ox and such, hopefully not using opposing blinds like eye/mouth or ones that would make it absurdly hard like needle). These will all be applied simultaneously.

lavish lake
#

We all pray for your downfall 🙏

zealous glen
shadow rapids
#

Hm

zealous glen
#

To make it different and flavorful, I made mine force you to play the bosses in sequence

#

Inside the same Blind

lavish lake
#

How do i make text that makes the letters move like a sine wave?

tepid crow
#

DynaText iirc

zealous glen
#

I think it’s E:1

lavish lake
#
Oops! The game crashed:
Syntax error: blind.lua:353: 'end' expected (to close 'for' at line 351) near 'elseif'


Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~ALPHA-1427d-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.6.0
Platform: Windows

Stack Traceback
===============
(3)  C function 'function: 0x2208ba20'
(4) global C function 'require'
(5) main chunk of file 'main.lua' at line 887
(6) global C function 'require'
(7) LÖVE function at file 'boot.lua:323' (best guess)
Local variables:
 c = table: 0x2208f100  {identity:false, version:11.5, accelerometerjoystick:true, modules:table: 0x2208f150 (more...)}
 openedconsole = boolean: false
 confok = boolean: true
 conferr = nil
(8) global C function 'xpcall'
(9) LÖVE function at file 'boot.lua:362' (best guess)
Local variables:
 result = boolean: true
(10) global C function 'xpcall'
(11) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
 func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])
 inerror = boolean: true
 deferErrhand = Lua function '(LÖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
 earlyinit = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.lua"])

Why am I getting this crash error?
My best guess is this joker:

SMODS.Joker {
    key = "purple_coffee",
    loc_txt = {
        name = "Purple Coffee",
        text = {
            "{C:attention}Purple Seals{} get triggered {C:attention}twice,{}",
            "{C:mult,E:1}self destructs{} after #1# rounds"
        }
    },
    config = { extra = { rounds = 3 } },
    rarity = 2,
    atlas = "placeholder_atlas",
    pos = { x = 1, y = 0 },
    loc_vars = function (self, info_quene, card)
        return { vars = { card.ability.extra.rounds } }
    end,
    calculate = function (self, card, context)
        
    end
}
spring lantern
#

question, is there a way i can get all stickers applied to a joker?

tepid crow
quasi bison
#

it states that you're missing an end for a for loop

brisk pond
tepid crow
quasi bison
#

oh I thought its a custom lua file

tepid crow
#

it's the vanilla file that steamodded patches

brisk pond
lavish lake
quasi bison
#

aren't you missing an argument??

#

for init,max/min value, increment do statement(s) end

#

yeah

lavish lake
#

shit it doesnt set to 1 automatically

quasi bison
#

yup

red flower
#

this one

lavish lake
tepid crow
#

brother what are you guys talking about

brisk pond
#

Build5-Ver1.0

tepid crow
#

for loop doesn't need a third argument

tepid crow
red flower
brisk pond
#

it worked when I developed it months ago

tepid crow
#

I think N' is right? I believe smods got a change in version numbers some time ago

brisk pond
#

ok I tried changing it and now it loads

#

thanks

lavish lake
#

Guys how do i make these popups in the joker information? I need the popup for the Purple Seal

kindred heron
#

It says ither_card is a nil and idk whjat to do

red flower
#

context.scoring_hand is not a context

#

you probably want context.individual

kindred heron
#

Then why is this

runic pecan
red flower
#

it's a value in some contexts

glad osprey
#

for vscode

kindred heron
#

Cursor

glad osprey
#

?

#

I mean like what let's you see the smods stuff

kindred heron
#

There is a branch with the lsps

#

In the SMODS thing

lavish lake
#

Guys, how do i make a joker that:
retriggers purple seals
self destructs in 3 rounds

glad osprey
#

ah

kindred heron
#

Okay well i have this now
it still think other_cards is a nil value

runic pecan
red flower
lavish lake
kindred heron
#

Still

#

Reading

red flower
#

there it says what the problem is

lavish lake
#

I think i got it

runic pecan
lavish lake
runic pecan
runic pecan
runic pecan
kindred heron
runic pecan
kindred heron
#

After scoring

red flower
runic pecan
#

^ Though this method only destroys scored cards that you retrurned {remove=true}.

red flower
#

i think it works with the optional unscored feature

#

if they want that

runic pecan
red flower
#

because i read all the smods commits

#

i was worried where that FA was going to go

spring lantern
#

ok friend 👍

runic pecan
kindred heron
#

Ye

spring lantern
#

how does perkeo do the thing where it says +1 consumable slot instead of +1 Joker slot

red flower
spring lantern
#

oh right thanks

#

guess i coulda checked myself LOL

lavish lake
# runic pecan Yeah, so maybe this is right.

It doesn't work. The retriggering of the purple seal does not work.

SMODS.Joker {
    key = "purple_coffee",
    loc_txt = {
        name = "Purple Coffee",
        text = {
            "{C:attention}Purple Seals{} get triggered {C:attention}twice{}",
            "{C:mult,E:1}self destructs{} after #1# rounds"
        }
    },
    config = { extra = { rounds = 3 } },
    rarity = 2,
    atlas = "placeholder_atlas",
    pos = { x = 1, y = 0 },
    loc_vars = function (self, info_quene, card)
        info_quene[#info_quene+1] = G.P_SEALS.Purple
        return { vars = { card.ability.extra.rounds } }
    end,
    calculate = function (self, card, context)
        if context.discard then
            if context.other_card.seal == "Purple" then
                return {
                    retriggers = 1,
                    message_card = card
                }
            end
        end
        if context.end_of_round and context.cardarea == G.jokers then
            if card.ability.extra.rounds >= 1 then
                card.ability.extra.rounds = card.ability.extra.rounds - 1
                return {
                    message = "Downgrade!"
                }
            else
                G.E_MANAGER:add_event(Event({
                    func = function ()
                        card:juice_up(0.8, 0.8)
                        card:start_dissolve({ HEX("63f06b") }, nil, 1.6)
                        return true
                    end
                }))
            end
        end
    end
}
strong jacinth
#
SMODS.PokerHand {
    key = 'Royal Flush',
    chips = 110,
    mult = 9,
    l_chips = 40,
    l_mult = 4,
    example = {
        { 'S_A',    true },
        { 'S_K',    true },
        { 'S_Q',    true },
        { 'S_J',    true },
        { 'S_T',    true },
    },
    loc_txt = {
        ['en-us'] = {
            name = 'Royal Flush',
            description = {
                '5 cards in a row (consecutive ranks) with',
                'all cards sharing the same suit',
                'made of only Aces, tens, and face cards'
            }
        }
    },
    evaluate = function(parts, hand)
        if next(parts._flush) and next(parts._straight) then
            local _strush = SMODS.merge_lists(parts._flush, parts._straight)
            local royal = true
            for j = 1, #_strush do
                local rank = SMODS.Ranks[_strush[j].base.value]
                royal = royal and (rank.key == 'Ace' or rank.key == '10' or rank.face)
            end
            if royal then return {_strush} end
        end
    end,
}

SMODS.Atlas { key = 'vulcan', path = 'vulcan.png', px = 71, py = 95 }

SMODS.Consumable {
    set = 'Planet',
    key = 'vulcan',
    --! `h_` prefix was removed
    config = { hand_type = 'ex_royal_flush_Royal Flush' },
    pos = {x = 0, y = 0 },
    atlas = 'vulcan',
    set_card_type_badge = function(self, card, badges)
        badges[1] = create_badge(localize('k_planet_q'), get_type_colour(self or card.config, card), nil, 1.2)
    end,
    process_loc_text = function(self)
        --use another planet's loc txt instead
        local target_text = G.localization.descriptions[self.set]['c_mercury'].text
        SMODS.Consumable.process_loc_text(self)
        G.localization.descriptions[self.set][self.key].text = target_text
    end,
    generate_ui = 0,
    loc_txt = {
        ['en-us'] = {
            name = 'Vulcan'
        }
    }
}

strong jacinth
lavish lake
runic pecan
broken cliff
#

the error is related to ui rendering

#

so perhaps check the assets folder of the mods

runic pecan
broken cliff
#

check if the atlas is correct

strong jacinth
#

No, but i downloaded the files in the assets, it looks the same

lavish lake
red flower
#

the game does it once and you do it a second time, it's the same as retriggering

#

the timing might not be right tho, in which case you might need to patch some code

runic pecan
#

How do I reword this better?

strong jacinth
red flower
broken cliff
lavish lake
broken cliff
#

do you have smods

red flower
lavish lake
#

Fuck i forgot to return

runic pecan
broken cliff
#

u need steammodded for mods to load properly

red flower
#

idk but please post the whole crash log or at least the entire screen when asking for help

kindred heron
#

Why does he get to do it the easy way

broken cliff
#

thats called thunkism

red flower
#

in your mods folder inside lovely/log

broken cliff
#

i lied and its 150 if statements instead

#

but you get the idea

kindred heron
#

Modern problems require modern solutions

strong jacinth
red flower
spring lantern
red flower
#

literally what the docs say

#

thank you vscode

broken cliff
#

so more than 150 if statements

#

Thunkism ™️

runic pecan
spring lantern
#

thunk ism

kindred heron
lavish lake
broken cliff
spring lantern
#

reading through vanilla code would be a nightmare if it weren't for ctrl+f

broken cliff
#

we'll see what i could find

strong jacinth
lavish lake
red flower
#

idk

#

test it

broken cliff
#

i will try to do the same

#

then

neat plover
#

how would i destroy the leftmost card held in hand

lavish lake
# red flower test it

Great! 👏 The return statement is after the event, so the delay will not matter. The joker will wait the delay and then return.

red flower
red flower
lavish lake
# red flower that's not how events work i dont think

For me they do

            if context.other_card.seal == "Purple" then
                G.E_MANAGER:add_event(Event({
                    trigger = "before",
                    delay = 2.0,
                    func = function ()
                        local card = create_card('Tarot',G.consumeables,nil,nil,nil,nil,nil,'8ba')
                        card:add_to_deck()
                        G.consumeables:emplace(card)
                        return true
                    end
                }))
                return {
                    message_card = card,
                    message = "Again!"
                }
            end
lavish lake
red flower
#

the one that doesn't say immediately

manic rune
red flower
#

i stole it from aure

manic rune
#

i think i did too

broken cliff
#

@strong jacinth i got a different error

kindred heron
spring lantern
#

10 years ago is crazy

kindred heron
#

Its a plugin dw

spring lantern
#

not sure what's wrong but the X0.5 Mult should be formatted the same way as X2

#

red bg white text

broken cliff
#

@strong jacinth wait could u send the lovely dump file for ui_defenitions

lavish lake
crisp coral
#

im going fucking insane

  function Card.load(self, cardTable, other_card)
      card_load(self, cardTable, other_card)
      print(tprint(self.ability))
>     if self.ability.extra.area_save then
  ...
broken cliff
#

bcuz my error seems to be related to loc_vars

crisp coral
#

why is this crashing

broken cliff
#

to debug

spring lantern
#

i guess check that extra isn't nil? thats weird

crisp coral
#

it does have extra

#

i checked

broken cliff
#

does it print it out tho

lavish lake
#

Guys how do I return at the same time as an event manager has done doing it's stuff?

spring lantern
#

as in add a condition where if extra is nil then it prints it out instead of crashing

crisp coral
#

im fuckin going insane

#

the extra is right there mf

spring lantern
crisp coral
#

OH

#

fuck

broken cliff
crisp coral
#

i forgot this is a hook so it procs on all cards

#

fuck

broken cliff
#

it could have no values there

spring lantern
#

that's what i was thinking

crisp coral
#

im actually an idiot

broken cliff
spring lantern
#

it happens

red flower
#

post the whole file

broken cliff
#

nah its Fine™️

#

You cannot understand the whole Thunkism ™️

red flower
#

yes

spring lantern
broken cliff
#

wrong log file

#

it has no error log

red flower
#

yes but that's not the correct file

lavish lake
broken cliff
#

u have to get one with the error

broken cliff
#

not where its all fine

lavish lake
tardy wind
#

Well explain what your goal is

broken cliff
tardy wind
#

you want a function to return a value ONLY when another event has finished executing ? For every event or a specific one ?

lavish lake
# tardy wind Well explain what your goal is

I am making a joker that retriggers discarded purple seal cards.
Purple seals appear to not retrigger directly so instead of retriggering, I used an event to make the same thing

red flower
broken cliff
#

alr then launch the game and screenshot the FULL screen not js the error

lavish lake
# red flower wait can you post the entire calculate function
calculate = function (self, card, context)
        if context.discard then
            if context.other_card.seal == "Purple" then
                G.E_MANAGER:add_event(Event({
                    trigger = "immediate",
                    func = function ()
                        local card = create_card('Tarot',G.consumeables,nil,nil,nil,nil,nil,'8ba')
                        card:add_to_deck()
                        G.consumeables:emplace(card)
                        return true
                    end
                }))
                return {
                    message_card = card,
                    message = "Again!"
                }
            end
        end
        if context.end_of_round and context.cardarea == G.jokers then
            if card.ability.extra.rounds >= 1 then
                card.ability.extra.rounds = card.ability.extra.rounds - 1
                return {
                    message = "Downgrade!"
                }
            else
                G.E_MANAGER:add_event(Event({
                    func = function ()
                        card:juice_up(0.8, 0.8)
                        card:start_dissolve({ HEX("63f06b") }, nil, 1.6)
                        return true
                    end
                }))
            end
        end
    end
broken cliff
#

gonna need Thy error

tardy wind
red flower
#

lemme test

tardy wind
#

I guess the idea is to check for whatever context is the discard in your joker and trigger any purple seals inside since they should have been triggered already

lavish lake
tardy wind
#

Same way a seal effect is triggered

broken cliff
#

No steammodded

#

install it

lavish lake
broken cliff
tardy wind
#

the « re trigger » part doesnt matter, since you can access the discard_hand object you can do whatever you want with it at any point until the cards are actually removed

lavish lake
hushed field
#

what's the most effective way to load in very large tables of info into a mod? I've got a whole lot of metadata, but I'm not sure what the best way to go about it is, honestly

tardy wind
#

No, i only read from where you asked your question

red flower
#

this seems to work you need blocking = false

#

maybe changing blockeable makes it look better too

lavish lake
broken cliff
#

send the lovely dump for game.lua(balatro > mods > lovely > dumps)

opal spade
#

no??

#

modding rule 7??

broken cliff
#

oh my bad

neat plover
broken cliff
#

its modified tho

#

by lovely

tardy wind
#

and its crash logs

#

rule 7 doesnt apply

opal spade
#

rule 7 would apply to sending game.lua

#

even if its a dump

red flower
tardy wind
#

im not sure what the issue is

#

nobody is asking for source code

red flower
#

thats part of the source code

broken cliff
#

tbf its like modified a lot by smods and lovely

neat plover
broken cliff
#

alr then

neat plover
#

im asking to DESTROY a card

broken cliff
#

dont send it

tardy wind
broken cliff
#

its Illegal ™️

red flower
tepid crow
#

there's never been an issue with sending lovely dumps btw

#

afaik

broken cliff
#

i understand spa tho

red flower
neat plover
broken cliff
#

lovely dump logs Do have some source code

red flower
#

read the docs

broken cliff
#

only bcuz they are the files that were modified by lovely

manic rune
tardy wind
#

unless the dump folder is not logs but source code

neat plover
tardy wind
#

in which case fair

kindred heron
opal spade
tardy wind
#

Thought it was just logs

opal spade
#

logs are the other folder but yeah

broken cliff
#

i feel like sm1 alrteady had the same issue as him before

tall wharf
kindred heron
#

Its a card called rabbit with a hole in the middle

tall wharf
# kindred heron What lol

「死ぬまでピュアピュアやってんのん?」
Listen & Download: https://karent.jp/album/3592

2024年11月27日発売
9th Album 「TRANSFORM」 特設サイト
https://nbcuni-music.com/deco27

Lyrics & Music: DECO*27
Arrangement: tepe
Bass: 堀江晶太(kemu)

Movie by OTOIRO
Director: yuka fujii
Illustrator: おむたつ
Designer: yuka fujii, lowpolydog
CG Artist: あわしま
Composite / Motion Graphics: Yuma Saito...

▶ Play video
#

RABBIT HOLE

kindred heron
#

NO ITS NOT MIKU

red flower
#

why not

tall wharf
#

my brain is vocaloid rotted

kindred heron
#

I forgot rabbit hole miku existed guys

#

My joker is not miku

opal spade
broken cliff
#

alr heres what i can suggest

red flower
#

i like pinocchio p

broken cliff
#

verify files integrity(aka reinstall ur balatro), install lovely again

#

then launch game

#

then get smods

neat plover
broken cliff
#

and THEN put all ur other mods in

manic rune
#

rabbit hole

lavish lake
#

Need some help:
How to check what is the last card of a winning hand in a round
How to apply a purple seal to a card

red flower
broken cliff
lavish lake
red flower
plucky goblet
#

If I wanted two messages to activate consecutively when a joker activates, would this code be correct?

red flower
#

no, one message gets overwritten by the other

broken cliff
#

then ig u could check if score > blind req?

kindred heron
red flower
#

because context.individual and context.destroy_card don't happen at the same time

lavish lake
red flower
#

replace individual for destroy_card

kindred heron
#

Nope still don't work

red flower
#

oh you need to replace context.other_card for context.destroy_card too

worthy stirrup
#

What key is used to replace the Blind Chips in Malverk, i cant seem to even find Malverks Wiki

kindred heron
#

Oh

broken cliff
kindred heron
#

Here is the entire calc function
it still doesn't destroy the cards
it works as intended but still

neat plover
#

ok how do i destroy a card. just destroy a card.

kindred heron
#

Destroying cards, our enemy

red flower
#

oh yeah for G.play it's destroying_card

brisk basin
#

Okay
Being on PlayStation I can’t actually play any mods
But I have an idea for one

A deck called oops all jokers
This deck replaces every normal card in your deck with a joker and removes all joker slots
Played jokers will act like stone cards with ones in hand triggering as if they were in the joker slot

That’s all
Have fun

broken cliff
#

wait does this error happen on launch

#

did u enable omeganum

worthy stirrup
#

Whats the key for the BlindChips?

broken cliff
#

@strong jacinth i forgot to tell u dont send the lovely dump file

#

mod rule 7, didnt even knew about it

broken cliff
#

js dont

kindred heron
#
            if context.cardarea == G.play then
                if context.other_card:get_id() <= 6 then
                    card.ability.extra.Xmult = card.ability.extra.Xmult + card.ability.extra.Xmult_gain
                    if context.destroying_card then
                        return {
                            remove = true
                        }
                    end
                end
            end
        end```
strong jacinth
#

Like

#

It wont work

#

While it should?

red flower
#

cant you dm it

broken cliff
#

the lua file

#

js dont distribute it

strong jacinth
broken cliff
#

u have the error logs

#

go to that line

broken cliff
#

sadly no

neat plover
#

so know, real question, how would get the rank of the destroyed card?

strong jacinth
broken cliff
strong jacinth
#

Its the create_UIBox_current_hand_row

strong jacinth
kindred heron
#

How do i edit the size of text

#

In the description of the joker

broken cliff
#

ok so

red flower
broken cliff
#

so handname might be nil

kindred heron
broken cliff
#

im as confused as u are