#💻・modding-dev

1 messages · Page 483 of 1

modern kindle
#

Perhaps
To ma home

#

Get it

sonic cedar
#

a

modern kindle
#

Like to my home

sonic cedar
#

ah ha

modern kindle
#

But also toma

sonic cedar
#

im gonna get you

red flower
#

hmm

modern kindle
sonic cedar
modern kindle
#

Hammers dont often go with beverages

sonic cedar
modern kindle
#

You wouldn't believe how many times I have a nil value

#

Because im stupid

sonic cedar
#

there is no nodes 3

#

i knew there wasnt

#

but im out

#

of idea

#

s

#

surely someone has a mod where the button is on the bottom

#

surely

red flower
#

i do

#

my ritual cards have a button on the bottom when they're in the shop

sonic cedar
#

in the SHOP N

#

i have VOUCHERS for that

red flower
#

it's the same UI

hybrid shadow
red flower
#

i just dont put buttons at the bottom anywhere else because..... i made jokerdisplay

sonic cedar
hybrid shadow
#

k

modern kindle
#

How would things work at the bottom also with joker display

sonic cedar
red flower
modern kindle
#

Cause at some point I want to add a health bar to a joker but also make it work with that

rare phoenix
#

how do i do that?

sonic cedar
#

to hell with it it's going to the top then

red flower
rare phoenix
#

cool mb

red flower
sonic cedar
#

what possible reason

red flower
#

perishable and rental counters

sonic cedar
#

MOVE

red flower
#

anyway just put it at the bottom

sonic cedar
#

the display will get in the way

#

youre not even supposed to have to click the card first but i wanted to at least get the button oriented properly first

#

is it this one

red flower
#

do you think i remember my code

sonic cedar
#

🐬

#

the other one has a pack conditional it has to be this one

red flower
#

yes

sonic cedar
#

now i just have to lock in

#

and pray

vague crest
#

does anyone know why this wouldnt be changing the variable?

#

it's supposed to basically remember your last played hand

#

and store it in a game variable

rapid stag
#

how does cavendish tell if gros michel has gone extinct

modern kindle
#

iirc theres a flag thats set i think

sonic cedar
#

did i deadass crash the engine

red flower
modern kindle
#

vremade cans how you how its done there, or you can check the source itself for the flag

#

fucked up that N gets the thumbs up

modern kindle
sonic cedar
#

unfortunate

modern kindle
#

why is it unfortunate huh

#

do you hate me and my nickels

sonic cedar
#

what am i supposed to do with a nickel can

modern kindle
#

use it for soup

rapid stag
#

what's the level of persistency of info you save in G.GAME? like if i do G.GAME.myTable = {}, how long does that table last? when is it removed? does it persist between game closes and openings? does it persist between games?

sonic cedar
#

no

red flower
#

it only doesn't save cyclic tables (like cards)

#

it might not save functions either, i never tried

daring fern
vague crest
#

oh ok that works huh

#

what exactly does main eval do?

daring fern
rare phoenix
#

what's wrong with this

    if card.ability.extra.round < card.ability.extra.maxround and rylen.ability.eternal ~= true then
        local card = card
        local target = #G.jokers.cards == "rylen"
        G.E_MANAGER:add_event(Event({
        trigger = "after",
        delay = 0.15,
        func = function()
        play_sound("card1", 1.1)
        target:flip()
        target:set_eternal(true)
        return true
    end,
    }))
    end
end```
vague crest
#

ohh gotcha :3

topaz monolith
#

Hey, all. How can I go about using the config to remove specific cards from the pool when enabled? Edit: Imma make it a little bit clearer. I have a config option in my mod where I can enable and disable. Now, I need to make it so that when I enable that option, it removes some cards from the game. Just haven't figured out a good solution

normal crest
#

hi modding dev

modern kindle
#

hi srock

#

ive been searching for you

sonic cedar
#

RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA lfgnubert

red flower
#

hi es rock double u

sonic cedar
#

also hi srock

#

the list grows

normal crest
modern kindle
#

can you write some hater shit on mine next

vale glen
vale glen
normal crest
modern kindle
#

my fucking sticker got shot

normal crest
#

dw I see it

modern kindle
#

i thought only gifs were shot dead

vale glen
modern kindle
#

damn

#

thast messed up

normal crest
#

And I get it instead

topaz monolith
normal crest
#

thanks toma

modern kindle
#

im about to remove all burgers from the ecosystem besides one

sonic cedar
#

np srock

normal crest
modern kindle
lunar silo
#

i have made 7 fully functional jokers (6 if you exclude blank joker, as it's effect is a placeholder) and i'm proud

normal crest
#

we're all proud

sonic cedar
vale glen
#

Congrats!

stark viper
#

how would I go about doing that?

modern kindle
lunar silo
#

yooo thanks guys : ) (sorry for the space, if i delete it it turns into an emoji)

normal crest
stark viper
#

bless 🙏

wispy sparrow
#

i'm not really sure how to make jokers become inactive for the rest of the round once they activate

sonic cedar
#

what am i looking at actually
also hello omori font

wispy sparrow
sonic cedar
#

no i mean what is it supposed to do

vague crest
#

trying to debug a joker which adds a glass card when a diamond is destroyed, it works ok with one diamond being destroyed at a time but when multiple are destroyed it only creates one. how would i fix this?

wispy sparrow
normal crest
#

also it's cus you're returning inside a for loop

vague crest
#

OH is that whats going on

normal crest
#

so you always only do one iteration, return and exit the function

sonic cedar
#

i have made this same mistake

#

5 times

normal crest
#

i have made this mistake as well

sonic cedar
#

...how many

normal crest
#

i did not count

#

at least once

#

less than 10

wispy sparrow
#

maybe if i add a mention of the card.ability.extra.active in the if statement?

sonic cedar
normal crest
sonic cedar
#

hand count visually goes down to 0 then

wispy sparrow
# sonic cedar oh wait that's pretty easy actually let me look at what you have
            extra = {
                hands_remaining = 0,
                hands = 1,
                active = localize("k_active_ex"),
            },
    },
    loc_vars = function(self, info_queue, card)
        return {
            vars = {
                card.ability.extra.hands
            },
        }
    end,
    loc_vars = function(self, info_queue, center)
        return { 
            vars = {
                center.ability.extra.hand_remaining, center.ability.extra.active
            },
        }
    end,
    calculate = function(self, card, context)
        if
            (
                context.joker_main
                and (
                    G.GAME.current_round.hands_left >= card.ability.extra.hands_remaining and G.GAME.current_round.hands_left < card.ability.extra.hands_remaining + 1
                )
            ) or context.forcetrigger
        then
             return {
                func = function()
                    card_eval_status_text(context.blueprint_card or card, 'extra', nil, nil, nil,
                        { message = "OMORI didn\'t succumb.", colour = G.C.BLACK })
                    G.GAME.current_round.hands_left = G.GAME.current_round.hands_left + card.ability.extra.hands
                    play_sound('SnipersTV_omorisuccumb')
                    return true
                end}
            end
            if context.end_of_round and not context.retrigger_joker and not context.blueprint then
            if not card.ability.extra.hands then
                card.ability.extra.hands = true
                card.ability.extra.text = localize("k_active_ex")
                return {
                    message = localize("k_reset"),
                    card = card,
                }
            end
        end
        end,```
