#💻・modding-dev

1 messages · Page 17 of 1

zealous glen
#

They can learn after playing with it

#

I thought it'd be unnecessary and also slightly easier to code if it were always the same text

maiden phoenix
#

Fair

zealous glen
#

Though it's not really that hard to add changing lines at the end

wintry solar
random sleet
#

thats awesome

zealous glen
#

What do you think of the balance? I modeled it after Odd Todd but I'm not sure

random sleet
#

@slow ocean looks like someone figured out funny shader shine stuff

maiden phoenix
#

Odd/Even has 5 possible values, yours close to that so it's fine

zealous glen
#

Yeah, my trains of thought was that it's close but it's less consistent

maiden phoenix
#

I like to balance my stuff compared to how difficult it is to get and how much other jokers give in lesser or higher situations

slow ocean
#

oh shit

#

did you get it to work on an atlas basis

zealous glen
#

I'd rather focus on balance during playtest, but at least I can have temporary numbers that seem reasonable

#

@slow ocean can I get your opinion on some art

slow ocean
#

orkey

random sleet
#

looks like its being applied to vanilla cards without side effects

zealous glen
slow ocean
#

fucking bodied

zealous glen
#

is that good

maiden phoenix
#

sorry I had to lol

zealous glen
#

Oh that's a good face angle

worldly sapphire
#

oh man, i think i have a issue of not understanding 😐

slow ocean
#

yes its good

worldly sapphire
zealous glen
#

(I keep looking at it feeling like it could be better but I'm not good enough to see how to get there)

zealous glen
#

But you can try and get that snippet I posted to work by adding a header and some .png assets

worldly sapphire
#

idk what is a header lol (sorry)

zealous glen
random sleet
#

balatro's art style does enjoy the time-honored tradition of Keep It Simple, Stupid

zealous glen
#

which are some comments at the beggining of your file informing Steamodded some data

#

Like mod name, etc.

worldly sapphire
#

OH THE ID?

zealous glen
#

If Steamodded finds a .lua file without a header it skips it

#

It includes at least

--- STEAMODDED HEADER
--- MOD_NAME: Buy Sell Pack 
--- MOD_ID: BuySellPack
--- MOD_AUTHOR: [Victin]
--- MOD_DESCRIPTION: Adds Jokers that synergize with buying and selling Jokers.
maiden phoenix
zealous glen
#

The perspective suffered a bit

zealous glen
maiden phoenix
#

The way the blue red-masked guy look looks better imo

zealous glen
maiden phoenix
#

Yea look, the look looks better :))

golden lake
#

chat any thoughts

zealous glen
#

meow

maiden phoenix
#

afa

slow ocean
#

OOOOOOOO

#

wife coming over

worldly sapphire
#

ahhh, i give up for now, tomorrow i will try again

slow ocean
#

"perfect"

worldly sapphire
zealous glen
# maiden phoenix Yea look, the look looks better :))

I couldn't figure out a good way to make it appear as though the (top of) their head was facing the audience/down, besides jutting it sideways as I had done, but now that I have the face looking straight down… it looks a bit off but maybe I have just gotten used to the previous look

maiden phoenix
#

People wont blame you for it

zealous glen
zealous glen
golden lake
zealous glen
#

Oh that's what RDA means

golden lake
#

zealous glen
maiden phoenix
#

Peaks into your soul 👁️ 👁️

zealous glen
#

The difference 1 pixel makes in pixel art is astonishing

maiden phoenix
#

True you could get shot for doing this

#

