#⚙・modding-general

1 messages · Page 69 of 1

cunning silo
#

the corner of solid objects that my pinkie can't stop stabbing into

#

muscle cramps in your lower leg at 2am that really hurt but you can't say anything since you don't want to wake up your family

#

taxes

rare shell
#

oh i also need to do some concept art for that other mod idea feder

umbral pilot
#

milk is best when you let it sit

dapper helm
#

oh god so many mods

rare shell
#

still thinkin abt the theme but itll come to me

dapper helm
rare shell
#

milk doesnt have legs you fucking imbecile

lavish jackal
#

Balatro in 2025 will have like +20 pages of Jokers, 6 additional consumable types, 3 new mechanics, 40 new vouchers, 30 new blinds

umbral pilot
#

mine does pepe

rare shell
#

thats terrifying

lavish jackal
#

you lose ante 1 half the time

dapper helm
sleek granite
#

and that's just the base game

cunning silo
#

and now for something completely different

#

wtf have i done

dapper helm
#

woah flashing images

lavish jackal
#

HOMESTUCK ASS ANIMATION

cunning silo
#

i love the smell of epilepsy in the morning

lavish jackal
#

spoiler for flashing images

#

homestuck ass animation

wanton rapids
#

paint roller voucher?

stone brook
#

thank you for the spoiler i hate flashing gifs

#

heart emoji

umbral pilot
#

me too but I clicked on it anyways

dapper helm
lavish jackal
#

homestuck fan response

rare shell
stone brook
#

ouch!

lavish jackal
#

lyman we should infest this server with terezi profile pictures i think

#

me and you and some other people maybe

#

think about it..

dapper helm
lavish jackal
#

that'd be very homestuck

boreal ibex
#

i like homestuck

strong swift
#

i still dont know what it is

dapper helm
strong swift
#

nobody has given a satisfactory response

dapper helm
#

number 1 rule of homestuck is you can't like it

lavish jackal
boreal ibex
#

how will i ever work on ortalab now

wanton rapids
#

ok this looks pretty alright

strong swift
rare shell
#

I miss the old homestuck

lavish jackal
#

but its good

dapper helm
boreal ibex
rare shell
#

Straight from the gold homestuck

#

No gigapause homestuck

lavish jackal
#

god dammit

strong swift
lavish jackal
#

taps the no kanye references sign

rare shell
dapper helm
#

i always think of a parody first then kanye

rare shell
#

You outed yourself

cunning silo
#

i have a moral obligation to make cursed stuff

stone brook
#

i know for a fact that im going to accidentally create an infinite loop somewhere

wanton rapids
#

no sprite for colour theory yet

astral glade
#

i like how specific paint roller is and then “Some”

wanton rapids
#

it's how codex arcanum specifies cauldron

cunning silo
wanton rapids
#

yeah ik i looked

#

but on the localisation

cunning silo
#

welcome to codex: we love ambiguity

astral glade
#

Colour Theory more like Silly Theory

finite thunder
#

LOL Mods can do some funny shit.

stone brook
#

does anyone know if i change a card in G.deck if it affects the G.hand copy

wanton rapids
#

idk maybe

#

also there really are not that many pinks in the balatro palette

wary moth
#

ikr

sleek granite
#

just add your own?

#

the palette isn't set in stone

glad fog
#

can somebody help me, im making a joker like perkeo but with jokers and ive messed some thing up, whenever i hover on a joker or playing card (not tarots planets etc) it crashes

#

ignore the horrible coding, i suck at it

jovial notch
#

by chance if i just wanted my joker to not have an ability i can leav the ability out right?

#

like the ability i want doesnt have a variable so i can just delete this right?

ability = {
  extra = {ease_dollars(8)}  
},
rare shell
cursive compass
#

i need to actually do something in the balatro artstyle to show people that i'm competent with it but i have no ideas or excuse to use it

#

i would make my own mod but i think i would rather not learn lua within my lifetime

jovial notch
#

lymannn

#

nvm

#

i got it :>

silver isle
#

Hey, so I just went through and separated out each of the Joker Sprites from the spritesheet. Would it be useful/okay to post the Zip here?

astral glade
#

maybe make a post in modding

#

but idk how useful itd be

stone brook
#

im gonna cry, context.buying_card is called twice with the exact same parameters when you buy a joker

sleek granite
#

if its consistent

#

set a local variable to true the first time around, then check it the second time around and just set that variable to false

stone brook
#

yea i just did that

sleek granite
stone brook
#

i think its consistent

#

hopefully

#

testing it rn

#

alright looks consistent enough for me

#

i will deal with it in the future

sleek granite
#

how the hell do playing card uiboxes work ugh

stone brook
#

generate_uibox_ability_table returns a table with 2 important parameters: .main and .info. main is a parsed string of the card's main description, and info is a table of parsed strings of tooltips

#

you can just rip it apart from there

boreal ibex
#

goodnight modders of balatro

stone brook
#

good night

#

this is vile

#

but it works as intended!

wanton rapids
#

isn't beaver on sell?

stone brook
#

yea but on sell kinda sucks in balatro

wanton rapids
#

i guess

stone brook
#

diet cola

wanton rapids
#

diet cola is good

stone brook
#

ok bad example

wanton rapids
#

no but i get what you mean

stone brook
#

this way theres incentive to actually level the card too

sleek granite
#

at least on-buy means you can keep editions(/stamps :))))) around

#

(ik this is balamod shhhh)

stone brook
#

oh god speaking of editions i need to figure out a way to transfer editions on buy

#

should holographic overwrite foil?

#

i.e if i had a foil card and i combine a holographic into it should it become holographic

wanton rapids
#

you should do it how sap does it

#

keep the one of the one you drag or whatever

stone brook
#

the way i have it currently is that if you buy one from shop it instantly combines

wanton rapids
#

ah

stone brook
#

probably gonna change that actually

#

but i dont wanna figure out the dragging thing...

wanton rapids
#

yeah ok it looks pretty good

stone brook
#