#

i ran out of characters by the way

#

thats why there's no SMODS.Joker{

sonic cedar
#

i mean it wouldve just sent as a text file

wispy sparrow
#

actually yeah thats a very good point, lemme go do that

normal crest
sonic cedar
normal crest
#

in paperback we had a similar joker, we ended up making it be +1 hand always, but if you ever beat a round with 0 remaining it destroys itself

sonic cedar
#

oh hey yeah

#

the skill issue one

#

hi dilly

modern kindle
#

i just made one that converts remaining discards to hands one at a time 😎

#

hihi

normal crest
wispy sparrow
modern kindle
sonic cedar
modern kindle
#

it does get a little wacky when paired with my joker that also carries over discards

#

but i also have one that carries over unused hands too

neat leaf
#

How would I trigger a click event on an object with a click function?

modern kindle
sonic cedar
wispy sparrow
sonic cedar
#

a

#

a typo

modern kindle
red flower
wispy sparrow
sonic cedar
modern kindle
#

lmao

#

the selling of them is also random per run
between 5 and 10

sonic cedar
#

the fact that Negative isnt doing the uhhhh wowowow effect

wispy sparrow
modern kindle
#

it will eventually i just ahvent gotten around to it

sonic cedar
#

makes me think youre just spawning a bad president

modern kindle
#

im still missing a ton of art

stark viper
modern kindle
#

out of my like 60 jokers im missing...17 pieces of art on the joker side
then several planets and tarots and spectrals and vouchers

normal crest
stark viper
normal crest
#

nop

#

where is get_unique_suits defined

stark viper
normal crest
#

aka, LRG = {} somewhere in your main.lua file

stark viper
#

yeah, so does that mean LRG should be defined only in the other file?

normal crest
#

yes

vague crest
normal crest
#

if your joker is blueprint compatible do SMODS.calculate_effect(table, context.blueprint_card or card) instead

red flower
#

god i never went through my jokers to make them work with blueprint
i should do that at some point

vague crest
#

would i just replace the phrase table with all the message stuff?

hardy viper
#

mrreoww

normal crest
normal crest
stark viper
sonic cedar
# wispy sparrow alright here's the fixed loc_vars version
  1. your extra says hands_remaining but you're returning hand_remaining
  2. just change the hand count check to check if
    G.GAME.current_round.hands_left == 0 if it's just gonna be when there aren't any hands left
  3. since it's supposed to only be when you first run out of hands, add a flag variable at false that gets set to true after the hand increase (which you can just do with ease_hands_played(your.hands.variable.here) for btw), then add to the conditional to check if that flag is false

no idea what you want at the end of the round though

normal crest
modern kindle
sonic cedar
#

smods header....

sonic cedar
modern kindle
#

ive seen it of course in screenshots

sonic cedar
#

some things must never be blueprinted...

normal crest
modern kindle
#

ive just never seen anything it does because its not spring rn

#

so it cant be joyous

normal crest
# stark viper

Also the 2nd parameter is meant to be a string, you're passing a variable that doesn't exist

red flower
normal crest
#

and it's not necessary to pass a 2nd one here

#

cus it's your mod's turn to load

stark viper
red flower
#

but i just added jokerdisplay to 300 cards so im gonna leave that for another update

red flower
#

once i add my own blueprint-likes

normal crest
#

Unacceptable

modern kindle
red flower
#

ok i can do that

glass crown
#

how would i go about making it so that a joker causes all face cards to act like all face cards? (ex. a king, queen, or jack could be discarded for hit the road and all would trigger baron etc etc)

red flower
#

i would advise against any kind of "treated as another rank" effect lol

wispy sparrow
sonic cedar
glass crown
sonic cedar
#

simple reasoning

red flower
#

it's hell to code and causes problems

stark viper
modern kindle
#

the most i ever did was make aces count as 1 and 11 otherwise i dont make one card act as another

normal crest
#

if you needed a 2nd opinion to be sure

sonic cedar
modern kindle
#

