#💻・modding-dev

1 messages · Page 86 of 1

weary jungle
#

how do you have the numbers in the description that update?

hybrid iris
#

it's part of the loc_vars thing

#

you know how when you create a joker there's like
config = {mult =10} or something

#

you can then do
loc_vars = {card.ability.mult}
and then since that's the first var you have for this card, you can then use #1# in the description to have it change

weary jungle
#

like this?

hybrid iris
#

like that yeah!

weary jungle
#

but put the g.game not in tje function like a dumb

hybrid iris
#

OH

edgy reef
#

...loc_vars is a function, not a table

hybrid iris
#

wait shoot right

#

i misremembered

#

um

#

i dont have access to my code rn fuck

weary jungle
#

PANIC!!!!!

#

CRYPPTID MOD SAVE ME!!!

hybrid iris
#

RIGHT, SORRY
ITS

crisp coral
#

cryptid is the last mod you want to base your code on

#

trust me

hybrid iris
#
return { vars = {card.ability.mult} }
end```
weary jungle
hybrid iris
#

like this

#

your application in loc_txt looks good though!!

weary jungle
#

how do i update the value?

humble gale
#

does anyone know why G.GAME.chips and G.GAME.blind.chips are tables? Im doing math with them and the answer is turning into a table an im getting an error

weary jungle
#

what is the erroe?

hybrid iris
#

in your case you can probably just change G.GAME.interest_cap?

humble gale
#

attempting to do arithmetic with table

hybrid iris
#

try buying like
seed money to see

humble gale
#

i tried calling the first element of table and it didnt work

humble gale
#

i printed type() and it said table

weary jungle
#
function Game:start_run(args)
    startRef(self, args)
    G.GAME.TGTMchangeHandSize = 0
    IntrestAmt = G.GAME.interest_cap
end```
```loc_vars = function(self, info_queue, card)
        return { vars = {IntrestAmt}}
    end,
    loc_txt = {
        name = "Othala",
        text = {"Earn {C:attention}interest cap * 5{} Dollars (#1#)", "{C:red}-20%{} of Interest cap"}
    },```
it doesnt update
humble gale
#

you do comparison with them and its fine but do it with a math answer of them and you get an error

hybrid iris
#

,,,it, looks like its because the code doesnt constantly update?

weary jungle
#

i can put the loc_var function in the change in intrest, but i dont think itd update when you get seed money or stuff likr that

#
        G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.3,func = function()
            ease_dollars(G.GAME.interest_cap)
            
            
            print(G.GAME.interest_cap)
            if G.GAME.interest_cap > 5 then
                G.GAME.interest_cap = math.floor((G.GAME.interest_cap/5) * 0.8) * 5
            end
            loc_vars = {G.GAME.interest_cap}
            print(G.GAME.interest_cap)

        return true end }))
    end,```
#

i could put it line 12?

#

not working

#

it should be 15

wintry solar
#

why are you trying to assign loc_vars inside a use function

weary jungle
#

i dont know where that came from i deleted line 10

wintry solar
#

so what isnt working?

weary jungle
#

im trying to update the description

#

its not updating

wintry solar
#

what is this IntrestAmt variable you have created

weary jungle
#

top code block

wintry solar
#

why does it exist though

weary jungle
#

i cxant access G.GAME before its loaded

wintry solar
#

just put something like G.GAME and G.GAME.interest_cap or '???' in your loc_vars

weary jungle
#

like this

wintry solar
#

return {vars = {G.GAME and G.GAME.interest_cap or '???'}}

weary jungle
#

we are so back

#

what is the gray color code

#

is it {C:gray}

wintry solar
#

{C:inactive}

humble gale
crisp coral
#

they're tables because of talisman

#

for your non-table numbers, use to_big(num)

weary jungle
#

ok brainstorming time....

#

INGUZ represents a Seed. It symbolizes Goals, Growth, Change, Common Sense Hmm....

#

temporary strength?

#

im going to just create the rest of the art

orchid thunder
#

is higher weight on packs more common or less common

edgy reef
#

More common

hardy viper
#

oh youre supposed to put how much you weigh in real life there

weary jungle
#

oh! so weight = naneinf?

hardy viper
#

so tru

weary jungle
#

just like yo'ur'e mom!!!!

#

😎

weary jungle
#

runes!!!!

tepid crow
#

ooh nice gif

weary jungle
#

better one without blank

#

beutiful sprite sheet

hybrid iris
#

what do yall think about a joker thats like

#

"discarded cards are removed from the deck. When sold, returns those cards to deck"

weary jungle
#

seems powerful

#

trading card but pure deckfixing

hybrid iris
#

fair

weary jungle
#

also, negative

hybrid iris
#

r i g h t

#

hmm

#

good point

weary jungle
#

never needs to be sold!

hybrid iris
#

just trying to think of a good alternative to this one joker i have

royal brook
#

Maybe chance to "take" a card if it doesn't match some attribute

hybrid iris
#

its concept is flawed but i want it to like have that "good in the short run, cant get rid of it or else"

royal brook
weary jungle
#

25% chance to remove card 25% to dupl;icate it blueprint

hybrid iris
#

was the original

weary jungle
#

eternals 😎

hybrid iris
#

yeahh that was like: the good thing

#

if you have eternals or no other jokers its free money

weary jungle
#

maybe something about perishable/rental sticker?

hybrid iris
#

,,,hmm

#

oh actually good idea

weary jungle
#

if sold, random joker becomes perishable

hybrid iris
#

well

#

my thought was "always comes with perishable"

#

so if you WANT

#

you can hold it for 5 rounds and then sell later

weary jungle
#

maybe on sell make 1 joker eternmal, eternal is good if you can control it i think

#

maybe

hybrid iris
#

ehh

#

not as good theme wise imo

#

buuut maybe

weary jungle
#

what would i know im making consumables

#

makbe something like magic skin from isacc

#

if you get rid of it, it keeps coming back more and more

#

like spawn a consumable/joker on buy, if sold, it will show up more

#

or something

elder vapor
#

are there any mods that add new modifiers to cards? looking for examples for when i work on my mod

mystic river
#

enhancements, editions, seals, or whole new types of modifier?

elder vapor
#

new types

#

i would assume those are hard to make which is why i want to look at some references

mystic river
#

i'm not immediately aware of any such mods ThinkRingo

#

on another topic
i'm finally following up on this idea and i'm having trouble making the first planet card

  • my loc_vars should be the hand level, name, mult increase and chip increase in that order but idk how to get those
  • hovering over the card crashes the game with attempt to index field 'colours' (a nil value). i don't know what's causing this.
SMODS.Consumable{ -- Rainbow Planet
    set = 'Planet',
    cost = 3,
    unlocked = true,
    discovered = true,
    atlas = 'spectrumplaceholders',
    key = 'RainbowPlanet',
    name = "Rainbow Planet",
    effect = 'Hand Upgrade',
    loc_vars = {},
    loc_txt = 
    {
        ['en-us'] = {
            ['name'] = 'Rainbow Planet',
            ['text'] = {
                [1] = "{S:0.8}({S:0.8,V:1}lvl.#1#{S:0.8}){} Level up",
                [2] = "{C:attention}#2#",
                [3] = "{C:mult}+#3#{} Mult and",
                [4] = "{C:chips}+#4#{} chips",
            }
        },
    },
    set_card_type_badge = function(self, card, badges)
        badges[1] = create_badge("Planet???", get_type_colour(self or card.config, card), nil, 1.2)
    end,
    config = {hand_type = 'spectrum_Spectrum', softlock = true},
    pos = {x=0, y=2},
    soul_pos = {x=1, y=2},
}```
#

