#💻・modding-dev

1 messages · Page 231 of 1

tall tangle
#

🗣️ GET OUT

manic rune
#

get_id()

#

:3

#

im autofilling for you

timid star
#

how do i force a blind reroll...

#

i need my comsumable to reroll the boss blind

manic rune
#

uh

#

check how that Boss Reroll button works

#

-# i think debugplus has it too

timid star
iron iron
#

im trying to make a joker that turns 4s into an enhancement in my mod, this dont work

#

should i be having the for k, v in pairs thing

manic rune
#

i think its the context thats wrong

#

can you try putting a print() in there to see if it even runs

#

also, i suggest using

if context.before and context.cardarea == G.play and not context.blueprint and run for i,v in ipairs(G.play.cards) instead

plain apex
#

is there a shop rate for specific consumable cards like how theres weight = for the packs? i've made all 4 of these and would like to make them difficult to find as they provide huge deck fixing

manic rune
#

pretty sure ther eis

plain apex
#

is it just a weight = because i had a weight = 0, in there and still managed to find them in the shop while trying to figure this out

manic rune
#

useful :3

plain apex
#

think it might be rarity = for that or i just got unlucky while trying to test this?

quasi comet
#

having some trouble with stickers, tried to put the keys of different stickers into compat_exceptions and it just doesn't exclude them?

manic rune
chrome widget
royal ridge
#

probably quite good if you get it early enough

plush cove
#

so I have a Joker where 10s, Jacks and Queens can be followed by an Ace to complete a straight

and the program works fine, but I am wondering: did I code it in a way that would fuck something else up compatibility-wise?

#

i don't think so but I would like some reassurance

royal ridge
#

ankh -> sell one copy

iron iron
royal ridge
#

it's only queens

#

who's to say you even have support for card xmult by the time you pick it up

iron iron
#

that doesnt mean its bad

iron iron
#

and is still very good

royal ridge
#

yeah? the thing is with yorick you almost always can discard

iron iron
#

you only need 20 rerolls (not a lot) to reach trib level power

royal ridge
iron iron
#

no one goes for full houses with trib

royal ridge
#

maybe in white stake you could get away with doing exactly what you want

iron iron
#

but the fact this is rare is insane

#

this being only for queens doesnt mean its bad

#

wee is only for 2s

#

and is a very good joker

royal ridge
#

and trib doesn't require any rerolls and works on more cards

#

i think that's a very large increase in power

zenith coyote
#

Oh hey Toneblock :D

iron iron
#

you only need 20 rerolls to match the trib power

#

thats not a lot if you have good econ

iron iron
#

you dont really go out of your way to do it

royal ridge
zenith coyote
#

I'll ask a question so you can look smart now

royal ridge
zenith coyote
#

Soo I'm starting out with modding. Is there a list or something, that explains how many and what kinds of contexts exist?

#

steammodded lovely

royal ridge
#

is this an overpowered joker simply because it allows you to use that economy to get yourself a scaling trib?

#

maybe?

chrome widget
#

Yep, the SMODS docs have them!!

zenith coyote
#

Alr thanks balatroheart

chrome widget
zenith coyote
#

Cat..

zenith coyote
#

...Again

tall tangle
#

Whenever @wintry solar is in chat, PLEASE rework Celadon Clubs. Using Royal Deck against it is a near-guaranteed softlock.

If it just didn't allow hands with the "disabled" card, that would still allow me to discard through my deck to find usable cards.
Straight up making the cards unselectable when it's a "type" that is LITERALLY MY ENTIRE DECK except for one or two stone cards (which did not get drawn to hand at start of round), it's... Upsetting. And completely impossible to play against.

royal ridge
#

just remember about ease_hands_played(1)

zenith coyote
#

ease_hands_played?

royal ridge
#

you're gonna need it most likely

chrome widget
#

Anyway I appreciated the spirited discussion on the balance on the joker I guess?

zenith coyote
#

Oo balance discussion :o

#

Lemme backread

royal ridge
#

i coulda entered a bit more respectfully

tall wharf
#

chat

#

i added this mechanic to my mod

royal ridge
tall wharf
#

so i added half the ascii specs to my cards

#

the current problem is that

#

should you be able make a better scoring hands if cards are all the same cases

#

omg celeste card collection

royal ridge
tall wharf
#

or at least

#

first letter being capitalized

zenith coyote
tall wharf
#

it's gonna introduce a shitton of hands to the mix

#

which might be problematic later

#

but EH

royal ridge
#

ending with ? randomises mult a little, ending with ! multiplies mult, ending with . adds some flat mult

#

:peacelineatthephone:

tall wharf
#

mmmm

#

that sounds good actually

#

do i call those punctuations

zenith coyote
lavish lake
tall wharf
#

and you get chips based on the status code of that website

#

i mean 600 - status code

lavish lake
royal ridge
#

smods https 🙏

tall wharf
#

how does the idea sound

royal ridge
#

good but i'd think specific status codes giving more/less seems more interesting for the meta

tall wharf
#

the 600 - something encourages people to send a request to a real web server

royal ridge
#

ye that part is good

#

but you could also have teapot

tall wharf
#

ah

#

i mean

#

sure i guess

#

i mean i might just have to list things

#

maybe there should be a joker that checks it

royal ridge
#

idk how you would trigger some status codes though tbh

tall wharf
#

Curled Hair Joker

  • If hand is a Website, send a request and apply the effect depending on the status code.
zenith coyote
#

If the status code is divisible by 2, add x chips
If the status code is divisible by 3, add x mult
If the status code is divisible by 5, gain $x

tall wharf
#

i was thinking curly fries

#

but that's a food

zenith coyote
#

Poisoned Curly Fries

#

Problem solved

tall wharf
#

cURL

orchid scaffold
#

what is the joker key for the default jokers in balatro

#

not the modded ones?

plush cove
#

j_

tall wharf
#

j_joker

#

for jonkler

orchid scaffold
#

why when i try doing j_triboulet it doesnt show up in my challenge

plush cove
#

j_triboulet

tall wharf
#

are you sure you banned the correct type

#

aikoyori's favourite challenge

#

banning chicot

orchid scaffold
#

oh im an idiot i did key=j_triboulet isteand of id=j_triboulet

#

nope still didnt work

royal ridge
#

make sure it's a string

#

(it probably is)

tall wharf
#

this should be a common because websites are not an easy hand to make I'm pretty sure

#

it's based on niche situation when

  • letters are enabled
  • you have the period
  • you can select that many cards in hand
  • hand size