:(

#

all face cards count as 10, aces as 11 and 1

sonic cedar
modern kindle
#

i have it as a joker and as a playable hand

#

joker gives x5 mult for scored equalling 21

#

hand is shrimply a hand

hardy viper
#

dont aces like already count as 1s in vanilla

modern kindle
#

things get silly though if you pair blackjack with secret service with photograph and make them glass eternal

modern kindle
#

in straights and otherwise yea it do

hardy viper
#

(all the practical applications)

modern kindle
#

yet it was not practical for blackjack

#

rendering it a falsehood

hardy viper
#

im just saying that aces have always counted as one but mods dont follow that pattern sometimes even though they probably should

modern kindle
#

whenb i didnt have the check manually it did not function as that

#

so i will simply disagree

hardy viper
#

unfortunately you are not localthunk

sonic cedar
#

i forgot i did all that just to get the button working i havent even done the effect

normal crest
wispy sparrow
#

i set the local flag exactly as told and yet the joker still activates everytime

sonic cedar
#

at least i can perk it

modern kindle
#

what if i was him

#

then wyd

normal crest
#

are you him

sonic cedar
hardy viper
#

idk

modern kindle
#

its a secret

#

revealed in 137 days

modern kindle
sonic cedar
sonic cedar
limber blaze
thick drift
#

does anyone know why SMODS.add_card({ set = 'RupeeConsumableType', key = 'b_rupee' }) says that center is assigned a nil value while SMODS.add_card({ set = 'RupeeConsumableType'}) seems to work without issues?

normal crest
modern kindle
limber blaze
#

well technically you can do forcetriggering without cryptid now

#

because of cryptlib

modern kindle
#

its between the lines

limber blaze
#

but thats where it originates from

sonic cedar
red flower
#

forcetriggering my jokers counts as harassment

modern kindle
#

D:

normal crest
#

idk what force triggering means but i agree

#

sounds rude

modern kindle
#

im gonna forcetrigger all over

#

on second thought, maybe not

normal crest
#

why don't you politely ask it to trigger

wispy sparrow
normal crest
sonic cedar
stark viper
modern kindle
#

whats yahimod

wispy sparrow
sonic cedar
stark viper
#

😭

#

presumably as a reference to Cryptid's demicolon

limber blaze
#

thats not yahimod

#

its from cryptposting

stark viper
#

OH

limber blaze
#

and it was my idea

sonic cedar
#

it is not

stark viper
#

that would make more sense lmfao

stark viper
#

that explains the cryptid connection then 😭

modern kindle
#

damn we got the idea police

sonic cedar
#

we?

stark viper
#

i'm not policing anyone 😭

red flower
#

you're free to steal my ideas after besting me in armed combat

stark viper
#

i'im just complimenting them on a great idea for a shitpost joker

modern kindle
#

dude lets 1v1 rn

sonic cedar
normal crest
#

bring your own armadillo

sonic cedar
#

tf the armadillo gonna do

modern kindle
#

people can take literally every single thing from my mod when its out i couldnt care less as long as myself and the artists are credited

normal crest
#

transform into an armadilly

red flower
#

roll with it

sonic cedar
#

🥁

spark remnant
#

How can I stop loc_var's from rounding and get them to always display the full value?

modern kindle
#

feel free

modern kindle
#

make great again

modern kindle
red flower
#

dilitro

modern kindle
#

im waiting on art before releasing

sonic cedar
modern kindle
#

but bribing my artists with fast food has been ineffective

sonic cedar
normal crest
#

have you tried slow food

modern kindle
#

i spent like 50 bucks on her and she said 'delicious, im offline now'

sonic cedar
#

wheezing

red flower
#

me

urban wasp
#

😭

modern kindle
#

i was cursed with artists who get struck with curse of lazy

#

but to be fair i go on huge bursts of no activity

wispy sparrow
#

oh my god it keeps on activating every single time without fail

sonic cedar
modern kindle
#

but i made most of my stuff so i deserve a breaky wakey

urban wasp
normal crest
spark remnant
sonic cedar
modern kindle
#

modding chat is for the people who play the mods and chat, modding dev is for those who make the mod and chat

normal crest
urban wasp
sonic cedar
normal crest
#

Sure they look bad but they're clear

limber blaze
#

i should start coding in courier prime

red flower
urban wasp
#

i should code in comic sans 🔥

thick drift
wispy sparrow
sonic cedar
normal crest
wispy sparrow
#

or hell, putting it in the config

red flower
red flower
thick drift
#

oh, that's probably it, thanks!

wispy sparrow
sonic cedar
red flower
wispy sparrow
red flower
#

but anyway worry about that part later

sonic cedar
# red flower second

ill take it
im probably gonna change soon too
(too many commas keep getting cut off as fake periods...)

modern kindle
#

N and toma i have a very important question for you
what should i have for dinner as i am feeling rather peckish as they say, a bit hungering as the kids have proclaimed

red flower
#

beef stroganoff

sonic cedar
#

hey...

modern kindle
#

i should note its from uber eats

#

so delivery quality is important

sonic cedar
#

general consensus is cow eat cow

urban wasp
#

👍

wispy sparrow
#

but my main problem with the variable is that it's too plain and dull compared to the other jokers that activate once per round

modern kindle
#

youre a genius

red flower
#

why would an uber eat

modern kindle
#

fuel

sonic cedar
#

this is funny as shit im so rotted

red flower
urban wasp
spark remnant
modern kindle
#

true..

sonic cedar
red flower
urban wasp
red flower
#

honestly my biggest problem with omori was the font resolution when i played it

modern kindle
sonic cedar
#

not again

modern kindle
sonic cedar
modern kindle
#

the only thing i know about omori was something something drifloon

sonic cedar
#

that's pokemon

spark remnant
modern kindle
wispy sparrow
#

anyway, after putting the flag variable into the config, the joker just doesn't wanna work anymore

red flower
#

what's the code
i will seriously ask you to change to a regular font tho

wispy sparrow
#

for the font, will renogare suffice

red flower
#

now you need to use card.ability.extra.active instead of active

#

idk font names lol

wispy sparrow
red flower
#

that's more readable

sonic cedar
normal crest
#

event manager looking kinda scary

red flower
sonic cedar
#

you understand

#

hopefully i will never have to use it

red flower
#

it's impossible to differentiate , and . lol

normal crest
#

the , is longer

#

and at a different angle

red flower
#

it's funny how the {} look normal

manic rune
#

hi everyone

modern kindle
#

hi bepis

#

i have ordered my meal and i await it

wind steppe
#

how would i get a joker rarity not to show up in booster packs but still appear in the shop

sonic cedar
#

hi bepis

modern kindle
#

nvm bye bepis too many people said hi

sonic cedar
#

wtf

modern kindle
wispy sparrow
#

alright i think this is good enough

#

now to fix the 'Active!' message from being spammed after the round if it got triggered

scarlet imp
#

bugs like that are my favorite
the card works functionality-wise, but you want it to be perfect

modern kindle
#

remember chat, its not a bug if you can declare that as a feature

pure salmon
#

real

wispy sparrow
#

here's the part of the code where the active message kicks in at

urban wasp
scarlet imp
#

is the card supposed to become inactive after using?

#

oh nvm

lament agate
#

whats the context for

#

buying something from the shop

urban wasp
#

no at end of round lol

daring fern
urban wasp
#

oh i read incorrectly 😭

wispy sparrow
sonic cedar
sonic cedar
scarlet imp
#

imagine having compatibility with JokerDisplay 🥱

sturdy compass
#

L mindset

sonic cedar
#

it's foil

modern kindle
#

Imagine having

sturdy compass
#

I was made aware of an extension today and I think I like it :o
(random bit of jokerdisplay code to demonstrate)

scarlet imp
sturdy compass
#

very very fair

modern kindle
#

The priority of everyone is to have a functional mod for release :)

sturdy compass
#

codesnap

modern kindle
#

Anything else is extra

sturdy compass
#

and it makes actually nice code screenshots

sonic cedar
sonic cedar
modern kindle
sonic cedar
sturdy compass
sonic cedar
#

cool thanks

final jewel
#

What do I need to write for permanently adding chips to a card

sonic cedar
#

bonus not chips

final jewel
#

oh ok

scarlet imp
final jewel
#

