#💻・modding-dev

1 messages · Page 326 of 1

weak brook
#

you dont need set_base

#

modify rank will handle it

ancient plinth
#

K

glad osprey
#

that sisi monster i hate:

ancient plinth
#

Still doesn't do anything

graceful magnet
#

so is there some calculate that runs after the final score of the hand is calculated

ancient plinth
#

What do I do?

glad osprey
#

what is it with murder drone pfps needing constant hand holding

ancient plinth
#

I literally started two days ago

#

Do you expect me to learn everything in a day?

glad osprey
#

oh nrvm,

hard needle
#

i mean you couldve like learnt lua first

#

then tried to start modding or something

glad osprey
#

i figured you were doing it for longer than that

hard needle
crisp coral
crisp coral
#

but programming knowledge is appreciated

tall wharf
#

who needs to learn lua when

hard needle
hard needle
glad osprey
#

discord user F

proud moon
# glad osprey f

i did the think without taking ownership, i just hooked the loading function and it works perfectly

#

:>

shut crater
# ancient plinth I literally started two days ago

Something I recently discovered that is super helpful is opening the whole Mods folder in vscode instead of just your mod. Then vscode will recognize SMODS stuff and global function names and you can Ctrl+click on them to see how they work

#

And searching a function name will bring stuff up from the lovely folder so you can see the source code

proud moon
hard needle
shut crater
hard needle
#

G.playing_cards

shut crater
#

Huh, that's odd. Yeah idk much but opening the mods folder as my workspace did the trick for me

hard needle
#

yeah works with other stuff tho

shut crater
#

I do notice that sometimes because of how Lua is, some fields on some tables won't get recognized

undone maple
#

the thing is very wacky, sometimes it doesnt play the animation, sometimes it doesnt convert or destroy any cards, am i using wrong contexts?

shut crater
#

For testing purposes why don't you force one the if statement to always be true or always be false

#

And focus on each part separately

tall wharf
undone maple
#

ill do that now

proud moon
undone maple
#

(on the first hand of the round, i set the requirement here to >0 to test it without resetting over and over)

wintry solar
#

This isn’t set out how I would imagine any joker would be set out

graceful magnet
#

this is the second time I've had to make something manually calculate the score to do it's effect

hard needle
graceful magnet
#

if I had a nickel etc

hard needle
#

oh wait nevermind

#

i think you need to use a different context than context.cardarea == G.play but im not sure what

zealous glen
#

As I said, everything is calculated first

#

Actually, there is one

#

Plasma Deck

#

But SMODS doesn't make it available to everything

#

it only makes it available to Backs

wintry solar
#

current_round.current_hand.chips is a thing?

zealous glen
#

Technically it still runs at calculation time, but it can access the current chips

zealous glen
wintry solar
#

Same

zealous glen
#

and I don't think it's documented

wintry solar
#

But chips and mult are global anyway

red flower
#

isn't it just hand_chips

wintry solar
#

It is

zealous glen
#

It would use the previous hand's chips

zealous glen
#

I was trying it yesterday

hard needle
zealous glen
#

Though I don't have that code because I didn't commit something that didn't work

proud moon
undone maple
wintry solar
#

hand_chips and mult are definitely the ones you should use

hard needle
#

hm

graceful magnet
#

though that might be me calling it wrong

wintry solar
#

No G.GAME

hard needle
# undone maple

i doubt this will work but try context.cardarea == G.jokers and context.before, it's the context that DNA uses

#

instead of context.cardarea == G.play

proud moon
#

where is the original image of roffle

hard needle
#

and instead of using context.other_card use context.full_hand[1]?

graceful magnet
#

Alright yeah now it works

#

sweet

undone maple
graceful magnet
#

destroying a card is handled in a different context

undone maple
#

im aware, tried to reorder all the contexts but i still dont know how i can do it without any problems

#

to trigger the randomization i first need another context

hard needle
#

i figured but

undone maple
#

which defeats the purpose

wintry solar
#

Let me type it up for you, hold on

zealous glen
#

By the way, is there a context for after scoring regardless of whether you drew cards or not?

#

Sometimes you don't draw cards but I'd like to execute some (Blind) code at that time

wintry solar
#
if context.before and G.GAME.current_round.hands_played == 0 and #context.full_hand == 1 then
  — set ability here
end
if context.destroying_card and G. GAME.current_round.hands_played == 0 and #context.full_hand == 1 thendo check, return { remove = true }
end
wintry solar
zealous glen
undone maple
#

but how will the randomization work? are the "do check"s the check for odds?

wintry solar
undone maple
#

seems neat

#

ill try it

zealous glen
wintry solar
#

No, final is before after

#

After is after scoring

zealous glen
wintry solar
#

Correct

zealous glen
#

I need a context after playing or discarding

wintry solar
#

Just check for either

zealous glen
#

So I'm back at my original problem

undone maple
wintry solar
#

What effect are you trying to do?

zealous glen
#

@wintry solar this

urban wasp
wintry solar
#

why can’t if context.after or context.pre_discard then work?

urban wasp
zealous glen
wintry solar
#

Yes but it’s the only one time discard context iirc

zealous glen
#

It needs to happen after discard to be consistent

wintry solar
#

There should be something that triggers fear

#

After

#

I don’t remember right now though

zealous glen
#

I'm printing this and putthing it on my wall

zealous glen
unkempt thicket
undone maple
#

how does the jiggle effect on dna and invis joker work?

zealous glen
#

juice_until

wintry solar
#

It’s my crying baby 😆

#

That’s what triggers fear

hardy viper
#

terror ensues

zealous glen
#

panic begotten

glad osprey
#

chads photo'd

proud moon
#

mets well'd

proud moon
#

this one is better

#

also you should check out modding chat lol

graceful magnet
#

so I have this saving Joker like Mr Bones, but I've encountered the issue that after Ante 8, it appears to stop saving you

dapper sun
daring fern
#