ok my turn to sleep goodnight chatroom

#

also that looks pretty

cunning silo
#

i just had a really fun idea for a new consumable

sleek granite
#

is it a poker chip

cunning silo
#

hey

#

i should get on that XD

sleek granite
cunning silo
sleek granite
#

:)

cunning silo
#

it's a different kind of consumable

#

but before that, it's time to actually make a proper alchemical API!

dapper helm
cunning silo
#

oddity API jumpscare XD

sleek granite
#

these have been done forever lol

#

autumncircus bugs making me tear my hair out tho

dapper helm
#

the best example mod you've ever seen coming Soon™️

sleek granite
#

theres like four or five more things i need to make for oddity api

wanton rapids
#

oh right rare tags are busted now

#

3 rounds

sleek granite
#

oddities are registered with rarities, but they dont do anything atm (theres no pools or whatever)
oddity packs
i kinda wanna make it so you can make non-consumable oddities with some similar code to how usable jokers work

#

and update my cloned tarot api functions to how current tarot api works with regards to at least debug messages and stuff

#

oh yeah and figure out some way to hook into Shop Code to let oddities be in the shop

wanton rapids
#

silver btw

sleek granite
#

tag sliver

shy pivot
#

oddities looking great

#

and now that there's more consumable ui space...

sleek granite
#

is there?

#

nobody told me

lavish jackal
#

hi chat

#

we are back on the balatrostuck grind

shy pivot
#

the new space reverie casually cooked up

sleek granite
#

i cant use that space

cunning silo
solemn solar
#

How do you guys deal with the graphic on new cards? Do you make a new png and set center data or adjust the original?

wanton rapids
#

hm, i need effects for brown, grey, green, and peach

iron onyx
#

would be so nice if this game had a quick restart option

sleek granite
#

hold r

#

my brain: need good programming music
me: ok like what
my brain:
my brain: need good programming music

sleek granite
#

are they all homestuck

lavish jackal
wanton rapids
#

actually moving double to grey and making silver polychrome

#

brown can be standard tag??

#

and 2 rounds because that's weak

small thistle
#

Does anyone have templates for joker cards?

grand geode
small thistle
#

I tried aseprite once i gues

#

In gamemaker 3

#

Might try aseprote yet again, thanks

sleek granite
#

mousing over an oddity pack crashes the game aaaaa

lavish jackal
#

low effort, just took a photo and vaguely quantized and dithered it

#

homestuck reference

sleek granite
#

im literally doing everything codex does

#

ugh

#

i hate having to work without an api

grand geode
sleek granite
#

everything's nil for no fucking reason!!! :DDDDD

#

i dont understand how literally any of this code works!!! :DDDDD

#

rapidly this is becoming less of a Fun Brainteasing Puzzle and quickly devolving into I Am The Stupidest Person To Ever Walk The Earth, Why Does This Code Fail Only When I Use It

iron onyx
#

@sleek granite that's how i felt doing EnhanceAPI

#

and how i'm currently feeling re-coding the straight detection of X Cards

#

but it's all good

#

because i'm figuring out a more efficient way to do it

fickle elbow
#

there is few problem with api

sleek granite
#

oddityapi cancelled im just going to bed before i forget how to breathe or whatever the fuck will come next

cunning silo
#

AAAAAA I THINK I MADE SOMETHING FUN

fickle elbow
#

what

iron onyx
fickle elbow
#

cools

cunning silo
iron onyx
#

assuming steamo doesn't harvest my code and add enhanceAPI to steamodded before i get around to it (which they have my full permission to do!)

grand geode
#

isn't steamo like super busy recently

fickle elbow
#

what is steamo's role in balatro?

lavish jackal
#

they're the creator of steamodded

fickle elbow
#

oh cool

lavish jackal
#

also nearly filled page 2 of jonklers

#

The first of the two dual presidents of United States

#

Homestuck is wild

cunning silo
#

I think it was @wanton rapids. How did you make an automatically winning card?

wanton rapids
#

i didnt?

cunning silo
#

you didn't?

#

interesting

fickle elbow
#

i did

cunning silo
#

how did you do it?

fickle elbow
cunning silo
#

interesting

#

I HAVE MADE SOMETHING SO GOOD HOLY SHIT

lavish jackal
#

what did you cook

fickle elbow
#

what is it?

wanton rapids
#

isn't this just those chess consumables

kindred swallow
#

That is certainly not what I had in mind but that's like ten times cooler

cunning silo
wary moth
#

yes

cunning silo
#

oh

#

):

wary moth
#

dw they didnt make one for a pair so yours isnt an exact copy of one

kindred swallow
#

Does it play your most played hand?

cunning silo
kindred swallow
#

oh balls

#

insane

lavish jackal
#

is that part of alchemicals

cunning silo
wary moth
fickle elbow
#

no the badge said pick a card

cunning silo
#

Pick A Card is the name of my testing mod

fickle elbow
#

btw how many projects you gonna start at once

cunning silo
#

I currently have 4/5

fickle elbow
#

is this a common thing?

cunning silo
#

yes

lavish jackal
#

itay can i maybe pick your brain at some point about Aspect logic stuff

#

i am trying to make it make sense

#

the more i try the more it becomes apparent i need to make my own API

cunning silo
#

I have:

Fusion Jokers (just released)
Codex Arcanum (working on 1.1, nearly finished)
Math Mod (Concepting/funny)
Secret mod
Composite Hands (Concepting)

lavish jackal
#

like, Aspects are weird because they run in their own loop so to speak

wary moth
#

actually i just got an idea ill go post that in your thread

lavish jackal
#

Their effects can insert into really dumb stuff like, Mind inserts into the G.FUNCS for drawing cards to deck

fickle elbow
#

i have:

#

ink and color suits

#

and snows mods(wip)

lavish jackal
#

I have

Balatrostuck

iron onyx
#

i have...

lavish jackal
#

The issue is becoming that using consumables doesn't actually trigger an effect, the only thing Aspects gain from consumables is level up and changing current aspect