but is perma_mult is the good thing for permanently add mult

high stag
#

yes

final jewel
#

okok thx

high stag
#

is there a way to increase the cards offered per booster? Like turning 1 of 3 into 1 of 4

#

I wanna make it a voucher

sturdy compass
#

yeah it's nice SunglassesSwagling

high stag
#

wait
for all elements of set Booster, set Extra to Extra + 1
thats probably doable an should totally do the thing I want

sturdy compass
#

tho I do recommend fiddling with the settings a bit

final jewel
sonic cedar
#

and square

sturdy compass
#

Ah lol

#

The big one ngl is the actual number lines one imo

modern kindle
#

can you make it a circle

sturdy compass
#

no :(

modern kindle
#

Im putting everyone's name here in a document.

#

Im crashing out

sturdy compass
sonic cedar
sturdy compass
#

Yeah that's the good stuff

sonic cedar
#

i dont think the bg color thing works though

#

or maybe themes override

sturdy compass
#

I think you removed the padding

#

and the background color is the padding color lol

sonic cedar
#

oh lmao

modern kindle
#

but my quesiton is what the point of this over just ctrl + or - taking a sc

sturdy compass
#

It just looks nicer than an on-the-fly screenshot imo

sonic cedar
sturdy compass
#

More precision than potentially cutting something off

modern kindle
#

i suppose, personally it just seems needless
but i also dont have any special fonts or anything either and just leave shit default

#

i feel like if im sending a screenshot im not really cutting anything off

sturdy compass
#

It's definitely an "if you like it" thing

modern kindle
#

ye for sure

sonic cedar
modern kindle
#

mfs cant stand arial

sonic cedar
#

the power of doing it for fun ThumbsUp0

#

im mfs

#

fuck arial

sturdy compass
#

lole

modern kindle
#

there is only one bad font and it is calibri

#

fuck calibri

sonic cedar
#

there are 3 bad fonts actually

modern kindle
sonic cedar
#

ok then

#

go use scriptina

modern kindle
#

already am

sonic cedar
#

no you arent i refuse

modern kindle
#

thats it, no burger and no fries for you

#

all you get is the toma to

#

heh

#

get it

#

🍅

sonic cedar
#

im changing my naem

modern kindle
#

you despise that im a funny guy

sonic cedar
#

these puns are horrible and i love puns

#

why is this workspace ujst not titled

#

im dumbad

#

s

#

HELLO

#

BRAIN

#

is this your way of saying i need sleep

#

ok fine

modern kindle
#

go to bed

#

i will watch and make sure nothing happens

sonic cedar
#

last block

#

just wanna finish with this button's visuals...

modern kindle
#

no

#

bed rn

#

or i will hide your pillow case

sonic cedar
#

what pillow case

modern kindle
#

you know which one.

#

we BOTH know which one.

sonic cedar
#

let's not be rash

#

NOW ill sleep

stark viper
#

is this too juiced for a legendary

modern kindle
#

Can anything ever truly be too juiced for the highest rarity

rare phoenix
#

im trying to make a blind but every time i launch no matter what i do it says "bad argument #1 to ipairs" any idea what to do?

rapid stag
#

my drawstep has stopped working...?

#

it should be entering the condition, but it's not doing the thing.

chrome widget
#

Once again more front designs

#

Trying to make essentially "fake" suits. Not new suits for gameplay reasons, but that the existing suits will get randomly assigned one of these with colors assigned via shader, and thus the actual suits are obuscated for the purpose of a blind

stiff locust
#

please tell me there's an easier way to draw a specific card from the deck than the way enchanted works in lobcorp

#

it looks like they move every other card in the deck down by 1 spot? i'm very confused by their methods

chrome widget
#

If you use table.insert() or table.remove(), all further indeces in the list are adjusted accordingly

stiff locust
#

it doesn't look like they use either of those? i still don't actually know how the code works

chrome widget
#

You'd have to show the code

stiff locust
#

this is the best i could find for the actual mechanics of the edition

#

its description is that it always stays in your hand (that's like half of what i want)

almost every other mention is either compatibility for perma_enchanted which is just enchanted but it can't be replaced, or big bird's effect, which is where you get enchanted from?

#

but this does not look like enough code to do that it might just be me

chrome widget
#

Well I don't know what the n variable is used for but it's iterating n for every enchanted card it comes across. It doesn't seem to change values of cards in the deck

stiff locust
#

hand_space = n in the pattern

#

the hand space gives you space to draw cards this doesn't explain how it comes back into your hand

chrome widget
#

so yeah it's just adding extra hand space when it goes across enchanted cards, similar to how negatives increase card limit

stiff locust
#

but why

chrome widget
#

idk? I've never played this mod tbh so I don't know the intended purpose

stiff locust
#

oh i found it

#

understood

#

they hook the draw_card function

#

that makes a lot more sense

#

I can totally do that

fallow breach
#

anyone know how i would go about picking random suits to change cards into?

#

as in when you play a certain hand, the cards in hand would all change to one random suit

normal crest
#

that will give you a random suit string, like "Spades" or "Hearts" that you can pass to SMODS.change_base

stiff locust
#

how do I change the rank of a played card

#

i'm getting really fucking sick of change_base crashing every single god damn time I use it

frigid cargo
#

Whats the size for blind sprite?

stiff locust
#

i don't even know what the assert() does but sometimes it does and sometimes it doesn't make the card crash the game

daring fern
frigid cargo
#

Ok thanks

daring fern
stiff locust
#

well I can't just not input anything for the suit because I don't want it to change the suit

#

the suit argument will always be false or nil

#

assert(SMODS.change_base(value, nil, "6"))
value is a real playing card this is inside for index, value in ipairs(G.play.cards) do

spark remnant
#

how can I destroy multiple cards in hand? I got this code however it sumtimes will pick the same card twice which I do not want.

destroycard = pseudorandom_element(G.hand.cards)
SMODS.destroy_cards(destroycard)
foggy ginkgo
#

Is there code that makes you lose the blind when an action happen

#

Or ig lose the run

wintry solar
lament agate
#

little help?

#
    calculate = function(self, card, context)
        local bonus_active = false

        local ret = {
            mult = card.ability.extra.base_mult,
            chips = card.ability.extra.base_chips
        }

        if context.joker_main and context.scoring_hand and #context.scoring_hand == 5 then
            local all_same_suit = true
            local all_same_rank = true
            local first_suit = context.scoring_hand[1].base.suit
            local first_rank = context.scoring_hand[1]:get_id()
            
            for i = 2, #context.scoring_hand do
                if context.scoring_hand[i].base.suit ~= first_suit then
                    all_same_suit = false
                end
                if context.scoring_hand[i]:get_id() ~= first_rank then
                    all_same_rank = false
                end
                if not all_same_suit and not all_same_rank then break end
            end
            
            if all_same_suit or all_same_rank then
                bonus_active = true
                ret.xchips = card.ability.extra.xchips
                ret.message = localize{type='variable', key='a_xchips', vars={card.ability.extra.xchips}}

                play_sound('tngt_neverforget', 1.1)
                card:juice_up(0.5, 0.5)
            end
        end

        if not bonus_active then
            card:juice_up(0.2, 0.2)
        end
        
        return ret
    end
}
#

this joker somehow adds score outside scoring

#

and stuck at exiting the shop

daring fern
#

And ret is not nil

lament agate
wintry solar
#

Put everything inside the joker main check

lament agate
#

all the locals?

#
calculate = function(self, card, context)
        if context.joker_main and context.scoring_hand and #context.scoring_hand == 5 then
            local bonus_active = false
            local ret = {
            mult = card.ability.extra.base_mult,
            chips = card.ability.extra.base_chips
            }
            local all_same_suit = true
            local all_same_rank = true
            local first_suit = context.scoring_hand[1].base.suit
            local first_rank = context.scoring_hand[1]:get_id()
            for i = 2, #context.scoring_hand do
                if context.scoring_hand[i].base.suit ~= first_suit then
                    all_same_suit = false
                end
                if context.scoring_hand[i]:get_id() ~= first_rank then
                    all_same_rank = false
                end
                if not all_same_suit and not all_same_rank then break end
            end
            if all_same_suit or all_same_rank then
                bonus_active = true
                ret.xchips = card.ability.extra.xchips
                ret.message = localize{type='variable', key='a_xchips', vars={card.ability.extra.xchips}}
                play_sound('tngt_neverforget', 1.1)
                card:juice_up(0.5, 0.5)
            end
        end
        if not bonus_active then
            card:juice_up(0.2, 0.2)
        end
        
        return ret
    end
daring fern
daring fern
icy moat
daring fern
#

You cannot do copy_table on a table of cards.

icy moat
#

oh you can't?

daring fern
icy moat
#

Right, then shuffle a table of index would be enough

umbral zodiac
lament agate
#

enlighten me

#

how do you release stuff

#

to github

umbral zodiac
#

you can usually just press the button on the right of the repo to create a new release if there are none

lament agate
#

in github desktop?

umbral zodiac
#

oh

#

no i meant ont he website

umbral zodiac
#

interesting to know

unborn bay
umbral zodiac
#

not like i would ever try and copy a cardarea beucase but interesting to knowq

icy moat
daring fern
#

You can SMODS.shallow_copy them though I think.

lament agate
unborn bay
#

😭

#

anyway create a commit and hit that publish repository button

shell timber
#

What

lament agate
#

ignore the

#

description

#

it was from the game

#

json

umbral zodiac
shell timber
#

?

lament agate
#

guy plea

#

se

unborn bay
#

Nxkoo you will die after i teach you

#

anyway yeah

lament agate
#

D:

unborn bay
#

have you made a commit yet

umbral zodiac
#

Nxkoo you will die after you publish my mod for me

lament agate
#

wait not yet

unborn bay
#

like. an inital commit

spark remnant
lament agate
#

how do you

#

make it

#

public

unborn bay
#

that's something you manage in your github repo yourself

#

idk google it

lament agate
#

sure

#

thanks guys

spark remnant
lament agate
#

should be good

icy moat
lament agate
#

i genuinely cannot fathom how to do UI in game

#

so ill just credit them here

spark remnant
icy moat
#

Ah then it's gonna get messy the other way. You'll want to filter for non-destroyed cards before choosing the random card to destroy

daring fern
#

And context.other_card to context.destroy_card

icy moat
icy moat
spark remnant
daring fern
icy moat
#

wdym, why wouldn't it work 😭

daring fern
#

Or the game will break.

snow breach
#

Attempting to use this consumable crashes the game with this log, please help

daring fern
snow breach
#

What

daring fern
spark remnant
snow breach
#

That doesn't help.

daring fern
daring fern
snow breach
#

Still doesn't help.

daring fern
snow breach
#

I am so tired rn.

snow breach
# daring fern

Where in here was I supposed to know that it takes a table?

icy moat
#

iirc, I only see the ghost card problem when destroying card during scoring without that destroy_card context

#

But only for played cards, not cards in hand

snow breach
#

I feel like they should put that in brackets

main minnow
#

looking to make two jokers with the effects "5s can be played as any suit" (i.e. making all 5s functionally equivalent to wild cards) and "10s can be played as any face card of the same suit", and i have no idea where to even start with implementing those effects

#

any suggestions?

lament agate
#

how do you add more than one person in the author json

daring fern
foggy ginkgo
#

Everytime I keep doing this I get "bad argument #1 to insert"

function playEffect(effect,posx,posy)
    if effect == "explosion" then
        neweffect = 
            {
            name = "explosion",
            duration = 100,

            frame = 1,
            maxframe = 17,
            fps = 20,
            tfps = 0, -- ticks per frame per second


            xpos = posx,
            ypos = posy,
            xvel = 0,
            yvel = 0,
            }
    end
    table.insert(G.effectmanager,{neweffect})
end
foggy ginkgo
#

Ngl I'm "borrowing" this from Yahimod so-

lament agate
#

@unborn bay how do you randomize a sound

hidden sable
lament agate
#

where it overrides everything in text

#

with ZZZZ

#

and plays randomized sounds

daring fern
daring fern
hidden sable
#

make sure this is in a file titled imrocksolidrnouuugh.lua or it won't work

#

(kidding)

lament agate
#

soon

lament agate
daring fern
lament agate
#

i see

#

can you write me an example on how to do it

#

and then ill try expanding it

daring fern
foggy ginkgo
#

Straight up stealing Yahi code and it's still not working

#

Keep getting argument #1

daring fern
#

Does it say table expected, got nil?

foggy ginkgo
#

Yeah

daring fern
foggy ginkgo
#

Smth like this?

    if G.effectmanager then
        
        for i = 1, #G.effectmanager do
            local _xscale = love.graphics.getWidth()/1920
            local _yscale = love.graphics.getHeight()/1080
            if G.effectmanager[i] ~= nil then
                if G.effectmanager[i][1].name == "explosion" then
                    if nic.imageexplosion == nil then nic.imageexplosion = loadThatFuckingImage("explosiongif.png") end
                    if nic.imageexplosionsprite == nil then nic.imageexplosionsprite = loadThatFuckingImageSpritesheet("explosiongif.png",200,282,17,0) end
                    imagetodraw = nic.imageexplosion
                    quadtodraw = nic.imageexplosionsprite
                    _imgindex = G.effectmanager[i][1].frame
                    _xpos = G.effectmanager[i][1].xpos-(200/2)
                    _ypos = G.effectmanager[i][1].ypos-(282/2)
                    love.graphics.setColor(1, 1, 1, 1)
                end
                love.graphics.draw(imagetodraw, quadtodraw[_imgindex], _xpos, _ypos, 0 ,_xscale,_yscale)
            end
        end
    end
daring fern
foggy ginkgo
#

How would define it

#

I'm Lowkey dumb

daring fern
foggy ginkgo
#

Is that it

lament agate
#

how do you mess with the text in the UI

rotund sable
rotund sable
#

please enlighten me 🙏

daring fern
foggy ginkgo
#

Now this is saying attempt to index global 'nic' (a nil value)

    function loadThatFuckingImage(fn)
        local full_path = (nic.path 
        .. "customimages/" .. fn)
        local file_data = assert(NFS.newFileData(full_path),("Epic fail"))
        local tempimagedata = assert(love.image.newImageData(file_data),("Epic fail 2"))
        --print ("LTFNI: Successfully loaded " .. fn)
        return (assert(love.graphics.newImage(tempimagedata),("Epic fail 3")))
    end
#

Then I thought of doing nic = {} but then it says attempt to concatenate field "path" (a nil value)

#

Curse Yahimod

#

Just want funny gif on my things

molten relic
#

is there anything wrong with this? the crash log says i have to close the SMODS.Joker{ in line 575 (the last end,)

#
    name = "1-UP",
    key = "1up",
    config = {
        extra = {
        }
    },
    loc_text = {
        ['name'] = "1-UP",
        ['text'] = {
            "{C:green}Extra life{}"
        }
    },
    pos = {
        x = 0,
        y = 2
    },
    soul_pos = {
        x = 1,
        y = 2
    },
    cost = 20,
    rarity = 4,
    blueprint_compat = false,
    eternal_compat = false,
    unlocked = true,
    discovered = false,
    atlas = 'CustomJokers',

    calculate = function(self, card, context)
        if context.end_of_round and context.game_over and context.main_eval then
            G.E_MANAGER:add_event(Event({
                        func = function()
                            G.hand_text_area.blind_chips:juice_up()
                            G.hand_text_area.game_chips:juice_up()
                            play_sound('tarot1')
                            card:start_dissolve()
                            return true
                        end
                    }))
                    return {
                        message = localize('k_saved_ex'),
                        saved = 'ph_1_up',
                        colour = G.C.RED
                    }
                end
            end
        end,
    }
}```
rotund sable
#

isn't there one too many }

molten relic
#

is there?

#

let me check

rotund sable
#

there's two at the end

molten relic
#

that didnt fix it

#

do you want the crash log?

rotund sable
daring fern
# molten relic
SMODS.Joker { --1UP
    name = "1-UP",
    key = "1up",
    config = {
        extra = {
        }
    },
    loc_text = {
        ['name'] = "1-UP",
        ['text'] = {
            "{C:green}Extra life{}"
        }
    },
    pos = {
        x = 0,
        y = 2
    },
    soul_pos = {
        x = 1,
        y = 2
    },
    cost = 20,
    rarity = 4,
    blueprint_compat = false,
    eternal_compat = false,
    unlocked = true,
    discovered = false,
    atlas = 'CustomJokers',

    calculate = function(self, card, context)
        if context.end_of_round and context.game_over and context.main_eval then
            G.E_MANAGER:add_event(Event({
                func = function()
                    G.hand_text_area.blind_chips:juice_up()
                    G.hand_text_area.game_chips:juice_up()
                    play_sound('tarot1')
                    card:start_dissolve()
                    return true
                end
            }))
            return {
                message = localize('k_saved_ex'),
                saved = 'ph_1_up',
                colour = G.C.RED
            }
        end
    end,
}
#

I fixed the syntax errors.

#

And I also formatted it.

tight hull
daring fern
molten relic
#

it works!

#

but the description doesnt work

#

lemme check

tight hull
#

Is there a way to have multi color mod bages?

daring fern
molten relic
#

ohhh i did text?

#

whoopsie

daring fern
tight hull
#

I just want 2 colors

daring fern
tight hull
daring fern
rotund sable
#

i think he means JSON

tight hull
#

wont it sheet itself if I start to put code in the .json file (idk how .json works)

daring fern
#

It only takes HEX keys.

tight hull
#

or it just doesnt work at all

stiff quiver
#

is there a context when entering shop? and if so what is it?

#

nvm i can just use end of round

merry frost
#
BlindStation.Blind {
    pos = { y = 0 },
    boss_colour = HEX('ed1b24'),
    boss = { min = 2 },
    config = {
        extra = {
            change_suit_type = false,
            suit_type = nil
        }
    },
    set_blind = function(self) -- Reset potentially changed Blind settings
        self.config.extra.change_suit_type = false
        self.config.extra.suit_type = nil
    end,
    debuff_hand = function(self, cards, hand, handname, check)
        local playing_suit_type = nil
        for _, card in ipairs(cards) do
            if not SMODS.has_no_suit(card) then
                if card:is_suit('Clubs') or card:is_suit('Diamonds') then
                    if self.config.extra.suit_type == 'dark' or playing_suit_type == 'dark' then
                        return true
                    end
                    playing_suit_type = 'light'
                elseif card:is_suit('Hearts') or card:is_suit('Spades') then
                    if self.config.extra.suit_type == 'light' or playing_suit_type == 'light' then
                        return true
                    end
                    playing_suit_type = 'dark'
                end
            end
        end
        return false
    end,
#

    press_play = function(self)
        if not G.hand or not G.hand.highlighted or #G.hand.highlighted == 0 or
                self.config.extra.suit_type ~= nil then
            return
        end
        for _, card in ipairs(G.hand.highlighted) do
            if not SMODS.has_no_suit(card) then
                -- Select matching suit type, will be changed after draw
                if card:is_suit('Clubs') or card:is_suit('Diamonds') then
                    sendDebugMessage('First hand of Blind uses light suits', 'BlindStation')
                    self.config.extra.suit_type = 'light'
                    self.config.extra.change_suit_type = true
                    return
                elseif card:is_suit('Hearts') or card:is_suit('Spades') then
                    sendDebugMessage('First hand of Blind uses dark suits', 'BlindStation')
                    self.config.extra.suit_type = 'dark'
                    self.config.extra.change_suit_type = true
                    return
                end
            end
        end
    end,
    drawn_to_hand = function(self, cards, poker_hands, text, mult, hand_chips)
        -- TODO: Fix suit type not always switching after playing a hand
        if self.config.extra.change_suit_type then
            -- Switching allowed suit type
            if self.config.extra.suit_type == 'light' then
                self.config.extra.suit_type = 'dark'
            elseif self.config.extra.suit_type == 'dark' then
                self.config.extra.suit_type = 'light'
            end
            self.config.extra.change_suit_type = false
        end
    end
}
#

I'm having trouble with coding a Blind that records something about the state of the most recently played hand and remembers it

#

If I change the state immediately, the debuff_hand function triggers and the player can never score anything

#

This is my current solution, but it doesn't always flip flop, like drawn_to_hand isn't being fired every time

#

Any ideas on how this can be fixed?

lament agate
#

whats the cause of this?

tawdry oriole
#

is there a way to check another joker's rarity? (not like the baseball card but rather using G.jokers)

tight hull
placid star
#

whats the difference between in pairs and in ipairs

rotund sable
#

ahem

placid star
#

<@&1133519078540185692>

molten relic
#

what happened

red flower
#

bot

molten relic
#

owh

rotund sable
#

should i use SMODS.pseudorandom_probability in the release version of my mod or should wait for it to be in a stable version of SMODS

tepid crow
#

depends, are you releasing in the next couple of days?

rotund sable
#

probably

#

i plan to at least

tepid crow
#

I would not release your mod with a dependency on smods dev versions

#

people will get confused on the smods version

gaunt coral
#

i really want to do the same kind of credits display that cryptid has, where it shows "Cryptid", then it shows who did the code, art etc and just cycles through that
ive been going through cryptid's source code, and all i found is a table in the jokers called cry_credits with tables containing the names of people who did code, art etc. but cant find where and how this table is actually being worked with
anyone has any idea on how to do the credits like that

red flower
red flower
molten relic
#

what do i have to change about this code for it to only apply to scored cards? right now it also counts cards held in hand

#
        if context.individual and not context.blueprint and not context.other_card.debuff and
        context.other_card:is_suit(card.ability.extra.suit) then
        card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
            return {
                message = localize('k_upgrade_ex'),
                colour = G.C.MULT
            }
        end
        if context.joker_main then
            return {
                mult = card.ability.extra.mult
            }
        end
    end
}```
red flower
molten relic
#