primal robin
#

localhost: Trolge

tall wharf
#

you'll still need 9 hand size

tall wharf
primal robin
#

127.0.0.1

tall wharf
#

I just check for the dot and valid tld

#

the internet deck

zenith coyote
#

Can't seem to find it, if that exists

royal ridge
#

check for G.GAME.blind.in_blind

iron iron
#

print command prints nothing

scenic horizon
#

How do I check for seals and editions on a card? I just need something that returns true if a card has at least one of those things

simple mural
royal ridge
#

generally related to the current run

wintry solar
royal ridge
#

wait that boss prevents cards from being selected?? 😭

tall wharf
#

😭

#

crazy boss

royal ridge
#

who needs cruelblinds when you got "The Softlock"

rose dragon
#

new blind idea:
losing to it posts your long/lat in #📢・announcements
i think it would be pretty cool actually
X200 base blind size

gilded blaze
#

everything works but remove 😭

hard flume
#

Good morning chat

gilded blaze
#

I'm dying DEAD

#

this whole unexpected behavior is not debuggable

rose dragon
gilded blaze
#

all the contexts are correct, all stuff works normally

#

all, even message, but remove

hushed field
#

I'd try context.destroying_card

gilded blaze
#

same outcome

hushed field
#

any hooks or patches that you've made that change destruction behaviour?

gilded blaze
#

nope

#

this piece of code is copy-pasted from Weeormhole deck to its sleeve

#

and somehow

#

Weeormhole deck works, but Weeormhole sleeve is only missing the remove

hushed field
#

are you sure it's the same outcome, btw? From what I know, destroy_card doesn't behave properly (I think it might not be in SMODS anymore? Though I'm sure I'm wrong on that)

#

no wait, I'm wrong, there's more going on there

#

ignore me, I'm misremembering, my own code does use destroy_card sometimes and works

gilded blaze
#

destroy_card still works

#

like I said, code is copy-pasted from deck to sleeve

tall wharf
#

Porcelain Plague

  • All Cards debuffed until you play the one sole cards in your deck that isn't
#

am I cooking

hushed field
#

yeah, no you're entirely right, I was majorly confusing some stuff and just puking out wrong info, haha. I'd delete the messages if it didn't make you look crazy 😛

gilded blaze
hard flume
#

Friend made this for me

hushed field
#

so the message triggers but the destroy effect doesn't 🤔 Looking at the SMODS function that handle that, I don't quickly see why this wouldn't work. I'd save the issue and see if Eremel or Aure have some insights 😬

tall wharf
royal ridge
tall wharf
gilded blaze
hushed field
#

btw, is there a proper SMODS way to change card create behaviour of vanilla packs? Or do I just patch it?

frosty dock
#

... huh

hard flume
frosty dock
#

might be some jank with the way card sleeves hijack the back eval then?

tall wharf
hushed field
frosty dock
hushed field
#

Are there any other mods that are sleeve compat that have destroy effects on their decks? Maybe they have a work around already

frosty dock
#

there's take_ownership_by_kind to e.g. modify all arcana packs or whatever

hushed field
#

That does add my mod badge to them, doesn't it?

gilded blaze
#

you can disable that

#

I use take_ownership("Splash") in Tsaunami deck/sleeve

hard flume
hushed field
#

Ah okay, great. That'll do it then! Thanks 😄

tall wharf
hard flume
#

Tbf. Estrogen could be classified as a long name. As I said my friend made it for me, so im not gonna change it without their permission

tall wharf
#

it's not as long as incantation is it

hard flume
#

Fair, but still. My 2nd point stands

hushed field
#

8 letters is about the max I can make work with thick font, and that does get dependent on the letters, because the N, W, and M are wide as hell compared to the others

#

It's a cute art gift you got, Carrot ☺️

hard flume
#

It'd be mean to discard it or change it when my friend made it for me, so I'm gonna use it even if it's not perfect

tall wharf
tall wharf
#

you can do whatever you want I'm just doing my nitpicky thing

#

don't worry about it if you don't wanna change

hard flume
#

That's fair, then

tall wharf
tall wharf
hard flume
#

Fair enough

formal parrot
#

Hello

tall wharf
#

i love miku

zealous glen
#

But it’d be secret

tall wharf
#

if you play this secret card all your hands are debuffed?

zealous glen
#

No it just debuffs the hand it’s in

#

Like Psychic

tall wharf
#

oh ok

zealous glen
#

Anyways that was the raw concept

#

Idk if I like it

hushed field
#

I have a joker like that, which sets your scored chips back to 0 when you play that sole card

verbal wyvern
#

Hey can someone help me with something real quick?

#

Im trying to get a joker to give x2 mult when a steel card is scored but im having a hard time with the enhancement check

#
         if context.individual and context.cardarea == G.play then
            if SMODS.has_enhancement(card, "m_steel") then
        
             return {
                card = card,
                Xmult_mod = card.ability.extra.Xmult,
                message = 'X' .. card.ability.extra.Xmult,
                colour = G.C.MULT
                }
            end
        end
    end
}
#

This is what I have rn

hushed field
#

card is the joker

#

you wanna check context.other_card

verbal wyvern
#

😭

#

context.other_card instead of cardarea right?

hushed field
#

no, cardarea is fine

#

SMODS.has_enhancement(context.other_card, "m_steel") is what you wanna use

verbal wyvern
#

OH

#

Thank you very much

#

I knew it was gonna be smth like that

#

Works perfectly now

quartz ravine
#

Ohhh, does Steammodded work on Mac as well? I saw it supports linux systems!

frosty dock
#

yes

quartz ravine
#

Sweet

frosty dock
#

<@&1133519078540185692>

grand violet
#

🔫

frosty dock
#

ty egg

lofty copper
#

hey i'm getting crashes whenever i try to cash out, while running talisman and saturn

frosty dock
#

is your talisman number limit set to vanilla?

#

it's a know issue that talisman is broken when on that setting

lofty copper
#

i have it on omeganum because i'm doing a deep endless run

#

wait vanilla is broken?

formal parrot
#

Heyy

frosty dock
#

probably saturn/smods incompat then

lofty copper
#

do i need a different version of smods then? or is there nothing i can do

median fern
#

I am trying to use SMODS.https and

hard flume
#

Do I have to do anything special for my tarot card to show up in boosters?

frosty dock
hard flume
#

Cool cool

lofty copper
#

