#💻・modding-dev
1 messages · Page 218 of 1
I have finally stitched together a shitty solution to render a custom love2d texture as sprite of a joker now I can do stupid things
boosters go in descriptions.Other
I want my joker to dissapear when you press the cashout button
they also start with p_
is end of round not sufficient do you need it to be after cashout
For visual sakes, i want to press the cashout button
right now i have it like this, which didnt work
feels like you'd need to patch in a custom context for that
i assume like this, still does crash
i mean i can make it dissapear in the cashout screen but it looked weird
send in the 98%.
anyone happen to know how to force blind score requirements to update on the blind selection screen? i have an effect that can change the ante on that screen but the score requirements dont update until you enter the blind
ok it seems to give now a different error but still the same
what's the code
also a table of strings instead of a string I believe
i recommend reading this https://github.com/Steamodded/smods/wiki/Localization
So how do i Fix up Blueprint shenanigans?
how the heck did i came to descriptions lol
because a bunch of my jokers, Work with blueprint, but its a bit buggy
probablyyyy because of the "not context.blueprint" preventing some effects from being able to be copied?
just taking a guess ❤️
i dont have any blueprint context
all i have is blueprint_compact = true
and it does things kinda
i think its just for letting blueprints have the "COMPATIBLE" text under it green or red
Thanks man this crashed my game the whole time
I mean I really did but somehow I didn't found the solution in it
so it's all good now?
No it does like actually make them do things
Just its a lil messed up with some of my jokers
Probably because I mostly searched "what do I have to put into localisation" in the other object types
Yeah, just need to figure out how to give the strings those fancy colors, but that shouldn't be as aggravating
so i assume its context.blueprint and not.context.blueprint?
having "not context.blueprint" in your if statement will prevent blueprints from being able to copy the effects inside it
soo manually adding context.blueprint shouldnt do anything, pretty sure
adding it makes it only work when it's being copied
doesnt look complicated, but where do i find out what number does what color?
its namely things with messages and such
someone pin this PLEASE
you can just check it in balatro's code...
no
oh wait, is that in smods
yes
no
i see SMODS down there
the pseudo is i think
smods patches it but the other ones are vanilla

well still that needs to be pinned
I should learn how to make a vscode extension for it
I would be greatly appriative if you did that
(i would owe you my first and second born child)
appriative :3
you have star rail in your nickname shush
:(
:)
mean
XD
friend: "hey what's that word for finding the average of a set of numbers?"
me:
i will turn you into a common joker.
draw me a sheep
sand me a man
wha
hit on the 7th beat
status real
🚋 gender
ah
cant help it sorry
understandable
justified reaction
anyways SOMEONE PLEASE HELP ME WITH MY DECK RENDER PLEASE
reasonable response
I wanna have a deck that renders with multiple layers like a legendary
oh, so decks with souls?
it renders like a soul yes
i havent worked on decks before so good luck :3
baron
I'm trying to make the card on a different layer but nothing I've done works
unless I load the mod with cryptid for some reason
you could make cryptid mandatory to load your rmod ❤️
it's not really helping with a deck just the rendering of the deck
-# the fact you are struggling so much with decks actually makes me worried about making one now
:3
ITS JUST GETTING IT TO RENDER IN MULTIPLE LAYERS IS THE ISSUE
Inside voices
i dont know how to do that 😭
im bad at uis
i think you can ask the ui men, 🧙 and N' for help with that
THIS IS MY INSIDE VOICE
Big house huh
no I'm just very loud
apollo justice
never done graphics stuff
oof
i mean i would just look at the code with how cards do it and apply it to the top card of the deck probably
Use SMODS.DrawStep
Cryptid implements floating sprite 2 for the extra layer
censoring drake is crazy 😭 (he deserves it)
interesting
I have no clue what I'm doing with drawstep tho
insert read the fucking docs gif
GRAHHHHHH
and thus, it has been summoned
Yeah, SMODS wiki sux
Time to read the source code!
its in the file mentioned in the page
Use the examples given on the github, they usually explain a lot more by actually coding stuff
I'm gonna fucking 5! 



you
there's nothing for this case specifically (atleast I didn't see anything)
fuck you .5 tick oneshots
Let me repeat myself: Source code time!
where am I supposed to look
smods or balatros
wait im not in medical floor
Balatros, for this case the love engine might be consulted tho
i hate the uhhhhhhhh
dj guy mechanic, i forgot the name 😭
I have looked at balatros, the way it handles soul cards is interesting bcus i think it just grabs the sprite from the original joker sheet or smth
also it just doesn't work for decks which I have zero clue why
then again I am a bit silly
Decks use a different atlas, the enhancers one I believe
actually is card.children.back a thing
I am not sure, I am not very educated on the card class. Need to look at the card.lua file every 2 lines of code
card.children.back is the card back yes
then... card. children.back.children.floating_sprite????
Planned for a future update along with locked sprites
i see, thank you
hi squid, what is up with the rd references? Why do you want someone to experience a 2-2?
one person here was also in the rd discord
who
myst?
you too
:3
i hate when my pc got a notification then the key just decided to not register at all
how do I modify booster pack slots
I could learn Cryptid's way but it would take too long

