#💻・modding-dev

1 messages · Page 328 of 1

manic rune
#

hm

#

no context thats similar to context.main_scoring/context.joker_main

#

damn

wintry solar
#

what are you trying to do bepis?

manic rune
#

so like, im planning to add skills that give +n mult, the timing should be similar to context.joker_main

#

i faintly remember someone saying i need to hook to SMODS.calculate_context to do stuff like that

wintry solar
#

you could add a dummy voucher that'll do it all for you, or add your own dummy area to store those effects

manic rune
#

dang, i never tried neither 🥀

#

if i were to go with the latter approach, im assuming id need to create like, dummy jokers to add to the area, and hook the area to calculate_context?

wintry solar
#

to SMODS.calculate_card_areas

zealous glen
#

kinda

#

it also removes some capabilities

#

so it's a sidegrade IMO

wintry solar
#

what does it remove?

manic rune
#

...in my defense i saw this and thought its used for that purpose ❤️

zealous glen
zealous glen
manic rune
#

thanks eremel :p

manic rune
#

❤️

heady siren
#

Those numbers are global variables, setting it to that didn't change anything

#

This is how it looks at full card size vs when it's shrunk down to 2/3rd size

#

Card changes size, sprites don't

#

This is my code for changing card size, it just shrinks them down once they enter a cardarea

zealous glen
heady siren
#

How else would I do it?

#

That's how the game resizes the non-standard jokers like Half Joker and Square Joker

zealous glen
#

you could change the visual size or the scale

manic rune
zealous glen
zealous glen
wintry solar
#

I think it's because you're changing the size after the sprite has been created

manic rune
#

i cant tell if this is synergy or 👽 😭

zealous glen
manic rune
#

watdahell

#

guess im simply dumb ❤️

heady siren
#

That's required for the size of them in booster packs and shops so you don't get this situation

#

They have small elements you wanna be able to parse at a glance

#

The cards get smaller so that you don't have to worry about them taking up your whole screen

wintry solar
#

you'll just need to change the size of the extra sprites too

heady siren
#

Okay how

#

I've tried to make them match the card size but it hasn't worked

#

Tried G.buffsprite.T.w/h = card.T.w/h and G.buffsprite.VT.w/h = card.VT.w/h and combinations of both and neither worked

#

It didn't even like, scale them incorrectly, it just didn't do anything

#

I also tried scale_mod in the shader but it puts them in the wrong offset

manic rune
#

...hm

heady siren
#

Even setting the size of G.buffsprite in it's definition doesn't work, it stays at full size

manic rune
#

now that i think about it, if i go with this approach, theres no way for me to organize the +mult, +chips and such in an optimized way

wintry solar
#

I was thinking you just have one object that adds them all

#

and redeeming the skill changing the values in a G.GAME.modifiers table

manic rune
#

oh yeah, good idea

heady siren
#

I really wish resizing was just working, this would look so good

manic rune
#

initially planned to add each skill as its separate card

#

but maybe grouping all of their effects into one card is the best approach

zealous glen
#

I think it's easier to code if they're separate

#

and to handle too

#

you're just recreating

#

thunk's if-else-if tower of babel otherwise

heady siren
#

I'm basically doing the same thing but with buff cards instead of skills, and you can see them in a cardarea

zealous glen
#

or not see them

wintry solar
#

a single object is really easy

zealous glen
wintry solar
#

but it's not 150 different effects

#

its one system providing certain values

#

it makes sense for them all to be together

zealous glen
#

they're together in the CardArea

heady siren
#

At least there's not repeat code for the same effect over and over and over

wintry solar
#

I am talking about bepis' problem

heady siren
#

Sorry

primal robin
#

Nope JangSchna

zealous glen
paper zealot
primal robin
#

love.keypress

#

Theoretically this can break controller in a manner if event will be prevented, key hold can stuck more than needed

heady siren
paper zealot
gray apex
manic rune
#

what the fuck

heady siren
#

HUH

manic rune
#

thats insane

#

😭

faint yacht
#

-# Petscop texture editor.

heady siren
#

First thing I'm making is a joker that's called Photochad

faint yacht
primal robin
#

This is the most insane I seen so far

gray apex
#

I never wish to look at a UI element again

crisp coral
unborn bay
#

mario paint joker .....

gray apex
#

Once the texture is drawn, I intend to have it swap to a menu where you can pick between one of several abilities, which are then applied to all copies of the Joker.
The custom joker data persists between runs and game instances, so I already have a button to purge them in the config

heady siren
#

At first I thought you were putting down random scribbles, but no, you're just an actually good artist, and I had no idea what you were even drawing until it was done

proud moon
#

is there somewhere i could find a neat list of sounds the play_sound function will play?

hard needle
proud moon
heady siren
manic rune
#

how are people doing those cool stuff

#

😭

proud moon
#

i was hoping for a doc or smth, but ig i can just go to the files

gray apex
primal robin
#

And skill

manic rune
#

how long did it take u to do that

primal robin
unborn bay
#

skill has nothing to do with ui code

gray apex
unborn bay
#

it's cope actually

manic rune
#

im still flabbergasted even though i replayed that shit like 10 times already

#

WHAT

#

yesTERDAY?????

heady siren
#

The only skill you have is patience

primal robin
#

Ui is not that bad as it can be

#

It works at least

unborn bay
#

the problem is getting it to work

#

🥀

heady siren
unborn bay
#

double down for ui code

primal robin
#

When you're web dev this ui is kinda understandable

#

With some exceptions of course

eager pendant
#

How to put a shader on top of a joker texture

gray apex
#

The weirdest hack I had to do for this was to overlay an invisible button over the image using negative padding
I'm not going to touch it, lest it will break

primal robin
#

Never touch bond property so far

#

So whole joker sprite is a field with buttons?

unborn bay
#

that probably explains why you have to put each pixel one at a time

gray apex
#

The image and button are sibling nodes, but the parent node has negative padding, which causes them to overlap

gray apex
#

