#đŸ’»ăƒ»modding-dev

1 messages · Page 15 of 1

zealous glen
#

So divisor*q + remainder = dividend

crisp coral
#

ask, don't ask to ask

zealous glen
#

But you didn’t see it because no ping

#

Hence I’m saying I want to ask a question before you look away and don’t see it

crisp coral
#

if you need my attention do ping

night pagoda
#

How do I use draw_card for discarding without making steel cards activate offscreen?

#

I'm making a blind that discards all cards but I can't use the same method The Hook uses because only 5 cards can be selected, and it discards based on selection

zealous glen
#

Anyways, there is draw_card_from and I believe even draw_card_from_hand_to_discard

mellow sable
#

👿

formal viper
#

lol

frosty dock
#

oh no

#

the most useless egg

zealous glen
#

When it’s debuffed

frosty dock
#

not really

#

I guess it doesn't increase in value for temperance anymore

#

but it still loses you $3 either way, regardless of if it's debuffed or not

night pagoda
#

Original question was that I used draw_card, but the cards that went into discard would still trigger (like steel cards)

mellow sable
#

don't do anything yet but behold...

zealous glen
night pagoda
#

I'm now do not want to use draw_card at all because it won't trigger things such as seals

#

Will use whatever the hook uses but I need to somehow increase max highlighted cards

zealous glen
#

The function that computes which effects trigger while a card is in hand versus cards being moved around are happening at times such that the card is physically moved out of hand but the effect has already been computed

#

It's like you can move Jokers around while they're popping off and it doesn't change the original result

frosty dock
#

chat I just had an idea

zealous glen
#

You're chat (cat in French)

frosty dock
#

what if we add a mandatory header field for version number

#

that will prevent <=0.9.8 mods from loading at all with 1.x

zealous glen
#

Oh, Steamodded version

frosty dock
#

no, mod version

zealous glen
#

Mod makers can just not update their versions

#

Maybe mods could require Steamodded of at least a specific version

frosty dock
#

yeah that's good long term

#

short term, I don't want everyone crashing their games because that one mod isn't updated to 1.0

#

making any header field mandatory that isn't already will do

#

I don't want it to be something dumb, and the currently optional values have reasonable defaults or aren't always needed

zealous glen
#

Hence making Steamodded version mandary

#

I think mod makers can just not update their version so it's less helpful IMO

frosty dock
#

well mod versions are useful by themselves, be it for troubleshooting or other

frosty dock
#

if a mod's version isn't maintained, that's on them

#

having modver be mandatory seems good either way, what's a default value supposed to be anyway

#

I see where you're coming from though, your idea also seems useful to have

narrow pollen
narrow pollen
#

well, i guess that gives people precedent to port deprecated mods

frosty dock
#

again, the whole reason for the rewrite was that the old code was unmaintainable

#

whether init is being removed or not, the old way to do literally anything also wouldn't be supported

#

I just don't want the game to crash with 0.9 mods loaded, which means some way of telling from existing code that the mod is outdated is gonna be needed

#

Alternatively that could be done by searching the file content for SMODS.INIT

golden lake
#

that's probably the best solution

#

since that's like, the major breaking change

frosty dock
#

I'd argue it's just the breaking change that causes a crash the earliest if disregarded

golden lake
#

yeah

frosty dock
#

I'll still add versions but it can be optional

golden lake
#

add mod versions!!

frosty dock
#

defaulting to 0.0.0 isn't terrible

golden lake
#

mod versioning is a good thing

#

also how hard would it be to like, check a mod's version against github releases of the mod

#

to show someone their mod is outdated

#

and they should go to the github to update it

frosty dock
#

should be possible given a github link

mellow sable
#

Please do that 🙏

golden lake
#

then add sth like ---REPO: and ---MOD_VERSION:

mellow sable
#

And automatic mod updating with GitHub too

#

It can download the source code file

golden lake
mellow sable
#

And then you can also auto-download and update dependencies by specifying their links

#

May as well add a GUI installer for Lovely and Steamodded while we’re at it

golden lake
#

lmao

#

Balatro modloader

#

but make it CurseForge

frosty dock
#

uh who's gonna implement all that

#

but yeah sounds good

mellow sable
#

Also a funny idea: gradient API

#

To get effects similar to G.C.EDITION

golden lake
#

YES PLEASE

#

a gradient API for text would go so hard

frosty dock
#

wait what's special about G.C.EDITION

golden lake
#

it cycles red/purple

#

dark_edition

frosty dock
#

oh I'll have a look

golden lake
#

iirc it's mostly done by adding an animation thing to the game update

#

i'll post what I have for aspects 1 sec