(If tomorrow I'm not active here you know why)

slow ocean
#

its just a bend in the line

golden lake
#

aaaand done

slow ocean
maiden phoenix
#

Watch out Lyman! Jumpscare!

random sleet
#

jesus fuck how many copies of that emoji do you have

slow ocean
#

thats a staff

#

listen i was there when it was created and i have watched it proliferate

#

its great

golden lake
#

we now have half of the trolls

slow ocean
#

so gorgeous

random sleet
#

you watched it choose any number of players or permanents and put another counter on each of them of each type already present on those cards?

slow ocean
#

refreshing pixel art after a day of hard work

maiden phoenix
golden lake
#

literally fine lol

slow ocean
#

what am i getting mad at here

golden lake
#

you were told lies by the council

maiden phoenix
#

I give up 😔

random sleet
#

me get mad at me

golden lake
#

btw lyman

#

the book that she's holding

#

gradient

slow ocean
#

pixel art rules can be subverted if you know what youre doing, they arent rage inducing by themselves

maiden phoenix
#

I know some people can be nitpicky about it

slow ocean
#

is it???

golden lake
#

it is a gradient yes

slow ocean
#

is it just really subtle

maiden phoenix
#

I was just joking in the first place but it's not even funny anymore 😔

golden lake
#

color pick the top of the book

#

and the bottom of it

random sleet
#

pixel art rules can be subverted by using emoji instead of real art

golden lake
#

its a gradient

slow ocean
#

oh i fucking

#

why

#

its not even noticeable 😭

#

(its still fine)

golden lake
#

its noticeable without

slow ocean
#

if you have the time id like to see the with and without

maiden phoenix
slow ocean
#

listen ive had my art pieces auto-rejected for too many similar colors its instilled into my soul

golden lake
random sleet
#

its darker on the top?

golden lake
#

without it the top of the book feels flatter

slow ocean
#

hmmmm

golden lake
#

with it it feels like everythings in perspective correctly

slow ocean
#

i can sort of see it

slow ocean
#
  1. no swearing in my minecraft server
golden lake
#

literally did the same on redglare

#

see this

#

its a gradient from the bottom

maiden phoenix
slow ocean
#

from her skirt/glove shade?

golden lake
#

yes

slow ocean
#

fair enough

#

as long as its consistent then

golden lake
#

yeah the point of these is to like

#

trick you into seeing them as higher detail

#

than they can be

slow ocean
#

i dont really have that much of an issue considering base balatro

#

yeah no i get you

#

thats interesting

zealous glen
#

Me using darker than Joker Grey colors:

slow ocean
#

i might mess around with that in an indexed palette

maiden phoenix
slow ocean
#

you're gonna activate both me and akai

zealous glen
random sleet
#

me using colors darker than Balatro Black

#

(i am not color adjusting the emoji at all)

zealous glen
golden lake
zealous glen
#

But the second one is in progress

maiden phoenix
#

Me using RGB negative value black

slow ocean
#

i will once again reiterate

zealous glen
#

It's too thick to be released right now

random sleet
#

can i be rage inducing anyways

#

as a treat

zealous glen
#

ye

slow ocean
#

no

random sleet
#

ok :(

maiden phoenix
#

It doesn't work on Lyman

slow ocean
#

your punishment is lack of hatred from anyone for 48 hours

golden lake
#

btw what should Meulin do Lyman

zealous glen
slow ocean
#

fuck

#

youre giving me immense power

zealous glen
slow ocean
#

i mean

#

nvm i wont finish that thought

#

see im very biased

zealous glen
slow ocean
golden lake
slow ocean
#

oh you mean

golden lake
#

yea the 5

#

leo

slow ocean
#

i got rlly hyped for a sec

#

hmmmm

blissful coyote
#

what do we have for zodiac abilities so far

slow ocean
#

remind me what dolorossa did with 6s?

#

it was the summation one right

#

(im sorry im a lil foggy ive been busy :((( )

golden lake
slow ocean
#

trying to understand

golden lake
#

Virgo?

slow ocean
#

why is future used here

#

no just in general the templating

golden lake
#

oh because it's like

#

"from this point ownards, it will give this much"

blissful coyote
#

2s was retriggers, 4s was held +Mult

golden lake
#

that's because Zodiacs and Aspects start at level 0

slow ocean
#

oh so just like a clarity thing

golden lake
#

so it shows how much you will get

#

not how much you're getting

#

the other 3 havent been updated to template yet

#

also do you like the 9s effect @slow ocean

maiden phoenix
#

Taurus: Exists

slow ocean
#

splash fans crying

#

im tryna cook

random sleet
#

the one splash fan

golden lake
#

also the funny thing about Sagittarus in this context is that

maiden phoenix
golden lake
#

you can't play multiple of them

#

because playing more than one 9 will mess up the whole plan

slow ocean
#

im trying really hard to connect mechanically playing 5s and skipping

golden lake
#

skipping?

slow ocean
#

because i just think of like disciple darting the fuck off

golden lake
#

ahh

blissful coyote
#

hmmmm

#

the knowledge

slow ocean
#

or maybe something to do with copying stuff ||because of her book||

random sleet
blissful coyote
#

niiice

golden lake
slow ocean
#

but like

#

how do you scale that

golden lake
#

good question

maiden phoenix
random sleet
#

all future 5s create (lvl) copies of themselves when played that are destroyed after scoring

#

(shove the copies in G.play)

#

(this totally won't be hell to program)

golden lake
#

hm

#

i think it could work if like

random sleet
#

technically different from retriggering

golden lake
#

its not just the copies destroyed

#

but also the 5 itself

#

basically make it so that every 5 you play is destroyed after scoring, but it creates X duplicates of itself

#

that could work, right

#

actually no that's too strong

#

these packs are not that uncommon

blissful coyote
#

scoring +Mult
retriggers
Taurus
held +Mult
Leo
funky scoring +Chips
scoring XMult
double probabilities
funky scoring +Chips
held/scoring XMult
Aquarius
interest moneeey
Ophiuchus

random sleet
#

the one for 2 is cracked so

golden lake
#

the one for 2 is cracked for 2s only

#

like its a holistic thing

#

this is just a card printer

random sleet
#

for only 5s

golden lake
#

yeah but you print more 5s

random sleet
#

also thats the point of destroying the copies

#

like they wouldnt go to your hand theyd immediately get added to the hand currently being played

golden lake
#

i dont think it makes that much sense for leo

random sleet
#

ok

#

i should read more hs at some point

#

maybe over this weekend i will

zealous glen
#

👀

golden lake
#

by the way

#

here's the plan for all the things:

#
  • 6 Tags
  • 12 Aspect cards
  • 4 Vouchers
  • 13 Zodiac cards
#

do you see what i did there

#

6-12, 4-13

blissful coyote
#

hehe

golden lake
#

also my plan is to keep updating balatrostuck until it adds 413 jokers total

random sleet
#

insane

#

363 jokers in one mod

hallow forge
#

not enough

random sleet
#

then again im making dumb emoji mod so i might get up there too lol

hallow forge
#

only ∞ is enough

random sleet
#

(especially since the design of emojiokers effects is basically just "combine every trigger with every possible effect")

maiden phoenix
golden lake
#

not total in game

random sleet
#

oh

wintry solar
random sleet
#

oh my GOD i need to learn this shader magic

golden lake
#

same tbh

#

i'm assuming its passing a variable in

#

from the game to shader code

random sleet
#

yeah you get a variety of arguments

wintry solar
#

yeah it passes the rotation in

golden lake
#

to get that hover

wintry solar
#

so you can just use shader.r in a trig function to adjust certain values

#

so this one changes the hue ever so slightly

#

like so

golden lake
#

nice!

#

will have to look into that at one point

wintry solar
#

I'm not ready to attempt shaders with patterns yet

random sleet
#

glsl 🤢

wintry solar
#

blanket changing the entire card is enough for me

golden lake
#

btw i forget, is Ortalab an overhaul mod

random sleet
#

i think it will have a config for disabling vanilla stuff iirc but works in tandem by default?

wintry solar
#

no I think it's designed to be in addition to base game and then have an option to play with just ortalab stuff

zealous glen
wintry solar
#

I mean looking at the code for the foil shader blows my mind

zealous glen
#

I mean, separating specific areas from others… though if you have to do it at an angle

zealous glen
random sleet
#

please let me know when/if you release this so i can gut it for parts peruse your methodology

wintry solar
#

stuff like the debuffed cross seems straight forward

#

but this is how foil does the rings and highlights I think

golden lake
#

yeah that makes sense

random sleet
#

circles are probably just inherently strange and difficult

golden lake
#

not really

#

it's just a conversion from cartesian to polar mapping

random sleet
#

you're inherently strange and difficult

#

/lh

golden lake
wintry solar
#

anyway I definitely should have been in bed two hours ago

golden lake
#

UV space by default plots all information to cartesian coordinates

#

you can however convert that all to polar coords which form circles naturally

wintry solar
#

they're coordinates in percentage form though

random sleet
#

:dumb:

golden lake
wintry solar
#

true

golden lake
#

cartesian to polar conversions still apply

#

like, a straight line in cartesian space is a circle in polar space

random sleet
#

what about in hammer space

golden lake
#

you get hammered

wintry solar
#

I will have to pull university maths from the far reaches of my brain if I need to do that

#

anyway, gn

random sleet
#

BET

golden lake
#

example of cartesian to polar remapping

#

you just figure out the shader effect in cartesian space and convert the visual to polar space

zealous glen
#

I'm trying to find the origin in the first figure because I don't see how it closes the circles

golden lake
#

?

zealous glen
golden lake
#

cartesian

zealous glen
#

Wait that left horizontal axis is an angle

golden lake
#

yeah?

#

but yeah see

#

that already looks foil-y

zealous glen
#

It's converting from angle and radius to cartesian, not the other way around

zealous glen
golden lake
golden lake
queen scroll
#

if it;s any easier just think about what happens if you multiply a real number by e^i*theta :)

golden lake
#

this is not cartesian space

zealous glen
golden lake
#

also this is literally how this looks like in cartesian

#

its just lines going horizontally for circles and lines going vertically for the streaks

#

with anisotropic noise applied on top

zealous glen
random sleet
wild gyro
#

only +8 seems weak

autumn berry
random sleet
#

i mean its not bad when you have it in Light Mode

wild gyro
#

balancing things around negatives isnt great

golden lake
#

also look

random sleet
#

but also i have the same issue with Red Card being that its basically never good

zealous glen
golden lake
#

let me show you something

random sleet
#

also keep in mind this is the same mod as 🧻 and 🧱 which only exist to destroy your cards

random sleet
slow ocean
wild gyro
random sleet
#

i can poke at buffing it later ig

#

i did nerf 🗝️ to -8% instead of -10% just because playing a flush of clubs was... really strong lol

slow ocean
#

youre still goated

wild gyro
#

true

random sleet
#

numbers changes are easy to make after all

#

as long as the effect works i can do balance stuff easily

zealous glen
golden lake
#

see these stripes

#

they follow roughly that x graph you've shown

zealous glen
#

which corresponds to y = -(b/a)x + c for non-horizontal lines

random sleet
#

and slowly rotates them

golden lake
#

now they're in polar

random sleet
#

hypnosis shader

zealous glen
golden lake
#

do you notice something

#

you were showing me a diagonal line

#

not a horizontal one

zealous glen
zealous glen
golden lake
#

it really is

random sleet
#

the "top" of the polar space is in the center, the "bottom" is around all edges of the rendered image

zealous glen
random sleet
#

three jokers today... alas all i could accomplish

golden lake
#

lmao

#

so that the straight line is in cartesian

zealous glen
#

We started there

golden lake
#

no we did not

#

this is diagonal

#

not horizontal

zealous glen
random sleet
#

you started with f(x) = x

golden lake
#

start with x = 3

random sleet
#

akai is talking about f(x) = 1

golden lake
#

or f(x) = 3

random sleet
#

(or any other constant)

golden lake
#

yep

#

c o n s t a n t

zealous glen
#

Again, if we take the function r(theta) = constant we get a circle

#

Because you're writing in polar coordinates

random sleet
#

That Is The Point

zealous glen
#

the radius as a function of the angle

golden lake
#

that is literally the point

zealous glen
#

So you agree it's polar coordinate not cartesian

golden lake
#

i was saying from the start that

#

i am taking this CARTESIAN

zealous glen
#

Me too though

golden lake
#

into this POLAR

#

i am literally talking about Cartesian to Polar conversion this entire time

zealous glen
#

You started with polar and then plotted in cartesian

golden lake
#

no i didnt

#

i started with Cartesian and then remapped it to polar

zealous glen
#

You start with the radius as a linear function of the angle

golden lake
#

no you dont

random sleet
#

you're the radius as a linear function of the angle

zealous glen
#

Then you plot that in cartesian coordinates

golden lake
#

literally wrong

random sleet
#

chat i have to go to work :(

golden lake
#

literally you don't know what you're talking about

#

THIS would be Polar to Cartesian:

random sleet
#

lmao thats kinda sick tho

golden lake
#

yeah the whole reason these conversions exist is to make life of shader programmers a bit easier

zealous glen
#

I wonder if I have the nomenclature wrong or if graphic programmers are using a different convention

golden lake
#

a horizontal line in cartesian will be a circle in polar

#

and its radius will be determined by the height at which that line is drawn in cartesian

#

its not that hard

zealous glen
#

I thought if you write the radius as a function of the angle you're in polar coordinates

golden lake
#

we dont have that in graphics programming

#

we work with pixels

#

on a percentage-based grid

#

we dont do function plotting we just remap existing constant data

#

everything in graphics programming is just taking existing data and remapping it until it looks pretty and awesome

zealous glen
golden lake
#

yeah no thats not whats happening in graphics

zealous glen
#

That is the entire point of a coordinate system; the object is fixed, but you need to represent it

golden lake
#

in graphics we can take an image, interpret it as cartesian, convert it to a polar space, and then interpret that polar space as a cartesian space and plot it again as a polar space

#

so we go cartesian -> polar -> polar

#

and we get different results

zealous glen
golden lake
#

made a slashy effect

#

in graphics we don't really do like, math properly

#

we use math as a tool, but we don't respect the math

zealous glen
#

It's very common that other areas will have overlapping jargon but use it to mean something completely different

#

Which is alright but makes mutual understanding difficult

golden lake
#

yeah for graphics Cartesian to Polar means "we take the pixel data that exists on this image and remap it as if it was a cartesian function graph converted into polar coords"

#

but nothing's stopping us from going "we will now consider this "polar" image to be cartesian and perform that same pixel remapping operation"

zealous glen
#

That operation is taking data that's meant to be read in a format and reading it in another format

golden lake
#

because it's not really a cartesian or polar representation of data, its a remapping technique we use to get different visual effects

zealous glen
#

which is fine, but it's not really a conversion

golden lake
#

its a graphics conversion

#

which is what we're after

zealous glen
#

Right, I underspecified what I meant by "conversion"

golden lake
#

the visual image that you see on the screen changes

zealous glen
#

You have data described in terms of horizontal and vertical position but you read it as angle and radius

golden lake
#

that's pretty much that yes

zealous glen
#

Which does transform lines into circles

#

But it's not a change of coordinates

golden lake
#

yeah no we use the term cartesian to polar to describe the visual changes you'd seen in change from a cartesian space to a polar space

zealous glen
#

(in the sense I think a "change of coordinates" ought to be called)

golden lake
#

we can re-read the moved pixels and use their new positions as angle and radius too

#

because again, they're just a visual

#

it's easier for a graphics programmer to code an effect in height and width and then convert that height and width into radius and angle

#

than drawing the circles straight up

zealous glen
#

To me it'd depend on the kind of effect one is trying to achieve. If you want radially symmetric effects then yes

#

I guess they don't need to be symmetric

golden lake
#

yeah they dont

zealous glen
#

If just want a circular slash for example

#

Though it's not intuitive to me how you'd limit that

golden lake
#

you dont have to

zealous glen
#

But I suppose that can come with experience and trial and error

golden lake
zealous glen
# golden lake you dont have to

I meant limit as in, maybe a circular slash doesn't complete a full circle, so you need to choose starting and ending angles, as well as the area of the effect.

zealous glen
gilded narwhal
random sleet
#

only one message 😔

gilded narwhal
#

Yeah :(

#

It's fiiiinee

#

Every joker I've ever seen that gives more than 1 does that

random sleet
#

i love eval_this.png

gilded narwhal
#

Btw what do you put in effects for that

random sleet
#

the same thing you would return from calculate joker

gilded narwhal
#

So just

#

Mult_mod

random sleet
#

and message

gilded narwhal
#

Chip_mod

random sleet
#

and Xmult

#

i didnt add dollars support tho

#

i'll get there eventually

gilded narwhal
#

Lemme try this again

random sleet
gilded narwhal
#

To call it multiple times you just

#

What do

random sleet
#

just call it multiple times

#

eval_this(...)
eval_this(...)

gilded narwhal
#

Okay it is that simple

random sleet
#

(though i might change it im still kinda on the fence abt it)

gilded narwhal
#

I'm curious why does that work

#

Is it the update_hand_text thing

random sleet
#

and the mod_chips/mod_mult

#

its basically the block that processes the returns from one of the calculate_joker calls

edgy reef
#

How do you change the sprite?

royal ether
#

so you gotta go fast

gilded narwhal
#

This is wrong isn't it

royal ether
#

i think you dont need the outer table

#

in effects

#

so just {chip_mod, message}

#

im just glancing at it tho i may be wrong

gilded narwhal
#

Nah that's not it

royal ether
#

whats message defined as

gilded narwhal
#

if effects.message then
card_eval_status_text(card, 'jokers', nil, nil, nil, effects)
end

royal ether
#

not that

#

like what are you passing as message

gilded narwhal
#

Good question lmao

#

I'll fix that

#

Okay so problem

#

It's working

#

But for some reason it activates twice

#

Like this is it

random sleet
narrow pollen
#

speaking of sprites

oblique gust
#

hey there. does anyone know how to localize the name of new suits the way jokers and tarots do this, instead of brutally replacing each and every one of the defined name throughout the whole script?

#

the new_suit doesnt have a parameter for the localization so im not quite sure

#

(steamodded)

random sleet
golden lake
#

morning folks

random sleet
#

wait you slept?

golden lake
#

i had what we in the industry call "short nap"

hallow forge
#

which industry

random sleet
#

the nerd industry

#

gottem

hallow forge
#

we do not, I would know

random sleet
golden lake
random sleet
#

or key or whatever its called

golden lake
#

if you are in the industry you already know

random sleet
#

you could check how SixSuits does it

hallow forge
#

i am the industry

golden lake
#

no you're not

random sleet
#

(i'd trust SixSuits' code since its made by the person who made the API for suits lol)

hallow forge
#

ive been caught

golden lake
#

SixSuits is a good mod

#

you know what isnt a good mod

random sleet
#

my mod

oblique gust
golden lake
golden lake
#

yeah what

random sleet
#

like give me any example

#

(my head is jumbled with 1.0 code i genuinely am experiencing being Dumb about 0.9.8 stuff)

golden lake
#

1.0 is just better and everyone should move

#

we should make this happen faster by refusing to help with 0.9.8 issues

#

that way we extinguish the old version's support and force everyone into the new ecosystem

#

Just like Microsoft in the 90s

#

triple E strategy

mellow crag
#

1.0 is not otu yet

#

right?

golden lake
#

alpha's out

random sleet
#

and microsoft in the 00s. and microsoft in the 10s. and microsoft in the 20s.

golden lake
#

and it's pretty stable

mellow crag
#

ohhh i will check it out

random sleet
#

feder port codex so i can put emojiokers support for it

mellow crag
golden lake
#

^

golden lake
#

i am currently implementing the final element of it

#

Aspects and Zodiacs

mellow crag
#

oh niiiiice

golden lake
#

then release

random sleet
#

porting shouldnt be too hard

golden lake
#

we have 3 pages of jokers

random sleet
#

if you're registering things in a loop

mellow crag
#

i dont

random sleet
#

cringe

golden lake
#

btw Feder you can throw out like 60% of Codex's logic to set up and init Alchemicals

#

SMODS has SMODS.Consumable and SMODS.ConsumableType now

random sleet
#

oh yeah actual consumabletype support

mellow crag
#

oh that's really fun

mellow crag
golden lake
#

i'll send my ConsumableType declaration for Aspects here

mellow crag
#

wait does it also do the terrible UI stuff?

random sleet
#

the collection stuff?

mellow crag
#

yeah

golden lake
#
SMODS.ConsumableType{
  key = 'Aspect',
  collection_rows = { 3, 3 },
  primary_colour = G.C.SET.Aspect,
  secondary_colour = G.C.SECONDARY_SET.Aspect,
  loc_txt = {
    name = 'Aspect',
    collection = 'Aspect Cards',
    label = 'Aspect',
    undiscovered = {}
  },
}:register()
random sleet
#

yeah

mellow crag
#

oh that's cool

golden lake
#

collection rows is like, how many cards in each row

oblique gust
#

well to make it clear im not coding a mod im trying to translate mods to my own language.

so take Bunco as an example, the first parameter of
SMODS.Card:new_suit
is for defining the name of the suit, that are, Fleurons and Halberds

but i searched for these two words in the whole script there are many everywhere, so if i edit that parameter to something else (like localizing it), i feel like it'll break everything

golden lake
#

so here i have 3 cards in row 1 3 cards in row 2

mellow crag
#

AKA an exmaple of how you register stuff

golden lake
#

oh that's all there is to it as far as consumable types go

oblique gust
#

but for new jokers and tarots there is a parameter only for the loc, like to only define its displayed names and descs

golden lake
#

i forgot the :register()

mellow crag
#

what about registering the consumable?

golden lake
#

i sent you in dm

random sleet
#

1.0 will have proper localization support

oblique gust
#

oh aight thats cool

#

seems like its a wrong point to start doing the localizing stuff this early

golden lake
#

yeah

#

you need to give these things time tbf

#

this is still a very young modding community

#

we have very little resources on how to actually mod the game

#

and we have very little in way of extending the game's behaviors

oblique gust
#

yea i gotta put em on github to track future changes tho its basically for personal use

#

it doesnt feel young tho lol those mods are already awesome

golden lake
#

well, it is young, it's been up for less than half a year or so

#

compare that to really fleshed out modding scenes like Terraria's or Minecraft's

#

the good news is that as the community goes forward, we'll have more of each other's work to build up from

#

inevitably we will run into the coremod dilemma though I'm fairly certain

#

not necessarily a bad thing

royal ether
#

mfw my mod requires a mod that requires a mod that requires a mod

crisp coral
#

oops! all dependencies

oblique gust
#

minecraft modding is kind of a sh show now. luckily balatro doesnt have that much stuff to deal with
when it comes to localization i do hope mods having individual language files for different languages like minecraft

oblique gust
#

a lib, two apis based on that lib, a base mod using one of the two apis, a content mod, 10 addons of that mod

random sleet
#

you can certainly set something up to load each language from a different file iirc

golden lake
#

@frosty dock how does one set up undiscovered cards correctly

frosty dock
#

In theory all you need is an UndiscoveredSprite that has the same key as your set as well as loc_txt.undiscovered on the consumable type

golden lake
#
  • i have an undiscovered sprite
  • undiscovered loc_txt is filled
  • i've set a card to be undiscovered
frosty dock
#

So what's not working?

golden lake
#

the whole discovered thing

random sleet
#

is it that your save file has it discovered from when you didn't have it set to be undiscovered

golden lake
#

wait im on full unlock arent i

frosty dock
#

the discovered state on the proto is a default

#

I've you've ever discovered an object with that key, it's gonna stay discovered

golden lake
#

uh

#

it still doesnt work

#

even on a diff save file

#

i have my loc set up for undiscovered

#

i have an undiscovered sprite

#

i've set undiscovered on a card

#

i've even used a third savefile

random sleet
#

fascinating

frosty dock
#

uh

#

does it show as if it were discovered?

golden lake
#

yes

#

both the card and the tallies

frosty dock
#

hm

#

show code then

golden lake
#
SMODS.ConsumableType{
  key = 'Zodiac',
  collection_rows = { 3, 2 },
  primary_colour = G.C.SET.Zodiac,
  secondary_colour = G.C.SECONDARY_SET.Zodiac,
  loc_txt = {
    name = 'Zodiac',
    collection = 'Zodiac',
    label = 'Zodiac',
    undiscovered = {
      ['name'] = 'Not Discovered',
      ['text'] = {'test'}
    }
  },
}:register()

SMODS.UndiscoveredSprite {
  key = 'Zodiac',
  atlas = 'HomestuckZodiacs',
  pos = {
    x = 6,
    y = 1
  }
}:register()
#
function Balatrostuck.INIT.Zodiacs.c_zodiac_gemini()
    SMODS.Consumable{
        set = "Zodiac",
        prefix = 'c_zodiac',
        name = "Gemini",
        key = "gemini",
        config = {},
        pos = {
            x = 1,
            y = 0
        },
        loc_txt = {
            ['name'] = "Gemini",
            ['text'] = {
                "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up",
                '{C:attention}all{} future {C:attention}2s{} to',
                'be {C:attention}retriggered',
                '#2# time#3#'
            }
        },
        cost = 4,
        discovered = false,
        atlas = "HomestuckZodiacs",
        use = function(self, area, copier)
            G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.9, func = function()
                play_sound('tarot1')
                self:juice_up(0.8, 0.5)
                return true end
            }))
            G.GAME.BALATROSTUCK.zodiac_levels[self.ability.name] = G.GAME.BALATROSTUCK.zodiac_levels[self.ability.name] + 1
        end,
        can_use = function() return true end,
        loc_def = function(card)
            local level = G.GAME.BALATROSTUCK.zodiac_levels[card.name] + 1
            local formula = level
            return {
                level,
                formula,
                (level~=1 and 's' or ''),
                colours = {(level==1 and G.C.UI.TEXT_DARK or G.C.ZODIAC_LEVELS[math.min(7, level)])}
            }
        end,
    }:register()
end 
#

i cant undiscover the cards

#

even on a fresh save

frosty dock
#

try changing the key

#

on new save too? that's weird

#

I'll have a look later

#

but it's worked fine for me

random sleet
#

is this another "not eternal was never an option" thing

golden lake
#

feder also had a problem but it apparently just fixed itself magically

austere schooner
#

given that i've seen a couple of mods do it already, is there any kind of api for custom UI stuff or do you just sort of have to figure that out

golden lake
#

for now you have to figure it out yourself

#

but i believe some basic building blocks will be coming to smods at one point

oblique gust
frosty dock
oblique gust
frosty dock
#

yea sounds good, just wanted to let you know

#

there's an alpha up on github if you wanna check it out (it's just the main branch)

frosty dock
#

In fact the default should be false

random sleet
#

interesting

narrow pollen
#

man

#

card_eval_status_text doesn't like going off in create_card

random sleet
#

uh, no i'd imagine not

queen scroll
#

have you tried setting it to instant?

narrow pollen
#

oh, i know what i'll do

#

i'll have it set a flag in the joker's ability.extra

#

then have that trigger during calculate_joker

golden lake
crisp coral
#

oug

#

that looks great

random sleet
#

clapricorn

golden lake
#

balatrostuck goes unnecessarily hard

random sleet
oblique gust
random sleet
#

you will yeah

#

better to wait til people update themselves

oblique gust
#

oop i'll just wait for updates

#

yea

random sleet
#

im also not too sure if its possible to make addon mods that add localization to existing mods? but also i barely know how the localization stuff works anyway

royal ether
#

it just depends on how people coded it

oblique gust
#

i wanted to understand how the game itself localizes stuff but it ended up balding me so

#

im no pro to all that

royal ether
#

hardcoded vs using G.localization and localize{}

random sleet
#

assuming people used localize properly

royal ether
#

xdd

random sleet
#

smods has a framework for localization now

#

so im mainly just not sure of its features

#

i.e. idk if mods can add localization to other mods

crisp coral
#

you might be able to find the specific object by its key and change the loc_txt that way

#

if priority is lower

oblique gust
#

hopefully there will be a good explanatory doc

random sleet
#

it depends on if prio even is used for loc text stuff

golden lake
#

chat am i insane for making 15 Vriska Jokers

random sleet
#

like i'd hope it is but idk

#

needs to be 16

golden lake
#

maybe..

random sleet
#

divisible by 8...

frosty dock
random sleet
#

high as in positive prio

frosty dock
#

yeah, high as in load last, so positive

#

which is low prio technically

#

w/e

#

Anyway injection order doesn't matter, you just need the object to exist

#

lowest prio default value for the loc target is the table itself, so I don't think it even matters if the original mod's loc_txt is indexed by language at all

#

{name='a', text={'b'}, fr = {name='c', text={'d'}}} is valid to my parser

crisp coral
#

yknow high prio usually means loads first 😭

mellow crag
#

Should i make a stardew valley themed mod?

shell timber
#

crops cardarea

mellow crag
#

yesssssssssssssss

broken vine
#

i remember you talked about the idea before?

crisp coral
#

welcome to balatro in 2025 where we will have 38592789257 card areas

broken vine
#

*2024, August

mellow crag
random sleet
#

sry ping :((((

mellow crag
#

imagine growing crops, and for each crop you have in your "garden" a certain card group becomes stronger

#

like crops for each suit, crops for face/number cards, crops for even/odd cards, etc

random sleet
#

yessss

mellow crag
#

that can be so fun actually

maiden phoenix
#

Itayfeder about to make another top 5 mods

#

(also gm gamers)

mellow crag
#

good morning!

random sleet
#

im fr about this

#

ill make support for it

mellow crag
#

the first community grown mod

random sleet
#

the first community GROAN mod

maiden phoenix
#

Screw farming chips we're farming crops now 💪

mellow crag
#

trueeeeeeeeeeee

#

just need to figure some stuff out

#

AKA where the heck would the cardarea be stored

crisp coral
#

dead middle of the screen

random sleet
#

what if it was like cookie clicker farming

crisp coral
#

god no

#

jestie clicker

random sleet
#

haha

#

the farming minigame in cookie clicker tho

odd dock
mellow crag
odd dock
#

movable cardarea when? (not a real question or suggestion)

#

imagine minimizing card slots like they're browser windows

golden lake
#

chat is this a h8crime

#

vriska balatro

spice scroll
#

i remember doodling y fantroll in this pose for halloweeen lol

golden lake
#

i added some intentional strays and messy lines

narrow pollen
# golden lake

adding a slight noise filter like i did for magic number would do wonders, i think

#

making it so random pixels on the card are just ever so slightly a wrong color

golden lake
#

i made a special noise

narrow pollen
#

perfect

royal ether
#

wait a good spot for a passive effects cardarea would probably be in your deck overview

#

or next to vouchers

candid cloak
golden lake
#

Destroys scoring Steel cards
gives X8 Mult for each destroyed Steel card

#

basically

frosty dock
#

uhhhhh

#

X8?

golden lake
#

correct

#

not gains

#

gives

frosty dock
#

hm

golden lake
#

so in total it can give X(8*5) Mult

#

the way it goes is, after every steel scores, it is destroyed

#

then at joker_main, it gives X(8*steels destroyed) Mult

frosty dock
#

shouldn't it start as X1, so 5 steels would be X41?

golden lake
#

wha

#

the mult isnt on cards

random sleet
#

is it scaling or onetime

zealous glen
golden lake
random sleet
#

then its solid

crisp coral
zealous glen
golden lake
#

Vriska jokers are wacky and so much fun to play with

crisp coral
#

what's The Tumor

zealous glen
crisp coral
#

they get graveyarded

zealous glen
#

Do Jokers get graveyarded?

golden lake
#

no

zealous glen
#

Do they get cremated instead?

crisp coral
#

no

golden lake
#

they get japorized

crisp coral
#

what the fuck is japorized

#

is this a homestuck ref

frosty dock
#

they get jeopardized

golden lake
#

japorized like

#

jape

#

vaporized

#

japorized

crisp coral
#

i

random sleet
zealous glen
#

Now I'm trying to remember if there was japorization in the comic. I think there's a good chance that there was but I can't remember it

random sleet
#

my reaction to that information

golden lake
#

no there wasnt lmao

#

i just made up japorized as the combination of jape and vaporized on the splot

zealous glen
#

Ah I see. ||I was thinking if Hope-y things could japorize||

golden lake
#

now I want to make a mod that renames all instances of "destroys" refering to jokers to "japorizes"

zealous glen
#

yes

frosty dock
#

oh no

golden lake
#

Gros Michel having 1 in 4 chance to get japorized

frosty dock
#

need to localize it tho

golden lake
#

Ankh japorizes all jokrs

zealous glen
#

Eternal: "Can't be sold or japorized"

crisp coral
#

it would be so fucking funny if the "destroy but doesn't go to graveyard" effect is called japorize

zealous glen
#

just japorizes them

random sleet
#

japorize me

crisp coral
#

ayo?

zealous glen
#

not the gravyeard

#

that's where the gravy grows

frosty dock
#

should have a new animation that isn't dissolve

#

like how glass cards shattering are a different effect

golden lake
#

the cards get hit by lightning

#

and are japorized

random sleet
#

graveyard goes hard with 🧱

frosty dock
#

brix

golden lake
#

Canio scales with japorized face cards

zealous glen
random sleet
crisp coral
#

i have every card that gets :remove'd go to the graveyard rn

golden lake
#

you should also add the Javeyard

#

for all the japorized jokers

#

and the Daveyard for all the dead Daves

crisp coral
#

😭

zealous glen
#

Can I go to the graveyard and leave flowers to the deceased?

#

"Thanks for your service, Polychrome Red Seal Glass 8 of Clubs."

golden lake
#

you can hover over a card and press F to pay your respects

frosty dock
#

don't forget the saveyard, for the revived

golden lake
#

and the yard for those still alive

zealous glen
#

is there a easteryard for the deceased again?

frosty dock
zealous glen
golden lake
#

frontyard

golden lake
#

ghost cards...

random sleet
#

ghost enhancement...

frosty dock
#

non suspicious name change

zealous glen
#

I did try to think of a ghost enhancement but it didn't feel very ghost-y

golden lake
#

the name change refers to smods 1.0

#

we are 2 patches away from release

zealous glen
#

But seeing High Card mod I might take a look at that to think how to implement Disenhancements

frosty dock
#

depends on what counts as a patch... I've done significantly more than 4 commits towards 1.0

golden lake
#

true but im assuming the loading is one of those exponential loaders that are only meant to evoke a feeling of progress

frosty dock
#

like how all boot progress messages from steamodded are on 95% progress?

golden lake
#

exactly

frosty dock
#

I think you're onto me

crisp coral
#

chat what does this mean

frosty dock
#

this means no

zealous glen
#

chat means cat in french

frosty dock
#

that's why I answered

golden lake
#

also when I first saw Steamodded I thought it referred to the fact that its a Steam modloader for Balatro and only later did I learn it was made by Steamo

frosty dock
#

I'm cat

frosty dock
#

it's a common misconception

golden lake
#

Honestly it might as well be that now wheeze

frosty dock
#

xd

#

petition to rename to Steam modded

crisp coral
#

everyone just says steam modded

royal ether
#

is it even possible to mod on any platform but steam

zealous glen
#

By the way, does adding to the localization of the game outside of Other not work? (0.9.8)

#

Because it didn't for me

royal ether
#

it should, you just have to define everything properly

crisp coral
#

uhh it should

frosty dock
#

it should

mellow crag
#

anyone has a link to the blessing mod?

crisp coral
#

if you're defining it not from a joker then you also need to init_localization()

golden lake
#

itay i think the blessing mod isnt ported to 1.0 yet

mellow crag
#

i know

zealous glen
#

I tried this, I tried outside of init, I tried parsing it myself inside and outside of init and nothing

random sleet
#

steamblotting

royal ether
#

did you loc_parse_string

golden lake
#

steamedmodded

zealous glen
crisp coral
#

ping

zealous glen
#

Intentional

frosty dock
golden lake
#

myst you should ping yourself

zealous glen
crisp coral
#

@crisp coral

#

what why are you hooking it

zealous glen
crisp coral
#

just call init_localization() after defining your localization

royal ether
#

shouldnt you call it after

#

not before

zealous glen
#

Because I tried that too and it didn't work

golden lake
#

im crying oh my god lmao

zealous glen
#

I tried every combination I could think of

frosty dock
#

note that reloads will always eat loc text defined this way

#

well, reloads of localization

crisp coral
zealous glen
#

I can try it again

#

I also know the issue isn't with passing arguments to the tooltip function because when I set the key to negative consumables it works

narrow pollen
#

welp, the best tip for a balatro modder:

#

if you can't do something the right way...

worldly sapphire
#

i'm back, and i still don't know how to create a joker

narrow pollen
#

do it the hacky way

worldly sapphire
#

or even make it work

crisp coral
#

methinks

zealous glen
narrow pollen
#

SUIT BIAS BAY-BEEEEEEEEEEEEEEEEEEEEEE

zealous glen
narrow pollen
#

question tho

#

should i make it say nope instead?

zealous glen
#

no

narrow pollen
#

i'm so proud of it~

#

on one hand, i'm considering nerfing this suit bias thing from 1 in 2 odds to 1 in 3

#

on the other, i think it's fine, given that there's nothing that randomly gives only the sun, the moon, the world, or the stars.

surreal marsh
crisp coral
#

what the fuck lmao

surreal marsh
#

so how to deal with it

#

split file?

#

or just remove all "local"s

nimble sequoia
#

damn you have a lot of local variables in the init

#

i say split but i don't even know if it works because i have not encountered that problem

#

yet

candid cloak
#

Is x$ possible?

zealous glen
# zealous glen Nope

I can make it show the Consumable or Joker Negative tooltips but not the one I passed to localization

surreal marsh
#

well now I found the problem balatrojoker it's because I wrote one redundant end and then all variables below are declared in "main" function instead of SMODS.INIT function, it seems like in INIT function there can be more than 200 locals?

nimble sequoia
#

name, id, loc_txt, this_v

#

i think you can just chop off most of the locals

#

technically you're way off the 200 locals, if i assume right

surreal marsh
#

yeah but doesn't that count as only 4

nimble sequoia
#

ye

#

maybe it was just a redundant end

surreal marsh
#

i hope sobalatrojoker

candid cloak
zealous glen
candid cloak
#

I see

surreal marsh
wooden nexus
#

Not so Random PseudoRandom

frosty dock
#

PseudoUniform

surreal marsh
#

there are weights in get_pack but not in pseudorandom_element so I add weights in it

zealous glen
#

PseudoMassDensity

random sleet
#

i cant say that modifying that function is a good idea lol

#

tons of stuff uses it

surreal marsh
#

i guess seeds will yield different results

#

but is seed important in modded game

wooden nexus
#

Meanwhile me

surreal marsh
#

whats this

wooden nexus
#

My Balatro Archived google sheet

random sleet
#

i use pseudorandom_element for a lot of stuff

wooden nexus
#

Not all the slots but if every joker was different per version Archived would have 13,050 Jokers

surreal marsh
#

so they're easier to get

wooden nexus
#

and that's increasing with every major update of Balatro

frosty dock
#

reversing suit lists and whatnot

#

thunk's code is inconsistent sometimes

surreal marsh
zealous glen
surreal marsh
zealous glen
#

I did that for Cows

wooden nexus
#

But yeah, a lot of versions are gonna be stuck at the unknown for them

#

I'm not someone who's just gonna ask thunk "Hey can I have access to the earlier versions for an archiving process"

#

So most of my research will be from old videos

surreal marsh
wooden nexus
#

That and word of mouth from people

#

So yeah

zealous glen
wooden nexus
#

Balatro

zealous glen
#

Which avoids changing the RNG

frosty dock
wooden nexus
wooden nexus
surreal marsh
#

now I can set weights here and it's convenient

zealous glen
#

Also I think you can find the correct probability so that the result would be the same with or without weights

frosty dock
#

I'd do it but uh... it's not my project...?

zealous glen
#

But then it’s harder

#

Not much but harder

#

At least if you only have two classes

zealous glen
wooden nexus
zealous glen
wooden nexus
#

Yeah, I'm currently going off old videos and old discord posts

zealous glen
wooden nexus
#

lol what?

#

But yeah, the current public version of Archived doesn't really work compatibly with other mods unfortunately

zealous glen
wooden nexus
#

It also is missing stuff like the edition backs and uses the old version

#

I'm mostly waiting on the coding side for 1.0 to be released, that way i can just update my mods then and not have to worry about doing more

#

I also created custom backs for some of the jokers because it'd be confusing aside from the name which version you're using

#

The first 4 backs (skipping the blank one) are all from removed decks

fading blaze
#

Okay, so I've been trying to test out LUA scripting by making a really simple variant of "Raised Fist" that just does the same thing as Raised Fist, but focuses on the right-most/highest-ranked card in the hand instead to do the 2x(chip value) multiplier, just to prepare myself for the inevitable scripting spree I'll be doing once Steamodded updates to 1.0.0.

#

I've got the graphic I want to put in place for that particular joker, but I'm having trouble figuring out how to translate the code for Raised Fist into something that can be read as an SMODS joker type.

frosty dock
#

you can already preview 1.0 btw, a lot of it is already finished

fading blaze
#

Does it work on Silicon Mac though?

#

I'll give it a look here.

frosty dock
#

you're already using lovely 0.5.0 I would assume?

#

you'd just need to switch to the main branch in that case

wooden nexus
#

cut out every joker that didn't appear in the 0.9 versions

worldly sapphire
#

i think i finally got a joker idea, from a roblox item...... lmao