#💻・modding-dev

1 messages · Page 230 of 1

broken cliff
#

or smth else

onyx sonnet
#

wouldnt work, there are two prints in this calc func and one of them triggers if the contexts are correct

#

which it doesnt

broken cliff
#

print context.other_card above the context.other_card if statement?

onyx sonnet
#

im not sure you are reading my messages, there is already a print there that isnt working

#

adding another wouldnt help

zealous stirrup
#

Is anyone else getting a smods crash when trying to activate sixth sense? (no other mods installed, just smods & lovely)

broken cliff
#

is "reading enhancements" print working?

onyx sonnet
onyx sonnet
#

which means only the contexts could be wrong

broken cliff
#

ah. should've clarified

#

i thought only context.other_card didnt work

manic rune
#

you can also change the size of the entire string

#

which also accounts for the uhh, {} thingies of the keywords

#

you can see how it adds the s:0.5 to {C:white}

#

am i insane for getting this to actually work :3

onyx sonnet
#

bump

manic rune
#

accounts for multiple keywords too, of course

rough furnace
#

btw the {} right before another thing is unessicary

#

anything in {} resets all values

manic rune
#

some people told me that a few days ago, but i already added it in so it would be more of a hassle to remove that now 💔

rough furnace
#

btw can it work on strings like {C:inactive}( Hello World! how are you)?

manic rune
#

but i think it should still work, nevertheless

onyx sonnet
manic rune
#

its C, sorry for the typo :3

rough furnace
#

if your already looping the string its probably not that difficult

onyx sonnet
#

@manic rune You've worked with quantum enhancements before, right? can i see a snippet of what their implementation looks like?

manic rune
#

i havent 💀

#

i dont even know how they work lmfao

latent portal
#

hi guys

#

im back!

#

so

#

good news and bad news

#

good news is i fixed the crash

#

bad news is my code now generates infinite events and forces the game to a complete halt

onyx sonnet
#

oh i mustve confused you for someone else

#

lol my bad

manic rune
latent portal
#

nvm i missed a return true

rough furnace
manic rune
#

oh, so uh, you want the code to find the {C:inactive} at the beginning of the string, and put that before the how are you) (and basically every part which isnt colored)?

rough furnace
#

that would make sense to me

#

also inheriting s probably makes sense

manic rune
#

theres already vars in my function which allows you to change the C,X,s,... of the entire string

#

so i dont think its necessary

onyx sonnet
#

i think ill just

#

re create the lucky card code

#

and then set the lucky card trigger bool for other_card to true

#

so it looks like its actually a lucky card

manic rune
latent portal
#

quick question for anyone smarter than me

manic rune
# manic rune

(by default, it colors the +/X(x) Mult/Chips part)

latent portal
#

how do you use particles(self)

manic rune
#

this tells the code to change their C,X,s,... to what are set in the function even when they already have them, so in this case while normally it should be {C:mult}+5{}, since i set global C to "inactive", it is changed to {C:inactive}+5{}

#

you can see how X:mult is untouched, because i didnt declare global X

willow void
#

hey all! i am in need of beginner mod creation resources and can't find much outside of some nondescript reddit posts. if some of y'all could link me some resources for creating my own stuff, it would be much appreciated!!!

manic rune
willow void
#

anything helps- stuff you used when you started or anything.

#

oh sick

minor magnet
#

this is not how you scale a soul sprite

#

how do you do it

#

I want the floaty soul to be the same size as the card

lethal mural
#

how do i make this work with Canio?

minor magnet
#

return {remove = true}

lethal mural
#

there already is a remove = true did i put it in the wrong spot

minor magnet
#

mm try putting it in the event

#

might be bad advice

latent portal
lethal mural
#

ough

#

why do ih ave to keep finding bugs this is annoying

tardy wind
#

Yo question I made a new consumable type "Spell" and created a custom card, however it seems the game (or steammodded) loads it twice. Anyone would know why ?

SMODS.ConsumableType {
    key = 'Spell',
    collection_rows = { 5, 6 },
    primary_colour = G.C.SET.Tarot,
    secondary_colour = G.C.SECONDARY_SET.Tarot,
    inject_card = function(self, center)
        SMODS.ObjectType.inject_card(self, center)
        SMODS.insert_pool(G.P_CENTER_POOLS['Spell'], center)
    end,
    delete_card = function(self, center)
        SMODS.ObjectType.delete_card(self, center)
        SMODS.remove_pool(G.P_CENTER_POOLS['Spell'], center.key)
    end,
    loc_txt = {},
}
#

(i did make sure files were loaded once)

minor magnet
#

chat help how do i resize a soul

latent portal
#

magic

zealous glen
hard flume
tardy wind
#

Also: G.Game.chip is the current blind chip amount correct ? or after calculations ?

minor magnet
zealous glen
minor magnet
#

im not a programmer most of the time

zealous glen
zealous glen
#

If you set the major to the card

steady smelt
#

ok this is very funny

zealous glen
#

It should copy its transforms

#

Although now that I look into it

#

You aren’t creating the Sprite manually, are you?

#

Then the major should already be the card

#

Maybe it needs to be updated

#

With set_sprites?

minor magnet
#

this is the full code

#

i just added the major (nothing changed tho)

zealous glen
minor magnet
#

no wait

zealous glen
minor magnet
zealous glen
#

I think that you are changing the size the wrong way

#

Try let me see

#

There’s a size transform

#

Since you’re scaling the card up by the same amount

#

You can just use it

#

I think it should be something like VT.scale = 1.2

latent portal
#

Yo Victin

#

Can I ask you a question

zealous glen
#

Yes. Question answered.

modern kindle
#

record response time, solved a whole thing instantly

zealous glen
#

Come back in naneinf hours for your next free question

#

;P

latent portal
#

Lol.

zealous glen
#

What is it

latent portal
minor magnet
latent portal
#

Do you know how to use particles(self)

zealous glen
#

Something like

#

newcard.….VT.scale

minor magnet
#

lemme try that

zealous glen
#

Idk what’s “…”

minor magnet
zealous glen
latent portal
#

I see

zealous glen
#

Idk if the card has a scale

#

Cards inherit from Moveable

#

So probably yes

latent portal
#

Another question: do you know how to make Jimbo's textbox disappear

#

Because I figured out how to make it appear

zealous glen
#

@minor magnet actually cards have Card.T.scale maybe try that instead of VT?

zealous glen
#

Or for a Joker?

minor magnet
#

my goat

latent portal
lethal mural
#

ok i cant figure this out at all, miight just have to give up on fixing this for now
idk why removing a random card at the start of blind and having it work with canio is so hard

zealous glen
latent portal
#

got it

zealous glen
#

Oops

#

*:

