#💻・modding-dev
1 messages · Page 297 of 1
very clean, also i didnt respond earlier but the dimensions are 71x95 for these sprites
my mods decided to stop working all of a sudden does anyone know how to fix this
send crash log, cant really do much without it
well im gonna try reinstalling
still didnt work
looks like a talisman thing? not too sure
^
do you have talisman?
yeah i have both the mods on
like i have the mods in my folder but when i go on the game
no you have to remove the .lovelyignore file from talisman
eh
and mods dont work
lovely isnt supposed to be in this folder
can you rename smods folder to just "smods"
and do you have a .lovelyignore inside that folder
i think my game crashed out after i was messing around with the debug menu and jens almanac
well you reinstalled the mod as well didnt you
huh?
didnt you say you were going to reinstall the mod
i said i reinstalled the game
did you check if the version.dll was removed from your game files
^
no
check
manage local files
alr
yeah there's no version.dll
follow the guide
you may have to disable windows defender and/or your browser's anti-virus protection when downloading
if it doesn't work try reverting back to lovely 0.7.0 instead of 0.7.1
wasnt 0.7.0 very broken
it wont download
^
use a different browser
so i've started making a wii themed balatro mod, and all i've done is the music and the font (trance)
where do i go from here
that would be a better ask in #⚙・modding-general
yeah its my anti virus
good point
disable that
disabled for 10mins
the fuck is this
this is wild
i still cant
and i went on microsoft edge
^
i have to download it lol
So you know how the Soul card has the shard that floats above? How do I implement that with a Joker?
Finally
i got code for this 1 sec
isnt this how legendaries have their sprite set up
all you do is add a soul_pos = {x = #, y = #} to your joker
the pos is for your atlas ofc
cool. uhh, how do I define a thing to be the soul?
so this adds a floating sprite to the middle of your joker, position derived from the same atlas as your joker "background"
it's just a section of the atlas
lemme show
Im so lost in this
So what if... my soul texture... was a seperate PNG
you know i think the smods wiki should be updated more or else i will never know what the fuck does set_ability() do
put it on the atlas
ask john smods lol
so just do soul_key and soul_path for it?
but how does the thing know what the soul texture is?
what do you need to know
so these are both on the atlas 'Jokers'
the joker's pos on the atlas is x=3, y=0
the soul's pos on the atlas is x=3, y=1
as you can tell from the code up here
how set_ability() works
I got that part in there.
Now how do I set it in the SMODS.Atlas?
im going to pull my hair out, i downloaded it and it had nothing in it
your antivirus removed it
i turned it off
do you use another antivirus in addition to defender?
it sets the ability of a card
so it basically either makes a new card or "transforms" a card from one to another replacing all the card.ability values
i use norton
check the norton log
which is the one i turned off
do you have both defender and norton disabled
it also does a couple other stuff like adding the card to used_jokers if it's not a menu
yeah but what are the parameters exactly
aren't they in the code
No clue how to turn off defender
so wait, how did you do it for yours?
exactly like that
good evening everyone
i have a png called "jokers.png" in the file path ChakraCollection/assets/1x/, then i added an atlas with the key "Jokers" to point to that file
then in my joker code itself, i set it to use the atlas with the key "Jokers", set the position of the joker's texture on that atlas with the code pos = {x = 3, y = 0}, and set the position of the joker's "soul" on that atlas with the code soul_pos = {x = 3, y = 1}
sent screenshots again for reference
goodevbepis
have u checked out art i made for relic pack :3
That escalated quickly
i saw when u were figuring out the font
"ruining my life"
yeah, i figured it out :3
"ruining my life"
ohhh that looks really cool
thankss
So with just this, I drop in the soul texture, and it works without a hitch?
thats a lot of pixel
idk if you can have the soul texture be on a different atlas than the joker texture
ok im crashing out ive looked for like 10mins verywhere and looked up stuff and i still cant find the manage settings
let me consult the wiki
Well, 75 x 91 looked ugly in the last batch of mods, so....
god forbid we have a reasonable pixel density
i honestly don't think its worth the effort
its faster to just have the soul and sprite in one same png
yeah
just do that
if you really want such a high res soul then just also include the joker backing on the same atlas upscaled
where tf is manage settings here
if you're using norton it'd be in norton
i think im an idiot, can someone help me replace the title texture and the location of the card on the main menu
you have to be kidding me
i had a run with a natural canio cuz i was tryna do naninf on gold stake and wanted to be able to drag my mouse and now i cant do that run anymore cuz i updated steam modded
how would i set a created card's sticker? specifically i want it to have an eternal sticker
i presume something like card:set_sticker?
Well... that's not exactly right.
sticker as in eternal or perishable? card.ability.eternal = true (change eternal to whatever sticker you want before add_to_deck)
(eternal, and thank you!)
help pls
how does SMODS.take_ownership work
what are you trying to do
Trying to get the backing to be coherent instead of cut off.
are you sure you want that many pixels...?
I cannot stand the pixelated VRoid models, so I'm certain.
I finally got it fully working.
Now for the worst part:
Checking for 4 specific Jokers, and if they exist, destroy all of them and create a specific one.
So before I bang my head against a wall for a lot longer, anyone know how THAT'S implemented?
Dude it did it again
Your AV is deleting the version.DLL because it thinks it's malicious.
How do i make it not do that
Exclusions.
How do i do that
add it to the av exclusions. i'd recommend adding the entire balatro path to exclusions
Look at tutorials on how to add exclusions to Windows Defender (and maybe your other AVs)
depends on your AV
Norton 360
the color of my custom pack's UI outline is defaulting to red, how do I change this color? I can't find anything on this
wait it worked
nvm
Giess not i didnt paste it
Its been an hour and im still clueless
making a mod, all i'm tryna do is either get help with replacing textures or get someone to do programming for the mod, so how do i replace the main menu sprite?
this, how do i replace this
use an atlas like this
SMODS.Atlas{
key = "balatro",
path = "balatro.png",
px=333,
py=216,
prefix_config = {key = false}
}
thanks lol
anyway now time to ask/find out how to change the position of the card on the menu
How can I check if a new ante has been started? (aka leaving the shop after completing the boss blind)
pretty sure you can do if G.GAME and G.GAME.last_blind.boss and context.end_shop
bal la 🔥
Ah, thank you!
may i ask how to move the card
for now it basically just calculates the invisible card area which is not what i was looking for but a good compromise
The win button
do you guys know of any mods that add Boss Blinds? looking for code examples to see how they are structured
Update: It still doesn't work, but now it doesn't crash. Currently it just spams "No Available Joker" as soon as a Boss Blind is Active
you can also look at the documentation for SMODS.Blind
holy shit
whats your mod?
K 👍
That looks fantastic
yup i have it open, i want to have a look at some example code to get myself started
Something that feels sooooo nice about seeing your custom boosters appear in the store
https://discord.com/channels/1116389027176787968/1341298886438027304
the source code is in there, and my blinds are organized into a file called PMBlinds
Bepis is, as the kids say
Absolutely fantastic at what he does
thank you :)
You're not checking for the "starting blind" context, so it's activating on every context
LMAO!!! This is hilarious
Ohhh I see
YOu guys are really cooking tonight
How do I do that?
i still need to know how to move the ace card
Oh my god that's so peak
Maybe check out how cryptid adds a second card?
that is a good idea give me a momento
check out https://github.com/Steamodded/smods/wiki/Calculate-Functions for the context issue
reading through the code, I also don't think :get_edition does what you think it does; check the vanilla source code for that one
it's usually gonna be a lovely patch (for the ace card)
K there is a function in game.lua, called :splash_screen() you'd want to shim that using a lovely file
so just.. yoink it from game.lua and put it in the mod?
update it works now 👍 But I should probably do something about how it gives eternal to cards that aren't supposed to-
No, write something like this
# spawn WAYYY more cards
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = '''
for i = 1, 200 do
'''
position = "at"
payload = '''
print("test")
for i = 1, 450 do
m
'''
match_indent = false
just a disclaimer but i am in no way a coder so if i seem dense you know why
That needs to go in a file called lovely.toml. which needs to be in your mod folder.
Use this as a proof of concept to show modifying that area of code. This is pretty funny because it makes the intro sound play SUPER slowly to account for the 450 cards spawning, lol
really cool mod btw, will be following it
love the bosses you implemented
When picking a pseudo random element, is there anyway to make an exception, random card but not X card
remove the card from the given table
Can I implement purple stake's scaling as a custom challenge rule?
any idea of how i'd code that. new to this sorry
mod that plays the invincible title card sting whenever you buy an invis joker
If hes invincible then why can i see him
IT WOOOORKS, IT WOOOOOOOORKS!!!!
This is so dumb I love it
im going to try work on more dumb textures and stuff lol
I spent all of that time working on this,
eval local card
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 2.04,
func = (function()
local SC_scale = 1.1*(G.debug_splash_size_toggle and 0.8 or 1)
card = Card(G.title_top.T.x, G.title_top.T.y, 1.2*G.CARD_W*SC_scale, 1.2*G.CARD_H*SC_scale, nil, G.P_CENTERS.j_joker)
card.no_ui = 1
card.states.visible = false
if nil ~= replace_card then
replace_card.parent = nil
replace_card:start_dissolve({G.C.BLACK, G.C.ORANGE, G.C.RED, G.C.GOLD})
end
G.title_top:emplace(card)
return true
end)}))
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 1.04,
func = (function()
card:start_materialize()
G.title_top:emplace(card)
return true
end)}))
If you have debug plus and run this, it will add additional jokers to that start screen
I have a different one
It works with souled cards
im so sorry lol
I am not sure how cryptid made them look nice like that. It looks pretty whack if you add too many cards!
Quesiton: how does midas mask work? I'm trying to make a joker with a similar idea (glass instead of gold) but i'm stumped. I have based the detection of the king being played using the example walkie talkie in the smod example joker code but i can not figure out how midas mask works
i can send what i have if needed
Seems to work for me!
It recenters it I think
You can look at the source code for the game
Extract it out if the .exe with 7z
I have, can not figure out how its changing the cards
this is gonna be the peak mod of 2025
poyo
i would absolutely not say that, and if it does i blame it on nostalgia doing the work for me LOL
I am looking at it, just do not know which parts are relevant to changing the cards and which are relevant to detecting it
I actually used listenToYoutube to make an mp3 of that video to extract out the Poyo sound efect
if that makes sense
...why not use YT-DLP?
i also came up with a custom joker ability even thought im tryna keep it to a texture mod
ahem
Dolphin - Copies a random ability of a joker sold this run.
coz dolphin emulator
Nice
TBH I did use that but I thought folks wouldn't know about it
I use it on Linux and Windows
yt-dlp is an amazing tool, I am happy it is not so well known
I wrote a Family YouTube Replacement that uses yt-dlp. It's an aspnet core app running bootstrap (because I like it !) and I added auth and a shopping cart system.
Kids get credits and they can put in 'orders' for videos. I have a black list and some some auto approve conditions. I thought about open-sourcing my whole tool chain but I worry about it getting noticed and then I'd have to redo things
Hey, I'm trying to make a joker that retriggers cards that are enhanced, what's the best way to know when a card is enhanced at all?
Like, not looking for a specific enhancement
context.other_card:set_ability(G.P_CENTERS.m_glass, nil, true)
next(SMODS.get_enhancements())
if v.config.center ~= G.P_CENTERS.c_base then
or this
thank you, i will give this a try🫡
you have to wrap this with an if context.individual i think(?)
So could I do something like next(SMODS.get_enhancements()) == true?
info_queue[#info_queue + 1] = G.P_CENTERS.m_glass
end
calculate = function(self, card, context)
if context.individual and context.cardare == G.play then
if context.other_card:get_id() == 13 then
context.other_card:set_ability(G.P_CENTERS.m_glass, nil, true)```
just next(SMODS>get_enhancements())
this is what i have so far
man i wonder how the ui would look if the buttons were round and didnt have pixellated corners
this should work
This is the relevant part where I'm trying to check if the card is enhanced or not before it's told to retrigger
How do I plug in the next(SMODS>get_enhancements()) there?
and next(SMODS.get_enhancements()) then
sorry its a period not a ">", i made a typo
Gotcha, thanks!
nw
I am kind of struggling to make this feel fun to play. My idea was to make this like a stone card that starts low and 'grows' when held, like grass grows in your yard
heheheehe
I made a set of cards that either also grow when grass cards are scored or held, but to me this doesn't feel that fun
what increases as its held in hand?
i swear i really wanna make a trance colour scheme for the wii but 1. the website keeps lagging really bad for me and 2. im tired so goodbye chat
what are you trying to use as abilities?
easiest way to make things fun -> make number go up
A new enhanced card I made. It functions but isnt' that fun. Maybe it grows too slowly. Or maybe just +chips isn't that fun
When it gets a red seal and a special edition then it's very fun
so the +2 is chips?
This isnt working btw. I can get the joker in the game and it detects the glass aspect (as in it shows the info packet) but it does not change the kings (or any card) into glass
yes, it starts at +0 chips and gets more and more chips. Then when you play it, those chips it accrued score. So it's like a stone card that gets better the more often it hangs out in your hand
gotcha, as it is currently implemented it feels as though id be extremely better off if i just took a stone joker
so what i would do is
start at ~25/30
then increase it by 15-20 everytime its held in hand
ohh, very good idea!
I can send the whole script (like including the description and name) if necessary
Got this error when testing, further on it said the error came from this line in my code
I assume I'm not using get_enhacements correctly and that's where it fails?
you can fix the numbers when you playtest so its not broken as shit
or you can cap it
How do i change a joker's graphic but only for that specific joker instance and not the center of that joker
im assuming it has something to do with the draw function but there is very little documentation on how to actually use it
Hi how can add new files .lua to replace some lines of code when selecting a language without effect the others
As I’m having some weird issues regarding save data
I will share some info later on
As I have quiz in a few moments
wdym
nvm figured it out
It would be great if you could share some info about how you solved it, to help the next person who searches for this same problem
trying to make a joker that turns only the pair(s) in a hand into lucky cards, I keep getting Attempt to call method 'set_ability' (a nil value), I know I'm probably doing something wrong with the ipairs thing but not sure how to fix it
does anyone have any insight as to how i can fix additional tooltips that i try to add to wild card just merging into the normal wildcard tooltip?
all i'm doing is adding { key = [my tooltip key], set = 'Other' } to info_queue as part of functionality i've patched into generate_card_ui()
use 'm_lucky' not G.P_centers.m_lucky
pretty sure set_ability takes the string not the full key table
that is correct
this only applies to the first thing i try to add. if i try to add a second thing, it adds as expected
is there a way to adjust joker effects as they trigger?
bumping cus i am going insane trying to fix it lmao
can you show the whole function?
like the calculate part
I keep getting an error saying I'm trying to index a local nil value, and I have no clue what the reason for it is
loc_vars = function(self, info_queue, card)
info_queue[#info_queue + 1] = G.P_CENTERS.m_glass
end,
calculate = function(self, card, context)
if context.individual and context.cardare == G.play then
if context.other_card:get_id() == 13 then
context.other_card:set_ability(m_glass, nil, true)
return true
end
end
end
The second if is the problem part
It is context.other_card
theres a typo with cardarea
🤦♀️ thank you
np
bump
What are you meaning?
for example if a joker is supposed to give x3 mult, how do i make it give x1.5 mult
A different joker?
nah, a boss blind that appplies a modifier on all jokers
that reduces their effectiveness
That did it, thanks a lot!
That would probably take an extreme amount of work.
card.children.center:set_sprite_pos({x = x_coord, y = y_coord})
rip
hypothetically, how would one go about it..
You would probably have to patch/take ownership of every joker checking if the blind is that boss blind and making it do something less effective.
y i k e s
and there would be no way to dynamically go through owned jokers?
and get ability
Not that I know of.
why in the name of good god
is it a pendulum
new deck effect
The Pendulum
Swings your screen in
a pendulum arc
(adapted code from notmario)
its a boss blind anyways :p
okay valid tbh
i actually wanted to do something like how asriel moves from undertale
but ended up with that
i think it looks pretty cool
Weird! If you have two different To Do lists, they both will reward different hands
I tried that out and I'm getting the same error
I have a joker that will respect the hand that To Do list is working, and wow, it took me a bit to understand just how weird Todo list is
side question: which file is it to see the effect of editions (eg negatives)
you can do ctrl + shift + F
picks randomly each time, i believe this should be true for any joker that changes?
and do a global search on what edition u want to find
:p
-# its convenient for everything too, actually
where would i do ctrl shift f?
Castle and Ancient joker both have a synchronized value that changes every round
really
interesting
Yes, it's so odd. Meanwhile To Do list does its own thing!
actually i think its global variable
that changes it for specific abilities
so if ability.name == something
its true for all of them
whereas for todo its probably not the case
visual studio code
maybe an oversight?
iit's G.Global.Ancient_joker_suit or something like that
probably because its not a global value
and instead its a value inside the joker itself
:p
card.lua or cardarea.lua?
I wrote a lovely shim so that multiple To Do lists would reward the same hand but then undid it
it searches for every file
ctrl shift f does it across the whole workspace
gotcha, my bad
ctrl f does it inside the file
☝️
then try Control + Shift + G, find & replace in all files! And it even has regex mode
TIL
im bad at maths so i genuinely cant figure out how to get the effect i want
meanwhile notepad's getting worse with every windows update
you could say this about windows as a whole
tbh
fax
its attempting to but isnt working. could it be cus im checking through 7 zip?
...7 zip?
it can only check the currently open file
i am using 7zip to check the balatro source code
its a visual studio code thing
oh
you need to open the entire balatro folder as a workplace then
is that just highlight then right click open on it all?
nop
turn on your visual studio code
there should be like, an Open Folder button here
just unzip it to a directory, don't browse within 7zip
orrr just this
that wont affect the game will it?
No.
unzip to some directory and close 7zip, then it will be fine.
Keep in mind this is just so you can see the source and figure thigns out, changes you make to the unzipped source will do nothing
no its a refernce of the code for you, the exe still has the code in it
which is independant from the version you have that is unzipped
gotcha, it looks good (minus accidentally putting all the files into my desk top)
so much knowledge for a semi-dumb joker idea /j
you know you'd come far for a single joker idea if you need a lovely patch to do it
I now have two problems. 1 is my previous joker has the chance to break the moment it turns glass (idek if i wanna change that or not cus it was kinda funny) and 2 my new joker (ill add the code here after this) does not remove its effect after being sold
"it's a feature, not a bug"
loc_vars = function(self, info_queue, card)
return {vars = {card.ability.extra.joker_size}}
end,
add_to_deck = function(self, card, from_debuff)
G.jokers.config.card_limit = G.jokers.config.card_limit + 1
end
FR. I'm sure I could add something that makes the glass not break by reducing the chances to 0 but tbh, i think this works out well and has good synergy with glass joker (which was the idea)
also yes, this is just acting as a negative card while not being negative
You have to use the remove_from_deck function.
would it just be "remove_from_deck" underneath it or is it more technical?
wait, instead of "add_to_deck"?
i just looked it up lol
nvm, im an idiot
thank you, it is working, sorry for the spam
If we are struggling to think of a name for a joker idea, would we ask here or in modding chat?
Either one works
Aight, i have an idea (idek if its possible yet) that destroys the joker to the right and turns the one on the left negative
I was thinking trauma unit but idk
Thats possible.
Sweet. I will figure that out later then 🫡
I'm assuming a mix of looking at ceremonial dagger and perkeo?
Is there a way to have a consumable appear whenever certain Jokers are held?
like replenishes after use or after blind? after blind could look at how the blue stamp works
Only summons it once.
I dont see why not. Is it a specific one?
I want to have a consumable appear when 4 certain Jokers are held, and when the specific 4 are selected, use the consumable to destroy them and create a new one.
It'd be a modded one.
Oh god, motion sickness
current ideas:
- rainbow color background
- wavy screen during scoring animation
another window dance mod?
oh hi notmario
yeah, decided to take a break from my mod and work on a shitpost boss blind instead :p
Really stumped here, Im trying to make a joker that retriggers cards once for each identical card in scoring hand and am getting lost at having each card find the number of itself within the scoring hand
good news: i got the rainbow loop working
bad news: events
https://streamable.com/g9nwps
doesnt seem to lag that bad though
i should probably optimize that
My apologies, I just finished my exam
I want to edit some code without replacing the main code, as I want to add the Arabic patch
And it’s rtl not ltr
I have already done that but the issue is that effect all other languages
This mod adds languages https://github.com/OceanRamen/BUMod
Yeah I know
I already made a beta patch and released it
But again the issue is that it broke all other languages
Oh yeah I forgot to mention that it replace some code from the function folder files
Like if you installed my Arabic patch it will have some issues in the other languages as it’s right to left not left to right
Generally speaking, what would cause this push problem and how to avoid them when coding?Oops! The game crashed: game.lua:2765: bad argument #1 to 'push'
First time trying to hook, but think i just overwrote cause now consumables dont work, what am i missing to get this to work?
Edit: wait hang on idek why im in Card:use_consumable
Could you just made your patch conditional? If language is Arabic, use RTL?
You need to replace everything from card to self also it is self.ability.set and self.config.center.key
Isn't there a variable for last tarot used by the "Fool" consumable?
Only last_tarot_planet, i'm just making the tarot-exclusive version of that
Oh ok
is that the key difference to make it a hook instead of an overwrite? I was originally writing this in a seperate functions.lua file but i cant use self in that case no?
No, you would have to save the old function to a variable than return that variable.
ah okay the same way that igo is working
Is it possible to make it possible to use discards in arcana and spectral packs?
Is there no way to check how many cards are the same within a hand?
By suit and rank?
yeah but non specified each hand
like not a specific suit or rank
like how many 10 hearts are played in this hand for example
How do I eval but in code instead of DebugPlus' in-game console?
Is there something like print?
hmm im getting a crash now when using consumables
You spelled consumeable like consumable.
🙃
I was wondering why it wasnt recognizing it as a function lmao
ayyy switched it back to self instead of _card and it works now. Thanks for the help
WHY??? WHY IS ITS LENGTH ZERO???
It’s not a number indexed table, # only works by indexes
You’d need to count them manually
Iterate over the hand and add each card to a table that tracks how many times it has been played like table[card] = (table[card] or 0) + 1
I copy and pasted this code from the example mods on the wiki, why isnt the 'Extinct!' message showing up? The destroy animation works perfectly fine
Another Today-I-Learn, thanks.
cheers, its been giving me a headache so I'm going to return to it later.
I'll work on the joker art
Is there a way to return two messages simultaneouslt for different effects in a caulcate return table?
You could do return {message = "message", extra = {message = 'message'}}
I have a joker that can alternatively give +10 mult, X1.5 mult, or both +10 and X1.5. For the latter effect, I want to be able to have it show messages for both. So would I also put one of the two mult effects in the extra table?
I think so.
Yep that worked. Thanks!!
Mult and chip messages are automatically done for you
So you can just put mult and xmult in the top level
Unless you’re using custom messages
Doing so seemed to result in no message at all, just instant addition to the score
return {
mult_mod = card.ability.extra.mult,
Xmult_mod = card.ability.extra.x_mult,
}```
It should just be mult and xmult
Thanks, I'll probably edit some of my other jokers I did manual messages for
But not tonight
dose now how to make mod work for newer versions
It’s annoying to keep updating the code every so update
How do I make weighted pseudorandom_element?
You don’t
You’d need your own function
Though maybe I should pull all the stuff in smods out into a generalised function for others to use
how do I debug crashes? im not sure where in my mod is this comparison happening
Are you testing your mod with Talisman enabled?
ah yeah
Talisman turns certain numbers into tables. The crash is solvable either by making your mod Talisman compatible, or by turning off Talisman
The total score, hand levels, and money
But it only matters in contexts of comparison
oh money 😭
So any time you make a comparison like G.GAME.dollars > 15, Talisman will cause a crash
okay that makes sense, it was crashing entering the store
thanks!
Fixing all talisman issues can be a bit finicky, so it's not a bad idea to just not focus on it for now and mark your mod as not talisman compatible. On the other hand, setting up compatibility early is a good step towards not having to go through every if statement in your code later on
generally you'd want to make your mod be compatible with talisman in the long run for those people running cryptid
generally compare calculations are safe so long as it is wrapped under to_big first
-- Talisman will not set the latter value here
to_big = to_big or function(a) return a end
-- Somewhere else...
if G.GAME.dollars > to_big(15) then
-- bla bla
end
I do wish that it was clearer to players that they don't need to run Talisman with everything, but compatibility is kinda necessary just because half your mods installs will be together with Cryptid 😋
If your mod and Cryptid doesn't work together it's not Cryptid they're going to delete 
😭
My mod's not made for cryptid numbers, please, I add jokers that just give 100 chips, I won't get you to eeee10
Me when Gemini:
The extremely dubious booster pack of whatever this is gonna contain
Kino's Romance jokers of course
i only use talisman for the scoring animation skip
but i could prolly just skid that hook
The hook is just making sure your mod doesn't crash when you're not running talisman. You'll have to wrap any comparison variable that you compare with G.GAME.dollars, the score global, and hand levels with a to_big or to_number
I wish we would normalise not making talisman compat, it’s ridiculous that every mod has to program around one mod in such drastic circumstances, it’s absolutely something that should be addressed on the talisman side imo
I'd have suspected that it could be solved by either setting up the big num tables as meta tables, or changing the behaviour of comparators, but I'm far too much of a layman to know how realistic that'd be
right i could probably make comparators check if it's a table before doing stuff
i have a lot of comparisons and wrapping to_big around everything is so annoying
do you still need remove = true in destroy_card if youre using :shatter? my enhancement(glass type) keeps destroying two cards when it shatters when its supposed to just destroy itself
yes, the error comes from calling :shatter yourself, I reckon
You should add shatter = true in your enhancement definition
And also make sure that context.destroy_card = card
what is the state for cards that are being actively being dissolved/shattered
aight that fixed the double destroy but now its just dissolving instead of shattering
you mean shatter in there like this yeah?
Oh sorry, it’s shatters = true
@tall wharf is it fine if i steal your code for displaying cardareas in info queue
I need this so this doesn't accept any cards being dissolved cause It causes big balance issues for the mod
im trying to make it display the uhh sold jokers
i stole it from n
it's ok
How could I make a custom colour that cycles between red blue purple and yellow?
SMODS.Gradient?
who is n
n'
me
me whenever I need to do something with UI
Autumn's subtitle code is free real estate (tho I did improve it too for the next burglar)
i just made a function that displays shit
that is typically what most functions help contribute to do
The Deck of Jimbob
this is what happens when you beat gold stake black deck 5000 times consecutively in a single session
Is there a way too render graphics in a card description
and add buttons
I have a very dumb Idea
hehehehe
then no without changing the hover logic
isn't a tooltip too small to show all sold jokers
☝️🤓
@red flower like this
i mean you can do that but rn if the player stops hovering the card then the description disappears so you need to figure out that logic
and also while it is completely possible, any kind of custom graphics drawing is outside of my expertise. you would probably need to interact with love2d directly
no
??
no rust allowed
I can choose to get the enhancement sprite to affect the card back today, finally finish up the Quest system, or try and get Ratatouille working. I yearn for simpler times
what do i have to do to have a deck start with >52 cards. I figure change some variable to make erosion work but do i need to add_card for each additional card?
lovely is written in rust 😔
Do you mean the messages?
yeah
inside calculate return { message = "your message" }
outside SMODS.calculate_effect({ message = "your message" }, card)
that's an exception 😔
i need to learn rust
Me when I'm some iron and I see that it's going to be raining soon
I think I should turn this concept for a Crime Enhancement into the Action Enhancement and make a different Crime enhancement
I feel like a Crime enhancement shouldn't be about retriggers, and probably interact with money in some way
Does blinds have listeners to calculate_context?
blinds have calculate now if that's what you mean
bump
this is unfair and unjust
🫡
what is the pitshost blind?
asriel
those r what i got rn
oh the earthbound character?
reminder to self: its probably not wise to use ease in update
what controls handsize? how do i change it with a joker
G.hand:change_size(modifier)
thanks bbg <3
i wish i know more
eeeeh its fine
do cards that were sold more often have a higher chance
depends on the amount of said sold card in the cardarea
also i really hate how the order of the cards displayed is random every time despite manually iterating adding cards to the ui cardarea aaaaa
are you using pairs instead of ipairs
yeah it should be fixed unless you're shuffling the card area
why is this not properly adding the cards to the deck? in a deck's apply function
trying to end up with a 65 card deck (52+13) but keep getting crashes in this part
what's the crash? you might need an event
god
timing an event to a specific part of a music
might be harder than i thought when theres nothing to allow you to access the current duration of a music
ghh
what kind of hellsscape of an idea did you conjure in your brain for that
beat drop
dealing with music sync alone is a nightmare
especially considering stutters, lag spikes etc
ok maybe i should nerf it slightly
whats with that mult 😭
do you see why i did not bother with implementing compass lyrics
Good schmorning chat
Good schmevning chat
fair, you would need to manually time everything
hi dilly
Hi bepis
im working on smt cool
What u doin
This is so Undertale
kid named frame drops
do they know
<@&1133519078540185692> kill him
i dont know
i like this movin window


no but like
from what i learnt from coding in roblox, deltatime should make it so that framerate doesnt affect the timing
deltatime alone cannot account for everything
well fuck
currently doing the whole deltatime timing stuff in lovely.update rn
i had a lot of frame drops but so far it still seems synced
from my rhythm game experience, deltatime fucking sucks if you're timing it on the beat
you should track the current music position over increasing deltatime every frame for that
current music position...
i dont think thats possible
-# or at least, i dont know how to :p
holy shit notitg mutual server
unbelievable
i just realized how influential oops all 6s is to every joker ive made so far
the love2d wiki is probably gonna be your friend here
iirc you need to get the sound source and use tell to get it's current position
now im not sure how exactly balala manages the sound source part
...not the first time such had been asked about LÖVE.
dsaiodmsao
it is not helpful here whatsoever
dang
having to use LOVE instead of an existing function in balatro feels weird 🥀
the worst part of this is that the audio manager is in a different thread
oh god damn it
the horrors of asynchronous sound management
can i just keep it this way and slap a "pc issue" whenver someone complains about it not syncing 🪫
the existence of sound_manager.lua is the reason why i haven't remade a rhythm game in balatro yet
any idea what could be causing this? it was working just fine last time i tested it and i havent modified any of its code
fun fact! smods.sound's music also hiccups if you have many mods
here's the code for it
i mean
you could make your own sound manager, and i feel like you very much can do so if you want too
OH COME ON
so true
i dont doubt myst's ability to make balatro in balatro itself
if sound.manager return fully_built end
there you go, did it
youre welcome bepis
wha
i made your sound manager
thank you dilly, that will certainly solve my issue :3
Ali, that was dangerously close
🥀
i was so scared seeing 'ni' appear
close to what
🤴
N I L
time to plaster and not context.blueprint in all of my if statements
how do i figure out the position of the middle of the screen to ease the window to
icic, thanks
love2d...
when love3d...
never
Awawa
im pretty sure atlases don't use prefixes
they do for deck skins only. for some reason
anyways the file isn't called suits.png im just stupid
omg twilight sparkle hii
for a split second i thought that was susie deltarune
lmao
i still thought thats what it was
The info is already in-game AFAIK
susie deltarune with ourple hair and pink highlights
Is it not?
what did you call my mom
you heard me
idk my handwriting is pretty bad
same
@manic rune
what if it's not in game
hello
Hello Bepsis
...i genuinely dont know, im using that for the window moving stuff too
hi victin
:3
im making asriel undertale
gotta be the craziest boss blind ever
before those from lcorp
It’s Susie Deltarune themself
ITS NOT SUZIEEEE ITS TWILIGHT SPARKLE STOP BEING MEANN TO MY BOYRFRENDS ART SHUT UPPPPP/j
Idk off the top of my head
susie deltarune
It is I bootleg Susie deltarune (my sona is literally 1 to 1 me so am I human Susie deltarune?)

Ness is Sans and Susie is Twilight Sporcle clearly
sporcle
sporcle
hit quiz website
I thought you were Susie Susie Deltarune, not human Susie Deltarune
apparently not i just dont know anything about them undertales besides the fact my friends fw it
so my knowledge comes from the outside
I don’t shoot lasers I just work out and draw LMAO
I wish I shot lasers
obliteration
Me too
Ik it’d be silly :3
sombra death gif my beloved
friendship é um país da europa
if you don't want people to die you could always just look at the moon
You don’t look at the moon
what has the moon ever done for us? tides? nahhh
You discord I’m howling at the moon
destroy it thanks
look at the moon
look at the moon
anyways if youre all so smart what deltarune characters are these
dont look at the moon
Susie, Susie, Susie, Susie, and Susie
don’t listen to either of these users, maybe look at the moon if you want to but you don’t have to
dont disturb the moons agent
moom
is this a dumb name
What does it mean
this does more but has a downside
Kitty fall from cat
I’m not a big fan
hexagon legendary
polychrome chicot when
hmmmmmmmmmmmmmmmmmmm
i need something for my Brochure joker to do
its just like sitting as art . i mean yeah like i have 12 joker arts in backlog atp
I have some effectless art too
yeah . im waiting on my mod testers to give feedback on
Blackmail
+2 Joker slots, -2 hands. Creates a Boss Tag per blind played or when sold
before trying to get it on mod manager
it's probably op for a common but they all die when it rerolls to The Water or The Plant and that's just funny
whats a boss tag
Isn’t it the one that rerolls Bosses?
yes
How do I get the name of the played hand and the most played hand
context.scoring_name for the played hand.
hm, thats not quite right
local tempplayed = 0
local hand
for k, v in pairs(G.GAME.hands) do
if v.played > tempplayed and v.visible then
tempplayed = v.played
hand = k
end
end
if hand then
return hand
end
For the most played hand
not the -πe7 mult
me perssonally id like my mult to have digits not reaching inhumane numbers
man i still need to figure out how to trigger all jokers in a separate card area based on the amount of a specific joker you have
i wanna make rigged adult card work multiple times since it currently doesn't
Me too
for loop G.jokers.cards and count amnt of specific joker maybe
i have to make 1 more joker till i go back to doing consumables but idk which one id do
You can add CardAreas to SMODS’ calculation
that's what IM already doing
also *throws fish at you*
add it multiple times probably?
how does starfish work
since again it only works once per one of that joker
like
when does it trigger
Repetitions
How do you think it works
uhhhh
Yes
triggered in context.joker_main?
repetitions probably won't work here since it basically does this
card gets rigged
sets a boolean to add that cardarea to calculation table
hmm actually i could just rig that actually maybe i am stupid
Then don’t do that ;P
just make it a counter instead
How does Juggler work? 🤔
well no that's because doing calculate_joker and calculate_effect for every joker yields
results
sometimes it crashes due to stack overflow
icic, i never saw a joker doing that before so i didnt assume that
I mean it sounds like a coding issue
i do fucking suck at programming yes
-# but also, its actually not that good if thats the case
you are wasting a joker slot for +3 hand levels which can be obtained through planet cards pretty easily
doesnt help the fact that its randomized everytime you find it in shop too, so if its a hand you dont use - you never want it
Yes
but yeah doing a loop over all jokers in that cardarea every time the joker can be triggered is a bit finnicky and usually ends in either nothing happening or it just barely happening lmao
It’s strong early, and it encourages playing a random hand
That’s why you use SMODS’ built-in calculation
And retriggers
Because it works and you don’t need to think too hard
retriggers won't work here because the joker belongs in a completely different card area
again
That’s fine
not as strong as you think, since +mult and +chip jokers are usually much more consistent than having to play a hard-to-get poker hand
Jokers retrigger playing cards
and if it does land on a hand thats easy to play, the benefits usually arent as huge
Playing cards are in a completely different CardArea
yeah but thats a very specific context accounted by smods
It’s good enough early
And you can account for it yourself
the two card areas are functionally apart and never interact without a specific joker lmao
the normal version accounts for this fairly fine
just act like a blueprint to any card in that card area
People do struggle with the effect
this was the previous code i used prior to just adding the invisible card area to standard calculations
-- Go through all cards
for i = 1, #PTASaka.adultcard_cardarea.cards do
G.E_MANAGER:add_event(Event({blocking = false,
function()
local joker = PTASaka.adultcard_cardarea.cards[i]
local ret = joker:calculate_joker(context)
--print("joker mr")
if ret and type(ret) == "table" then ret.message_card = card; ret.card = card; SMODS.calculate_effect(ret, card) end
return true
end
}))
end
don't mind the shit formatting
SMODS.calculate_effect seems to just yield no result or maybe im stupid and just doing it wrong
I don’t think it automatically calculates
If you want to evaluate effects outside of the return table, use SMODS.calculate_effect({effects}, card), where {effects} is a table like the return table of a calculate function, and card is the card that is being evaluated.
that seems right
I tried to use it before and it didn’t automatically calculate
🤔
fuck it im making this
looking more into this
think that together with SMODS.calculate_individual_effect might be what im looking for
since that indeed does the effect
ill do it tomorrow though
are you [TITLE CARD]
anyone know how to render an image over the entire game without it being affected by screenshake
cutscene code in lcorp mod
Cutscene?
look at the screen and see if its scoring 
--x--x
--x--x❤️
where is this code perchance
something related to display_cutscene
bump
probably smth to do with G.STATE if i had to guess
nvm that doesn't do it because calculate_effect uses calculate_individual_effect anyway




