#šŸ’»ćƒ»modding-dev

1 messages Ā· Page 266 of 1

modern kindle
#

yet it crashes

red flower
#

so true

modern kindle
#

curious

hoary moss
#

Hello there, I have a question as I am trying to set up the balatro mod manager on Garuda Linux, it is an arch based distribution of Linux and I am going to send the entire backtrace text error. I got here from when I did the installation of the mod manager if anyone has installed the Balatro mod manager on any distribution of Linux. Any tips would be helpful. it is running and fully completely installed however, it is having issues. The main problem is that I have done everything to my knowledge on what to do. I’m binary divided all the way down to rebooting my PC through the terminal along with getting new bottles opened for the mod manager through many more forms of bottles this is just a part of the problems. I’m having on here with the mod manager for Linux.

brazen tusk
#

how would one specify unscored cards here

#

(not how ive done it)

red flower
#

you need to loop through full_hand and check which ones are not in scoring_hand

tepid crow
#

context.cardarea == 'unscored' might work?

red flower
#

or use the unscored optional

open aspen
#

it says this:

tepid crow
red flower
#

i know about it because i read the commits but i dont want to explain to people how to enable optional features šŸ™‚

tepid crow
#

does the smods wiki not explain optional features?

red flower
#

if it does I don't know where

tepid crow
#

oh they in fact do not

modern kindle
#

yea the wiki isnt exactl;y the most up to date with the here and now as far as im concerned

narrow iron
#

i think this function is my problem but idk why it wouldnt be working

tall apex
#

good night balatro modders

narrow iron
#

it seems to return false when it shouldnt

narrow iron
narrow iron
#

i use it to check if a card is in the table i give it, pool is the table, object is the card

tepid crow
red flower
tepid crow
#

and so does the whole return_value argument

narrow iron
tepid crow
#

wait, lua does that?

narrow iron
#

i was getting an error there and that addition fixed it, so i assume so

open aspen
chrome widget
#

Can you access the badge_colour from a mod as a property?

open aspen
#

why would it fail here when its calling the original method

red flower
#

yes but return false at the end as well

tepid crow
#

well yeah, but that doesn't impact your function's behavior

narrow iron
#

added the false return

tepid crow
narrow iron
red flower
narrow iron
#

returns the exact same values

red flower
#

return_value changed to false after the next loop

red flower
#

it's different logic

tepid crow
narrow iron
#

got set at the beginning, only changes to true when the if statement is true

red flower
#

let's say you have {1,2,3}
and you need to check for 2
return_value goes to false then true then false and returns false

narrow iron
#

return_value = false wasnt in the loop

#

it was before it

red flower
#

oh yeah i guess i misread

tepid crow
open aspen
#

like so?

narrow iron
#

a card generated by create_card

tepid crow
#

similarly, what is is_in_pool for?

red flower
#

oh then its object.config.center.key

narrow iron
#

im gonna give more cotext for this functions use

#

i wrote this to generate the cards for my booster packs

red flower
narrow iron
#

value_in_table does the same as is_in_pool but checks the values directly instead of the object.key

red flower
red flower
narrow iron
#

oh thats it?

#

well thats simple

red flower
#

well idk if thats it there might be more problems

narrow iron
#

do local functions exist? and if so should i make this one of those?

#

its only used in this file

red flower
#

if you plan to only call it in that file then yes

narrow iron
#

yep, did that

#

is this a bad implementation for what im doing?

red flower
#

what most mods do as well is create their own global table and add their utility functions there

#

but local functions are fine

#

I don't recommend globals because they can cause conflicts

narrow iron
#

its not in an infinite loop anymore! :D

red flower
#

that one is probably a wrong call to create_card

#

I'd recommend using the smods one because it's less confusing

narrow iron
#

i keep meaning to use the smods one but i forget sometimes

#

same error

#

this is the line that caused it

open aspen
#

ugh

#

i cant make sense of the drawing code

#

to fix it so scaling works from top left and not the center

red flower
narrow iron
#

the stuff i wrote?

red flower
#

yeah

narrow iron
red flower
#

the smods one takes a table with keys

narrow iron
#

ohhh

red flower
#

so SMODS.create_card({set="TerraPotion"})

#

and area=G.pack_cards i guess too

narrow iron
#

is there a way i can get the default card i set for my TerraPotion class?

#

instead of just writing it in

red flower
#

it's probably stored somewhere but I couldn't tell you where rn

narrow iron
#

okay

#

got the same error :/

red flower
#

can i see it again

narrow iron
midnight coyote
#

RAGGHHH

narrow iron
#

nice art

midnight coyote
#

its a ritual card

#

'Juxtaposition'

red flower
# narrow iron

that looks correct, are you sure the consumabletype is loaded?

narrow iron
#

potion has the consumabletype, booster has the function im working on

#

oh wait this was a different spot i think

#

this error is at function copy_card()

heady siren
#

How do I get jokers to not crash my game when trying to access a context inside the update function?

red flower
#

don't access a context in the update function?

narrow iron
heady siren
midnight coyote
#

can i make a card where its 50% for one outcome and 50% for the other but its one or the other

narrow iron
#

yea just use "if else"?

midnight coyote
#

but one outcome is guaranteed to happen, like a coinflip

open aspen
#

IM THE BEST

#

FUCK YEA

midnight coyote
#

like no matter what something happens

red flower
narrow iron
midnight coyote
rugged pier
#

What context would you use for a joker that randomly copies the abilities of one other joker that a player owns?

#

when blind is selected

narrow iron
#

stencil only run

narrow iron
# narrow iron

i think i figured it out and istg if it was this simple of a fix

rugged pier
#

stencil, invis joker, ankh, and this new joker

midnight coyote
#

i might make ā€˜cursed’ cards that destroy after they’re played 3 times

midnight coyote
#

or if the player attempts to change them back

narrow iron
#

thats an interesting idea

#

whats the upside?

midnight coyote
narrow iron
#

then why make them

midnight coyote
#

it’s a bad effect of a ritual card

slow crater
#

Does anyone know what the problem might be?

midnight coyote
#

it’s designed to be awful

narrow iron
#

well whats the good effect of that ritual card?

#

if i have no reason to use it why use it?

midnight coyote
#

or something like that

narrow iron
#

yea thats worth it

midnight coyote
#

in exchange for your entire hand becoming cursed

narrow iron
#

op

midnight coyote
#

if played right it could assist in deck thinning

narrow iron
#

that too

midnight coyote
#

like baiting it into making all the cards you don’t want disintegrate

narrow iron
midnight coyote
#

boss blind that makes all cards held in hand at the end of the hand cursed

#

would that be regular boss blind level or showdown level

#

because once a card is cursed it’s pretty much fucked

#

and isn’t an empty deck a lose condition

narrow iron
#

yep

midnight coyote
#

so yeah

#

maybe showdown? i’m not sure

#

or makes every card that exists on the field cursed

#

if i wanted to make it into a showdown

#

so it encourages you to hurry up and play big numbers

stark geode
#