crimson marlin
#

im making a mod to make balatro a lot harder, but i cant seem to get this line of code to work: "G.GAME.modifiers.scaling = (G.GAME.modifiers.scaling or 1) + 20"

latent portal
#

I can't get the booster pack particles to disappear

manic rune
#

it works now, time to port this to a random online lua compiler :3

rough furnace
#

you can use DebugPlus's eval/watch commands to run code quickly

hard flume
#

Jokers for the Women Suit.

latent portal
#

why discord

zealous glen
manic rune
#

yipee

hard flume
manic rune
#

i am so gonna use this for my descriptions :3

latent portal
manic rune
#

especially since most of them look like this

rough furnace
#

{}{s:0.7} annoys me

manic rune
latent portal
zealous glen
#

Then what did you do for them to stop disappearing 🤔

orchid thunder
#

how do i add a soul onto a consumable

manic rune
#

im pretty sure gateway from jen's almanac does that

orchid thunder
#

A thats cryptid and
B i treid it no work

ionic verge
#

i need some help
i am trying to make a six card hand consisting of a 4oak and a pair (essentially, a bigger full house)
my current goal is to evaluate this by checking for a 4oak, and also a full house by making a new PokerHandPart for it
the only problem is i dont know how to do that without using other parts, which is a problem because parts cant take other parts in their function for some reason
does anyone have any idea what i should do?

latent portal
tardy wind
#

Actually would this work for a consumable to add chips/mult in blind

config = {
        chips = 300, mult = 3
    },
latent portal
#

@zealous glen you know what's even weirder

#

regular packs don't generate particles like that.

willow void
#

hey all, looking for some advice once again. is there any known way for a joker to check which deck you are playing?

maiden phoenix
chrome widget
latent portal
willow void
#

what the hell

steady smelt
#

i love coming here to search 'probability' and discord goes 'yeah we'll show you all the messages that include the word 'probably''

tardy wind
red flower
#

i say probably a lot sorry

latent portal
#

N

#

HI

#

HOW ARE YOU

red flower
#

hiii

#

im doing fine thank u

#

wbu

latent portal
#

i figured out how to do my pack shit

maiden phoenix
#

the yugiohdisplay guy!!!!

latent portal
#

but i still need a little help

red flower
#

thats me

#

literally got off a call with ayugioh youtuber

edgy reef
maiden phoenix
hard flume
#

Hi :)

tardy wind
red flower
edgy reef
#

yea

tardy wind
#

I thought they were necessary

modern kindle
latent portal
ionic verge
#

mhm

latent portal
#

Planet cards make blue particles

tardy wind
#

Now to figure out unusual consumable effects

latent portal
#

And Tarot cards make purple ones

#

And they NEVER. STOP.

red flower
#

honestly no idea, I've noticed that too

#

I think I saw a solution to that before but i don't remember

#

maybe it has to do with the pack type

latent portal
#

most likely

#

but is there any way to get the game to stop generating them?

edgy reef
#

skip_materialize needs to be true iirc

#

On card creation

latent portal
#

for the card?

edgy reef
#

yeah

latent portal
#

maybe i could hook the function that creates cards or something

#

but how would i check the pack type

red flower
#

skip_materialize is a field in SMODS.create_card

latent portal
#

oh

#

i got it

#

also how do i make jimbo disappear without having him just. pop out of existance

#

i tried Card_Character:move() to move him offscreen but no matter what I set the arg to it did nothing

#

I tried 1

#

8

#

100000

#

And nothing

hard flume
#

After female suit is fully implemented with jokers, tarots, blinds, etc., do I work on the Witchcraft-themed features next for my mod? Or do I work on the Hell themed features?

crimson marlin
#

someone please help me change blind scaling, my code doesnt works
G.GAME.modifiers.scaling = (G.GAME.modifiers.scaling or 1) + 4

red flower
latent portal
#

LMFAOO

crimson marlin
#

will noone help me :(

tardy wind
#

Would it be possible to schedule an event that would trigger when hand is evaluated ? I dont really wanna resort to lovely hooks just yet

latent portal
#

I set Jimbo.alignment.offset.x to -5 and it didn't do anything

#

btw i changed Card_Character to Jimbo

#

I'll try just Card_Character

#

womp womp

gilded narwhal
tardy wind
crimson marlin
gilded narwhal
#

you can't just change the files in the game

#

you need to use lovely

latent portal
#

Card_Character.alignment.offset.x

latent portal
#

Some more important questions

#

A) How do you stop the player from selecting a card in a Booster Pack?

#

and B) Is it possible to have different types of cards each go to their correct location?

rain slate
#

How should I go about increasing the amount of money rewarded by gold cards?

solid surge
#

how would i make a joker that adds hands or discards, like drunkard, juggler or troubador?

latent portal
#

Please, check it out! @solid surge

wintry solar
old bane
latent portal
wintry solar
#

I have no idea what you mean by A

latent portal
#

How do you stop the player from selecting a card in a Booster Pack?

#

I set up a bunch of events to happen when a player opens a Booster Pack, but the player can just ignore them and pick a card anyway without letting them finish.

tardy wind
latent portal
#

I'd need to know what func is called when selecting a card from a pack

#

Or whatever function allows you to select a card from a pack

latent portal
umbral frost
#

Trying to make a seal that copies the card when scored (removes the seal from the copy.) What would I put in context.mainscoring if statement?

gilded narwhal
tardy wind
#

I dont think self is usable in event context

gilded narwhal
#

I figured it out but for future reference when should i use self vs card

tardy wind
#

you should use card pretty much all the time

#

self also isnt card; its whatever the parent class is

#

(where the function body is)

#

so it might not be the same as card

gilded narwhal
#

I think i understand

willow void
#

i am trying to make a joker that gets more mult based on how many consumables you've used (not balanced i know but its for practice) and i am very stuck. would anyone be up to help me?

#

im using the resources provided for me and im at a roadblock

red flower
#

what are you stuck on

willow void
#

that's what im trying to figure out

#

it... looks like i am doing things right but i do not know

#

it should be working. I think

red flower
#

can you show me the code?

willow void
#

yes

#

dm it or here?

red flower
#

here is fine

