#💻・modding-dev
1 messages · Page 222 of 1
im trying to make it also check for my suit
that is NOT firefly.
That is bumblebee
then i guess you'll have to hook it
Gambling!
Funny thing is I don’t know how to even play that game
No
oh, mahjong?
Yea
"1 in 1000 chance to gain x80 mult"
yeah same
I played hsr before
also i've yet to fix this error i've been getting
my mod isnt that simple
- thats lame
😭
real
it's after i press a blind
like
Than I switched to limbus
probabibility doubles every second spent in ante
debuffs, buffs
I was hoping it had an override, but it's just that toggle that also turns the textbox off 😬
EXACTLY
😭
i tried rn
You only live once!
no, its related to 4oak
Rolls a 1
nothing changed
im meowing
check out my mod :3
going insane
NO
I’m not becoming one
hmm, wait, how does the perishable sticker show how much turns you still have?
GO AWAYYY
AHHHH
I dunno why I sent this
hatsune miku gaming
ah it uses a badge still
doesnt pc stand for personal computer
its info_queue
but since its vanilla, it doesnt add the uhh badge thingy under the box
How do I make a joker do two things at once
add more than 1 context
does it not add a badge in vanilla?
How does that look like
...does it
🔥🔥🔥
i actually havent played balatro high stake for a while now
??????????????
honestly quite incredible
Balatro Modding Starter Pack, the copypasta :3
If you are new to modding, make sure that you understand the basics of LUA first before proceeding. There are a lot of good tutorials out there, so I won't link one here :)
For beginners, here are some links you should check out in order to familiarize yourself with what you are getting into:
- https://github.com/Steamodded/smods/wiki/Your-First-Mod
◦ This should give you some instructions, and it also serves as Steamodded's Documentation. Please read it :) - https://www.youtube.com/watch?v=Zp-4U5TlbxY&t=7s
◦ A Modding Tutorial video. It is a bit outdated, but generally does well at telling you what to do.
-# (Note: There are some parts in the video where they called cards "center". Don't do that, it's bad practice, they are cards.) - https://github.com/Steamodded/examples/blob/master/Mods/EditionExamples/EditionExamples.lua
◦ It's good practice to check out the example mods, as well as other mods too for reference.
Once again, remember to read the Documentation. There also other links which you might find useful, such as:
- https://github.com/ethangreen-dev/lovely-injector?tab=readme-ov-file#patches
◦ Patches. - https://discord.com/channels/1116389027176787968/1228149931257237664
◦ DebugPlus, a very useful mod for modding. - https://forums.kleientertainment.com/forums/topic/129557-tutorial-function-hooking-and-you/
◦ Hooks.
-# Sent: 8 times
I'm going to be honest, I suspect a small hook for Card:loc_vars should be an easier solve for you, Bepis
:3
i mean you could have linked the message but that works ig
That’s I’m becoming gross cat from battle cats
i have it copied in another server lmfao
Nothing has changed after the update of smods
...hm, interesting
not anymore
I tried it for my genre system before I swapped over to a subtitle. But you can just add a check to see if it is buffed and then check if it should pass it along, and then call the base loc_vars
interestingly enough, if i want to reference subtitles then i would have to check your mod instead of autumn's due to unforeseeable circumstances 💀