#
local game_updateref = Game.update
function Game:update(dt)
    game_updateref(self, dt)

    local aspect_list = {
        G.C.TIME,
        G.C.SPACE,
        G.C.BLOOD,
        G.C.BREATH,
        G.C.HEART,
        G.C.MIND,
        G.C.LIGHT,
        G.C.VOID,
        G.C.DOOM,
        G.C.LIFE,
        G.C.HOPE,
        G.C.RAGE
    }

    local anim_timer = self.TIMERS.REAL*1.5
    local progress = anim_timer % 1
    local chosen_aspect_pair = (anim_timer - progress) % #aspect_list + 1

    local left_colour_aspect = aspect_list[chosen_aspect_pair]
    local right_colour_aspect = aspect_list[chosen_aspect_pair % #aspect_list + 1] -- this works?

    self.C.SECONDARY_SET.Aspect[1] = left_colour_aspect[1] * (1 - progress) + right_colour_aspect[1] * progress
    self.C.SECONDARY_SET.Aspect[2] = left_colour_aspect[2] * (1 - progress) + right_colour_aspect[2] * progress
    self.C.SECONDARY_SET.Aspect[3] = left_colour_aspect[3] * (1 - progress) + right_colour_aspect[3] * progress
end
#

it's basically just this

random sleet
#

its basically just this mountain of code

golden lake
#

i'll remove redundancy 1 sec

#

there

random sleet
#

;P just how you're making it sound trivial when i can't even have it all on screen lol

mellow sable
#

I thought about this after realizing I wanted custom gradients for stakes 25-32 of my mod

#

And API would probably help

golden lake
#

you could just set it up with a parameterless constructor that takes a speed and an array of colors

mellow sable
#

Also fun fact: you can alternate text colors using DynaText without any API

#

It’s a vanilla feature

frosty dock
#

oh nice

random sleet
#

The balatro cat

frosty dock
random sleet
#

Your work is incredible and greatly appreciated

golden lake
#

it should also set up a loc_color out of the box i think

#

so it'd be

#
SMODS.Gradient{
  key = "something",
  colors = {},
  speed = 1
}:register()
frosty dock
#

not sure what name is good for tbh

golden lake
#

just calling it I think?

#

you might want to use it for like

frosty dock
#

key:

golden lake
#

badge colors

#

oh true

#

so key, colors, speed

mellow sable
#

Something I also realized with Steamodded

#

The sprites don’t interact with mod prefixes

#

So its very easy to get overlap

frosty dock
mellow sable
#

Couldn’t you just do omit_sprite_prefix or something though?

#

If you want that

golden lake
#

real

frosty dock
#

oh right you can still use omit_prefix in the constructor

mellow sable
#

I feel like modders are just going to assume that the prefix is added (I was one of them until I tried manually affecting it)

#

Oh yeah that also works for overriding sprites

#

But I meant omit_atlas_prefix for trying to find a vanilla vs modded atlas

frosty dock
#

maybe there's a better way to register individual sprites, but to have your sprite have the same key, you would then need to specify the class prefix to the constructor

#

register a joker's sprite, put the same key and prefix = 'j'

golden lake
#

people who register jokers as individual pngs and not a spritesheet are psychopaths and need to be studied

frosty dock
maiden phoenix
#

whistle

mellow sable
#

When I was adding stakes in bulk I realized how good spritesheets are

golden lake
#

i use spritesheets only

#

because im normal

frosty dock
#

I mean we probably shouldn't encourage individual PNGs

mellow sable
maiden phoenix
#

Spritesheets are a pain in the ass when you got a shit drawing program

mellow sable
#

In Paint it was a little annoying to align it

golden lake
#

compile Aseprite

maiden phoenix
#

Too lazy

mellow sable
#

But not too bad

golden lake
maiden phoenix
#

Doesn't solve my laziness

golden lake
#

doesn't excuse it either

maiden phoenix
#

I curse thy with infinite singular sprites

golden lake
#

Aseprite is so good fr like

#

i can set the grid size to 71x95

#

and move everything by a full space

maiden phoenix
#

Huh

golden lake
#

just by double clicking and arrow keys + Shift

frosty dock
#

on creating conventions, how about there's a general default atlas it tries to use for each mod specifically, which is just the mod prefix or something

#

so you would register it by passing the empty string as the key

#

maybe that's dumb

golden lake
frosty dock
#

well it's always possible to just make it mandatory to specify an atlas

maiden phoenix
#

I can see the utility but I don't see how it's that game changer

golden lake
#

it has an in-built outline tool

#

i press Ctrl + O

#

it generates an outline instantly

#

Indexed mode, blending layers

frosty dock
#

like I think something should need to change, since currently it isn't that intuitive what key you need your sprite to have for it to be auto-used

mellow sable
#

I’m imagining that all the atlases have the mod prefix by default and you can omit it optionally

golden lake
#

you mean like, the atlases as in

#

the registered names

#

right

random sleet
#

GIMP is free and shocking competent for pixel art

golden lake
frosty dock
#

SMODS.Joker{key='jjoker', sprite = SMODS.Sprite{...}} đŸ€”

golden lake
#

nope nope nope

#

thats evil

#

and bad

#

and encourages people to do the bad of making each joker a separate png

frosty dock
#

don't take that seriously 💀

random sleet
#

yawn

#

why you being a hater today akai

frosty dock
#

I already said I don't wanna encourage individual sprites

mellow sable
#

omit_atlas_prefix = true and atlas = "stickers" for vanilla stickers, and then just atlas = "stickers" for modded stickers

#

That would make things so much easier

#

I made atlases called “sticker” and “stake” and now I need to remember not to confuse them with the vanilla “stickers” and “chips”

golden lake
#

wait we can totally discourage individual pngs by just

#

ah nvm

maiden phoenix
mellow sable
#

And wouldn’t require much rewriting for other APIs

frosty dock
#

that would also avoid having to use your mod prefix in code

mellow sable
#

Just the same code copy pasted to account for mod prefix

frosty dock
#

wait so are we making atlas mandatory?

mellow sable
mellow sable
frosty dock
#

hm right

#

but no automatic assignment of anything else

mellow sable
#

What are some other things without APIs that would be beneficial

#

I know there are a few joker functions

frosty dock
#

yeah I've been wanting to add some

#

there's also editions I guess

maiden phoenix
#

Evil Aure be like "Settings API"

frosty dock
#

for mod settings, maybe

#

but not without a separate modded jkr file for mod settings

mellow sable
#

Settings API would be huge

#

If I was better at UI I would try making one at some point

gaunt thistle
#

but I'm not going to say any more than that to remain impartial

#

the installation process should get easier as guides catch up. the more popular yt videos are out of date and I think that causes confusion

mellow sable
#

Keeping it all integrated in game is cool though

gaunt thistle
#

agreed

#

that's the holy grail

random sleet
#

r2mm support would be based if it was real

slow ocean
#

first rule of thumb

frosty dock
#

yeah that's fair and all, I'd just like for Steamodded to stay its own thing with all features it might offer

slow ocean
#

if theres an installation guide on youtube that links to a github its probably outdated

random sleet
frosty dock
#

it's great if it works with it, it should just work with the same set of features without

golden lake
#

how do i print to the debug console again?

maiden phoenix
#

sendDebugMessage()

frosty dock
#

sendDebugMessage(message)

gaunt thistle
frosty dock
#

or sendInfoMessage or sendTraceMessage or whatever

#

I use trace for debugging steamodded usually, just for it to be easy to filter

gaunt thistle
#

oh yeah I'll be adding log files before 0.5.0 is released for realsies

#

they should end up in lovely/logs/*.txt

frosty dock
#

poggies

#

I've thought about implementing that myself on the side of steamodded but decided against, good thing I guess

golden lake
#

thank you

zealous glen
#

Like Hiker info

golden lake
#

btw

gaunt thistle
#

I can give you a build if you want lol

gaunt thistle
#

but two times the fun is four times the charm, right?

golden lake
random sleet
#

the Thunderstore App has it

golden lake
#

Balatrostuck strong

gaunt thistle
random sleet
#

but r2modman (ad bloat free edition) doesn't

gaunt thistle
#

I'll need to pester him about it

random sleet
#

:(

gaunt thistle
#

yeah it's lame tbh

#

one sec, let me build

slow ocean
#

akai channeling all the creative energy i have left after work into a beautiful project

random sleet
#

my main thing is i dont want to bother with the headache of thunderstore uploads until it's available to the general public through r2modman itself

golden lake
#

Lyman there's 3 pages of Balatrostuck Jokers rn

zealous glen
slow ocean
#

are you ditching the 4/13 meme

golden lake
frosty dock
#

it's more for not having to specify anything to use the vanilla spritesheet

zealous glen
random sleet
zealous glen
frosty dock
slow ocean
#

quick

#

go

#

go

#

go

random sleet
#

10 pages

slow ocean
#

ok

#

45 jokers

#

thats 3 pages

slow ocean
#

(i dont remember where we got the 4 from)

random sleet
#

idk

slow ocean
#

but the meme is funny number in the pages

random sleet
#

lyman tell me what font i should make the game use

slow ocean
frosty dock
# zealous glen Is it?

if you need an atlas with different dimensions for one joker, you can still specify that atlas

random sleet
#

oh god direct link

slow ocean
#

what would be the consequence of forcing atlases

frosty dock
#

but either way it won't be required to specify one in case you want the vanilla atlas

random sleet
#

i dont even get the preview

#

this is gonna be interesting lol

slow ocean
#

i mean its quite shrimple

slow ocean
zealous glen
random sleet
#

cant you just specify the vanilla atlas same as a modded one

frosty dock
#

I was asking if it should be required that you give the API the key of the atlas you want to use

random sleet
#

or am i stupid

slow ocean
#

lmfao

#

@golden lake we're so back

zealous glen
#

NExT BLIND

#

New typing quirk just dropped

random sleet
#

oh god there's no underscore either

zealous glen
#

This reminds me of (Homestuck spoiler) ||how Caliborn types||

slow ocean
#

lmfaooooo

golden lake
mellow sable
#

It looks good save for the missing characters tbh

zealous glen
#

Does the game use condition events anywhere?

golden lake
#

the real Homestuck font is Courier New Bold, 13 px

#

no antialiasing

slow ocean
golden lake
#

correct

#

watch this

mellow sable
random sleet
#

you cant specify a font size in pixels i think

slow ocean
golden lake
random sleet
#

i still dont know how you couldn't get it to work

slow ocean
#

my god

maiden phoenix
zealous glen
golden lake
#

another detail

#

the Lands/Derse font is Carima

#

16 px

#

no antialias

zealous glen
mellow sable
#

LÖVE wasn’t letting me load font files for some reason

#

And I can’t just use nativefs for it

mellow sable
#

I had it privated lol

golden lake
#

wait no sorry, 24

#

@slow ocean

#

do with this what you will...

zealous glen
#

Garfield


slow ocean
#

oh shit

golden lake
#

like, it's insane how few people know Homestuck just uses Courier New Bold 13px with no antialias and full hinting

#

Hussie built their entire life's work on a default font that comes with your fucking PC

#

and no-one even noticed

slow ocean
#

im too powerful now

random sleet
#

does my port not work for you somehow?

zealous glen
#

Surely an event that creates a copy of itself will cause me no headaches

golden lake
#

autumn how do i change balatro font...

#

@random sleet

mellow sable
#

LÖVE refuses to read my font files for some reason

#

Even when moving them to a safe directory with nativefs

random sleet
#

this is the entire code right

mellow sable
#

I might just do the trick where I put m6x11 in the game dir and use that

#

I tried with using nativefs too and it didn’t help

#

idk why though

random sleet
#

oh god this one's weird

mellow sable
# random sleet

Also for a font I made in an hour this looks surprisingly decent

random sleet
#

i would probably stick with it if it had distinct lowercase

golden lake
#

MathIsFun

#

the mod doesn't work on linux

mellow sable
#

I’m a Windows user

golden lake
#

what is temp-font.ttf

mellow sable
#

I was testing something to try and fix it

#

lmao

#

Try the one AutumnMood uploaded

random sleet
#

(for 1.0)

golden lake
#

gotcha

#

balatrostuck gaming

#

is there a way to modify line height btw

#

in textboxes

zealous glen
#

I imagine you’d need to change text size, and sometimes there are hidden UI objects to create space

golden lake
#

it's line height though

zealous glen
#

Oh I misread

#

I know there are some parameters to rows and columns

#

Some might influence the size of the UI elements

mellow sable
#

And fix up the punctuation

#

Since some of it is rushed

golden lake
#

TEXT_HEIGHT_SCALE = 0.83 is the culprit here it seems

narrow pollen
golden lake
#

simple really

#

adhd

#

also this is perfect now

mellow sable
#

Also CustomFont works so much better in 1.0.1

#

There was a font-related patch that made the fonts all crisp now I think

golden lake
#

btw MathIsFun

#

might want to include line height too

#
    G.LANG.font.TEXT_HEIGHT_SCALE = 0.73
#

this is what i set mine to

narrow pollen
#

i guess i'm just focused more on implementation of stuff

#

and coming up with art along the way

mellow sable
north orbit
#

did anyone make a texture pack for the wild enhancement to look more like a wild card

mellow sable
#

Fixed the k a bit because I realized how unaligned it looks

north orbit
#

like, changing how the enhancement looks

#

it looks kind of invisible to me

hollow marsh
#

So I am trying to make a mod that changes the color of the background when you are in game and I am kind of stuck. In the background.fs file there are 3 variables that I think are relevant, colour_1, colour_2, and colour_3. Changing the value of colour_1 in the bottom of the file can work to change some of the background but not all of it (this result is the pink one). The values being pushed to this file are in game.lua and the values for the colors crom from g.c.background. The only thing that changes anything though is changing the alpha in the L varaible to 0 which makes the end result a darker green (this result is the dark green one). Any advice?

zealous glen
#

There is an ease_background_color_blind apparently

#

From a cursory glance that seems to be the function that changes background color depending on current Blind or state (pack, etc.)

hollow marsh
zealous glen
#

common_events.lua line 311

hollow marsh
#

oh I see it, thank you

#

I'll mess around with it to see if I can get an interesting result

#

found it! You edit the hex value for G.C.BLIND in globals.lua

#

thanks for the help @zealous glen !

zealous glen
#

purpel

hollow marsh
#

it can be any color very easily

zealous glen
#

can it be purple

hollow marsh
#

no

zealous glen
#

Actually seriously can it be DARK_EDITION?

hollow marsh
#

I think all that does is applies a filter over the existing color to make it darker

#

because it's just black

zealous glen
#

It’s the color in Edition badges and a few other elements

#

Importantly the specific color is changing every frame

hollow marsh
#

it's stored as an rgba value from the looks of it in the globals.lua so if there is an easy way to turn that into a hex I don't see why not?

#

I have never programmed in lua tbh so idk how to write that

golden lake
#

chat something's wrong with my balatro

#

what is this language...

wild gyro
#

homestuck?

golden lake
#

correct

broken vine
#

make this the default language of the mod.

golden lake
#

font update!

odd dock
wild gyro
#

same as it ever was

tawny perch
gilded narwhal
#

Yo where should I look to fix this

#

I'm trying to add another fusion joker btw

tawny perch
gilded narwhal
#

The last one

#

Solar flare joker

#

Your pixel art looks rlly cool and it's good practice

tawny perch
golden lake
#

new design, what do we think gang

tawny perch
#

favourite in terms of abilities
i think its quite cool

gilded narwhal
tawny perch
gilded narwhal
#

If someone hasn't done it I'll probably try to make your ortalab stuff

tawny perch
short surge
#

may i request a ping whenever steamodded 1.0 comes out officially?

gilded narwhal
#

I'm so confused

#

And the crash only happens when I hover over the joker

maiden phoenix
#

Your param is self but you use card

#

Also the error might be with the context condition order, careful of priorities, check the og code and use some parenthesis

gilded narwhal
#

Okay it was actually because I'm blind and used the loc_def function instead of the calculate function

maiden phoenix
#

I'm also blind because I didn't see it...

gilded narwhal
#

Also I think one of these names is wrong because this does not lead to the fusion that I wanted

#

Because there's no fusion

maiden phoenix
#

It's just "j_space"

gilded narwhal
#

Oh dang

maiden phoenix
#

And j_burnt

gilded narwhal
#

I had no idea

#

Yo where are the planet cards kept in the game files

maiden phoenix
gilded narwhal
#

Also, so this works for the discards but not for the hands, and I'm curious why because they're the exact same code and also I checked it's the correct context so I'm not sure

gilded narwhal
#

Man I am so confused

#

I just copied the code from space joker into the thing

#

And it doesn't work

neon elbow
#

Hey does anyone have an example of a modded joker which shuffles a card into your deck after you play a hand, all my attempts at creating this have just resulted in increasingly absurd bugs.

wooden nexus
wild gyro
#

basically the same thing

narrow pollen
#

oh real quick, anyone know how to take ownership of a deck in alpha?

#

there it is

edgy reef
#

Took some time to debug due to UI shenanigans

narrow pollen
#

nice!

edgy reef
#

Jokers on payout can be retriggered

narrow pollen
#

not surprised

random sleet
#

flowwey what are you cooking.....

short surge
random sleet
#

oh thats sick

#

if there is anything i would say, it might be better for the transform-to-joker animation to be a flip, rather than destroy

#

like the card moves up to joker slots, flips over, changes its characteristics to the joker, then flips back

near ivy
#

that might not be possible

unkempt thicket
random sleet
#

i know it's possible playing cards are the same kind of thing as jokers fundamentally

#

theres just not usually a usecase for turning either into the other

short surge
#

yeah right now it's already done in a tricky way

narrow pollen
short surge
#

there's actually two cards, one playing card one joker

#

i timed the animation so it looks like transforming

narrow pollen
#

and joker sprites are fundamentally the same as playing card sprites... i think.

short surge
#

some cursed card would look like this btw

random sleet
#

i think all youd need to do is "enhance" it to the joker center

#

and maybe blank out the pcard data in base

short surge
#

it was huge pain for me initially, spent the entire day trying to figure out how it may work the best

random sleet
#

(after you backup the original card that is)

short surge
#

because there's all this card area bullshit

random sleet
#

yeah idk exactly how to do it just thinking aloud

short surge
#

because cards need area, and every area transportation had animation

#

so it always look like a card just flying around

#

also you have to time the event right so it happens in the order you want

#

anyways it was good riddance. The disolving and materializing animation actually worked exactly like how the anime did so i was pretty happy

random sleet
#

oh fair

narrow pollen
#

...why is it that i can't loc_def an existing deck?

short surge
#

the exiting was a little anti climatic tho

random sleet
#

in that case sure, if it improves the reference

narrow pollen
#

wanting to show that black deck starts with the Hieroglyph voucher, not the "-0 voucher"

random sleet
#

idk High Card show tbh

short surge
#

yeah i won't recommend after seeing season 2 LMAO

random sleet
#

lol

short surge
#

smarteyes almost in the de-referencing stage right now after i have done so much for the mod

#

i think advertising this as a reference had turned many people away

#

but at the end of the day it's just enhancing high card (as a poker hand) in balatro

random sleet
#

i just wanted it to be completed first/shrug

short surge
#

soon!

#

the last big item for me is the pack that opens xplaying cards

#

and also, after all are settled, port to 1.0, and then work on more suit support!

random sleet
#

will it have an api if we want to xpcard ourselves

short surge
#

maybe

#

it's actually not at all hard to add more cards for me now LOL, just have to make it nice and easy for everyone

#

but i really don't know how compatible this is to everybody else

random sleet
#

i do personally want to add a buttload of suits and ranks so

short surge
#

I have already attentionally reworked some logic so it supports more mod, but there's always more mod

golden lake
#

is anyone making an XChips api perhaps

mellow sable
random sleet
#

i was tempted to make a general "morefeatures" mod...

mellow sable
#

these effects work by the way (eternal is incomplete atm)

random sleet
#

with xchips, perma mult stuff, etc

short surge
mellow sable
#

I'll probably release a demo when we hit stake 16

#

this is for stake 11

short surge
#

smarteyes better start to think how to make stuff compatible on my end

mellow sable
#

the mechanics are mostly done though

#

just need to make eternal compatible with a bunch of other ways to destroy/modify playing cards, and I should probably make perishable apply to cards that are in the deck/played as well

#

(rental being held in hand makes sense for me)

#

oh and also make a way to auto-compartmentalize my code

#

because I'm sure people will want just the harder stakes without the broken jokers this mod will also add

#

anyway gn

short surge
#

night night

narrow pollen
golden lake
#

i'll make art for a mod for you

golden lake
#

it's way easier to get to say

#

200 chips

#

than 200 mult

short surge
#

but X applys to the both of them right

#

like 200(chips) x 40(mult) x3(Xmult)

random sleet
short surge
#

is no different from 200(chips) x3(Xchips) x 40(mult)

random sleet
#

xchips works differently with 🍌

#

see here

short surge
#

hmmm

golden lake
#

i think its funny

#

and it does make a difference on uh

#

plasma deck

#

pushing your chips value higher will get you a higher possible average

#

im pretty sure

#

wait no

#

it doesnt

#

youre right lol

random sleet
#

however

#

xchips funny

short surge
#

tru

#

haha

random sleet
#

tru

#

i also had the idea for that mod to have negative pcard support so

short surge
#

emmm, like it doesn't take up hand limit when drawn?

spice scroll
#

anyone know how to make custom win/loss quips?

golden lake
#

autumn would you like to make a john egbert joker for balatrostuck

#

or a jade harley joker

#

just 1

#

i will make the art (as you instruct)

#

you will code

random sleet
#

i have no ideas

#

im also only like 1/4th (maybe) of the way into hs

golden lake
#

jade harley tho...

random sleet
#

best idea for her from me is gonna be the same thing you have magic cue ball as

#

i am just not qualified to help you lol

spice scroll
#

ok so i have this code working in game

#

the problem is undoing the hands gained at the end of the round makes it not count the money from those hands

#

what should i change context.end_of_round to?

queen scroll
#

use g.game.current_round.hands

#

then you don't need to reset it afterward, it will just work

spice scroll
#

instead of round.resets.hands?

queen scroll
#

yup

spice scroll
#

do i leave ease hands played

random sleet
#

cant you just ease hands

#

pretty sure that func changes the variable cheese mentioned

queen scroll
#

actually yeah, just use ease_hands_played and do nothing else

#

(i should know i literally did exact thing this like 30 minutes ago)

spice scroll
#

so like this then

queen scroll
#

yup

spice scroll
#

cool

#

what do you think of the joker btw

queen scroll
#

assuming it's a rare or legendary

#

right?

spice scroll
#

easier access

#

yea

random sleet
#

cant you check next(context.poker_hands["Flush"]) instead of listing every flush hand

spice scroll
#

then this is the other legendary

spice scroll
queen scroll
golden lake
#

not really

queen scroll
#

it's only useful in very niche cases

random sleet
#

scaling inconsistent mult lets goooo

spice scroll
#

well its +0-22 mult each ante

golden lake
#

you're forgetting that it creates a negative joker you can sell for money

queen scroll
#

you have to remember, when you get a legendary joker you don't know what it will be in advance

#

that makes its balancing different to other jokers

spice scroll
#

its mostly designed thematically because its for a streamer who does game corruptions

random sleet
#

+3-25 mult per ante with abstract joker 🎉

golden lake
#

you have to remember chicot exists

queen scroll
random sleet
#

wait fr

#

way more than i thought

golden lake
#

thats a lot

random sleet
#

also

queen scroll
#

i thought $3 + $4 for negative

spice scroll
queen scroll
#

that's not legendary worthy

random sleet
#

literally all basegame legendaries not named perkeo are either dogwater or require face cards

golden lake
#

type A chatters be like

queen scroll
golden lake
#

btw do i take him (ignore the price tag he gives you 5 dollars when you pick him up and steals 2 when you sell him

spice scroll
#

i appreciate the critique tbh

random sleet
#

legendaries are already niche despite their pickup obfuscation

spice scroll
#

but for vinny i do wanna do something with misprints

golden lake
#

^

random sleet
#

oh is vincenzo The Man Himself?

golden lake
queen scroll
golden lake
#

in addition to creating negative misprints

random sleet
#

i had a run with yorick on red deck where i got both discard vouchers and he still wasnt the best vanilla joker i was carrying

queen scroll
golden lake
#

balatrostuck legendaries are pieces of shit

random sleet
#

see thats good tho

#

niche as hell

#

but good as fuck in that niche

#

makes getting soul actually feel good instead of "man thats only half a hermit"

golden lake
#

he sucks (the guy on the card)

#

then theres abraxas <3

spice scroll
random sleet
#

oh i seeee

golden lake
#

i loooooove abraxas

random sleet
#

im not deep in the vinny lore

golden lake
#

hes so friendshaped

#

autumn do you like abraxas

random sleet
#

birb noodle

spice scroll
#

my ex has an oc that is so abraxascore

golden lake
#

yooo

queen scroll
#

has anyone here coded a food joker before? i literally copied and pasted the expiring code from bean and it's giving me an error

spice scroll
#

i have

kinda

#

but my code is prob not good lmao

golden lake
#

i've coded 4 and i will take the secret of making a food joker to the grave

queen scroll
#

i think it's somehow setting itself to nil before it finishes its animation

spice scroll
golden lake
queen scroll
spice scroll
#

huh

#

weird

queen scroll
queen scroll
#

damn that was easy

golden lake
#

the repo is private and the mod isnt out for public

queen scroll
#

dammit

queen scroll
#

what's the repo link btw??? it's for a school project

golden lake
#

not telling you also the repo is literally private for now

#

also i don't believe in formal education

queen scroll
#

*cool project

#

aka my mod

golden lake
#

but for real though, just debug the code LOL

narrow pollen
#

so how would i go about removing the "hearts?" suit

golden lake
#

attempting to remove it will result in IMMEDIATE death

queen scroll
#

but what if i want to transform the left selected card into the right selected card?

golden lake
#

not immediate Death

#

immediate death

#

there's a difference

queen scroll
#

idk what you're on about

spice scroll
#

but yeah uh, anyone know how to rewrite jimbos quips? thought it was misc.quips.lq_1 but its giving me an error

golden lake
#

you cant

#

this is just what he says

#

like this isnt coded in

#

jimbo just actually says that

spice scroll
#

ok but fr tho

golden lake
#

yeah fr

long gust
golden lake
#

i should not be allowed to make mods

edgy reef
#

What are you cooking

golden lake
#

simple mafs

#

Pisces (Zodiac)

Played Queens add $(level) to interest amount
Each Queen increases interest rate by $1

#

in this graph

#

x -> number of played queens

#

a -> level of Pisces

#

d -> dollars you have

random sleet
#

i just commented out the hearts? constructor

golden lake
#

y -> dollars expected

random sleet
#

its in core/game_object.lua

golden lake
#

you can literally get 0 interest by playing too many queens

golden lake
#

@edgy reef this is so funny

#

playing 4 queens and playing 8 queens gives literally the exact same money at end of round

#

same with 7 and 14

cinder cosmos
#

I'm a noob guys and I have a blank joker template and mod loader etc and I want to do Hello Kitty jokers and I don't know what to type in blank joker, is there a list of effects etc I can use because I'm not a programner? I've seen guide but it just says "here you can describe effects of your joker" but idk the codes 😭

random sleet
#

theres not much "plug and play" support for effects, you'll probably have to code them yourself; fortunately, the game's own code is accessible with 7zip on Balatro.exr and you can usually find an example of something from another mod if you peek at their code.

cinder cosmos
#

I hope I'll figure out how to do at least one joker like +4 mult on my own, thank you for the answer

random sleet
#

its definitely not the worst way to learn Basic Programming but it can definitely be a bit obtuse, don't fret if you don't understand something right away

#

plenty of people here are rather knowledgeable about how the game handles things in at least a general sense

#

so if you're trying to get started, don't be afraid to ask for help. we all started somewhere, etc etc.

(just try not to be annoying about it (i.e. don't just randomly ping people or spam your question) and respect that people may or may not be available at any given time.)

cinder cosmos
#

Thank you for your support but I think I am too dumb to ask questions because I don't even know what questions should I ask

#

I don't understand why this blank joker says it adds x1.5 mult In-game but there's nothing about it in it's code

random sleet
#

unfortunately i am not at home rn so idk if i can be much help haha

#

sorry ^^"

frosty dock
#

the game's code but also other mods can be of help for getting started

#

some vanilla effects don't trigger based on the name of the joker, but on some property in its config table, like the sinful jokers that give mult for each card played of a specific suit

cinder cosmos
#

It could take a lot of time to explain it to me lol

cinder cosmos
#

I'd be a waste of time for you guys, thanks for everything but I think I better give up

frosty dock
#

oh you're not a waste of time, we're happy to help anyone out!

#

all game objects like jokers and consumables and whatnot (at least their initial config) are defined in the function Game:init_item_prototypes() in game.lua

#

often, these special config values like I said earlier aren't what we need, in that case it can be useful to adapt the code of an existing joker to fit the needs of the one you want

cinder cosmos
#

I found what you talking about in balatro.exe and this will probably help me somehow and I've seen in one of guides about ownership or something

#

I just want to do let's say +20 chips joker

#

Nothing special

royal ether
#

a great way to get started is to peek at other peoples code

#

especially if their mod's jokers do something similar to what you want to do

fading blaze
#

...admittedly, I'm a little afraid to get the attention of one of the devs here, regarding any form of critique/feedback on some visual assets I've made in the style of the vanilla, unmodified game.

royal ether
#

post some pics, and someone will respond, most likely

#

we (usually) dont bite

cinder cosmos
#

I bite be careful

crisp coral
#

(ignore these bites

zealous glen
#

Most complicated effects require defining a calculate_joker function

fading blaze
#

Ah.

I'm more afraid anyone with LUA experience will snatch up the assets/concepts for the mod I have and take credit for 'em, I guess.

Not that I have anything to gain from keeping the assets to myself, I'm just a bit of a recluse.

random sleet
#

given the backlash the last person who tried that got, i'll bet you're fine

royal ether
#

^

#

what happened to that person anyways

zealous glen
#

Basically at specific moments the game goes over the list of Jokers, gives them some context, and asks them to calculate themselves. That’s when they can apply their effects

Some effects are hardcoded elsewhere, rather than calling calculate_joker

fading blaze
#

I mean, hey, if the community's got my back, then I'll share what I've got.

random sleet
royal ether
#

yea if anyone ever steals ur art, let everyone know and we'll kick up a storm

zealous glen
#

By the way @frosty dock any plans to add new contexts and calculate_joker calls people can use rather than everyone adding calculate_joker in the same hook?

crisp coral
royal ether
#

someone stole art

#

for their mod

zealous glen
crisp coral
#

chinese dev stole a bunch of stuff from mika's

zealous glen
#

dang

candid cloak
#

Did they get banned?

royal ether
#

did we even ever find their discord username

#

i was kinda new still when it happened so i wasnt around as often as i am now to know all the details tbh

frosty dock
zealous glen
frosty dock
#

I've thought about adding a context API, but you would need to patch in the call where you need it either way, so not much use in that

zealous glen
frosty dock
fading blaze
#

Just now adding a TXT file to give more gameplay context to the existing card assets I've come up with.

I'll be sending a ZIP file here fairly soon.

frosty dock
zealous glen
#

So the mod doesn’t itself need to add it

random sleet
frosty dock
#

you could have calculate joker calls literally anywhere though

zealous glen
#

Not niche effects

#

There’s no point in an API for one-of-a-kind effects

frosty dock
#

yeah common effects could be added

zealous glen
#

The standard examples are Jokers that are hardcoded instead of calling calculate_joker

#

Like Golden Joker

random sleet
#

payout api is a thing right

zealous glen
#

Idk

#

But it’s just an example

royal ether
#

i remember someone tinkering with payout

#

dont remember what became of it tho

zealous glen
#

There are other hardcoded effects which I believe would benefit from having an unified calculate_joker call

#

Or nonexistent effects which could be added if they were deemed common enough among mods

#

Like “sell another Joker” or “when this Joker is destroyed”

royal ether
#

also i did get a payout feature working for balamod jokerapi if yall wanna look at it

frosty dock
#

quick reminder that steamodded isn't my project and anyone can submit anything they want to see added as a PR

royal ether
#

true

zealous glen
#

But those examples are mostly subjective because I’m implementing them, but I can name some mods that use them

random sleet
#

idk how to git :dumb:

frosty dock
#

payout arg API is a pull request but hasn't been merged yet

royal ether
#

me neither i just use github desktop

#

its like git for dummies

zealous glen
fading blaze
#

Should I sent the assets to the mod I've been wanting to make as a ZIP file here, or...?

zealous glen
#

I did write an API actually, which mostly works, but I’m waiting for
 idk (NegativePlayableAPI)

frosty dock
fading blaze
#

Understood.

random sleet
#

maybe i should look into pr'ing smods but i dont wanna mess up your nice and neat code lol :stilldumb:

frosty dock
zealous glen
#

That’s fair

frosty dock
zealous glen
#

Do you people have any suggestions for contexts which would be useful for multiple mods? So far I have those three

#

Maybe a fourth to adding a Joker to the deck if set_ability doesn’t cut it, and another while generating shop contents. Maybe pack contents if there isn’t one.

maiden phoenix
#

Start of shop one would be cool too

#

If thats what you meant by generating shop contents

fading blaze
#

It is done.

zealous glen
frosty dock
zealous glen
#

also name your .zip files totally_non_suspicious_file.zip for maximum trust

frosty dock
#

lol

fading blaze
zealous glen
narrow pollen
#

maaaaaaaaaaaaaaaaaaan

#

why is it so hard to disable the alpha suit

random sleet
#

the... what

frosty dock
#

Hearts?

#

you can literally just remove its definition

#

or do SMODS.Suits['Hearts?']:delete()

narrow pollen
#

i swear i did that and it yelled at me

#

like, idk

#

yep

#

game crashes when i start a new run

#

do i have to go through every deck and just

#

remove all the "Hearts?" cards first?

#

you'd think that'd be something that the API would take care of but

long gust
#

retexture hearts? to be green

narrow pollen
#

i'm moreso just... wanting standard 52-card decks again--

long gust
#

abandoned deck should be 50 cards now, that's close right?

crisp coral
#

okayi fixed ancestor

random sleet
#

??? works for me

zealous glen
crisp coral
#

what the fuck do you mean

zealous glen
#

Though I don’t currently do anything with it

random sleet
#
Oops! The game crashed:
No```
crisp coral
#

oh i think i may know why

#

@frosty dock blind save/load functions does not save extra variables added to the blind

#

so atlas doesn't get saved

frosty dock
#

oh what a shame

crisp coral
#

though i don't know why it only fucked up when playing the blind and not generating the blind select

#

NEVERMIND it just

#

always fucks up

#

uhhh did i do it idk

frosty dock
#

damn

crisp coral
frosty dock
#

bleh

narrow pollen
#

where the hell does it even get the hearts? suit FROM

#

oh

#

there it is

frosty dock
#

smh

#

we do a little trolling

random sleet
#

you should probably disable it before you forget for stable lol

frosty dock
#

i mean I'm done testing that part

#

sure i can get rid of it

crisp coral
#

any way to add localization without putting it in a gameobject?

unkempt thicket
#

Cool egg

maiden phoenix
#

I wish I was at least half as cool as him

mellow sable
#

glass cards that can never break

odd dock
#

thats strangely aweome

crisp coral
#

piss stake

mellow sable
#

I have a question about pee stake actually

#

right now the way I have rental and perishable setup they trigger if the card is held in hand at end of round

odd dock
#

if its for cryptid based on how you get them you might want to make it so they can't be modified if they're eternal

mellow sable
#

I think it makes more sense for perishable to also trigger if the card is in the deck

crisp coral
#

ya

odd dock
#

ya

mellow sable
#

plus the stakes are already brutal enough, this can alleviate the pain at least a bit

odd dock
#

who said we wanted to alleviate the pain?

mellow sable
#

yeah, but I don't want to add too much complexity to the mechanic

#

I'll probably just change it to be across the whole deck

odd dock
#

fair

crisp coral
#

i'm going to sleep now bye chat

mellow sable
#

bye

odd dock
#

G

mellow sable
odd dock
#

goodnight myst

#

piss stake right after shit stake huh

mellow sable
#

yep

#

oh also

odd dock
#

is the next one "moss stake" perhaps?

mellow sable
#

silver stake

crisp coral
#

also attached image may be relevant to something i'm doing

mellow sable
#

ok so I also have to loop through G.discard and G.deck

#

not just G.hand

odd dock
crisp coral
#

puke stake

mellow sable
#

lmao

#

the colors are already pretty finalized but if anyone wants to draw a stake and sticker sprite I can do that

odd dock
#

yeah vomit stake

#

i'll consider it later today if i remember, shouldn't be that hard

mellow sable
#

alr

#

there's already spritesheets in the cryptid github you can use to reference

ruby geyser
torpid raptor
#

The Goker...

open garden
#

Eggker

frosty dock
#

maybe I should add a way to do it independently of another object

royal ridge
#

if self.ability.name == 'Spare Trousers' and (next(context.poker_hands['Two Pair']) or next(context.poker_hands['Full House'])) and not context.blueprint then
just wanna know, do spare trousers need to additionally check for full houses?

frosty dock
#

no

#

poker hand eval handles setting two pair as well if there's a full house

#

perhaps it was needed before and has become redundant

royal ridge
#

huh

#

good to know, thanks

coral forge
#

Is there a way to get the game to launch without steam running? The ram overhead from steam when running multiple copies at once is bottlenecking me atm

frosty dock
#

I'm pretty sure the answer is no

rough furnace
#

There's also steam emulators you can use

gaunt thistle
#

technically piracy

rough furnace
#

Is it?

gaunt thistle
#

they're dubious since they're meant to bypass steam DRM

rough furnace
#

I mean is it really DRM?

#

Also is it piracy if I own the game?

frosty dock
coral forge
#

I mean it would enable piracy I guess, but in theory I think they would be allowed if you had rights to the game and the emulator didn't use any stolen or copyrighted code. I think?

rough furnace
#

I mean every kind of emulator could enable piracy

coral forge
gaunt thistle
#

it's the best you're going to get without us going into a rule-breaking discussion :-)

#

it's pretty lightweight

coral forge
#

Alrighty, thanks!

gaunt thistle
#

good luck!

mellow sable
#

are you all ready?

coral forge
#

Is this an alternate stakes mod?

#

Seems neat

mellow sable
#

more stakes mod

coral forge
#

Oh so is that on top of gold etc? Oof

mellow sable
#

yep

coral forge
#

I guess that would at least give me an excuse to go back to the fun decks instead of banging my head on the last few gold stakes

bold osprey
#

Well, that is funny

frosty dock
bold osprey
mellow sable
#

becuase idk how to do that

frosty dock
#

poker hand api implements pages, ig you have that to go off

#

or I'll do it once merged or whatever

mellow sable
#

I probably would merge it if not for it breaking on profile switching

#

Actually that may have been because I had the API as part of a mod when testing that

#

Rather than in loadAPIs

bold osprey
#

Where can I find an example of redefining the text that appears on a joker/tarot card ? please

mellow sable
#

Yeah no, it still completely breaks

#

It looks like it has something to do with trying to register the stakes twice or something

frosty dock
#

try moving everything in inject to register instead

cinder cosmos
#

I give up, was trying all day long on my own but in result I had crashes and nothing was working, maybe one day if someone records the video I'll try again, it's too complicated :c

#

I tried while taking other mods as an example but I am literally too dumb 😂

#

Thanks for motivation guys, that was a great experience anyway

gaunt thistle
#

is it crashing at startup?

#

ah wait we're in the dev chat, I can't help harold

cinder cosmos
#

And yeah, it crashes at startup

gaunt thistle
#

I can help if it's lovely related but I'm useless otherwise

narrow pollen
#

hmm. should i make the sin jokers have a 1 in X chance of replacing other suit conversion tarots with its own?

maiden phoenix
narrow pollen
#

or even a stacktrace could help, sometimes

frosty dock
#

what is this guy doing here đŸ€”

narrow pollen
#

isn't there a voucher or something that makes spectrals invade arcana packs?

frosty dock
#

you see this is round 0

#

help they're taking over my game

narrow pollen
frosty dock
#

nope

#

uh

narrow pollen
#

i think that soul_type might have something to do with it

#

yep

#

because remember

#

the soul can be found in both spectral AND ARCANA

#

and then you finding three of them can potentially be explained by can_repeat_soul

frosty dock
#

yeah i set it up in a way where it can be replaced either when generating a soulable card of its own set, or another specified one

narrow pollen
#

but that's my analysis of your code

frosty dock
#

yeah you got it

#

I'm basically replacing 70% of all tarot/spectral pack cards with useless trash

narrow pollen
#

you made it sound like that isn't exactly what you intended

#

hence why i went "oop, yeah there's your problem"

frosty dock
#

oh no it's exactly what I wanted

narrow pollen
#

...

maiden phoenix
#

Like they can show up multiple times?

frosty dock
#

allows repeats of it in the same pack

maiden phoenix
#

Oh alright

narrow pollen
#

someone wanna tell me why this code isn't printing anything when i started with vagabond and lusty joker?

frosty dock
#

technically also allows it to show up if you're holding one already

narrow pollen
#

it's not printing the type of card spawned, and it's not printing "Hearts"

frosty dock
#

wdym by starting with these jokers?

narrow pollen
#

i mean, spawning them in with debug mode

frosty dock
#

yeah that doesn't call create_card

narrow pollen
#

but i'm talking about the tarots spawned by vagabond

frosty dock
#

oh i can't read apparently

night pagoda
#

hey devchat is it possible to do stuff with debuffed context.other_card in Jokers calculation?

narrow pollen
#

i'm just trying to see if i can have generated tarots (and maybe playing cards) more greatly favor the suit of the sin joker in question

frosty dock
#

(shop rates anyone?)

night pagoda
#

I tried that and it didn't get called

#

maybe messed something up

frosty dock
#

me too maybe, I thought I had defaults working? it's just giving me jimbo

night pagoda
#

it feels like debuffed cards do not even "exist" in context.other_card in G.play

frosty dock
#

i think they get skipped for context.individual somewhere else

night pagoda
zealous glen
#

Not debuffed playing cards

night pagoda
#

oh shoot

#

I can't find anything then tbh

#

I'm not even sure how I'd bypass that

narrow pollen
#

found the problem

#

or... so i thought.

random sleet
#

that should be ipairs yeah

worldly sapphire
#

is there a way to put custom music in balatro?

narrow pollen
#

but it's not even printing out the type of card created, actually

#

and it should at least be giving me that... right, autumn?

frosty dock
#

got shop defaults working (these are both test cards)

zealous glen
#

Like Herobrine

narrow pollen
#

"fixed" coding

zealous glen
#

Maybe a new UI element that just reads “Juice: 80%”