#💻・modding-dev
1 messages · Page 12 of 1
Off PC now but purple one is invisible joker but it makes a joker negative instead of copy one, Pride Jimbo is +0 mult, gain +1 mult when you play a hand, resets back to 0 if you play a straight or straight flush
do you know about the Gay mod
Also you showed Dream Joker before
it was cool
I do, perhaps I'll make it reverse the effect if that mod is installed lmao
Make it so any hand works 🤔
I figured out a solution even though I'm not quite sure why it happens. I assumed it was align_card, so I hooked Card:flip and added a new variable to force cards to face forwards
er, "frontward"
Balatro source code:
That should be intentional
I’ve seen other modded badges on vids before.
It’s just visual and to tell what’s part of what mod
I'm the one who made these badges...
I'm just asking if y'all think they should be removed from undiscovered object
to me, it looks out of place
Did you manually move the cards or did you reuse the existing function for it?
nah i think its good to tell when one mod starts and another ends even if its undiscovered
does anyone know what the current replacement for findModByID is? if any?
I agree
for 1.0?
none, SMODS.Mods is indexed by ID
i mean, if it was the last mod loaded, you'd be able to tell anyway so might as well lol
the previously numerically indexed SMODS.MODS is now SMODS.mod_list
Ohhhh!
quantum flux is working as intended :0 [finally]
Casual 700 cards
yes very casual
just pushed the fix for consumable type collection pages
surprised it wasn't more scuffed
what is the function that makes you go to the shop after you win a round?
I don't know but I suspect it's a state
Try seeing what happens when the round ends
There was a function for that, I think if you look for game_over you should find it
hmm
Yo I'm just looking at the source code for fusion jokers and I'm gonna try to make one for practice but what is G.GAME.probabilities.normal
It's what makes Oops! All Sixes work
ok issue found
the custom sound api shipped with steammodded is broken because there isn't a findModByID method anymore. if you replace it by looking in mod_list, ordering is all fucked up
because you can't call register_sound_global in an init method (you don't know if it's been put in the list yet)
@frosty dock
maybe there's some way to wait until the mod has been put in the list before executing code in it idk
alright good to know, I have to update that anyway
sounds good
maybe registering a mod's sounds could put it in a list for the api to iterate through and do it's stuff to after all the mods are done being set up?
I made a bunch of modifications
Basically hijacks the play function
it draws from loc_vars.colours
yeah, i realize now that i need to give it a colour variable
so i'm trying to pass this table as loc_vars
which, with this formatting, should return "Hearts" in the game's Hearts colour
right?
yeah
it does not do that.
it crashes.
shouldn't this work (I referring to artist, everything else works fine)
i smell old API format
Do you think it could help me improve this animation?
(Also I just realized I broke Canio… I think I know why—The Tumor was destroying cards which were drawn to hand, and with the way I solved it I think maybe Canio calculates at the wrong time and misses everything.)
Hey guys how does one give yourself jokers
i figured it out
that took... WAY too long to figure out, holy--
@odd dock what do you think?
the animation is very funny, it looks a bit stiff and speeding up as it goes would help a lot if possible
I would like to make it less stiff but I have no idea how to do that. I figured out how to speed up animations, but it accelerates nonstop
Eventually the cards break before they can flip completely
Or even move
If there's a lot of them
are there any up to date mods I could use as examples?
if possible make it so it waits for a moment after flipping to start the destroy animation
I can continue to try fiddling with time. I don't understand how delays work. Maybe a combination of long delays with acceleration would work.
I also received the feedback one preferred when the entire deck blew up at once. Which I like too, but I don't know how to make that look good
the entire deck blowing up is very funny but the way you're doing it now looks way better
either way is fine ngl
use the deltarune explosión jpg
I'm new to modding, so sorry if this is really simple but how do I check the current hand's score for a joker? I tried to look in source code but I don't think any vanilla jokers do it.
What do you want to check?
The total score for the hand that was played, I'm essentially trying to check if the little fire effect is active, but I'm doing that by checking if the hand's score is greater than blind requirement
Maybe try looking at how the game computes if there's fire or not?
I'd first look at the final check to see if you won a blind or not, because there you can find the relevant globals
Search for game_over because that's the context for Mr. Bones
I checked in the fire code and whatever variable it uses didn't work, I'll check the blind win check though, I hadn't thought of that
oh wait, that uses total chips, not hand score
is there a way to get just the current chips and current mult? maybe I can just multiply those
I think it computes total chips over time
So at the time you look into it it should be current chips
But you should check that
it uses G.GAME.chips, which is the same as Mr. Bones. I'm not sure what it actually represents but I tested it and it didn't seem to trigger the effect at the right time
I think the joker may check it before the current hand's score is added to it
Possibly the timing is incorrect because you're evaluating at the wrong moment. Also possibly it's due to events.
I think it's just that G.GAME.chips stores the total chips scored this blind, not just the score of this hand.
Ah, if you want the hand score you probably need to track it manually because I think it adds each change individually as they happen
As the UI clearly shows
Balatrostuck has a Joker that does something similar, but the mod is unreleased
you can get current hand chips by just doing mult*hand_chips
you just have to make sure you check it at the correct time
mult and hand_chips are global i think
no
(both exist)
because mult*hand_chips is the value shown on the left
so as long as you check at the correct time, you should be good
oh yeah, context.after might trigger after the mult and chips are reset, or at least visually I think it does
Understanding when code runs and when events run is difficult
It works! Thanks guys
its just a trial and error thing
balamod makes a log file every time you start the game, and i have thousands of them
Any suggestions? I made an animation earlier and it was trial and error but I kept reintroducing issues
idk specifics, but if trial and error isnt working, you might just be understanding something wrong. i usually just dig deeper into source code if trial and error isnt working to see what specifically is happening
I'm not understanding anything :)
I did make this look okay-ish while making it stop working with Canio in the process
Digging deeper into the source code becomes more difficult when there are more degrees of separation between where you are and what you're looking for
Like the code for accelerating animations is completely separate from the code running animations, except implicitly by setting global variables at key moments
i mean, when you want to do things that are fundamentally new, you gotta get in there. just gotta be patient, i guess
taking breaks is nice too
New for the modding scene
speaking of breaks im going on vacation tomorrow for a month so i wont be around until june :3
I did take a break from addressing that older issue (accelerating animations). It was only a few days ago when someone suggested I look for a specific game state that I found the relevant code
Have fun on your vacation!
have a nice vacation
i wish i finished tier 1 sap so i could like, demo release it but i burnt out a couple days ago 😔
Have you made other mods?
ill queue up the balamod acolytes in your absense
Lyman
did you see the stupid scaling of Tanglebuddies
High Card: +1 -> +2 -> +4
Pair: +2 -> +10 -> +154
Two Pair: +4 -> +20 -> +308
3oak: +4 -> +145 -> +46234
Straight: +5 -> +10 -> +20
Flush: +5 -> +10 -> +20
Full House: +6 -> +165 -> +46388
4oak: +10 -> +5914 -> +43950000
Straight Flush: +5 -> +10 -> +20
5oak: +34 -> +409114 -> +9.392e10
the factorial one
yes
this is like
if this hand gets retriggered 0, 1, 2 times
this is how much it scores
in +Mult
Also hear me out
a Joker that retriggers a hand X times where X is the hand's planet level divided by two
Wait
that should be the Cascade effect
oh thats
holy shit +naneinf mult is gonna be real
real
fuck i just remembered i need to do blueprint compat stuff for balatrotale
i completely forgot thats like kind of an important aspect of adding jokers 😭
its not too hard
do you mean "every scored card" when you say "each hand"?
I did make a Joker which I think works with Blueprint but not Brainstorm lol
correct
+inf Mult
is it possible to make a spcific vanilla joker use a different atlas without taking ownership of it
Oops! *factorials your mult*
im nerfing Cascade to every 5 levels
it also makes more sense with Homestuck theming
given that Cascade is end of Act 5
Cascade when I have telescope and a bunch of blue seals
the design of balatrostuck is very normal
it's more fun to design mods with that mentality of "i want this to get naneinf if the planets align"
sometimes literally lol
cascade buddies to the moon
that's why i'm so proud of what i did with square joker
yes, it gives ridiculous amounts of chips if you play a couple dozen hands that are exactly 4 cards
i find it hilarious that the joker that can break the game very hard very fast is a common
because as far as its ability goes, it is a common
High Card: +1 -> +2 -> +4
Pair: +2 -> +10 -> +154
Two Pair: +4 -> +20 -> +308
3oak: +4 -> +145 -> +46234
Straight: +5 -> +10 -> +20
Flush: +5 -> +10 -> +20
Full House: +6 -> +165 -> +46388
4oak: +10 -> +5914 -> +43950000
Straight Flush: +5 -> +10 -> +20
5oak: +34 -> +409114 -> +9.392e10
the chart
I’m making a mod designed to be unbalanced lmao
mathisfun do you like my tangle buddies
i mean... i changed it to rare
Yes
do you think the reasoning of it being common because its really bad unless you retrigger a bunch and have secret hands is reasonable
Quadratic scaling is fun
yeah, it kinda pigeonholes you into specific builds unless you have other jokers to synergize with it
already i'm thinking cascade and splash is fuckin busted, but retriggers on their own don't take you to the moon.
look, if there's one base joker in the game that needs quadratic scaling...
and yes, it's rare and costs $9
i am nerfing Cascade to every 5 levels btw like I said because I underestimated the power
5 levels is fair
There’s a huge concepting doc for the mod Im working on and one of the utility jokers is a joker that turns every scaling joker into quadratic scaling
So we’re buds
tangle buds?
yeah, 5 levels feels right, @golden lake
OH MY GOD I FIXED LOCALIZING
guess i don't need any of that fake localization code anymore, good-fucking-bye
btw the reason Tangle Buddies are characterized as this really mundane effect that takes on power only at impossibly high retriggers is because in Homestuck the Squiddles (which the Tangle Buddies joker is referencing) are like, a kids TV show/plushies line that is actually a manifestation of eldritch beasts from the Furthest Ring, a place which is like, technically at the edge of known universe
i think the equation is 3x+x^2 iirc
3am math better work
the starting chips or the amount of chips gained
i just assumed starts at 0 chips amount of chips gained starts at 4
starts at 0 chips, gain starts at 1
technically rocket scales quadratically since money persists between rounds
no, because it increases by the same amount
i made square joker increase by an amount that itself increases
well the rocket ability scales linearly meaning you money scales quadratically
oh interesting
i suppose that's quadratic income scaling
but yeah, i gave square joker quadratic CHIP scaling
reminds me of morefluff triangle joker
yeah, the parallel has been drawn
however, i seem to have be having trouble really caring 😛
i also don't care
nah i dont care either
I'm surprised these kind of decks haven't been made yet (afaik)
why is there 2 sets of hearts
Steamodded 1.0.0 adds a fifth suit for some reason
it's a dev versin
that seems off
like it's intentionally there
but why
I mean consumables also ceased to exist in 1.0.0
they were all dragged into this spectral's wormhole
I need some proton ideas, for its effect (I ended up keeping the design Lyman made (had to recode everything and didn't want the art to go to waste)) the first card could be interpreted with 3 different themes (probability, gambling, or changing score directly) so the second should also follow one of these themes as well.
1 in 2 chance to halve blind requirements
Btw the first cards effect is "Current chips fluxes between 90% to 135%"
Hey, I know this bubble…
i just thought of a hellish idea for you to implement, photon does something different depending on if youre hovering over it or not
woah this came outta nowhere for me
this cool
reshuffle discarded cards back into deck?
i want a semi similar theme across the subatomic cards, like how Codex Arcanum is based on temporary additions.
(i know its proton, i just misread it as photon and thought of that)
yes, you do :]
yea... I started it a while ago ran into some problems and put it on hold for a while.
At least this little robot helper survived the consumable annihilation.
God the bugs in Steamodded 1.0 are so funny
"the base mult for [three random hands] is increased by 2% - 10% and the base chips for [three different random hands] is decreased by 5% - 10%" maybe?
could do the opposite for neutron too
could also maybe edit the values on the player's jokers for another one
i like the idea, but the consumables are supposed to have a higher chance to buff then debuff so it's worth buying
so i'll probably change a few numbers and use it
i think the idea was that mult is more valuable than chips but yeah the numbers could prob be buffed anyway
I'll just flip the numbers so 5-10% for +mult, and 2-10% -chips
increase the rank of 2 selected cards by +3 to -2 ranks
oh or if you wanna go more specifically with theming around this name maybe something like "next 0-3 sold jokers are duplicated and gain the Negative edition". based on this https://en.m.wikipedia.org/wiki/Quantum_Cheshire_cat
if its 0 does it destroy itself on purchase?
nono you use it and the effect lingers with no way of telling till you sell one
oh, so it also takes space in your inventory, and you can sell one of your jokers you like permanently
i like it
what does debuff_card have to do with config 
i cannot find this supposed use of config
what you need to do sometimes, is open balatro.exe with winrar or whatever other zip program you have
i do have that but there's no config call
also main.lua doesn't have 1917 lines
i figured out if i just don't call debuff_cards it's fine
now i just act like i do my part of debuff_card cause if i call the original it dies
Steamodded uses debuff_card append for blind API iirc
Probably something to do with that.
anyone know how draw_card works, or if it's even what i'm looking for? trying to make a joker trigger drawing cards (ignoring hand size) upon consumable use, but i'm not exactly sure how the function works
im kinda curious if there are any devs that aren't planning to update to steamodded 1.0
i feel like the syntax changes might scare some people off
I need to rewrite the code anyway tbh
i'm still in the process of rewriting balatrotale, right now i'm just changing a bunch of stuff at once and i feel like i'm going to accidentally delete something important because it's so repetitive 😭
yo hi toneblock
heya
dust bunny deck
pretty much yea
we're thinking of celeste-related things
cause celeste cool
still not sure if its busted
currently using celeste entities as joker ideas lmao
could merge my spaghetti code into your mod tbh
ye
nice
avocado:
- 6.022x10^23 mult once
btw, gonna preliminarily nerf my 🔳 joker from starting at +4 chips (upgrades from +1) to starting at +1 (upgrades at +0)
...where is "type mult" defined? anyone know?
anyone know how to reference a joker's config in the alpha?
self.ability doesn't get the values mirrored to it and self.config.center has nothing of the sort in it anymore apparently
ok i just have to use an extra table i guess
self.config.center.config should hold the base values
iirc you need extra if you want to have it consistenly copied to the Card
i see
how would i get a joker to visually trigger an effect twice?
If you mean Joker message there's card_eval
are there custom card editions?\
Is there any function I can inject into that is called at the end of the hand scoring?
Freaky
how did you know
I need to do some things that are supposed to check your score after you score any hand
because i've already made freaky deck
If it’s just visual you can call the function that makes it display a message directly
mod badges for dependencies?
I found out a context which is called after a hand is played and I’ve been using it to activate effects
calculate_joker. But interestingly it uses context.main_joker which is the same context used by the Voucher that makes it so you always find the Planet of your most played hand. Which, you may notice, is a Voucher and not a Joker
Guess who's back to archiving
Akai called it an invisible global joker, but I couldn’t validate that myself
Thank you!
I’d send the whole context but I just got away from the PC. If you look for main_joker you should be able to find it after scoring
It’s probably joker_main
I never remember
found it, ty
That’s inside calculate_joker but there’s a call at the end of scoring
Unless I misunderstood something calculate_joker still gets called before the score gets applied
I’m not sure about the scoring, but it does get called after the hand is played and is almost finished evaluating
Wait I need evaluation function then I guess
Again I suggest looking for when calculate_joker gets called with context.joker_main if you haven’t.
it doesn't get called anywhere else in that function other than in the screenshot
I said “when calculate_joker gets called”, you’re looking inside calculate_joker
What do you guys think an appropriate upside to a joker that causes all random chances to not occur (super reverse Oops! All Sixes)
I am referring to when calculate_joker gets called with context.joker_main, which I believe happens multiple times despite it only being used once
There’s this #1234244231221084230 message
I see joker_main being changed in evaluate_play, I think that's it
There’s a call at the very end, yes
maybe scales whenever a random chance would otherwise be rolled
Yeah, like a luck vampire
Curious if anyone else has had a similar idea to this - A card that changes its effect based on what slot in your inventory it is. If anyone else has done this, how do you hand the text?
not exactly the same but i have a joker that randomises its effect each round, you can check out the ai joker in my mod cheesy jokers
So do you just keep the loc_text static?
yeah but i override the generate_uibox_ability_table function to make it display what i want
Outside of hooking a function to change a local variable, I think you could iterate over slots to see where it is during runtime
My initial idea was to do this, I think I need to localise the output first
Much like localthunk, I hate switch statements
I think the easy way to do it is to use main_end
Does Lua have switches?
Apparently not
To use main_end, create the object and make it the second output of loc_def
What you want is mostly text inside a column, though you need an extra column for the X controls
wait what???
you’re telling me i didn’t have to manually do that myself?
don’t you 👍 me you little
👍
👍
Might need an ELI5, like this in the definition?
Actually I’d also need a mirror
This is loc_def
Currently you return one output, you need to return two
The second has to be the actual object that will be rendered rather than just text
That’s one output
AFAIK
So return an empty table
Should I be looking at Blueprint/Brainstorm for example of the UI element?
Here’s an example
That or Misprint
I don’t think you need the row if you only have one line
One day I'll get an error because I fucked up my actual code and not just because I mistyped something...
I feel like I'm missing something obvious here - I want the effects to start stacking if you have 6 or more jokers (so if pos == 6 then you get the effect of pos == 1 and =2, if ==7 then you get 1,2, and 3), is there a way to do that smartly or is it just gonna be unga bunga caveman if statements
So everything up to pos-4?
if the effects are at all alike, a loop should do for that
you'll need to fake the message instead of returning it
card_eval_status_text or whatever the function for that is called
is there a context/g.state for when a round/blind is currently happening?
feeling a bit stupid rn
G.GAME.blind and not G.GAME.blind.disabled
ty
Yo I'm kinda new to this but why is it giving XERROR
What's in your loc_def
my army grows
these are so good
Half gift
how do I increase the mult or chips of a hand type? (without leveling it up)
I think you can just set them, but iirc, leveling up will reset them to what they should be
Yeah, you have to change the level up code to be relative
the ones for the mult/chips-for-hand-type jokers with 5 cards look kinda cramped, you may wanna break those up into groups of 3+2
I do this here if you’re curious to see how (this joker makes planets give Xmult/Xchips instead)
Anyway to quickly get the voucher i made to test it
debugplus
same as spawning jokers but you have to be in the shop
they don't get insta redeemed just put in the shop
since I dont really see a answer to this, I might as well ask directly here, but if I update the game, and re-install steammodded everything should still work fine, correct? or does the update break mods?
im using it on 1.0.1 so at least steamodded itself works
i can definitely see some mods breaking though since you have to interact with code directly sometimes
shouldn't be too likely tho i think
(not sure what localthunk changed in background)
well there was a engine change iirc
yeah but you should use lovely to install steamodded
awesome, juan moment
"WE LOVE DEBUGGING" all mod developers say in unison
We love debugging, and I'm not held at gun point by itsFlowwey and I'm not supposed to say this no stop stop it stop repeating what I say why are you so dumb-
how can I add variables to the blind's localization?
Hey guys, do you know how to print debug messages on screen? I've seen in other mods people using sendDebugMessage(msg), but nothing shows when I'm trying to use it...
sendDebugMessage will print in the console and not on screen
you're supposed to use console to debug things
oops! all presents
Science isn't about WHY. It's about WHY NOT. Why is so much of our science dangerous? Why not marry safe science if you love it so much. In fact, why not invent a special safety door that won't hit you on the butt on the way out, because you are fired! -Cave Johnson
What are you trying to do?
maybe you need to add a base multiplier to the banana? maybe it's falling apart because the multipliers is becoming less than one or some weird thing is happening. not sure if its gonna help but making a "safety net" might help. not sure tho. i'm new to modding this game and have a lot to learn
EDIT: Thought you were ice cream+banana guy. this probably wont help. srry
Cave Johnson had really good quotes
nah, i'm the "wants a single joker's chip/mult bonus to apply in two steps" guy
You want a Joker to grant both Chips and Mult?
nono
anyoen made card sleeves as a consumable idea yet (doesn't look like it im making it
)
i want these two to apply their respective bonuses in two steps if you play two pair / full house
i have it working visually, but it seems the game doesn't like both steps actually doing anything
I think I’d do the card eval manually and return nil from the Joker itself
I’m curious what they would be like
basically the idea is that it's a thing you can put on jokers and they give it an effect
ideas i had was: weaker enhancement versions, more money if you sell the joker, negative but it becomes a rental
stuff like that
am i missing a variable in the message table? it works fine when i have it return that message, but the card_eval doesn't actually increase the value
I don’t think card eval increases the value, no, it just displays the animation
yeah, i'm trying to figure out the "increase value" part and
yea i think the return is what makes it actually increase the number
starting to realize that it's maybe impossible
It’s not
Just look at what the game does with the return
you can always manually increase it if you want
It adds to the value somewhere else
Without checking I'd guess it just uses something like ease_chips()
There weren’t sleeves but there were Joker seals
similar idea i suppose
i think my idea is unique enough that i'll go through with it
just felt like a relatively common idea so i thought i'd ask
lol
anyway here's a deck i made
surely perfectly balanced i have not playtested it enough yet to know
Celeste moment
yea we're making a celeste-adjacent pack
i have made a wonderful discovery
wot
instead of having two arrays, one with the data and one with the desired load order of cards, i can have one array with both
'joker', joker = {
...
},```
o i c
Question, is there a list of context.xxxx that I should refer to or can you just put in anything
you can put in anything, but if the base game doesn't call calculate_joker with that context, you're out of luck unless you make the game call it the way you need
otherwise refer to the game's source
I'll just stick to the things I know work
yo yo anyone used to coding with polychrome? im getting stumped
coding with wha
like comfortable using the code for polychrome my bad
im trying to have first card of hand played for flushes turn into poly
i never messed specifically with polychrome but i would imagine it's the same as changing a card into steel/gold but you just specify the card's edition instead
smth like this
card:set_edition({
polychrome = true
}, true, true)```
(taken from the absoluteDeck.lua example code)
Yo how do you do the thing that's like "X left" at the end of a round like seltzer or invisible joker
I’ll try this
I don’t exactly see
In the tooltip or just the VFX?
Yea I thought and tried that but it was messing with me
tables can contain both named keys and ordered numeric keys
when you use ipairs it iterates over the numeric keys in order
Just the vfx
Because I know how to do it in the tooltip
(I think)
so this can be used to keep the table in order while also avoiding having a separate table with nothing but a list of keys from the first table
since if you make a table with named keys lua doesnt know what order they go in
has this explanation helped
i honestly have no idea how seltzer does it it confuses me but i know you can always just go like
card_eval_status_text(self, 'extra', nil, nil, nil, {message = "Big thing of the happening!!!", colour= G.C.CHIPS})
really do wonder how seltzer works it doesn't really seem to have the thing anywhere
Oh, that’s what I was missing
I did notice my Jokers were loading in a random order
Seltzer returns a message which gets passed to card_eval_status_text I believe
yea but it doesn't have the left
it's jsut this
lol
or is the left thing not real
maybe it just says the number actually and i am misremembering
mystery solved it doesn't say left
so yea just return the message in calculate_joker
Hmmm in the calculate could I technically be like message = localize('#2# left!')
Honestly I don't even rlly know how this works lmao
i think all the ## things require you to have it as a variable but yea i also am not sure how those work yet 
yea i think the way it works is #1# means the 1st variable you like set
so in seltzer it's self.ability.extra
Where would I put this btw
Just in the calculate function?
you prob just wanna return the message instead
Yeah I'll just do that
9
youd need to loc parse it first, but yea pretty much
also welcome back autumn :3
hi autumn!!
hi smods 1.0 is killing me
how so?
dont hold your breath on oddityapi or thac or anything for smods 1.0 from me
Is it good
so smods 1.0 is going to just completely kill every existing mod?
yarp
whats the point then
wdym
this just seems like a negative
The API is much easier to use
I converted my mod to 1.0.0 and it feels so much nicer
smods 1.0 still going to have to use the injector method as the default? 
Lovely
smods 1.0 doesnt even support injector
Plus the standardization of lovely means I don't have to be scared using it to un-scuff my code
:]
love to see it
im like 90% sure
injector is dead 
fr tho
Lovely does just genuinely sound like a better solution
So this seems like a good change
lovely is lovely
how hard would you say it was to convert it to 1.0 if it's something like my mod where i just add jokers
i know aure said hes enforcing joker prefixes
or w/e the term is
depends
are you registering each joker individually
or doing a loopy thing like how thac worked
theyre all individual
because you have to rewrite every constructor to be SMODS.Joker { name = ..., key = ... }
are we going back to sandwich code a-la source code's calculate_joker function
oh
that doesnt sound that bad
I really only had to change the SMODS interactions
All the function overrides and lovely things worked
you also just put calculate, use, can_use, loc_def, etc directly in the constructor
instead of changing them after the fact
im a little intimidated because i feel like im gonna be very stupid after the update fixing my mod but
I converted Ortalab in its entirety within 6 hours iirc
all it really is for basic shit is syntax changes tbh
It's not that hard as long as you know what the syntax is.
its kinda tedious because you have to define keys for every joker now but it's whatever
only reason i was able to refactor my mod the first time was because of mika
the mage table is passed directly to the SMODS.Joker constructor

