#💻・modding-dev

1 messages · Page 319 of 1

tall wharf
#

i guess i need to add the joekr i just made to the pool of toga's jokers

zealous glen
tall wharf
ember bluff
#

I'm trying to retexture Mult and Wild Cards, but it keeps saying that "Enhanced" is a nil value despite it not being one, does anyone know how to fix or work around this?

ember bluff
#

thank you

wooden nexus
#

So yeah, didn't work

#

Test joker is on the wrong page

daring fern
wooden nexus
#

Example (this is photoshopped)

#

Only way I can potentially see this working is if I just don't make the joker with smods

daring fern
red flower
#

you can probably modify the return of SMODS.collection_pool

rapid stag
#

bump.

gentle rain
#

i meant what reason balance-wise

wooden nexus
#

Maybe? I just don't see it working rn

plain apex
#

this is probably the worst way to go about trying to change the text based on where the card with the edition is

SMODS.Edition({
    key = "Nitro",
    loc_txt = {
        name = "Nitro",
        text = {
            "{C:attention}+#1#{} hand #2#",
            "#3#",
            "Idea: BoiRowan",
        },
    },
    discovered = false,
    unlocked = true,
    shader = 'nitro',
    config = { handsize = 1, line1 = 'size when scored', line2 = 'Resets at end of round' }, -- triggers twice, so actual gain is double
    in_shop = true,
    weight = 15,
    extra_cost = 4,
    badge_colour = HEX("ea763e"),
    apply_to_float = true,
    
    loc_vars = function(self, info_queue, card)
        return { vars = { self.config.handsize * 2, self.config.line1, self.config.line2} }
    end,
    
    calculate = function(self, card, context)
        self.added = self.added or 0

        -- Played and scored cards get the buff
        if context.main_scoring and context.cardarea == G.play and not context.individual then
            G.hand.config.card_limit = G.hand.config.card_limit + self.config.handsize
            self.added = self.added + self.config.handsize
            self.config.line1 = 'size when scored'
            self.config.line2 = 'Resets at end of round'
        end

        -- If it's a Joker with the edition, buff hand size at start of round (setting blind)
        if context.setting_blind and card.ability.set == 'Joker' and not (context.blueprint_card or self).getting_sliced then
            G.hand.config.card_limit = G.hand.config.card_limit + self.config.handsize * 2
            self.added = self.added + self.config.handsize * 2
            self.config.line1 = 'size'
            self.config.line2 = 'until end of round'
        end

        -- Remove the buff at end of round
        if context.end_of_round and not context.repetition and not context.individual then
            if self.added > 0 then
                G.hand.config.card_limit = G.hand.config.card_limit - self.added
                self.added = 0
            end
        end
    end
})
red flower
#

<@&1133519078540185692>

karmic creek
#

yeet

wooden nexus
#

I had to manually edit with lovely

tall wharf
gentle rain
#

:33< :PP

#

:33< was just nyasking......

graceful magnet
#

can you make a local function within a joker to more easily call a large code block in other functions (namely set_ability and calculate)

red flower
#

no, that's why it's local

#

you can make it local to the file tho

gentle rain
graceful magnet
#

yeah but the idea is not wanting to have it pasted in there twice

gentle rain
#

:33< right right

hot island
#

does anyone know where in the code id find how the deck is displayed

#

im trying to recreate it but i dont know how to get it just right

#

and im struggling to find where it is in the code

steady smelt
#
calculate = function(self, card, context)
    if context.debuff_card then
        return { prevent_debuff = true }
    end
end

this works for preventing cards from being debuffed while you own it, but how do I make it also un-debuff cards if it's created via judgement in the middle of a round?

rapid stag
#

bump.

violet oasis
#

Is it possible to use SMODS.Joker to replace a parameter for an existing joker? I have a custom texture for my Square Joker that is not square and I want to change the pixel_size parameter.

I have tried patching out the "ifs" related to the Square Joker in card.lua that change the center position and scale, but I just end up with a stretched out version. I assume because it's taking into account the pixel size for the default texture

unreal cipher
#

hello everyone. despite my best efforts, i cannot seem to find the starting point for making a mod. i've read that "your first mod" page on github, yet i still don't know what to do. anyone, lend me a hand.

tall wharf
#

how the fuck do people make UI

ruby delta
#

Is this correct?

```calculate = function(self, card, context)
    local extra = type(card.ability.extra) == "table" and card.ability.extra or self.config.extra

    if context.cardarea == G.hand and context.repetition then
        return {
            repetitions = extra.repetitions
        }
    end

    if context.joker_main then
        local keys = {
            SMODS.find_card('j_rwby_ruby').key,
            SMODS.find_card('j_rwby_weiss').key,
            SMODS.find_card('j_rwby_blake').key,
            SMODS.find_card('j_rwby_yang').key
        }

        local has = {}
        for _, j in ipairs(G.jokers.cards) do
            local key = j.center and j.center.config and j.center.config.key
            if key then
                has[key] = true
            end
        end

        if has[keys[1]] and has[keys[2]] and has[keys[3]] and has[keys[4]] then
            return {
                xmult = extra.team_mult
            }
        end
    end
end

}```

tall wharf
#

i think disabling the blind makes it a bit boring

#

like chicot is good but it makes it a bit boring

#

ykwim when i said it makes it a bit boring

red flower
ruby delta
red flower
#

SMODS.find_card returns an array of cards

#

What do you want to do?

wooden nexus
#

Can't spoil my project but...

ruby delta
red flower
#
if next(SMODS.find_card("j_key1")) and next(SMODS.find_card("j_key2")) and next(SMODS.find_card("j_key3")) and next(SMODS.find_card("j_key4")) then
    return {...}
end
tall wharf
#

what's the link in your pronouns field

hearty sun
#

Hi, I'm hitting some very strange behavior
I'm adding 2 poker hands, but only Sequence loads its localization strings properly, while Blackjack causes a crash whenever I open the Run Info screen
Here is the code involved:

-- hands.lua
SMODS.PokerHand({
  key = "Sequence",
  visible = true,
  chips = 20,
  mult = 2,
  l_chips = 15,
  l_mult = 2,
  example = {
    { "H_8", true },
    { "S_7", true },
    { "D_6", true },
    { "C_2", false },
    { "C_T", false },
  },
  evaluate = function(parts, _)
    return {}
  end,
})

SMODS.PokerHandPart({
  key = "seq",
  func = function(hand)
    return {}
  end,
})

SMODS.PokerHand({
  key = "Blackjack",
  visible = true,
  chips = 80,
  mult = 2,
  l_chips = 20,
  l_mult = 1,
  example = {
    { "S_A", true },
    { "H_9", true },
    { "D_7", true },
    { "C_4", true },
    { "H_J", false },
  },
  evaluate = function(_, hand)
    return {}
  end,
})
-- localization/en-us.lua
return {
  misc = {
    poker_hands = {
      ["aod_Sequence"] = "Sequence",
      ["aod_Blackjack"] = "Blackjack",
    },
    poker_hand_descriptions = {
      ["aod_Sequence"] = {
        "3 cards in a row (consecutive ranks).",
        "They may be played with up to 2 unscored cards.",
      },
      ["aod_Blackjack"] = {
        "At least 3 numbered cards, summing to 21.",
        "Aces may be scored as either 1 or 11.",
      },
    }
  }
}
zealous glen
tall wharf
#

