#💻・modding-dev

1 messages · Page 222 of 1

latent portal
#

im trying to make it also check for my suit

manic rune
#

that is NOT firefly.

distant grove
#

That is bumblebee

tall wharf
#

then i guess you'll have to hook it

latent portal
#

THATS THE PROBLEM HERE

#

IDK HOW

manic rune
#

:3

#

im gonna add qingque to my mod soon

distant grove
#

Funny thing is I don’t know how to even play that game

manic rune
#

its turn-based

#

very simple

distant grove
#

No

manic rune
#

oh, mahjong?

distant grove
#

Yea

gleaming zealot
manic rune
#

yeah same

distant grove
#

I played hsr before

green plank
manic rune
#
  • thats lame
#

😭

gleaming zealot
#

real

green plank
#

it's after i press a blind

manic rune
#

like

distant grove
#

Than I switched to limbus

manic rune
#

my mod has relics

#

stats

gleaming zealot
manic rune
#

debuffs, buffs

hushed field
#

I was hoping it had an override, but it's just that toggle that also turns the textbox off 😬

simple mural
#

i tried rn

distant grove
#

You only live once!

manic rune
distant grove
#

Rolls a 1

simple mural
#

nothing changed

gleaming zealot
manic rune
#

check out my mod :3

tall wharf
manic rune
distant grove
#

I’m not becoming one

hushed field
gleaming zealot
#

hatsune miku gaming

manic rune
#

:3

#

my mental health is experiencing the worst decline ever

distant grove
#

What would happen

#

If I ate gros michel

hushed field
#

ah it uses a badge still

gleaming zealot
manic rune
#

but since its vanilla, it doesnt add the uhh badge thingy under the box

distant grove
#

How do I make a joker do two things at once

manic rune
#

add more than 1 context

hushed field
#

does it not add a badge in vanilla?

distant grove
manic rune
#

...does it

gleaming zealot
#

how do i make

#

anything

exotic island
#

🔥🔥🔥

manic rune
#

i actually havent played balatro high stake for a while now

tall wharf
manic rune
#

oh wait, it does

#

GOD DAMFAF NIT

#

im gonna crash out.

gleaming zealot
#

honestly quite incredible

manic rune
# gleaming zealot anything

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:

  1. 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 :)
  2. 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.)
  3. 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:

  1. https://github.com/ethangreen-dev/lovely-injector?tab=readme-ov-file#patches
    ◦ Patches.
  2. https://discord.com/channels/1116389027176787968/1228149931257237664
    ◦ DebugPlus, a very useful mod for modding.
  3. https://forums.kleientertainment.com/forums/topic/129557-tutorial-function-hooking-and-you/
    ◦ Hooks.

-# Sent: 8 times

hushed field
#

I'm going to be honest, I suspect a small hook for Card:loc_vars should be an easier solve for you, Bepis

manic rune
#

:3

gleaming zealot
distant grove
#

That’s I’m becoming gross cat from battle cats

manic rune
#

i have it copied in another server lmfao

simple mural
#

Nothing has changed after the update of smods

gleaming zealot
hushed field
#

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

gleaming zealot
#

im dumb

manic rune
#

:3

#

thanz

manic rune
tall wharf
hushed field
#

all credit there goes to N

tall wharf
gleaming zealot
manic rune
#

are you trying to get the "Trigger twice" part working

tall wharf
#

is it bugged

manic rune
#

x1 mult goes so hard.....

tall wharf
#

i saw ur stuff yesterday

#

n shit

gleaming zealot
#

it can get like 36 mult with 3 hanging chads

manic rune
#

context.retrigger_joker is funky asf

simple mural
#

Yeeeee! This is work!

tall wharf
gleaming zealot
#

ha

#

sicker than your average

manic rune
# tall wharf

if the xmult still works then probably jokerdisplay stuff

tall wharf
#

that is not the point 😭

manic rune
#

i thought thats what the video is about 😭

tall wharf
#

please read the values carefully

latent portal
#

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?

tall wharf
#

no

latent portal
#

why

tall wharf
#

