#💻・modding-dev

1 messages · Page 548 of 1

knotty orchid
#

What's the weigth of each vanilla rarity?
I want to create a new rarity and don't know exactly what's the % of spawn

gray void
#

Joker King, Reng the XI

knotty orchid
#

oh so the weight is literally the %

#

lol

slim ferry
#

the weight is the % only if they add up to 1

#

the actual chance is (weight/sum of all weights)

#

it just happens that they add up to 1 in vanilla so that doesnt matter there

knotty orchid
#

yeah yeah I know I meant the base game is just the %

#

And is there any SMODS function to change base game weight for rarities??

red flower
#

G.GAME.raritykey_mod

#

or take_ownership

knotty orchid
#

never used take_ownership tbh

worthy stirrup
#

How can I get a UI to change based on a value, I have X and I want my square to be X long but X can change, please ask any questions if you need to know anything

knotty orchid
worthy stirrup
#

Okay, how do i grab how many Rares I have in my joker slots

red flower
#

loop through the jokers and check joker.config.center.rarity == 3

worthy stirrup
#

and custom rarties, how would that work

red flower
#

== "modprefix_key"

worthy stirrup
#

thank you

modern kindle
#

👋

red flower
#

dilly how have you been

#

it's been so long

modern kindle
#

Tired I did not sleep well...

But how are you my bestie and I have my frame one waking up question

knotty orchid
red flower
modern kindle
#

My question is am I just stupid or is there not a simple way to put 3 vouchers together the way there is normally 2

red flower
modern kindle
#

Leave work

knotty orchid
red flower
#

i think you would have to change the voucher ui but ive never looked at it

modern kindle
#

Fascinating, wish it just worked in the way of if you require the voucher it goes behind it

royal badger
#

Is there a way to link a mod to an in-game skin? So that the mod selects a specific In Game Card skin?😅

red flower
#

i don't think so directly

#

you can probably just hard choose the deckskin when the game starts

unborn smelt
royal badger
snow cloak
#

@abstract garnet which is your favorite joker?

rapid stag
#

...are you sure it's context.card and not context.other_card? cirDerp

red flower
#

it's usually card for non-scoring contexts

rapid stag
#

well it's not working

tested with hex and this condition doesn't enter when the requisite joker is destroyed

red flower
#

i think some vanilla cards didn't work with this in the last release

#

spectrals i mean

rapid stag
#

...huh. doesn't work with spectrals. odd

#

how do i fix that cirLost

daring fern
red flower
#

it's fixed in the next release

rapid stag
#

...yeah, i should have specified any non-selling source of destruction such as madness, hex, ankh, instead of just ceremonial

red flower
#

it should work it's just a bug

split saddle
#

can you insert a string into the tooltip (T:) text style?

#

as in, instead of {T:v_crystal_ball} do {T:"my text"}

red flower
#

no

split saddle
#

ok

#

where would it make sense to put it in my localization file?

red flower
#

i dont think it takes from the localization file either

split saddle
#

then how do you do custom tooltips?

red flower
#

for decks i have no idea :3

split saddle
#

not for decks

#

for jokers

red flower
#

oh

#

dont use {T:} then

split saddle
#

why not?

red flower
#

you can have info_queue[info_queue+1] = { set = "Other", key = "your key" }

split saddle
#

i know that those exist, but why can't you use tooltips? do they just not work?

red flower
#

no

#

you cant hover over a description

split saddle
#

oh right

#

thanks :D

willow scroll
#

how would I apply a shader over a whole consumable set (a.e the spectral shader onto my own consumabletype)?
couldnt find it in documentation and the way joker forge does it doesnt work :clueless:

split saddle
#

ok but can you write a custom message in an info queue?

red flower
#

yes

red flower
#

put it in descriptions.Other.key

willow scroll
#

also thank you, ill do that rq then

willow scroll
split saddle
#

<@&1133519078540185692> nuke him

#

what's up with these spammers lately...?

gilded goblet
#

what causes this "timing" issue? shouldn't blueprint and rebate trigger first since it comes earlier in the "joker chain"? rlly new to this

#

for my joker i'm using context.pre_discard, if that matters

red flower
#

i was going to ask that

gilded goblet
#

while rebate uses context.discard

red flower
#

yeah thats why

gilded goblet
#

damn

#

alright good to know at least

#

it doesnt really matter, its just a bit weird-looking
gonna try and find some workaround for my logic

red flower
#

you can just save the amount and give it on the last card in context.discard

gilded goblet
#

fantastic! didnt think of that, ty

rapid stag
#

...how do i do a custom saved message? cirLost

cursive gazelle
#

Like what exactly

modern kindle
#

i assume you mean like mr bones, i think in localization it gets put in a 'saved' entry

red flower
#

or wait until the next release where you can return a message

modern kindle
#

that is also true

rapid stag
#

huh? i thought the saved changes were added ages ago and you could just return a saved argument with either a localization key or a message

red flower
#

just a localization key

#

the message i literally did a couple of days ago haha

modern kindle
#

cause N is so pretty

#

got it done fast

simple root
#

Sorry if this is a very beginner question but is there any recourse I can use to find how shaders are used to give editions effects.

knotty orchid
#

been trying to take ownership of rarities for a while with no success

#

anyone knows the key to access them?

red flower
robust marsh
#

the values are being loaded in but very weird things are happening. Things like chaos the clown are inherited when it's encountered in the shop even if it was never bought. I've tried making it only read jokers from the joker area but that also flopped so I gave up on it. There's a plethora of other issues. Stuntman, for example, works fine at first by reducing your hand size but then it starts increasing by +2 every time you enter the state where Stuntman is present. If anyone could help a little, it would be appreciated.

daring fern
#

modern kindle
# daring fern

i had this happen when i had my cardarea inserted into G instead of its own little area so it had to go through EVERYTHING in G to find what it needed, but im assuming that probably isnt the case for you

slim ferry
#

does steamodded change the level_up_hand function? i see a lot of mods do wierd stuff with hand chips/mult without making any hooks/patches to the function, despite the function forcing the chips and mult to always be accurate to what the hand would have at its new level without any modifications

wispy falcon
#

How do I get the xMult of Jokers?

red flower
#

you guess where it is

slim ferry
gilded goblet
red flower
#

