#đŸ’»ăƒ»modding-dev

1 messages · Page 348 of 1

brisk rose
#

10,000,000 in the scheme of balatro is not much more than the ante 8 score to beat of 100,000

#

(Am I making any sense I'm kinda floatin off sudafed and lack of sleep from swimmer's ear)

hasty mist
#

like, my factorial scaling joker is literally an instant win, you can solo the entire game without even trying, but the lengthy process to even obtaining it isn't even possible to begin until you've beaten ante 8

cerulean bane
brisk rose
#

the thing is if you're offered enough jokers to only good good ones

#

even if the good ones aren't any better than the better ones of their rarity in base game

#

you end up a lot more powerful

#

which is why vanillia+ means something different to me than most people

#

I don't think ante 8 will ever be a challenge with 2,000 jokers in game

#

I think you gotta play the game different

#

I use sandbox sleeve and/or deck from sdm0's stuff almost always. They increase joker slots by 2, but also how many antes you need to beat to win

#

So I'll have 7 joker slots, but need to beat ante 10 to win

#

or even 9 and 12

#

Then it starts to actually make sense as a game

#

but I don't believe in imposing design, so the people who do play with my pack probably find very different games within

native zinc
#

the sheer amount of jokers probably makes for a very new experience

hasty mist
#

oh right i should probably make a forum post here for astronomica at some point

native zinc
#

i should probably update my post

#

oh i should make a Backup joker that deletes your save /j

hasty mist
#

i will once the next update comes out

scarlet spire
#

I mean, to me this is just about making sure to match the jokers that already exist in the base game in difficulty and abundance. if the sheer presence of lots of modded jokers means you get more powerful, it's because the mod isn't re-aligning the pool with some weaker jokers

#

it's less exciting to design weaker jokers, but I think it's pretty important for maintaining balance

brisk rose
hasty mist
brisk rose
#

that sort of vanillia balance is unattainable and grankly not as deseirable as people make it out to be

native zinc
#

hey i make weak jokers...

brisk rose
native zinc
#

does the one that gives 3 bucks for discarding gold cards count

hasty mist
#

fucking superposition

brisk rose
#

lol

hasty mist
#

and matador

scarlet spire
#

I don't think it's about being that weak, but just having some that are less powerful than average is already enough imo

brisk rose
#

if you don't retrigger spam

scarlet spire
#

you don't need to design useless jokers, obviously

tall wharf
#

oh sorry the flush rare xmult

scarlet spire
#

I'm just taking about not having all of your jokers be the peak output of that rarity

brisk rose
#

on held in hand no lese

hasty mist
#

i still believe that some jokers like chicot and perkeo would be considered extremely non-vanilla if they weren't in vanilla

brisk rose
#

if you play a 5 card hand, held in hand effects kinda suck

#

so yes for me that's a synergy

native zinc
#

i think some of my jokers are definitely on the more situational side

#

but ig none of them are as trash as banner past ante 3

#

lmao

brisk rose
#

but people clown on chicot

#

for some weird reason

scarlet spire
brisk rose
#

like he's the worst legendary

#

like... and they really do mean weakest

#

i don't get it

native zinc
#

chicot is not the weakest legendary

#

i don't know what the worst legendary even is they're all ok

brisk rose
#

tbh for me personally, as much as this is very much not true with most playstyles, perkeo is

plain apex
native zinc
#

canio is probably worse because you need to build around ot

brisk rose
#

because the way I play he's just iway too much to set up and takes up dead space

#

like perk is nice to have

native zinc
#

i feel like chicot you just pick it up on any build whatsoever

brisk rose
#

but nothing i don't sell if i need to

hasty mist
#

in my opinion:
perkeo
triboulet
chicot
yorick
canio

#

from fav to least fav

tall wharf
#

do people still code for old calc

native zinc
#

i only like canio because it sounds like my username

plain apex
brisk rose
#

I don't mind canio but he does need a lot of setup, but at least there's waus easi;u compatible with my playstyle

plain apex
brisk rose
#

just make a buch of face cards and play and destroy the same cards

tall wharf
#

i think it's time to remove it

scarlet spire
#

I feel like perkeo is not the win button people make it out to be, it can be a huge help but does literally nothing on its own, if you have a perkeo and nothing else you're dying
perkeo only skyrockets into absurdity with other jokers and consumables that are also very rare to get, and at that point I think the overpowered-ness is warranted

brisk rose
#

good syngergy with trib too

scarlet spire
#

I think extremely rare setups are allowed to be overpowered for the novelty

brisk rose
#

I don't really do face card builds though

#

I prefer number cards because I got a lot of mod syngergy from them

#

with ortalab especially

hasty mist
#

my first ever e score was with perkeo and observatory and it was absolutely insane

native zinc
#

face card builds are kinda boring imo

plain apex
brisk rose
tall wharf
#

i mean might as well because you've got 1 less version to worry about

hasty mist
#

im glad i started modding after newcalc became the norm

brisk rose
tall wharf
#

i personally don't see benefits to maintaining the old calc compatibility

brisk rose
#

observitory? I have well over 100 vouchers

#

so that's no gurentee

hasty mist
#

how different was coding with oldcalc anyways

plain apex
#

i mean its mostly the old stuff that has old calc support the new stuff either works on both or is only on new calc

brisk rose
#

you have to dui syngergies with how I have my game

#

oldcalc is irrelevent btw

#

don't do it

#

mods stuck on oldcalc need to be ported

#

not vice verse

scarlet spire
#

I do attempt to deal with stuff like that in my own ways
more boosters? just add a way to get more booster slots
more vouchers? add more ways to get vouchers

#

though for 100 vouchers, yeah that's a special case

brisk rose
wintry solar
hasty mist
#

how did things need to be done differently

plain apex
#

should i really delete the option when new stuff isn't really being ported to it to begin with?

true glen
#

whats wrong with this?

wintry solar
#

You had to return specific keys at different timings, you had to specify messages and cards to put messages on

brisk rose
wintry solar
#

Not all areas received the same stuff

plain apex
wintry solar
#

Some object types had different calculation methods too

plain apex
#

when i make new stuff it doesn't get ported to the old calc setting

tall wharf
#

steamodded gender equality update

plain apex
#

it either works on both or is left in the newcalc

brisk rose
#

I'm a linux user, i always stan legacy support

tall wharf
#

also i think ortalab check can be done automatically

plain apex
#

like all the oldcalc setting actually does is for stuff that is supported on oldcalc switch its code out for the oldcalc version and vice versa for the newcalc setting

brisk rose
#

I just wish the mods stuck on pldcalc which I can't trust to do their thing anymore were ported

true glen
brisk rose
#

there's dozens of mods in my old modpack that some people play with, but I just can't feel right moving them to my new one as is

#

because oldcalc mods don't usually crash on newcalc

#

they just don't do the math right or have weird behavior

hasty mist
plain apex
#

like at this point i would say you should defintely play on newcalc which is why its the default but if you are one of those people who for some reason are still in oldcalc the setting is there