ohh okay

lament agate
#

@red flower help me

red flower
#

i will but please dont tag me for troubleshooting

lament agate
red flower
#

when is this? do you know what code caused it?

unborn bay
#

n can only do so much in your pitiful life

lament agate
#

shut up haya

#

🥀

lament agate
#

i removed it and it still happened

red flower
#

does it happen without your mod

lament agate
modern kindle
#

Good schmorning chat

red flower
#

hi diwwy

lament agate
modern kindle
#

Hello N my bestie westie

red flower
lament agate
red flower
#

make it so it only triggers in game

lament agate
#

how

red flower
#

where did you make the context

lament agate
#

above

red flower
#
if G.jokers then
    SMODS.calculate.........
end
lament agate
red flower
#

just that line

lament agate
#

oh okay

#
local click_ref = Card.click
function Card:click()
    local ret = click_ref(self)
    if G.jokers then
        SMODS.calculate_context { clicked_card = self }
    end
end
#

should be good?

red flower
#

yes

robust fable
#

how do I find the position of the currently scoring card? (so 1-5)

red flower
harsh bobcat
#

I wan't my joker to get "mult_per_potato" additional "current_mult" every time I select a blind. And then apply "current_mult" at the end of the hand.

 calcualte = function (self, context)
        G.E_MANAGER:add_event(Event({
            mult = self.ability.current_mult
        }))

        if context.end_of_round and context.main_eval then 
            G.E_MANAGER:add_event(Event({
                func = function()
                    self.ability.rounds = self.ability.rounds + 1
                    self.ability.current_mult = self.ability.mult_per_potato * self.ability.rounds
                end
            }))
            return {
                message = localize('p_potato_more'),
                colour = G.C.P.GREEN
            }
        end
