#💻・modding-dev

1 messages · Page 212 of 1

lyric wadi
#

goes it need to be on individual context

#

or just at the top of the main works

manic rune
#

as long as whatever you are running :get_id() on is a playing card, it will work

placid frigate
red flower
manic rune
#

so context.before with G.play.cards with a for loop to run through all cards in your playing hand, for example, works

plush cove
#

actually you can

manic rune
#

so it really just boils down to the timing you want

plush cove
#

you just need to make a new localization file in your mod, and override the name

placid frigate
plush cove
#

@wintry swallow

placid frigate
red flower
#

i think it's T and not 10

tall wharf
#

jokerpoker banana

#

😭

#

Cavendish is a real thing 😭😭😭😭

manic rune
#

it is

#

gros michel too, found both of them in one of our reading exercises 😭

lucid owl
#

how are custom sized jokers done? should i bother?

manic rune
#

my balatro corrupted ass will NOT concentrate...

lavish lake
#

Fool's Laboratory? Fool's Laboratory! Fool's Laboratory. Fool's Laboratory: Fool's Laboratory;

lyric wadi
#

what's the flag to set to have jokers be always unlocked again

#

sorgy

crisp coral
#

unlocked = true

lyric wadi
#

make sense

lucid owl
#

obviously you can change the base probability, but would there be an easy way to double the actual denominator in the chance? for example turn a 1 in 3 to a 1 in 6 chance

#

i assume not because of how the only set-in-stone probability is the base 1, but figured i'd ask

wintry swallow
#

good to know

oblique silo
#

Is this where I could ask to pay someone to make a mod for me?

old bane
lucid owl
sturdy compass
#

Bruh why doesn't this work anymore 😭
This method worked just fine before SMODS went Beta

lucid owl
#

raised fist moment

sturdy compass
#

bruh

quasi comet
#

Is it possible to exclude a specific card from showing up in a booster pack?

sturdy compass
#

But seriously, I dug through SMODS code and didn't find anything that suggests stone cards don't have a front either. DebugPlus confirmed this further. Soooooo confused

lucid owl
#

ive heard a couple people say that the smods update broke stuff, i wonder what all changed to make everything flop lol

old bane
#

oh wait

#

nvm

#

i think you need to change it to be a drawstep now

sturdy compass
#

I'd be surprised cuz this is all that the patch does

#

and this worked perfectly well before lmao

edgy reef
#

SMODS.DrawStep overrides Card:draw

sturdy compass
#

Ah shiiiiit

edgy reef
#

If this code relies on injecting there it will not work.

sturdy compass
#

that would make sense

old bane
#

draw step was made so people didnt have to inject into Card:draw anymore

sturdy compass
#

Well now I have to inject into drawstep since stone cards have a hardcoded check LMAO

#

There we go. Back to its cursed goodness

oblique silo
#

Contact me if you’re interested in helping me out

old bane
oblique silo
#

Good idea

tall tangle
vestal ore
#

i think i can bluff my way through this uhhhhhhh

#

bluff worked i'll take the win on literally ante 1 lmao

dusk harness
#

for those following my journey of reading the data from the cards on screen im gaining velocity and slowly getting closer to being done with reading the states.

lavish lake
dusk harness
#

added a suggestion, but i should be in bed so im heading out good night

tall tangle
sacred lily
#

how would I program the card “when a 2 and Ace are played in the same hand, reward the player with $2”?

sturdy compass
dusk harness
#

Check the cards played for an ace and a two? I dont know which event it is but its a Game:event

plush cove
#

me when the @sturdy compass

sturdy compass
#

fr

dusk harness
#

I hate the new discord chNge

sturdy compass
#

DUDE IT'S SO BAD

dusk harness
#

I wanted to valudate the usernMe but just spammed your name

#

Im sorry

#

Muscle memory

sturdy compass
#

Nah your fine, I hate it too

dusk harness
#

Anyway that was my sign that i really need to sleep. Good night friends

errant sable
#

working on the most simple mod of all time where it just randomises pretty much all the numbers in the game, and i've just replaced the values with math.random(), does anyone know how to make it random for every run? currently it only randomises whenever you open the game

old bane
#

pseudorandom()

errant sable
#

ah ok thank you!

old bane
#

not only does it make it random for every run it also makes it so every time a seed is used it gives the same random output each time

errant sable
tall wharf
#

ok genuine question

#

does anyone have ideas on the letter Z

#

wrong chat

solar eagle
#

is there a way to access the offered tag of a blind?

dusk harness
sacred lily
#

stupid question but do you code all your jokers in one single file or make seperate code for all of them

solar eagle
#

i have all my jokers in one file

sturdy compass
#

It's up to preference

solar eagle
#

my file structure is like this, each card type has its own file

sacred lily
#

ok thanks

dusk harness
#

Right now i have all my mod in a single file but im planning on splitting it in 2-3 files later when im done working out most of the logic

plush cove
sturdy compass
solar eagle
dusk harness
sturdy compass
#

it's kinda hard to explain in text ngl

dusk harness
#

If you have code on a github repo that also works

solar eagle
#

goal is to access and run its apply function

tall wharf
sacred lily
dusk harness
tall wharf
#

no like i was asking what object could represent Z

sturdy compass
dusk harness
tall wharf
#

reserved for cats and dogs and bees

sacred lily
#

have like a zombie card or something idk

tall wharf
#

I WILL HAVE TO DRAW ZOMBIE ANIME GIRL FOR REAL????

dusk harness
dusk harness
#