😭

#

am i the UI theft target

zealous glen
red flower
#

i havent added any new UI in a while..

rapid stag
#

bump girldmSad please someone just tell me why taking ownership of gold cards breaks their description and how i can fix it

hearty sun
#

Ignore my previous message, I didn't realize that hands were defined by runs
Starting a new run fixed the problem

violet oasis
#

I'm trying to change the texture of the Square Joker by using take_ownership but it's giving me an error. I already set up the atlas for the jokers, so I'm just trying to change the position for the Square Joker so it would be replaced with the standard Joker texture. In this case "pmmod" is my prefix:


SMODS.Joker:take_ownership('j_square', 
  {
  atlas = "pmmod_Joker",
  pos = { x = 0, y = 0 },
  }, true)```
#

But it keeps giving this

tall wharf
#

i think you should just store the old function

rapid stag
tall wharf
#

like

#

the gold card already has its generate ui function

rapid stag
# tall wharf the gold card already has its generate ui function

oh, i see - i should hook gold card's generate_ui()?
...does that work specifically in this context?
can i do

local oldGenUI = generate_ui
generate_ui = function(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
            SMODS.Center.generate_ui(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)

  oldGenUI(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
            SMODS.Center.generate_ui(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
end
```inside the take_ownership?
tall wharf
#

i actually got no clue about taking ownership over vanilla content

#

but when i takeover cryptid's hand part

#

i can store the old function

#

somewhere local

wintry solar
#

Why are you taking ownership of gen ui?

rapid stag
# wintry solar Why are you taking ownership of gen ui?

i am not
i am taking ownership of gold cards so i can add a tooltip to its info_queue without it merging into the description box like it has so far in my experience with it, wild and glass jokers when i simply append to the info_queue as part of functionality i write in a patch that adds to the end of generate_card_ui()

but it's breaking its description by returning nil where it should have the dollar value #💻・modding-dev message

oblique cradle
#

hello im new someone can help me?

gusty iron
#

i know this was like 2 days ago but where can i find it im interested now

gusty iron
oblique cradle
#

im learning how to install mods

gusty iron
#

oh

#

use lovely

wintry solar
heavy hare
#

how do i hook into another mod's function?
i'm trying to use DebugPlus's reroll boss function with my mod, but it can't find the function. i'm assuming this probably has to do with load order:

local debugplus_reroll_boss_hook = global.handleKeys
global.handleKeys = function(controller, key, dt)
  local prevBoss = G.blind_select_opts.boss.parent
  debugplus_reroll_boss_hook(controller, key, dt)
  if G.blind_select_opts.boss.parent ~= prevBoss then
    G.HUD_blind_tracker:reroll_boss()
  end
end

Error: attempt to index global 'global' (a nil value)

keen tiger
#

are deck ids something like b_yellow or Yellow Deck?

#

i cant figure it out from the code, feels like they are used interchangeably...

#

and i dont want to accidentally use a localized id, that explodes the entire system im working on

oblique cradle
gusty iron
#

just look up "lovely balatro injector"

gusty iron
#

uh

#

my game crashes when i try to load it

red flower
#

sad

gusty iron
#

its saying AKYRS is nil

red flower
#

is your folder nested maybe

gusty iron
#

no?

red flower
#

idk then

rapid stag
# wintry solar Why aren’t you just lovely patching the info queue in?

i have code that does this. i tried using it at first, but it just does this #💻・modding-dev message
so far, i've been able to find this holds true for wild, glass and gold cards, but is fine for stone cards as lovely patching info_queue into stone cards works as expected - my suspicion so far is that it applies to all enhancers but stone for whatever ereason

which is probably something to do how the enhancers are handled in generate_card_ui()

gusty iron
sturdy compass
#

Is it possible for me to use sprites from the vanilla game sprite sheets?

zealous glen
#

It should be

sturdy compass
#

Then how would I do that

zealous glen
#

Pass the correct atlas

sturdy compass
#

<@&1133519078540185692> Scammer spotted

#

Thank ya header

hot island
#

i think im pretty much done the game screen 👍

#

ignore how pretty much everything is impossible

graceful magnet
#

this is not triggering

#

and I've tried like a dozens variations

hot island
sturdy compass
proud wagon
#

can someone please explain how to create a new rank using SMODS.Rank? I cannot for the life of me get the name and sprites to work 😭

zealous glen
#

or you can search it

sturdy compass
#

That seems to not be the case

brisk rose
sturdy compass
#

Probably, but how do I not do that LOL

red flower
unborn bay
sturdy compass
#

And where would that go

unborn bay
#

hmm actually

#

you probably don't need that

#

could probably look into G.ASSET_ATLAS for vanilla atlases probably but

#

that probably won't work with what you're doing

sturdy compass
#

I did try doing that actually and no dice

brisk rose
#

Tbh with how many mods Include copies of the vanilla atlases I feel like this is non trivial

unborn bay
#

ig maybe just redefine the atlas for the vanilla joker graphics because i think you can do that then use that atlas

brisk rose
gusty iron
#

how would i make a consumable only be able to spawn when youre using a certain deck?

sturdy compass
#

Probably with an in_pool check

brisk rose
unborn bay
#

you CAN replace the vanilla atlases via raw_key = true

brisk rose
#

My bad

unborn bay
#

im not sure if smods could just load the vanilla asset if it exists

sturdy compass
brisk rose
#

But yeah ideal and what works seem to be different things sometimes

sturdy compass
#

I could do that yes but I'd much rather use what's already in the game. Totally get what you're saying lol

red flower
#

are you trying to use a sprite for another kind of object? (like a tarot for a joker)

sturdy compass
#

No, I'm using a Joker for a Joker

red flower
#

then the joker atlas should be the default one lol

sturdy compass
#

I'm stuck in the past where an atlas was a required thing LOL

#

That did it, thank ya

#

now to prevent it from looking tiny when undiscovered lol

unborn bay
#

1 pixel joker

zealous glen
#

Accidentally made a Hermit machine gun

wooden nexus
#

Is there a way to hide this?

zealous glen
#

@red flower I'm reworking Rebate Tag. I probably should get a new name

willow plinth
#

crash happened when i hovered over a joker from TOGA's Stuff but not sure if that's the one, it was pretty stable so far

rustic swallow
#

how do you check the discards used throughout the whole run

sturdy compass
hasty mist
#

not sure why this is happening, did i miss something?

paper zealot
# wooden nexus Is there a way to hide this?

If it's just for your personal use, you could change line 40 in Steamodded's src/ui.lua file from