#

This is what I have currently. It does not work

rotund sable
#

calculate not calcualte

harsh bobcat
#

aa

rotund sable
#

also

calculate = function(self, card, context)
harsh bobcat
#

oh

harsh bobcat
rotund sable
#

what's

G.E_MANAGER:add_event(Event({
    mult = self.ability.current_mult
}))
harsh bobcat
#

It is to apply mult that hand. I'm sure it is incorrect I just didn't know what to do.

rotund sable
harsh bobcat
#

oh snap

#

thx

molten relic
#

im making a new enhancement right

#

can i then do the atlas = (even though the other enhancements dont have that) referring to a different spritesheet?

#

instead of the default Enhancers.png

molten relic
#

oh right yeah

#

but thanks anyway

placid star
#

how could i put a space between the text and button elements? is there a padding config?

red flower
#

yes, it's padding

primal robin
#

Weitd that padding also works like gap

unborn bay
#

im padding it

placid star
#

how could i anchor the Art, ideas.. text to the bottom of the tab, i tried using align: 'bm' yet that didnt seem to work

mild grove
#

I have no clue why my audio file isn't loading and crashing the game

red flower
mild grove
harsh bobcat
#

It crasheds (at the right time though) and says it i can't parse ablity since it is a nil value

red flower
#

card instead of self