if context.discard and context.other_card == context.full_hand[#context.full_hand] then

wispy falcon
slim ferry
#

you guess where the variable is

#

for the xmult

red flower
gilded goblet
slim ferry
#

anyone can give their variable any name

frosty rampart
#

i could store my joker's xmult in card.ability.extra.table_1.table_2.i_am_really_obnoxious if i wanted

wispy falcon
#

So if I wanted to have a Joker do something depening on the xMult of other Jokers, then it'd be hard to implement?

frosty rampart
#

yes

ocean sinew
#

You can use a lua ast parser to see where xmult is returned

#

and get the path of where the xmult variable is at

frosty rampart
ocean sinew
#

So you just need to use my lib

#

self-advertise 😎

slim ferry
frosty rampart
#

^

cursive gazelle
wispy falcon
ocean sinew
#

I'm just thinking of a name for it

cursive gazelle
#

Bro i literally coded 1 function LOL

cursive gazelle
ocean sinew
cursive gazelle
#

Is it ready ?

ocean sinew
ocean sinew
cursive gazelle
#

I have like actual good names lol

cursive gazelle
ocean sinew
#

we can release it with dependency of talisman or we could rewrite talisman functions

#

or we could try to get talisman owner to let it be in actual talisman

ocean sinew
red flower
#

i dont think you will get ruby or anyone there to do that lol

cursive gazelle
#

Just make better talisman

#

LOL

stiff locust
#

talisman't

ocean sinew
cursive gazelle
#

Not really

#

It’s on github

frosty rampart
#

it's under the GPL3 license

#

if you use exact talisman code literally the only restriction is that your own code also has to be GPL3 and allow other people to look at/modify/redistribute the code

red flower
#

i dont think anyone would say anything if you fork it

cursive gazelle
#

Nobody cares honestly it’s just a mod

red flower
#

it's not like a content mod

cursive gazelle
ocean sinew
cursive gazelle
#

It’s not even making anyone money

gilded goblet
#

you can fork it but if you tried releasing it as your own i think thats just a shitty thing to do

#

or altering the license

#

uncrediting other people

#

etc

red flower
#

yeah

cursive gazelle
#

Steal the code

#

It’s legal

slim ferry
#

is it currently possible to modify hand chips/mult without it instantly resetting to its regular vanilla values on the next level up? ive seen mods do this without needing to edit level_up_hand despite that function being what forces the chips/mult to become "normal" again on the next level up

cursive gazelle
#

No one will notice

gilded goblet
oblique lotus
#

Is there a way to save info on a card? For example, if I wanted to have the string "This is card 1" saved on a card for future reference, how would I go about doing so?

slim ferry
#

store it in card.ability

oblique lotus
#

Thanks!

lofty elm
#

Where might I go to find a list of contexts as in context.cardarea, or other useful lists like that

dreamy thunder
#

i assume?

frosty rampart
#

(that wiki page is a bit out of date though, and won't be updated at least until the next SMODS release. it has a good number of contexts still, it's just not a complete list)

lofty elm
#

Cool, thanks! I'll look through that

daring fern
#

How would one have multiple of these boxes when hovering over a card?:

modern kindle
#

smods support multiboxes now iirc

daring fern
modern kindle
#

oh like, multiple of the entire area including the badges and stuff?

modern kindle
#

gotcha, sorry i havent a clue there then

cursive gazelle
#

No idea

wet crag
#

not exactly what you want maybe

#

but you might be able to hack it to look similar with infoqueue

#

i know that you can change a lot of stuff with the ui i just havent dug into it that much yet

#

wait nvm youre something idk why im giving you beginner advice lmfao

wintry solar
final jewel
#

Is the latest version of steamodded stable ?

#

like the last commit

frosty rampart
#

no. download from the Releases tab if you want a stable experience, that's the "latest version"

final jewel
#

I mean I was in 808b

red flower
#

wait like a day

timid night
#

thoughts? I think its too strong but I dont know how to nerf it without destroying the theme
Also any tips to make the description shorter but still get the message across would be appreciated :)
(im trying to balance around vanilla)

final jewel
#

and its good but I was just wondering if 824e is ok

frosty rampart
#

as N said, just wait a bit because a new stable release is bound to happen very soon

red flower
#

sorry i have just delayed it by a month

#

/j

timid night
#

guys i can summon exodia now

cursive gazelle
#

Js could never

red flower
#

why am i catching strays

stiff locust
#

how can I rotate a joker card

stray swan
hardy viper
modern kindle
vernal path
#

okay im probably stupid
is there a better way to check if somethings a consumable other than to do context.card.key:sub(1, 1) == 'c'?

red flower
#

card.ability.consumeable

vernal path
#

i see

cursive gazelle
#

Maybe you can with drawstep

red flower
#

you can

cursive gazelle
#

More fluff just rotates the sprites 45 deg

#

Lol

red flower
#

in joyousspring i hook align to rotate it 90 degrees

#

for facedown defense

stiff locust
#

hook align huh

#

that sounds easy enough

vernal path
#

me tapping my joker cards for resources

red flower
#

i was searching for it

stiff locust
#

if I wanted to spin a joker I'd just use an event to rotate it 1 degree at a time

#

🤔

red flower
#

it took me a while to get it to work because the game updates the rotation

stiff locust
#

is align run every frame

red flower
#

yeah

#

i think

stiff locust
#

okay

red flower
#

maybe not

stiff locust
#

would it be a bad idea to run it every frame

red flower
#

if it doesn't then yes probably

#

you can probably modify the rotation in update too

#

if you want it to constantly rotate

wintry solar
#

I think it runs every frame

stiff locust
#

i wanna put it in a conditional event that only activates after a condition is met

#

I want the joker to start spinning for 45 seconds after this condition is met

#

which means I also have to figure out timer mechanics

red flower
#

that's easy just save the initial G.TIMERS.REAL and then check after it increased by 45

stiff locust
#

uhhhh

#

about that

#

jevil fucks with the timer

red flower
#

why

stiff locust
#

to fucks with the UI

#

I can't say fuck singular followed by with or up

#

but I can say fucks with???

red flower
#

lol

stiff locust
#

yeah he subtracts time from the timer every few seconds and it just like

#

makes the UI go crazy

#

he's really strong if you can put up with every button breaking randomly and not being able to see any of your cards

cursive gazelle
#

Sounds like something jevil would do

red flower
#

just check what love function G.TIMERS.REAL uses to update the time

#

and use that directly

stiff locust
#

oh wait

#

I can get the current system time can't I

#

I could use that

modern kindle
#

what do you do when my system time is set to 2x

stiff locust
#

what

#

your system time??

modern kindle
#

see you arent ready

#

yes

stiff locust
#

instant loss

modern kindle
#

hater

stiff locust
#

I don't know what the fuck a 2x system time is

modern kindle
#

every second takes half a second

stiff locust
#

so... you get the benefits of the joker for half as long?

#

I mean... congratulations?

modern kindle
#

yes

zealous glen
#

You could also rotate using a draw call

#

like soul sprites

stiff locust
#

well he certainly got rotated once

but he is not spinning

#

this is really funny though so jibnor can keep it

zealous glen
stiff locust
#

how do you do that

zealous glen
#

