#đŸ’»ăƒ»modding-dev

1 messages · Page 13 of 1

scenic zenith
#

it's the name you give the atlas when creating it

random sleet
#

manipulating suits is relatively easy, manipulating ranks is hard

zealous glen
#

A lovey patch might work too

scenic zenith
#

i called it b_cccdecks

gilded cradle
#

oka i'll try to work on that

zealous glen
nimble sequoia
scenic zenith
#

idk if you can do it that way around

nimble sequoia
nimble sequoia
narrow pollen
#

you know, it's kinda funny when you get so close to what you wanted to do

#

i got fake score updates working, but alas

#

the score calculation is fucking hard coded

random sleet
#

wut

#

what are you trying to do

narrow pollen
#

implement these

#

i have the chips and mult triggering twice for them

#

but the score doesn't update internally

gilded cradle
#

also very quick question is there a good way to test quickly the jokers you mod in?

narrow pollen
#

there you go cm

gilded cradle
#

thanks

narrow pollen
#

when you have those installed

#

go to collections

#

scroll to the joker you want to test

#

highlight it and press 3

maiden phoenix
#

*during a run btw

random sleet
#

hand_chips and mult are global

frosty dock
#

where Xchips

crisp coral
#

i love eval_this.png

random sleet
#

add xchips to the game then

random sleet
frosty dock
narrow pollen
#

also, steam really doesn't like running the lovely injected balatro through the client. fixed that by just pinning it to my taskbar :p

dim ice
#

hey guys how do you give out multiple things at the same time? (ie a joker that gives both mult and chips but not with individual context)

random sleet
narrow pollen
#

god it feels good to make progress

#

now all i gotta do tomorrow is implement brick by brick, and i can release a new version of #1226055105204453428!

#

that feels so nice~

#

oh, and do image changes for at least clever and mad

shell timber
#

you can delete said default joker image

narrow pollen
#

1.) it's actually still being used for the shop stuff

#

2.) i'm tired and lazy

#

just wanted to show my progress quickly before brushing my teeth, putting my sheet and pillowcases on my bed, and passing out

slow ocean
#

i am also tired and lazy

#

to the factories i go

random sleet
#

yeet

random sleet
shell timber
#

x1.2 mult??

crisp coral
#

x1.2 chips as mult

shell timber
#

oh right

random sleet
#

guys should i relese

frosty dock
#

wdym my code is confusing

random sleet
#

what the fuck is an atomic_part

frosty dock
#

uh

#

basically i wanted to be efficient

#

so hands can either define a function that gets called and added to the hand parts in eval_poker_hand, and composite hands could then use that data without having to re-evaluate the hand

#

i thought my usage of hand and _hand was more confusing tho

random sleet
#

nah i see that all the time

arctic grove
#

is there like a skull emoji

#

or laughing cat emoji

maiden phoenix
regal shoal
#

I have made some playing cards with 2 ranks. Does someone knows if it's possible to make it works with Vanilla jokers without taking ownership ? Because basically I need to modify the "self.get_id() == X" by "self.compare_id(X)" ?

random sleet
#

me when i get the win button

#

high card lobotomy build....

loud citrus
#

Yeah, when a card refers to sell value it's usually positive, though I haven't quite figured out the game's way of wording 😅

maiden phoenix
frosty dock
regal shoal
#

Well X-Card basically have dynamic rank but still have only one

regal shoal
#

for fibonacci, not for all the game yet

random sleet
#

also this mod is on steamodded 1.0

arctic grove
rough furnace
#

If you are patching joker behaviour for this, lovely might be useful

arctic grove
random sleet
#

you cant lol

rough furnace
#

Wonder if it's possible to make a compatibility layer for it

random sleet
#

possible yes, sane no

rough furnace
#

Yeah

#

However, I was never known to be sane

#

However, I also don't care

frosty dock
#

it's moreso an issue of not being maintainable

rough furnace
#

I mean once the 1.0 apis get stable, it wouldn't be that bad

frosty dock
#

sure you could just feed an old SMODS.Joker:new() call into a new SMODS.Joker() call, but it's gonna be lacking features

rough furnace
#

But yeah it would be a bunch if work

rough furnace
frosty dock
#

sounds like pain

regal shoal
random sleet
#

cant wait to have the mod with the most jokers (on 1.0)

#