#

also, save things to card.ability.extra

molten relic
#

could someone assist me with making a new enhancement?

#

i wanna make an enhancement that when scored the card gains +1 mult, but i have no idea how to do it

harsh bobcat
modern kindle
#

my stupid ass was wondering why my game wasnt launching and realized i had clicked into the lovely console and hitting enter made everything work again after like 10 minutes of sitting here

mild grove
#

do i put my custom sounds in "assets/sounds/honk.ogg" or resources/sounds/honk.ogg"??????

red flower
#

assets

molten relic
#

uhm

#

lemme check

#

i had that too

#

man

harsh bobcat
lament agate
#

how do you replace the music playing

#

when you bought a joker

#

or have the joker that changes it

red flower
harsh bobcat
#

I created a new run

#

it crashes in collections/jokers screen

#

but only while on the page with the joker

red flower
#

then your loc_vars is wrong

#

or you're doing something on set_ability

harsh bobcat
#

right

#

i had extra.ability

#

silly

lament agate
#

bump

mild grove
#

I'm trying to get the custom sound to load but i keep getting crashes

red flower
#

do you have an SMODS.Sound

lament agate
red flower
#

what's the joker code

lament agate
# red flower what's the joker code
SMODS.Joker {
    key = 'you',
    loc_txt = {
        name = '{f:tngt_DETERMINATION}You{}',
        text = {
            "{f:tngt_DETERMINATION,}* Despite everything, it's still you.{}"
        }
    },
    config = { extra = {} },
    rarity = "4TH WALL",
    atlas = 'ModdedVanilla3',
    pos = { x = 0, y = 1 },
    soul_pos = { x = 4, y = 1 },
    cost = 20,
    unlocked = true,
    discovered = true,
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue + 1] = G.P_CENTERS.e_negative
    end,
    calculate = function(self, card, context)
        if context.ending_shop then
            G.E_MANAGER:add_event(Event({
                func = function()
                    local card = copy_card(pseudorandom_element(G.consumeables.cards, pseudoseed('perkeo2')), nil)
                    card:set_edition('e_negative', true)
                    card:add_to_deck()
                    G.consumeables:emplace(card)
                    return true
                end
            }))
            card_eval_status_text(context.blueprint_card or card, 'extra', nil, nil, nil,
                { message = localize('k_duplicated_ex') })
        end
    end
}
#