When the button is pressed, it does some jank maths to figure out the (almost consistently) closest pixel

eager pendant
#

Please tell me how to make the Joker always be polychrome in the store is a particular joker this one

heady siren
#

You don't even have a calculate function

primal robin
#

In one time I should finish implementing scrollbar

manic rune
#

sometimes i wonder what my mod is about

primal robin
#

A lot of texts under each joker

unborn bay
#

multiple mods can be described as thay

#

pokermon joyousspring

#

uhhh

#

almanac

heady siren
unborn bay
#

almanac has a lot of text

manic rune
#

my mod is leading the "how many words can you pack into a joker" competition ❤️

heady siren
manic rune
#

i mean - you got 5 pages

#

you cant possibly top that

primal robin
#

Not 7 pages on each joker, you know

heady siren
#

Those can't even be considered jokers anymore

wintry solar
heady siren
#

They're the whole damn circus balatrojoker

manic rune
#

stats, equipments

#

i will need to learn to make cinematic cutscenes and dialogues soon

heady siren
#

Even my modular consumeables are just 1 line

tall wharf
primal robin
#

Draw this equipment as UI on hover

unborn bay
#

i mean that's understandable since you're implementing gacha game in balatro

unborn bay
#

when are you making it 3d bepis

#

so we can see 3d jimbo

manic rune
#

-# "jimbo" is supposedly the final boss in my mod, actually

unborn bay
#

jimbo balatro final boss ??????!

manic rune
#

i decided to give jimbo some backstory in my lore

#

:p

heady siren
primal robin
#

Talking cards are weird

#

If you make a card separately, and replace card in talking card with created one, calling say_stuff makes this card wiggle much more intense than intented

manic rune
#

the overall concept of my mod's story is:

  • lost in weird reality, find self in casino
  • jimbo tells you your memory is scattered throughout the place
  • survive

thats the surface

heady siren
#

In the booster pack they look so good ;~;

unborn bay
#

there's lore in my balatro mod

manic rune
#

thats also why bosses from hsr take form of blinds

eager pendant
tall wharf
#

just set sprite on that mf

primal robin
#

At one time I want implement storytellers like in Rimworld

manic rune
#

since those memories are manifested into those stuff, and you recover them back from beating them

heady siren
wintry solar
manic rune
#

id discuss more about my mod's story, but that would be too much spoilers for what will hopefully make my mod different from others :p

tall wharf
primal robin
wintry solar
#

@heady siren I figured it out!

primal robin
#

blob

heady siren
heady siren
wintry solar
#

change your resize code to card.T.scale = 0.66

tall wharf
#

where it looks a bit jittery

#

was trying to fix this for my own letter thing

wintry solar
#

they kind of look like they're stuck on top though, maybe the chips bit needs a defined edge?

heady siren
#

I don't even care if they get funny when juiced up

#

It worked

tall wharf
#

actually does it look funny when juicd up

wintry solar
#

I'd definitely try and reverse the order they're drawn, just to see what the difference is

heady siren
#

I'd have to change how the code for the layers work

primal robin
#

This drawing stuff is too complicated for me Lumaflute

heady siren
#

I like it how it looks now, that's how I designed it to look

wintry solar
#

are you using the draw step?

tall wharf
#

when was drawstep introduced

#

early march?

wintry solar
#

28th Feb

heady siren
#

Now, is there a way to force a card to be layered above all other cards?

manic rune
#

an option to reset the skill tree, options to add +5,+10,max skill points to skills, and skills that also have downsides would probably be fun to play around with

tall wharf
heady siren
#

So halfway past one card will select the card on it's right

hushed field
heady siren
#

Which is why I really wanted them to be resized

#

I'm not sure where else to put them

maiden phoenix
#

Nice, since there's a drawstep talk going on, how exactly do you fetch a sprite to add it on top of a card? Is it an atlas call or something?

#

Or does the key already reference that sprite?

heady siren
#

Slap this in here

#

Change it's position like this, though without the table and stuff, that's just how I did it

#

buffsprite can be anything you want

maiden phoenix
#

I'm surprised you can't use a SMODS.Atlas for that

heady siren
#

I'm just stupid [=

maiden phoenix
#

lol

#

Thanks for the pointer anyway 👍

heady siren
#

Should there also be a keybind or button to expand the buff area or should it just stay as a hover?

wintry solar
#

the hover is good I think

heady siren
#

Well I fixed the scale juice_up issue

#

Literally just multiply it by the scale

heady siren
#

Aaaand it crashes when I select a blind, damn

#

Fixed very easily

daring fern
#

How would one make it so a playing card draws its ranks and suits as a soul?

heady siren
maiden phoenix
#

Yea a SMODS.Atlas works fine, but glad I got it working

wintry solar
undone maple
#

how do i put a card on top of the deck?

maiden phoenix
#

I don't know if it's the set_ability calls or my drawstep but if I get multiple Ditto to transform overtime it drops my fps

daring fern
maiden phoenix
#

Selling the jokers does not fix this, I reached 27 fps

maiden phoenix
daring fern
maiden phoenix
#

Oh actually maybe I am, should I move the Sprite being created elsewhere?

daring fern
maiden phoenix
#

Fair, but does Sprite exist while SMODS loads files?

daring fern
maiden phoenix
#

It's kinda dumb how DrawStep exists to load new sprites in but you still need an override/lovely patch to create said sprite.

zealous glen
#

I mean, it works with Cards because you can define it in set_sprite

#

with non-cards, yes, you need to define it elsewhere

maiden phoenix
#

Would be nice if DrawStep allowed for optional atlas and pos

dense dirge
#

i have never coded before, however i wanna make a jonkler with a very specific effect. i just want to know if its possible for a joker to either retrigger a used planet card, or something that essentially serves the same function.

maiden phoenix
#

There's like 2 instances of this I know of so yes it's possible

dense dirge
#

oh nice

#

thanks for lettin me know

eager pendant
#

I have a custom Joker, how do I add a polychrome effect to it when it appears in the store, thanks in advance