brisk rose
hasty mist
#

that's weird

plain apex
#

lmao

plain apex
#

true

cerulean bane
#

sorry if i sound stupid but what exactly are newcalc and oldcalc

hasty mist
#

i don't quite fully understand either tbh, only the general idea

plain apex
tall wharf
#

basically before the new calc everything was inconsistent

hasty mist
#

what reason would anyone even have for staying on oldcalc anyways

tall wharf
#

you have to manually do everything

#

lol

cerulean bane
#

oh its just smods revisional differences? ok

native zinc
#

ye smods

tall wharf
#

it's a complete rewrite to the calculation

plain apex
true glen
#

whats wrong with this? i thought getting rid of the string for the text in the description would fix it but it didnt change it

true glen
#

OH

tall wharf
#

an d uppercase J in Joker

tall wharf
brisk rose
tall wharf
#

most of them are either Balamod mod or the creator just gave up and you should be looking for updated fork

tall wharf
brisk rose
hasty mist
#

balamod?

brisk rose
#

and he dropped out months ago

#

not completely

#

just life stuff

plain apex
#

i dont really plan on giving up on my mod but i do know i'll probably be alot less active if active at all for july because of Artfight

cursive sentinel
#

quick question, where can i change the scale of card loads within the smods.joker structure? (self.T.h = Hscale0.7scale
self.T.w = W
scale0.7scale for wee joker for example)

sage crater
# hasty mist i still believe that some jokers like chicot and perkeo would be considered extr...

I definitely agree with chicot
I feel like if three of the five legendaries weren’t all xmult based on cards in some way, I think perkeo would fit in a lot better. But since you have xmult on face cards destroyed, xmult on discards, and xmult on played kings, it all feels samey samey and the outliers are a slightly better luchador, and a genuinely fun mechanic that’s a bit strong based on your setup

sage crater
#

also yes, I definitely should be asleep

brisk rose
hasty mist
#

yeah, i wish there were more legendaries with more unique effects

sage crater
#

Loki in my mod pack incoming lol

plain apex
#

any of y'all here do artfight? i try to beat my record there every year drew 222 people last year

brisk rose
brisk rose
scarlet spire
#

I'm really trying to keep the legendaries unique in my mod

brisk rose
#

that one is super OG and full of jokers

sage crater
hasty mist
#

i think it'd be cool if vanilla had a legendary that was the only source of exponentiation in the game, even if it was extremely limited and small

scarlet spire
scarlet spire
#

compelling legendaries are hard to think of

plain apex
#

is this a good legendary?

hasty mist
#

i also don't really like legendaries in mods that just complete ignore the design scheme (looking at you, nostalgic invisible joker)

brisk rose
#

when I'm actually doing runs

sage crater
#

@hasty mist good legendary?

brisk rose
hasty mist
#

venturing outside the strict famous jesters only is fine, but nostalgic invisible joker just straight up doesn't even make sense as a legendary

brisk rose
#

it's uniquw

sage crater
hasty mist
scarlet spire
sage crater
#

Hell yeah

scarlet spire
#

jokers in balatro tend to effect one thing, or have a specific link between two things

brisk rose
#

i'm glad it's largely discarded in mods

tall wharf
#

I'm trying to add more but i got no ideas right now lmao

hasty mist
#

i love it

scarlet spire
#

I like working within the bounds of the legendary designs

hasty mist
#

i cant wait for astronomica to have enough content to warrant it's own effect

woeful epoch
tall wharf
#

😭😭😭

hasty mist
#

also i was playing with freedom deck earlier

#

i am genuinely impressed at how stable it is

#

like

#

balatro mobile in betmma is the buggiest thing ever

#

but freedom deck is virtually seamless

#

not a single crash

brisk rose
#

if nothing goes together, everything does

#

it's how I pull cohesion out of chaos

plain apex
#

never really sure how to do anything with legendaries tbh like they are supposed to be good but at the same time you dont want them to be too good or too similar to the already existing ones

tall wharf
brisk rose
hasty mist
#

I see

scarlet spire
#

it's not actually that restricting if you know what you're doing, nevernamed's hundreds of legendary designs come to mind

tall wharf
#

otherwise it crashes upon scoring one of them

brisk rose
#

oh well

hasty mist
tall wharf
#

-# is my self insert legendary too op ;-;

#

-# okay yeah maybe

scarlet spire
#

I had a legendary mechanic that allowed vouchers to show up in the main shop, even if you've already redeemed them, but it's not actually that engaging so I scrapped it

brisk rose
#

so it'd end up parasitic

#

not interacting agnositically with mod content

scarlet spire
#

99% of the vouchers in game already support stacking... even observatory, which surprised me

hasty mist
scarlet spire
#

if you claim two observatories, planet cards trigger twice

hasty mist
#

stacking them works perfectly fine with equilibrium deck

sage crater
daring fern
brisk rose
#

I mean... maybe they got refactered to be that way, I know there used to be a mod called looper

#

that had to individually support them

scarlet spire
#

the only ones that don't work are the planet/tarot merchant/tycoon vouchers, shop price reduction vouchers, and I thiiink that's about it?

tall wharf
#

i love freedom deck

brisk rose
#

I think you lost my coda there

#

this isn't about the vanillia vouchers

hasty mist
#

freedom deck is so fun

brisk rose
#

it's about the open class of vocuchers

hasty mist
#

I wish the mod worked on 1.0.1n though

sage crater
tall wharf
#

I'm sorry everyone for not going with America flag

brisk rose
#

I strongly dislike mechanics that aren't able to be generalized to modded content agnostically

woeful epoch
tall wharf
woeful epoch
#

i possess a particularly empty brain

true glen
#

why is the text for the name here on both of these showing up in the box at the very bottom meant for the rarity? Baloney Truck doesn't have a name shown at the top at all which confuses the hell out of me cause the way these two are coded is almost identical i don't see why one would run into this problem and the other wouldn't

brisk rose
#

a mechanic, imo, can be parasitic in 2 ways, it eats its own ass, or it eats vanillias ass. Both of thse things are fine in isolation, but I haven't, don't, and will never play mods that way, so for practicial purposes mods that revolve around such things really can't exist to me

true glen
#

oh goodness

#

i need to go to bed

#

ty

brisk rose
#

it's not nessacarily bad design, but it is pideonholing design

#

it means your mod will never thrive with others of its kind

scarlet spire
#

can you explain what you mean by parasitic

brisk rose
cursive sentinel
#

is there smth such as a "seal_gate"? like joker's out of the pool until you'd have at least a seal in your deck?

brisk rose
#

not like in a themtic sense, but in that it's designed that way

true glen
brisk rose
#

coded that way

true glen
#

now all i need to do is find out how to actually use custom textures

brisk rose
#

Or, in the same way a mod relying on a specific vanillia joker would be just as bad

scarlet spire
#

so, the concept of exodia jokers but broadened to be about any mechanic in general?

icy oak
#

is there a function that changes card rank like change_suit()

