#💻・modding-dev
1 messages · Page 5 of 1
that sounds identical to the one i have
guys is this balanced
perfectly balanced
ante 3
score at least 289
you see if you can get 3 Cruxite Dowels
you can just
do this
every round
every time
just get 3 cruxite dowels :clueless:
give the card a chance to explode every payout 
cursed
1 in 1000 chance
its much funnier this way imo
true
also its not easy getting 3 cruxite dowels
cruxite dowels are not compatible with Blueprint
im scared of balatrostuck
you should be scared
sorry if this is a stupid question , but is there a way to directly change the current chips and mult when a joker is triggered?
my game crashed
my game crashed ||me||
there's also this card
it gives mult equal to 1.5^current ante
no with six you just keep selecting 5
:(
im not sure
you do start running out of steam around ante 16
this is what's breaking it (i think?)
line 215 is the last debug message
hmm so i guess its a api problem not the code
when did it crash btw?
i think it's attempting to display a blank card, but then crashes because it's trying to find the name of a card that doesn't have a name
for now just comment out the senddebugmessage line (line 215 of the api lua)
that might (?) fix it?
ok ill try that thank you
this is a waste of time im giving up
yeah that doesn't quite look right (the pos stuff)
that only holds true for vanilla cards
i mean you should be able to just swap self.base.name for (self.base.name or "") right?
oh the pos stuff idk about
a rank will set a pos.y value for itself, but a suit mod might choose to order things differently
but the API should handle sprite pos already, so I don't see the point of that
OMG IT WORKS NOW
yay!
so i think there were 2 problems
1 was the line 215 and the 2nd was there wasnt an atlas thing in the format guide
ok there we go
Finally got something showing up in collections.
hooray
Radiant Joker?
bleached
"why are you white"
Mine's just called "Test Mod" so
I mean i just set a stupid display name to get that working
is there gonna be legendary jimbo and then a common jimbo and both jimbos are insanely intricate jokers
tryna one up me? https://discord.com/channels/1116389027176787968/1232902086191087769
nah
thoughts on this?
the inject function is meant to take care of pools on card types for the most part, but can be misused to do stuff during injection of individual centers
yeah
nice!
I'm gonna have it support consumable types as subclasses of a generic consumable class, but it's easily extensible to other nonconsumable types of centers as well
oh perfect
any ideas on how to go about debuffing specific cards in your deck while a joker is active?
sample joker subclass
card debuffs are handled in the blind.lua
you can't get card debuffs working without getting into blind logic
i'm pretty sure
don't mind the c i forgot to change to self
maybe you can
will there be a better way to do batch initialization btw
currently i have a giant init_joker() tower of doom
oh good
so it can be like
multiple jokers at once?
like a table of all the jokers
uh
is it too much work to just have a list of all the joker objects and loop over each one running SMODS.Joker() on each one?
bah, i'll put off that joker idea for later and work on a a more simple one
fair fair
i can contract that to an API function if that's the case, but I think it's not needed
I just do this to initialize all needed objects
you don't need to reparse it into single params, so should be straightforward enough
(plus they're all in separate files)
hm yeah that's also an option
Can this SMODS.Center be used for custom rarities or is that still a separate thing you'll have to set up?
technically speaking it'd have to like
be contextual
because then you'll run into issues lke
4 different mods claiming number 8 for themselves
Rarities can be strings, so that problem isn't that much of an issue unless two people use the same one
you can use an inject function to set up rarity pools, so I guess that works for that?
you can just have your own ones
i cry every time mod prefixes arent used
Mod prefixes?
dw I'll be forcing mod prefixes
good
dont me me rewrite jankjonklers again blease
(i didnt think to prefix them and i dont want to mess with people's joker files who had it installed)
[jestobiology is prefixed though]
mod prefixes is how you prevent 40 different mods from overriding each other
i.e. two jokers that have a joker named "Carlton"
ohhhh ok
if unprefixed they'd both use like
say you have a mod with a joker called Lucky Carrot and a mod with a joker called Carrot Patch, but internally they both refer to it as j_carrot
^
dw I will, steamodded 1.0 is gonna break pretty much everything
lets goooo
not looking forward to it but it must be done
I can't wait to rewrite my Sticker API (clueless)
tbh i doubt it'll break anything in jankjonklers
aside from like, making me rename my stuff
should just be semantic changes
too bad calculate_joker works with names instead of ids/slugs
it only does for vanilla objects
couple more questions
o
thoughts on SMODS.Joker{} instead of SMODS.Joker:new{} for initializing?
i vibe with it
I think :new{} is better imo
:new{} breaks convention + object constructors are kind of the norm
the game needs center.key, so unless I want the constructor to always change slug to key, it should make more sense for the ID field to just be called key, right?
the day steamodded 1.0 drops is the day the entire balatro modding community collectively shits itself and goes down for 3 days as everyone scrambles to fix their mods
yeah
i got confused by key/slug when working on a joker
oh dw there will be pre-release tests
chat what should i make today
blue lobster joker
like blue joker but with a lobster
i mean the lobster with that scary music in the bg
btw I'll consider anything in the rewrite that's already submitted as a PR
don't make me rewrite your rewrite
oki doki
is itay's hand api coming to 1.0
everything is coming to 1.0
perfect
no one shall be left behind
including my lost sense of whimsy?
where'd it go?
yes
stuck on my 2015 tumblr blog
hee hee hoo hoo
i hope codex isnt going to cry too much at the changes
ah hell
im pretty sure booster api is coming too
when balatrostuck comes out i finally have a use for cosplayer joker
hell yeah
when are we going to mod in set bonuses to balatro
btw Lyman
have you heard of the Hashmap modus Joker idiea
you can print Death cards
with Hashmap
how come
that legendary codex joker idea
feder explained how we could do it
and it was literally this
down to the modulo
because... yknow... alchemists.... recipes.... it works....
again, Codex's definition of Legendary is Balatrostuck's definition of Rare
it doesnt even have a legendary 😭
(like i said im still trying to brainstorm a proper Legendary for it)
who the legendary joker will be can be figured out later
btw Lyman did you see what I did before
wot
i think you need to clean out your alchemiter
the 289 score requirement is so cursed
i kept going to score 3 until the game crashed
this is possible
and awful
all you need is 3 Cruxite Dowels
you can also try to get it with a combo of Vagabond, Antimony and a single Cruxite Dowel
eventually you will find yourself in an Arsenic - Antimony loop of death
Which duplicates all existing jokers ad infinitum
while also doing weird side effects like drawing out your entire deck, giving you 200 tags, fun stuff
how to make thing eternal(in deck code), and check to not eternal(in joker code)
one more
does steam modded have any kind of crash logs? I've probably messed up the code but I have no clue exactly what's wrong because it's not telling me
SMODS.Tarot{} or SMODS.Consumable{set='Tarot',...}
latter
sets are native to Balatro's code lingo
it's going to be easier to work on mods when the language matches between vanilla and modding
yep
i was just thinking of the implications of being able to extend SMODS.Consumable to create a new consumable type, but ig there's a better way to implement that anyway
what is eternal a stamp right?
do we have any nonconsumable center types as of yet that would benefit from the OOP approach I'm now taking?
eternal is a sticker
are vouchers consumables?
would this work
it does usually, there are some cases where the game just closes without crashing
I was thinking about modded objects... vouchers are non-consumable centers
so are jokers, obviously
see, the game was just closing that was the problem, however I found the missing comma
i think hm
boosters are also centers
part of reverie is non-consumable
i mean even decks are centers, so at least for vanilla types of objects, this will reduce overhead by a lot
i could imagine another type of modification on playing cards as a custom implementation perhaps
There is a API mod called Center Hook depended on balamod might have the things you want, it has injection by adding custom effects and blocking vanilla effect
which provides more flexibilities
nonconsumable centers :) sounds nice
Do you need code to tell the game to put your jokers into the shop?
also its old and is missing some useful features that i put in the joker/consumable api thats gonna be in the next balamod release
if youre using an api, it most likely does that already for you
Does Steamodded do that for you?
im pretty sure it does
it's been about 5 hours and I've figured out how to add jokers to the game, time to take another 5 days to get them to do something
I assume register after creating in init would do
did feder answer my question i asked them earlier
lemme check
darn
i tried using mobile discord search and it crashed
Does anyone know what file the jokers abilities are stored in in the decompiled game? I can't seem to find them
I think aure is developing the Steamodded API lol
It's all over the place
Look for specific Jokers
search by joker's name
as the abilities could be triggered any phases
Example:
oh god
where is card:init called
I am also wondering if steamodded have anythings like that custom consumables already
Wouldn't it be called whenever the code goes var = Card(…)?
There's OddityAPI
really???
That's what init usually does AFAIK
its abit jank lol
You create an object and it initializes it
i've been so lost for a while because i'm trying to add my edition to the collection but i keep getting this
Could it support a custom planet card
Your args don't have nodes
See AutumnCircus
I felt like I had to add a warning to my code just incase
this is a commonly shared sentiment
ya
this is what calls this
why is it even using something when it only runs if that's nil
See, I don't even know Lua, I am very much so out of my league
Your UI table doesn't have a name
which makes sense
Because you start from not having a name
Are Editions "Other" or are they their own thing?
they're 'Edition'
The elseifs don't check for edition
so unless it has specific_vars, it goes in without a name and comes out without one
or the issue isnt with an edition
try printing the card_type
i think i might have found the issue
specific_vars calls loc_vars
so i need to set those
i thought editions set names were Enhanced
that didn't do anything but probably because i don't need to do that anyway
i think it must be meant to have a full ui table name??
because i GENUINELY don't see how that localize function could NOT crash
it's calling something that is nil
where do you define the G.localization thing
(the api may do it, idk if youre using one)
i want to make a suit mod but i don't know how to make a custom suit
so in the steamodded wiki it says to use function SMODS.Jokers.example.calculate however in most other mods I'm seeing SMODS.Jokers.example.calculate = function is one better than the other?
(i have the sprites)
look for existing suit mods in #1209506514763522108 and learn from them
okay thx
they are functionally the same i think?
that's what I understood, but I wanted to be sure
i'm so confused
everything on the first pass has full_ui_table.name = nil
and it always goes to that function that uses the nil value
how does that not always crash
i can't even tell what i'm doing differently
on first pass, full_ui_table starts as nil, then gets initialized to lua full_UI_table = { main = {}, info = {}, type = {}, name = nil, badges = badges or {} }
we love recursion
the issue must lie in G.P_CENTERS['e_'..editions[i]]
set is defined in the P_CENTER
i finally got it to work on the mac! hmu if u need help with the setup
its the id/slug
its so its easier to get key/id/slug from the card
ok
with the way i initialized it here
if a function calls card.config.center.key on a bleached card
should it not return a key
no because you need to add it to the table
just need to add key = "e_bleached" to the table
ok wow that was really just it
fuck
i was on a wild goose chase for so long
what the hell
I'm ngl for a second I thought you somehow drew the jokers from your deck and your deck was in the joker slot
which honestly would've been impressive
i think i see the issue
it's because i hooked into create_UIBox_your_collection_editions
i might need to do more lovely injection for this
because i don't see how i'm gonna add bleached to it without calling the function twice and creating 5 extra cards
unless i can just replace it altogether
because i could genuinely make it more flexible than it is in the basegame
cause it only checks for the editions based on a list of names
alternatively i guess it'd be better for me to just inject the bleached card into the return value
cool cool cool cool
Fun Modding
step 1 of consumable sets in balamod done
sweet
how the hell
wtf 0 edition
no idea what i can even do here
without lovely injection
i might just have to check how steamodded adds other stuff to the collection
LOL it just overwrites the fucking function
i'm just gonna do that i don't care
nobody else calling that shit anyways
:peepoShake:

i'll just make it actually expandable
@loud citrus i think you can use #G.hand.highlighted in context.pre_discard
if you want it to proc after discard, you gotta do some weird stuff, since it passes discarded cards one by one
SMODS.injectPlanets() where can i find this function being implemented?
loader.lua iirc
Thanks for telling me.
This is interesting... Do you have any tips or resources to help me make my idea? (Don't worry I know how to use Lua
)
the best resources are existing mods. look through mods (that arent jellymod) that have cards that interact with discards, and see how they did their joker functions.
(i would suggest using balamod console to help with debugging but... yknow...)
i found it is called in it but i couldnt find the content of the func
@loud citrus also look at the code of how for example Burning Joker works
planet.lua should have the contents
oh I see! thanks a lot
https://discord.com/channels/1116389027176787968/1233924324516171818 Made a pre-release for my Relic Jokers mod since I want to get started on art (I'm also out of ideas for Starlight Jokers, there's only 3 unless you play with Codex Arcanum)
Most of the code for burnt joker only relates to upgrading the hand, the game checks for the shown poker hand, not what is actually discarded.
Big sad 
i have an idea
maybe you can set an empty table to somewhere in card.ability in context.pre_discard, then in context.discard you add discarded cards to that table
then... uh...
idk
i think theyre trying have the effect happen after discard
That's a good idea.
Though big development, I made trading card be able to destroy 4 cards at once :)
nvm i figured it out lol
ended up just splicing the original sounds together and editing them slightly
the sound replacement works but for some reason it only activates for the first bleached joker
how do i add eternal sticker to a joker
card:set_eternal(true)
one of the best gifs
is there an obvious reason this:lua function SMODS.Jokers.j_spoiled_spaghetti.calculate(card, context) if context.end_of_round and not context.blueprint then card.ability.mult = card.ability.mult - 5 return { message = localize{type='variable',key='a_mult_minus',vars={5}}, } end
crashes the game when it triggers? stacktrace says "functions/state_events.lua:200: 'for' limit must be a number"
Add and not context.repetition
That seems to fix it, thanks!
Blaze: 5 Face Cards
Skeet: a 2, 5, and 9, and any two unpaired cards inbetween
Little Dog: 7 High 2 Low, and three unpaired cards inbetween
Big Dog: Ace High 9 Low, and three unpaired cards inbetween
Little Cat: 8 High 3 Low, and three unpaired cards inbetween
Big Cat: King High 8 Low, and three unpaired cards inbetween
flush, house, and five variants of some of these hands exist
where did the dogs and cats come from
wikipedia
no i just modified newt's custom edition
hopefully an actual edition api is planned though because it was hard 😭
is ore of a kind just a five of stones
yeah
is there any easy way to dump the playing cards table to console?
i think there needs to be a shahrazad joker
when you sell this joker, begin a subgame starting from ante 1. if you reach ante 8, you win the blind. otherwise, you lose all gained chips
subrun?
Magic™️ subgame is the oracle wording right
Players play a Magic subgame, using their libraries as their decks. Each player who doesn’t win the subgame loses half their life, rounded up.
honestly it's funnier with the original text
fair enough
that sounds like hell to implement
Leave the game in progress as it is and use the cards left in you deck with which to play a subrun of Balatro. When subrun is over, shuffle these cards, return them to deck and resume game in progress, losing all chips in the current blind if the subrun was lost, and double all chips if the subrun was won.
it just opens a separate Balatro.exe lmao
implementation wise i wonder if there's someway to save the gametable thing
reset everything and then just reload it after the subgame
nah nah nah. play the shahrazad joker and you're forced to set up a a balatro game in real life and send a screenshot of your completed game in to continue your regular balatro game
i should make a mtg joker pack
all of the power 9
actually just all of the banned cards
oko and ragavan are legendaries
why is gitaxian probe banned
2 life -> draw a card is kinda strong?
i mean it's deck thinning ig
demonic tutor that lets you pick a card at the beginning of every blind
good luck with that
i think youd be better off making it so you can open the deck view once per round and select a card in it to add to your hand
just straight up a joker that gives you 50/50 to win or lose?
why did they print that
oops all 6s 
Because of the ante effect at the end.
black lotus gives you three (3) chips
what's a good equivalent to mana in balatro
for the moxes and lotus
Hands is the currency you use to play the game effectively.
but giving straight hands is just overpowered
red - discards
blue - hands
green - ?
black - joker slots?
white - ?
but then again black lotus was so
discards are strictly worse than hands in most cases
Sell this joker and gain three hands sounds kinda mid honestly.
and both are worse than joker slots
hand size
hands
consumable slots
discards
money/round
oh, this is on sell? sure, go nuts
money is flavorfully weird for green but
mechanically solid
sell this card to
that could be a good oddity ngl
booster tutor.....
! make it trigger on the joker being destroyed for madness synergy
heros downfall
destroy 1 selected card
if no cards are selected, destroy leftmost joker
these would be pretty fun as oddities tbh
Could someone get booster tags to proc during a blind?
yeah oddities :))) please make oddities :)))) plase
i think i'd just do murder
😭
how do you change the badge name?
any of these
in your mod
has anybody made any joker that could make you lose the game immediately?
not like screw you over, but literally triggers game lost?
There’s one that starts a 300 second timer iirc
And you instantly lose when it ends
holy moly that sounds fun but stress as f
do you remember which mod is it from by any chance?
myst bobm
bobm goes hard
bobm
bobm
thx!
ty that worked
hey gang, was reading some of the code for how the vanilla jokers work to get an idea of how they're written, and while reading the code for "Flower Pot", Im greatly confused on what exactly Im looking at. I understand that the game is iterating through each scoring card and counting which suits have been played, but am confused why there are 2 nearly identical loops. It looks like the game is checking whether each scoring card is a wild card, but the way in which the suits are counted appears to be identical regardless of whether the card is wild or not. In other words, if a wild card was intended to count for multiple suits, why is the processing set up in such a way where it can only choose the base suit of the wild card
oh yeah how do you do multiple returns
is_suit always returns true for wild cards
therefore, it does the wild cards last, so it can assign them to the missing ones
ah I see, that would mean that the way flower pot behaves then depends on the order in which you play the cards, correct?
the wild cards always trigger last
like if a wild is played first it will just take the first available suit (hearts)
oh I see what you mean
thats interesting
I get it now, thanks
And that's why I'll never be a coder- Code is about as confusing as FNAF lore
by breaking the rules
We love code! all devs say in unison moments before they have to rewrite everything
i made a function that acts like how the game handles joker returns
through a stroke of dumb luck it worked rather cleanly
dont you just do return var1, var2
oh for joker
it'd be something like this right
awesome
reading your code gives me an aneurysm so i try to do as little of it as possible
yay
comic mono
Good morning!!
BOO!
Aaaaa
good morning feder
What have you guys been working on?
i released a hotfix to my mod https://discord.com/channels/1116389027176787968/1226203695365099681
adding modded consumable sets to balamod
im just leaving this here cuz i found it really funny
good for you on finding something funny👍 , but this chat is for modding development
good morning feder
trying to brainstorm more oddities but i just keep coming up with mtg cards
Make an mtg commander mod
mornin feder
I dropped the pre-release for Relic Jokers and also sketched some of the art for Shattered Singularity
Ooh, congrats!!
good morning feder
I will probably do some work on the secret project today
next mod idea?
XD perhaps
rip the ideas doc then
HSR in Balatro when
i think i may have to fix some things with ink and color...
dw
idk man 5 of color goes hard
did the funny atlas change
wait nvm i need to get it again anyway
that gives me an idea of adding a deck with 10 different types
suits? because... https://discord.com/channels/1116389027176787968/1232902086191087769
the isaac atlas
listen sorry my heads not all here today
i had to close aseprite for the first time this month
mine aint either, 's the weekend time to party
is anyones today?
I just woke up
modding chat just a bit out of it huh
And my shoulder is dying
i haven't done much today

