#💻・modding-dev

1 messages · Page 438 of 1

plush depot
wind steppe
daring fern
# plush depot

You are missing a , after loc_txts closing } also please install the lua extension.

plush depot
high sinew
#

getting multiple baron goes crazy

sonic cedar
fading hemlock
#

I'm trying to make this joker, however when loading a save with it active add_to_deck isn't triggered. Is there a good way to make this work?

local old_can_sell_card = G.FUNCS.can_sell_card
local old_sell_card = G.FUNCS.sell_card
SMODS.Joker {
    key = "hoarder",
    name = "jon_Hoarder",
    atlas = 'jon_jokers',
    pos = {
        x = 1,
        y = 0,
    },
    rarity = 2,
    cost = 5,
    unlocked = true,
    discovered = false,
    eternal_compat = true,
    perishable_compat = true,
    blueprint_compat = false,
    config = {
        extra = {
            jokers = 2,
            consumables = 1,
        },
    },
    loc_txt = {
        name = "Hoarder",
        text = {"{C:attention}+#1#{} joker slots, {C:attention}+#2#{} consumable slot.",
                "Jokers and consumables cannot be sold.",
        }
    },
    loc_vars = function(self, info_queue, card)
        return {
            vars = {card.ability.extra.jokers, card.ability.extra.consumables}
        }
    end,
    add_to_deck = function(self, card, from_debuff)
        G.jokers.config.card_limit       = G.jokers.config.card_limit       + card.ability.extra.jokers
        G.consumeables.config.card_limit = G.consumeables.config.card_limit + card.ability.extra.consumables
        G.FUNCS.can_sell_card = function(_card)
            return false
        end
        G.FUNCS.sell_card = function(_card)
        end
    end,
    remove_from_deck = function(self, card, from_debuff)
        G.jokers.config.card_limit       = G.jokers.config.card_limit       - card.ability.extra.jokers
        G.consumeables.config.card_limit = G.consumeables.config.card_limit - card.ability.extra.consumables
        G.FUNCS.can_sell_card = old_can_sell_card
        G.FUNCS.sell_card = old_sell_card
    end,
}
plush depot
#

is that the entire thing?

daring fern
fading hemlock
#

I was hoping there was a better way

plush depot
#

this is my code

#

anyone know whats going on i used codemobs code almost exactly

chrome widget
#

Does anyone here know if it's possible to have multi-line attention text?

fading hemlock
#

idk if that's the issue though

plush depot
#

its not

#

can i replace key = with multiple cards?

#

cuz i dont want credit card

fading hemlock
#

wdym

plush depot
#

idk how do i put specific cards in the thing

#

key = j_credit_Card

fading hemlock
#

ohh I see what you did

plush depot
#

isnt that credit card joker

fading hemlock
#

do key = "j_credit_card"

#

you forgot the quotes

plush depot
#

it now works, just not the way i wanted it to

#

how do i get specific cards into it

daring fern
plush depot
#

what that mean

daring fern
plush depot
#

where would i put that

tepid crow
#

Hmmm... I'm actually not sure how I circumvented that with sleeves. Do you have some example code I can look at?

lucid owl
#

is there a way to get a list of all consumable types?

cobalt vector
#

how do I make a Joker show an animated image on screen?