text = MODDED_VERSION,
```to
```lua
text = "",
``` I'd discourage you from making this change in your own mod though, it's useful information for users to have
paper zealot
# wooden nexus Tried but no dice

Are you sure you edited the steamodded being used by your game, and saved the file after changing it? I'm quite sure that will work

wooden nexus
#

Yes

#

It crashed

paper zealot
#

What did you change the line to?

zealous glen
red flower
#

im the worst guy to ask for balancing my mod lets you make infinite tarots by ante 2

zealous glen
#

I’m thinking maybe I could restrict it to only show up on later Antes

#

I’m not sure if Tags have these kinds of restrictions

#

Or maybe nerf it to 1 copy

#

Or stop it from copying Spectrals

#

-# or stop it from copying cards from packs

wooden nexus
#

all crash

thorn ridge
#

how would i go about replacing/editing vanilla stuff

paper zealot
wooden nexus
#

nope

#

lemme try

#

well that worked

scarlet spire
maiden phoenix
steady smelt
#
calculate = function(self, card, context)
    if context.debuff_card then
        return { prevent_debuff = true }
    end
end

this works for preventing cards from being debuffed while you own it, but how do I make it also un-debuff cards if it's created via judgement in the middle of a round?

brisk rose
hasty mist
#

today i learned you can just slap joker code in a boss blind and it will work

hasty mist
#

the boss blind would just do what the joker would do

viral dagger
#

hey so i've never coded before, but i really want to surprise my gf with a Balatro text replacement mod we've joked about

#

how would i go about making a text replacement mod, and then giving her a way to download it?

brisk rose
#

If y'all aren't interested in other balatro mods is almost suggest just editing the game files directly

unborn bay
viral dagger
#

yeah, but that'd kinda ruin the surprise, yknow? like, how would i make something where she downloads it and it overwrites the files so one word changes to another word?

#

like, that mod Balagay that changes straights to gays

#

how does that work?

brisk rose
#

But of you just wanna be like 'here's a cool balatro mod I found' then yeah you can do it the normal way

#

You basically just have to make a new localization file

viral dagger
#

hmm, okie

hollow birch
#

what would be the best way to trigger something if a card with a custom enhancement is destroyed?

#

like is there a context to see if a card is being destroyed that I can call in the calculate function?

brisk rose
# viral dagger hmm, okie

Iirc is as simple as installing smodded and lovely the normal way and then making a 'mod' with just a steamodded header and a new en_us.lua included and it replaces automatically

#

But there's others who know a lot more

viral dagger
#

like, in the most basic sense

#

like how would i take a changed file and make it into something someone could download

#

again, very sorry, i've never modded before so im very in over my head

brisk rose
viral dagger
#

ah, okie :3

brisk rose
viral dagger
#

no yeah, already got those, plus Balatro Mod Manager

rustic swallow
#

how do you check the discards used throughout the whole run

brisk rose
#

And then from there, make a localization folder with an em-us.lua file in it

viral dagger
#

how do i make a json?

brisk rose
brisk rose
#

You wanna turn off 'hide known file extensions' in windows explorer probably top make this easier

viral dagger
brisk rose
brisk rose
#

Np :3

viral dagger
#

:3

#

@brisk rose sorry to ping again, but ive got another question
so, prefixes... how do i get a prefix? do i just like, type in anything?

#

it says its gotta be unique

brisk rose
#

Yeah just make it whatever. Just not something another mod would likely use

viral dagger
#

okieeee

viral dagger
hasty mist
#

why can't chicot disable the effects of this blind

brisk rose
#

It's in the balatro exe (open it as a zip)

steady smelt
#
calculate = function(self, card, context)
    if context.debuff_card then
        return { prevent_debuff = true }
    end
end

why does this only work if you own it before a blind that debuffs cards and not if it's spawned via judgement during a blind?

brisk rose
#

As I said to rebuff already sevuffed cards I think you need to iterate over the hand

#

But I'm just guessing to be fair

steady smelt
#

if you go into a blind like the head with it it prevents the cards from being debuffed like it should
if you spawn it during a blind it doesn't undebuff any cards at all, not drawn ones, not generated ones, nothing

#

iterating over the hand or deck i feel like is definitely not the best way to do it

#

i feel like there's something easy that i just don't know how to do

brisk rose
steady smelt
#

yes sorry

brisk rose
#

I mean... if a card is already debuffed, which I think is often determined at the start of the blind, I see why 'prevent' doesn't work. Which is why it feels to me that just going through every card and seeing it to not be debuffed is the logical way... I haven't done any proper moddding myself though and my coding experience in general is limited to a couple classes in college years ago

steady smelt
#

because if i do that the only way to be sure it works is do it every frame which is very excessive

keen tiger
#

So, I'm effectively calling Game:start_run in order to start a new game. How could I figure out when the game is fully set up and I can access i.e blind info?

brisk rose
brisk rose
#

You aren't doing it like most people seem to do blinds

hasty mist
#

yeah it's essentially just modified joker code

brisk rose
#

I'm any case you ought to be able to use the same function regardless whatever you may need to call it or however you need to format it

hollow birch
#

how would I have a joker debuff the joker to the right of it?

hasty mist
brisk rose
#

I made a typo

hasty mist
#

oh i see

brisk rose
#

You should really read the wiki thing I sent, lol

hasty mist
#

i did, just not being very smart right now lol

lucid owl
#

what exactly is the area parameter in a consumable's use function?

brisk rose
hasty mist
#

dammit

#

is there a way to keep my context function because im pretty sure its quite necessary

#

but it seems set_blind doesnt work with it

brisk rose
hollow birch
#

oh sweet thanks didnt know about that

brisk rose
#

But I'd ask someone who knows anything about coding (not me)

brisk rose
hollow birch
#

thanks a ton again

brisk rose
#

Np :3

hasty mist
#

the best resource ever would be a whole list of vanilla effects converted to the easily readable smods version

#

i wish something like that existed because the balatro source code is damn near unreadable

brisk rose
#

It'd be a nice resource but tbh many nod joker effects are different enough where it wouldn't be that useful a lot of the time

shut crater
#

anyone know if SMODS overrode the eval_card function?

#

I'm not at my computer rn but I'm stuck on a bug and have been trying to think through it all day

#

basically I want to manually score a card in the most mod-friendly way possible, but I was trying to use eval_card and it just wasn't working for me

rustic swallow
#

how do you check the discards used throughout the whole run

hasty mist
brisk rose
scarlet spire
#

...how do I stop info queue from going down the chain of command

brisk rose
#

It's kinda pointless for base game stuff sure, but modded stuff you might need the info

#

Even if it looks crappy

scarlet spire
#

what card the fool is making isn't important for the joker's tooltip, it only matters when it's on the fool itself

rapid stag
scarlet spire
#

this works, thanks

rustic swallow
brisk rose
#

If it is that'd make it even easier to study though

#

Oh wait it is isn't it

#

Ortalab

limpid wing
#

Ortalab cool

reef belfry
#

is there not enough quote text in this one

brisk rose
brisk rose
#

From the base game

slate bison
#

what context am i missing here?

#

it says that context.open_booster is nil and i dont know why

gentle rain
#

:33< the ability of this is gonna be "copies the ability of food jokers" if you would like id appreciate it if you gave me the names of food jokers in your mod or mods you play so i can make them compatible!!

indigo mesa
peak obsidian
#

added some visual + audio feedback for my symbolic cards
note: after recording this i made it so the sounds vary in pitch, i just don't feel like recording again

rapid stag
steady smelt
#

how do you add more deck colour options? i see in the api how to add deck skins ala friends of jimbo but nothing about stuff like LC/HC

plain apex
#

can you change the rate at which showdown blinds appear?

thorn pumice
#

i love how yours came out

thorn ridge
#

how do i modify vanilla stuff

sturdy compass
#

lovely patches or taking ownership

unborn bay
#

lovely patch ,,,,,

brisk rose
#

Tbh I wish steamodded wpulda leaned more heavily into making lovely patches as unessacary as possible

thorn ridge
sturdy compass
brisk rose
#

Lol best me to it

sturdy compass
#

I be quick like that

hot island
#

i was trying to get chatgpt to convert the jokers into json for me and made me the "cosmic egg" joker instead of giving me what i want

#

its a legendary

#

bro is hallucinating so hard rn

regal ether
regal ether
plain apex
#

but other times its completely useless

rapid stag
#

honestly, mood cirBlech
speaking of, still having my gold card issue

regal ether
plain apex
#

but hey chat gpt made a working shader and i dont understand shaders at all so i take this as a win

plain apex
#

why the !?

sturdy compass
#

I added on because I'm surprised CGPT was able to do that

plain apex
#

i mean it took multiple attempts

#

chat gpt also kept thinking i wanted terrible art and its like no chat gpt i dont want ai generated images of what a good shader might look like i want shader code 💀

rapid stag
# sturdy compass What's the problem?

i can't append anything to the info_queue of enhancements other than stone card, it just merges whatever tooltip i try to add, into the description, ala this #💻・modding-dev message
and this seems to be the case for me for every enhancement so far except stone
i was able to overcome it with wild and glass by using loc_vars in take_ownership, but it doesn't work for gold because there are variables inherent to generate_card_ui() that break whenever i try to append to info_queue via loc_vars or generate_ui() in a take_ownership

so unless i can fix the broken var in gold card's description, i have basically no method to add a tooltip to gold cards.

sturdy compass
#

You specifically asked for a card shader? 😭

plain apex
sturdy compass
#

AH

#

😭 😭 😭

sturdy compass
plain apex
#

need to figure out how shader code works fr chat gpt is very bad at it lol

sturdy compass
plain apex
#

chat gpt be like

sturdy compass
#

LMFAO

plain apex
#

so uh yeah i guess dont ask chat gpt for help with shaders it will repeatedly try to generate imagines instead of help you

stiff locust
#

how do I level up a specific hand

hoary crown
plain apex
#

like i know shaders use code and all that but like why can't editions just be like enhancements man let me set an edition to like a gif that just plays that would so much easier

#

we can animate souls and jokers with long sprite sheets why can't editions be like that local thunk

regal ether
#

local thunk was secretly the Fuck You Guy

plain apex
#

fr everything else is like so simple you just set it to a picture and you're done or make a sprite sheet and cycle that

regal ether
#

but yeah i dont know anything about shaders so personally i wouldnt touch them but if you want to make a shader you're probably best off... learning how to make shaders

plain apex
#

but editions are like nah you gotta learn a whole other language to make one

sturdy compass
plain apex
#

or you ask chat gpt like 50 times and it finally creates the color orange

sturdy compass
#

guh

stiff locust
#

i have neer done this before

sturdy compass
#

I'm surprised honestly lol

stiff locust
#

i wanna level up straight and straight flush like
5 times

#

all at once

hoary crown
sturdy compass
stiff locust
#

oh that's

#

so easy

#

wow

sturdy compass
#

Yeah lol

#

the boolean in the third field is just an instant flag

#

So change that how you wish

daring fern
hoary crown
#

the mod

#

at all

stiff locust
#

noted

#

thank you

sturdy compass
#

np

daring fern
plain apex
#

still upset that changing balatros name can't complete discord quests that would be such a funny way to do them

sturdy compass
plain apex
#

like if you do that discord will say you are playing it but it wont count for quests

sturdy compass
#

I think you'd have to change the actual name of the exe for that to work

plain apex
#

i did

sturdy compass
#

oh bruh

#

I remember that used to work then

plain apex
#

yeah i wanted to complete my quest by playing balatro but it didn't work

#

balatro discord quest when?

sturdy compass
#

Honestly not out of the question

plain apex
#

gimmie that jimbo avatar decoration it'd be fire

sturdy compass
#

Though depends if Thunk wants to shill the money to Discord to do it

plain apex
#

like come on discord im making a fortnite mod for balatro balatro is basically fortnite

hoary crown
daring fern
hoary crown
#

what is "the cmd"

daring fern
hoary crown
#

ok

#

im confused

#

it says my json is invalid or whatever and doesnt load the mod and doesnt have it in the mods list

#

its in the mods folder and there is no ignore file in it.

#

I did not just magically make that happen

hoary crown
#

your json file is made of bad

#

i dont see how this is bad

iron haven
#

hey guys?

plain apex
#

hi

reef belfry
#

i feel like this is an extremely inefficient way to do this but im too lazy and dumb to find the better way to do it

iron haven
#

I have to make L now....

regal ether
#

am i tweakin or are those last two elseifs the same

#

oh and you're missing "and"s between the pities in the conditionals

reef belfry
#

yeah i just realized that

#

the one at the bottom was just residue i forgot to delete it

hoary crown
iron haven
#

Can I have help with making L or no?

sturdy compass
#

I don't wanna be that guy but we can't hold your hand the whole way through developing a mod man

iron haven
#

?

rotund orbit
#

hey guys can anyone help with something
I'm trying to make a texture pack as a mod but I'm totally new to lua and need help
I want to change some of the text in the game like renaming the jokers or suits and I also want to know how to add more spritesheets than just the regular 52 cards to this starter LUA file i found
I think I should be able to do the rest sorry if this is the wrong place guys

sturdy compass
#

That starter file looks incredibly dated. Wow

sturdy compass
#

Malverk is a lot more friendly to less code-savvy folk

rotund orbit
#

wait does malverk just help you with making the textures and text files and stuff? from what I heard you had to make a pack first and do even more coding to make it compatable

#

like is it its own editor?

daring fern
sturdy compass
#

Not really. It's a mod that has a lot of modular tools to help make your process easier than just straight code (from what I know)

#

There are examples to go off of in the mod listing

iron haven
#

I don't know how to make part of the code for L. Really, I don't.

runic pecan
#

4 days ago I was informed from my github's issue section that this is a thing:

#

And I'm worried that other enhancements have got similar effect-visual desync problem.
Where in the code can I look into to find such thing?

faint yacht
#

x_mult, xmult and Xmult all are interchangeable. x_mult_mod and Xmult_mod also count, but those don't produce a message by themselves. Search for SMODS.calculate_individual_effect definition in smods/src/utils.lua.

iron haven
faint yacht
#

-# I frankly do not have context to really process what is desired for your Joker.

iron haven
#

+30 Mult if last hand scored under 25% of the blind requirement

high sinew
hoary crown
#

alrighyt i fixed my stupid ass mod

#

json

#

file

#

now my joker is broken

#

how do I make this also have Xchips

high sinew
#

i would use tailsman mod

#

and just do their xchips

hoary crown
#

whats their xchips

high sinew
#

u have tailsman?

brisk rose
high sinew
#

im not sure it might be

brisk rose
#

97.3% sure it is

high sinew
#

ik tailsman has but u prob right

#

i bet u can do xchips

faint yacht
#

SMODS had integrated XChips a while ago.

high sinew
#

noice thats hype

hoary crown
#

HOW DO I ADD IT?

high sinew
#

xchips like xmult

#

same type of config

#

just chips instead obv

hoary crown
#

like another config line?

high sinew
#

yea

#

xchips = 15 or whatever

daring fern
high sinew
#

then do what u want with calculate function

hoary crown
#

so like this

high sinew
#

this was errror i know its something with how set is being read that inst matching up

faint yacht
high sinew
#

@hoary crown do like this

hoary crown
high sinew
#

expo mult

#

do xchips instead

reef belfry
#

that was... something

hoary crown
faint yacht
iron haven
#

I'm as confused as you guys.

high sinew
iron haven
#

here is the code screenshot of L.

high sinew
faint yacht
hoary crown
high sinew
iron haven
faint yacht
#

Just return { mult = card.ability.extra.mult }.

hoary crown
#

why doesnt just this work?

faint yacht
iron haven
high sinew
#

oops wrong person

iron haven
#

oh

high sinew
faint yacht
tall wharf
hoary crown
faint yacht
hoary crown
#

HOW DO I MAKE THE THING WORK

#

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

high sinew
#

canu send lua?

#

ill look at it

high sinew
faint yacht
hoary crown
faint yacht
#

xmult and xchips.

high sinew
#

yea

#

whats not working even lol i cant read a txt file XD

hoary crown
#

vs doesnt do anything either.

high sinew
#

can u be more specific in what u mean by not working?

hoary crown
#

xnil.

#

well i uncapped them.

high sinew
faint yacht
#
loc_vars = function(self, info_queue, card)
  return { vars = { card.ability.extra.xmult, card.ability.extra.xchips } }
end
iron haven
#

Individual means trigger once?

faint yacht
#

.individual is for a given playing card.

iron haven
#

I want the joker to just trigger once.

hoary crown
daring fern
high sinew
#

i do essentially everything u need for ur joker

iron haven
high sinew
#

just do what matches ur function

scarlet spire
#

triggering once after all other jokers should be context.final_scoring_step

#

individual happens once per card, so that will happen way more than once

hoary crown
#

i doing this tomorrow.

#

bye.

reef belfry
#

am i tripping or does this not create a joker from the uncommon rarity pool

#

im pretty darn sure blueprint isnt an uncommon

sturdy compass
reef belfry
#

oh is it like 0.9 0.8 something

reef belfry
#

i thought it was like 1 for uncommon yadda yadda

manic rune
sturdy compass
#

Damn you beat me

manic rune
#

:3

sturdy compass
#

Belis the speedy one for once lol

cursive sentinel
#

question, i have a joker that creates a planet card in context.before, but newly created planets aren't taken into calculation by observatory, any idea?

daring fern
#

Is there a way to make the game think a joker is a Voucher/Spectral/Tarot/Planet and not a joker?

reef belfry
#

i wouldda expected that to emplace it automatically but i guess not i guess

daring fern
reef belfry
#

well i must be doing something wrong then

rugged pier
#

how do i make it so that a consumable can only be used where a hand is drawn (whether that be when you open a spectral/arcana pack) or just in a blind

cursive sentinel
#

actually i think i found my error, my card creation was in an event

#

so probably delayed, will try taking it out

rugged pier
cursive sentinel
#

is there a context before context.before? but after hand selected has been pressed play?

cursive sentinel
#

cuz i have a cardeval text i want to appear before card creations, but despite putting it above within the same context, it seems to appear after the cards are created

#

if i were to move the card creation to joker_main, then the planet created wouldnt be taken into acc by observatory within the hand (i think?)

faint yacht
#

context.modify_scoring_hand is called before context.before.

cursive sentinel
#

thanks will try it

faint yacht
#

-# At least, I think it does.

cursive sentinel
#

mhh its called before playing

#

it's called when selecting cards

#

welp will stick with the context before and the message appearing slightly after the creation, a bit underwhelming but at least it's functionnal as for now

wintry solar
cursive sentinel
#

that's what i suspected, but even if i put the message in an event before?

wintry solar
#

Yup

cursive sentinel
#

okay, thx for the answer!

wintry solar
#

Because you want it to work for observatory you have to create the card not in sequence of events and there’s no way to get a message to display in that way

faint yacht
#

-# Not even a patch of a custom context before the before would work?

brisk rose
faint yacht
#

¯_(ツ)_/¯

subtle hawk
#

Tf

#

Oh I think its too long...

wintry solar
faint yacht
#

Fair 'nuff.

subtle hawk
#
SMODS.Joker {
    key = 'anjo',
    loc_txt = {
        name = 'Anjo Nala',
        text = {
            "{X:mult,C:white}X#1#{} mult after triggering",
            "joker to the right 5 times",
            "{C:inactive}Currently #2#/5{}",
        }
    },
    rarity = 3,
    -- 1 common, 2 uncommon, 3 rare, 4 legendary.
    atlas = 'ModdedVanilla',
    pos = { x = 0, y = 0 },
    cost = 5,
    blueprint_compat = true,
    config = { extra = { Xmult = 3, check = 0 } },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.Xmult, card.ability.extra.check } }
    end,
    calculate = function(self, card, context)
        for i=1, #G.jokers.cards do
            if G.jokers.cards[i] == card then
                my_pos = i
                    if card.ability.extra.check < 5 then
                    if my_pos and context.cardarea == G.jokers and context.other_card == G.jokers.cards[my_pos + 1] and context.post_trigger and not context.blueprint then
                        card.ability.extra.check = card.ability.extra.check + 1
                        return {
                            message = " " .. card.ability.extra.check ,
                        }
                    end
                    if card.ability.extra.check == 5 then
                        card.ability.extra.check = card.ability.extra.check - 5
                        return {
                                message = localize { type = 'variable', key = 'a_xmult', vars = { card.ability.extra.Xmult } },
                                Xmult_mod = card.ability.extra.Xmult
                            }
                    end
                end
            end
        end
    end
}```
#