willow void
#
    key = 'Jokers', --atlas key
    path = 'Jokers.png', --atlas' path in (yourMod)/assets/1x or (yourMod)/assets/2x
    px = 71, --width of one card
    py = 95 -- height of one card
}
SMODS.Joker{
    key = 'blank', --joker key
    loc_txt = { -- local text
        name = 'Blank Joker',
        text = {
         '{X:mult,C:white}X#0.1#{} Mult for each', 
         '{C:attention}consumable{} used this run'
        }
        },
        --[[unlock = {
            'Be {C:legendary}cool{}',
        }]]
    
    atlas = 'Jokers', --atlas' key
    rarity = 3, --rarity: 1 = Common, 2 = Uncommon, 3 = Rare, 4 = Legendary
    --soul_pos = { x = 0, y = 0 },
    cost = 8, --cost
    unlocked = true, --where it is unlocked or not: if true, 
    discovered = true, --whether or not it starts discovered
    blueprint_compat = true, --can it be blueprinted/brainstormed/other
    eternal_compat = true, --can it be eternal
    perishable_compat = false, --can it be perishable
    pos = {x = 0, y = 0}, --position in atlas, starts at 0, scales by the atlas' card size (px and py): {x = 1, y = 0} would mean the sprite is 71 pixels to the right
    
    function Card:generate_UIBox_ability_table()
        elseif self.ability.name == 'Blank Joker' then loc_vars = {self.ability.extra, self.ability.x_mult}
        end

    function Card:calculate_joker(context)
        if self.ability.name == 'Blank Joker' and not context.blueprint then
            self.ability.x_mult = self.ability.x_mult + self.ability.extra
            G.E_MANAGER:add_event(Event({
                func = function() card_eval_status_text(self, 'extra', nil, nil, nil, {message = 'X' .. localize{type='variable',key='a_xmult',vars={self.ability.x_mult}}}); return true
                end}))
            return
        end
    }
#

some of this is template stuff that i should prooobably get rid of

red flower
#

uh yeah you don't put those functions there

willow void
#

LOL

#

yeah okay makes sense

#

so what do i do

red flower
willow void
#

i am

red flower
#

well, look at it more carefully lol

willow void
#

oh like that specific page not just the examples

#

mkay ill check it out

#

thanks!!

red flower
#

yeah, that tells you how to structure your joker

plain apex
#

is there a shop rate for specific consumable cards like how theres weight = for the packs?

hard flume
#

How would I go about creating a pareidolia-esque effect?

manic rune
#

@red flower i did it :3

#

-# you can add keywords and what color/size/stuff you want them to be in the function now

red flower
#

amazing

buoyant shard
#

how does context.remove_playing_cards and context.playing_card_added tell how many cards have been added/removed?

latent portal
#

it's.... glorious....

distant grove
#

its peak

buoyant shard
#

Question: how do you create random jokers regardless of rarity? I took the code for riff-raff and I replaced the rarity param with nil, but my testing only made commons. I could randomly generate a number between 0 and 3, but then jokers of modded rarities wouldn't be capable of showing up

#

nvm just got 2 uncommons

tardy wind
#

I need to patch two lines in Balatro. However, those two lines are present at two places in the same file, same function, and I need to patch out the second one... nothing differentiates them. Is there a way I could do it with patches.regex ? Although I dont have a good idea of how regex could help... patches.pattern will simply pick the first instance which needs to be left alone

gaunt elm
#

Hi! Does anyone know how to make a joker copy itself when choosing a bind in the code?

tardy wind
scarlet spire
tardy wind
gaunt elm
#

Ok so question, how do I make it reference itself? Do I put in G. and then its ID?

tardy wind
#

well the cool thing is that when your joker's calculate function is called, the card argument is literally itself

tardy wind
gaunt elm
#

Ok ok I think I understand it now I got a little more insight in how this works thank you very much

buoyant shard
#

I'm trying to make a joker that destroys EVERY joker at the end of the boss blind. How do I target EVERY joker?

manic rune
#

use for loop through G.jokers.cards

tardy wind
#

Got my consumable to work how I wanted it, now I need to make it so theres more time between my effect and cards applying, and also some text popping on screen or something...

#

and also the chip and mult are added all at once... should I just add delay() calls ?

manic rune
#

probably

buoyant shard
willow void
#

(talking about the same issue i was having earlier) my joker... still is not working. im trying to make it have +0.1x mult for each consumable used this run. my code should be going (for real this time i copied 99% of it from the examples given) and it still crashes. is anyone able to help if i send over code?

rain slate
#

how do you destroy a card?

tardy wind
rain slate
#

this is for a joker that destroys a random card at end of round so I don't think I can just return { remove = true }

willow void
#

also that is for planet cards only and not all consumables

chrome widget
rain slate
#

where does one find vanilla implementations?

willow void
#

that too

rain slate
#

oh wait was it that thing about extracting the .exe with 7z or smtn

tardy wind
willow void
#

you can open the .exe with 7z and open the .luas to copy stuff

chrome widget
#

And yes, you'd have to set up a game tracker if you want it to record it retroactively

#

I did that for a joker for mine

#

which scales for certain consumables used this run

willow void
#

its... interesting

chrome widget
#

Constellation just uses the using_consumable context, checks if it's a planet, and then scales

willow void
#

yea

chrome widget
#

So if you want it to scale with every consumable, you'd just remove the check for the consumable's set

willow void
#

im trying to use the scaling from runner with the using_consumable context from constellation

#

yeah

#

that's what i thought

#

but its not workin :(

chrome widget
#

How so is it not working?

#

Crash? No action? Weird result?

willow void
#

game crashes on startup

#

i can send it over

chrome widget
#

crash on startup is probably just a compiler syntax error

willow void
#

likely

modern kindle
#

winter when is ur awesome mod releasing, ive seen some of the stuff ur doin and it looks neat

tardy wind
#

crash on startup means wrong syntax somewhere

chrome widget
buoyant shard
#

How do you always make a joker have the eternal sticker like Cube from Cryptid? I looked at the code for Cube and it mentions nothing about any stickers

willow void
# chrome widget crash on startup is probably just a compiler syntax error
SMODS.Atlas{
    key = 'Jokers', 
    path = 'Jokers.png', 
    px = 71, 
    py = 95 
}
SMODS.Joker{
    key = 'blank', 
    loc_txt = { 
        name = 'Blank Joker',
        text = {
         '{X:mult,C:white}X#0.1#{} Mult for each', 
         '{C:attention}consumable{} used this run',
         '{C:inactive}(Currently {X:mult,C:white}X#0.1#{C:inactive} Mult)'
        }
        },
     
    atlas = 'Jokers',
    config = { extra = { xmult = 1, xmult_gain = 0.1 } },
    rarity = 3,
    cost = 8, 
    unlocked = true, 
    discovered = true, 
    blueprint_compat = true, 
    eternal_compat = true,
    perishable_compat = false, 
    pos = {x = 0, y = 0}, 
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.x_mult, card.ability.extra.x_mult_gain } }
    end,
    calculate = function(self, card, context)
        if context.joker_main then
            return {
                xmult_mod = card.ability.extra.xmult,
                message = localize { type = 'variable', key = 'a_xmult', vars = { card.ability.extra.x_mult } }
            }
        end    
        if context.using_consumeable then
            cardarea = G.jokers, 
            using_consumeable = true,
            consumeable = card, 
            area = G.consumeables,
            card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.x_mult_gain
            return {
                message = 'Upgraded!',
                colour = G.C.MULT, 
                card = card
            }                 
    end 
       
    end
}
chrome widget
#