iron onyx
#
  • jokerfusions
  • the sin color mod
  • numbalatro
  • enhanceAPI
  • x card (coming soon[tm])
lavish jackal
#

The actual Aspect logic runs in the game's core loop

wanton rapids
#

i have:
morefluff
sixtysuits (augh)

lavish jackal
#

There are some Aspects like Light and Heart which can run their effects in calculate_joker

#

But then there's also Aspects like Void and Doom which need more than calculate joker can offer

cunning silo
#

and you wonder how you will turn that into an API?

lavish jackal
#

Yeah

#

How do you create a suckless way to actually do this

grand geode
#

why is everyone making their own apis these days

fickle elbow
#

no clue

cunning silo
lavish jackal
#

I guess my main issue is, I'm unsure at which point I should insert code for this

#

I've split it into 3 groups

fickle elbow
#

same lol

lavish jackal
#

Group A is stat changes, easiest of the bunch

cunning silo
#

that's a good idea

rare shell
#

Joker that is basically Isaac's "NO!" trinket?

lavish jackal
#

Group B is joker-like calculations, harder but it just makes you use the calculate_joker in similar way as Observatory does

fickle elbow
#

mine is much more broad

lavish jackal
#

group C is the worst one, it's persistent mechanics changes

#

things like Mind, Doom

#

Serpent mechanics, pulling probability from a different joker's calculation and like

#

using that to determine if you spawn a negative fool

#

it's a lot of bs

fickle elbow
#

i got A:subatomic cards, B: Particle cards C:Other

lavish jackal
#

A and B I've solved pretty easily, a lot of the effects can just live in consumable slot

#

And in calculate_joker

#

it's the C category that really bites me in the ass

cunning silo
#

also, you don't have to expose an API

lavish jackal
#

and for that I need to at least know where to insert myself

fickle elbow
#

A should be easiest for me, B is the little problem for me

lavish jackal
#

because there's no clear point for inserting that logic

#

specifically Doom is tricky because it relies on knowing 2 values

cunning silo
#

if there is no logical common point to insert logic, i don't think exposing an API would be best

lavish jackal
#

yeah

#

i'm thinking to just, hardcode it with aliasing and hope for the best

#

but like, the problem remains - where

fickle elbow
lavish jackal
#

Doom needs to have a point of access where it's able to poll 2 pieces of information

#

a) the denominator of a probability roll

#

b) the success of the probability roll

grand geode
#

at least, extremely difficult

cunning silo
lavish jackal
#

yeah, that much i know

#

the harder part is actually combining the 3 pieces of information

cunning silo
#

you can sit at pseudorandom, and just make it an impossibly high number

fickle elbow
cunning silo
#

there you have the 2 pieces

lavish jackal
#

yeah problem is that the denominator is fluid

#

it's the denominator of the joker/card/tarot that rolls

fickle elbow
#

make it a variable

lavish jackal
#

you don't get it do you

#

it's not a variable

#

it's a piece of existing game data

#

that I want to poll

fickle elbow
#

then its already a variable

wary moth
#

i made a list but it was too long so i put it in a zip file

lavish jackal
#

yeah, but that means that it's harder because

lavish jackal
#

i'm not defining that

#

i'm just trying to grab it from one point

wary moth
lavish jackal
#

and that's why I'm asking itay because like

grand geode
#

why a zip 😭

lavish jackal
#

I'm trying to figure out how to actually do that

wary moth
lavish jackal
#

how to like, find the event of rolling probability

#

and hook into it

grand geode
#

i'd rather have that than having to download a zip

lavish jackal
#

grab the other_card's (joker/tarot/playing) probability roll with denominator

#

because at that point it's actually easy

#

it's just

fickle elbow
#

wouldn't oops all 6s do that to doble it

lavish jackal
#

no???

fickle elbow
#

and if not theres some other joker mods that does the opposite

#

both kinds of opposite

lavish jackal
#
if other_card.roll_success == false and other_card.odds < self.level then
spawn_negative_fool() -- shorthand for spawning negative fool
end
#

like this is the final line

#

but for it to work

#

it needs to

#

a) hook into any ongoing probability roll

#

b) be able to get the denominator of the probability roll as well as the success of it

#

c) refer to its own level

#

these are the actual like, problems at hand

#

so now i'm trying to see if there's any common threading I can use to say, actually pull that off

#

the easiest way to get the ball rolling would be to hardcode all probability-based abilities, but then you run into a problem

#

a) everything I've made also has to be on there

#

b) compat issues

fickle elbow
#

i feel like what you want is still similar to whoo all 1s, in ortalab

lavish jackal
#

no

#

this has nothing to do with the probability value

#

and everything to do with the other value

#

the value that you divide the probability value by

fickle elbow
#

yea, i saw a joker that does the opposite let me find it

lavish jackal
#

this value

#

this value here

#

this is what i'm interersted in

#

not probability

#

the actual number you divide by

#

that's what scales up and is basis for comparison

#

this is what i want not G.game.probabilities

#

I don't want G.game.probabilities

fickle elbow
#

yea, i remember seeing a joker in my list that decreases that

lavish jackal
#

its not

#

a joker

#

it won't help

#

because i'm not looking for a joker code

#

this is a persistent ability

#

that hooks into the actual rolls

#

not a joker that exists in the cardarea

#

i don't have access to joker api because again, it's not a joker

#

and the issue i'm having is with figuring out how to actually get these values without like, hardcoding a list of all jokers, tarots and such that rely on probability

#

because that breaks compat big time

#

would hardcoding an array of ability names work? yeah it would
would it be a particularily useful or good solution? hell no

iron onyx
#

yeah, an API is probably what you want

lavish jackal
#

yeah but then the problem becomes that if I make an API that API will like, still not solve the core problem

#

the core problem here is when you stack mods together and they don't work the way you'd expect

#

say someone has a probability-based joker in their mod

#

and they want to play Balatrostuck and their mod together

iron onyx
#

yeah, like

#

that would probably require a complete recode of how probabilities work