Not a bad idea tbh

plush cove
#

your other option is zinc

tall wharf
#

it's gonna be a hunk of white thing

#

keep in mind these are practically monotone art

sacred lily
#

you also have Zero, sso just don't draw a card lol

tall wharf
#

all letter cards should have art

sturdy compass
sacred lily
#

nice

sacred lily
#

just like an outline idk

quasi comet
#

i have an enhancement that has a countdown when a blind is started; but fsr it doesn't trigger?

#

(this is in the enhancement's calculate function)

mortal ledge
#

Hello, I have a quick question about some code for a Malverk mod. I'm working on a toggle where the art for Justice and Strength switches between them at the same time. The new art are in separate sprites. I tried to add this code but it doesn't work.

AltTexture({
    key = "justice_strength_alt",  
    set = "Tarot",  
    path = "justice_alt.png",
    keys = {                           
        "c_justice",
    },
    localization = { 
        "c_justice",
    },
    path = "strength_alt.png",
    keys = {                           
        "c_strength",
    },
    localization = { 
        "c_strength",
    },
})
sacred lily
#

how do i make it so a card can summon any Uncommon jokers only

solar eagle
#

i'd look at how riff raff accomplishes common only

#

or top-up tag

sacred lily
#

ok

#

how do i look at the base game joker code

runic pecan
wintry solar
tall tangle
#

EREMEL

#

I HAVE A CRASH REPORT FOR YOU THAT HAS TO DO WITH ORTA

wintry solar
#

Ok

tall tangle
#

DM?

#

I can stop yelling now, I just got very excited that the person I needed to give crash report to just... ✨ materialized ✨

edgy reef
#

ehh you can drop it here

#

Multiple people debugging can save the mistakes from someone failing to read the code they wrote 2 months ago

#

xdd

tall tangle
#

For some reason it decided not to copy paste as a .txt file so I gotta go grab it, throw it in a .txt, and then attach it here.

#

Gimme a sec

wintry solar
#

It might not even be my code 😂

tall tangle
#

That is ENTIRELY fair tbh

#

I had, like, three things from Orta all going at once in that one hand that crashed the game, all I know is that the crash came from an Ortalab file.

#

Wait...

#

I'm so fucking dumb, I literally JUST realized ortalab is balatro backwards

#

I'm going to go shred my 3.86 GPA diploma real quick, gimme a sec

mortal ledge
tall tangle
#

There's my goddamn crash report, jeez

#

So I switched from an A-10 straight to a K-9 straight and it stopped crashing

wintry solar
#

uhhh yeah that'll be fixed in a new version

quasi comet
#

Is there a way to modify the end_of_round context to include checking the deck?

tall tangle
solar eagle
#

how does one accomplish the lil activation wiggle that some jokers do? dna, trading card, loyalty card etc

#

is it juice_card_until?

crisp coral
#

juice_card_until

solar eagle
#

first arg is the card, second is the function that will end the anim

#

?

crisp coral
#

idk im not on my pc

solar eagle
#

i will test

solar eagle
#

from flipper

crisp coral
#

no, sorry

solar eagle
#

damn

#

guess it was someone else then

robust jolt
#

if I wanted to start a new project woul I need to move the source code filess from the game to the new project file?

rough furnace
#

No you shouldn't be editing the game files

robust jolt
#

okay

#

so how wouldd I start a new project then

rough furnace
robust jolt
#

Im actively reading all this

#

and I litterally do not see how I should START making a new mod

rough furnace
#

Probably first at the metadata

#

The examples are also probably good for file structure

rough basin
# rough furnace https://github.com/Steamodded/smods/wiki/Your-First-Mod

check out the metadata portion and the example mods for an idea as to how to set it all up
then all the sidebars list all the SMODS objects and there's a guide to all of the different contexts (which are used for triggering effects during different portions of the game) in calculate functions

#
    calculate = function(self, card, context)
        if context.end_of_round and context.cardarea == G.jokers then
            rand_joker = pseudorandom_element(G.jokers.cards, pseudoseed('seed'))
            rand_joker_ret = rand_joker:calculate_joker(context)

            for k, v in pairs(rand_joker_ret) do
                if is_valid_effect(k) and type(v) == 'number' then
                    if k == "xmult" or k == "Xmult" or k == "x_mult" then
                        card.ability.extra.Xmult = card.ability.Xmult + v
                    end
                    if k == "mult" then
                        card.ability.extra.mult = card.ability.mult + v
                        return {
                            message = "Eaten"
                        }
                    end
                    if k == "chips" then
                        card.ability.extra.chips = card.ability.chips + v
                    end
                    return
                end
            end
            rand_joker:start_dissolve()
        end

anyone know what's wrong with this one? im getting the error:
bad argument #1 to 'pairs' (table expected, got nil)

#

the message is just for debugging

rough furnace
#

likely the joekr didn't return anything

rough basin
#

okay so first check if rand_joker_ret exists

#

that is strange though, because the joker being dissolved has an xmult

rough furnace
#

it's unlikely to rtrigger at end of round

solar eagle
#

is there a way to have prints not do this
+54 more values.

rough basin
#

shouldn't the xmult just be like an innate value?

rough furnace
#

or adjust the DebugPlus code

robust jolt
#

I ont understand what the prefix stuff is

#

Wait it litterally tells me

#

dont answer that

random sleet
#

a prefix is a wordlet that goes before a root word

zealous glen
#

doesn’t help that in SMODS it goes in-between words—an infix

robust jolt
#

what ddo I actually needdd to put in the dpendancies to not make it crash every bloody time

zealous glen
#

I think you could remove it

robust jolt
#

hmm yes I love me a first time ever I dont know what the fiuck is happening crash moment

#

I litterally just want it to show up without adding a main file to it

rough basin
#

could you send your json config file?

robust jolt
#

unless you want it in text

rough basin
#

i think a main file might be necessary? just make a blank file called "main.lua" and put "main.lua" as the main_file argument

robust jolt
#

if this is all I needed to ddo istg

#

It was lmao

#

there it is

#

where can I fin info about how to make a deck

rough basin
#

example

#

does anyone know how to access the mult, xmult and/or chips of a specified joker? im getting a random one with pseudorandom_element of G.jokers.cards, but im struggling to get the values. using calculate_joker seems to return a null value even for jokers possessing mult, which is a bit puzzling.

steel sinew
#

I'm trying to make my first mod, but i get this error when launching.

I have no idea what I've done wrong, as I've just copied in the code for the joker from the steamodded example "ModdedVanilla"

Thanks in advance for any help.

hushed field
steel sinew
rough basin
#

missing an equals sign after loc_txt

steel sinew
#

OH MY GOD......
i feel stupid now xD

robust jolt
#

for the main file to be foundd what do I do?

spring lantern
#

okay so my lovely patch doesn't do anything great

#

what did i mess up

robust jolt
#

figured*

spring lantern
#

same thing here

rough basin
rough furnace
#

Your context probably doesn't match what it expects

#

Also sometimes they are conditional

#

Things like loyalty card and mystic summit (If it's the one I'm thinking of)

spring lantern
#

yeah the one that gives mult only if you have no discards left

rough basin
# rough furnace Also sometimes they are conditional

conditional mult is fine, i dont mind not being able to get that.

but i would like to be able to copy the xmult of constellation, but constellation does not seem to have a calculate function

would checking if calculate_joker exists first, then just accessing ability.(thing) maybe work?

#

if calculate_joker doesnt exist i mean

rough furnace
#

You probably want to call a joker_main context

#

Maybe hooking calculate would work better for your use case

rough basin
#

might try that since im currently using end of round

lavish lake
spring lantern
frosty dock
#

this is a function that steamodded also patches, so you'd have to go off lovely dumps with smods patches applied

spring lantern
#

huh, i see

#

so uh

#

i thought the lovely dump im checking had all the patches applied already 🥲 is there something im missing

#

it's all in Mods/lovely/dump right

lavish lake
#

How do I make art for consumables?

robust jolt
#

this config stuff here for decks can be used in a mod right? I just need to know how to structure them in a way...

frosty dock
spring lantern
#

yeah it is, i was using the source code as a base

frosty dock
spring lantern
#

but now i realised that my mod isn't the only one patching the game LOL

robust jolt
frosty dock
#

it's good practice to minimize your patch targets

spring lantern
#

idk i'm kinda paranoid about accidentally changing parts of the code i don't mean to

frosty dock
#

that's literally what you're doing?

spring lantern
#

yup...

frosty dock
#

any mod with lesser priority just needs to touch the function in any way and your patch will whiff

spring lantern
#

so just to be sure i know what i'm doing, assuming a 100% vanilla game, this would work?

royal ridge
#

after, then technically yes

frosty dock
royal ridge
#

wait yeah that's what it does nvm

frosty dock
#

however i would do this in a less destructive way

spring lantern
#

hm...

#

wait

frosty dock
#

that being, i would patch pseudorandom('lucky_money') < G.GAME.probabilities.normal/15 to false

spring lantern
#

okay so for context i have this joker that guarantees all lucky hits

#

right now i was just reimplementing the lucky card logic in a lua file but i could just do it in the patch right

frosty dock
#

in that case i would patch next(SMODS.find_card('j_prefix_thisjoker')) or before pseudorandom('lucky_money') < G.GAME.probabilities.normal/15

spring lantern
#

yeah that was my thought

frosty dock
#

using either regex or just changing the full line

spring lantern
#

regex is scary ...

#

probably just gonna replace the line because i'm a nooby ass noob

frosty dock
#

chat what control letter should this use

royal ridge
#

m

spring lantern
#

oh i think i saw someone implemented this themselves but i forgot which letter they used

#

M seems as good as any

plush cove
frosty dock
#

yeah I've looked at it. i still need to test it to make sure it doesn't break anything. but looks good for the most part, i can probably merge it today

red flower
spring lantern
#

or background

frosty dock
#

who says it needs to make sense, the text color version is literally V (for variable?)

#

but I've considered B as well

red flower
#

i always thought of it as variable yeah

frosty dock
#

also the static version of bg color is X because it's used for xmult

#

so meh

spring lantern
#

running this thru here just to make sure i aint doing nothing stupid

red flower
#

i read the seals on challenges were 'g' for gold card yesterday that made me laugh

frosty dock
#

gold seal but yeah

spring lantern
#

holy shit it works tysm

#

i feel like a smart person for once

#

now i understand how patches work the world is my oyster

#

i can do anything

#

watch me i'm going on an evil supervillain arc

robust jolt
#

ah shit how do I makea deck start with a certain consumable

#

the coe im looking at does not help

#

that being the examplemod codde

frosty dock
rough basin
#

does balatro have a like. cursor press function

tall tangle
#

CLICK

#

clicketh

#

hath clickéd

robust jolt
rough basin
#

yeah i want to check if the user hatch clicked indeed

#

*hath

frosty dock
modern kindle
#

is discard size hard locked to the highlight-able cards? or am i able to properly separate the two? im noting that it seems selective on however many cards i have selected

robust jolt
spring lantern
#

inside the consumeables table

tall wharf
#

@robust jolt are you coding the stalagmite deck thingy

spring lantern
#

hola

frosty dock
#

has anyone ever noticed

robust jolt
#

I am gaining the knowledge of lua

spring lantern
tall wharf
#

i might just add the cave deck

robust jolt
#

I dont think thats how I should write it lol

#

WAIT HOLDD ON

#

I REALIZED

#

I FORGOT UNDERSCORE

tall wharf
#

😭

robust jolt
#

Okay no it still crashes

#

what am I doing wrong

frosty dock
#

the modprefix is a placeholder

#

for your mod prefix

#

i thought that was obvious

robust jolt
#

so down here?

tall wharf
#

the 98%

tall wharf
robust jolt
#

yes

tall wharf
#

look in there

robust jolt
#

and the main one

tall wharf
#

do you have anything called prefix

frosty dock
#

also why is it nested tables

tall wharf
#

in there

#

that's your prefix

robust jolt
frosty dock
#

that's what you're supposed to replace my modprefix with

frosty dock
tall wharf
#

😭😭😭😭😭😭😭😭😭

frosty dock
#

{'c_ankh', 'c_prefixable_the_duelist'}

tall wharf
#

crazy mod prefix

frosty dock
#

ikr

tall wharf
#

i might be stupid actually

#

sometimes i forgot to return true in the event function

#

and it just causes infinite loop

modern kindle
#

infinite = more
more = more fun

#

you just profit

robust jolt
#

How do I add the Ankh consumable

frosty dock
#

😭😭😭

robust jolt
#

(this is so I know for future referance)

#

This is litterally my first time modding a game

frosty dock
#

i literally put what to do for that 😭

robust jolt
#

idk why your crying emoji me

frosty dock
#

config = { consumeables = { 'c_ankh', 'c_prefixable_the_duelist' } }, if you need me to make it even more clear

robust jolt
#

Ive just realized how stupid I look

tall wharf
#

I'm sorry 😭

robust jolt
frosty dock
#

oh shoot

#

it's one of those rare cases where it's not actually misspelt

#

it's consumables here

tall wharf
#

me when consumables vs consuemables

frosty dock
#

consuemables

#

that's a new one

tall wharf
#

i can't read

#

consumeables

robust jolt
#

ddevs based

frosty dock
#

you can't spell consuemables without sue

tall wharf
#

which is what i will be doing to

frosty dock
#

or should i say

robust jolt
steel sinew
#

is there any easy way to guarantee getting a joker for playtesting purposes? im assuming just create a deck but i can't find how to do it looking through the steamodded wiki

tall wharf
frosty dock
#

i may have made some assumptions of your code that don't hold true

robust jolt
tall wharf
#

to spawn whatever you want

frosty dock
#

i want to see the code of the consumable itself

tall wharf
#

where did you define your duelist thing

robust jolt
frosty dock
#

that is the deck

tall wharf
robust jolt
#

Its litterally the ankh from thegame

frosty dock
#

you can't spawn a consumable that doesn't exist

indigo mesa
#

how do i spawn a specific tarot card?

tall wharf
#

no but are you actually trying to make custom consumables

robust jolt
#

do I actually needd to fucking create the ankh card again

tall wharf
#

no

frosty dock
tall wharf
#

what do you want to do

#

do you want a deck with only the ankh

frosty dock
#

you made it seem like there was a whole other consumable that you were making

tall wharf
#

if so just remove the duelist thing

#

at the end of consumables

robust jolt
#

spawn an ankh at the start of the game (thats the whole point of the duelist deck)

#

like with the Hex one

tall wharf
#

then just remove the prefix thing

#

the c_prefixable

#

thingy

frosty dock
#

config = { consumeables = { 'c_ankh' } },

tall wharf
#

^

robust jolt
#

ok lets try this again

#

YES IT WORKS

frosty dock
#

see how this was confusing? you never said what consumable you were trying to add nor what the duelist is to begin with

robust jolt
#

again im stupid

#

sorry

tall wharf
robust jolt
#

litterally first time doing this so yknow

robust jolt
tall wharf
#

i started my Balatro mod journey by making a locale

#

and then my first custom joker is the repeater

robust jolt
#

locale?

tall wharf
#

custom language

#

🦞

spring lantern
tall wharf
spring lantern
#

help

robust jolt
#

thats 2 decks done WICKED

spring lantern
#

normal deck is funny

tall wharf
#

hey

#

uhm

#

I'll make another custom deck

robust jolt
#

ive done something wrong again

#

oh

indigo mesa
robust jolt
#

theress litterally zero bonusses to it

#

it just a normal deck

robust jolt
indigo mesa
robust jolt
#

Ive been trying to do this for a bit

red flower
tall wharf
#

isn't it just SMODS.create_card

spring lantern
tall wharf
#

oh add card

#

and create card

indigo mesa
robust jolt
#

hold on I just realizedd dont worry im stupiud

#

u justr meant in general

indigo mesa
#

i was creating a random tarot card lmao

robust jolt
#

not for a deck

indigo mesa
robust jolt
tall wharf
#

how do i put value into a save file

#

i want to check if a player has discovered a mechanic

crisp coral
#

just use smods config as your save file

tall wharf
#

ah right

robust jolt
#

I should add a yughio nback for the Duelist deck just for the Funny referance

tall wharf
crisp coral
#

uhhhhhhh

#

yeag

#

just add profile slot

tall wharf
#

i guess i can just put them in a table

robust jolt
#

how do I get the back of cardd sprite sheet

#

wait I probs cant use thast to make sustom card backs

tall wharf
#

?

robust jolt
#

yknow back of deck at start of game

#

I want to create a back of deck

#

for my cards

#

decks*

gleaming zealot
tall wharf
#

make custom atlas

robust jolt
#

thats in the docs thank you

tall wharf
gleaming zealot
robust jolt
#

I wil read and come back for help because I know I wont understand it

wispy elk
#

I added a DeckSkin and it's showing up in game, but it seems to be using the default skin

spring lantern
tall wharf
wispy elk
crisp coral
#

garlic phone

spring lantern
spring lantern
wispy elk
#
local atlas_key = "birb_deck_skin" -- Format: PREFIX_KEY
-- See end of file for notes
local atlas_path = "birb_lc.png" -- Filename for the image in the asset folder
local atlas_path_hc = "birb_hc.png" -- Filename for the high-contrast version of the texture, if existing

local suits = {"hearts", "clubs", "diamonds", "spades"} -- Which suits to replace
local ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"} -- Which ranks to replace

local description = "The Spiciest Birbs!" -- English-language description, also used as default

-----------------------------------------------------------
-- You should only need to change things above this line --
-----------------------------------------------------------

SMODS.Atlas{  
    key = atlas_key .. "_lc",
    px = 71,
    py = 95,
    path = atlas_path,
    prefix_config = {key = false}, -- See end of file for notes
}

if atlas_path_hc then
    SMODS.Atlas{  
        key = atlas_key .. "_hc",
        px = 71,
        py = 95,
        path = atlas_path_hc,
        prefix_config = {key = false}, -- See end of file for notes
    }
end

for _, suit in ipairs(suits) do
    SMODS.DeckSkin{
        key = suit .. "_skin",
        suit = suit:gsub("^%l", string.upper),
        ranks = ranks,
        lc_atlas = atlas_key .. "_lc",
        hc_atlas = atlas_path_hc and atlas_key .. "_hc",
        loc_txt = {
            ["en-us"] = description
        },
        posStyle = "deck"
    }
end```
robust jolt
#

oh this might be useful too

wispy elk
#

Largely "borrowed" off another skin I found so that I can understand how it works 🙂

robust jolt
#

how did you make the acgtual skin?

#

in photoshop or smthn

#

Also what pixel size do I need

#

lmao

tall wharf
#

i love aseprite

spring lantern
#

any program cuts it

tall wharf
#

71x95

spring lantern
#

aseprite is good, photoshop is good

tall wharf
#

notepad for png

crisp coral
#

do you have the hc and lc vers in both 1x and 2x folders

red flower
wispy elk
robust jolt
#

wait I nee 2 versions???

robust jolt
wispy elk
robust jolt
#

HOLY SHIT

crisp coral
#

the ones in 2x should be scaled up

tall wharf
crisp coral
#

and that

spring lantern
robust jolt
tall wharf
#

i think that's literally it

robust jolt
#

I will obviously credit

spring lantern
#

computers are dumnb

red flower
robust jolt
#

oh

#

fair doos

#

lol

red flower
#

and resized it of course

robust jolt
#

Ill still take it

tall wharf
#

do people think I'm actual skilled or are they just trying to make me not feel bad

wispy elk
#

No change making it lowercase, and it wasn't throwing any errors before

spring lantern
#

goated even

robust jolt
#

how would I even implement it tho

#

using code?

wispy elk
red flower
robust jolt
red flower
#

here's how i do ithttps://github.com/nh6574/JoyousSpring/blob/main/JoyousSpring.lua

robust jolt
#

This is the file structure right?

crisp coral
spring lantern
red flower
#

yes

wispy elk
spring lantern
robust jolt
#

but because I already have a main file how would I code it into the file?

spring lantern
#

is that your mod's folder

spring lantern
#

you can also separate your code into several files but that's more advanced and doesn't change much other than making things easier to work with

robust jolt
#

ill do the easier version untilI feel the absolute need to do that

#

this is my first mod anyway

primal shoal
#

the mighty 3000 line balatro mod

wispy elk
robust jolt
#

The main game code it 3.6k lines

tall wharf
#

do you guys not structure your project

red flower
#

i do

#

i constantly restructure too

crisp coral
#

jen's almanac doesn't

primal shoal
#

i do but ive seen them be that long in just a single file

tall wharf
#

❤️

spring lantern
wispy elk
#

It is

spring lantern
#

oh okay

primal shoal
robust jolt
#

atlas only has joker related stuff not deck back related stuff

#

lmao

red flower
#

it's the same thing

tall wharf
red flower
robust jolt
#

I DIDNT SEE THAT DOCUMENT

manic rune
#

do yall think this is good wording

spring lantern
#

eidolon?

zealous glen
# wispy elk

If you’re making a Deck Skin I recommend the template in example mods

manic rune
#

eidolon

#

istg i jotted down their effects into a paper at class

#

now i dont have it

#

💀

spring lantern
#

rip

zealous glen
indigo mesa
# indigo mesa how do i spawn a specific tarot card?

like this? (i wanna spawn death at the end of shop)

    if context.ending_shop then
      G.E_MANAGER:add_event(Event({
        func = function()
            local newcard = create_card({set = 'Tarot', key = 'c_death'})
            newcard:add_to_deck({set = 'Tarot', key = 'c_death'})
            G.consumeables:emplace(newcard)
        end
      }))
    end
  end
}```
primal shoal
#

The second passives threshold gains +1
idk sound better to me

manic rune
zealous glen
manic rune
#

...whats that

zealous glen
red flower
robust jolt
#

what is atlas

zealous glen
spring lantern
zealous glen
#

Could also give the passive a name

primal shoal
red flower
manic rune
crisp coral
#

should've made 3 traces with 3 different effects so you can name them smh

manic rune
#

💀

#

good idea

zealous glen
primal shoal
manic rune
#

i also thought about that too, using cash to unlock traces for your jokers

zealous glen
tall wharf
#

Blind Requirements will keep increasing until your last hand

manic rune
red flower
robust jolt
#

or smthn?

zealous glen
#

/hj

manic rune
# red flower example

ohhh yeah, i remember seeing cards with this, like uhh the one whose effects get better the more xyz materials it has

#

yeah i will do that, looks much simpler

#

thanks yall :D

tall wharf
manic rune
#

because its joy

red flower
zealous glen
manic rune
robust jolt
#

jesus

zealous glen
#

The force is inversely proportional to the displacement

tall wharf
#

you know what I'm adding Aperture Science to my mod

manic rune
#

and its in TCG too, pretty sure

zealous glen
robust jolt
#

does it HAVE to be in a new lua folder

manic rune
#

visually the same ❤️

crisp coral
manic rune
#

the moment im adding dr ratio, im forcing yall to do maths

zealous glen
manic rune
#

:D

zealous glen
#

I’m not the country of Japan

red flower
#

I am

manic rune
#

you are indeed not the country of japan

tall wharf
#

N you are from Pokémon

#

please

red flower
#

that too

crisp coral
zealous glen
manic rune
#

did you dog

tall wharf
#

what the dog doin

timid star
manic rune
#

istg why the fuck 🇯🇵 cant be seen if you type in "japan" instead of "jp"

zealous glen
timid star
tall wharf
#

🗾

indigo mesa
manic rune
#

exactly

#

-# yes.

zealous glen
red flower
spring lantern
#

my bad

manic rune
#

how would i even implement this as a balatro effect, if below 50% blind requirement?

#

😭

primal shoal
timid star
red flower
#

yeah

#

theyre just tables

#

i dont like that cat emoji

tall wharf
#

everything in lua is a table at this point

manic rune
tall wharf
#

ffs

indigo mesa
tall wharf
#

did you put it in an event

indigo mesa
#

yessir

tall wharf
#

did you forget to return true in event

timid star
#

also my aces turn into twos somehow, i thought the prefix for them was 'A'

indigo mesa
#

oh yea ur right

#

ty

tall wharf
#

otherwise it just loops infinitely

red flower
tall wharf
#

don't worry i make that mistakes too one too many times

iron iron
#

is the code ok or nah

manic rune
red flower
#

probably not me i had to look it up yesterday

primal shoal
robust jolt
# red flower

i dont know if something is wrong with what iv done ive set everything out correctly but it will not work

red flower
#

show code

iron iron
primal shoal
#

oh my bad

spring lantern
#

why the fuck are card back sprites in base game stored in the same atlas as seals and enhancements 😭

robust jolt
red flower
iron iron
iron iron
#

they all are part of card sprites

red flower
spring lantern
#

i mean they could have an atlas of their own

#

i guess it's less file size like this but shit threw me off so much

robust jolt
red flower
#

atlas = "duelist"

#

in the smods.back

primal shoal
#

what did they update in the docs
anything that important

robust jolt
primal shoal
#

anywhere just have that line i it

robust jolt
#

it crashes then

red flower
#

post the code

robust jolt
#

Thiss is probably a me being bad at lua thing

red flower
#

outside of loc_txt

robust jolt
#

so here>?

#

still crashes what the fuck

red flower
#

post crash?

robust jolt
#

holdd on

red flower
#

oh sorry i see

#

the assets folder needs to be outside of texture packs

robust jolt
#

could probably modify the image to have the ankh symbol on the back

tall wharf
#

that's just Yu-Gi-Oh

red flower
#

that's just Yu-Gi-Oh 🔥

robust jolt
#

quick photoshop reskin

#

will touch up on it later lol

timid star
robust jolt
red flower
zealous glen
#

You can also score cards manually

timid star
#

now im really confused

red flower
#

which part

timid star
#

the part where the search is to find how the hell do i mark card as being played in the current playing hand

#

idk where the Splash code is

red flower
#

where i told you?

timid star
wintry solar
#

With an effect like that I don’t think you can

timid star
#

how does the balatro splash joker do it

zealous glen
#

Hardcoded

wintry solar
#

The thing is you’re adding cards to the hand after it’s played

#

But there’s no persistent effect to tell them to score

#

I don’t think you’d want to tag them as always scores either because they would then have that permanently

timid star
#

though my intentions are to keep the card's enhancements so it makes it even more complicated

wintry solar
#

You’d also need to use an earlier context than before

timid star
#

there's a thing for that?

wintry solar
#

The modify scoring hand you were told about

iron iron
#

the mult aint goin up

runic pecan
#

It still feels weird to me that localthunk uses "ja.lua" instead of "jp.lua".

red flower
#

thats the iso code for japanese

#

(idk if its intentional tho)

spring lantern
#

decided to make this a deck rather than a challenge

runic pecan
spring lantern
#

...sadly it crashes as soon as i start a run

spring lantern
#

legends_pool is defined as a global in the main file

runic pecan
# iron iron the mult aint goin up

Secondly, in loc_txt you say "for each Moss Card in played hand", yet you iterated through G.playing_cards, which becomes "for each Moss Card in your full deck".

red flower
spring lantern
iron iron
#

will figure out how to change

runic pecan
red flower
# spring lantern

you might need an event to delay until the card area exists
never made a deck so I'm not sure

spring lantern
#

makes sense

iron iron
#

tysm

runic pecan
timid star
quasi comet
#

am i missing something? it's selecting all cards rather than a random card

manic rune
#

i mean, you are running a for loop through every card in your deck, and it seems bullshit is always the card it goes through, so it will select all the cards in your deck at the end of the loop

runic pecan
#

Is this the correct way to use {V:}?

manic rune
quasi comet
#

i see, though what i really want is for it to select from cards that are a) in the deck and b) aren't a specific enhancement