More readable joker description:
X3 mult after triggering joker to the right 5 times
Currently 0/5

Three questions here
1.card.ability.extra.check = card.ability.extra.check - 5
doesn't deplenish itself, how should I handle that
2.If joker to the right is going to trigger multiple times check
charges up immediately, is there a workaround for that?
3. Xmult_mod = card.ability.extra.Xmult adds mult instead of XMult for some reason, confused because that's literally how Cavendish works in the example jokers mod

#

Why did I format it like that

#

That's better, I think

manic rune
#

hmm

#

what would i need to do to save data that retains over new runs

daring fern
manic rune
#

where would i check the code to do that?

daring fern
manic rune
#

oh thats easier than i expected

#

thanks :D

wintry solar
subtle hawk
brisk rose
#

We like those here

subtle hawk
#

It didn't

brisk rose
#

Huh that's weird if you're on desktop

subtle hawk
faint yacht
#

If you add a "func" entry into the return, you can put a function there.

subtle hawk
#

Ah

wintry solar
#

when it gives the xmult?

subtle hawk
#

Yeah, when it gives the xmult

#

I still wonder why it was giving mult before lol

wintry solar
#
if context.joker_main and card.ability.extra.check == 5 then
  card.ability.extra.check = 0
  return {
    xmult = card.ability.extra.Xmult
  }