i basically did a stencil only run once

#

double neg brainstorm into stencil

midnight coyote
#

i may add a slot machine joker

#

1 in 777 chance to win $777

#

every hand

stark geode
#

im pretty sure balatro multiplayer has one

narrow iron
midnight coyote
#

can i see your code

#

what are you trying to do?

#

something like this worked for me

#

you were there when we solved the problem 😭

narrow iron
#

weirdly thats actually not my issue

#

i thought it was

midnight coyote
#

use add card?

#

try add card

narrow iron
#

but its getting past that function

midnight coyote
#

oh hm

narrow iron
#

its returning the table

midnight coyote
#

idk then sorry

narrow iron
#

same lol

stark geode
#

or somthing like this

local card = create_card('Perkeo', G.jokers, nil,nil,nil,nil,'j_perkeo')
#

idk what youre doing

#

this is just how i make perkeos

narrow iron
#

i managed to fix the error with create_card that i was getting

red flower
red flower
stark geode
red flower
#

SMODS.create_card{key="j_perkeo", edition="e_negative"}

narrow iron
#

yes, it appears in that error?

#

oh

red flower
#

yes

narrow iron
#

its one of the cards that can be generated in this pack

brazen tusk
#

this is saying juice up is returning nil, not sure how to fix that here

red flower
red flower
narrow iron
red flower
#

get_potion_booster_cards returns a table with the cards right?

narrow iron
#

yep

red flower
#

that doesn't work there

#

you need to return a single card

narrow iron
#

wait what

#

does it call it once per card?

#

instead of once for all cards

red flower
#

yes

narrow iron
#

ah

red flower
#

there's an argument i to check where in the loop it is

edgy reef
#

yea

azure pilot
#

What determines if you can hook a function? It looks like I can hook end_round, but not start_run

narrow iron
red flower
narrow iron
#

how do i delete cards?

red flower
#

depends on the type of deletion but card:start_dissolve() is fine in most cases

azure pilot
#

When I try it crashes when the mod is loading, and the intellisense wants a parentheses after start_run to call the function, but that doesn't happen for end_round

narrow iron
#

i just need to remove the cards that dont end up in the card pack after being checked

red flower
#

you can do card:remove() too

red flower
midnight coyote
#

i was thinking about ā€˜unstable’ cards that have a 1 in 16 chance to destroy themselves and all cards adjacent to them, 4x mult

#

this is gros michel 1 in 16 btw so more like 1 in 2

open aspen
#

not that thats a bad thing

midnight coyote
open aspen
#

oh

#

that is incredibly good

midnight coyote
#

or incredibly bad

#

depending on what happens in the run

open aspen
#

i suppose

midnight coyote
#

if you are purposefully deck thinning it’s great

#

if you are playing off of one rank

open aspen
#

i mean

midnight coyote
#

and then that rank fucking kills itself

open aspen
#

like i would say

midnight coyote
#

1 in 50 is rolled on play AND discard

open aspen
#

its not really that bad

#

cause u can control what u have it on

midnight coyote
#

it’s rolled any time the card is scored

open aspen
#

and even if u somehow got it randomly

midnight coyote
open aspen
#

u can hanged man it

midnight coyote
#

boss blind that makes some cards unstable

#

just randomly

open aspen
#

dont play em if u dont have to

#

i think

#

thats a good way of making it harder

#

tho

#

i actually like that a lot

midnight coyote
open aspen
#

the blind scaling is higher

midnight coyote
#

baron builds will die 😭

open aspen
#

yes

#

unless they got reroll

midnight coyote
#

right

open aspen
#

i mean

#

if ur going endgame baron

midnight coyote
#

baron mains watching another boss blind counter their strat

open aspen
#

u were probably going to die eventually if u never got reroll anyways

#

because plant

midnight coyote
#

there’s also curses that destroy themself after being played thrice o

open aspen
#

i like this

midnight coyote
#

or if the enhancement is changed

open aspen
#

because it could fuck you up if u got only reroll and not retcon

#

reroll plant into this boss

#

and then hit the 1/50

midnight coyote
open aspen
#

yea

midnight coyote
#

then faces don’t work anymore

open aspen
#

either way

#

its bad

#

probbaly less bad if u roll plant to this

midnight coyote
#

it’s fun making card enhancements that hurt

open aspen
#

but still bad

open aspen
midnight coyote
#

or ā€˜enhancements’

open aspen
#

stickers that are very helpful and nice

midnight coyote
#

i have one enhancement that’s good called ā€˜galactical’

#

it’s a 1 in 20 chance to upgrade hand when played

#

like space joker

#

and ofc it applies right with 6s

open aspen
#

a lot of oa6 is needed

midnight coyote
#

but there’s a joker that like midas mask but for galactical

#

the Alien Joker

#

so they’re easy to stock up on

open aspen
#

ah

#

very nice

midnight coyote
#

i have a really nice mod cooking up

#

i also have a Bomb Joker that does what unstable cards do but for jokers

#

higher xMult

#

but it blows up itself and jokers around it if you get unlucky

#

making blueprinting it really risky

open aspen
#

im adding a bomb sticker too :)

midnight coyote
#

the bomb joker with bomb sticker

#

i think for my Ritual cards

open aspen
#

its for playing cards only tho

midnight coyote
#

the tag to get a mega pack is gonna be the ā€˜pentagram tag’

narrow iron
azure pilot
midnight coyote
#

here’s one of the Rituals btw

#

it destroys a random joker and grants 2 random Ritual Cards

midnight coyote
#

here is juxtaposition

midnight coyote
#

50% shot to dupe a joker

open aspen
#

u do

midnight coyote
#

50% shot to destroy it

open aspen
#

if ur hooking

#

: implies there is a self object being passed as the first variable

midnight coyote
#

ah yes

#

luaisms

open aspen
#

as another note, if ur hook returns the original function you need to return self as the first argument before the other arguments

midnight coyote
#

also there’s Blood Pact that makes a eternal rare joker

azure pilot
#

And you have to add self when you call the original function from in the hook function

#

As I just found out lol

stray warren
#

how do you access the key of a specific Joker in the calculate function? Like this value in particular without the mod prefix or j_

#

I forgor

midnight coyote
#

added my mod to my nickname like it seems everyone here does

narrow iron
#

crap its still there

red flower
stray warren
#

Bingo, that's it. Thanks

midnight coyote
#

my phone ain’t charging desperate times call for desperate measures

gilded narwhal
errant fulcrum
gilded narwhal
#

30^1.5 = 164.3
100^1.5 = 1000
500^1.5 = 11,180

#

its a LITTLE powerful

errant fulcrum
#

Yea that one may be a little unbalanced relative to vanilla

midnight coyote
#

my phone started charging

narrow iron
#

i love when the documentation lies :D /bout to crash out

#

well

#

hmmm

#

maybe not

#

15 minutes on a single typo

gilded narwhal
#

okay
30^1.3 = 83, around 2.5X
300^1.3, = 1660, around 5X
1000^1.3 = 7943, around 8X