wintry solar
tall wharf
#

that steamodded is old

#

holy shit

maiden phoenix
#

Why the fuck does the github copy doesn't work 😭

maiden phoenix
daring fern
#

How could one make it so selected jokers get played and turned into their respective enhancements temporarily?

wintry solar
#

Can't you just put a MOD.sprite_name = Sprite(blabla) in your file somewhere?

maiden phoenix
#

I didn't expect so since the screenshots I got uses a game_menu override

timber oriole
#

ok so i want an audio to play when i have some joker (like cryptid's jimball) but adding select_music_track crashes the game on load

daring fern
timber oriole
#

oh ok

eager pendant
wintry solar
zealous glen
tall wharf
#

-# is that AI generated joker image

maiden phoenix
wintry solar
#

it's whether or not the atlas has been loaded

daring fern
zealous glen
zealous glen
eager pendant
maiden phoenix
wintry solar
#

then they did it wrong 🤣

gilded narwhal
tall wharf
#

gold stake tho.

zealous glen
#

testing?

tall wharf
#

could be but still

tall wharf
eager pendant
timber oriole
pale venture
#

Is there a way to make a blueprint-like joker that copies multiple times? Ideally it would copy a joker as usual and then retrigger itself x times but i'm not sure if it's even possible with the returns

daring fern
tall wharf
#

isn't it like

#

SMODS.blueprint_effect

unborn bay
#

if you just want blueprint you can just use SMODS.blueprint_effect yeah

pale venture
#

Oh, i was referencing how other mods do blueprint effects, i'll have to see then

daring fern
gray apex
#

Is there a function that can be called that saves the mod config? If I set the config values through some method outside of the config tab, and reopen the game, it seems like it saves very inconsistently.

unborn bay
#

honestly calculate_effect never worked for me

#

atleast with my experience with making adult card which copies a random card from cards you sold

#

and even more the rigged variant

wintry solar
#

calc_effect is to handle an effects table

unborn bay
#

which copies all of them

eager pendant
maiden phoenix
tall wharf
tall wharf
#

that is not the code in your editor

eager pendant
wintry solar
#

yeah that code you've sent is absolutely fine, it's either not what you're running on you have some cursed shit going on

tall wharf
#

did you restart the run

wintry solar
eager pendant
wintry solar
#

then you've broken the game somewhere else

maiden phoenix
wintry solar
#

you can also throw it in your drawstep so it only creates it once

undone maple
#

does G.deck:emplace copy cards or just place an already existing card?

wintry solar
#

if not MOD.sprite then MOD.sprite = Sprite() end

gray apex
zealous glen
#

It would be nice to not need to patch global sprites

maiden phoenix
unborn bay
#

nil checking is an art

zealous glen
#

Also it just occurred to me it would be nice to be able to apply shaders to objects like Editions without Editions

wintry solar
#

that's what draw step is for...

unborn bay
#

the 1 billion drawsteps

zealous glen
#

Instead of being a property of the object itself

wintry solar
#

being a property would be checked on every card too though

zealous glen
#

But it’s one versus n

#

The card just runs its own Draw function that knows how to draw itself

#

Instead of every draw step asking every card “should I draw you”

maiden phoenix
#

Center objects have a draw function tho?

zealous glen
#

That’s what I usually use

#

The main limitation is drawing behind cards

#

It’s also slightly janky since SMODS doesn’t explicitly support it, but it works

#

(janky just how it’s written; it works fine)

eager pendant
#

This is what the code looks like, but it's polychrome in the collection and regular in the store

zealous glen
#

Actually maybe if I used the object’s draw function I would be able to draw behind the card. I wonder 🤔

wintry solar
#

you cant

#

the only way to draw behind is drawstep

unborn bay
#

honestly i don't really think this is gonna be that costly to check if the card is the card you want to draw to

eager pendant
wintry solar
#

huh

#

seems like something is stripping editions

eager pendant
zealous glen
#

I wonder if it was the set_ability change still

zealous glen
wintry solar
#

it's a smods bug

eager pendant
zenith quarry
#

guys can someone help me with something real quick

eager pendant
#

And what is the current version of steamodded at the moment

wintry solar
#

redownload smods now, it's fixed

pale venture
tall wharf
wintry solar
#

casual 9 month old bug fix 🥳

tall wharf
#

ok so

#

how do i even add the fucking solitaire as blinds

hard needle
tall wharf
#

hold on

#

how do i start decompose in the soil

#

i don't think i am up for this task

pale venture
#

i guess i could simply copy the joker normally and then give it a retrigger, not exactly the same but it would do.

zealous glen
wise spruce
#

can anyone link an example of making a mod for a mod? like if i want to remove or modify some cards from another mod, but do it with my own mod, like a patch, instead of modifying the original mod outright

eager pendant
#

I have version 421c, deleted all mods, no

wise spruce
pale venture
eager pendant
zealous glen
zealous glen
eager pendant
zealous glen
#

Get 426 the same way you got 421

eager pendant
zealous glen
#

How did you get 421

eager pendant
tall wharf
#

cryptid.

pale venture
# zealous glen No

Fyi it does work like blueprint if i return it but i have no way to make it copy multiple times unless i'm mistaken

eager pendant
zealous glen
pale venture
eager pendant
# zealous glen Green button

Thank you so much mate, much appreciated, but lovely doesn't need to update just in case?
Polychrome works great!!!

zealous glen
#

SMODS updates more often

unborn bay
#

note that you'll probably need to update the smods version in your mod metadata file too so that people also don't get The Polychrome Problem when they get their mod

pale venture
#

whoops imagine there's a return there lol

zealous glen
unborn bay
#

i loooove extra table !

manic rune
#

development is delayed because my dad accidentally locked all of us out of the house

#

:3

#

amazing

zealous glen
#

IIRC that has happened to me too

#

At like 2 AM

#

Thanks dad

manic rune
#

left keys inside

tall wharf
#

what.

manic rune
#

didnt bring phone with the app to unlock it

#

???

unborn bay
#

phone?????

tall wharf
#

what.

#

phone.

#

how.

#

what.

#

high tech houses.

unborn bay
#

people should stop relying on electronics to open their belongings

tall wharf
#

we just use keys

manic rune
unborn bay
#

like their entire fucking house

#

this is why we are doomed as a species

manic rune
#

im genuinely so frustrated rn

zealous glen
tall wharf
#

i just hook my single key to a massive bunch of keychains and a lanyard

#

i only forgot it once since

zealous glen
#

Also I can’t say much because my apartment does require an electronic for me to be able to get inside

#

It’s not a cellphone tho

manic rune
#

god

#

my day is so unlucky today for no reason

#

my friend got food all over my shirt

#

my bike got locked up because someone took it onto the side road

#

and now im locked outside

zealous glen
#

Dang

tall wharf
#

😭

hearty sun
#

So, apparently The Duo works off the full hand, and not the the scored hand, for some goddamn reason?

undone maple
#

well it says if the played hand includes pair, not played hand is or scoring hand is

zealous glen
#

Usually Balatro means scoring hand when it says that

undone maple
#

ive always seen it specify if scoring or not

zealous glen
#

Or maybe I’m misremembering

zealous glen
#

Neither scoring nor played

hearty sun
#

Yeah, it makes sense after rereading it, but oh boy was it surprising at first!

undone maple
#

not the case for the duo :P if it said "played poker hand is pair" then id understand but it just tells to include on the hand you played

manic rune
#

i got inside

zealous glen
#

Vanilla wording is bad and inconsistent so I wouldn’t be surprised

zealous glen
manic rune
#

my dad sawed off the door

#

😭

#

i have nothing to say about today

tall wharf
zealous glen
#

Chainsaw Dad

manic rune
#

you didnt read it wrong at all

tall wharf
#

it's 9:50pm...

manic rune
#

mhm

zealous glen
#

where did they get a saw

manic rune
#

neighbor's home

zealous glen
#

did they saw the neighbor’s door to get inside to get the saw too

manic rune
#

:sob

zealous glen
#

-# balatrojoker

manic rune
#

took 20 minutes to call the neighbor since they were sleeping

#

ghh

undone maple
#

thats dedication to saw off a door

naive raptor
#

ok i have no clue what im doing so bear with me. right now im not worrying about functionality, just trying to get the game to boot up without crashing.

i keep getting an error saying on line 58, there was an unexpected symbol near '{'. (line 58 is right underneath if.context.skip_blind then).

SMODS.Joker {
    key = 'doubledown',
    loc_txt = {
        name = 'Double Down',
        text = {
            "Create a random",
            "{C:spectral}Spectral{} card if all",
            "{C:attention}Blinds{} are skipped",
            "this Ante",
            "{C:inactive}(Must have room){}"
        }
    },
    config = { extra = { } },
    loc_vars = function(self, info_queue, card)
        return {}
    end,
    rarity = 2,
    atlas = 'BrummAndVortexsJokers',
    pos = { x = 0, y = 0 },
    cost = 5,
    calculate = function(self, card, context)
        if context.skip_blind then
        {
            cardarea = G.jokers,
            skip_blind = true
        }
        end
        if context.setting_blind then
        {
            cardarea = G.jokers,
            setting_blind = true,
            blind = G.GAME.round_resets.blind
        }
        end
}
manic rune
#

if i get a power outage right at this moment

#

im not even surprised

manic rune
#

remove all of these

hearty sun
#

You just write

if cond then
  action
end
manic rune
#

^

naive raptor
#

alr thx

undone maple
zealous glen
#

I think it’s in a hook

hearty sun
#

Is there any way to set Collection order other than reordering the code?

manic rune
#

i dont think so

#

i mean - maybe there r some options i dont know of, but you are probably better off reordering the code :p

zealous glen
#

the Ortalab OC person

#

Shinku

zealous glen
manic rune
#

i mean - i did so :3

hearty sun
manic rune
zealous glen
#

I just have a for loop to load them in order

#

I’m beginning to think I need sub folders for my Jokers

#

<@&1133519078540185692>

manic rune
#

me too

#

my jokers file is 6k lines already

karmic creek
#

yeet bigly

manic rune
#

🥀

hearty sun
#

I am NOT using 500+ lines files
(Also my editor doesn't have folds, so this will be painful)

manic rune
#

thank you good sir

heady glen
#

Hey, does anyone know where I can access the code for the jokers so I can see how exactly to program one?

zealous glen
#

Though they do help

#

Copy the EXE then unzip it

heady glen
#

I see

hearty sun
zealous glen
#

Check the examples mods

#

In the SMODS Examples collection

heady glen
zealous glen
manic rune
#

wha

zealous glen
#

Like mine

zealous glen
heady glen
zealous glen
#

I think I need sub folders

manic rune
#

yeah, thats what im thinking

hearty sun
hard needle
#

does context.destroy_card only trigger for scored cards?

manic rune
#

nop

#

trigger for every card

hard needle
#

hm

manic rune
#

you can limit its scope though

hard needle
#

no my joker is destroying only scored cards 🤔

manic rune
#

whats the code

hard needle
#
if context.destroy_card and context.cardarea == G.play and #context.full_hand >= card.ability.extra.min and G.GAME.current_round.hands_played == 0 then
            if (context.destroy_card ~= context.full_hand[1]) and (context.destroy_card ~= context.full_hand[#context.full_hand]) then
                return {
                    remove = true
                }
            end
        end
manic rune
#

yeah, you limited it to only scored cards

hard needle
#

emm how

manic rune
hard needle
#

hm okay

#

wait but then what context would i use? 😅

manic rune
#

what are you trying to do rn?

hard needle
#

if first hand of round contains 3 or more cards, destroy all cards in played hand except leftmost and rightmost

manic rune
#

hm

#

so the problem is that it doesnt destroy unscored cards?

hard needle
#

seems to be so

manic rune
#

well, im currently a bit tired so i cant hop on balatro to test myself, but you can try changing context.full_hand to G.play.cards, not sure if theres any difference

daring fern
manic rune
#

oh yeah, forgot that context.cardarea == G.play doesnt account for unscored cards

hearty sun
#

Well, found my solution...

local jokers = {
  -- Hand - Mult
  "hand/mult/merry_joker.lua",
  "hand/mult/glad_joker.lua",
  -- Hand - Chips
  "hand/chips/astute_joker.lua",
  "hand/chips/keen_joker.lua",
  -- Hand - XMult
  "hand/xmult/the_file.lua",
  "hand/xmult/the_platoon.lua",
}

for _, file in ipairs(jokers) do
  local f, err = SMODS.load_file("jokers/" .. file)
  if err then
    error(err)
  end
  f()
end
zealous glen
#

Yeah I do something like that

hard needle
undone maple
manic rune
#

those work now

glad osprey
#

how in hells name does one make a config page

tender ermine
#

How do you add polychrome to a card?

manic rune
daring fern
manic rune
#

cant forget scaling skills ❤️

glad osprey
tender ermine
glad osprey
#

card:set_edition should be the function you need

manic rune
#

would you guys choose a skill that does something like

Shuffles all Jokers when hand is played
Played cards give X1.5 Mult
wintry solar
#

Situationally

proud moon
#

yea

wintry solar
#

How is xp obtained?

tender ermine
manic rune
glad osprey
wintry solar
#

Booooo

manic rune
pale venture
manic rune
#

else those situational skills would become too versatile

pale venture
manic rune
zealous glen
#

The return or extra table needs to be the table returned by blueprint effect

manic rune
zealous glen
manic rune
#

"Play with Victin's Collection for X1.5 XP!"

#

🗣️

zealous glen
manic rune
#

:3

wintry solar
manic rune
#

hm

zealous glen
#

Maybe choose a Joker deity that grants you XP based on different actions

wintry solar
#

Skipping is another are that I think would be good for guaranteed xp

#

It depends how much depth you want th system to have

zealous glen
#

Maybe Cartomancer gives you XP based on Tarots used

manic rune
#

i definitely dont want xp to just be obtained through defeating blinds, thats boring :p

zealous glen
#

That’s what I meant with my mod

#

Because I want to replace skipping

#

With my own mechanic

manic rune
#

its more fun to allow the player to earn xp through other means too, skipping definitely works since skipping blinds is usually really bad

and you actually cant just farm xp by skipping blinds everytime and die, since xp doesnt carry on through new runs unlike levels

naive raptor
#

how do i set the text and color for card_eval_status_text?

proud moon
#

man whenever i think ive got a cool idea i look back in this chat and see what everyone else is up that and sit there like ._. lmao

#

these mods are amazing

wintry solar
#

As long as the numbers are tuned appropriately

manic rune
manic rune
manic rune
daring fern
proud moon
manic rune
#

im not the first person to add it ❤️

#

Grim did it before, but i think im the first person to make one that saves for next runs

proud moon
#

no, but thats not any less impressive

unkempt thicket
proud moon
#

we need mmorpg balatro i think, thoughts?

zealous glen
brazen tusk
#

Need more out of run progression!!!!!!

manic rune
#

an issue im facing currently is that the xp bar is overlapped by pretty much everything else: the shop, the blind selection screen, not entirely sure what approach i should go with here

naive raptor
#

hide it

zealous glen
naive raptor
#

idk

#

nvm im stupid

proud moon
#

is it possible to make the text fade in the shop and only show when you mouse over the bar? it would look quite clean

manic rune
#

is there even something to make ui transparent

#

now that i think about it

proud moon
#

i have no idea lol

glad osprey
manic rune
brazen tusk
zealous glen
brazen tusk
#

Idk about blind select though

daring fern
#

How does one apply a voucher without redeeming it?

zealous glen
#

Do it like Minecraft and delete the XP bar

manic rune
#

smt what kind of shenanigan are you doing this time 😭

zealous glen
#

Make it track the position of other players

#

In Multiplayer

manic rune
#

😭

brazen tusk
proud moon
#

wait how come the beginning of the bar when filled in with red doesnt have rounded edges?

manic rune
#

...oh, i just saw that

brazen tusk
manic rune
#

hm

manic rune
#

thats odd, both the bars have r = 0.1

daring fern
proud moon
naive raptor
#

how do i check if the player's consumable slots are full? im trying to make a "must have room" effect

manic rune
glad osprey
#

look at how other cards do it
I'm pretty sure it's something like
#G.consumeables.cards < G.consumeables.config.limit

glad osprey
proud moon
#

thats what it is in the vanilla code

#

not sure what the buffer does tho

glad osprey
#

probably some local thunk shenanigans

manic rune
#

uh

daring fern
manic rune
#

is it normal to have a spectral pack with 6 cards?

#

first time seeing it personally

proud moon
#

...no?

manic rune
#

thats odd

glad osprey
#

sleeve

manic rune
#

i dont think i have any mod that interferes with booster packs

#

dsOIDmSA

#

I FORGOT

proud moon
#

yea, that sleeve

#

lmao

manic rune
#

😭

brazen tusk
#

Lmao

proud moon
#

it looks just like the cards

gilded narwhal
#

Guys does anyone know how to override a specific jokers sprite in specific conditions

proud moon
#

||its invisible||

unkempt thicket
glad osprey
manic rune
#

mmm good idea

unkempt thicket
manic rune
#

i should probably

#

find a mod that adds a button like that

#

:p

gilded narwhal
#

I'm using this rn

glad osprey
#

idk then

gilded narwhal
#

It's very primitive but i'm just trying to make it use a specific sprite for its base

manic rune
unkempt thicket
# manic rune can i have the code for adding a button to that menu ❤️

It was a simple lovely patch to add the button in options ```[[patches]]
[patches.pattern]
target = 'functions/UI_definitions.lua'
pattern = '''{
label = localize('b_vouchers'),
tab_definition_function = G.UIDEF.used_vouchers,
},'''
position = 'after'
payload = '''{
label = "Currencies",
tab_definition_function = G.UIDEF.insc_extra_currenicies,
},'''
match_indent = true

zealous glen
#

They have Censored Jokers and Bald Jokers

unkempt thicket
gilded narwhal
#

I just mean the part that isn't the soul layer

#

Which I think is center (?)

#

Oh wait

zealous glen
gilded narwhal
#

I am

pale venture
zealous glen
pale venture
#

i didn't really understand how the table worked, now i managed to use calculate_effect correctly and it works perfectly

unkempt thicket
# unkempt thicket It was a simple lovely patch to add the button in options ```[[patches]] [patch...

The tab_definition_function needs a function which would be where you return the UI, like the xp bar. Example: ```function G.UIDEF.insc_extra_currenicies()
local scale = 0.4
local foil_sprite = get_foil_sprite()

local contents = {}

local spacing = 0.13
local temp_col = G.C.DYN_UI.BOSS_MAIN
contents.currenicies = {
          {n=G.UIT.C, config={align = "cm", minw = 3.3, minh = 0.7, r = 0.1, colour = G.C.DYN_UI.BOSS_DARK}, nodes={
            {n=G.UIT.O, config={w=0.5,h=0.5 , object = foil_sprite, hover = true, can_collide = false}},
            {n=G.UIT.B, config={w=0.1,h=0.1}},
            {n=G.UIT.O, config={object = DynaText({string = {{ref_table = G.GAME, ref_value = 'foil'}}, maxw = 1.35, colours = {HEX("bebebe")}, font = G.LANGUAGES['en-us'].font, shadow = true,spacing = 2, bump = true, scale = 2.2*scale}), id = 'foil_text_UI'}}
          }},
          {n=G.UIT.R, config={minh = spacing},nodes={}},}
return {n=G.UIT.ROOT, config = {align = "cm", padding = 0.03, colour = G.C.UI.TRANSPARENT_DARK}, nodes={
  {n=G.UIT.R, config = {align = "cm", padding= 0.05, colour = G.C.DYN_UI.MAIN, r=0.1}, nodes={
    {n=G.UIT.R, config={align = "cm", colour = G.C.DYN_UI.BOSS_DARK, r=0.1, minh = 0.3, padding = 0.08}, nodes={
      {n=G.UIT.C, config={align = "cm"}, nodes=contents.currenicies}
    }}
  }}
}}

end```

manic rune
#

mhm, i got it working, but i wonder if its possible to make the box smaller

#

feels a bit too empty

glad osprey
#

maybe add the skill tree to that aswell?

brazen tusk
#

is it not the same size for all the tabs?

manic rune
unkempt thicket
#

All the tabs are the same size, I agree the skill tree in the same tab.

faint yacht
#

-# How do I clear enhancements, editions and seals off of a given playing card?

unkempt thicket
#

set_seal(nil)

#

And the similar versions for enhancements and editions, just set them to nil

glad osprey
gilded narwhal
#

Oops

wintry solar
gilded narwhal
wintry solar
#

I think it should be possible to get it in the left panel somewhere if you put the text inside the bar or as a hover pop up

unkempt thicket
manic rune
#

thats progress

brazen tusk
#

!!

young pollen
#

if i want to make a joker that gives x$ for every king in hand, which context should i use?

gilded narwhal
outer dagger
#

Does someone have an example of adding +mult to cards?

wintry solar
outer dagger
#

:blessed:

manic rune
#

should hopefully solve the issue

#

im probably still gonna keep this, i think it looks nice :p

brittle bough
#

Hey guys, anyone have a starter guide to modding?

manic rune
#

pressing anything in the skill tree leads you to the full UI

wintry solar
#

You mean that’s not a functional skill tree?

manic rune
#

it actually still works normally

#

but that skill tree version is smaller than the full one

#

so i was thinking: if you plan on pressing something in there, it should open the full version instead

wintry solar
#

That would be very unintuitive

manic rune
#

aka this

#

hm

#

i guess thats true, maybe i should make the smaller version functionable too

#

i dont think i need that much space, anyways

wintry solar
#

I just don’t think you need that button at all

manic rune
#

a

wintry solar
#

If you have the button on the main screen ofc

manic rune
#

so just the hover -> expand thing will suffice?

wintry solar
#

I think hiding the bar away in a menu would be bad design, so fitting it somewhere on the screen is infinitely better

manic rune
#

my original design was actually to make the bar vertical, on the rightmost side of the screen

wintry solar
#

I was thinking a vertical bar might work

manic rune
#

smt like this

#

but uhhhhhhh, i should probably mention that the progress_bar_function kinda breaks at the vertical part

#

:3

#

its weird

#

heres the current problem

wintry solar
#

I see

#

I think you could also put it between the money display and the round display

manic rune
#

im guessing you mean here, i will look into almanac's code to see how to add uis to this section

wintry solar
#

Yeah somewhere over there

#

I forgot the run info and options buttons were so tall 😭

manic rune
#

...jen almanac has everything in one file???

brazen tusk
#

I changed my jokers recently to just load everything in the jokers file into the main lua, is there a way i can choose the order they load (or display in game) other than renaming the files?

manic rune
manic rune
#

holy fuck

#

23k3 lines

brazen tusk
manic rune
#

hmmmm

wintry solar
#

There’ll be a much easier way

gilded narwhal
#

I'm not actually sure how this is supposed to work

#

Like is the last argument of Sprite() not supposed to be coordinates?

#

Because from what I've seen in the files it's coordinates

wintry solar
#

Pretty sure the atlas should be the actual atlas and not just a string

gilded narwhal
#

So SMODS.Atlas['mystery_atlas']?

#

Apparently not bc I get a new crash

tepid crow
#

try G.ASSET_ATLAS['atlas_key'] instead?

gilded narwhal
#

Tried that as well

#

Same crash

tepid crow
#

are you sure the atlas key is correct

gilded narwhal
#

Yes

tepid crow
#

for reference, this works for me Sprite(x, y, w, h, G.ASSET_ATLAS["casl_sleeve_atlas"], {x=0, y=3})

gilded narwhal
#

It might be when I'm running it

#

Because I'm running it as soon as I start the game

#

But if that was the case then I think new_sprite_atlas wouldn't be nil

tepid crow
#

why don't you print out the content of G.ASSET_ATLAS

gilded narwhal
#

I KNOW WHY

#

I need the prefix

tepid crow
#

so the atlas key wasn't correct

gilded narwhal
#

😭

#

Good to know

#

Okay well that didn't fix the problem actually

tepid crow
#

well I'm hoping it'll at least be a different error

gilded narwhal
#

Now it's a number value instead of a nil value

tepid crow
#

what are you indexing

young pollen
#

hey guys, tryna create a joker that gives money for every king held in hand after the final scoring, however it doesnt really do anything.

    calculate = function(self, card, context)
        if context.end_of_round and context.individual then
            for _, v in ipairs(G.hand.cards) do
                if v.rank == 13 then
                    return {
                        card.ability.extra.money
                    }
gilded narwhal
#

Oh wait shoot

#

lmao

#

I put an extra thing in the list

tepid crow
#

it's that

gilded narwhal
#

I was using self.T.h as an atlas

tepid crow
#

you're just throwing a number back and not specifying what you want the game to do with the number

young pollen
#

oh alr thankyou

tepid crow
gilded narwhal
tepid crow
gilded narwhal
tepid crow
#

rip

gilded narwhal
#

I'm gonna move that stuff because it defining a new sprite every frame isn't very efficient go figure

tepid crow
#

damn that's crazy

wintry solar
#

Oh we talked about this earlier

#

Just check if the sprite already exists or not

proud moon
#

is there a function for a joker's own index in the joker area? im trying to make a joker incompatible with duplicates of itself (because it hard crashes the game and would also give infinite money if it worked)

#

actually, i can just make a list of all of that key of the joker in the area, and make a check for if its the first in that list

unkempt thicket
zealous glen
gilded narwhal
#

its lobc

zealous glen
zealous glen
gilded narwhal
#

Ohh I see

#

Also guys how do I make my own global like how paperback does with PB_UTILS

proud moon
zealous glen
unkempt thicket
zealous glen
#

It might not be the best way to do it

#

I mean, it depends on what you want to do

gilded narwhal
#

I just need to define the sprite I'm using as a global like how these are

unkempt thicket
#

For literally the same effect

zealous glen
#

so it works in the Collection

unkempt thicket
#

Inject is best if you need it in collection, i didn't for what i was doing

gilded narwhal
#

I'll use Inject

#

I've never used that before is it simple

wintry solar
#

You could hook a myriad of functions

hearty sun
#

Quick question, how cursed does a non-spheric moon look?

unkempt thicket
#

Very

hearty sun
#

Should I keep it? Or is it way too cursed?

thorn flame
#

keep it it's how hyperion is irl

zealous glen
hearty sun
#

Yeah, it just looks so wrong, but it's so funny
I'm so divided on this lmao

gilded narwhal
gilded narwhal
#

Oh wait nvm

thorn flame
eager pendant
#

I don't understand how to fix it

hearty sun
errant karma
#

the jokers so far in my wii-themed texture pack

thorn flame
errant karma
#

in higher quality

thorn flame
#

Oumuamua next

hearty sun
#

Oh mama,
This one should be so long, it would clip out of the borders...

gilded narwhal
zealous glen
gilded narwhal
#

Oh there we go

unkempt thicket
#

Anyone got a image of jimbo, no background?

unkempt thicket
#

Give me a few hours, jimbos going places

hearty sun
gilded narwhal
#

Okay we're making progress

#

It properly overrides the sprites AND isn't super laggy

#

Now I need to figure out how to make it only apply to cards from a specific booster

#

How would I apply specific config options to jokers generated from a booster?

#

Like would I put it here?

errant karma
#

question about malverk

#

can you make a texture pack that replaces things like the shop sign with malverk

zealous glen
#

I don't think so

errant karma
#

mk

wintry solar
#

No it’s not an object

#

Malverk is for objects

errant karma
#

ah ok

#

trying to replace jokers
this is what i have, am i stupid?

glad osprey
#

maybe it's the way your font is dressed

worthy stirrup
#

How do I check what rank a played card is

cyan lagoon
#

get_id()

#

or context.other_card.base.value == "rank"

#

question how do i make a joker jiggle like dna or invis?

gusty iron
#

can anyone help with this? im trying to update the card with every win but its not updating, and still returning 5 less mult than it should.

errant karma
#

ok so question
how would i change the sounds for jimbo speaking

rustic swallow
#

hpw would i make a joker that counts all cards as non-face cards

gusty iron
rustic swallow
#

yes

gusty iron
#

try looking into the game's code for that

hard needle
lethal stratus
#

the again displays on the card instead of the joker

errant karma
#

question
is there a list of keys somewhere? gonna try to replace the jimbo speaking sounds but idk what their key is, if there are keys for it

sturdy compass
gusty iron
#

rate the card 🔥

hard needle
#

how do the "microgames" work?

gusty iron
#

Press Space!
Click Me!
Press [Random Key from A~Z]!

twin basin
#

hey, i cant access other_cards.
can someone help?

errant karma
faint yacht
#

context.other_card is usually with context.individual.

gusty iron
hybrid galleon
#

I made a poker hand needs 5 wild cards to play, and the evaluate works all well, but I don't know how to add the enhancements to the poker hand example. any ideas?

gentle rain
#

are you able to have more than 1 return under a single context

sturdy compass
#

What are you trying to do?

gentle rain
sturdy compass
#

In that case I’d do SMODS.calculcate_effect instead of doing a return

#

That function basically runs a return table independently

gentle rain
#

OH

#

oh thats very useful

sturdy compass
#

It was game changing when I found out it existed lol

gentle rain
#

ur a lifesaver thats so huge

errant karma
#

can anybody help me change the jimbo speaking sounds

sturdy compass
tepid crow
#

retriggers in particular were weird

#

iirc

sturdy compass
#

That makes sense

tepid crow
#

let me know if you find something that works 👀

gentle rain
sturdy compass
gentle rain
sturdy compass
#

Nah, it’s like SMODS.calculate_effect(return table, card)

gentle rain
#

aah

tepid crow
#

^ SMODS.calculate_effect

gentle rain
#

also how come my cursor is doing this and writing over text instead of inserting :P

restive pine
#

not sure if i ask here or not but what is the filename of gros michel, because it doesnt appear to be gros_michel

gentle rain
#

i think i fatfingered somewhere

gilded narwhal
#

Insert key

gentle rain
#

ah

#

lolol

sturdy compass
tepid crow
#

If I had a nickel every time someone in #💻・modding-dev asked why their cursor is replacing instead of adding

gentle rain
#

thats how card.lua does it

gentle rain
restive pine
#

oki

tepid crow
gentle rain
#

idunno i like

#

probably have never pressed insert in my life

#

lmao

sturdy compass
#

Lmao

restive pine
#

okay yeah i just made a dumb mistake lmao

sturdy compass
#

It does happen

gentle rain
#

hmmmmm

tepid crow
#

minor spelling mistake strikes again

gentle rain
#

AAAACK

frosty rampart
#

calculcate 🔥

gentle rain
#

christ how didnt i see that

sturdy compass
#

I love to calculcate my cards

gentle rain
#

LITERALY ONLY THING MAKING IT NOT WORK WOIOOOOOOOO

sturdy compass
#

M F Doom putting in work

gentle rain
#

im gonna have to hard code a seltzer interaction but otherwise we move

gentle rain
# gentle rain hmmmmm

@tepid crow this copies all joker_main abilities but id imagine it wouldnt be too hard to add other contexts

sturdy compass
#

I think most blueprint effects don’t even take context into account

gentle rain
#

well mine has to scan thru every joker slot to identify food jokers so i think it'd need a context?

tepid crow
zealous glen
gentle rain
#

ye

zealous glen
#

Nice art

faint yacht
#

-# An idea.

gentle rain
zealous glen
brazen tusk
#

MF DOOM my beloved

faint yacht
#

What, Doofenshmirtz would copy any Joker that "involves technology"? Like Photochad?

brazen tusk
#

idea for the doof

minor magnet
#

how do you get an enhancement's actual name?

brazen tusk
#

Makes a copy of a random joker (except for itself) at the start of the round <cardname>inator then it gets destroyed at the end of the round lmao

minor magnet
#

since Bonus and Mult cards just have Bonus and Mult as their name, instead of Bonus Card and Mult Card

frosty rampart
#

ok sorry to drop a big wall of text but uh
as a fairly new modder of the game, i've found steamodded's documentation to be somewhat lackluster; i've muddled my way through fine enough referencing other mods where i need to, but that shouldn't be something everybody needs to do (at least not for the more basic stuff). in particular, the examples repo is out of date in some places (the reimplementation of vanilla jokers still returns things like mult_mod and a separate message in the calculate functions, even though it's just mult now and steamodded autogenerates messages for standard +chips/+mult/xmult/+money effects)
i'm probably gonna send some pull requests to the examples and wiki repos eventually, but that's a big task. so for now uhhhh quick template mod that reimplements the basic Joker (+4 Mult). again. generous commenting by me, but comments + implementation are based on the version from the examples repo. also some beautiful placeholder art by me

faint yacht
minor magnet
#

yes that's what im doing

#

but

minor magnet
#

second

#

modded enhancements have their keys as name

zealous glen
sturdy compass
brazen tusk
#

^^

zealous glen
#

localize{key = …, set = …, something else I forgot}

hard needle
minor magnet
minor magnet
sturdy compass
#

SMODS docs are notoriously lacking (and honestly it's probably because of the work going towards features as opposed to housekeeping) so that's a hurculean effort. Might be willing to lend ya a hand in that

frosty rampart
#

ye it would be awesome to have support
if any of y'all have specific things you think are currently missing from the smods docs i'd love to hear them

anyway this is also an elaborate scheme to avoid working on the art for the actual mod i'm developing balatrojoker

sturdy compass
brazen tusk
zealous glen
#

I believe

brazen tusk
#

o

zealous glen
#

I know they wanted to, but I'm not sure if it's actually in the works or not

faint yacht
#

localize{key = 'm_modprefix_key', set = 'Enhanced', type = 'raw_descriptions'} would get the description of a given enhancement.

frosty rampart
tepid crow
#

I don't think anything's actively in the works?

#

more so that they said they want it to change?

zealous glen
frosty rampart
#

gotcha

brazen tusk
#

what we think of this ability?

wintry solar
#

I'm just rewriting the calculation page

#

but motivation to write them is zero

shut crater
#

strong early game

tepid crow
brazen tusk
#

yeah its main thing is it makes high card viable early but it falls off pretty quick

#

lmao

shut crater
#

because high card with 5 cards is easy to get

#

I would compare to something like the jokers that give chips for a specific hand and make it weaker than those

#

because at least for those you have to meet a certain condition

faint yacht
frosty rampart
brazen tusk
#

i had it at 20 originally but blue joker is common and gives +104 base and every card can score

faint yacht
zealous glen
#

because I knew exactly what it was

faint yacht
#

🦐

zealous glen
#

-# long story

brazen tusk
#

20 might be more reasonable though bc blue is remaining not just in deck

shut crater
#

and it falls off every time you play or discard cards

brazen tusk
shut crater
#

I guess the question is, what kind of playstyle are you trying to incentivize

brazen tusk
#

im just trying to give tools, its a common card so people arent going to be building around it most of the time

shut crater
#

sure but it would still be good to have a purpose for making a joker instead of just making a joker