ignore the calculation

#

havent edited it yet

red flower
#

modprefix_key for rarity

lament agate
#

does it still accept space?

#

tngt_4TH WALL

red flower
#

i think so

lament agate
#

its a string anyways, should be

lament agate
#

but it says error

#

smods.rarity requires loc_txt?

red flower
#

yes

lament agate
#

fuck

lament agate
#

just name or you need text = { too?

red flower
#

i can look up the answer in the smods docs if you want

lament agate
#

MY BAD

brittle yacht
#

good morning nerds

#

im alive

#

and i have a bug!!! yay!!!...

pastel kernel
#

does this actually store xmult and unleash it?

        if context.individual and context.cardarea == G.play then
            card.ability.extra.cards_played = card.ability.extra.cards_played + 1
            card.ability.extra.stockpile = card.ability.extra.stockpile * 2
            local total_xmult = card.ability.extra.stockpile * card.ability.extra.xmult
            if card.ability.extra.cards_played == #context.scoring_hand then
                card:juice_up(0.5, 0.5)
                play_sound('holo1', 1, 0.5)
                return {
                    xmult = total_xmult,
                    message = "X" .. total_xmult .. "!",
                    colour = G.C.MULT,
                    card = card
manic rune
#

colour, message and card are unnecessary

and it seems like card.ability.extra.cards_played can go above 5 very easily (which, i hope you have it reset somewhere)

brittle yacht
#
    key = 'sillyboosternormal',
    loc_txt = {
        name = 'Silly Booster',
        text = { 
            'Choose 1 of up to 2 Silly Joker cards!'
        group_name = 'Very silly indeed...'

        }
    },
    atlas = 'sillybooster1',
    pos = {x = 0, y = 0},
    weight = 1,
    cost = 3,
    pools = ['sillyjokers']
    
}
``` it appears i have a couple of errors here, is anybody able to indentify them?
red flower
#

group_name goes outside of text

#

pools seems wrong altogether

#

other than that you're missing a create_card function

modern kindle
#

you guys ever be testing something and then realize you are flat out testing it incorrectly for the last half an hour

red flower
#

no

modern kindle
#

alright ill just stab myself then

brittle yacht
modern kindle
#

i was trying to fix my shit ass spectral that sets your most played hand to level 1 and your second most played hand gets half of those levels
but i was not once levelling up the hand to see why the levels were not updating and then discovered my stupid ass was looking at the number that just says how amny times youve played the hand instead of actually looking at the level

#

cause it was crashing people not on talisman and i was tryna fix that but its fixed now

brittle yacht
tight hull
modern kindle
#

also finally swapping to smods smart level up yippee

mild grove
red flower
red flower
pastel kernel
mild grove
manic rune
pastel kernel
#

Whenever it registers a card, it should store xmult

#

And it does

#

But what it doesn’t do is unleash it

manic rune
#

by unleash do you mean making the card give xmult or something

pastel kernel
manic rune
#

oh is if card.ability.extra.cards_played == #context.scoring_hand then for checking if the card is the last scored card??

red flower
tight hull
#

Is there a way to use SMODS.Gradient on badge_colour?

brittle yacht
red flower
pastel kernel
manic rune
pastel kernel
#

Oh wait

#

Yeah

brittle yacht
#

btw i probably made a pool wrong, what SMODS API do i have to use

#

or wait

#

nvm

pastel kernel
#

I thought that was how it checks for the final card

brittle yacht
#

im actually stupid

manic rune
#

id recommend iterating through context.scoring_hand to check whether the card is the final one instead

#

because card.ability.extra.cards_played = card.ability.extra.cards_played + 1 will trigger when the card is retriggered too

modern kindle
#

bepisss

manic rune
#

hi dilly

modern kindle
#

hi

pastel kernel
robust fable
#

For some reason "mult" is nil as early as loc_vars, all the sendInfoMessage triggers but it does not return mult cause "mult" is nil

manic rune
knotty compass
#

okay so i really need help with this cause im soo lost, ive been trying to make a joker that makes all cards in hand give mult for every different rank to the left and its behaving really weird, anyone can tell what im doing wrong?

red flower
robust fable
red flower
#

new run

manic rune
#
local is_last_card = (context.other_card == context.scoring_hand[#context.scoring_hand])
red flower
#

but yeah if the collection doesn't work that's an issue

pastel kernel
brittle yacht
#

@red flower i think i ironed out all the bugs, let you know if i get anymore

manic rune
red flower
brittle yacht
manic rune
#

no lua extension alert

modern kindle
#

lua schmua

#

who needs it

brittle yacht
#
    key = 'sillyboosternormal',
    loc_txt = {
        name = 'Silly Booster',
        group_name = 'Very silly indeed...',
        text = { 
            'Choose 1 of up to 2 Silly Joker cards!'
        }
    }
    atlas = 'sillybooster1',
    pos = {x = 0, y = 0},
    weight = 1,
    cost = 3
    
}

line 95 is SMODS.Booster{

robust fable
#

noted to do a new run instead of continuing

red flower
#

you can also get a new instance of the joker

#

new run is just easier to explain

red flower
brittle yacht