My implementation is just a less readable JoyousSpring monster type
all credit there goes to N
Edition that is a snapchat puppy filter
are you trying to get the "Trigger twice" part working
is it bugged
x1 mult goes so hard.....
honestly the most useful photograph
it can get like 36 mult with 3 hanging chads
are you talking to me or someone else
context.retrigger_joker is funky asf
Yeeeee! This is work!
if the xmult still works then probably jokerdisplay stuff
that is not the point 😭
i thought thats what the video is about 😭
please read the values carefully
okay so i made it this
local is_stone = false
local is_wild = false
if card.suit == "cherrysmod_doodle" then
return true
end
card.extra_enhancements = nil
for k, _ in pairs(SMODS.get_enhancements(card)) do
if k == 'm_stone' or G.P_CENTERS[k].no_suit then is_stone = true end
if k == 'm_wild' or G.P_CENTERS[k].any_suit then is_wild = true end
end
return is_stone and not is_wild
end```
do you think this'll work?
no
why
you didn't use the original function
Bepis is this a good limbus mod idea
it will break other mods
oh, is it the fact that the /2 stuff runs for the already altered mult
oh TRUE
while it should still be x1
it should still be X1
hmmmm
i have a solutoion
lads now that i edited the sprites of the game how do i make them public? If it helps all i did was draw over an enhanced card
how about now?
hasnosuitlocal = function(card)
local is_stone = false
local is_wild = false
if card.suit == "cherrysmod_doodle" then
return true
end
card.extra_enhancements = nil
for k, _ in pairs(SMODS.get_enhancements(card)) do
if k == 'm_stone' or G.P_CENTERS[k].no_suit then is_stone = true end
if k == 'm_wild' or G.P_CENTERS[k].any_suit then is_wild = true end
end
return is_stone and not is_wild
end```
that's not how u hook
you are supposed to use hasnosuitlocal in the function
not set it
that aint gonna do shit
I DON'T KNOW ANYTHING !!!!
this is how you properly hook
ha haha ha ha hahaha ha ha haha ha
its in the link i sent to you 😭
feel bad corp. by Monkeyz
check status
oh i see
probably a reference to that song
sadly i only listen to like, game osts, and vocaloid music so i dont understand it 💔
high
im not highhhhhhghghg
im 152 cm high
could anyone help me or
wait but
thats not my real height tho
i can't even playtest anything or play balatro
its jen's lib stuff
175
i dont know that, im soryr :(
i returned it
oh, we are about the same height
i think this function doesn't return anything anyway
you should return it at the end
Feel like this should be pinned or easily accessible at least
it's disabled
its something i made recently ❤️
nvm ill return it
yeah but your jokers are full of jen's lib stuff
like the ^^^^
in case soem mod uses it for some reason
it doesnt exist in smods
so uh. like this ???
SMODS._has_no_suit = function(card)
local ret = hasnosuitlocal(card)
if card.suit == "cherrysmod_doodle" then
return true
else return ret
end
end```
yea
YAY
looks good
im the best coder ever
congrats cherry
Congrats
Now code me the library of babel
🏆
wait
@distant grove im sorry, i was actually mildly frustated about my code so i didnt notice what you said about "good limbus mod idea" or something
Oh yea
Nah it’s fine
So like my idea is that a custom deck that gives you the 12 og sinnners
so 12 jokers?
And you can get consumables that replace of one them with a separate id
yeah, thats plausible
That’s gonna give me stage 555555 headache if I try that
So yea imma try that later when k get better
Anyways gl on your mod
mhm, thanks
:3
:3
:>
❓
Lost in the floating decimal
how do i set a custom text color for my suit
Yay
Go make aventurine boss now fr
ok so
congrats!! c:
issue #1: this didnt do jack schmidt
take out this underscore
lol
cryptid player crying
the entire suit spawned already in my hand
why is it so slow 😭
using apply in some way i guess?
im guessing i have to do something with in_pool(self, args) and args.initial_deck
maybe you need to do apply(card, nil)
oh yeah, i think i understand it now
still nada
thanks N' :D
i asked this before but how do i blacklist a booster from appearing in a deck
(not a challenge deck, a normal one)
is it possible to make a consumable do something while held like this suggestion?
i have a joker that activates whenever a hand has no suits and it's not activating
what do i dooooo ughh
What do you mean by no suits? Like, stone cards?
Yeah
It works normally with stone cards
But it doesn't work with this custom suit I'm trying to get working
can a sticker give Xmult...? 
is there a full list of all text effects, like {C:attention}?
fair enough
your pfp cute as hell btw loll
ty
Thank you
Check I THINK Ortalab. There's a joker Tarot that gives +4 Mult when held in consumable area but does nothing when "Use"d
hopefully someone helps you .., i'm struggling with something too and it impedes the next release of my mod
like i know how to blacklist things from a challenge deck
but not a normal one
Given that a sticker can give money, which is the same effect as gold cards held in hand, I'd assume yes you could make that happen
is card.suit a thing that actually works?
ahh yes, rental seems relevant
Oh wait you're right. I was thinking seals, not stickers.
Stickers can do anything a normal calculate function can
no
there's card.base.suit which gives you the base suit (e.g. "Hearts")
Just give it a calculate function like you would a joker
OMG THANK YOUUU

what i tried was changing the weight of the booster pack in the apply function of the deck but that did nothing
if this was a challenge deck adding a blacklist would be all too easy but normal decks seem to be basically entirely different
however usually you want to use the Card:is_suit method to check for the suits a card has due to multiple/no-suit logic
alr thank u
evil?
its a deck that makes my weird rank cards spawn naturally so the weird rank packs would have no reason to spawn but like How
what i did to blacklist a vanilla blind in one of my other decks is override it and make it only spawn on ante 1e999 but you cant override your own mod lol
you can add keys to G.GAME.banned_keys to ban them
or use in_pool functions to restrict spawning conditionally
so like would i do that in the apply function
i didnt even know banned_keys was a thing damn that would've been convenient
the former you would do in the apply function
in fact that's exactly what challenge bans do
damn thank you so much ive been asking for like the past day about this lmaoo
fuck i think i killed jimbo
lol too bad I was out doing other stuff
you've come in clutch alot lol
alr so i did this and now the game crashes on run start because ability is a nil value
we are very very close
but this is my problem
how do i make it so it's only flush of hearts
card.base.suit
but you probably shouldn't be doing that
yeah so you're checking if the joker is hearts (it isn't)
you need to perform checks on the scoring hand instead
as you can tell, never modded before in my life
Also your inner if statement doesn't do anything
you can get rid of the if context.cardarea etc. line and a corresponding end, this check is useless
does anyone know why this is happening?
in fact it never triggers
SMODS.has_no_suit = function(card)
local ret = hasnosuitlocal(card)
if Card:is_suit("cherrysmod_doodle") then
print "card is suitless! great job!"
return true
else
return ret
end
end```
this crashes because "ability" is nil. why is it checking the ability of a playing card?
so it played normally after playing a flush of hearts
if that is the timing you want, you should just change the first context.before to context.joker_main
card is not the same as Card
is there a way i could iterate thru all the files in a folder and do load_file for each one
yes. check how smods loads mods for example
NFS.getDirectoryItems I believe
ah sweet i'll check it out
im aware but i was told to use Card
to be more specific, card is the argument being passed and should be the object you're performing any checks on. Card however is a class, i.e. a blueprint to create cards
what the fuck did i do 😭
because i tried the first one and it crashed my game
:3
when I say Card:is_suit, that is in reference to is_suit being a method on the Card class
this took way longer than i expected
you want card:is_suit
hey has anyone messed with sounds? i need some help
see i tried that
and the game just gave up
crashed
no log
no nothing
just closed on me
oh right
IT WORKS
you should be checking the base suit
else what happens is this
the game tries to determine if a card has a certain suit
for that, it must first check if the card is suitless
you're telling it to then check if the card has your suit
but it has to know if the card is suitless first
I should have specified that
the most balanced jen mod btw
so the function calls itself forever and infloops?
Is there a way to give a card a ridiculously high weight so that it shows up in the shop all the time?
does card.no_rank == true account for stone card and modded enhancements with no ranks the way i think it does
okay so it is NFS.getDirectoryItems(), now thing is i'm kinda overwhelmed so i can't tell how to get the directory object that the func requires. is it just the path?
i assume it is but i don't wanna break anything
use SMODS.has_no_rank
yea
yes
great thanks
i think i might be doing a dumb
yeah. use card.base.suit == '<your suit>'
does SMODS.has_no_suit account for poker hands?
because i dont want to be able to make flushes
for instance
or is that processed somewhere else
SMODS.current_mod.path..'items' and call the result of assert(load_file)
it will count as no suit everywhere
ahh okay thanks
the same way as stone cards act
(minus the part where it has no rank and always scores)
yeah so uhh, im facing a small visual issue
basically, what im doing is that i will be adding each affected stat into a var, which will be shown through #1#. however, if too many stats are included then it will become a really long string, is there a way i can divide the string and put it down by some lines?
im pretty sure \n doesnt work 💔
you have to handle it outside of localization strings I'm pretty sure
damn
or just give it multiple lines to work with
by that I mean sending a main_end through loc_vars
ok, so, for this thing to be finally finished i need to know some more things:
-
1: i want cards of my custom suit to give double chips by default.
-
2: i want cards of my custom suit to not appear in the deck at run start.
-
3: is it possible to add cosmetic badges to the cards (like polychrome, red seal, etc)?
if someone could help me out itd be great
hey um
i need some help, i cant get sound to work for the life of me, it's searching the wrong folder despite me having everything set up :/
show me
Probably missing your mod prefix
yeah
whats uhh main_end? first time ive heard of it
the game appends ur mod prefix to all sfx by default
for 2. you want to use an in_pool function:
in_pool = function(self, args)
if args.initial_deck then return false end
return true
end,
this will cause your cards to never be part of the starting deck but appear anywhere else like normal. customize further as needed
ty!
im not it says cringe on the tin :(
where exactly would i paste this though
for 1. you might get away with hooking SMODS.inject_p_card but it gets pretty jank I'm sure. though it's planned to make this easier in an upcoming update to the suit/rank API
mmm
in the constructor of your suit
i can definitely see this covering the screen horizontal-wise at one point
Show your code then
im actually thinking about this idea, since the string should consist of many "|" dividing each sections, i can probably count how many "|" is in there, then divide it and split it to 2 different lines
hm, lets see
@tall apex did you set up the SMODS.Sound correctly?
... do i need to do that too-
for am i the stoopd

just like as a little treat


wait where would i even put the smod argument
just anywhere
oh, word
its like setting up a joker or a suit
into the main it goes
just do SMOD.Sound{
stuff stuff stuff
}
i fucking despise this issue
my loops aren't running
I don't know why my loops aren't running
but they're not running
is there something preventing me from running 2 loops in one context or something
im on that rn bozo
if you're returning inside the loop, yes
i've read over it like twice now
i am not returning
at any point in the code
except the last one which isn't being run anyway
there we go
ok, what's confusing?
ok so issue number 1 still stands and its probably the most important one. i dont want the cards to DOUBLE chips - i want them to grant double the usual chips
can you show me the code
give me skme hung men
the current API is not set up to handle something like this well
can a joker change a variable inside its sticker?
brainstorming for a new mod
this is the joker's entire calculate function
I need its effect to trigger only on the most frequent appearing rank in the played hand
if two ranks show up in equal amounts, the larger one is prioritised
it is saving the counts and rank values as expected, then just... Stops running the code at the loop for index = 1, #cardranks do and the loop below it also doesn't run.
the card:juice_up() in event is my placeholder for its actual effect
and it's just not getting there
a hacky solution is to hook SMODS.inject_p_card but I'll try to improve things like this within smods
new challenge
where can i find the code for inject_p_card?
Whats its purpose?
To pass retriggers
src/game_object.lua:1738
0.00027 chips are crazy
Oh wow saw the vid that looks horrendous
missing required parameter for sound declaration: key
you'd be looking to change the nominal
oh yeah cause all cards have a base xmult value of 1
I'm not sure if it'd mess with sorting order tbh
yea i saw
all objects need to have a key, it's what you later refer to for playing it
does the slicing actually look decent
but that's in the docs too :p
does anyone know what I can do to fix the shaders being weird on my deck? I want the shader to apply like it does to the cards if they're held in my hand, but I don't the shader to rotate when my mouse hovers over the deck itself
oh, where do i declare the key for the sound then?
the enhancement itself looks really nice
but like damn 😭
in the constructor for the sound ...
bump please help this shits killing me and it's the LAST thing I have to do before this mod can be released
SMODS.Sound {
key = '...',
-- ...
}
you say that like you expected me to know that despite asking for help-

it's no different from how all steamodded APIs work
it's like registering an atlas
deadass learned this language yesterday.
but you register a sound atlas instead of a sprite atlas

you know how sprite atlas works right
what's a sound atlas
fair but not like there's examples
making smods.sound easier to digest
ah
this stuff isn't readable on mobile whatsoever
please Discord can we have mobile file previews and proper syntax highlighting
...weird, doesnt seem like anythings wrong
that's what gets me about it
i've had this before and I never found a solution
can you read it now :3
😭
:( flute girl
thats honestly worse
dang
it still doesn't have syntax highlighting and it's even low res
im still getting the key error despite putting one in :c
now?
I do see the issue though
@frosty dock would this work?
SMODS.inject_p_card = function(suit, rank)
injectlocal(suit, rank)
if suit.key == "cherrysmod_doodle" then
rank.nominal = rank.nominal * 2
end
end```
he didnt put "lua" infront of the triple ` so it doesnt have the highlighting
the card says nul instead of a number
im just gonna scrap the sound for now ig
she and I uploaded it as a file because it's too big to send in a message
the second loop is a numerical for loop
pretty sure you dont need the message and color part
it was for index,value in ipairs(cardranks) do before and that also didn't run
since you are using "mult", which should auto handle it for you
that's just as bad
what do you mean that's just as bad
cardranks isn't a numerical table
what did I do wrong???
You shouldn't need message nor colour
Try removing them
the length of it should work though shouldn't it
no
oh THAT'S the difference between pairs and ipairs??
yeah
But the reason it doesn't work I believe is because you have a number not a string
if that solves it i'm gonna be so mad
concentrating a number with string should still work just fine
since its lua
I don't think that's how Lua works
the string number concat thing does work
I don't think it works in Python either
yeah but it doesn't do anything about the +nil
are you loading a save
what does inject_p_card even do? i put some print messages in there but it's not popping up anywhere
no the image is me veiwing it from the collection
oh my god that actually fucking solved it
Oh duh
i can't be mad that it was that simple of a fix
You didn't define loc_vars
but
it was THAT simple the whole time???
what
changing ipairs to pairs made it just work
I thought they were the same thing
i think it just works now
sequential too AFAIK
oh my god it worked
but anyhow you shouldn't need to manually write the message
.
any ideas?
AFAIK inject runs before the game loads, but after SMODS collects all mod info
im definitely being stupid
decide to not exist
ui died ?
damn i was second
blehh
thought i hadnt even got to the hard part yet
SINCE WHEN DID CRYPTID HAD AN ART UPDATE
oh yeah it's peak
a blind chip can have more than 21 animation frames right
huh?!
cause the idle animations i have for my boss blind chips are too short
fuck that shit i am making new blueprint
okay so this works
HOWEVER
well it didn't add the mult for some reason
since it targets RANKS and not a particular rank/suit combo
it doubles the chips
of EVERY. SINGLE. RANK.
AND SUIT.
newest version of steamodded?
no because it crashes my game
nvm im dumb its ending_shop
im not offended idk what that means lol
ok juan
@manic rune is this what staying up at 3am
help i am the styupid
there's a version of steamodded that has problems with mult
check if mult cards work
you mean the literal release that's on GitHub right now
does anyone know how i could make this affect specific rank-suit combos instead of just the ranks themselves?
it does be like that sometimes, staying up late actually allows you to reflect on yourself better 😭
oh fr? I don't have issues with it as far as I know.
my original idea was this
ok fixed
i guess I'll take what i can get
i think 3 of my brain cells jumped out of my right ear and is plotting a murder scheme against me
i hate working with strings
:(
anyway, this doesn't work anymore so what's the new way of conditionally adding an s?
'{C:inactive,S:0.75}round#s2#{}'
what number should this be?
s:0.75
thas size tho
gotta be lowercase s
oh true
stub ass mod
and also
#s2# wont work
pretty sure
it can only be a number correlating to the order of the vars in loc_vars
worked when I initially did it i think
im going to cry why cant i even do the most basic shit
how is your consumable type looking
importing oldcalc to newcalc is gonna be funny
also do you have consumables of that type first
weird it should show up in game
ITS SEPARATED :3
are you loading those files
its always when testing
@frosty dock i implore you, gift me your wisdom
for some reason the file for the void consumable won't be loaded no matter what method i try
quick question
hi
how do you get a custom badge on playing cards
oh, its stickers
huh, are localization files automatically loaded?
yeah
okay so the reason my shit wasnt loading is i forgot these brackets
im fucking done
it works....
i have no clue how the fuck i got it working, but it works, it evenly divides the string into 2 lines
💔
guys if there is a joker that is made out of cardboard, what should it do?
technically all jokers are made out of cardboard
can show?
show wat
cut my hand real bad :(
code to make it work
no as a function in the game
uhhh
im not gonna make a card that kills you
alright so, basically
i already did that before
i have this really long string
like
"something | hello | good morning"
i use the "|" in order to divide them into different sections
then uh, this code
:3
oh
what the fuck are you doing
that's a lot more effort than I was hopin ngl
go to sleep
N
YOURE SMART I NEED YOUR HELP
ok just because u complimented me
thanks N', thank you so much 😭
how about using separate tooltips 🤔
i also need help from people smarter than me
my brain hurts
i mean, thats definitely a solution too but i spent some time to make it look like this
did you forget a prefix
bit low contrast but that works too
but please go to sleep
what the fuck.
its just a fucking sticker, i dont know why it took me THIS LONG
i don't think so but i can't tell anymore at this point
tired
thanks for yall's concern though, im gonna go sleep now
good night everyone
the thought
this late?
yep
isnt it dangerous to shower late
show the ConsumableType
go bed
i don't care at this point
what is it
i spent too long on this half the value double the trigger
yeah i can relate
and i want it to truly trigger twice
not just random retrigger
and it still DOESN'T WORK WITH CARDS IN HAND
i mean it does but it doesn't save shit
sorry i had to do sm rq
so when u quit the game and come back it is just normal
huh
i have this function. im making a suit that counts as having no suit but gives twice as many chips
SMODS.inject_p_card = function(suit, rank)
injectlocal(suit, rank)
if suit == "cherrysmod_doodle" then
rank.nominal = rank.nominal * 2
end
end```
however this gives double chips to ALL ranks of ALL suits
what should I do to fix it?
obviously i need to change the target but idk how to do that exactly
right... the opposite of what I said. ObjectType keys are not prefixed
should probably put that somewhere in the docs
you should change the nominal of the playing card, not of the rank
i still crash on launch oops
wait that's not a thing
okay it works now huge thanks!
don't mind that, you'd need to hook Card:set_base
so. a hook in a hook
no, instead of that
i just gave you the wrong function to hook because i didn't remember things right
wait do custom consumable locs go in the Other table in the loc file
thats the only one that makes sense
local set_base = Card.set_base
function Card:set_base(card, initial)
set_base(self, card, initial)
if self.base.suit == 'cherrysmod_doodle' then
self.base.face_nominal = self.base.face_nominal - self.base.nominal -- ensures sorting stays consistent
self.base.nominal = self.base.nominal * 2
end
end
this should work i think
also what's the shader spectral cardsw use to look all nice and shiny
it works!
by the way, just one more thing: is it possible to add tooltips/desc text to doodle cards saying that they have no suit?
yeah, loc_vars is supported on suits and ranks for tooltips
yeah
😭
something like
loc_vars = function(self, info_queue, card)
info_queue[#info_queue+1] = { set = 'Other', key = 'cherrysmod_doodle_info' }
end,
and have a description under that key in your loc strings
looks halved to me
can i also add a badge to it?
if you want a custom badge, you can wait for it to be supported or patch it in in the meantime
still not getting on how to do it a suit exclusive
ik it's SMODS.has_no_suit but idk what to do after that
okay now to actually program this
how do i get default card ability for current card 😭
like all the key of table
does P_CENTERS have all the abilities a default card have
no
C:/users/steamuser/AppData/Roaming/Balatro/Mo...:485: attempt to perform arithmetic on a nil value
thank you so much love2d, i know exactly which file this is
hell yea, finally I have added gambling to the poker game!
While it may seem that it has not given you much helpful information, 😡 you fail to realize that it has narrowed down the error from the 485th line in every one of your files, 😰 to** ONLY** one of the 485th lines of a file in the AppData/Roaming/Balatro/Mo... directory, reducing the search massively. 😌 👍
something isn't giving its files proper chunk names
well, i'm trying to make bunco talisman-compatible
so that kinda narrows it down
since steamodded does do such helpful things, it is something that isn't loading its files using steamodded
so how would i go about saving the information of cards before they get destroyed?
any ideas why im getting this crash, it only crashes when i hover over the new art pack
typo in your texture keys
smh theres nothing harder than starting coding mods
no guides, no info about important things
only the steammodded which tells u 'go and check other's code'
not really
y'all i need some major assistance here, something in either my localization or texture pack is causing mult cards not to give their +4 Mult at all
check the sidebar, there's lots of docs
they just get skipped over like a normal card
That's literally ¾ of programming in general
we also have example mods https://github.com/Steamodded/examples
u just
proved
my point
not sure how you're reading the third bullet point under "useful resources" as "that's the only thing we say there is"
the example mods are specifically written to provide displays of how behavior is achieved, they're not just other people's mods
kinda fair
they're examples for you to follow
but still nothing in front of actual guides
also are you specifically ignoring everything else I said?
why tf are y'all beefing over example mods being examples 😭
u can find abt any programming language nowadays
and this is still nothing in front of actual guidse
smods docs are not a lua tutorial
all of steamodded's APIs are documented, it literally isn't "read other mods' code and figure it out yourself"
especially when there isn't some kind of actual getting started with coding
there's guides
how do i tooltip hanged man
where u get most important thing's to know
specifically some of these go into depth
man, this pasta recipe has like no information on how to forge a steel pan
LMo
lmao
Hi guys, here is my config for a custom edition. For some reason, the xMult is not being applied when it is scored
nope it isnt that far
fr
if u made something that a lot of people are going to use
then tell them how to use it
not asking them to make lua guide or smth
just basics that u need to know
at least
and then ye we can just check api
or docs
i feel like its another typo im overlooking
AltTexture({ -- HD Enhancements
key = 'planet',
set = 'Planet',
path = 'Tarots.png',
loc_txt = {
name = 'Planets'
}
})
TexturePack{
key = 'hd',
textures = {
'FFV_jokers',
'FFV_spectral',
'FFV_tarot',
'FFV_Enhanced',
'FFV_planet'
},
What basics do you feel are missing?
If you are trying to learn, go look at others who have done the same thing. Check out other mods and see how they worked
I'm not sure what you want of me at this point
everything
y'all oh my god 💔
there was 1 single vid abt making joker, got nothing from it
you're expecting a full lua course out of a modding platform documentation. if you want to learn lua, this isn't the place
repeating for the guy is kinda pointless
tf is config tf are these lists why do u need them
when do u use them why do we have to make keys
to learn coding, people normally just copy until they understand
banana = "key74" ahh
Is this how you approach learning everything in life?
nope
or thats what i did atleast
if there's something you need me to explain in more detail, let me know what that is and we can get things cleared up in vc or whatever
i know lua, especially luau with python atm
because i was watching good guide's that were actually helpful and explaining everythinhg
was never reading docs and never understand people who are doing that
Ahh, I see the problem.
but you can't expect documentation to always be laid out the way you want it. most of what you need is there, and looking at examples is more helpful than you think
but like yea... im probably overlooking something
and tahts the problem
?????
they shouldnt expect people to understand anything from documentation
...?
when they didnt explain basics yet
i learned from the documents...
and also looking at other peoples code...
welp congratulations
Here you go dude. You have played the game before I am guessing?
Look at this. https://github.com/Steamodded/examples/blob/master/Mods/ExampleJokersMod/ModdedVanilla.lua
This shows you how you would go about making the vanilla jokers in the game. Super helpful and totally shows how it works.
like i didnt see that and like i didnt check it
There's a difference between tutorials and documentation
https://github.com/Steamodded/smods/wiki/API-Documentation please tell me what about this is not basic enough to be covered in an introduction to steamodded's API while still being relevant to it specifically
Sorry man, that was good enough for basically all of us to make mods.
i especially wonder why do u even need atlas
like bro, it'd be ok if it was smth like
to declare the art...
b = atlas
b(do something)
what.
an atlas is a spritesheet
u should see what i mean
ye but how in the world
does it link to the joker or whatever
hey, code heres a spritesheet, run a function with a picture
you define the atlas itself and it has the art for all of the jokers. in the joker itself you define the atlas it points to, and the pos of the texture on the atlas to take from for that joker/card
Because the world would fall down if nobody was there? He's literally one of the titans??? Son of Asia and Iapetus?????
you create an atlas, which loads the image file and links it to an identifier
People acting this way is why people give up and stop making cool tools.
when you then create a joker, you use that identifier to link the atlas to the joker
talk about being basic
yes? you define atlas = 'atlaskey', with atlaskey being the key you set when you defined the atlas earlier in the file
but lets take a look at the example mod
SMODS.Atlas {
-- Key for code to find it with
key = "ModdedVanilla",
-- The name of the file, for the code to pull the atlas from
path = "ModdedVanilla.png",
-- Width of each sprite in 1x size
px = 71,
-- Height of each sprite in 1x size
py = 95
}
its crashing whenever i open the game
and then 3+ jokers
are using
atlas = "ModdedVanilla"
is it like old pixel games sprites where all possible variation's of character's movement
are in 1 picture
💔
yea... there can be many pieces of art in one sheet
yes, because saving five hundred separate tiles is the most tedious thing ever
the game does it this way, every joker is in the same sheet
Sprite sheets are still a thing in plenty of games haha
another problem
you can but don't need to follow this convention
how do u access it now
you can have a single file for each image
look at what balatro does...
y'all if someone could like DM me about this or help me in some way i'd appreciate it a lot
holy cow
update smods
okay then
can a voucher have a soul pos?
like theres a lot of pixels in that sheet, how do u access the ones that u need for exactly this joker
or sum
along with creating the atlas, you give it an image size
i'm on the latest release from 3 days ago? is that not the one i should be on
how do i tooltip hanged man
then when creating the joker, alongside the atlas you give it a position on that atlas relative to the sprite size you set
do you see something I am missing in trying to give xmult from an edition?
I tried a number of things, lol
It's also explained in the lines that aren't marked red here
no idea how that even supposted to work like
yeah, config xmult in editions doesn't work. use a calculate function
{x = 0, y = 0} is the top leftmost 71x95 pixels
Oh yeah, so take a look at ExtraCredit. They are a great example of how to do this. You will see they have an assets file with a big grid of jokers. Then for each joker they have a pos x,y that says which joker image it should use.
guys please what do i put
{x=1, y=0} is the sprite to right of that, so shifted by px=71 pixels to the right
i do think the planet part is causing the crash btw
I NEED to tooltip hanged man
Tooltip in what sense? Like another card also gives info on Hanged Man?
yes
dunno, I don't really do malverk stuff