sage crater
scarlet spire
#

exodia jokers are basically just jokers that rely on other jokers for their effects, i.e. you need to "assemble" them to get use out of them, which is against balatro's design principles

brisk rose
#

there are other minifestations too, like mods that add a new mechanic that can only really interact with content from the same mod

regal ether
brisk rose
tall wharf
#

my letter thing probably falls into this too

#

doesn't it

sage crater
brisk rose
scarlet spire
#

I mean, plenty of mods are designed as standalone experiences and there's nothing wrong with that, if mods want compat with bespoke systems in other mods, they're free to add that themselves, or communicate to have it added through other means

#

I think parasitic is a bit of a harsh term to use in this case

brisk rose
#

just a taste and playstyle thing

tall wharf
#

i have this

brisk rose
#

and it makes the mods irrelevent to me personally

tall wharf
#

which is parasitic by your definition

regal ether
#

the ultimate two-piece exodia

brisk rose
shell timber
brisk rose
#

it's why when I'm gonna do my suit mod it's gonna come with literally half a dozen jokers per suit, to make them feel right in the pool

scarlet spire
#

ahh

brisk rose
tall wharf
#

me when everything got confusing

scarlet spire
brisk rose
#

but if you're adding a suit itself, it needs support

tall wharf
#

I'm adding Joker suit

brisk rose
#

and probablky more than just the 2 jokers per suit vanillia does

tall wharf
#

and Consumable suit

shell timber
#

parasitic mechanics (in mtg) generally work well in "draft" environments (limited cardpool) since the designer can control the exact percentage of cards that use the mechanic, but tend to not do as well in "constructed" environments which have a much larger cardpool

brisk rose
#

like it happens, but rarely

regal ether
brisk rose
#

so for my personal design philosophy

tall wharf
brisk rose
#

once again this is opinion

#

it needs to be accounted for

true glen
#

for a game that opens and closes instantly using alt F5 to reset weirdly takes a while

tall wharf
brisk rose
#

closes rq then

#

:P

hearty mesa
#

bump

true glen
tall wharf
true glen
#

wdym

tall wharf
#

what should be the limit

sage crater
true glen
#

no limit its the freedom deck a free bird isnt a caged bird

sage crater
true glen
#

also its very very funny

viral tulip
#

what is the proportions of x2 deck ?x?

sage crater
viral tulip
#

like is it 71x90 or something else

sage crater
viral tulip
#

ty

true glen
#

im gonna need to spend an entire extra night just learning how to add descriptions

#

good lird

sage crater
brisk rose
hearty mesa
#

bump the bump

viral tulip
#

no just 1 deck like here

sage crater
hearty mesa
#

how doth one add text to thine screen?

viral tulip
#

how to disable this

hearty mesa
#

actually put something in the log message?

brisk rose
hearty mesa
brisk rose
#

with the function to make it go

#

you jsut need to figre out what parent to return to get you on the scren during normal gameplay

#

I think

hearty mesa
#

fun

tall wharf
#

ui is always fun to work on

#

source: Aikoyori

hearty mesa
#

tell me about it

tall wharf
#

I'm not gonna because the fun is for you to figure it out

hearty mesa
#

..that's not what i meant

brisk rose
#

because the smods wiki says the same samn thing

#

damn

tall wharf
#

that's all there is

brisk rose
#

the grid seems irrelevent

tall wharf
#

oh

#

you'll need to put text in one of those

#

and have some padding

#

put colour in the thing

#

if you want text on screen you'll have to have the UI Box be Game Variable and hook when you need to display it

brisk rose
#

the biggest issue is the fact it needs to display in game not in a menu

#

which i think you just addressed

hearty mesa
#

holy moly that was easier than i expected lol

brisk rose
hearty mesa
#

no

#

fuck around and find out

brisk rose
#

best method, lol

native zinc
#

the scientific method

broken shadow
hearty mesa
#

although it is half obscured by the run info

brisk rose
brisk rose
#

i presume

broken shadow
brisk rose
#

let alone a whole planet

broken shadow
hearty mesa
#

whoa this is getting philosophical guys slow down

native zinc
#

well tbf science has only one goal and it's to be correct

broken shadow
broken shadow
native zinc
#

the only measure science has is the truthfulness of the answer

brisk rose
native zinc
#

science fraud is so dumb because people just replicate and see you're full of shit or something

brisk rose
#

I mean, fraud, yeah, but I mean systematic and often completely unconscious biases that can lead the consensious asway for some time, and the more foundational the belief is, the less concious it is, and the longer it sticks around

brisk rose
#

like I know what it means, but idk the words that my brain was trying to make

#

astray

#

I truly am an idiot

broken shadow
#

And that's why psychology is a busted option to learn

true glen
brisk rose
# brisk rose astray

it's like my internal monologue temporarily developed a speech impediment that I went on to transcribe

brisk rose
#

lmfao

true glen
#

Oh my God

broken shadow
brisk rose
#

I... am kinda used to this

broken shadow
#

I've gotten to 72 hours without sleep due to balala

brisk rose
#

and the ecedrin and sudafed I am taking for my swimmer's ear aren't exactly sleepy meds

#

ecedrin because I can't take ibuprofen like a normal person because I take lithium and it could kill me

broken shadow
#

God you are beyond cooked

#

I'm also taking meds that will kill me if I take ibuprofen :3

brisk rose
#

I actually feel restful not high strung from the pain

broken shadow
brisk rose
#

I did go to the doctor and get antibiotic eardrops today

crisp coral
manic rune
#

flooding the screen with uis is my thing!!

#

im suing you

hushed field
#

bepuis

pale venture
#

Quick question, if i were to apply a custom soul layer to a playing card, is there a way to display it in the deck ui? Cause it doesn't seem to do so automatically

icy oak
#

