#💻・modding-dev

1 messages · Page 523 of 1

cursive gazelle
#

and doube the size under /yourmod/assets/2x

pure verge
#

yes it is

cursive gazelle
#

also you need to add atlas="magnet",

#

to your joker

pure verge
#

ok thx

agile path
#
    key = "trans_joker1",
    atlas = 'trans_joker',
    pos = { x = 0, y = 0 },
    rarity = 2,
    discovered = true,
    blueprint_compat = false,
    eternal_compat = true,
    cost = 4,
    config = { extra = { mult = 20 }, },
}
    
)

calculate = function(self, card, context)
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end

no crashes, but it didn't trigger. i'm assuming i forgot something?

#

no blueprint, you can't have this 20 multsmiley_face

cursive gazelle
#

girl

agile path
#

uh oh... yes?

cursive gazelle
#

calculate should be inside the joker code

agile path
#

ah

#

LMAO

cursive gazelle
#

lol

#

here ,

#
    key = "trans_joker1",
    atlas = 'trans_joker',
    pos = { x = 0, y = 0 },
    rarity = 2,
    discovered = true,
    blueprint_compat = false,
    eternal_compat = true,
    cost = 4,
    config = { extra = { mult = 20 }, },
    calculate = function(self, card, context)
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end
}```
#

you're missing a loc_vars and a loc_txt btw

#

but this should work without them

#

@agile path

#

you had exta () aswell

azure laurel
#

can you send the code in text?

mighty kiln
#

i need help making code that selects a random Joker

#

that the player has

cursive gazelle
#

and then do what

mighty kiln
agile path
#

IT Works

#

...except i need to make a new joker lol

#

but it works, nice

cursive gazelle
#

you need to calculate the random joker position in the config , you can do that with a for loop and psurodanrom , 1 and #G.jokers and in calculate retrigger said joker

cursive gazelle
agile path
#

i added text! it works hehe

willow scroll
#

whats the key for the sound played when a tag activates?

cursive gazelle
#

as a challenge from me i want you to make it scale when you play a pair

cursive gazelle
agile path
#

amab joker, nice

agile path
cursive gazelle
#

it's simple trust , just check vanilla remake

agile path
#

yessir!

lament agate
#

which mods has the most consumables

mighty kiln
#

how would i make a loop that goes every turn

cursive gazelle
#

not sure about mayhem since it has other mods integrated

cursive gazelle
red flower
azure laurel
cursive gazelle
#

idol code

#

the joker

mighty kiln
#

oh mb

cursive gazelle
#

lol

cursive gazelle
agile path
#

it is a lgbt mod pack after all

proven belfry
#

the ^1.1 mult calculation is making another message, how do I fix this

cursive gazelle
#

xmult_message

#

It expects a table tho

proven belfry
cursive gazelle
#

= { message = "message", colour = color }

proven belfry
#

ah

mighty kiln
#

i have this for choosing a random joker then retriggering it

mighty kiln
cursive gazelle
#

Oh yeah that works

mighty kiln
#

i used part of the ankh code

#

but now idk how to load the deck into the game

cursive gazelle
#

It doesn’t load?

mighty kiln
cursive gazelle
#

Oh i see

#

Missing a tab

#

The if statements isn’t inside the deck code

mighty kiln
#

ok

#

now i also need the get the card backs and select screen to work properly

mighty kiln
proven belfry
#

how do I do the funny misprint description glitch

proven belfry
cursive gazelle
cursive gazelle
proven belfry
#

which infuriates me

cursive gazelle
#

Localization file

lament agate
#

how do you check lines in other file in github

#

like

lament agate
#

i wanted to check if this is used in other files

cursive gazelle
proven belfry
cursive gazelle
#

Nxkoo give him the misprint text

mighty kiln
cursive gazelle
lament agate
cursive gazelle
#

Exactly

proven belfry
#

idk how to apply it tho

mighty kiln
# cursive gazelle Yes

SMODS.Back {
key = "construction_deck",
unlocked = true,
discovered = true,
atlas = 'construction_deck_atlas',
pos = { x = 0, y = 0 },

local chosen_joker = pseudorandom_element(G.jokers.cards, 'blu_choice')
-- Retrigger
if chosen_joker.ability and chosen_joker.ability.retrigger then
chosen_joker.ability:retrigger(chosen_joker)
end
}

#

thats the deck code

cursive gazelle
#

1 sec

mighty kiln
proven belfry
#

for the misprint stuff im making a time bomb joker that has "Detonates in {misprint effect} Rounds"

cursive gazelle
#
SMODS.Back {
    key = "construction_deck",
    unlocked = true,
    discovered = true,
    atlas = 'construction_deck_atlas',
    pos = { x = 0, y = 0 },
    local chosen_joker = pseudorandom_element(G.jokers.cards, 'blu_choice')
-- Retrigger
    if chosen_joker.ability and chosen_joker.ability.retrigger then
        chosen_joker.ability:retrigger(chosen_joker)
    end
}```
proven belfry
#

dangit it wont type

#