timid star
manic rune
#

in that case, you can first filter out all the cards without the enhancement inside a table, and use pseudorandom.element on that table

red flower
frosty dock
runic pecan
manic rune
#

you forgot the colours

runic pecan
red flower
#

yeah

#

if you're going to use them a lot you can initialize them with the other localization colours and use them directly on the text

spring lantern
#

forcing all owned jokers to be legendary adds an interesting dynamic of buying certain jokers like mail-in or sixth sense and selling them before playing your good hand, but it also feels too limiting - should i also allow rares so you can have copy effects and such?

manic rune
#

it really is limiting

#

and the x100 mult is honestly not even that good compared to a full rare/joker build, if im gonna be honest

#

like, the idol + socks and bussin, for example

spring lantern
#

i mean it can kinda carry you to ante 8 for free

manic rune
#

its x2^10 mult, which is in the thousands already i think?

manic rune
spring lantern
#

iunno its kinda like jokerless but with an extra buff rn

manic rune
#

yeah

distant grove
#

Hi

manic rune
#

hi peak :D

spring lantern
#

i do wanna try and have some more synergies

distant grove
#

Quick question

#

Actually I forgot what it was

spring lantern
distant grove
#

Nvm than

manic rune
#

💀

distant grove
#

Anyways how’s your guys day going