midnight coyote
#

i low key might write some more documentation

#

or try to

#

it’s open source

#

if i can’t put it in main then ill make it elsewhere

rugged pier
#
calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then    
            for k, v in ipairs(context.scoring_hand) do
                if SMODS.has_enhancement(v, 'm_lucky') then
                    return {
                        mult = card.ability.extra.mult,
                        dollars = card.ability.extra.gold,
                        v:set_ability(G.P_CENTERS.c_base, nil, true)
                    }
                end
            end
        end
    end

I am trying to create a function that checks if a card is lucky, if it is, it gives both 20 mult and 20 dollars but removes enhancement.

The current implementation removes the enhancement first before giving the bonus mult and gold, is there a way to reverse the order?

red flower
#

also you don't need to return the set_ability call, it does nothing

rugged pier
red flower
azure pilot
#

lol, would it be feasible to limit the suit pool to just 3 suits?

daring fern
#

Is there a way to make negative have no extra cost?

midnight coyote
#

wouldn’t an event let you delay the effect you want later

narrow iron
#

so i have this consumable and a few others that all should be added to the 'HealingPotion' pool but G.P_CENTER_POOLS['HealingPotion'] is blank

midnight coyote
#

if i’m not wrong

rugged pier
heady siren
#

Is it possible to make an enhanced card do something from inside the deck? When I do context.end_of_round it doesn't run anything for deck cards

rugged pier
#
calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then    
            for k, v in ipairs(context.scoring_hand) do
                if SMODS.has_enhancement(v, 'm_lucky') then
                    return {
                        mult = card.ability.extra.mult,
                        dollars = card.ability.extra.gold,
                    },
                    G.E_MANAGER:add_event(Event({
                        func = function()
                            if v.ability.name == 'Glass Card' then 
                                v:shatter()
                            else
                                v:start_dissolve(nil)
                            end
                            return true
                        end
                    }))
                end
            end
        end
    end

My current implementation, the lucky card immediately gets destroyed and the +20 mult, +20 gold happens over empty space...

#

I suppose, I just have to time it takes for a card to score and add a delay accordingly?

heady siren
#

Might not be the exact order you want, but that worked for me

rugged pier
dense adder
#

is there a way to multiply chips?

rugged pier
#

joke answer: yes, it is called mult

dense adder
#

fair.

daring fern
#

There is also xchips.

dense adder
#

let me try that again it was adding last i used xchips

rugged pier
# heady siren To do something similar for my own thing I just made it do it on the final_scori...
    calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then    
            for k, v in ipairs(context.scoring_hand) do
                if SMODS.has_enhancement(v, 'm_lucky') then
                    return {
                        mult = card.ability.extra.mult,
                        dollars = card.ability.extra.gold,
                    }
                end
            end
        end
        if context.final_scoring_step then
            for k, v in ipairs(context.scoring_hand) do
                if SMODS.has_enhancement(v, 'm_lucky') then
                    if v.ability.name == 'Glass Card' then 
                        v:shatter()
                    else
                        v:start_dissolve(nil)
                    end
                end
            end
        end
    end

It is being destroyed immediately here

dense adder
rugged pier
#

before scoring

noble schooner
#

wait a minute...

rugged pier
#

and the scoring happens after the destruction animation lol

noble schooner
#

I just realized something

heady siren
noble schooner
#

can't you make double resolution sprites and have pixel smoothing be a toggle between regular 71x95 and enhanced 142x190 sprites? :O

heady siren
noble schooner
#

so it's like 2 texture packs in 1

celest aspen
#

anyone know the code to have a joker destroy specific scored cards? I have a joker that I want to score cards, and then destroy them. I tried

        if v:is_suit("Hearts") or v:is_suit("Diamonds") then
          v:start_dissolve()
        end
      end```
#

but it destroys the cards at the beginning of scoring

rugged pier
rugged pier
heady siren
# celest aspen anyone know the code to have a joker destroy specific scored cards? I have a jok...

Dissolve =/= deleting, use the context.destroy_cards, this is my code for making it work


            if card.ability.extra.joker_triggers == 0 then

                for k,v in pairs(G.play.cards) do

                    G.E_MANAGER:add_event(Event({
                        func = function()
                            v:start_dissolve({G.C.CONSUMED, G.C.WHITE, G.C.WHITE}, true, 5)
                            return true
                        end,
                        blocking = true
                    }))
                    delay(0.2)
                    
                end

            end

            card.ability.extra.joker_triggers = 1

            delay(0.5)

            return {remove = true}

        end```
#

Change the colors for the dissolve though

rugged pier
# heady siren Inside context.individual
calculate = function(self, card, context)
        if context.individual and context.cardarea == G.play then    
            for k, v in ipairs(context.scoring_hand) do
                if SMODS.has_enhancement(v, 'm_lucky') then
                    return {
                        mult = card.ability.extra.mult,
                        dollars = card.ability.extra.gold,
                    }
                end
            end
            G.E_MANAGER:add_event(Event({
                func = function()
                    if context.final_scoring_step then
                        for k, v in ipairs(context.scoring_hand) do
                            if SMODS.has_enhancement(v, 'm_lucky') then
                                if v.ability.name == 'Glass Card' then 
                                    v:shatter()
                                else
                                    v:start_dissolve(nil)
                                end
                            end
                        end
                    end
                    return true
                end
            }))
        end
    end

I did this but it just discards without destroying the card

heady siren
heady siren
rose dragon
#

making a joker only for this pun (ignore how the joker color is incorrect)

noble schooner
#

someone should make a texture pack for this ngl

daring fern
#

Is there a way to change the colour of xmult on playing cards instead of just being red?

rose dragon
rugged pier
daring fern
noble schooner
#

and the game doesn't look for if they're the exact same sprites

#

it just looks for if they're the same file name

#

so if pixel smoothing's on, you can use the 2x textures as actual double-resolution textures

celest aspen
rugged pier
noble schooner
#

it's still 71x95 in the code

rugged pier
#

the game automatically switches the atlas?

noble schooner
#

yeah

rugged pier
#

oh sick

noble schooner
#

it'll automatically switch to the 142x190 textures if you turn on pixel smoothing

#

so it turns the pixel smoothing toggle to a texture resolution toggle

#

which is already what it is, ppl just haven't realized that yet ig lol

#

this is HUGE for the modding and texture pack communities!!!!!

rugged pier
#

imagine adding in easter eggs for if you have it on vs off

#

lol

noble schooner
#

yeah lol

#

I honestly might make a texture pack that's just an enhanced version of the regular textures for pixel smoothing

rugged pier
noble schooner
#

(andalsothatmakesbrainstormlookleftbcwhythefuckdoesitnot)

rugged pier
noble schooner
#

yeah like

#

blueprint looks right

#

why doesn't brainstorm look left

#

smh

daring fern
heady siren
chrome widget
#

Does SMODS automatically create a pool for a new consumable type when you use SMODS.ConsumableType to create one?

narrow iron
#

yes

chrome widget
#

Great

