#đ»ă»modding-dev
1 messages · Page 15 of 1
ask, don't ask to ask
I did ask before
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
if you need my attention do ping
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
I donât understand this question
Anyways, there is draw_card_from and I believe even draw_card_from_hand_to_discard
đż
lol
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
draw_card_from does something weird and spawns floating cards around
Original question was that I used draw_card, but the cards that went into discard would still trigger (like steel cards)
don't do anything yet but behold...
Without thinking too hard about it, maybe it's due to event handling
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
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
chat I just had an idea
You're chat (cat in French)
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
Oh, Steamodded version
no, mod version
Mod makers can just not update their versions
Maybe mods could require Steamodded of at least a specific version
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
Hence making Steamodded version mandary
I think mod makers can just not update their version so it's less helpful IMO
well mod versions are useful by themselves, be it for troubleshooting or other
I agree but see
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
see that's why i didn't want to remove init completely; i would have preferred to keep backwards compatibility with 0.9.8 mods, so we don't have that "update or uninstall" ultimatum posed on mods created by developers that might not be willing to put in the effort to port
its a growing pain tbh
well, i guess that gives people precedent to port deprecated mods
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
I'd argue it's just the breaking change that causes a crash the earliest if disregarded
yeah
I'll still add versions but it can be optional
add mod versions!!
defaulting to 0.0.0 isn't terrible
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
should be possible given a github link
Please do that đ
then add sth like ---REPO: and ---MOD_VERSION:
half of #âă»modding-general traffic eliminated, just like that
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
wait what's special about G.C.EDITION
oh I'll have a look
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
its basically just this mountain of code
;P just how you're making it sound trivial when i can't even have it all on screen lol
I thought about this after realizing I wanted custom gradients for stakes 25-32 of my mod
And API would probably help
you could just set it up with a parameterless constructor that takes a speed and an array of colors
Also fun fact: you can alternate text colors using DynaText without any API
Itâs a vanilla feature
oh nice
The balatro cat
yeah that doesn't seem too bad to make an API for
Your work is incredible and greatly appreciated
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()
not sure what name is good for tbh
key:
Something I also realized with Steamodded
The sprites donât interact with mod prefixes
So its very easy to get overlap
mainly so the ability to change vanilla sprites is preserved
real
oh right you can still use omit_prefix in the constructor
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
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'
people who register jokers as individual pngs and not a spritesheet are psychopaths and need to be studied
there's no interface for trying to find an atlas though, you just index G.ASSET_ATLAS usually
whistle
I do that a little bit
When I was adding stakes in bulk I realized how good spritesheets are
I mean we probably shouldn't encourage individual PNGs
The omit argument will then give you vanilla ones versus your modded ones
Spritesheets are a pain in the ass when you got a shit drawing program
In Paint it was a little annoying to align it
compile Aseprite
Too lazy
But not too bad
there are GUIDES ONLINE
Doesn't solve my laziness
doesn't excuse it either
I curse thy with infinite singular sprites
Aseprite is so good fr like
i can set the grid size to 71x95
and move everything by a full space
Huh
just by double clicking and arrow keys + Shift
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
see this?
well it's always possible to just make it mandatory to specify an atlas
I can see the utility but I don't see how it's that game changer
on its own yeah but aseprite has like 5 billion other features
it has an in-built outline tool
i press Ctrl + O
it generates an outline instantly
Indexed mode, blending layers
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
Iâm imagining that all the atlases have the mod prefix by default and you can omit it optionally
GIMP is free and shocking competent for pixel art
gimp can suck an egg
SMODS.Joker{key='jjoker', sprite = SMODS.Sprite{...}} đ€
nope nope nope
thats evil
and bad
and encourages people to do the bad of making each joker a separate png
don't take that seriously đ
I already said I don't wanna encourage individual sprites
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â
Say it, say that you want to enter our house and choke us with our pillow
hm yeah that makes sense
And wouldnât require much rewriting for other APIs
that would also avoid having to use your mod prefix in code
Just the same code copy pasted to account for mod prefix
wait so are we making atlas mandatory?
I should probably also change applied_stakes in stake API to do this
It should still default to vanilla if its not defined imo
What are some other things without APIs that would be beneficial
I know there are a few joker functions
Evil Aure be like "Settings API"
Settings API would be huge
If I was better at UI I would try making one at some point
I mean tbf r2mm should work with most balatro mods
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
Keeping it all integrated in game is cool though
r2mm support would be based if it was real
first rule of thumb
yeah that's fair and all, I'd just like for Steamodded to stay its own thing with all features it might offer
if theres an installation guide on youtube that links to a github its probably outdated
"keep it simple, stupid"
it's great if it works with it, it should just work with the same set of features without
how do i print to the debug console again?
sendDebugMessage()
sendDebugMessage(message)
I merged it like two months ago it better be real at this point
or sendInfoMessage or sendTraceMessage or whatever
I use trace for debugging steamodded usually, just for it to be easy to filter
oh yeah I'll be adding log files before 0.5.0 is released for realsies
they should end up in lovely/logs/*.txt
poggies
I've thought about implementing that myself on the side of steamodded but decided against, good thing I guess
thank you
I know I wanted to add some utilities which might come up in more than one mod and itâs be better to be unified
Like Hiker info
btw
it makes more sense for lovely imho
but two times the fun is four times the charm, right?
the Thunderstore App has it
Balatrostuck strong
yeah, we deploy those, ebkr does all of the r2mm stuff
but r2modman (ad bloat free edition) doesn't
I'll need to pester him about it
:(
akai channeling all the creative energy i have left after work into a beautiful project
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
Lyman there's 3 pages of Balatrostuck Jokers rn
I donât think it should be mandatory in case people want to make Jokers that donât follow the same size as other Jokers
are you ditching the 4/13 meme
yeag
I don't think that's relevant, such a joker could just have a different atlas
it's more for not having to specify anything to use the vanilla spritesheet
Whatâs the difference between an individual .png and an atlas that contains a single Joker?
me trying to figure out what this means lol
Homestuck start date
nothing, but that's unrelated to making it required to specify an atlas
autumn how many pages of jokers are there in base game
quick
go
go
go
10 pages
Is it?
(i dont remember where we got the 4 from)
idk
but the meme is funny number in the pages
lyman tell me what font i should make the game use
FontStruct. Build, Share, Download Fonts
if you need an atlas with different dimensions for one joker, you can still specify that atlas
oh god direct link
what would be the consequence of forcing atlases
but either way it won't be required to specify one in case you want the vanilla atlas
i mean its quite shrimple
like at the end of the day is a single sprite not just a 1x1 atlas
Thatâs what I was asking
cant you just specify the vanilla atlas same as a modded one
I was asking if it should be required that you give the API the key of the atlas you want to use
or am i stupid
basically this
oh god
oh god there's no underscore either
This reminds me of (Homestuck spoiler) ||how Caliborn types||
lmfaooooo
this is the FALSE homestuck font
It looks good save for the missing characters tbh
Does the game use condition events anywhere?
I wanted to try this font but I couldnât get my mod to work with 1.0
https://fontstruct.com/fontstructions/show/2475540/simple-5x3-5
FontStruct. Build, Share, Download Fonts
you cant specify a font size in pixels i think
i still dont know how you couldn't get it to work
my god
LYMAN !!!!
I also found this earlier if anyoneâs interested https://homestuck.net/resources/other.html
why does this require an account
Searching the source code only returns their definition to me, so Iâm guessing unless theyâre implicitly defined elsewhere, the game doesnât use condition events
LĂVE wasnât letting me load font files for some reason
And I canât just use nativefs for it
GarfieldâŠ
oh shit
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
im too powerful now
Surely an event that creates a copy of itself will cause me no headaches
Yes
LĂVE refuses to read my font files for some reason
Even when moving them to a safe directory with nativefs
this is the entire code right
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
oh god this one's weird
Also for a font I made in an hour this looks surprisingly decent
i would probably stick with it if it had distinct lowercase
Iâm a Windows user
(for 1.0)
gotcha
balatrostuck gaming
is there a way to modify line height btw
in textboxes
I imagine youâd need to change text size, and sometimes there are hidden UI objects to create space
it's line height though
Oh I misread
I know there are some parameters to rows and columns
Some might influence the size of the UI elements
I can add that later
And fix up the punctuation
Since some of it is rushed
TEXT_HEIGHT_SCALE = 0.83 is the culprit here it seems
might i ask
how
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
btw MathIsFun
might want to include line height too
G.LANG.font.TEXT_HEIGHT_SCALE = 0.73
this is what i set mine to
i guess i'm just focused more on implementation of stuff
and coming up with art along the way
I added distinct lowercase (of dubious quality)
did anyone make a texture pack for the wild enhancement to look more like a wild card
Fixed the k a bit because I realized how unaligned it looks
wym? like.. a uno wild card?
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?
hmm the most popular one would be https://discord.com/channels/1116389027176787968/1216064295633289286
I think Codex has differently colored backgrounds, but you can see the source for how different bosses and packs do it. It might be related to game states
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.)
where did you find that?
I searched the game files for it but itâs defined in
common_events.lua line 311
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 !
purpel
it can be any color very easily
can it be purple
no
Actually seriously can it be DARK_EDITION?
I think all that does is applies a filter over the existing color to make it darker
because it's just black
No, DARK_EDITION is a color
Itâs the color in Edition badges and a few other elements
Importantly the specific color is changing every frame
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
homestuck?
make this the default language of the mod.
font update!
its all homestuck
same as it ever was
ik for a factt this reminds me of a certain character but i cant stop thinking its chie
is it another one of mine
Yup
The last one
Solar flare joker
Your pixel art looks rlly cool and it's good practice
ah thats my second favourite one
new design, what do we think gang
favourite in terms of abilities
i think its quite cool
Me like
thank you :)
If someone hasn't done it I'll probably try to make your ortalab stuff
well if you do, it could save time for the person making the code for ortalab
may i request a ping whenever steamodded 1.0 comes out officially?
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
Okay it was actually because I'm blind and used the loc_def function instead of the calculate function
I'm also blind because I didn't see it...
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
It's just "j_space"
Oh dang
And j_burnt
Same as jokers but under them
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
Man I am so confused
I just copied the code from space joker into the thing
And it doesn't work
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.
Enchantment Table
basically the same thing
nice!
Jokers on payout can be retriggered
not surprised
flowwey what are you cooking.....
it's getting there!
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
that might not be possible
sick
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
yeah right now it's already done in a tricky way
i've done this for X card
there's actually two cards, one playing card one joker
i timed the animation so it looks like transforming
and joker sprites are fundamentally the same as playing card sprites... i think.
some cursed card would look like this btw
i think all youd need to do is "enhance" it to the joker center
and maybe blank out the pcard data in base
it was huge pain for me initially, spent the entire day trying to figure out how it may work the best
(after you backup the original card that is)
because there's all this card area bullshit
yeah idk exactly how to do it just thinking aloud
this turned out to be extremely difficult to do actually
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
oh fair
...why is it that i can't loc_def an existing deck?
the exiting was a little anti climatic tho
in that case sure, if it improves the reference
wanting to show that black deck starts with the Hieroglyph voucher, not the "-0 voucher"
idk High Card show tbh
yeah i won't recommend after seeing season 2 LMAO
lol
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
i just wanted it to be completed first/shrug
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!
will it have an api if we want to xpcard ourselves

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
i do personally want to add a buttload of suits and ranks so
I have already attentionally reworked some logic so it supports more mod, but there's always more mod
is anyone making an XChips api perhaps
i was tempted to make a general "morefeatures" mod...
these effects work by the way (eternal is incomplete atm)
with xchips, perma mult stuff, etc
oh allllllso is this out yet
better start to think how to make stuff compatible on my end
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
night night
wouldn't xchips essentially be the same thing as xmult tho
please do 
i'll make art for a mod for you
not really
it's way easier to get to say
200 chips
than 200 mult
but coremods are illegal :(
is no different from 200(chips) x3(Xchips) x 40(mult)
hmmm
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
emmm, like it doesn't take up hand limit when drawn?
anyone know how to make custom win/loss quips?
ye
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
jade harley tho...
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
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?
use g.game.current_round.hands
then you don't need to reset it afterward, it will just work
instead of round.resets.hands?
yup
do i leave ease hands played
cant you just ease hands
pretty sure that func changes the variable cheese mentioned
actually yeah, just use ease_hands_played and do nothing else
(i should know i literally did exact thing this like 30 minutes ago)
so like this then
yup
cant you check next(context.poker_hands["Flush"]) instead of listing every flush hand
then this is the other legendary
i was actually gonna ask abt that too thanks
that one's a bit underwhelming
not really
it's only useful in very niche cases
scaling inconsistent mult lets goooo
well its +0-22 mult each ante
you're forgetting that it creates a negative joker you can sell for money
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
its mostly designed thematically because its for a streamer who does game corruptions
+3-25 mult per ante with abstract joker đ
you have to remember chicot exists
negative misprint sells for like $7
thats a lot
also
i thought $3 + $4 for negative
yeah this is why im concerned about quarterdumb more tbh because it is specific to certain builds
that's not legendary worthy
literally all basegame legendaries not named perkeo are either dogwater or require face cards
type A chatters be like
it wouldn't be that hard to pivot to flushes in a run, and the payout is decent
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
i appreciate the critique tbh
legendaries are already niche despite their pickup obfuscation
but for vinny i do wanna do something with misprints
^
oh is vincenzo The Man Himself?
you could also increase the Misprint generation cap from 20 to 200
just know that yorick is still sad because of this comment
in addition to creating negative misprints
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
you can make it generate them more frequently, like 1 in 2 chance when blind is selected
balatrostuck legendaries are pieces of shit
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"
the legendaries are based on vinny and mikes clownsonas lmao
oh i seeee
i loooooove abraxas
im not deep in the vinny lore
birb noodle
yooo
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
i've coded 4 and i will take the secret of making a food joker to the grave
i think it's somehow setting itself to nil before it finishes its animation
what's your mod called
MY CODE IS EXACTLY THAT WTF
the repo is private and the mod isnt out for public
dammit
what's the repo link btw??? it's for a school project
not telling you also the repo is literally private for now
also i don't believe in formal education

but for real though, just debug the code LOL
so how would i go about removing the "hearts?" suit
you cant. its embedded into the soul of steamodded
attempting to remove it will result in IMMEDIATE death
but what if i want to transform the left selected card into the right selected card?
idk what you're on about
but yeah uh, anyone know how to rewrite jimbos quips? thought it was misc.quips.lq_1 but its giving me an error
you cant
this is just what he says
like this isnt coded in
jimbo just actually says that
ok but fr tho
yeah fr
this is a good aesthetic. make a mod where everything is lowercase
i should not be allowed to make mods
What are you cooking
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
i just commented out the hearts? constructor
y -> dollars expected
its in core/game_object.lua
you can literally get 0 interest by playing too many queens
@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
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 đ
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.
I hope I'll figure out how to do at least one joker like +4 mult on my own, thank you for the answer
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.)
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
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
Hey it's no problem đ«¶
It could take a lot of time to explain it to me lol
So there's a config table somewhere and while making a joker you must somehow refer to that table?
I'd be a waste of time for you guys, thanks for everything but I think I better give up
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
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
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
...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.
I bite be careful
(ignore these bites
Most complicated effects require defining a calculate_joker function
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.
given the backlash the last person who tried that got, i'll bet you're fine
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
I mean, hey, if the community's got my back, then I'll share what I've got.
idk i only speak english lol
yea if anyone ever steals ur art, let everyone know and we'll kick up a storm
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?
i was going to ask who you were talking about but this message reminded me
Wait what happened
Apparently I need to add custom contexts to end_calculate_joker else things may break. I donât remember seeing that listed anywhere lol
chinese dev stole a bunch of stuff from mika's
dang
Did they get banned?
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
yeah there's SMODS.end_calculate_context which is patched into the vanilla function to ensure these jokers don't get called with added contexts
What if I change an existing context to have more information?
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
As mentioned before, thereâs use in avoiding each mod adding the same calculate_joker in the same spot
shouldn't impact things if no vanilla jokers assume that specific information is absent
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.
well that's out of my hands unless I make an API that handles patching arbitrary places in code
Or make an API that adds that context
So the mod doesnât itself need to add it
i do have to ask tho, what is your goal? trying to find someone to handle coding them? or just getting feedback
you could have calculate joker calls literally anywhere though
Indeed but Iâm talking about common effects multiple mods may want to implement
Not niche effects
Thereâs no point in an API for one-of-a-kind effects
yeah common effects could be added
The standard examples are Jokers that are hardcoded instead of calling calculate_joker
Like Golden Joker
payout api is a thing right
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â
also i did get a payout feature working for balamod jokerapi if yall wanna look at it
quick reminder that steamodded isn't my project and anyone can submit anything they want to see added as a PR
true
But those examples are mostly subjective because Iâm implementing them, but I can name some mods that use them
idk how to git :dumb:
payout arg API is a pull request but hasn't been merged yet
Thatâs fair, Iâm presenting the idea to hear what people think, and Iâm waiting for 1.0 to consider writing APIs
Should I sent the assets to the mod I've been wanting to make as a ZIP file here, or...?
I did write an API actually, which mostly works, but Iâm waiting for⊠idk (NegativePlayableAPI)
create a post in #1209506514763522108, just sending things here will make them hard to find
Understood.
maybe i should look into pr'ing smods but i dont wanna mess up your nice and neat code lol :stilldumb:
Anyway it's not part of my plans for 1.0.0, it doesn't need to be feature complete either way. It's way more easily maintainable and open to adding new APIs
Thatâs fair
uh dw about that, I don't mind cleanup
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.
Start of shop one would be cool too
If thats what you meant by generating shop contents
Maybe that works. In my mind, any effect that happens during or after a event can be replaced by one at the start, if it can remember and execute a âpayoutâ.
oh I see... guess what my journey of balatro modding started with
I think posting some art as images instead of a .zip would help
also name your .zip files totally_non_suspicious_file.zip for maximum trust
lol
I was actually thinking about creating a sixth suit to go with the fifth one, but that would effectively triple the amount of work I'd need to do.
At least when it comes to playing cards I think Six Hundred Suits automated it
the... what
Hearts?
you can literally just remove its definition
or do SMODS.Suits['Hearts?']:delete()
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
retexture hearts? to be green
i'm moreso just... wanting standard 52-card decks again--
abandoned deck should be 50 cards now, that's close right?
okayi fixed ancestor
??? works for me
I implemented this effect the other day, I think the same day you initially shared it
what the fuck do you mean
Though I donât currently do anything with it
Oops! The game crashed:
No```
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
oh what a shame
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
damn
weh
bleh
you should probably disable it before you forget for stable lol
any way to add localization without putting it in a gameobject?
Cool egg
I wish I was at least half as cool as him
glass cards that can never break
thats strangely aweome
piss stake
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
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
I think it makes more sense for perishable to also trigger if the card is in the deck
ya
ya
I thought about that but it's consistent with how jokers can get editions after being eternal
plus the stakes are already brutal enough, this can alleviate the pain at least a bit
could also remake it entirely and have it be after X triggers
who said we wanted to alleviate the pain?
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
fair
i'm going to sleep now bye chat
bye
G
is the next one "moss stake" perhaps?
silver stake
also attached image may be relevant to something i'm doing
can it be changed to some nasty green?
puke stake
lmao
the colors are already pretty finalized but if anyone wants to draw a stake and sticker sprite I can do that
alr
there's already spritesheets in the cryptid github you can use to reference
lmao
Please tell me this is a for a Soul animation and not just a card lol
The Goker...
Eggker
rn, you need to put in in the process_loc_text function of a game object to do it cleanly
maybe I should add a way to do it independently of another object
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?
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
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
I'm pretty sure the answer is no
There's also steam emulators you can use
technically piracy
Is it?
they're dubious since they're meant to bypass steam DRM
fun
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?
I mean every kind of emulator could enable piracy
This would avoid the ram overhead?
it's the best you're going to get without us going into a rule-breaking discussion :-)
it's pretty lightweight
Alrighty, thanks!
good luck!
are you all ready?
more stakes mod
Oh so is that on top of gold etc? Oof
yep
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
Well, that is funny
i feel like this needs pages
I have it show only 8 as a placeholder for pages in the API
becuase idk how to do that
poker hand api implements pages, ig you have that to go off
or I'll do it once merged or whatever
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
Where can I find an example of redefining the text that appears on a joker/tarot card ? please
Yeah no, it still completely breaks
It looks like it has something to do with trying to register the stakes twice or something
uh yeah they don't get reset on reloads
try moving everything in inject to register instead
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
I was trying to develop my mod, or one Joker at least so I guess it's the right place
And yeah, it crashes at startup
I can help if it's lovely related but I'm useless otherwise
hmm. should i make the sin jokers have a 1 in X chance of replacing other suit conversion tarots with its own?
If you don't mind sharing your code some of us could help
or even a stacktrace could help, sometimes
what is this guy doing here đ€
isn't there a voucher or something that makes spectrals invade arcana packs?
i'm assuming you're not using debug mode to test crap then?
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
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
but that's my analysis of your code
yeah you got it
I'm basically replacing 70% of all tarot/spectral pack cards with useless trash
you made it sound like that isn't exactly what you intended
hence why i went "oop, yeah there's your problem"
oh no it's exactly what I wanted
...
allows repeats of it in the same pack
Oh alright
someone wanna tell me why this code isn't printing anything when i started with vagabond and lusty joker?
technically also allows it to show up if you're holding one already
it's not printing the type of card spawned, and it's not printing "Hearts"
wdym by starting with these jokers?
i mean, spawning them in with debug mode
yeah that doesn't call create_card
but i'm talking about the tarots spawned by vagabond
oh i can't read apparently
hey devchat is it possible to do stuff with debuffed context.other_card in Jokers calculation?
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
considering debuff is always to be checked against, it should be of no problem to break that rule
(shop rates anyone?)
it feels like debuffed cards do not even "exist" in context.other_card in G.play
i think they get skipped for context.individual somewhere else
that should be ipairs yeah
is there a way to put custom music in balatro?
but it's not even printing out the type of card created, actually
and it should at least be giving me that... right, autumn?
got shop defaults working (these are both test cards)
You should add something insane to these previews just to keep people guessing
Like Herobrine
"fixed" coding
Maybe a new UI element that just reads âJuice: 80%â