The way I tend to do it is using soul sprites

#

But you might not need to

#

The idea would be similar

stiff locust
#

i wanna rotate the base card

#

actually

#

rotating the soul sprite would work

#

but I'd rather rotate the entire card

zealous glen
#

As long as you apply Edition shaders to the soul sprite

zealous glen
#

It has custom sprite animation

stiff locust
#

ii mean I guess but that feels a little complicated

#

i've done soul_pos animation before

slim ferry
#

why does the SMODS poll_edition override check if the edition exists in P_CENTERS? shouldnt anything that comes out of get_current_pool always exist in P_CENTERS since all keys in P_CENTER_POOLS should always exist in P_CENTERS

zealous glen
stiff locust
#

the thing I don't get is how you'd apply the edition shader

zealous glen
#

Ok, so I have a partially working version for Heartbreak

#

I had a suggestion for how to make it work 100%

#

Partially working because it doesn't necessarily copy modded shaders perfectly

stiff locust
#

what if i just

zealous glen
#

But it work with vanilla shaders and many modded shaders

stiff locust
#

make it so the joker can't have editions or stickers

#

i mean it would work

zealous glen
#

Also you probably don't need the soul sprite

#

I think just the default sprite should work

#

I just haven't done that myself

#

But in principle it's very similar

#

because Jokers can have custom draw functions IIRC

stiff locust
#

oh my god

#

when you hold click on jibnor

#

he spins really really fast

#

how do I make him always do that

zealous glen
unkempt thicket
#

I don't know whats being discussed but i've made a joker with 3 layers all animate.

stiff locust
#

no i mean like

#

without clicking on him

zealous glen
#

Idk why that's happening

#

I can't read your code

stiff locust
#
function CardArea:align_cards()
    cardarea_align_cards_ref(self)
    if self.config.type == 'joker' then
        for k, card in ipairs(self.cards) do
            if card and card.config and card.config.center and card.config.center.key == "j_insj_jibnor" then
                card.T.r = card.T.r + 1
            end
        end
    end
end

it's just this

#

jibnor isn't the joker I want to rotate but he is a good placeholder

stiff locust
#

i forgot the ref line above oops

unkempt thicket
zealous glen
#

Because I did make Edition shaders work, I just don't think all modded Editions would work

slim ferry
#

isnt the parameter for if a shader should be drawn on the soul sprite tied to the edition rather than the card with the soul sprite?

#

or am i misremembering

zealous glen
#

I don't remember anything like that existing

slim ferry
#

oh nvm i found it

zealous glen
#

AFAIK Editions just don't apply to extra sprites in general

slim ferry
#

editions have an apply_to_float parameter

zealous glen
#

In any case, I'm using extra sprites

rotund sable
#

just to be sure.
rarity weight goes from 0 to 1 and enhancement weight goesfrom 1 to 100?

zealous glen
#

So I'm not sure they'd apply to arbitrary sprites

zealous glen
rotund sable
#

im just making sure because smods says enhancements have default 5 and i recall rarities being 0 to 1

slim ferry
#

rarities can be any value too

stiff locust
#

weight doesn't go from x to y necessarily

slim ferry
#

its just that vanilla weights happen to be less than 1

stiff locust
#

all the weights are added together and then a random number is picked from them

slim ferry
#

so its generally better to do the same for your own rarities

stiff locust
#

something like that

zealous glen
frosty rampart
slim ferry
#

oh lmao

zealous glen
#

And it doesn't work in the same way that my code doesn't work

wintry solar
zealous glen
#

@wintry solar the code in the left is "wrong" right?

slim ferry
stiff locust
#

it's giving me this crash every time I try to callCardArea:align_cards()

#

so I assume calling it during update is not going to work

#

how else do I spin it

zealous glen
#

update might work too but draw is how I'd do it

#

or well soul_sprite = {draw = …}

zealous glen
# wintry solar no?

It doesn't apply an Edition's draw function to a soul sprite even if it has the value that applies the Edition to the soul sprite

wintry solar
slim ferry
#

ah i see

zealous glen
#

So it's not applying the Edition to the soul sprite

red flower
stiff locust
#

I see

red flower
#

or 180

#

i dont remember one of the 2

wintry solar
#

it does apply the edition to the soul sprite

#

it just doesnt use any custom draw functions that are completely pointless to use now we have draw steps

zealous glen
#

I still think custom draw functions are better than DrawSteps for single-case uses

#

But anyways

stiff locust
#

so how do I make it always rotate victin i'm going to rotate you if you just say draw again

zealous glen
#

I mean, you asked, I gave a suggestion and code reference

wintry solar
#

Yes I know you think that, you are the only person I have seen who continually says to use draw functions

stiff locust
#

well yeah but i'm too lazy to go figure out not only which mod is yours but also search for code for the joker and code which does it

zealous glen
#

and I named the Jokers and where the code is

zealous glen
#

Unless you want to deprecate draw

wintry solar
#

if I was going to change it that would be what I did

#

there is no need for draw to exist

#

it's more limited than drawstep

zealous glen
#

I think it's more computation efficient for single-cases

wintry solar
#

it's maybe useful on editions for passing in extra values

zealous glen
#

I was thinking of arbitrary non-shader behavior that you'd want to define in the Edition object rather than somewhere unrelated

wintry solar
#

but you can hook or patch draw_shader to do that too

zealous glen
wintry solar
#

you can pass extra stuff into your shader to use if you need it

zealous glen
wintry solar
#

I dunno, probably

#

I am not an endless supply of balatro modding knowledge

#

I don't know all the answers to your super niche questions about things that very very few people have ever used or ever shown interest in using

zealous glen
#

I mean, you were the one to bring up the niche use

mental nacelle
#

how would i get an enhancement in the info_queue of a back?

zealous glen
#

I feel like using Shaders to handle extra variables is the general use case since it's the one on the wiki

#

Using a custom draw method is niche, and it's the one you came up with

zealous glen
mental nacelle
#

tried the usual, apparently not

maiden phoenix
mental nacelle
#

oh let me try T

slim ferry
red flower
#

t should work one of the vanilla ones uses polychrome iirc

slim ferry
#

you gotta use T: because all the tooltips are hover tooltips

zealous glen
slim ferry
#

after a playing card has been created, does it keep the set that was given to create_card (Base/Enhanced/Playing Card) or does it always become a single set

red flower
#

the set is Default or Enhanced iirc

zealous glen
#

I had PR'ed a custom SMODS function to test if a card was a playing card or not, but I think it was only used in a specific place

knotty orchid
#

Is there any rule for defining the win ante for challenges?

mental nacelle
#

challenger deep has one, but you could make one yourself

maiden phoenix
slim ferry
#

challenge apply will exist in the next SMODS release so that would make it much easier

#