whats the color for the (Can't be sold or destroyed) line?

red flower
#

inactive

icy oak
#

hmm

#

oh that works

hushed arrow
#

where/which file are the default hands/discards/money defined?

flat sorrel
#

G.GAME.starting_params, get_starting_params() is defined in misc_functions

hushed arrow
#

Aight thanks

burnt cairn
#

how do you go about modifying enhancements?

#

id have to override the basegame code, wouldnt i? i dunno if i can do that through a joker

red flower
#

you would have to take_ownership probably

eager pendant
#

Guys, what's the problem?

midnight coyote
#

is this correct?

reef belfry
#

how would you go about doing this the RIGHT way (changing C: to a color in the calculate function)

manic rune
#

you will probably want to use V: instead

midnight coyote
#

hey @red flower So i tried to make G.ASSET_ATLAS["astropulvis_diffatlas"] like you said to do, and when i try to use the atlas to render the sprite, it crashes stating that atlas is a nil value.

reef belfry
#

so THATS what V: is for

midnight coyote
#

let me get the crash log

onyx imp
#

バラトロ

#

Japanese balatro

#

Spells balatoro

midnight coyote
#

w is nil

#

what is w?

#

let me investigate

#

width?

onyx imp
#

What is death

midnight coyote
#

no

#

thats not it

#

is it?

#

OH IT IS

onyx imp
#

W

midnight coyote
#

IM SUCH AN IDIOT

#

SORRY FOR THE PING

onyx imp
#

W

eager pendant
#

Guys, what's the problem?

midnight coyote
#

alrighty

#

well, new problem

#

new_sprite_atlas is nil

#

meaning that something is going wrong from the atlas’s creation to it being rendered

red flower
#

did you try printing G.ASSET_ATLAS[...] to see if it has something

midnight coyote
#

i’m gonna eval that in ugh

#

debug plus

eager pendant
red flower
#

dont be mean to debugplus

midnight coyote
#

not an ugh

#

big difference

red flower
midnight coyote
#

yeah the table renders

red flower
#

yeah that looks fine idk then

midnight coyote
#

let me try directly calling it

#

instead of using a variable

#

oh thats a bit large

#

works though

#

lmao

#

at least it was a funny bug and not a sad one

burnt cairn
#

which file are enhancements defined in? cause unless im just ctrl-f'ing the wrong terms it doesnt seem to be in card.lua

midnight coyote
eager pendant
red flower
#

no idea then sorry

cursive sentinel
#

i'm trying to overwrite cards destruction to prevent it if a joker is possessed, although this just stops the game functionning (not crashing, i can still go to menu)

function Card:start_dissolve()
    print(self.base.suit)
    if next(SMODS.find_card('j_sdr1_stamp')) then
        return false
    end
    return true
end
manic rune
#

thats not how you hook

#

what you are doing is replacing the entire code of Card:start_dissolve() with that

cursive sentinel
#

but i dont find the original Card.start_dissolve in base code

manic rune
#

here, this should help

cursive sentinel
#

i dont know what there is in it

#

i found smth similar in state_event

#

but it's not rly it

manic rune
#

its in card.lua, search function Card:start_dissolve in there

cursive sentinel
#

i forgot to uncheck "whole word" and wrote start_dissolve....

#

i wanna die

hushed arrow
flat sorrel
spiral nacelle
#

my game keeps crashing when i load up a deck with the cryptid mod what do i do to fix it???

burnt cairn
#

theres game.lua which seems to just be an atlas but i cant find any defining information

burnt cairn
#

đŸ«Ą

scarlet thorn
flat sorrel
spiral nacelle
#

đŸ«Ą

cursive sentinel
cursive sentinel
#

tried going with this, but it doesnt prevent destruction, although doesnt crash and accurately hooks the destruction info

local dissolved = Card.start_dissolve
function Card:start_dissolve()
    dis = dissolved(self)
    if next(SMODS.find_card('j_sdr1_stamp')) then
        print(self.base.suit)
        return false
    end
    return dis
end
flat sorrel
#

again, patching card.remove will not work smoothly because the game will call that function, do nothing from your patch, and then go on to do other stuff assuming the card is in fact destroyed

scarlet thorn
#

Move it into the else function

cursive sentinel
#

else
return dis
end?

scarlet thorn
#

Move it into the else

scarlet thorn
cursive sentinel
#
local dissolved = Card.start_dissolve
function Card:start_dissolve()
    if next(SMODS.find_card('j_sdr1_stamp')) then
        print(self.base.suit)
        return false
    else
        local dis = dissolved(self)
        return dis
    end
end
#

in there?

scarlet thorn
cursive sentinel
#

which means?

#

i'm sorry im really a nooblard

red flower
#

local dis

cursive sentinel
#

oh yeah

flat sorrel
burnt cairn
burnt cairn
#

actually would that code be-

#

yeah

scarlet thorn
#

Which one are you looking for

burnt cairn
#

the glass card

#

which i think ive found already

#

i just didnt know what to do with it

red flower
#

i think glass is overwritten by smods

cursive sentinel
scarlet thorn
burnt cairn
#

nom...

flat sorrel
#

state_events, but I believe there are many such cases. I looked into this myself, decided it was less pain to just rework "when destroyed, save card" into "when destroyed, create a copy"

cursive sentinel
burnt cairn
scarlet thorn
cursive sentinel
#

ideally i'd prefer going with a prevents destruction, but im struggling

scarlet thorn
#

Same with ankh

flat sorrel
#

it's more that there's no single cancellable funnel through which all card destroy events must go, so there's no safe 100% reliable way to patch them all e.g. if a mod is doing things with destroying cards

cursive sentinel
#

isn't there a mod somewhere that succeeded to prevent card destruction without using eternal tags?

#

cuz eternal tags prevent using hanged man too for example, bothering

cursive sentinel
#

jens?

#

jen's almanac?

scarlet thorn
scarlet thorn
cursive sentinel
#

ok saw, diploplia, looking on how it's done

reef belfry
#

can you do something like this with V:n?

burnt cairn
red flower
burnt cairn
#

is that even what id want to do catplush

red flower
reef belfry
#

with {V:1} you can like return a color in loc_vars right

red flower
#

yes

vocal cedar
#

for a deck, whhow would i pchange the blind size?

like 10X Base Blind Size something like that?

reef belfry
#

could you return a string that changes the text itself i.e +chips into +mult accordingly

#

with the same logic as V:n

red flower
#

that would just be the normal #1# stuff

reef belfry
#

yeah but that just returns the value

#

idk the fancy stuff on how you actually add the words n special characters into the variable

#

i probably shouldda started with that first

burnt cairn
#

im trying to change the chance of glass cards breaking. im assuming the extra in the config = {Xmult = 2, extra = 4} in game.lua refers to the 1 in 4 chance but its the 1 i wanna change rather than the 4

red flower
#

that would color the whole text but you get the idea

red flower
thorn pumice
#

can someone help me figure out how to potray this joker better lol i'm struggling with the background, or like give me feedback?

midnight coyote
#

how do i make something like G._ but for my mod specifically

#

i wanna put like, my risk table into smtn like ‘AP.G.RISK_TABLE’

#

Astropulvis.Globals.Risk_Table

red flower
#

just do Astropulvis = {} at the beginning of your file

midnight coyote
#

and then i can define stuff as I go?

red flower
#

keep in mind it won't get saved between restarts

midnight coyote
#

i just wanna make it cleaner

red flower
burnt cairn
midnight coyote
#

alr

#

i’ll put like AP = {} at the start of main.lua

#

would that be smart?

red flower
#

and probably modify loc_vars too

red flower
midnight coyote
burnt cairn
#

me when i vaguepost about what im trying to do so i can figure it out myself and i end up just slowly dripfeeding modding dev the entire goal

midnight coyote
#

let me make sure that isn’t a horrible acronym

midnight coyote
#

okay it’s just the ‘American Society for Pharmacy Law’

#

that’s fine

red flower
burnt cairn
red flower
burnt cairn
#

🩭 true my bad

reef belfry
#

or +5 mult

red flower
#

both

#

it changes on condition

reef belfry
#

yeah ik

runic pecan
#

How do I pin everyone who follows my mod post? (optional)

tall wharf
#

how

sage crater
burnt cairn
#

i was operating that way with the goal of learning on my own and only asking about the specific part i was having trouble with

#

but answers lead to more questions and nom ive learned the error of my ways

red flower
#

the problem is that this is such a niche topic that the only two ways to learn are asking here or learning to read other people's code (including thunk's)