manic rune
spring lantern
#

hm

#

this mod kinda makes legendaries a bit more common so im thinking x100 mult if no other legendaries are owned

#

so like the complete opposite of what it is rn

#

but im not sure

#

or maybe just no commons

spring lantern
#

yeah i think i'm gonna do if no commons are owned

#

or maybe if all other jokers are specifically uncommon

#

gonna have to do a lot of testing

timid star
#

does this like not work at all

#

i swear im on the right smods version

red flower
timid star
#

or is there a version that i somehow missed

red flower
#

there are more recent on the main branch but that context should work there

#

you're making a deck right?

timid star
red flower
#

yeah it might not let me check

frosty dock
#

i don't think it does

timid star
frosty dock
#

you can set always_scores on enhancements if that's the idea

frosty dock
#

(or never_scores for that matter)

timid star
#

this is what im trying to accomplish

#

cards that are summoned and then scored on your playing hand

#

am i too ambitious for such a task that i thought would be simple

frosty dock
#

you may have to hook SMODS.always_scores for that

indigo mesa
#

im tryna make a joker that adds a random lucky card to your hand when u succesfully trigger a lucky card, but when i play a succesful lucky card my game crashes, is this code alright?

red flower
#

SMODS.add_card doesn't add playing cards

indigo mesa
#

