#💻・modding-dev

1 messages · Page 692 of 1

red flower
#

your booster key doesn't have it

narrow prawn
#

still happens

red flower
#

can you post the full log

narrow prawn
red flower
#

oh also remove the math.random thing

#

your booster also doesn't have that

#

it's a vanilla thing with the multiple artworks

red flower
narrow prawn
#

i figured it out

#

it was because i capitalised the P

red flower
#

oh yeah i didn't notice that lmao

narrow prawn
#

finally works now

red flower
#

just to make sure, you know the description can have multiple boxes, right?

narrow prawn
#

they can?

#

oh

#

how

slate turtle
#

POLTERWORX manages tetration right

whole lava
#

how can i hide the pokerhands?

red flower
narrow prawn
#

oh

red flower
narrow prawn
#

that simple

red flower
whole lava
slate turtle
# red flower amulet

long story short i plan adding tetration to my mod (but not stupidly overpowered just. balanced.)

red flower
#

poker_hand?

#

i dont remember

red flower
#

there's an explanation on higher operations in vanillaremade

slate turtle
red flower
#

even if you did it wouldn't make sense without higher number limits

#

amulet is fine to depend on since the most popular mods require it

whole lava
slate turtle
#

got polterworx to see how it manages tetration

#

AND WHY THE FUCK IS EVERYTHING IN 1 .LYA

#

WHY IS IT DOING THTA

red flower
#

polterworx uses amulet lmao

#

i love when people ignore me

slate turtle
#

i know

#

but WHY IS IT IN 1 LUA

#

WHY IS IT IN ONE SINGULAR .LUA

fading rivet
red flower
#

idk jen things

fading rivet
#

oh nvm

#

I though you where referring to 1 index

#

anyway ctrl f my beloved

red flower
#

they ran into the local variable limit that was funny

#

some other old mods are also one file like cardsleeves

slate turtle
#

ig i'm taking the tetrationmult function from Amulet

whole lava
#

wth am i doing....

versed swan
dapper sun
#

although i understand the concept of personal preference, sometimes some things are just wrong

versed swan
#

Yeah no I had a heart attack the first time I saw it

slim ferry
#

hit the local variable limit btw

versed swan
#

no shade just thought this was funny

tepid crow
knotty wren
#

Hiii, is there a way to trigger a joker everytime a listed probability happens? (ie. 20mult on lucky card, broken glass, tarot from 8ball, 1.5x on bloodstone etc)

knotty wren
#

should be context.result?

tepid crow
#

That's what you'd check if the probability succeeded, you'd use pseudorandom_result to see if it happened at all (otherwise you might accidentally trigger your joker on other contexts that use .result)

#