just change G.GAME.win_ante in the apply

knotty orchid
red flower
#

it will in like a day

slim ferry
#

hell yeah

knotty orchid
#

lol

#

new smods release in a day?

mystic river
#

smods release tomorrow

knotty orchid
#

that's good news

red flower
#

i mean it's not my decision but afaik it's pretty much done

#

so when eremel finishes the doc

knotty orchid
#

I hope nothing brokes haahaha

#

Is there any preview of what it will have?

wintry solar
#

let me merge a last minute breaking change with no notes about it hold on

mystic river
#

okay 💖 yay 💖

red flower
wintry solar
knotty orchid
frosty rampart
mental nacelle
# knotty orchid Is there any rule for defining the win ante for challenges?

you could use this patch:

[patches.pattern]
target = 'game.lua'
pattern = "elseif v.id == 'no_reward_specific' then"
position = 'before'
match_indent = true
payload = """elseif v.id == 'win_ante' then
  self.GAME.win_ante = v.value"""```
and then put the following line into your challenge:
`{id = 'win_ante', value =`(the win ante you want)`}`
wintry solar
#

this one fixes a bug that I don't think anyone would ever have run into

knotty orchid
#

better than patching

mental nacelle
#

fair enough lol

knotty orchid
#

Anyways thanks

#

That's indeed useful for defining new rules

mental nacelle
#

rules are still pretty helpful for multiple challenges

knotty orchid
#

But oh man will apply help

red flower
#

you can also have local functions for multiple challenges

mental nacelle
#

this is true...

knotty orchid
#

So there isn't any preview for the new version? I'm really curious

mystic river
#

i mean
the main branch

#

it's open source, you can - there's a button for this, hang on

frosty rampart
#

the green Code button

mystic river
#

this one, actually

knotty orchid
#

Yeah I was looking the commits

mystic river
#

you can see everything that's changed since the release

knotty orchid
#

some of them pretty funny

#

T_T

wintry solar
#

there are a lot that say that

#

but yeah, there's quite a lot of changes

knotty orchid
#

💀💀

slim ferry
#

holy shit

twilit tundra
#

is quantum rank api in yet

red flower
#

no

rotund sable
mental nacelle
#

all of them

wintry solar
#

number 74 is the worst one

knotty orchid
#

context_stack?

red flower
#

but 74 is my favorite number

unkempt thicket
#

I wonder how many changes i made for my mods update? How do i check that?

red flower
#

i need to look at context_stack i might be able to use it for things

wintry solar
#

is 74 actually context stack

knotty orchid
#

I think so

#

HAHAHA

#

don't even know what's that about

red flower
#

i think it just makes the context global

unkempt thicket
#

I found it

knotty orchid
#

Wait challenges will also have calculate

#

that will be pretty funny

red flower
#

yeah

mystic river
#

"Cards held in hand give -(ante^2) Chips"

knotty orchid
#

N are you spanish?

#

you seem to do a lot of spanish translations lol

#

hahahaah

sonic cedar
#

argeN'tina

knotty orchid
#

hahahaha

red flower
knotty orchid
#

Oh

#

cool

#

I'm spanish too, I struggle a little speaking english hahaha

#

Well spanish not argentinian

#

🫡

red flower
#

i dont play balatro in spanish haha i looked at the localization differences for joyousspring and it seems very inconsistent lmao

#

some translations are weird as well

knotty orchid
#

I just translate everything with IA tbh, don't have the patience neither the time to do it myself

wild escarp
#

Is there an SMODS.poll_edition? Like SMODS.poll_seal?

daring fern
wild escarp
#

Does it take the same arguments?

red flower
#

no

#

it's documented on the smods.edition page

wintry solar
#

oh that's another thing I should add at some point

vernal path
#

is this not how perma bonuses work?

local recieving_card = pseudorandom_element(G.playing_cards, "faceless")
recieving_card.ability.perma_bonus = (recieving_card.ability.perma_bonus or 0) + math.ceil(chips_to_add/2)```
red flower
#

that looks correct

vernal path
#

It doesn't seem like it's working though

#