I'm happy that Steamodded 1.0 didn't destroy any of the refactoring code.
theres also uhh loc_txt stuff but you might not have to worry about that depending on the complexity of your jokers
but mostly just passed directly
Else I would've been done for
wdym loc_txt stuff
theres a new localization system
idk how to explain it
but some of your text might break if it's set during initialization
dont think that applies to me then
and you have to process it after the joker has been registered
You do this to initialize text (technically it doesn't have to be in the process_loc_text function but this is only used for one joker so why not).
all it really messed up for me was the sans dialogue
only joker i think might have some big Angry issues is maybe midnight crew joker since that has some weird hackery involving updating the soul_pos
:programming:
i mean my weird joker that has a custom front and scrolling background didn't need to be touched so maybe you'll get lucky
sprite rendering is the same
i dont mean to be That guy but do we have a rough time frame of when to expect 1.0
my impression is within a month but i'm not involved with development
the Card object itself is still the same it's just the way you register stuff with smods and the new hooks are confusing and i dont know what any of this shit is
autumn do you want me to send the code for balatrotale it's only basic joker registry stuff but if that's what you're struggling with then it could help
Yo question so I'm getting a crash that says context is nil but it only gives that at the end if statement
whats the crash log
idk im just gonna play minecraft until other people make mods for me to steal the code of pretend i learned from
so true jestie
there is cryptid
I was planning to release the beta of my second mod this weekend, but with the Steamodded alpha I decided to wait. Maybe I’ll release anyways one of these days because I want to get feedback from people about it
it's structured completely different from how i prefer to but it's probably the best 1.0 reference you can get rn
maybe just try throwing an if context in there?
oh are you trying to make a fusion joker
Yup
try this first (but i dont think it will work, but you never know)
and if that doesnt work uhhh
well, actually
anyway if oddityapi 1.0 isnt happening for now i guess i should shelf the oddity portion of balatrotale for now
when does the crash happen
unrelated but holy shit my windows explorer is so fucking broken i might need to restart
As I'm booting up balatro
we love you windows
oh your thumbnails arent loadin
it's just fucked in general lmao
maybe try not running the whole body of the code (the G_E_Manager code, return code seems fine to me)?
see if thats your issue
So I'm like 80% sure it's a syntax thing
Has happened to me
Ermm how do I do that 😭
this block of code
or honestly all 3 if statements here
just temporarily delete them or cut them into a new doc or something
see if you can initialize the joker with nothing but a dummy calculate function
if you can its probably a problem with one of those if statements
ait
So if I get the same error after deleting those if statements
is card.ability.extra.rounds_left == 0 correct
ok continue
oh wait
is rounds_left here refering to the extra on the joker itself
because that should be self.ability.extra.rounds_left i think
It wasn't a problem with that block of code actually
It was this one
oh wew
yeah that will do it
yeah you cant really have a joker (as in the joker itself) return both chips and mult without it being a hacky way
:(
not to say its not possible, mind you
as far as i know theres none in base game
hehehehe
Scholar
Oh dang
im crying
@slow ocean do i take
courtyard droll hands you the boof
its the code joker tarot uses to eval itself 1000 times
that would go so hard with pebbler
I like making debugging tools
but yeah for whatever reason, you can have triggers off of a CARD return mult and chips at the same time but not the JOKER itself, if that makes sense
The way the game handles cards vs. joker scoring is different for whatever reason.
i ran into the same issue myself and a work around i think was just having either the chips or mult be given outside of the return, using card_eval_text to recreate the +chips/mult message, then return the remaining one as normal.
this is so based
technically some mods work on both versions
Any mod that didn't initialize stuff (like lovely-heavy API, for instance) will still work unless it's patching get_straight
Then it won't
(some mods without an init function)
:[
@slow ocean oh fuck
me about to cascade twice
Oh is this a custom evaluation function?
yeah thats basically what the code i posted does
Cascade is vile
Me too
Thanks I’ll steal it but really it’d be good to have an API with small changes to vanilla like that that make Joker creation smoother
Like the Hiker text but for everything
divy's score preview works fine on 1.0 which is pretty neat
but yeah any mod making like any content won't work
i'm not the one to complain to about that
First, crash Newgrounds. Then, crash Balatro.
MiRaClEs
is it possible to make a joker that can't show up in shops or buffoon packs?
i wanna see it with polychrome now--
Cavendish
yes_pool_flag = "no_spawn_pls" should work (note that the text part does not have to be "no_spawn_pls")
don't those already exist in balatro
ty
I think I got it partly working
Lemme record
:(
And it's my fusion specifically
Anyone have any ideas 😭
I haven't worked on any of these, but maybe make sure the Id is correct
does the fusion carry over the values of ice cream/popcorn?
Like make sure you defined a joker with the same id
is there a way that i can have a joker display multiple descriptions on top of each other?
like this
God damnit
Crash from not excluding context.repetition
Oh so I just add "and not context.repetition"
yea
That was easy
in balatro.exe
ya you just extract it
open it like you would any .zip file
Also question what is the "and not context.before and not context.after" used for
thanks
context.after is the trigger that happens after your hand is scored and the jokers start to trigger (stuff like your regular jimbo joker, runner, constellation)
tbh i dont really understand context.before
Also good news, playing a card doesn't crash the game
But bad news, the joker doesn't do anything it just sits there
whats the joker supposed to do
i guess not
i wish i knew 😭
i just tried and i had to mess with nodes or whatever the fuck and immediately started crying
drawing text in gamemaker: draw_text("text", x, y)
drawing text in love2d: https://tenor.com/view/science-mathematics-math-equations-memory-gif-5636549
Okay so in this clip I deleted the and nots
ah i gotcha
btw i still think you should try swapping card.ability.extra.chips with self.ability.extra.chips
that might be a reason if you're using card.blah.blah.blah
Would I just replace the card with self in the function
And like any mention of card with self
Also I figured out why it wasn't triggering
Replace all "self" with "card" if it's the joker that's supposed to be destoryed
ok im going for a walk
tbf this is like 90% just because balatro has fancy text stuff going on
Okay so weirdness is happening
well it's too fancy
So I want my joker to do both +chips and +mult
And it is
But
It's doing it at the same time lmao
How do I NOT do that
I got a dumb question how does one update on GitHub?
at the very least i guess i have less work to do before i can just release the mod already
Also how the hell do I turn off this awful text selector on visual studio where it like selects the element one at a time and pressing keys replaces the existing characters
I haven't seen this website in a while
isnt 1.0 still in alpha?
yeah but im developing with it because it's coming out soon
I figured it out
Half of the art done
average mspfa session
Sweet-Theatre Combo is finished (basically)
Ermmmm I'll get to that
Neat
is this too good for a common
lil. feels like a uncommon. not sure what to compare it to for refrence
campfire? that's rare, though. and x multipler.
strictly better than makeshift joker (although tbh i consider that one very bad)
Yo context.end_of_hand is a thing right
thats just context.after
Oh fun
Least powerful modded joker
the sans to flowey talker transition is complete
i still need to figure out his effect tho
Anyone know what's happening?
nvm I figured it out
Forgot to change a name
???
???
And it destroys the cards it destroys???
what did you do????
Okay so rundown of all the things it does
Having oops all sixes retriggers it
And the retriggers goes up with the number of dice
And it also destroys the cards it scores
man, there is no easy way for a joker to retrigger its own effect
how so
I mean it seems like survival figured it out lmao
i wasn't expecting these two to be the most difficult ones to visually implement the way i wanted to
this is easy?
no its easy for the other way as well
you just have to run evaluation code in the actual like
context.individual
and make a table of played ranks that updates
how many times X was played
this is literally just Balatrostuck's Pairing Grid
oh, really? neat!
and i think i recommended you do that sort of thing for the fluorite octet mega payout
you know, have the x64 mult show two separate x8 mults instead
yeah that's doable as well if a bit more annoying
I'm looking for feedback on anything about this, I'm curious about sharing my strange things :)
interesting
do you guys know of any mod that gives joker/cards special colouring/effects?
I remembered seeing someone doing a blinky blinky effect
seems like a slightly more balanced version of scry, cool
What's scry if you don't mind me asking?
spectral card that creates 2 random spectral cards
no other effects
yw
the other spectrals already have downsides more than likely
no need to compound them
you aren't forced to use them
I have a silly question guys
if i have a variable that i want to store for a particular game, how should i do it properly?
I tried putting it somewhere in G, G.SETTING etc, but they either don't save upon closing the game, or they will break the game
putting it in G.GAME saves
I would create this variable upon a joker entering the game, but i want it to stay even if i relauch the game
for the specific run or permanently?
so like G.GAME.anything?
specific run
yea
do i have to say "it needs to be saved" anywhere in the code or i can just make it be in there?
I think it's a somewhat fair trade for being able to hold a spectral card that you want to keep and do silly things with :)
Though I would agree it's a bit much
if they just sold for $0 it would be all right
it can still dud and if you sold something useful to open up a slot you don't get it back either
My thinking is that spectral cards can be very powerful, especially when used at any time of choice, especially early game when you can take a ton of risks, so it encourages you to use them early game, and you can be picky mid to late game.
From my play testing its quite fun, and a unique obstacle for spectrals cards that I don't want, though when I release my mod I would love to hear your feedback :D
Not saying your feedback isn't valid, just you might have more when playing with it. Sorry about that
if steamodded is installed there would be a "mods" button on the main menu
wrong chat
Damogus
Love this, gamble both your consume slots for gold or garbage
You probably need to manually make the message for Chips before the one for Mult because the base code only expects Jokers to give one at a time
I think it depends on the support for selling Jokers. With sufficient economy you can go through a lot of them. I have a Joker in my mod that’s similar but it gives two random Jokers +2 Mult
Use self instead of card. Inside the event I think it looks at the global context for the variable card
I have the impression functions defined inside functions have a “limited memory” (more accurately scope) for outside functions, or possibly due to the timing they get executed in events
The wording confused me but this loses you money if you sell it, right?
I think it can just be there. I add G.GAME.ModName.var to it and it seems to save between closing and opening the run
Hey ! Does anyone knows where I can find the current hand_size ?
Before first_hand_drawn so I can't just #cards
G.hand.config.card_limit?
You legend
Any chance we can get some way of not loading steammodded if some param like --vanilla is used when starting the game
i think it'd be neat
Pizzer
Pizza
Pizzog
oh no
I have to brag about this bro, feels so good getting this to work!
neato
oh wow that's slick
lmfao
pretend i dont have like 7 errors there
me when double walkie talkie
canio instead of caino
What are you cooking?
dynamic pool flags based on deck state
which uh.... currently updates every frame. i should probably change that.
finally i can stop getting caino on abandoned deck!!!
What does brick do?
Lmao
did you see 🕛 ?
Yea, is it a silly one too?
Yoo it's animated too
hey guys, has anyone tried setting up steamodded from a version of the game running from the source code using love2d with lovely, and if so how?
Oh that's cool
it changes its name to be accurate as well
so when it's at 🕧 its name is :clock_1230:
(except im a dunce and didnt realize there's no underscore aaa)
Didn't know one joker could change name too, is it just a simple as writing card.name = "something_else" ?
no it is not at all simple and it drove me fucking insane

don't you just hook into generate_uibox_ability_table and replace full_ui_table.name?
yeah i did that for my mod, it was also a dynatext
the beginning/the end
so i had to look into how the localize function creates the dynatext in the first place and then copy that out
this didnt take over 2 hours for one stupid name change thing i dont know what youre talking about
i just copied misprint's dynatext, made it bigger, white and added a shadow
also note that the clock returns both chips and mult
this is a secret technique that i like to call "doing it myself"
Your coding hours shall be many and your features few
TRUE
lmao
me when ive been coding all night and all i have to show for it is 13 jokers
Shoutout to some of my jokers having +4 extra keys
lol i added a ridiculously cool interaction in my joker mod that took me a week to code and nobody noticed
Been too busy updating my mod to see all the recent mod updates
also did you know that if the name of a joker is too long it gets shrunken?
That's cool
neat
i dont even play this game
(check it out im desperate 😭)
Amoeba my beloved
13 jokers in one night is crazy
That’s awesome. If you’re interested, I figured out how to flip cards in the deck, which should at least allow the player to see the top card without needing to click two menu buttons
That’s a lot
I use placeholder art and I think the most I’ve done in a single day must have been 5
just make common jokers, they're so much easier to implement
Part of the difficulty is having an idea in the first place
wait lemme come up with a joker idea rn
uhh +20 mult if you have an equal number of hands and discards remaining
But I’ve gotten my main mod about where I want for a beta release, and I should be working on secondary stuff like art and VFX, but instead I implemented more Jokers for a new mod (which I have not prepared by making plans for)
balance, common $5
i'm just too good
Main reason I haven’t released it for a beta is because I’m not sure I should wait for Steamodded 1.0 or not
Most of them are cool simple ideas
🔁 is the most powerful three-word joker effect
I feel like sometimes its hard to not go overboard
I think a simple Joker jam would be fun
aren't all jokers meant to be simple? that's kind of the charm behind them
Doesn’t mean they are
true
🧙 is charming
Yu-Gi-Oh! looking modded Jokers:
I meant contemporary YGO
🧑🍳 is actually so good
unlike riffraff almost all the food work unconditionally
so it'll never give you Joker That Cares About Straights
I think my mod might make Riff-Raff overpowered
mine too, 🧻 op
hi everyone, how do i replace the sprite for card backs? i tried to do so similarly to how i give sprites to jokers, but i think i did something wrong
you mean for making your own decks?
yes
yea it's basically identical
with b_ for prefix instead of j_?
for decks do it like this
for jokers its at the end i think lol
anyway i wrote the b_ myself
i don't think you need to
hey i'm pretty new to modding in general i'm trying to make a joker that makes stone cards count as wildcard aces but I'm really struggling the effect would be similar to Pareidolia or smeared joker but its not a popular effect among modded jokers so i dont have much to study to figure this out
does the atlas refer to the png name in assets ?
I think what you’d do is hook over the function that checks for suit/rank and if you have a Joker, return something different