ass lmaoo

red flower
#

u.u

indigo mesa
#

it would be create_card then?

timid star
red flower
#

create_playing_card()

indigo mesa
hushed field
#

is there any context on a joker that is still ran even if the joker is debuffed?

tall wharf
#

what happened here

spring lantern
#

install counter strike source trol

tall wharf
#

ah

#

i guess i do in fact need the card base texture for this

robust jolt
#

if I only wanted sto have negative cards show up for a deck how would I do that

#

or is it hardcoded in the game and I cannot change it

indigo mesa
#

what is this?

robust jolt
tall wharf
#

p sure cryptid has that

spring lantern
frosty dock
indigo mesa
timid star
#

what can detect the modify_scoring_hand context?

manic rune
manic rune
#

the one piece

timid star
#

found a potential solution to my sandwich problem

#

i could use a voucher that handles the functions instead of doing dark magic with code that i barely understand

zealous glen
#

I dunno your issue but yes invisible Jokers can do a lot

timid star
#

hoping that this doesn't fail because that would mean to scrap my delicious sandwich idea

long sun
#

i clicked Play, why's this happening? 😭

gleaming zealot
long sun
#

uh. yeah.

#

so why's that happening?

quartz ravine
#

Do you guys think this sounds fun?

I almost want it to grant like + 10 mult when it upgrades. Otherwise just the permanent increase feels kind of bad