lavish jackal
#

not really i don't think

iron onyx
#

tbh, it would probably be easier if we could like

fickle elbow
iron onyx
#

program the game to process fractional probability

lavish jackal
#

its primarily about identifying the pool of cards that rely on probability rolls

iron onyx
#

but okay, here's my thought

#

all probability effects in the games are based on an "odds" value

lavish jackal
#

correct

iron onyx
#

and that variable has always been a whole number

lavish jackal
#

and that's the number i want

iron onyx
#

but what if, you could set the odds to 2.5

#

and the game knew to turn that

#

to 2 in 5

lavish jackal
#

that's not the problem here

#

the problem is getting that 5 in 2 in 5

#

consistently

#

across multiple sets

glad fog
#

is there a way to guaranty jokers or spawn jokers in, im trying to test a custom one rn

wary moth
#

debug mode

iron onyx
#

uhhhhhhh

#

@lavish jackal this might be of use to you

  for k, v in pairs(G.GAME.probabilities) do 
   G.GAME.probabilities[k] = v*2
  end
end```
lavish jackal
#

no???

#

again no??
no???

glad fog
lavish jackal
#

if I have n in m probability

#

I want the m

#

not the n

wary moth
iron onyx
#

OH

lavish jackal
#

again, the easiest way to accomplish a solution to my problem would be to make a massive list of all the ability names that deal with probability, and that way I'd be able to isolate them

iron onyx
#

that's usually noted in the "odds" variable

lavish jackal
#

yeah i know that

#

but there are exceptions to that

#

so I'm trying to figure out a way to get that value

fickle elbow
#

it's almost 1 am for me, im gonna go to bed

#

i wish you good luck

glad fog
wary moth
#

yes

lavish jackal
#

the issue with getting that value is that say, for example

#

wheel of fortune just uses extra

iron onyx
#

...i guess you could look in the localized version of the description chat.

#

search through lines for the regex formula %d+ in %d+

lavish jackal
#

could do so yeah

#

that would be more viable

#

but then you run into another problem of

glad fog
lavish jackal
#

what if another mod creator idk, forgets that %d+ in %d+

#

in their loc

iron onyx
#

tbh, you'll drive yourself mad striving for 100% mod compatibility

lavish jackal
#

true

grand geode
#

their fault tbh

iron onyx
#

trust me

#

i speak from experience

grand geode
#

you either pull from the card object or the desc

iron onyx
#

<- is the idiot that coded EnhanceAPI

lavish jackal
#

i guess the desc would be the safest bet then

#

if someone doesn't include the x in y line then it's their fault why Balatrostuck Doom doesn't work with their stuff

#

that just leaves 2 Aspects then

#

The problem with these 2 is that they rely on context.scoring_hand and context.discard respectively

grand geode
#

you can put them in calculate_joker then?

lavish jackal
#

those are Joker contexts

#

but issue is that, there is no joker

#

it's a persistent ability

grand geode
#

or wherever the call for it is

lavish jackal
#

calculate_joker would technically work but then the problem is that

#

or hm

#

maybe you do?

#

it's weird

#

technically speaking I could try to pull an Observatory

fickle elbow
#

isn't the v the denominator?

iron onyx
#

no

#

that is the numerator

lavish jackal
#

this line specifically

iron onyx
#

honestly, you'd probably have to do a multi-pronged effort

#

to ensure maximum mod compatibility

#

looking in every place that an odds value normally is, AND the loc_def

lavish jackal
#

i suppose that in this context, the "jokers" would be the actual played cards for Breath/Blood

grand geode
#

don't all consumables get a calculate_joker call

lavish jackal
#

unsure, this isn't like, a normal consumable though

grand geode
#
for i=1, #G.jokers.cards + #G.consumeables.cards do
  local _card = G.jokers.cards[i] or G.consumeables.cards[i - #G.jokers.cards]
  --calculate the joker edition effects
  local edition_effects = eval_card(_card, {cardarea = G.jokers, full_hand = G.play.cards, scoring_hand = scoring_hand, scoring_name = text, poker_hands = poker_hands, edition = true})
#

i think

wary moth
#

i need help

wanton rapids
lavish jackal
#

this is more like

#

like, aspects are more like a game variable

#

rather than like, a consumable proper

#

using a consumable just

#

bumps up a number

#

and swaps current aspect in use

#

using the consumable is just the first step

grand geode
#

what is joker_main and why is it always joker_main

wanton rapids
#

joker_main is the one for stuff like +4 mult, x1.5 mult, +100 chips

wary moth
grand geode
#

disgust

fallow bramble
#

Gm chat 👋

wary moth
#

hi

wary moth
rare shell
#

does "discovered" value on cards work properly in steamodded?

#

I mean if I'll set the discovered to false, would it reset every time the joker registers again (when relaunching the game for example)?

grand geode
#

i think it does now

rare shell
#

how do I get rid of the description when it is not discovered?

lavish jackal
#

I believe there is a var for that?

rare shell
#

hide_desc?

#

trying it rn

#

hmmm I can't check if the card is discovered for some reason

#

I can apply hide_desc and it works fine, but I don't know how to apply it to undiscovered cards specifically

#

also it doesn't remove the title

#

bingo

cunning silo
#

i am not sure if I want to work on Composite Hands rn

sleek granite
#

welcome to my world

cunning silo
#

you know what would be fun to do?

#

a mod jam

rare shell
#

oh yeah

sleek granite
#

itay i already do that every time i write myself into a corner with the stupid big mod projects of mine

#

procrastinating oddityapi by making homestuck suits and jokerstamps and

cunning silo
#

joker stamps is really fun

sleek granite
#

boosters are going to kill me

#

thanks

#

one or more of us should really use twitter more so there can be a spotlight on mods that arent Balatro Solitaire Texture Pack

rare shell
#

why is the background suddenly brighter

#

ah no that's okay

sleek granite
#

yeah thats how that works

#

i couldnt tell you why thats how that works, but it do be like that

rare shell
#

it just weird

#

locked also should have different background color smh

sleek granite
rare shell
#

are the unlock effects planned for steamodded?

#

I think I've seen someone mention that

#

?

#

is it dying?

#

what is happening

grand geode
#

mood

#

which will come out first, steamodded 1.0 or balamod 1.0

rare shell
#

2 weeks ago isn't that long ago tbh

grand geode
#

(definitely the latter

grand geode
#

dev branch

rare shell
#

even better

cunning silo
#

?????

#

XD

#

probably the right way

#

oh it's all good XD

grand geode
#

mystjokers update coming never since im too lazy to art

cunning silo
#

how so?

#

i would argue it's very much alive

rare shell
#

autumn why are you trying to kill this chat 😭

fallow bramble
rare shell
#

sorry I didn't mean to be :(

#

I just started a completely new save file for testing purposes and this is the very first booster pack I open...

#

balatro are you kidding me???

finite thunder
#

I got the mod where you can choose your shops first joker.... I chose cavendish... yup you can totally get it.

#

(free because of skipping small blind for poly chrome joker on beta branch)

lusty lily
#

rainbow banana...

finite thunder
#

You can also get legendaries in your first shop as well, they cost 20 though.

#

so you HAVE to skip for coupon or an editioned joker to get it.

rare shell
#

ooof the cards that aren't in the collection shoudn't do that

#

(although I wish jokers did that, tboi style)

sleek granite
#

should override the name but not the desc in that case

rare shell
#

yeah but how do I check the location

#

self.area.config.collection?

#

yep

sleek granite
#

my grand plan for making mods is wait for everyone else to figure out how to do cool shit and then copy them

rare shell
#

imagine all the mods we'll have in like, year from now

#

4d balatro first person shooter,,

sleek granite
#

5d poker with time travel

fallow bramble
#

Balatro but every Joker you get hunts you in real life

sleek granite
#

whats different?

#

have they not gotten to you guys yet?

fallow bramble
#

When" Ride The Bus" rides into your house

rare shell
#

I'm a Joker and i'm here specifically for hunting you in discord (you can't escape)

fallow bramble
#

Nice sell button you got there

rare shell
#

NOOOOO

#

jokes on you... my effect is "When sold, run is over"!

#

I love modding

grand geode
sleek granite
#

i dont i hate modding stupid modding ruining my weekend

rare shell
#

I also realized I'm making an update without writing down any changelog

sleek granite
#

i dont think ive seen a proper changelog out of literally anyone here

rare shell
#

I'll 100% miss two or three things I added/changed

grand geode
sleek granite
#

definitely not me

grand geode
lavish jackal
#

i love vague early homestuck references

grand geode
#

i put a lot of care into them......

sleek granite
fallow bramble
#

Gotta love having a clean README 😊

sleek granite
#

myst unironically i dont think ive used a single mod of yours other than houserules 0.0.0.1

#

so no

grand geode
#

crying

#

weeping

#

sobbing

gilded vortex
#

I made a third, easy Joker, Hamster. The visual/sound needs some fixing but it works. (Although I need to debug the Blueprint interaction.)

fallow bramble
#

Oog

gilded vortex
sleek granite
#

hampter

grand geode
#

hampter

fallow bramble
#

hampter

gilded vortex
#

It's hard to evaluate balance when I have two of them, which I believe is because the debug doesn't remove the Joker from the pool

sleek granite
#

i was wondering what causes that

#

no idea how to fix it lmao

gilded vortex
#

Dog does seem like an above average scaler if you can get it going.

#

I didn't have Hamster synergy beyond two Hamsters, but it also seems like it has a lot of potential

lavish jackal
grand geode
#

hamster is already worth it normally

#

three rerolls cost 5+6+7=18

lavish jackal
#

im gonna make something really low effort brb

gilded vortex
#

Or $15

#

But then it's only a $5 profit instead of $12

grand geode
#

reroll vouchers make them super worth it

#

and d6 tag

gilded vortex
gilded vortex
grand geode
#

rerolls are worth more than the eco

gilded vortex
#

Anyways, as I said, I do think Hamster is strong, it's just hard to gauge when the only synergy I had for it was impossible to obtain in a normal game

sleek granite
#

ankh:

west magnet
#

Are there any mods that auto-sort the joker order?

gilded vortex
#

Like, alphabetically?

west magnet
#

Optimal order

grand geode
#

6 rerolls from $0 nets you $25

#

and you get the money earlier

gilded vortex
#

Later because you skip one shop

grand geode
#

earlier than investment i meant

gilded vortex
#

If you don't skip, you get half of the $ one blind earlier

#

Anyways, I do think the feeling of buying selling in Balatro is slightly less fun than in SAP

#

IIRC, you could just click and drag twice, but in Balatro it takes four clicks

west magnet
#

speaking of SAP, imagine if you could freeze items in the shop until next time

lavish jackal
#

feel free to use it

#

i hate it

strange frigate
#

mod still crashes on startup :/, can anyone check if im missing something? like a comma or closed bracket

sleek granite
#

thats my favorite tinkers construct material

lavish jackal
#

@sleek granite can i get the joker stamp for a sec

#

doing something stupid

sleek granite
#

no

lavish jackal
#

cryting

sleek granite
#

theyre literally publically released lmao

gilded vortex
lean dune
sleek granite
#

joker yaoi...

lavish jackal
#

it is done

gilded vortex
#

old man yaoi…

lean dune
gilded vortex
#

Like this

if context.reroll_shop and self.ability.name == 'Hamster' then
            if self.ability.extra.rolls == 1 then
                 if not context.blueprint then
                    self.ability.extra.rolls = 3
                end
                ease_dollars(self.ability.extra.dollars, true)
            else
                if not context.blueprint then
                    self.ability.extra.rolls = self.ability.extra.rolls - 1
                end
            end
        end
sleek granite
#

hhhhh why is it so hard to detect if a card is in the collection or not programming

cunning silo
sleek granite
#

mc mod

cunning silo
#

yeah ik

#

but what material?

sleek granite
#

oh there's an addon that literally adds that cover art

#

as a tcon material

#

i have no idea why

lavish jackal
#

weezerium

#

please free me of the burden and use the weezer art

#

just idk, make a Weezer Joker or sth

#

jeezer

#

woker

cunning silo
#

defo not that

gilded vortex
pale anvil
#

for my seal look good?

gilded vortex
pale anvil
#

oops 6 or the effevt?

rapid epoch
#

i love balatro mods but juggling the different versions in un-version-named folders on steamodded is giving me anxiety

#

steamodded management... some day

sleek granite
#

you can name the folders whatever you want

grand geode
#

do i start versioning my mods...

sleek granite
#

i've already peaked at versioning

#

i've already peaked at versioning

grand geode
carmine mortar
lean dune
carmine mortar
sleek granite
#

i love trying to use enhanceapi

grand geode
#

i'm sorry for your loss

sleek granite
#

why can i literally not code anything now

#

fell off hard

gilded vortex
pale anvil
pale anvil
lean dune
#

||babalatro||

gilded vortex
gilded vortex
lavish jackal
rapid epoch
#

basically, chance based effects always proc but with some twist, possibly a horrible drawback

pale anvil
#

i made a negative one as well

#

that halves prob for glass cards

sleek granite
#

alright so im pretty sure enhanceapi just doesnt work

#

awesome

#

so much for making enhancements i guess

pale anvil
sleek granite
#

just gonna post this in the off chance i did something moronic

iron onyx
sleek granite
iron onyx
#

...

#

the table is where you define the variables

#

i'll show you testcard rq

cunning silo
sleek granite
#

yes

#

i defined the variables

iron onyx
#

slug is where you put the key

sleek granite
#

fine give me a second to find it in recycle bin

iron onyx
cunning silo
sleek granite
iron onyx
#

no, like... you're kind of doing it backwards

sleek granite
#

ok so it doesnt work then

iron onyx
#

the table needs the variables that define your enhancement

sleek granite
#

THE TABLE GETS THEM

iron onyx
#

oh

sleek granite
iron onyx
#

OH

#

i see the problem

#

you're using {}

#

not ()

#

had to look at that closely

sleek granite
#

that's valid lua syntax for literally every other function

#

it passes that table as argument 1

#

i'll try it

lavish jackal
#

i had an idea

iron onyx
#

all i'll say

sleek granite
#

but if this works that's even more confusing

lavish jackal
#

what if a Weezer balatro mod

sleek granite
#

nope

iron onyx
#

i tried hooking into localize

sleek granite
#

whatever straight in the trash this idea goes

lavish jackal
#

it adds 1 new joker (Weezer) 1 new deck (Weezer deck) 1 new Tarot (Weezer) 1 new blind (The Weezer) 1 new tag (Weezer tag)

iron onyx
#

literally just said "hey, if you could maybe print your args and then do whatever you were gonna do that'd be great"

sleek granite
#

this is nothing new

#

i am incapable of coding anything anymore

#

cant do packs cant do enhancements

#

literally peaked already

iron onyx
#

it's not just a you thing

sleek granite
#

whatever im done

lavish jackal
#

weezer blind

wanton rapids
#

you've lost

grand geode
lavish jackal
wary moth
#

autumn left the server

grand geode
#

wait did it really

#

god.

wary moth
#

yeah their name turned white so i checked and yeah 0 mutual servers

strange frigate
wanton rapids
#

might make Peach "create a soul card for every 9 rounds you've held this" or smth

grand geode
#

missing an end at the calculate func

lavish jackal
#

Myst what do you think of Weezer blnd

wary moth
#

i think it looks good

grand geode
lavish jackal
#

it's

wary moth
#

its also loss
but

lavish jackal
#

myst you should make the weezer mode

#

*mod

grand geode
#

no

#

i literally don't know who weezer is

wary moth
#

can i suggest an effect for weezer blind

grand geode
#

whenever you play a card, play buddy holly

wanton rapids
#

you must play four of a kind

lavish jackal
#

it adds:

  • 1 new Joker (Weezer)
  • 1 new Blind (The Weezer (Can only play 4 cards)
  • 1 new Tarot (Weezer)
  • 1 new Seal (Weezer Seal)
  • 1 new Enhancement (Weezer Card)
wary moth
cunning silo
#

too much weezer

lavish jackal
#

itay did you see the weezer joker

cunning silo
#

no

lavish jackal
#

weezer joker

cunning silo
#

ohhhhh i understand now

grand geode
wary moth
#

what game

lavish jackal
#

I think the Weezer joker should gain X0.5 Mult for every 4oaks Jacks played

wary moth
#

x0.4 because four

lavish jackal
#

so true

#

also hm

#

what does the Weezer seal do

#

and the Weezer enhancement

wanton rapids
#

the blue card even

wary moth
wary moth
#

i am so helpful

iron onyx
#

now i feel kinda responsible 😞

#

even if it isn't my fault that lua is counterintuitive sometimes

gilded vortex
#

I've also been trying to understand it, but just because I want to make a square red instead of blue

pale anvil
#

i posted the seals

lavish jackal
grand geode
#

but seeing it left just. sucks

wanton rapids
#

is this too strong?

gilded vortex
wanton rapids
#

it's a consumeable

gilded vortex
#

what kind

wanton rapids
#

colour, the kind i'm working on now

#

packs add them to your consumeable area, and they scale based on how long you've been holding them

#

for example, if you wait 6 rounds before using this, you get 3 cards destroyed and $12

gilded vortex
#

Depending on price and availability it sounds fine. Weaker than Hanged Man since you can't control it and it takes longer to power up, but has a higher ceiling.

#

I want to say it's a bit weak

wanton rapids
#

that's fair enough

gilded vortex
#

Since the base game doesn't care much about holding consumables, it's more a question about how much does it cost to get one, versus how good it is compared to the other options, and how often you can change colors

wanton rapids
#

you can change colours whenever, they're just consumeables

#

the pack costs $4

gilded vortex
#

But you can't buy them whenever

grand geode
#

colors when i show them my The Monster:

wanton rapids
#

hm

gilded vortex
#

Spectral packs are rarer than Tarot packs

wanton rapids
#

might make it lower money gain and only 1 round

gilded vortex
#

So you aren't going to be changing colors every round

gilded vortex
wanton rapids
#

update's not out yet, check out codex arcanum though

gilded vortex
#

But is the code to create a new consumable type there?

wanton rapids
#

yeah

#

they have alchemical cards

gilded vortex
#

Oh that mod

#

Good idea

lavish jackal
#

autumn is upset because it doesnt think that it has anything to offer to the community

cunning silo
#

hiiii

lavish jackal
#

thats why it left

cunning silo
#

they left the server ):

lavish jackal
#

yeah

wary moth
#

yeah

lavish jackal
#

just in a bad spot mentally right now, i think

wary moth
#

it happens

lavish jackal
#

not just that

#

also burnout

iron onyx
#

yeah like

grand geode
#

oh burnout too ya

iron onyx
#

i literally made an entire "fake localization" function

#

just to get around issues i had with localize as a function

lavish jackal
#

i dont thnk this is about that

#

that issue was just a catalyst for something that was building up

iron onyx
#

i know, i'm just saying that i can understand how it feels to get frustrated because you have no idea what's going wrong

lavish jackal
#

if i were you guys I'd maybe try to reassure them or something idk, maybe give it time too though like

grand geode
#

thing is

lavish jackal
#

autumn is cool i thnk

grand geode
#

no shared servers

lavish jackal
#

just send a friend req

iron onyx
#

yeah, none for me either

#

i'm gonna give it time before i reach out

grand geode
#

at all

iron onyx
#

especially because it's ass o clock for me

grand geode
#

yeah uhm i'd just give it a few days

iron onyx
#

i'm at least giving it a few hours bc going to bed soon :p

lavish jackal
gilded vortex
wary moth
#

yeah waiting is probably the best thing to do rn

lavish jackal
#

yeah

iron onyx
#

if anyone does, they can feel free to pass on a "sorry" from me

lavish jackal
#

just worried about it is all

iron onyx
#

i may not be responsible, but... i still feel bad

#

hence "sorry" and not "apologies"

strange frigate
wanton rapids
#

what's the crash?

strange frigate
wanton rapids
#

you're missing a localisation for your joker

strange frigate
#

huh

#

how would i do that

wanton rapids
#

can you send your code?

strange frigate
#

dms?

wanton rapids
#

uh

#

sure i guess

strange frigate
#

alr

wanton rapids
#

oh, the issue is you don't have a loc_def defined

strange frigate
#

huh

neat crater
#

hey does anyone know how to make a joker flip the cards in your hand?

strange frigate
#

how do i define that

gilded vortex
#

I'd look at how the Boss Blinds do it

neat crater
gilded vortex
strange frigate
#

where would that go?

gilded vortex
#

inside init

neat crater
gilded vortex
#

I guess it still needs to apply at some time

strange frigate
tranquil roost
#

I should reaaallly be taking a break from my homework

#

However

lusty lily
strange frigate
#

uhh

#

i have no idea ._.

gilded vortex
strange frigate
gilded vortex
#

Like this:

local localization = {
    fourleafclubber = {
        name = "Four Leaf Clubber",
        text = {
            "Lucky Clubs trigger again",
        }
    },
}

function SMODS.INIT.FourLeafClubber()
    local jokers = {
        {
            name = "Four Leaf Clubber", slug = "fourleafclubber",
            config = {extra=1}, rarity = 1, cost = 0, 
            blueprint_compat = true, 
            eternal_compat = true
        },
    }

    -- Add Jokers to center
    for _, v in ipairs(jokers) do
        SMODS.Joker:new(v.name, v.slug, v.config, {x = 0, y = 0}, localization[v.slug], v.rarity, v.cost, true, true, v.blueprint_compat, v.eternal_compat, "", "j_"..v.slug):register()
        SMODS.Sprite:new('j_'..v.slug, SMODS.findModByID("FourLeafClubber").path, "j_"..v.slug..".png", 71, 95, "asset_atli"):register()
    end

    -- Lucky Seven
    SMODS.Jokers.j_fourleafclubber.calculate = function(self, context)
        if context.repetition then
            if context.cardarea == G.play then
                if self.ability.name == 'Four Leaf Clubber' and context.other_card:is_suit("Clubs") and context.other_card.ability.name == "Lucky Card" then
                    return {
                        message = localize('k_again_ex'),
                        repetitions = self.ability.extra,
                        card = self
                    }
                end
            end
        end
    end
    
    sendDebugMessage("Loaded FourLeafClubber~")
end```
tranquil roost
#