How does one make a blueprint for booster packs?

zealous glen
#

what does that mean

shut crater
#

You are braving a new frontier

shut crater
shut crater
proud moon
#

how does this look?

#

i cut it down as much as i could

shut crater
#

Sounds interesting but the condition feels a little convoluted

proud moon
#

like the way its worded?

shut crater
#

It just feels like a lot of independent steps and checks

#

The mechanic itself, not the wording

proud moon
#

fair

shut crater
#

It feels like you want a risk to break stone cards without giving any reward, but is that necessary?

#

Stone cards are not exactly trivial to get in the first place

zealous glen
shut crater
#

So the player is already investing some amount of resources into having stone cards in their deck, and now they're losing that stone card

shut crater
# zealous glen yours

Yes but I forgot to push last night so if you're looking for the frog code it's gonna be half finished

proud moon
#

stone cards in trade for permanent econ, but it takes a lot of stone cards unless you have luck

carmine burrow
# proud moon how does this look?

first part should be "Played Stone cards have a 1 in 5 chance to break" -- cutting words to the point that the description doesn't scan well makes it take longer to read

zealous glen
proud moon
#

this was close to the original text i had

shut crater
carmine burrow
#

i feel like having to play 20 stone cards on average to get the effect of a third of a mime is... pretty bad

zealous glen
carmine burrow
carmine burrow
proud moon
#

i wasnt set on the numbers yet tho

carmine burrow
shut crater
#

Yeah, this isn't an ability that the player is going to completely run away with. You need to be investing resources into having both stone cards and gold cards, and you are permanently losing those stone cards

carmine burrow
shut crater
#

I would say make it a single chance, and balance around that

proud moon
#

but this would be permanent, meaning after getting rid of the joker the buff sticks

carmine burrow
#

usually i cant get glass joker past like x2.5

shut crater
#

If the stone card breaks, guaranteed upgrade, but only a 1 in whatever chance

shut crater
#

But if you don't agree, implement it as written and playtest

#

Technically none of us know how strong this will be until we see it in action

proud moon
#

im also trying to balance it with the rest of my mod, there is another joker that does the same thing but for steel mult instead of gold card payout, and a joker that increases all odds by 1 when held,

#

i made a spreadsheet actually lol, because i wanted to keep the general game balance throughout my mod

#

i havent gotten to the playtesting section yet, but im only a few jokers away from feeling like the pack is ready to test out in its entirety, thats when ill tweak the numbers of everything.

#

the general idea of the mod is to increase the usage of some of the lower tier vanilla jokers by adding jokers with synergies. This one and the steel one were for the marble joker, since i never take it

shut crater
#

Valid, then don't worry about balance right now

shut crater
proud moon
#

absolutly. Perma scaling is a very tricky thing to balance, but this idea is what originally got me into making balatro mods lol, i just have to add it

#

its also why ive spend 3 days figuring out how to get it to work

shut crater
#

I spent over a week on a single joker lol, it be like that

frozen willow
#

Are all stake stickers past orange forced to be shiny? I've added a new stake above gold, and despite having shiny = false in the call to SMODS.Stake, the sticker still shines

graceful magnet
#

how exactly do you get set_card_type_badges working?

slate bison
#

what context am i missing here?

tepid ridge
#

how do i get balatro to recognize my mod so i can actually test it

#

?

slate bison
slate bison
tepid ridge
#

that page doesent really answer my question

#

like i copy and pasted and example mod just so i can see if balatro detects it

#

it didnt at first

#

but then i added the steammodded header and now it just crashes

#

so thats what i dont understand

opal forge
#

Did you install Lovely too?

tepid ridge
#

version.dll?

opal forge
#

mhm

#

What's the crash log saying?

tepid ridge
shut crater
slate bison
#

u are goddam right wth

#

why did i do that

slate bison
tepid ridge
# slate bison how is ur header looking like?

--- STEAMODDED HEADER
--- MOD_NAME: Edition Examples
--- MOD_ID: EditionExamples
--- PREFIX: edex
--- MOD_AUTHOR: [Eremel_, stupxd]
--- MOD_DESCRIPTION: Adds editions that demonstrate Edition API.
--- BADGE_COLOUR: 3FC7EB
--- DEPENDENCIES: [Steamodded>=1.0.0~ALPHA-0905a]

#

is it the steammodded version fault?

slate bison
#

i didnt put steammodded as a dependency honetly

#

honestly

#

this is mine and works really well

#

but mine is just a bunch of random jokers i do for fun

slate bison
# tepid ridge

what i think it is that you dont have an atlas ready in ur mod folder?

#

and it tries to collect the files but the files dont exist so it gives u an error

tepid ridge
#

so what do i do?

slate bison
#

this is my mod folder for example

#

this is the asset folder

#

inside folder 1x i have the art for my jokers

#

and on 2x i also have them

#

you have to set up ur atlas

tepid ridge
#

i have that folder

slate bison
#

do u have an atlas ready?

tepid ridge
#

??

slate bison
tepid ridge
#

what does joker art have anything to do with the game crashing and not detecting the mod?

slate bison
#

says

#

"failed to collect data for ATLAS edex_edition_example"

#

so the problem is in your atlas

#

i would assume its on the formatting of files and stuff

#

cuz if its giving an error its detecting the mod anyway

tepid ridge
#

so what should i do?

slate bison
#

and make sure the mod set up on the folder is correct

#

because im pretty sure its a formatting issue

#

specially because ur header didnt specify what your main file was named

#

and its in your main that you set what ur atlas is

tepid ridge
slate bison
#

you cant just make ur mod folder in anyway you want, you have to name things the right way

tepid ridge
slate bison
tepid ridge
#

i just pasted the text into the lua file

#

its outdated but supposedly it works

placid star
#

whars the variable that stores the current chips that a hand will score before its added to G.GAME.chips

unborn bay
#

i believe it's just called hand_chips

