#💻・modding-dev

1 messages · Page 283 of 1

manic rune
#

i will do more hooks then

#

simple...

agile thistle
#

you can patch that behaviour out yeah

manic rune
#

nahhhhhhhhhhh

#

surely i dont need to patch

#

:3

tired skiff
agile thistle
#

there's quite a few things you need to change if you want that to work properly

#

(i learned this from boss rush)

#

nothing i have off the top of my head though

manic rune
#

what function is run when you win a boss blind?

agile thistle
#

same as any other

#

end_round??? i think???

manic rune
#

if it is, dont advance ante

#

:p

agile thistle
#

well youll also need to account for the blind reroll

#

which is done seperately

manic rune
#

oh yeah

agile thistle
#

and also the Upcoming and Defeated text

#

that actually gets screwy believe it or not

#

oh and also finisher blinds

#

they win the game even when not in boss position

manic rune
#

u mean showdown blinds?

agile thistle
#

whatever

#

i forget

#

but yeah

#

that should be it i think??

tawny narwhal
#

I'm thinking of making a custom Pepsi one... worth the effort?

agile thistle
#

not sure if skips will show up

manic rune
manic rune
tawny narwhal
#

Well it's gonna go in my Jet Joker mod too

#

may as well

rugged pier
#
calculate = function(self, card, context)
        local enhanced_cards = 0
        if context.individual and context.cardarea == G.play and context.scoring_hand then
            if context.other_card.config.center ~= G.P_CENTERS.c_base then
                enhanced_cards = enhanced_cards + 1
            end
        end
        if enhanced_cards >= card.ability.extra.cards then
            card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
            G.E_MANAGER:add_event(Event({
                func = function()
                    message = 'Upgraded!'
                    card:juice_up()
                    return true
                end,
            }))
        end
        if context.joker_main and card.ability.extra.mult > 0 then
            return {
                mult = card.ability.extra.mult
            }
        end
    end

why would this not work for upgrading the joker? I tried playing 3 enhanced cards and it just didnt get any mult

sturdy compass
#

That gets you a table of the enhancements the card has. If you put it in a next() wrapper it'll get you the functionality you want

sturdy compass
manic rune
# rugged pier ```lua calculate = function(self, card, context) local enhanced_cards = ...
calculate = function(self, card, context)
        if context.before then  
          local enhanced_cards = 0
          for _,v in ipairs(context.scoring_hand) do
            if v.config.center ~= G.P_CENTERS.c_base then
                enhanced_cards = enhanced_cards + 1
            end
          end
          if enhanced_cards >= card.ability.extra.cards then
            card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
            card:juice_up()
            return {
              message = 'Upgraded!'
            }
          end
        end
        if context.joker_main and card.ability.extra.mult > 0 then
            return {
                mult = card.ability.extra.mult
            }
        end
    end

probably try this instead

#

its more reliable to handle all the enhancing stuff in context.before

manic rune
#

wiat

#

i forgot to replace context.other_card with v

#

@rugged pier 😭

sturdy compass
#

actually throwing

manic rune
#

GOD IM RUSTY NOW

#

💔

#

i will quit this community forever

rugged pier
manic rune
#

😭 im glad you found that

rugged pier
#

theres the loop

manic rune
#

does it work btw :3

rugged pier
#

but im not using v

#

testing, one of the person who helps me with art messaged

manic rune
#

ah icic

rose dragon
manic rune
#

💔

rugged pier
manic rune
#

np :D

rugged pier
#

would i have to add "and not context blueprint" anywhere for the upgrading thing?

#

i dont think it should be an issue

manic rune
#

true

rugged pier
#

just in case

reef belfry
#

im gonna jump off a building

rugged pier
daring fern
#

How could one put a seal on a consumable?

rose dragon
manic rune
#

i made a function to handle the animated joker easily for me :3

#

but SMODS already provided that function now, sooo

rugged pier
manic rune
#

mhm

#

heard its buggy though

#

🤷‍♂️

#

im gonna be honest

#

i dont know what the fuck im looking at

#

like, at all

#

:3

faint yacht
#

Tables upon tables upon tables... much like consistent HTML design back when Netscape 3.0 was relevant from what I heard?

manic rune
#

im trying to make my own create_UIbox_blind_choice function to handle creating a boss blind in position of a small blind properly

#

but like

#

-# am i supposed to understand ALL of those????

#

all i have managed to figure out is that i dont want those

#

thats the Up The Ante ui gone

daring fern
last sentinel
#

What would be the best way to make it so a modded tag does not show up naturally

plush cove
#

replace the existing in_pool function if there is one

peak tiger
#

possibly dumb question, how would I make it so that there's a 50% chance for something to activate, but if it doesn't, it activates something else?

daring fern
heady siren
#

Never got an answer to a question I asked a while ago, is there a context for other cards being scored for enhancements? I wanna make a card gain X0.5 mult for every other scoring card

daring fern
heady siren
#

I mean cards that aren't the enhanced card

#

4 cards score, and then it gives X3 mult, because it's X1 + 0.5 + 0.5 + 0.5 + 0.5

manic rune
#

🗣️

daring fern
peak tiger
#

config = { extra = {Xmult = 1.25}} How would I add a second Xmult here?

peak tiger
daring fern
manic rune
#

there we go, fixed the coloring

#

god i am SO cooking 🗣️

heady siren
maiden phoenix
manic rune
#

🔥

#

NO PATCHES

#

SO FAR

#

I CAN DO THIS

heady siren
peak tiger
maiden phoenix
#

I mean Balatro has some variable tied to effect, but using an extra table is 100 times better 😅

manic rune
#

there we go, i can change both small and big blinds now

tall wharf
#

you are fucked

manic rune
#

i just have to hook to end_round() so that it wont advance the ante when i beat the boss blind, and i should be good

tall wharf
#

YOU ARE FUCKEDDDDDD when I play on Jokerless

manic rune
#

its a placeholder 💔

#

should i make it an actual boss blind tho

manic rune
#

actually not sure what im supposed to do here without patching

#

gah

heavy canopy
minor furnace
manic rune
#

the thing is that currently, beating ANY boss blind rn, even when its supposed to be in the position of the Small blind

#

will advance ante by 1

#

thats not good

minor furnace
#

that makes sense

daring fern
#

How could one make it so when I put an enhancement on a joker it doesn't replace the joker?

minor furnace
#

oh, enhancement

#

uhh. for normal cards, the enhancement replaces the base card, and the rank/suit is a separate transpareng png that's overlaid on top of it

#

so for starters you would need to make versions of each of the enhancements with transparency to be laid over the Jokers

#

I'm looking at card:set_ability() now and uh