#

as someone who learned the second way i dont recommend it

burnt cairn
#

yeah catstare ive got 4 custom jokers worth of familiarity with lua and most of the code is still incomprehensible

runic pecan
sage crater
#

does a 1.0.0~BETA-0410b steammodded version exist? All I can find in the releases is the version I have currently

red flower
#

or this

sage crater
#

ah, ok. thanks!

burnt cairn
burnt cairn
#

my understanding is the 'glass' in the first line is aking ownership of the glass cards code in card.lua

#

if im copying this bit of code wouldnt i need a string id referencing it

red flower
#

no you would also take ownership of glass too

#

what i meant is that you need to copy that code for them to work properly

#

and then do whatever specific effect you want

burnt cairn
#

so id just copypaste this function and edit out the shatter check?

#

actually no the shatter check is the entire function

red flower
#

if you want them to never work yes
but if you want them to work normally then you need to do a check for your condition
for example if your joker makes glass not break then you would add not next(SMODS.find_card("key")) to the if

reef belfry
# red flower idk what this is

it basically makes a value and places it on the last one, then the value moves left, i just dont have a clue how to actually return the value in text with all the "+N chips"

burnt cairn
#

so the function is meant to universally replace glass behaviour then?
so i wouldnt want to paste and edit it into the jokers code

burnt cairn
#

hm

reef belfry
# red flower can i see the code
SMODS.Joker{
    key = 'incomingbattlecats',
    atlas = 'Jokers2',
    rarity = 2, 
    cost = 5, 
    unlocked = true, 
    discovered = true, 
    blueprint_compat = false, 
    eternal_compat = false,
    perishable_compat = true,
    pos = {x = 5, y = 2},
    config = {extra = {effect1 = "none", effect2 = "none", effect3 = "none", effect1r = 0, effect2r = 0, effect3r = 0,}},
    loc_vars = function(self, info_queue, card)
        if card.ability.extra.effect1 == "none" then
            c1 = G.ARGS.LOC_COLOURS.inactive
            goto c2check
        elseif card.ability.extra.effect1 == "money" then
            c1 = G.C.GOLD
            goto c2check
        elseif card.ability.extra.effect1 == "chips" then
            c1 = G.C.BLUE
            goto c2check
        elseif card.ability.extra.effect1 == "mult" then
            c1 = G.C.RED
            goto c2check
        end
        ::c2check::
        if card.ability.extra.effect2 == "none" then
            c2 = G.ARGS.LOC_COLOURS.inactive
            goto c3check
        elseif card.ability.extra.effect2 == "money" then
            c2 = G.C.GOLD
            goto c3check
        elseif card.ability.extra.effect2 == "chips" then
            c2 = G.C.BLUE
            goto c3check
        elseif card.ability.extra.effect2 == "mult" then
            c2 = G.C.RED
            goto c3check
        end
        ::c3check::
        if card.ability.extra.effect3 == "none" then
            c3 = G.ARGS.LOC_COLOURS.inactive
        elseif card.ability.extra.effect3 == "money" then
            c3 = G.C.GOLD
        elseif card.ability.extra.effect3 == "chips" then
            c3 = G.C.BLUE
        elseif card.ability.extra.effect3 == "mult" then
            c3 = G.C.RED
        end
        return {vars = {
        colours = { 
            c1,
            c2,
            c3
        },
        card.ability.extra.effect1, card.ability.extra.effect2, card.ability.extra.effect3,
        card.ability.extra.effect1r, card.ability.extra.effect2r, card.ability.extra.effect3r}}
    end,
    calculate = function(self, card, context)
        bctable = {
            "chips",
            "money",
            "mult",
            "none"
        }
        if context.setting_blind then
            card.ability.extra.effect3 = card.ability.extra.effect2
            card.ability.extra.effect3r = card.ability.extra.effect2r
            card.ability.extra.effect2 = card.ability.extra.effect1
            card.ability.extra.effect2r = card.ability.extra.effect1r
            card.ability.extra.effect1 = pseudorandom_element(bctable, pseudoseed('incomingbattlecats'))
            print(card.ability.extra.effect1)
            if card.ability.extra.effect1 == "chips" then
                print("cve1")
                card.ability.extra.effect1r = math.random(1, 350)
            elseif card.ability.extra.effect1 == "mult" then
                print("muve1")
                card.ability.extra.effect1r = math.random(1, 50)
            elseif card.ability.extra.effect1 == "money" then
                print("move1")
                card.ability.extra.effect1r = math.random(1, 25)
            end
        end
    end
}
red flower
#

i will check the code in a bit because I'm on my phone but you should return colours last

#

i think

proud moon
#

in the smods in-game mod list how do i get my mod to show up on page 1? i dont know what its sorting the mods by

burnt cairn
# red flower exactly

then im just back to square one arent i? all im doing is moving a function from SMODS to my own mod

floral flicker
#

Hello, I am new to balatro modding, and lua. I have checked some tuto and read through many mod Source Code. And I don't know why m'y joker dosen't work. If any body could help me, it would be really cool.

red flower
vocal cedar
red flower
proud moon
vocal cedar
#

texture pack lol

red flower
floral flicker
# proud moon whats the code?

SMODS.Joker{
key = "j_jpp_debtcollector",
loc_txt = {
name = "Debt Collector",
text = {
"Gives you {C:white, X:mult}X3{} Mult",
"for each {C:money}-1${} you have in bank."
}
},
atlas = "Jokers",
cost = 4,
rarity = 2,
unlocked = true,
discovered = true,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,
pos = {x = 0, y = 0},
loc_vars = function(self,info_queue,center)
return {vars = {center.ability.extra.Xmult}}
end,
calculate = function(self,card,context)
if self.debuff then return nil end
if context.joker_main
if G.GAME.dollars < 0
return {
card = card,
Xmult_mod = 3 * (G.GAME.dollars * -1),
message = 'X' .. 3 * (G.GAME.dollars * -1),
colour = G.C.MULT
}
end
end
end
}

burnt cairn
proud moon
burnt cairn
#

now that ive got the code in my mod i can disable it from within the joker?

reef belfry
floral flicker
vocal cedar
#

when you score a card it just

#

doesnt do anything?

floral flicker
vocal cedar
#

go ahead and do me a favor real quick and run this yeah

proud moon
#

im suspicious of the Xmult_mod

red flower
# reef belfry Ahh.. i already shut my pc off.. It was basically {V:1}#V:4#{}...(V:3}#V:6#{} (...

you want something like this