i'm also not sure how to implement the part where the card does the thing but one thing at a time

#

looking at the balatro source did not help because the planet code is arranged really weird and i couldn't tell what was going on

update: i looked at the cryptid source instead and solved it easily. once i remembered that they added new hands so it would actually be a proper template. yay lel

elder vapor
#

is this how you implement a patch corrently?

timid parrot
mighty stump
#

How would I make it so when my deck is selected it gives you a specific joker?

nocturne garnet
#

speedrunner's dream

tepid sky
rough furnace
rough furnace
crisp coral
rough furnace
#

to be fair there wasn't really abetter way at the time

#

but then it never got upgraded

crisp coral
#

asking in advance (i'm outside rn), is there a built-in thing to adjust an image's opacity? want to make an image fade in/fade out that is drawn on top of the game

hybrid iris
#

love it when my code works immediately first try

#

nvm

#

me: manages to write code that changes how the game handles straights and one of a kinds
also me: so like how do i make a joker give mult

crisp coral
tribal umbra
#

thinking of a joker that gives +1x mult for every failed wheel

spare elk
#

those who know

tribal umbra
crisp elbow
#

wheel of hope..

weary jungle
#

is there any way to make a edition not show up until you buy/add it to your deck?

hardy viper
#

huh

#

how would it show up to be added to your deck then

mystic river
#

presumably by a consumable or joker that gives it directly

weary jungle
#

its a hidden cursed edition, you dont know until you get it

#

muahahah

#

hah

tribal umbra
#

fun idea

weary jungle
#

i was thinking create a copy of all consumables, then the copies will curse on pickup but that seems awful

#

maybe if there is a global on deck add, i can hook it to curse it when picked up

silent pawn
#

i think its been done before if thats what you mean but i have no clue

weary jungle
#

no as in in the shop/packs

#

you buy it, then afterwards, there is a chance that it is cursed

hardy viper
#

if you wanted to check what added it then uh

#

either a separate argument that isn't used by vanilla that you use to communicate, a global flag, or if you're feeling spicy debug.getinfo

elder vapor
#

is there a way to add a new type of modifier to a card/joker?

hybrid iris
#

it might take a lot of effort but i feel like its possible

#

how does one do that thing they do for like, blueprint or the fool where they have the text in a small badge underneath?

hardy viper
#

look at cardsleeves code i suppose?

elder vapor
#

i'll take a look at card sleeves

#

looks like card sleeves extends the SMODS.Center class

hardy viper
#

ye

#

oh i see

hardy viper
#

but like your own category or whatnot

elder vapor
#

yeah

silent pawn
#

yeah you can implement custom editions

elder vapor
#

in its own category?

hardy viper
# elder vapor yeah

probably take a bunch of code from SMODS.Edition and patch scoring, card generation, card drawing (as in on the screen), and one of the functions for UI badges

weary jungle
#

is there a add to deck function that ALL cards use?

elder vapor
#

since it'd be a new type wouldn't it be classed under editions

weary jungle
#

how do i get a random number?

weary jungle
#

what would a cursed edition do?

primal robin
weary jungle
#

i would like it to be seeded

primal robin
#

pseudorandom(pseudoseed("your_seed_key"))

weary jungle
#

what is a seed key

primal robin
#

Any string you want, which indicates what a purpose for this pseudonumber

weary jungle
#

can an edition do a random effect?

crisp coral
timid parrot
weary jungle
#

no random effect

#

decided against it

#

Now its this

Cursed Playing Card: Remove edition, enhancement and seal from a card that has it and this card, then uncurse this card
Cursed Planet: delevel the hand twice (you can use the planet so total of -1 level)
Cursed Tarots: ???
timid parrot
#

Cuz if you’re just talking playing cards maybe see what Hologram does

weary jungle
#

i think i got it

#

there is an add to deck function

weary jungle
#

or a cursed spectral?

#

oh

#

i have an idea

#

create a dummy card (0 chips no rank or suit) with an eternal sticker

hardy viper
elder vapor
#

hmm

#

i had a random thought of just using a sticker as the base since those don't interfere

#

but i'm not sure

hardy viper
#

i have no idea why you didn't Google that btw love2d is very well conversated and documented

weary jungle
#

i think curse should show on use for planets, tarots and spectral

weary jungle
#

how do i make a message, like when midas mask activates

wintry swallow
#

Ok trying to add a sound, it's in assets/sounds and imported with

SMODS.Sound {
  key = 'strongman',
  path = 'strongman.ogg'
}
#

But still it's not found

faint yacht
#

What's the prefix used by your mod?

#

'cause you need to use it alongside the filename - play_sound("toga_win95start"), for example, where win95start is the sound key and the prefix (using mine as example) you've assigned.

weary jungle
#

what happeden

wintry solar
#

You tried to set an edition thet doesn’t exist

wintry swallow
weary jungle
#
function Card:add_to_deck(args)
    ATDref(self, args)
    print(self.ability.set)
    print(pseudorandom(pseudoseed("Curse")))
    print(G.GAME.TGTMCurseChance)
    if (G.GAME.TGTMCurseChance > 0) and (self.ability.set == 'Joker') and (pseudorandom(pseudoseed("Curse")) < G.GAME.TGTMCurseChance) then
        G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.3,func = function()

            self:set_edition("Cursed")
            card_eval_status_text(self,"extra",nil,nil,nil,{message = "Cursed!", color = G.C.PURPLE})

        return true end }))
    end
end```
#
    key = "Cursed",
    shader = false,
    loc_txt = {
        name = "Cursed!",
        label = "Cursed!",
        text = {""}
    },
    unlocked = true,
    discovered = true,
    config = {
        mult = -10,
        x_mult = 0.75
    }
}```
wintry solar
wintry solar
wintry swallow
#

Oh lol finally understanding, it just in the Header

#

Did make that very difficult on myself 😄

wintry solar
#

