#đŸ’»ăƒ»modding-dev

1 messages · Page 22 of 1

frosty dock
#

right

mellow crag
#

While composite hands is a really fun mod to make, I am trying to figure out some kinks about it

#

Feder what?

#

XD

frosty dock
#

can I at least make the case of the function names consistent?

mellow crag
#

I have only 5 projects

random sleet
#

meanwhile you have like twelve projects

#

man i really wish that it wasnt so difficult to set up a "Select and Use" button for oddities in packs...

#

like how you can Buy & Use consumables in shop

frosty dock
#

huh, I guess there's only one or the other in vanilla packs

random sleet
#

but that's special-cased for cards in shop

#

yeah; since you Select most oddities, i dont want it to not be an option to Select ones that could be Used (think the case of the dollar bill oddities, which are always usable)

#

oh and then controller stuff. groan.

#

i did get controller stuff working in oddity packs tho :)))

mellow crag
random sleet
#

turns out theres a separate function to hook/inject to for controller related stuff for card buttons, its not just use_and_sell_buttons

#

i think its card_focus_ui but i forgor if thats right

#

you might need to do similar for Fuse

#

(and alchemy packs, actually)

frosty dock
random sleet
frosty dock
#

btw what exactly was jank about seals again?

#

I forgor

random sleet
#

uhhhh loading yhem at all

#

they had a nil prefix and :lower()'d the mod prefix even if it should have uppercase letters

#

and you cant have multiple underscores in a seal iirc

frosty dock
#

kk

mellow crag
random sleet
#

sry im at work

#

i think itd be in the toml

regal shoal
#

In 1.0 when you add a Suit it's added to all Decks ? How to not to ?

frosty dock
#

I should add API support for that tbh

regal shoal
#

Oh ok !

#

Take you time ❀ don't want to add delay

frosty dock
#

as of now you would have to modify Back:apply_to_run() to accomplish this, but it's a good thing to have as part of the API

#

iirc feder's musical suit did this on 0.x

regal shoal
#

Ty !

#

Is it the same for Ranks ?

frosty dock
#

yep

mellow crag
#

Yeah I ended the poll cause the results are clear, time to port fusion jokers!

random sleet
#

i had implemented a hook for Game:start_run in dankranks to remove its ranks from the starting deck; when i get home i can grab that code

#

(note that standard packs and other random card generation effects still will create those cards)

random sleet
#

it might be possible to just patch the loading screen cards to omit your cards im not sure

#

oh yeah... that reminds me
i wonder if an "omit_from_pool" function for centers would be a good addition to smods...

crisp coral
#

remove from specific pools?

random sleet
#

like instead of doing my jank yes_pool_flag's that update every frame, the đŸ§» could have a function that checks "hey do you have any 2s in your deck" and if it's rolled for create_card but fails this function, the card is rerolled

#

or however that pool stuff works i dont really understand it 100%

zealous glen
#

Idk how the pool stuff works but couldn’t you only turn it on and off when relevant?

random sleet
#

i could probably not run it every frame yeah lol

zealous glen
#

The game turns off cards as they’re added to the deck

#

And then turn them on when they’re removed

random sleet
#

yeah i could probably just update it on add/remove

#

but thats not the point

#

this could be arbitrary mid-run-unlock conditions

zealous glen
#

If it’s arbitrary then the only common point is right before they’re generated

random sleet
#

groan no i mean doing it as a function of the center

zealous glen
#

Otherwise each object ought to have its own flag switcher at the appropriate time

random sleet
#

oh yknow what, the pool flag stuff is already checked for every center in the pool right? its probably not that hard to shunt a function call in there

#

i really oughta learn how to use github

#

