#💻・modding-dev
1 messages · Page 309 of 1
thanks i used to make fnf mods
-# (to this day i hate the community still because they can't behave but that's in the past)
once?

til
im pretty sure my name is dead, or at least i hope so
im the guy who sparked up gmod bandu or that one psych engine 50 note video
might it be possible to make a custom rarity of joker only appear past a certain ante?
i stopped uploading anything because i dont feel like being a youtuber kind of content creator
would be possible with the in_pool function i think
though not on rarities
😭😭😭😭😭😭😭
the whole keyboard ahh playfield
i think get_weight would do it
oh i meant by 50 note types, though i did make one shaggy video that had something like that
thfank you i appreciate it :3
😭😭😭😭😭😭
not to mention the 8 million viewed video that i have that is one hour of unedited footage of me playing one mod
oh wait you're the person that made that uno thing
holy shit, being recognized by uno lobotomy

something along the lines of returning 0 for the weight if the ante is < 8 but some other value otherwise?
i'm gonna test it tmrw if so
yeah it seems simple
weight being 0 means it has no chance so
unless you have cryptid equilibrium deck
lmfao the text is killing me
use the event manager ! !
something like this should work fine
ignore the function code but yeah
70 something mods
oh
i see
one balalillion jokers
the combined joker creating power of at LEAST 70 people but likely much more
i hope what im modding is a new concept 🙏
crash like no tomorrow but i fixed them myself
all the mods balatro edition
collect all 2000 jokers to get the jimbo star
i was doing that...
what is it? asking so i can ensure it wont be >:)
it will take 6000 steps to complete one peice of the star
blind that ends the run without explanation (tm)
balatro story mode
assuming an area of 69x93 for the sprite, with there being 256^3 + 1 (transparent) colours, and with 3 layers (assuming cryptid's midlayer), there are 4.48664580904739e46490 or so possible joker sprites
i have that in my mod...
for my mod i want to make it like an rpg
because well, card health
you can also have translucent pixels
true
@manic rune has card health
so 69*93*256^3*255+1
nonono
it's (256^3*255 + 1)^(69*93*3)
who needs card health when you can kill the card immediately
since each pixel is individual
not my vocaloid card skin mod
kill
I've tested it a couple of times in different contexts now but it doesn't seem to trigger upon selecting a joker from the buffoon pack still for some reason
yeah but the blinds became sentient and started attacking
mine has watsapp gordon freeman so it's superior
The change I made causes the context to play when the Joker is created inside the pack
smh
If you want to leverage when a joker is added to your deck, I would recommend using the new card_added context in SMODS
My patch only covers when a joker is actually created
hell i printed them out physically so i can enjoy having them
i saw that
💔
so 1e185411 then
well, now im back to designing joker cards
😭😭😭
im horrible at pixel art but i am a man of many ideas
chicken jockey
i love modding and making shit but when it comes to making individual things i start to lose themotivation for some reason even though i have ideas that i want to make
joker that lets you play a smaller game of balatro on it
can you use the game camera as a shader to put on a card
balatroception
idk, probably
grand dad
that'd be really funny
in rtgame's mod demonstration im pretty sure overlay shaders onto the game camera was made
so, it is possible to manipulate the camera
la la la lava
ch ch ch chicken
balatro deck where each card has one of +-<>[],. and you play brainf--- programs to generate your score (@ aikoyori this one's on you)
i can do that
i have the art ready already
why does chicken jockey scale with popcorn
people throw popcorn
okay but what about infinite loops
cinema
im going to throw you
game will just crash
nuh uh
i completely forgot i had these fusion jokers that i haven't added
forgot what they do
fucking vagabolia
gold erosion though
Looks like some lemon milk thing seeping through the crack
yum
right... i have unfinished business
😭
i had that idea because of my mom being too into christian ideals
so i was a bit pissed
ah yes i can stack my cards to be able to play them as one
the suit might have been accepted
nah
...does returning a main_end work for SMODS.Achievements...? 
oh wait no, because they use description tables...
hmm
for i = 1, #table, 2
if you mean a non-indexed table then no because the point of them is that the order is not guaranteed
lua is such a garbage language smh
why on earth is that the point of a non-indexed table
why does context.hand_drawn not work for me
? it's a hashmap
if you want order make it an array
i have a hashmap table of joker keys that's basically just
myKeyList = {
j_blahblah = true,
j_blahblah2 = true,
j_blahblah3 = true...
}
for the express purpose that i can go myKeyList[joker_key] so i can enter a condition depending on if a given joker is part of a group i define.
how else can i do this in a way that allows me to do that, with an ordered array table 
make another array with the keys in order
you can even give your entries an order field and then use table.sort on a new array, if you want to do it dynamically
hmmm... well, i don't particularly care about the specific order of keys, so i could just populate an array from that table...
what's that for btw
like, specifically in my mod? 
yeah
i mean, i have a few instances of this for various reasons, but this specific circumstance, i'm using to populate additional tooltips for a custom joker, by the joker's name, provided that said joker has been encountered at least once with the mod active, otherwise the name is question marks.
so like "group X," "?????, ?????, ?????, ?????," etc.
i dont get why you would need to skip entries
Nah I kinda get it. Arbitrary order set by the creator moment
Or maybe not arbitrary
idk
But I get wanting to have a set order
i don't care about the specific order -
Mmm my bad, it kinda read like you did. I gotta stop assuming things lmao
i'm doing UI code and i'm adding text nodes, but if i do that with a long list of items, it'll basically end up as
item1,
item2,
item3,
item4,
item5,
item6,
item7,
item8```
the reason i want to be skipping entries is so i can do multiple at once per node/line, so the ui can look more like:
item1, item2,
item3, item4,
item5, item6,
item7, item8```
cant you use an index
Can you make Enums with Lua? If you can that might work
local i = 1
for k, v in ipairs(table) do
if i%2 == 0 then
table.insert(ui_table1, v)
else
table.insert(ui_table2,v)
end
i = i +1
end
oh yeah modulo totally works too
what if my list gets longer and i need to make it wider over taller again - and want to do 3 or 4 
then change the number
what i'm moduloing by?
yeah thats the number of columns
if you want to make it like max 5 rows per column then make the modulo math.floor(#table/5)
(#table wont work in your case you need to count it manually)
?
if i%3 == 0 then
table.insert(ui_table1, v)
elseif i%2 == 0 then
table.insert(ui_table2, v)
else
table.insert(ui_table3,v)
end
yeah it's easier if you make it a table like ui_table[i%number_of_columns]
how do you send a message in this event where it would send during the suit change..
my immediate first thought is to move the change suit timing to match the message instead, using a func in your return table
instead of using return do SMODS.calculate_effect({[what's in your return table]}, card)
probably SMODS.calculate_effect? You can't really return a table from an event
oh, i was misreading it
didn't see that this was an event 
actually, you could refactor it that way
i do agree that func is probably better but its also a bit more complicated so calculate_effect might be the easier solution
...wait, do you want the timing to be all at once or in sequence
actualy, that's a thought. is it even possible to make SMODS.calculate_effect() messages happen all at once? because they make events, so it's always in sequence, right
How could one prevent card_eval_status_text from triggering before the scoring card scores when triggered on a scoring card?
does anyone know how to create a custom dynamic color (like how cryptid has dark_edition)
dark_edition is vanilla but the answer would probably be SMODS.Gradient
Negative
On editions.
i can't find this patching pattern in UI_ definitions:
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = '''
return {n=G.UIT.ROOT, config = {align = "cm", padding = 0.03, colour = G.C.UI.TRANSPARENT_DARK}, nodes={
{n=G.UIT.R, config = {align = "cm", padding= 0.05, colour = G.C.DYN_UI.MAIN, r=0.1}, nodes={
{n=G.UIT.R, config={align = "cm", colour = G.C.DYN_UI.BOSS_DARK, r=0.1, minh = 30, padding = 0.08}, nodes={
{n=G.UIT.R, config={align = "cm", minh = 0.3}, nodes={}},
{n=G.UIT.R, config={align = "cm", id = 'row_blind', minw = 1, minh = 3.75}, nodes={}},
contents.dollars_chips,
contents.hand,
{n=G.UIT.R, config={align = "cm", id = 'row_round'}, nodes={
{n=G.UIT.C, config={align = "cm"}, nodes=contents.buttons},
{n=G.UIT.C, config={align = "cm"}, nodes=contents.round}
}},
}}
}}
}}
'''
position = "at"
payload='''
'''
match_indent = true
times = 1
it's copied directly from the file
Are you looking at the vanilla files or your lovely dump
vanilla
Use your lovely dump
will try, than kyou
How could one draw a playing card on a joker?
a what
I still ate with this flame aura effect. Also I only just recently learned that SMODS.Gradient was a thing so I'm using it a lot more now
is this a shader
i would assume so
oh my god is that
kirbio from unstable
wait i def did that wrong
someone
Something like this but in the joker slots.
You need to put the gradient in a variable then refer to the variable.
well uh...
Put the calc effect after the event
And the if suit check before
You just want the actual suit changing bit in the event
do i have to set some sort of check if the messages have been sent since it sends them multiple times
Which message is sent multiple times?
hello
is there any reason it needs to be context.before? why not do context.individual instead
It’s sent on every card that changes
oh..
like unless there's something inherent to the joker that you want, about the effect, it's timing and how you're building it design-wise, don't see why this absolutely has to be in context.before and it appears to be causing more trouble than it's worth
if it's incumbent on trying to change the suit before any suit-related jokers take effect,context.individual still comes before context.joker_main iirc, so something like arrowhead for example would still proc
Changing a suit within an event doesn't have them as that suit during joker_main unfortunately
No you have to do some magic
Well you are clearly the wizard here 
huh. kinda makes me wish that something like context.beforeindividual was a thing
You just set card.base.suit = “Spades” and then put the change suit in the event still
That’ll let it calculate as a spade but only change in time
funky
couldn't that solve their issue, too? have the suits be set in context.before and then do the visuals in context.individual?
I think you technically could
That wouldn’t be the right sequencing
ah
nvm then lol
They’d change after giving their base value in that case
And depending on joker order it might look mega weird
Ah right, (somehow) forgot the suit jokers also triggered on individual too
shouldn't that just be a matter of joker order, then? like you could do something like bloodstone before, arrowhead after to trigger both jokers
or lusty joker before, wrathful joker after
completely useless in an actual build, but would be fun
It is a matter of joker order and that's exactly the point Eremel is trying to make. The card could still trigger for the card despite not actually showing that suit yet
Depending on what you want the effect to be, yeah you could do that
But then you wouldn’t use context before
Reading closer and yeah I suppose the base would just change at individual
Is this the channel for if Joker ideas I have are good?
Or should I make a thread for that if I eventually wanna make a mod?
#⚙・modding-general may be better for that since that's more for players (not that we aren't players here)
Ah, okay.
If you were to ask here we'd probably talk about balance and feasibility, not really critique the idea itself lol
Is the way card objects draw their back by just grabbing a sprite from their .back variable? I'm trying to see if I can add sprites specifically to the back of a card
I think you can create draw steps on cards they are facing backwards
I think they have a back center somewhere
ah, that's good to know. I'll peruse the code to see how I go about that.
Okay chat, I actually got a balance question this time.
lmao what
"Oh man, I sure do love playing Balatro!"
"FUCK YOU!" said the Fuck You Joker.
The sounds are perfect lol
does this still operate with https://discord.com/channels/1116389027176787968/1270746376312979456 's quick card selection 
the bible probably has something against gambling
Greed is one of the deadly sins.
idk i made the bible because my mom told me that tarot cards are not to be played around with
Anyway.
[Uncommon] Fun House Mirror - If first discard is a single card, destroy it and replace it with a random card that is already in your deck.
I had an idea for a joker (shown above) that I think is just. Worse DNA? But I wanna know what you guys think.
while i was working on a tarot sprite
The power of christ really did compel you holy shit
im gonna replace the white screen flashes with images of jesus
LMFAO
Good.
YES
GOOD!
That's perfect.
I hate that I keep making jokes and then end up like "If I ever make an actual mod I'm gonna have to actually make that".
Like shit, now I gotta figure out what the fuck the Fuck You Joker does. XD
if joker would trigger, joker does not trigger
wait no
if played hand is random hand, restarts the game
unlike other random hand jokers like to do list it doesn't tell you what the hand is
and it randomises on load, too
easy
I think restarting the game is a bit much.
...
Now destroying every card in your hand, on the other hand.
Rise.
looking at retrigger code, why is it that dusk, sock and buskin and hack have config mentionning "self.ability.extra+1" whereas seltzer or hanging chad just have "self.ability.extra"?
Hey wait a second
miku cursor
I fuck heavy with Schrodinger's Cat Joker, but that's not quite what I was going for.
yes
also the bible prevents you from pressing play or discard
that took me a bit
I'm going insane over miku
So it's essentially just totally random deck thinning until you sell it
It's always eternal is peak.
Is it always eternal???????
probably forces itself eternal immediately
Would you sell your Bible?
Is it possible to add a joker to the scoring hand?
Christianity moment?
it becomes eternal when you obtain it
tarot cards are just cards tho
yeah it's funny
Should the Fuck You Joker have some upside that procs whenever you don't play the hand it will destroy, or should it entirely be a meme joker that's purely negative?
idk what tarot cards have to do with christanity beef but whatever
So it's a kill switch basically
"Witchcraft" bullshit or whatever probably
Like it X2 or X3 your mult or it gives you $5-$10.
yeah it also clears your jokers and consumables, sets your money to -77
instant loss really
it's free in the shop but
lol
Perfect.
So it's your version of Crash
nah, if i appears in the shop, it should force buy itself
Very creative lol
No, that's too much.
my parents believe in witchcraft and it's the funniest thing
i mean technically doesn't softlocks the game, it just makes you lose
Well yeah but both are kill switches 
true
what happens if you obtain it in the shop
It probs doesn't do anything until in hand lol
Though it would be funny if it played a stock "Hallelujah" choir when it appears
it does what it does in the video
the instant you claim it
it clears your cards one by one when you start a round
ah right
preventing you from playing to advance
one of my arguments is that if witches are actually real, where are the wizards then 
i was forced to sit through a podcast about an interview with "ex-witches"
??????????????????
im like damn, what the hell this is the fakest shit ive ever seen
then my whole family is like "why are you hating"

Rise.
maybe
Nah speed why you tryin not to laaaaugh bruh
i would also like to know if this is possible, but in the sense of "joker temporarily moves from the joker cardarea to the play cardarea and then back after cards were scored"
New bullshit time, it's the fucking Sled Racing card from Club Penguin's Card Jitsu.
[Rare] Sled Racing - When a card is played, flip its value to the opposite (2 <-> A, 3 <-> K, etc.) and retrigger it.
Oh hey
Okay, so that effect is physically possible in some capacity.
That might be the longest add_to_deck function I've seen
I just got the stupidest idea.
If you have a Blueprint when you pick up the bible, the image of Jesus will be tinted blue.
And you get the rare (and probably impossible to implement) Blue Jesus achievement.
Because I have playing cards as jokers and I want them to activate when something would trigger them in hand or in play.
is there a way to make it so that when I press a certain keybind I get a billion chips?
😭😭😭😭😭😭😭😭
what a question
Weird Joker - ??? [Must be a play on "Weird Al" Yankovic somehow.)
[Rare] Receipt - X1 Mult for every food-based Joker destroyed. (Currently X1) [Might reword to make clear it involves stuff like Diet Coke.)
[Uncommon] Fun House Mirror - If first discard is a single card, destroy it and replace it with a random card that is already in your deck.
[Rare] Fuck You Joker - If it doesn't like your played hand, destroy every card in hand. Otherwise, X2 mult.
1e300 Joker - ??? (This is another joke joker like the Fuck You Joker, haven't figured out what to do with it yet.)
[Rare] Sled Racing - When a card is played, flip its value to the opposite (2 <-> A, 3 <-> K, etc.) and retrigger it.
Here's the joker set I got so far, including some jokers I haven't worked out the full idea of- trying to figure out where my ideas are on a scale of like- canon-adjacent to Cryptid. (Do not base this on the sheer concept of the 1e300 Joker.)
the idea seems rly fun
i mean, you could pick any good weird al song at random and make a fun reference to that
oh my god
well, god
the images also, block your input to go to the menu so jesus can mostly lock you into this cutscene
BAHAHAHAHA
I've seen some crazy things via bugs, this might be the craziest I've seen that actually functions properly LOL
i could make versions of the bible which do the exact same thing but retextured
might have to give it a rarity of itself
is there any way to make a debug keybind to win a blind instantly without having to make a joker/deck?
anyone know how to slow down the music by will?
The Mormon BIble and the Scientology Bible would go crazy
i kinda wanna make a majora's mask joker that when you encounter it, you HAVE to use a hieroglyph or petroglyph voucher to your run from ending
oh right, wait
i wanted to make the sonic '06 joker
i was given the suggestion of an islam and judaism one
Where does the card.base.times_played variable get incremented?
Dude the fucking Jesus pictures interrupting the pause menu are sending me 😭
Maybe...
Perfect.
G.FUNCS.play_cards_from_highlighted,
for i=1, #G.hand.highlighted do
if G.hand.highlighted[i]:is_face() then inc_career_stat('c_face_cards_played', 1) end
G.hand.highlighted[i].base.times_played = G.hand.highlighted[i].base.times_played + 1
G.hand.highlighted[i].ability.played_this_ante = true
G.GAME.round_scores.cards_played.amt = G.GAME.round_scores.cards_played.amt + 1
draw_card(G.hand, G.play, i*100/#G.hand.highlighted, 'up', nil, G.hand.highlighted[i])
end
Also I had the stupidest idea for a powerful Joker.
for some reason the game over cutscene plays... twice?
which adds to the funnies this bible has
[Rare] Censor Bar - Retriggers all multiplicative Jokers twice.
In other words, it takes your Xs...
...and turns them into XXXs!
-# ...adding a card to the Main Menu doesn't let the much slower fade-in of the logo and menu appear... where I have added a sound...
I don't get this one.
Now when I play the joker as a card it works as a card but how do I get it to act like its being played when its in the joker slots?
For some reason I am also imagining just straight up having Exodia. Like get all five Exodia pieces and you get +1e100 chips.
Do you have DebugPlus?
DebugPlus has a win blind button.
is there a way to make a booster pack only have a certain set of jokers or make a pool of some jokers?
figured out how to adjust the music speed
dont know what i'd do with that knowledge but lmao
How does one prevent cards that are being inserted into the scoring hand from moving to the scoring hand?
I mean... yes though, just look at whatever debugplus is doing and extrapolate
there must be because there are both raritty and 'modded only; boosters afoot
I'm not sure, but I'd reference betmma for such shananigans, iirc there's multiple parts of their mod which do similar things
hhhhhhhhhhh finally got it working. and i did need to make it three 
here's the implementation i ended up going with
turns out there was a way simpler solution
music transitions are possible with this tech ig
What do you think of this text?
neat
For every 3 (3)
Planet cards sold,
create a Black Hole
Maybe
Every 3 [3] Planet cards sold,
create a Black Hole
what happened
beat the blind
is there some special ability to this blind
wow a cutscene
are you the guy that implemented health to playing cards
Are you moving the UI elements or are you rendering them differently
that is too fucking much
nothing is moving
it's all animated sprites
and ig the screen shake
yea
progress bar too
:3
neat
i thought i was the first to come up with my kind of blind
:p its actually a core mechanic of my mod
The deck is a sprite of the deck shaking?
no the screen shake is a vanilla thing
Multistage Blinds?
but also - i also tried making an asriel blind for fun
nah, blinds that specifically attack your cards
turned out i completely forgot ur making one
dealing damage
ah
heres a even more crazy finisher blind idea:
God of Gods
Apply every single boss and finisher blind with all downside values 100X'ed,
Blind requirement is last played blind requirement ^ 3
i mod at a snail's pace
can the screen shrink too?
idk
dont know much about the screen camera
this is epic
idk how you do the music sync with the background though
update, basically
it does account for frame drops, i think? but if the drops are incredibly bad, straight up 2 fps then it does delay a bit
ah
the asriel bossfight i made is going to be a one off unique fight, there will be other bossfights that behave differently that i have in mind
though i do want combat to be a regular occurance in small and big blinds too
would be fun to randomly add rpg mechanics to balatro
oh, i did add unique small/big blinds as a mechanic too
figures
surprisingly didnt need patches, just a bunch of hooks to account for some stuff
i'll prob look into it but for now i need to add more content than just blinds lmao
my idea for an asriel blind was for them to interfere with the game that doesn't rely on timing like "After hand is played" and such, straight up "Every 2 second, do smt"
damn that is a good idea too
my version attacks every time cards are drawn to your hand
i think the first move i made for them was smt like
"Every 3 seconds, marks a card. If its position remains the same after 3 seconds, destroys it"
there's a list of moves asriel can use to damage your cards in a pattern, discarding also triggers it
you do need to beat the required score in one hit btw, not making it will just count as a miss
Is it possible to do this temporarily or do I have to do everything manually?
and you have to do it 6 times in a row
i feel like it would be a bit unfair if theres no way to evade the damage, or at least minimize it imo
else it just encourages using Cryptid-level jokers more
what i want for a fun boss blind is that it doesn't rely on extremely broken jokers, straight up skill and concentration instead
balatro soulslike?
that does fit ur rpg mod idea :p
make the boss shoot projectiles and you have to drag cards around so they can avoid being hit
i didn't think much about the asriel bossfight, it just looks way damn cool
but it'll be probably annoying to actually complete, your cards will always get damaged
your cards are recycled back after every hit but
major damage
true
encourages you to as few discards as possible
it does look extremely cool
burglar...
and it will break stuff like baron steel kings setup
(unless you have a shit ton of cryptids at your disposal)
true
would not work i think idk
since your hands and discards are set to 4 after each successful hit
ohh icic
it's a pretty challenging boss in practice, which is why it's locked up in a special tarot card
thought it would restore to ur max hands/discards
true
i decided 4 on each is balanced and gives enough space
still, playing and discarding will attack your cards
i added a "SWITCH BOSS" button next to showdown boss blinds that switch between normal boss blinds and my mega boss blinds :p
Like Ortalab…
im still proud i didnt need to read eremel's code to implement that ❤️
-# definitely a lot of bugs because of that
i have the barrier to summon special boss blinds
we are saving the goat child with this one ✊
i only have asriel as the special boss blind but i have 2 more planned in my head
I'm trying to figure out how to have an addition alter a card back by adding a sprite onto it, and I'm running into just a lot of variables that don't tell me what they're for. Anyone know what the goal of the .role.draw_major is?
one is inspired by a certain game demo and one is alpeh null
mindwave? :3
yeah it's gonna be minigame based
no clue how i'd formulate it out but i'll find a way
the other special blind would be that one alpeh zero reference
(math jumspcare)
i dont doubt u will succeed, gl :D
mindwave mindwave i heard mindwave
the major issue i'll see me encountering would be timers
never done such a timer setup before so 
and aleph null like.... the LeaF song???
holy fuck o7
i think theres a speed timer clock mod
hmm
maybe that works too? :3
im obligated to explode you but
o7
i'll be needing a timer that runs separately in the background so balator events don't mess it up
myst u gotta emphasise the NOT
nope, wariowaresque games run on beat
hook to lovely update instead
should work, i think

my bad
yeah i've gotten comfortable looking at base game balatro files but beyond that it's alien language
it's like me using lua to code a whole fnf mod for a year without actually touching hardcoding in haxeflixel
the sound manager for balatro is soooo utterly ass for making rhythm based shit
why
thanks
for now i will be pouring my ideas into jokers, enhancements, and possibly card status effects
first thing i noticed: you cant check the current running time of the sound
or at least, no one has told me how to yet :3
ive been thinking of animated sprite status effects on cards as a separate enhancement from the rest of the enhancements
so for stuff like syncing to music: gotta use update 🥀
card status effects...........
there's a Source function for doing that
really, i've been wondering how other mods like cryptid add extra effects to cards that aren't seals
like with cryptid seeds
that renders on cards and everything
exactly
the trusty LobotomyCorp source code:
SMODS provides SMODS.DrawStep for this sort of thing now but so far I haven't used it
i have looked for it, don't know how the hell you do it though lmao
me neither :3
how do i grab balatro's currently running sounds as a var
every time i add one i have to scramble between 5 different functions for 30 minutes
threaded :3
what's the issue with threading?
i did ask you how to make multiple files for easier management but
i didn't go around doing it because having them all in one lua file seems much simpler than accounting the concequences of doing them separately
you cannot easily pass variables between threads
nooo
-# nooo
if alamac does it then i can do this too
that was in response to having a single monolithic file
it's just an organization thing lol
i am sure quite fond of scrolling through the whole file, still not as big as the alamac mega file but it'll get there sooner or later
what variables would you be passing
do i have to
fucking make a new sound manager mod?? 😭
if the function aint there then you have to make it, that's just how modding is 💔
honestly at this rate, learning how to make one is better than relying on hard-coded timestamps...
why do different threads need to communicate with each other for music anyways?
Wait, Almanac is a single lua file?
vanilla balala passes the sound key and the request type, and doesn't need to receive anything i believe
making a rhythm based thing requires passing through bpm, offset, crochets, etc. and receive current time, beat and bar
i want to move a music to a certain position
in which case, i would need to know the current time of the- (nvm myst sent stuff up there)
unfortunately
but why do rhythm games need all that
precision down to the millisecond
Oh my god, it's 23300 lines long
I can see that when not doing rhythm games
Like in Cineraft
yes, it is amazing
almanac code is very non-jen-friendly
I don't understand why people do this to themselves, it's just insane
who's jen
me looking at Bunco
you know what, delaying my mod development to make a sound manager mod
okay victin you must be trolling
someone will have to do this at one point anyways 🥀
ig
I have no clue how people program anything in one file. I need many files so I can think without getting overwhelmed
I know there's a mod named after jen
idk who's jen
im dumb and stupid so i will make it all in one file for my convenience
cryptid is
which will completely use lovely stuff, im guessing
that said, I do need to separate out kinofunctions.lua so it's not just every function that's not on an item specifically
-# aka cant even rely on copying other people's stuff around here anymore
yes, you can't hook sound_manager.lua
me awaiting cryptid to update to the new calc so my mod can work intangent with it in a newer smod version
evidently
i have lived long enough to see the day jen almanac being new-calc compat
As your mod gets larger, it'll quickly become for your inconvenience. Code organisation is meant to help you as the dev, and keeping things modular is good practice for both improving code re-use and keeping things easy to keep track of in your brain
ive seen like an image of new content but never thought it'd be in new calc
ykn it would be funny to add almanac as the only mod in lobcorp's incompat list
almanac also doesnt use a localization file :3
do i need to patch a huge portion of sound_manager.lua if i were to make a sound manager mod
and do mods even patch sound_manager.lua?
smods patches sound manager
-# oh right
.... 😭
well at least its just smods
the thing is i do actually want to separate it into multiple files but i don't exactly know how to properly do so im kinda just
hopefully
wait, u actually code everything in one file?
Haha, alrighty. I personally recommend using Lovely to load separate modules, there's a very brief overview here:
#💻・modding-dev message
But it might be easier to check other mods for examples of how it's done specifically
currently 1877 lines on main
not that bad
true, true
i need to make a cutscene manager because hardcoding everything in game update is so cringe
A lot of Steamodded-based mods use SMODS.load_file, which is okay too, but Lovely modules are neater and provide clearer error stack tracks imo
i turned your original image showing cutscene function into an animated sprite displayer for my end
i now understand how scaling the sprites work
or somewhat at least
using magic numbers to fine tune it but whatecver
you can't even manage your star rail world :3
Isn’t your country hot
right now its cold
hmm so basically it uses the lovely toml file to make each separated files connected r something
it's hot af here
im in the philippines so 
now its suddenly cold
i dont even feel the transition
its straight up "oh its cold now"
i am sweating, at night
why is it hot at night
:filipino: lol
the shadow of the sun haunts you
this knocked me out what
im standing still on the middle of the house with one fan
or well sitting still but yeah
almanac feels like a "first project", so i dont really blame them
To be fair many objects can have their localization provided in their definition
WHY IS EVERYONE I KNOW FILIPINO
idk if anyone can help at all, i've been trying to look at bunco to see how it draws all cards at once for virtual packs but i'm struggling to find it. basically though i wanted to make a russian roulette version of gros michel that has a 1 in 6 chance of destroying all cards in your deck
this image is of the example mod for how Gros Michel works
fuckkkk, i also have not done any localization yet but i DON'T FEEL LIKE IT GRAHH!!
But if your house is next to asphalt and concrete they it could be warmed up by those
but im assuming it's a big enough project people want to translate it
i should put the loose strings in mf into the loc file
huh maybe
I’m sorry I’m not philipino
Destroying all cards in your deck would cause an insta-loss, no?
one dollar
i read that as mother-you-know 🥀
isn't it like an actual inst loss the next round unless you find a standard pack
Mother you would like to know?
if there's an easier way to cause insta-loss i'm all for doing it but destroying all cards in your deck sounds funny
Ah, I thought the game showed the loss screen if G.playing_cards became 0
Sorry v_v
i know it does it when drawing but maybe thats true too
its more like "oh shit no card to draw" timing, the same goes for yugioh :p
Only if your hand is empty right
i mean you could use this for loop (ignore the contents of it) if you want to affect every playing card in your deck
Main thing is that I think the effect might be a bit underwhelming if you're not making an animation for it. The way I'd go about it is to draw cards to the a cardarea, like hand, and call dissolve on them. Important thing there is that if this happens on end of round, you don't get access to destroying_cards as a context, I think, so you don't just wanna destroy the cards, you want to also iterate over G.playing_cards and remove the destroyed card from the table
for cards held in hand it would be G.hand.cards
Otherwise the game creates ghost cards, which it thinks exists but do not
is there a way to cause an insta-loss with smods? i did a lovely patch for it but maybe there's an easier way i didn't notice
setting the game condition to be a game over?
Not a function, I don't think. But setting the game state works, I do that on the Ring joker
g.state = game_over
yeah
and state_complete to nil
ohh yeah thats what i do
sometimes i forget whats in my mod at this point, i went to look at the lovely patch i referenced and it wasnt there so i might have imagined it
or the other day ice said something about my mod i thought was not true and i checked and it was
N' so talented they got dementia now 🥀
That it was good?
yes, checked the source code and saw that i had the good optional feature on
(it was a localization thing)
does "next(context.poker_hands['Flush'])" means contains flush, or is flush?
contains
contains flush
that's contains flush
is there a way for "is" instead?
context.scoring_name == 'Flush'
Triangle More Fluff does that but there's probably a better way
if you wanna compare if it is flush make a direct comparison with context.scoring_hand
thank you !
is there a predefined way to add the center of a modded Joker to the info_queue like would info_queue[#info_queue + 1] = SMODS.Centers['key'] work or do you have to do like { key = 'key', set = 'Set' }
info_queue[#info_queue + 1] = G.P_CENTERS.j_prefix_key?
yes
ok
did she die
it was a joke 🪫
why not off a ⛰️
🌉 is closer
they are both 💀 enough to 🔪 you
Oh I thought that she had… (not “died”, something else)
bro might be living in 🆕🇺🇸
Are you?
nuh uh
might be
cs 2 peaker
we should add counter strike to balatro
gun jokers ,,,,
I added DotA 2 to Balatro
bless your soul
Isn’t this like those gacha games that turn things into anime girls
which one specifically
arknights
gfl
kancolle
azur lane
actually i might be wrong about arknights
x2 Mult
If "Terrorist" is present double the mult
If "B Plant" and "Terrorist" are present triple the mult
i forgor
Il
arknights doesnt only have gun anime girls
i think i'll come back to this once i understand everything a bit better, very lost and i don't even know how to just do the simple solution of using g.state = game_over
but gfl is a good example
All of them
i hate knowing about gacha games i have having this knowledge
same
with this coming to mind i should add more gacha game references to my mod
geniunely wanna expand this more to a playstyle deck like monopoly does but what else can i add to this
What do those words mean
3 jokers that correlate to the theme of the deck
maybe i could try adding rerolling to booster packs with this deck but im positive someone has already tried that idea
has anyone tried adding a separate currency in the game besides dollars yet
evil bucks
Which one looks better?
Me when I start with dobonhongolahooghs
Mix top of 1 with bottom of 2
Actual size
I feel like the opposite would look better, haha. It's all personal taste at this point, i guess
When you have angles like that pushing perspective is a good way to make the shapes feel like they line up, especially with teeth because they rest snug against one another
any clues as to why this crashes on game load, prob just missing something obvious but i'm still new to this
Like this?
Yur :3
Top teef bigger than bottom teef, es anatomy

Do you want to rate teeth I drew
Our front two teeth need a lower teeth on the bottom jaw to rest comfortably
Yes
I am the teeth rater now
Show me your teeth
HE GAWT THE BLING OMG
Those look really good though! Esp with that angle it really pushes the perspective
I had a reference
bri ish teeth
I think my suggestion would be to push the 3 dimensionality of the bottom row, I’d show an example but I’m on my phone in class rn
joj
Maybe later
joj
joj
Wait I think I was incorrect here it translates much better over lineart then pixel art, you do wanna push perspective but you’ll be able to do that by slanting the joker letters on the bottom along with the angle of the teeth
Might be hard in pixel art but life finds away and so do teeth
I thought about changing the perspective but I couldn’t make the letters look readable
The first G is already hard to read
A slanted J doesn’t read very clearly in that tiny space
No? Hrmm
Maybe with clever sub pixel coloring but Idk
You can use 'half'pixels to imply a less steep angle than pixels would allow for
Maybe something like that?
That’s a skill I need to learn for SURE
Yeah I’m not that skilled
Half pixels are clever sub coloring so I guess you're already up to date on that tech, Victin, haha
Akai might be
also sorry if I’m yapping I’m an art nerd and I love talking about art <3
Yap more
I love giving people tips and critique while maintaining a respectful and objective composure RAHHHHHH

I'd ease the dithering a bit, btw, you don't need it, as it makes these kind of textures look a bit more hairy or fabric-y.
I kinda fw it in a weird way
man i wish i was good at art
If you wanna imitate the hatched shading that JJBA uses, I'd use another shade to imply the hatching partially
The original version didn't have dithering but it looked too incomplete to me
Yeah, the white is very present, I can see why it feels a bit more necessary. I think at this level of detail, it's better served by a transitory shade, but that's maybe breaking palette restrictions a bit
Yeah I was trying to stick to the vanilla palette
I could maybe ease the dithering on the clothing
I'm not sure it looks good
What you could do is go harsher on the shade, and just shade it in Balatro black, using hatching, and then use the darker white shade as the median colour
Mind if I try to mess around with it a bit?
I don't mind
How does one check if a card has any sticker?
crash occured when 5oak with 5s was played
trying to make a joker that adds 5X Xmult when you play five 5s
also i think even if this didnt crash it would have added 5x mult per 5 played which is also something i'd need to fix
you're using old syntax! if you just return x_mult, instead of Xmult_mod, you will not need to return the message or colour yourself!
ah ok
that doesnt really address the crash though i don't think
ok well i say that
now it crashed after adding chips for the 5s
does it have something to do with the setup for checking for five 5s
right now i think all it's doing is checking to see how many 5s it needs to trigger and if it's a foak
this was working fine earlier though when it was chips and flat mult instead of xMult
it's a strange crash. Which line is the one crashing?
idk how to check that
the crash log tells you that it's line 47 in the ModdedVanilla.lua file. It's just that your screenshot doesn't include line numbers so I can't see why it'd crash
Rise.
check if it doesn't have no sticker, basically.
return {vars = { card.ability.extra.Xmult }}
How?
i was gonna say .sticker ~= nil, but I'm realizing that would check for stake win stickers as well
oh yeah, you write center where you should be writing card
should've spotted that earlier
no worries prob would have helped if i included line numbers in the first place
the issue is that stickers aren't as defined of an object class in base game, but I think you can use SMODS.stickers to iterate and check. Let me see how you can see if it's got gameplay-related stickers
uhhh no crash anymore but there is also just no xmult
do you see anything immediately wrong? :>
What is G.handlist?
i'm guessing it's the list of hands in the game
what you'd see if you opened Run Info
that's how the game seems to use it, anyway
G.GAME.hands is that i thought
Why are you iterating through G.handlist but checking through G.GAME.hands?
your context conditions might not be entered. The previous crash was happening in loc_vars, after all
hmm true ^^
Try pushing in the J and lowering the angle, specifically where the cross section meets move that one pixel left and up, then extend the left part of the top :3
I think stickers are set without notifying the card they're on taht they're stickers, so you can't specifically find out if they generally, unless smods added a function, I'm missing. But you can iterate through SMODS.Stickers, and check if card.ability[sticker_key] is true, which is how vanilla stickers are implemented
anything odd about them here?
not spotting something that'd immediately indicates why it doesn't trigger, but I'd just add some print statements after each if statement, see which ones get printed
I tried to do new dark pixels in red, remove dark pixels in yellow, and blue for the implied line of motion
I’d do more but again, phone

phon,,,,,
they all printed 5 times, presumably once per card played
changing the code to this didn't work either
hmm, strange, if the hello 2 gets printed, then the x mult should be given out.
Is what you showed the entire code of the use function?
yeah i got hello 1 hello 2 hello 3 five times in a row
that's really weird. There's nothing there that should stop that from triggering, unless the x_mult returned happens to be 1. Have you spawned a clean copy of the joker?
i'll start a new run and see
It's because v is the hand and k is the name of the hand, you need to set _hand to k
yeah doing a new run fixed it
Good catch, that should be G.C.UI.TEXT_INACTIVE. Not sure how that snuck in, will fix. Did you find any other errors?
it's giving x5 mult for each card though, how would i make it so it only gives one x5 mult after the chips
I haven't, but if I do, I know who to contact now!
Does playing card have anything similar to remove_from_deck? A function that runs when it is destroyed?
is it possible to enter personnalized text in the tooltip? and if so, is it also in the info queue of loc vars, or is it more complicated?
I think that looks really good yeah! :3
which wouldnt be related to another card's text
Any suggestions for the first G?
context.cards_destroyed
oh wait i see
nevermind =w=
This’d be what I’d do is clear up that pixel on the bottom so it doesn’t push on his lip, and move that dark pixel to the other side to convey consistent weight
That one’s gonna be very hard, g is such a detailed letter that needs a lot of space, but with pixel art it’s hell trying to get the little swirly in the middle
complex numbers?? whar??
this is purely visual but i might actually use the idea for something
i dont wanna encroach on green deck for the corruption mod tho
does it take the real component as the hand size, or the magnitude?
no questions
I don't think it needs to be detailed
I think if it were 1 pixel wider it would read clearer
the plot thickens. the loop isn't being run at all
Are you sure this is in the right function?
print?
Is it just the loop thats not being run?
Yes.
aha! thanks :D
I have a sticker that triples prob.norm at context.before and divides prob.norm by 3 at context.after, and I'm worried that it being destroyed (e.g. shattered) will prevent it from doing the after step.
Is it that a thing or do I not need to worry about that case?
ah, no, still broken, but it ran the loop :D
okay now the loop isn't running again :P
i think it should specify that this is on an Argand diagram
Entries in G.GAME.hands don't have a key in them.
so:
Rotates Mult 90 degrees clockwise and Chips 90 degrees counterclockwise on an Argand diagram
ah ^^
what would the fix be? .name?
also, i'm guessing i didn't write the for loop correctly :>
bump
Also you don't have to declare a variable as nil
You just have to declare it.
fair
okay well i think this is an XY problem, so lemme undo a bit and explain what i'm trying to fix
the level_up_hand function takes a number for the hand
like, as an index into G.GAME.hands
and, i'm not sure how to get that ^^"
It can take a number or a string.
ah
woah it worked!!!!!
is there a way to sort the hands from highest to lowest, though? ^^
Highest to lowest in terms of what?
G.GAME.hands is in that order.
now the question is what count's as "greater than 300 chips" in the imaginary plane
absolute value? horizontal vector length?
no? logging them gave me Three of a Kind last, and using the Spectral upgraded Straight
oh weird, it seems to be random each time. i tried it again, and it upgraded Four of a Kind
What is the goal of your card?
If it's getting the most played hand why would the order matter?
opposite rotations cancel out so it doesnt matter
90 degrees clockwise * 90 degrees counterclockwise = 0 degrees
its basically just a do nothing joker