this is the full calculate function: lua calculate = function (self, card, context) if context.setting_blind then local chips_to_add = 0 local cards_to_destroy = {} local count = pseudorandom("faceless", 1, math.min(card.ability.extra.max_destroy, #G.playing_cards)) for i = 1, count, 1 do cards_to_destroy[i] = pseudorandom_element(G.playing_cards, "faceless") end for _, v in ipairs(cards_to_destroy) do chips_to_add = chips_to_add + v:get_chip_bonus() end print(chips_to_add) SMODS.destroy_cards(cards_to_destroy) local recieving_card = pseudorandom_element(G.playing_cards, "faceless") recieving_card.ability.perma_bonus = (recieving_card.ability.perma_bonus or 0) + math.ceil(chips_to_add/2) end end }

#

could it be choosing a card thats already been destroyed?

#

Okay, it worked that time, weird

#

It seems to work sometimes. Would putting it in an even solve this?

wild escarp
#

How do wildcards work? I'm guessing something in card:get_id, but I can't find the code for that.

red flower
#

is_suit

wild escarp
red flower
#

not really possible yet

wild escarp
#

Okay

vernal path
#

maybe it is reliable? I have no idea why it wasn't working earlier.

crimson marlin
#

does anyone know why this is happening when big blind is removed? this is my attempted patch:

[patches.pattern]
target = "functions/button_callbacks.lua"
pattern = "G.GAME.round_resets.blind_states[skip_to] = 'Select'"
position = "at"
payload = '''
for _, i in pairs(G.GAME.round_resets.blind_states) do
    if i == "Upcoming" then
        G.GAME.round_resets.blind_states[_] = 'Select'
        G.GAME.blind_on_deck = _
        break
    end
end
'''
match_indent = true
overwrite = true```
#

it works if I leave and rejoin but does anyone know how to update it?

unkempt thicket
#

_ is the key i is the value of the list

crimson marlin
#

yes

unkempt thicket
#

I think theres more code you have to add to update it

#

UI usually doesn't update automatically

crimson marlin
#

OH SHOOT

#

THERE WAS ONE LINE OF CODE I FORGOT TO DELETE

#

code to delete the evil line of code

[patches.pattern]
target = "functions/button_callbacks.lua"
pattern = "G.GAME.blind_on_deck = skip_to"
position = "at"
payload = '''
'''
match_indent = true
overwrite = true```
#

lol

#

good enough

solemn shuttle
#

wait is there a different parameter for SMODS.Sticker that defines the sticker badge text or am i crazy

#

-# it reads ERROR currently

#

-# for reference as well,

SMODS.Sticker {
    key = "temporary",
    atlas = 'nixstickers',
    badge_colour = HEX('00911d'),
    loc_txt = {
        name = "Temporary Sticker",
        text = {
            "Destroyed at the end",
            "of the {C:attention}Ante{}"
        }
    },
    pos = { x = 0, y = 0 },
    should_apply = function(self, card, center, area, bypass_roll)
        return G.GAME.modifiers.enable_temporary_in_shop
    end,
    apply = function(self, card, val)
        card.ability[self.key] = val
    end,
    calculate = function(self, card, context)
        if context.end_of_round and G.GAME.blind.boss and context.main_eval then
            card:start_dissolve()
        end
    end
}
pale rampart
#

what does the "identifier" mean (i'm changing my mod's rng code to the new one)

crimson marlin
#

look at the function in the smods code

red flower
pale rampart
#

i needed that information mostly because a joker of my mod that feeds from X in Y chances didnt work with my mod's X in Y chances

#

should it look like this?

#

or am i dumb

#

like extremely dumb

#

yuh i think i'm dumb

#

ok i think this is better

faint yacht
#

numerator should be just 1.

pale rampart
frosty rampart
#

the function accounts for oops all six now

faint yacht
#

Yeah, that function also handles the change of odds.

pale rampart
#

so this?

faint yacht
#

yeh.

pale rampart
#

ok, changing all of my rng code for that now

faint yacht
#

If you'd want it to start as 2 in 5 or something, then you'd have 2 for numerator.

frosty rampart
#

yep
you should always give pseudorandom_probability the base odds of the probability thing you want, and it will handle any and all probability modifiers like oops all 6s or any modded content that messes with it

rapid stag
red flower
#

where do you have the key

#

also how are you returning it while we are at it

rapid stag
red flower
#

that should work

rapid stag
red flower
#

weird

#

if it was reading the key it would say ERROR at least so it's just not reading it

gaunt folio
#

based off the one from clash royale (second elixir added for consistency)

rapid stag
red flower
#

i tested it for that message PR and it worked fine

stark berry
#

wish it was the infamous mega knight

foggy ginkgo
#

Ph_key_whatever

rapid stag
#

...what? cirLost ok, i just have no idea how to structure this, then

foggy ginkgo
#

Saved = ph_yourkey_super0rnstein

#

Yknow the id

#

The en_us is fine

rapid stag
#

my mod id/prefix?

foggy ginkgo
#

Or maybe I'm wrong

#

Nvm don't listen to me

red flower
#

wait is it en_us

foggy ginkgo
#

You can put functions in returns?

#

I didn't know that

vernal path
#

yes

foggy ginkgo
#

Noted

high verge
#
    key = 'casl_sleeve_atlas',
    px = 73,
    py = 95,
    path = 'helluvasleeves.png',
    prefix_config = {key = false}, -- See end of file for notes
}

Trimmed code. I'm trying to replace the vanilla card sleeves with my mod but they don't appear to want to change.

rapid stag
daring fern
#

rose lava
#

can i set mult to the power of something in joker function?

rose lava
ripe jacinth
#

how the fuck do i get a sound effect to not become higher pitched the more retriggers it gets

daring fern
rose lava
daring fern
ripe jacinth
#

in loc_vars

daring fern
ripe jacinth
#

@daring fern

daring fern
ripe jacinth
#

oh god

unborn bay
#

i mean you can just use an event

ripe jacinth
daring fern
ripe jacinth
#

tried that, didnt work

#

and i replaced it with play_sound

#

and now it only plays once

#

help

#

it doesnt work the way i want to

#

and i cant find a dev to develop this for me

rose lava
#

i have a problem so if i use SMODS.Sound:create_stop_sound and in the times field enter 1 it doesnt stop the sound once but completely disables it from playing later

flint fern
#

how the hell do i decipher steamodded versions
what the hell is 1.0.0~beta-XXXa-STEAMODDED

red flower
#

month and day

cursive gazelle
#

Turns out the deciphering wasn’t that hard after all

flint fern
red flower
#

if there are multiple version bumps in that day there's a new letter

#

826c would be the third revision made today for example

unborn bay
#

look at the bright side it isnt as fucked up as minecraft bedrock version numbers

unkempt thicket
#

How can i get text to add a line to the UI box? So if i have a joker that needs to add additional lines vertically to it's localization text box how can i do that?

gaunt folio
unkempt thicket
#

Can i use that in an info quene?

red flower
#

yes

#

at least for jokers

#

i think editions and some other stuff doesn't work with it

unkempt thicket
#

Well that solves half my problem then, i did need to do that on a joker and in an info quene box from a cards ability

manic rune
#

i realized i posted this in the wrong channel lmao

rotund sable
#

I thought it was the commit/pr counter because it incremented by 1

#

Also cool pfp

red flower
#

ty

primal robin
#

Damn why make particles work on pause so hard what a heck

gilded goblet
#

is there an easy way to make all rerolls free

#

debug purposes

#

ok nvm im stupid

#

this should do

livid hill
knotty orchid
#

Is my github bugged or there isn't a new smods release in github yet?

red flower
#

there isnt

knotty orchid
#

But the release is out right?

red flower
#

no

knotty orchid
#

Oh, the mod manager said there was an update

cursive gazelle
#

Dev branch

#

Maybe

knotty orchid
#

shouldn't the mod manager target the last release?

frosty dock
#

not exclusively, it also tracks dev versions

knotty orchid
#

didnt see this

#

sorry

cursive gazelle
primal robin
daring fern
knotty orchid
#

I need it

slim ferry
manic rune
daring fern
slim ferry
#

awesome

gilded goblet
#

is it normal for ur joker to show up again in the shorp if youve spawned it in using the debug menu? this doesnt feel normal

umbral zodiac
gilded goblet
molten idol
#

Why does Ortalab crash every time I hover over something??? using the same modpack I used months ago, it worked just fine then now its not working

red flower
#

this is for mod development

versed swan
#

(Deleted own message, will re-send later afternoon)

pastel kernel
#

Guys, how do you apply a custom gradient to a joker’s rarity badge?

daring fern
pastel kernel
#

This cat tells me that my gradients.lua fucking sucks

#
SMODS.Gradient{
    key = "grand",
    colours = {
        G.C.SPECTRAL,
        G.C.PURPLE,
        G.C.TAROT,
        G.C.RED,
        G.C.FILTER,
        G.C.GOLD,
        G.C.GREEN,
        G.C.PLANET,
        G.C.CHIPS
    },
    cycle = 2,
    interpolation = 'trig',
}
knotty orchid
#

is there a way to change the max highlighted cards of a tarot ?

pastel kernel
pastel kernel
#

Fuck am I doing wrong

daring fern
pastel kernel
#

<@&1133519078540185692>

#

new problem

still violet
#

i am making a mod for mobile and steamodded hasn't fully been ported to mobile yet

frosty rampart
pastel kernel
#

ok so, 900n1 gave me screenshots of his code, he told me i can steal them.
this is what i made.

-- Thanks 900n1.

function align_layer(card, layer)
    v = card.children[layer]
    if v ~= nil then
        v.states.hover = card.states.hover
        v.states.click = card.states.click
        v.states.drag = card.states.drag
        v.states.collide.can = false
        v:set_role({major = card, role_type = 'Glued', draw_major = card})
    end
end

local set_spritesref = Card.set_sprites
function Card: set_sprites (_center,_front)
    set_spritesref (self,_center, _front)
    if _center and _center.soul_pos and _center.soul_pos.inbetweener then 
        self.children.center = Sprite(
            self.T.x,
            self.T.y,
            self.T.W,
            self.T.h,
            G.ASSET_ATLAS[_center.atlas or _center.set],
            _center.pos
        )
        self.children.floating_sprite = Sprite(
            self.T.x,
            self.T.y,
            self.T.W,
            self.T.h,
            G.ASSET_ATLAS[_center.atlas or _center.set],
            _center.soul_pos
        )
        self.children.float2 = Sprite(
            self.T.x,
            self.T.y,
            self.T.w,
            self.T.h,
            G.ASSET_ATLAS[_center.atlas or _center.set],
            _center.soul_pos.inbetweener
        )
        align_layer(self,"center")
        align_layer(self,"floating_sprite")
        align_layer(self,"float2")
    end
end
crystal perch
#

trying to add a sticker to a Joker created with SMODS.add_card and I can't seem to get it to work

#

the issue here is stickers = {'chak_ethereal'}, does not apply any stickers

#

stickers needs to be a table otherwise it crashes attempting to load

unborn smelt
#

If i want an enhancement to only trigger h_chips when a specific poker hand is played, how would one do that?

crystal perch
red flower
#

your key might be wrong

crystal perch
#

i've used the key 'chak_ethereal' in other places to apply the sticker and it works fine

#

maybe because it has a prefix?

rotund sable
#

prefix is only for things you add

crystal perch
#

i'm aware

#

also update

#

if i enter in an incorrect key, such as 'ethereal' as opposed to 'chak_ethereal', the game just crashes

#

so the key is correct it's just not applying

rotund sable
#

oh wait it says ethereal not eternal

crystal perch
#

yes

rotund sable
#

i may have reading problems

crystal perch
#

that's okay balatroheart

#

i could just iterate through the added jokers and do card:add_sticker('chak_ethereal', true) because that works, i'd just rather it all be done through the add_card function

rotund sable
#

this is what SMODS.create_card (called by add_card) is doing

crystal perch
#

adding this made it function

#

my only guess is that ethereal has a should_apply condition of G.GAME.modifiers.enable_etheral_in_shop being true (which it is true) and it doesn't know what to do?

thorn pumice
#

hii could someone help me with this?

    config = {
        extra = {
            mult = 0,
            a_mult = 3,
        }
    }
}, false)```

i just wanna change [joke master from paperback](https://github.com/Balatro-Paperback/paperback/blob/c44d4607bb6679c2f2747c7669317caef81e46d4/content/joker/joke_master.lua#L3) to have 3 mult instead of 2 and i want the display badge to be from my mod :) it seems to be doing nothing and throwing no errors, but it's gotta be loading because of ``assert(SMODS.load_file("compat/paperback/joke_master.lua"))()`` in my main file
sturdy compass
#

Are your load priorities set properly? I would imagine you’d need Paperback to load before your mod to take ownership of it

thorn pumice
#

my priority is -100, paperback's is 0

crystal perch
#

set your priority to 2

thorn pumice
#

oh! did i get it backwards lol

red flower
#

i think you dont need the j_

sturdy compass
thorn pumice
#

omg it worked :)))) tysm i've been bugging over this for like an hour

#

can i ask how i'd completely replace the paperback name badge instead of it tacking on my own?

sturdy compass
#

Probably tack on a set_card_type_badge function

long sun
#

hi! i want my deck to have a specific set of cards in it. what do i need in apply?

red cradle
#

How to localize planets cards?

crystal perch
#

use this as reference

#

just look up the remade planet cards

#

ctrl + f

thorn pumice
sturdy compass
#

Hmm, that’s quite odd honestly

red cradle
unborn smelt
red flower
pseudo radish
#

so my prefix is yumc
my challenge key is yummy_1
but for some reason in the localization when i put in ```lua
return {
descriptions = {
misc = {
challenge_names = {
c_yumc_yummy_1 = "Delicious",
}
}
}
}