So smods will add the object prefix and mod prefix on most objects, like a joker with key example would become j_modprefix_example

wintry swallow
#

Yeah it's easy enough, I just confused myself thoroughly

#

But sounds are just modprefix_soundname ?

faint yacht
#

Where soundname part is the key you've defined.

wintry swallow
#

You probably need to change the prefix in the example to lookatyourheaderandchangeyourprefixyoutotalknob

wintry solar
#

Yes that’s correct

#

Editions are just e_key

weary jungle
wintry solar
#

Wait no never mind they’re not

#

I’ve just been working with base editions for too long

#

They’re still mod prefixed

weary jungle
#

e_TGTM_Cursed?

#

if my id was TGTM-----

#

or is it TGTM_Cursed?

wintry solar
#

With the e

weary jungle
#
--- MOD_NAME: TGTM's Consumables
--- MOD_ID: TGTMConsumables
--- MOD_AUTHOR: [Thatguytheman]
--- MOD_DESCRIPTION: runes and stuff (and a few random jokers)

getting the same error

#

nvm i figured it out

#

its first 4 letters lowercase

#

how do i make sure mult doesnt go negative?

primal robin
#

Did you try to looking in game code at all?

weary jungle
#

negative mult works, it just doesn't show

wintry swallow
#

Getting somewhere 😄

hardy viper
weary jungle
#

like the joker gives - 10 mult, but i dont want the mult to go negative, i want it to stop at 1

#

i guess its fine actually

#

nvm

nocturne garnet
#

how do you even use undiscoveredsprites

weary jungle
#

crying rn

rough furnace
#

G.C.PURPLE my beloved

weary jungle
#

balatro has gone WOKE! (brityishj)

rough furnace
#

Thats the correct spelling

weary jungle
#

how do you check if a card is a tarot

weary jungle
rough furnace
rough furnace
#

hold on

weary jungle
#

also what is #G

hardy viper
rough furnace
hardy viper
#

but yeah # is the length operator

weary jungle
#

why is it useles

hardy viper
#

because G holds no meaningful data

weary jungle
#

i saw it in for i=1, #G.hand.highlighted do

hardy viper
#

that's not checking #G

#

the indexing is evaluated first

weary jungle
#

i thought #G was something like GAME

hardy viper
#

it checks the length of G.hand.highlighted

rough furnace
weary jungle
hardy viper
#

i believe so

rough furnace
#

Probably

hardy viper
#

self.config.center.set would also work

#

probably safer and more compatible to do self.ability.set

rough furnace
#

theres also card.ability.consumeable for any consumable type

weary jungle
#

does lua lists start at 1 or 0?

rough furnace
#

1

weary jungle
#

crying

rough furnace
#

it's not that bad

wintry swallow
#

tsk tsk immediately obvious who didn't do their FORTRAN homework

weary jungle
#

how would you make a enhancement like stone, that doesnt show rank or suit

rough furnace
#

SMODS has a key for it

#

set no_suit and no_rank to true in your enhacement

weary jungle
#

CURSE YOU STEAMMODDED WIKI!!!!

rough furnace
#

True

weary jungle
#

cryptid mod to the rescue (i hope)

#

what are the fields for enhancements

#

how do i set a custom chips amount for the enhancement

#
    key = "Dummy",
    unlocked = true,
    discovered = true,
    config = {
        no_suit = true,
        no_rank = true,
        chips = 0
    }
}```This isnt working, what is wrong?
#

nvm

#

the enhancement is still giving chips, how do i get no chips scored

weary jungle
#

how do i make the enhancement not give any chips?

wintry solar
#

no_suit and no_rank aren't in config iirc

weary jungle
#

where do they go?

weary jungle
wintry solar
#

there are some fairly complete docs here

crisp coral
orchid thunder
#

my packs no work

maiden phoenix
#

Have you tried the solution you've been given twice in the Cryptid discord?

orchid thunder
#

with invalid Ipairs thing

maiden phoenix
#

odd

orchid thunder
#

want log?

maiden phoenix
#

Sucks this doesn't have a wiki section yet

#

No I'm going to sleep

orchid thunder
#

oh ok

zealous glen
#

Has Steamodded had any major changes since 3–4 months ago?

hybrid iris
#

how would i get the name of a joker from localization?

hybrid iris
zealous glen
#

I’m just wondering if how much work I’d have if I decided to get back into modding

hybrid iris
#

hmmm

#

i mean, are you still using 0.9.8 last you rememebr?

hybrid iris
humble gale
#

is this how i would check for a full house using the poker hands api?

if next(parts._2) and next(parts._3) then
--code hear
end
hybrid iris
#

then i dont think you need to worry about it ksdfjhskdfjh

hybrid iris
#

yeah i believe so!

humble gale
#

can i pass on context with the evaluate function?

#

the only things on steamodded wiki are parts and hand

hybrid iris
#

oh huh

#

wait evaluate function? ksdfhjsdkfjh

#

can you elaborate? sorry

humble gale
#

function that makes sure it is the defined hand

hybrid iris
#

ohhh!!

#

you're making a new poker hand?

#

if so then like
yeah this is definitely right

humble gale
#

yes

#

alright

#

then i think my issue is checking the suits

hybrid iris
#

ohh

#

may i see your code?

humble gale
#

cause i just did _card:is_suit() == "Hearts"

hybrid iris
#

ahhh yeah

humble gale
#
local _redFury = SMODS.merge_lists(parts._2, parts._3)
local isRedFury = true
for j = 1, #_redFury do
    local _card = _redFury[j]
    local rank = SMODS.Ranks[_card.base.value]
    isRedFury = isRedFury and (rank.key == 'King' and _card:is_suit() == "Hearts" or rank.key == 'Queen' and _card:is_suit() == "Diamonds")
end
if isRedFury then return {_redFury} end
hybrid iris
#

,,,ah
hm

#

oh yeah

#

if i remember correctly, it should be card:is_suit("Hearts")

humble gale
#

ill try that

#

that worked thanks!

hybrid iris
#

radical

#

as for ranks, you would be better off doing _card:get_id() == 13 and _card:get_id() == 12 for kings and queens respectively but u do u!!

weary jungle
#

how do i see if no card is selected

hybrid iris
#

depends

#

what are you like, using it for?

weary jungle
#

like after you use a conumable

hybrid iris
#

ohhh

weary jungle
#

as a fallback if no cards are selected

hybrid iris
#

like you want a consumable to not be usable when cards are selected?

#

ahhh

#

you can try #if G.hand.highlighted == 0

weary jungle
#

is the hashtag nessesary?

hybrid iris
#

i believe so?

#

its, how the game does it

#

at least

weary jungle
#

its erroring me

hybrid iris
#

ah

#

JSDHSKJH woops

#

sorry, i put it in the wrong spot 😭

weary jungle
#

is it beforG

#

before G

hybrid iris
#

if #G.hand.highlighted == 0

#

yeah before g

#

sorry

weary jungle
#

i knew it!!!

hybrid iris
#

sdkfjhsdkfjh

#

thats why you should never trust me with anything ever not even once

weary jungle
#

how do i create a card

#

ill look at marbl;e joker

#

dw

#

how do i creatre a card

#

just straight to deck

hybrid iris
#

oh

#

uh sjdhsdjh

weary jungle
#

Im trusting you with anything ever even once

hybrid iris
#

oh my this is a lot of pressure

#

well, uh,, try looking at marble joker and certificate???

#

i dont know this one im sorry sdkfhjskdjh

hybrid iris
#

is it weird to say that my mod feels too fast

spare elk
#

?

hybrid iris
#

it doesnt have that feeling of like tactileness that regular balatro has

weary jungle
#

add gme event?

#
            CODE
return true end }))
#

this yorked for me

hybrid iris
#

i mean yeahh fair

weary jungle
#

why is that there

hybrid iris
#

ah

#

try doing emplace?

weary jungle
#

there is an emplace

#

maybe i copied badly

#
            G.playing_card = (G.playing_card and G.playing_card + 1) or 1
            local card = Card(G.play.T.x + G.play.T.w/2, G.play.T.y, G.CARD_W, G.CARD_H, front, G.P_CENTERS.m_TGTM_Dummy, {playing_card = G.playing_card})
            card:start_materialize({G.C.SECONDARY_SET.Enhanced})
            G.play:emplace(card)
            table.insert(G.playing_cards, card)```