end
#

just use this

#

assuming you want the xmult to trigger in the standard place AFTER it has been primed

subtle hawk
placid star
#

is there an easier and more efficient way to write this code?

if context.indivudal and context.cardarea == G.play then
   i = i +1
        if smods.has_enhancement(G.play.cards[1], 'm_mult') then
              return {Xmult =card.ability.extra.Xmult, colour = G.C.MULT, card = G.play.cards[i]} 
end
end
daring fern
placid star
daring fern
placid star
coral flume
#

Anyone know if you can make a pokerhand that requires enhancements, trying to create "Stone Five"

daring fern
placid star
daring fern
placid star
# daring fern Yes.

@daring fern can you change localisation for base game items in an add_to_deck?

coral flume
#

Thats commitment

placid star
daring fern
placid star
reef belfry
#

what do i even change here so it doesnt get fucked up cuz of talisman

#

to_big(mult)???

daring fern
#

Would it be possible to automatically make a joker for every planet?

coral flume
#

What does the "parts.pokerhand" mean?

manic rune
#

what do u mean by that

#

-# to smtcom

zealous glen
#

Hello how are you

daring fern
zealous glen
#

-# to bepis

daring fern
zealous glen
manic rune
manic rune
#

-# very useful i know

runic pecan
#

Which palette looks better? (Those lines are stitches, in case anyone wonders.)