daring fern
pulsar furnace
# tepid crow Hmmm... I'm actually not sure how I circumvented that with sleeves. Do you have ...
function create_UIBox_your_collection_states()
  pool = get_states_pool()
  node = {}
  areas = {}
  area = {w = 3, h = 2}
  for _h=1,area.h do
    areas[_h] = {}
    row = {n=G.UIT.R, config={align = "cm", padding = 0.07, no_fill = true}, nodes={} }
    for _w=1,area.w do

      areas[_h][_w] = CardArea(
        G.ROOM.T.x + 0.2*G.ROOM.T.w/2, G.ROOM.T.h,
        1.2*G.CARD_W,
        1.2*G.CARD_H,
        {card_limit = 11, type = 'deck', highlight_limit = 0}
      )

      table.insert(row.nodes, {n=G.UIT.O, config={object = areas[_h][_w]}})
    end
    table.insert(node, row)
  end

  local states_options = {}
  for i = 1, math.ceil(#G.P_CENTER_POOLS.State/(area.w*area.h)) do
    table.insert(states_options, localize('k_page')..' '..tostring(i)..'/'..tostring(math.ceil(#G.P_CENTER_POOLS.State/(area.w*area.h))))
  end

  for _w = 1, area.w do
    for _h = 1, area.h do
      for _ = 1, 10 do
        local card = Card(G.ROOM.T.x + 0.2*G.ROOM.T.w/2,G.ROOM.T.h, G.CARD_W*1.2, G.CARD_H*1.2, pseudorandom_element(G.P_CARDS), G.P_CENTERS.c_base, {playing_card = i, viewed_back = true})
        card.sprite_facing = 'back'
        card.facing = 'back'
        areas[_h][_w]:emplace(card)
      end
      local state = pool[_w+(_h-1)*5]
      local card = create_state_card(areas[_h][_w], state)
      replace_state_sprite(card, state)
      areas[_h][_w]:emplace(card)
    end
  end

  local t =  create_UIBox_generic_options({ back_func = 'your_collection', contents = {
        {n=G.UIT.R, config={align = "cm", r = 0.1, colour = G.C.BLACK, emboss = 0.05}, nodes=node},
        {n=G.UIT.R, config={align = "cm"}, nodes={
          create_option_cycle({options = states_options, w = 4.5, cycle_shoulders = true, opt_callback = 'your_collection_states', current_option = 1, colour = G.C.RED, no_pips = true, focus_args = {snap_to = true, nav = 'wide'}})
        }}
    }})
  return t
end
daring fern
#

wind steppe
lament agate
#

pardon

#

but is it xmults_gain or xmult_gain?

wind steppe
#

whoops

lament agate
#

actually dont answer that

#

im stupid

plush depot
#

anyway how would i make it spawn not credit cards

#

like where would i put my table

tepid crow
daring fern
pulsar furnace
lucid owl
#

i've got a pack that lets you select from multiple card types, however, by default, things like playing cards go to the consumables cardarea. is there a somewhat easy way to allow the player to select playing cards or jokers normally, while also selecting consumables to their normal cardarea?

tepid crow
daring fern
# plush depot wot
local random
while random == "j_credit_card" do
    random = pseudorandom_element(G.P_CENTER_POOLS.Joker, 'seed').key
end
wind steppe
#

I think you’re misunderstanding

#

they don’t want no credit cards they want it not to be only credit cards

plush depot
#

i want no credit cards

wind steppe
#

(which is what my booster pack does)

wind steppe
#

damn

plush depot
#

i want my 6 custom consumables

#

but idk how to do that ive never modded before

#

booster packs atleast

wind steppe
plush depot
#

paint

lucid owl
wind steppe
tepid crow
# pulsar furnace wdym how do i generate the card areas?

My logic was right. Compare the way you generate your cardarea (specifically the config options)

CardArea(
        G.ROOM.T.x + 0.2*G.ROOM.T.w/2, G.ROOM.T.h,
        1.2*G.CARD_W,
        1.2*G.CARD_H,
        {card_limit = 11, type = 'deck', highlight_limit = 0}
      )

to the way you I generate the cardarea (copied directly from galdur)

CardArea(G.ROOM.T.x + 0.2*G.ROOM.T.w/2,G.ROOM.T.h, 0.95*G.CARD_W, 0.945*G.CARD_H,
        {card_limit = 5, type = 'deck', highlight_limit = 0, deck_height = 0.35, thin_draw = 1, index = i})

Setting one of those config options deck_height, thin_draw or index will get rid of the shadowed second card

pulsar furnace
#

ohh

#

ok

tepid crow
#

you'll have to trial-and-error or look through the code to figure out which one of those 3 it is

#

(or possibly a combination of the 3)

lament agate
#
    calculate = function(self, card, context)
        if context.end_of_round and G.GAME.blind and not context.blueprint then
            if G.GAME.hands_left == 0 then
                card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_gain
                return {
                    message = "ay caramba",
                    colour = G.C.RED
                }
            end
        end

        if context.joker_main then
            return {
                xmult = card.ability.extra.xmult
            }
        end
    end
    
}
#

helo

#

help

lament agate
#

it doesnt scale

plush depot
#

this happened when opening the pack

wind steppe
#

is the consumable type called paint?

plush depot
#

yes

wind steppe
#

and your prefix is colr?

plush depot
#

in the .json right

#

yep

daring fern
plush depot
wind steppe
#

inconsistent but ok

#

remove the colr_

daring fern
plush depot
wind steppe
#

They don’t typically have editions

#

stop with the question marks

plush depot
#

theres supposed to be 3

#

not just green

wind steppe
#

set extra in the config to 3

plush depot
#

oh lol

wind steppe
#

maybe pasting code from the Pack That Only Gives You One Credit Card was a bad idea

plush depot
#

um what the particles

#

theres gotta be something to handle that right

daring fern
plush depot
#

no workie

#

wait where do i put it

wind steppe
#

in the create_card

plush depot
#

the skip materialize

#

o

plush depot
#

now it works

#

then thats it

#

enhancements done

#

jokers done

#

consumables done

#

the one pack done

#

now just to make the github page for the mod (someone a little help?)

daring fern
plush depot
#

anything else i need

#

the github thigny majigy

#

stop with the ❓

#

or 🤔

gaunt thistle
#

that looks like enough?

plush depot
#

ok cool

gaunt thistle
#

if that's what your mod needs for it to run then you're golden

glad parrot
#

Hi everyone, I'm pretty new to modding and I want to know if anyone can help me, I need to know how to detect which hand is played (four of a kind in my case) and how to get the blind number, hands, discard, almost all the numbers in the HUD (I just want to count how many 4 are in screen), is there any documentation or template for this?

daring fern
high sinew
daring fern
hard mica
#

anyone know how i can fix the error thing?

high sinew
daring fern
daring fern
hard mica
glad parrot
#

Ok, thank you very much @high sinew and @daring fern

high sinew
lucid owl
#

is there a way to change variables of specific booster types?

high sinew
#

Unless u wanna change badge of actual booster strong

lucid owl
high sinew
#

But I think booster comes with weight

hard mica
high sinew
#

Try out weight = #

lucid owl
#

yeah, i'd like to have a voucher that turns specific boosters to a different weight

daring fern
lucid owl
#

they're at a weight of 0 but i want a voucher to increase that, aka they can only be found in the shop once a voucher is purchased

daring fern
high sinew
#

Okay man use words instead of ur expression 😬

lucid owl
lucid owl
#

i suppose i could give them an in_pool function that only allows spawning after the voucher is purchased?

daring fern
lucid owl
hard mica
#

i guess this just crashes

daring fern
hard mica
#

just saw that

#

mb

#

so im having a bit of a problem here , how can i make the $10 with the color i want and not just that

daring fern
hard mica
#

oh damn

#

can i just have the text without name?

cobalt vector
#

how do I load a full image that covers the screen?

daring fern
hard mica
midnight coyote
#

how do i just wipe out a card as dirty as possible

wind steppe
#

how do i increase the ante to win (on a deck)?

daring fern
wild escarp
#

Is there an easy way to create tags based on their order in the collection? (Similar to ace equilibrium from cryptid)

wild escarp
#

Cool, but what is it? Any examples somewhere?

daring fern
wind steppe
#

why doesnt my mod load

#

i have challenger deep 1.4.0

wild escarp
lucid owl
#

would it be smarter (or more efficient?) -- to make a purchased voucher modify card rates, or instead lock said cards behind an in_pool requiring the voucher to be purchased?

#

as in, purchasing the voucher should allow these cards to spawn

buoyant shard
#

How does a Joker earn money when scored? I'm using ease_dollars but it keeps crashing

wind steppe
#

why doesnt my challenge appear? (i have challenger deep)

buoyant shard
#

Ok, it's not crashing, but it's not giving money either

#

Code:

SMODS.Joker {
key = 'brandon',
loc_txt = {
name= "Gambling City",
text = {
"{c:chips}+#1#{} chips and earn {c:money}$#2#{}",
"if played hand contains exactly 2 cards"
}
},
atlas = "WombatsObscure",
pos = {x = 9, y = 0},
rarity = 2,
cost = 6,
blueprint_compat = false,
config = { extra = {chips = 100, payout = 5}},
loc_vars = function(self,info_queue,center)
return {vars = {center.ability.extra.chips, center.ability.extra.payout}}
end,
calculate = function(self,card,context)
if context.joker_main and #context.full_hand == 2 then
return {
card = card,
chip_mod = card.ability.extra.chips,
message = 'What is this?',
ease_dollars(payout),
colour = G.C.CHIPS
}
end

end

}

daring fern
#

Also move it out of the return.

wind steppe
#

why does my challenge do nothing with no name

buoyant shard
plush depot
#

anyone know what the weight of a regular celestial or arcana pack is?

buoyant shard
daring fern
#

Apparently, to fix this I just had to loop over SMODS.Centers as well.

pure salmon
#

how do i (not permanently) debuff a card outside of context.debuff_card?

wind steppe
#

why does my challenger deep challenge do nothing

violet gulch
buoyant shard
#

how do you change a card's rank

wind steppe
daring fern
#

wind steppe
#

why does my challenge do nothing

violet gulch
#

What are you trying to have it do?

buoyant shard
#

I'm trying to turn all kings and jacks into queen's but it just crashes when I play a jack

buoyant shard
#

code:

calculate = function(self,card,context)
if context.cardarea == G.play then
if context.other_card:get_id() == 13 then
card = card
assert(SMODS.modify_rank(card, -1))
end
if context.other_card:get_id() == 11 then
card = card
assert(SMODS.modify_rank(card, 1))

        end
    end

    
end
wind steppe
violet gulch
#

card in that context would be the Joker. I think you want to pass context.other_card to modify_rank

wind steppe
#

you need card = context.other_card

buoyant shard
#

thanks gang

wind steppe
violet gulch
wind steppe
#

i have challenger deep

crystal otter
#

does anyone know how to change cryptid jokers?

crystal otter
#

i want to make happy house's activation requirement lower for funny

crystal otter
buoyant shard
#

It's still crashing

calculate = function(self,card,context)
if context.cardarea == G.play then
if context.other_card:get_id() == 13 then
assert(SMODS.modify_rank(context.other_card, -1))
end
if context.other_card:get_id() == 11 then
assert(SMODS.modify_rank(context.other_card, 1))
end
end

end
buoyant shard
#

let me go get the report

daring fern
# crystal otter do pray tell

You would CTRL + F for happyhouse in items/misc_joker.lua from the cryptid folder and change trigger = 114 to trigger = lowernumber

chrome widget
buoyant shard
violet gulch
wind steppe
violet gulch
#

Assuming challenger deep is another mod?

chrome widget
wooden swift
#

is it possible to use two different atlas' for the same joker? im trying to make a legendary joker with the soul sprite being wider than the regular joker sprite size

violet gulch
wind steppe
violet gulch
# wind steppe bump

I'm honestly not sure. Was looking at the challenger deep examples and from what I can tell, it should work

wooden swift
wind steppe
#

good practice

violet gulch
#

If it was me debugging, I'd copy the challenger deep example "pinch" or whatever it is that changes the win_ante and see if that one works.

#

to isolate if its something I'm doing or not

wind steppe
violet gulch
#

"The Pinch" reduces win ante to 6.

thorn bough
#

Does anybody know how to make a joker scale when any destruction occurs? I tried making a global tracker using :dissolve, but it activates when selling cards.

IE: It scales on jokers like madness, cards destroyed by immolate.
It does not scale when consumables are used, or cards are sold

wild escarp
high sinew
wild escarp
#

add_tag(G.P_CENTER_POOLS.Tag)

high sinew
#

need a little more than direct line lol i wanan see how u are using this

#

it is crashing with the add_tag function

daring fern
thorn bough
wild escarp
wild escarp
#

Add tags from the order in the collection, two at a time, when condition is met.

wild escarp
#

Yes

daring fern
# wild escarp Yes
card.ability.tagnumber = card.ability.tagnumber or 1
local tags = {}
for k, v in pairs(G.P_TAGS) do
    table.insert(tags, v.key)
end
add_tag(Tag(tags[card.ability.extra.tagnumber]))
card.ability.tagnumber = card.ability.tagnumber + 1
```?
daring fern
thorn bough
thorn bough
daring fern
daring fern
daring fern
thorn bough
wild escarp
daring fern
fierce frost
#

how could i make a joker that unlocks after a different joker gets destroyed (yes the gros michael function)

daring fern
wild escarp
daring fern
buoyant shard
#

what's the context for using a consumable?

wild escarp
# daring fern `Mods/lovely/dump/tag.lua`
    function Tag:generate_UI(_size)
        _size = _size or 0.8
    
        local tag_sprite_tab = nil
    
513 ->  local tag_sprite = Sprite(0,0,_size*1,_size*1,G.ASSET_ATLAS[(not self.hide_ability) and G.P_TAGS[self.key].atlas or "tags"], (self.hide_ability)             and G.tag_undiscovered.pos or self.pos)
daring fern
daring fern
wild escarp
#

Nope

#

It doesn't crash anymore, but the tags are completely out of order.

daring fern
wild escarp
#

That seems to have done it.

thorn bough
#

@daring fern I must be dumb, because despite my best efforts, I still can't get it to work

thorn bough
#

Okay, keeping in mind I started lua 4 days ago: What does that mean?

buoyant shard
#

This guy makes infinite spectrals when a round starts for some reason

if context.using_consumeable then
if pseudorandom('lilico') < G.GAME.probabilities.normal / card.ability.extra.odds1 then
local card = create_card('Tarot',G.consumeables, nil, nil, nil, nil, nil, 'lilico')
card:add_to_deck()
G.consumeables:emplace(card)
G.GAME.consumeable_buffer = 0

            return {
                card = card,
                message = "When you tell it to!",
            }
        end
        else if pseudorandom('lilicoco') < G.GAME.probabilities.normal / card.ability.extra.odds2 then
            local card = create_card('Spectral',G.consumeables, nil, nil, nil, nil, nil, 'lilico')
                card:add_to_deck()
                G.consumeables:emplace(card)
                G.GAME.consumeable_buffer = 0
            
            return {
                card = card,
                message = "I wanna go out with a bang!",
            }
        end
    end
daring fern
thorn bough
daring fern
wooden swift
daring fern
lament agate
#

not addinf xmult or anything

daring fern
lament agate
#

whoops

#

the rest are fine right

daring fern
daring fern
lament agate
scarlet imp
#

anyone ever messed with food items? I'm trying to make a Joker that scales when food items are eaten

pastel kernel
#

What, like ice cream? Popcorn? Cavendish?

subtle merlin
#

Is there a way to have a blind automatically fail you?

hard mica
chrome widget
#

You can return the correct key you need in the loc_vars return table

subtle merlin
snow vale
#

can a consumeable give x2 mult to the next hand played, but only once (as it destroys)?

hasty mist
#

How do you change the formula on how chips X mult scoring is calculated?

manic rune
#

i forgot how to hook HELP

#

😭

rapid stag
#

how can i make a joker rarity that is not added to the default spawn pool? would i do

SMODS.Rarity{[...], pools = {}}
```?
hasty mist
#

alright, slowly attempting to figure this out, if i have a global variable like this, would this work?

#

(ast.operator in this scenario would equal *, for example)

#

essentially, i'm trying to replace * in hand_chips*mult with a global variable that equals *, essentially replicating the same effect as the original

unborn bay
#

why is this in a function

manic rune
#

i want to add code to existing objects

#

but like, my mod's priority is low so it wont account for items added by other mods unless i hook it to something like Game:start_run

hasty mist
#

how would one go about inserting a global variable in such a way

#

hm how can i rephrase this

umbral zodiac
#

you know i don't think thats in the right position

hasty mist
#

😭

#

why in the world does this crash

umbral zodiac
#

its not a string its just *

#

so it thinks youre trying to multiply two numbers

hasty mist
#

well i dont want it to be a string either

#

i think

umbral zodiac
#

almost at the right spot

hasty mist
#

currently trying to do something like this

hasty mist
umbral zodiac
#

i was dared to do this by my past self

hasty mist
#

oh god

#

this is gonna be controversial

#

lmao

#

i had an idea for a metaprogression joker once

umbral zodiac
#

the main thing itll provide is making overscoring lighter on the player

hasty mist
#

but everyone hated it

#

this was the idea

#

i really liked the idea but

#

i know people hate metaprogression

#

so i scrapped it

hasty mist
umbral zodiac
#

major mechanic in valk; score too much on the boss blind, you go up extra antes

hasty mist
#

ah

#

i see

#

oh god i forgot == instead of = again

chrome widget
#

Okay, I can now do multi-line attention text. Nice

modern kindle
#

Winter smiley face

hasty mist
#

me when code works when i eval it but not when i put it in my code

chrome widget
#

I was surprised this wasn't an already supported feature

modern kindle
#

hey thats pretty good

viral ember
#

I had seen a way to dynamically change a custom Jokers texture?

plain apex
#

is that even possible to do? can i save a shop and repeat it like that?

hasty mist
viral ember
#

Hey I know this is from a while ago but did you ever get this to work?

last field
#

Yeah

viral ember
#

would you mind sharing the code?

#

I'm trying to do something similar for my mod lol

#

mine just does... this.

rugged bane
#

Hey, I am kinda stuck with this error for 20 minutes, maybe you guys know what I should do here is the error message,the joker_index and the line 39 :
if HI_UTIL.config.jokers_enabled then
HI_UTIL.ENABLED_JOKERS=HI_UTIL.ENABLED_JOKERS
for_, item in pairs(SMODS.load_file("content/jokers/joker_index.lua")() ) do
table.insert(HI_UTIL.ENABLED_JOKERS, item)
end
end

hasty mist
#

is there a reason this doesnt work

#

i dont understand at all

#

doing eval G.HUD:get_UIE_by_ID("chipmult_op").config.text = "+" works just fine

#

but when i play the deck this happens

viral ember
#

add "if G.HUF then"

#

this is to check if it's NOT nil

chrome widget
viral ember
#

sick!

#

how do I do it lol

chrome widget
chrome widget
hasty mist
#

i see

viral ember
chrome widget
#

You're given texture_coords within the shader effect function, which are essentially just UV coords for a flat quadrilateral image. I have a shader that just shifts the UV up/wraps around over time for a motion effect, so basically easy?

viral ember
#

oh sick

chrome widget
#

Most vanilla shaders do a conversion using the image/texture details to get the full range of values from 0-1, because I think by default, Love2D only provides texture coords in the relative range of the visible part of the atlas

#

But yeah for a texture that's always displaying the full atlas, I literally just did this:

vec2 upper_coords = vec2(tex_coords.x, tex_coords.y + 0.12);
vec2 lower_coords = vec2(tex_coords.x, tex_coords.y - 0.03);```
viral ember
#

I think smods is having a heart attack lmao

#

How do I fix this lol

#

It isn't me cause I've undid everything from within the last 10 minutes

#

wait legit tho it won't go away

#

I UPDATED SMODS AND IT'S STILL HERE HWAT

#

I GAVE MY MODE A .LOVELYIGNORE AND IT WORKS???

#

WHAT DID I DO

#

i fixed it

#

for some reason my language being a custom one made it have a seizure soo

hallow slate
#

What do I do if my game just crashes and exits

viral ember
#

cry

#

for it is all you can do

hallow slate
#

Yeah great suggestion

viral ember
#

nah but fr what's your mod list

hallow slate
#

Custom mod

viral ember
#

oh

hallow slate
#

It's my mod thats the prolbkem

viral ember
#

what did you add

hallow slate
#

How do I get my full mod list

viral ember
#

if you can't open the game to check add a file to your mod called ".lovelyignore"

hallow slate
#

Actually I think I found it

#

"Paya's Terrible Additions"

#

I removed the mod and it works fine now

last field
#

just replace it with your stuff

viral ember
#

this is really weird

#

it's still not working lmao

#

I have exactly what you have but mine just errors?

#

wait it is french

#

wait what

#

is it my priority?

#

Okay it's setting but the modded text is broken for some reason

hard mica
lament agate
#

is this correct btw?

#
calculate = function(self, card, context)
    if context.end_of_round and context.main_eval then
        local last_hand = G.GAME.hands and G.GAME.hands.last_hand
        if last_hand and last_hand.poker_hand == 'Flush' and last_hand.suit then
            local flush_suit = last_hand.suit
            for _, c in ipairs(G.hand.cards) do
                if c and c.base then
                    c:set_suit(flush_suit)
                    c:juice_up(0.6, 0.6)
                end
            end
            return {
                message = "Shrimp'd",
                colour = G.C.SUITS[flush_suit]
            }
        end
    end
end
}
buoyant ermine
#

hello ! I am really intrested in modding balatro but I do not know where to start ? I wanted to make jokers, tags and maybe a few bosses.
If you have any ressources i could check out to learn modding in balatro i would be very greatful

buoyant ermine
umbral zodiac
#

anyone know why the progress bar thats intended to display just isnt? ui code & screenshot below

hard mica
slender mulch
#

hey why does it crash when i try to view the joker in the game this is what it says how to fix it

slender mulch
#

MODS.Joker{
key = "Painful joke", --name used by the joker.
config = { --variables used for abilities and effects.
extra = {
mult = -10,
chips = 100},
},
pos = { x = 0, y = 0 }, --pos in spritesheet 0,0 for single sprites or the first sprite in the spritesheet.
rarity = 2, --rarity 1=common, 2=uncommen, 3=rare, 4=legendary
cost = 5, --cost to buy the joker in shops.
blueprint_compat=true, --does joker work with blueprint.
eternal_compat=true, --can joker be eternal.
unlocked = true, --is joker unlocked by default.
discovered = true, --is joker discovered by default.
atlas = '"painful_joke"', -- atlas name, single sprites are deprecated.

calculate = function(self, card, context)                   --define calculate functions here
    if context.joker_main and context.cardarea == G.jokers then -- returns total chips from joker to be used in scoring, no need to show message in joker_main phase, game does it for us.
        return { 
            mult = card.ability.extra.mult,
            chips = card.ability.extra.chips,
            colour = G.C.CHIPS,}
        
    end
end,

loc_vars = function(self, info_queue, card)                              --defines variables to use in the UI. you can use #1# for example to show the chips variable
    return { vars = { card.ability.extra.chips}}
end
keen totem
#

no

#

you can format it by surrounding it in three `

slender mulch
#
    key = "Painful joke",                                 --name used by the joker.    
    config = {                                          --variables used for abilities and effects.
        extra = {
           mult = -10,
            chips = 100},
    },
    pos = { x = 0, y = 0 },                              --pos in spritesheet 0,0 for single sprites or the first sprite in the spritesheet.
    rarity = 2,                                          --rarity 1=common, 2=uncommen, 3=rare, 4=legendary
    cost = 5,                                            --cost to buy the joker in shops.
    blueprint_compat=true,                               --does joker work with blueprint.
    eternal_compat=true,                                 --can joker be eternal.
    unlocked = true,                                     --is joker unlocked by default.
    discovered = true,                                   --is joker discovered by default.    
    atlas = '"painful_joke"',                                -- atlas name, single sprites are deprecated.

    calculate = function(self, card, context)                   --define calculate functions here
        if context.joker_main and context.cardarea == G.jokers then -- returns total chips from joker to be used in scoring, no need to show message in joker_main phase, game does it for us.
            return { 
                mult = card.ability.extra.mult,
                chips = card.ability.extra.chips,
                colour = G.C.CHIPS,}
            
        end
    end,

    loc_vars = function(self, info_queue, card)                              --defines variables to use in the UI. you can use #1# for example to show the chips variable
        return { vars = { card.ability.extra.chips}}
    end```
keen totem
#

its SMODS.Joker

#

not MODS.Joker

#

also atlas should just be "painful_joke"

#

not '"painful_joke"'

slender mulch
#

i see

#

thank you

spice wadi
slender mulch
#

yes it was the '"painful_joke"' that messed it up

misty gorge
#

Tried to create a deck which increases the chance of negative cards appearing, yet for some reason it doesn't affect the rate at all and I have no idea why it doesn't work

#

set to 200x for testing

hard mica
gaunt phoenix
#

How could I create some consumables like The Emperor for example ? The only thing I managed to do is buggy and not usable

faint yacht
#

If more than once, use a for loop that contains SMODS.add_card{ set = 'Tarot' }, if using Tarot cards as example.

gaunt phoenix
#

I was using create_card ;; it worked, thanks

red flower
umbral zodiac
#

oo alright ill try it

#

no change, unfortunately

manic rune
#

its been a while since i last used it

#

😭

umbral zodiac
#

did you abstract it so much you dont remember how progress_bar works

merry raven
#

Welcome back the horrors of working with CSS

umbral zodiac
#

ive already fiddled with ui before

#

but i have no clue how progress bars work

manic rune
umbral zodiac
manic rune
#

its supposed to work like uhhhhhh

merry raven
manic rune
#

i forgot the name, but its a bar you can slide

umbral zodiac
#

i got sliders to work properly but the issue is

#

obviously you can slide them

manic rune
#

yeah

#

i just

took its code, and make it so it cant slide

umbral zodiac
#

do you know what you did to do that

manic rune
#

:3

#

thats like more than a month ago lmfao

umbral zodiac
#

do you also have all term memory loss

manic rune
#

😭 hey

#

what did u say again

umbral zodiac
#

uuuuhhh i forgot

merry raven
#

Speaking of UI
How do yall go about spawning sprites on the screen

gaunt phoenix
#

How could I check name/set of an used consumable

manic rune
#

context.using_consumeable

#

and uh

#

the set should be in context.(consumeable? check smods documentation, i forgot).config.center.set

gaunt phoenix
manic rune
gaunt phoenix
#

Why does that don't work ? It should level up a random hand when a planet card is used, and nothing happens rn

gaunt phoenix
#

I tried that too, same result (none)

manic rune
#

oh

manic rune
#

I

#

FORGOT THE USING

#

anyways

gaunt phoenix
#

Will try that, thanks ! ✨

#

It worked as intended ! It just level up a bit weirdly in the UI... If anyone know how I could fix that, let me know pls

wild escarp
#

Anyone know why this isn't doing any repetitions?

calculate = function(self, card, context)
    if context.repetition and context.cardarea == G.play and context.main_scoring then
        for k, v in ipairs(context.scoring_hand) do
            if SMODS.has_enhancement(v, 'm_willatro_overgrown') then
                return {
                    repetitions = card.ability.extra.repetitions
                }
            end
        end
    end
end
manic rune
#

remove and context.main_scoring

wild escarp
#

Still nothing

manic rune
#

what code is this in

wild escarp
#

A joker

manic rune
#

huh

#

it should work then, thats odd

#

are you sure the enhancement key is correct?

wild escarp
#

Yep

hard mica
obtuse silo
plain apex
#

theres G.GAME.edition_rate to make editions more likely is there one for enhancements?

daring fern
plain apex
# daring fern No.

so is there any way to make enhancements more common like how hone makes editions more common?

plain apex
#

how?

daring fern
sterile minnow
#

can someone help me

daring fern
sterile minnow
#

like, im trying to make a card that turns one random card into negative, it works. But, when every card is already negative and its only the card itself remaining the game just crashes

#

I mean a joker not card

daring fern
sterile minnow
#

at the card.lua thingy

#

I am modding in the game itself

#

not at steammodded

daring fern
daring fern
sterile minnow
#

cuz I dont know how lol

hard mica
daring fern
hard mica
daring fern
# hard mica

Just do info_queue[#info_queue+1] = center.ability.extra.current_effect_text

hard mica
daring fern
hard mica
#

that works nicely

#

thanks

worthy stirrup
#

Is there a check for when a card does the little flipping animation?

daring fern
worthy stirrup
#

another hook...

#

to be sure bc im still not sure of hooking, is this how I would hook to it?


local oldFlip = Card.flip

function Card:flip()
    print("Card flipped:", self)

    return oldFlip(self)
end
#

wait why did i put dots

worthy stirrup
#

thank you

#

and now I call for Card:flip() in my joker and when it flips, my hook happens as well, correct?

worthy stirrup
#

Thank you

#

oh my, it seems the game likes to flip cards a lot

#

What context or G. do I use to check if its in the middle of a run?

daring fern
worthy stirrup
#

let me try that, thanks in advance

#

it worked, sweet

gaunt thistle
worthy stirrup
#

Am i able to use this to check if a card being destoryed is a heart or should I be using something else?

if context.destroy_card then
snow vale
#

someone's getting this crash somehow on my mod

#

what could it be

daring fern
snow vale
#

ok

worthy stirrup
#

So i got this, would this work or am i just forgetting how to target destroyed cards?

   calculate = function(self, card, context)
        if context.destroying_card then
            if card:is_suit("Heart") then
                card.ability.extra.multgiven = card.ability.extra.multgiven + .2
            end
        end
        if context.joker_main then
        return {
            xmult = card.ability.extra.multgiven
        }
    end
    end,
daring fern
worthy stirrup
#

ohhh, makes sense

lucid owl
#

in a pack with a mix of types, is there a way to let selected cards go to their respective cardareas? select_card = "consumeables" sends everything to the consumable slot, but if unspecified, cards that are "USE" by default can't be selected at all

sonic cedar
#

i have returned to ask for a fix to this set_ability bug
(example shown: half-joker changing to a full size card)

sonic cedar
lucid owl
#

that consumable is usually meant to be in a cardarea, never used

spark ruin
#

So I was told to come here and ask what this meant cause i'm struggling with loading mods without it crashing...

lucid owl
sonic cedar
#

like something for the pack to iterate through of "do not pick this one"

lucid owl
spark ruin
lucid owl
#

which works just fine normally, however is a bit strange when jokers go in your consumable slots

lucid owl
lucid owl
#

hmmmmm, maybe, though that feels a bit limiting

#

could work as a temp solution

sonic cedar
#

yeah i meant as much

#

until you can really figure out what's going on

wintry solar
worthy stirrup
wintry solar
worthy stirrup
#

correct

wintry solar
#

this would be the relevant context then

worthy stirrup
#

ah, okay, ill conver it over to that

royal ether
#

yo does everyone use smods still

sonic cedar
#

yeah

royal ether
#

ok ty

simple helm
#

how can i make to check if a joker at the left of another triggers?

wintry solar
#

this set ability thing is weird, I definitely fixed it the other month 🤔

sonic cedar
#

i did go ahead and file about the sprite bug i had with it, just in case it is smods

#

and it's weird cause it's like a one-way door too?? like a standard res can switch to a unique res, but it cant do it vice versa

fierce frost
#

how can i make a joker unlock from a different joker breaking?

royal ether
#

oh wait unlock

#

nvm idk

fierce frost
royal ether
#

oh yea then u use pool flags

#

o i guess in smods its this

obtuse silo
royal ether
#

yo is the recommended way to change vanilla functions still wrapping or have you guys got some more fancy ways for that now

snow vale
#

what context do i use to check for the end of ante

nova eagle
#

Does anybody know how to change the title screen like cryptid does? i want to change it so that the mod title card is overtop of the title screen, but have no clue how

#

(like this)

snow vale
spice wadi
#

The process is smth like

nova eagle
#

but will the background still be moving? or would it go static?

snow vale
snow vale
#

not part of the title

nova eagle
#

ohhh ok

#

cool

spice wadi
#
  • create a custom logo sprite
  • create a hook for the main menu
  • write smth to change the sprite
snow vale
spice wadi
#

It's p simple and you can look at mods that do this

nova eagle
#

and how do i stop the card in the middle from being movable?

nova eagle
#

what would i override for that?

spice wadi
#

Look at Rocket

snow vale
#

ok ill do so

spice wadi
spice wadi
#

I'm guessing you can also set the weight to 0

royal ether
#

gonna ask again; if i wanna be changing vanilla game functions, is the recommended way still hooking/wrapping

spice wadi
royal ether
#

oh yea i forgot patching is a thing

#

tyty

tardy juniper
#

Is there a way to make a card automatically change sprites on a timer ingame?

manic rune
#

this doesnt work help me

spice wadi
#

i think keyboard users are the problem

#

i see you triangle

spice wadi
#

go to sleep

spice wadi
sonic cedar
#

how would you store an existing joker's effect in a table?

#

if possible, ofc

#

like if i wanted a joker to pick between the abilities of two other jokers, is there a way to do that without recreating the ability of every joker i want it to use?

worthy stirrup
# wintry solar this would be the relevant context then

i might be dumb, what am i doing wrong?

    calculate = function(self, card, context)
        if context.remove_playing_cards then
            for i in #context.remove_playing_cards.removed do
                if context.remove_playing_cards.removed[i]:is_suit("Heart") then
                    card.ability.extra.multgiven = card.ability.extra.multgiven
                end
            end
        end
        if context.joker_main then
        return {
            xmult = card.ability.extra.multgiven
        }
    end
    end,
#

it would help if i send a crash log 1s

native zinc
#

suit is 'Hearts'

worthy stirrup
#

god damn it

#

why didnt i even think to try that

royal ether
#

chat what am i doing wrong

#

this is a poker hand for context

worthy stirrup
royal ether
#

hovering the hand in the run info menu crashes

manic rune
worthy stirrup
#

oh

native zinc
#

oh lmao

manic rune
worthy stirrup
#

oh lol

#
    calculate = function(self, card, context)
        if context.remove_playing_cards then
            for i in #context.removed do
                removed = cards_destroyed
                if context.removed[i]:is_suit("Hearts") then
                    card.ability.extra.multgiven = card.ability.extra.multgiven
                end
            end
        end
        if context.joker_main then
        return {
            xmult = card.ability.extra.multgiven
        }
    end
    end,
#

line 387 is

for i in #context.removed do
royal ether
#

ur tryna iterate thru a number

worthy stirrup
#

i thought it said it was a table

royal ether
#

get rid of # in #context.removed

worthy stirrup
#

wait. does # mean to try it as a number, bc i thought it was just a way to get how long it is

royal ether
#

oh youre trying to use the index

worthy stirrup
#

yea

#

check which cards are hearts

royal ether
#

actually i dont think you need to use the index

worthy stirrup
#

ive got this now

royal ether
#
for i in context.removed do
                removed = cards_destroyed
                if i:is_suit("Hearts") then
                    card.ability.extra.multgiven = card.ability.extra.multgiven
                end
            end```
manic rune
#

istg i will never get used to that for loop

royal ether
#

because if you remove the #, i becomes the object of the table you iterate thru

manic rune
#

like, i know it works but damn 😭

#

im too used to i,v or _,v

#

but also

#

what the hell is card.ability.extra.multgiven = card.ability.extra.multgiven supposed to do

worthy stirrup
#

fuck. i meant to add a + .2

native zinc
#

also please use Xmult and Xmult_mod

#

i beg of thee...

worthy stirrup
#

yea, i meant to change it

#

so i got crazy news...

worthy stirrup
manic rune
#

whats your code

worthy stirrup
#

right

#

1s

#
    calculate = function(self, card, context)
        if context.remove_playing_cards then
            for i in context.removed do
                removed = cards_destroyed
                if i:is_suit("Hearts") then
                    card.ability.extra.Xmult = card.ability.extra.Xmult + .2
                end
            end
        end
        if context.joker_main then
        return {
            xmult = card.ability.extra.Xmult
        }
    end
    end,
royal ether
#

is 387 the is_suit line

manic rune
#

remove removed = cards_destroyed bud

#

thats not necessary

worthy stirrup
#

im gonna sob

worthy stirrup
manic rune
#

can you just do

#
for _,v in ipairs(context.removed) do
  if v:is_suit("Hearts") then
  ...
#

:3

worthy stirrup
#

can i...

royal ether
#

i think u can

worthy stirrup
#

im gonna try

#

im glad i can help raise yalls blood pressure

manic rune
#

i have my AC on so im chill lol

royal ether
#

all good ive seen worse :garf:

manic rune
#

true

worthy stirrup
#

thank god, i always feel like a bother when i ask for help bc :3

manic rune
#

its fineee, you only get better from making mistakes

royal ether
#

no ones obligated to answer u so everyone who does wants to help 👍

worthy stirrup
#

should the return be Xmult =

manic rune
#

i mean, you would be absolutely disgusted if you see my first attempt on a complex joker

manic rune
native zinc
manic rune
#

feast your eyes on mucho texto joker

#

i made this during uhh the first few days im here lol

royal ether
#

looks like a chill guy

worthy stirrup
#

im gonna blow up

#

nvm it works now

manic rune
#

lol

worthy stirrup
#

hm, i want a message to appear but like, im gonna tweak

#

ill look at the smods first

#

okay, now i ask, how do i get the number to appear under the joker?

        if context.remove_playing_cards then
            for _,v in ipairs(context.removed) do
                if v:is_suit("Hearts") then
                    card.ability.extra.Xmult = (card.ability.extra.Xmult or 1) + 0.2
                end
            end
            return {
                card.ability.extra.Xmult
            }
        end
manic rune
#

dont put return in there

worthy stirrup
#

oh?

manic rune
#
        if context.remove_playing_cards then
            for _,v in ipairs(context.removed) do
                if v:is_suit("Hearts") then
                    SMODS.calculate_effect({message = "Upgraded!"}, card)
                    card.ability.extra.Xmult = (card.ability.extra.Xmult or 1) + 0.2
                end
            end
        end
#

something like this

worthy stirrup
#

oh god, i would have never guessed to use that lol

#

thank you so much, it works

manic rune
pastel kernel
#

where's the cryptid support server

wraith forge
#

hey guys, does anyone know how to make a consumable spawn a particular joker instead of spawning by rarity? (im new to modding)

manic rune
#

SMODS.add_card{key = "your joker key here"}

wraith forge
simple helm
#

how can i make to check if a joker at the left of another triggers?

manic rune
#

i think i failed to comprehend your question

fallow condor
#

Is there a reason why bp is retriggering a joker instead of doing the effect itself?

manic rune
#

thats how its coded 🤷‍♀️

#

ask thunk lol

fallow condor
#

ah

#

lol

simple helm
manic rune
#

mm

#

one sec

#
if context.post_trigger then
  local pos = 0 --might be a good idea to have this set to 0 by default instead actually
  for i,v in ipairs(G.jokers.cards) do
    if v == card then pos = i break end
  end
  if pos > 1 then
    local left_joker = G.jokers.cards[pos - 1]
    if context.other_card == left_joker then
      --do something here, it already checks if the joker on the left of your joker triggers
    end
  end
end
drifting vapor
#

is it possible to make a specific pool of jokers more common in the shop if you have a joker held?

wraith forge
manic rune
#

whats the code

manic rune
simple helm
#

but what can i do if i want to sum mult if it doesnt trigger?

manic rune
#

return{}?

#

no, i left it empty on purpose so that you can add your own code in there lol

simple helm
#

lol

simple helm
simple helm
#

i made this

worthy stirrup
#

Im looking through the smods wiki and im confused, how could i get it to add a perma 5 chips and 1 mult?

    config = {
        extra = {chips = 5, mult = 1}
    },
-- skipping to the code --
calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then
            context.other_card.ability.perma_bonus = context.other_card.ability.perma_bonus or 0
            context.other_card.ability.perma_bonus = context.other_card.ability.perma_bonus + card.ability.extra
            return {
                extra = { message = localize('k_upgrade_ex'), colour = G.C.CHIPS },
                card = card
            }
        end
    end,
simple helm
#
      local pos = 0 --might be a good idea to have this set to 0 by default instead actually
    for i,v in ipairs(G.jokers.cards) do
      if v == card then pos = i break end
    end
    if pos > 1 then
      local left_joker = G.jokers.cards[pos - 1]
      if context.other_card == left_joker then
        card.ability.extra.mult = 0
      else
        card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.multsum
      end
    end
  end```
manic rune
#

that should increase perma chips

#

you want to do the same for perma_mult or smt

wraith forge
manic rune
unborn bay
manic rune
#

oh

#

:tinking

#

wait

#

isnt context.other_card correct

#

its pointing to the scored card

worthy stirrup
#

i got the code straight from the wiki

#

and it said its from hiker

manic rune
#

yeah but your card.ability.extra in this case is a table lol

#

vanilla jokers tend to have extra as a number value instead

unborn bay
#

^

worthy stirrup
#

oh

manic rune
worthy stirrup
#

probably not this at all but im giving it my shot

        if context.individual and context.cardarea == G.play then
            context.other_card.ability.perma_bonus = context.other_card.ability.extra.mult
            context.other_card.ability.perma_bonus = context.other_card.ability.perma_bonus + card.ability.extra.chips
            return {
                extra = { message = localize('k_upgrade_ex'), colour = G.C.CHIPS },
                card = card
            }
#

wait, i need to change the extra names

wraith forge
worthy stirrup
#

see

manic rune
#
        if context.individual and context.cardarea == G.play then
            context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) + card.ability.extra.chips
            return {
                extra = { message = localize('k_upgrade_ex'), colour = G.C.CHIPS },
                card = card
            }
#

this will increase the chips

worthy stirrup
#

okay

#

now, dumb question, do i add an extra one of those to do mult

manic rune
#

mhm

worthy stirrup
#

okay, ill try it

manic rune
#
        if context.individual and context.cardarea == G.play then
            context.other_card.ability.perma_bonus = (context.other_card.ability.perma_bonus or 0) + card.ability.extra.chips
            context.other_card.ability.perma_mult = (context.other_card.ability.perma_mult or 0) + card.ability.extra.mult
            return {
                extra = { message = localize('k_upgrade_ex'), colour = G.C.CHIPS },
                card = card
            }

should be something like this

wraith forge
worthy stirrup
#

i think it worked, thanks again

#

now i just need to add the description and that will be finished

wild escarp
#

Is there any reason my quantum enhancements aren't working with cryptid?

fallow condor
wintry solar
#

You wouldn’t need any hooks to do that

fallow condor
#

yippe

#

what would I need to do it tho?

wintry solar
#

Just the standard smods stuff

fallow condor
#

if that changes anything

wild escarp
fallow condor
#

like golden joker or rocket

wintry solar
#

Take ownership

manic rune
#

if cryptid fucked up quantum enhancements on their end, then yeah

#

its not your fault lol

wintry solar
wild escarp
#

It just, doesn't work? Here's my code, works fine with vanilla, does nothing with cryptid.

if context.check_enhancement then
    if context.other_card.config.center.key == "m_glass" then
        return { 
            m_steel = true 
        }
    end
end
wintry solar
#

Huh weird, take it up with the cryptid guys I guess

misty gorge
#

How do I edit this code so that the seal only updates the scored card and not every card that has the seal

misty gorge
#

bump

manic rune
misty gorge
#

In the return part?

manic rune
#

change all self.config.x_mult to card.ability.seal.x_mult

daring fern
manic rune
#

oh

#

fuck

#

also hi smtcom

misty gorge
#

oh, guess i missed that one line there

#

didn't think it would matter much

manic rune
#

changing self would change the entire center lol

modern kindle
#

👋

misty gorge
#

well it now works properly but now it doesn't update the xmult in the description

formal parrot
#

Whats the command for joker slots in debug plus

misty gorge
#

oh wait I can add card to loc_vars, that'll prolly make it work

#

awh, still only says X1 mult

daring fern
split panther
#

how do i end the round on card sold

daring fern
split panther
daring fern
#
if context.selling_self then
    G.GAME.chips = G.GAME.blind.chips
    G.STATE = G.STATES.HAND_PLAYED
    G.STATE_COMPLETE = true
    end_round()
end
```?
split panther
#

it worked thank you :)

misty gorge
#

or well, it doesn't update after the card is scored ig

high sinew
#

Just curious Is it possible for a SMODS.deck implementation to implement a specific set up blinds you play in a certain order somehow not sure if anyone has done

#

Like if you can just set some loop with SMODS blind to have it during a certain ante

rapid stag
#

is it {C:diamond} or {C:diamonds}?

high sinew
#

Sorry plural just changed

#

Looks like plural in general

nova eagle
#

is there a way to add jokers to a spritesheet once its made?

nova eagle
#

how would i go about that?

daring fern
nova eagle
#

whenever i try, it just does this

daring fern
nova eagle
#

...oh

#

what program would y'all reccommend i use for that?

daring fern
unkempt thicket
#

I use Kirta

nova eagle
#

noted

nova cedar
#

i use paint.net to arrange my sprite sheets does that make me evil

#

i only use aseprite when im actively trying to animate something frame by frame

tepid crow
magic crane
#

can i get some help with making a deck im trying to make a deck where everything is negative

nova eagle
unkempt thicket
#

Just drag and drop, there's a pixel space between the boarders of each card, and two pixels between a card and another card.

modest bluff
#

does anybody know how to get the steammodded commands to show up as tips in SublimeText?

magic crane
magic crane
candid sleet
#

i'm tryna make a basic xmult scaling joker that starts at x1 goes up by 0.25 at the end of each round, feel like i'm doing a lot wrong though

#

was looking at vanilla ones like Glass Joker and Yorick but i think it was just confusing me further

daring fern
#

You returning mult_mod instead of xmult

modest bluff
#

how do you get the smods commands autofill?

daring fern
modest bluff
#

?

#

im new to modding i dont know anything 😭

modest bluff
#

bro

paper zealot
candid sleet
#

i changed mult_mod to xmult but i'm still struggling to make this work

glad saddle
#

how hard is it to make custom jokers? I know a bit of lua and have played with love a little bit

candid sleet
#

i've gone into it with no lua or really any coding experience outside of very very basic python but it's not too bad at all imo

glad saddle
modest bluff
#

not workspace

#

do i save the workspace first?

paper zealot
#

Are you using VSCode or Visual Studio?

modest bluff
#

Sublime

#

Text

#

do i use vscode instead?

#

im in vscode

#

i added the folder

#

it gave me 2000 problems

tight notch
#

how would i make a joker that adds +1 to all probabilities when triggered?

#

and then reset those probabilities in a different context?

daring fern
tight notch
#

dang

#

didn't cryptid mod find a way to do that though?

candid sleet
tight notch
#

how do I change one of the values on my joker after or in the return? or something equivalent

tight notch
#

alr

candid sleet
#

idk why i thought you meant delete the attatched error message initially

daring fern
candid sleet
#

i just get this when the joker is taking up a joker slot during a round

tight notch
#

where could i find docs or something on how to make shaders for an edition?

vague crest
#

hellooo i am currently trying to debuff a random card when blind is selected and i have it selecting the card just fine (tested this by having it return the name of the rank) but the debuff itself isnt happening. is there a different method i need to use?

daring fern
#

That just tells the blind to check if it should debuff the card.

vague crest
#

it crashes saying table index is nil, did i just implement it in a weird way?

vague crest
daring fern
vague crest
#

ooh ok what does that do exactly

#

IT WORKS IS WHAT IT DOES 🔥

#

tysm

tight notch
#

srsly how do I make shaders

#

nvm

nova eagle
#

how exactly do i go about changing this title screen

modest bluff
faint yacht
#

Do I explicitly need opt_callback to "save" changed values from create_option_cycle?

nova eagle
faint yacht
#

...sounds like use of SMODS.Atlas with path set to the target file, but the key being balatro and raw_key parameter being true.

crystal otter
#

does anybody know what happened here?

nova eagle
#

misspelled consumable

crystal otter
#

ah

#

how to fix

nova eagle
#

spell it correctly

#

consumable

crystal otter
#

i didnt make the mod

nova eagle
#

oh

crystal otter
#

oh wait theres a file name

#

ill fix it there

daring fern
nova eagle
#

wait is it?

#

i might just be dumb then

faint yacht
#

-# I typoed in the actual code, oops.

crystal otter
#

ah the man himself

#

is it the wrong consumable because i see both consumeable and consumable

daring fern
hasty mist
#

a deck's apply function happens before UI is initialized, how do i make a ui change at the very start of a game?

crystal otter
faint yacht
daring fern
crystal otter
crystal otter
faint yacht
#

That's just the reference name I gave the variable... I just didn't use exactly it by accident.

#

It's like if I named it fart, but used farts.

crystal otter
#

...

#

why was that the first analogy that came to mind?

#

no matter, i get it

sonic cedar
#

would you prefer doodoofart

crystal otter
#

yes

#

yipee shop doesnt immediately mcfucking die!!!

faint yacht
#

...christ, though, my stuff amidst the mfkaa?

nova eagle
#

or hide the card there altogether?

daring fern
nova eagle
#

where would i be putting that?

daring fern
nova eagle
#

i really gotta organize my code

#

i made the mistake of using main.lua for jokers.. its such a mess

vague crest
#

maybe a counter intuitive question but is there a way to have a joker recognize when a debuffed card is being scored in the same way that like greedy joker or walkie talkie would

hollow turtle
#

Is there a way to check if a card has any enhancement?

nova eagle
hollow turtle
daring fern
hollow turtle
#

Many thanks

daring fern
nova eagle
#

tysm

#

doesnt seem to have done the trick

vague crest
viral ember
#

How would I retrigger a joker?

vague crest
#

Been scouring smodsland but having found anything for debuffs

daring fern
viral ember
#

I mean a seperate Joker

#
local retrigger_joker = nil
for i = 1, #G.jokers.cards do
    if G.jokers.cards[i] == card then
        retrigger_joker = G.jokers.cards[i + 1]
        break
    end
end```
daring fern
# nova eagle doesnt seem to have done the trick
local oldmainmenu = Game.main_menu
Game.main_menu = function(change_context)
    local g = oldmainmenu(change_context)
    for k, v in pairs(G.title_top.cards) do
        v.states.visible = false
    end
    return g
end
```?
viral ember
#

I'm getting the joker to the right

daring fern
nova eagle
#

that doesnt seem to have been it either....

#

hmmm

viral ember
daring fern
daring fern
nova eagle
#

im trying, i just have no clue what im doing with it since i havent done any non-gameplay stuff yet..

viral ember
#

I'm trying to make it retrigger the joker to the right

faint yacht
#

G.title_top.cards[1].states.visible = false works after everything on main menu settles down... otherwise, the start_materialize function overrides that.

daring fern
viral ember
#

I see

#

that's definitely gonna be helpful but Is there a way to retrigger 1 specific Joker?