(though I don't think there's one, it's a good habit to get into)

slim ferry
#

the issue is more if you check for not context.result

#

because thats like everything

knotty wren
#

so it should be like first line if context.pseudorandom_result then second line if context.result true? then

tepid crow
#

Sure. Or with an and

knotty wren
#

I've only ever done one mod and it got lots of dl so I never bothered learning more qwq

#

ahh right

#

but to check if the result is true is it actually context.result true?

tepid crow
#

You can do context.result == true, or context.result as shorthand

knotty wren
#

I'll try that thankss :3

#

oh also, is the method for adding images to jokers the same as smods old calc?

#

what I mean, this would work right?

#

my old mod was made on smods old calc and I have no idea why I did that, maybe something wasn't working on the new one

fading rivet
idle plaza
# fading rivet

if card.area and card.area.config.collection then to check if the joker is in the collection.

fading rivet
#

thx

knotty wren
#

which was the mod to test out the jokers? like, creative mod sbsbbjks

#

idon remember

fading rivet
#

debugplus

knotty wren
#

amaze amaze

rigid solar
rigid solar
#

oh wow that's so much simpler than i expected

#

thanks

fading rivet
#

np

rigid solar
fading rivet
rigid solar
#

ignore the fact the _card isnt at the right place, i just moved that

fading rivet
rigid solar
#

no it's just a table of key, edition, table of stickers

fading rivet
#

try create card and emplace

#

instead of add card

rigid solar
#

ok

slim ferry
#

oh yeah

#

add card is

#

specifically for adding cards to their default areas and doing add_to_deck and emplacing and stuff automatically

rigid solar
#

ok ok

#

didnt help 🤔

fading rivet
rigid solar
#

oh nvm

rigid solar
#

it's the space to the left and right

fading rivet
#

yeah

rigid solar
#

Ok I need to resize stuff a bit but it works perfectly, thanks!

cinder elk
#
SMODS.Joker {
    key = 'nightmareeyes',
    atlas = 'mjm_CustomJokers',
    pos = { x = 4, y = 0 },
    rarity = 1,
    blueprint_compat = true,
    cost = 3,
    config = { extra = { odds = 4, type = 'Pair' } },

    loc_vars = function(self, info_queue, card)
        local numerator, denominator = SMODS.get_probability_vars(card, 1, card.ability.extra.odds, 'j_mjm_nightmareeyes')
        return { vars = { numerator, denominator } }
    end,

    calculate = function(self, card, context)
        if context.joker_main and
   context.scoring_name == card.ability.extra.type and
   G.consumables and G.consumables.cards and G.consumables.config and G.consumables.config.card_limit and
   #G.consumables.cards + (G.GAME.consumable_buffer or 0) < G.consumables.config.card_limit and
   SMODS.pseudorandom_probability(card, 'j_mjm_nightmareeyes', 1, card.ability.extra.odds) then

            G.GAME.consumable_buffer = (G.GAME.consumable_buffer or 0) + 1

            return {
                extra = {
                    message = localize('k_plus_spectral'),
                    message_card = card,
                    func = function()
                        G.E_MANAGER:add_event(Event({
                            func = function()
                                SMODS.add_card {
                                    set = 'Spectral',
                                    key_append = 'j_mjm_nightmareeyes'
                                }
                                G.GAME.consumable_buffer = 0
                                return true
                            end
                        }))
                    end
                }
            }
        end
    end
}```

i'd like to figure out why this isnt firing
#

if possible

fading rivet
cinder elk
#

noted; thanks much

knotty wren
#

how do I make a joker give 2 dollars when it's triggered but not on the joker scoring phase

gaunt folio
#

trying to make this trigger per negative joker owned, how can i make this work? doesnt currently

knotty wren
#

oh I thought it was more complicated

#

it had that in a template I was following but it said ease_dollars(G.GAME.round_resets.blind_ante*2)

gaunt folio
knotty wren
sturdy compass
#

No it won't do that

knotty wren
#

how can I?

#

I have to make a return with a message?

sturdy compass
#

You're doing stuff with hitting probabilities right?

#

Assuming you set up your calculate right, you should be able to just return dollars = value in your return table

knotty wren
#

like that?

sturdy compass
#

You don't need the extra, the card = card, or the colour

fading rivet
#

am I tweaking or does extra actually do something
i've never heard of it but thast 2 messages now

sturdy compass
#

and value should be whatever amount of dollars you're giving

sturdy compass
fading rivet
#

does anything in smods interact with it

#

oh wait do you mean like having 2 seperate effects?

sturdy compass
#

kinda but you can also just SMODS.merge_effects instead

fading rivet
#

ah

red flower
#

SMODS.merge_effects is my favorite child

red flower
#

may i recommend new ones

knotty wren
#

yes I'd like new ones

#

idk how old the examples are in this one

red flower
knotty wren
#

hell yeahhh thankss

#

my boy

#

how do I spawn in things with debugplus

tepid crow
#

hold tab to see all the keybinds

knotty wren
#

ahh!

#

thanks qwq

wispy falcon
#

Where do I find when cards get drawn to hand, so that I can patch it for my boss blind? I can't seem to find it

gaunt folio
slim ferry
#

its (card.edition and card.edition.negative)

#

or (card.edition and card.edition.key == "e_negative") works too iirc

frosty rampart
wispy falcon
red flower
#

if context.drawing_cards then return { cards_to_draw = 0 } end?

slate turtle
#
return { vars = {card and self.config.ee_mult or card.ability.extra.ee_mult, card and self.config.ee_mult_mod or card.ability.extra.ee_mult_mod } }
wispy falcon
dawn knoll
#

what code do i use if i want a consumable to change the enhancement of selected cards

red flower
red flower
dawn knoll
#

thx

red flower
#

doing this also doesn't really matter since card always exists

slate turtle
knotty wren
#

it is giving me dollars when a listed probability happens, +8 permanent chips, and then it gives the chips on scoring, but the problem is, it is giving me 4 dollars instead of 2

red flower
red flower
#

also you don't need the colour in the returns, it does it automatically

#

the bottom one i mean

knotty wren
#

ahh

#

wait so I just leave the return dollars?

red flower
#

yeah

#

that already calls ease_dollars

knotty wren
#

didn't realize that

#

also, I want blueprint to be able to copy the dollars, but not gain chips, but when I try to nest the ifs it says I don't "end" the first statement even if I do

keen totem
#

SMODS.calculate_effect() is basically just a return in a calculate function but without returning right?

#

like the same effects are available as returning

#

things like message and dollars and all

keen totem
#

yea cause im realizing now that i can just calculate dollars instead of doing ease_dollars and a message

hidden notch
#

Whoever reworked G.FUNCS.get_poker_hand_info, it's amazing, thank you! :3

knotty wren
#

is there just a(n easier) way to make blueprint give the money, but not gain the chips?

red flower
#

can you paste your current code

red flower
white zinc
#

my joker doesn't seem to ever increment my card.ability.extra.num_of_cards var. anybody know what i did wrong?

knotty wren
white zinc
#

number of cards played that are not face cards

#

it's supposed to cycle through your played hand and only increment when a non-face card is played. if a face card is played, it resets to 0

red flower
#

G.playing_cards is all cards, cards played is context.full_hand or G.play.cards

white zinc
#

ahhh, yes that works

#

oops lol, thanks

knotty wren
#

I'll just make it blueprint incompatible

red flower
#

weird

red flower
#

i let autocomplete handle it for me..

knotty wren
#

ah damn lhkadsbhlsadbjl

#

I didn't notice either

#

I'll fix it and try it

wispy falcon
#

Why does this not make the play button blue (active)? The first if gets triggered, that isn't the problem

#

'win_game' was just for testing

#

Wait, I think I'm dumb

frosty rampart
#

i will say, why are you patching and not just hooking the function

wispy falcon
#

Also true

frosty rampart
wispy falcon
#

Okay, got the button working. Only problem with it is that when it gets clicked, it crashes because of G.FUNCS[self.config.button](self) in Balatro's function UIElement:click(). Can I add my own function to G.FUNCS or is there a better way to prevent that?

red flower
#

you can add your own funcs

knotty wren
#

I'm playing rn but I had the question, can you make a joker open a booster pack during a round?

#

or is it impossible to open a pack mid round?

frosty rampart
#

would take a lot of work to implement it yourself, but i think if you make your mod depend on Spectrallib it'll take care of it for you?

knotty wren
#

damn qwq

#

I really don't want to add dependencies, so that joker idea goes to the bin

red flower
#

i wanted to add it to smods a long time ago but booster states are annoying

#

i think i do have the code for during a round somewhere

#

couldn't find it

knotty wren
#

bwehh it's oki

dawn knoll
#

My crash logs say they Could not find center “NewEnhancer2” which is the key used for one of my enhancements. Can someone help?

true jasper
dawn knoll
dapper sun
#

does G.UIT.O support ref_table ref_value pairs?

dawn knoll
#

???

dapper sun
#

?

daring fern
dawn knoll
dapper sun
#

fuck

fading rivet
#

its purely for text

dawn knoll
#

still doesnt work

fading rivet
#

you could make it work with func though

#

but thats a lot of recalculate calls

#

so i'd make sure you track that its actually changing to avoid that

dapper sun
#

i'll be doing that dw

dawn knoll
fading rivet
dawn knoll
#

Im trying to make a tarot card that changes enhancements

fading rivet
#

send the tarot code

dawn knoll
#

you may have to fullscreen it

fading rivet
#

you need the m_

dawn knoll
#

i did that

fading rivet
#

m_Uber_NewEnhancer2

dawn knoll
#

hold on

fading rivet
dawn knoll
fading rivet
#

what line is the crash on

dawn knoll
#

it doesnt say

fading rivet
#

yes it does

#

send the full log please

dawn knoll
dapper sun
#

on line 251

fading rivet
dawn knoll
#

there is no line 251

fading rivet
#

but I don't think that'll solve the issue

dapper sun
#

wait that's card.lua i'm dumb

dawn knoll
#

how do i update lovely

fading rivet
#

google lovely injector

dapper sun
#

it's line 103

red flower
dawn knoll
#

and both are typed correctly

fading rivet
#

can you send your main .lua

#

around line 103

red flower
dawn knoll
#

one moment

brittle yacht
daring fern
dawn knoll
knotty wren
# red flower couldn't find it

I wanted to make like shop themed joker that when you sell it it'd give you a booster pack or something, what else could a bait or emergency shop joker do? I need ideas qwq

red flower
#

it can give you the tag for the booster pack maybe

dawn knoll
knotty wren
#

I could try that

dawn knoll
dawn knoll
#

Ok so i updated lovely and it didnt work

dawn knoll
dapper sun
#

how do i make a DynaText object?

primal robin
#

wdym

dapper sun
#

to put in a G.UIT.O

dapper sun
#

ty

primal robin
#

DynaText extends Moveable so it's like UIBox

dapper sun
#

okay

#

how do i use a localize parsed text table in it?

red flower
#

like the UI ones we were talking about earlier?

#

you can't

primal robin
#

ummm..... you cant drool

dapper sun
#

FUCK

#

then how do i

#

that's what i've been trying to do for the last several hours

red flower
#

what are you trying to do

dapper sun
#

bios in collection

primal robin
#

you need Dynatext only if you want your text bounce, or switch between strings

dapper sun
#

oh okay

#

then how do i do this

primal robin
#

you want multiline parsed text?

dapper sun
#

yea

#

i have a table of it already from the localize

#

right?

primal robin
#

Depends on where you place it

#

because depends on position it needs to be parsed or it's already parsed

red flower
#

i should have an example in my mod

primal robin
#

I was using localize before but now I always parse string every time

#

because i'm lazy

dapper sun
#

it's already parsed bc i used the code from joyousspring

red flower
#

i think nodes = nodes_from_localize should work

dapper sun
#

yea i'm doing that

#

now how do i use that

red flower
#

no i mean

primal robin
dapper sun
#

ohhhhh

#

i see

primal robin
#

localize basically returns array of arrays of text lines

#

but you need cover them into rows and then in column manually

dapper sun
red flower
#

i love ui error

dapper sun
#

wait

#

i forgot to uncomment the code to make the bio table 😭

primal robin
#

again, ui parsed only if it's inside G.localization.descriptions[<your_set>]

dapper sun
#

gimme a sec

primal robin
#

desc_lines is array of rows which you need cover into C

dapper sun
#

desc_lines?

primal robin
#

I mean show your code so far

dapper sun
#
local bio = {}
localize({type="res_bio",set="elle_Resident",key="elle_r_elle_chloe",nodes=bio})

rowNode.nodes[#rowNode.nodes+1] =
{n = G.UIT.C, config = {padding = 0.1, r = 0.08, hover=true, shadow=true, colour = G.C.L_BLACK}, nodes = {
    {n = G.UIT.C, config = {padding = 0.1, r = 0.08, emboss = 0.05, colour = G.C.BLACK}, nodes = {
        {n=G.UIT.O, config = {object = c}}
    }},
    {n = G.UIT.C, config = {minw=4, maxw=4, h=G.CARD_H, padding = 0.1, r = 0.08, emboss = 0.05, colour = G.C.BLACK}, nodes = {
        {n = G.UIT.R, config = {}, nodes = { {n = G.UIT.T, config = {scale = 0.3, colour = G.C.WHITE, text = "Bio"}} }},
        {n = G.UIT.R, config = {}, nodes = bio},
    }}
}}```
primal robin
#

nope

dapper sun
#

?

primal robin
#

localize return array of array of text lines

#

Which you need manually cover into R

#

And then all of them into C

dapper sun
#

_ _

primal robin
#

it converts localize result to UI which you can use

dapper sun
#

ah

#

how do i make the default text colour white

primal robin
#

default_col = G.C.UI.TEXT_LIGHT

dapper sun
#

where do i put that

#

in the localize?

primal robin
#

yes

dapper sun
#

ty

#

now to figure out how to make it change for whatever card is in the corresponding collection area

#

maybe if i make the bio part a uibox object and G.UIT.O it in so i can swap it out

primal robin
#

just rerender entire page, it's easier

dapper sun
#

oh true

dapper sun
#

haven't figured out the rerendering but

#

here's it not rerendering

#

@primal robin any ideas?

rapid stag
#

i accidentally wrote "xonrwzr" while writing a context check and now i want contexts to be renamed to "xonrwzr" 😭

#

...actually i could, since you can name function args whatever you want cirThink food for thought when i make the big one

dapper sun
#

you could in theory but idk why you'd want to pav_shrug

dapper sun
red flower
#

i can look at it tomorrow if it doesn't work by then but i never tried that before

dapper sun
#

i tried putting a G.OVERLAY_MENU:recalculate() at the end of G.FUNCS.SMODS_card_collection_page and it didn't do anything

dapper sun
#

on that note

#

it's 3am, i'm going to bed

red flower
#

i was looking into how the potato patch tutorials do it and they just remake the overlay 😭

dapper sun
#

😭

#

i only need it to update the text when you switch pages

fading rivet
dapper sun
#

sleepy was the one that suggested recalculating the whole page

#

well

#

i'm not necessarily going to eep

#

just bed

#

can still chat from phone

#

but i won't be at my pc to test code stuff

knotty wren
red flower
#

does it scale or just the message

knotty wren
#

no message but it scales

red flower
#

huh

#

how

knotty wren
#

no idea

#
        if context.pseudorandom_result and context.result == true then
            if not context.blueprint then
                card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chip_mod
            end
            return {
                dollars = card.ability.extra.dollars,
                message = not context.blueprint and localize("k_upgrade_ex") or nil,
                colour = not context.blueprint and G.C.CHIPS or nil
            }
        end
            

        if context.joker_main then
            return {                                     
                chips = card.ability.extra.chips, 
            }
        end
    end,```
red flower
#

how much is chip_mod?

knotty wren
#

config = { extra = { chips = 0, chip_mod = 4, dollars = 2} },

red flower
#

looks fine to me?

torn thunder
#

it's scaling properly

red flower
#

did you mean that it still scores chips?

knotty wren
#

oh wait

#

right

#

I'm gonna sell my joker and see if blueprint does some weird shi

#

I'm worried cuz my last mod blueprint would score by itself

#

right, it works fine LMAO

near coral
#

How do you make a description glitch like misprint's +mult text

torn thunder
#

look at vanillaremade misprint

near coral
#

I see a thing called DynaText is that it

white zinc
#

is it possible to trigger a joker’s art to change during its scoring?

near coral
daring fern
torn thunder
fading rivet
#

needs to be fixed actually since it has non vanilla features

torn thunder
#

oh odd

red flower
#

most vanilla stuff isn't documented still even if it has changes

near coral
#

I believe it comes from seed pods

#

Each pod houses seeds known as vanilla beans

silk latch
knotty wren
#

is there a way to detect the total amount of cards with a seal on deck?

#

kinda like for stone joker that counts all stone cards on deck

red flower
#

loop through all the cards and check each one

daring fern
knotty wren
#

wow that was fast

#

what does this do?

idle plaza
knotty wren
#

is there one for seals?

#

I guess not because of the multiple types of seal?

idle plaza
#

You can add one for specific seals. Example, info_queue[#info_queue + 1] = G.P_SEALS.Red for the Red Seal.

frosty rampart
#

^

knotty wren
#

amazing artwork

#

can I change the color where it says "red seal"

knotty wren
white zinc
#

this line of code doesn't seem to be working correctly as even when i set both the num and denom variables to both be 1 (1 in 1 chance), this if statement never seems to trigger. anybody know what i messed up?

daring fern
white zinc
#

ahh

#

i need to add it in to the loc_vars then i suppose

#

wait no, the line at the top local = red_light_triggered = false should only happen every time the joker goes off. if the probability hits, wouldn't the code read the "if context.after and red_light_triggered == true then" before it reads the false one?

#

unless the calculate = function at the top triggers more than once?

daring fern
white zinc
#

i was under the impression that all variables in the config need to also have a counterpart in loc_vars

#

is that not true?

daring fern
white zinc
#

alright, i got it to work now!

#

thanks

white zinc
#

while my joker functions perfectly fine, ideally i'd want the card to change its sprite after it does its scoring animation. right now, it does it before the cards score. is there a better place i can put this line of code to make the sprite change line up better?

rigid solar
#

In an event

white zinc
#

any chance you can link me to the documentation for events?

frosty dock
daring fern
white zinc
#

so i’d create a func, and then run that func in the return?

frosty dock
lyric wadi
#

questiobn to modevchat

#

if a joker has multiple description boxes, does main_end goes on the topmost box or the bottommost box?

#

and if it's a former, is there a way to do the same but for the bottom box?

frosty dock
#

there's also element controls you can use to place things literally anywhere

knotty wren
#

question, that "1" means the first card? (the leftmost card)

knotty wren
#

would scoring_hand[1,3,5] work?

fading rivet
knotty wren
#

yes sorry I'm on mobile rn qwq

#

how would the proper formatting look like?

daring fern
knotty wren
#

target the leftmost card, the middle card, and the right most card

fading rivet
#

{context.scoring_hand[1], context.scoring_hand[3], context.scoring_hand[5]} if you need a table to iterate through, but theres possibly a different way depending on what your trying to do

fading rivet
knotty wren
#

retrigger them like with hanging chad

fading rivet
#

okay don't use a table then

#
if context.other_card == context.scoring_hand[1] or context.other_card == context.scoring_hand[3] or context.other_card == context.scoring_hand[5] then
  -- stuff
end
knotty wren
#

thanks youu

daring fern
# knotty wren retrigger them like with hanging chad
if context.repetition and context.cardarea == G.play and ({[context.scoring_hand[1]]=1,[context.scoring_hand[math.ceil(#context.scoring_hand/2)]]=1,[context.scoring_hand[#context.scoring_hand]]=1})[context.other_card] then
    return {repetitions = number}
end
fading rivet
#

buh'

#

wouldn

#

omg

#

wouldn't that last chek always return nil

#

since the table is {[1] = card, [2] = card, [3] = card}[card]

knotty wren
#

wouldn't that just make only one of the cards retrigger?

fading rivet
fading rivet
#

if its 1st card or its 3rd card or its 5th card

#

1st card passes first check

#

second fails all3

#

3rd fails first, passes 2nd

#

4th fails all 3

#

5th fais first 2, passes 3rd

knotty wren
#

ahhhh I get it!

#

it's like, it checks each one?

#

damn

daring fern
# knotty wren damn

Yes, but you shouldn't use that code because it wouldn't work if you play an amount of cards that is not 5.

lyric wadi
#

yeah if you TRULY want to do "Retriggers every other card", then you shouldn't just check for position 1 3 and 5, because if you play two odd numbered hands in a row two cards will be retriggered consecutively

#

if it were me i would have a boolean flag that toggles on context.individual

fading rivet
#

i read they specificly wanted 1st, 3rd, and 5th lmao

knotty wren
#

I mean I did word it that way

fading rivet
#

use something's code

knotty wren
#

i was just giving an example!! D:

#

like if you play a flush with the joker that allows you to play flushes with 4 cards, and the first card doesn't score because it's a different suit

#

then it'd be something like the 2nd card and 4th card

fading rivet
#

use full hand then

lyric wadi
#

i honestly would just use individual

fading rivet
knotty wren
#

but i thought the code in hanging chad already counted the first <---- scored hand

#

or does it not?

#

i forgor

fading rivet
#

not full hand

knotty wren
#

it's 6 am 😭

lyric wadi
knotty wren
#

yeah! that's why I thought 1,3,5 would work

slim ferry
fading rivet
#

hanging chad would retrigger the first 10 of hearts here

knotty wren
#

what have I done

slim ferry
#

you can just context.other_card.rank%2 ~= 0 im pretty sure

fading rivet
#

okay back to coding

#

time to learn how to make a sticker

slim ferry
#

since Card.rank is the position in the cardarea

knotty wren
fading rivet
#

not mine

knotty wren
#

where do I add le brackets?

slim ferry
#

somethingcoms code is already functional

fading rivet
#

and replace scoring_hand with full_hand if you want unscored cards to mess with it

knotty wren
#

ah! alright then (⁠๑⁠•⁠﹏⁠•⁠)

#

learning is fun but coding has always been the bane of my existance

#

I only use gdscript bwehh

fading rivet
#

i would not recommend (but also would its a good learning experience) getting into shaders then

#

hmm

#

is there a way I could make a card not score, but still count for poker hands

knotty wren
#

black seal

fading rivet
knotty wren
knotty wren
slim ferry
#

whatever the opposite is of the return that splash uses

fading rivet
fading rivet
slim ferry
knotty wren
#

"I love coding but I hate havin to translate it back to english how do you guys do it"

fading rivet
#

went to get a ss and guh

#

heat abnormal breaking my game smh

#

time to do nothing and hope its a random bug

knotty wren
#

holy shit medicine mentioned

fading rivet
#

what would I need to put here for playing cards

daring fern
fading rivet
#

And do I need this if I'm doing set_sticker or does calling that bypass any checks

daring fern
fading rivet
#

where can I find sticker data at for info queues?

daring fern
fading rivet
#

thx

silk latch
#

Honestly I'm proud of my seal just because it's not actually a seal.

#

Like I genuinely feel clever for it.

silent sail
#

i found a thing on the steammodded guide but i cant find it anymore and idk if im going crazy but was there a thinng where you can make text clickable to do an effect?

#

i want to make a joker with an activated ability but i cant find the thing anymore

fading rivet
#

or do you mean a use button

silent sail
#

either works

#

could have sworn theere was somekthing about it in descriptions but i cant find it anymore

#

but a use button would probably be better i reckon but probably i assume not as simple

fading rivet
#

take this code

#

just make sure you replace synthb_use_joker and synthb_can_use_joker with you own names

silent sail
#

yeah ok thank you, should i put it in main.lua or its own file?

fading rivet
#

this will let you include can_use = function(self, card) and use = function(self, card) in your joker definitions

silent sail
#

oh alright coools

red flower
#

there is a way to add buttons to text but it wouldn't work there

silent sail
#

i think ive had some form of hallucination then i vividly remember seeing it in the smods thing and thinking this is so coo l

fading rivet
#

might have seen that

silent sail
#

i see

red flower
#

yeah

silent sail
#

well thank you for the code, im gonna go cook now

red flower
#

smods does add the button thing in descriptions so that's correct

fading rivet
#

or the smods UI Guide for buttons, but that only works on uis that dont disappear when you try to click them

silent sail
#

i see

slate turtle
#

why is my mod not loading????'

#

i have it in my smods folder

#

it aint nested

#

what the fuck

mystic river
#

in the smods folder?

narrow prawn
#

theres supposed to be a message that pops up whenever you play a card, but it doesnt seem to show

#

wait no it does

#

it just doesnt play the sound

gilded blaze
narrow prawn
#

ohhh

#

i just figured that

silent sail
#

i have a joker that marks random cards to give 2x mult, how would i be able to apply a soul_pos sprite to said cards?

red flower
#

easiest way is a drawstep, check The Soul in vanillaremade and use the same logic for the marked cards

red flower
narrow prawn
#

my edition breaks when i try to view it in the main menu collection

narrow prawn
#

ik

fading rivet
#

G.hand doesnt exist

narrow prawn
#

ik whats happening

#

i just dont get what context or other i should check before doing the effect

narrow prawn
#

okay done

silent sail
#

ok i cant figure this out ive been on this for like 4 houts how would i get this to applythis sprite to all marked cards

red flower
#

does my solution not work?

#

i literally posted the entire code

silent sail
#

i couldnt figure it out

#

autism be dammde

red flower
#

do you have the code for what you tried

silent sail
#

deleted because it wasnt working and i was getting annoyed

red flower
#

well i would recommend not doing that next time so its easier to help you

silent sail
#

real

red flower
#

i feel nice today so let me write it for you

silent sail
#

thanking you greatly

red flower
#

do you have the atlas for that sprite

silent sail
#

SMODS.Atlas({
key = "marked",
path = "marked.png",
px = 71,
py = 95,
atlas_table = "ASSET_ATLAS"
})

#

i did assign the atlas correctly right?

red flower
#

oh and whats your prefix

red flower
silent sail
#

baggutro

red flower
#
SMODS.DrawStep {
    key = 'russian_marked',
    order = 50,
    func = function(card)
        if card.ability.russian_marked then
            if not G.baggutro_marked then
                G.baggutro_marked = Sprite(0, 0, G.CARD_W, G.CARD_H, G.ASSET_ATLAS["baggutro_marked"], { x = 0, y = 0 })
            end
            local scale_mod = 0.05 + 0.05 * math.sin(1.8 * G.TIMERS.REAL) +
                0.07 * math.sin((G.TIMERS.REAL - math.floor(G.TIMERS.REAL)) * math.pi * 14) *
                (1 - (G.TIMERS.REAL - math.floor(G.TIMERS.REAL))) ^ 3
            local rotate_mod = 0.1 * math.sin(1.219 * G.TIMERS.REAL) +
                0.07 * math.sin((G.TIMERS.REAL) * math.pi * 5) * (1 - (G.TIMERS.REAL - math.floor(G.TIMERS.REAL))) ^ 2

            G.baggutro_marked.role.draw_major = card
            G.baggutro_marked:draw_shader('dissolve', 0, nil, nil, card.children.center, scale_mod, rotate_mod, nil,
                0.1 + 0.03 * math.sin(1.8 * G.TIMERS.REAL), nil, 0.6)
            G.baggutro_marked:draw_shader('dissolve', nil, nil, nil, card.children.center, scale_mod, rotate_mod)
        end
    end,
    conditions = { vortex = false, facing = 'front' },
}
silent sail
#

and this goes in the same thing under my joker right?

red flower
#

it can go anywhere, its not tied to the joker

silent sail
#

THANK YOU

#

working likea charm

narrow prawn
#

is there a way that i could set the name of a boss blind to a random other boss blind

narrow prawn
#

also annoying me that its doing this

#

nevermind i fixed it

narrow prawn
fading rivet
#

How could I get a random consumable?

#

like is there a poll function for them

narrow prawn
#

hmm

#

cryptid had something like that

narrow prawn
#

chaning the name of my custom boss blind

#

to a random other boss blind

fading rivet
daring heron
#

out of all the modded objects, how hard are decks to mod on a scale of 1 to 10,.

narrow prawn
#

is there not like a way to just grab the name of a random one

fading rivet
#

the hard part is actually displaying

daring heron
gilded narwhal
#

guys why is this info queue only showing the name of the thing I'm trying to have an info queue for but not the text box

fading rivet
narrow prawn
#

cant i just set the name to be the return of a function that does that

fading rivet
#

its the effect that matters

daring heron
fading rivet
#

you are going to need patching

daring heron
#

exept for ui

narrow prawn
#

oh 😭

daring heron
#

ui SUCKS

fading rivet
daring heron
#

ik i was joking

gilded narwhal
#

like heres what it looks like in game

fading rivet
#

balatros ui is pretty good
now if your doing anything custom that's when things get tricky

red flower
gilded narwhal
#

i dont know how it can fetch the name but not the description

fading rivet
#

im assuming its gonna say one blind until they play a hand

#

then switch to what it actually is

#

correct me if I'm wrong mations

red flower
#

i think using key in loc_vars and calling G.GAME.blind:set_text() should work

fading rivet
#

okay nvm yeah no patching then

red flower
#

ah then you just need the loc_vars thing

narrow prawn
#

yeahh

fading rivet
narrow prawn
#

its cause i wanted to do something to do with ultrakills disintergration loop

#

and the idea that the name would change

#

to a random boss blind

gilded narwhal
#

welp

fading rivet
gilded narwhal
#

okay i'll try something else

fading rivet
#

lemme send you the code

gilded narwhal
#

i think I can just like use Other no?

narrow prawn
#

the blind

fading rivet
narrow prawn
#

and also play music too which ive done

fading rivet
#

patching into localize to accept your custom category is much easier

gilded narwhal
#

I got it to work but what is the code for the easier way

fading rivet
gilded narwhal
#

lovely

fading rivet
gilded narwhal
#

:shock:

#

very weird how that works

narrow prawn
#

hmm

#

how would i grab a random name of a boss blind

narrow prawn
#

istg 😭 😭 😭

#

okay i deleted the file smehow ig

dapper sun
#

what's the context for when a hand is drawn at start of blind or after scoring (not after discarding)

sturdy compass
#

I think context.first_hand_drawn?

dapper sun
#

that's only at start or blind

#

not after scoring

#

also i'm doing this for a juice_card_until

red flower
#

hand_drawn is for any drawing

dapper sun
#

i've decided against adding the juice_card_until anyways shrug

#

too much hassle

red flower
#

nice

narrow prawn
#

im so stuck 😭

knotty wren
#

what this means? 💔

narrow prawn
#

i get how to get the name and set it

#

but i cant seem to set it back

sturdy compass
narrow prawn
#

im a bit stuck

knotty wren
#

vanillaremade doesn't have this but uhmm, how do I add a name to my boss blind ahah

narrow prawn
#

look at my screenshot

#

im trying to do a more difficult version where it changes to a random boss blind and then changes back

slim ferry
#

otherwise its just loc_txt, that works for everything

red flower
red flower
knotty wren
#

ah I guess that does make sense

#

ts don't work :c``` calculate = function(self, blind, context)
after_play = function(self)
for i = 1, #G.play.cards do
local current_card = G.play.cards[i]

            if pseudorandom('chomp_blind') < 0.25 then 
                G.E_MANAGER:add_event(Event({
                    trigger = 'after',
                    delay = 0.2,
                    func = function()
                        attention_text({
                            text = "CHOMP!",
                            scale = 1.3, 
                            hold = 1.4,
                            major = current_card,
                            backdrop_col = G.C.RED,
                            col = G.C.WHITE
                        })
                        

                        play_sound('tarot1') 
                        
                                -- ts don't worjk :broken_heart:
                        current_card:start_dissolve()
                        return true
                    end
                }))
            end
        end
    end
end```
#

I'm sure there's an easier way to do this

sturdy compass
#

after_play should not be in calculate

vague haven
#

uh this is dumb but how do i actually have the mod actually show up 😭

sturdy compass
#

Do you have a metadata .json properly set up?

vague haven
#

i have it idk what mi supoused to ddo with it thp

#

OH WTF

#

ITS EMPTY NVM!

#

i probably just didnt save it

#

thanks!

knotty wren
#

I thought I cooked

red flower
#

a lot of this code can be replaced by newer stuff

knotty wren
#

after playing a hand in the boss blind, 1 in 4 chance for scored playing cards to be destroyed

red flower
#
if context.destroy_card and context.cardarea == G.play and SMODS.pseudorandom_probability(blind, "unique seed", 1, 4) then
    return { remove = true }
end
#

you can add message = "CHOMP" to the return too

knotty wren
#

how so?

fading rivet
knotty wren
#

oh just like that? nice

#

wdym 😭

red flower
#

it's the exact thing i said

#

lol

knotty wren
#

oh what

#

I completely misread that

fading rivet
#

:sob;

knotty wren
#

I need to sleep more sorry ahah

#

I thought it said "you can add the message chomp on the return too"

#

wait it doesn't work, did I completely implement your code wrongly?

red flower
#

contexts are a calculate thing

knotty wren
#

please bare with me, I last modded for balatro like a year ago

#

so I change after_play with calculate?

red flower
#

yes

#

with the correct arguments

vague haven
#

yo so i lowkey just copy and pasted ts

how to
yk

im stupid 😭

{
"id": "Jimbo",
"name": "The Jimbo Jimbo Mod",
"author": ["Gordo", "Vekhi"],
"description": "geniuely just some bullshit.",
"prefix": "Jimbo",
"main_file": "JimboJimbo.lua",
"badge_colour": "c7638f",
"dependencies": [
"Steamodded (>=1.0.0~ALPHA-1225a)"
],
"version": "1.0.0"
}

knotty wren
#

calculate = function(self, blind, context) and then if context.after_play then

red flower
#

forget about after play lol

narrow prawn
#

tried doing this

red flower
knotty wren
#

aight thanks bwehh

narrow prawn
#

doesnt work ~_~

red flower
narrow prawn
#

ohhhhhhhhhh

red flower
#

also that's not what i meant in loc_vars

vague haven
red flower
vast bough
#

hello modding dev

fading rivet
vast bough
#

i am making global variables and persistant variables for joker forge 2, currently, the persistant variables last until you close the game, does anyone know if it is easy to make it last between opening and closing balatro

rigid solar
#

Anyone has any idea why this 8 Ball won't be eternal, or runner rental (it's perish immune so this one makes sense) ? I'm clueless

vast bough
fading rivet
vast bough
#

oh wow

#

perfect

#

my goat???

vague haven
narrow prawn
#

ohhh it work snow

vague haven
#

i was just testing if fit showed up first maybe i have to like actually add a something for it to work

fading rivet
knotty wren
#

the boss blind finally works but the chomp message appears on the blind icon instead of the cards

vague haven
fading rivet
fading rivet
narrow prawn
#

i wonder if i can get the blind icon as well....

#

:)

vague haven
fading rivet
dawn knoll
vague haven
fading rivet
#

try adding "priority": 0

#

@vague haven

vague haven
#

okie

narrow prawn
#

though then again blind icons may be too much

vague haven
#

tyy!!!

fading rivet
#

np

dawn knoll
knotty wren
dawn knoll
#

ill do that real quick

red flower
#

instead of other_card

dawn knoll
#

IT WORKS

#

YIPPEE

dawn knoll
red flower
#

somethingcom told you that first 😭

dawn knoll
#

oh

#

did he?

narrow prawn
#

trying to change the icon but it keeps defaulting back to this

dawn knoll
#

i actually didnt see lol

red flower
#

does returning atlas actually do anything

#

you need to change the G.GAME.blind.children.animatedSprite
im still not sure how to properly change the atlas of a sprite but you can use :set_sprite_pos to set the position

knotty wren
narrow prawn
#

this is fun but hard

rigid solar
#

How would I got about properly resizing a card? rn im doing this but it only affects the card, not stickers (and i assume not soul layer and any other layer that might exist)

tranquil cypress
#

I think its card.T.scale

rigid solar
#

oh yeah thx

tranquil cypress
#

np

rigid solar
#

That has to be one of the coolest things I've made, but it's not compatible with other mods so that kinda sucks lol

narrow prawn
#

honestly if i have time later and im not lazy ill change the icon too

knotty wren
#

can this line work for seals

#

to target cards with seals I mean

red flower
#

i dont think so

knotty wren
red flower
wispy falcon
#

How do I get if my overlay got closed or how do I block that it can be closed by pressing esc?

red flower
#

if G.OVERLAY_MENU doesnt exist then its closed

wispy falcon
red flower
#

uibox config

#

search no_esc in the vanilla code for an example

knotty wren
#

is recalc_debuff an old thing or does it work still

#

guards, behead him

red flower
#

it works

#

you can also use context.debuff_card

knotty wren
#

nicee

#

what was the statement toi return true if the card has a seal?

#

like this but for seals

brittle yacht
#

how do i add time to a joker

#

what im trying to do is have a joker that does something after a set amount of time

fading rivet
brittle yacht
#

i dont think ive ever used it

fading rivet
#

idk i never use it

#

it runs every frame though

brittle yacht
#

plus i would want a timer in the joker's description

red flower
#

update has the delta time as dt, which is the time since last frame (with speed up taken into account)

#

G.real_dt is the real one

fading rivet
red flower
#

for showing it in the description theres something in the vremade wiki

red flower
fading rivet
white zinc
red flower
fading rivet
white zinc
# red flower can you paste that here

return {
G.E_MANAGER:add_event(Event({
func = function()
card.children.center:set_sprite_pos({x = 1, y = 1})
return true
end,
message = "Red Light!",
}))
}

fading rivet
#
--- Adachi Rei
SMODS.Joker{
    key = "adachirei",
    atlas = "jokers",
    pos = {x=9,y=1},
    config = {
        extra = {
            cmult = 30,
            chips = 0
        }
    },
    cost = 4,
    loc_vars = function(self, info_queue, card)
        return {
            main_start = {
                { n = G.UIT.T, config = { text = ' +', colour = G.C.CHIPS, scale = 0.32 } },
                {n = G.UIT.T, config = {ref_table = card.ability.extra, ref_value = "chips", colour = G.C.CHIPS, scale = 1 } },
                { n = G.UIT.T, config = { text = ' chips', colour = G.C.CHIPS, scale = 0.32 } },
            },
            vars = {card.ability.extra.cmult}
        }
    end,
    update = function(self, card, dt)
        card.ability.extra.chips = math.floor(card.ability.extra.cmult * math.sin(love.timer.getTime())) + card.ability.extra.cmult
    end,
    calculate = function(self, card, context)
        if context.joker_main then
            return {
                chips = card.ability.extra.chips
            }
        end
    end,
}

the cards effect:

j_foobar_adachirei = {
                name = "Adachi Rei",
                text = {
                    "{s:0.7}+#1# * sin(time) + #1# chips"
                }
            },
red flower
# white zinc return { G.E_MANAGER:add_event(Event({ func = fu...
G.E_MANAGER:add_event(Event({
    func = function()
        card.children.center:set_sprite_pos({ x = 1, y = 1 })
        return true
    end,
}))
return {
    message = "Red Light!",
    --[[
        If you want it after the message:
        func = function()
            G.E_MANAGER:add_event(Event({
                func = function()
                    card.children.center:set_sprite_pos({ x = 1, y = 1 })
                    return true
                end,
            }))
        end
    ]]
}
fading rivet
brittle yacht
#

also

#

theres a bug in here somewhere

#

this is a different joker

red flower
#

i made an easier playing card adding function for people to use it 😭

#

SMODS.add_card{ set = "Base", suit = "S" } can replace a lot of that

brittle yacht
red flower
#

jokerforge was made with syntax from ages ago sadly

brittle yacht
#

im confused

#

comments would be nice

fading rivet
#

wdym the time function

red flower
#

its not exactly what you want

#

but its the idea

narrow prawn
#

how could i shuffle the played hand?

brittle yacht
fading rivet
#

can I provide nil for rank or suit arguments in SMODS.change_base

red flower
#

yes

fading rivet
#

🔥

red flower
# brittle yacht also, what exactly would i replace with ```SMODS.add_card{ set = "Base", suit = ...

all of these blocks, and just replace S with the corresponding suit (you can use the letter or the full name)
this is a bit better

G.E_MANAGER:add_event(Event({
  func = function()
    SMODS.add_card{ set = "Base", suit = "S", key_append = self.key.. "create" } -- key_append is the seed
    return true
  end
}))

you will lose some of the animation but i would look at vanillaremade after to recreate it without doing all of this

#

these blocks didnt send the pic

#

also the return is kinda broken

queen crescent
red flower
#

this is old vanilla code

brittle yacht
red flower
#

yeah

brittle yacht
#

ight

red flower
#

i mean the four similar blocks

brittle yacht
#

yeah

red flower
#

oh and remove all the return

#

except the messages if you want those

narrow prawn
#

would this work as card shuffling code?

brittle yacht
#

oh and the playing function works too

red flower
narrow prawn
#

ah

#

what would be the proper context for that then

red flower
brittle yacht
#

ight

narrow prawn
#

would it be context.before

red flower
#

thats also too late, it would be press_play but that code wouldnt work because G.play doesnt exist

#

im not sure what the code for it would be

narrow prawn
#

hmm

#

i just need to shuffle the cards

red flower
brittle yacht
#

oh thanks

red flower
#

oh the selling_self one needs area = G.deck in the add_cards

#

because it will add them to hand in the shop and stuff lol

brittle yacht
#

ight cool

#

thanks N'

#

this is why WE love you

#
        if context.discard then
            if context.other_card:is_suit("Spades") or context.other_card:is_suit("Clubs") then
                G.E_MANAGER:add_event(Event({
                    func = function()
                        local added_cards = {}
                        added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "S", key_append = self.key .. "create", area = G.deck }
                        added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "C", key_append = self.key .. "create", area = G.deck }
                        SMODS.calculate_context({ playing_card_added = true, cards = added_cards })
                        return true
                    end
                }))
                return {
                    message = "+1 Spade",
                    extra = {
                        message = "+1 Club",
                    }
                }
            end
        end
        if context.individual and context.cardarea == G.play then
            if context.other_card:is_suit("Hearts") or context.other_card:is_suit("Diamonds") then
                G.E_MANAGER:add_event(Event({
                    func = function()
                        local added_cards = {}
                        added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "S", key_append = self.key .. "create", area = G.deck }
                        added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "C", key_append = self.key .. "create", area = G.deck }
                        SMODS.calculate_context({ playing_card_added = true, cards = added_cards })
                        return true
                    end
                }))
                return {
                    message = "+1 Spade",
                    extra = {
                        message = "+1 Club",
                        colour = G.C.GREEN
                    }
                }
            end
        end
        if context.selling_self then
            G.E_MANAGER:add_event(Event({
                func = function()
                    local added_cards = {}
                    added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "D", key_append = self.key .. "create", area = G.deck }
                    added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "H", key_append = self.key .. "create", area = G.deck }
                    added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "S", key_append = self.key .. "create", area = G.deck }
                    added_cards[#added_cards + 1] = SMODS.add_card { set = "Base", suit = "C", key_append = self.key .. "create", area = G.deck }
                    SMODS.calculate_context({ playing_card_added = true, cards = added_cards })
                    return true
                end
            }))
            return {
                message = "+1 Diamond",
                extra = {
                    message = "+1 Heart",
                    extra = {
                        message = "+1 Spade",
                        extra = {
                            message = "+1 Club",
                        }
                    }
                }
            }
        end
    end```
red flower
#

huh

#

why is scored card nil

brittle yacht
#

idk gng 😭

red flower
#

you can probably remove the returns to fix it

#

but idk why it's happening

brittle yacht
#

no message googleSOB

narrow prawn
#

who wants to guess why theres 3 of them

#

:)

#

im doing a very devious thing

brittle yacht
fading rivet
#

how could I change the base chips a card scores

brittle yacht
red flower
fading rivet
#

i tried changing card.base.nominal and this happened

narrow prawn
#

each has a different effect, and plays different music parts of 8-3

brittle yacht
#

woh

#

ts so innovative

narrow prawn
#

yeah

#

if i can get the blind icon working

#

then it'll be amazing

#

frankly the best thing ever

brittle yacht
#

whos frank

narrow prawn
brittle yacht
#

ight mlk joker works now

#

now to move onto the time thing

knotty wren
red flower
#

if card.seal then should work

#

have you tried without the seal check to see if it debuffs correctly

knotty wren
#

goo d idea brb

wispy falcon
#

How do I make my own play button trigger context.press_play?

            self.buttons = UIBox {
                definition = create_UIBox_buttons(),
                config = { align = "bm", offset = { x = 0, y = 0.3 }, major = G.hand, bond = 'Weak' }
            }
        end
        if self.buttons and not self.buttons.states.visible and not self.deck_preview then
            self.buttons.states.visible = true
        end```