#

(i dont remember where i copied this from, probably marble joker)

#

how do i use a sprite from the base games atlas

#

i want to use this from Tarots.png

#

(blank rune just sets curse chance to 100% rn)

#

(for testing)

#

when i use the hermt, it just spawns in the center

#

i need help! things are being wierd and i dont know why!!!

elder vapor
#

is there a way to see if a lovely patch works/takes effect?

weary jungle
weary jungle
elder vapor
#

tried printing a value inside of a card that i patched in and it crashed the game

#

prob did it wrong ngl

weary jungle
#

WE ARE DO BACK!!

#

How do i use a texture from the base game

spare elk
#

you can just refer your sprite to an atlas already in the game i think

#

you said something about tarots right?

#

x 4 y 2 is the spot for locked cards

#

just do like "atlas = Tarots" and it should do it i think

#

take it with a grain of salt tho, im not the best at this coding thing

elder vapor
#

raw_atlas_key iirc

weary jungle
#

not working

#

awesome idea! copy

weary jungle
#

how do you delevel a hand

spare elk
#

ok i have absolutely no clue what im doing wrong here tbh
trying to make it so every ace of spades gives x2 mult when scored which i didnt think should be that hard, turns out it is

spare elk
weary jungle
#

how do i check what hand a planet is upgrading

#

self.config.hand_type?

orchid thunder
#

my consumables are not getting added to a pool desides the default

hybrid iris
#

is there a modded joker that triggers when another joker triggers?

elder vapor
hybrid iris
#

ooh gotcha

shell timber
#

wario gives $3 when a joker triggers

#

from cryptid

tepid sky
#

<3

hybrid iris
#

icic

#

,,,where does this trigger come from?? huh??

shell timber
#

probably a lovely patch

opal spade
#

iirc

#

it's emitted after any successful trigger from the calculate joker hook in core/overrides.lua

hybrid iris
#

ahhh gotcha

weary jungle
#

someone should update the steammodded wiki

#

or make a new one

#

how do i make my globals save? when i go to main menu and back, the global resets

#

wait

#

i might be goated

#

am i learning?

faint yacht
#

Yeah, the or 0 is technically a "failsafe" of sorts if the first value is undefined.

weary jungle
#

also how do i use the primary/secondary colors of a consumable type to replace G.C.Color?

#
                card_eval_status_text(self,"extra",nil,nil,nil,{message = "Blank!", colour = G.C.PURPLE})
                local LockedSpawn = Card(G.play.T.x + G.play.T.w/2, G.play.T.y, G.CARD_W, G.CARD_H, front, G.P_CENTERS.m_TGTM_Blank, {playing_card = G.playing_card})
                LockedSpawn:add_to_deck()
            return true end }))```This is putting the card in my hand, in the shop
#

when you are in shop, does G.hand still exist?

crisp coral
#

yes

weary jungle
#

how do i know if im in the shop

#

is it a G.STATE or something

#

if i check for sellecting_hand, does that mean only when you are playing a hand?

hardy viper
#

when you're picking cards to discard/play

weary jungle
#

like only when you have a hand you can add cards to

#

with G.hand:emplace(cardLoc, nil, false)

hardy viper
#

G.hand always exists

#

it's also used for things like arcana packs

#

you really shouldn't be putting cards in there unless you're playing a hand or you're in an arcana/spectral pack though

weary jungle
#

yea thats why i want it to only happen when you are in a blind

#

also, how do i put a card to the deck? where would i emplace?

hardy viper
#

i believe that's complicated, it SHOULD just be G.deck but iirc that doesn't properly interact with the deck viewer

#

just check vanilla code

weary jungle
#

i think vanilla uses G.play

hardy viper
#

G.play is for scoring

weary jungle
#

nope

#

didnt work

weary jungle
#

i think it work its fine

#

oh, its showing 54/53

hardy viper
weary jungle
#

i see what you mean now

#

How do i add a card to the deck?

hardy viper
#

or hover over it

weary jungle
#
                G.E_MANAGER:add_event(Event({
                    func = function() 
                        local front = pseudorandom_element(G.P_CARDS, pseudoseed('marb_fr'))
                        G.playing_card = (G.playing_card and G.playing_card + 1) or 1
                        local card = Card(G.play.T.x + G.play.T.w/2, G.play.T.y, G.CARD_W, G.CARD_H, front, G.P_CENTERS.m_stone, {playing_card = G.playing_card})
                        card:start_materialize({G.C.SECONDARY_SET.Enhanced})
                        G.play:emplace(card)
                        table.insert(G.playing_cards, card)
                        return true
                    end}))
                card_eval_status_text(context.blueprint_card or self, 'extra', nil, nil, nil, {message = localize('k_plus_stone'), colour = G.C.SECONDARY_SET.Enhanced})

                G.E_MANAGER:add_event(Event({
                    func = function() 
                        G.deck.config.card_limit = G.deck.config.card_limit + 1
                        return true
                    end}))
                    draw_card(G.play,G.deck, 90,'up', nil)  

                playing_card_joker_effects({true})
        return nil, true            end```where is the emplacement here? (marble joker)
hardy viper
#

don't ask me im on mobile

weary jungle
#

oh

#