you didn't use the original function

distant grove
#

Bepis is this a good limbus mod idea

tall wharf
#

it will break other mods

manic rune
#

oh, is it the fact that the /2 stuff runs for the already altered mult

latent portal
#

oh TRUE

manic rune
#

while it should still be x1

tall wharf
#

it should still be X1

manic rune
#

hmmmm

gleaming zealot
#

i have a solutoion

tall wharf
gleaming zealot
#

ask gabriel

exotic island
#

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

simple mural
latent portal
# tall wharf you didn't use the original function

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```
tall wharf
#

that's not how u hook

#

you are supposed to use hasnosuitlocal in the function

#

not set it

#

that aint gonna do shit

latent portal
#

I DON'T KNOW ANYTHING !!!!

gleaming zealot
#

@bepis

#

dont stop

#

get it get it

manic rune
tall wharf
manic rune
#

this is how you properly hook

gleaming zealot
#

ha haha ha ha hahaha ha ha haha ha

manic rune
#

its in the link i sent to you 😭

manic rune
#

get what 😭

gleaming zealot
manic rune
#

im so confused right now

#

am i high

gleaming zealot
manic rune
#

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 💔

gleaming zealot
manic rune
#

im not highhhhhhghghg

gleaming zealot
#

im 152 cm high

manic rune
#

im taller than you

#

:3

green plank
latent portal
gleaming zealot
green plank
#

i can't even playtest anything or play balatro

manic rune
#

its jen's lib stuff

gleaming zealot
#

175

latent portal
#

you set ret

#

but didnt use it?

#

??

manic rune
#

i dont know that, im soryr :(

tall wharf
#

i returned it

manic rune
tall wharf
#

nvm

#

i dint'

gleaming zealot
#

bye discaoq09u

tall wharf
#

i think this function doesn't return anything anyway

manic rune
#

:3

#

how can people be sane while coding

tall wharf
#

you should return it at the end

austere tree
green plank
manic rune
tall wharf
#

nvm ill return it

manic rune
#

like the ^^^^

tall wharf
#

in case soem mod uses it for some reason

manic rune
#

it doesnt exist in smods

latent portal
#

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```
tall wharf
latent portal
#

YAY

tall wharf
#

looks good

latent portal
#

im the best coder ever

manic rune
#

congrats cherry

distant grove
#

Congrats

manic rune
#

now go and recreate cryptid

#

:3

distant grove
#

Now code me the library of babel

latent portal
#

🏆

manic rune
#

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

distant grove
#

Nah it’s fine

#

So like my idea is that a custom deck that gives you the 12 og sinnners

manic rune
#

so 12 jokers?

distant grove
#

And you can get consumables that replace of one them with a separate id

distant grove
#

We gambling for ids with this one🔥

#

Thing is

manic rune
#

yeah, thats plausible

distant grove
#

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

manic rune
#

mhm, thanks

tall wharf
#

:3

manic rune
#

:3

tall wharf
#

modders are always insane

#

i mean coders in general

manic rune
#

i have death threats all over my code now

#

and they are all targeted towards me

#

:3

distant grove
#

:>

tall wharf
runic pecan
#

Lost in the floating decimal

tall wharf
#

how do i

#

make edition retrigger card

#

:<

manic rune
#

wait

#

WAIT

#

I THINK I FINALLY GOT THIS WORKING...

latent portal
#

how do i set a custom text color for my suit

distant grove
#

Yay

manic rune
distant grove
#

It works

#

Hooray

manic rune
#

I AM SO FUCKING DONE

#

😭

#

HOLY SHIT

distant grove
#

Go make aventurine boss now fr

latent portal
#

ok so

tall apex
latent portal
#

i have

#

2 issues

latent portal
red flower
#

take out this underscore

latent portal
#

oh fuck i didnt notice that

#

thanks!

manic rune
#

...

#

how do i remove stickers

#