placid star
#

ah okay ty!!

#

how could i get my card to only show up when a certain criteria is met? for context i have a soul type spectral that i only want to show up if i have a legendary

unborn bay
#

use in_pool

#
in_pool = function(self, card)
    return true -- if you want it to appear
end
chrome widget
#

What's the best way to create cards with nonstandard dimensions?

#

I have a card that's 169x123. So I just have to manually set its scale in set_sprites?

modern kindle
#

hi winter :D

chrome widget
#

Hello!!!!

placid star
modern kindle
#

how have you been!

chrome widget
#

Hmm decent?

modern kindle
#

decent is positive so this is delightful

unborn bay
#

for your example you can probably have in_pool loop through your current joker list and check if any of them have a legendary

zealous glen
chrome widget
#

for whatever reason setting pixel_size wasn't getting me what I wanted

zealous glen
#

both exist

#

display seems to have worked for me

ancient plinth
#

I am still kind of stuck on trying to make this joker, it's a combination of raised fist and strength, the highest scored card in your played hand ranks up

zealous glen
#

wide joker

chrome widget
#

Wide......

unborn bay
#

photograph for example uses a pixel_size of 71x80 to center it

#

same with wide joker

chrome widget
#

hmm and for whatever reason it appears to be drawing the sprites of this twice?

#

The Joker on the left is fine, but there's something weird with the Tarot, Voucher, and Booster

zealous glen
#

That doesn't look like it's an issue with the size of the sprite

chrome widget
#

I already fixed the sprite size issue

hot island
#

does balatro store more than 2 decimal places internally and just displays the first 2 or does it cut off at 2 decimal places after each step

tender ermine
#

What is this to_big thing doing everywhere and why doesn’t it work

chrome widget
#

Hmm yeah I'm not sure why it appears to be drawing all the children twice. Bizarre

zinc forum
#

Dumb question mayhaps but can sounds be in subfolders

#

Like, can I have assets/sounds/english/sound.ogg

zealous glen
chrome widget
#

Yeah

zealous glen
#

Children are drawn automatically

zealous glen
#

So if you draw them manually they're drawn twice

#

You need to tell SMODS to not draw specific keys

zinc forum
chrome widget
#

I know, which is why I set them to custom_draw because I need them drawn in a specific order. Tables with named keys aren't treated as ordered for the purpose of drawing

zinc forum
#

It crashed on my end which is why I was surprised

lethal stratus
#

Currently have a vanilla-ish legendary:
All 3s scored give X3 mult
what should i do instead, its a bit broken

zealous glen
chrome widget
#

This is what happens without the order

zinc forum
chrome widget
#

And no, the code for drawing children will pass on this if one of these is true

chrome widget
#

if you set a child to custom_draw = true, this code won't run

urban wasp
#

this code causes a stack overflow when the mythic joker attempts to spawn in (it even lags my entire computer)
it would be nice to know why

SMODS.Tag {
    key = "mythic_tag",
    atlas = "crp_tags",
    pos = { x = 7, y = 0 },
    min_ante = 5,
    config = { type = "store_joker_create" },
    apply = function(self, tag, context)
        if context.type == "store_joker_create" then
            local rares_in_posession = { 0 }
            for k, v in ipairs(G.jokers.cards) do
                if v.config.center.rarity == "crp_mythic" and not rares_in_posession[v.config.center.key] then
                    rares_in_posession[1] = rares_in_posession[1] + 1
                    rares_in_posession[v.config.center.key] = true
                end
            end
            local card
            if #G.P_JOKER_RARITY_POOLS.crp_mythic > rares_in_posession[1] then
                card = create_card("Joker", context.area, nil, "crp_mythic", nil, nil, nil, "cry_eta")
                create_shop_card_ui(card, "Joker", context.area)
                card.states.visible = false
                tag:yep("+", G.C.RARITY.crp_mythic, function()
                    card:start_materialize()
                    card.misprint_cost_fac = 2
                    card:set_cost()
                    return true
                end)
            else
                tag:nope()
            end
            tag.triggered = true
            return card
        end
    end,
}
zealous glen
chrome widget
#

I could, sure

ancient plinth
chrome widget
#

Gonna try to draw them all relative to the center

#

They all became small. Strange

agile dew
#

does anyone know where i can find the create_card syntax?

zealous glen
#

the wiki

agile dew
#

which part of the wiki?

zealous glen
#

utility

agile dew
#

oh shit i missed that

#

thanks!

ancient plinth
agile dew
#

it doesnt allow for playign cards?

chrome widget
#

Okay so I added a manual frame draw flag and it fixes it, implying that this draw function is definitely being called twice

#

I am...... confused, at the very least

agile dew
#

what does it do currently?

zealous glen
chrome widget
#

I'll enable it in the collection to see if it's something specific to do with the challenge screen

ancient plinth
agile dew
#

whoops

#

well, its not checking which cards are played

#

again i started coding little ago but it should check for the highest PLAYED card right?

ancient plinth
#

It's checking for the lowest scored card

agile dew
#

i got no idea

#

sorry

#

maybe someone more skilled can help

shut crater
chrome widget
#

Okay it's not specific to where it's drawn

ancient plinth
desert ore
#

Ok so just to clarify, you want the highest ranked card held in hand to give mult equal to rank and then raise its rank?

ancient plinth
shut crater
#

Wherever you're not sure code is getting run

#

Because either the function to rank up isn't getting run, or it's getting run but doesn't work

desert ore
#

So lowest scored played card gets a rank up and nothing else? Okok

shut crater
#

We can address that after though

ancient plinth
#

So what do I do?

shut crater
#

Start with print debugging

#

See if, in fact, the code is even being run

ancient plinth
#

Where does the print even show up in-game?

shut crater
#

If you have the DebugPlus mod it will show up in the game, otherwise it will show up in the lovely terminal that pops up when you start the game

#

Well it always shows up in the terminal