#

that process seems like it would be super involved to implement

minor furnace
#

I could also be wrong though

#

you might be able to define a new custom field for an enhancement on a card whose set is joker and get creative that way?

#

alternatively, look at how cards have editions set and do something similar with enhancements

#

any way you slice it the implementation is going to be cursed lol

#

all of this goes beyond my current understanding of the game

rose dragon
maiden phoenix
manic rune
heavy hare
#

i'm trying to put a permanent UI that shows the boss blind directly above the jokers, but i'm not sure if i'm not doing something to make an AnimatedSprite work like it should. do i need to add any of this?

#
-------------------------------
-- IN UI_definitions.lua
function create_UIBox_blind_tracker()
  return {n=G.UIT.ROOT, config={align = "cm", minw = 1, r = 0.1}, nodes={
      {n=G.UIT.R, config={align = "cm",id='blind_tracker',minw=2, minh = 1.6, nodes={
      }}
    }}}
end

function update_blind_tracker()
  local type = "Boss"
  local blind_choice = {
    config = G.P_BLINDS[G.GAME.round_resets.blind_choices[type]],
  }
  blind_choice.animation = AnimatedSprite(0,0, 1.4, 1.4, G.ANIMATION_ATLAS['blind_chips'],  blind_choice.config.pos)
  blind_choice.animation:define_draw_steps({
    {shader = 'dissolve', shadow_height = 0.05},
    {shader = 'dissolve'}
  })

  local tracker = G.HUD_blind_tracker:get_UIE_by_ID('blind_tracker')
  local node = {n=G.UIT.O, config={object = blind_choice.animation}}
  if tracker.nodes then
    tracker.nodes[#tracker.nodes+1] = node
  else
    tracker.nodes = {node}
  end
end

-------------------------------
-- IN game.lua Game:start_run()

self.HUD_blind_tracker = UIBox{
  definition = create_UIBox_blind_tracker(),
  config = {major = G.ROOM_ATTACH, align = 'cm', offset = {x=0,y=-5}}
}
update_blind_tracker()
peak tiger
#

How do I give myself a specific Joker?

heavy hare
daring fern
#

How could one calculate a joker that isn't present?

manic rune
#

what function rerolls the boss of the next ante when you beat it?

peak tiger
daring fern
peak tiger
daring fern
peak tiger
#

`SMODS.Keybind{
key = "jokercreate",
key_pressed = "j",
held_keys = {'lctrl'},

action = function(self)
    card_ = create_card("Joker", G.jokers, nil, nil, nil, nil, 'j_SSSmods_blank_jok')
    card_:add_to_deck()
    G.jokers:emplace(card_)
end,

}`

#

@daring fern

daring fern
peak tiger
#

idk why

#

it works tho

daring fern
#

and blank_jok is your joker key?

peak tiger
#

yup

manic rune
#

shouldn't you have "local" tho

#

not that it matters too much

peak tiger
#

should I?

#

where?

manic rune
#

local card_ = ...

peak tiger
# daring fern Show your code.

Oops! The game crashed: functions/common_events.lua:2295: attempt to index local 'center' (a nil value)
is the error message

peak tiger
daring fern
peak tiger
#

nevermind

#

I figured it out

#

I'm dumb

tawny narwhal
#

Yooo

#

So I'm tryna figure out

#

where is add_joker? I'm trying to find it in context to see how it works

daring fern
tall wharf
#

why does everyone make a tarot

reef belfry
daring fern
reef belfry
#

yeppers

daring fern
#

How would stone work on a joker?

#

Would it just replace the joker?

rose dragon
manic rune
#

@agile thistle i managed to do this without patches lol

rose dragon
#

WHY ISN'T THIS WORKING!111

function KMOD.DRAW_THESE_FUCKING_CARDS(card, layer) -- WHY ISN'T THIS WORKING!11111
    if card.ability.pin then
        local sprite = KMOD.pins[card.ability.pin].sprite
        sprite.role.draw_major = card
        sprite.VT = card.VT
        sprite:draw_shader('dissolve', 0, nil, nil,
                    card.children.center, 0.1, nil, nil, nil)
    end
end
rose dragon
tawny narwhal
#
SMODS.Joker {
    key = 'PHarrier',
    loc_txt = {
        name = 'Pepsi, Where\'s My Jet?',
        text = {
            "When {C:attention}Blind{} is selected",
            "creates a negative {C:Uncommon}Diet Cola{}"
        }
    },
    rarity = 3,
    atlas = 'PepsiHarrieratlas',
    pos = { x = 0, y = 0 },
    cost = 7,
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.Xmult, card.ability.extra.Xmult_gain } }
    end,

    calculate = function(self, card, context)
        if context.setting_blind then
            return {
                add_joker("j_diet_cola", negative, true, false)
            }
        end
    end
}

Am I able to remove the loc_vars, or is that a necessary component?

rose dragon
#

but i would recommend adding a info box thing for diet cola

tawny narwhal
#

Truuue

#

wait how do I do that

#

I've used loc_vars before but not for an extra info box

rose dragon
tawny narwhal
#

Legend

#

uhhh it didn't make the cola negative

#

WHat have I missed here...

maiden phoenix
#

Try this instead

SMODS.add_card({key = 'j_diet_cola', edition = 'e_negative'})
tawny narwhal
#

Also I'm losing my mind here

#

where do I find the descriptyions for vanilla cards?

maiden phoenix
#

In the localization folder

tawny narwhal
#

Thank you good sir

daring fern
#

How would wild work on a joker?

rose dragon
maiden phoenix
#

If you use the function is_suit() to check the suit of your card and it's a wild card, it will always return true

tawny narwhal
#

I need an example of a description listing another joker. If i have the Diet Cola in my description, would i make it {C:green} for uncommon or...?

daring fern
maiden phoenix
#

Oh

#

Imo if I were to do something like this, I'd make every Joker that requires a specific suit work on every suit, but that sounds tedious to achieve

#

And it would be useless on non-suit including jokers

reef belfry
#

which one shoul i work on next

rose dragon
rose dragon
manic rune
#

IM LAZY 🗣️

frigid flame
coral flume
#

Hey yall, getting a weird 'ghost' card appearing? I think it has something to do with the way my joker is destroying cards
Like my deck is drawing more cards thatn I have?

daring fern
coral flume
#

Cheers I'll try that

digital wasp
#

hey guys i just started modding and im getting this error

manic rune
#

is this a reasonable effect for a small blind

digital wasp
#

Oops! The game crashed:
Syntax error: card.lua:2243: <goto reverie_skip_create_card> jumps into the scope of local 'edi'

