#💻・modding-dev
1 messages · Page 155 of 1
By default….
Adding a rarities to a consumable type tells smods that you are going to add a rarity value from your list to each consumable of that type
You didn’t do that which is why it was crashing
I don’t even see the need in your case, you only defined one rarity so it’s equivalent to not having them at all
In the future I'll add one alignment that should be more rare than the others
this Virus.DOS.Techno card is completely safe, this is what happens if the card is used.
it's also mod-dependent, so if cryptid exists, it will be code card, otherwise spectral card.
Too bad the badges aren't added if you use the default rarities
If im using rarities in objecttype, then this is how I set rarity for singular consumable correct?
If default rarities are used can you use numbers or do you have to type "Common" etc?
So just to give one consumable a lower chance to appear compared to the others of the same type I need to make custom rarities too? sigh
or I can just jump on the black hole kind of rare...
I don’t think number work but could be wrong
you can make use of hidden and soul_rate for that, but it'll only spawn in packs
thats neat my consumable only appears in my custom pack
But hold on, wouldnt that give the chance for the actual Soul/Black Hole to appear or are they strictly connected to Tarot/Planet packs
Also how come you're belittling autumn and instead assuming my docs are wrong? 💀
you can tell it what sets to spawn for
...belittling?
surprise, that's also in the docs
what's "that's not helpful" on literally the answer
prob because of this
They were being a bit passive aggressive with their answers and I felt they werent trying to help
m?.autumn was being very... agressive
they literally told you the answer multiple times before that though?
"Just do X" isnt that helpful
there's nothing more to it though. you're declaring the consumable type have rarities, so the consumables of that type now need to have a rarity
Ok I see, so this can be used if you're actually using custom rarities and the key needs the key of the rarity not of the consumable
and then I give said rarity to the consumable
that makes a lot more sense now
It makes as much sense as when you were told hours ago too
It does for you since you made it 😞
it was a bit confusing for me
thanks for the patience though
I mean autumn explained it in exactly the same way yesterday when you asked, you just ignored them
Wasn't Flowwey the one who made it?
I responded to them and they stopped replying
I didnt exactly ignore them
That’s not what happened but sure 🙃
Looking back now, they responded later after I went to sleep
didnt realise
we should all use reply pings 😆
i only use reply pings when it's necessary for me
i never use reply pings nobody should pay attention to me
Replying pinging mid conversation is weird people should just have reading comprehension skills
I use reply pings if its only been 5 mins or less, otherwise I just wait for them to respond
it was an unfortunate situation, sorry autumn for assuming you had stopped replying
that ways i know they most likely are still paying attention
it's the balatro discord what did you expect
I should know better 😢
Reply pinging me is like russian roulette, I might get angry at you or not
Im sorry for the confusion
but yea sorry i forgot that message was like way later oops time is not real
day 6 of attempting to figure out how to make this joker's text boxes work
thrilling
oof
how to change locale on runtime?
my friends are telling me to work on something else but i really dont have the motivation to do anything but try to fix this
i really want to get this over with
hey, does anyone know how steammods keeps track of which mods are enabled/disaibled?
is there a file somewhere
by means of the presence of absence of a .lovelyignore file in each mod's directory
(which prevents lovely patches of that mods being applied at the same time)
it creates/deletes such a file
are you talking about the tooltip that shows up when you hover over the card?
I have another question
I realise that making my card type a Consumable is incorrect for this use case, I made a new specific cardarea for it (referencing Bettma mod) where the cards in it cannot be selected
(I could just make it consumable but the fact these cards appear in the Consumables area in the collection looks wrong since you cant technically consume them)
-# Unless I can move the collection place somewhere else while still being Consumable but that looks non-standard
Much like how Grim adds its Skills in a different place entirely (in the OTHER category of the collection), but after checking its code it does so only with lovely patches
Im reading the docs but I dont think adding new card types is supported yet, should I go with lovely patches too or is there a different way
🙏 🛑 🍳
you can absolutely add new card types in a more normal way
idk why grim decided to copy vanilla
you can define a new type of SMODS.Center (?) , look into how SMODS.Joker is implemented
the main issue is its not going to be a simple process and would likely benefit greatly from a more thorough understanding of balatro's workings
(as well as that of SMODS)
you will probably have to use lovely for something at some point tho, and its a verryyyyy powerful tool
I've found CardSleeve does it like this 🤔
might be more approachable
yes exactly like that mhm
then you init them just like other smods things
except with whatever name you give it (like here, CardSleeves.Sleeve{...} is how youd set up a new one)
Tried something like this and it doesn't crash, but I probably need to figure out how to add the collection first
this is beyond my knowledge, but i wish you luck 🫡
i have successfully switched the joker stamps to be in the Other tab
It's no longer beyond your knowledge
i mean like
most of the stamp code still isnt actually mine lol
fren updated it for me :3
made it too, hopefully it becomes standarlised eventually
ignore the text being grammatically wrong, why is it showing me nil instead of value? did I overlook something while setting up the joker?
key = 'stonerjoker',
loc_txt = {
name = 'Stoner Joker',
text = {
"For every digit in Mult,",
"{X:mult,C:white}#1#x {} Mult"
}
},
config = { extra = { xmult = 30 } },
loc_vars = function(self, info_queue, card)
return { vars = { card.ability.extra.xmult } }
end,
rarity = 2,
atlas = 'coulfuckeryjokers',
pos = { x = 2, y = 0 },
cost = 12,
calculate = function(self, card, context)
if context.joker_main then
return {
Xmult_mod = math.ceil(math.log10(mult)) * card.ability.extra.xmult,
message = localize { type = 'variable', key = 'a_xmult', vars = { card.ability.extra.Xmult } },
}
end
end
}```
it's okay, everyone makes mistakes LOL
yeah.. :/
wait, I'll change all instances of xmult to mult in that..
nope, still broken
it doesn't change the issue you're having, but I do notice that in the last line of nonclosing code, you reference Xmult with a capital X when all the other cases of that variable have a lowercase x
yeah, I also fixed that bc I realised that myself 😭
this should work though, right???
xmult should be getting assigned a value
yeah, I'm not seeing what's wrong
updated code btw
----- stoned mf
SMODS.Joker {
key = 'stonerjoker',
loc_txt = {
name = 'Stoner Joker',
text = {
"For every digit in Mult,",
"{X:mult,C:white}#1#x {} Mult"
}
},
config = { extra = { xmult = 30 } },
loc_vars = function(self, info_queue, card)
return { vars = { card.ability.extra.xmult } }
end,
rarity = 2,
atlas = 'coulfuckeryjokers',
pos = { x = 0, y = 0 },
cost = 7,
calculate = function(self, card, context)
if context.joker_main then
return {
Xmult_mod = math.ceil(math.log10(mult)) * card.ability.extra.xmult,
message = localize { type = 'variable', key = 'a_xmult', vars = { card.ability.extra.xmult } },
}
end
end
}
What’s the issue?
^
They got a "nil"
xmult is nil
Remove and readd the joker
from scratch?
Oh yea it's not updated, did you restart Balatro?
yeah, I restart every time I make a change
It's working perfectly fine for me. All I changed was pointing to my atlas because I didn't have yours
If you’ve modified the config you need to respawn the joker, it won’t update otherwise
OH
removing your code from mine because it's not in the scope of my mods lol
LOL
I'm making jokers based on canonically-tiny ladies, not stoners
😭
Yea that joker crazy lol
yeah, I like the idea, but 30 might be a bit high
oh wait, that's wrong
it's supposed to be 10 LOL
actually, 5 seems best
this is supposed to be a troll pack after all, just for fun 😭
Oh go wild then
I hope atleast one person gets this reference...
still trying to figure out how to best do a blueprint type joker.. for some reason calling this func retriggers the other joker instead of just returning the calculation
coughing baby clears
REAL
oh, yeah, earlier in this chat, you guys decided that my idea for Rapunzel was too weak to be a rare, but changing it to Xmult means it steps on Obelisk's toes? (I still don't understand how). So you guys suggested I decrease the mult and make it an uncommon.
This is making me consider the rarities of my other jokers.
these are my jokers so far. Rapunzel isn't yet fully programmed, and I do have one more planned.
Tink uses Ancient Joker type seeding, so you cannot pare your deck down to one suit and always get her
oh yeah, I should probably make Gadget a little slower to proc. That was just to speed up testing that the timer worked
during my testing run I found myself counterintuitively using Strength on aces to make more 2s
imagine that + perkeo cloning strengths for your 2's / turning the queens into kings
and a baron for good measu8re of course
anyway please help ive been stuck for 3 days with this thing and i am losing my marbles
so how exactly does voucher calculate work? looking at the ownership over observatory it seems like the exact voucher card instances are saved somewhere after redemption - where does that happen?
same way joker calculate does
i think i should rephrase my question so it targets my issue directly
it seems like with the new calc the voucher instances are saved somewhere to be used for calcs later - where would i look for that in the code?
i need to add an exception bcos currently updating a mod that doesnt want its redeemed voucher to be stored like that
looks like you want this instead of your return ret line and the above
if other_joker_ret then
other_joker_ret.card = context.blueprint_card or self
other_joker_ret.colour = G.C.BLUE
return other_joker_ret
end```
What I'm getting from this is that Blueprint *is* retriggering the other joker, but then moving the card bounce/text/etc. onto itself so that it looks like Blueprint is triggering.
ohh shit okay i see
blueprint steals the return of calc functions for its effect ye
lets say I wanted to delete every joker
G.E_MANAGER:add_event(Event({
func = function()
play_sound('tarot1')
card.T.r = -0.2
card:juice_up(0.3, 0.4)
card.states.drag.is = true
card.children.center.pinch.x = true
G.E_MANAGER:add_event(Event({
trigger = 'after',
delay = 0.3,
blockable = false,
func = function()
for k, v in ipairs(G.jokers.cards) do
G.jokers:remove_card(v)
v:remove()
v = nil
end
end
}))
return true
end
}))
return {
message = 'KABOOM!'
}
else
return {
message = 'the clock is ticking...'
}
end```
would something like this work?
what does coughing baby do
Coughing Baby - create a coughing baby card in your deck everytime a hand is played, +1 mult for every coughing baby used in a hand
it's still retriggering when i call calculate_joker instead of just passing the return values tho..
weird
which property stores hand size?
i know G.hand:change_size adjusts the size but i want to make sure you cant use this card if ur hand size is 1
oh nice
the print worked
G.hand.config.card_limit
are there any mods that create custom buttons? like use/sell for example
Fusion Jokers
thanks
how do I get the type of hand played? I know how to check for specific hand types next(context.poker_hands['type']) but I want to figure out how to know what hand was played in the first place
context.scoring_name
Hey there, I am new here. Any tips to create mod in Balatro?
i got started a few days ago and this https://github.com/Steamodded/smods/wiki really helped me
THX A LOT
there are also some examples on how to create jokers/consumables etc
Ok and is it useful to learn lua or something?
i didnt i just read other mods/games source code and try to understand it as i go
but im by no means whatsoever a good modder
so maybe other people can answer you better
same
guys i have a redacted jokers texture file and want to make a mod based on steammodded, how do i do it?
i mean what should i put in lua file so it will work?
you want to change the textures of all jokers or make a new one?
change (basically make a texture pack)
first you have to create an atlas (a png with the textures of all jokers) you can just take the source code one and place your desired textures over the ones you want to change
Did you get the paging to work as well?
i know about texture and 2x version
i want to know what should i put in lua file so it will change all joker's texture
my english is not very well
SMODS.Atlas{key = "Joker", path = "path to your png", px = 71, py = 95, prefix_config = { key = false } }
just change the path
thanks
it was on the steammodded github i didnt try it myself but it should work
Steamodded example mods. Contribute to Steamodded/examples development by creating an account on GitHub.
its their example
crash handler is saying i tried to call a nil value at engine/ui.lua [981] but there is nothing there, im trying to create a custom button for a consumable so i dont know why it would even call that function
Better to use malverk so it’s toggleable for textures
i believe you're in the wrong file
you're looking for Mods/lovely/dump/engine/ui.lua
np
if i want to change a texture of a joker/consumable during the game based on conditions
do i just change the atlas or is there a more elegant solution
I have been wanting to make a weather mod that basically adds like a custom "boss blind" effect to every blind with some unique interactions with jokers/tarots and being able to reroll/forecast the weather.
Are overhaul-ish changes like that not possible with lua scripting? Have tried to find a mod that does a similar thing but had no luck
this is probably more a lovely patch type of deal
If you have the desired texture on the same atlas elsewhere, card.children.center:set_sprite_pos({x = desiredx, y = desiredy}).
is there anything here that would flip these cards
see what happens if you just tell them to flip
pretty please😆
they keep flipping the other way when I open the collection somehow
show your area function too
Looking like Galdur's deck select 👀
Can I not make the "targeting area" of a Joker smaller (i.e. Half Joker, Wee Joker, Square Joker)?
you can
...assuming I don't need a different atlas for it, tell the function.
These should be all the functions, I've been inspecting CardSleeves so if its similar thats why
your card areas are of type 'deck'
you should look at collection code for standard objects instead
it's like 2 functions that you need, 1 for a general page, and 1 for if there are more than 1 page
you can find the smods ones in overrides.lua
So I need to add display_size to Joker definition?
I think it's something like that yeah, it got merged recently then you don't need to do set_ability shenanigans anymore
...well, the target area is smaller, but the Joker also is squimshed.
thanks for the pointer, which function specifically?
There are a few of
create_UIBox_your_collection_
but for blinds and tags
well yes, each object type has its own function
smods mostly standardizes collection UI except for blinds and tags, you can make use of that util
I'm trying to make a joker blueprint compatible, however doing this triggers the context.remove_playing_cards twice for some reason
calculate=function(self,card,context)
if context.blueprint then
return {
card = card,
message = '+' .. card.ability.extra.mult,
mult_mod = card.ability.extra.mult,
colour = G.C.MULT,
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
card = card,
message = '+' .. card.ability.extra.mult,
mult_mod = card.ability.extra.mult,
colour = G.C.MULT,
}
end
local multAdd = 0
if context.remove_playing_cards and context.removed and #context.removed > 0 then
for i= 1, #G.hand.highlighted do
multAdd = multAdd + G.hand.highlighted[i].base.nominal
end
card.ability.extra.mult = card.ability.extra.mult + multAdd
card_eval_status_text(card, 'mult', multAdd, nil, nil, {message = '+' .. multAdd})
end
end
blueprint compat happens by default
You have to manually add the blueprint behaviour
you just need to exclude it from contexts where it's unwanted
So instead of doing "if context.blueprint" where you want it to trigger, do "if not context.blueprint" where you don't want it to trigger
oki
thanks, it works now
...well, horizontally I can shrink it, but to exact "square", not so much.
might need the pixel_Size stuff too?
Matching the two to the actual resolution of the shrunken image in atlas makes it sag down.
display_size = { w = 69, h = 74 },
pixel_size = { w = 69, h = 74},
God these two are the pinnacle of early 2000s designs
You're likely to be seeing him too.
unsure how to get it in the middle
Fixed by moving the actual image in atlas to match the top of other cards.
oh cool
Now for the function question of it... better to use Lovely patches or hook into is_suit for making Hearts and Spades count as one suit?
reminds me I've been meaning to work on suits and ranks
you don't need to set display_size if it's the same as pixel_size
You might need to add extra checks in a hook
is this better
looks like a nice high contrast option
?
local issuitref = Card:is_suit
function Card:is_suit(suit, bypass_debuff, flush_calc)
if flush_calc then
if next(SMODS.find_card('j_toga_testhearty')) and (self.base.suit == 'Hearts' or self.base.suit == 'Spades') == (suit == 'Hearts' or suit == 'Spades') then
return true
end
return Card:issuitref(suit, bypass_debuff, flush_calc)
else
if self.debuff and not bypass_debuff then return end
if next(SMODS.find_card('j_toga_testhearty')) and (self.base.suit == 'Hearts' or self.base.suit == 'Spades') == (suit == 'Hearts' or suit == 'Spades') then
return true
end
return Card:issuitref(suit, bypass_debuff, flush_calc)
end
end
no low contrast :P
why are you calling issuitref on Card
should be return issuitref(self, suit, bypass_debuff, flush_calc)
Also just so you're aware, this makes all cards that aren't hearts or spades also count as the same suit
next(SMODS.find_card('j_toga_testhearty')) isn't set up right?
no the find_card is good
I mean this is just smeared logic
which I should change to work better with modded suits too
how do i make C:legendary cycle through colors like the actual legendary text does
right now it just stays purple
C:edition or C:dark_edition?
...am I going to be the one causing pushes again? For real, though, what do I change or do I wait for the push once more?
yep that worked, thanks!
not really, I've been meaning to work on that for a while
if you just want it to be smeared but different groupings, leave as is
if it's supposed to be hearts and spades only, exchange == for and
...though, this with the Smeared Joker would make all suits count as one, technically. 😂
would it though
It does error out at redefining of the function, though. [SMODS _ "src/loader.lua"]:571: [SMODS TOGAPack "togastuff.lua"]:165: function arguments expected near 'function'
local issuitref = Card:is_suit -- 163
function Card:is_suit(suit, bypass_debuff, flush_calc) -- 165
if flush_calc then
if next(SMODS.find_card('j_toga_testhearty')) and (self.base.suit == 'Hearts' or self.base.suit == 'Spades') and (suit == 'Hearts' or suit == 'Spades') then
return true
end
return issuitref(self, suit, bypass_debuff, flush_calc) -- 170
else
if self.debuff and not bypass_debuff then return end
if next(SMODS.find_card('j_toga_testhearty')) and (self.base.suit == 'Hearts' or self.base.suit == 'Spades') and (suit == 'Hearts' or suit == 'Spades') then
return true
end
return issuitref(self, suit, bypass_debuff, flush_calc)
end
end
you can't use : like that
that's only for calling and defining functions, not for creating vars to refer to a function
local issuitref = Card.is_suit
Well, works... but it really only accepts up to 3 suits for a Flush. What do I change for it to work with Smeared Joker for all suits then?
you'd have to check manually if it exists
If both exist in hand, just return true?
I think what I'm planning for smods should cover such a case too and not be completely broken with modded suits
but for now that should do
?
if next(SMODS.find_card('j_toga_testhearty')) and next(SMODS.find_card('j_smeared')) then
return true
end
...perhaps I'll wait-
I guess you should check for no_suit still
how do i check for end of boss blind
Check for G.GAME.blind.boss too.
thank god 🙏
vro got the alphabet
if next(SMODS.find_card('j_toga_testhearty')) and next(SMODS.find_card('j_smeared')) and not SMODS.has_no_suit(self) then ?
switching back and forth between TS and Lua is confusing
guys I want to do a mod but i don't know how to make some effects
is there a guide to making mods?
i know you can go into that one file and edit stuff but is there a way to make it update without restarting everything
also maybe a guide to find stuff in that one file
this will pronanly help https://github.com/Steamodded/smods/wiki/Your-First-Mod
also what language is this
Lua
what language is that similar to
english
Lua is a stupid simple language if you have previous programming experience you'll probably be fine
Oh Wilson, is there an easy way to change which center is used when watching a shader without doing it in code?
ok sick
No I was meaning to maybe show a few random ones beside it
Actually I had a snipprt to apply it to the collection
why not just all cards
Cause it's setting a jank edition and the game doesn't like that
I'm pretty sure loading into a run with watch shader active causes a crash
At the very least generating the shop does
question, how do i get a joker to have a rental sticker in a Challenge? doesnt seem to just be "rental = true" like eternal is seems like @wintry swallow you were dealing with this a few weeks ago?
i tried the other guys suggestion and i cant seem to get it working
is there an easy way to change a cards atlas/texture during a game under conditions
or are there any mods that do that whose code i can check?
Jimball is animated, if that's what you mean.
Jimbo Update is too, but because "conditions" are mentioned, that may be a bit more involved.
Still unsure about why the Flush still occurs with a Stone Card.
iirc theres a method on card to update it's sprite
I belive card.children.center:set_sprite_pos({x = 6, y = 4}) (but with your pos) should work
#💻・modding-dev message Did mention so.
...though, on that note, what of the soul_pos being updated?
i got it to work thanks
one more question
is there a way to deselect a card
i have a consumable which when used changes its texture
but i want it to also deselect
G.jokers:unhighlight_all(), but you'll need to pass the right area.
do i pass the area in the ()?
Before the :.
G.jokers is an area in the example.
got a question with a joker,
if i want to make a joker to destroy a random held consumable at the end of shop (basically the opposite of perkeo) how would i do that? new to modding so would like the help
look at the corgi from paperback
im trying to add a custom sound and it keeps looking at resources/sounds
when i specified the path as assets/sounds
and then crashes
key = 'gulp',
path = 'assets/sounds/gulp.ogg'
}
Show the code where you're playing the sound
play_sound('gulp')
card:juice_up(0.3, 0.5)
card.ability.isFull = false
card.children.center:set_sprite_pos({x = 1, y = 0})
end```
I belive the path should just be gulp.ogg
i tried that and it did the same thing
add '[prefix]_' to the key in play_sound()
oh yeah that would effect it too
my mod prefix right?
yes
thanks
np
Did you do this?
no
Also sorry for ping lmao
Not you
and quick answers
oh
oh did you mean that to Ja
not seeing one with that name
yeah lol
it's called tobey or something similar
shouldn't ping me then
eugh I'm not on my main system and I keep forgetting to turn off pings 
also if you have access to the definition of the sound you can save it in a variable then reference sound.key
i still can't find the joker from the response so just wanna bump this
i can't see anythign still even looking at locs of paperback unless im being blind
oh wait I'm an idiot, extra credit
ok got it thanks
Did lovely just change loading order again?
When needed i'm switching between versions to make sure my mod works on all of them
0.7.0 did
0.7.1 undoes some of that (specifically the inconvenient parts) but i don't recall if it reverted all of it
don't use 0.7.0 it's ordering is busted
0.7.1 has a new ordering system which is designed to replicate 0.6.0's windows behaviour but may have tiny differences (but shouldn't change across platforms or future versions now)
Even when i'm not using 0.7, some players can. That's why i'm trying make mod work on all of them
specifically on 0.7.0 regex patches run after all pattenr patches of any priority
it was unlisted as latest version when made and hot patched in like less than a day
people should not be using 0.7.0
Well, now another question. Why lovely loads files which they shouldn't?
back again trying to fix the speech box issue, ive tried doing this but cant seem to make an event that blocks the main queue
by default an event will block the main queue
wdym?
In my mod I have 3 lua files. 2 needs to execute from lovely, and 1 only when Steamodded is present
But for some unknown reason third one executed without Steamodded
show lovely config
but what about making a conditional then?
I told you earlier don't return true until your confitioj is done
how am i supposed to close the conditional? end made it repeat every frame and lock up the game
Return True when the confition is done
ok let me try a different question
should the conditional be in an event or not? maybe thats why i cant not close it
In the event
How do you know the thrid is executed?
That looks like the steamodded crasg handler
Though the 0.9.8 one
Hm...
I avoided being loaded by old steam-modded versions buy just using json metadata
I preffer backwards compatibility
I mean DebugPlus works with its vanilla behaviour with old steamofded versions
Just not integrations
I'm trying to add settings tabs when Steamodded is present, so I mage a script which runs only with it to setup it
So it was a problem with Steamodded 0.9.8...
I guess my mod now compatible with it too
0.9.8 doenst have mod config anyways
You might be able to tell 0.9.8 to not load your file
is this how you would do it or not
I'd probably do a seperate event for the condition and calling my code
what do you mean?
Like one event for blocking one for dispatching your other events
so make another event in the same line as this one that acts as the kickoff for the line of speech bubble events?
so true lmao
here's mine (currently used is 0.7.1)
though tbf I have dropped support for 0.5.0-beta6
i still dont know how to use the info queue
where are shop cards generated?
beta6 is so old
create_card_for_shop or smth
how do i check if a card is a consumable
card.ability.consumeable
i hate tunk
I'm pretty sure I saw someone this week with a crash because they were still running version beta6 lol
Ah yes what a consistent system
who is this dinosaur...
I think it was someone who hadn't played modded in a while tbf
To be fair beta6 was the latest build for 3 months
LET'S GO
how would i go about making an edition that doubles all joker values so +4 -> +8 mult?
oversaturated cryptid?
apologies if this has been asked before, but does anyone know if it's possible to make texture mods for other mods? i.e. six suit. i wanna make it so my own custom card textures can match with added suits (assuming that's possible and it's just as easy as making a bog-standard texture mod)
yeah sounds easy enough with deck skins
aure one question, since my new card type isnt handled, it doesnt use the different text for when it's locked and it doesnt use the locked sprite either
Where would I need to edit to handle this? Here?
should be able to do something like what I did for my sleeves?
function CardSleeves.Sleeve:generate_ui(info_queue, card, desc_nodes, specific_vars, full_UI_table)
if not self:is_unlocked() then
local target = {
type = 'descriptions',
key = self.class_prefix .. "_locked",
set = self.set,
nodes = desc_nodes,
vars = specific_vars or {}
}
if self.locked_loc_vars and type(self.locked_loc_vars) == 'function' then
local res = self:locked_loc_vars(info_queue, card) or {}
target.key = res.key or target.key
target.vars = res.vars or target.vars
end
localize(target)
else
return SMODS.Center.generate_ui(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
end
end
wow I had missed that, ty
possibly similar idea for the locked Sprite (see create_sleeve_sprite in CardSleeves' code), but I'm not sure you're in charge of actually creating the Sprite obj?
I mean you should be able to replace it whenever you create a Card 🤔
no
i can't figure it out through cryptid 🙃 how do i make an edition that multiplies the joker's value?
cool, got any links or guides for that? discord search is comin' up dry for me
made a Miku joker for all if anyone wants to make a Miku joker https://discord.com/channels/1116389027176787968/1333924974833963151
question,
how do i handle this? i cant close the conditional without breaking something but i cant leave the function without an end
oh my god you made a 3rd one? pog
Is it possible to overwrite jokers' rarity?
show the entire event
that is the entire event
then you're missing an end and three brackets
that makes this happen
yes because you have a print statement there
yes that was to see what it was doing
so whats the problem then?
its supposed to do this?
hahah i think i have made 2 now so far, the first one is going in my mod (i did recolor it slightly though)
miku for all is a standard miku i made cuz a have had a handful of people ask to use my OG one but it's going in my personal mod! so i made a free miku lol
events repeat until you return true, yes
i was told to do this as a solution to let the joker's text boxes play uninterrupted
they do not do so
you're interrupting them now
well how are we supposed to help you when you only show one event?
if you need to see more events, kindly let me know and ill show you
I mean you havent asked anythig other than how do I close this event
so tell me that you need to see more events, and ill show you
one second
its a bit messy so apologies in advance
whya re they still nested
i thought unnesting them would cause the strange issue where all card: effect triggers are somehow moved to the last event in line
did you look at the code wilson sent you before?
yes
yes it was?
the speech bubbles are a function of the card object, it doesn't matter what you name the variable that is your card
i did not know that
so what should i do then? rename all the card:s in the events?
just copy iwlson's code, change the DT_jimbo to card and then update the localisation stuff
localization?
the messages
oh, the ones that are supposed to play in the speech bubbles
is looping through G.I.CARD the way to edit cards in the shop? if so, can't quite tailor the referencing after I've set up the for loop. How can i access all the card's information with the dot referencing? like I can get the keyname with v.config.center_key but I want all the other info like what set it is and what sticker it has or whatever
update, i tried to figure it out on my own and that shit just IS NOT working lol
@frosty dock if you got any links or guides for setting up deckskins to work with added suits from other mods, lmk
im sorry, but i dont think this is helping me
but thank you either way
im going to keep trying different things
Anyone have a good example of how to execute something like the "Rich Get Richer" challange restriction? Trying to go off of the code for Plasma deck but i want my restriction to execute after the final chips x mult calculation, not before (like the Rich Get Richer challenge)
is this how you were hoping the code would look? https://hastebin.skyra.pw/ocufijolet.pgsql
is that what wilsons looked like?
not quite, but i figured when i sent you the code earlier and you asked why they were nested that itd be better if they were unnested
Does anyone know where these value are stored/created?
I dont know why you arent just using the code that you were sent as an example that works
I am not sure, but maybe looking at functions/ui_definitions will help
that's usually where all the ui stuff is
the event queue still goes on with that code, it interrupts the speech boxes
hold on, i should get a video
give me a minute
(ignore the cardsauce)
then you're not blocking the main queue properly
how do i block it properly?
is there a way to get current hand size as a variable
i tried to do it with the event i showed but it does this instead
#context.full_hand
ok cus uh
context.full_hand is every card being played, as a table. adding # in the front gets the size of that table
oh, no, I don't think that would work
damn
how do i access jokers that appear in the shop so I can change their characteristics, accounting fro rerolling and everything
G.I.CARD is something I've seen pop up but I can't seem to access their sets or editions or whatever through that?
Well you couldn’t multiply it but you could make it act like you did
make a variable equal hand size x 1.5
and then add hand size an amount equal to the variable
yeah i was thinking that
so what like local hsizemod = #context.full_hand * 1.5 or something
how would i make it so an edition on a joker retriggers the joker?
now I'm wondering what happens if you put a red seal on a joker
it says its a nil value
Check if context.full_hand exists first
well, also, I misunderstood their question. I assumed they wanted to increase the size of playable hands. But they want to increase the size of the held hand
is that heathcliff
Weird random thing I noticed, why does SMODS do this to Observatory?
can someone tell me why the text doesn’t show up?
someone was testing stuff and forgot to remove that
lmaooooo
update steamodded and it'll be gone
silly oversight
far better picture that other one sucked
ia context.blind_amount a thing? or is there a different way to get the chip value of the current blind?
im just getting crashes when i try that
yeah
withi the shop, is there a way to know what the last played hand was?
how do i reset hand size when the joker is sold/destroyed
G.GAME.blind.chips
i got the extra mult on the hand size to work but now it wont go back down when the card is sold
so, im on the hunt for the most amount of twos in the erratic deck and i made a mod to display the seed and two count
and it uh... well it somewhat works, it just enables most ui elements in the process
yeah
looking at the dark mode UI in-game it looks really nice
why wont the hand size go back downnn
im genuinely at a loss as to how this could even begin to happen
i basically stole the ui code from another mod that doesnt break shit
nevermind im very stupid
how do I make a joker's text have 2 different variables
#1# and #2# and so on
ok i figured out why
it has to be a seperate card ability or it wont go down, cant set it directly
also yes multiplying hand size is in fact possible
#context.full_hand was a dead end
i snooped around in a bunch of balatro's code until i realized that its literally G.hand.config_card_limit
?
does anyone have a framework for creating a mod just to add a joker?
was looking to create something similar to oop's all sixes
oh my god i’m actually just stupid tf is “context.joker.main” and “loc_text” 😭
attempt to index field "joker" (a nil value)
also it's loc_txt not loc_text
oh wait
that's what u were saying
god im slow
Where is the variable soul_pos modifiable under card.children?
it’s ok thank you!!
hey fellas, in looking for the chips a player has scored during a blind where do i access that?
Tallied up or currently scored?
G.GAME.chips
oh duh, thanks
how do i check which card is the leftmost card?
because when i go G.hand.highlighted[1] it takes the card that i selected first and i want it to selec the leftmost one
G.hand.cards[1]
how could I get a consumeable's name from the key
wont that just take the first card of the hand regardless of wether its selected or not
maybe i phrased my question wrong
i want it to take the leftmost highlighted card
but
if i do G.hand.highlighted[1] it just takes the one i clicked first not the one that is leftmost
Intentional, I feel like. You'll probably have to iterate over the whole hand to find the "first" one.
Alternatively, however "Death" does it in code.
yea where can i find it
in which file are the tarots coded
coz i cant for the life of me find it
card.lua, line 1111.
is there a way?
yes i know but using that then loading up a seed and clicking the view deck button is stupid
this looks much better
also heres something thats probably going to piss people off
in globals.lua where the colors are defined, the hex codes use both upper case and lowercase
sometimes even in the same color
just a thunk moment
when the SMODS.has_no_rank(self) makes no difference-
what does the first joker do?
The intended effect is that Hearts and Spades count as same suit. With Smeared Joker, though, this is intended to make the base 4 suits count as all at once.
AI is not involved in this. This is merely using the Hearts and Internet Spades icons from XP.
do not
why?
because it's a very common moral boundary that you shouldn't use ai art (certainly not in public projects and oftentimes never at all) and a good portion of people here will denounce your mod because of it
yeah it's an easy way to speedrun people not wanting to use your stuff
it's also not allowed
according to the rules listed in #🎨・fan-art AI art in mods isn't allowed unless it's as a placeholder or as a joke
so you can make a mod with AI art you just can't post it here and nobody is gonna use it
I can see AI helping out in visualizing a concept, but not used in the final product.
oh didnt know it was taboo
yeah it's extremely taboo in spaces with legitimate creators
anyhow you're probably not as bad at drawing as you think. practice, it'll be a good skill to pick up :-)
for one it's because the creation of generative AI models involves stealing lots of art
ai art is fundamentally based on the theft of millions of works
people have put a lot of thought into this so you should probably just google some good articles on it
🤮
the only downvoted thread
and theres a guy begging for money in a different one
to put that in perspective
i have not seen this
hahhahaha
unless you're talking about skylines stuff
yeah I haven't seen that one either
I'm not an artist, but I've edited stuff together in "original" (at least I think, lol) ways for it to be unique.
because skyline actually needs that money to pay for the apple dev certificate to launch bmm
i thought ai just takes art/stuff that is published publicly and makes its on by using that
the artists don't consent
yeah this is legitimate
the dev cert isn't cheap for a passion project like bmm
i dont care im not losing another penny to someone's stupid scheme
$99 a year to sign an application is crazy
but if i just google pixel art cars and take 5 of them and draw my own pixel art based on the 5 examples isnt that the same thing?
at the same time though certs are EXPENSIVE in general
I do think they have legit goals but I don't like giving money to something thats just a promise and I have no way to guarntee it will actually come back
donating to open source creators in need = falling for a "scheme"
i don't get why they don't launch it on windows first
he literally posted the receipts too 😭
doing test runs on macos to see if it works okay
main development is being done there
I mean you can launch mac apps without certs you just need to through a stupid process to go into settings and allow it
if it works good then it gets ported to windows/linux, we as mod developers populate the index, then we publicly launch it and advertise it on smods/here
so is everything in a museum, go and take the paintings off the walls and see how they like it
again, google some articles
i can't articulate this stuff as well as some other people
we aren't arguing about ai here
yeah we're arguing about why lovely should be a web app
if you want to educate yourself on either side of the argument do it in your own time
jimbocart?
cute
jimbo got that big thang
ali 🫵
its just perspective
there's normal sized human jimbo in the mobile trailer
ali 🫵
cg 🫵
hee hee
doesn't get it
hoo hoo
me neither i like pointing at people
wtf king point from throne of lies reference
king point king point what are u doing king point
I guess it could be counted as the karts themselves, considering such exists.
imagine playing throne of lies
tempt me 🫵
- tos1 player
edits are fun :3
anyway im running away now awawaawa
stay 🫵
I could make a pr to lovely to fix the disable mods option on unix
tos on top
no i have to work actually
its impossible to fix that
I'm working too, what's your excuse 🫵
oh
jk jk enjoy your work
i mean ill probably still chat LMAO
I mean I have other stuff to do I was just trying to tempt you
tos is good but tol was so much more out there with the concepts and all
oh you can do it if you want, otherwise I can take care of it
it's a simple fix
too bad it's dead xp
tears of se kingdom?
terms of serveice
damn!!!!!!!!!!!!!
do you ever feel like we're quarantined in here by the mods
do you ever feel like the mods dont look here
maybe the mods are quarinteened in here by us?
this is like the most freedom we have wdym
actually yeah
we are the ones who are truly free
...wait, I barely changed anything and now this no longer registers as a Flush anymore, lmao.
I like neevr spend any time outside the modding and #🎨・fan-art channels
they're all locked out therre
Break the birdcage... and be free.
I don't think I've ever even looked at any of the non modding channels
I'm a man of focus
i love arbitrary references
i look at the other channels sometimes
Nevermind.
there's more celeste players in game discussions than here so
I spent some time there before they existed
imagine a world where bdbs yuri is downloadable
imagine if hee hee hoo hoo
DAMN!!!!!!!!!!!!!!
What exactly is joker_buffer used for? I see it getting set a lot but I have no idea what its purpose is because it seems to be set to 0 every time immediately after
for destruction effects + joker creation
iirc it's used for knife and madness so other jokers know they can create
eg dagger and riffraff

smo smol
51121511121
x_chips or xchips?
nope
Then something may be afoot.
In that case... assuming you're on latest versions of Talisman and SMODS...
x_chips = card.ability.extra.Xchip,
xchip_message = {message = localize{ type = "variable", key = "a_xchips", vars = { card.ability.extra.Xchip } }, colour = G.C.CHIPS, sound = "talisman_xchip"}
couldve sworn i tried x_chips and it didnt do anything either
ill try again
still nothing
Well, what versions of SMODS and Talisman are you using?
1325b for smods and latest for talisman
Latest release of Talisman or latest commit of 2.1.0-dev?
Then try latest commits instead.
Hey y'all, quick question: How would you change the card color from white to black, I'm looking to mod in a deck texture that was designed to be white on black, and I know how to change the art, but is there a simple way of changing the card base color?
still nada
gonna try something
OK that fixed it
i had to move this outside of extra
it works now
flame fake out is funny
¯_(ツ)_/¯
loving that art
oh wow, that's an awesome idea
I love to see people in the community coming up with unique balanced (ish) ideas rather than stuff that ends up breaking the game
the card in dungeons and degenerate gamblers that its based on halves all card values (queen of wonderland)
obviously it just being 0.5x chips would be a really shitty card, and 2x hand size would be like literally legendary material so i went with 1.5x
did i brick something really bad here or is it something else thats causing my joker to not work
what is it doing vs what do you expect it to do?
Hello actual mod devs. I'm pretty new to this scene, but I had a question I haven't been able to solve. Im trying to reskin the basic card suits and rename the relevant cards, and editing the textures and localization has been fine. But I cant seem to find where in the files the colors for the suit text is. I found the HEX codes in globals.lua, but changing those doesnt seem to change anything? Am I looking in the wrong place?
YO D2 RESKIN?
Yup lol
functions/misc_functions.lua, look at the function loc_colour
Does anyone know why card == self isn't working here:
calculate = function(self, card, context)
if not context.game_over and not context.blueprint and not context.repetition and context.end_of_round then
local cards_to_destroy = {}
for i = 1, #G.jokers.cards do
local curr_card = G.jokers.cards[i]
if curr_card.ability.eternal or curr_card == self then
cards_to_destroy[#cards_to_destroy+1] = curr_card
end
end
for _, card in pairs(cards_to_destroy) do
destroy(card, "82FF92", nil)
end
end
end
It's detecting everything but itself
don't compare to self
Thaaaaaaaaaaaaaaaaaank you so much, I've been looking for so long and didnt want to bother you guys until I ran out of options lol
use card instead
Oh my god I'm so dumb LOL
Thank you
it is weird that changing the hex colors didn't work tho, you should just be able to change G.C.SUITS in globals.lua
Well as far as I can tell, there is no G.C.SUITS in globals.lua
Like theres these, but no changes were affected
Should I look into the github repo for lovely to figure out how it works, or should I just download a bunch of mods that utilize it and see their use cases and figure it out that way? I'm attempting to mod in another type of "currency" we can call it and I figure that it's probably going to need to utilize lovely's patching in one or another to do so.
so i have a question, how much of a no no is using copying code and sprites and using it in your own mod without permision considered on a scale from 1 to 10
Probably a good 9.5 without permission
Check if they have any type of Open Source license though and follow with that. Definitely should get permission if you're going to copy other peoples assets or code though.
it's in the picture you sent, SO_2 is for high contrast and SO_1 is normal, depending on the option selected, G.C.SUITS gets updated in functions/button_callbacks.lua at refresh_contrast_mode
@rough furnace
for my mods follow the license
if its like a really short snippet I can give permission to use it without the license
but i mean say it was like 5 or more consumables, same exact code and art
for any mod follow the license, if it has no license you should ask the owner for permission
thanks
Ok, so if I change the hex codes here, it should change the suit colors correct? Because I changed them to match the new suits and im still on normal colors. Should I be doing something in functions/misc_functions.lua as well? Becuase I dont see any editable values in there
New question: Does anyone have any idea why this is triggering on all the held in hand cards as well as the joker, and duplicating and erroring for each (as seen in clip)
calculate = function(self, card, context)
if not context.game_over and context.end_of_round then
local reward = 0
if pseudorandom('boingular_roulette') < 1 / (G.GAME.probabilities.normal * card.ability.extra.odds) then
reward = -G.GAME.dollars
else
reward = card.ability.extra.reward
end
card:juice_up(0.3, 0.4)
return {
message = localize { type = "variable", key = "p_dollars", vars = { reward }},
dollars = reward
}
end
end
I only want it to trigger once as the joker on round end
How did you change them
By editing the values in the hex code
Heres the original codes
Heres my edited ones
SO_2 is high contrast so make sure you have that enabled
All in globals.lua
I do, all my edited sprites are for High-Contrast
So I assume you're just modifying the game files directly? No lovely?
Yes? I mean I just thought lovely was part of the mod loader, I didnt know it was a mod editor
I do have it set up as an actual mod, not just base game file editing
As in I do have smods and lovely set up for this
And could you describe the process you're using to edit the game files
Sure
So I have an actual mod setup in me roaming folder that all these changes have been saved in
Oop right there it's the issue
?
I thought since I've been able to change the sprites for the cards themselves, changing everything was pretty much on the table
Is it just not?
Can you send your globals.lua file
and DestinyTexturePack.lua
Okay so, the entry file to your mod is DestinyTexturePack.lua
that means that the code in that file is run
No other files are loaded, and since you're not loading your globals.lua file from your entry file, globals.lua is not doing anything
Another thing, you shouldn't override everything the way you did
I mean, I never edited any of the actual original game's files
Honestly, all I did for the entry lua was change the mod name and ID, the rest of that isnt my code
Ah I see
But if theres a better way to do so, I am very willing to change it
Your entry file is marked as an entry because it has the steamodded header at the top, considering your sprites are changing that file is fine
The way to modify game code is using lovely patches, but I believe they are not necessary here
Interesting, I never heard of those while I was researching
within this function you should be able to modify the colors table directly, for example, by doing
G.C.SO_2 = {
-- blah blah
}
So just putting the G.C.SO_2 with the updated HEX codes right into the starter lua?
yes, I believe that will work
are you familiar with lua, or is this your first time modding anything
Fist time modding anything
Im familiar with bash and languages like that, but Ive never messed with game code before
within the entry file in your mod you can run any kind of code you want, the entire file will be ran once balatro loads
generally you use this to interact with the steamodded API (which you do here by using SMODS)
So the ONLY code changes whatsoever should be in the entry file?
unless you manually load another file from within your entry, yes
Interesting
the entry is denoted by the steamodded header in your case
and you should not have multiple files with the header
Changing that is going to take a lot more research then lol, since all my name changes were through changing the localization file
you should be able to change the colors with this
this is also using a really old version of steamodded btw, this code might not even work right now
Yeah I dont doubt that lol
I could find very little in terms of info on how to get started, so I kinda just grasped at whatever straws I could find
https://github.com/Steamodded/smods/wiki here is an installation guide
yeah makes sense
if you're familiar with other languages you should be fine
it's not
Then I dont know how mines out of date then
what version of steamodded shows on the top right while ingame
Well, I know a bit of bash, but thats VERY different from anything like this lmao
what kind of texture pack is this btw? just for playing cards?
Playing Cards, Jokers, pretty much everything when I plan on being done
Plus maybe dabbling in some custom new cards once thats all figured out
Trying to learn new things I guess
alright give me 1 sec, I'll try and see if I can find you some example mods
yeah the steamodded org has a repository with examples in github
I tried looking through a six-suits mod I found as an example for changing the suits, but I had no Idea how to use that to change the existing suits
The reskins themselves have been fine for the most part
Renaming, respriting, Ive had no plroblems there
The text colors have been my only hangup as far as texture pack-ing goes
Im sure once I move on from that step and try (and if Im being honest probably fail) to learn now to create new jokers and such, ill need a lot more work on that stage
https://github.com/Steamodded/examples this is the repo for examples
DeckSkinTemplate is a template for adding skins to cards I believe
I mean I can see how that would help in changing the sprite itself (if Im interpeting this correctly), but I dont really see how that helps with the text
Yeah that's for changing sprites, which you should use instead of what you currently have
As for changing the colors you really should just be able to override them by adding the code I sent earlier within you entry file somewhere
Ill admit, I dont really get the part about changing only specific suits, but doing it all within one image file?
Also yead I did that, I must have done it wrong though because it didnt make any changes
I did find the NegateTexturePack example, and that at least makes a bit more sense
New playing card texture mods:
- https://github.com/Kitty-knight/Balatro-collab
- https://github.com/LawyerRed01/RW-Karma-Cards
- https://github.com/VictinZero/balatro-faces-of-sin
- a bigger list is available at #1255696773599592458 message (warning that these might not all be suitable, outdated, etc; I confirmed the ones I linked have easily viewable & recently updated code)
- also see the smods documentation at https://github.com/Steamodded/smods/wiki/SMODS.DeckSkin and smods example repo at https://github.com/Steamodded/examples/
New joker texture mod (uses https://discord.com/channels/1116389027176787968/1300851004186820690 which I definitely recommend):
- https://github.com/Finnaware/Finn-Pokemon-Jokers
- a bigger list is available at #1320910737027235871 message (same warning as above)
I'll have to learn and figure out what all these keys are, but I'll try
Also wow thats a lot, thanks lol
Maybe try switching high contrast on and off again, admittedly this is not a very good way of doing it, but I mentioned it so you could see the changes ingame
Oh ok wow, I had done that earlier but it actually changed this time
Thank you so much!
Sorry for making you essentially do all my work for me lol. I'll be honest I really have no idea whatsoever im doing
Though weirdly, it looks like I need to turn off and on high-contrast every time the game loads?
Welp, guess I'll have to start from scratch in this entry-lua-only way lol
yeah it's not a good way of doing it, it was just meant for you to notice the changes
Hm
A better way would probably be hooking into the game function responsible for refreshing the sprites, but I assume you're unfamiliar with that concept too
Yeah lol
Pretty much anything to do with modding or lua code whatsoever, just assume I know nothing
here is a good example of what it implies
Ok, Im starting to realize Im going to need, like, a 6-month cource on the code languange before I even START to think about touching this pack, I am extremely overwhelmed lol
but yeah, if you do not know anything about lua you might want to get yourself familiarized with it, you need at least to understand the basics, considering you know bash you'll probably learn quickly
I mean idk, my bash knowledge is not really helping me at all here
And its like, Im ok at rudementary bash
But thats about it
Most languages have these concepts, variables, assignments, if statements, functions, loops
I am not personally very familiar with bash but I assume it has all of those as well
I mean yeah, but I've barely even steppin into that realm myself after like, over a year of learning
Ive made, like, a single script and its EXTREMELY basic
well don't let yourself get overwhelmed! it's not as hard as it might seem at the start, and there are many people here willing to help
Most of my training was in basic file manipulation, directory traversal, stuff like that
Very little scripting
And thats AFTER an actual 6 months of professional training
Honestly, this is just kinda stressing me out lol. Im suppsoed to be trying to get better at stuff like this, since atm Im trying to get into a cybersecurity field. But idk, ive stagnated after getting my first cert and ive lost so much of what I knew, and Im not sure im able to learn a whole new language while trying to relearn my old one
I'll be honest, I from what I though I had seen, I had kinda ssumed it'd all be relatively simple lol
Sorry, not trying to vent
Not at all no, I've never even seen lua code before yesterday when I started all this
I understand your frustration, it took me 3 days to get a new consumable slot showing up in game. I've been trying to learn off using other peoples source code and using the smods and the balatro source code itself to figure things out.
The book is good way to help familarize yourself with Lua stuff without going through a step by step tutorial
I mean its not really frustration, its just stress about my own inadecuacies with coding in general, and I'll be honest, if this project is going to require learning a whole new coding language, I don't really know if I can justify that to myself. Im already EXTREMELY behind just keeping up with my current basic knowledge, and I got certified 6 months ago. Atm I need to focus on trying to get maybe more certs, because my attempts to get into the field have been entirely unsuccessful (And to be entirely honest, I probably havent been trying 50% as hard as I should).
Again, sorry for venting, I didnt mean to get into a whole tirade about this. If im being honest to myself, I probably should just give up on the project as a whole if this is what its going to require
how would i start making a super simple balatro mod? any place i could read up on some basics? (i want to add exactly 1 feature, a 1,000,000 of Stars from a dream i had many years ago)
Programming is all about failing forward. You're going to run into numerous problems until it finally works, you just need to make sure you learn from each mistake, that way you can grow.
Follow the Smods wiki on github. It's a good place to start.
you're always going to try at least 5 things that dont work on any project
alright, thanks
dont feel bad i did like 7 earlier
Well yeah I get that, but idk. I guess it feels like this much of a step is a lot more than I should really do. If im going to put forth this much effort into coding, I should probably direct that at something that will finally let me get into a career.
I cant really justify to myself learning all of lua just for a silly little resprite
Lua is extremely useful in every day fields. Think of it like this. You're learning lua to code a mod for a game, that maybe somewhere in the future you can use that skill to write some type of automation script or whatever for a Cybersecurity task. Python isn't the only scripting language out there.
I mean I dont even know python lol
Java is my main language, but I try to do anything to screw around in lua as much as I can because it's such a simple language that it deserves to be screwed around with.
idk man just fiddle with shit lmao
hee hee hoo hoo
It took me 5 or 6 years of screwing around til I figured Balatro would be a good enough reason to finally give it a real decent attempt at trying to do something with it.
I personally started with a bastardized version of Lua. 🍞
Oh no I get that, Im sure if I put my mind to it I could figure it out
ComputerCraft is what got me to try it out.
I just mean that I probably shouldnt
i just mean hee hee hoo hoo
Maybe put it aside for a little while, and come back to it later and see if you want to try again.
Yeah, thats probably what its going to have to be. I honestly hate the way my brain operates. I have things that would make an actual practical impact on my life, since I dropped out of college due to covid and I've had so much help from others around me to try and figure things out. But as SOON as anything slightly distraction related turns its head, I completely lose interest in what I should be doing to gravitate there. I took a course in cybersecurity that ended a year ago, and I still ahvent even gotten CLOSE to getting into even any kind of entry level.
Wait shit, trauma dumping, sorry again. I'll just head out. You guys arent my personal therapists, yall didnt sign up for this lol
Thanks for the help with the stuff to this point at least 🙂
Can anyone check this out and help me figure out what the issue is,
Hey, anybody know how I could change config values on a card type? For example, I made some new extra values for Ankh and Hex, and I want this voucher to reduce it on redemption. Here's what I have right now, it doesn't crash but it doesn't work either lol
I'm not even sure of how possible it is but I thought it'd be worth a shake. I have a contingency plan in case it isn't
context.end_of_round and context.cardarea == G.jokers
how would one have a joker debuff itself?
SMODS.debuff_card(card, debuff, source)
thanks!
I think I'm gonna go back to my code tomorrow LOL
those changes would only work on new cards made after the changes
And #⚙・modding-general message isn't?
That was chaotically beautiful
I have discovered a life changing vsc extension holy hell
Wait the region thing is an extension? I thought it was built in.
it's built in