i did table.insert(G.playing_cards, LockedSpawn) and i can see that the deck updated to 53/53, but i cant see it in the viewer

#

it has no rank or suit

#

the edition doesnt

#

it is definly in the deck

#

you can draw it, but not see it in the deck view

#

is it G.STATE == G.STATES.SELECTING_HAND?

#

i dont think its working for mw

teal estuary
#

this might be a stupid question but its steammodded so who knows, can you make negative chips/mult by just putting in the config file chips = -50 or something?

hardy viper
#

what config file

faint yacht
#

...I think the -50 chips and config implies the config part of the joker.

hardy viper
faint yacht
#

On note of configs, the function that's needed to define the UI for the config tab appears to be quite... complex.

#

At least from looking at how other mods have them defined-

teal estuary
#

the config in jokers

hardy viper
#

generally you just copy from another mod

#

unless you really want to mess with it yourself

faint yacht
#

Somewhat worried about "copying" due to the 5th rule...

elder vapor
#

idek if my mod idea is possible 😭

hardy viper
elder vapor
#

that or i'm just being stupid

faint yacht
hardy viper
#

and of course the games source code

faint yacht
#

Yeah, have been.

hardy viper
#

but yeah if they say you can or if their code is under any sort of open source license you can just copy the code willy nilly 🔥

#

that's what I do at least egg

weary jungle
#

i copy in my mind (and with copy paste)

#

what is the state where you can select cards and play them?

#

if G.STATE == G.STATES.SELECTING_HAND then this isnt true when i am selecting cards in a blind

crisp coral
#

i'm curious how that isn't true

#

because that is the state for selecting cards

weary jungle
#
...
else
print("No G.hand and No G.STATES == G.STATES.SELECTING_HAND")```
#

am i dujmb?

#

must have been the wind...

#

uh oh

#

what is happerning

#

OHHHHHHH

#

if im using a tarot

#

ill be using a tarot

#

im so dumb

#

does G.STATE == PLAY_TAROT when you use a tarot from the shop?

#

how do i check if im in a shop when im using a tarot?

#

can handsize ever be 0?

spare elk
#

if your handsize is 0 you die i think

languid mirage
#

only if you join a round

#

if you have cards in hand and handsize goes to 0 or lower then you can still survive

weary jungle
#

how do i tell if you used a tarot from a shop

wintry swallow
#

How do I get a single image for a new blind in? If I load it into an Atlas, it's ignored/the main sheet is used. Cryptid's approach crashes for me - I also don't want to do an anaimation (yet).

weary jungle
weary jungle
weary jungle
weary jungle
#

to i have to say my edition is a stone card?

golden lake
#

morning balatrochat

tepid sky
#

why won't it allow me to set probability when ending a round?

weary jungle
#
    --Blank
    key = "Blank",
    atlas = "Tatatro",
    pos = {x = 5, y = 2},
    unlocked = true,
    discovered = true,
    --Has no suit or rank
    no_suit = true,
    no_rank = true,
    --goes over card
    replace_base_card = true,
    --scores 0 chips
    bonus = 0,
    bonus_chips = 0,
    loc_txt = {
        name = "Blank",
        text = {"Scores {C:attention}0{} chips", "No rank or suit"}
    }
    
}```is something wrong here?
tepid sky
#

is bonus just the main card's chips?

#

or whats up with 2x bonus?

weary jungle
#

idk what bonus is

tepid sky
#

hmm

weary jungle
#

i just put it to 0

tepid sky
#

testing does go great lol

#

i might test some things too

weary jungle
#

sure

tepid sky
#

ty!

weary jungle
#

im about to do some major testing (3)

tepid sky
#

same, might even test adding some extra code

#

to make smth like the glass card

#

also why is lobocorp music in the example mods?

weary jungle
#

ok, so this puts an error when i hover over deckG.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.3,func = function() card_eval_status_text(self,"extra",nil,nil,nil,{message = "Blank!", colour = G.C.PURPLE}) local LockedSpawn = Card(G.play.T.x + G.play.T.w/2, G.play.T.y, G.CARD_W, G.CARD_H, front, G.P_CENTERS.m_TGTM_Blank, {playing_card = G.playing_card}) LockedSpawn:add_to_deck() G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.3,func = function() G.deck:emplace(LockedSpawn, nil, false) table.insert(G.playing_cards, LockedSpawn) return true end })) return true end }))

wintry swallow
weary jungle
#

the deck when you play cards, the small box that shows suits and renks

#

this one

elder vapor
#

is there SMODS documentation for creating stickers?

tepid sky
weary jungle
#

ok i fixed it

tepid sky
#

?

#

i was still working on setting up the mod to test

#

lol

#

i really have to make a small empty mod

tepid sky
weary jungle
#

it was not the edition that was the problem

#

it was how i put it in the deck

weary jungle
#

how do you pick a random enhanced card (seal, edition or enhancement)

#

from the deck

tepid sky
wintry solar
#

Maybe I should upload the docs I have to the wiki 🤔

timid parrot
elder vapor
#

is there anywhere to find work in progress docs for pages

#

trying to add stickers but the mods i'm looking at that add stickers are confusing me lol

hardy viper
weary jungle
#

waiter waiter more card: documentation

golden lake
#

chat maybe i'm a boomer but help me debug thing gog damn ui tables thing

#
        loc_def = function(self, info_queue, card)
            local color = G.GAME.BALATROSTUCK.strife_assignment == "Unassigned" and G.C.JOKER_GREY or G.C.SPECIBUS
            return {
                main_end = {
                    n = G.UIT.C,
                    config = {align = "bm", minh = 0.45},
                    nodes = {
                        {
                            n = G.UIT.C,
                            config = {ref_table = self, align = "m", colour = color, r = 0.05, padding = 0.08},
                            nodes = {
                                {
                                    n = G.UIT.T,
                                    config = {
                                        ref_table = G.GAME.BALATROSTUCK,
                                        ref_value = "strife_assignment",
                                        colour = G.C.UI.TEXT_LIGHT,
                                        scale = 0.32 * 0.8
                                    }
                                }
                            }
                        }
                    }
                }
            }
        end,
#

it used to show up as

#

now my badge is gone

#

its a specific UI object i want to render

#

this code used to work in April but after SMODS did yet more breaking changes it doesnt want to work

#

this different custom UI object works though

#

so i am genuinely confused why this one works but the other one doesnt

#

double wrapping like in example above doesnt seem to do anything for me

#

there are still issues

#

the joker itself works fyi

#

but this doesnt want to

#

did y'all change something that makes statements like these invalid?

wintry solar
#

loc_vars not loc_def, no?

golden lake
#

.................

nocturne garnet
#

damn you bad code

#

trying to make a card talk

#

problem: i dont know how to do any ui shit

wintry swallow
#

Well text is not a table