Additional Context:
Balatro Version: 1.0.1o-FULL
Modded Version: 1.0.0~BETA-0309b-STEAMODDED
LÖVE Version: 11.5.0
Lovely Version: 0.7.1
Platform: Windows

Stack Traceback

(3) C function 'function: 0x2db5af10'
(4) global C function 'require'
(5) main chunk of file 'main.lua' at line 884
(6) global C function 'require'
(7) LÖVE function at file 'boot.lua:323' (best guess)
Local variables:
c = table: 0x2db5f038 {identity:false, version:11.5, accelerometerjoystick:true, modules:table: 0x2db5d8d0, gammacorrect:false, title:Balatro, externalstorage:false (more...)}
openedconsole = boolean: false
confok = boolean: true
conferr = nil
(8) global C function 'xpcall'
(9) LÖVE function at file 'boot.lua:362' (best guess)
Local variables:
result = boolean: true
(10) global C function 'xpcall'
(11) LÖVE function at file 'boot.lua:377' (best guess)
Local variables:
func = Lua function '(LÖVE Function)' (defined at line 355 of chunk [love "boot.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"])

#

my mods

rose dragon
digital wasp
reef belfry
#

does this seem fair

tawny narwhal
manic rune
manic rune
#

destroying cards AND gaining $7 on top of that?

sure :3

tawny narwhal
#

I have the typing skills of a dyslexic penguin I swear...

coral flume
modest iris
#

hello guys, can someone help me with this issue im having with patches? i don't really know how to use them

daring fern
coral flume
#

ahh crap my bad

#

Nah still not working

daring fern
#

You need to put remove = true in the return.

tawny narwhal
#

Trying to balance these a little in terms of cost and rarity, but I don't think I've quite got it right.
Super-Cruising = $5
P.W.M.J? = $7
Stellar Collapse = $6
Singularity = $16

coral flume
#

within the add event? or the return just further down

daring fern
#

The last return.

coral flume
#

okay, its destroying now, but it's destroying every card

manic rune
#

the first joker is INSANELY good

#

after 1 hand, it goes straight up to X2.75??

#

😭

tawny narwhal
#

Yeah I need to tweak that as well

manic rune
#

i think increasing by X0.25 or X0.5 instead is better

#

since one-shotting blinds is usually what we do anyways

tawny narwhal
#

tru...

daring fern
manic rune
#

you still check context.destroying_card

#

theres no context.other_card

#

but also, i think you should use context.destroy_card instead

#

its a context provided by smods (from what i have heard), and its better than context.destroying_card because it seems to affect cards in hand too

tawny narwhal
manic rune
#

since from my experience, context.destroying_card doesnt target as many fields as context.destroy_card

coral flume
#

Okay well currently looks like this

manic rune
#

other than that, i think everything is fine

coral flume
#

you reckon, context.destroy_card rather than destroying card

#

?

manic rune
#

actually, nvm i still think rare is the right rarity, idk

manic rune
tawny narwhal
manic rune
#

use context.destroy_card instead

#

and you dont need the event

#

just returning remove = true will handle those animations for you

coral flume
#

Shit really? sick!

tawny narwhal
manic rune
#

but also, you need to make sure that context.destroy_card is in G.play.cards

#

else it will destroy everything

hushed field
#

@humble girder I'm checking the details on the card upgrade system you added to smods. Am I right in seeing that you added a separate implementation of bonus chips that's separate from the way vanilla Hiker does it?

manic rune
#

-# isnt it the same

humble girder
tawny narwhal
#

That's what the documentation says as of like 30 mins ago

hushed field
#

Oh, yeah, you're right. I'm confusing the way editions add bonus chips with the way hiker does it

tawny narwhal
#

valid

#

coding is hard sometimes

hushed field
#

That also explains a bug in my code, haha

humble girder
#

but also wtf was i smoking when i wrote this

manic rune
coral flume
humble girder
#
context.other_card.ability.perma_bonus = context.other_card.ability.perma_bonus
manic rune
#

G.play.cards is retrievable everywhere

manic rune
#

💔

hushed field
frosty dock
tawny narwhal
#

Wha...

#

You good homie?

manic rune
#

:3 no

humble girder
#

editions don't even add bonus, or they shouldn't really

tawny narwhal
humble girder
#

editions should just be returning a calculation like a normal person

hushed field
#

no, they just call it a bonus, but it's just chips from the edition

manic rune
#

foil simply returns chips when the card is scored

#

i think?

hushed field
#

but you can add it onto a card, and it'll show as a bonus on the ui, even without the edition

humble girder
#

that seems incorrect though

tawny narwhal
#

Actually, no. All of you. Water break time. Stay hydrated.

hushed field
#

which is why I didn't notice I was using both systems interchangeably

humble girder
#

i don't think vanilla editions show up as a bonus at all

maiden phoenix
#

Do someone have the link to the tutorial about UI stuff in modding?

humble girder
#

they show up as an info queue only

coral flume
manic rune
hushed field
#

I think that's true for when the edition is on a card, but if the card has a .bonus in its ability, it automatically shows, I think

manic rune
hushed field
#

I'm changing it over in my own code now, but lm grab an old version of Kino to grab a screenshot

maiden phoenix
humble girder
#

whatever it is you're doing i just want to say: don't

#

return { chips = card.edition.chips } from calculate pls

daring fern
humble girder
#

i'll even go as far as to say

#

pretty pls

hushed field
#

No, haven't done that at all. just some old jokers and enhancements in my mod that still use 'card.ability.bonus' as the container for bonus chips rather than 'card.ability.perma_bonus'

humble girder
#

enhancements should use card.ability.bonus

#

the thing you should consider, although set_ability is kinda trash is: card.ability.X is for enhancements, perma_X is for things not tied to enhancement

hushed field
#

Oof yeah, i'm aware, just typing before the thought is fully formed, haha. But some enhancements check for bonus on cards, and that I'm changing over

humble girder
#

in fact, if set_ability wasn't trash, card.ability.bonus would be reset every time you change the enhancement on a card

manic rune
# coral flume How do i go about coding this. Im new to it sorry
if context.destroy_card and next(context.poker_hands["Three of a Kind"]) then --Check if you are playing Three of a Kind
  for _,c in ipairs(G.play.cards) do --Check all cards in your playing hand. If you want it to only be scoring hand - use context.scoring_hand instead
    if c == context.destroy_card then --if context.destroy_card exists in there:
      return {
        message = "CRUNCH!",
        remove = true --Destroys it.
      }
    end
  end
end
humble girder
#