#

Also feel free to roast my art

long sun
#

with xmult, it doesn't scale hard enough

#

it also feels like an Uncommon to me

#

what counts as an increasing Three of a Kind?

quartz ravine
#

First you need a three of a kind 2's, then a three of a kind 3's, then 4's, etc

long sun
#

ohh i see

#

that can be reworded

#

lemme attempt that

quartz ravine
long sun
#

Gains X0.1 Mult if played hand is a Three of a Kind in 2s, rank increases (Currently X1 Mult)

gleaming zealot
#

that's really clever because an ace is both the highest and lowest rank

quartz ravine
#

The played hand could be a full house, or four of a kind or anything actually! And it wraps around too. So maybe it should go up to .3 per upgrade or something and be like square where you want to upgrade him early on

#

My wife is a pixel artist so she will replace my terrible art before I ship it 🙂

long sun
#

oh! lemme rework that then

#

i think .2 is fine!

#

Gains X0.2 Mult if played hand contains three scoring 2s, rank increases (Currently X1 Mult)

mystic river
#

hey there everynyan, is the game doing something weird suddenly or am i fucking stupid

long sun
frosty dock
#

Thanks! Looks good for the most part, I can have a closer look tonight. I'll probably end up rephrasing some things esp about the sound prefix note. Most importantly this is inaccurate:

Sounds can be loaded in any of your mod's json files.

frosty dock
#

I'll check it out

quartz ravine
#

Yeah I don't love my phrasing with that part either... thanks for the mod. It's just delightful to have a good framework to work with, makes modding fun

#

TY @long sun

manic rune
#

X0.2 should be colored, while Mult should be uncolored

#

like this

#

same goes with the stuff inside Currently too

stiff locust
#

what localization set are enhancements in

sturdy compass
# long sun (bump)

My guess is there’s a color field in your code somewhere that was set wrong

long sun
#

oh maybe

#
"{C:money}$#1#{} when played",
      "and scored",
      "{C:red,E:2}self destructs{}"```
#

it might be C:dollars, now that i think about it

sturdy compass
#

What is E:2?

stiff locust
#

i think what is wrong is the E;2

stiff locust
#

like the Probabilities in Oops All 6s

sturdy compass
#

Oh interesting

long sun
#

E:2 is what self destructs uses

tall wharf
#

chat

long sun
#

i think it makes it wavy + bold?

tall wharf
sturdy compass
#

Wait it wouldn’t be a loc_txt thing if it’s happening on play

long sun
#

EVILLLLLLLLL

manic rune
#

why did it go from 150 to 16

sturdy compass
#

Asking the real questions

red flower
indigo mesa
manic rune
#

pretty sure it shows the stats of the joker now, should be updated whenever anything alters it

long sun
#

ah i see. this happens when unlocking the new... wait, what? i didn't make a Joker, i made an Enhancement

#

ah i see. i left a Joker in on accident

granite turret
#

nasty stuff

long sun
#

well at least it shows in game :)

tall wharf
long sun
#

still crashing on Play though :(

granite turret
#

definitely a start!

granite turret
sturdy compass
long sun
#

mhm

sturdy compass
#

What does the calculate for that enhancement look like

long sun
#
calculate = function(self, card, context)
    if context.cardarea == G.play and context.main_scoring then
      G.E_MANAGER:add_event(Event({
        func = function()
          card:start_dissolve()
  
          G.E_MANAGER:add_event(Event {
            func = function()
              SMODS.calculate_context({
                remove_playing_cards = true,
                removed = { card }
              })
              return true
            end
          })
  
          return true
        end
      }))
    card.destroyed = true
    end
  end```