--- description
{ 
    "Effect 1: {V:1}+#4#{} #1#",
    "Effect 2: {V:2}+#5#{} #2#",
    "Effect 3: {V:3}+#6#{} #3#",
}
-- loc vars
loc_vars = function(self, info_queue, card)
    local colours = {}

    for i = 1, 3 do
        if card.ability.extra["effect"..i] == "none" then
            colours[i] = G.ARGS.LOC_COLOURS.inactive
        elseif card.ability.extra["effect"..i] == "money" then
            colours[i] = G.C.GOLD
        elseif card.ability.extra["effect"..i] == "chips" then
            colours[i] = G.C.BLUE
        elseif card.ability.extra["effect"..i] == "mult" then
            colours[i] = G.C.RED
        end
    end
    return {vars = {
    card.ability.extra.effect1, card.ability.extra.effect2, card.ability.extra.effect3,
    card.ability.extra.effect1r, card.ability.extra.effect2r, card.ability.extra.effect3r, colours = colours}}
end,
vocal cedar
# floral flicker SMODS.Joker{ key = "j_jpp_debtcollector", loc_txt = { name = "De...

SMODS.Joker{
key = "j_jpp_debtcollector",
loc_txt = {
name = "Debt Collector",
text = {
"Gives you {C:white, X:mult}X3{} Mult",
"for each {C:money}-1${} you have in bank."
}
},
atlas = "Jokers",
cost = 4,
rarity = 2,
unlocked = true,
discovered = true,
blueprint_compat = true,
eternal_compat = true,
perishable_compat = true,
pos = {x = 0, y = 0},
loc_vars = function(self,info_queue,center)
return {vars = {center.ability.extra.Xmult}}
end,
calculate = function(self,card,context)
if self.debuff then return nil end
if context.joker_main then
if G.GAME.dollars < 0 then
return {
card = card,
Xmult_mod = 3 * (G.GAME.dollars * -1),
message = 'X' .. 3 * (G.GAME.dollars * -1),
colour = G.C.MULT
}
end
end
end
}

fixed it!

you were missing some "thens"

#

here

proud moon
vocal cedar
#

i would heavily encourage you to install VSCODE and the LUA extension, it catches silly errors like this

floral flicker
vocal cedar
#

its X_mult_mod

vocal cedar
floral flicker
vocal cedar
#

mhm nw

proud moon
floral flicker
vocal cedar
#

Xmult_mod

proud moon
#

i just use Xmult =, its a solid

vocal cedar
#

Xmult_mod mult_mod chips and Xchips

#

any work i think

#

john smods is my goat

#

@john smods

#

what we think chat

#

iridescent is my modifier sorry

"1.7X Chips"

rapid stag
#

interesting

#

but why is irisdescent slightly more powerful than polychrome

#

is there a difference in rarity

proud moon
#

true. since its all multiplication and the scoring is multiplication too, it is just better than poly

rapid stag
#

and also take into account that there are vastly more sources of chips than mult

vocal cedar
vocal cedar
rapid stag
#

like again, chips starts higher, there are more sources of chips than mult

#

etc.

burnt cairn
vocal cedar
#

say we score a flush for 200 x 15 mult

x2 chips is 400 x 15

x2 mult is 200 x 30

it would only start mattering if you had them in hand

even if we had a +100 chip joker putting an iridescent joker right after him would not be exponentially stronger than say a polychrome joker

proud moon
#

Commutive property of multiplication

vocal cedar
glad osprey
#

rate my joker idea
after two rounds, sell another joker to get one of the same or better rarity
1 in 10 chance to get nothing and for this to self destruct

rapid stag
burnt cairn
#

i think just "1 in 10 chance to get nothing" would be better wording

#

descriptions have gotta be short you dont have room for redundancy

glad osprey
#

you sell a different joker

rapid stag
#

oh cirDerp for some reason my mind skipped that word entirely

#

in that case, it feels a little strong and would probably increase the chance a bit

vocal cedar
vocal cedar
#

since in your original design oops all 6 just would shaft bro

glad osprey
#

the thing I'm basing it off of does allow you to trade with it only once so it dying would make more sense

#

if it is a self destruct after one use then I would make it sell this joker and it would apply to the one to the right

proud moon
# vocal cedar this does get stronger with iridescent playing cards however, as all cards give ...

as long as its put at the end it still is on par with poly (aside from the 1.7 not 1.5) same as if you had mult enhanced cards before a poly. As long as a multiplier is placed for scoring last that multi is added to the end game mult. Yes a higher base value before mult is better always, for chips and mult, but xchips is identical to xmult (aside from plasma) because its just a multiplier. x1.5 or x1.7 can be on chips or mult and do the same thing because chips and mult are also multiplied together.
The real value derived from irid is just being a 1.7 and not a 1.5.

glad osprey
vocal cedar
#

this mf took me YEARS to figure out man im happy to say he just sucessfull worked

glad osprey
#

also is there some sort of system in place internally that sorts rarities by how much "better" one is

bold sleet
#

Help, how do I put this after black stake and before blue stake?

vocal cedar
#

so

glad osprey
#

custom rarities are keys tho

vocal cedar
#

increase it by one and then pull from joker collection with key rarity = yours

#

oh

glad osprey
#

atleast I think so

vocal cedar
#

its joever for modded

#

heres what you can do

glad osprey
vocal cedar
# glad osprey atleast I think so

unless the mod has its rarity as a number, make your joker just give a different joker of that custom rarity and make the "increase rarity by one" only valid for vanilla tbh

#

so selling a cryptid epic would always give you an epic

#

type shit

glad osprey
#

that's just worse commit at that point

limber blaze
#

i set up a table for it which defines crossmod rarities in order for a similar mechanic

glad osprey
#

but yea if there isnt a system set up already ill just do that

limber blaze
#

then it finds the index of the next rarity using that

#

youre still gonna have to have a fallback which will be best as the original rarity but yea

#

doing it like this is pretty easy and allows it to work with modded rarities

#

you just need to get people to add crossmod or manually do it yourself though

glad osprey
#

@scarlet thorn next project should be an api that mods can patch into to add their own rarities and stuff

limber blaze
#

smods rarity stuff should just make you provide an order

glad osprey
#

that would get very messy very quick tho

limber blaze
#

ik lol

#

if everyone agreed to play nice it would work pretty well but i think some people wouldnt do that cough cough

bold sleet
glad osprey
#

may be smth like st_black

#

or whatever stakes prefixes are

glad osprey
#

so try stake_black

bold sleet
#

shit is not working

flat sorrel
# bold sleet shit is not working

"Key prefixing is applied to applied_stakes and above_stake by default. If you want your stake above a stake from the base game or other mods, this can be adjusted by using prefix_config" ?

burnt cairn
# red flower is what correct

trying to understand whats the benefit of having a copy of the function in my own code. doing that enables me to refer to it inside my jokers right?

red flower
#

no, let me do a mock up rq

#
SMODS.Enhancement:take_ownership('glass', {
    calculate = function(self, card, context)
        if not next(SMODS.find_card("j_matador")) and -- wont be destroyed if you have matador
        context.destroy_card and context.cardarea == G.play and context.destroy_card == card and pseudorandom('glass') < G.GAME.probabilities.normal/card.ability.extra then
            return { remove = true }
        end
    end,
})
burnt cairn
#