manic rune
#

that red looks really red for me, if that somehow makes sense

midnight coyote
#

i’m gonna add the devilsknife as a joker

#

it’s gonna be like the ceremonial dagger but for chips

midnight coyote
#

10x sell value

willow plinth
manic rune
#

colors become darker in balatro

#

i think

unborn bay
#

note that the crt shader still does crt shader things even if its set to 0

willow plinth
#

yeah the game changes the colors quite a lot than what they usually would look like - if you check the source code and copy paste the hex color code, e.g. for the base red, you can see it's completely different

#

or let me phrase it differently: where in the code is that color correction happening? is it shaders?

runic pecan
#

Tbh I have never kept an eye on such difference before, this is a TIL moment for me.

unborn bay
#

it's the crt shader

willow plinth
#

alright thanks (so the CRT.fs?)

daring fern
unborn bay
#

I've been playing with a patch that removes the crt shader for so long that im used to the true colors

#

i only have it because my pc poopoo

#

and that i also use mobile from time to time

willow plinth
#

i'm gonna research if i can somehow turn the color changes in the shader to an icc profile

daring fern
manic rune
#

i

unborn bay
#

i

manic rune
#

????

#

😭

midnight coyote
#

would -1 hand, +3 hand size be any good

#

for a deck

manic rune
#

isnt that just that one joker

crisp coral
#

permanent troubador

manic rune
#

but imo, yeah, i like hand size

crisp coral
#

also easier painted

daring fern
unborn bay
#

you could try rerouting the set for that probably

#

via loc_vars

#

you can set them individually per joker you make

coral flume
#

Anyone know why this is crashing

daring fern
midnight coyote
#

could i make a function that replaces base game blinds with my ‘upgraded’ base game blinds

#

i wanna do something where the difficulty steps up

tall wharf
#

i just realised I'm in dev

crisp coral
coral flume
coral flume
daring fern
placid star
#

is there an example mod of how to make a tag? I'm rly struggling...

runic pecan
#

context.buying_card is when buying anything from shop;
context.open_booster is when buying and then opening a booster pack;
then which context is when taking a joker from a buffoon pack?

coral flume
daring fern
#

Is there a function that happens when all mods are loaded?

coral flume
#

Sorry makin tea, be back soon

coral flume
faint yacht
#

...how can we check which bosses were beaten at least once?

daring fern
# coral flume Back and made this file