seems like if you have both the "disable animations" on from saturn it always crashes at cash out, but if you use talisman's its fine. slightly annoying because talisman doesn't truly skip all animations, and is slower than saturn but oh well

surreal marsh
#

how do i patch a smod file? I found this reply "it doesn't rely on any mod folder name
'=[SMODS _ "src/utils.lua"]', '=[SMODS modid "path/to/file.lua"]'" but can't understand

tardy wind
surreal marsh
#

i mean lovely patch

frosty dock
#

target = '=[SMODS _ "src/utils.lua"]'

formal parrot
frosty dock
#

aure*

surreal marsh
hushed field
#

john aura is what the rizzler evolves into at level 21

zealous glen
#

Recently I learned that the rizzler is a person and not a Platonic ideal

hushed field
#

one can be both

zealous glen
#

I think Plato disagrees

hushed field
#

that's true, but he didn't know about the rizzler

manic rune
#

does it take a ss of my screen

zealous glen
hushed field
hushed field
zealous glen
#

What’s a sci-fi card

#

is star wars a sci-fi card or a sci-fantasy card balatrojoker

hushed field
#

a card enhancement that gives 5 chips and 1 mult for every time it's been upgraded, and gets upgraded when it's scored

#

star wars is a joker, so it's neither, though it's of the Sci-fi Genre

hushed field
primal shoal
#

does anyone know what the weight of the base booster packs in the game are?

hushed field
#

but because I'm spawning legendaries under weird circumstances, I do want it to be fun enough for the effort to be worth it

zealous glen
latent portal
#

Hey guys, does this concept sound cool?

Curses
A new type of upgrade that's more easily obtainable, giving an upside and a downside.

Example:
Curse of Jimbo
+10 Chips for every scoring card played
Jimbo now randomly appears and says a quip every so often

hushed field
hushed field
hushed field
#

fantasy. Remotes are real technology, and the magical powers were given to it by an angel

#

also I fucking hate click

zealous glen
zealous glen
hushed field
hushed field
#

nah i know people like it, sander comedies just rarely are my thing, haha

zealous glen
#

I cried at the end

zealous glen
hushed field
#