(i will definitely be sleeping when 1.0 stable drops and mika or someone is gonna snipe me but yk the thought's there)

rough furnace
#

Just make a mod that makes jokers in a loop

frosty dock
#

(pov: i actually have a stable release for 1.0 scheduled the second there's a stable lovely 0.5 release)

crisp coral
#

meth pls

rough furnace
#

Speaking of lovely 0.5 meth said he was going to do that one thing and I don't think he has yet

slow ocean
#

Meth stopping all production for all balatro modders

mellow crag
#

We need to cook

rough furnace
random sleet
frosty dock
rough furnace
#

Maybe I should try making a GitHub action to auto release my mods cause I'm lazy

#

But also I'm lazy

ruby geyser
#

I guess I'm doing something illegal trying to call the self.ability here in the tooltip

frosty dock
#

uh yeah

#

tooltips actually get generated in generate_card_ui, where the Card object is out of scope

#

you only have the center, which is identical to the SMODS.Joker object at hand

#

so no state info in tooltips, and you'll need self.config instead of ability

zealous glen
frosty dock
#

btw...

zealous glen
zealous glen
royal ether
mellow crag
#

That’s a lot

royal ether
#

1 whole page... wtf...

#

i did 1 page over like 2 weeks...

ruby geyser
crisp coral
#

I DID ONE PAGE OVER THREE MONTHS

gilded cradle
#

I've tried to make something work at first it was just exploding now it's at least starting the game but it's just not working and it follows the same logic that the game uses in the vanilla code

ruby geyser
crisp coral
#

ya

#

angelacry

zealous glen
#

I have the 10 Jokers I aimed for my beta test ready after, what, 2–3 weeks? But still no full art, and I want playtesters to balance them

royal ether
gilded cradle
zealous glen
#

It’s a bit annoying since it has arrays nested in arrays that don’t contain anything else

royal ether
#

for reference, my code puts a tooltip displaying card stats at the top of the tooltips. i define localization objects in the on_enable function, which should be equivalent to steamodded init

frosty dock
#

steamodded init is on its way out

zealous glen
#

steamodded in’t

royal ether
#

yea im just using simile to help in my explanation :3

ruby geyser
#

I basically copy + pasted this code example you gave me with joker. replaced with my slug

royal ether
#

also just watched my laptop go from 100% battery to 10% in 5 minutes i am not going to be allowed to code on this flight

frosty dock
#

also due to the language API, defining localization will need a specific timing during injection (i love writing docs)

royal ether
#

i think balamod also has a language api but i havent touched it oops

frosty dock
#

lol

royal ether
#

i end up doing everything the hacky way cause im not used to there being an existing api xdd

ruby geyser
frosty dock
#

pretty much, at the start of the injection process, i have to call set_language again, which resets any localization changes made prior

frosty dock
#

that looks jank

royal ether
#

ive checked and nothing bad happens but yea it looks stupid

#

its just because of some if elseif priority

frosty dock
#

btw should i do anything about this straight flush disp text? currently it will cause any straight flush with 10-A and/or any modded ranks to be considered a royal flush

zealous glen
royal ether
#

wtf greater than or equal to sign

frosty dock
#

that's just my font lmao

ruby geyser
zealous glen
royal ether
#

it scares me xdd

#

im just so used to seeing >=

frosty dock
#

it's just a ligature for >=

royal ether
#

yea i can tell from the whitespace

frosty dock
#

js strict equals is literally 3 horizontal bars

mellow sable
wooden nexus
#

talk about luck. I'm just testing the tier 3 vouchers still

royal ether
#

maybe if #face cards >= 3

#

wait no that allows 9 10 j q k

zealous glen
# ruby geyser

I don’t know why it wouldn’t work. Maybe try without the row?

frosty dock
#

tens, aces and any face cards sounds good

rough furnace
zealous glen
frosty dock
#

it needs to behave the same without modded ranks

wooden nexus
mellow sable
#

That’s a lot of vouchers

zealous glen
#

I wonder if we can get thunk to use a consistent get_rank and get_suit method we can override

royal ether
#

voucher gaming

frosty dock
#

but yeah is_rank would be huge

zealous glen
#

Though maybe you’d want both

mellow sable
#

I use get_id for rank manipulation

#

local cgi_ref = Card.get_id
override_maximized = false
function Card:get_id()
    local id = cgi_ref(self)
    if (next(find_joker("Maximized")) and not override_maximized) then
        if (id >= 2 and id <= 10) then id = 10 end
        if (id >= 11 and id <= 13 or next(find_joker("Pareidolia"))) then id = 13 end
    end
    return id
end
zealous glen
mellow sable
#

(The override is to not bug Deck View)

wooden nexus
zealous glen
#

For now, I have a Joker mimic enhancement effects, which is fine by me, but I imagine players would be confused

zealous glen
random sleet
zealous glen
#

Just add the text directly to the column

frosty dock
mellow sable
mellow sable
frosty dock
mellow sable
#

Was that added recently? It might have been like that when I tested lol

frosty dock
#

the old version was more jank, so maybe it did in that one

ruby geyser
frosty dock
#

old = pre-rewrite

mellow sable
#

Oh

#

Wait I did add it pre-rewrite

#

Yeah I’ll check later if that patch is necessary anymore

zealous glen
frosty dock
#

i was thinking royal flush could also require all cards to have a nominal of at least 10, but that wouldn't stop hands like 12 13 14 15 16 from being a royal flush

frosty dock
ruby geyser
zealous glen
wooden nexus
#

Now to add the rest

ruby geyser
zealous glen
# ruby geyser

Does the description function define a variable for it?

wooden nexus
#

Reboot Voucher effect update: 1 in 5 chance to refund Boss Blind Reroll

ruby geyser
zealous glen
#

It’s the first output

ruby geyser
#

It was an empty table

zealous glen
ruby geyser
#

Oh

#

Yeah

zealous glen
ruby geyser
#

No, just adding a value to the first output table

zealous glen
ruby geyser
#

When the table is empty it's just ERROR displayed

#

Let me remove the reference

wooden nexus
#

Okay, so time to figure out how PseudoRandom works

zealous glen
#

I see that Steamodded 0.9.5 had a difference in how it handled main_end what’s next(_generate_main_end(self))?

frosty dock
#

you should not be using 0.9.5

#

it has lots of bugs

ruby geyser
royal ether
#

u gotta uninstall the old version first

frosty dock
#

verify game files on steam

royal ether
#

(delete balatro.exe)

#

or that

frosty dock
#

or just use lovely

royal ether
#

^

frosty dock
#

... wtf

rough furnace
#

That's a new one

frosty dock
#

happens whenever i register something through this API and this API only

rough furnace
#

Is this the steamodded 1.0?

frosty dock
#

yeah

rough furnace
#

Maybe try in the steammodded thread

#

There seems to be more people who know more about this sifff

#

And also won't get drowned out

frosty dock
#

uh it's literally my engine

royal ether
#

i fear aure is the one who knows more

rough furnace
#

Oh I may be stupid

ruby geyser
#

Curious what I've done wrong on this one, assumed I'd just add another row to the table and fill that to add a second row of text but now it's just 2 blank rows

random sleet
#

official poker hand api soon lets goooo

mellow crag
random sleet
#

porting thac is gonna be a nightmare lets goooooo

slow ocean
#

Thac is epic

random sleet
#

only cuz you did the art

#

i wonder if it would be possible to have a pool thats "all consumables", we have the tarot/planet combo pool right

royal ether
#

probably wouldnt be too hard, just go through pairs(G.P_CENTERS) and save every center with consumeable

#

wait

#

theres a G.P_CENTER_POOLS.Consumeables isnt there

random sleet
#

oh is there

royal ether
#

i think so

random sleet
#

idk i cant read

royal ether
#

same dw

#

me walking into needle fight with dna

#

<---- clueless

#

o fuck

#

wrong chat

#

ignore that

#

no one saw anything xdd

fair inlet
#

👀

night pagoda
#

hey, where is the text for blind here generates? have a problem variables not applying here

#

it seem to generate normally in the blind itself

#

I pass variables here using Blind:set_text() btw, almost the same way I do it for Jokers

fair inlet
#

off topic but that looks like aries ♈

royal ether
#

how does the bull(?) do it? the blind that sets momey to 0 if you play most played hand

night pagoda
#

ox, yeah

#

it also passes to Blind:set_text()

#

couldn't find anything besides that

random sleet
#

i think myst determined that the ox's code overrides anything else by default

royal ether
#

yea i was bouta say it might have an override

night pagoda
#

I mean I do too in that function

#

it feels like game uses different function in blind selection menu specifically

#

because, as you see, my vars aren't working here

#

least_played_poker_hand generates in/after Game:init_game_object()

#

any ideas?

#

another weird thing that these values are seemingly swapped

#

I use #2# for most played and #1# for least in localization

regal shoal
crisp coral
#

loc_target is always most_played_poker_hand

night pagoda
#

am I overriding it wrong?

#

oh wait

crisp coral
#

no, it's a base game hardcode issue

night pagoda
#

what is this function

crisp coral
#

function create_UIBox_blind_choice(type, run_info)

#

ui_def.lua

night pagoda
#

soo can I still do it?

crisp coral
#

need a lovely patch

night pagoda
#

urghghg

crisp coral
#

which i could not get to work but you can try

night pagoda
#

really don't want to use lovely patches tbh

#

okay, thank you very much!

crisp coral
#

aure can you patch this within steamodded?

royal ether
#

wait can you just wrap that and create an exception for your blind

crisp coral
#

i couldn't get it to work because the code wouldn't fucking run

#

but yes that'd work

royal ether
#

oh

night pagoda
#

I need to look into it

crisp coral
#

btw firch i only noticed i got credited in bunco after my friends showed that to me

#

and idk why i'm in there lol

night pagoda
#

I'm crediting everyone who helped me one way or another :D

#

(((please tell me if I forgot someone)))

crisp coral
#

what did i help with

night pagoda
#

idk I don't remember

#

but every time I update main page I search for my own questions in discord and write people who answered

golden lake
#

chat is this art

fair inlet
#

what in the jpg compression is this

golden lake
#

it costs -5 dollars

#

-2 dollars to sell

night pagoda
# crisp coral yea

oh this is so lame, it doens't even check for the blind it straight up adds that value to all blinds??

golden lake
#

you get money for picking it up

#

you lose money for selling it

night pagoda
golden lake
#

thats the idea

#

gift card explosion

night pagoda
#

maybe you already accounted for that but I had that problem

#

this was my solution

golden lake
#

oh god

ruby geyser
blissful coyote
fair inlet
#

exponential money generator

golden lake
golden lake
#

you lose 2 dollars every time you sell one

fair inlet
#

i mean

#

negative money is still money

#

🙂

golden lake
#

jesus christ

night pagoda
#

how to create blackhole with your home appliances guide for dummies

fair inlet
#

wait till you get gift card or something

golden lake
blissful coyote
#

abstract synergy??!!

zealous glen
golden lake
regal shoal
frosty dock
#

oh no, exponential scaling

golden lake
blissful coyote
#

need a challenge with just this ante 1

#

that's it

#

lmfao

#

how to explode computer

zealous glen
zealous glen
fair inlet
#

i can see it too

golden lake
fair inlet
#

what fps

golden lake
#

6

fair inlet
#

dayum

zealous glen
golden lake
ruby geyser
zealous glen
#

Wide Candace’s fingers are too wide

golden lake
#

victin what do you think of the jocker

zealous glen
golden lake
#

i love the polychrome

golden lake
fair inlet
#

the jpg compression amplifies this

golden lake
#

all Balatrostuck jokers have the potential to break the game, some just do it against the player instead of in favor of them

gaunt thistle
#

I mean honestly that isn't a feature that needs to be in 0.5.0 as I'd rather keep the release minimal

#

but if it's a hard requirement I can get it done

golden lake
#

the Jocker is a very peculiar joker because you can just use him as free 3 dollars or you can duplicate him to hell and back and make abstract joker really powerful

golden lake
#

yeah that's a synergy

#

but if you dont have it

fair inlet
#

it raises the sell value and then you have true inf money generator

zealous glen
golden lake
fair inlet
#

yes unless gift card

blissful coyote
#

giftcard could work, wait at least 3 rounds

golden lake
#

I might make it -8 dollars to buy and -5 dollars to sell

blissful coyote
#

it's just

golden lake
blissful coyote
#

jocker ...........

blissful coyote
#

I believbe in jocker

golden lake
blissful coyote
#

and I say

#

I believe

#

in jcoekr

#

pray

golden lake
#

Balatrostuck is the only mod unhinged enough to get away with putting a literal FPS bomb into it fr fr

blissful coyote
#

jokes aside I can't wait to test out the bomb

night pagoda
zealous glen
golden lake
#

abstract jocker

zealous glen
#

What rarity is it anyways?

blissful coyote
#

common

ruby geyser
night pagoda
#

hell yeah, what to do when my game crashes by simply closing?

ruby geyser
#

Got it all working now, thanks for all the help @zealous glen!

golden lake
#

common because its a piece of shid

zealous glen
#

When you get a Common Joker, Dragons gives your Jokers +10 Chips

night pagoda
ruby geyser
#

One last question however, for this row I want a red background as is customary for X mult, do I just need to add another layer like in blueprint or is there an easier way?

ruby geyser
zealous glen
#

When you get a Common Joker, Chicken gives your future Jokers +3 Mult

zealous glen
blissful coyote
zealous glen
#

I typed jank but Jane is funnier

loud citrus
#

Funniest thing I've ever seen

blissful coyote
#

jocker has negative sell value

zealous glen
#

Pirate?

blissful coyote
#

so swash would tank

loud citrus
ruby geyser
#

And so it was written, and so it was done

night pagoda
#

okay I tried bruteforcing a variable but it feels like steamodded changes that function too because... uhmm...

#

(this small blind thing happens only for modded blinds)

edgy reef
#

Yeah the language API screwed with a few things

#

(Assuming this is Steamodded 1.0 you're on)

night pagoda
#

nope!

edgy reef
#

Damn

night pagoda
#

I'm still on the whatever version that is

#

by brute forcing I mean literally replacing the whole function with itself but with changing one thing

frosty dock
#

uh I don't think I've seen that happen

night pagoda
#

this is the only change

frosty dock
#

yeah steamodded needs to change that

night pagoda
#

the vars are seem to be hardcoded as mentioned earlier by myst

#

yup, really need that

frosty dock
night pagoda
#

nuh uh

regal shoal
frosty dock
night pagoda
#

I will use it when it will be forced

frosty dock
#

it will be forced in 1.0

night pagoda
#

but a lot of people are too lazy to install it and they can't install it

#

well, until then

frosty dock
#

well then have your stuff break for no reason at all, fine by me

night pagoda
#

(I have it installed but looking at other mods like Reverie & how often people fail to install lovely makes me not want to deal with it for now)

#

true

#

😔 it's about society

frosty dock
#

💀

night pagoda
#

anyways I fixed it in my stinky way

#

feel free to throw rotten tomatoes and cucumbers at me

frosty dock
#

we do a little trolling

night pagoda
#

How do I actually find the least played hand?

#

my brain not braining

hallow forge
#

Run Info

night pagoda
#
local _handname, _played, _order = 'High Card', -1, 100
            for k, v in pairs(G.GAME.hands) do
                if v.played > _played or (v.played == _played and _order > v.order) then
                    _played = v.played
                    _handname = k
                end
            end
            G.GAME.current_round.most_played_poker_hand = _handname```
this is for most played and I have no idea how to change it properly
night pagoda
#

trying to create custom loop for this but it keeps finding least played hand that is also the last in hand list

hallow forge
#

Just pick a random one out of the least played

#

That could be achieved by making a temporary table or creating a copy of the hand lists and shuffling it

night pagoda
#

can't, blind is supposed to make most played hand have the same chips & mult as the least played one, and if the least played one is random then it could be something like royal flush

hallow forge
#

Okay take the lowest base valued of the lowest played and highest value of the highest played

night pagoda
#

???

hallow forge
#

Multiply the base chips and base mult

#

Out of the lowest played hands take the one with the lowest product

#

Similar process for highest valued hands but with the highest product

random sleet
#

you could just prefer ones lower on the tiering

night pagoda
#

nah it shouldn't biased by levels and such

night pagoda
#

I'm really confused with this loop

random sleet
#

that loop isnt consistent since it uses pairs and not ipairs

night pagoda
#

hmm

random sleet
#

also _order is never updated

#

does that code work at all, actually

night pagoda
#

it is from base game..

random sleet
#

that doesnt mean anything đŸ€Ł

night pagoda
#

it works lol

random sleet
#

so all you'd have to do is the opposite of that
start with _played at 2140000 or whatever dumb number and check if the hand is played less than that instead of greater than

zealous glen
#

math.huge I believe

hallow forge
#

2 is pretty a huge number

night pagoda
#
local _handname, _played, _order = 'High Card', math.huge, 100
for k, v in pairs(G.GAME.hands) do
    if v.played < _played or (v.played == _played and _order > v.order) then
        _played = v.played
        _handname = k
    end
end
G.GAME.current_round.least_played_poker_hand = _handname```

I had this
#

but it outputs "spectrum house" which is the strongest hand (that is also least played)

random sleet
#

invert the order comparison too and start it at like -1 or whatever

#

or 1 whatever actually works

night pagoda
#

inverted, started at -1 and...

zealous glen
night pagoda
#

do I need to remove inversion???

zealous glen
#

I think inverting twice would be like a double negation

#

But also IIRC each hand has a number so the choice of 100 might be meaningful

night pagoda
#

I removed inversion and it's still spectrum house

zealous glen
night pagoda
#

aye I can try

#

it starts from flush house?

ruby geyser
#

Just wanna make sure I'm not going crazy, juice_card_until here is the thing that makes the invisible joker jiggle right?

night pagoda
#

I was already confused and now I'm 💀-level confused

zealous glen
#

Because I remember hands having numbers IIRC

night pagoda
#

yeah it always starts from flush house

#

this makes no sense actually

#

pair certainly is not going after full house

frosty dock
#

G.handlist is ordered

#

first element is highest hand

zealous glen
night pagoda
#

I'm iterating through G.handlist now and it's much more reliable (ty aure!)

golden lake
#

i love steamodded 1.0

edgy reef
#

same

random sleet
#

ballstuck

rough furnace
random sleet
#

couldnt index init

hoary sand
edgy reef
#

no

#

Just the alpha version

golden lake
#

the alpha is pretty functional

#

i suggest y'all switch

hoary sand
#

are the logos all a fixed size?

night pagoda
#

finalllyyyyy

zealous glen
golden lake
mellow sable
golden lake
#

just add

#

--- ICON_ATLAS: in header

#

so in my code its

#
--- ICON_ATLAS: HomestuckLogo

...

SMODS.Sprite{key = "HomestuckLogo", path = "bstuck_logo.png", px = 32, py = 32, atlas = "ASSET_ATLAS"}:register()
maiden phoenix
#

Wont it get overwritten by Steamodded 1.0's tag icon later on?

golden lake
#

no

#

the tag icon is just a default for like

#

if you dont specify an icon

maiden phoenix
#

How will you be able to tell if the mod is properly activated then?

random sleet
#

because it will have the correct icon

short surge
golden lake
maiden phoenix
random sleet
#

also btw tags are 34x34

golden lake
short surge
#

I'm interested in both rainbowcat

random sleet
#

smods 1.0 alfalfa is already out on ghub

short surge
#

alfalfafafa

random sleet
#

its alpha breaky breakington tho and you need lovely

short surge
#

when would that be official

hoary sand
random sleet
#

yes

#

but akai is registering it as 32x32

#

:)

golden lake
#

because im stupid

#

also i made this very cool error tag that shows when your mod messes up (its in smods 1.0 alpha)

short surge
#

how mess up is mess up

rough furnace
#

I was like man, I'll have to do some sprite stuff for my mods now, but then realized all my mods that I care about are lovely mods

short surge
#

i thought we'd see the big o' error screen

golden lake
#

basically if your mod don't load correctly becuase its critical deps are missing

#

it'll show this and won't load your mod

#

so say for example you have like

#

an API that you're using in your mod

#

and someone downloads your mod but doesn't download that API

short surge
#

very nice

golden lake
#

the game will load, but the mod will have an error with missing dependencies listed on hover

short surge
#

probably saves half the traffic in modding chat

golden lake
#

smods 1.0 is huge

#

especially now that I've suggested Labels system to Aure

#

Labels work by allowing you to basically put metadata on a Joker using enums

edgy reef
#

There's still some other API to add too (Payout Arg and Challenge API).

golden lake
#

So you can for example, only summon a Joker with a specific Label

#

if you want food jokers only you could use SMODS.Label.Food

#

or if you only want Jokers that deal with Hearts, you could do SMODS.Label.Suits['Hearts']

hoary sand
#

could you have a joker trigger on a certain label being present?

golden lake
#

absolutely yeah

#

it'd be part of the joker's definition

#

well, anything's definition, really

#

you'd be able to put these on Spectrals, Alchemicals, Planets, Zodiacs, Aspects, Subatomics, Tarots

hoary sand
#

(is egg a food)

golden lake
#

I'd argue yes, because that's the theming of the joker

rough furnace
#

I wonder if we could safely have a mod error and not have half broken stuff

hoary sand
#

it's just weird because it doesn't act like the rest mechanically

golden lake
#

if you wanted a diminishing effect you'd have a separate label like SMODS.Label.Diminishing

rough furnace
#

Minecraft tags intensify

hoary sand
#

although coke isn't either so

#

hmm

golden lake
#

That don't behave like basegame food jokers

#

Sopor Pie is one

hoary sand
#

cooking fusion mod

golden lake
#

removes 1 hand size each round until you die

rough furnace
#

Is Mr. Bones a food joker?

hoary sand
#

fusing eggs milk flour -> cake

golden lake
#

no, Mr. Bones is an SMODS.Label.Utility joker

rough furnace
#

Ooh if we have tags line that, then we could like ban stuff for challenges off that criteria

golden lake
#

here's full example list

golden lake
#

tags are the funny things that give you 25 dollar on boss blind completion

hoary sand
#

so does having suit.diamonds automatically include a suit label?

golden lake
#

yeah!

#

the idea I'm thinking is

#

SMODS would autogenerate labels for PokerHands, Ranks and Suits

rough furnace
#

Me when I give a joker a poker hand, rank and suit

golden lake
#

so if my mod adds a PokerHand called Midas Blast it'd have an SMODS.Label.PokerHand['Midas Blast'] label

hoary sand
#

utility jokers are just non-scoring ones right?

golden lake
#

yep, they're jokers that modify the gameplay in a way that doesn't affect scoring

rough furnace
golden lake
#

again, Labels are a metadata system

#

they'd exist to allow mod creators more freedom and abstraction when defining abilities

rough furnace
golden lake
#

i mean it can be whitespace trimmed if you want

rough furnace
#

Although balatro internally does this a lot so I can't really fault you for it

golden lake
#

i just think SMODS.Label.PokerHand['Midas Blast'] fits more with Balatro code convention

#

than SMODS.Label.PokerHand.MidasBlast

rough furnace
golden lake
#

also another thing that could be quite useful would be if you could call label data in calculation logic

#

so instead of having to define suits/ranks/hands on a joker twice

#

you could just define them in labels

#

and then use that label data to do things like compare poker hands or ranks

#

that would provide additional incentive to use Labels over hardcoded values

narrow pollen
hoary sand
#

which one looks clearer

wild gyro
#

i prefer #2

azure wraith
#

what's the context?

hoary sand
#

a mod logo

hoary sand
zealous glen
#

Actually

#

Make it 2 but add a shadow to the wrench

hoary sand
#

like this?

azure wraith
#

the new one looks the best yeah

hoary sand
#

or this

rough furnace
azure wraith
#

i like the thinner shadow better

zealous glen
#

The light source is top left

#

So shadow is bottom right

#

Like you have on the wrench itself

hoary sand
#

oh

worthy depot
#

At arm's length this one looks really good

hoary sand
regal shoal
#

The gold star should have a shadow too in this case ?

zealous glen
# hoary sand ?

Something like this, but the shadow should match the color of the underlying material

#

Including gold

#

Right now it looks a bit more like a hole than a shadow

hoary sand
#

the shadow doesn't touch the gold yet

golden lake
#

also I'd add a light outline around the whole thing

hoary sand
#

my 'slight tweaks' mod

zealous glen
#

Wrench and Shuriken mod

hoary sand
#

ie. slight wild buff and slight straight buff and a couple other things

zealous glen
hoary sand
#

no

#

it's stuff like 'wilds won't be debuffed by bosses' and 'straights can wraparound'

zealous glen
#

I see

#

I recently made a Wild Joker

#

Which is why I asked

#

I don’t think the base game has any

azure wraith
#

tbf
every suit joker is a wild joker

hoary sand
zealous glen
broken vine
#

'straights can wraparound' nice

#

'wilds won't be debuffed' huh

hoary sand
#

like

broken vine
#

i've never had a issue with that but i get it

hoary sand
#

the club won't debuff wilds

#

oh

azure wraith
#

death is still 1 at a time but the suit changing cards, yeah

zealous glen
# hoary sand ?

I think middle has the right level of contrast but it needs something
 something small, maybe just a tweak to the gold shadow

zealous glen
#

Also you have Cryptid

#

And DNA

#

Anyways, I tried to lean into the flavor of wildcards with it

azure wraith
#

i mean it is a cute card for sure

zealous glen
azure wraith
#

since its a common it also doesn't have to be very good

#

wrt its strength

zealous glen
#

I usually make everything Common and cost $1

azure wraith
#

i see

#

do you not just spawn your joker in?

zealous glen
#

Although I’d probably make specific Jokers specific rarities and cost

zealous glen
#

Because it’s inconsistent, so you can’t guarantee you’ll get a specific benefit

azure wraith
#

yeah the inconsistency makes it sound kind of iffy

zealous glen
#

The only one I’d probably leave as is is Glass, although I could buff both it and Steel by less than 50%

gilded narwhal
#

I fixed it

zealous glen
#

Something like:

  • Bonus: +50 Chips;
  • Mult: +6 Mult;
  • Gold: $5;
  • Steel: 1.75 XMult;
  • Glass: 2.5 XMult;
  • Lucky: +30 Mult and $30.
golden lake
#

this is exactly the reason why i suggested mod icons

gilded narwhal
narrow pollen
#

i made new art for square joker, and i'm actually kinda proud of it.

#

the joker itself was made ENTIRELY out of square tool usage.

broken vine
#

đŸ€“

#

sorry, i can't... unsee it

zealous glen
# narrow pollen

Confession: ||I don’t like base game Square Joker art but I do like this
 at least more than the base art
||

narrow pollen
#

yeah, that's

#

literally exactly why i made this

broken vine
#

then mission accomplished!

narrow pollen
#

base square joker is... unsettling to me

#

this is an attempt i made to be less unsettling

#

i'm gonna use it in my personal mod, feel free to use it in yours

#

i figure, "if i'm going to make it tied for the second most expensive joker in the game now, as well as one of the strongest chip jokers for endless... i might as well make it nicer to look at, too"

ionic isle
#

the corners of the card dont look like square tool

narrow pollen
#

pffft.

#

on one hand, i should do that just to be funny

zealous glen
#

I prefer the rounded edges

narrow pollen
#

on the other hand, that would probably require me to figure out custom backs...

ionic isle
#

custom backs? isnt it only 32 pixels?

narrow pollen
#

yeah, but the engine automatically squishes the default sprite

#

for backs

#

to fit square joker

ionic isle
#

i dont see how thats a problem

narrow pollen
#

i mean, fair

#

a lot of jokers have back mismatches anyway

zealous glen
#

Also AFAIK there’s a card back bug

rough furnace
#

I'd be more worried about half jokers back over squares

golden lake
#

chat how do we feel about this

narrow pollen
#

yeah, half joker and vagabond are two i'd love to make custom backs for

narrow pollen
wild gyro
#

jimbo dating sim

broken vine
#

1.6.2

mellow sable
#

Looks great though

golden lake
#

cleared it up a bit more

mellow sable
#

Official modpack support would be fun

#

I know some people here just try and download as many mods as possible so now there would just be a way to expedite that process and keep it sane

golden lake
#

the reasoning behind having an opt-in credits tab is that a lot of mods will have like, a loooot of contributors

#

and having to manage About details of the mod

#

and Credits

#

is kind of ridonkulous

mellow sable
#

The mod I’m working on also has a lot of contributors since I kept track of who made every individual idea

#

And that is going to need its own section

#

So I approve of the Credits idea

#

My original plan was going to be to add a tab in the in-game credits anyway

magic vigil
#

wrong chat

#

oops

#

💀

short surge
#

guess it's time for me to work on a tag for my mod too

narrow pollen
#

where is 1.0

rough furnace
#

It's the current code on GitHub

silent sinew
#

^

narrow pollen
#

oh gotcha

silent sinew
#

to use the 1.0 alpha just downlaod the source code

narrow pollen
#

hoping it'll fix this

#

that should be the ink and color conversion tarots, plus my page of cups

#

also, the page count is kinda fucked

silent sinew
#

need an extra page for all the taro

narrow pollen
#

yeah but

#

3 / 2

wooden nexus
#

Welp

#

Trying to learn aseprite

narrow pollen
#

it's a start!

wooden nexus
#

it's a sketch referencing Buu's Fury sprites and Shintani's Goku

silent sinew
#

if you make a goku joker can you call it joku or goker

wooden nexus
#

That's what it's for

silent sinew
#

btw i think i have a good website for advice on pixel art technique i can get it in a sec if you want

wooden nexus
#

would be appreciated

narrow pollen
#

so what do i need to replace INIT with for steamodded 1.0.0

mellow sable
#

Nothing

#

You just delete it

narrow pollen
#

so... where do i put the initializing code that was in there, then

narrow pollen
#

i'm kinda just wondering where all that code goes

silent sinew
#

it acts the exact same

#

...well maybe not technically the exact same but i didn't have any issues when i did it

regal shoal
#

for me SMODS.findModByID is not defined neither...

#

It's like every method are null after SMODS

narrow pollen
#

yeah, having the same issue

silent sinew
#

you can use SMODS.current_mod for your own mod's id

narrow pollen
#

gotcha!

silent sinew
#

other than those two things and the sprite/object syntax idk what else is different

narrow pollen
#

so how do we get other mod ids?

#

people have done cross-compat stuff, and being able to check for other mods being loaded helps

wooden nexus
#

check in the code for the init

#

i think

silent sinew
#

he's talking about 1.0 where init no longer exists

wooden nexus
#

oh

narrow pollen
#

...i'm asking because the alpha has removed init and findmodbyid

wooden nexus
#

wait what

silent sinew
#

i'm not actually sure tbh

#

probably a question for aure

wooden nexus
#

wait wait... 1.0 is out?

silent sinew
#

no

#

alpha

wooden nexus
#

alpha what?

regal shoal
#

Steamodded 1.0 alpha

wooden nexus
#

oh

#

so tldr i gotta redo every mod

regal shoal
#

And some stuff doesn't work the same

silent sinew
#

its not that bad

#

mostly just syntax changes

wooden nexus
#

Problem: I don't even know the normal syntax to change it

#

lol

silent sinew
#

and the loc_text stuff that you might need to do if your jokers do anything weird with text

wooden nexus
#

So for now I should stop working on archived as a mod and focus on the actual archived project

#

and focus on art for mods

narrow pollen
#

so, Sprite:new is also gone?

worldly sapphire
#

how do i change a booster pack name?

regal shoal
#

Basically you have different "required_params" for each object

rough furnace
#

You can also have dependanxies

narrow pollen
#

and then just a bracket for the name?

rough furnace
#

Not sure

narrow pollen
#

like, SMODS.mod_list["NumBalatro"] or something

rough furnace
#

Not sure

regal shoal
#

Ok so to create a Joker for exemple you just need to do SMODS.Joker({})

rough furnace
#

Try it and see

worldly sapphire
azure wraith
#

is the alpha api finalized yet? asking because I'm wondering if i should continue to make stuff for 0.98 or try to make it for the 1.0 alpha now to save the headache of converting it later

wooden nexus
hoary sand
#

i hate gradient backgrounds

random sleet
#

good

narrow pollen
#

oh goodie

#

some of the example mods in the alpha do not have updated code

golden lake
#

@narrow pollen did you see the UI mockup

#

and if so do you think i cooked

narrow pollen
#

i like it!

#

i'm just trying to figure out how the hell to convert my code to the alpha version of steamodded

spice scroll
#

im getting started actually coding cardsauce, where are the definitions for the base game jokers?

narrow pollen
#

and what the fuck is the new sprite creation template?

spice scroll
#

like how this mentions an e_negative tooltip, where would i find that in the base game files

golden lake
#

so to register sprites you need this:

#
SMODS.Sprite{key = , path = , px = 71, py = 95, atlas = "ASSET_ATLAS"}:register()
#

btw you dont have to append mod path anymore

#

thats redundancy now

#

so you just give it a key

hoary sand
golden lake
#

path is just a path from your assets directory

#

px py and atlas are usually just this

spice scroll
hoary sand
#

generally if you're looking for text check en-us.lua

spice scroll
#

OHHHHHHHHHH that makes a lot of sense ty

#

okay so what im gathering here is to make a new tooltip, id have to declare a new item and then write a decription for it, i can do this in steammodded?

golden lake
spice scroll
#

guest artist tooltip so i can credit people who work on the mod

golden lake
#

ahh I see

spice scroll
#

this is attempt #1 lol

golden lake
#

so um, first off P_CENTERS is like, this big pool of everything in the game

#

G is just referring to the game object everything runs in

worldly sapphire
#

i tried to load a custom name for a Tarot pack and the game just crashes when i try

golden lake
#

I know Codex does tooltips

spice scroll
#

so hmm how would i add to it then

#

ic ic

#

its in a file called overrides

random sleet
#

overrides.lua my beloathed

hoary sand
worldly sapphire
#

idk why

narrow pollen
#

?????????????

#

okay, i moved a mod to a disabled folder i made and it worked...?

spice scroll
#

how would i put thi on a joker in steammodded?

golden lake
#

its in the constructor

#

when you make a new joker and register it

#

you can set blueprint compat

spice scroll
#

oh yeah, im just trying to ge tthe indicator to show up on the jokers description

narrow pollen
#

okay so

#

how do i call a joker object

#

in alpha

golden lake
#
SMODS.Joker{
  key = value
  ...
  calculate = function(self, context)
    ...
  end
  loc_def = function(card)
    ...
  end
}:register()
narrow pollen
#

yeah, i registered it

golden lake
#

do you want to like

#

calculate

#

or loc_def?

narrow pollen
#

i want to get the G.P_CENTERS value

#

and add more values into that after the initial registry call

golden lake
#

hm

#

it should just be by key, no?

spice scroll
#

i feel like im close to this working

golden lake
#

read thing wrong

random sleet
#

if you want unusual entries in your joker's info just put them in the table in the constructor

calm nova
#

anyone know the context for flushes and first played card?

random sleet
#

not enough information, when is this supposed to trigger?

#

next(context.poker_hands["Flush"]) and context.scored_hand[1] respectively, but you'll need a timing context where both of those are valid too

calm nova
#

thats what i needed and wym a timing context?

#

like if then?

random sleet
#

stuff like context.before, context.after, SMODS.end_calculate_context(context), etc

calm nova
#

ahh okay

candid cloak
#

Can someone check the Otralab doc to see if there's a comment on bull, I can't access comments

narrow pollen
#

ONLY ONE MORE MOD

#

THEN ALL MY MODS ARE PORTED TO THE ALPHA

random sleet
#

is that a threat

calm nova
random sleet
#

i dont know what you want your joker to do

#

and also am at work

zealous glen
calm nova
random sleet
#

check how midas mask works

calm nova
#

the code for poly and chances work as well

random sleet
#

so whats the problem exactly

calm nova
#

just not adding poly to first card not sure if im not adding the context right

random sleet
#

whats your code

calm nova
#

how would i send just a piece of the code instead of sending the whole file its kinda big

zealous glen
#

Copy paste it?

calm nova
#

SMODS.Jokers.j_overt.calculate = function(self, context)
if self.ability.name == 'overtheRainbow' then
if context.cardarea == G.play and not context.repetition then context.poker_hands["Flush"] then
if pseudorandom('lucky_money') < G.GAME.probabilities.normal/self.ability.extra.odds then
for k, v in ipairs(context.full_hand) do
if v:poker_hand("Flush") then
v:set_edition({polychrome = true}, true, true)
G.E_MANAGER:add_event(Event({
func = function()
v:juice_up()
return true

zealous glen
#

You can also format it like Lua with ```lua
function foo()
return
end
```

random sleet
#

you dont need to check ability name for starters

zealous glen
#
function foo()
    return
end
random sleet
#

v:poker_hand("Flush") means nothing you're running a poker_hand function on a card object

zealous glen
random sleet
#

youre also missing the timing context

calm nova
narrow pollen
#

if you're wanting to check the hand for a flush, just replace v:poker_hand("Flush") with next(get_flush(context.full_hand))

random sleet
#

midas mask's code is probably in a huge if block with a bunch of others

calm nova
#

yea i didnt understand the timing

zealous glen
spice scroll
#

hey chat, ive gotten this joker to work but it only outputs the "Upgrade!" message and not the +X chips message when it upgrades, what do i need to do? its prob very simple lol

random sleet
#

you want to card_eval_status_text the upgrade part, not return it

zealous glen
spice scroll
#

so just replace return with card_eval_status_text?

zealous glen
spice scroll
#

ahh i see

random sleet
zealous glen
spice scroll
#

i dont lmfao

zealous glen
#

I didn’t write its full name

#

Because you had just written it

random sleet
#

oh, eval_card is a different thing

zealous glen
#

There historical revisionism that makes Autumn’s comment make no sense anymore

spice scroll
#

so i would do something like this or is it simpler

zealous glen
#

I don’t know what inputs it takes but yeah

random sleet
#

you can shorten the localize call to just the k_upgrade_ex text

zealous glen
#

I think

#

the status text already creates an event IIRC

random sleet
#

yeah unless you put instant = true in the table at the end

zealous glen
#

Which you do probably want

narrow pollen
#

anyone here with alpha experience that can give me a tarot template?

spice scroll
#

im basically just trying to recreate runner but it triggers like matador

zealous glen
#

Also IIRC it used to be a Legendary effect

narrow pollen
#

yeah, feels like a lot of people think it should give money every time a boss blind effect activates

spice scroll
#

ok i got this, the effect is working properly but there isnt upgrade! text

frosty dock
zealous glen
zealous glen
short surge
#

yo guys, anybody know of how playing cards of a specific game are saved? I was playing around with sprites and it turns out those sprite will be gone after i restart the game

spice scroll
zealous glen
spice scroll
#

i feel like knowing that would help a lot LOL

zealous glen
narrow pollen
#

YES

spice scroll
#

oh i have

narrow pollen
#

yesssssssssssssssssssssssssssssssssssss

spice scroll
#

and im reading through the card.lua

shell timber
#

how hard is it to port a mod to steamodded 1.0?

boreal token
#

guys, my balatro is on the wrong device

spice scroll
#

wait i might have something

crisp coral
zealous glen
spice scroll
#

alright i got it

short surge
narrow pollen
shell timber
#

alr

narrow pollen
#

though i need to figure out atli now

short surge
short surge
zealous glen
short surge
#

I mean officially

zealous glen
shell timber
#

not yet

short surge
#

kk

spice scroll
zealous glen
short surge
#

but the sprite of it is gone after i close and rejoin the game

zealous glen
short surge
#

it works when i set it, it basically saves a few atlas info

boreal token
golden lake
#

@frosty dock do you know why tallies dont work

short surge
#

oh i c, maybe i should've inject the code in the card rendering part instead

zealous glen
short surge
frosty dock