my third deck choice (wip but almost finished) has +1 booster pack slot
for a second i thought you were talking about inside a booster pack but you mean how many booster packs are in the shop
do i have to declare draw steps in order
cause i keep on getting errors that say "attempted to index a nil field" even though I literally defined the step rightt here
those minecraft realistic resource packs i hate:
its placeholder sprites 😭
make sure you have the latest version of smods
what does H, L mean
holo, lucky
What in tarnation
basically every ability in that card
no i want it to work like blueprint
without converting seems hard, maybe just converting temporarily
yeah
you could do like what N' said, temporarily converting its enhancement and edition to the left card for the played hand and changes it back afterwards
that will save a lot of time
can you do that without changing its appearance
uhhhhhhhhhhhhh
@red flower (sorry for pinging beforehand 😭), what happens if you change the card's edition key directly, like card.edition.key = "e_negative", does it also change its appearance
no idea
lemme experiment rq
hey idk if this is the right chat to ask in but
Im trying to import the edited card art i made back into balatro (via 7zip) but it wont let me and says
"A file cant be created if it already exists"
and like
idk why that happens- i just wanna import my silly card art :c
Just use set_edition?
that would change the appearance of the card
Js make a backup of the original .exe then store that in a different folder, delete the original, then try again
im wondering if you can change the card's edition for calculation to work with, without changing the card's appearance
you could check how the quantum enhancements work, and see if that's easily ported to editions
If you don't wanna make a backup then don't. Steam can reinstall the .exe
Okay so like
If I understand correctly
Make backup .exe file.. delete the original and try putting my card art in the backup...?
Sorry if i dont fully understand what you mean-
nope, doesnt seem to do anything
hm
No, you need to repack the code via 7zip, then rename the balatro.7z to balatro.exe
Js make sure to get rid of the original or put it somewhere else
am i silly for making random ass functions like this :3
aight imma try
If this doesn't work, I believe the people in #🎨・fan-art can help. If not then there's always tutorials on google
So no rush
alright thank u <3
You're welcome <3
help my boss blind no worky for whatever reason
didnt work-
or i did smth wrong-
idk imma just
try to see if anyone else has advice lol
still thank u sm tho :3
Np
i feel like card.area == G.jokers is wrong, wait
Bad coder vibes xD
what do i do :?
this is what i did to debuff jokers
but uh, it explictly checks if the card is in the Joker set, so if for example, something that is from a different set like Consumables get into there then they wont be debuffed
1x and 2x are the same i know, and heres my code
i dont see what i did wrong can someone help :(
Idk what you’re trying to do but check Spinagogue Champion from Cosmos
y'know what, disable all negatives
💀
shouldnt it be
if card:get_edition() and card.edition.key == "e_negative"?
uhh, its related to the person's question above my messages
they wanted to make it so that a playing card can copy the enhancements and editions of the left one, without changing its appearance i think
Enhancements is built into SMODS
But I think a way to do everything is to create a copy of the card offscreen, then use the copy to calculate, except put the messages on the King
oh, thats certainly a way
still causes issues wth
what's the code
hard to know without knowing what the variables are
...oh actually, dont you need loc_txt?
i have a localization file
i thought i just got it to work via tutorial but now just this happened
its balatro's code lmfao
yerp, not my code btw
On nvm, then that's nothing
but my jokers.lua already surpassed that :3
can you post a bit more of the log
i think its a good practice to just ctrl + c the crash log and paste it here
Jesus
its easier to debug that way
Goddam, although that brings me to the question, how do you configure multiple files for a mod? Like you do, one for joker, one for blinds, etc.?
ive been working on my mod, a lot
you can put this in your main.lua
it will load the file :D
or this:
local path = SMODS.current_mod.path..'src/'
for _,v in pairs(NFS.getDirectoryItems(path)) do
assert(SMODS.load_file('src/'..v))()
end
so you can load multiple files from the src folder
so even if its only been a few weeks since i worked on my mod, i made a shit ton of progress ❤️
oh crap i swore
ogh noooos
only if you dont care about load order
true
Thank you! Is there a wiki page or explanation somewhere? Cuz I'd like to know abt the function and those mysterious brackets at the end
I've been trying to work on mine but the smods api for custom cards is impossible to understand
i actually like doing this more, it gives me more control over the ordering stuff :3
but also where's the person who implemented like at least four boss blinds into their mod i wanna know how they did it
cause idk what is causing the issue
thats
not very helpful at all, a lot of mods do that 😭
but maybe aikoyori is your person?
Ahh thank you! I'm a little new to lua, so I am not sure what assert does, but I'll js ctrl+c and ctrl+v for now
its all good :D
assert makes it so that if there are errors the game doesn't just sweep them under the rug
Basically try and catch
exactly
Is there a main function so to speak in smods? Because so far I haven't found anything of the like
oh, additionally, if you have files in a folder instead, then you need to do this: (I HATE MY GRAMARRRARSAR)
"folder name"/"file name".lua
im making a regular boss blind
not a showdown
but also not a regular blind
That's a weird / placement, but okie
i dont know how to speak english :(
Same
this sounds complicated
eitherthat or i haven't read the api much
..(okay i simply messed up and used the non pixel smoothing version as replacement of the pixel smoothing one oop)
hmm weird because the code should always turn that variable into a number, maybe there's something missing in the blind definition
as long as you dont put it in any area, it should be easy, i think
since it wont have any place to be rendered
Sorry, I just have like 2 mods of experience rn, so you'll have to be patient with me
Congrats
main function?
Yeah, one that SMODS calls in the main file you configure, or do I not need to specify one?
i think that puts it in the corner of the screen
i just followed the example of cryptid's shackle but since they have more integrated functions it's a lot different (they also make everything an "ObjectType" and then sets the type to Blind but whatevs)
heres the error code
...i might be dumb for not knowing what you are talking about, can you specify it 😭 (IM SORRY)
i never use cryptid as a base because they always have some code somewhere else that makes it actually work
ye
a lot of lovely patches
that may be my problem lol
if i do this tho it just crashes :(
i used another card reskin as a base but like it seems i just am missing something
but like theres only 4 files in the entire mod - the two images, the lua, and the json
So when smods calls and executes the main file, it injects the smods.Joker and such stuff into the main game code right? So I wanted to ask, if I specify multiple files like assert(SMODS.load_file("myfile.lua")() where do I puit that? Just in the file or is there a function to put it in?
ok yeah the whole idea is this
you can just put that in main.lua
thank u :3
Without any function?
if i had to explain it in simple terms,
what SMODS.load_file does is just putting all the code from that file into main.lua
convert the left card... into the right card...
DEATH COMES UPON YE
Is there a good tutorial for getting started making mods somewhere, couldn't find it in pins or anywhere else?
goddamn it, wait
bepis do ur thing
inspired by the grim reaper himself
https://github.com/Steamodded/smods/wiki/Your-First-Mod
this should give you some instructions
https://www.youtube.com/watch?v=Zp-4U5TlbxY&t=7s
the video is a bit oudated, but generally does well at telling you what to do
https://github.com/Steamodded/examples/blob/master/Mods/EditionExamples/EditionExamples.lua
its a good practice to check out the example mods, as well as other mods too for reference
https://github.com/Steamodded/smods/wiki/calculate_functions
on top of that, remember to read the documentation
A Balatro Modding Framework. Contribute to Steamodded/smods development by creating an account on GitHub.
STEAMODDED 1.0.0
A tutorial on how to make a modded Joker.
https://github.com/art-muncher/Example-Mod -- EXAMPLE MOD
https://github.com/Steamopollys/Steamodded -- STEAMODDED
https://github.com/WilsontheWolf/DebugPlus -- DEBUGPLUS
-----------------------------------------------------...
Steamodded example mods. Contribute to Steamodded/examples development by creating an account on GitHub.
Oh that would make things easier then. Alr I'll give it a shot and if it doesn't work, I'll just complain on here
thank you
no problem :D
this is my main file if you need reference https://github.com/nh6574/JoyousSpring/blob/main/JoyousSpring.lua
(i really should start making some tutorial videos on better calc lol)
actually
should i specify that in the video, and in calculate, they called cards "center"?
maybe
thats how i got the terms all mixed up when i first started 💀
i know what a center is but i dont know why it's called that
Thank you, having reference is such a huge bonus
I really appreciate the help here from ya'll, thanks
welp, i will fix it for later reposts
So, I know that I can show the definition of Negative next to the description of my joker by using
info_queue[#info_queue+1] = G.P_CENTERS.e_negative --adds "Negative"'s description next to this card's description
end,```
But this is the one that says `+1 Joker Slot`. How can I get the Negative definition that says `+1 hand size`?
ok i lookedf at blueprint's code and maybe there's a way to calculate the card to the target
copium
im pretty sure thats only for jokers, unfortunately
Oh no, not the center thing. Not even the source code helps me understand that shit
{key = 'e_negative_playing_card', set = 'Edition', config = {extra = 1}}
i think
copium intake was too high
does anyone know how to use the steammodded custom deck reskin api?
yeah im out of ideas
maybe i'll pass on this jonkler for now
(i barely know lua apart from that one time i messed with roblox studio)
im trying to make a friends of jimbo deck but theres something wrong with my mod and the website isnt really helping i dont think
i messed with roblox studio for 2 years, thats how i got around with modding so quickly 😭
- this community being extremely helpful too :3
i still keep getting crashes >_< i think i know what's going on but it might have to do with source code nonsense that i don't really wanna discuss here at all
but idk why it would cause issues when clearly it hasn't caused issues for vanilla blinds
Thank you @manic rune and @red flower I got it to work
nice :D
Although I am likely not making many additions, so I'll keep me files to a minimum
i dont think the [Drag to rearrange] is necessary, but yeah
i like that
it's for the continuity with the mod
oh i see
🔥
basically a free death every round
this one wont be as complicated as the copy ability thing i just need to get the hang of the api lol
can someone help with my situation please
i dont know about decks, sorry :(
-# the same goes with that 😭
no its fine, i kinda misremembered your question as decks
the cooler death:
its basically a death each round
decided to uhhh rework this thingy
probably looks cleaner now ❤️
and i can still manually change the ordering
bepis how did you do blinds
im genuinely struggling here
idk why my code isn't working
because i've done my blind so similarly to other blind
SMODS.Blind{
key = 'Test',
loc_txt = {
name = 'YOU ARE FUCKEDDDDDD',
text = {
'All Jokers are debuffed.'
}
},
dollars = 5,
mult = 0.1,
boss_colour = HEX('C8831B'),
boss = {min = 10, max = 10, showdown = true},
recalc_debuff = function(self,card,from_blind)
if card.ability.set == 'Joker' then return true end
end
}
heres my blind's code
(does this count as swearing)
idk
can you try pasting allat in place of your blind
to see if it works
if it still doesnt work then its probably smods changing how blinds are implemented (unlikely) at this point
💀
maybe i need to update again
maybeee update your smods?
my smods
my smods version is also ancient lmfao
used a different mod lol
Little do you know my playing cards give 2^128 mult and chips
im debuffing playing cards too.
WAIT NO HOLD ON
okay there we go
(ignore the chip, i need to make art again)
your debuffing buttons? I didn't even know that was an option
it isnt, but you can probably fuck up the buttons so badly they wont function lol
i feel like the text is a bit too small
Excuse me what? Are you telling me you can debuff buttons?
Jesus christ ma guy, gave me a heart attack there
you can hook the button enable function and make them always be disabled
:3
silly idea for a boss blind: reverse the functions of Play Hand and Discard buttons
wait, i have an even more silly idea:
1/2 to reverse the functions of Play Hand and Discard buttons when each is pressed
But for now I need help, what does from_blind in recalc_debuff do?
@tall wharf :3
I challenge you to do it
im working on a not-so-silly mod sadly 😭
Time to make another simply for the sake of being silly
oh yeah, i forgor
putting cruel blinds to shame
Since ya'll like making blinds so much, can ya help me?
i dont know about blinds that much despite me discussing about them a lot lmfao
That's... a lot of blinds I see
those are cryptid's
I'm guessing I have to patch this if I want my tag to conserve it's ability table....
i hate patching
um actually the entirety of modding is patching
what if theres a mod which has NOTHING in main.lua, but all of their jokers are added through lovely patches
i love that gradient blind (i forgot its name 😭)
which one
its my favorite gradient coincidentally lmfao
the arrow or the zigzag
the Expiry
permanently
yes, gotta emphasize that too
Is there a way to get repetition context from within the recalc_debuff?
or any context for that matter
Can I get it from the G object?
how do i get the score a hand would make, because I'm trying to make it so that you can't score more than 50% of the required score in the first hand and my current implementation doesn't work >_<
(even if i return true it doesn't work)
oh yeah, fucked up the logic a bit (it chose 3 different cards, so it should give 3 hands), lemme fix rq
@manic rune@manic rune@manic rune IT WORKS
wha
imagine getting screwed over because you decided to play a high card
That's amazing
this is much more lenient than your other blinds honestly 😭
i mean
i steal code from other people and then modify it to suit my needs
can you read my code
i know some coding before
i am not that talented wtf
im on my knees aikoyori
Same but like
The music part is one which I have yet to attempt
im forever glazing aiko 😭
i stg this stupid deck thing is gonna make me put a hole through my desk using my head
also for this i tried seeing what Cryptid did for "The Tax" but they used a lovely patch LMAO
i have so many quality of life functions in my mod, i might as well make an entirely different file for just them
😭
new API incoming
im still proud of this one the most though
i actually didnt know i could pull it off 💀
highkey might start making modules for my mod because i want to keep a certain level of sanctity
like i want the base mod to be just color splash
the ONLY thing keeping this from being absolutely perfect is allowing you to implement custom keywords for the code to automatically color parts with that keyword
but if i wanted to i could make a module that was just ttyd jokers and vadges
this is the best thing i've done in my mod tbh
what the {}{s:0.5} doin'
i will copy it :3
oh uh, how i color stuff is that i always declare {} at the end of what i want to stop coloring lol
I figured as much
so while people use {s:0.5}aaa, i use {s:0.5}aaa{}
not like it matters, the {} just doesn't do anything if there's another control after it
ok
i actually figured out you can do without the {} after i finished that function
time to add impostor mechanics
😭
and it just so coincidentally to be the part where i struggled the most to make it work too
i like having {} it's easier to read imo
i mean you could just gsub }{ if you wanted to remove them
in my defense, its only been about a week or so after i first got into modding that i started working on the function, for absolutely no reason
same, but i guess its more efficient to just remove the {}
meh, I don't think it's easier to read if there's just another set of braces right after
at the end of a line, I don't mind it
if i were to remove {}, what would i need to do to achieve the same results
im actually a bit confused behind the logic of this
in that case you need it
not for those cases
oh
yeah i see
i think i might have to have my boss blind require a lovely patch
not a lovely patch 😭
i dont know if theres any other way to cap the score
yet again, another niche function 🗣️
this is the entire code without the "c" part lmfao 😭
my bosses don't use lovely patches
idk
at least i don't remember making new ones for it
why did i decide to have colors in their names
you can never have what you want
❤️
it's the way of life
hooking time
nah, I'm just going to remove it from the string
i guess that works too ❤️
oh, mine probably will cause it caps your score at 50% on the first hand
Hello. Is there a way to directly add chips to the chips counter instead of doing it through the bonus chips thing?
so the tax
yes
unrelated, but thats a very underwhelming effect ngl 😭
😭
this is how i hide the default chips
^ this dumbass hasn't done a single lovely patch ever and doesn't know how to.
dark mode teto
noo not teto 😭
nice
🔥
@tall wharf the ladder :3
I'm still pondering, is there a more universal way to get the game context?
you mean staircase?
wdym
dang, you beat me 😭
context only exists in calculate functions
The calculate function passes the context. But can I get it anywhere else?
Source code says that's not the case
you will have to hook SMODS.calculate_effect
you can get G.STATE or that ^
Hook? Wdym?
what is it gonna score
G.STATE?
In LUA, it is a very important concept to understand that everything is a variable and all variables may be edited in runtime. This includes functions. With modding other peoples' LUA files, like Klei's basegame code, you may find yourself wanting to run your code before or after the original fun...
Lemme have a look...
mods should have their own calculate function
oh damn?
is this runescape
bro came out of nowhere and produced 🔥...
no i actuall dont play runescaep
(you can actually see my lack of ram causing music to stop mid-way 😭)
runelatro coming soon
me too, but the art looks really cool
I FOROGT TO TURN OFF MENTIOSN
ghhhhh
i hate myself
why is it re-enabled so randomly everytime 😭
thats good to know :(
hey im having problems with malverk does anyone know how to debug malverk
i'd rather you ping me anyway because i will definitely miss it if you don't
i want to take extra steps to make sure i dont annoy people i talk to ❤️
basically, the reason I am asking to get the game context, is because I need to simulate a joker running (don't even ask) and store it's output table, currently I have:
local output = card:calculate_joker(G.STATE)
if output.somevalue then return true end
return false
end
same man 🔥
Well, time to get back to modding I guess
unrelated, but you can actually do this when you send your code
print("hello world")
it looks nicer that way :D
Gotcha
Markdown syntax my beloved
parse_mode: HTML waiting room
So, anybody who can help me out?
Blegh I need to learn shader stuff :(
Need to figure out how to make a gold-looking edition
fucked up the logic again, but the randomly selects card looks funny ❤️
A more coherent example of my problem:
local output = card:calculate_joker(G.STATE)
if output.repetitions then return true end
return false
end
So like, I need a way of knowing if X joker can output X type of value
In my case, if it repeats something
why does the one on the left work but the one on the right produces this error?
heres my files aswell
HELP
what did you do bro??????
what did you do 😭
😭
https://streamable.com/zljkfx @tall wharf :3 is this blanaced
I really wouldn’t recommend doing this, what are you trying to do exactly?
Basically trying to find out if a joker repeats. Like it forces a card in hand, a card in play, or another joker to trigger again
sooo checking if a joker has context.repetitions?
Hey! I'm curious about the process for creating a mod for the game, but I'm not sure where to start. Was hoping to find some pinned messages in here about some modding resources, but alas :(
Are there any tools/videos/documents that describe the mod creation process that someone more knowledgeable can point me towards? Thanks!
You need to use post trigger then
uh, wait
https://github.com/Steamodded/smods/wiki/Your-First-Mod
this should give you some instructions
https://www.youtube.com/watch?v=Zp-4U5TlbxY&t=7s
the video is a bit oudated, but generally does well at telling you what to do
-# (note: there are some parts in the video where they called cards "center". don't do that, it's a bad practice, they are cards)
https://github.com/Steamodded/examples/blob/master/Mods/EditionExamples/EditionExamples.lua
its a good practice to check out the example mods, as well as other mods too for reference
https://github.com/Steamodded/smods/wiki/calculate_functions
on top of that, remember to read the documentation
A Balatro Modding Framework. Contribute to Steamodded/smods development by creating an account on GitHub.
STEAMODDED 1.0.0
A tutorial on how to make a modded Joker.
https://github.com/art-muncher/Example-Mod -- EXAMPLE MOD
https://github.com/Steamopollys/Steamodded -- STEAMODDED
https://github.com/WilsontheWolf/DebugPlus -- DEBUGPLUS
-----------------------------------------------------...
Steamodded example mods. Contribute to Steamodded/examples development by creating an account on GitHub.
Or maybe the retrigger check
Thank you so much!
Yes, thing is I want to disable those on my blind
Where I can't get that context
yeah uh, you need a patch for that one probably
A patch?
basically, what you need to do is:
- when your blind is on, turn a global var to true
- patch context.repetitions so that if the global var is true, it wont run
its uhh, adding code to another file, basically
There a guide?
mhm, wait
Why would I want to make it not run?
Gotcha
...i thought you want to disable them in your blind?
Oh right right, I simply wanted to check if it exists, then make it not run in the recalc_debuff
jesus that looks like effort
Hi guys, I'm working on a blind but somehow the blind disappeared when I select it
Do you guys know what problem this might be from
The blind does appear normal during selection screen but not in the playing screen
Okay, I got the just of it. What is the syntax for adding a condition to it?
So it only runs when that global variable is true
For me, the cause of this formatting has usually been \n. The way love handles it is different
I finally had a good idea and made palettes of the standard balatro colors.
here they are in gpl format which worksa with like everything
use whatever you want, but in the end it should have a if not G.GAME["your global var name"] then which whenever context.repetitions is run, it will check
and whenever you want to disable context.repetitions, just set the global var to true
im currently not on my pc so i cant help that much other than outlining what to do, sorry 😭
was that because of the new line character '\n' in my blind.lua file or the localization file?
No problem
I mean like, in the .toml file. Because from what I've seen it only patches things, there's no way to add a condition in it
there is
There is?
you can add your own code inside the file
Lua syntax I suppose?
bepis saving us with the copypasta
nnfnfnfn idk how to explain patches properly 😭
a condition for what
It's alr, I'll do more research on my own
to me, it's kinda like find and replace string, or insert string into vanilla balatro code
how would one change what happens when a card is removed/destroyed
yeah its basically that, i dunno how to explain in more details though
it's like cutting up a newspaper to remove parts or to glue new parts in
Known issue with Nopeus (if you have that mod), Blind icons fail to appear.
If you don't have that mod... Idk
oh so that's what happens
The thing is, that would fix the repetition stuff, but I would much rather debuff the jokers. So I somehow need to find the joker's place in the code, and check if it has the repitions
omg thanks a lot. I've been banging my head against this problem for the last week
Hi guys, I am very happy about this card, mind if I share?
this channel is where you showcase your modded stuff too, feel free ❤️
I have another one that rewards palindrome hands, and I have to say they were very fun to play
mmm i have some feedback for this
generally, jokers dont have "." in their description
oh that's such a clever concept
and for the "Needs a bigger shell", i suppose that's flavor text?
if so, you should put it at the end of the description instead
The (currently)'s generally also it's own line, which makes it feel better to not have punctuation
mhm
and i personally like making flavor text with {C: inactive} too
so that they wont be confused with the actual effects of the joker
actually is there a context for any card being destroyed
but other than that, its very solid mechanic-wise, but id bump it up to Uncommon as common jokers dont tend to provide Xmult with no downsides
theres one for playing cards
yea that works
its uhh in the calculate documentation
sorry, im on phone rn so i can't directly find it :(
is it destroy_card?????
nvrm it's remove_playing_cards
You know, I never noticed that they don't have punctuation. Also a good idea about the flavor text, I will do both of those!
hey, new here/working on a mod. does anyone have any pointers on how to create new buttons for jokers/cards? like the sell button or use buttons when u click on consumables, but i'd want clicking this new button to do something else.
there is also 'context.destroying_cards'
highly suggests checking out #1338302514616995892 , the mod does just that :D
thx
you could also use my mod (https://discord.com/channels/1116389027176787968/1338998660372889772) as a dependency (Look at Coin Slot for an example)
-# this is such a perfect opportunity to plug my mod if i had it released...
Hi folks, I saw a mod that was somehow making the flavor text smaller in their loc_text. I can't find out now, anyone have an example of making flavor text smaller?
s:0.5
@ionic verge https://github.com/Aikoyori/Balatro-Aikoyoris-Shenanigans/blob/main/lovely/selectionlimit.toml
add that and it will make your text smaller
thank youuuuu
you can also combine it with colors and such too
does anyone have any idea at all if I could just block a card from being destroyed
like, {s:0.5,C:inactive}hi{} works
one last thing
what would i need to change to limit it to six cards specifically?
that definitely uhh needs a patch ❤️
you basically have to store card limit somewhere
there needs to be a central api for this shit
MR STEAMODDED WHERE ARE YOU
yeah i would love that
call forth the wizards
would make my life 1 quadrillion times easier
with how frequent mods are implementing custom selection size, i think they may actually add that
similar to how they added xchips
oh, some other stuff you may also use:
E:1, and E:2 also make your text wavy, you can probably play around with that :D
Also, after an Xmult, you don't need to write mult!
the Mult] part is uncolored lol
So I have two ideas for mods. Idk which one to make first
ohh fun. I have been trying my hand at shaders and the hard part is
That it is slow to work on since I can't find a way to run them out of the context of the game. I need to find some compiler to highlight basic errors
uhh
theres a website to check the effect at real-time
aikoyori uses it
@tall wharf sorry for pinging, can you help with this one :(
shaderToy is cool but those seem very different, webGl shaders vs the format lovely uses
i use glsl.app but you'll still need to port shit to the fs
i remember you coding your shader in another website
i just restart game
and uhh it renders in real time
and use the cryptid's edition deck to preview
Again you can see the shader in-game live
i was learning on book of shader
oh, was it the one in editions example
I am not following you, when I am trying to add a new shader and apply it to a custom edition, I was writing it in vscode then reloading the game evry time. I can see it in game by going to collection\Editions.
But how could I see it live in game while working on it?
wait, its actually possible to load shader in real-time with debug plus?
oh dam
never knew debugplus was that convenient
Blessings & Hexes
Or
BalatroTale:An Undertale Expansion
:D
I'll do both, but idk which one to do first.
undertale...
the smaller one
nvm i realized you have to have the animation atlas on lol. it works
Anybody know why my blind isn't appearing in any run? Do I have to specify a rate?
how can i add to the info_queue of something like vanilla jokers? 
Nvm, I js wasn't patient
info_queue[#1116390750314307698_queue +1] = whateveryou'repassingalong
yes, that's how to add to info_queue. but i'm asking to do this to vanilla jokers as part of a mod i'm writing
i'm hoping that i won't have to do some wacky patches and such
but i don't see any other way
ah, sorry, I thought you meant passing a vanilla joker to another joker as the info_queue. You wanna either patch that, or take ownership
i see. thanks
additionally, you could modify the generate_ui function to check if it's being called by that joker, and then pass whatever you want to to it
can you add retriggers in context retrigger? cause i wanna add a joker that has a chance to retrigger multiple times but each time the odds get smaller and smaller
you could just simulate the probabilities all at once up front and add the retriggers in one go when you normally would
that is true
otherwise, i think retriggering from a retriggered context is probably disallowed due to how easy it'd be to infinite loop yourself (?)
is it possible to hide the custom enhancement information under a card
elaborate
Wow I have been restarting the game like a milliong times. This will be awesome
New Joker!
Binary Star
Your Planet cards are used 1 additional time
any idea on where to access this?
how do i make a joker destroy all scored kings
i know its something with context.destroy_card
but i cant quite figure it out
no lmao
i am not the person to ask about that
I'm not sure on the exact way you'd do it, but I think set_card_type_badge on your custom enhancement would allow you to turn it off
why does this crash
how would i recreate misprint's glitchy text? is that possible?
with update function i think?
elab?
dynamic text
I guess there's no easy way to draw sprite over G.GAME.blind chip like on soulable cards
Hello again, I'm trying to make the Joker...
It seems like all the code examples are there, SMODS.Atlas is there, the SMODS.Joker code is there, but nothing works, and I can’t understand why... 
For anyone needing to fix the error shader uniform 'your shader' does not exist the fix is that within a shader you both need to declare the external variable of it, AND also you have to use the .x and .y values somewhere in your shader code.
If you don't some aspect of Love2d which is the engine being used here, well it will optimize out the variable entirely.
Commenting this because I have encountered and solved this problem like five times now
text that moves is drawn by DynaText(). I'd love to explain more, but it's a function that's got quite a bit going on, and I'm not super comfortable with it yet. But you can check your lovely dump's misprint locvars
is there a way to grab random suits that includes modded suits automatically
now why would i do that
pseudorandom_element(SMODS.Suits, pseudoseed("something"))
i think i got what you mean ill go look
thanku
Can anyone share some understandable template of the Joker?
ok why is that though?????????
Working on a new shader. It's for an an enhancement even more brittle than glass.
My end goal effect is to speed up this sin pattern and make it look like lightning. Really not sure if I can get diffuse light working either
because the functions you passed to it return false
let me rephrase
wait it is like its details in the localization file right? or wrong spot
why are they returning false
in card.lua, you wanna check the local vars that Misprint returns!
idk not familar with change base
ohhhhhhh wrong file (i went to en-us 😭 )
try making them a string
i stg if thats it
also @edgy reef I think I found a lsp mistake (SMODS.change_base returns something0
i fucking hate making balatro mods
lol
that function shoudl return an error message too
then the assertion would have useful info
@frosty dock should I do that?
Yeah idk why the message is a warn and not just the returned error
yeah, not sure why it doesn't tbf
I'll update the lsp while I'm at it
also the wiki
it doesn't say it cajn return a card
still want to know if anyone has a solution for me? 
It has no comments descripbing what it does too
xdd
Help me please
I want to make a joker
what's the issue exactly
can I specifiy that it returns Card|false?
or is that an invalid type
I can't understand what I need to create a joker in the new modification structure with meta.json
If we're reworking the function a bit it can just be Card|table? for the card and string? for error
Psst
They said all numbered cards become those numbers
Jacks Queens Kings and Aces arent numbered cards
i don't take issue with it returning nil instead of false
shush
the first return is false if it failed
yes thats me
usually something like this
Naturally the atlas needs to correspond to one that exists
oh wait
What if I want to split each joker into files? Can I and how?
@edgy reef theres comments above the actual implementation but not the lsp one. How should I handle that?
Just copy them over
For a better understanding of what I have in general
keep it in both spots?
that's why there's a return at the start
I load the files elsewhere
learning to make custom jokers rn using a tutorial
should i mark it as @nodiscard
If that works yea
For example:
main.lua
meta.json
AJokers/
AJokers.lua
j_alter_bull.lua
Lua Language Server uses the Language Server Protocol to offer a better Lua development experience for your favourite editors.
localthunk programming The Water:
you can ignore the joker_name; it's just for printing a name with spaces instead of the key
I want to load Jokers.lua from the main.lua and all jokers from the Jokers.lua
i have this in my main.lua rn and the accompanying image in assets\1x and assets\2x but im not seeing my mod on the mod list
does anyone know why?
oh i typo'd
how do i create an eternal egg and add it the joker slots
mb i misread that
ur fine
id recommend making a manifest.json instead of using the old header system
wheres a template for that :V
the docs
so will my mod show up now that i have a json instead
yeah I'm not sure what's wrong here but the old header format is really fragile and can randomly break even from trailing spaces
if it doesn't work with the json file in place, something else is wrong with the way you've set up your files
srsly tho this is weirdly hard
What do I need to load this into the game?
loc_txt
SMODS.add_card { key = 'j_egg', stickers = { 'eternal' } }
loc_txt = {
name = "name",
text = {"line1",
"line2"}
},
jsyk
steamodded adds prefixes automatically
What if i have this structure?
including a mod prefix and the j_
scandinavian sleeping and living
that's not what i said but lmao
close enough
this means the final key of your joker would actually be j_modprefix_j_alter_bull
any context
I need to load my file with a joker from AJokers.lua and AJokers.lua from main.lua
you can load e.g. AJokers.lua with assert(SMODS.load_file('AJokers/AJokers.lua'))()
lol
What does assert do?
As far as I know, assert makes lua crash if whatever is inside doesn't like, fully work or something.
Makes sure that a function, for example, fully works idk.
SMODS.load_file is written in such a way that it doesn't itself crash but returns an error message when it fails
tasty
assert makes sure it does crash and display that error message when that happens
(it behaves the same as lua's load and love's love.filesystem.load)
assert(false)
real
assert(true, "Fuck")
Oops! The game crashed! string:1: Assertion failed
Oops! The game crashed! string:1: Fuck
how do i specify the edition i want the egg to be
hold on
edition = 'e_polychrome'
lemme find the line
forgot the e_
How do I know that my joker is in the game?
check the collection
collection
collection
collection
There is nothing
then it failed
correct
bit late jogged la
Did your mod load?
Scrambled through FG's files to find the line lol.
uh how is it ending up in consumables
this is so fucking stupid
area = G.consumeables
negative jokers in consumable area increases the joker slots instead of consumable slots
good to know