(hint: it isn't)

manic rune
#

i hope thats clear enough :p

humble girder
#

(because vanilla code is bad)

manic rune
#

i REALLY hope thunk doesnt hate modders because of how much we trashtalk his code lmfao

hushed field
#

is not trash talking the source code basically one of the rules of the server? 😛

manic rune
#

i had this joker which scales on how many chips a card gives, that includes editions and enhancements

unfortunately, i had to hard-code editions because its simply not possible to also account for modded editions that give chips too 💔

hushed field
#

My confusion mainly came from .bonus functioning exactly like .perma_bonus, so I never really noticed there were two, haha, but luckily that's fixable

humble girder
#

yeah, that's technically a bug

#

.mult is reset when you change enhancements

tawny narwhal
#

beep boop

manic rune
#

this guy speaks magic words

humble girder
#

(so does .bonus if you have baliatro enabled cause i patched in the behaviour)

manic rune
#

🧙‍♂️

humble girder
#

i suspect at some point hiker was hitting .bonus rather than .perma_bonus

manic rune
#

can i use baliatro as a library instead :3

humble girder
#

and whatever custom logic exists in set_ability for handling .bonus is a remnant of that

tawny narwhal
#

I take it you're one of the heavy hitters in the mod community?

#

Cause as I am a noob, you're speaking greek rn

#

And I speak greek...

humble girder
#

i don't have an iota of an idea if that's true

tawny narwhal
#

It is now

humble girder
#

sorry

#

best i could come up with

manic rune
#

im still surprised i managed to add "boss" small blinds ngl

#

WITHOUT researching anyone's code this time

tawny narwhal
manic rune
hushed field
#

I should refactor a lot of the older stuff in Kino, honestly. A lot of the bugs I'm seeing come from me not understanding SMODS properly, so a lot of the implementations are just accidentally doing kind of what I wanted, instead of being well-written code

humble girder
#

keep that in mind when you use baliatro for any sort of reference

#

the closer to the top of the file the code is

manic rune
humble girder
#

the less understanding i had of SMODS/balatro lol

manic rune
#

that goes for a lot of mods

hushed field
#

Haha, I'm luckily no longer just copying code, but just trying to see if I can find the logic, and then checking with other mods or documentation to see how it works

hushed field
#

partially because I'm past the point where the things I'm implementing have very direct analogues in other mods, honestly

humble girder
#

if you come across chef joker (it's not an upgraded one) that one might confusingly not interact with perma_bonus

#

that is intentional since it upgrades the enhancement, not the card

coral flume
humble girder
#

i should probably put something about that in the loc txt

coral flume
#

Hence the pseudorandom element

hushed field
#

my original implementation of the sci-fi card was that it'd not upgrade itself but would take every upgrade applied to the base card and apply it to itself, and changing that over to my current system's got a beautiful mess of code that does what I need it to do, but will act very strangily if it's to interact with other mods, haha

coral flume
#

my bad, shouldve made that clear

tawny narwhal
#

Is it bad that I still can't fully figure out how to navigate GitHub?..

manic rune
#
if context.before and next(context.poker_hands["Three of a Kind"]) then --We mark a random card.
  local radCard = pseudorandom_element(G.play.cards,pseudoseed("your seed here"))
  if radCard then radCard.ability.marked_by_your_joker_or_smt = true
end

if context.destroy_card and context.destroy_card.ability.marked_by_your_joker_or_smt then --This one checks if context.destroy_card has the mark.
  return {
    message = "CRUNCH!",
    remove = true
  }
end
hushed field
manic rune
#

this is how id do it

tawny narwhal
native zinc
hushed field
#

Hahaha, does that randomly pick art??

manic rune
hushed field
manic rune
#

i have a lib of functions of my own now

#

❤️

hushed field
#

I used to know how it worked in cmd, then nobody that worked in linguistics research knew how to use it so I stopped using it and now I'm just struggling to use the desktop app and hope that's good enough, haha

manic rune
#

i use those ones the most, it enhances the cards while also adding the effects i like

native zinc
#

i want to disguise it as a joker but with the wrong price so its identifiable

#

but that's so hard

hushed field
#

making it randomly pick a rare joker shouldn't be too difficult, right?

native zinc
#

probably not

manic rune
hushed field
#

... I should override the chips message that .bonus applies, because there's no reason for it to show

native zinc
manic rune
#

you can grab the joker spritesheet from balatro

native zinc
#

oh no i mean like. description too

manic rune
#

then in set_ability (aka when it appears in shop), change the joker's sprite pos randomly

#

oh, uh

#

i forgot how to do that, sorry

#

💔

native zinc
#

i guess i can start with that anyway

#

means i don't have to draw more art 😎

hushed field
#

you could do that in set_sprites, no? Also, if you write a custom generate_ui, you could make it grab the matching description

native zinc
#

oh hmm

hushed field
#

probably a way easier method as well

last sentinel
#

Is there a global table of all the suits in the game? (Thus also covering modded suits)

daring fern
last sentinel
#

yeah

manic rune
native zinc
#

it has been done

hushed field
#

very cool!

native zinc
#

i also threw in cavendish into the pool

#

gotta get the people on their toes "hang on i didn't buy michelle this run..."

hushed field
#

If you want to make it so the in-shop text is even cheekier, you should set it up to use dynamic text, and just make it change over to the proper description for a few frames every few seconds 😛

native zinc
#

lmaooo

#

i have no idea how dynamic text works and im very scared to try

manic rune
#

r those odds fine? if it hits the 1/3 then it will summon a random "boss" small/big blind

crisp coral
#

1/3 happens more often than you'd think

manic rune
#

mm got it

#

what would be the best chance to go with then?

#

they arent too hard, so maybeeee 1/4 is fine?

reef belfry
#

is something wrong with this..

manic rune
#

and disacrd == true

#

wat u trying to do here

reef belfry
#

idk im just usisng the SMODS doc n tryna work from ther

manic rune
#

in that case, a lot of stuff is wrong here

#

first of all - discard == true is not something you can do

reef belfry
#

i think that was when i was tryna mark cards but i just settled with remove n just forgot to remove it

manic rune
#

and secondly, you cant run those in return

native zinc
#

don't use card.ability.extra. in the return

#

also those are ==

#

you want to define, one equal

manic rune
#

im guessing the effect intended is discarding cards = destroying them or smt?

reef belfry
#

destroying them then giving you money

#

10 if enhanced 7 if not

past valve
#

New to modding. How hard would it be to make a Joker that checks if you have one of a pool of specific Jokers, then adds mult and shows a unique message for each joker in its pool?

manic rune
long acorn
#

how does the game handle sorting the cards in the collection?
like say i have a legendary and a common in the mod i made would it automatically show the legendary last?

daring fern
crisp coral
#

there is no sorting, all manual

long acorn
#

i wonder how neato jokers does it cause im following how they did the jokers (separate files)

daring fern
hushed field
#

I've also set up each joker as an individual file. My method is to have a list of all joker keys that the game reads in when loading jokers, and then load the jokers based on that order. I think Ortalab does it that way, and that's generally a good codebase to check, due to Eremel also working a lot on smods code

long acorn
#

oh cool I'll check that then

manic rune
# reef belfry is something wrong with this..
      if context.discard then
         local moneyEarn = 7
         if not SMODS.has_enhancement(context.other_card, "c_base") then
            moneyEarn = 10
         end

         local cardToBeDestroyed = context.other_card
         G.E_MANAGER:add_event(Event({
            func = function()
               ease_dollars(moneyEarn)
               cardToBeDestroyed:start_dissolve()
               return true
            end
         }))
      end
#

here

#

oh wait, get_enhancements still works if the card is c_base, one sec

#

@reef belfry here, it should work properly now

#

just realized i could just do

local moneyEarn = (not SMODS.has_enhancement(context.other_card, "c_base") and 10) or 7

instead of

local moneyEarn = 7
if not SMODS.has_enhancement(context.other_card, "c_base") then
  moneyEarn = 10
end

but im too used to doing it the lengthy way :p

runic pecan
#

bump

daring fern
#

How could I check for context.post_trigger but only when scoring?

manic rune
#

dunno, that seems hard unless you hard-code it into specific contexts

orchid thunder
wintry solar
#

You can check what context the post trigger is from

#

It’s context.other_context.whatever iirc

orchid thunder
#

Woah

next timber
#

trying to test a card that can tell you where in your deck other specific cards in your deck are and i draw all the cards its supposed to find before i can actually draw it to find them

#

oh my god it hapepned again

daring fern
#

How could I draw a seal on a consumable?

manic rune
daring fern
manic rune
#

tha

#

thats confusing

#

but what you are working on is really nice, im looking forward to it :3

unfortunately i lack knowledge about this kinda stuff so i cant help, sorry

daring fern
manic rune
#

mmm

i dont think seals on jokers is a good name for your mod at that point, is it

mental nacelle
thin anchor
#

good morning

daring fern
#

The eternal sticker was unexpected but I still had to code it in.

manic rune
mental nacelle
modern kindle
#

good schmorning modding dev

manic rune
#

good evening dilly

modern kindle
#

good evening bepis why are you cola

manic rune
#

i was always conke, wdym

modern kindle
#

or conke now

#

why are you impact now

#

what has gone on

manic rune
#

its based on the hit game honkai impact 3rd

modern kindle
#

im going to eat your mod

manic rune
#

💔 no

modern kindle
#

too late already took a bite

manic rune
#

o ye also

#

check this out :3

thin anchor
#

spin

manic rune
#

spin

modern kindle
#

spin

daring fern
thin anchor
#

what do you guys think?

daring fern
thin anchor
#

yes

long sun
#

hiya! my Ghost cards don't quite work — when unscored, all Ghost cards gain X0.25 Mult, instead of just the one that didn't score

#

plus, the card_eval_status_text appears on the top-left

#

i know it's something to do with the use of self here, but what exactly did i do wrong?

daring fern
long sun
#

grand

native zinc
#

i really wanted that drivers license

long sun
#

nah, it crashed when hovering over one of them

#

code is now:

daring fern
# long sun

In loc_vars add center to the inputs and change the cards in there to center

long sun
#

clarify? sorry

#

do you mean card.config.center?

#

or center.config?

daring fern
#

Change loc_vars to loc_vars = function(self,info_queue,center) and center.ability.h_x_mult

long sun
#

ah kay

#

thanks

#

new error

#

this happened when the hand was played

daring fern
#

Change all instances of card.config to card.ability

long sun
#

ah -w- sorry i missed those

#

perfecto!! works just like i want it to

#

thanks!!

gilded narwhal
#

Hey gang how do I make those "all x count as y" cards

gilded narwhal
#

I'm trying to make all face cards count as jacks queens and kings

daring fern
gilded narwhal
#

Oh boy

#

Like just with take_ownership or would i need a lovely patch

daring fern
gilded narwhal
#

Coolcool

#

And would that work with an enhancement as well?

daring fern
gilded narwhal
#

Kewl ty

next timber
#

balatro how tf am i supposed to fix an error if you wont let me see it before just entirely closing yourself

daring fern
next timber
#

theres. no error in the log?? it just crashes?

#

wtf

#

ok the error seems to be caused by me running my deep_copy function on G.deck.cards

zealous glen
#

You’ll have to modify all vanilla effects individually

#

Including Straight calculation

#

Which I think is replaced by SMODS

zealous glen
#

I’m not sure what you’re doing but if a table contains (a reference to) itself maybe it’s an infinite loop

next timber
#

true

daring fern
modern kindle
#

you could just set the prob of every glass card with a sticker to 0

zealous glen
modern kindle
#

also hi vic!

#

stickers on cards

zealous glen
#

Hello dilly

#

I can see they have stickers on cards

#

I still don’t know what they coded

daring fern
zealous glen
#

Balatro can have stickers on any cards

#

Doesn’t mean that does anything

zealous glen
# daring fern

Yeah I imagine the cards are removed from the deck either during the vanilla calculation or SMODS’

#

So you’re in the wrong place

#

You want to stop cards from being destroyed at calculation level, not animation level

thin anchor
#

how would i destroy cards

daring fern
thin anchor
#

yes

daring fern
thin anchor
#

ok

zealous glen
crisp coral
#

what do we think about this

thin anchor
#

i thought that said ti-30

hushed field
thin anchor
#

is this correct

crisp coral
#

no

thin anchor
#

hmmm

hushed field
# thin anchor is this correct

you don't return contexts, and every thing you return nedes to be matched with a key for the game to know what to do with it. These keys are hardcoded

thin anchor
#

oh

#

how would i increase ante

daring fern
tawny narwhal
#

The Jet Joker Mod is up and running. Many more additions to this set to come. Yaaay.

daring fern
modern kindle
tawny narwhal
#

Going straight into the README TODO list

modern kindle
#

Back when I was in the navy I was around them alot for my last year and they're some wicked cool jets

tawny narwhal
#

Dude I've always loved how they look

#

I have a friend who got some wicked shots of them and I was pretty jealous ngl

modern kindle
#

Yea they're great and definitely assisted in giving my ass some tinnitus lmfao

tawny narwhal
#

Fax, here in Brisbane they fly around for the RiverFire festival, it's not quiet that's for sure.

modern kindle
#

I wish you great luck with your mod :D

quartz ravine
#

Hi guys, is there a way to play a sound effect when a certain hand is played? Right now, it plays the sound effect when I just select the appropriate cards, not only when it is played!

pseudo cape
#

does anyone know where I should look for creating a new mechanic for the game, I know it'll be difficult but was wondering if there was a genral framework for custom elements that anyone know of

pseudo cape
quartz ravine
#

It didn't seem possible within a custom poker hand, that I could see. Thanks @pseudo cape

modern kindle
pseudo cape
#

it worked though, and I've not experienced any issues with it

quartz ravine
#

Oh cool, I did not try adding a calculate function to the poker hand, good idea

tawny narwhal
pseudo cape
quartz ravine
#

I did something odd here!

quartz ravine
tawny narwhal
modern kindle
pseudo cape
# quartz ravine lol
             -- calculate is where the scoring and effects of the joker are handled. 
        calculate = function(self, card, context)
                -- context.joker_main takes place when the joker is meant to score.
            if context.joker_main then
                return {
                        -- adds the number contained in the mult variable to the score.
                mult_mod = card.ability.extra.mult,
                        -- message is the text that appears when the joker scores.
                        -- localize is used to make sure the text works across multiple languages.
                    message  = localize {
                        type = 'variable',
                        key = 'a_mult',
                        vars = {
                            card.ability.extra.mult
                        }
                    }
                }
            end
                -- context.after takes place after the hand is scored.
                -- context.blueprint applies if the joker is a blueprint copy.
            if context.after and not context.blueprint then
                            -- adds the gain variable to the base mult number.
                        card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.gain
                    return {
                            -- another message, just prints the text.
                        message = "Yippie!",
                        colour = G.C.MULT,
                            -- plays the sound effect yippie.ogg. the prefix is needed.
                        play_sound("Coo29_yippie"),
                            -- needed, can be changed to context.other_card to apply to another card.
                        card = card
                    }
            end
        end```
#

that's my calc function, the sound is at the end

quartz ravine
tawny narwhal
#

white

tawny narwhal
quartz ravine
#

Here is my example block btw

    example = {        
        { 'S_10', true},
        { 'H_10', true},
        { 'C_10', true},
        { 'H_10', true},
        { 'H_2', false}
    },
pseudo cape
#

is that the right layout for the card sigils?

#

I've never added a custom hand so I dunno

quartz ravine
#

This is so odd.

#

S_T?

modern kindle
#

ranks 10, 11, etc never work for me

#

T for 10

tawny narwhal
modern kindle
#

as ref for how it works for me

#

sorry it was ace of spades before so ignore the comment

#

i just made the change to show you

quartz ravine
#

Ahh, thank you!

modern kindle
#

np!

pseudo cape
#

oop

#

someone got to it first

quartz ravine
#

weird that ten is different. When comparing to card rank, it is '10' or 10, but over here it is done differently

modern kindle
#

for some reason ranks above 9 never work if i use their id, so i use their letters

#

S_A, S_K, etc

red flower
#

its so that the IDs can be a single character

daring fern
#

How do I prevent a playing card from being destroyed?

quartz ravine
#

Thanks folks

This was one of the last things I was working on before releasing. I am nearly done with an animal themed mod that adds 5 custom editions, 3 new enhancements, and 32 animal themed jokers

These are two easter egg jokers with special unlock conditions

tawny narwhal
#

Armour

quartz ravine
#

thanks 🙂

modern kindle
#

im slowly inching towards release myself at 55 or so jokers and some vouchers and such

tawny narwhal
modern kindle
#

i know my friend is an aseprite user and she makes all of my art but unfortunately i dont have much byond that

#

but jokers in general arent very consistent in their borders

#

vanilla stuff has little consistency

thin anchor
#

might be a dumb question but where is the code for pareidolia

bold canopy
#

I know this is a few days old, but I was having the same issue. Couldn't figure it out for the life of me, then eventually I noticed that I had typed my function as use = function (self, area, card) instead of use = function (self, card, area) once I corrected the syntax it worked perfectly.

tawny narwhal
old bane
thin anchor
old bane
#

could check common_events.lua

daring fern
tawny narwhal
#

Case sensitive?

bold canopy
#

Line 964 of card.lua specifically.

tawny narwhal
#

Also, might be a noob question

thin anchor
#

found it

narrow iron
tawny narwhal
daring fern
tawny narwhal
#

bleh

#

It is what it is IG

#

wish it was built in

bold canopy
#

Or specified your own localization.

narrow iron
#

I hadnt considered that it needed to be in the localization file

#

Thank you

thin anchor
#

so is this right

daring fern
thin anchor
#

hook?

daring fern
thin anchor
#

great

daring fern
# thin anchor great

You could do something like this. lua local oldisface = Card.is_face function Card:is_face() if SMODS.has_enhancement(self, 'm_prefix_facecard') then return true end return oldisface(self) end replacing prefix with your mod prefix.

daring fern
#

Also how could I tell cryptid to put seals on jokers for the seal decks?

tawny narwhal
#

Chat I was dumb

#

I forgor to customise my VSCode

#

Now I have free photoshop

#

yay

warped marsh
#

This might sound a bit niche of a question but I want to add another slot, so the "Joker" is in it's own slot with its own amount allowed, and only those types of Jokers are allowed. Is there any mod that kind of does that?

daring fern
warped marsh
daring fern
next timber
#

is there a template for coloured jokers with the thicker white border?

brazen tusk
#

border is 2px wide

heavy canopy
#

How would you go about creating a joker that change a card's suit/rank to another ?
I tried using other modded jokers as a reference but could not make it work

runic pecan
#

Can badge colour have gradient?

runic pecan
heavy canopy
heavy canopy
#

idk if it applied for joker but I will check it out

runic pecan
heavy canopy
#

thx

runic pecan
runic pecan
brazen tusk
#

very cool!!

tawny narwhal
#

Bruh I actually really enjoy doing sound design

#

If anyone wants help with sound stuff, HMU

hushed field
#

be careful with that because I might just send you 50 requests immediately, otherwise 😛

tawny narwhal
#

Woah lmao, I'd do it, but IDK how long it'd take

#

I got assignments to do lmao

#

it's 2am... I have class at 8:30... Maybe I need to be a little more organized disciplined

brazen tusk
#

😭

#

i be doing that daily, not a good lifestyle 😔

tawny narwhal
#

Not at all

hushed field
#

hahaha, I haven't looked into sound stuff at all, so asking people for sound stuff would be a bit too pre-emptive 😛 I'll worry about sound once I get these alien abduction shaders going

daring fern
#

How do check if a consumable is being used and it is the consumable the seal is on?

tawny narwhal
#

I had just reset my body clock too.... 9pm bedtime my beloved...

brazen tusk
#

was like 5am for me yesterday

modern kindle
brazen tusk
tawny narwhal
tawny narwhal
#
SMODS.Sound {
    key = 'LJet_SCruiseUpgrade',
    path = 'SuperCruising.ogg',
}

...

-- RESET IF 'UPGRADE' NOT FULFILLED - MORE THAN ONE HAND PER BLIND IS USED
        if G.GAME.current_round.hands_played == 1 and context.hand_drawn and card.ability.extra.Xmult ~= 1 then
            card.ability.extra.Xmult = 1
            return{
                message = 'Subsonic...',
                sound = 'LJet_SCruiseReset',
                colour = G.C.ATTENTION,
            }
        end
brazen tusk
#

ohhh i see

#

needs to be within the joker

tawny narwhal
#

SMODS.Sound is for "pre-loading" the sounds, Documentation is here

brazen tusk
#

should be good if i move my smods.sound to the right place

#

ty

brazen tusk
#

my smods.sound is set up within my main lua as if im trying to import it into the mod rather than calling it within the joker

tawny narwhal
#

Yeah it'd need to be in the same file as where you want to call it

#

Also, if anyone knows how to cancel a sound being played, let me know. I have a Joker that spawns negative Diet Cola's and I want the negative sound not to play when they are created.

tawny narwhal
#

No

#

SMODS.add_card({key = 'j_diet_cola', edition = 'e_negative'}),

daring fern
runic pecan
#

Yup, like this ⬇️

tawny narwhal
#

Ahhhhhh rightio

#

Wait I'm not very intelligent

#

How do I do this for the Diet Cola

#

I've done it to the Joker that spawns them......

runic pecan
tawny narwhal
daring fern
maiden river
#

am I cooking

long sun
#

working with an enhancement — how can i check if the enhanced card was played?

maiden river
#

like, played and scored or just played?

long sun
#

ah ya, played and scored

brazen tusk
#

context.cardarea == G.play is how its done usually but idk if it translates to enhancements

long sun
#

not sure about that

brazen tusk
#

can't seem to get it to work still, thinks im looking for the sound in the default files

tawny narwhal
#

What are your sound keys?

onyx sonnet
maiden river
#

lmao

agile dew
#

hello! im new to modding

brazen tusk
onyx sonnet
#

btw yes u are cooking

sturdy compass
maiden river
heavy canopy
#

agreed

agile dew
#

is there a place i can learn what each parameter means?

maiden river
sturdy compass
brazen tusk
onyx sonnet
#

hi astra

maiden river
heavy canopy
#

lol

maiden river
#

specifically consumable 😭

onyx sonnet
tawny narwhal
sturdy compass
heavy canopy
agile dew
#

thanks!

maiden river
tawny narwhal
sturdy compass
#

rae have you seen my cursed jokers with seals tr

maiden river
#

no

#

astra what have you done

sturdy compass
maiden river
onyx sonnet
maiden river
#

maximus has gone off the rails

sturdy compass
#

lmfao

#

The implementation is kinda funny

brazen tusk
#

oh wait i didnt change it in both place

#

im dumb

tawny narwhal
sturdy compass
#

For example

thin anchor
#

hello

tawny narwhal
sturdy compass
#

Fuck it leet text time

tepid eagle
#

box building characters woauh

tawny narwhal
sturdy compass
tawny narwhal
sturdy compass
#

I had no idea those were basic ASCII characters

daring fern
wicked leaf
#

the hell I do wrong...

brazen tusk
#

does the SMODS.Sound have to be inside the SMODS.Joker or can it exist outside it?

sturdy compass
#

It can exist independently

wicked leaf
zealous glen
tawny narwhal
brazen tusk
#

not rn im wondering if it does need to be

#

i'd think not though

sturdy compass
#

It does not need to be

brazen tusk
#

this is how i have it

tawny narwhal
sturdy compass
#

oh you don't need to specify sounds/

brazen tusk
#

i tried with and without

#

but ill try again bc

tawny narwhal
#

Code block time?

sturdy compass
#

the sound attribute in the return should be [modprefix]_chomp

brazen tusk
#

as we know doing the same thing over and over again in coding sometimes happens to actually solve the problem

#

yeah my prefix is Test rn

sturdy compass
#

ah ok

tawny narwhal
#

set key as Test_chomp in initialisation

sturdy compass
#

No don't do that

tawny narwhal
#

or is that another redundency?

tawny narwhal
#

That's what I've done and my sounds work

sturdy compass
#

if you do that then you would have to return sound = Test_Test_chomp

tawny narwhal
#

Works like a dream

sturdy compass
# wicked leaf

I wish I could help but this is something I've never seen before and have no clue what's wrong. Very odd

brazen tusk
#

gives the same crash either way

wicked leaf
#

this game hates me </3

brazen tusk
wicked leaf
brazen tusk
sturdy compass
#

I mean if you're specifying that as a key it should be fine

agile dew
#

how can i retrigger jokers in specified positions?

sturdy compass
tawny narwhal
# brazen tusk

This error means SMODS isn't looking in your assets -> sounds folder

sturdy compass
#

Show your file structure

tawny narwhal
brazen tusk
tawny narwhal
#

What file type are your sounds?

brazen tusk
#

ogg

tawny narwhal
#

And you initiate before you call?

#

Cause if so then I'm stumped

brazen tusk
vague helm
#

Hi! Does anyone know how to modify the order in which cards are drawn? I'm trying to implement this Joker. I don't believe there are any Jokers in the base game that change drawing orders

next timber
#

aiko has a joker that changes draw order i think

brazen tusk
#

goated joker idea as well

#

very cool

long sun
#

hiya, sorry this shader isn't working

#

lemme grab the error rq

next timber
#

i have the github for aikos mod open, one sec

vague helm
long sun
vague helm
#

@simple gull

rugged pier
#

yo why is my voucher still locked?

brazen tusk
rugged pier
tawny narwhal
# brazen tusk

Wait... huh? Maybe try SMODS.Sound-ing in each Joker file.

rugged pier
#

okay i restarted the app

#

it worked

daring fern
# vague helm Art from here: https://www.reddit.com/r/balatro/comments/1jhspkl/comment/mja2ekz...

Try this. ```lua
local oldshuffle = CardArea.shuffle
function CardArea:shuffle(_seed)
local g = oldshuffle(self, _seed)
if self == G.deck then
local prioritys = {}
local otherones = {}
for k, v in pairs(self.cards) do
if v.seal == "Blue" then
table.insert(prioritys, v)
else
table.insert(otherones, v)
end
end
for _, card in ipairs(prioritys) do
table.insert(otherones, card)
end
self.cards = otherones
self:set_ranks()
end
return g
end

#

You would have to check the joker is present though.

vague helm
#

Interesting. So this wouldn't be in the Joker code itself.

sturdy compass
# long sun

I have no idea how to do shader stuff, but maybe try adding the mod prefix to the shader key when specifying it in the edition?

brazen tusk
tawny narwhal
tawny narwhal
long sun
vague helm
#

Yes, I would need to add code here that detects the existence of the Joker. I'm just assuming that this is not in the Joker object at all

wicked leaf
tawny narwhal
sturdy compass
tawny narwhal
#

I'm definitely wrong

wicked leaf
#

and I JUST imported it

tawny narwhal
#

Hence why I'm wrong

wicked leaf
#

I could try reimporting it I guess

brazen tusk
#

im fairly certain its the file naming

#

whats your mod prefix?

wicked leaf
#

lfskins, its right there in the log

sturdy compass
#

Atlases don't use prefixes

brazen tusk
#

words come up multiple times so i wasnt sure

sturdy compass
#

So where are you using the atlas?

#

I'd like to see that

brazen tusk
#

^

long sun
#

ya so, i'm using the Shader atlas in my edition

#

the shader is phanta_waxed.fs

stiff locust
#

is there a way to automatically check if an enhancement's always scores argument has triggered (on the enhancement itself)

tawny narwhal
vague helm
#

I'll let you know how it goes. Thanks @daring fern !

long sun
#

mhmhm

stiff locust
#

i say automatically because yes I could manually check if the card was scored by that but that would be annoying

sturdy compass
uncut grail
#

hey im just kind of super confused
i make a card debuffed and then add a joker using debug plus and then the debuff just washes away

#

is that normal

wicked leaf
tawny narwhal
wicked leaf
brazen tusk
#

dont need the prefix in the key!

sturdy compass
#

bunco is not a mod you should be basing your code off of lmao

wicked leaf
#

I just changed it, same crash

tawny narwhal
long sun
brazen tusk
#

everything i do that works doesnt have it

#

i use prefixes on my keys outside of the main lua like in my localisation files but thats it

tawny narwhal
tawny narwhal
#

I updated it like 3 days ago

long sun
#

it shouldn't be an issue with that

sturdy compass
tawny narwhal
#

Yeah IDK, I probably have something goofy going on with my SMODS.Sound and SMODS.Atlas... But they work so oh well

brazen tusk
#

so true

wicked leaf
#

ok im just gonna

#

try to change the filenames

tawny narwhal
#

I should clarify, I'm new to coding and modding. I've been doing it for like 2 days.

#

So hopefully that explains any of my ignorence

brazen tusk
#

ive been at it barely a week so nw lol

#

i think most of us in here are just as confused as the next person and js trying to help where we can

sturdy compass
#

I’ve been doing this for months and I’m confused lmao

brazen tusk
#

doesn't get easier you just learn more

hushed field
#

i mean, some things get easier

sturdy compass
#

Ehhhh I’d say it gets easier

hushed field
#

once you're comfortable, you need less documentation 😛

#

but still some documentation. I need to figure out how sliders work for this #1353866504743161886 config and they're just not showing up

brazen tusk
#

-# doesn't get you all that far in the first place, no offense to the smods team they've done a great job making modding way more accessible and easy

native star
#

hello hi

sturdy compass
#

Heya

brazen tusk
native star
#

been looking around for a potential answer to something I've been hunting down over the past day or so

brazen tusk
#

im such a hater sometimes smh

native star
#

do feel like this was very likely asked in the past though so, apologies if it is an annoying question

sturdy compass
#

Just ask! No need to pander

tawny narwhal
#

np homie

sturdy compass
#

We gotcha here

brazen tusk
#

^^

native star
#

been trying to look for a means to either replicate or copy Shortcut's effect into my own Joker, i.e. allow straights to be made with a gap, I know steammodded's got get_straight but for the life of me I cannot fully understand how to utilize it, been using this mod as a means to study lua so, very new, wouldn't call myself the best programmer either

wicked leaf
brazen tusk
wicked leaf
#

it doesnt have to do with the deckskin

#

it has to do with the atlas not being able to retrieve the file

brazen tusk
#

the file is 100% called ashie.png right?

vast lily
#

I'm trying to make a joker which scales based on the player's full deck composition, like Cloud 9, it works as intended rn but idk how to make the description text always show the correct value the way Cloud 9 or Bull/Bootstraps have it

wicked leaf
#

the file is not corrupted either

brazen tusk
# wicked leaf

remove the underscore from the key on the off chance it thinks its a prefix?

tawny narwhal
#

Same with #1#

vast lily
#

i know that

tawny narwhal
#

So add a config for it

vast lily
#

idk how to make the text always stay up to date with the number of a specific rank in the deck

wicked leaf
#

I've literally MADE atlases like this before I dont know why this one isnt working

brazen tusk
#

bloody commas

#

and at the bottom after pos

#

and all those brackets at the bottom*

wicked leaf
#

also yes I do need those brackets

#

wtf are you saying

brazen tusk
#

i mean the commas after them

#

if its at the end of smth it doesnt need a comma after it

wicked leaf
#

it CAN have them even if it doesnt need them

#

also the problem is in the ATLAS

#

as I have said

#

you keep saying to change things in the deckskin

brazen tusk
#

because that comes up first but if the whole thing is crashing its sometimes a weird formatting error, for me at least

brazen tusk
#

is your smods updated?

tawny narwhal
vast lily
#

i have that in my calculate function already and the card scores properly

#

it's just the description text im trying to fix

brazen tusk
long sun
#

still no luck with my edition :<

#

i tried renaming the shader to just waxed.fs but it didn't work

#

it's in assets/shaders

vast lily
#

what i think i need to do is make it so my total_mult variable updates more often but im worried about causing the game to lag if i make it update TOO often

brazen tusk
tawny narwhal
brazen tusk
tawny narwhal
#

Mainly cause I can't find its config

brazen tusk
#

so #1# would be the value card.ability.extra.mult has

vast lily
#
config = { extra = { mult = 4, ace_tally = 0, total_mult = 0 } },
loc_vars = function(self, info_queue, card)
    return { vars = { card.ability.extra.mult, card.ability.extra.total_mult } }
end,

this is what mine looks like rn, i dont have ace_tally in loc_vars because the text box never needs the raw ace tally

brazen tusk
#

js put card.ability.extra.ace_tally

#

should work then

vague helm
#

Worked like a charm, @daring fern . Thanks!