#

So probably it doesn't come in as string?

wintry solar
#

your row[#row+1] = {n=G.UIT.R, config={align = "cl"}, nodes=v} line win't work because v isn't a ui node

weary jungle
#

how do i loop throught geck

hardy viper
#

for loop
iterator functions

elder vapor
#

is there a way to move something from a mod (ex. joker) to a menu in the others tab in collection?

weary jungle
#

how do i check if a card is enhanced in any way? (seal, edition, enhancement)

hardy viper
hardy viper
#

but just check drivers license code

#

as in the vanilla joker

weary jungle
#

v.config.center ~= G.P_CENTERS.c_base does this look for all types?

hardy viper
#

idk check drivers license code

weary jungle
#

doenst drovers licence only cherck enhancements? and not editions or seals?

elder vapor
hardy viper
#

okay cool

#

uh

#

hang on one sec

#

okay
hook the function that creates the uibox with all the other tab buttons
insert your own button in there that will call the function to create your collection ui
copy the code from the function that creates the sticker collection ui and tweak that for whatever you have going on
all these functions are under smth like "your_collection_foo" and "create_UIBox_your_collection_bar"

elder vapor
#

alright thanks, i'll get to working on it when i can

weary jungle
#

how do i move a card to the center of the screen

#

to do thing

#

s

hardy viper
#

remove it from it's cardarea and set the card.T.x to half of whatever the width of the room is and similar for card.T.y (check code that creates UIs, it probably uses similar calculations somewhere)

#

alternatively

#

look at the vanilla code for using a tarot and copy that

weary jungle
#

can i check what card area a card is?

hardy viper
#

Card.area

weary jungle
#

awesome

#

these cused consumables are so mean :(

weary jungle
hardy viper
#

CardArea:remove_from_area or something similar. just search for "CardArea:" in the cardarea.lua source file and use whichever function looks right

#

but again

orchid thunder
#

what type of aligns are there for text

hardy viper
#

just look at what vanilla foes

#

it's much easier

hardy viper
orchid thunder
hardy viper
#

t = top, b = bottom, l = left, r = right, etc

#

well not etc that's it

orchid thunder
#

oh ok thanks

hardy viper
#

regardless

#

this is on the steamodded wiki btw

orchid thunder
#

it is?

hardy viper
#

eremel did a thing

orchid thunder
#

oh nice

weary jungle
#

i want to make an enhanced card come out and get purified!

#

time to get an error!

#

i called it!

#
                    v.area:remove()
                    v.T.x = G.play.T.x + G.play.T.w/2
                    v.T.y = G.play.T.y + G.play.T.h/2```hmm.....
hardy viper
#

unless im mistaken you're straight up getting rid of G.play?

weary jungle
#

what

hardy viper
#

that's what v.area:remove() would do

weary jungle
#

oh

#

thats probably not good

hardy viper
#

that would subsequently make G.play nil which explains the error (i assume it's "attempt to index a nil value" i haven't downloaded the log)

weary jungle
#

yep

hardy viper
#

are you sure this is the right log this seems like an unrelated error

weary jungle
#

nope its the right one

hardy viper
#

nvm timestamp seems right

#

odd

weary jungle
#

whats odd

hardy viper
#

your mod isn't on the stack at all

#

so something unrelated errored

weary jungle
#

maybe removing g.play did something

#

hmm.....

#

the deck is definilty in the center

#

oh i moved the card area not the card

wintry solar
#

what are you trying to do

hardy viper
weary jungle
#

grab a card from deck/hand

wintry solar
#

look at the use consumable code

#

iiirc you just emplace it in in G.play and then move it back somewhere else afterwards

hardy viper
#

ive said that twice and he hasn't acknowledged it yet so who knows

weary jungle
#

oh

#

mb

orchid thunder
wintry solar
#

what is the ui code you have?

orchid thunder
#

im trying to put a list in it

weary jungle
#

is there a list of all cardareas?

orchid thunder
wintry solar
orchid thunder
#

a patch

weary jungle
#

if you emplace a card from the deck to G.play, how do you flip the card? im trying Card:flip, but its not working

orchid thunder
orchid thunder
#

is there any mod that has the example fo a hover effect for a button

elder vapor
#

forgot that stickers can't be applied to playing cards

#

welp time to see if i can get a lovely patch to work lol

mellow sable
elder vapor
#

oh thats neat

#

@mellow sable do you know where in the repo it is?

mellow sable
#

Sticker code is really scuffed

#

And some of it might be in the “old” folder which wasn’t ported over to the rewrite yet

orchid thunder
#

WHY IS IT OFF CENTER

mellow sable
orchid thunder
#

also why wont the gap work

weary jungle
#

when i move a card from the deck and emplace it in G.play, it always flipped, how do i stop that

#
                            G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.3,func = function()
                                v:flip()
                            return true end }))
                        end```
crisp coral
#

draw_card has a stay_flipped param iirc

sick ferry
#

how do i add description text to a blind
SMODS.Blind{
key = 'jimbofan',
mult = 2,
loc_txt = {
name = 'Jimbo Fan',
text = { 'putting anything in here crashes the game' },
}
}

weary jungle
elder vapor
#

happened after playing a card

#

yeah i'm stuck trying to get the stickers to work 💀 first time modding lol

elder vapor
#

@mellow sable sorry for disturbing you, but is it possible to point out what functions/patches make the custom stickers work? i'm new to modding balatro so i'm lost in the source code lol

mellow sable
#

Doing that would take quite a while, and it’s relatively complex

#

So unfortunately I just don’t really have time to give you a deep overview

#

But basically here’s what we did to implement these:

  • patch the card generating function to let playing cards get stickers naturally
  • patch every way a card can be altered or destroyed to account for Eternal (this one is annoying to do)
  • add something at the end of round that calculates perishable and rental effects for playing cards (in Cryptid, perishable applies for cards in the entire deck and rental applies for cards held in hand)
elder vapor
#

are all of the changes in the rewrite branch? or are some not added yet

elder vapor
nocturne garnet
#

hes hungy

tribal umbra
#

he is

tepid sky
#

howd u do the copy its ability tho?

nocturne garnet
#

uhhhh

#

card has a table with a buncha cards

tepid sky
#

damn

#

lol

nocturne garnet
#

card triggers the calculate in the cards inside that table

tepid sky
#

alrighto

nocturne garnet
tepid sky
#

i always love when jokers talk

stray warren
#

Does a perishable_compat exist?

crisp coral
#

yes

nocturne garnet
stray warren
#

Cool, thank you

#

I took a break and forgot simple things like that bulbafacepalm

nocturne garnet
#

okay man 😦

tepid sky
#

random question, how do i add functionality to my enhancement?

#

jsut the same as a joker?

#

prob right

teal estuary
#

roughly the same

#

there are some differences, but i do not remember 😭

tepid sky
tepid sky
teal estuary
#

finally 😭

#

cant wait

tribal umbra
#

does +0.25x every 4 queens or 8s discarded sound good

tepid sky
#

i'd go with 4 of queens

wintry solar
#

It’s pretty complete tbh, just a few things that need adjusting in the code like the undiscovered and locked stuff, the general structure and what you can do should be covered

#

You can also look at ortalab for some examples, there’s 8 enhancements in there

tepid sky
#

i am making a little example mod for my self with all the parameters and some extra code

#

if anyone wants it can be put in the example mods if thats ok

tribal umbra
tepid sky
crisp coral
#

h_ is mult/xmult in hand

#

bonus_chips is the hiker effect though stone cards also use this iirc

#

weight is how often it appears when rolling for a random one

#

1 being the default

tepid sky
tepid sky
crisp coral
#

im not at gome

#

home*

#

and please turn off your reply pings

tepid sky
#

srry

wintry solar
#

iirc the only difference between bonus and bonus_chips is how they’re displayed in the ui box,

#

And default weight is 5

tepid sky
wintry solar
#

Yeah I’m pretty sure they do exactly the same thing

tepid sky
#

seems like they do

wintry solar
#

But one of them combines with the scoring of the regular rank and one is separate

#

Iirc

tepid sky
#

hmm, i'll see what happens

#

both seems to be base + bonus(_chips)

#

also just: chips = 10, seems to also work

tepid sky
#

where can i suggest my exaple stone enhancement >_>

teal estuary
#

i mean, make a PR i guess?

#

if you can

tepid sky
#

i have litterally bairly any idea how to use github ._.

wintry solar
#

What do you want to do?

tepid sky
#

just made an exaple-mod

#

for enhancement to go along with the wiki

#

(nothing too special, just stone but using the SMODS)

wintry solar
#

I think it's probably better to just direct people to mods with them in so you can see what they can do

tepid sky
#

alr then

tepid sky
#

i feel like instead of adding its acutally multiplying the chance? and when ending shop it is actually doing "-" normally ._.

zealous glen
#

How’s Enhancement support nowadays

frosty dock
#

pretty functional i think, though docs are still wip

burnt dust
#

I've started playing around mod development, and from what I've seen folks' mod collections seem to be big long files
Is there no way of using require or similar to break up the codebase?

wintry solar
#

Enhancements are as functional as they’ve always been it’s just people understand them a bit better now

tepid crow
orchid thunder
#

Mathguy said it in steamodded form but it's sad that the rarity API breaks consumable raritys

edgy reef
#

Is it just pools being broken or the rarity display for consumables?

hallow forge
#

pools

#

ik in bonus blinds every single bonus blind ends up being the default

edgy reef
#

That's extremely easy to fix

#

one sec

#

At least I think?

#

ok this is WAAAAAAAAY too big

#

1 is basically equivalent to 100% chance to appear (before affected by other weights)

#

7,500% chance of common?

#

Also, it was switched to weight (no judge though, the doc update for that I made hadn't been posted yet).

burnt dust
hallow forge
edgy reef
#

It is?

hallow forge
#

then shouldn't this be fine?

#

75 -> .75

edgy reef
#

It doesn't something else is off

#

😭

hallow forge
edgy reef
#

Wait does it?

hallow forge
#

it used to

#

bonus blinds pool worked for a while and i haven't changed it

#

im guessng rarity API changed something and broke it

edgy reef
#

Rarities are fine, I think it's just another oversight with string/int rarity conversion.

#

Yup

zealous glen
#

Are they now?

edgy reef
wintry solar
#

it was always built in, it's just different to every other object

humble gale
#

does anyone know of a way to re-parse loc_txt.text? Im changing it but i can seem to get the changes to show up

zealous glen
humble gale
#

change the descripton of a joker

hardy viper
humble gale
#

i was doing that and it looks ugly

#

i can't format it

hardy viper
#

oh odd

#

i would've thought you could use formatting for stuff like that

humble gale
#

smods processes that when the joker is made

#

im trying to make it do that again

hardy viper
#

coulda sworn there was a process_loc_txt function somewhere

#

could you just call that again

tepid crow
humble gale
#

im just appending some more text after that current description

humble gale
tepid crow
#

you can return a different key in loc_vars, and the description and name will change to fit the new key

#

or you can do the reparse thing but that's not pretty

humble gale
zealous glen
#

Under what conditions does it change?

humble gale
tepid crow
# humble gale what do you mean by return different key

maybe victin has a better solution but what I have done in the past is have 2 localization entries:

my_joker = {
    name = "My Joker",
    text = { "Version one" }
},
my_joker_alt = {
    name = "My Joker",
    text = { "Version two" }
}

and in the actual code:

SMODS.Joker{
    ...,
    loc_vars = function(self)
        local key = self.key .. (self.config.extra.enabled and "_alt" or "")
        local vars = { self.config.chips }
        return { key = key, vars = vars }
    end
}
zealous glen
#

It works automatically with the name of the cards you use, IIRC

#

so even if you used, say, a modded Planet, it would show the right now

#

I don't remember what if the card had the same name as a different one, but I think it might recognize them as different

#

I'm pretty sure I did test chaging languages and nothing broke

#

I have other Jokers that display text or don't based on whether you're looking at them in the collection or not

humble gale
#

before i just had the text in a loc variable and called it in the description with #4#. If i did something like {C:mult}text{} the color wouldnt work

zealous glen
#

I don't know if this has changed as it's been a while since I updated Steamodded, but this was how I did it

#

The important part is that I generate a row node containing the text node I want

#

Each row node is a line

wintry solar
# zealous glen how so?

it doesn't have any return per se, but it sends the effects table to the object that you can modify]

zealous glen
#

I think what you're saying covers pre-programmed scoring steps

#

what about arbitrary behaviour within said steps?

wintry solar
#

you can do whatever you like within your calculate function if that's what you're asking

zealous glen
#

Does it receive context?

wintry solar
#

yes

zealous glen
#

So basically, you have a column of rows (lines) and each row contains text

#

It's important to note that if you want the text to "be different" it needs to be different text nodes

#

So black text, blue text, and black text are three text nodes

wintry solar
#

iirc you can do this inside your loc_vars function and return it as main_end = X in your return table

zealous glen
#

I just separated it in a different function for ease of reading

wintry solar
#

oh yes I am dumb and mmissed that 😆

zealous glen
#

I also use this format because I used it for other Jokers

#

Some Jokers might have similar main_ends

#

Hence I only need to define it for once

#

For example

zealous glen
wooden nexus
#

So I'm trying to do something for Archived. I wanna make it so that when I use a planet card, instead of the regular level up, it runs a custom level up where it still adds the normal level but uses custom chip/mult values that I put in the configure of said card. Is that possible?

humble gale
#

yeah i saw it

zealous glen
#

does that help you

humble gale
#

is config.text where the "{None}" is held?

wooden nexus
zealous glen
#

by "what you see" I meant the player

humble gale
#

Dm is fine

zealous glen
humble gale
zealous glen
#

Maybe I could've looked for an easier example but this was the first one I thought of

#

most others only use a single line IIRC

orchid thunder
#

what would a Q in consumable font look like

shell tangle
#

Coming back after a few months and trying to get back into a mod I was working on, local config = SMODS.current_mod.config appears to now be nil, though, did something about the config stuff change?

humble gale
tepid crow
humble gale
#

it isnt what i needed when i looked at it

tepid crow
#

oh okay

humble gale
#

plus with this it can change the name and for some jokers that helps

tepid crow
lethal stratus
#

Would anyone who knows how to code in lovely be willing to assist me with this? I do not, but am willing to learn through this thing I am doing for a community balatro mod.

#

(like speaker box seems easy, i just dont know how to create a custom joker obj or anything of the sort

#

also any balance concerns would be important to note(under/overpoweredness, etc

shell tangle
#

In lovely and not through Steamodded's API?

lethal stratus
#

i may be dumb gebura pfp

shell tangle
#

There should be an example mod in Steamodded's example mods, but I made it a few months ago and I'm only recently coming back, so there is a chance some things in it could be outdated, but probably not. Anything that's not clear, throw here, and I or someone else might help out, I'll probably start reading this channel again since I'm getting back into things.

crisp coral
lethal stratus
#

:3

#

i got permission from cheryl, and im RUNNING with it lol

crisp coral
#

oh what the Fuck

#

you got the Cheryl permission

hardy viper
#

most of these dont seem too difficult to do

crisp coral
#

yeah

lethal stratus
#

making reworks rq

hardy viper
#

would just be tedious to get art work done

lethal stratus
#

artwork is a later proposition

#

(plus A-saph has already made some card art for their own balatro mod)

hardy viper
#

cool

lethal stratus
#

there's gonna be a lot of placeholders

#

for now

crisp coral
#

is there a dedicated thread for this in The Server

lethal stratus
#

n o

#

should i make/ask to make one

crisp coral
#

shrug

#

i'd assume the ones i've seen from a-saph/fiddy/ion are from a different server then

lethal stratus
#

they were just posted in artwork

#

/SS24 server

hardy viper
crisp coral
#

ic

hardy viper
#

thats what a lot of mod creators do anyways

lethal stratus
#

noted!

zealous glen
# lethal stratus

It depends on how exactly you want Allison to work. If you want them to have all suits that's easy. If you want them all to be actually Wild I think that's hard. If you want cards without Enhancements to be Wild… maybe but it wouldn't work with other mods AFAIK

lethal stratus
#

i was actually planning on changing allison to be
all cards played turn into the suit of the highest unplayed card value

zealous glen
#

Bear Creek Seems doable. A bit annoying in my opinion but it's not my mod. I guess it's technially a Rare effect since it doesn't trigger during card calculation despite caring about card position

lethal stratus
#

and then a buff to cards not in the highest card value

zealous glen
#

In which case it's a bit too good?

lethal stratus
#

what do you mean by too good?>

#

too much in terms of value?

zealous glen
#

I'm not sure if Cheryl warrants Legendary status, but it's neat

zealous glen
#

Like the Duo

#

Which requires a Pair and grants 2x

lethal stratus
#

Cheryl/Jammy NEEDS to be legendary for status reasons

hybrid iris
zealous glen
hybrid iris
#

oh

zealous glen
#

If you want them to have all suits that's easy.

hybrid iris
#

it would work with other mods though im pretty sure

zealous glen
#

Again if you only care about Suits

#

Not if you care about Enhancements

hybrid iris
#

i see

lethal stratus
#

fair

hybrid iris
#

fair point

#

you could maybe regurgitate the midas mask code or something but yeah fair

lethal stratus
#

wait allison + rough gem is just Tori

zealous glen
#

I mean if you want to convert Enhancements that's easy too

#

It's only doing multiple simultaneously that's tricky

#

If you just want to replicate the effect, sure

#

If you want it to be both, then it's doesn't work by default, and it won't work with other mods

hybrid iris
#

this feels pedantic

zealous glen
# lethal stratus

Cycle Reset could probably be Common IMO. I made a similar Joker which was Common

zealous glen
#

If I say "sure it's easy" and they want to make it count as both, then they'll later think I lied or was wrong

hybrid iris
#

i mean fair

#

but like its also kind of weird how you phrase it

#

whatevs, i concede

zealous glen
# lethal stratus

Emission I think could be Common too. Eri might be too strong of a Legendary, but it's also very niche. Jade seems to be doing too much with both effects; I'd keep one, or move it to Rare—and even then probably nerf the Chips as well

zealous glen
# lethal stratus

I'm not sure if I interpreted Movator correctly, but it seems insanely broken

lethal stratus
#

only per round

#

each hand gets +5 more mult

zealous glen
#

Okay then it doesn't sound too bad

zealous glen
# lethal stratus

My issue with Obama is that both sides of the effect impact scoring

#

I designed a few similar Jokers but I tried to make them impact different things

lethal stratus
#

its also a meme joker so idrc lol

zealous glen
#

Like Champion's Belt

#

I also made The Champion, which grants $9 per Round but makes the Blind requirement bigger

zealous glen
# lethal stratus

Plain Rice is interesting, except you already don't want to add cards to your deck, so punishing it seems pointless. Booster Packs in general, a bit more interesting I guess, but not so much

#

Storyteller is interesting, because it can be very strong, but circunstantial. The best target is probably Blueprint which is a bit boring

shell tangle
lethal stratus
#

^

zealous glen
#

Tsuki is maybe too weak of a Legendary

zealous glen
#

Maybe tweak the numbers

shell tangle
zealous glen
#

It's also very weak lol

#

I was so concerned about the design I didn't even evaluate the numbers

lethal stratus
#

which card?

shell tangle
#

Probably obama.

zealous glen
#

This might be outdated but it sounds like a good place to start. There's some unnecessary stuff or bad practices here as it was my first mod

#

@true jasper I accidentally changed channels when replying to my own message

true jasper
#

how to do make a joker have a picture

shell tangle
tidal edge
#

hey; is there something in steamodded that checks if your playing a certain deck

maiden phoenix
crisp coral
#

no way

#

🪟 🏳️‍⚧️

crisp coral
#

does the ui engine let you overlap nodes like this? (mspaint rendition)

#

(G.UIT.R nodes with G.UIT.T on top of an G.UIT.O node)

wintry solar
#

I think as long as they have different roots it should be okay

crisp coral
#

ah