#

But it will also appear in game with DebugPlus

desert ore
#

I need to start using print debugging, probably would make figuring out stuff on my own faster

shut crater
#

It's a great strat

#

Has anyone tried using the vscode debugger?

#

I wonder if that works

#

That would be nice

woeful pivot
#

also the mod isnt showing up in the mods list

shut crater
woeful pivot
#

i havent made it

shut crater
#

You just make the json file (separate from your main.lua) and fill out the template from the wiki

woeful pivot
#

alr, is this formatted right { "id": "JoLanMod", "name": "JoLan Mod", "author": ["JoLan"], "description": "My mod, just playing around and figuring out code.", "prefix": "jln", "main_file": "main.lua", "badge_colour": "c7638f", "dependencies": [ "Steamodded (>=1.0.0~BETA-0416b)" ], "version": "1.0.1o-FULL" }

shut crater
#

Try it

#

Looks good from here

woeful pivot
#

its not working

shut crater
#

Hm

woeful pivot
#

I think it has to do w/ the dependency

#

or version

shut crater
#

Is your steamodded version older than that version?

woeful pivot
#

no its exactly that

shut crater
#

Maybe just use the default for now and see if it works

woeful pivot
#

doesnt work

#

is it an issue w/ the lua part, bc it immediatly starts w/ jokers

shut crater
#

I'm on mobile rn so I can't look at how I set my project up, sorry

#

But you have other mods installed and they show up?

#

Like your mods folder is usually detected properly?

woeful pivot
shut crater
#

It looks like you're missing the priority field

#

Not sure if that would prevent it from being detected

woeful pivot
shut crater
#

I would try matching the wiki exactly

{
    "id": "",
    "name": "",
    "display_name": "",
    "author": [""],
    "description": "",
    "prefix": "",
    "main_file": "",
    "priority": 0,
    "badge_colour": "",
    "badge_text_colour": "",
    "version": "",
    "dependencies": [],
}
woeful pivot
#

ok

#

whats the wiki page?

urban wasp
#

this code causes a stack overflow when the mythic joker attempts to spawn in (it even lags my entire computer)
it would be nice to know why