Speaking of, cool shader effect on the left middle joker there. Trying to animate action lines

modern kindle
chrome widget
#

It's this

            cardarea = G.jokers, 
            using_consumeable = true,
            consumeable = card, 
            area = G.consumeables,
            card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.x_mult_gain
            return {
                message = 'Upgraded!',
                colour = G.C.MULT, 
                card = card
            }  ``
willow void
#

thought so

chrome widget
#

You copied the entire reference table for the consumable context

willow void
#

yuup

#

im presuming. that is wrong

chrome widget
#
    card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.x_mult_gain
    return {
        message = 'Upgraded!',
        colour = G.C.MULT, 
        card = card
    }```
tardy wind
#

btw if card isnt referenced for a message, does it display like in the middle of the screen or something ?

chrome widget
#

the lines for cardarea, using_consumable, consumable, and area are what are passed into context

willow void
#

hm

chrome widget
#

Meaning you're given them, and you can access them via context.[whatever]

#

The reason why it's crashing is because of the commas specifically

willow void
#

ah

chrome widget
#

You don't use commas unless you're setting values in a table

willow void
#

i see

#

so if i replace it then boot balatro it should hopefully work?

chrome widget
#

Give it a try

willow void
#

mkay!

willow void
tardy wind
#

this means your variable for mult is nil, not 0 in your config

chrome widget
#

Both your values are slightly incorrect when you access them in loc_vars

tardy wind
#

Id ahve a variable for your text and another one to track the xmult

willow void
#

here?

chrome widget
#

change those to x_mult and x_mult_gain

#

You have the extra underscore the other two places you use them

willow void
#

AH

chrome widget
willow void
#

still says xnil

#

hmm

chrome widget
#

Oh, first of all

#

In your loc_text statement, you're accessing #0.1# multiple times

#

The first should be #2# (to get the second value in the loc vars table), the second should be #1#

willow void
#

hm

chrome widget
#

What you're passing in between the hashes is the index of the value in the table

willow void
#

i see

hard flume
#

Hell yeag!!! I got my Jokers working :)

#

Showcase later

median fern
#

I am trying to use SMODS.https and asyncRequest but any time I add any options I get a Non-existant thread id error. Without options it works fine but any options breaks it for me. Has anyone else experienced this and know what I'm doing wrong?

modern kindle
chrome widget
#

Yeah!! That was fun and a little aggravating to work on

modern kindle
#

i can imagine, i get my head busted up about things too and i havent done things as neat as that yet

chrome widget
#

Did you see the emulator?

modern kindle
#

i dont think so, mind showin me?

chrome widget
tardy wind
#

bruh wtf

chrome widget
#

(Ignore the screen clipping at the top, the CRT shader is a little difficult to work with)

modern kindle
#

oh shit yea i DID see that

i actually wanted to use you as a reference in doing similar, but doing a different game such as snake or something

#

how you figured this out baffles me

turbid maple
#

now can it run doom

chrome widget
#

Believe me I did not write the emulator

#

That's way above my pay grade

#

For something like snake..... honestly I'd just program the snake game myself and then render it out to an image

modern kindle
#

oh are you just hooking in the emulator?

turbid maple
#

wait you embedded an entire NES emulator into your mod for this?

chrome widget
#

Yeah

modern kindle
#

oh sick

turbid maple
#

LOL

chrome widget
#

LuaNES by Nico Abram

turbid maple
#

that's amazing

modern kindle
#

that is sick

chrome widget
#

The joker boots the emulator, accesses input, draws to the screen, and then checks some ram locations to determine when you've won/lost. Fundamentally I didn't do anything Abt the NES hardware, I just used Balatro as the input and output devices

#

(well, I did alter the palette so it's more pastel to fit balatro's art style)

modern kindle
#

regarding the public release of your mod, as i dont know luaNES at all
are you able to just publicly release with it in your mod? im unsure licensing wise what they allow so just wanted to make sure they didnt get big mad at you

chrome widget
#

Okay so, objectively

#

The NES, yes. Definitely legal, and I have the license info for it in the source code

#

The fact that I currently have the roms themselves in the source code......................................

modern kindle
#

yea that was another thing i was gonna mention

#

you could have it look for the roms after install and have people just manually put their own in, this way you arent at fault

and instead if it doesnt detect a rom itll just run some other default game you wont need to worry about

chrome widget
#

So like if you ask me, legal precedent against roms online is bullshit, big advocate for piracy due the failure of corporations to preserve games

modern kindle
#

i totally agree, but unfortunately big corpo will not care

chrome widget
#

For the sake of any personal ramifications, obviously it's a free project, for a free game

#

And yeah I've thought about just asking the player to put the roms in a side folder themselves

#

Which would be an easy solution

#

The joker works without the roms anyway, it's both a regular joker and you play the embedded game to win a free joker

turbid maple
#

If I want a UI node to be drawn throughout the entire run where do I put this into?

chrome widget
#

So I could just have the joker function with the playable game if it has the game file, otherwise it's just a regular joker anyway

modern kindle
#

ah thats fair yea
i figured if you wanted to duplicate (albeit lessen) the experience you could just make a lesser game yourself to fall back for

but if it still works then that saves you a whole lot of hassle

chrome widget
#

I probably won't, since it's a specific reference. The three games in the emulator (Donkey Kong, Dragon's Lair, and TMNT Arcade) are from the JoJo fic that it's based on

modern kindle
#

ah icic

chrome widget
#

Though I could have some alternate freeware game, it'd kinda lessen it versus just not having it

#

Regardless I'll figure the best course of action when I release it CattoBlush

modern kindle
#

i believe in you, youre doing fantastic

chrome widget
#

Now ough, I wish the vanilla particle system was better

modern kindle
#

ive really been procrastinating getting into shaders
i want to but man, thats a whole load of effort

chrome widget
#

You can't have particles in global transform space, only locally relative to the parent, which is harder

#

I might have to use the Love2D one since there's a proprietary reduced one in Balatro itself, it doesn't use the Love one

#

Oh yeah and if you want to get into shaders, STEAL

#

Steal code so much

#

I don't innately understand a lot of graphics math, at least not on the top of my head, but stolen code is a good starting point to figure it out

#

Which is how I've made most shader things work so far

#

Also having used Unity ShaderGraph before, since the visual element helped me conceptualize what kinda things are going on with the values

modern kindle
#

yea thats how i intiially learned how to make my jokers was just delving and stealing from the examples, then i started mixing and matching

#

i hadnt messed with lua for like, 6 or so years cause i did it alot for gmod back in like 2014 onwards

chrome widget
#

this is my first Lua project, I worked professionally with Typescript for a few years which is similarish

#

So it wasn't too hard to transfer into, but there's still quirks I haven't quite figured out

modern kindle
#

i mean hey, i think youre doin great thus far

#

now for the emulator you just have to run balatro within balatro and youll have peaked

chrome widget
#

If somebody's made a Balatro port for NES lmao I'll do it

modern kindle
#

lmfao

chrome widget
#

I saw a DS port

lyric wadi
#

by cherry! and more

modern kindle
#

yea i saw that too, also saw the guy whos making it into a physical game

lyric wadi
#

is irl balatro technically hitting the "no talking of ports" rule

hard flume
#

Hihi

lyric wadi
#

cuz if so that'd be funny

tardy wind
#

but hey

#

i am willing to be proven wrong

chrome widget
#

The finished content for 1.0 for this mod is gonna be

  • 90 jokers
  • 30 Stands (new consumable type)
  • 4-5 Spectrals
  • Reskinned Tarot Cards
  • 6? Vouchers?
  • And then some challenges and achievements and that idk
modern kindle
modern kindle
chrome widget
#

We have a bunch of blind concepts and we're reskinning the boss blinds, but I don't recall if we decided on adding the new blinds. Probably?

lyric wadi
#

anyway chat, is there like a flag i set or a way to make it so that a joker can always appear multiple times

#

as if you have showman

#

but you know, even if you dont have showman

chrome widget
#

Yep, allow_duplicates = true in the joker definition

lyric wadi
#

huge

hard flume
#

Thinking about taking a break from the custom suit and working on something else.

tardy wind
#

do it

#

dont think about the suit for a while

modern kindle
#

sometimes breaks are necessary
when i was trying to figure out a joker for awhile i came back to it like 3 times before it was just about perfect

turbid maple
#

error with variable that has never been mentioned in this discord server award

chrome widget
#

Someone convinced me to add this as a win quote 😔

turbid maple
#

wait that's a method

modern kindle
old bane
#

chat what does SMODS.https allow you to do

turbid maple
#

connect your balatro to the interwebs

chrome widget
#

Okay so the issue is that, for some reason, your G.GAME table is nil, or empty

#

Because prep_stage is a property on the Game table

turbid maple
#

oh I'm silly I was hooking something that looks like Game:function and I forgot to feed it self

#

tehepero

old bane
#

i feel like there's not really a use for that besides providing daily challenges

#

idk

chrome widget
#

Okay yeah, so self is nil in that case

turbid maple
#

you mean you don't want your joker to connect to a web api

chrome widget
#

Syntactically, if you access a function with a period, you have to manually pass self. If you use a colon, self is implicitly passed as the first argument

old bane
#

bro virus joker in balatro that just fakes sending your ip address

turbid maple
#

yeah I forgot that I had to manually feed it self in this case

old bane
#

guys i really wanna add more jokers but the problem is i wanna make an addon instead of just adding them to my mod outright

tardy wind
chrome widget
#

Positioning?

tardy wind
#

yea

rough furnace
#

when making the text bubble you can speciffy the positon iirc

tardy wind
rough furnace
#

but that position is the default for the win screen

tardy wind
#

hm i see

latent portal
chrome widget
#

And yeah this is me winning the game

tardy wind
#

oh lmao

turbid maple
#

okay I got something rendering that's a start

tardy wind
#

new cardarea ?

turbid maple
#

resource meter

old bane
#

omg Mana in Balatro

#

high key might have to start thinking about that if i wanna do a true paper mario game

edgy reef
#

gd reference

lyric wadi
#

does the mega pack have 8 cards

#

that is all i need to know

hard flume
ivory coral
#

Hey lads
How do i get the key of a random element from SMODS.Suits?
im doing a pseudorandom_element() on SMODS.Suits and i need to get the key for change_base(), but just doing pseudorandom_element() on SMODS.Suits returns a table and pseudorandom_element().key seems to return nil, or at least its empty when i try to print it

latent portal
#

but also really funny

#

sure

tardy wind
#

But id go the monkey way and generate a random index between 1 and suits length, and just index the suits table this way

gilded blaze
#

uh
this very same effect works on the deck, but not the sleeve
the sleeve refuses to destroy 2s 💀

ivory coral
#

is what youre saying

ivory coral
#

i see ill give that a shot then

tardy wind
#

(mostly cause i dont know any better)

ivory coral
#

would SMODS.Suits[x] return the key or do i have to add .key at the end for that

tardy wind
#

add .key

ivory coral
#

alrighty

tardy wind
#

Suits[x] would give the object

ivory coral
tardy wind
#

this means SMODS.Suits is not what youre looking for

ivory coral
#

oh
i just need a table with all suits
including potentially modded ones

#

to choose a random entry from

tardy wind
#

Smods registers modded suits into the same place vanilla ones are

#

Id look into balatro’s code to where its storing the vanilla suits

ivory coral
#

maybe
its weird though
ive seen SMODS.Suits given in this channel before so im not sure why its not working for me

tardy wind
#

its deprecated

#

it used to exist pre 1.0

hard flume
#

Hmm, do I work on Runes next? I really want to but. Idk how hard it'd be.

ivory coral
hard flume
tardy wind
#

Besides you dont know if somethings hard until youre knee deep into it

ivory coral
#

SMODS.Suits does seem to exist because i can print() the table just fine
i just need to extract the key of SMODS.Suits[x] somehow

tardy wind
#

@ivory coral SMODS.Suit.obj_table

#

What does SMODS.Suit print as

ivory coral
tardy wind
#

yeee

lucid owl
#

bumping this, anyone know why my joker's size is messed up?

tardy wind
#

I think Suits is kept for compatibility with 0.9.8 mods, thats it

ivory coral
tardy wind
#

Maybe

#

try it

#

you can always ctrl-z

ivory coral
# tardy wind Maybe

SMODS.Suit.obj_table[pseudorandom('seed', 1, #SMODS.Suit.obj_table)] sadly seems to return nil

edgy reef
#

Which SMODS.Suit is

tardy wind
ivory coral
#

man this was way easier to do with ranks

edgy reef
#

It should be exactly the same as ranks

ivory coral
tardy wind
#

you sure it can work ?

#

what are the args for pseudorandom_element

hard flume
#

There's literally an example of getting random suits in the example mods.

tardy wind
#

damn

ivory coral
hard flume
#

Yes, I believe it's in the hook beneath it

ivory coral
#

hm it seems thats different
it just pulls the suit of a random card in deck

#

which is not what im looking for

edgy reef
#

Better example is the take_ownership of all the spectrals that add playing cards

#

Which would be these parts

faint yacht
#

I've had a similiar thing... but I used the regular dimensions for the atlas and made sure that the "top left" of the "card" matched the usual "top left" of the default Joker template in the sheet.

#
GitHub

A personal timewaster project that is a mod for Balatro. - TheOneGoofAli/TOGAPackBalatro

GitHub

A personal timewaster project that is a mod for Balatro. - TheOneGoofAli/TOGAPackBalatro

tardy wind
#

oh

#

card_key

ivory coral
tardy wind
#

not key

edgy reef
#

Yea

#

card_key is the card key (which is applied onto cards), key is the SMODS.Suit object key (used for other things iirc).

ivory coral
#

for that i'd need to get 'Hearts' instead of 'H'

edgy reef
#

Looking at Sigil that is what it does

ivory coral
ivory coral
ivory coral
edgy reef
#

no this

ivory coral
#

oh that

rough furnace
#

pseudorandom element won't work as it has no integer keys

#

iirc

edgy reef
#

Yeah consideing that SMODS objects are always required to have key I'm wondering if something else is amiss.

rough furnace
#

hmm nvm it does work

ivory coral
#

ooookay i just switched it back to key and it started working wtf

#

SMODS.Suits.key is no longer returning nil
and i dont know why
but i guess ill take it

rough furnace
#

were you using SMODS.Suit instead of SMODS.Suits

ivory coral
#

nope

latent portal
#

hey guys

#

i need help with something

#

i tried adding a consumable but it crashes on startup

ivory coral
#

i could swear on my life the code is the same
but i guess its not somehow

tardy wind
#

you forgot to save

#

happens all the time

latent portal
#

it says "attempt to get length of local 'pool' (a nil value)"

#

does anyone know what i did wrong?

tardy wind
latent portal
#

yes

tardy wind
#

create a custom ConsumableType for that set

latent portal
#

i did

#

and it still doesnt work

ivory coral
tardy wind
#

did you make sure to load the file for your type ?

turbid maple
#

I have DynaText objects that refer to a variable and I am calling update on them but the text doesn't seem to update?

latent portal
#

is the key for the type and the key for the set the same?

tardy wind
#

no its not

latent portal
#

ok

turbid maple
#

Do I need to call anything else to get them to actually rerender?

latent portal
#

so where do i put the set key in the ConsumableType

tardy wind
#

axtually yes

latent portal
#

ur a liar

#

liar

tardy wind
latent portal
#

grrr

tardy wind
#

I have a custom consumable with a custom ConsumableType Spell

#

and ofc make sure youre loding all the file with smods.load_file

tardy wind
#

very different smart

latent portal
#

new issue: when i try to enter the collection page, this happens

tardy wind
#

show code

#

for consumabletype and your consumable

latent portal
#
SMODS.ConsumableType{
    key = "JimboCards",
    primary_colour = "FD5F55",
    secondary_colour = "009CFD",
    default = "c_cherrysmod_jimbjoke",
    loc_txt = {
        name = "Jimbo Card",
        collection = "Jimbo Cards",
        undiscovered = {
            name = "Not Discovered",
            text = {
                "Find this card",
                "inside a Jimbo Pack"
            }
        },
        collection_rows = {5,5},
        shop_rate = 0
    }
}

SMODS.Consumable{
    key = "jimbjoke",
    set = "JimboCards",
    loc_txt = {
        name = "Joke",
        text = {
            "Does nothing.",
            "",
            "Sorry!"
        }
    },
    atlas = "jimboatlas",
    pos = {x = 0, y = 0},
    cost = 1,
    pools = {
        ["cherrysmod_JimboCards"] = true
    }
}```
tardy wind
#