#

there might be a better way of doing this =w=

tall wharf
#

i think i ran out of ideas

granite turret
tall wharf
#

debuffs all consumables

granite turret
granite turret
#

still, sounds... quite hilarious :3

tall wharf
#

oh?

runic pecan
tall wharf
#

i just hate perkeo build nothing else

granite turret
tall wharf
#

which is why i am adding this blind

granite turret
#

i wonder if i should post my Blinds... i have lots, but only a couple sprited as part of a proof-of-concept system

granite turret
tall wharf
#

The Expiry

granite turret
#

expired consumables

tall wharf
#

yep

granite turret
#

that must smell awful

tall wharf
#

all consumables are forever debuffed

granite turret
#

FOREVER?

#

WHA-

tall wharf
#

they will get a debuff seal

granite turret
#

all the consumables you currently have just

#

long sun
#

it could be Destroys all consumables?

granite turret
#

the moment this shows up

tall wharf
#

yea it is only worth a dime now

timid star
#

the blind that debuffs barron, mime, and red seal steel kings:

tall wharf
long sun
#

you can also sell them before the boss :)

granite turret
#

OH FUCK

#

...pardon my language...
but WHAT

tall wharf
#

(it's the Height)

granite turret
#

GUH

#

that is disgusting

#

i love it

timid star
granite turret
#

seems a bit wild for a normal Boss

#

but who am i to say anything?

timid star
#

im thinking of making blinds that attack your cards instead

granite turret
#

i literally wrote an unskippable The Wall

tall wharf
#

you can pass this normally by playing low ass hands

timid star
tall wharf
#

and on final hand you can play whatever you wanna to score shitton

timid star
#

the voucher works, the cards don't score still

granite turret
#

it's worse

gleaming zealot
#

how git gud @ picel art

long sun
#

okay weirdddd the crash isn't because of my mod

#

i disabled it and it's still happening

granite turret
timid star
tall wharf
#

hey

#

i have that

granite turret
#

FRI-

tall wharf
timid star
long sun
tall wharf
#

🔥

timid star
#

make a blind in favor of chicot

granite turret
# granite turret

the idea behind this particular Blind is that it's more dangerous than a typical Blind, but can only be encountered if you have encountered specific other Blinds during the run
a secret boss, so to speak

manic rune
#

"We hate Chicot!" most balatro players say in unison

granite turret
granite turret
runic pecan
gleaming zealot
tall wharf
granite turret
timid star
gleaming zealot
#

not a problem for me !

granite turret
long sun
timid star
#

i love my perfectly normal set

quartz ravine
#

the first thing I did was start drawing them in a notebook, to see how the layout can even make sense