I can't read any of this dang

neat crater
#

ok now i need to figure out how to get the 'Card:flip()' to activate for every card

grand geode
neat crater
#

kk

gilded vortex
wanton rapids
#
for i = 1,#G.hand.cards do
  G.hand.cards[i]:flip()
end
#

?

grand geode
#

not for long, mystjokers is getting a rewrite

cunning silo
#

wahoo

gilded vortex
grand geode
#

i'm just not releasing it yet because i hate art grr

wanton rapids
#

hm. what should green do

gilded vortex
#

It makes discards green

fallow bramble
wanton rapids
#

hm

#

could go for d6 tags

fallow bramble
#

The colour is fitting so yea

strange frigate
# gilded vortex I'm not sure about `pcall` since I don't use it. I'd just define `calculate` and...
local success, error_message = pcall(function()
            local j_omni6 = SMODS.Joker:new('Omni6', 'omni6', {
                ability_name = 'Omni6',
                ability = {
                    extra = {
                        penalty = 0,
                    },
                },
                config = {mult=10}, 
                spritePos = {x=0,y=0},
                loc_txt = {
                    name = 'Omni6',
                    text = {
                        '{C:red}+#1#{} Mult'
                    },
                },
                rarity = 2,
                cost = 6,
                unlocked = true,
                discovered = true,
                blueprint_compat = true,
                eternal_compat = true,
                atlas = "j_omni6.png",
                mod_id = 'BoolMod',
                
                calculate = function(self,context)
                    if next(context.poker_hands["Straight"]) then
                        local has_a_six = false -- we declare a variable, starting as false
                        for k, v in ipairs(context.full_hand) do -- for every card in your full hand
                            if v:get_id() == 6 then -- check if the current card we're looking at is a 6
                              has_a_six = true
                            end
                        end
                        if not has_a_six then
                            return nil
                        end
                        ease_dollars(5)
                        return {
                          message = localize('$')..self.ability.extra.penalty,
                          colour = G.C.MONEY,
                          delay = 0.45,
                          card = self
                        }
                    end
                    SMODS.Jokers.j_omni6.loc_def = function(self)
                        return {}
                    end
                end
            })
``` so like this?
grand geode
#

why is everything in the {} actually

#

that's not how you declare a joker with SMODS.Joker:new

gilded vortex
gilded vortex
strange frigate
gilded vortex
# strange frigate where?

You define calculate then loc_def but there's no comma between them. Also, as suggested, I think the whole structure should be different

strange frigate
#

alr

#

is that the entire code btw

gilded vortex
strange frigate
#

oh ok

#

so i should just replace that example with my code and it should work

gilded vortex
strange frigate
#

alr

lean dune
gilded vortex
# strange frigate alr
SMODS.Jokers.j_YOURSLUGHERE.calculate = function(self, context)
 ---YOUR DEFINITION HERE
end```
lean dune
#

using self is technically misleading

gilded vortex
lean dune
#

the first argument is not the table the method is defined on, i.e. not SMODS.Jokers.j_YOURSLUG

#

instead, it's a Card object

#

sure you can use self to match the code in the original calculate_joker exactly, just keep in mind it's misleading

gilded vortex
#

Ah, I see

fallow bramble
#

Interesting, I'll change my code to reflect that

#

(also hi Aure)

grand geode
#

using self is still easier to copy the code from calculate_joker over

lean dune
cunning silo
#

Aure!

#

wanna see something cool?

lean dune
#

yea

cunning silo
#

how would you flavor this type of card?

lean dune
gilded vortex
cunning silo
#

kinda

#

the way its implemented is so funny actually

grand geode
#

coming soon to a mystjokers near you, a billion separate lua files

gilded vortex
lean dune
#

I can think of cheesy ways to implement this that wouldn't account for hands included in the played hand, since technically there are no cards

grand geode
lean dune
#

say there would be a card that plays 3oak, it's important to keep in mind pair jokers should also trigger

cunning silo
#

it only count sas a 3oak if i do a 3aoak

lean dune
#

i feel like that's counterintuitive

gilded vortex
#

I see it more as overwriting the hand type from High Card to a specific one, but since it’s empty it doesn’t contain any hand except High Card

lean dune
#

a 3oak should contain a pair just as much as it contains a 3oak

gilded vortex
#

Well, if you overwrite it doesn’t even contain high card

lean dune
gilded vortex
#

I do agree a new hand for the Empty Hand would make sense

#

But without such a definition it ought to be High Card

lean dune
#

I'm just saying 3oak inherently contains a pair if it's meant to contain a 3oak

gilded vortex
#

I think High Card’s definition should just be “is a set of cards”, which includes the empty set

lean dune
#

i mean in text, the definition of high card is literally "none of the above"

#

so in a way, it does contain the empty set, because that doesn't make any hand that isn't high card

gilded vortex
lean dune
gilded vortex
lean dune
#

(don't get me started on the set containing all sets that don't contain themselves)

gilded vortex
#

I guess if we look at the power set of the hand, then each set of a single card is High Card, so they do contain High Card

#

{Abalatroheart} is contained in {Abalatroheart, Abalatrodiamond} so it does contain High Card

gilded vortex
lean dune
#

it's fine to say that a hand played via this mechanic doesn't contain a hand type because no hands were played, I'm just saying it's inconsistent to say a 3oak played this way contains no pair but does contain 3oak

gilded vortex
lean dune
#

I don't mind either way, but either one such 3oak triggers both jokers that target pairs and 3oak, or neither

gilded vortex
#

The way I see it working is that you’re not redefining what hand it is, you’re redefining what hand you perceive it as, hence when you ask “give me the power set of this hand” you only see the empty set

#

Hence no pairs

lean dune
#

except that isn't how the game calculates hands

#

it takes the cards and asks each hand type if it's fulfilled, then uses that data to determine if a hand is contained

gilded vortex
#

I don’t know how the game does it in particular, but in an abstract sense I could see both working. Especially because implementation-wise, I could see the output of the function that calculates hand type be captured then overwritten

cunning silo
gilded vortex
gilded vortex
# cunning silo wdym?

I’m just saying if another mod added more hands that were subsets of existing hands, then they wouldn’t work because you hardcoded the subsets

#

It’s not a real issue unless you want your mod to be compatible with something that might exist

lean dune
#

eh, what subset of an existing hand could I even make that is always satisfied if a certain other hand is

gilded vortex
#

I didn’t say it made sense to do that

lean dune
#

3-card straights?

cunning silo
#

Aure

#

when we do that, do you wanna add spectrum cards?

gilded vortex
#

Spectrum cards?

lean dune
#

i mean you could always run the hand calc thingy on a dummy hand and go off that

cunning silo
#

like, composite hands for Spectrum

gilded vortex
#

Not Spectral?

cunning silo
#

Spectrum is a hand type in Six Suits

lean dune
#

yeah sure

umbral citrus
#

Spectrum is 5 cards of a different suit?

lean dune
#

me when "Play a Spectrum Five"

umbral citrus
#

but how about this example

#

this is a flush, but it will trigger pair related jokers

gilded vortex
#

Four Eyes
You can make Spectrum with four suits

lean dune
cunning silo
#

i love that