heady siren
#

How the hell do I make an enhanced card just give mult, this doesn't work

daring fern
heady siren
#

I did, it didn't work

#

Wait

#

In the config itself, not extra

daring fern
heady siren
#

Spread it's enhancement to cards in the deck of the same suit or the same rank

#

It works when held in hand, but not if there's none left in the hand

rugged pier
#

there is so much potential there

#

i may or may not steal that idea for something i want to implement in the future

daring fern
rugged pier
heady siren
#

This is my current code, and it only runs if the card is held in hand

daring fern
#

Are you hooking calculate?

heady siren
#

It is inside calculate yes

#

I've made 11 jokers so far I hope I'd at least know to do that

forest ivy
#

gang, slide some mods that are adding some new stakes

daring fern
heady siren
#

Okay so apparently I'm not hooking calculate

#

I'm just using the normal calculate function

daring fern
#

You need to do something like this.

heady siren
#

Outside of any objects?

daring fern
heady siren
#

And I'm guessing slap a if SMODS.has_enhancement(v, 'm_aether_flesh') then card = v inside?

daring fern
#

I think so.

#

I think you also need to change every thing inside the calculate hook to be self instead of card.

heady siren
#

Would this work?

#

Jokers are not triggering at all now

#

Wait, it's because I didn't add the args

daring fern
#

I think it should work.

heady siren
#

It's not doing anything

#

I'm doing enhancements

#

Should it be in calculate_joker?

daring fern
#

Calculate_joker triggers whenever a context happens.

#

I think.

#

You need to change self.ability.extra.infect_odds to G.P_CENTERS.m_aether_flesh.config.extra.infect_odds

heady siren
#

They still aren't doing anything

daring fern
#

Is it working?

heady siren
daring fern
#

Oh.

heady siren
#

This is also for some reason isn't getting a tally of the cards in your deck

brazen tusk
#

does anyone know how i can set jackpot to card.ability.extra_value only when it hits the return rather than being constantly updated?

daring fern
heady siren
#

So it should be running at all times that the joker is on-screen

daring fern
heady siren
#

It's also not getting a tally of how many jokers of the same type you have

daring fern
heady siren
#

I... am not very smart

lethal ridge
#

Can anyone explain
context.cardarea == G.play and context.main_scoring?

#

I dont really understand

daring fern
heady siren
#

It will run when the main scoring logic is happening, and it'll do stuff to the cards you're playing

lethal ridge
daring fern
lethal ridge
daring fern
#

I tried it and it only works with scored cards.

#

But it still includes unscored cards.

lethal ridge
#

I should try too

solar eagle
#

with the new smods beta release, bettercalc 2.3 apparently allows context.ignore_debuff to allow debuffed cards to score in a context - is this a context i check for or is it a value i set? i can't figure it out

#

my goal is to score an effect on debuffed cards and only debuffed cards

manic rune
#

how doooo i get the big text on the screen like blinds have

daring fern
#

There is also this ```lua
if G.GAME.blind and G.boss_throw_hand and self.STATE == self.STATES.SELECTING_HAND then
if not self.boss_warning_text then
self.boss_warning_text = UIBox{
definition =
{n=G.UIT.ROOT, config = {align = 'cm', colour = G.C.CLEAR, padding = 0.2}, nodes={
{n=G.UIT.R, config = {align = 'cm', maxw = 1}, nodes={
{n=G.UIT.O, config={object = DynaText({scale = 0.7, string = localize('ph_unscored_hand'), maxw = 9, colours = {G.C.WHITE},float = true, shadow = true, silent = true, pop_in = 0, pop_in_rate = 6})}},
}},
{n=G.UIT.R, config = {align = 'cm', maxw = 1}, nodes={
{n=G.UIT.O, config={object = DynaText({scale = 0.6, string = G.GAME.blind:get_loc_debuff_text(), maxw = 9, colours = {G.C.WHITE},float = true, shadow = true, silent = true, pop_in = 0, pop_in_rate = 6})}},
}}
}},
config = {
align = 'cm',
offset ={x=0,y=-3.1},
major = G.play,
}
}
self.boss_warning_text.attention_text = true
self.boss_warning_text.states.collide.can = false
G.GAME.blind.children.animatedSprite:juice_up(0.05, 0.02)
play_sound('chips1', math.random()*0.1 + 0.55, 0.12)
end
else
G.boss_throw_hand = nil
if self.boss_warning_text then
self.boss_warning_text:remove()
self.boss_warning_text = nil
end
end

fading geyser
#

Hi, just wondering if anyone would be able to help. I'm making a joker that draws all Spades to hand on the first hand, and I've been trying for about a week now and just can't get it right. I could be going about this wrong, but because the draw_card function will just draw a random card if it's not in the deck, I'm checking if the deck contains any of the spade cards and then drawing the correct one to hand. However, it's not detecting them in the deck when I check. Would anyone know how to fix this?

brazen tusk
fading geyser
#

yeah, that's what I'm trying to do, and I started by testing if it could detect a 2 of Spades and it couldn't

sturdy compass
#

G.deck.cards

#

Try that

fading geyser
#

I did

#

i then deleted it to see if G.deck would work, but no

#

I've tried just having S_2 instead of G.P_CARDS.S_2 as well

brazen tusk
#

gimme a sec to try and cook

fading geyser
#

nw

sturdy compass
#

If I were on my laptop rn I’d probably be able to bang smthn out

fading geyser
#

I've been looking pretty heavily through the game files, and talked with a friend of mine who's an expert in lua, and we couldn't figure it out

daring fern
#

What if you hooked CardArea.shuffle?

fading geyser
#

I've tried looking at The Goad or Effarclair from cryptid, but they work differently

fading geyser
uncut grail
#

no clue why this is happening, it's driving me insane!
can somebody help if possible?

SMODS.Consumable{ -- Exorcism
    set = 'Spectral', atlas = 'bpp_tarots',
    key = 'exorcism',

    loc_txt = {
        name = 'Exorcism',
        text = { 
            'Turns a random',
            '{C:attention}Consumable{} {C:dark_edition}Negative{}'
        } 
    },

    can_use = function(self)
        if #G.consumeables.cards < 2 then
            return false
        end

        local bank = {}
        for i=1, #G.consumeables.cards do
            local card = G.consumeables.cards[i]
            if (not card.edition or (card.edition and not card.edition.negative)) then
                table.insert(bank, card) 
            end
        end

        return #bank > 0
    end,

    use = function(self)
        local bank = {}
        for i=1, #G.consumeables.cards do
            local card = G.consumeables.cards[i]
            if (not card.edition or (card.edition and not card.edition.negative)) then
                table.insert(bank, card) 
            end
        end

        local card = pseudorandom_element(bank, pseudoseed('exorcism'))
        card:set_edition({ negative = true })

        print('a') -- THIS SHOWS UP BY THE WAY (even with the error)
    end,

    discovered = true,

    config = {},
    pos = { x = 1, y = 0 },
}

https://cdn.discordapp.com/attachments/1233186615086813277/1354183080486768944/2025-03-26_00-58-43.mp4?ex=67e45cc5&is=67e30b45&hm=aa7f2d06771fc62b15c5335a057dc4c416cf3cb7df532af9874f1e9129496a4f&

daring fern
uncut grail
#

pretty sure it has 4 elements wehn i print it

#

(#bank is four)

lament agate
#

need help

#
version = "1.0.0"
priority = 0
# LOEVlTy

[[patches]]
[patches.pattern]
target = "game.lua"
pattern = '''function Game:update_game_over(dt)'''
position = "after"
payload = '''
play_sound ('audjung_youdied1', 1.0, 1.0)
'''
match_indent = true
times = 1
#

it keeps looping when the game over screen happens

#

i just need it to happen once

uncut grail
lament agate
#

times thing doesnt work i presume

brazen tusk
# fading geyser nw

i might be tweaking with this but give it a go

for i = 1, #G.deck.cards do
G.deck.cards[i]:is_suit('Spades') then
draw_from_deck_to_hand
#

ĀÆ_(惄)_/ĀÆ

#

oh wait

fading geyser
#

what's wrong

#

wait I think i know

#

say i = 3 and the third card is spades, it draws that card and removes it, changing the list and the order, throwing things off

lavish lake
#

Guys does anybody know how to make a consumable level up most played hand in a run 2 times?

fading geyser
#

run it twice?

#

idk how leveling up hands works sorry

brazen tusk
fading geyser
#

would this work? If I define a variable as n...

for i = 1, #G.deck.cards do
G.deck.cards[i]:is_suit('Spades') then
n = n + 1

and then I repeat drawing cards per n

sturdy compass
#

If you wanna be even more funny, you could do a for in loop

#

But yes that implementation should work

fading geyser
#

okay I'll give it a go

brazen tusk
fading geyser
#

how do I tell it to draw a card with suit spades?

#

as opposed to the whole card key?

brazen tusk
#

it should draw the card its currently on in the loop as far as i know

fading geyser
#

I'm doing it in a separate loop

#

plus I want to know how to do it as a general action

daring fern
# lavish lake Anybody?

Try this. ```lua
local tempplayed = 0
local hand
for k, v in pairs(G.GAME.hands) do
if v.played > tempplayed and v.visible then
tempplayed = v.played
hand = k
end
end
if hand then
level_up_hand(card, hand, nil, 2)
end