so i can actually add stuff to smods instead of pestering aure :(

zealous glen
#

You could send git commits like they did before GitHub was invented

#

By email

random sleet
#

i mean ive sent a lot of stuff to aure in dms here lol

zealous glen
#

That works too

#

I just forgot the name of the command that generates the thing that people used to use before GitHub

random sleet
#

but im sure they'd rather the brunt of implementation wasnt all on them

zealous glen
#

“Here’s an unsuspicious zip file, aure”

mellow crag
#

What am I missing?

gaunt thistle
#

morning chat

mellow crag
#

Morning

frosty dock
random sleet
#

sound like a good add to smods?

random sleet
mellow crag
#

What were you guys talking about?

zealous glen
random sleet
#

uhhhh a function to omit centers from pools

#

similar to how yes/no_pool_flag and enhancement_gate work but as a function that can have arbitrary requirements

mellow crag
#

Oh I see

random sleet
#

because some cards would want like... suit_gate, rank_gate, seal_gate, etc... this would be a "silver bullet" solution to that problem

#

rather than just adding tons of flag checks it could just be a function for the api user to determine a valid check

wintry solar
#

Time to get badges working with my editions I suppose

mellow crag
#

@shell timber Don’t you wanna begin porting morefluff to 1.0 before it comes out?

shell timber
#

it is not finalised and also exams

mellow crag
#

I see

random sleet
#

😂

mellow crag
#

Just FYI, there are a ton of cool things about 1.0 that you could take advantage of

random sleet
#

let 'em take their time, no need to strongarm people into updating

mellow crag
#

True

wintry solar
#

a label that works 😄

#

now to figure out how to get the mod label on these too

#

đŸ€”

zealous glen
wintry solar
#

0.9.8 atm

zealous glen
wintry solar
#
    G.localization.misc.labels[self.slug:sub(3)] = self.name
zealous glen
#

I can make cards show the Consumable tooltip (and display a badge) but not a new custom one

wooden nexus
#

Lemme know if 1.0 is out

wintry solar
#

how do you define your edition?

zealous glen
zealous glen
#

I just apply it to cards

wintry solar
#

I'm building it as an API

zealous glen
wintry solar
#

oh that's just grabbing the name of the edition to throw it in the table

#

so like, greyscale in the picture above

#

have you looked at how negative consumables are handled? I know there's some wizardry in the code aorund those

zealous glen
#

Again I can make them display the Negative Consumable tooltip instead of the vanilla Negative Joker tooltip

#

Because if you make a card Negative that’s what naturally appears

#

(the Negative Joker tooltip)

wintry solar
#

hmmm

crisp coral
#

i should release mystblinds for 1.0.0

wintry solar
#

I'm currently trying to get the tooltip to show properly so will get back to you when I've figured it out

zealous glen
crisp coral
#

oh my fucking god

#

aure did you mess with blinds' loc_def

zealous glen
frosty dock
#

I don't think so?

#

Was it working before?

crisp coral
#

yes

frosty dock
#

when

crisp coral
#

before the so called loader improvements

shell timber
#

this is why i have not touched 1.0

frosty dock
#

hm okay

#

but blind atlases were broken before, I'm pretty sure

#

it was more recently that I actually fixed that, though I'm fairly sure I didn't touch loc_def

#

but I'll check

crisp coral
#

this is noir not The Club

frosty dock
#

hm

#

odd

#

more jank for me to fix

crisp coral
#

might've missed a function

frosty dock
#

there's a patch for that one, but I may have forgotten to change something I changed elsewhere

crisp coral
#

aure ;sob:

#

also blinds' defeat() function isn't being called

frosty dock
#

I-- what??

royal ether
#

good morning chat (it is midnight)

frosty dock
#

good midnight

#

(it's 5pm)

shell timber
#

it's like 10:40 here

crisp coral
#

good 5pm

shell timber
#

am or pm you will never know

crisp coral
#

(it's 9:47pm)

crisp coral
shell timber
#

what is it

crisp coral
#

pm

frosty dock
zealous glen
crisp coral
#

yes

royal ether
worldly sapphire
#

Got a joker idea again, -The Eraser: The first card that is played is transformed into a wild card

zealous glen
#

☝

worldly sapphire
#

Synergy

#

Really cool ngl

worldly sapphire
#

I'm currently working in a mini joker collection that has 21 jokers

worldly sapphire
#

I already have 3 done

zealous glen
#

I intend to release my small mod with 10 Jokers

mellow crag
#

has 21 jokers

#

that a lot

worldly sapphire
#

Yeah

#

Lmao

mellow crag
#

Codex only has like 9

zealous glen
#

Maybe they’re small jokers

#

Like wee sized

mellow crag
#

(1 coming out in 1.2 when steamodded 1.0 comes out)

worldly sapphire
#

little

mellow crag
#

little leauge jokers

zealous glen
#

babu goo goo dada jokers

zealous glen
worldly sapphire
#

Baby joker: gives X-900 mult when a queen is played

zealous glen
#

I’ve been sitting on it for weeks

mellow crag
#

yesssssssssssssss

zealous glen
#

Oh but it does need Oddity API for the moment

#

Is that available for download?

mellow crag
#

no

#

but i have a version of it

worldly sapphire
#
  • E (joker): Gives E
zealous glen
#

L Joker: Gives L

worldly sapphire
#

U joker: Gives U

mellow crag
worldly sapphire
#

Alphabet Joker: Creates the entire alphabet into your deck

zealous glen
mellow crag
#

does the 1.0 version of your mod need oddity API

zealous glen
#

I don’t have a 1.0 version

#

I’ll port it when I have mods to reference

wintry solar
#

well that's not right

wintry solar
#

\o/ thanks lovely

shell timber
#

woah

#

is that meant to be the actual edition

mellow crag
frosty dock
crisp coral
#

tf

wintry solar
wooden nexus
frosty dock
#

i just tried with reducing hand size by 5 and it definitely happened

wintry solar
#

they currently work for any combination of +mult, + chips and XMult

crisp coral
#

unless i'm being dumb again?

frosty dock
#

what is the blind table this is on and what are you doing with it? it works on my end passing it directly to the constructor

#

the issue with loc_def was dumb btw, I somehow swapped it for def

crisp coral
#

i just updated it with the 1.0.0 code

frosty dock
#

new commit should fix loc_def and sprite jank

leaden belfry
#

is there a way to view full crash log? it is cut on window edge

frosty dock
#

0.9.8? use the debug window. 1.0.0? you can scroll

leaden belfry
#

what's debug window

bold osprey
#

a python script that serves as a debugger

frosty dock
#

In Steamodded files, there's a python file tk_debug_window.py

#

logs are forwarded to it if it's running

bold osprey
leaden belfry
#

How do I use it? it exit instantly on run

gilded blaze
#

is it possible to make a localization mod for an entire new language

worldly sapphire
#

is there a way i can make a joker recognize the first card played and get it turned into a wild card?

maiden phoenix
zealous glen
worldly sapphire
zealous glen
#

I think that would work

#

Otherwise look at how Photograph works

maiden phoenix
#

Instead of looping just change to context.whatever_hand[1]

frosty dock
worldly sapphire
#

i hate this error

gilded blaze
#

rn I only have the modified m6x11plus that fully supports Vietnamese

edgy reef
worldly sapphire
#

do i need a context.repetition?

edgy reef
#

Some specific contexts (context.individual, context.cardarea == G.hand and context.end_of_round) also run through context.repetition, which had a different return.

#

So whatever joker is causing this would need something like and not context.repetition

worldly sapphire
#

like, i play i card and the game crashes still

#

idk why

#

time to figure it out i guess

edgy reef
#

What exactly is this joker supposed to do?

worldly sapphire
#

turn the first played card into a wild card

maiden phoenix
#

check if context.scoring_hand exists too

#

Oh wait this doesn't have a proper main context too

worldly sapphire
#

i just put it in there

maiden phoenix
#

When's the transformation supposed to happen?

worldly sapphire
#

after the card is played

#

like midas mask

maiden phoenix
#

Doesn't midas does it before?

worldly sapphire
#

oh yeah

#

mb

maiden phoenix
#

Check jokers that use context.after

worldly sapphire
#

i said it wrong

maiden phoenix
#

I think there's something before context.after but I dont remember

worldly sapphire
#

i want the card to be transformed before its played

maiden phoenix
#

Then put the same context than Midas' mask use

worldly sapphire
#

i deleted every effect step and he is crashing

#

i just wanted to test

#

oh my god

#

i hate myself

worldly sapphire
worldly sapphire
#

i'm using midas mask code

#

and i still get this error 0_0

maiden phoenix
#

Did you just add Midas Mask code or also the contexts that are above it?

worldly sapphire
#

but i don't think i need to put blueprint

#

because it crashes like repetition

#

btw here are the sprites of the joker i'm trying to make :p

zealous glen
# worldly sapphire like, i play i card and the game crashes still

I think the issue is with the keys that context.scoring_hand has compared to what you are expecting. I think you're missing some context too to ensure that context.scoring_hand has the necessary information.

Maybe try for i=1,#context.scoring_hand and then access cards with context.scoring_hand[i] (or is it context.scoring_hand.cards?)

#

Artwork for Syzygy.

worldly sapphire
#

ITS TRYING TO CALL A TABLE VALUE IN THIS LINE

#

i'm losing my

#

mind

zealous glen
wintry solar
worldly sapphire
wintry solar
#

What does that line look like?

worldly sapphire
#

for i = 1, #context.scoring_hand do if context.scoring_hand[i]:is_face() then faces = true end end

zealous glen
#

it could be if context.scoring_hand then

wintry solar
#

Have you shared the whole block of code earlier?

worldly sapphire
#

nope

#

but its working

#

now

#
    if context.scoring_hand then
    if self.ability.name == 'The Eraser' and not context.repetition then
        local faces = {}
        for i = 1, #context.scoring_hand do
            if context.scoring_hand[i]:is_face() then end
        end
        for k, v in ipairs(context.scoring_hand) do
            if v:is_face() then 
                faces[#faces+1] = v
                v:set_ability(G.P_CENTERS.m_wild, nil, true)
                G.E_MANAGER:add_event(Event({
                    func = function()
                        v:juice_up()
                        return true
                    end
                })) 
            end
        end
        if #faces > 0 then 
            return {
                message = localize('k_gold'),
                colour = G.C.MONEY,
                card = self
            }
        end
    end
    end
end```
#

the joker changes the card into a wild card then it just tries to turn the entire hand into a wild card aswell, but it fails

wintry solar
#

You have redundant stuff in there

worldly sapphire
#

sorry, i'm still new to modding this game

wintry solar
#

This isn’t doing anything

worldly sapphire
#

and i need to say sorry if i ask too much

wintry solar
#

So does it turn everything into a wild card?

worldly sapphire
#

just the played card

#

it says the message for the cards in hand but they are not affected

wintry solar
#

And just face cards?

worldly sapphire
#

yes

#

i still need to make this joker turn the first card in any hand get turned into a wild card

wintry solar
#

I haven’t done any joker stuff myself yet, but don’t you just need to break out after you find the first face card?

worldly sapphire
#

but i don't want to make it turn only face cards

wintry solar
#

And context.scoring_hand just contains the cards in the hand right?

worldly sapphire
#
    if self.ability.name == 'The Eraser' and not context.repetition then
        if context.scoring_hand then
        local faces = {}
        for i = 1, #context.scoring_hand do
            if context.scoring_hand[i]:is_face() then face = false end
        end
        for k, v in ipairs(context.scoring_hand) do
            if v:is_face() then 
                faces[#faces+0] = v
                v:set_ability(G.P_CENTERS.m_wild, nil, true)
                G.E_MANAGER:add_event(Event({
                    func = function()
                        v:juice_up()
                        return true
                    end
                })) 
            end
        end
        if #faces > 0 then 
            return {
                message = localize('k_upgrade_ex'),
                colour = G.C.BLUE,
                card = self,
            }
        end
    end
    end
end```
#

idk what is causing it to make every card trigger

worldly sapphire
#

if its false, the game softlocks

#

same if i delete the return

zealous glen
worldly sapphire
#

still softlocks

zealous glen
#

Maybe it's because it's missing some context? Idk why it would softlock

edgy reef
#

This isn't checking for any specific context other than excluding context.repetition, try adding and context.cardarea == G.jokers and context.before.

worldly sapphire
#

well

#

it worked now

crystal cloud
#

hey do any of you smart lads have any fkn idea on how to check when a lucky card is triggered, ive tried using both context.other_card.lucky_trigger and if self.lucky_trigger then how ever nothing i do seems to work, this is my code rn if anyone is curious

luckyjoker.calculate = function(self, context)
    if context.individual then
        if context.cardarea == G.play then
            if context.other_card.lucky_trigger == true and not context.blueprint then
                return {
                    message = localize('k_plus_joker'),
                    colour = G.C.RED
                }
            end
        end
    end
end
frosty dock
#

it might be that your function isn't actually getting run? In 0.9.8, you need to it be defined on SMODS.Jokers.j_yourslug after registering

zealous glen
crystal cloud
zealous glen
crystal cloud
frosty dock
#

oh my bad then, I just assumed that since you didn't just shove it on the constructor

zealous glen
frosty dock
#

isn't it just joker_main

stiff leaf
#

niceeee

#

no glitches with using 6 planets? also how does bp/bs compatibility work (and duplicates of the joker ig)?

zealous glen
#

Also no BP or BS because it's redundant

#

Nothing to balance once it's rebalanced

remote coral
#

It probably stops searching after it’s active

stiff leaf
crystal cloud
zealous glen
#

More importantly, it doesn't count doubles

#

There's probably a better way to do it but I was too tired to think when I wrote this

#

self.ability.extra.syzygy tracks when it's active or not; it's not necessary, but I wanted to have it

#

Hence not 
 syzygy ensures it only activates this part when it has less than 3 different Planets

zealous glen
#

One of them could be relevant

zealous glen
crystal cloud
#

yea still nothin haha

zealous glen
crystal cloud
#

yup

zealous glen
#

Try printing lucky_trigger both in calculate_joker and maybe when the Lucky Cards proc

narrow pollen
#

yeah, using sendDebugMessage() to track where your code is going helps

manic nest
#

I see i = 1 a lot what does that represent?

zealous glen
manic nest
#

So what is i specifically?

wintry solar
#

it's just a value that iterates

#

generally it's used to iterate over a table

manic nest
#

alright cool

#

Super important that i feel like i need to understand i see cardarea == g.play a lot

#

can you break down what that does

#

Card area and g.play i see a lot

worldly sapphire
#

ok, now that my joker activates only when i play face cards, how do i make him affect other cards, and especifically the first one

worldly sapphire
zealous glen
zealous glen
worldly sapphire
#

the face ones?

#

this ones

zealous glen
#

Presumably

manic nest
#

For example context.scoring_hand how are do people know scoring_hand is what you need to type out

zealous glen
zealous glen
wintry swallow
#

good ol if else

worldly sapphire
#
    if self.ability.name == 'The Eraser' and not context.repetition then
        if context.scoring_hand and context.cardarea == G.jokers and context.before then
        local faces = {}
                self:set_ability(G.P_CENTERS.m_wild, nil, true)
                G.E_MANAGER:add_event(Event({
                    func = function()
                        self:juice_up() --This makes the joker get enhanced by itself
                        return true
                    end
                })) 
            return {
                message = localize('k_upgrade_ex'),
                colour = G.C.BLUE,
                card = self,
            }
        end
    end
end```
zealous glen
#

I couldn’t find a GIF of Bart’s internal monologue but image that

edgy reef
#

CTRL F the joker name and 99% of the time you can find the logic for it.

manic nest
#

What function do you think id use for the joker to search for a specific hand played like .context.played_hand? Or is there another key for that

worldly sapphire
#

and still no way to make the cards i play get affected

worldly sapphire
zealous glen
#

Because the Joker is the self

worldly sapphire
#

yeah i did put a note

#

saying that this happens

zealous glen
#

I said set_ability not juice_up

worldly sapphire
#

oh

zealous glen
#

You want to call it on a card that isn’t the Joker

worldly sapphire
#

how tho?

#

i really don't know how to do that

zealous glen
#

Maybe something like 
 and context.other_card == context.scoring_hand[1] 
 but you need that context.other_card which probably means you need context.cardarea == G.played instead and context.individual.

Try looking in the code for individual = to see where that context is passed to calculate_joker to see what’s available where and when

#

I don’t know if all these context key names are correct

#

Again Photograph should help

#

Or Hanging Chad even

worldly sapphire
#

i saw hanging chad alot

#

and i still don't know where to put his code

zealous glen
#

You only need the conditions, minus the repetition part probably

#

You don’t need the rest

worldly sapphire
#

so i don't need the local faces?

#

or do i just remove the event?

manic nest
#

Going to back the full house idea i had a while back, if.self.ability.name = fullhouserock then
If. And I’m not sure where i would go from here to make it check if you are playing a full house yknow what i mean? Like what do you think would work?

manic nest
wintry solar
regal wolf
#

Hey, can someone help me? I'm honestly stumped rn

wintry solar
#

you don't need to iterate over it and you don't need anything to do with faces

worldly sapphire
regal wolf
#

Is there a way around that, or shall I just write my own version of G.FUNCS.skip_blind()

#

G.FUNCS.skip_blind function



  G.FUNCS.skip_blind = function(e)
    stop_use()
    G.CONTROLLER.locks.skip_blind = true
    G.E_MANAGER:add_event(Event({
        no_delete = true,
        trigger = 'after',
        blocking = false,blockable = false,
        delay = 2.5,
        timer = 'TOTAL',
        func = function()
          G.CONTROLLER.locks.skip_blind = nil
          return true
        end
      }))
    local _tag = e.UIBox:get_UIE_by_ID('tag_container')
    G.GAME.skips = (G.GAME.skips or 0) + 1
    if _tag then 
      add_tag(_tag.config.ref_table)
      local skipped, skip_to = G.GAME.blind_on_deck or 'Small', 
      G.GAME.blind_on_deck == 'Small' and 'Big' or G.GAME.blind_on_deck == 'Big' and 'Boss' or 'Boss'
      G.GAME.round_resets.blind_states[skipped] = 'Skipped'
      G.GAME.round_resets.blind_states[skip_to] = 'Select'
      G.GAME.blind_on_deck = skip_to
      play_sound('generic1')
      G.E_MANAGER:add_event(Event({
        trigger = 'immediate',
        func = function()
          delay(0.3)
          for i = 1, #G.jokers.cards do
            G.jokers.cards[i]:calculate_joker({skip_blind = true})
          end
          save_run()
          for i = 1, #G.GAME.tags do
            G.GAME.tags[i]:apply_to_run({type = 'immediate'})
          end
          for i = 1, #G.GAME.tags do
            if G.GAME.tags[i]:apply_to_run({type = 'new_blind_choice'}) then break end
          end
          return true
        end
      }))
    end
  end
wintry solar
worldly sapphire
wintry solar
#

send me your code in DM

worldly sapphire
#

k

#

the entire file?

wintry solar
#

sure

worldly sapphire
#

k

zealous glen
zealous glen
zealous glen
regal wolf
zealous glen
regal wolf
#

No, they just select the Ui component and then press a.

#

It's something I could emulate, I'm just wondering if there's a way around the UI check.

zealous glen
#

Can’t the keybind select the UI component?

#

Some UI elements can be identified by an ID

regal wolf
#

Regardless, yes I can emulate a Ui press. I'm just wondering if there's a nicer way of doing it; like calling the function.

wintry solar
#

edition api coming soonTM...
it currently lets you add new editions that can have a combination of +chips, +mult and Xmult effects, and lets you add them to cards via consumables. What else do you think needs adding at this stage?

near ivy
#

more interesting bonae

#

EX: +$, edition giving, tag spawning, etc

mellow sable
#

or a custom effect (like jokers)

boreal tusk
#

okay this is just baffling me

#

ive basically as far as ive figured out, just replicated walkie talkie or odd todd/even steven code, but changed the specific cards to proc the effect, and the specific bonuses

#

the goal right now is to get this card to work at all, with "score with a king and a jack, get mult and xmult"

#

wont even do a thing

#

hmm

#

actually. i think im making it so it needs a card thats both at once?

#

yeah seems like the issue

worldly sapphire
#

iicr, to make the mult work you need a mult_mod in the return section

boreal tusk
#

yeah it was only procing the mult and not the xmult

#

no mult_mod aint working

worldly sapphire
#

oh mb then

boreal tusk
#

x_mult was the one

#

got the end product down, just need to get the "if you have two different ranks in one hand" working

short surge
#

question

#

when we migrate to 1.0, how can we make things happen at the beginning of the opening the game (globally)? I heard there is no init function anymore

mellow crag
short surge
#

oh

#

so say i do G.STATES.haha = 1000 anywhere in the file it would just work?

mellow crag
#

what are you trying to do?

short surge
#

add a new pack smarteyes

#

that opens playing cards

mellow crag
#

wdym "that opens playing cards"?

#

(not related to implementation, just interested)

short surge
#

a new pack that opens (to offer) playing cards

mellow crag
#

oh i see

short surge
#

also it's for my highcard mod so it opens xplaying cards pretty much

#

@mellow crag feder i remember you have packs in codex, did you do that as well?

#

setting new states and all

mellow crag
short surge
#

then how...?

#

I mean I saw the codes, just want to get a general sense

mellow crag
#

we latched onto the opening of standard packs

#

like, the state we use is the standard pack state with a flag that says its an alchemy pack

short surge
#

so they would share the probability of generating? is that the case

mellow crag
#

i think so? the rates don't really connect to the state

short surge
#

(like standard pack would generate less because the game just decides to generate standard packs and sometimes they are alchemy packs)

shell timber
#

ok so

#

the packs generate normally

#

opening an alchemical pack goes into the standard state

short surge
shell timber
#

they have to go to consumeable slots and not get used up

short surge
#

ohhh

#

cuz standard packs only has a pack of cards right

#

i see i see

#

hold on

#

is booster pack api gonna be a common thing in SMODS 1.0?

shell timber
#

hopefully

random sleet
#

it isnt yet

random sleet
#

(i do the same thing in oddityapi)

mellow crag
#

finished porting Fusion Jokers!

short surge
#

btw is the current github of codex ported?

mellow crag
#

no

short surge
random sleet
#

no but i can send u the latest files in a bit

short surge
#

pikasparkle many thanks!!

mellow crag
random sleet
#

i dont have it handy

#

am at work lol

mellow crag
#

oh XD

#

okki

random sleet
#

the file i sent kenny is the same one i sent u i literally downloaded it from our dms hahah

random sleet
maiden veldt
#

i've been looking through other people's mods to try and find a way to change the name and description, but i haven't figured anything out. is there a way to change the text on base-game jokers?

#

i found out how to change just the names on planet cards, but replicating it on jokers doesn't seem to work

maiden phoenix
mellow crag
#

I already know how I wanna do this

maiden phoenix
#

Ah ok

remote shell
#

how would i go about making a custom challenge

crisp coral
#

which version of steamodded, 0.9.8 or 1.0.0?

remote shell
#

i believe i'm using 0.9.8?

#

yup

#

i'm not touching custom jokers just yet, just a simple challenge for now

frosty dock
remote shell
#

sweet, i'll pick this apart 👍

crisp coral
#

also this if you'd like

#

(it's old

#

i should do an overhaul sometime

#

this repo is a mess

manic nest
#

@zealous glen or anyone else has modded jokers before i get to calculations is everything looking in the right direction? Nothing that’s a “this will not work because of this” in this code?

crisp coral
#

init func missing an end

manic nest
#

OH sorry yea i didnt get that in the screenshot

#

but it is there

crisp coral
#

then prob

manic nest
#

oh shoot sorry iddnt mean to ping

slow ocean
#

yeah im myst's bouncer

#

im here to escort you out of the server for trangressions against myst

manic nest
manic nest
#

Ok so i did calculations

#

Everything look ok?

frosty dock
#

you're not doing anything with that loc text, it seems like - and it isn't in the right format, either

#
{
  name = 'name',
  text = { 'text', 'more text' },
}
frosty dock
#

yeah

manic nest
#

okokokokokko

#

so then

#

uh

#

when i put what i have into balatro

#

nothing happens not even a crash

#

and thats concerning because i feel like at the very least i was gonna get a crash and work from there

#

am i missing a few things rn i have the lua and the asset for the card

frosty dock
#

is the first line of your mod file --- STEAMODDED HEADER?

manic nest
#

Everything look ok here?

frosty dock
#

nope you misspelt steamodded

#

that says steammoded

manic nest
#

ooooooooooooh

#

would that really stop all the code form working?

frosty dock
#

the loader looks for that specific first line

#

if it's something else, it literally won't load

manic nest
#

uhhhhhhh it still didnt load does it have to be spaced a certain way?

frosty dock
#

no spaces at the start

manic nest
#

still no load weird

frosty dock
#

oh i just saw your file extension is uppercase LUA

#

try turning that into lowercase

manic nest
#

oh i tried to change that but it never did ill see what i can do

#

its weird cuz its caved as Alizatest and not Alizatest.LUA but whenever i open it its still LUA

frosty dock
#

uh what code editor are you using?

manic nest
#

i think this is just sublime text

frosty dock
#

hm I'm not familiar with it, but you should be able to change the file extension

#

you might need to enable file extensions on your system first if it doesn't show in the file explorer

manic nest
#

how would i do that?

#

ok changed it

#

still not loading

#

huh.....

manic nest
# manic nest

btw all that is here is ALL the code i have is there something im missing you think?

manic nest
#

yeyeyeyeyeyeye

regal shoal
frosty dock
#

you still misspelt Steamodded

manic nest
#

HUH

frosty dock
#

and you also misspelt init

manic nest
#

wait where did i misspell init?

frosty dock
#

SMODS.INTI

manic nest
#

OK

#

it loaded

#

and crashed,

#

OK

#

thank you thank you thank you

#

its not about the crash

#

its a bount the loading

#

thats def my time to get off and work on it tmrw but thank you again now i can actually start taking steps forword

gilded blaze
#

meanwhile me still unable to figure out how to remove the "of" in "Rank of Suit" since in Vietnamese it's just called "Rank Suit"

zealous glen
gilded blaze
#

I can't find anything related to "of" in there

zealous glen
random sleet
#

"of" would be different per-language already right? :?

frosty dock
zealous glen
#

Idol also has “of since it’s in a new line

frosty dock
#

hm right

gilded blaze
# frosty dock

thx a lot
while waiting for Steamodded 1.0, I shall prepare vi.lua

frosty dock
#

seals seem to be working well enough

random sleet
#

pog

frosty dock
#

btw more than one underscore isn't an issue

#

i can't get around :lower()ing the mod prefix though, it's just something the game does

random sleet
#

right.

#

so mod prefixes must be lowercase if you add seals

frosty dock
#

nope

#

the key itself doesn't get messed with

#

it's just that the game makes this modification based on the seal's key for the badge and then expects it to be that way

random sleet
#

hm. seems like it'd cause problems but fair ig

frosty dock
#

eh

random sleet
#

ill have to poke jokerstamps today if i dont get too distracted

frosty dock
#

i did need to add a reverse lookup

#

i can't find the modded seal based on the badge string otherwise

#

turns out I need to do that for the tooltip

gilded blaze
#

how does misprint desc work

#

does it grab the "Mult" in dictionary or sth (since the +mult value goes randomly, while Mult jumps to and from rand{} occasionally)

frosty dock
#

it uses this piece of code in Card:generate_UIBox_ability_table()

#

so yeah, it grabs Mult from the dictionary

gilded blaze
#

glad to hear that

mellow crag
#

How do you guys feel about things that multiply chip value? I don’t recall seeing people make something like it.

wintry solar
#

As playing card effects I could be okay with it, as joker effects 👎👎👎

mellow crag
#

Oh wait sorry

#

I pinged

crisp coral
#

heck

#

ortalab thing

mellow crag
#

I see

shell timber
#

i will eventually have loaded disk + bigshot joker fusion that gives x3 mult and x2 chips

tawny perch
#

i can get behind xChips but its not the most exciting thing

random sleet
#

xChips can have cool interactions

tawny perch
#

that is true

#

speaking of which ive always thought royal gala couldve been scaling +chips but you could do something interesting with the xchips

#

its just it alone is about as interesting as xmult

random sleet
#

but flavor

golden lake
#

XChipsAPI

#

DoritosAPI

tawny perch
#

yoo noway

golden lake
#

X(treme) Chips

tawny perch
#

call it the doritosAPI thats funny

remote coral
#

Paqui Joker that gains x1 Chips each time you get an overkill (flaming) score

#

Spicy chip

random sleet
#

akai you should make flourite octet jackpot be X8 chips and X8 mult

golden lake
#

im doing that

#

if someone makes the XChips api

random sleet
#

i wonder if aure would integrate it if i make it and send it his way...

mellow crag
#

Do it autumn

#

I believe in you

random sleet
#

i really should just learn to use github orz

#

federrrrrrrrr

#

how do i githubbbbbb

zealous glen
random sleet
#

but

FLAVOR

zealous glen
zealous glen
tawny perch
#

i have changed my mind
this discussion has made me actually like xchips

#

not yours btw, the one above

#

doritosAPI is too funny to pass

zealous glen
#

Doritos isn’t blue though

tawny perch
#

dont care

#

chips

#

doritos

zealous glen
#

Mult is closer to Doritos color

#

But

FLAVOR

random sleet
zealous glen
random sleet
#

i know how to upload stuff to github's website so clearly im a git master....

tawny perch
zealous glen
#

Idk if PRs require anything special but at least that way other people should be able to see what you did

random sleet
#

what the fuck do those words mean

zealous glen
#

Pushing means you exert force on an object away from your body

random sleet
#

im literally the stupidest person to ever live

zealous glen
#

So you push from your local repo to the cloud

random sleet
#

ok

zealous glen
#

You start by cloning a repository. Git provides you the command to do that if you click on the green button I think

#

Then you probably want to git checkout to create a new branch, I think it’s something like git checkout -b main or whatever local repositories are usually called

#

Or maybe it’s -b after

random sleet
#

ok so i should just leave it to the smart people qq

golden lake
zealous glen
golden lake
#

no theyre called cool ranch doritos

zealous glen
#

They’re not blue

golden lake
#

fake doritos fan

zealous glen
#

The packaging is blue

#

I don’t like Doritos

golden lake
#

it shows

zealous glen
random sleet
#

i literally understand nothing

zealous glen
#

Pulling means exerting force to bring an object closer to your body

#

So you pull from the cloud to your computer

random sleet
#

if you're going to both treat me as a toddler and also expect me to be fluent in git then shut up

zealous glen
#

Sorry

#

I think I failed to find a good middle between both explanations and that came across as disrespectful

golden lake
# random sleet i literally understand nothing

push - Changes from your machine are uploaded to GitHub servers
pull - Changes from GitHub servers are uploaded to your machine
commit - Abstraction for total changes made to your files described under a single comment
merge - A resolution to an issue where the contents of a commit are contradictory with another commit submitted by another person

wintry solar
#

I think @edgy reef has made Xchips work

golden lake
#

Not talking about it as part of a larger mod

#

Specifically talking about it as in a small addon you add to your own mod

wintry solar
#

Yeah but I’m sure it can be pulled out of that for others to use

golden lake
#

Best to make it an API then

shell timber
#

hm

random sleet
#

idk im just too stupid to be a programmer

shell timber
#

there's an official github client which abstracts all of the cli stuff

golden lake
random sleet
#

im sorry

golden lake
#

no no

#

i just bite you

#

get bitten

random sleet
#

im sorry

mellow crag
#

Now that I finished codex and fusion ports, what should I do?

golden lake
#

FusionAPI

mellow crag
#

Apart form that?

golden lake
#

yes

#

wait no

#

i forgot

#

brain

#

you should do more uh

#

composite hands work

frosty dock
#

crops tho

shell timber
#

really tempted to make like a $12 booster pack that gives stuff that impacts the next run

mellow crag
gilded blaze
#

wait, you mean next run?

shell timber
#

yeah

#

like

#

+$5 next run

#

etc.

gilded blaze
#

ok then

#

Foresight Pack (Booster)

Choose one of up to 5 consumable cards to start your next run with

frosty dock
#

start next run with 5 fully random jokers, lose this run immediately (spectral)

mellow sable
frosty dock
#

lmao

languid mirage
frosty dock
#

fully random eternal rental jokers

bold osprey
#

Spend 100$ right now to be able to begin with a random common joker every future run

#

I also need to push a fix on the sound player APi of Steamoddedbalatrojoker

zealous glen
frosty dock
#

I think I'll pass on that one

gusty depot
#

figured better here than general, but: does anyone know what the order field is in the usages in prof.jkr?

#

..is it just the arbitrary order of each consumable? fool and mercury are 1

crisp coral
#

it's the ordering in the collections tab

worldly sapphire
#

Joker idea - Sharpener: Gets +15 mult for every joker you sell. Currently +15 Mult

gusty depot
#

oh god that's busted

#

like it's 5x the mult of red card to begin with, it's not limited to only 2 per shop, buy/sell jokers is far cheaper than packs...

bold osprey
nimble sequoia
#

When the riff gets raffed

worldly sapphire
#

Riff raff synergy intended

hoary sand
#

but it's like

#

a lot of synergy

#

+30/round without much effort is hmm

#

maybe +mult based on the sell price (with a cap of like 10 or something)

olive shoal
#

would this not also just be a stronger variant of cermonial dagger

hoary sand
#

it would be a sidegrade wouldn't it?

#

dagger is 2x without cap, this would be 1x with a cap

shell timber
#

and you get the money back

crisp coral
frosty dock
#

oh, that makes... some amount of sense

#

shouldn't it be defeated?

crisp coral
#

Yup!

#

I want to fucking dieeeeeeeeeeee

#

(not actually but

frosty dock
#

💀

crisp coral
#

yeah ok ill release mystblinds 1.0.0 now

frosty dock
#

pog

worldly sapphire
#

yes... i'm still trying to make the joker work

#

:|

#
    if self.ability.name == 'The Eraser' and not context.repetition then
        if context.scoring_hand then
            for k,v in pairs(context.scoring_hand) do
                sendDebugMessage(k..": "..tostring(v))
            end
        if context.scoring_hand and context.other_card == context.scoring_hand[1] and context.cardarea == G.played then
            local cardarea = {}
            for k, v in ipairs(context.scoring_hand) do
            v:set_ability(G.P_CENTERS.m_wild, nil, true)
            G.E_MANAGER:add_event(Event({
                func = function()
                    v:juice_up()
                    return true
                end
            }))
            return {
                message = localize('k_upgrade_ex'),
                colour = G.C.BLUE,
                card = self,
            }
        end
        end
        end
        end
    end```
#

i tried and tried

maiden phoenix
#

Epic, time to get to work tomorrow that is

gilded blaze
#

noice

frosty dock
#

neat

manic nest
maiden phoenix
#

It's just the alpha, hasn't officially released

worldly sapphire
manic nest
gilded blaze
#

sadly the alpha isn't even working on Mac afaik

manic nest
sly forge
#

no it's just lovely that "doesn't work on mac". well, it works. it just hasn't officially released

frosty dock
#

lovely does work on Mac, it's just not properly documented

unkempt thicket
#

is there a thing I can refer to help with porting to 1.0?

frosty dock
#

People are starting to put their stuff out there for 1.0, but I'll be writing docs soon as well

#

https://github.com/Steamopollys/Steamodded/wiki but take it with a grain of salt, it's been incomplete and will soon be updated for a new major version

GitHub

A Balatro ModLoader. Contribute to Steamopollys/Steamodded development by creating an account on GitHub.

#

it will likely be useful to you to inspect the game's source code, to do that you simply need to extract the game executable with 7-zip

frosty dock
#

lovely indeed

maiden phoenix
#

Is "findModByID" deprecated in steamodded 1.0.0?

frosty dock
#

yes

maiden phoenix
#

Oh

frosty dock
#

SMODS.Mods is now indexed by mod ID, allowing this operation to be constant time instead of O(n)

maiden phoenix
#

So if I wanted the path of my mod it'd be SMODS.Mods["my_mod_id"].path?

frosty dock
#

even simpler

#

during load, SMODS.current_mod contains your mod's data

#

the APIs have access to this, meaning you don't need to provide your mod's path to the sprite API either

maiden phoenix
#

Do I just put the file name in the path?

frosty dock
#

yeah

toxic crystal
leaden belfry
#

I am trying to implement this but find redeeming clearance sale gives only +2. it seems the discount effect is applied before trying calculate joker...

leaden belfry
#

context.card.cost from vanilla

zealous glen
gaunt thistle
#

in like 10 mins

maiden veldt
#

i've been looking through other people's mods to try and find a way to change the name and description, but i haven't figured anything out. is there a way to change the text on base-game jokers?

#

i found out how to change just the names on planet cards, but replicating it on jokers doesn't seem to work

leaden belfry
#

very very strange

gaunt thistle
#

fixed

leaden belfry
#

oh, previously in the animation part I calculate that again but now I pre-calculate it and pass this to animation, this seems make difference

maiden phoenix
#

Has anyone succeeded on doing a joker spritesheet on SMODS 1.0.0? I don't get why it doesn't work. It doesn't crash but the first sprite is not showing.

narrow pollen
#

matador rework progress

#

B = Big Payout of $5 at start of round or when hand effect triggers
S = Small Payout of $3 per affected card played (even if unscored)

#

yes, this means the tooth is a net profit of $2 per card

remote coral
#

Red vs green

narrow pollen
#

not implemented vs implemented

#

the idea is for it to have as much compatibility with boss blinds as possible

#

so you at least get SOMETHING, even during boring boss blinds like wall

remote coral
#

So a different interpretation of the effect to get as much interaction as possible?

narrow pollen
#

mhm

#

and two different denominations of pay

remote coral
#

How exactly do some of these make sense as “when boss blind ability triggers”

narrow pollen
#

they don't. that's why it's been reworded

mellow sable
narrow pollen
#

$5 when ability triggers (when something is done to the whole hand, or you are affected at the start of round)

narrow pollen
#

$3 per affected card played

maiden phoenix
brisk quartz
#

some of these cards are going to go craz

#

though what's the chance of getting an epic card

odd dock
mellow sable
#

they use a spritesheet for all 3 parts

narrow pollen
#

listen, i haven't gotten to ante 8 often enough yet because i'm bad at the game and i wanted to gold stake black deck so i never had to play it again--

remote coral
maiden phoenix
narrow pollen
#

yeah, they're just giving me grief for not having unlocked it on my file yet

mellow sable
maiden phoenix
#

Oh finally got it working 😭

#

Thanks a lot 👍

mellow sable
#

yw

wintry solar
#
[[patches]]
[patches.pattern]
target = "card.lua"
pattern = '''r self.config.center.demo then'''
position = "after"
payload = '''if self.edition then
                for k, v in pairs(G.P_CENTER_POOLS.Edition) do
                    if self.edition[v.key:sub(3)] then
                        self.children.center:draw_shader(v.key:sub(3), nil, self.ARGS.send_to_shader)
                        if self.children.front and self.ability.effect ~= 'Stone Card' then
                            self.children.front:draw_shader(v.key:sub(3), nil, self.ARGS.send_to_shader)
                        end
                    end
                end
            end'''
match_indent = true
overwrite = false
``` this lovely patch won't load, what am I doing wrong?
narrow pollen
# odd dock damn 😔

ye. i literally got into modding this game for two reasons.
1.) black deck is ass
2.) straights are ass

#

and by "ass," i mean "easy to whiff on"

odd dock
#

straights really did get a lot better with the saturn buff tho i have to say

#

actually worth the risk of whiffing

narrow pollen
#

yeah, glad localthunk and i had the same idea there

narrow pollen
#

i think the big thing of it is that there's no really good way to fix your deck for straights

still jacinth
#

is there an easy way to slightly modify what a tag does in tag.lua?

#

or just edit a function in it

unkempt thicket
#

what is the problem?

still jacinth
unkempt thicket
#

not my code just downloaded cyrtid with steammodded 1.0

#

looking to port my code to it, but need a mod that I can see what's different

mellow sable
#

I have to update my mod to match that Steamodded version

narrow pollen
#

but at the same time, cutting a rank...

#

unless it's an edge number, it reduces the number of possible straights you can draw

narrow pollen
#

but the problem is, those are both the lowest AND the highest value cards

#

and the ones with the most joker synergy

#

2-3-4-5, and A-K-Q-J-T

#

and even then

wild gyro
#

the joker synergy doesn't really matter when straights score so much

narrow pollen
#

well, yeah

edgy reef
mellow sable
#

no, things outside of Steamodded API

edgy reef
#

ohh ok

mellow sable
#
# New perishable texture
# Quartz Stake - register pinned sticker
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = "set_profile_progress()"
position = "before"
payload = '''self.shared_sticker_perishable = Sprite(0, 0, self.CARD_W, self.CARD_H, self.ASSET_ATLAS["cry_sticker"], {x = 4,y = 4})
self.shared_stickers['pinned'] = Sprite(0, 0, self.CARD_W, self.CARD_H, self.ASSET_ATLAS['cry_sticker'], {x=5, y=0})'''
match_indent = true
overwrite = false
#

this was the issue (before, these were looking at sticker and not cry_sticker)

#

so @unkempt thicket the latest GitHub should be compatible

unkempt thicket
#

cool, thanks

mellow sable
#

I'm also probably going to refactor tonight or tomorrow, which will likely make it more confusing to use as an example tbh

#

since it involves the fileloading system more

gilded blaze
edgy reef
mellow sable
#

like I don't think this syntax is going to help you understand how to use Steamodded

edgy reef
#

That's an interesting way to register an object.

mellow sable
#

this way I can load it from a file only when I want to when I read a file

#
return {name = "Very Fair Deck",
        init = function()
            local Backapply_to_runRef = Back.apply_to_run
            function Back.apply_to_run(self)
                Backapply_to_runRef(self)
                if self.effect.config.cry_no_vouchers then 
                    G.GAME.modifiers.cry_no_vouchers = true
                end
            end
        end,
        items = {very_fair_sprite, very_fair}}

I basically return a table with the things that I want to happen

#

and it just works

narrow pollen
#

to be quite honest, i've been thinking while i deal with RL shit, and i think just realized: the main problem with straights, is that under normal circumstances... there are only nine valid straight hands, that require five cards to each be a specific rank.

5432A
65432
76543
87654
98765
T9876
JT987
QJT98
KQJT9
AKQJT```if that wasn't bad enough, it's harder to force even one of those 9 specific hands in the same way than it is to force your cards to be a single suit or rank... _and_ less rewarding than most hand-type oriented builds
#

flushes have the sin jokers, AND an extra joker for each suit

hallow forge
#

Isn’t that 10?

narrow pollen
#

maybe i counted wrong?

hallow forge
#

you did

narrow pollen
#

i guess i did

#

yeah

#

but regardless

#

that's less than "pick 5 out of 13" for flush

gleaming flint
#

I want more help understanding how to make a modification for balatro using steammodded, can someone give me some tips?

narrow pollen
#

well, it'd help to have an idea of what you want to implement first

gleaming flint
#

Free jokers or something easy like that so I can understand what I'm doing

austere schooner
narrow pollen
#

reworked to make those valid AND spawn a random consumable on playing any straight

narrow pollen
#

for stat nerds: the odds are currently 45-45-10 for tarot, planet, and spectral.

#

might actually remove the whole spectral spawning thing from seance

#

now that i've changed that to offer x0.5 mult per spectral card used the whole run.

manic nest
#

hey can someone look over the code for the sprite i believe im getting a crash error because it says line 37 attempt to index a nil value im not sure if thats the only issue but if you can lemme know ill send the code

royal ether
#

advice: asking to ask a question is pretty pointless, just post info & code and someone will help if they want to

mellow crag
#

Goooooooooo morning yall!

royal ether
#

mornin feder

mellow crag
#

what have you people been up to?

royal ether
#

waiting for my hotel check in time

mellow crag
royal ether
#

yea

#

i kinda wish i was coding rn tho

#

i could use my laptop but typing for a while on it hurts my wrist

manic nest
crisp coral
mellow crag
crisp coral
manic nest
#

`function SMODS.INIT.Alizatest()
local jokers_def = {
testcard = {
name = 'Testcard',
text = {'test'}
}

 }

 local Testcard = SMODS.Joker:new(
     "Testcard",
     "Testcard",
     {extra = {x_mult = 10}},
     {x = 0, y = 0},
     2,
     1,
     true,
     true,
     false,
     true,
     '',
     "Alizatest_Jokers",
     nil
 )
 Testcard:register()
local sprite = SMODS.Sprite:new("Alizatest_Jokers", SMODS.findModByID("ALIZATEST").path, "Alizatest.png", 71, 95, "asset_atli") sprite:register()



  -----ok im gonna calcuate this now and pray it dosent break ok cool go 

  SMODS.Joker.j_Testcard.calculate = function(self, context)
      if SMODS.end_calculate_context(context) then
       if (context.scoring_name == 'Full House') then 
           return {
               message = localize {type='variable',key='a_xmult',vars={self.ability.extra.x_mult}},
               Xmult_mod = self.ability.extra.x_mult
           } 
    end 
  end

end

end`

i am getting an error when i load the game that says 52: atempt to index field 'j_Testcard' [a nil value] and im not sure where to work from that message

#

im sure it has something to do with calculations but idk what would have caused the issue on 52 it was just the end

royal ether
#

if its when you launch the game, its an issue with how you declare the joker, i believe

#

im not familiar with smod so i cant really help beyond that

crisp coral
#

SMODS.Jokers.j_Testcard

manic nest
#

o.

#

yea that seems to be a reacuring issue im having with coding lol

royal ether
#

also is this a mobile thing whats with the whitespace near the end

royal ether
#

grrr mobile discord

crisp coral
#

there's just that many linebreaks

royal ether
#

oh

manic nest
#

yea i gotta fix that lol

#

im still getting the same crash error though

#

does end have to be in a specific spot or does that matter?

royal ether
#

indentation doesnt matter, if thats what you mean

manic nest
#

so as long as there is 3 ends to the function and ifs its ok?

royal ether
#

yea

manic nest
#

ok cool cool

#

uhhhhhhhh

#

hmm

royal ether
#

i have a feeling its a missing bracket or comma somewhere

#

maybe?

#

xmult_mod doesnt have an opening bracket

#

wait no

manic nest
#

SMODS.Jokers.j_Testcard.calculate = function(self, context) if SMODS.end_calculate_context(context) then if (context.scoring_name == 'Full House') then return { message = localize {type='variable',key='a_xmult',vars={self.ability.extra.x_mult}}, Xmult_mod = self.ability.extra.x_mult } end end end specifically this is the text

#

the very last end is where its saying there is an issue

#

ok uh

#

nevermind????

#

now its giving another one

royal ether
#

which one

manic nest
#

main.lua1350: attempt to index local 'center' [a number value]

royal ether
#

im comparing to bunco rn which im not sure if youre on the same version of smods as, but i think youre missing localization when making a new joker

#

before rarity, after sprite pos

#

actually yea im pretty sure thats it

#

you declare jokers_def but dont use it anywhere

manic nest
#

wym?

#

before rarity after sprite pos?

royal ether
#

yea you just put jokers_def there im pretty sure

#
{x=0,y=0},
jokers_def,
2,```
manic nest
#

hmmm still giving me the main.lua error

#

lemme download bunco and see what your talking about rq

royal ether
#

just check their code on github

#

specifically im looking at bunco.lua line 1670ish

#

im not sure how smods does sprites, but should the first argument be j_Testcard instead of Alizatest_Jokers

manic nest
#

OK so error log changed so i think i may have fixed it

#

now its saying bad argument #1 to 'ipairs' [table expected, got nil]

olive shoal
#

where would i find steamodded 1.0 btw? im starting modding stuff of my own and apparently if the version of the modloader im using is about to become obsolete thatd be a bit of a pain

#

or is it not a public out thing yet

frosty dock
#

1.0 requires using lovely

olive shoal
#

right, ty

manic nest
#

Been looking through the code so many times I still can’t see what would be causing this

royal ether
#

looking at the traceback, your joker loc_def is probably invalid

#

i cant really help beyond that, i dunno how smod loc def works compared to balamods

narrow pollen
#

you know what, i'm more proud of this than i thought i'd be

#

i think this is going to be my full house joker (after i move the text down a pixel or two)

nimble sequoia
#

đŸș

narrow pollen
#

and the new and improved brick by brick is going to be the joker that makes stones count as their own rank

manic nest
golden lake
#

balatrostuck logo version 3

maiden phoenix
frosty dock
#

not bal tro, literally unplayable

remote coral
#

Balblatrospadetro

random sleet
#

balstuck

mellow crag
#

Can’t wait

random sleet
#

feder can i run an idea by you in dms

#

👀

mellow crag
maiden phoenix
#

Just wanted to say, despite the early struggle, it feels so much nicer to code on 1.0.0, took this opportunity to write better code and use a spritesheet

shell timber
#

um

mellow crag
#

Truuuuuu

mellow crag
#

Yeah I saw that too

#

I have no idea what it means

maiden phoenix
zealous glen
#

I couldn’t figure it out so I just used require

golden lake
#

swishy

zealous glen
golden lake
#

right?

random sleet
#

this mod made possible by alchemy
Balatro && Homestuck

golden lake
#

how do you guys feel on these extra swishes