SMODS.Tag {
    key = "mythic_tag",
    atlas = "crp_tags",
    pos = { x = 7, y = 0 },
    min_ante = 5,
    config = { type = "store_joker_create" },
    apply = function(self, tag, context)
        if context.type == "store_joker_create" then
            local rares_in_posession = { 0 }
            for k, v in ipairs(G.jokers.cards) do
                if v.config.center.rarity == "crp_mythic" and not rares_in_posession[v.config.center.key] then
                    rares_in_posession[1] = rares_in_posession[1] + 1
                    rares_in_posession[v.config.center.key] = true
                end
            end
            local card
            if #G.P_JOKER_RARITY_POOLS.crp_mythic > rares_in_posession[1] then
                card = create_card("Joker", context.area, nil, "crp_mythic", nil, nil, nil, "cry_eta")
                create_shop_card_ui(card, "Joker", context.area)
                card.states.visible = false
                tag:yep("+", G.C.RARITY.crp_mythic, function()
                    card:start_materialize()
                    card.misprint_cost_fac = 2
                    card:set_cost()
                    return true
                end)
            else
                tag:nope()
            end
            tag.triggered = true
            return card
        end
    end,
}
woeful pivot
# shut crater I would try matching the wiki exactly ``` { "id": "", "name": "", "...
    "id": "JoLanMod",
    "name": "JoLan Mod",
    "display_name": "JoLan's Mod",
    "author": ["JoLan"],
    "description": "A mod where I tinker around and try to figure out what I'm doing.",
    "prefix": "jln",
    "main_file": "main.lua",
    "priority": 0,
    "badge_colour": "FFFFFF",
    "badge_text_colour": "000000",
    "version": "1.0.0",
    "dependencies": ["Steamodded (>=1.0.0~BETA-0416b)"]
}``` still not working
shut crater
shut crater
gilded narwhal
#

Hey gang how would I copy multiple jokers at the same time

red flower
gilded narwhal
#

Copy as in blueprint

shut crater
gilded narwhal
#

This (also should this be rare or uncommon)

woeful pivot
#

still not working

shut crater
shut crater
#

Here's mine

woeful pivot
#

im a magician (i changed absolutely nothing)

shut crater
#

Was it the file name

willow plinth
woeful pivot
willow plinth
#

oh lol

shut crater
#

That's crazy

woeful pivot
#

its just so peak

shut crater
woeful pivot
shut crater
#

I would suggest opening the mods folder in vscode and searching for blueprint

shut crater
zealous glen
#

then return it

ancient plinth
shut crater
#

You use self.ability instead of card.ability

#

It should always be card.ability in the calculate function

ancient plinth
#

Now nothing happens when I score it again

shut crater
#

You don't need line 112 at all

#

That's a vanilla way of checking which ability to use

ancient plinth
woeful pivot
#

if i want to make another joker, do i just attach it after the code ive already done?

ancient plinth
shut crater
ancient plinth
woeful pivot
shut crater
#

How much coding experience do you have? Like not just Lua but in general

shut crater
shut crater
# ancient plinth me?

Yeah, it seems like you're getting hung up on the basics of Lua, which is gonna make things extremely difficult for you

ancient plinth
#

I only started Lua 2 days ago

woeful pivot
shut crater
unborn bay
#

i would say consult the lua manual but the lua manual kinda poopoo

ancient plinth
shut crater
shut crater
agile dew
#

anyone knows how to put in a custom sound? it pops up with this

placid star
#

how can you find the chip value of any given card?

woeful pivot
unborn bay
#

0,0 would refer to the topmost leftmosr joker in an atlas

#

also yes it's just normal coordinates

#

think of each number in coordinates as being multiplied by the pixel size you set for the atlas

#

then the game uses that as the offset for rendering

ancient plinth
woeful pivot
unborn bay
#

in pixels yeah

#

a standard joker is 71x95

#

all cards in balala are 71x95 actually, though some cards like consumables and vouchers simply don't use some of the extra space

shut crater
zealous glen
woeful pivot
zealous glen
#

Although you might not need to merge them

#

But you need to handle multiple outputs

#

Maybe you'll want to make use of an extra subtable

woeful pivot
zealous glen
#

no

shut crater
#

The examples are limited but a great starting point

zealous glen
shut crater
#

But it says the opening curly brace is on line 84

shut crater
zealous glen
shut crater
#

Yeah you should

#

Lmk if you can't

zealous glen
shut crater
#

You need two players

#

Wasd and arrows

zealous glen
#

how do I connect a second player

shut crater
#

Or controllers

#

Player 2 select is right ctrl

gusty iron
#
key = "boss_rush",
    loc_txt = {
        name = "Fusion Fiasco",
        text = {"Combine the abilities of three random boss blinds."}
    },
    atlas = "Blinds",
    pos = {y = 0 },
frames = 1,

what am i doing wrong here??

zealous glen
daring fern
gusty iron
#

oh

shut crater
zealous glen
#

I guess I won't play then 🤔

shut crater
#

Sorry :')

#

It is unfinished

#

I plan to grind it out this summer

gusty iron
shut crater
ancient plinth
gusty iron
shut crater
#

Interesting, I'm unfamiliar with animations

ancient plinth
#

What is wrong?

shut crater
#

I'm like 98% sure it's something to do with the ends not matching up. Every if, for, and function should have its own end. Any extra ends will make Lua freak out

tall wharf
gusty iron
tall wharf
#

maybe put both x and y in the pos

gusty iron
#

i tried that already

ancient plinth
#

however, it now says nil 5 times when I score a hand

shut crater
#

Can you send a new screenshot of your calculate function with the print statements you added?

gilded narwhal
#

guys why does this not trigger on jokers that don't use joker_main

ancient plinth
tall wharf
gusty iron
#

YIPPIE

tall wharf
#

why is it 64x64

gusty iron
#

thats the 1x size

#

the 2x size is 128x128

tall wharf
#

???

gusty iron
#

these

#

i just set it to the 1x size but i think it works??

tall wharf
#

but why is the 1x 64x64

shut crater
# ancient plinth

K so your loop is running, that's good. Inside that loop you need that code from before where it finds the lowest card and stores it in raised_card

gusty iron
tall wharf
#

per subimage

#

what wiki page 😭😭😭

gusty iron
#

okay yeah i see the issue now 😭

#

time to RESCALE!!!

#

rescaled :)

tall wharf
#

?

gilded narwhal
#

like does SMODS.blueprint_effect only use joker_main????

gusty iron
shut crater
gusty iron
#

WHY DOES IT LOOK LIKE THAT 😭

#

how big are blinds supposed to be in size?? 😭

tall wharf
#

34x34 with 1px margin on all sides so 32x32

gusty iron
#

okay peak

#

ty

tall wharf
#

i believe this margin is important

gusty iron
#

also your mod is very funni i played it :)

gilded narwhal
#

Like it's ONLY on jokers that use joker_main for some reason

#

It works just fine on those

#

But it does nothing for stuff like photograph or dna

tall apex
#

bleehhhhh hii :3

gusty iron
#

yoyo!!!

gilded narwhal
#

This doesn't work either even tho i literally just copied the code from blueprint

#

Same problem too

unborn bay
#

note that the pseudorandom calculation here will always take effect for every calculate context

#

could be a coincidence that they don't work because of that

gilded narwhal
#

How would I go about fixing that then?

unborn bay
#

that's the problem i don't think you can lmao

shut crater
#

calculate whether to trigger or not in context.before and then store it and use that stored value for the rest of the contexts

unborn bay
#

you can do that yeah

shut crater
#

perform the random roll only once

#

right now for testing I would set odds to 1

gilded narwhal
#

Actually hold on lemme just remove the pseudorandom in there and see if it works properly without it just to make sure that's the issue

shut crater
#

and just verify that you can get it to copy an ability period

#

ye

tall apex
#

I had an idea for my mod, I decided that I want to absolutely scare the player shitless so I’m going to make a blind blind where you cannot see the required score and it can be anywhere between x0.5 to x1.5

shut crater
#

better yet, the player must score a hand within a specific hidden range and all they get is an ominous "too high" or "too low"

tall apex
#

REAL

#

Screw it, boss blind that puts you in the back rooms

#

IT IS TIME TO GO

shut crater
#

point and click backrooms in my balatro

tall apex
#

Real, find jimbos 7 pages or whatever

tall wharf
#

i already have a game mode where you have to score within ±2%

shut crater
#

whoa

#

so basically that but you don't get to know the number

unborn bay
#

you should play aikoyori's shenanigans

tall apex
unborn bay
#

it has math in it

#

and letters

#

but no chess

tall apex
shut crater
#

math is real, I'm a cs teacher 😔

tall apex
#

Me when numbers I have to comprehend instead of going ‘haha big number get bigger’

unborn bay
#

ok now that i think about it how would a chess deck actually work

#

how would you select which pieces to move

tall apex
unborn bay
#

and where to move them

shut crater
#

you got piece cards and move cards

#

next question

tall apex
#

Also with the mouse :3

shut crater
tall apex
ancient plinth
shut crater
#

yep

tall wharf
tall apex
#

I can’t wait for college to be over so I can work on my SM64 joker

shut crater
#

Soon™️

#

what it do

tall apex
tall apex
# shut crater what it do

Oh it’s gonna be a nightmare to code it actually just makes the background run sm64 through an emulator core and you get mult equal to how many stars you have on the save

#

Among other milestones with unique abilities like vanish cap, metal cap, etc

tall apex
#

I hate having free time

brisk rose
gilded narwhal
#

This is how it decides what joker to copy

tall apex
tall apex
#

Throws Mario at you

brisk rose
#

SM64 is bold too because oh how inefficient N64 emulation still is

tall apex
#

Real (I’m delusional and like the plumber wahoo individual)

#

He go boing!!!

shut crater
#

didn't someone already mod doom into the collection tab

tall apex
#

Wait did they? That’s so funny oml

shut crater
tall apex
#

-# but can it run doom

desert ore
#

is there any more elegant and vanilla-y way to phrase/format this?

#

really wish there was a quartered/halved equivalent for 5

tall apex
#

Wait maybe? Am I stupid

gilded narwhal
brisk rose
#

Is that what it does?

ancient plinth
#

Although it says test less in the debugger now

desert ore
tall apex
shut crater
# gilded narwhal Yeah

you need to store other_joker in ability.extra if you plan to access it across multiple contexts

halcyon elm
#

how difficult is it to make a mod that just changes how the card look?

brisk rose
tall apex
#

Oh is base a different thing?

brisk rose
tall apex
brisk rose
gilded narwhal
tall apex
ancient plinth
shut crater
#

Raised Fist Strength Joker

brisk rose
#

Ah yes... threads in text channels, delicious (I think I'm gonna throw up)

#

:p

#

I'm just making fun of discord, not y'all

desert ore
shut crater
desert ore
#

might have it be /4 instead just so I can have it say tripled and quartered respectively

brisk rose
hearty sun
desert ore
#

flint is "Base Chips and Mult halved" tho isn't it

brisk rose
hearty sun
#

Then Base Mult multiplied by 3. Base Chips divided by 5

desert ore
hearty sun
#

You could also have a At the very beginning of scoring
It may be less correct, but more understandable

desert ore
#

honestly wording the jokers is the most annoying part of creating jokers istg

tender ermine
#

I’m having an issue when creating consumables with a joker and putting it into my consumables area, I keep getting the error ‘’’ functions/common_events.lua:2312: attempt to index local ‘center’ (a nil value)’’’

desert ore
#

can we see your code

tender ermine
#

Sorry for bad image quality, it’s on my school provided computer

daring fern
tender ermine
#

Oooooh, that’s why! Thank you!

daring fern
tender ermine
#

Wait I am still getting the same error

#

I swapped the spaces for underscores (in both the consumable script and the script I sent) and swapped cardarea to main_eval

daring fern
tender ermine
#

Testing it rn

#

Alr the error stoped, thank you!

gilded narwhal
#

in reality it took literally just deleting one line

gaunt phoenix
#

My enhancement is making the game crashes when it score. So I guess the problem is coming from my calculate fonction but ehm.. Can't find the problem :c could someone help me please ?

edit : the idea of my enhancement is to scale flat mult based on how many void card there is in full deck (kinda like steel joker)

hearty sun
#

I'm making a planet card for a Blackjack hand (3 or more numbered cards summing to 21) and I'm not sure if this is readable (the hand graphic at the bottom)

#

Didn't think the image would be this small...

tender ermine
#

Sorry if I am being annoying but what do I do if my consumable is invisible in the collection and gameplay

gaunt phoenix
#

(and no you're not annoying, this channel is here for that !)

tender ermine
#

I can hover over it in the collection menu and it will show the description. It also shows particles there

daring fern
tender ermine
#

2nd one

hearty sun
gaunt phoenix
shut crater
daring fern
hearty sun
gaunt phoenix
#

instead of X Y Z ?

gaunt phoenix
#

thanks

manic rune
#

how do i use detailed_tooltip for ui

#

im PRETTY sure i asked this in here before, but i couldn't get it working

tender ermine
#

There is both the file open in ms paint and the code for the consumable

gaunt phoenix
rustic swallow
#

does anyone know why ability is nil here

desert ore
sturdy compass
rustic swallow
limber blaze
#

card is more accurate anyway since it represents an actual card instance

#

center is usually used to refer to the general definition that all instances take on as a base

#

which is what self is here

rustic swallow
#

thank you for letting me know

hearty sun
desert ore
#

Hmm I see

gaunt phoenix
heady siren
#

Has anybody else had issues with changing the chip / mult scoring background colors and completely breaking the effect alongside Plasma Deck?

#

Whenever I ease the scoring background colors it breaks the Plasma Deck coloring and then it doesn't change color again until the game is restarted

desert ore
#

5+5+5+4? having it be 3 would be nice for clarity hmm

#

also would be nice if there was a way to indicate numbered cards, assuming that means no faces or aces

lethal stratus
#

need help making this work

daring fern
lethal stratus
#

how do i hook it 😭

sturdy compass
lethal stratus
#

?

#

its a reroll cost changer what does add/remove do

sturdy compass
#

Just different functions

tender ermine
#

First image is the issue, second is my code on the consumable end, 3rd is atlas code(second one down), fourth is the atlas image open in ms paint. Plz help

sturdy compass
junior lily
#

would this be too dark for a card border

tall wharf
#

do you make the the in mspaint

junior lily
#

(card edge)

tender ermine
#

All of em

lethal stratus
hearty sun
sturdy compass
#

Take a look at how the reroll vouchers do it

daring fern
tender ermine
thorn flame
#

its x5 and 1/2

gaunt phoenix
#

still on the same code, no crash now, but I guess my function don't detect my Void Card (custom enhancement), what's the typical syntax to check if a card is from a certain enhancement ?

hearty sun
#

Here are 2 suggestions
And honestly, I really like the 021, it's really clear!
Thanks!

daring fern
gaunt phoenix
desert ore
gaunt phoenix
tall wharf
#

people be adding any celestial objects as planet cards now

gaunt phoenix
paper zealot
hearty sun
daring fern
gaunt phoenix
#

is there a sun card in vanilla game ? 🤔

tall wharf
gaunt phoenix
heady siren
lethal stratus
#

feel like im missing a lot of somethings

hearty sun
heady siren
sturdy compass
#

Take a look at the documentation for it on the Joker page

heady siren
#

You return values, you don't set values, so you don't return those, you just put them into the function

tall wharf
#

here's a simpler card

heady siren
#

Also, you don't call a context within add_to_deck, that would be in calculate

lethal stratus
#

but calculate doesnt work because this is a constant

heady siren
#

There's a lot of problems here

desert ore
#

if you're happy with this then fair fair, maybe put 2 aces on it? smth like ace ace 9. I'll be honest tho this isn't hugely important, I hadn't even comprehended that those small cards were on planets lmfao

heady siren
lethal stratus
#

lua is fine, but steamodded is genuinely unreadable for me

#

the reroll cost is... always 7 dollars

#

until the joker is sold

tall wharf
#

admittedly they do get a bit crazy

heady siren
#

Okay, so you'd do that in update, not add_to_deck

#

Also the joker_main context only triggers when you're actively in a round after playing cards

lethal stratus
#

full disclosure, i have borderline no idea how steamodded works and am learning through this because the documentation is confusing

heady siren
#

It's the specific event where jokers like, give mult or chips

tall wharf
#

i need to add rhythm game to balatro

heady siren
#

Long story short, wrong function, it should be update, wrong context, it shouldn't have one, and wrong execution, it shouldn't be in a return

sturdy compass
#

Why update tho?

daring fern
# lethal stratus until the joker is sold

Try putting this somewhere in your code but outside of all things:

local oldcalculatererollcost = calculate_reroll_cost
function calculate_reroll_cost(skip_increment)
    if #SMODS.find_card('j_modprefix_key') > 0 then
        G.GAME.current_round.reroll_cost = 7
        return
    end
    return oldcalculate_reroll_cost(skip_increment)
end
heady siren
#

That would also work well

sturdy compass
#

Oh I see now

#

Ok

tall wharf
#

astra

lethal stratus
#

would i call this to make it 7 or something

tall wharf
#

how do i add stepmania to balatro

sturdy compass
#

aiko.

tender ermine
daring fern
lethal stratus
#

replace the prefix key with the joker name?

unborn bay
daring fern
unborn bay
#

we should add taiko to balatro

heady siren
lethal stratus
#

like that?

sturdy compass
#

Show the whole code really quick

#

Just making sure you put it in the right spot

lethal stratus
#

its literally just

#

its outside everything

sturdy compass
#

Ok good

lethal stratus
sturdy compass
#

Oh please use a metadata json instead of a header

heady siren
#

I think the ----MOD CODE------ at the top concerned them

heady siren
sturdy compass
#

You too You

sturdy compass
#

It's outdated and is likely to get phased out at some point. It's also just faster with json

lethal stratus
#

well i need like a template or something

daring fern
sturdy compass
#

I just copied it

#

You're too fast

heady siren
#

Got that shit on LOCK

gilded narwhal
#

guys why does this not print a message

sturdy compass
#

card.ability.extra.activated is always getting set too late and causing the return to not go off at the right time

gilded narwhal
#

Is it like a context.after thing?

sturdy compass
#

No, it's because everything is being done in that event manager

heady siren
#

So it's checking for the variable before it's set

gilded narwhal
#

I see

heady siren
#

I'd take everything out of the function except stuff inside the if played_card.set_ability then condition, so that everything is still timed properly

heady siren
#

Also, does card:is_suit() check for cards marked as no_suit and card:get_id() for no_rank for modded enhanced cards?

desert ore
#

ok uhh not sure where to place this since It might be a mod issue, I was just doing some playtesting, and for some reason I think every card to the right of blueprint is counted as a blueprint copy? midas mask wasn't working, castle wasn't working until I move it to the left of blueprint

desert ore
#

I have not messed with any blueprint code at all so idk what would cause this?

desert ore
#

oh thanks

#

yeah that makes sense

hearty sun
#

Does anyone know if there is a way to tell my LSP about the Smods types?
Could really help to have autocomplete + typings

lethal stratus
#

display doesn't work, can't figure out why because the functionality is working

heady siren
#

xmult not Xmult

tall wharf
lethal stratus
#

it works

tall wharf
#

but like

#

the ability

lethal stratus
#

that wont fix the joker not updating

heady siren
#

The loc_vars doesn't actually modify anything

#

It's just the display

tall wharf
#

wdym not updating

lethal stratus
#

the display is frozen at X1

tall wharf
#

ohhhh

#

you have to change the first X1 to X#1#

lethal stratus
#

the first X1 is unchanging

heady siren
#

And it won't gain any xmult unless you add to the card.ability.extra.Xmult variable

tall wharf
#

and the currently to #2#

paper zealot
lethal stratus
#

why?
thats a constant

#

i feel like making variables for constants is weird

tall wharf
#

it can change...

lethal stratus
#

the amount... the joker... gains?

tall wharf
#

i mean

#

not in normal situation

lethal stratus
#

ok fine oil lamp

tall wharf
#

Cryptid has a misprint deck what changes shit

heady siren
#

I'm going to point specifically to what the problem is

lethal stratus
tall wharf
#

then it will just stay like that

#

which pretty sure isn't what you wanted

heady siren
#

Xmult is set to 1, your joker is fetching the first value in the loc_vars table, and Xmult never changes

tall wharf
#

the array index starts at 1 in lua btw

lethal stratus
#

xmult changes here???

heady siren
#

That's a return table

paper zealot
# hearty sun Okay, thanks!

If you don't want it to trawl through all the SMODS code, you can just specifically include the lsp_def folder, but having it all accessible in the same workspace is nicer imo

heady siren
#

That's giving you xmult, not setting it

lethal stratus
#

am i insane

#

does this not work how other languages do

tall wharf
#

you said the functionality works

#

the display doesn't work

heady siren
#

The return table is purely for giving you chips, mult, xmult, money, and showing messages / playing sound,s it is not for setting values, it literally will not set the value

tall wharf
#

try changing the currently part to have #2#

#

and just try

#

please

lethal stratus
#

aiko that literally

#

wont

#

change

#

anythijgnhj

heady siren
#

STAR

#

I will hop into a call with you to explain to you exactly what your problem is

#

Because you're not listening

lethal stratus
#

i literally had it like that before

#

😭

heady siren
lethal stratus
#

BECAUSE THERE'S ONLY ONE VARIABLE

#

YOU

heady siren
#

That would fix the problem on a surface level

lethal stratus
#

AWJKBDJAKSDAKJWDBAW

heady siren
#

But it wouldn't teach Star how to actually use it

tall wharf
#

loc vars has 2 variables

unborn bay
#

the hardest part about teaching someone how to code is teaching someone how to code

tall wharf
#

loc vars returns a table of 2 variables

lethal stratus
#

ive been coding for like 12 years

heady siren
#

Can everybody please be quiet so I can explain the problem?

#

Okay

lethal stratus
#

made xmult two and swapped cases

#

still no change

heady siren
#

Your card.ability.extra.xmult variable is set to 1, and you're not setting card.ability.extra.xmult, the return table is for actually applying stats, not for setting variables, so you're not setting the card.ability.extra.xmult to #G.jokers.cards, you're giving the xmult stat equal to #G.jokers.cards, that's what the return table does, and #1# didn't work because the card.ability.extra.xmult variable isn't being set, so it just remains at 1

#

If you wanted to fix it, you would put card.ability.extra.xmult = #G.jokers.cards into the context.joker_main condition, and then put xmult = card.ability.extra.xmult into your return table, and then your #1# variable will actually reflect your xmult variable

#

If you want it to be scaling, it would be card.ability.extra.xmult = card.ability.extra.xmult + #G.jokers.cards

tall wharf
#

personally i don't think this make that much sense but i could be sleep deprived

chrome widget
#

What's the most effective way to search for only modded booster packs, without an SMODS.Boosters table?

lethal stratus
#

i hyperfixated on the mustard stain

#

my bad

tall wharf
chrome widget
#

there isn't an SMODS.Boosters table, as far as I can see

tall wharf
#

ah

heady siren
#

Then the wording would be This joker gives X1 Mult not This joker gains X1 Mult

desert ore
#

so abstract joker but Xmult?

tall wharf
#

I'm definitely sleep deprived

heady siren
#

Gains implies scaling

lethal stratus
chrome widget
#

It wouldn't be difficult to add one to SMODS, and put a PR for it, since it just means adding another pool declaration to the SMODS.Booster object

#

But I don't wanna do that

heady siren
# lethal stratus

Also you have a space on both sides of {} so there'd be two space between "X1" and "Mult"

lethal stratus
#

recent oopsie, fixed

tall wharf
heady siren
#

You replaced xmult with mult in your config

lethal stratus
#

i didnt notice i did

#

people accidentally delete stuff all the time mr ? emote

paper zealot
tall wharf
#

😭

lethal stratus
#

proof that it actually broke

#

lmao

heady siren
lethal stratus
#

i did :)

heady siren
#

Did you remove it from the start or the end?

lethal stratus
#

end

heady siren
#

Remove it from the start

tall wharf
lethal stratus
#

well this is in the collection

gusty iron
tall wharf
#

finally got my new glasses on

lethal stratus
#

which is why that last part in loc variables exists at all

gusty iron
#

but its not saturday....

heady siren
#

You're not referencing #2# anywhere so it won't appear regardless

lethal stratus
tall wharf
#

i mean yeah

#

have you gone in the game yet

lethal stratus
#

a couple times

gusty iron
lethal stratus
#

play it :)

gusty iron
#

i havent bothered to try it though

lethal stratus
#

is free

gusty iron
#

maybe!!

#

I had the like

#

most stupidest idea for a joker

lethal stratus
#

how do i make it display 0 in the collection

#

that was the point of that second half so id rather do that then nothing

#

does the second half work by itself?

heady siren
#

No, because you don't reference #2#

tall wharf
lethal stratus
#

(if i delete the first half i mean)

hasty mist
#

i'm trying to make it so that instead of a single lua file, everything is split into multiple files, do the files have to be specific names or something? because they don't load ingame at all here

tall wharf
#

also you did 1 + to the loc vars

#

so it defaults to 1

#

because after + are 0 if you're not in game

daring fern
lethal stratus
#

sorry for the brain aneurysm

hasty mist
#

i see

lethal stratus
#

now whats going on here

tall wharf
#

is it just me or I've been seeing a lot of trans people in here lately not that it's bad just something i noticed again

lethal stratus
#

hi

#

idk

#

probably not

gusty iron
woeful pivot
hasty mist
#

i love trans people

gusty iron
#

I HAVE TO

tall wharf
#

I'm adding rhythm game to balatro

#

I'm adding rhythm game to balatro

gusty iron
lethal stratus
#

PLAY VIVID STASIS

#

:(

lethal stratus
tall wharf
heady siren
#

(I'm not biased)

tall wharf
gusty iron
tall wharf
#

i think you multiplied the thing by itself

lethal stratus
hasty mist
tall wharf
daring fern
hearty sun
gusty iron
lethal stratus
#

in my coding class, i met 9 trans people out of the 14 students

unborn bay
#

i am non binary and reaching the trans pipeline is this a sign

lethal stratus
#

and 2 of the non-trans students were gay lmao

hasty mist
#

i only started coding about 3 weeks ago

#

but ive been trans over a year

gusty iron
#

vro my keyboard is so old 😭

lethal stratus
#

i think its really embarassing that ive been coding for like 12 years and im still just as bad at writing my own damn code

gusty iron
#

my left shift key just like

#

hits everything on the bottom row if i hold it for too long

heady siren
lethal stratus
#

i just started coding balatro a couple months ago, took a break because fuck lua, and im back ig