fading geyser
manic rune
daring fern
# manic rune weird, this doesnt seem to work, hm

Well this is the entire thing ```lua
G.E_MANAGER:add_event(Event({
func = (function()
local text = localize('k_balanced')
play_sound('gong', 0.94, 0.3)
play_sound('gong', 0.94*1.5, 0.2)
play_sound('tarot1', 1.5)
ease_colour(G.C.UI_CHIPS, {0.8, 0.45, 0.85, 1})
ease_colour(G.C.UI_MULT, {0.8, 0.45, 0.85, 1})
attention_text({
scale = 1.4, text = text, hold = 2, align = 'cm', offset = {x = 0,y = -2.7},major = G.play
})
G.E_MANAGER:add_event(Event({
trigger = 'after',
blockable = false,
blocking = false,
delay = 4.3,
func = (function()
ease_colour(G.C.UI_CHIPS, G.C.BLUE, 2)
ease_colour(G.C.UI_MULT, G.C.RED, 2)
return true
end)
}))
G.E_MANAGER:add_event(Event({
trigger = 'after',
blockable = false,
blocking = false,
no_delete = true,
delay = 6.3,
func = (function()
G.C.UI_CHIPS[1], G.C.UI_CHIPS[2], G.C.UI_CHIPS[3], G.C.UI_CHIPS[4] = G.C.BLUE[1], G.C.BLUE[2], G.C.BLUE[3], G.C.BLUE[4]
G.C.UI_MULT[1], G.C.UI_MULT[2], G.C.UI_MULT[3], G.C.UI_MULT[4] = G.C.RED[1], G.C.RED[2], G.C.RED[3], G.C.RED[4]
return true
end)
}))
return true
end)
}))

uncut grail
#

ok so apparently this negative thing is just a problem with steamodded

hybrid iris
#

i swear im on the verge of something but like kjhdskfjhgkjhsdkgjhsdkfhgksdfhdkjshdf

#

ive Almost got it

uncut grail
#

nvm, this is a saturn problem

#

lesson learned: don't make mods with saturn on

fading geyser
#

I just need to figure out how to draw specifically spades

#

If anyone could help, please let me know

tall wharf
#

idk how many times i have to repeat this

uncut grail
#

yeah... i figured

daring fern
#

Is there way to check what card a blueprint is copying even if there are multiple blueprints?

pale venture
#

You already have the for loop figured out

fading geyser
#

I just need a general way of drawing a card with a suit instead of a card key

forest ivy
pale venture
#

You might not even need to create a table actually, let me share some code from my mod

#

This is what i did to draw ALL cards from the deck with a certain rank or suit

#

You just need to break out of loop once you've drawn the number of cards you wanted in your case

fading geyser
#

Thank you!!

daring fern
# fading geyser in what way

It looks like you've already solved your issue but there is also this ```lua
local oldshuffle = CardArea.shuffle
function CardArea:shuffle(_seed)
if self == G.deck then
local spades = {}
local notspades = {}
local cards = self.cards
for i, k in pairs(cards) do
local priority = 0
if k:is_suit("Spades") then
priority = 1
end
if priority > 0 then
spades[#spades+1] = k
else
notspades[#notspades+1] = k
end
end
pseudoshuffle(spades, pseudoseed(_seed or 'shuffle'))
pseudoshuffle(notspades, pseudoseed(_seed or 'shuffle'))
for _, card in ipairs(spades) do
table.insert(notspades, card)
end
self.cards = notspades
self:set_ranks()
else
oldshuffle(self, _seed)
end
end

brazen tusk
#

is this effect terrible šŸ’€

#

i can't decide if i like it or not

next timber
#

i think it sounds good

pale venture
#

Yeah it's pretty cool

brazen tusk
#

ty, would you say its an uncommon?

next timber
#

i think that makes sense yeah

lament agate
#

which lua is the one responsible for playing the chips and mult sound effects

#

is it game or back

#

or is it main

daring fern
fading geyser
brazen tusk
fading geyser
#

Maybe make it x1.75 or smth

manic rune
#

nah, i think X1.5 is pretty balanced already

fading geyser
#

So it's different and still a good effect

lament agate
manic rune
#

ur getting an enhancement which gives X1.5 Mult with no downsides

fading geyser
#

True

brazen tusk
#

yeah and you can still add polychrome on top

manic rune
#

exactly

fading geyser
#

Up to personal preference, I prefer my mods to be a bit more broken so that's what I'd do, but those are still good points

hushed field
#

vanilla-plus enjoyers when a cryptid-enjoyer shows up

brazen tusk
#

I'm trying to keep mine somewhat balanced to vanilla

fading geyser
lament agate
fading geyser
#

Somebody make this a meme

hushed field
lament agate
#

DAMN

manic rune
#

i have no clue what category my mod falls under

#

:3

lament agate
brazen tusk
#

on the subject of balance, what we thinking about this?

manic rune
#

the functions folder in balatro, probably?

lament agate
#

thanks

manic rune
#

-# no like, im guessing

#

-# i dont remember which folder

fading geyser
brazen tusk
#

the card

manic rune
hushed field
fading geyser
brazen tusk
#

1 otherwise youd be losing mult

manic rune
#

1X, duh

fading geyser
#

Yeah but if you started at 0x then you'd need to build it up before it's good. That'd be a bit more balanced

#

Again, personal preference

hushed field
#

X0 is so deadly that you never want to make use of it, haha

brazen tusk
#

I did a playthrough with having it shop 1 and it didn't seem that strong, and then i got sock and buskin AND hanging chad

fading geyser
#

By start at 0x, I mean that it has no effect until the card gets the initial 0.2x, so actually it starts at 0.2x

manic rune
fading geyser
#

It depends how much effort you want put into it to make it good

manic rune
#

you can only increase its mult by X0.2 once per round, since you are supposed to play it unless you got blueprint

fading geyser
#

But either way it's a really cool effect, great idea

manic rune
#

you need 5 rounds to even get one card to X1, and thats if you even manage to draw it consistently every time

lament agate
#

ah shit

hushed field
#

i'm going to postpone working on this create_card hijacking and just make some boss blinds today

brazen tusk
lament agate
#

cant find the lua where theyre responsible for playing the dagger sound

crisp coral
#

"it wasn't that strong until i forced it to become photochad"

brazen tusk
#

thought that was a bit much

lament agate
#

is it in card.lua?

manic rune
#

me when fucking

photochad

manic rune
hushed field
brazen tusk
#

LMAO

manic rune
#

😭?

hushed field
#

balatro goes kink

manic rune
#

NAHHH YOUR HOLDING THAT AGAINST ME NOW

#

šŸ’”

fading geyser
#

I've always wondered why Hanging Chad is Common

manic rune
#

its uh

lament agate
manic rune
#

certainly the common joker of all time

#

:3

fading geyser
#

Retrigger a card twice is op

manic rune
#

id still argue riff raff is the best common joker tbh

hushed field
#

btw bepis. gonna test your mod out today because I have no work-work to do! excited to try it and finally get back to my literature degree roots and just do a bunch of reading

next timber
#

i should give my mod an achievement/unlock/whatever for getting the Big edition on hanging chad

fading geyser
manic rune
brazen tusk
manic rune
#

shouldnt have any actual impact on the gameplay itself though

manic rune
#

:3

hushed field
fading geyser
manic rune
#

its inconsistent

hushed field
next timber
#

i have become kermit at the whims of whom i am matching pfps with

fading geyser
tall wharf
#

hi

next timber
#

hi aiko

manic rune
#

but wait

hushed field
#

hey hey aiko! I hope you're less tired today

tall wharf
#

did anyone say anything about boss blinds

manic rune
#

what happens if you retrigger a lucky card

fading geyser
tall wharf
hushed field
hushed field
fading geyser
manic rune
#

and the rng rolls successfully like 2 times

tall wharf
#

but i was playing video game

brazen tusk
#

game wont allow it bc 3 oops's would make it go infinite

manic rune
#

true...

next timber
#

chat what do we think of this edition

hushed field
#

getting the first of these set up today, then just hoping it'll make for fun ones, haha

#

I don't have art yet for the other 14 I have planned

next timber
#

ooh movie villain jokers?

hushed field
#

boss blinds

next timber
#

not jokers boss blinds im stupid

#

lol

hushed field
#

Channeling my inner Aiko and seeing how quirked up these'll get

manic rune
next timber
#

it is parasite

manic rune
next timber
#

it applies itself to a new joker when the one it's on runs out

brazen tusk
manic rune
#

question, does everything in G.GAME.blind gets removed when you enter a new boss blind?

hushed field
#

there was no documentation about the implementation for boss blinds, right?

lament agate
#

Oops! The game crashed:
Thread error (Thread: 0x012d9e3bf820)

engine/sound_manager.lua:62: bad argument #1 to 'newDecoder' (filename, File, or FileData expected)
stack traceback:
[C]: in function 'newDecoder'
engine/sound_manager.lua:62: in function 'PLAY_SOUND'
engine/sound_manager.lua:197: in main chunk

Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~ALPHA-1304a-STEAMODDED
LƖVE Version: 11.5.0
Lovely Version: 0.7.1
Steamodded Mods:
1: Copyrighted by Nxkoo [ID: audio_jungle, Version: 4.2.0, Uses Lovely]
2: Incantation by jenwalter666, MathIsFun_ [ID: incantation, Priority: 9e+301, Version: 0.5.10, Uses Lovely]
3: DebugPlus by WilsontheWolf [ID: DebugPlus, Version: 1.3.1, Uses Lovely]
Lovely Mods:

Stack Traceback

(3) LƖVE function at file 'boot.lua:352' (best guess)
Local variables:
errhand = Lua function '(LƖVE Function)' (defined at line 553 of chunk [lovely debugplus.console "console.lua"])
handler = Lua function '(LƖVE Function)' (defined at line 553 of chunk [lovely debugplus.console "console.lua"])
(4) upvalue C function 'error'
(5) LƖVE function at file 'callbacks.lua:181' (best guess)
Local variables:
t = Thread: 0x012d9e3bf820
err = string: "engine/sound_manager.lua:62: bad argument #1 to 'newDecoder' (filename, File, or FileData expected)
stack traceback:
\9[C]: in function 'newDecoder'
\9engine/sound_manager.lua:62: in function 'PLAY_SOUND'
\9engine/sound_manager.lua:197: in main chunk"
(6) Lua function '?' at file 'main.lua:923' (best guess)
Local variables:
_n = nil
_a = nil
_b = nil
_c = nil
_d = nil
_e = nil
_f = nil
touched = nil
(for generator) = C function: 0x1c1dfb10
(for state) = nil
(for control) = string: "threaderror"
name = string: "threaderror"
a = Thread: 0x012d9e3bf820
b = string: "engine/sound_manager.lua:62: bad argument #1 to 'newDecoder' (filename, File, or FileData expected)
stack traceback:
\9[C]: in function 'newDecoder'
\9engine/sound_manager.lua:62: in function 'PLAY_SOUND'
\9engine/sound_manager.lua:197: in main chunk"
c = nil
d = nil
e = nil
f = nil
(7) global C function 'xpcall'
(8) LƖVE function at file 'boot.lua:377' (best guess)
Local variables:
func = Lua function '?' (defined at line 906 of chunk main.lua)
inerror = boolean: true
deferErrhand = Lua function '(LƖVE Function)' (defined at line 348 of chunk [love "boot.lua"])
earlyinit = Lua function '(LƖVE Function)' (defined at line 355 of chunk [love "boot.lua"])

#

what the hell is this

crisp coral
#

sound doesn't exist

lament agate
#

how though

#

its right there

manic rune
#

this is probably not necessary, if every var in G.GAME.blind resets

heady siren
#

How do I prevent an enhancement from appearing in booster packs?

crisp coral
crisp coral
#

with the mod pref

lament agate
#

mod pref?

crisp coral
#

prefix

heady siren
lament agate
#

yeah, audjung_gong

#

the keys are audjung

daring fern
brazen tusk
#

idk why but gong.ogg is quite comical

lament agate
heady siren
heady siren
lament agate
#

yes exactly

brazen tusk
daring fern
heady siren
#

Man I wish Taco Bell was real

lament agate
#

everything works fine

#

wait no

#

fuck

#

I MEAN SLICE

#

TO MOD THE SLICE IN

heady siren
#

I'm just working on The Flesh That Hates but it's a joker

lament agate
#

yeah its there

#

slice1

hushed field
#

I currently have the Hannibal Lecter blind set up to destroy the final hand of a round, buuuut should I just make it turn every joker perishable like Gros Michel so it starts 'eating' jokers šŸ¤”

lament agate
#

and the patch too

heady siren
#

Do .wav files work?

lament agate
#

oh

#

oh fuck im so dumb

#

AAAAAAAAAAAA

#

its ogg,,,,,,,,,,,,,,,,,,,,,,

#

how am i real

#

why am i so dumb

heady siren
#

Good jorb

#

You even put the path in and everything

lament agate
#

still doesnt work

lament agate
heady siren
#

Did you change the file into an ogg using audio software?

lament agate
heady siren
#

Did you change the actual file path in-game?

hushed field
#

I'll keep it as a destroy effect now, I reckon, just because that feels a bit more balanced

heady siren
#

No idea then

lament agate
heady siren
#

Maybe you cursed it

lament agate
#

im asking reddit

#

also holy shit

#

i was trying to patch the chips and mult sounds

#

but holy

#

there's alot

#

how am i supposed to patch all of that

#

does the patch cover all lines that contain the pattern or

hushed field
#

@tall wharf you said you stored all your data in the debuff, right?

brazen tusk
#

i think my pixel art smoothing has just, stopped working?

#

yeah todd is not usually looking that crispy

hushed field
#

Do any of the variables you set in a blind save and load?

crisp coral
#

nope, hook to save and load

#

well. hands_sub and discards_sub both save

midnight coyote
#

if i’m not mistaken, the fire effects show up when the total number of chips you have currently earned in your hand exceeds the total required to pass the round, yeah?

pale venture
#

Yup

midnight coyote
#

then it grows as you get more and more

manic rune
#

how do i check if a joker is debuffed

midnight coyote
#

so take it with salt

manic rune
#

not even a grain of salt, straight up salt?? 😭

#

-# i will try that though, thanks

hushed field
#

Thanks Myst! I'll set up a hook once I get to the blinds that need it, I guess!

midnight coyote
#

i’m just throwing it out there

manic rune
#

:3 ic

hushed field
#

I think it's debuff, not debuffed but yeah

daring fern
midnight coyote
#

hm alright

#

well i learned something today

hushed field
#

does debug plus allow you to force a boss blind to show up?

midnight coyote
manic rune
#

yes

hushed field
#

I assume through the console it for sure does, but I'm not sure what the command would be

midnight coyote
#

okay

manic rune
#

turn on Collection, and press 3 on the blind

hushed field
#

oh, that works?

midnight coyote
#

that’s what i thought

manic rune
#

that works, mhm

#

im working on my boss blind rn so i can confirm it works

midnight coyote
#

does this work for showdowns too?

manic rune
#

:3

manic rune
midnight coyote
#

in antes that aren’t every 8th one

hushed field
#

That's the scarier truth of my keyboard being broken

midnight coyote
hushed field
#

Oh no wait, I'm not on my test mod folder, so debugplus isn't even on, haha

manic rune
midnight coyote
#

and then just bind a macro to press 3 to something else

daring fern
midnight coyote
#

showdowns are every 8th ante, right

hushed field
#

if my 3 button'd stopped working, I'd honestly just grab the bike and go buy a new keyboard real quick, haha. But the keyboard works, I just don't

midnight coyote
#

i haven’t made it to ante 16 yet so i don’t know šŸ˜µā€šŸ’«

midnight coyote
hushed field
hushed field
midnight coyote
#

average selfless L /j

zealous glen
#

That means you need to rob the library

midnight coyote
#

like mission impossible to steal a $5 keyboard

hushed field
#

my job pays like shit but luckily it pays enough to buy a not terrible keyboard every few years šŸ˜›

zealous glen
#

I’m reminded of my first year in college when a professor asked us for help emptying out a computer lab then the dean showed up and asked up to put it back

uncut grail
#

hey, uh...
wanted to ask why the consumable does not see self (self returns nil)

use = function(self)
        G.E_MANAGER:add_event(Event({
            delay = 0.4, 
            trigger = 'after', 
            func = function()
                local bank = {}
                for i = 1, #G.jokers.cards do
                    local card = G.jokers.cards[i]
                    if (not card.ability.eternal) then
                        table.insert(bank, card)
                    end
                end

                local card = pseudorandom_element(bank, pseudoseed('infinity'))
                local sticker = SMODS.Stickers['eternal']

                -- add an eternal tag
                play_sound('gold_seal', 1.2, 0.4)
                card:juice_up(1, 0.5)
                sticker:apply(card, true)

                -- double money
                play_sound('timpani')
                self:juice_up(0.3, 0.5) -- here
                ease_dollars(math.max(0, math.min(G.GAME.dollars, self.config.limit)), true) -- and here

                return true
            end
        }))

        delay(0.4)
    end,    
manic rune
#

yall ever stole a mouse from the it room before? :3

zealous glen
#

What IT room balatrojoker

hushed field
midnight coyote
#

no but one time i got back from my school and i looked in my bag to find a laptop charger.

zealous glen
#

I had a friend who reverse stole a computer from a lab

And by reverse stole I mean that they brought theirs from home and permanently installed it there

midnight coyote
#

accidentally stole a laptop charger because in the moment i thought it was mine

native zinc
#

me with my suspiciously mouse filled tote bag: what IT room? I've never heard of it

midnight coyote
hushed field
#

my leaving the it room with a conspicuous yellow raincoat stuffed in my big sharp clown teeth

midnight coyote
#

how schools feel after installing spyware that takes up half the computer’s resources just so their students can’t play games on the computer (this could have been solved with a firewall rule)

manic rune
#

my laptop fucking crashed

#

because i ran balatro with discord at the same time

#

amazing

midnight coyote
manic rune
#

:3

zealous glen
#

The tall lad wearing a long coat who’s definitely not a living pile of discarded computer mouses titled the Rat King: ā€œI’m a tall lad wearing a long coat who’s definitely not a living pile of discarded computer mouses titled the Rat King.ā€

hushed field
#

please, no one in any way hint to me that you're younger than 18, I can't handle mentally the idea of interacting with people that are still in high school. or worse... middle school

native zinc
#

you're in luck

#

im 19

midnight coyote
#

i forget that people in middle school can be on this app

#

younger even

zealous glen
midnight coyote
zealous glen
brazen tusk
native zinc
#

im currently procrastinating on my linguistics work

midnight coyote
zealous glen
#

But I suppose some people do their PhDs at 13

zealous glen
pale venture
hushed field
#

when i was teaching, I moderated a big creative writing server and it was very awkward to learn that one of the people on that place telling people their writing was shit was a student at the school i was teaching at. Ever since then, I've decided children nor teenagers exist whenever I'm nearby

native zinc
#

linguistics is all languages

hushed field
#

oh hey another linguist???

native zinc
#

but rn its malay

zealous glen
#

Yeah but people studying language usually focus on one or two

native zinc
#

eh not really there yet

zealous glen
#

At least for undergrad

manic rune
#

tf is purple day

native zinc
#

probably going to be sg malay or singlish

#

depends

zealous glen
manic rune
#

ā¤ļø

#

thank you wise sir

hushed field
#

tag me if you ever end up info dumping here about the fun quirks of a language, I'd love to read it šŸ˜›

zealous glen
native zinc
manic rune
#

any clues why this doesnt seem to debuff the jokers?

native zinc
#

i'm moreso grammar cop without the cop though

manic rune
#

i printed the highlighted part in the console

#

it definitely has the joker stored

midnight coyote
#

i’m pretty decent at programming

zealous glen
hushed field
#

I'm a grammar anarchist, so sorry to say we won't get along

midnight coyote
#

i know Lua, Python, Dart, C, Java, Kotlin, GDScript, Bash

native zinc
#

chat is not a 4th person pronoun

zealous glen
#

But it was inspired by the conversation

native zinc
#

thank god

#

oh no

#

yeah 4th person pronouns don't. exist

zealous glen
#

But many languages have constructs specifically for ā€œno oneā€, ā€œsomeoneā€, and ā€œeveryoneā€

midnight coyote
#

isn’t ā€˜someone’ a 4th person pronoun

native zinc
#

no

midnight coyote
#

oh alright

native zinc
#

oh my go

heady siren
#

I made a simply but funny joker that I'm surprised I've never seen

midnight coyote
#

well it is now. because i said so. wrap it up everyone /j

zealous glen
hushed field
native zinc
#

someone is an indefinite pronoun

zealous glen
zealous glen
native zinc
#

yeah

hushed field
#

But that's I think because a bunch of creative writing people don't study in linguistics in any way, so they're not gonna know the definitions

brazen tusk
#

how does one actualise the 2nd person

#

and why is the 3rd person not the 2nd

zealous glen
#

Portuguese has constructions with no pronouns

#

Because the subject is unknown or nonexistent

midnight coyote
#

can i make a language derivative of english that does nothing but make me correct

zealous glen
#

For example, ā€œRains.ā€ is a complete Portuguese sentence

heady siren
manic rune
#

😭

brazen tusk
#

too many lines that cross

midnight coyote
#

let’s make english but it’s not english

native zinc
#

i hate most english spelling reforms

manic rune
#

wawa

native zinc
#

they kinda suck

midnight coyote
#

let’s make a pidgin language for this server

hushed field
#

yes. If you wanna go further, become a personal language purist and decide that because language is a set of assumptions, not rules, every person inherently speaks their own idiolect of a language perfectly

native zinc
#

generally the purposes of language is to express ideas though so that's the only metric

manic rune
#

why are they not debuffed!!!gghghgh

zealous glen
crisp coral
#

recalc_debuff

brazen tusk
native zinc
#

"does the other person understand? congrats you are speaking correctly"

manic rune
hushed field
#

or join the post-chompskian use-based grammar perspectives that says that any form of grammar is an imperfect system, as proven by the fact that ai systems construct their own arbitrary grammar encodings when trained on language

west mason
manic rune
#

actually, i couldve just returned true inside the loop itself, but it shouldnt matter right

zealous glen
native zinc
#

communication is unfortunately a two way street

#

with a lot of detours

west mason
hushed field
#

No, that's noise and is inherent to any communication. As Derrida states, language is inherently imprecise and exact communication is impossible, therefor all communication is inherently miscommunication

crisp coral
#

not the linguistic talk in modding dev channel šŸ’€

native zinc
#

yea

manic rune
#

its still not debuffed

#

:3

#

wtf r those jokers made out of

#

are they just natrually resistant to being debuffed 😭

zealous glen
brazen tusk
#

gold by the looks of it

hushed field
zealous glen
#

Do you wanna trade some linguists for mathematicians

#

We have too many of them

native zinc
#

okay no more linguistics

crisp coral
native zinc
#

creative writing instead

crisp coral
#

or am i delulu

native zinc
#

have you heard of the flashback past tense trick

zealous glen
#

No

native zinc
#

i think flashbacks are eh but the past tense trick is fun

hushed field
#

No, because I think it's the gamestate that changes the UI. It's just that in almost any context, you don't get to open a pack that doesn't change the state. But I'm very likely to be misremembering, Myst, haha

manic rune
zealous glen
#

Earlier this week we talked about ā€œhistorical presentā€ where the present is used to describe the past

manic rune
#

all the two jokers are there, tf u mean 😭

crisp coral
#

dw I'm on my phone so I can't check whether I'm posting misinformation

zealous glen
#

Aiko was debuffing Jokers differently

hushed field
#

i'm on my pc so i can check if i am, but I haven't. I'll check now, I guess

zealous glen
#

So did Crimson Heart

manic rune
#

and if it is, return true and hopefully it gets debuffed

zealous glen
manic rune
#

yes

#

im printing it rn

#

and the loop definitely works

midnight coyote
#

so if i’m using a consumable how do i target whatever card i selected

manic rune
#

G.(smt).highlighted

#

depends on what card you want to target

midnight coyote
manic rune
#

G.jokers.highlighted

midnight coyote
#

alright that’s it

hushed field
# west mason bruh i have no idea how to fix this

also feel free to talk over the people not discussing modding šŸ˜› You're allowed to take precedence in this case haha. I had this error sometimes when opening a pack, closing the game, then reloading it, because the states got mixed up, but I'm not sure how to solve it in this case šŸ¤”

manic rune
#

mhm

midnight coyote
#

alright

zealous glen
#

Canicha charging up the wall-of-text beam

midnight coyote
#

because i have this card which is a 50% chance to replicate a joker, and a 50% chance to obliterate it

manic rune
#

oh wait, its a table containing all the highlighted jokers, so you still need to see it as a table btw

#

G.jokers.highlighted[1]

midnight coyote
#

iirc

midnight coyote
manic rune
zealous glen
#

In vanilla

manic rune
#

everything begins at 1, not 0

midnight coyote
#

UGHHHH

#

I HATE LUAISMS I HATE LUAISMS I HATE LUAISMS

zealous glen
#

Peano axioms when starting from 1 also works