:(

red flower
#

lol

latent portal
#

okay but still

#

issue number 2

tall wharf
latent portal
#

the entire suit spawned already in my hand

tall wharf
#

why is it so slow 😭

red flower
latent portal
#

im guessing i have to do something with in_pool(self, args) and args.initial_deck

tall wharf
#

naturally spawned Noire

red flower
manic rune
#

oh yeah, i think i understand it now

manic rune
#

thanks N' :D

lethal mural
#

i asked this before but how do i blacklist a booster from appearing in a deck

#

(not a challenge deck, a normal one)

plain apex
#

is it possible to make a consumable do something while held like this suggestion?

latent portal
#

i have a joker that activates whenever a hand has no suits and it's not activating

#

what do i dooooo ughh

manic rune
#

YES

#

EVERYTHING IS COMING TOGETHER

lethal mural
latent portal
#

Yeah

#

It works normally with stone cards

#

But it doesn't work with this custom suit I'm trying to get working

weak gate
#

can a sticker give Xmult...? ULTRAthink

lethal mural
#

oh i've uh

#

never worked with custom suits

rugged star
#

is there a full list of all text effects, like {C:attention}?

latent portal
#

fair enough

lethal mural
#

your pfp cute as hell btw loll

latent portal
#

ty

manic rune
rugged star
#

Thank you

tall tangle
lethal mural
#

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

tall tangle
latent portal
#

is card.suit a thing that actually works?

weak gate
#

ahh yes, rental seems relevant

tall tangle
wintry solar
#

Stickers can do anything a normal calculate function can

frosty dock
#

there's card.base.suit which gives you the base suit (e.g. "Hearts")

wintry solar
latent portal
#

OMG THANK YOUUU

green plank
lethal mural
# lethal mural but not a normal one

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

frosty dock
#

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

tall wharf
lethal mural
#

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

frosty dock
#

you can add keys to G.GAME.banned_keys to ban them

#

or use in_pool functions to restrict spawning conditionally

kindred heron
lethal mural
#

i didnt even know banned_keys was a thing damn that would've been convenient

frosty dock
#

the former you would do in the apply function

#

in fact that's exactly what challenge bans do

lethal mural
#

damn thank you so much ive been asking for like the past day about this lmaoo

tall wharf
#

fuck i think i killed jimbo

frosty dock
#

lol too bad I was out doing other stuff

lethal mural
#

you've come in clutch alot lol

latent portal
green plank
#

we are very very close

#

but this is my problem

#

how do i make it so it's only flush of hearts

frosty dock
#

but you probably shouldn't be doing that

latent portal
#

yeah self and card are 2 different things

#

i learned that the hard way

green plank
frosty dock
#

yeah so you're checking if the joker is hearts (it isn't)

#

you need to perform checks on the scoring hand instead

green plank
#

as you can tell, never modded before in my life

frosty dock
#

Also your inner if statement doesn't do anything

green plank
frosty dock
#

you can get rid of the if context.cardarea etc. line and a corresponding end, this check is useless

kindred heron
frosty dock
#

in fact it never triggers

latent portal
#
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?
green plank
#

so it played normally after playing a flush of hearts

frosty dock
manic rune
#

:33333333

#

IT FINALLY WORKS

spring lantern
#

is there a way i could iterate thru all the files in a folder and do load_file for each one

manic rune
#

this cant be healthy

frosty dock
#

NFS.getDirectoryItems I believe

spring lantern
#

ah sweet i'll check it out

latent portal
tall wharf
#

0.05:3

frosty dock
#

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

latent portal
#

so card:is_suit?

#

or card.is_suit?

tall wharf
manic rune
#

it checks for EVERY debuff

#

and adds it

latent portal
#

because i tried the first one and it crashed my game

manic rune
#

:3

frosty dock
#

when I say Card:is_suit, that is in reference to is_suit being a method on the Card class

manic rune
#

this took way longer than i expected

frosty dock
#

you want card:is_suit

tall apex
#

hey has anyone messed with sounds? i need some help

latent portal
#

and the game just gave up

#

crashed

#

no log

#

no nothing

#

just closed on me

frosty dock
#

oh right

green plank
#

IT WORKS

frosty dock
#

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