ahh ic

#

so im copying it over and then explicitly adding an exception

red flower
#

yeah

burnt cairn
#

okay i think ive got it then

red flower
#

you can also change loc_vars to set the value in the description to 0 im pretty sure

burnt cairn
#

thank you for tolerating me i appreciate it đŸ«Ą

hearty mesa
#

oh wait

#

wooops

cyan lagoon
#

how do i make this not crash?

#

haven't done much G.GAME. magic so i dunno what to do

hearty mesa
#

check if G.GAME.jokers_sold is not nil before the for loop?

#

after local contained = false

flat sorrel
#

unless I just can't find it there is no G.GAME.jokers_sold, it doesn't exist

cyan lagoon
#

i mean it works fine if cryptid is installed where i took the code from

flat sorrel
#

is cryptid tracking it itself?

cyan lagoon
#

well, how do i add it?

hearty mesa
#

hook to Game:init_game_object()

cyan lagoon
#

i'm certainly missing that G.GAME.jokers_sold thing

crisp coral
cyan lagoon
#

that the thing

#

how do i define it

flat sorrel
#

what effect are you trying to achieve?

hearty mesa
#
local igo = Game:init_game_object
function Game:init_game_object(run_start)
  local ret = igo(self)
  -- "ret" is the G.GAME variable
  ret.jokers_sold = {}
  -- make sure to return ret!!!!
  return ret
end
cyan lagoon
#

oh wait i may've found it

cyan lagoon
flat sorrel
#

look you can add it to your game object but that on its own obviously isn't going to do anything, there's no point telling them just that

hearty mesa
#

ok egg

cyan lagoon
hearty mesa
#

yw 🙂

flat sorrel
#

you would need to search on the cryptid github for "jokers_sold" and find everywhere that the code is handling it, and do the same. but often people who aren't experienced don't actually know what they need which is why before recommending going off and doing that it'd be useful to know what you're trying to do

#

it's called the XY problem

cyan lagoon
#

ok, it works, but the rarity check doesn't

#

it just adds every sold joker and no just commons

red flower
#

yeah the if should be an and not an or

cyan lagoon
#

oh right

rough furnace
#

Does anyone know is there some sort of frame counter, or some other way to tell how many frames has passed since between two points in time?

#

Don't have my laptop to look at the xode

#

At least not efficently

red flower
#

G.FRAMES.MOVE and G.FRAMES.DRAW seem to have frame counters

#

i dont know what the difference is because they seem to print the same number in game

split cairn
#

anyone know how to change the text in the cashout screen?

long frigate
#

what do i do to have a joker make a specific tarot card, currently have it just making a random one using similar logic to hallucination (without the booster pack thing obv)

red flower
split cairn
long frigate
#

ah

#

that is much easier than what i was trying to do lmao

split cairn
long frigate
#

thanks

red flower
# split cairn how do i do that?

this is how i do it

local localize_ref = localize
function localize(args, misc_cat)
    local ret = localize_ref(args, misc_cat)
    -- Remove color codes from info_queue tooltip names
    if args and type(args) == 'table' and args.type == "name_text" then
        if string.len(ret) > 2 and string.sub(ret, string.len(ret) - 1, string.len(ret)) == "{}" then
            ret = string.sub(ret, 1, string.len(ret) - 2)
        end
        if string.sub(ret, 1, 3) == "{C:" then
            local _, _, _, real_name = string.find(ret, "{C:(.*)}(.*)")
            ret = real_name
        end
    end

    return ret
end
split cairn
red flower
#

no, you put it somewhere else in your main code, not inside the joker

split cairn
red flower
#

both work

split cairn
#

it worked, thanks!

rough furnace
hushed estuary
#

How do I make a tooltip for stickers

#

What do I put in info queue

long frigate
#

is there a way to check if i have a specific consumable

#

can i just do context.card.config.center.set == 'c_moon' for example

bold sleet
#

card.config.center.key

#
if card.config.center.key == "your_key" then
end
#

needs prefixes and stuff

long frigate
#

ty

quartz ravine
#

Hi folks! I got a bug report and sure enough, my config for my mod is defaulting all settings as 'unchecked', leading my mod to do basically nothing, lol!

rough furnace
#

Do you have default config.lua in your mod path?

quartz ravine
#

Good question! I do define my config page in this config.lua file, which ends with a return block

rough furnace
#

Do you have DebugPlus?

quartz ravine
#

I do!

wintry solar
#

how are you creating your config menu?

rough furnace
#

If so can you run eval SMODS.Mods.YOURID.config in the console

quartz ravine
wintry solar
#

I would try having that file be just the config table

rough furnace
#

Forgot the .config at the end but I cans ee the table its empty

#

But yeah I wouldn't put other kogic in the config

quartz ravine
#

Weirdly, the value of .config was an empty table. Although when I manually changed a setting, the value was populated!

#

Ok, I think you are giving some ver good advice, Eremel and John, I will try it!

#

That was the fix! @rough furnace @wintry solar !

My config.lua now holds only that return table and I moved everything else into modconfig.lua, works like a charm!

open aspen
#

can i debuff a hand (like how psychic prevents you from playing 4 or less cards) with a joker or some kind of other effect? I want to make a mechanic which, when triggered, will permanently apply a condition to your run that if met, debuffs ur hand

#

like it wouldnt be a joker doing this, it would be activating a consumable that sets a flag

long frigate
#

for _, k in pairs(G.consumeables) do
if k.config.center.key == 'c_moon' then
moons = moons + 1
end
end

does that loop work for finding how many moon cards are in your hand/storage

#

if not is there a good way to do it

#

kinda just taking other logic and using it here lol

open aspen
#

i believe it should work

#

i am not sure about the .config part

long frigate
#

yea that might not work lemme see

rough furnace
#

I think you can use SMODS.find_card

open aspen
#

like is there a place where the hand is played where I can hook in and set the hand to be debuffed

bold sleet
#

why does it display as error?

pulsar flower
#

your loc_txt needs a "label" property if i'm not mistaken

bold sleet
#

oh ok

open aspen
cyan lagoon
#

how do i make a joker trigger the effect of another joker?

burnt cairn
wintry solar
sonic cedar
#

trying to make it so a joker wont appear in the pool if the check box in the mod's config is deselected,

this however crashes the game

is there a way to do this?

wintry solar
cyan lagoon
# wintry solar

this doesn't require for the copied joker to be owned right?

wintry solar
#

Uhhhh

#

Not technically

cyan lagoon
#

i'll try it

sonic cedar
wintry solar
#

What are you trying to copy?

burnt cairn
#

hm

#

theres no obvious mistake im missing here is there

long frigate
#

for _, k in pairs(G.consumeables) do
local found = SMODS.find_card('c_moon')
sendDebugMessage("SMODS.find_card('c_moon') returned: " .. tostring(found))
if found then
moons = moons + 1
end
end