whats the default key for

latent portal
#

default card in case pool is empty

#

thats what the docs said

#

should i delete it?

tardy wind
#

i feel like collection_rows and shop_rate are not in the correct spot

latent portal
#

oh

#

youre right

#

fixed it

#

still broken tho

tardy wind
#

same issue ?

latent portal
#

yep

#

any ideas?

tardy wind
#

not really, maybe the loc_txt for your consumableType is wrong ?

latent portal
#

no its perfectly fine

tardy wind
#

the pools for your consumable is not necessary

#

smods will automatically create a pool for your consumabletype and put anything that has set = yourtype in there

glacial snow
#

if one would want to try and make a joker where would they start?

#

ive looked at a video for making one and they way they jumped into their lua was very confusing

turbid maple
tardy wind
latent portal
#
SMODS.ConsumableType{
    key = "JimboCards",
    primary_colour = "FD5F55",
    secondary_colour = "009CFD",
    collection_rows = {5, 5, 5, 5},
    loc_txt = {
        name = 'Jimbo Card',
        collection = 'Jimbo',
        undiscovered = {
            name = "Not Discovered",
            text = {
                "Find this card",
                "inside a Jimbo Pack"
            }
        }
    }
}

SMODS.Consumable{
    key = "jimbjoke",
    set = "JimboCards",
    loc_txt = {
        name = "Joke",
        text = {
            "Does nothing.",
            "{}",
            "Sorry!"
        }
    },
    atlas = "jimboatlas",
    pos = {x = 0, y = 0},
    cost = 1
}```
#

pls help idk whats wrong with this rivsob

tardy wind
#

show main.lua

latent portal
#

all of it ??????

#

just so you know

#

my mod only has one lua file

#

and its main.lua

tardy wind
#

oh no

lyric wadi
#

well they're starting out

#

i think

latent portal
#

i am

tardy wind
#

do you got a github ?

lyric wadi
#

yeah

latent portal
#

nope

lyric wadi
#

i also had one lua file

#

until someone told me i should do something about it

#

luckily they told me really early when i had only like 3 jokers

tardy wind
#

ok so thats why youre not worried about loading

#

everything is in a single file

latent portal
#

yes

lyric wadi
#

question to chat real quiuck

tardy wind
#

i would say make sure the consumable type is at the very top of the file ??

lyric wadi
#

if i want to do an effect kinda like basebaqll card where it triggers based on what other jokers you have

tardy wind
#

Not at computer so I cant debug

lyric wadi
#

that'd be context.other_joker right

tardy wind
#

yes

lyric wadi
#

ok

tardy wind
#

i think at least

lyric wadi
#

and like if i want to check for a specific joker they player might be holding

tardy wind
#

g.jokers

lyric wadi
#

how do i get the name of a joker

#

like g.jokers[i].name == nameiwantedtocompare or something

#

buty like actually correct

tardy wind
#

yeah something like that

latent portal
#

hey

#

question

#

is using hex codes instead of color vars correct

sturdy compass
#

like so

tardy wind
#

that might be it

#

didnt catch my eye

#

but it did complain about a nil value for numbers

lyric wadi
#

im assuming i can compare like

#

g.jokers[i].key

#

that'd get the key of the joker right?

latent portal
lyric wadi
#

or

sturdy compass
#

LMAO

latent portal
#

that worked

sturdy compass
#

GG

lyric wadi
#

unfortuinately you now lose 1 hand size

tardy wind
#

at least on paper

lyric wadi
#

hm

#

then how would i go about actually getting a name or key out of them

#

or like vanilla jokers

#

do they have keys

#

or do they just use names

manic rune
#

i can finally rest knowing i fixed this 😭

lyric wadi
#

wait

#

hm

#

okay chat question

#

i wanted to make a joker that gets stronger the more duplicates of it you have

#

and i can make it check for its own key

#

but i've just now realised and thinking about what to do if it's being copied by blueprint/brainstorm

#

do i count it as a duplicate and therefore it gets buffed?

sturdy compass
#

I think blueprint should apply whatever effect it gives but to not count it as a duplicate

lyric wadi
#

or will the blueprint just copy the mult but not the self buffing ability

#

ok

#

good because i have no fucking idea how to code it so that it counts blueprint as a dupe

#

whew

scenic horizon
#

Hey, does anyone know how I would go about checking if a card has no enhancements, seals, or editions?

#

I'm trying to make a joker that scores mult on cards without any of that

latent portal
#

hi so im having issues getting my fuckin text to display

#

it all says nil and ERROR

#

ok i fixed the nils

#

but i still have the errors

#

im trying to reference the entry for polychrome

#

is it this?

#
SMODS.Consumable{
    key = "jimbpoly",
    set = "JimboCards",
    loc_txt = {
        name = "Polychromifier",
        text = {
            "Makes one",
            "of your Jokers",
            "{C:attention}Polychrome{}"
        }
    },
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue+1] = {set = "v_dictionary", key = "ml_polychrome_desc"}
    end,
    atlas = "jimboatlas",
    pos = {x = 2, y = 0},
    cost = 10
}```
#