a quote from an author who clearly never read fantasy ❤️ (i know it's not said in that context but people miscite clarke about it all the time)

#

you're about to put me in rant mode as I start going into my very strong opinions on genre 😛

zealous glen
#

-# I’ll leave and go back to work balatrojoker

hushed field
#

hahaha

#

i've been goofing here while i should be finishing up a client's assigment so i should definitely not rant honestly

dense vector
#

Oh and btw I don't think I have ever watched a movie with Adam Sandler in it

lyric wadi
#

dont

zealous glen
lyric wadi
#

keep it that way

hushed field
#

He's in some great ones. I like Punch Drunk Love and Uncut Gems, as the basic 'i don't like Sandler but...' picks

zealous glen
hushed field
zealous glen
#

It’s not related to Adam Sandler

hushed field
#

no i was gonna say, that's a Wayans brothers movie, right?

zealous glen
#

It’s just an example of a “bad movie” that’s popular (in Brazil)

#

For some reason

hushed field
#

I do have a hole list of Sandler movies to add to Kino, just because they're well known and good for the synergy system, but I'm hoping I can concept some effects for those jokers without needing to watch a bunch of them for ideas, haha

zealous glen
#

hole

hard flume
#

Why do I want to make Yume Nikki cards

dense vector
#

I know it's a meme to make a parody out of that poster

hushed field
#

i'll leave that in, that feels like sandler'd enjoy that typo

zealous glen
zealous glen
hard flume
hushed field
#

that's my understanding as well, yeah. which seems admirable to me, haha

hard flume
#

I'll add Effects as unique consumables

zealous glen
#

My brain can only remember one actor at a time

#

Isn’t Nicholas Cage the same?

#

Minus the friends part

hard flume
#

I still want to add cooking to my Balatro mod. But that's for the future

hushed field
#

no, Nick Cage does movies to pay off his massive debts for castles

hushed field
zealous glen
hushed field
#

After playing Dredge I was playing around with adding fishing

zealous glen
#

Balatro but with crafting

hard flume
#

I mean I do plan on adding Potion Brewing

zealous glen
#

I did have an idea for a Joker like that

hushed field
#

Kino's spellcasting was going to work more like a crafting system before I felt like it was too much of a hat on a hat

hard flume
zealous glen
#

@hushed field unrelated do you know Chespirito

zealous glen
hard flume
#

POC?

zealous glen
#

Proof-of-concept

hard flume
#

Oh

zealous glen
#

Well someone added a button that brought up the farming CardArea when clicked

hard flume
#

Cool cool

#

I'm going to work on the Yume Nikki Cards

hushed field
zealous glen
latent portal
#

hey quick question because i forgot

#

how do i make a card give you money

zealous glen
#

Return dollars = … in the table

hard flume
#

Honestly I don't know why I decided to add Women as a Suit into Balatro. I thought it would be funny, but now I'm just confused why I decided to add it

#

Gonna keep it in

#

But still

frosty dock
latent portal
dire palm
#

I've officially released my Joker Pack. Where can I share it?

faint yacht
frosty dock
#

🐌

dire palm
#

Okay. 👌

frosty dock
#

WHY AM I BEING 🍞 ED

#

icl that's not even real bread

latent portal
#
SMODS.Consumable{
    key = "jimbjoke",
    set = "JimboCards",
    loc_txt = {
        name = "Joke",
        text = {
            "Does nothing.",
            "{}",
            "Sorry!"
        }
    },
    atlas = "jimboatlas",
    pos = {x = 0, y = 0},
    cost = 1,
    calculate = function(self, card, context)
        return {
            message = "Nothing."
        }
    end,
    can_use = function(self, card)
        return true
    end
}```
im trying to display a message when the consumable is used but its not doing anything
frosty dock
#

if anything that would display nothing a LOT of times

#

pretty much when anything happens

latent portal
#

how would i do it properly?

frosty dock
#

using is a separate use function usually, but that doesn't support calculate returns

frosty dock
#

i can't recall if you can do if context.using_consumeable and context.consumeable == card then

tardy wind
#

calculate cant be called on consumables by default

#

and use doesnt have context

tardy wind
#

I guess it can be called if the card stays in the cardarea

hard flume
#

Hmm... For my Yume Nikki Booster, do I call it the Veranda Booster or the Nexus Booster?

latent portal
#

so how do i do it

tardy wind
#

I personnally made a giant lovely patch to the evaluate_play function so that I can call effects from my consumeables when used, I have to figure out text but it works

#

(unless I make negative jokers of said consumeable which would also work)

hushed field
#

to return a message, you could just card_eval_status_text where you'd otherwise return, right?

tardy wind
#

not on consumeables

#

since calculate isnt called

hushed field
#

card_eval_status_text is entirely separate from the calc function, is it not? or am I just misunderstanding the way that gets triggered?

tardy wind
#

its not separate

#

but it is used to display text from a card, said text will be displayed under/over a card depending on the cardarea

wintry solar
#

you can just throw a SMODS.calculate_effect anywhere that doesn't support calc returns

rain slate
#

where do I find the current score and the score requirement

tardy wind
rain slate
#

I'll see if that works

tardy wind
hushed field
#

I just tested it, it does exactly what you'd expect it to do

wintry solar
#

yeah calc_effect can be done whenever you want

latent portal
#

What do I put in the args for SMODS.calculate_effect?

wintry solar
#

no

#

not at all

latent portal
#

oh

#

then uh

#

what do i do

wintry solar
#

what are you trying to do

latent portal
#

when used:

  • displays "Nothing".
#

that's it.

rain slate
#

where in the source files can you find the implementations of the vanilla cards?

wintry solar
#

take the table from your return and put it inside calc_Effect

modern kindle
rain slate
latent portal
#

like this?

lyric wadi
#

what context do i use to make a joker run some code once at the beginning of the run

#

kind of like an init kinda thingy

tardy wind
hushed field
tardy wind
#

damn alirhgt

#

good to know

hushed field
#

i use it on custom planets to have them display a relevant quote when they're being used

modern kindle
#

good morning fine chatters

hushed field
#

but i wasn't sure if i actually just used that func for it, haha

modern kindle
#

i realized i didnt give a proper greeting

hushed field
exotic island
modern kindle
#

anyway today i finally resume not lazing about and doing more shit

lyric wadi
#

ok so

#

how would i go about doing either of those options

#

and if there is a place i can yoink code look at an example, which one would you recommend

frosty dock
latent portal
#

ok so this doesnt work

latent portal
#

i get it now

#

if i use this, do i even still need the calculate table?

wintry solar
#

no

lyric wadi
#

or i guess i could do some jank bodge solution with like

wintry swallow
lyric wadi
#

under add_to_deck or blind_start init a flag and then set the flag to false

#

so it only runs once

#

idk

#

actually add_to_deck would work

modern kindle
lyric wadi
#

though the downside is that all the values will not be initialised before you pick it up and therefore cannot be shown

#

but also

#

do copies of the same jokers share vars

dire palm
lyric wadi
#

cuz like i kinda dont want them to

#

oh well

quartz ravine
#

Now I have the hardest part of modding, coming up with a name!

hushed field
#

have you considered naming it after a spectral card?

quartz ravine
#

Like for the Mod overall. I was going to call it Pawlatro but saw that someone else already has that name 😦 😦

#

I could go for FoxDeploy Jokers, just straight up naming. Or Menagerie, since it's all about animals. Or Animal Endgame pack, since it's focused on end game jokers for more options than steel + mime + baron

latent portal
#

I just named my mod Cherry's Balatro Mod.

quartz ravine
#

lol!

#

Genius

dense vector
#

I am so good

modern kindle
#

i went simple with mine, just called it Dilatro

tardy wind
#

names ?

hushed field
#

I named mine in a way that only tells you what it's about if you're on specific subreddits, or I guess watch a lot of Northernlion, haha. Which... in hindsight's not a great choice

manic rune
lyric wadi
#

question chat

manic rune
#

is this balanced :3

lyric wadi
#

can you use code to edit the description in loc_txt

manic rune
#

yes

lyric wadi
#

shit

manic rune
#

you probably need to use generate_ui to generate your own descriptions in that case though

hushed field
# manic rune

yeah seems fine, if the score's on fire too long it'll burn down anyway

manic rune
#

i also didnt account for relic sets too

exotic island
manic rune
#

that will uh, definitely significantly make her stronger than that

#

:3 balancing my mod is painful

hushed field
#

it's gacha inspired, no balance is the way to go

lyric wadi
#

god is this idea too ambitious

turbid maple
manic rune
#

i learned generate_ui from that mod

#

:3

lyric wadi
#

ordo i resort to the bodgey solution that uses like 29 vars

zealous glen
turbid maple
#

youd have to figure out how its stored though it does some parsing

#

or could you not just have multiple localization texts and switch between them you can override the key iirc

quartz ravine
#

I do have some fun animal names.... Fickle Fox is one I like. Or Incremental Hermie, Benevolence.... Interesting

zealous glen
hard flume
#

I'm naming my mod Carrot Field

#

Cuz it's my field I put my random ideas in

onyx sonnet
#

Could someone please explain why this doesnt work? i have prints for both checks and neither of them go through

lyric wadi
# zealous glen What are you trying to do

bingo joker

it generates a bingo board where each cell is a playing card (rank & suit, e.g. 7balatroheart or Qbalatroclub )
whenever a playing card is scored, it's daubed on the board
joker gives X2 Mult per completed lines

exotic island
lyric wadi
#

definitely out of my league but it feels like i can do this, somehow

onyx sonnet
#

do you need to edit loc text for that, i feel like editing the loc vars would be wiser

hushed field
lyric wadi
#

see my shitty original idea is to just have 25 vars in the description that i set accordingly with a loop

#

like #1# #2# #3# #4# #5# and so on

#

and i would be able to work with that

hushed field
#

if you wanna really make that pop, you definitely want to get into generate_ui. But you can definitely do that without it

onyx sonnet
lyric wadi
#

but also that's a lot of vars and i feel like i can do better

zealous glen
quartz ravine
manic rune
hushed field
#

I have some jokers that are quest or codex jokers, that randomly generate multiple variables that they display, and that's all just done through passing on into loc_vars. Even the icons technically wouldn't need generate_ui, i think, because you can just pass a sprite object, the same way you can pass on a dynatext one

manic rune
#

💔

lyric wadi
#

the main obstacle is how to present the board

onyx sonnet
manic rune
#

if only there was documentation on that

#

or just a mod which actually uses it 💔

zealous glen
onyx sonnet
lyric wadi
#

i think i can do the actual bingo logic

#

like i have an idea of how i will implement that

#

it's just the description

hushed field
zealous glen
hushed field
#

I'm not able to name the mod because I've only played with it in Dimserene, haha

manic rune
#

should this only choose from a pool of suits and ranks that your deck has

#

or do i make it much more painful to actually fully utilize her effects :3

hushed field
#

Nah, at that strength it's fine if it doesn't. Otherwise that joker's a very deck-fixing focused one

manic rune
#

im nerfing her 😭

hushed field
manic rune
#

random ranks in deck, but random suit (can be diamonds even if your deck doesnt have it) then?

tardy wind
#

yes

quartz ravine
lyric wadi
tardy wind
#

wait no

#

the other way around

#

suit has to be in deck

hushed field
#

i think balancing wise, that's the best option, but it may feel a bit weird if it's not consistent between the two

quartz ravine
#

Oh god this mac is so nice but wow do I hate this operating system.

zealous glen
manic rune
#

-# what do you mean by that

hushed field
zealous glen
lyric wadi
#

ag

manic rune
#

oh, so you mean the color of the "Spades"?

zealous glen
zealous glen
#

I mean the text

manic rune
#

its randomized

zealous glen
#

But you can display the actual value

zealous glen
#

Like the game does

manic rune
zealous glen
manic rune
zealous glen
manic rune
#

ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

#

yeah, got it

tall apex
manic rune
#

should it be, uh

"Hearts cards" or wat

onyx sonnet
#

Hearts, Clubs, Spades, etc etc

manic rune
#

yeah, i know, but

#

how do i say "if the card is that suit"

zealous glen
manic rune
#

"Played Clubs cards give X1.2 Mult"?

onyx sonnet
#

If scored card is "insert suit here"

onyx sonnet
#

Or that yeah

lyric wadi
#

is it tower into sky

zealous glen
tall apex
zealous glen
tall apex
onyx sonnet
#

Nah, ingame doesnt have that wording iirc

exotic island
#

im gonna make a malverk mod that replaces every single heart in the game with an Amogus

lyric wadi
#

i must be blind then

manic rune
#

oh, its "Played cards with Hearts suit"

lyric wadi
#

i cannot see it

#

in the repo

onyx sonnet
#

oh nevermind

#

its inconsistent as hell

quartz ravine
#

Maybe i am dumb but I write it here then convert later to work with pipping in to dissolve mask. unfortunately couldn't find a good way to iterate on brand new shaders better than this

manic rune
#

basing it on this

tall apex
manic rune
#

oh shit, it doesnt have the "s" at the end of the suit name

#

uh

lyric wadi
#

where 😭

onyx sonnet
quartz ravine
#

you need to not use suits_singular to get plurals. I had the same problem

manic rune
#

quick fix ❤️

zealous glen
#

It was in the alpha branch

lyric wadi
#

not so blind now am i

tall apex
#

Fine then, small blind

zealous glen
lyric wadi
#

but also wtf

#

how do i read

quartz ravine
#

I use that on my main PC, but haven't set it up here on my laptop yet. Mostly due to being a luddite and hating macOs

manic rune
#

how do i uhhh, change the color of this to the color of the suit

onyx sonnet
#

@quartz ravine
logInfoMessage("Im reading enhancements!", "scope") is this correct?

quartz ravine
#

It is AMAZING for debugging shaders!

zealous glen
#

See Castle

quartz ravine
onyx sonnet
#

oh so i add the joker key to it?

manic rune
#

mmm

exotic island
#

lads i have an idea

onyx sonnet
#

Castle stores the color in its extra vars

zealous glen
exotic island
#

what if i make the invisible joker look like that one MGS meme

quartz ravine
#

the value in Suits should be like 'Clubs', or 'hearts', or whatever

manic rune
quartz ravine
manic rune
#

how do i use {V:1} thingy

zealous glen
manic rune
#

if i put this in my loc_vars

#

then uh, it should change color to the suit color

#

if i put {V:1} right?

quartz ravine
#

Here is how I do a complex example of it

quartz ravine
# manic rune if i put this in my loc_vars
loc_vars = function(self, info_queue, card)
            card.ability.polarity = getPolarity()
            card.ability.polarityStr = card.ability.polarity[1] .. " and " .. card.ability.polarity[2]
            local color1 = G.C.SUITS[card.ability.polarity[1]]
            local color2 = G.C.SUITS[card.ability.polarity[2]]
            local suit1 = localize(card.ability.polarity[1], 'suits_singular')
            local suit2 = localize(card.ability.polarity[2], 'suits_singular')
            sendInfoMessage(
                "suit1 is " .. suit1 .. "and suit2 is " .. suit2,
                self.key)

            inspect(color1)
            inspect(color2)

            return { vars = { suit1, suit2, colours = { color1, color2 } } }
#

Look at the return statement for most of what you need, then here is how the token replacement works

"{C:inactive}(Currently rewarding {V:1}#1#{} and {V:2}#2#{}"
zealous glen
#

If it’s handled at Lua level it seems easier to write

manic rune
#

yeah i got it working, thanks :D

quartz ravine
#

That's a good question and I do not know if you could do it outside of the shader pipeline as it is today without like a ton of work.

I am doing in the shader only and just tweaking the math so I always make my particles in the same place, since the particles aren't real, they're just math derived.

quartz ravine
# manic rune

Ohhhhhhhh will you have like an Eva unit 01 Joker. Or like a Gendo joker with reflective glasses?!

#

g2g bye

manic rune
#

its not a reference to that anime 😭

#

i hate my fucking life

sterile knoll
#

Does anyone know of a reliable way to get the jokers to juice up when it gives an individual playing card chip/mult/xmult/etc??

e.g. Lusty Joker juices when the +3 is added when the card is scored, however with my custom jokers i just get the message on the playing card but the custom jokers dont juice.

I've been trying to do this using events but the timing is not correct (usually juices when the cards default chips are added, not when the joker effect occurs)

onyx sonnet
#

mine juices automatically as should most returns that include chips mult xmult dollars etc

frosty dock
onyx sonnet
#

oh hi aure, can i fetch you for something

#

i might just be stupid but i havent found any documentation regarding quantum enhancements

sterile knoll
frosty dock
#

that's like what

#

2 weeks behind

#

should be fine but you should update

#

show your code

sterile knoll
frosty dock
#

yeah that's self-induced

gilded narwhal
#

i wonder when we're getting 1.0.0 beta

frosty dock
#

card = context.other_card removes the juice

sterile knoll
#

is it the card return?

frosty dock
sterile knoll
#

aaaa got it, thanks

onyx sonnet
#

yeah the card return is unnecessary

gilded narwhal
frosty dock
manic rune
#

john john, why is it that when my joker is retriggered, this still runs

frosty dock
manic rune
#

;3

#

ah, i see

frosty dock
#

i wanna say it wasn't me, but it was balatrojoker

manic rune
#

i feel like im the only person posting stuff relating to retriggering jokers rn ❤️

verbal wyvern
#

Does the SMODS.has_enhancement work for custom enhancements? And how would I get it to check for such

onyx sonnet
manic rune
#

i think im tripping

verbal wyvern
#

Do I just put my SMODS.Enhancement key where id normally put “m_steel” etc

manic rune
#

why did 9 of spades return the id of 8

onyx sonnet
#

SMODS.has_enhancement(card, key): Returns true if the given card has the specified enhancement, either as its natural enhancement or an extra enhancement from jokers. from wiki

manic rune
#

😭

frosty dock
#

why are retriggers on repetitions so weird

onyx sonnet
#

aure please i beg of you where can i find any explanation of how quantum enhancements work

manic rune
#

eremel is working on documenting everything

#

:3

#

maybe ask them instead

onyx sonnet
#

Ah

#

Well if they're working on it its probably best to not bother them about it

#

I will ask if i see them in chat later tho

manic rune
#

they did already document quantum enhancements

#

from the picture of their uhhh checklist
-# i dont know the word for that lmfao

frosty dock
#

the jist of it is this

#

you can use context.check_enhancement and return a table where the keys are the enhancements you want to apply

manic rune
frosty dock
#
if context.check_enhancement and context.other_card.config.center.key == 'm_gold' then
  return { m_steel = true }
end

for example this makes all (physically) gold cards act as steel cards too

onyx sonnet
frosty dock
#

what's context.G.play supposed to do

manic rune
#

they probably only want the played cards to be affected

onyx sonnet
#

so it only checks the scored cards, i dont want held cards to be affected

#

or well

#

played

frosty dock
#

does it matter

#

held lucky cards don't do anything

manic rune
#

unless there are some mods which make them do something

#

:3

onyx sonnet
#

fair

frosty dock
#

anyways there is no cardarea passed

onyx sonnet
frosty dock
#

you can check the area on the card itself but i doubt that works correctly

#

there's a different issue though

manic rune
#

maybe run a loop through G.play.cards, and just check if the card is in there?

#

i dunno

frosty dock
manic rune
#

oh i see

frosty dock
#

but as i said, i doubt that works correctly

frosty dock
onyx sonnet
#

it infact doesnt

onyx sonnet
frosty dock
#

you cannot use it

onyx sonnet
#

i see

frosty dock
#

why? because get_id needs to know if the card is a stone card

#

and to do that, it checks for quantum enhancements

#

this isn't ideal as it doesn't allow for more complex interactions, maybe there will be some kind of system in the future that can handle that better

#

for now all you can do is check the base ID

#

i guess you can also check if it isn't physically a stone card on top of that

strong jacinth
#
create_chemical_overlay = function()
    G.FUNCS.overlay_menu({
        definition = create_UIBox_generic_options({
            back_colour = G.C.ELD.BACK,
            contents = {
                {
                    n = G.UIT.R,
                    nodes = {
                        create_tabs({
                            snap_to_nav = true,
                            colour = G.C.ELD.BACK,
                            tabs = {
                                {
                                    label = localize("k_eld_combine"),
                                    chosen = true,
                                    tab_definition_function = combine_tab_function
                                },
                                {
                                    label = localize("k_eld_inventory"),
                                    chosen = false,
                                    tab_definition_function = combine_tab_function
                                },
                                {
                                    label = localize("k_eld_exchange"),
                                    chosen = false,
                                    tab_definition_function = combine_tab_function
                                },
                            }
                        })
                    }
                }
            }
        })
    })
end
#

And this is the code responsible

manic rune
#

combine

strong jacinth
#

What?

onyx sonnet
manic rune
#

combine :3

strong jacinth
#

Combine 👍

maiden river
#

is there a function used to get the localized versions of messages for cards? wasn't it called localize

manic rune
#

yeah

maiden river
#

okay
it's not in the localization part of the wiki, from what I saw

robust bison
#

I'm just getting into balatro modding and lua in general, where's a good place to look to get a good understanding of how the UI works? other than the wiki are there any mods that would be good to look at to see how others do things?

strong jacinth
#

Depends, the wiki is usually the best place.

#

Like what spesifically

quartz ravine
quartz ravine
hushed field
#

N also writes incredibly readable code for how complex his systems are, so it's a good one to learn from!

maiden river
hushed field
#

My localization file has every single piece of localization in Kino, if you wanna take a look at how that's structured

maiden river
#

thanks!

robust bison
# strong jacinth Like what spesifically

I was reading through the wiki's UI section and I think I understand the node structure, I'm just confused on actually using it. I might just need to look at the game's source more to understand how it works, but I wasn't sure what the best practice was for modifying the vanilla UI to not mess with other people's mods that do the same

robust bison
weak brook
#

ok im having a bit of trouble figuring out the best way to go about implementing this joker idea

#

so the concept is that it copies the ability of random jokers that can currently be generated with the same type of code as judgement. its appearance does not change (at least for now), but its ability does and its description changes to match

#

trying to figure out how to implement this is tricky though. i know how to make a joker display another joker's description, that just needs a key, but the loc_vars provide an issue. how can i make that work with loc_vars?

hushed field
weak brook
#

right now im just trying to get the description changing down, then i'll figure out how to copy abilities

lyric wadi
#

okay chat

#

im sorry to sound like a whiny bitch

weak brook
#

im thinking the approach for description and ability copying might work if i can initialize an invisible card somehow, but im not sure if thats possible to do

lyric wadi
#

but that's because i am one

#

are there actually ANY good resources to learn ui stuff

#

cuz while i appreciate people pointing out examples of ui usage in modi can look at

hushed field
#

Not really anything that's more in-depth than the wiki

#

Pointing at well done other mods is the best examples out there at the moment. I think Thunk might be the only person confident enough with UI stuff to actually write a guide on it, haha

#

But I do think the UI system that Balatro uses is largely just some extensions on the Love2D UI implementation, so there's maybe something to find there

lyric wadi
#

they are actually like, incredibly unhelpful to look at

robust bison
#

I got into this forgetting balatro modding is relatively new and thinking it would have as much documentation as minecraft modding LMAO the mystery is fun though

lyric wadi
#

with how streamlined they are with helper functions in a separate file, uncommented code, combination with other stuff making it unclear what is what

#

it's like asking "how do i prep oil paint" and being pointed to a bob ross video because he used oil paint

#

anyway

#

sorry for the ramble

paper zealot
#

Beyond that, learn by doing. Play around with it all, experiment and see what works and what doesn't

lyric wadi
#

i know to you guys it made sense to point toward a mod that used it as an example to see how it works

#

but as someone who has no idea how it works, seeing a mod using it in a form that's pretty beyond its basic functions does not help me learn what its basic functions are

#

unfortunately

hushed field
#

Yeah, no I get you, it's not weird to be frustrated about it, haha. It's just that unless someone commits to writing a guide, there isn't going to be a better option than referring to other code.

lyric wadi
#

😔

hushed field
#

And the annoying nature of the ui system makes it difficult to parse compared to other parts of the code. I'd honestly generally not recommend people do things that need UI implementation if they're not comfortable parsing someone else's LUA because of that

onyx sonnet
#

how do i check the base id of a card without using get_id()?

frosty dock
#

.base.id

manic rune
robust bison
#

this might sound really stupid, but there wouldn't happen to be some kind of way to hot reload or something right? like some kind of way to test little changes in code? for example if I was working on code that is executed when a run is started, is the fastest way to test things just saving my code, closing and restarting balatro, and starting a new run?

hushed field
#

But Kusane, if it can give you any hope, I'm taking notes whenever I figure out how to do some UI stuff so that once I feel like I could actually answer people's questions about it, I'll make a guide for it 😛 (Though at this point, not sure if I'll ever get comfortable in my understanding of how UI works)

lyric wadi
#

honestly at this point i dont even know why i went down the ui rabbit hole

frosty dock
lyric wadi
#

cuz even if i canmake a separate box, im most likely still gonna be duing the grid with 25 vars

frosty dock
#

however smods has a keybind for quickly restarting the game

manic rune
#

its like 5 seconds of holding M 😭

lyric wadi
#

or some way to put longstring as a variable but idk if that works

frosty dock
#

it's holding M, though we've been wanting to make it configurable

frosty dock
manic rune
#

huh

#

its much slower for me

frosty dock
#

the closing itself is a bit slow

#

but you don't need to hold until it closes

manic rune
#

thats why i pinned the game to taskbar and manually close and reopen it lol

lyric wadi
#

actually

#

how would i display a grid of 25 values in a description

#

without using 25 vars

#

i dont think there's really a workaround that's worth persuing

hushed field
#

you're already storing 25 variables anyway, aren't you?

manic rune
#

the easiest one without needing to do all that complex ui stuff is

frosty dock
#

the main_end return param in loc_vars allows you to pass arbitrary UI elements

hard flume
manic rune
#

only use 5 vars, representing each line :3

frosty dock
#

you can just have one of those with a bunch of text nodes

verbal wyvern
#
        if context.cardarea == G.play and context.repetition and not context.repetition_only then
            if SMODS.has_enhancement(context.other_card, "m_steel") then
                return {
                    message = 'Again!',
                    repetitions = 
 card.ability.extra.repetitions,
                    card = context.other_card
                }
            end
        end
    end
}```

So I got this to work with base enhancements (such as steel) but when I sawp out m_steel for my custom enhancements key it just doesnt work, is there anything I need to do to get it to work?
onyx sonnet
#

i cant figure out why the first debug message stopped printing

paper zealot
lyric wadi
manic rune
#

probably not 💔

quartz ravine
manic rune
#

accidentally crashed my game once because my code had "functionmmmmmmmmmmmmmmmmmmmmmmmmmmmm"

#

💔

quartz ravine
#

Me too

manic rune
#

-# i always press ctrl + S out of reflex

lyric wadi
frosty dock
#

gosh this needs to be documented

quartz ravine
#

Quantum enhancement!?!

lyric wadi
#

it says what the code looks like, it explains the structure, it says what the code do, it list many functions

onyx sonnet
lyric wadi
#

where in the lua file does it sit

onyx sonnet
hushed field
lyric wadi
#

and that's the ONE thing that's not on there

frosty dock
#

it should be going off then

onyx sonnet
lyric wadi
#

like i am sorry i understand you are trying to help

hushed field
#

Well, it's because that's only relevant if you wanna change the standard way a joker's ui is generated. (or any card), the ui system article on the wiki details how to set up a general UI, which could be a config page, a menu, a whole new thing, an indicator, etc.

lyric wadi
#

but that's the extent of how much i understand

frosty dock
lyric wadi
#

like

hushed field
#

Yeah, that's true. In this case you'd probably be fine adding the ui to the update

lyric wadi
#

i know that's WHAT im supposed to read

quartz ravine
#

Do jokers expose support for different shaders?

frosty dock
#

you can add any UI elements before or after the main description using main_start and main_end in loc_vars

lyric wadi
#

but i read it, and i didn't quite understand it, hence why i came to ask the VERY first question several hours ago

frosty dock
lyric wadi
#

so "try reading it again" is unfortunately not gonna solve my problem

tall apex
#

hey does anyone know how to disable the chip message? im trying to move it somewhere else but now i have two chip messages

lyric wadi
#

call me whiny because i am indeed whining and i do apologise for that

chrome widget
verbal wyvern
tall apex
lyric wadi
frosty dock
#
loc_vars = function(self, info_queue, card)
  return {
    vars = {},
    main_end = {
      { n=G.UIT.C, config = {...}, nodes = {} },
    }
  }
end,
tall apex
zealous glen
# lyric wadi are there actually ANY good resources to learn ui stuff

When I think about Balatro UI, it helps me to look at a Joker tooltip and break it down:

  • Different colors of text are different text nodes;
  • Each line of text is a row node—the row aligns them horizontally;
  • Row nodes are aligned on top of each other by being put into a column node;
    etc.

There’s some specifics like how the red background for xMult is also a column node with a text node inside, and some rare nodes like root nodes and object nodes, but most of the time you only need rows, columns, and text nodes

Try looking at a Joker and imagining what its tooltip’s nodes look like

lyric wadi
#

what

chrome widget
#

Which (mostly) works aside from some minor issues interacting with other things, and it makes the dissolve animation a little weird

onyx sonnet
tall apex
frosty dock
#

I'm not currently at my machine

onyx sonnet
#

ah, thas fine

zealous glen
onyx sonnet
#

im 100% sure my smods is fully updated

tall apex
onyx sonnet
#

1.0.0 BETA 0312B

zealous glen
#

Minelala

hard flume
#

Yume Nikki Boosterpack

tall apex
hard flume
tall apex
frosty dock
lyric wadi
#

what would amogus pack have

frosty dock
#

I just noticed

#

quantum_enhanncements

lyric wadi
#

amogus pack have 3 cards, but only two of them are real. taking the fake cards immediately destroy it, thus wasting the pack

#

jumbo amogus pack has 4 cards

#

mega amogus pack has 5 cards but because it's a bigger pack there are 2 impostors

hard flume
#

The Nexus Pack has a new type of consumable - Effect Cards. Applies a new type of buff to cards, Effects.

lyric wadi
#

you can spot impostor cards in the pack by noticing something wrong in the card description

tall wharf
#

chat

#

how do i make planet cards

maiden river
lyric wadi
#

for example an Impostor Gros Michel might say 1 in 4 instead of 1 in 6

zealous glen
paper zealot
# lyric wadi okay where do i put the code for the ui

You're probably gonna hate this answer, but i promise i'm not being antagonistic, this is just my experience with learning the ins and outs of many codebases over two decades.

UI code is almost always a complex tangled web, no matter what platform or framework you use.

For Balatro, it's all very dependent on what the UI is for, and how you've structured your mod, and what it is you're doing - card tooltips? Joker descriptions? Modifications to existing menus? Custom UIElements? More?!

The reason mods are listed as good examples to learn from is that it's usually easier to copy something that works, untangle it to the point that you start to understand it, then make it yourself but better.

I agree that the UI guide is overwhelming and hard to process on the first read or two or five, but it really is written in the simplest way that it can be. It just takes a bit of patience, experimentation, and asking for help on specific problems. More specific than "where do I put the code for the UI", ideally

maiden river
tall wharf
#

ah yes

#

i should read the wiki

frosty dock
maiden river
#

where's the read the docs gif when you need it

tall wharf
#

-# (where exactly does it say to upgrade hand again)

onyx sonnet
maiden river
#

you'd do it in the consumeable's use function
beyond that I'm not sure

frosty dock
onyx sonnet
#

oh.

frosty dock
#

that's not how you spell enhancements last I checked

zealous glen
#

Someone bring up the 98%

frosty dock
#

:cantread:

lyric wadi
tall wharf
lyric wadi
#

and it's completely a me thing

zealous glen
frosty dock
#

here's me not having nitro :jimbo_spin:

lyric wadi
#

it's a perfectly good and valid answer that i am not in the right state to be able to consume

#

if that make any sense

tall wharf
#

ok no where is it documented

zealous glen
hardy viper
# frosty dock :cantread:

i guess you could initialize everything expected in there to false and then add a __newindex that errors

#

oh wait

#

nvm

#

i can't read either

#

technically it's still doable that way but not how i expressed it

onyx sonnet
#

works perfectly

#

aure thank you for being my spellcheck

#

❤️

frosty dock
# lyric wadi it's a perfectly good and valid answer that i am not in the right state to be ab...
loc_vars = function(self, info_queue, card)
  return {
    vars = {},
    main_end = {
      { n=G.UIT.C, config = {...}, nodes = {} },
    }
  }
end,

Something like this can be used to add UI nodes after a description. The main_end is parsed as UI code (as described in the guide) and added after the description. Similarly main_start would be added before the main description. In this case you probably want to have multiple text nodes arranged in a grid of rows and columns there

maiden river
#

does anyone know how to localize the collection buttons?
I'm having a great time right now

weak brook
#

hey aure got a question on dynatext, are you familiar with how that works?

paper zealot
# lyric wadi if that make any sense

Learning stuff is hard. Take regular breaks, don't give up quickly, practice breaking things down into small problems, and ask for specific help whenever you get stuck

lyric wadi
#

would the #n# var work in the text parameter of a column/row

hushed field
#

I don't think there's anyone that's done any work ever with UI stuff that's not very understanding of any 'learning UI' related frustration, haha

#

UI is fully what killed my game dev project a few years back, just because it was one of the few things that was so frustrating to get working. It's why so many games just have very utilitarian UI 😛

frosty dock
hard flume
#

I'm wondering how I should implement Effects... I know they could probably use a better name, but I can't rename them because that's what they're called in Yume Nikki.

frosty dock
modern kindle
#

when all else fails, make everything a square

#

thats all ie ver do for ui

frosty dock
hushed field
hard flume
sullen fern
#

i can finally get back to work on puyomod

weak brook
# frosty dock depends on the question

would it be possible to make a dynatext that could rotate between description tables? i noticed that in misprint's code everything seemed to be just strings, could it handle line breaks?

sullen fern
#

which also means i can figure out why all my suits are called error

lyric wadi
#

ok cool

#

second question

frosty dock
lyric wadi
#

would i be able to get away with doing this

hushed field
#

I know in unity, I got really frustrated by the arbitrary nature of the numbers you use for UI and how unintuitive they were

frosty dock
#

if you use localization files, I don't remember off the top of my head and forgot to put it in the docs

tall apex
lyric wadi
tall apex
maiden river
hushed field
# lyric wadi

you want the text to be in a G.UI.T node, so you'd have to add one node there, but I think this would work

frosty dock
paper zealot
maiden river
#

if you're going to update that can you make sure that someone mentions the localize function in there

weak brook
#

alrighty

hard flume
frosty dock
# maiden river 😭

I have to admit this one is pretty bad for not being documented. It's this way in legacy of how vanilla does things

#

it's misc.dictionary['b_' .. string.lower(self.key) .. '_cards'] in localization files

manic rune
#

4k lines now

#

yipee

paper zealot
# lyric wadi

Replace n = G.UIT.C with n = G.UIT.T and you should be in business

maiden river
#

thanks john smods

frosty dock
#

I am so sorry

sullen fern
frosty dock
#

idk how I failed to realize until now that I forgot about that page

red flower
hard flume
manic rune
#

good idea

frosty dock
hard flume
#

Oh. I might do it that way myself then

#

Also, is it possible to create a new type of card modifier?

manic rune
#

card modifier?

hard flume
#

Like how there's enhancements, editions, stickers, etc, etc.

manic rune
#

oh, yeah

#

definitely

maiden river
manic rune
#

gaogdmag

#

god damn it

#

💔

red flower
#

❤️

sullen fern
#

wait

#

hm

#

let me check

lyric wadi
#

okay so the blocks are there

hard flume
# manic rune

Oh, i already knew about that. But like, I want to create a new category of them. Is that also possible?

lyric wadi
#

for sure

manic rune
#

-# or at least, for consumables

frigid flame
frosty dock