why does this return with 33 moons lmao

wintry solar
wintry solar
cyan lagoon
wintry solar
#

What exactly are you saving in the table?

cyan lagoon
#

joker keys

burnt cairn
wintry solar
burnt cairn
#

oh nom that makes sense

wintry solar
# cyan lagoon joker keys

You can do this then


local calc = G.P_CENTERS[card.ability.extra.last_joker]
            local ret, trig = Card.calculate_joker(card.ability.extra.last_joker_table, context)
            if ret and ret.card and ret.card == card.ability.extra.last_joker_table then
                ret.card = card
            end
            return ret, trig

I create a dummy table to act as the previous card, if you have lots you’ll probably need to adapt it somewhat

burnt cairn
#

so this should be correct then?

cyan lagoon
wintry solar
#

Yeah

burnt cairn
#

because the glass cards are still breaking nom

#

the lua gods striking me down for my hubris

wintry solar
#

Oh glass cards have their own check

burnt cairn
#

they huh

wintry solar
#

Or it used to

burnt cairn
#

their own check that isnt covered in
SMODS.Enhancement:take_ownership('glass', { calculate = function(self, card, context) if not next(SMODS.find_card('j_grat_abyssjoker')) and context.destroy_card and context.cardarea == G.play and context.destroy_card == card and pseudorandom('glass') < G.GAME.probabilities.normal/card.ability.extra then return { remove = true } end end, })

wintry solar
#

Yeah

#

It’s in state events

burnt cairn
#

alright (where is state events)

wintry solar
#

Look in your lovely dumps folder

long frigate
burnt cairn
#

theres a thing about shattering in G.FUNCS.draw_from_play_to_discard that im not sure what to make of

cyan lagoon
#

it crashes as of now

wintry solar
true glen
#

how do i add a rarity to a joker besides the default common? cause the steam modded examples lists the code for it as just "rarity = (number)," but that isn't doing anything

wintry solar
wintry solar
cyan lagoon
#

yeah, local calc is not used anywhere

#

and you're checking ret.card twice for some reason

#

wait no

burnt cairn
wintry solar
#

Huh

long frigate
burnt cairn
#

this is the file in Mods/lovely/dump/functions right?

wintry solar
#

Yeah

long frigate
#

i was just dumb and was taking a table as a boolean lol

burnt cairn
#

huh

placid star
#

whats the most efficient way to find the cards[index] index of self?

true glen
#

yay i figured that out (kinda)

scarlet thorn
placid star
#

so

for i,v in ipairs(G.jokers.cards) do
  if v == card then
    ind = i
  end
end```
hardy viper
#

truth

bold sleet
#

-# that card, a joker, which indeed, executes, performs an action, an event, activates, gets triggered, when one finds themselves playing, in a run, making use of this program we call 'balatro'.

scarlet thorn
#

Why do you need the index

#

Not something that's all too valuable yknow

true glen
scarlet thorn
#

That's gonna be interesting to code...

true glen
#

now if i can only figure out how to make it actually pull from the 1x and 2x folder

true glen
hardy viper
#

average string.find(v, "{C:tarot}", nil, true)

true glen
#

rarity thing also just still is not working at all

#

idk whats up with tha

#

that

wintry solar
#

Your rarity and atlas are inside your loc txt table

sonic cedar
#

take them out of loc txt

true glen
#

ohh ok

#

where should i put these then?

sonic cedar
true glen
#

ty

true glen
sonic cedar
#

comma

#

at the end of the loc txt

true glen
sonic cedar
#

other end

true glen
#

yeah i realized woops

sonic cedar
#

where is your syntax highlighting

true glen
#

idk

#

this is the most coding i've ever done tbh i dont know jack

gusty peak
#

do you have lua extension installed?

#

in vscode

true glen
#

i dont think so

sonic cedar
gusty peak
#

ye and thats where you search for them

tranquil gull
#

will G.GAME.current_round.current_hand.chip_total have the correct value during context.joker_main?

gusty peak
#

depends on when your joker triggers, so id say.. no its not a reliable source

tranquil gull
#

i want to get the amount of total chips when the joker triggers

gusty peak
#

oh

#

what are you trying to do with it?

tranquil gull
#
j_jimbotomy_nerd_joker = {
    name = "Nerd Joker",
    text = {
        "{X:mult,C:white} x#1# {} Mult, {C:chips}+#2# Chips{}",
        "if {C:chips}Chips{} are {C:attention}prime{}",
        "{C:inactive}Debuffed if {C:chips}Chips{} > #3#{}"
    }
},
sonic cedar
#

pseudo bump so discord doesnt have to cry over scrolling and such

modest iris
#

hello guys, does anybody know how can i make a joker retrigger itself like ten times and each time it multiplies the score with it's xmult value?

wintry solar
brisk rose
sonic cedar
wintry solar
#

I’d do Hyperglobal = SMODS.current_mod and then use Hyperglobal.config

sonic cedar
#

ohhhh

#

is that all i have to do or is there more than that

placid star
#

this code no workie :/
im trying to make a joker that removes all stickers from the joker to the right on selecting the boss blind but this crashes on 1455

wintry solar
#

No not the second line

sonic cedar
#

oh uh fixing

#

do you mean all the usages in the config_tab

sonic cedar
wintry solar
#

Everywhere

sonic cedar
#

oh literally anywhere it says config EXCEPT the local config

#

ok maybr not that

sonic cedar
wintry solar
#

Wherever you’re trying to refer to your config

sonic cedar
#

ohhh everywhere in the JOKER (in this case)

wintry solar
sonic cedar
#

oh well

#

yeah that seems obvious now

sonic cedar
# wintry solar

can this be used to modify collection appearance (like true or false)
example:

or will it just have to always be shown in collection

wintry solar
#

No you can’t do that

#

It’s possible but it’s more complicated

sonic cedar
#

do you know how

#

or like know where to look even like an example or sorts

open aspen
#

what is mod_mult()

brisk rose
# sonic cedar do you know how
    inject = function(self)
        if not Buffoonery.config.show_spc then
            SMODS.Joker.super.inject(self)
            G.P_CENTER_POOLS.Joker[#G.P_CENTER_POOLS.Joker] = nil
        else
            SMODS.Joker.super.inject(self)
        end
    end```

From buffoonery
#

On the joker object to be clear

sonic cedar
tranquil gull
#

howwould i do the thing that trading card / invisible joker does with my own joker

#

like, the "ok! i'm active"

wintry solar
#

Yeah you could do it that way, it does require a restart though

sonic cedar
#

the very thing i was trying to remove,,

wintry solar
#

You should be able to add a function to your toggle though that iterates over your set of disabled jokers and toggles their no_collection flag

brisk rose
open aspen
#

i have a lovely patch that i am using to give 2x mult at the final scoring step, but idk how to have it actually play the animation

wintry solar
brisk rose
#

Requiring restarts is fine if not preferable for configs imo. I dung trust them without restarting anyway

open aspen
tranquil gull