it no worky :(
red flower
#

key needs to be replaced by the actual key

red cradle
#

oh

crystal perch
#

tryna make a joker that gives $ based on the rarity of destroyed jokers and this does not trigger, what am i doing wrong?

unborn smelt
pale rampart
#

WRONG CHAT

red cradle
pale rampart
#

FUCK

crystal perch
red flower
crystal perch
#

like this

red cradle
#

oh

#

its random

crystal perch
#

c_[your_planet]

red flower
#

it should be in card.config.center_key

crystal perch
#

thanks you eremel

red flower
#

destroyed jokers use context.joker_type_destroyed

crystal perch
#

i see

#

wasn't on the calculate functions wiki page so i didnt know about that

#

and would that use removed_card or other_card

red flower
unborn smelt
#

in what context do steel cards activate?

crystal perch
# wintry solar I will fix this later

also while you're at it, it looks like allow_duplicates = false doesn't work (the 5th joker was created after i already had the 1st joker and they are duplicates of one another)

red cradle
red flower
#

the rest leave it as is

#

name_text gives you the name as a string

red cradle
#

Ok

#

I'll try

wintry solar
crystal perch
#

i see

pseudo radish
crystal perch
red cradle
#

thanks

red flower
unborn smelt
unborn smelt
pseudo radish
oblique lotus
#

Is there a way to load an atlas outside of the 1x or 2x folders in assets?

red flower
#

why

unborn smelt
pseudo radish
red flower
#

youre welcome

crystal perch
#

how would i track the total amount of destroyed jokers this run in a game variable

#

i wouldn't have to patch misc_functions.lua would i

red flower
crystal perch
#

<@&1133519078540185692>

wintry solar
#

Waiting a day is the much better option

crystal perch
#

🥀

robust marsh
#

Can I make it so a joker automatically gets removed from the joker area when a specific one is sold/destroyed etc?

slim ferry
#

how can i make a card display a message outside of the return table?

red flower
#

SMODS.calculate_effect({message = "text"}, card)

slim ferry
#

is there any full list of valid return values? (as in return values that automatically do something) the calculate functions page has a lot but a lot of returns can use multiple names

red flower
#

i dont think theres a documented one

#

this is missing stuff like all the message returns

slim ferry
#

i see

#

this should be good enough for my purposes though

pseudo radish
#

is there a way to make rare jokers just not try to spawn in a challenge? bcs i banned all of them and now jimboes just appear

slim ferry
red flower
#

oh wait i didnt read that the problem was the jimbos

oblique lotus
slim ferry
#

i dont think thats possible

red flower
#

i did ask why

pseudo radish
slim ferry
#

at least not without having 1x and 2x using the same image which would look wierd

oblique lotus
#

I'm fine with having 1x and 2x versions

red flower
#

why do you need this

#

it will be easier for us to tell you the solution lol

pseudo radish
oblique lotus
# red flower why do you need this

Apologies, I thought you were talking to the other guy earlier as they responded. I want to do texture swapping. I know maverick exists, but the issue is that my mod has animated textures, which takes the form of a separate atlas for that item. I want to have a separate folder so it is clear which items belong to which set.

red flower
pseudo radish
red flower
red flower
pseudo radish
red flower
#

challenges are much easier after next release

oblique lotus
slim ferry
#

why does the vanillaremade post_trigger example copy context.other_ret.jokers rather than just context.other_ret? i thought context.other_ret itself was supposed to be the copy of the return table rather than it being stored within another table

bold sleet
#

Hello, is there a way to make a deck that removes all playing cards and instead gives a specific card instead?

slim ferry
#

use apply to loop through the entire deck to destroy everything, then create the card you want in the deck

bold sleet
#

Remove and then add cards

red flower
#

SMODS.destroy_cards and SMODS.add_card

slim ferry
#

i think you wouldnt even need a loop actually you could probably just do SMODS.destroy_cards(G.deck.cards)

bold sleet
#

ah

red flower
#

although the animations might be annoying

bold sleet
#

yeah

crystal perch
#

i have a bit of a specific issue
i want my ethereal sticker (which destroys its card upon entering the shop) to look to see if there's a joker with the key 'j_chak_etheric_joker', and if there is, destroy it instead
right now my code works, but if you have multiple ethereal jokers they would only destroy the one etheric joker instead, instead of two etheric jokers or one etheric and itself.
here's the applicable code:

calculate = function(self, card, context)
        if G.GAME.modifiers.omicron == true and not (card.edition and card.edition.negative) then
            card:set_edition({negative = true})
            card.cost = 1
            card.sell_cost = 0
        end
        if context.starting_shop and not context.repetition and context.individual then
            for i = 1, #G.jokers.cards do
                if G.jokers.cards[i].config.center.key == 'j_chak_etheric_joker' then
                    card = G.jokers.cards[i]
                end
            end
            SMODS.destroy_cards(card)
            return {
                message = 'Boo!',
                colour = G.C.CHAK_ETHEREAL
            }
        end
    end
red flower
#

check for not G.jokers.cards[i].getting_sliced

hidden notch
#

How do I check if I'm a Playing Card in the Deck-View for loc_vars-purposes?

crystal perch
#

also minor nit pick but any way i could make it go from left to right as opposed to right to left

red flower
#

for i=#G.jokers.cards, 1, -1

#

unless you mean the sticker

crystal perch
#

the destruction order of the etheric jokers i mean

#

this should work though

red flower
#

then that yeah

bold sleet
red flower
#

did you put the area to be the deck

bold sleet
#

G.playing_cards

red flower
#

that's not an area

bold sleet
#

ah

#

where do I put it then?

red flower
#

G.deck

bold sleet
#

A

hidden notch
red flower
#

oh

#

that's easy then just check for card.ability.set == "Default" or card.ability.set == "Enhanced"

#

xy problem situation lol

knotty steppe
#

how do i multpy the current mult by a varible

#

(making a joker)

frosty rampart
knotty steppe
#

thx

hidden notch
knotty steppe
slim ferry
#

or just mult in general

knotty steppe
#

the mult in general

slim ferry
#

just put xmult = <whatever value> in your return table

knotty steppe
#

oh its xmult

#

thx

cyan lagoon
#

heya, how can i check if i left the booster pack?

#

or a way to make an effect only work in the booster pack

unkempt thicket
#

How do i add a main end to the end of another text box (like with multiple text boxes how can i add it to the 2nd?)

red flower
#

i dont think that's possible

#

you probably need to do something with generate_ui

slim ferry
#

at least i'd imagine

willow scroll
#

self.children.sand_overlay:set_role({ major = self, role_type = 'Minor', draw_major = self })
i have a small suspicion i fumbled the set_role
an example i found uses role_type Glued but that also doesnt work either

#

am i just idior again

robust marsh
#
    apply = function(self) 
        G.FUNCS.skip_blind = function(e) 
            if G.GAME and G.GAME.blind then 
                return G.FUNCS.select_blind(e) 
            end
            return nil
        end
    end

I'm trying to hook the skip button into the select button so you go into a blind even if you skip but I don't really know how to properly achieve that. Right now it just sends me into an ERROR blind and then I crash, so I'll assume when a blind is skipped its table is wiped. Does anyone know how this is achievable?

red flower
#

I don't exactly know how to do that but don't hook in apply

#

that will change the function for everything until the game is closed

robust marsh
#

alright

#

thank you

zealous glen
#

@red flower how does one manipulate the number of options offered by a booster pack again

rotund sable
#
config = { extra = 3, choose = 1 },
zealous glen
rotund sable
#

ooohh

zealous glen
#

I think I found it

rotund sable
#

G.GAME.modifiers.booster_choice_mod

#

and G.GAME.modifiers.booster_size_mod

zealous glen
#

the latter

red flower
#

yeah

zealous glen
#

Although I wonder if the timing works for what I want to do

#

which is to modify just a single Booster type

red flower
#

if it's just for one can't you modify card.ability.extra

zealous glen
slim ferry
#

modify the card.ability.extra of the booster

zealous glen
#

or I guess whenever it's created?

#

also I said one type not one Booster

#

specifically, Celestial Packs

red flower
#

ohh then idk what the best way to affect a specific type is

#

maybe hooking set_ability

slim ferry
#

dont boosters have a kind parameter

#

or smth

red flower
#

yeah

slim ferry
#

yeah you could check that

zealous glen
#

I'm trying to see if I can do it when the Booster is opened

#

Although I suspect it might be too late

#

hmmm, not sure

#

It puts the Booster stuff in an Event, while SMODS.calculate_context isn't inside one, so maybe it's fast enough?

zealous glen
#

Does sendDebugMessage not work?

mystic river
#

it's been working for me
check your debug plus config, iirc it doesn't display debug messages by default

zealous glen
#

I realized it was just not running my code

#

Does anyone know where kind is stored in a Booster Pack?

#

I can tprint to verify that it's there, but ….ability.kind and ….config.kind didn't work

#

wait I think it's in ….config.center.kind

faint yacht
wintry solar
#

Kind isn’t a required parameter iirc

faint yacht
#

That is true.

wintry solar
#

But I suppose if you’re looking for a specific one that you know exists it’s fine

zealous glen
#

@red flower @slim ferry my method works

slim ferry
#

peak

zealous glen
#

I mean, vanilla Booster Packs

robust marsh
#

how do i make a consumable only available to a specific deck (within shops)

slim ferry
#

use in_pool

high verge
#

Hi I need the help of someone smarter than me. I'm working on a mod that replaces the enhancers image with my own one but for some reason the code is resulting in the modicon for the mod instead showing up on a different mod (specifically the Bad Apple Joker).


    local lpb_mod = SMODS.findModByID("LuigisPictureBalatro")

    local sprite_enhancers = SMODS.Sprite:new("centers", lpb_mod.path, "EnhancersLuigi.png", 71, 95, "asset_atli")

    sprite_enhancers:register()
end```
#

I'd use Malverk but I couldn't figure out how to replace the white backs of cards and Malverk doesn't replace the locked card images.

slim ferry
#

to replace the white backs with malverk i'd imagine you make an alt texture for c_base

#

also how the fuck did you manage to get your modicon to show for a different mod 😭

high verge
#

The texture is in the spot. It's something about another bit of code that they mentioned. But it doesn't matter since Malverk doesn't currently support replacing the locked images.

high verge
#

I think it might be related to Bad Apple's mod being very sparse.

#
--- MOD_NAME: Bad Apple
--- MOD_ID: BadApple
--- MOD_AUTHOR: []
--- MOD_DESCRIPTION: 

----------------------------------------------
------------MOD CODE -------------------------

function SMODS.INIT.BadApple()

    jokers = {
        j_sock_and_buskin = { pos = 0 },
    }

    SMODS.Atlas {
            key = "BadApple",
            path = "BadApple.png",
            px = 71,
            py = 95
    }

    for jkr,data in pairs(jokers) do
        SMODS["Joker"]:take_ownership(jkr, { atlas = "BadApple", 
            pos = { x = 0 + data.pos, y = 0 },
            soul_pos = { x = 0 + data.pos, y = 1 }}, true)
    end

end

----------------------------------------------
------------MOD CODE END----------------------```
high verge
#

I'm pretty new to lua and everything so I'm probably wrong but my only thoughts are it's because they didn't include a prefix?

zealous glen
#

SMODS.INIT is unc

high verge
wintry solar
#

You are correct

high verge
slim ferry
#

unc

#

like

zealous glen
#

uncle

slim ferry
#

the thing you say

high verge
#

Um

zealous glen
#

It's how zoomers and Latin Americans call old people

slim ferry
#

unc

high verge
#

I mean, if Malverk can't replace lock images I don't know if I have any other option.

wintry solar
#

Replacing lock images is remarkably niche, especially for modded content

high verge
#

Is it? I feel like most mods that replace textures would want to replace all the textures.

#

Especially since it's a part of the enhancers image as well.

#

Wait now the lock image isn't being replaced wtf

#

Never mind it is I'm stupid and was looking at the sleeves image.

#

It's nice having consistency for the card backs if you're going for a specifically style for the locks to also match. @wintry solar

#

And yes I still haven't won a game but I'm getting damn close xD

wintry solar
#

Yeah but I would imagine the set of people who want to install mods and either havent unlocked everything or pressed unlock all is remarkably small

high verge
#

I'd argue against that. Some people prefer going modded right from the start. Hell the same day I got the game I started downloading and producing mods for it xD.

#

Not to mention locks would still show up for people deciding to reset their game.

willow scroll
zealous glen
#

Are modded ConsumeableTypes still bugged

wintry solar
#

Yeah that’s fine but I’m not going out of my way to add that functionality at the moment

zealous glen
#

stacking across different mods

red flower
#

you mean types with the same key?

high verge
#

Or would there need to be more done to the code?

wintry solar
#

It is not that simple because it’s not a game object

#

It would require specific code for all 3 locked sprites

#

And I can’t be bothered doing that right now

high verge
#

Me who can't figure out how to add a c_base wondering if I can figure out how to do it

#

xD

faint yacht
#


-# Can I has question on quantum enhancement optimization potential?

red flower
#

remove quantum enhancements

mystic river
#

never. no questions allowed ever, under any circumstances.
||(joke, obvs)||

tepid crow
willow scroll
red flower
#

hiii lars

tepid crow
#

wasssuppp N

#

how you doin

faint yacht
red flower
#

im doing very good ty wbu

high verge
tepid crow
#

I'm doin alright, been very busy lately

tepid crow
robust marsh
# slim ferry use in_pool

I'm trying, the problem is that it belongs to a specific consumable type. If i try to set in_pool to return false on every single one it will just throw out the default in all decks because it has an assigned shop_rate. Without shop_rate the specific card that I want won't even show up within the deck so i'm kinda lost.

high verge
#

If I use Malverk that doesn't support locked images currently.

slim ferry
#

if its a whole consumable type

tepid crow
high verge
#

It works yes the issue is it's causing the Bad Apple mod to inherit the modicon of mine xD

wintry solar
#

SMODS.INIT is jank and depreciated

tepid crow
wintry solar
#

it does stupid stuff like infect mod icons

robust marsh
wintry solar
#

you're just using old jank code instead of code that actually works

high verge
wintry solar
#

yes you can

wintry solar
robust marsh
twilit tundra
#

how would i make a handtype that gets “unlocked” by a joker (i.e only is playable while you have that joker)

red flower
wintry solar
#

^

tepid crow
mystic river
faint yacht
# wintry solar what's your question

As you said at #⚙・modding-general message , probably jank context check?
As I have a Joker that has

calculate = function(self, card, context)
    if (context.retrigger_joker_check or context.retrigger_joker or context.blueprint) then return end
    if context.check_enhancement and context.no_blueprint and context.other_card and context.cardarea == G.jokers then return { m_stone = true } end
end

and a deck that makes all playing cards share enhancements if there's at least one present:

calculate = function(self, card, context)
    if (context.retrigger_joker_check or context.retrigger_joker or context.blueprint) then return end
    if context.check_enhancement and context.other_card and context.no_blueprint then
        local curenh = {}
        if G.playing_cards and #G.playing_cards > 0 then
            for i = 1, #G.playing_cards do
                if G.playing_cards[i].ability.set == 'Enhanced' and G.playing_cards[i].config and not curenh[G.playing_cards[i].config.center_key] then curenh[G.playing_cards[i].config.center_key] = true end
            end
        end
        return curenh
    end
end
slim ferry
slim ferry
#

rather than doing stuff in the joker