i mean '''lua

cursive gazelle
#

lol

#

i got it

gilded blaze
mighty kiln
#

i also get a crash when i try to load balatro with my mod

#

apparently the field at line 2 of main.lua is nil

cursive gazelle
#

send crash log

mighty kiln
gilded blaze
#

some critical thinking is needed tho

#

I'm just not sure if they understand what DynaText is in the first place

lament agate
#

shit's hard

proven belfry
#

forgive me for my incompetence but i taught myself lua a week or so ago so i could make a balatro mod but idk how to make a random whole number within a min/max range so how do i do that

gilded blaze
proven belfry
gilded blaze
#

💀

#

just code like what a modded joker would normally do

agile path
#

they work well, imma implement the scalling now

mighty kiln
#

but there is

agile path
#

brainstorm makes blahaj look like a submarine lol

proven belfry
#

should work

gilded blaze
#

pseudorandom('seed', min, max)

mighty kiln
#

i have the main file as "main.lua" in the json but it says its not there

proven belfry
gilded blaze
mighty kiln
#

well the game loads if i make the name anything but main.lua in the json

#

the mod dosent load

gilded blaze
#

check line 2 in your mod's main.lua

mighty kiln
gilded blaze
#

huh

#

what

#

why are you using NFS

#

you're trying to make a Steamodded mod

#

it should handle everything for you

mighty kiln
#

so if i delete that

gilded blaze
#

what are you trying to achieve here

mighty kiln
#

loading the deck script

gilded blaze
#

put deck code in a separate file, then load it in main?

#

💀

proven belfry
#

my vscode is seeing an if as an undefined global

mighty kiln
#

how would i load it in main

gilded blaze
#

SMODS.load_file('relative/path/starting/from/your/Mod/folder')

#

also put SMODS.Back in construction.lua

mighty kiln
#

ok

agile path
#

how to i make it check what hand types i play? i saw vanilla remake, but there's something i'm not quite getting

red flower
#

context.scoring_name == "Three of a Kind" for example

#

next(context.poker_hands["Three of a Kind"]) for contains

agile path
red flower
#

if context.before and context.scoring_name == "Three of a Kind" then would do something before the hand is scored if you played a 3oak

agile path
#

or if context.scoring_name == "Pair" then

can i level the mult up like this?

lament agate
#

N

#

help me

gilded blaze
mighty kiln
red flower
gilded blaze
#

do SMODS.Atlas first

red flower
lament agate
red flower
#

no idea

lament agate
#

fuck

agile path
mighty kiln
agile path
#

wrong choice of words oops

red flower
#

like card.ability.extra.mult = card.ability.extra.mult + 2

lament agate
#

@faint yacht what function do you hook for your randomized order trigger deck (ping me when you reply btw)

proven belfry
#

could anyone help me figure out why this is crashing the game?

red flower
#

whats the crash

mighty kiln
proven belfry
red flower
#

maybe the pseudorandom

#

you need to run it in a function

agile path
proven belfry
red flower
proven belfry
gilded blaze
#

add this field to your joker object:

set_ability = function(self, card, initial, delay_sprites)
    card.ability.bomb_rounds = pseudorandom('bomb', 2, 24)
end
proven belfry
gilded blaze
#

use main_end

proven belfry
gilded blaze
#

also
another good way to learn how to mod is to look at other mods

lament agate
#

look at Cryptid :clueless

distant junco
#

how to delete all of the jokers

gilded blaze
#

you might want to experience modded Balatro first with popular mods before making your own

mighty kiln
red flower
#

destroy?

agile path
distant junco
#

like destroy yeah

gilded blaze
distant junco
#

oops wrong word

mighty kiln
gilded blaze
#

did you move SMODS.Atlas to before SMODS.load_file

#

oh

red flower
distant junco
#

swag

gilded blaze
#

ok your Atlas object is wrong

red flower
gilded blaze
#

path takes a relative path starting from YourModFolder/assets/1x and YourModFolder/assets/2x

#

make sure there exists the same file name in both places

mighty kiln
gilded blaze
#

yep

#

then simply put path = 'construction_deck.png'

agile path
mighty kiln
gilded blaze
#

nope

red flower
agile path
#
        if context.before and context.scoring_name == ("Pair") then
            card.ability.extra.mult = card.ability.extra.mult + 2
            
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end
gilded blaze
#

remove the parentheses wrapping "Pair"

agile path
#

i'm going bit by bit, so it probably looks... half empty lol

#

oh

gilded blaze
#

add an end after the mult increase

agile path
#

so, == "Pair" ?

#

or else it loops?

gilded blaze
#

you need all of if then end per condition statement

agile path
#

yup yup, i forgot the end
thankies

#

if i were to run this, it shouldn't crash, correct? D:

manic rune
#

an advice when coding is that you shouldnt be afraid of crashes

#

:3

gilded blaze
#

crashes help you find the problem

manic rune
#

mhm

manic rune
#

id rather have crashes than bugs with no crashes lmao

lament agate
gilded blaze
#

reminds me of this abomination

#

where one SMODS commit broke all modded languages

#

see that white strip over there? it gets worse when you scroll down

proven belfry
#

this keeps breaking even though i copied the luchador stuff

manic rune
#

i dont think you need to use to_big on that honestly?

agile path
#

so...

it works
however, if my math stands correctly,
mult be going
5, 7, 9, 11

not

5, 7, 13, 19, 25...

mighty kiln
#

the game loads but in the deck select it dosent appear and all the other decks are moved around

manic rune
proven belfry
manic rune
#

seems like its related to main_end then

agile path
#

i think i know what's going on

        
            
    calculate = function(self, card, context)
        if context.before and context.scoring_name == "Pair" then
            card.ability.extra.mult = card.ability.extra.mult + 2
        end
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end

is it adding +4 mult instead? cause on config it says mult_gain = 2?

manic rune
#

have you tried if context.before and context.main_eval and context.scoring_name == "Pair" then 🤔 i dont really remember if you need context.main_eval on that one

gilded blaze
proven belfry
manic rune
#

your localize doesnt work

mighty kiln
manic rune
#

remove it

gilded blaze
#

what are you trying to achieve with your modded deck

agile path
manic rune
#

yes

proven belfry
manic rune
#

remove localize

proven belfry
agile path
#

is there any context.before blueprint and brainstorm

manic rune
#

text = ' '..(detonating and 'Sell Now') or 'youre fine :)'..' '

mighty kiln
gilded blaze
manic rune
#

also

#

G.UI.WHITE isnt a thing

mighty kiln
agile path
manic rune
#

mhm

manic rune
mighty kiln
proven belfry
manic rune
#

because if it did then it would crash

gilded blaze
#

yea

#

you're trying to execute lua code inside an unfinished table

manic rune
#

(detonating and 'Sell Now') means that if detonating is true, it will use 'Sell Now'

#

else it will use 'youre fine :)' instead

mighty kiln
agile path
#

would i also be able to put text saying something like "upgraded"?

manic rune
#

yes

faint yacht
proven belfry
# manic rune yes

the game is crashing because the line you gave me attempts to concatenate a boolean

manic rune
#

thats odd

manic rune
#

can you show me your code again, im pretty sure thats how it works 🤔

manic rune
faint yacht
gilded blaze
#

text = ' '..(detonating and 'Sell Now' or 'youre fine :)')..' '

#

your closing bracket was at the wrong place

#

oops

manic rune
#

🤔 i see

manic rune
agile path
mighty kiln
agile path
#

the return

manic rune
#

OH WAIT

#

thats the fucking crash 😭

#

UI is nil because G.UI doesnt exist............

manic rune
#

you can either return or use SMODS.calculate_effect there

#

id highly advise using a localization file btw :3

agile path
manic rune
manic rune
gilded blaze
# mighty kiln how do i finish an unfinished table

your joker object is a table
a table goes like this:

local table = {
    "value_1_as_array",
    "value_2_as_array",
    key1 = "value3_as_key-value_pair",
    key2 = "value4_as_key-value_pair",
}

you can't just do

local table = {
    key1 = "stuff",
    local var = 2 -- wrong, tables cannot be like this
}
proven belfry
manic rune
#

did you change colour

proven belfry
mighty kiln
manic rune
#

is it pointing to any line

#

-# can you just send the crash log sob

proven belfry
agile path
gilded blaze
manic rune
#

i have no clue what the "same line" in question is, i will assume thats the line with colour

manic rune
mighty kiln
agile path
#
    descriptions={
        Joker={
            j_jgbt_trans_joker1={
                name={"Trans Joker"},
                text={
                    "Both",
                    "{C:attention} Kings{} and {C:attention} Queens ",
                    "count as their counterpart",
            },
            },

             j_jgbt_blahaj_joker1={
                name={"Blahaj"},
                text={
                    "He's a good boy"},
            },
            }
        }
    }

my localization en-us so far

manic rune
manic rune
#

.

#

i said G.C.UI.TEXT_LIGHT, not G.UI.TEXT_LIGHT

#

sob

manic rune
# agile path ```return{ descriptions={ Joker={ j_jgbt_trans_joker1={ ...
return{
    descriptions={
        Joker={
            j_jgbt_trans_joker1={
                name={"Trans Joker"},
                text={
                    "Both",
                    "{C:attention} Kings{} and {C:attention} Queens ",
                    "count as their counterpart",
            },
            },

             j_jgbt_blahaj_joker1={
                name={"Blahaj"},
                text={
                    "He's a good boy"},
            },
            }
        }
    },
  misc = {
    dictionary = {
      your_mod_upgrade_message = "Upgraded!"
    }
  }
}
#

it would look something like that

agile path
#

oh, i added an ExtraEffects{}

oops

manic rune
#

you dont need it........

#

its just something from my own mod sob

wooden nexus
#

Is there a way for me to add new calculations btw?

agile path
#

ah, i see

manic rune
gilded blaze
wooden nexus
gilded blaze
#

otherwise you're stuck with syntax errors

wooden nexus
manic rune
#

ooh you got it working i see

wooden nexus
#

Mostly

#

There's no +score or +Complex Score so I need to make it

agile path
proven belfry
manic rune
#

mhm

#

then when you want to refer to that message, use localize("blahaj_upgrade")

wooden nexus
#

also read my name

proven belfry
#

oh

#

sry

wooden nexus
#

Trust me, i can be scarier if you keep pinging me

manic rune
wooden nexus
#

lol

wooden nexus
#

Like here's my test joker

#

I plan to make another one that's +iScore as I'll call it

mighty kiln
#

is this not a table?

umbral zodiac
#

the soul rate of a card is its percentage to spawn right

proven belfry
#

apparently this is crashing the game even though I defined total_rounds and bomb_rounds

manic rune
gilded blaze
umbral zodiac
#

ok cool

#

wasnt sure if it was percentage or weight

#

ty

manic rune
#

which should allow you to do stuff like

if context.joker_main then
  return{
    iscore = 1000
  }
end
proven belfry
manic rune
#

this is what the function does btw

wooden nexus
agile path
#

@manic rune

            card.ability.extra.mult = card.ability.extra.mult + 2
            localize("blahaj_upgrade")
        end

like so?

manic rune
#

oh you still do, you can refer from how the function is doing stuff

manic rune
agile path
#

does the message appear like spare trousers, wee, etc?

manic rune
wooden nexus
#

oh i did notice astronimica has a calculate score

manic rune
#

if anything id recommend relearning how lua tables work

wooden nexus
mighty kiln
mighty kiln
agile path
gilded blaze
#

also calculate is full lowercase

manic rune
gilded blaze
#

calculate = function(self, card, context)

proven belfry
# manic rune make a new run and try again

still crashed, here's the joker code

    config = {extra = {bomb_rounds = 999, total_rounds = 0}},
    loc_vars = function(self, info_queue, card)
        local main_end = nil
        if card.area and (card.area == G.jokers) then
            local detonating = card.ability.extra.total_rounds == card.ability.extra.bomb_rounds
            main_end = {
                {
                    n = G.UIT.C,
                    config = {align = 'bm', minh = 0.4},
                    nodes = {
                        {
                            n = G.UIT.T,
                            config = {ref_table = card, align = "m", colour = detonating and G.C.INACTIVE or G.C.WHITE, r = 0.05, padding = 0.06},
                            nodes = {
                                { n = G.UIT.T, config = {text = ' '..((detonating and 'SELL NOW') or 'youre fine :)')..' ', colour = G.C.UI.TEXT_LIGHT, scale = 0.32 * 0.9} }
                            }
                        }
                    }
                }
            }
        end
        return { main_end = main_end, vars = {
            card.ability.extra.total_rounds,
            card.ability.extra.bomb_rounds
        } }
    end,
    set_ability = function(self, card, initial, delay_sprites)
        card.ability.extra.bomb_rounds = pseudorandom('bomb', 2, 10)
        card.ability.extra.total_rounds = 0
    end,
    calculate = function(card, self, context)
        if context.setting_blind then
            if card.ability.extra.total_rounds > card.ability.extra.bomb_rounds then
                G.STATE = G.STATES.GAME_OVER
                G.STATE_COMPLETE = false
            else
                if card.ability.extra.total_rounds < card.ability.extra.bomb_rounds then 
                    card.ability.extra.total_rounds = card.ability.extra.total_rounds + 1
                else
                    card.ability.extra.total_rounds = card.ability.extra.total_rounds + 1
                    card:juice_up()

agile path
#

nvm

#

nvm

#

i see

#

skull emoji moment

gilded blaze
#

skull

latent perch
manic rune
#

id swap this out though, seems like thats a custom function

mighty kiln
#

is this part loading the other file

manic rune
#

its calculate = function(self, card, context)

agile path
#

no, it still says error :(

manic rune
#

show again sob

agile path
manic rune
#

if you didnt change the order then misc is in the wrong place

agile path
#

oh

#

cause misc is inside joker?

manic rune
#

it should be outside of descriptions

agile path
#

ah, i didn't know

#

right, cause descriptions are for cards

#

still error

manic rune
#

3: show again

wooden nexus
manic rune
#

card_eval_status_text, yes

agile path
gilded blaze
manic rune
#

yeah, what huy said

agile path
#

goddamn-

#

i thought i had moved it oops

wooden nexus
#

I honestly don't want the talisman support so I'll figure something with stuff like tobig and all that

manic rune
#

ah, ic

#

in which case just remove to_big

#

and use G.GAME.chips = G.GAME.chips + ...

#

and remove the if not Talisman... check

wooden nexus
#
    local complexscore = SMODS.calculate_individual_effect
    function SMODS.calculate_individual_effect(effect, scored_scard, key, amount, from_edition)
        local ret = complexscore(effect, scored_scard, key, amount, from_edition)
        if ret then
            return ret
        end
        
        if (key == 'score' or key == 'score_mod') then
            local e = card_eval_status_text
            card_eval_status_text = function() end
            G.E_MANAGER:add_event(Event({func = function()
                G.GAME.chips = G.GAME.chips + amount
                G.HUD:get_UIE_by_ID('chip_UI_count'):juice_up(0.3, 0.3)
            return true end}))
            card_eval_status_text = e
            card_eval_status_text(scored_card or effect.card or effect.focus, 'voice8', amount, percent)
            return true
        end
    end

    for _, v in ipairs({
            'score', 'score_mod',
        }) do
            table.insert(SMODS.calculation_keys, v)
    end
end```
#

like that?

agile path
#

is it still inside? D:

#

FUCK

manic rune
#

god your indentation sucks

agile path
#

wait

#

i figured it out xD

wooden nexus
#

me or kimi?

agile path
#

mine

wooden nexus
#

oh

manic rune
#

though i gotta be honest, i have no clue wtf this is for

#

if it doesnt work then remove it later

modern kindle
#

Good schmorning chat

manic rune
#

hi dilly

modern kindle
#

Hi bepis

agile path
#

is it not outside? cause i'm clicking on the description brackets and it's telling me that it's not inside lol

manic rune
#

i think it might be outside, yeah

#

try again

mighty kiln
#

this isnt loading the other file because the other file says to print "Deck Script Loaded" and it isnt

#

construction.lua isnt running

agile path
manic rune
#
if SMODS and SMODS.calculate_individual_effect then
    local complexscore = SMODS.calculate_individual_effect
    function SMODS.calculate_individual_effect(effect, scored_scard, key, amount, from_edition)
        local ret = complexscore(effect, scored_scard, key, amount, from_edition)
        if ret then
            return ret
        end
        
        if (key == 'score' or key == 'score_mod') then
            G.E_MANAGER:add_event(Event({func = function()
                G.GAME.chips = G.GAME.chips + amount
                G.HUD:get_UIE_by_ID('chip_UI_count'):juice_up(0.3, 0.3)
            return true end}))
            card_eval_status_text(scored_card or effect.card or effect.focus, 'voice8', amount, percent)
            return true
        end
    end

    for _, v in ipairs({
            'score', 'score_mod',
        }) do
            table.insert(SMODS.calculation_keys, v)
    end
end

can u try this 🤔

gilded blaze
proven belfry
#

im trying to make the outline color red when detonating is true but it's not working

manic rune
#

weird, what line is it pointing to

wooden nexus
#

the highlighted line

manic rune
#

ah

#

seems like scored_card is being seen as nil here

gilded blaze
proven belfry
manic rune
#

hm, i wonder why its not detecting scored_card

gilded blaze
#

it should be colour = detonating and G.C.RED or G.C.WHITE

proven belfry
manic rune
# wooden nexus

rq, might sound dumb but can you add card = card in return too, i gotta check smt

wooden nexus
#

card_eval_status_text(scored_card or effect.card or effect.focus, 'voice8', amount, percent)
return card = card?

agile path
#

oops, wrong video

manic rune
#

oh no, in your joker's calculate

gilded blaze
manic rune
#

add card = card in its return too

wooden nexus
#

like that?

proven belfry
manic rune
#

mhm

agile path
wooden nexus
#

forgot a comma lol

mighty kiln
#

i cant find SMODS.load_file or a function in the wiki to load another script

manic rune
#

.

#

OH

wooden nexus
#

oh wtf

manic rune
#

yeah uh

#

shinku, you typed scored_scard in your function

#

not scored_card

wooden nexus
#

.

manic rune
#

i was wondering why it didnt detect it lol

wooden nexus
#

note to self, have caffeine ~~(not caffeyne) ~~ while i code at midnight

manic rune
#

:p

gilded blaze
#

lmao

wooden nexus
#

Now to see if i can do it for complex score in a moment

modern kindle
#

I love my scards being scored

manic rune
#

anyways you can remove card = card after fixing that
-# i hope

gilded blaze
manic rune
#

also dilly have you seen stacked v1.0.4 :3

proven belfry
manic rune
#

i added some cool description changes to the mod

mighty kiln
#

WHAT IS THE FUNCTION TO LOAD ANOTHER FILE

modern kindle
manic rune
#

i wish

wooden nexus
#

Also I realized I can do XScore and XiScore possibly later on

#

oh geez. xScore would go nuts

gilded blaze
proven belfry
gilded blaze
#

if you're not using debug tools, I'm quitting

modern kindle
modern kindle
gilded blaze
#

oh

#

I forgor to mention

wooden nexus
#

wait wtf just happened

gilded blaze
#

yep, SMODS.load_file("path/to/your/file.lua")() <- this

manic rune
# manic rune

ive also added some pretty neat effects too
-# like the one you are seeing in the image,second one

wooden nexus
mighty kiln
proven belfry
wooden nexus
#

I told it to give in joker_main and the score vanishes

gilded blaze
manic rune
gilded blaze
#

SMODS.loadfile(stuff)()

modern kindle
wooden nexus
#

oh

modern kindle
#

ie i have my boss which gives chipos, +mult, and xmult and money

#

will it only convert the +mult of orverwrite everything it gives

manic rune
#

it will convert the +mult

wooden nexus
#

oh my gosh

#

Imaginary score (REAL)

gilded blaze
#

nice

manic rune
#

nice, gj shinku :3

wooden nexus
#

and imaginary score works in Context_main

manic rune
#

mhm, thats because nothing is affecting your imaginary score in other contexts i think

#

for G.GAME.chips specifically its affected by stuff

mighty kiln
#

i got it to load and it added another deck like i wanted but the deck is this

modern kindle
manic rune
#

lmao wtf

mighty kiln
wooden nexus
#

It just needs sfx when it activates

proven belfry
# proven belfry

@gilded blaze do you have a fix for the color bug or is it hopeless

manic rune
agile path
#

He's so cute

wooden nexus
#

because rn it doesn't show anything and doesn't have any sound

modern kindle
manic rune
#

mhm you gotta do that yourself

rocky plaza
modern kindle
#

also whats the complex score for vs the normal score, custom blinds?

manic rune
#

anyways i will be going to sleep early today, got a bus tomorrow to catch

agile path
manic rune
#

peace everyone

modern kindle
#

rest well bepis, i will watch you sleep

agile path
manic rune
agile path
#

ngl... i might keep the blueprint "bug" a feature...

rocky plaza
agile path
#

so, earlier, the scaling joker was scaling 2 extra times cause bp and bs were copying it

rocky plaza
agile path
#

i might actually keep that lol

gaunt phoenix
#

What's the problem with my 3rd line here ?

gilded blaze
rocky plaza
manic rune
#

is_suit*

rocky plaza
#

oh

#

right i forgor

manic rune
#

-# im on phone now so i wont be able to help with complicated stuff :3

manic rune
manic rune
#

later

#

i will sleep at uhh

#

12

gaunt phoenix
manic rune
manic rune
rocky plaza
#

itll handle the smeared joker logic

gaunt phoenix
mighty kiln
#

crash says assert isnt a valid function

agile path
#

imma try to work on a different joker

modern kindle
agile path
#

is there any context to after a round ends?

manic rune
#

context.end_of_round and context.main_eval

agile path
#

what main_eval?

#

what's*

manic rune
#

shrug, u r meant to use it with context.end_of_round though else it will trigger a lot

modern kindle
#

yea i learned that the hard way

rocky plaza
#

basically the place where all jokers that have an effect at end of round are intended to trigger

#

yeah if you dont have context.main_eval then some other contexts with context.end_of_round are called

#

hence context.main_eval prevents duplicate triggers

mighty kiln
agile path
#

if context.end_of_round and context.main_eval then

?

rocky plaza
#

oh

rocky plaza
mighty kiln
agile path
#

then return whatever, yes?

manic rune
#

can you show me your mod's files in vsc

rocky plaza
manic rune
#

not that

#

your mod's files

#

with the folders and allat

agile path
mighty kiln
manic rune
#

you couldve just took a ss of the files on the left of your code but sure

#

whats inside data

modern kindle
#

probably should be ./data/decks/construction.lua no?

manic rune
#

mhm

gaunt phoenix
#

does anyone knows why ?

manic rune
#

not how you use SMODS.add_card

mighty kiln
manic rune
#

hmm

#

weird

rocky plaza
# agile path i want to start as 3x mult, lose 0.25x mult each round

oh ok so at end of round you'd do something like this:

if context.end_of_round and context.main_eval then
  card.ability.extra.x_mult = card.ability.extra.x_mult - card.ability.extra.decrement
  -- replace these with the appropriate config variables
  if card.ability.extra.x_mult <= 0 then
    SMODS.destroy_cards(card)
    return {message = "Destroyed"}
end
mighty kiln
agile path
modern kindle
#

i guess try adding the ./ like i said since it isnt present

gaunt phoenix
manic rune
#

yeah what dilly said

manic rune
#

by passing a table of arguments in there

#

what you are doing with SMODS.add_card is inserting an entire card in there, which doesnt work

mighty kiln
modern kindle
#

i beg of you to read what we are saying

modern kindle
modern kindle
mighty kiln
#

i thought you were talking to somebody else

#

mb

#

whats a ./

rocky plaza
# mighty kiln

i believe you are supposed to load in the other files from the main file

modern kindle
rocky plaza
#

oh

manic rune
# gaunt phoenix wdym ?

replace your code with this
SMODS.add_card { set = "Base", enhancement = "m_stone", area = G.deck }

modern kindle
mighty kiln
#

it has a problem with "assert" i think

modern kindle
#

it does not, because i use it

mighty kiln
modern kindle
#

why else would i have told you to use it

manic rune
#

just add a ./ in your SMODS.load_file

modern kindle
#

ive said that like 3 times so far lmfao

manic rune
#

3:

mighty kiln
#

THATS WHERE I PUT THE ./

#

sorry

manic rune
#

really? show code again

modern kindle
#

nothing hes shown shows that he put it in yet, thats what ive been waiting for an update on

mighty kiln
#

i put it in

manic rune
#

and it still doesnt work?

modern kindle
#

you also saved it?

mighty kiln
mighty kiln
manic rune
#

3: u can just send the crash log

agile path
modern kindle
#

you didnt close a loc_txt

manic rune
#

ctrl + C at the crash screen and ctrl + V over here

modern kindle
#

[SMODS construction-deck-mod "main.lua"]:8: Error processing file './data/decks/construction.lua' for mod with ID 'construction-deck-mod': [SMODS construction-deck-mod "./data/decks/construction.lua:9: '}' expected (to close '{' at line 2) near 'loc_txt'
Stack Traceback

manic rune
#

. OH, its in the middle of the log-

#

god damn it i keep scrolling to the bottom

#

sob

spice wadi
#

Surely the error checking in vsc should've picked this up 😭

modern kindle
#

youd think

manic rune
#

i will guess they dont have lua extension installed

mighty kiln
spice wadi
#

Is the actual file here

manic rune
#

show the entire thing

spice wadi
#

Probably missing comma?

modern kindle
#

yea just post the file

manic rune
#

yes ur missing commas

#

download lua extension pls 3:

mighty kiln
manic rune
#

it should tell you whenever you are missing a comma in a table

mighty kiln
manic rune
#

no

#

thats the same thing isnt it

mighty kiln
#

wait no i didnt save it

manic rune
#

you are missing pos = {x = 0, y = 0}

#

but other than that, yeah it should be fine

#

though calculate wont work

mighty kiln
spice wadi
#

not the single question mark 😭

#

if you have a question ask

mighty kiln
#

is it supposed to be function calculate?

spice wadi
#

im guessing youve set it up wrong, not sure how cos i dont do anything deck or retrigger related

manic rune
#

it wont retrigger

mighty kiln
manic rune
#

yes

mighty kiln
#

i used the red seal code

manic rune
#

huh, really

#

didnt know theres :retrigger in jokers' ability

mighty kiln
#

oh

#

there probably isnt

manic rune
#

but also, red seals arent even meant to be used for jokers so thats probably why

mighty kiln
#

i just need it to do its action twice

modern kindle
#

yea, youd have to hook calc seal for jokers

#

cause i do that

manic rune
#

this is a deck though so

modern kindle
#

oh yea

#

does hooking work for decks or do you need to patch that

manic rune
#

i wonder if you can still use if context.retrigger_joker_check then here

modern kindle
#

one day i should make the deck of only face cards since theres the deck without face cards

agile path
modern kindle
#

lmao

mighty kiln
#

can i just make the chosen_joker loop its action

rocky plaza
# agile path can i make it cap at a specific mult? say 1.5 or 1.25x

sry for not getting back to you sooner, my mom just told me to help with some chores for a bit
assuming this code is in your end of round context, then this should be it

if card.ability.extra.x_mult > 1.5 then
  card.ability.extra.x_mult = card.ability.extra.x_mult - card.ability.extra.decrement
end
#

so basically if the joker's xmult is greater than 1.5, then subtract

modern kindle
#

what kinda chores did u do

rocky plaza
modern kindle
#

awesome, i hope you guys got awesome groceries

#

for a cheap price

agile path
red flower
#

hi dilly

modern kindle
#

N ♥

rocky plaza
modern kindle
#

hi

#

i had it ready for u immediately

chrome widget
#

Hello!!!

modern kindle
#

Winterrrrr

rocky plaza
modern kindle
#

Winter i need your goddess powers

agile path
#

just swap numbers i assume

chrome widget
modern kindle
mighty kiln
#

do i need a (global) in front of pseudorandom_element

agile path
chrome widget
#

Macrodosing

modern kindle
#

either 1. my amazon package arrives today like it claims when it isnt even out for delivery
2. the facebook marketplace guy with the crt actually comes today and answers me

mighty kiln
chrome widget
#

(I use injections anyway so this is aside me)

modern kindle
#

what if i eated all of your injections

rocky plaza
# agile path just swap numbers i assume
if card.ability.extra.xmult < card.ability.extra.cap then
  card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.increment
end

again assuming this is in the end of round context u set up

modern kindle
#

what would happen

chrome widget
#

It'd probably just do nothing?

#

I mean you met get raised estrogen levels for a little while but I think injection oil suspensions don't get absorbed the same way in the stomach

modern kindle
#

hmmm

mighty kiln
modern kindle
#

would it inconvenience you slightly

chrome widget
#

Yes

#

If you make my acne come back I'm killing you

modern kindle
mighty kiln
#

huh

#

it shouldnt be

agile path
#

this correct for triggering x_mult?

mighty kiln
rocky plaza
agile path
#

for now, it should only be 2x

rocky plaza
#

also can i see your config variables just to make sure everything exists?
so like config = {extra = {...}}

modern kindle
agile path
rocky plaza
#

ok neat then your joker should work

mighty kiln
#

the deck has properly loaded its just smol

modern kindle
#

that is definitely small

agile path
#

i'm slowly getting the grasp of this

modern kindle
agile path
#

also kinda organized this a bit

modern kindle
#

my life was saved when i was told about localization dumping because i was doing it manually for ages

red flower
mighty kiln
agile path
modern kindle
mighty kiln
agile path
#

beautiful

#

time to try

modern kindle
#

yep!

winged axle
# agile path

I'm thinking that it could be a consumeable item instead with "random joker gains ["Estrogen"](2X mult)"

modern kindle
#

disable all other mods but your own before using it obv

#

but its a treat

mighty kiln
#

whats the res of the decks

agile path
#

i'm only making sure the xmult works

winged axle
agile path
#

starts as a 1.5x, each round gets 0.25

#

caps at 3x or 3.5 something

#

do you guys use any mods to add jokers to the joker lineup? it's really fun to code these, not fun rerolling the shop 145 times

manic rune
#

debugplus

#

press 3 on any joker in the collection to spawn it

cursive gazelle
#

Great job

mighty kiln
#

how would i make the deck bigger

#

and also the actual function of the deck

agile path
#

x2 works

cursive gazelle
mighty kiln
#

no like the cards are small

mighty kiln
rapid stag
#

how can i do disallow a hand ala the psychic, as a joker effect? - i want to disallow a specific type of poker hand

red flower
#

it should be in vanillaremade

rapid stag
#

no, i want the joker to prevent the hand

red flower
#

yes

rapid stag
#

i looked at vanillaremade's psychic, but it didn't help

red flower
#

why

rapid stag
#

...wait, debuff_hand isn't when the hand is debuffed, it's to debuff the hand?

red flower
#

yes

rapid stag
#

huh, ok

red flower
#

that's debuffed_hand i think? kinda confusing

rapid stag
#

makes sense cirDerp

lament agate
#

im just gonna give up trying to figure out the joker trigger order hook 🥀

mighty kiln
#

how do i make him bigger

#

changing px and py scales it but how do i find the right numbers

gaunt phoenix
#

How could I count the number of different suits in played hand ?

modern kindle
#

actually smods wiki should say the correct atlas sizes for normal things, interesting it doesnt in smods.atlas or back

mighty kiln
#

where is that in the smods wiki

modern kindle
#

you woudlnt find it there, i just said it isnt in there when it should be, im looking to see what the sizes are now

lament agate
#

it should be the same as Jokers

#

71*95

mighty kiln
#

every other mod with decks says 71x95 but thats the size it was when it was smol

modern kindle
#

yea it is

#

do you have both the 1x and the 2x
idk why else itd be small

gaunt phoenix
mighty kiln
#

both the assets in 1x and 2x are 69x93 because thats the size of 1 card with a pixel between it and the edge

#

but making that the px and py makes it small

ivory widget
agile path
#

chat, am i cooking?

ivory widget
mighty kiln
ivory widget
# mighty kiln aseprite

Sprite > Sprite Size > change both Width and Height to 200%, Method: Nearest Neighbor > OK
I believe that will work, but i havent used aseprite

modern kindle
#

<@&1133519078540185692> kill him

#

shoot him so dead

#

obliterate his family line

#

thank u

agile path
mighty kiln
#

now to just do the function of the joker

agile path
slim ferry
# mighty kiln aseprite

export > export as, then do whatever as long as the file name is the same and the size is 200%

agile path
#

so, i just turned off pixel art smoothing and it crashed

#

opened the game agin, turned off and on a bunch of times and it didn't crash???????

clear ocean
rocky plaza
agile path
#
config = { extra = { x_mult = 1 }, },
        
            
    calculate = function(self, card, context)
       if context.end_of_round and context.main_eval and card.ability.extra.x_mult <= 3.5 then
        card.ability.extra.x_mult = card.ability.extra.x_mult + 0.25
        return {message="Upgrade"}
        
       end
       if context.end_of_round and context.main_eval and card.ability.extra.x_mult == 3.5 then
        return{
            message="Fully Upgraded"
        }
       end
        if context.joker_main then
            return {
                xmult = card.ability.extra.x_mult
            }
        end
    end
}

oop, this

rocky plaza
#

needs to be < 3.5

agile path
#

so <3.5

#

but everthing else works well

rocky plaza
#

hopefully ur enjoying modding balatro
its really fun once you understand stuff

agile path
#

fuck, i definitely am

#

i only am doing well cause you lot helped

#

in the contexts, can i add an "or"?

#

like, context.scoring_name == "Pair" or context.scoring_name == "Two Pair"

red flower
#

yes but it needs to be in parenthesis

agile path
#

both of them?

sturdy compass
#

the whole expression

agile path
#

(context.scoring_name == "Pair" or context.scoring_name == "Two Pair")

sturdy compass
#

yup

agile path
#

like so?

red flower
#

like this context.before and (context.scoring_name == "Pair" or context.scoring_name == "Two Pair")

agile path
#

so now it'll check if it's one or the other

red flower
#

yeah

#

else it will check (before and pair) or two pair

agile path
#

why is it red

#

bruh

red flower
#

or and

agile path
#

fixed, yeah

rocky plaza
#

yeah, and has higher precedence over or (like order of operations)

quick kraken
#

Can I change the price of vouchers with a tag without needing to go into the source code and hook/patch something?

#

vanilla remade is not helpful because it does G.GAME.shop_free = true for coupon tag

red flower
#

you would need to do the part after that but for the voucher shop area

agile path
#

is there a way for me to add text to let people know how much mult and xmult they're getting?

red flower
agile path
#

kinda like how for example madness does

rocky plaza
agile path
#

yes

#

ah, hover

#

sorry, i didn't read correctly

agile path
#

"{C:inactive}(Currently {X:mult,C:white} X#2# {C:inactive} Mult)",

here, yes

red flower
#

you would put the value that updates in loc_vars

#

thats #2#

rocky plaza
#

make sure u have a loc_vars function and return {vars = {your value here,
..}}

agile path
#

like so

#

oh

pure verge
#

my game is loading but my mod doesnt show up

#

i am using balatro mod manager

wooden nexus
agile path
#
    loc_vars = function(self, info_queue, card)
        return { vars = {card.ability.mult} }
    end,
#

okay so, i did that
do i need to add anything to my localization file?

red flower
#

#1# is the mult now

agile path
#

ah, i think i forgot something
mult_gain?

red flower
#

yes, #1# would be card.ability.mult

tall wharf
#

is adding shit to hud the new another card area

red flower
#

also it should be card.ability.extra.mult i just noticed

red flower
agile path
#

or is xmult #2#

red flower
#

if you want a #2# you need to add a second value to the return table

agile path
#

yeah, makes sense
thank you

clear ocean
#

currently reworking my mod, any reason why the localisation isn't appearing? i'll attach the lua files in a second

red flower
#

en-us

clear ocean
#

mods beem this guy

red flower
#

<@&1133519078540185692>

wooden nexus
#

<@&1133519078540185692> ban this fool

clear ocean
#

i got this error which probably means its something about my loc file likely so progress

red flower
#

ty mods

karmic creek
#

why are the messages so long I have to scroll so long

clear ocean
red flower
#

mister beast requires a lot of steps

clear ocean
#

mr breast give me money

red flower
#

for the mod youre missing the id

#
Mod = {
  modid = {
            name = "Galore",
            text = {
                ""
            }
        },
}
clear ocean
#

thanks but i don't think that's the problem as i got the same error

#

here's the metadata file just in case i forgot something

red flower
#

can i see the loc file again

clear ocean
red flower
#

thats not what i said

clear ocean
#

isn't that what the loc files are?

red flower
#

i mean you corrected it wrong

clear ocean
#

ohhh

#

thanks

pure verge
#

when i open balatro nothing happends and there is no joker

#

please help

spice wadi
pure verge
brave blade
#

How do I make this code blueprint compatible? (If you're wondering, this code makes a spectral card for every 5 cards destroyed)

spice wadi
#

in the SMODS wiki

pure verge
#

ok thanks

clear ocean
spice wadi
clear ocean
brave blade
brave blade
pulsar gull
#

am i getting context.post_trigger wrong? shouldn't the chips and mult values be printed after each joker scores? it seems to behave the same as context.other_joker

spice wadi
sturdy compass
red flower
brave blade
#

The only parts inside not context.blueprint are the incrementing of the value and the display of the value, but the part that might be causing issues is the part where the card checks if the amount of cards destroyed is at the limit

red flower
#

iirc you can use it to modify the return so it makes sense

clear ocean
chrome widget
#

The VMU is one of the more distinctive memory cards in existence so I think that's my preferred

clear ocean
#

I have my own VMU and PS1/2 cards but they are not the originals so I'll likely use it as a physical reference, and the one on Wikipedia as a coloured reference.

brave blade
chrome widget
#

OEM PS1 memory cards were by default gray to match the console, although they came in multiple colors

brave blade
chrome widget
#

Same with PS2 and black. Also helped define PS1 vs PS2 memory cards

clear ocean
#

they do, but i figured the classic gray would be the most recognisable since it came with the original console bundle

chrome widget
#

Because for some reason you can't save PS1 games to PS2 memory cards when played on PS2

clear ocean
#

the reason i didn't think on doing ps2 since the original is black

brave blade
clear ocean
#

dreamcast is the one i would like to recreate, but psx would be easier and more recognisable

red flower
#

do both :3

clear ocean
#

maybe... i don't want to overwork myself for this and i have a job now

red flower
#

congrats

modern kindle
clear ocean
#

screen enjoyer 💯 i love having a little squid icon upside down when in the main menu

#

i got my own wii too (i got a lot of game consoles lol)

chrome widget
#

Screen absolutely. The buttons are like the main part of the VMU look

clear ocean
#

i'm assuming the other one was a budget one as it doesn't have any the bells and whistles

modern kindle
#

I also do, ive got all these
(Pardon the mess)
And many games for em
Im trying to figure out a good way to separate displays when I dont want them mirrored though my av switches but thats being a nuisance to theory craft

red flower
#

i will steal all of them

clear ocean
#

hold on let me show you mine

modern kindle
red flower
#

ok i can leave u the gamecube

clear ocean
modern kindle
#

Hell yea
I see you're running the esds switch too
Love them things

#

Wish they had a 16 port instead of 8 as the max

#

But ive got 2 8s put together as of today

normal crest
chrome widget
#

I'd be a video game collector if only I wasn't spending all my money on model kits

clear ocean
red flower
#

i'd be a videogame collector if money was real and in my pockets

sturdy compass
#

I wish I still had me Wii. I genuinely have no clue where it went lmfao

modern kindle
#

Im also getting shenmue and jet set radio soon for the dreamcast
What have you got so far for that menace?

clear ocean
#

part of the reason my room isn't fully clean is because i have the smallest room in the house

normal crest
#

Wouldn't that be the opposite

#

Smallest so less time to clean

clear ocean
#

not if you have the collector austim i am starting to run out of space and i can't throw the boxes away as we plan to move in the future

#

areowings and my brother has night of the living dead 2

#

i did have shenmue but the first disk doesn't work even after a resurface and testing on another dreamcast at a mom and pop store

#

at least i do better than my siblings as i put away my clothes and sweep the floors and such

wet crag
#

Where should I start in making a Joker which turns all Blinds into The Plant?

clear ocean
#

why would you do that

#

the baron-mine repellent