manic rune
latent portal
#

so the function calls itself forever and infloops?

raw geyser
#

Is there a way to give a card a ridiculously high weight so that it shows up in the shop all the time?

stiff locust
#

does card.no_rank == true account for stone card and modded enhancements with no ranks the way i think it does

spring lantern
#

i assume it is but i don't wanna break anything

stiff locust
#

oh alright

#

SMODS.has_no_rank(card) will return true/false yes?

latent portal
#

yea

frosty dock
#

yes

stiff locust
#

great thanks

spring lantern
#

i think i might be doing a dumb

frosty dock
latent portal
#

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

frosty dock
frosty dock
spring lantern
#

ahh okay thanks

frosty dock
#

the same way as stone cards act

#

(minus the part where it has no rank and always scores)

manic rune
#

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 💔

frosty dock
#

you have to handle it outside of localization strings I'm pretty sure

manic rune
#

damn

frosty dock
#

or just give it multiple lines to work with

frosty dock
latent portal
#

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

tall apex
#

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 :/

wintry solar
latent portal
#

yeah

manic rune
latent portal
#

the game appends ur mod prefix to all sfx by default

frosty dock
latent portal
#

ty!

tall apex
latent portal
frosty dock
#

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

manic rune
frosty dock
latent portal
#

excellent!

#

thank you.

manic rune
#

i can definitely see this covering the screen horizontal-wise at one point

wintry solar
tall apex
latent portal
tall apex
manic rune
# manic rune mmm

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

tall apex
manic rune
#

hm, lets see

latent portal
#

@tall apex did you set up the SMODS.Sound correctly?

tall apex
#

for am i the stoopd

latent portal
#

oopid

#

sgugcat

tall apex
tall apex
latent portal
tall apex
#

wait where would i even put the smod argument

latent portal
#

just anywhere

tall apex
#

oh, word

latent portal
#

its like setting up a joker or a suit

tall apex
#

into the main it goes

latent portal
#

just do SMOD.Sound{
stuff stuff stuff
}

stiff locust
#

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

tall apex
#

buh

#

guh ???

frosty dock
stiff locust
#

is there something preventing me from running 2 loops in one context or something

tall apex
frosty dock
tall apex
#

i've read over it like twice now

stiff locust
#

i am not returning

#

at any point in the code

#

except the last one which isn't being run anyway

tall wharf
#

there we go

frosty dock
latent portal
manic rune
gleaming zealot
#

give me skme hung men

frosty dock
weak gate
#

can a joker change a variable inside its sticker?

spring lantern
#

brainstorming for a new mod

stiff locust
# manic rune can you show me the code

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

frosty dock
tall wharf
latent portal
#

where can i find the code for inject_p_card?

maiden phoenix
stiff locust
frosty dock
turbid maple
#

0.00027 chips are crazy

maiden phoenix
#

Oh wow saw the vid that looks horrendous

tall apex
#

missing required parameter for sound declaration: key

frosty dock
#

you'd be looking to change the nominal

tall apex
#

...

#

which key?

#

am i stupid?

stiff locust
frosty dock
#

I'm not sure if it'd mess with sorting order tbh

tall wharf
#

yea i saw

frosty dock
tall wharf
#

does the slicing actually look decent

frosty dock
#

but that's in the docs too :p

pseudo cape
#

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

tall apex
spring lantern
#

but like damn 😭

frosty dock
stiff locust
frosty dock
#
SMODS.Sound {
  key = '...',
  -- ...
}
tall apex
frosty dock
#

it's no different from how all steamodded APIs work

stiff locust
#

it's like registering an atlas

tall apex
stiff locust
#

but you register a sound atlas instead of a sprite atlas

tall apex
stiff locust
#

you know how sprite atlas works right

stiff locust
#

okay great

#

it's just like that

zealous glen
#

what's a sound atlas

frosty dock
#

fair but not like there's examples

stiff locust
zealous glen
#

ah

stiff locust
#

why is my loop not running though

#

does it need a booster seat

frosty dock
#

this stuff isn't readable on mobile whatsoever