Put this in it ```lua
[manifest]
version = "1.0.0"
dump_lua = true
priority = 1

[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = '''
local card = Card(0,0, 0.5G.CARD_W, 0.5G.CARD_H, G.P_CARDS[v[1]], G.P_CENTERS.c_base)
'''
position = "after"
payload = '''
if v.enhancement then
if G.P_CENTERS[v.enhancement] then
card:set_ability(G.P_CENTERS[v.enhancement])
end
end
'''
match_indent = true
times = 1

daring fern
coral flume
#

Still crashing

daring fern
coral flume
daring fern
coral flume
daring fern
daring fern
coral flume
daring fern
coral flume
daring fern
coral flume
daring fern
coral flume
#

I dont have a localization file

#

Aight got one now

coral flume
daring fern
#

Wrong link.

coral flume
#

Im so lost, what am I doing wrong here. I read the documentation and am now using the skeleton

daring fern
coral flume
daring fern
red flower
coral flume
daring fern
red flower
#

not _stone5

coral flume
#

I'VE BEEN USING THE PARTS KEY NOT THE HANDS

coral flume
#

It working!!!!!!!!

shell timber
#

the Bulwark in question:

#

though it's probably fine for multiple mods to add the same thing

red flower
#

nobody add 5 gold cards thats my thing now

zealous glen
gilded goblet
#

five of a gold kind

zealous glen
#

But yeah multiple mods already add the same things

shell timber
#

yeah repeats of existing content is fine

#

if anything modpack glue should add Reprint which is just blueprint again

gilded goblet
#

Toasted Wigeon plays 5 stone of a kind, asked to leave the casino

cyan lagoon
#

how do i make a joker effect consumable sell values?

glad osprey
#

question how does the negative filter work

#

and how would one recreate it

faint yacht
# cyan lagoon how do i make a joker effect consumable sell values?

From Credit Card code of source...

if self.ability.name == 'Gift Card' then
    for k, v in ipairs(G.jokers.cards) do
        if v.set_cost then 
            v.ability.extra_value = (v.ability.extra_value or 0) + self.ability.extra
            v:set_cost()
        end
    end
    for k, v in ipairs(G.consumeables.cards) do
        if v.set_cost then 
            v.ability.extra_value = (v.ability.extra_value or 0) + self.ability.extra
            v:set_cost()
        end
    end
    return {
        message = localize('k_val_up'),
        colour = G.C.MONEY
    }
end
cyan lagoon
#

this gets triggered at the end of round, but i want a passive effect

faint yacht
#

Define "passive".

cyan lagoon
#

effect is there as long as joker is present

faint yacht
#

...sounds like something that is done by add_to_deck and remove_from_deck respectively.

cyan lagoon
#

alright, how do i use them?

red flower
cyan lagoon
#

the joker has bonus for selling consumables, but consumable sell for 0

red flower
#

you would need to modify the cost every time in context.card_added probably

#

or maybe in selling_card but that wouldnt update the value in the sell button

hushed field
#

you'd hook set_cost to check for the presence of that joker and whether a consumable is in your possession, I reckon

#

that's how I go about it for the Ocean's 11 joker

red flower
#

might be a problem when the joker is removed

rugged pier
#

You could store base value when the joker is present then run a for loop in your base values table when you sell the joker

#

To update costs back to old values

hushed field
#

If the joker is removed, you'd force it to reset everything, yeah. That's how I've set it up on that joker as well.

red flower
#

yeah but doesnt it still count as owned in remove_from_deck?

rugged pier
#

You can check for context.selling_card where the card being sold is the joker

#

Then run reset loop

coral flume
#

What color is used for probabilitys

red flower
#

i mean you can do it in remove_from_deck, my problem is that i dont like storing all the old values haha

red flower
coral flume
red flower
#

yeah

coral flume
#

toight

cyan lagoon
#

cause i copied the code into my joker with a different thing and it doesnt work

hushed field
rugged pier
#

And yes you can put anything after G.GAME.

#

Just make sure you’re defining it after the game starts running (I made that mistake a few times)

hushed field
cyan lagoon
#

this

#

just different thing where kino_oceans_11

rugged pier
cyan lagoon
#

as in?

rugged pier
#

For set_cost

hushed field
#

aaah, yeah, you're missing some additional code, haha

thin anchor
#

goog morning

rugged pier
#

Goog morning to you as well

hushed field
#

kino_oceans_11 is a custom variable, so the cost_function doesn't inherently know what to do with it.

-- Booster:Set_cost hook for oceans_11    
local b_sc = Card.set_cost
function Card:set_cost()
    -- print("entered: " .. (oceans or ""))
    b_sc(self)
    if (self.ability and self.ability.set == "Booster" and G.GAME.kino_oceans_11) then
        self.cost = 0
    end
    
end

in kinofunctions.lua, there's this snippet of code, which runs the base set_cost function, and then afterwards checks if it's a booster pack (as that's the specific use case of my joker), and if that variable is set

modern kindle
#

hello besties

hushed field
#

in your case, I'd actually opt for not setting a boolean like G.GAME.kino_oceans_11, but instead making it a variable with the number you wanna alter the cost by. That way you can have a bit more control over it, and you also don't need to access the joker's data itself. Only issue with that would be that it'd not actually be perfectly compatible with a mod like Cryptid which allows a joker's power to increase.

#

Yo yo Dilly

modern kindle
#

how have you been ice, faring well?

hushed field
#

dealing with some chronic illness issues but that's just an excuse to stay home and work on Kino, I guess

modern kindle
#

im sorry to hear, i hope you recover well enough soon since its chronic

rugged pier
#

Take care Ice

modern kindle
#

ice is my goat nothin keeps him down for long

coral flume
#

Planet card for the Stone Five

hushed field
#

I'm currently also playing around with how to rebalance my archetype for Dune content, which is tied to 'least played hand', as I'm realizing it's really just a concept that does nothing but level up your straight flushes, haha

modern kindle
#

you could instead of making it look for 0 make it look for the least played hand that has been played at least once

hushed field
#

Ooooh, that's good

coral flume
red flower
#

your least played played hand

modern kindle
#

yes

coral flume
lyric wadi
#

how do you reckon i check for the first and last scored card of a hand

#

not like, the first and last entry in the hand list

#

but like the card that actually scores

red flower
#

context.scoring_hand[1]
context.scoring_hand[#context.scoring_hand]

lyric wadi
#

so doesnt count unscored or debuffed

#

ok thanku

red flower
#

debuffed is a bit harder

#

you need to check manually

rugged pier
#

Could run loop and skip debuffed

rugged pier
red flower
#

but also if a player is putting a debuffed card as the last one you should punish them

modern kindle
#

if last card is debuffed, destroy all cards played

#

😎

lyric wadi
#

no but see

#

that's like appealing to me

#

cuz like a big hinging point of my pack is that i want to encourage and reward players for doing stupid plays you wouldn't do in any other situation

#

discarding wilds on a flush build, running both a stone and glass based deck at the same time, etc

daring fern
#

How does one retrigger all possible things?

lyric wadi
#

presumably return a retrigger with every possible thing?

#

like make a list that grab, "every single thing"

#

probably more like run a loop through G.play then G.joker then G.hand etc and adding them all to one big list

#

then return a retrigger for everything in that list

faint yacht
#

-# And G.deck and G.discard.

lyric wadi
#

probably

lyric wadi
#

honestly grab G.playing_card to be safe

#

that'd be funny

daring fern
#

When something gets retriggered when retriggering everything?

#

Also how would I display an Again! message that covers the entire screen?

hushed field
modern kindle
zealous glen
#

How are you

lyric wadi
#

i think it'd be fine

zealous glen
lyric wadi
#

cuz like to me, you can absolutely get away with saying Least Played and Unplayed are two different categories

#

upgrading your Least Played hand would be the hand you played the least

#

but like a hand with 0 players would be an Unplayed hand

modern kindle
#

i hope you are also well

lyric wadi
#

which i think would also be an interesting concept

hushed field
lyric wadi
#

like intentionally not playing a hand just so you can scale it hugely instantly later

#

investment

hushed field
#

I do think if there is content that interacts with 'unplayed' hands, you wouldn't need to per se explain least played

modern kindle
#

see i dont usually run into the issue of 'oh im gonna not play this hand to save it for later'
i more often ran into the issue of 'well ive played too much of this hand to switch now'

lyric wadi
#

obelisk has gameplay?????????????

daring fern
crisp coral
#

obelisk is the most fun rare joker to use

hushed field
#

I do like the idea of cards interacting with unplayed hands as a mechanic. Would you mind if I used it? I might make another Dune joker that gives +mult for each unplayed hand

glad osprey
#

obelisk is the pivot joker

crisp coral
#

obelisk does not need to be the pivot joker

zealous glen
#

You people use Obelisk

glad osprey
crisp coral
#

skill i

zealous glen
#

skill u

hushed field
# zealous glen How so

Part of it is from me making pokemon fangames back in the day and being of the opinion that fan projects and mods often need to communicate slightly differently from mainline stuff, because people play them more casually, and are less prepared to learn systems in-depth. And that also causes things that aren't super clear to not be interacted with as much.

The other part is just that I noticed content creators, at least, but probably people generally, be quickly confused by new mechanics, and have questions, which more information doesn't hurt with. It's a lot easier to engage if you just tell people what things do, rather than have people learn parts of a mechanic due to interacting with it over and over

modern kindle
#

i struggle with deciding between too much and not enough information myself

glad osprey
#

i have also gotten idea from unplayed hand card

#

+2 dollars at for every unplayed hand

hushed field
#

Make it optional, is the best middle way, I think. Victin's press a key to show information system's the way to go there

zealous glen
red flower
#

i make it a config option too

zealous glen
#

The solution is, of course, to have simpler designs

glad osprey
#

roffle mod
look inside
pho-

modern kindle
runic pecan
#

What context is for "when acquire a joker"?

red flower
zealous glen
hushed field
#

Also, mods have the issue of people not understanding a concept immediately (which is normal), making an assumption about what it does, and then assuming it's not actually working due to the mod not being made properly

modern kindle
zealous glen
red flower
zealous glen
hushed field
red flower
#

the issue is taht with mods people don't have a place to go to learn that it's not a bug other than asking the creators

zealous glen
red flower
#

balatro has some unintuitive mechanics but i learned them watching videos

red flower
zealous glen
#

Tag and Boss Blind restrictions on when they can show up

modern kindle
hushed field
#

But I'm partially biased because in creative writing projects, when I would do unconventional things with language, the assumption changed from 'creative license' to 'not understanding how proper English works' if people knew I am ESL, haha

red flower
#

i got many less questions after i made all the glossary stuff

#

in tooltips

zealous glen
bright axle
#

what is the context to have when a play has ended?

#

bc the context.main_scoring doesn't trigger

red flower
modern kindle
zealous glen
zealous glen
red flower
zealous glen
#

I’m also not sure where the card is provided. Check the wiki

zealous glen
red flower
zealous glen
red flower
#

Personally I wouldn't do pages like BSR, I prefer keybinds to switch between specific pages instead of being indexed

zealous glen
#

I mean, I don’t think SMODS can cater to every possibility, but a binary choice like mine or paging like BSR seem simple enough to be used multiple times

red flower
#

My point is that your system is too specific and doesn't really solve any conflicts nor makes anything easier

zealous glen
#

I don’t think you have argued that point successfully

#

It does make the player’s life easier

#

It makes the modder’s life slightly easier

#

Naturally some mods will be incompatible for this or that reason

red flower
#

I don't think many modders are going to care is my point

#

even the ones that want to add systems like that

modern kindle
#

i mean a way to integrate more description doesnt feel too specific
the amount of mods with a shit ton of information having a good way to integrate said information would be delightful and im not sure why regardless of amount of usage adding support for a feature is inherently negative

#

by default support for a shared system is a net positive since at the end of the day this is all unpaid work

red flower
#

I agree, I think a keybind to turn off all tooltips is a lot more useful

zealous glen
#

Isn’t there one already?

red flower
#

hmm not sure

zealous glen
#

Debug mode, like, maybe 7 or something

#

Not 8

red flower
#

i guess but most people don't use debug mode haha

modern kindle
#

yea debug mode should not be the reference point imo

zealous glen
#

Fair but I’m just saying

#

If you want that to be put into SMODS

#

You can request or PR it

red flower
#

I don't really

#

I think that's better as a separate mod

zealous glen
#

Then you can use DebugPlus for it 🤔

crisp coral
#

there are probably like 2 mods, maybe 3 that would utilize this

red flower
#

some people don't like having the cheating options but anyway my point is that "hiding the shit tons of information" is more generic than the hovering thing

zealous glen
#

The hovering itself is very specific, I agree, but it enables the more useful and general feature

#

Displaying extra info

red flower
#

I still think the problem of a mod wanting to have two sets of "extra info" makes the solution too narrow

faint yacht
#

-# I'd rather have this than how I tried to cram everything into one description.

crisp coral
#

okay that's your fault ngl

red flower
#

i had to right align the tooltips so they didnt go off the screen lol

faint yacht
#

¯_(ツ)_/¯

bright axle
#

can i ask a question?

red flower
bright axle
#

that anihilats all cards in sigh

#

any idea why?

#

bcs i don have a card deletion anywhere

zealous glen
zealous glen
red flower
red flower
zealous glen
#

Is it like individual page keybinds versus left and right?

red flower
#

Instead of Page 1 > Page 2 > Page 3 > Page 1, you have different keybinds for each page

zealous glen
#

I mean SMODS could provide a limited version of that too

faint yacht
red flower
red flower
#

sonic

zealous glen
#

These would just be reserved keyboard shortcuts that mods can opt to use, and be consistent with other mods

#

Maybe that’s an argument against separated pages

red flower
#

Separated pages are just much better than indexed ones imo

faint yacht
zealous glen
red flower
zealous glen
#

I don’t think it’s bloat; I think it would be useful for mods to have access to

tall apex
red flower
#

what

modern kindle
#

you said more bloat, whats the bloat that you feel exists?

tall apex
red flower
modern kindle
#

smods is bloat

zealous glen
#

I’m the bloat

#

Sorry I meant to type “the Blot”, the Mickey Mouse villain

red flower
#

i think the real problem is that binding keys in the config is a pain

tall apex
#

Bind an instant loose key at random and have a joker that makes people learn to type

red flower
#

hating on controller players smh

#

(my mod doesnt have controller support yet)

modern kindle
#

mine will likely never have controller support unless i can rob someone elses support

tall apex
#

Jimbo teaches typing

hushed field
#

is the card_add context from a recent smods version?

red flower
#

yes

red flower
#

card_multiply

zealous glen
#

Someone who’s neither pretty nor smart added it

red flower
#

i never made changes to smods what are you talking about

hushed field
zealous glen
zealous glen
hushed field
#

Context.card_added is not a vanilla context, right? The smods version that adds it, is that in a release version of smods, or only in the dev branch still?

red flower
#

the release seems to be from a couple of days after

hushed field
#

Oooh okay, maybe I didn't actually properly update smods then, and just imagined I did, haha

zealous glen
hushed field
#

Oh, I didn't add smods to my dev folder, just to the Balatro mods folder, that explains things, haha

spiral hawk
#

I might’ve made my joker a bit too rare aaaa

red flower
#

i like my jokers medium well

hard needle
#

how does one replicate the sizing effect of wee joker?

#
cardloadref = Card.load
function Card:load(card_table, other_card)
    local ref = cardloadref(self)
    local scale = 1
    local H = G.CARD_H
    local W = G.CARD_W
    if self.config.center.name == "Big Joker" then
        self.T.h = H*scale*2*scale
        self.T.w = W*scale*2*scale
    end
    return ref
end

cardsetabilityref = Card.set_ability
function Card:set_ability(center, initial, delay_sprites)
    local ref = cardsetabilityref(self)
    local X, Y, W, H = self.T.x, self.T.y, self.T.w, self.T.h
    if center.name == "Big Joker" and (center.discovered or self.bypass_discovery_center) then 
        H = H*2
        W = W*2
        self.T.h = H
        self.T.w = W
    end
    return ref
end

🤔 it says attempted to index local 'center' (a nil value)