faint yacht
#

Just add SMODS.calculate_context({ press_play = true }) to button function.

fading rivet
red flower
fading rivet
wispy falcon
knotty wren
#

idk how but I fixed but I didn't change anything

brittle yacht
#
    key = 'miniwage',
    loc_txt = {
        name = 'Minimum Wage Working Joker',
        text = {
            'After {C:attention}60 minutes,{} gain {C:gold}$7{}',
        }
    },
    atlas = 'miniwage',
    pos = { x = 0, y = 0 },
    rarity = 1,
    cost = 2,
    blueprint_compat = false,
    eternal_compat = true,
    perishable_compat = true,
    unlocked = true,
    discovered = true,
    pools = { ['shit'] = true, },
    config = { start = 0, inblind = 0, time = 5, timecolor = copy_table(G.C.GREEN), extra = { dollars = 7 } },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.dollars } }
    end,
    update = function(self, card)
        local time = 5 - (G.TIMERS.REAL - card.ability.start) * card.ability.inblind
        if time <= 0 then
            card.ability.timecolor[1] = G.C.RED[1]
            card.ability.timecolor[2] = G.C.RED[2]
            card.ability.timecolor[3] = G.C.RED[3]
            card.ability.timecolor[4] = G.C.RED[4]
            card.ability.time = "00:00"
        else
            card.ability.timecolor[1] = G.C.GREEN[1]
            card.ability.timecolor[2] = G.C.GREEN[2]
            card.ability.timecolor[3] = G.C.GREEN[3]
            card.ability.timecolor[4] = G.C.RED[4]
            card.ability.time = string.gsub(string.format("%.2f", time), "%.", ":")
        end
        if time == 0 then
            return card.ability.extra.dollars
        end   
    calculate = function(self, card, context)
        if context.blueprint then return end

        if context.add_to_deck then
            card.children.timer = UIBox { definition = { n = G.UIT.ROOT,
                config = { align = "cm", colour = { 0, 0, 0, 0 } },
                nodes = {
                    {
                        n = G.UIT.O,
                        config = {
                            object = DynaText {
                                string = { {
                                    ref_table = card.ability,
                                    ref_value = "time" } },
                                scale = 1.2,
                                shadow = true,
                                colours = { card.ability.timecolor }
                            },
                            align = 'cm'
                        }
                    }
                } }, config = { align = 'cm', major = card, parent = card } }
            card.ability.start = G.TIMERS.REAL
            card.ability.inblind = 1
            return {
                func = function()
                    G.E_MANAGER:add_event(Event({
                        trigger = 'immediate',
                        func = function()
                            return true
                        end
                    }))
                end,
            }
        end
    end
}```
what now
#

ignore time being 5 instead of 3600

wispy falcon
#

Holy wall of code OwO

fading rivet
#

wrong spot lmao

brittle yacht
faint yacht
wispy falcon
knotty wren
#

I guess it works now, I didn't change anything qwq

brittle yacht
#

ignore error message the joker js doesnt do anything

silk latch
faint yacht
brittle yacht
faint yacht
#

...why are you return-ing in update?

#

If you just want to give money, either SMODS.calculate_effect({ dollars = card.ability.extra.dollars}, card) or ease_dollars(card.ability.extra.dollars).

wispy falcon
faint yacht
#

🤷 I am not advanced enough to assist in such.

wispy falcon
#

All good. Do you know someone that might be able to help?

formal rock
#

Is there a LUA template that I could use to make my own mod?

torn thunder
#

uhhh you could reference vanillaremade, it has examples of how like every object in the game works

#

but idk about like a proper template

bold eagle
#
{s:0.7,X:zwp_pure_evil,C:white,E:1}Pure Evil{}
#

when this shows up in game, the "Pure Evil" part of it becomes one word instead of 2

#

and idk whats wrong with it

daring fern
bold eagle
#

dang

#

ok

#

thanks

red flower
silk latch
daring fern