#

please Discord can we have mobile file previews and proper syntax highlighting

manic rune
stiff locust
stiff locust
#

i've had this before and I never found a solution

manic rune
#

can you read it now :3

tall wharf
manic rune
#

:( flute girl

frosty dock
manic rune
#

dang

frosty dock
#

it still doesn't have syntax highlighting and it's even low res

manic rune
tall apex
#

im still getting the key error despite putting one in :c

manic rune
#

now?

frosty dock
#

I do see the issue though

latent portal
#

@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```
manic rune
#

he didnt put "lua" infront of the triple ` so it doesnt have the highlighting

kindred heron
#

the card says nul instead of a number

tall apex
#

im just gonna scrap the sound for now ig

stiff locust
frosty dock
#

the second loop is a numerical for loop

manic rune
stiff locust
manic rune
#

since you are using "mult", which should auto handle it for you

stiff locust
#

what do you mean that's just as bad

frosty dock
#

cardranks isn't a numerical table

stiff locust
#

what did I do wrong???

zealous glen
#

Try removing them

frosty dock
#

ipairs only gets numeric indices

#

you need to use pairs

stiff locust
stiff locust
frosty dock
#

yeah

zealous glen
#

But the reason it doesn't work I believe is because you have a number not a string

stiff locust
#

if that solves it i'm gonna be so mad

frosty dock
#

ipairs in only for the array part

#

So is #

manic rune
#

since its lua

zealous glen
#

I don't think that's how Lua works

stiff locust
#

the string number concat thing does work

zealous glen
#

I don't think it works in Python either

kindred heron
zealous glen
manic rune
#

i have this function, and i put "a" as a number everytime

#

it still works

zealous glen
#

Perhaps I thought wrong then

#

alas

latent portal
kindred heron
#

no the image is me veiwing it from the collection

stiff locust
#

oh my god that actually fucking solved it

stiff locust
#

i can't be mad that it was that simple of a fix

zealous glen
#

You didn't define loc_vars

stiff locust
#

but

it was THAT simple the whole time???

zealous glen
stiff locust
#

changing ipairs to pairs made it just work

#

I thought they were the same thing

#

i think it just works now

manic rune
#

oh yeah, ipairs only works for tables with fully numbered indexes

#

i forgot that 😭

zealous glen
#

sequential too AFAIK

stiff locust
#

oh my god it worked

manic rune
#

i can probably do the divide stuff -> move down to line 2 now

#

lets seeee

zealous glen
zealous glen
#

AFAIK inject runs before the game loads, but after SMODS collects all mod info

tall wharf
#

yall ever like

#

boot game up

#

and game ui just

spring lantern
#

im definitely being stupid

tall wharf
#

decide to not exist

spring lantern
#

ui died ?

manic rune
#

game was a lil bit hungry

#

:3

#

nice, got them divided

spring lantern
#

thought i hadnt even got to the hard part yet

tall wharf
#

SINCE WHEN DID CRYPTID HAD AN ART UPDATE

spring lantern
#

oh yeah it's peak

old bane
#

a blind chip can have more than 21 animation frames right

modest lake
old bane
#

cause the idle animations i have for my boss blind chips are too short

tall wharf
#

fuck that shit i am making new blueprint

kindred heron
#

well it didn't add the mult for some reason

latent portal
#

since it targets RANKS and not a particular rank/suit combo

#

it doubles the chips

#

of EVERY. SINGLE. RANK.

#

AND SUIT.

modest lake
kindred heron
tall wharf
#

you look like someone who is using steamodded 1304a

#

not that you are using it but

kindred heron
#

nvm im dumb its ending_shop

tall wharf
#

no offense

#

I'm crying

#

since when am i so judgemental

spring lantern
kindred heron
#

im not offended idk what that means lol

kindred heron
tall wharf
#

@manic rune is this what staying up at 3am

spring lantern
#

help i am the styupid

modest lake
#

check if mult cards work

tall wharf
#

you mean the literal release that's on GitHub right now

latent portal
manic rune
modest lake
manic rune
#

and uh

#

distorts your fucking brain cells too

#

:3

tall wharf
#

my original idea was this

kindred heron
#

ok fixed

tall wharf
#

i guess I'll take what i can get

manic rune
#

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

#

:(

modest lake
#

anyway, this doesn't work anymore so what's the new way of conditionally adding an s?
'{C:inactive,S:0.75}round#s2#{}'

kindred heron
#

what number should this be?

modest lake
manic rune
#

wait

#

i mean, yeah

#

you have S:0.75, i dont think that works

tall wharf
manic rune
#

gotta be lowercase s

modest lake
#

oh true

tall wharf
#

stub ass mod

manic rune
#

and also

#

#s2# wont work

#

pretty sure

#

it can only be a number correlating to the order of the vars in loc_vars

modest lake
#

worked when I initially did it i think

green plank
#

i should've expected this

#

this is after trying to continue a run

spring lantern
#

im going to cry why cant i even do the most basic shit

green plank
old bane
green plank
#

importing oldcalc to newcalc is gonna be funny

old bane
#

also do you have consumables of that type first

spring lantern
#

i have one consumable of this type

old bane
#

weird it should show up in game

manic rune
#

ITS SEPARATED :3

old bane
#

are you loading those files

kindred heron
#

its always when testing

latent portal
manic rune
#

OH MY GOD

#

I SOMEHOW GOT IT WORKING QUICKLY 😭

latent portal
#

WAIT

#

BEPIS

spring lantern
latent portal
#

quick question

manic rune
#

hi

latent portal
#

how do you get a custom badge on playing cards

manic rune
#

oh, its stickers

latent portal
#

without using enhancements

#

do you just. add an invisible sticker

manic rune
#

mhm

#

it also adds that info queue you are seeing

modest lake
#

huh, are localization files automatically loaded?

manic rune
#

yeah

spring lantern
#

okay so the reason my shit wasnt loading is i forgot these brackets

#

im fucking done

manic rune
#

it works....

#

i have no clue how the fuck i got it working, but it works, it evenly divides the string into 2 lines

#

💔

spring lantern
#

what the fuck is happening ghfjhyujkh

#

somebody hit me with a blunt object

manic rune
#

god

#

im going to go to sleep

kindred heron
#

guys if there is a joker that is made out of cardboard, what should it do?

latent portal
#

technically all jokers are made out of cardboard

manic rune
#

show wat

modest lake
kindred heron
#

no as a function in the game

manic rune
#

uhhh

kindred heron
#

im not gonna make a card that kills you

manic rune
#

alright so, basically

kindred heron
#

i already did that before

manic rune
#

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

modest lake
#

oh

manic rune
#

yeah, its just a bunch of string manipulation

#

so that i can move stuff down to #2#

tall wharf
#

what the fuck are you doing

modest lake
#

that's a lot more effort than I was hopin ngl

manic rune
#

know

red flower
#

go to sleep

latent portal
#

N

manic rune
#

but without that code, it would look like this

latent portal
#

YOURE SMART I NEED YOUR HELP

manic rune
#

so its definitely worth it

#

i am, FUCKING done.

red flower
manic rune
#

thanks N', thank you so much 😭

frosty dock
spring lantern
#

my brain hurts

manic rune
frosty dock
frosty dock
#

but please go to sleep

manic rune
#

a bunch of string manipulation and shi, ghghhgh

#

4 am

tall wharf
#

what the fuck.

manic rune
#

its just a fucking sticker, i dont know why it took me THIS LONG

spring lantern
spring lantern
manic rune
#

thanks for yall's concern though, im gonna go sleep now

tall wharf
manic rune
#

good night everyone

tall wharf
#

the thought

tall wharf
#

development resumes today

manic rune
#

this late?

tall wharf
manic rune
#

isnt it dangerous to shower late

frosty dock
spring lantern
#

go bed

tall wharf
#

i don't care at this point

spring lantern
red flower
tall wharf
#

i spent too long on this half the value double the trigger

manic rune
#

yeah i can relate

tall wharf
#

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

latent portal
tall wharf
#

so when u quit the game and come back it is just normal

manic rune
#

huh

latent portal
#

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

frosty dock
# spring lantern

right... the opposite of what I said. ObjectType keys are not prefixed

#

should probably put that somewhere in the docs

spring lantern
#

bweh

#

okay let me try removing the prefix

frosty dock
spring lantern
#

i still crash on launch oops

frosty dock
#

wait that's not a thing

spring lantern
#

okay it works now huge thanks!

frosty dock
#

don't mind that, you'd need to hook Card:set_base

latent portal
#

so. a hook in a hook

frosty dock
#

no, instead of that

#

i just gave you the wrong function to hook because i didn't remember things right

spring lantern
#

wait do custom consumable locs go in the Other table in the loc file

#

thats the only one that makes sense

latent portal
#

ooohhhh

#

i see

frosty dock
#
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

spring lantern
#

also what's the shader spectral cardsw use to look all nice and shiny

latent portal
#

by the way, just one more thing: is it possible to add tooltips/desc text to doodle cards saying that they have no suit?

tall wharf
frosty dock
#

yeah, loc_vars is supported on suits and ranks for tooltips

latent portal
#

so how would i do it

#

do i just.

#

put it in the suit?

frosty dock
#

yeah

tall wharf
frosty dock
#

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

frosty dock
latent portal
frosty dock
#

that is not currently supported

#

it will have your mod badge though

latent portal
#

alright

#

im cool with it

frosty dock
#

if you want a custom badge, you can wait for it to be supported or patch it in in the meantime

latent portal
#

i'll wait

#

im not smart enough lol

green plank
#

Confused 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

spring lantern
#

okay now to actually program this

tall wharf
#

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

mystic river
#

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

modest lake
#

hell yea, finally I have added gambling to the poker game!

modest lake
frosty dock
mystic river
#

well, i'm trying to make bunco talisman-compatible
so that kinda narrows it down

frosty dock
#

since steamodded does do such helpful things, it is something that isn't loading its files using steamodded

mystic river
#

yep, the error turned out to be in lovely.toml

#

(i already found it lol)

spring lantern
#

so how would i go about saving the information of cards before they get destroyed?

worthy stirrup
#

any ideas why im getting this crash, it only crashes when i hover over the new art pack

wintry solar
#

typo in your texture keys

worthy stirrup
#

oh

#

why is it always typos

#

when they are pointed out, its so obvious

forest ivy
#

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'

frosty dock
#

not really

wintry swallow
#

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

frosty dock
#

check the sidebar, there's lots of docs

wintry swallow
#

they just get skipped over like a normal card

frosty dock
tall tangle
frosty dock
forest ivy
#

proved

#

my point

frosty dock
#

not sure how you're reading the third bullet point under "useful resources" as "that's the only thing we say there is"

scarlet spire
#

the example mods are specifically written to provide displays of how behavior is achieved, they're not just other people's mods

forest ivy
#

kinda fair

scarlet spire
#

they're examples for you to follow

forest ivy
#

but still nothing in front of actual guides

frosty dock
#

also are you specifically ignoring everything else I said?

wintry swallow
#

why tf are y'all beefing over example mods being examples 😭

forest ivy
#

u can find abt any programming language nowadays

forest ivy
scarlet spire
#

smods docs are not a lua tutorial

frosty dock
#

all of steamodded's APIs are documented, it literally isn't "read other mods' code and figure it out yourself"

forest ivy
#

especially when there isn't some kind of actual getting started with coding

frosty dock
glad osprey
#

how do i tooltip hanged man

forest ivy
#

where u get most important thing's to know

frosty dock
#

specifically some of these go into depth

forest ivy
#

make ur first something

#

but not the your first mod

#

it suck

hushed field
#

man, this pasta recipe has like no information on how to forge a steel pan

quartz ravine
#

Hi guys, here is my config for a custom edition. For some reason, the xMult is not being applied when it is scored

forest ivy
#

nope it isnt that far

forest ivy
#

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

worthy stirrup
#

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'
    },
hushed field
#

What basics do you feel are missing?

quartz ravine
#

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

frosty dock
#

I'm not sure what you want of me at this point

forest ivy
wintry swallow
#

y'all oh my god 💔

forest ivy
#

there was 1 single vid abt making joker, got nothing from it

scarlet spire
#

you're expecting a full lua course out of a modding platform documentation. if you want to learn lua, this isn't the place

forest ivy
#

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

worthy stirrup
#

to learn coding, people normally just copy until they understand

forest ivy
#

banana = "key74" ahh

quartz ravine
#

Is this how you approach learning everything in life?

worthy stirrup
#

or thats what i did atleast

frosty dock
#

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

forest ivy
#

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

quartz ravine
#

Ahh, I see the problem.

frosty dock
#

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

worthy stirrup
scarlet spire
#

?????

forest ivy
#

they shouldnt expect people to understand anything from documentation

frosty dock
#

...?

forest ivy
#

when they didnt explain basics yet

worthy stirrup
#

i learned from the documents...

forest ivy
#

like show a guy who doesnt know abt tables OOP

#

he will go crazy

worthy stirrup
#

and also looking at other peoples code...

forest ivy
#

welp congratulations

quartz ravine
forest ivy
hushed field
#

There's a difference between tutorials and documentation

frosty dock
quartz ravine
#

Sorry man, that was good enough for basically all of us to make mods.

forest ivy
#

i especially wonder why do u even need atlas

#

like bro, it'd be ok if it was smth like

worthy stirrup
#

to declare the art...

forest ivy
#

b = atlas

b(do something)

worthy stirrup
#

what.

frosty dock
#

an atlas is a spritesheet

forest ivy
#

u should see what i mean

forest ivy
#

does it link to the joker or whatever

worthy stirrup
#

hey, code heres a spritesheet, run a function with a picture

frosty dock
scarlet spire
#

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

hushed field
frosty dock
#

you create an atlas, which loads the image file and links it to an identifier

quartz ravine
#

People acting this way is why people give up and stop making cool tools.

frosty dock
#

when you then create a joker, you use that identifier to link the atlas to the joker

forest ivy
#

gotta admit

frosty dock
#

talk about being basic

scarlet spire
#

yes? you define atlas = 'atlaskey', with atlaskey being the key you set when you defined the atlas earlier in the file

forest ivy
#

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
}