Great game
that gives me an idea for a new codex joker
i havent done anything today :(
wanna try to get more stuff coded in thac so i can pester artists with more tangible things
someone say isaac
yea im working on an isaac mod in the background but some of the framework stuff is giving me a headache for it so progress is slow
i might make the gif of isaac dancing go above the mult/chips instead of fire
that sounds lke a good idea
good luck
animatedsprites are esoterica

also the fire isnt a sprite
huh
oh i should prob like
look at the sprite sheet
before saying ima make mods
would be a good idea
where can i find the sprite sheet
you can open up your balatro.exe with a program like 7zip
all the game's files and code are stored there
the lengths i must go to make a single blind work
i think i can also fix the defeat func with this
is this balamod?
me with 60 blinds :]
lovely
i don't like lovely-locked mods TBH
too bad, steamodded is borked rn
wdym?
borked?
the modify_hand function it calls doesn't have self as an argument
i am not going to bother aure to fix this
steamodded itself is going to be lovely-locked Soon?
also yeah
wait really?
steamodded 1.0.0 will be lovely locked
so i need to learn Lovely XD
not really
oh no...
you just need to have it installed
no you don't you just have to install with lovely
technically you dont need to do anything
Yea I don't really interact with lovely
Unless I'm making Steamodded API
I've considered it
you can also pretty much just code the Steamodded way with Lovely if you want to sacrifice using an API
so it's just:
replace teh DLL right?
not even replace, its just extra
:/
DLL injection my favorite
i replaced...
born to steamodded, forced to lovely
born to balamod...
I interacted with Lovely very early on because I wanted Ankh to be separate from a modloader for run validation purposes
i haven't had problems
I also used Steamodded (and saw the starts of Balamod) pre-1.0 because I was in a private modding server
i got the link to that server but decided not to join
I only learned of it after Balatro 1.0
it doesn't make sense to join it now imo
it doesn't
and it's never going to go public because there's some modded demo exes which localthunk would not want distributed
well if i ever wanted to fetch them i can join the server :p
illegal activity....
it's mostly just an archive and random discussion about things like glitch hunting and modding from the group of ppl who were active on there
best update
just to be sure, it's the one with Hack as the server profile right
ye
what's cool is that mod was made before Steamodded
so it was probably the first mod ever made for Balatro
ya
chat why doesnt the join button work
I wonder if we would do more of this for Steamodded
I'm scared to implement this joker
Directly adding functions in for API related things you wouldn't typically be able to do.
retriggering jokers is hell
no but this would retrigger everything
on another note, why the hell does The Flint not have a proper animation for reducing Chips and Mult
🪲
[manifest]
version = "1.0.0"
dump_lua = true
priority = 0
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = "self.SPEEDFACTOR = 1"
position = "after"
payload = "initSpeedrunTimer()"
match_indent = true
overwrite = false
[[patches]]
[patches.copy]
target = "main.lua"
position = "append"
sources = [
"Ankh.lua"
]
Also this is how I use Lovely to set up my mod
It's literally programmed like a Steamodded mod, but without the Steamodded part
lmao that's just the steamodded lovely.toml
looks very similar to the ones they have over at krusty burger
but with ankh's lua file
yep
I can definitely be smart and replace a lot of the function overrides with patches
will probably get to that at some point when I overhaul Ankh
smart is for nerds
good thing I'm a nerd 🤓
you wish
i need to do another patch to the game because uh
yeah i don't think Flush is a card
hahahahah
composite hands wants to have a chat
Flush of flushes
and 600 suits
boo
nooo not my Alchemical cards from my handbook
you are actually a monster
it's funny how this single blind counters at least three mods by now
and barely does anything against base game
me too actually
No
i dont think so
then im not websiteing
there's probably a way
Hey guys, is there any documentation about the contexts? I don't quite get them
i will look into atlas website
akai is working on one i think?
That would be awesome
getting the jokers to actually do things is more difficult than I expected
ok im almost there...
balamod oddities....
balamoddities
balamoddities....
there's a create_badge function
o ty ty
does anyone know if you can set a multiline pattern
in loathely?
in
ly yes
how do I know if lovely works?
if the little command prompt opens when balatro does, unless you mean smth else
yes multi line, regex match newline chars
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "local loc_target = localize{type = 'raw_descriptions', key = blind_choice.config.key, set = 'Blind', vars = {localize(G.GAME.current_round.most_played_poker_hand, 'poker_hands')}}"
position = "after"
payload = '''
print(blind_choice.config.key)
if blind_choice.config.key == "bl_myst_ancestor" then
loc_target = localize{type = 'raw_descriptions', key = blind_choice.config.key, set = 'Blind', vars = {math.ceil(G.GAME.round * 1.5)}}
end
'''
match_indent = true
overwrite = false
the print does not run
but the code did get added according to the dump
honestly I wish steamodded/lovely injector had more documentation, trying to do anything without stealing code or dumpster diving though the source code feels near impossible
I've been debating making a video on how to make stuff in Steamodded
I think I will try
oh nice
YOOOOOO
oh wait
i could probably merge it into the template
i need to change the background image
That would be so helpful, I've been absolutely struggling with lack of documentation
the red and blue do not fit codex
meth pls i yield
Love your mod btw, it's so well balanced that I sometimes forget its not vanilla
XD thanks a bunch!
We are doing a lot of balance changes for the next update, so be on the lookout for that
Honestly my biggest problem is that in the presense of other mods I don't tend to use it because every other mod is so OP
I've been having that issue with mine
what mods do you use? i can make some nerfs to morefluff
Since you basically just get a bunch of jokers for free
The game becomes inherently easier
mystjokers are like the weakest stuff you can find
Even through you have work around some nasty downsides
Morefluff, Betmma, JankJonglers, Mikas, Themed Jokers, etc. Basically every big mod is in my default mods folder
you should put those in game as a setting for codex
That looks so good
oh yes that can be fun
I really haven't had the time to write docs but that's totally fair
keep poking at it. this is almost always because your pattern isn't right, but there's a chance you're hitting a bug.
I'm on mobile and very tired atm so I won't be much help
alright, now the badge colour...
more consumables?
yessir
like it does replace but it doesn't run weh
I understand not having enough time, I just get frustrated when I can't find things sometimes.
In the meantime you can always @ me or leave a message in the lovely thread for info.
ah, no clue about this then
that file is a monster and I've not wanted to really dig into it
if it's in the dump then it's definitely been injected as you see it
:programming:
:programming:
amazing
honestly this chat has been very helpful for some general questions I've had, I just don't like asking very specific questions here
iirc you just set G.C.SECONDARY_SET[...] for this
for {C:...} constructs in text, G.ARGS.LOC_COLOURS[...] (ensure it exists first by calling loc_colour("mult", nil) for example)
(based on what i do in OddityAPI)
well i don't have to patch this for the mod to work but damn i hate seeing High Card there
omg thank you i was setting it in get_badge_colour
I know someone mentioned making a video about context's but has anyone written any kind of documentation for them yet?
yippeee!!!
absolutely ask in the lovely thread or dm me if you're not comfortable with that
a lot of what i do in oddityapi is probably helpful to you if you want to make a custom consumable type, since it's not very reliant on steamodded features
i have a list of contexts that get called in https://github.com/nicholassam6425/balatro-mods/wiki/Contexts but i havent expanded on it in forever
i WAS going to add if contexts have other_card/full_hand/whatever, but i didnt
arachneii youre like the balamod ambassador i s2g
unironically this helps a lot
try balamod.... i want friends...
theres some other documentation in the sidebar, but again, outdated
(especially the center hook documentation)
https://gyazo.com/6ba06989fdef11fcc2444e2142f465db.mp4
how many alchemicals are too many alchemicals?
outdated information is still better than no information
more alchemicals !!!
more alchemicals....
and that's not even with all of the jokers added XD
(sorry for ping)
and packs
oh it's all good XD i dont mind pings
(sorry for my ping XD)
I don't really like them, so I try to remember to disable them
i will simply wait to do website until i have >100 cards and it becomes woefully impractical to do website
im waiting to do SAP website once i get sprites, but im pretty sure im finishing it all before i ever start on the sprites
(i hate doing sprites)
what is the min joker count yall would recommend a site like that to be?
imo 3 or 4 is a good number to start using the website
oh so im good then i have 0 jokers
this is literally my website
or, "website"
you can try to use the template maybe
lazy
honestly even that looks good
true
also i just noticed pap's image doesn't even load lol
at the moment my mod just adds 2 jokers, hoping to add more but no ideas (and not enough coding knowledge to do even the first 2)
i don't play hsr
what's hsr?
Honkai: Star Rail
oh ew
it doesn't have the exitement of failing a 95% roll 5 times in a row
XD
I do wish that the jokers in the website template had wider descriptions, makes some joker effects harder to read
Granted almost all of the jokers have Dagger level descriptions
pokemon player spotted
so
what do the black hole jokers do?
I just don't like gatcha games ngl
yeah makes sense. It's not everyone's cup of tea
fair!
Special rarity used for to separate the two types of "Relic Jokers" from each other (strong positive effect + bad negative effect)
man wait how do i even make a joker ive had this sitting amongst my register functions forever....
ah
a table of functions
MoreConsumables code
dont think about it too hard
my beloved
:programming:
it's so clean i love it
one of the blinds of all time
ayyy fusion support
thats sick
man I do not understand a single think I am looking at right now, that might be because it's 130 am but still
making something (ignore that it says hips??? instead of chips)
don't worry we do not understand our code 24 hours after writing them
TRUE
so instead of typing out a billion SMODS.<thing>:new(...):register() and stuffing a billion extra things in after each one of those, i make an abstracted function that takes a table of each <thing> i want to register and registers them all
idk what magic I did to make a Buffoon tag spawn specific rarities nor how I deleted the skip button
see, I usually write python for simple automation and that makes sense to me. Lua is new to me so I might as well be learning a foreign language
each of those functions is a separate thing thanks to the inconsistency between SMODS register functions though, i know a better way to do it when/if they're made more consistent
235627356 function arguments jumpscare
nm who already set up a keybind to instant type SMODS
in the future, everything's chrome
and also steamodded object constructors take a table
instead of a massive list of arguments, you put all the arguments in one table
which also will mean no more 8-25 extra lines of code per object to insert all the function hooks
you just... do it instead
in the future I just tell AI what I want a balatro joker to do and it makes the code perfectly to do it
so what exactly is a slug, I've understood it as kinda a shorthand but I'm not sure if that's entirely right
(the bottom two would be unnecessary with the way new smods constructors work, my code is lame tho)
Meanwhile I just assemble a list of all jokers into one table, load them, and then loop curr_obj:register
yeah its technically not that different
Keeps all my joker code in these small little files!
i could arbitrate every single object if i hated having an even remotely tidy npp interface
essentially the slug is the "internal name" for the objecct
So i've had it more or less right, that's good
yep! smods will tend to refer to them as "keys" as well
Lua def isn't the worst language I've learned, but it's taken some time to get used to some of it. my big problem is remembering to end functions rn
chat does anyone know where playing card descriptions are created
nvm found it (common_events.lua:2578)
That makes me wonder how hard it would be to make a card, like what if I wanted to play an 11 of spades
There's a rank API
also
making new cards isnt the problem, trying to add new things that cards can do is
The thorn of spades???
dank ranks... releasing in 20 years...
Honestly making a deck with negative ranks would be cool
when did you add 0?
compatibility with bunco's suits (please)
zero was forever ago that image is from 4/12
binary joker for 1s and 0s and blackjack joker for 21s 2s and 1s? obvious ideas first
lucky 7 and unlucky 13
^
ok binary joker is lit
0 5 10 15 20 25 joker
The page is way too long
add more columns
gonna make new ui for it feder? 👀
working with html is somehow worse than working with balatro ui code
nah i did HTML before
the statement stands
i agree with it XD
that is very not good
chat give me strength im going to make more lovely patches 
i think that the deck preview could use a few modifications for super sized mods and mod packs
feder we need pages on deck preview
^
feder we need sanity
feder we need pages in the shop
ok
What are you going to cook
:programming:
what does the quick deck preview look on dank ranks
we need pages so you can swap to a second instance of balatro
past screen width
plus 60 suits....
perma mult/xmult for pcards
:)
image of minecraft speedrunners with 27 instances of minecraft open
yooo i have perma mult/xmult for playing cards without injecting
o
i can make the mechanic work without injection but i want it to be visually consistent with hiker boost
🫡 good luck
(theres probably some janky convoluted way to do it without injection but meh)
The page is slowly coming together...
ohno
that is an error message of all time
its like the entire patch dumped lol
are you on mobile?
how the fuck do you draw a mist
that looks like garlic LOL
nose blind