like that?

turbid maple
#

dumbest looking hook I've written so far

latent portal
#

oh nvm i fixed it too

#

teehee

#

CORRECTION

#

I MADE IT WORSE

sturdy compass
#

What does your code look like now?

latent portal
#
SMODS.Consumable{
    key = "jimbpoly",
    set = "JimboCards",
    loc_txt = {
        name = "Polychromifier",
        text = {
            "Makes one",
            "of your Jokers",
            "{C:attention}Polychrome{}"
        }
    },
    loc_vars = function(self, info_queue, card)
        info_queue[#info_queue+1] = {set = "Edition", key = "e_polychrome"}
    end,
    atlas = "jimboatlas",
    pos = {x = 2, y = 0},
    cost = 10
}```
sturdy compass
#

Try using G.P_CENTERS.e_polychrome instead of the table

latent portal
#

Yup, that did it!

#

Check it out!

lyric wadi
#

chat

#

is the G in G.stuff case sensitive

latent portal
turbid maple
#

Yes

lyric wadi
#

that'd explain the crash

#

a;sp wowow that looks amazing

#

god i wish that were me

latent portal
#

what

latent portal
lyric wadi
#

yea

latent portal
#

thanku

lyric wadi
#

i havent gotten to custom comsumables yet

#

im still babey

#

question about other joker

#

if im grabbing the name of them it'd be other_card.ability.name right

manic rune
#

should i learn html

#

just to make a website that can render the color of {C:mult}+5{} Mult

sturdy compass
#

I dig

lucid owl
manic rune
#

...oh, its actually more of a proof of concept, i made it during my first week of modding so it isnt the polished ver im satisfied with yet, but nice :D

lucid owl
manic rune
#

mhm, good to know it helped someone ❤️

lyric wadi
#

cha hepl

lyric wadi
#

goal : for each Monke card held including itself , gain +5 mult

#

problem : it's not counting any Monke, not even itself

manic rune
#

use v.config.center.key instead

#

and it should be "j_(your mod prefix)_(joker's key)"

lucid owl
lyric wadi
#

well

#

for 3 * mult for each individual Monke yes

manic rune
#

wait nevermind

#

it probably works

lyric wadi
#

so 1 monke is 5 mult x 1 copies x applied 1 times = 5 mult
2 monke is 5 mult x 2 copies x applied 2 times = 20 mult

#

3 monke is 5 mult x 3 copies x applied 3 times = 45 mult

#

it's a square increase

#

because ape together strong

sturdy compass
#

Great concept

#

Took stencil and ran with it

manic rune
#

who doesnt love using already existing concepts

lyric wadi
#

heck

#

is that what stencil do to each other

sturdy compass
manic rune
#

you know you are still using mult and chips right

#

seems a bit ironic if you ask me

sturdy compass
#

Don't Mind If I Do from Maximus is literally just Vampire but seals instead of enhancements kek

lyric wadi
#

i added the ape together stronk to Monke because if it was just its other effect i'd be meh

manic rune
#

im starting to run out of ideas for jokers in my mod 💔

lyric wadi
#

which is that held Gros Michel and Cavendish also gives x3 mult

#

because monke bonan

#

oog oog

#

moke

#

anyway yeah why doesnt it count itself or toher monke

#

im sure it's some syntax thing

manic rune
#

im very saddened you ignored me :(

lucid owl
# lyric wadi 3 monke is 5 mult x 3 copies x applied 3 times = 45 mult

i have this snippet for giving money based on how many of a joker there are, but you should be able to adapt it however you like (just use a calculate function, change the key used in SMODS.find_card, and adjust variables however you like)

calc_dollar_bonus = function(self, card)
        if #SMODS.find_card('j_yacbm_antenna') <= 1 then
            return card.ability.extra.money
        else
            local bonus = (card.ability.extra.money + (card.ability.extra.extra * (#SMODS.find_card('j_yacbm_antenna') - 1)))
            if bonus > 0 then return bonus end
        end
    end
#

oh god formatting is messed up

lyric wadi
#

sorgy i didnt see

#

will tyry

manic rune
#

but also, you can use #SMODS.find_card like trif suggested, i think it works the same

#

though i kinda like using .config.center.key more, gives me more control over my code :3

lyric wadi
#

im assuming find_card is just the loop i made but as a function

lucid owl
#

yeah SMODS.find_card is just slightly easier and i think has a couple more capabilities, not sure though

manic rune
#

this is such an useful function :3

edgy reef
#

Also goes over more CardAreas

lyric wadi
#

still 0 mult :dismay:

manic rune
#

show code now

lucid owl
#

lol

manic rune
#

there will always be someone to fix it

lyric wadi
#

it's literally the same thing but the j_HangedMan_ and also chenged to centre

lucid owl
manic rune
#

Balatro Modding Service™️

manic rune
#

are you sure its this

lyric wadi
manic rune
#

hm

#

oh, i think i know why

#

i think the joker will still work

#

try playing a hand

lucid owl
#

yeah that seems correct

lyric wadi
#

doesnt give +mult

manic rune
#

:3 what the fuck

#

uh

lucid owl
#

maybe it's to do with the context?

#

not sure though

manic rune
#

oh yeah

#

likely

#

you should add and context.cardarea == G.jokers too

lucid owl
#

also make sure your mod prefix is the same as that one there, i've had issues when using the wrong capitalization for my prefix lol

lyric wadi
#

yeah it's HangedMan

manic rune
#

and if all else fail, add print() everywhere and see where it doesnt run properly :3

lyric wadi
#

the opposite of Cryptid

manic rune
#

thats why you need this

#

❤️

lyric wadi
#

basically the only real concept i have

#

everytinhg else i just make the fuck up

#

:3

sturdy compass
manic rune
#

i normalized the use of ":3" around here

lyric wadi
#

most straight balatro modder

manic rune
#

❤️

timid star
sturdy compass
manic rune
#

lets normalize silliness

#

:3

lucid owl
#

i don't debug i just get mad at my computer and angrily search functions in this discord

lyric wadi
#

edge? how long

sturdy compass
#

Bruh

lyric wadi
#

:3

lucid owl
#

lusty joker ☹️

manic rune
#

I'm removing your privilege to send any further message than that in this channel.

lyric wadi
#

nope still 0 mult

#

added the area

manic rune
#

yeah uh

lucid owl
#

hmm

manic rune
#

add print() everywhere then

lucid owl
#

strange

manic rune
#

weird

lyric wadi
#

what do i print

manic rune
#

maybe put "card.ability.extra.cumulativeMult = 0" at context.after instead?

#

add some prints here

#

it can be anything

#

would it be funny if card.ability.extra.baseMult was 0 all along

lyric wadi
#

hm

#

it appears

manic rune
#

its hangedman

lyric wadi
#

the id get normalised to lowercase

manic rune
#

not HangedMan

#

😭

lyric wadi
#

hrg

#

but i thought i set the case

#

ltkfhkltrnmhkftrhkithnmfkohj

manic rune
#

this is why printing is helpful, as you can see

lyric wadi
#

im gonna nil myself /j

#

holy

manic rune
#

G.jokers["me"] = nil

#

❤️

sturdy compass
#

I’d honestly recommend changing your mod id to something shorter like hm just for your own sanity

lucid owl
lyric wadi
#

hm

manic rune
#

theres no way im having "balatrostarrail" as my mod prefix lmfao

sturdy compass
#

The id for Maximus is mxms

lucid owl
lyric wadi
#

hanged man, and the nude mod sequel

#

hung man

sturdy compass
manic rune
#

im pouring cola on you.

lyric wadi
#

yummers :3

#

aqnyway thnak you chat

#

monke is now monkeing correctly

lyric wadi
#

modders together strong

manic rune
#

what the fuck 🔥

lyric wadi
#

oog oog

tall tangle
#

Get that AI bullshit out of my goddamn server what on earth

sturdy compass
#

Your server? eyebrowzoom

lyric wadi
#

the opposite of my goat is washed

manic rune
#

its not that deep man 😭

lyric wadi
#

my goat is soiled

tall tangle
#

Clearly not my server but like yeah no fuck that shit

lyric wadi
#

wet, even

lucid owl
#

it's one ai image 😭 i doubt bepis even generated that

manic rune
#

i took it from my friend's group, thought it was funny :3

sturdy compass
#

Listen man, I think everyone here can agree AI is kinda shite, but throwing a fit about one image is pretty extreme bruv

lucid owl
#

i don't support ai "art" by any means but a single picture isn't that big of a deal

tall tangle
#

I do a bit of digital arting and I wholeheartedly believe AI is a waste of an excessive amount of resources.
I vibe with it for the funni on RARE occasions tho so this one is just a "haha fuck that 😂" not a "what the actual hell is wrong with you, convert your left card into your right card you idiot"

#

It was slightly funni

#

Didn't mean to be a dick about it

lucid owl
#

ah alright, it seemed like you were a LOT more mad lol

tall tangle
#

Guess I did go a little hard didn't I.

#

Whoops.

manic rune
#

i love weird ass ai images, they have a certain vibe to them that ordinary art pieces cant replicate (no offense)

like, you know that one picture with godzilla and his big ahh ass? 😭

tall tangle
#

Yes

#

AI art as an insult to itself is exactly where AI art belongs.

manic rune
#

mhm

#

i love ai art as memes

#

but im against them as an actual form of art

#

-# are you writing an essay 😭

tall tangle
#

Example: AI Joker.
It changes every round and is often entirely unhelpful.

Example: AI generated card (Dungeons and Degenerate Gamblers)
Assigns a random value and makes a copy in the opponent's played cards (inherently dangerous and unhelpful)

#

That's the correct applications of AI.

#

Insulting AI.

tall tangle
manic rune
#

oh, i see

tall tangle
#

Though I have an acceptably high typing speed on mobile as well...

manic rune
tall tangle
#

Yep

manic rune
#

would it be funny if there was a whole trope of jokers making fun of ai artists
-# i personally think it can be controversial

#

like, that joker + an AI Artist joker will generate money but reduce your mult and chips because the quality is so ass 💔

sturdy compass
#

+$15 but *.25 chips and mult as final scoring step

manic rune
#

thats the spirit

plush cove
#

AI Joker
Every round, your selection limit is random (between 1 card and 8 cards, skewed towards being lower)

(because Four Fingers, but the fingers are horribly deformed by AI)

tall tangle
#

I also like the NFT card idea from D&DG
It's a card that loses value every time it scores

manic rune
#

why wouldnt you sell it immediately if thats the case tho

sturdy compass
tall tangle
manic rune
#

oh

#

-# do you have equipments

tall tangle
#

And if you get unlucky at some point, you might end up with an NFT in your deck.

tall tangle
manic rune
#

:3 cool

tall tangle
#

This doesn't have to do with modding development.

How hard is it to start making a Joker?

manic rune
#

as hard as reading

tall tangle
#

Ew

#

That's gross

manic rune
#

gros michel

tall tangle
#

Reading sucks

#

No no, GROSS. TWO s's

manic rune
#

sock and bussin

tall tangle
#

As in NASTY

#

Did you just... Sock and...

manic rune
#

two pairs