worthy stirrup
forest ivy
#

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

#

💔

worthy stirrup
#

yea... there can be many pieces of art in one sheet

forest ivy
#

ye

#

peak

scarlet spire
#

yes, because saving five hundred separate tiles is the most tedious thing ever

frosty dock
#

the game does it this way, every joker is in the same sheet

hushed field
#

Sprite sheets are still a thing in plenty of games haha

frosty dock
#

you can but don't need to follow this convention

forest ivy
#

how do u access it now

frosty dock
#

you can have a single file for each image

worthy stirrup
#

look at what balatro does...

wintry swallow
forest ivy
wintry swallow
#

okay then

old bane
#

can a voucher have a soul pos?

forest ivy
#

or sum

frosty dock
#

along with creating the atlas, you give it an image size

wintry swallow
worthy stirrup
#

john, sorry to keep asking, do you see why its causing an Atlas crash?

glad osprey
#

how do i tooltip hanged man

worthy stirrup
frosty dock
#

then when creating the joker, alongside the atlas you give it a position on that atlas relative to the sprite size you set

quartz ravine
#

do you see something I am missing in trying to give xmult from an edition?

I tried a number of things, lol

hushed field
forest ivy
frosty dock
#

{x = 0, y = 0} is the top leftmost 71x95 pixels

quartz ravine
glad osprey
frosty dock
#

{x=1, y=0} is the sprite to right of that, so shifted by px=71 pixels to the right

worthy stirrup
glad osprey
#

I NEED to tooltip hanged man

hushed field
glad osprey
#

yes

frosty dock
worthy stirrup
#

fair enough

#

i thought Atlas would be something from vanilla

#

thanks though