#⚙・modding-general

1 messages · Page 32 of 1

fallow bramble
#

There's one for the first_hand_drawn, but I don't see something similar to what you want

#

Maybe try using sendDebugMessage to a random joker and see what context triggers when a hand is drawn

dusky reef
#

i was able to sort of mimic it, but that's like 3 parts of repetitive codes

grand geode
#

i don't recall a context for hand drawn

dusky reef
#

im fine with not being able to make it more concise, just curious

fallow bramble
wanton rapids
#

custom challenge

#

might buff up ante scaling a bit as well

cunning silo
#

@lean dune you are amazing (i just saw the new loc def stuff)

lean dune
#

ty xD

cunning silo
#

it's a life saver

wanton rapids
lean dune
#

make it showdown bosses only

grand geode
rare shell
rare shell
wanton rapids
#

hm

#

the main issue is in a normal game you can get perkeo + soul quite easily with this

#

so it has to destroy itself when you defeat a boss blind

#

but then this challenge cannot exist

lean dune
#

it could lose its benefit bit keep the X2 base blind size drawback

cunning silo
#

I wish there was a voice channel on this server

#

wanted to do some modding streams

fallow bramble
ancient dragon
#

Ayo! I'm trying to port the sprites to Italian and I was wondering if the font for the BANK / BANQUE is custom or known?

wanton rapids
#

i'd assume it'd be custom

rare shell
#

I think it was just made up on the spot

ancient dragon
#

Yeah that's what I thought, I'll try to replicate the style then!

#

Thanks a bunch! 🤗

viral peak
#

is there a mod that adds +1 selectable card in hand or smth like that? so you could play or discard 6 cards at once (would also require adding more hand types but would be neat I guess)

viral peak
#

oh nice thank you

wanton rapids
#

redid golden carrot to be more in line with the other food jokers

#

(..and i made the text white)

stone brook
#

does anyone have experience with the save manager? i wanna know where i can save a numerical value and it would save properly

#

wait actually i think i can just throw it into G.GAME

#

lemme try that

fallow bramble
wanton rapids
#

oh?

#

oh wait yeah

#

ok. latest version

stone brook
#

minceraft

cunning silo
#

a minecraft mod would be really fun

grand geode
#

oo how did you make that gradient effect

rare shell
#

cobblestone jimbo

wanton rapids
#

gimp gradient tool

#

it's not sampled, every time i tried it looked bad

grand geode
#

can i see the layers

rare shell
#

black and white pattern, magic wand white part, put gradient, magic wand black part, put reverse gradient

wanton rapids
#

i used layer masks

#

but that would work?

rare shell
#

same principle as a layer mask

rare shell
#

ok so

#

pattern

#

colors are arbitrary, im just using them to select with magic wand

#

select all the red pixels

#

copy and paste them on their own layer

#

while still selected, draw a gradient with them selected (you might need to uncheck continous)

#

then do the same thing, but with the blue pixels instead

grand geode
#

icic

#

thank you!!

wanton rapids
#

it's a cool effect for not much effort

rare shell
#

subscribe to xXLymanSprytezzXz for more pixel art tips 👍

#

you don't really need layers for that tho

#

optimize!

#

i am a 1 layer andy

wanton rapids
#

it gets rendered out to a png anyways

rare shell
#

but yes, you can also do it a dozen of different ways, having two gradient layers and then deleting the parts that arent on the pattern for 1 layer, and then the inverse for the one that is

#

end process is the same

wanton rapids
#

just keep the bottom layer untouched

#

the top layer covers it up

grand geode
#

which happens far more often than you'd think

rare shell
#

actually true

#

you gotta get on that 1 layer grindset

#

despair as you mess up one part of the process 5 hours ago but you merged your layers already

grand geode
#

might as well pixel art on mspaint at that point...

rare shell
#

If I ever do more than 1 layer I do it only for this

wanton rapids
#

fair enough

rare shell
#

nah i have a jimbo template i made for myself thats all nice and layered up

#

very handy

grand geode
#

gib

rare shell
#

like look at this

#

gorgeous gradients

rare shell
#

cool tip: hold shift while gradienting your gradient!

stone brook
#

oh gog ..... so much thinking .... no coding ...

rare shell
iron onyx
#

oh thank god, i figured out my own way to fake loc_vars

cunning silo
rare shell
#

im pickacard

#

🥒

dawn salmon
#

Hey! So I intend to make a custom joker, I found the JokerAPI example, I haven't messed around with lua since playing GMOD around 2014, are there any good resources for modding Balatro? Like a list of variables that I can use or such.

Editing the example seems doable without help, but I don't know Lua that well to do any additional code.

sleek granite
#

you can look at the game's source with 7zip or look at other extant mods, no formal docs as of yet

dawn salmon
#

Alright thanks @sleek granite!

dawn salmon
#

Okay so another quick question. I really care about my personal save file, I do not want to disable any achievements or anything, is it fine to use a pirated copy of the same version (I've paid for the games two times already) and inject Steamodded on that one? It shares the save files but how do you guys go about it?

alpine cosmos
#

oh there's a mod that undisables achievements

#

if thats what you want

rare shell
#

That and you can just use a different profile

rare shell
#

If anything goes wrong you just validate your files

grand geode
#

lol lmao

alpine cosmos
grand geode
#

my vanilla has only MoreSpeed and AchievementsEnabler, modded is the one i use to work on mods, balamod is self explanatory

alpine cosmos
#

anyways semi related um
ive been having issues with this one joker im coding and im not really sure whats going wrong

#

this is the code

#

and this is the crash

wanton rapids
#

two into one?

alpine cosmos
#

two into one!

#

the idea is just like
if pair is played, then the cards give mult equal to their rank

wanton rapids
#

hand contains a pair or pair is played

alpine cosmos
#

pair specifically was what i was going for

grand geode
#

context.individual doesn't pass through context.poker_hands

alpine cosmos
#

ah

grand geode
#

wait

#

no

#

two of them pass through poker_hands

alpine cosmos
#

oh hey spam bot

grand geode
#

<@&1133519078540185692>

dawn salmon
alpine cosmos
grand geode
river anchor
alpine cosmos
#

ahhhh i see

sleek granite
#

you could also avoid a crash here by checking if context.individual and context.poker_hands and next(context.poker_hands['Pair']) then

grand geode
#

that would also trigger with context.area being G.hand

sleek granite
#

oh what

grand geode
#

i think

alpine cosmos
#

well,,

sleek granite
#

i just find checking if the thing exists before checking its contents is good practice bulbaSip

grand geode
#

nod

alpine cosmos
#

hm

#

darn internet

alpine cosmos
sleek granite
#

if you look in the box and there is no box, the universe explodes

alpine cosmos
#

though

alpine cosmos
alpine cosmos
#

aa

fallow bramble
#

Wtf can tags overwrite edition added by G.E.MANAGER:add_event?? Had a holo voucher on and when the card got created it go the holo

sleek granite
#

oh what

alpine cosmos
#

i sent that like

#

5 minutes ago

wanton rapids
#

rip

alpine cosmos
#

darn lag

grand geode
#

what is the effect you're going for anyway

alpine cosmos
#

oh um

wanton rapids
#

oh it should be context.cardarea instead of context.area

alpine cosmos
#

if hand is a pair, then cards played also give mult equal to their rank

#

Oh

#

radical

#

it works!!

#

thanks!!

wanton rapids
#

np

cunning silo
#

A little tease of my next mod

sleek granite
#

oh good we can put MORE random things on our carsd

alpine cosmos
wanton rapids
#

oh goodness

stone brook
#

cant wait to have 18 different modifiers

vestal crag
alpine cosmos
#

though question

#

do they draw in order

#

and

cunning silo
#

no

alpine cosmos
#

can you tell the bookmarked cards from each other if they're flipped

#

wait that last one sounds dumb

alpine cosmos
#

nevermind

#

disregard

#

okay fair enough

cunning silo
#

I love this

vestal crag
cunning silo
#

yup

stone brook
#

does this overwrite steel/lucky/etc

cunning silo
#

it's an enhancement

vestal crag
#

Ah, crap.

stone brook
#

ok ye

vestal crag
#

Fair, though.

#

Sounds like an excellent midgame tool.

grand geode
#

would The Stone debuff it i wonder

vestal crag
#

Not great in endless.

cunning silo
#

I also have a Mirror card, but it would take me some time to make that work

vestal crag
#

By the time you're a few antes into endless, you should have good enough deck manipulation to not need this.

vestal crag
cunning silo
vestal crag
#

Huh.

cunning silo
#

but by default, it has no suit or rank

vestal crag
#

I know there's a mod that does that and calls it a blank card.

alpine cosmos
# cunning silo

my only suggestion tbh is that it might be nice to have green bookmarks instead of yellow but this looks pretty good either way!

grand geode
#

that sounds pretty situational tbh

vestal crag
#

Mirror is good.

vestal crag
#

Mirror is another card for outside of endless.

wanton rapids
#

can this api also be used to add deck backs?

alpine cosmos
#

how do shops work in balatro
or like more specifically how does the showman joker enable cards to show up multiple times

iron onyx
#

@alpine cosmos it is included with the bit of code that normally prevents that from happening, and negates that prevention.

alpine cosmos
#

ahhh

#

i see

#

hm

iron onyx
#

and as i go pass out: let's see who can guess what this code is supposed to do, and if anyone can find errors i can't see right now, before i test it at some point tomorrow.

grand geode
#

straights loop around

alpine cosmos
alpine cosmos
#

rad

stone brook
alpine cosmos
#

alright ill look into that later

#

thanks for telling me!

thick canyon
#

I would like to propose the creation of collectible items for the game. I will elaborate on this concept further.

#

also im trying out samsung AI to make me sound all posh

wanton rapids
#

now the poshness loses all effect

#

congratulation

thick canyon
#

edited: I am currently experimenting with Samsung AI to enhance my professional communication style.

wanton rapids
#

you are winner

magic sandal
#

How hard would it be for someone to make a mod for me to test runs by allowing me to add an amount of money I want?

thick canyon
#

That is a positive development.

magic sandal
#

Rather than using cheat engine

wanton rapids
#

you can also just spawn in jokers you want

magic sandal
#

Debug only gives 10 per click

wanton rapids
#

you can also spawn arbitrary jokers by pressing 3 on them in the collection

magic sandal
#

Yeah but for a test I want to add like alot of money

#

Like over 100k

#

So that won't be enough

fallow bramble
#

Make a custom challenge that makes you start with 100000 money, or a custom joker that sells for a lot.

sleek granite
gleaming talon
#

Damn the description

wanton rapids
#

it's true

gleaming talon
#

I'm not saying it's not true

#

it's just brutal

#

like life

magic sandal
#

i can just remove the description lmao

sleek granite
#

it was intended comedically anyway lol

magic sandal
#

i know

dusky reef
#

oh btw it seems like we can customize our mod's name now

magic sandal
#

i think i also recognize that line from somewhere

sleek granite
#

yeah its a Popular Tweet

dusky reef
#

anybody has an example of how to change the style of that?

magic sandal
#

btw is it just 100k or 100k per click?

sleek granite
#

its 100000 right at the start of the run

magic sandal
#

i mean i can just change the value so it doesnt really matter

sleek granite
#

yeah

hardy brook
#

Stupid math question

#

If I have an ability that says 1/4 cards get flipped face down on the deck and then get the wheel

#

Does that mean 1 in 11, 1 in 28, or something weird like 4/7?

wanton rapids
#

depends on the way it's implemented

sleek granite
#

it means 1/7 because we all know 1/4 doesn't work

hardy brook
#

How does it work in the challenge deck

#

because i straight up turned the modifier from the challenge deck into a config

#

(btw, may make a resource that turns all the modifiers into configs, not 100% sure yet)

alpine cosmos
wanton rapids
#

it'd be something like 1 - (6/7 * 3/4) + 1/28

alpine cosmos
#

13/28 cards?

wanton rapids
#

so about a 39.28% chance to be face down

hardy brook
#

Ah okay

gleaming talon
#

all black holes

grand geode
#

celestial packs if they were good

lean dune
#

second, the way get_straight works is that it returns the cards that make the straight, and not just a boolean value

gleaming talon
#

Even works with tags

lean dune
#

third, you're breaking all compatibility with the playing card api I carefully constructed

#

fourth, 🏳️‍🌈

gleaming talon
sleek granite
#

🏳️‍🌈

lean dune
#

that given the game does these checks independently, which I have not checked

wanton rapids
#

yeah that's right

hardy brook
#

🤓

#

jk jk

#

So tldr, just over 1/3 cards get flipped

#

got it

lean dune
rare shell
#

how do I add my own card here, or maybe even better, just some non-card sprite?
(probably a sixsuits specific question)

waxen spindle
#

i wanna attempt to mod this game as part of an APCSA final

#

should i even bother

lean dune
hardy brook
#

Is there a way for me to add a new line in mod description?

#

I don't think doing \n or whatever normally would work, but thought I'd ask

grand geode
#

i would say \n but that definitely does not work

lean dune
#

you need to give it a rank prefix and a suit suffix. In case of added ranks/suits these can change depending on what else is loaded and you need to get them from the return value of the add suit / rank function

rare shell
#

Can I just use some other image insted?

lean dune
rare shell
#

I figured that it currently loads from the same sprite as the cards

lean dune
waxen spindle
#

is there a decent compilation of resources for modding the game because i need documentation

#

i’m not gonna go in blind and not knowing any function calls and whatnot

#

or is the current state of modding just “figure it out lol”

#

oh balamod has all of it available

lean dune
waxen spindle
#

ok maybe trying to undertake this while i’m still only a computer science student and also only understand java is a bad idea

alpine cosmos
#

eyy same

lean dune
#

the community around here is able to help out with pretty much anything, so there's no harm to be done in giving something a try

waxen spindle
#

i was thinking of making a basic mod which allows cards to gain a wild value and not just suite

#

i assume that’s already been done numerous times

lean dune
#

hm, I don't think so actually

waxen spindle
#

effectively acts as every card in that suite, including face cards, and can be played like a stone card (scores regardless of hand)

lean dune
#

that requires some pretty hefty modifications on top of what was already required to make adding suits and ranks work

#

So I don't think that's a good first project tbh

waxen spindle
#

there’s probably a janky solution to make it barely work though

lean dune
#

you can go look at the playing card API I made

#

you'd have to change up all of what's there and then some

waxen spindle
#

what would be a simple first project

#

since i don’t wanna make something already made a thousand times

#

but the stuff that hasn’t been made is complex

#

probably asking too much

lean dune
#

something supported by the APIs in place... custom jokers, tarots, blinds or whatever

#

there's plenty ideas to be had with those

waxen spindle
#

are challenges supported?

lean dune
#

there's no API for them yet, but it's not overly complex to add them

#

In fact I have an example of one somewhere, let me find it

waxen spindle
#

they’re effectively just deck modifiers on top of the deck you’ve selected aren’t they?

#

as well as different starting conditions

lean dune
waxen spindle
#

hm

hardy brook
#

Aure

#

text question

#

Why does this not work on the mod description?

lean dune
#

because it's not parsed as loc text, I guess?

hardy brook
#

fair enough. I'll just keep it without the coloring

stoic shoal
#

hey, modders, has anyone made negative for playing cards yet? (kinda silly)

lean dune
#

uh they exist, but they don't do anything

stoic shoal
#

wdym

lean dune
#

but they have no effect at all

stoic shoal
#

what if they make it so you have +1 hand size

lean dune
#

one could make them do that

#

but I have a feeling that's quite broken

runic kraken
#

is there a way to get a random seal from all possible seals, even modded ones without adding them manually to a list?

stoic shoal
runic kraken
#

ok, i wasnt sure if modded seals are in that aswell

grand geode
neat dome
#

What does one do if there's a constant steam apps thing that says 'INFO - [GAME] Failed to connect to the debug server'? Does that mean it'll constantly crash if I try doing something mod related?

wanton rapids
#

funding for this joker was made possible by you (etc.)

grand geode
#

corporation corporation corporation corpo- corpo- corpo- corpo-

lean dune
neat dome
#

TK Debug Console? What's that? Also, do I need to have the program files bit of it on 24/7 in order to still play the game, because whenever I close it, the game closes as well

grand geode
#

if you aren't debugging your mods don't worry about it

#

also by program files you mean the command prompt?

#

if so then yea

neat dome
#

I mean this batch (I typically have it minimized, but just having it up to show what I mean by it)

grand geode
#

yea

lean dune
#

yeah that's tied to the games process

neat dome
#

Ah, ok

grand geode
# grand geode

balancing question
Options currently costs $4, should Credits cost $4 or $5?

#

considering discarding is more used than playing hands

runic kraken
#

does that really make a difference in the end?

grand geode
#

yes

#

:3

lean dune
#

both should be uncommon imho

low anchor
#

uhh, updating steammodded just disabled all my mods

lean dune
#

what

grand geode
#

hmmst

lean dune
#

which is already really beneficial

#

but then without the drawback

grand geode
#

hm

lean dune
#

at worst it's +2 hand size, which is an uncommon with a drawback

#

(troubadour)

grand geode
#

i forgot troubadour existed

#

by themselves they're technically weaker than half a troubadour but ig i'll make them uncommon

#

second ever 4 cost uncommon

woeful pilot
#

It might be too OP if this is not Balatro

cunning silo
#

I am so, so, so happy to announce that Version 1.0 of Codex Arcanum is out!!!
Unleash the power of alchemical magic using** 12 new special consumable cards.** Obtain more hands and discards, reduce the blind itself, add temporary buffs to cards, and much more! There are even more alchemical cards coming in the future!
The mod also adds **7 new exciting jokers **to play with, 2 new vouchers, and a new deck to try out the alchemical cards with.
We hope you will enjoy the mod!

(If you have been following, this mod took a while for me and @rare shell to make, and we are in a position where we are very very proud of it.)
https://github.com/itayfeder/Codex-Arcanum

GitHub

Adds a new "Alchemical" card type to Balatro. Contribute to itayfeder/Codex-Arcanum development by creating an account on GitHub.

rare shell
#

finally, good job!

cunning silo
#

BTW, also included in the GitHub is a small wiki with all of the cards, jokers, and vouchers of the mod!

runic kraken
#

gj guys

gleaming talon
#

I thought I replied pinged but I have that turned off by default luckily

#

😉

grand geode
#

lma

lean dune
#

omg

runic kraken
#

has somebody figured out a way to send multiple messages? card_eval_status_text displays the message way to late

grand geode
#

try adding extra.instant

tepid sentinel
#

😭 i cant keep playing

cunning silo
tepid sentinel
#

39, round 120

runic kraken
fallow bramble
#

Wait how does that change anything? You can only return one message no?

runic kraken
#

card_eval_status_text works independent from the calculate returns

#

how exactly does pseudorandom work?
pseudorandom('cancer') < self.ability.extra.chance/100
this should have a 5/100 chance to trigger, but it feels like it procs way more

round ore
fallow bramble
lean dune
runic kraken
#

i only did a small test, discarded ~10 cards and 3 got a seal.

grand geode
#

well that's not impossible odds

runic kraken
# fallow bramble What does your code looks like? Gave it a try and the messages show on any conte...
function fakemessage(_message,_card,_colour)
    G.E_MANAGER:add_event(Event({        
        func = function() card_eval_status_text(_card, 'extra', nil, nil, nil, {message = _message, colour = _colour, instant=true}); return true
        end}))
    return
end
 if context.individual and context.cardarea == G.play and (context.other_card:get_id() == 8)  then
                addtokentocosmic(self,1)
                fakemessage("Test1",self,G.C.PURPLE)         
                fakemessage("Test2",self,G.C.PURPLE) 
                fakemessage("Test3",self,G.C.PURPLE) 
                fakemessage("Test4",self,G.C.PURPLE)   
end

Thats a crude test, but this returns all 4 messages at the same time for example

hardy brook
#

Was looking through Steammodded, what are "custom badges"

runic kraken
#

something like this, where you can define your own text. I think

lean dune
#

these in particular aren't really custom, they're customizable mod name badges handled by the loader

ripe beacon
#

What're the best mods to start with?

lean dune
#

but yeah you can add your own ones on top of that

lean dune
cedar comet
#

I like the fold button mod

cedar comet
#

PSA: The "Hold For Final Hand Score" mod breaks the Plasma Deck's special balancing effect.

orchid vault
shadow schooner
#

Hey, can somebody help me to download Steamodded? I'm sitting here just trying to download it, but every time I try it it shows THOSE two!

lean dune
vestal crag
#

It gets flagged because file injectors are very powerful tools that are easy to destroy stuff with.

lean dune
#

Windows AV really doesn't like what the injector does (it modifies an executable, so it's in a way a Trojan to the anti-virus)

vestal crag
#

Yup.

lean dune
#

it's a false positive and you can build it yourself if you don't trust us with it, but the recommended method st this point in time is lovely anyways

astral crown
#

hey everyone, I've started to mod a little, and I was wondering beacuse I can't find any documentation - but how do you guys test stuff? Like I made a new joker. Do I just do a run and hope to encounter it?

rigid jewel
strong falcon
#

Is -$50 too much?

cunning silo
#

BTW who curates AwesomeBalatro?

strong falcon
rare shell
#

you just can pr to it

#

yep

cunning silo
#

Will do!

astral crown
#

does this mean anything to anyone? This happens when I hover over the joker for a bit

past tendon
#

I think a negative is worth $50. If we compare that to antimatter, antimatter asks you to buy 2 vouchers and you need to roll these vouchers in the shop

#

Maybe allowing a perkeo + riff raff strat would be a bit too insane though

strong falcon
past tendon
#

Or something like perkeo + a mix of bribe and judgement/wraith

strong falcon
#

I'll have to see what I can do about that

unkempt geyser
#

perkeo doing something crazy with a spectral in hand doesnt seem like a problem to me really

placid wave
#

perkeo+ bribe and temperance

past tendon
#

I don't mind that much too, perkeo is broken to begin with

unkempt geyser
#

$50 feels steep to me but its hard to actually tell

#

trying it out would probably make it clearer

strong falcon
bronze fern
#

Feels odd to have to pay for it

#

Then add 50 more

#

Rare Joker one is at least versatile

placid wave
#

well, trying to download steam modded and windows keeps eliminating it as a virus

bronze fern
#

The downside is consistent

placid wave
#

damn, random thought just popped up, wonder if it's possible (I defo have no idea how) to give an option for jokers to "evolve", would be cool for pokémon themed jokers

strong falcon
lean dune
#

that has to be changed to set_ability

cunning silo
#

(Now I really wanna make that XD)

magic sandal
astral crown
lean dune
past tendon
#

Negatives are just tricky to balance in that game. I understand why localthunk disallowed any negative infinite strat but honestly I think they're fine when talking about modded content

lean dune
#

need to update that at some point

astral crown
lean dune
astral crown
#

thanks

lean dune
#

and feel free to ask if any other questions come up, of course

astral crown
#

yeah I've been using this documentation

#

I'm picking it up as I go

placid wave
placid wave
#

(didn't mean to respond lol

shadow schooner
lean dune
#

the classic injector is prone to being detected as a virus by pretty much any AV due to the way it modifies an executable

lean dune
#

just grab dwmapi.dll from the latest release 0.3.1 and put it in the game directory

#

the guide should be fairly clear on the rest, but lmk if you need further assistance

shadow schooner
cunning silo
#

I have 2 ideas for my next projects. One is smaller and one is pretty big as well

lean dune
dapper helm
lean dune
#

click on that release, and dwmapi.dll is the first file listed under assets

cunning silo
#

I would love to advise you with that though

dapper helm
#

mostly crimson you'd be advising since its his mod

cunning silo
#

That’s the second thing I wanna do now that Codex is out. Be able to help other people with their projects

lean dune
#

tbh we kinda need custom center type and booster APIs in steamodded at this point

cunning silo
#

Custom enhancements are pretty easy

shadow schooner
lean dune
#

I briefly looked at the code for codex arcanum and gosh, it's boilerplate hell

rigid jewel
#

It'll be fun remaking that for Ortalab! (clueless)

cunning silo
#

I can write an enhancement API that can be ready for tomorrow

cunning silo
rigid jewel
#

Wait there's no enhancement API yet? I thought there was

#

huh

cunning silo
#

I have a “booster pack API” already present in Codex, but it does not allow adding new kinds of boosters

cunning silo
lean dune
#

hm yeah that sounds like something that requires some digging in the game's code to make work fully

#

but so was the playing card API lmao

placid wave
#

is there any speak about adding the workshop to the game? ngl discord is awful to sort throught

cunning silo
#

I am going to do some digging about it tomorrow

dapper helm
lean dune
#

As always I'm up to adapt/incorporate stuff for loader support

#

I just have to be careful not to dig myself too deep into things, I do have finals coming up for a bit

astral crown
# lean dune and feel free to ask if any other questions come up, of course

I'm trying to create a joker that upgrades it's chip value. I looked at Sqaure joker as a reference :

But when I write a similar code, upgrading the extra.chips value of the config, it doesn't change anything. I saw that you return mult_mod as a value in the return - so do I need to return the value? Why does the base game one does not do that ?

#

my code

tacit crest
#

iirc thunk said steam workshop is planned

lean dune
#

that's end_calculate_context being weird, I think

astral crown
#

if I don't use the end_calculate_context it tries to look at #context.full_hand when I'm not even in a round for some reason

lean dune
#

try context.cardarea == G.jokers and context.before as a condition

astral crown
#

alright

coral shale
#

The joker upgrades its value in context.before, which is applied automatically later

lean dune
#

that might break things, I'm not too familiar with these contexts and where they're called from

lean dune
#

yep there's this

#

which would be in end_calculate_context

astral crown
#

It still doesn't work, even with before

lean dune
#

show code again?

astral crown
coral shale
#

Oh, this is Steamodded's API, I only know how the base game does it, mb

astral crown
#

I replaced full_hand with scoring hand but basically

#

also note that with hanging_chad it did not trigger twice interestingly

#

It just says "upgrade" but nothing is saved, or upgraded

lean dune
#

what is your joker's loc text?

astral crown
#

I've set out to create a really simple joker just to learn the ropes

lean dune
lean dune
astral crown
#

ohh I need to also have a definition here for chips and mult

lean dune
#

you'll want to put a variable #1# for chips and #2# for mult somewhere

#

then you need a loc_def function on your joker that returns {self.ability.extra.chips, self.ability.extra.mult}

#

and for the effect to actually trigger, the thing with end_calculate_context that I said before

astral crown
#

I guess I don't entirely understand how loc_def operates here

#

can you give me an example of a modded joker that does something similar? Maybe I can just look and understand

lean dune
#
local j_clan = SMODS.Joker:new('The Clan', 'clan', { Xmult = 2, type = 'Spectrum' },
        { x = 0, y = 1 }, {
            name = 'The Clan',
            text = {
                [1] = '{X:mult,C:white} X#1# {} Mult if played',
                [2] = 'hand contains',
                [3] = 'a {C:attention}#2#'
            }
        }, 3, 8, true, false, true, true, nil, 'six_suit_jokers')
j_clan:register()
#

here, I don't explicity specify the Xmult of the joker in the loc def, but put a variable

#

loc_def function then simply looks like this, passing in that xmult as the first parameter

    function SMODS.Jokers.j_clan.loc_def(card)
        return { card.ability.x_mult, localize(card.ability.type, 'poker_hands') }
    end
astral crown
#

so from what I'm seeing, context.cardarea == G.jokers and context.before runs before everything, and once other jokers trigger it runs whataver is in end_calculate_context. I'm still not getting it to work, but the interactions with retriggers means the first one runs once, and the second one runs for retriggers. It's so weird

lean dune
#

retriggers act on cards, in that case you probably want context.individual which runs whenever a card is scored, including retriggers

#

which means you'll want to operate somewhat similar to hiker, but instead of upgrading a playing card, the joker upgrades itself

#

the cond there would be context.individual and context.cardarea == G.play

solemn ledge
#

which language is this written in?

lean dune
#

Lua, with the love2d engine

solemn ledge
#

oh bollocks

#

I don't know lua

#

I'm attempting to assist with archipelago / balatro connectivity and we were trying to figure out how to inject code into balatro itself(to give the user a pack for example)

hard copper
#

everytime i try downloading the base mod it says it cant download cuz theres a virus or its unsage

lean dune
#

the windows AV really hates the classic injector

#

because, well it technically is a trojan

solemn ledge
#

Windows AV Hates a lot of things

lean dune
#

you'll just need to extract the executable for that

solemn ledge
stone brook
#

at least lua is really easy to understand

lean dune
#

it has its quirks, surely

solemn ledge
#

I have knowledge in python and some others

lean dune
#

like 1-indexed arrays

solemn ledge
#

they have their quirks too

#

(fuck you java)

stone brook
#

ok actually now that i think about it, figuring out what a ternary operation is supposed to do is fucking annoying

lean dune
#

when you know enough of the basics, syntax is basically just flavor

stone brook
#

but other than that lua is pretty intuitive

lean dune
#

but please let me use && and ||

stone brook
#

frfr

solemn ledge
#

IT DOESNT LET YOU USE COMPARATIVES?

#

dying inside

lean dune
#

&& is fricking and, literally

stone brook
#

its just "and" or "or"

#

etc

solemn ledge
#

I'm

#

ive done that one before in js actually

stone brook
#

doesnt python do that too i dont remember

solemn ledge
#

I think so

lean dune
#

so ternary operators are cond and val1 or val2

#

wtf

solemn ledge
#

they mesh together after a while

#

wb not

#

is not still !

stone brook
#

yea LMFAO ternary operations are SO hard to understand

#

not is not

solemn ledge
#

ew

lean dune
#

neq is swirly tilde thingy I don't even have on my keyboard, so I'll usually do not (x == y) 💀

solemn ledge
#

I want my
for(i = 0, i < var, i++){ alert(you're stinky bozo :balatrojoker:) }

stone brook
#

the best we got is lua for i=1, var do alert(bozomode) end

#

truly unfortunate

solemn ledge
#

VAR DO

#

D O

#

I'm crying

lean dune
solemn ledge
#

no that's the entire for loop syntax

#

in I think jquery/javascript

lean dune
#

usually you'd have semicolons where you put commas

solemn ledge
#

oh right

#

I bozoed

lean dune
#

there is no language I know of that uses commas in that place

hardy brook
#

Man, Steamodded 0.9.7 is laggy

solemn ledge
#

yeah you right

lean dune
#

lag was supposed to be gone

hardy brook
#

It's just laggy moving stuff around and all that

#

It might just be that i have like 40 jokers and a bunch of decks but eh, idk

lean dune
#

yeah might be that

solemn ledge
#

lmao

lean dune
#

haven't heard any other reports of the sort

hardy brook
#

But at the same time it lags when i have 3 decks

solemn ledge
#

ok question

wanton rapids
#

i have 40 jokers and it doesn't lag

#

so it's probably decks

hardy brook
#

idk why, it's literally 3 decks

solemn ledge
#

is it possible to give someone a pack outside of a shop / blind selection page

#

mostly just to see the limitations

lean dune
#

yeah, some tags do that at least

stone brook
#

i think you can, but it would most definitely do something weird

#

like popping a pack during a blind, right?

lean dune
#

though it would defo go bananas if you tried to do that during a round

solemn ledge
#

basically wondering whether I make pack opening / delivery instant or make it a menu that shows up on the shop page

#

probably better to lean menu

hardy brook
#

yeah i only have a deck on my screen and moving cards is laggy

#

and it's not consistent

lean dune
#

probs you'd wanna give the player a tag

solemn ledge
#

can I not give them a pack open seperately?

wanton rapids
#

is this for archipelago?

solemn ledge
#

yes

lean dune
solemn ledge
#

basically I don't want to give them like

lean dune
#

depends on how hard you wanna go on UI mods

iron onyx
solemn ledge
#

29 tags at the beginning of every run

lean dune
#

but in principle, UI sucks for this game

solemn ledge
#

bleh

hardy brook
solemn ledge
#

maybe giving tags is easier but we plan on allowing the packs / tags / vouchers redeemable at the beginning of every run

#

which means we will need a menu to claim them

#

(to not lag the shit out of the game)

#

if youve seen arch it'll be really similar to STS

lean dune
solemn ledge
#

jesus

#

that looks

#

pain

rigid jewel
#

As a game developer, UI is hell on earth to implement

solemn ledge
#

We could steal a menu and repurpose during arch runs

#

that way we don't actually need

#

yk

lean dune
#

and yes I've had to mess with that and completely overwrite the function this is in to make custom playing cards work

stone brook
#

there is a debug menu in the game that you might be able to pull from

solemn ledge
#

well giving the user a pack is

#

the easy part unfortunately

stone brook
#

i have no clue where it is in the code tho

solemn ledge
#

the hard part is replacing tags, vouchers, blinds, skips, money rewards, with randomized rewards :)))))

lean dune
#

hm yeah

solemn ledge
#

we need to work slow on that though haha

#

stupid game and it's stupid ui

lean dune
#

for a good bit of base level interactions with the game's code, the source code of steamodded might also prove useful to you

solemn ledge
#

I'll look into both

stone brook
#

also suggest looking at balamod's source code too !!

#

(i love balamod)

solemn ledge
#

I think we gave up on balamod

#

unsure

rigid jewel
#

I forgot Balamod was a thing ngl

#

LMAO

stone brook
#

😭

rigid jewel
#

I tried to use Balamod but couldn't wrap my head around how to make it work

#

And gave up

lean dune
#

yeah balamod also exists i guess

solemn ledge
#

I

#

am also very worried about connecting to an external server

lean dune
#

just saying

solemn ledge
#

that seems like it will not go very well for a long time

#

once I am home I will probably be able to investigate

lean dune
#

I mean there was that jimbo's invitational thingy, but that just had observing functionality, it didn't actually interact with gameplay

solemn ledge
#

observing is actually hugely important to start with

rare shell
stone brook
#

if you think about it interaction is just two-way observation, or something

lean dune
#

eh

solemn ledge
#

the only issue is that due to balatros 18+ pegi rating, this has a much smaller set of eyes on it.

#

(technically this discord should probably be 18+ but whatever)

#

currently I just want to get basic code injection off the ground so that I can showcase it to the other members of my team.

dawn salmon
#

Is it normal for steamodded_injector to trigger win defender?

solemn ledge
lean dune
#

the classic injector will trigger AV due to the way it functions

#

it's technically a trojan for it modifies an executable

hard copper
#

i get this everytime i try booting up balatro now

dawn salmon
#

ah okay thank you, I'm using a separate balatro exe so I'll just go ahead

lean dune
solemn ledge
#

I think our best bet for actually making the mod function is to make a deck with a custom menu inside of it.

#

(to connect to the server)

hard copper
#

i have the steam modded and the lovely toml

lean dune
hard copper
#

steam modded as in the extracted zip

lean dune
#

uh yeah that's wrong

hard copper
solemn ledge
#

oh that's backwords

lean dune
#

you just need the contents of the extracted zip archive in the top-layer folder

#

lovely.toml is already in there, you don't need to explicitly put it anywhere

hard copper
#

so what should i get rid of and add

lean dune
#

move the core, debug and loader folders out into Mods/Steamodded

#

then just delete the Steamodded-0.9.7 subfolder, these folders and lovely.toml are all you need

#

double nesting folders is usually incorrect

hard copper
#

ok i think it worked ty

lean dune
hard copper
#

quick question

#

how do i download a mod

#

do i just add the zip somewhere or

lean dune
#

usually you just unzip it into your Mods directory

#

make sure it has a separate subfolder if it has any assets, else just the lua file on top-level is good enough

solemn ledge
#

and either it'll be in an additional settings segment, or on a deck menu

#

probably the former

lean dune
#

you could try to shove it onto the deck select screen, but even that doesn't mean it's specific to one deck

#

pretty much nothing is

solemn ledge
#

ah

dawn salmon
#

Sorry, a lot of nooby questions from me today. Is this something I should enable?

solemn ledge
#

I'm clearly very knowledgeable 😭

dawn salmon
#

In settings

wanton rapids
#

i think that's for the badges?

lean dune
#

if you don't want to see that, you should check that checkbox

placid wave
#

(can be useful in case you need to troubleshoot)

lean dune
#

yeah, some don't like it so we added an option to disable it

cobalt wedge
#

I tried to edit Challenges.LUA but messed up somewhere. Could I get some help figuring out what I did wrong?

lean dune
#

uh for the most part, you shouldn't edit game files directly

cobalt wedge
#

oh. um, oops

#

I'm not?

stone brook
#

no, it demolishes mod compatibility. you want to use decorator functions

cobalt wedge
#

I wish there was a good tutorial out there then.

lean dune
#

the game has only been out for like 6 weeks

cobalt wedge
#

I've never used LUA, never really modded a game before... I'm trying for the first time basically.

lean dune
#

there's a lot of mods out here that you can use for reference

#

besides also inspecting the game's source, you should give the steamodded wiki a read, even though it's still incomplete

#

gosh i can't type huh

cobalt wedge
#

What's a good mod to check out for that?

fallow bramble
#

Six Suits (not threaten by Aure at all my family is safe)

lean dune
#

💀

stone brook
lean dune
iron onyx
#

okay, is there a way for me to specify that i want a variable to be the value returned from a function, and not the function itself?

lean dune
#

call the function

#

like local x = func(arg1, arg2, arg3)

iron onyx
#

i want to debug my "straight looping" code (which i fixed, thank you)

#

why is this saying it's trying to get the length of a function?

#

is it wrong timing to put it in init or something?

lean dune
#

might still be that you're returning a function instead of a value

iron onyx
#

and how would i fix that?

lean dune
#

by returning the call result of the function instead

runic kraken
#

can poll_edition return modded editions (if there are any)?

lean dune
#

there's no standardized edition API yet and not a lot of edition mod, that I know of anyway

runic kraken
#

ah okay

lean dune
#

otherwise they'll just be nil

#

also yes, the timing is off

#

at load, you have no jokers

#

so superposition is for sure not present

solemn ledge
#

if anyone would be willing to help with arch were open btw

lean dune
#

Lacking time atm, but the least I can do is get any loader functionality you might need up and running

#

might consider joining the effort down the line

runic kraken
#

whats arch?

solemn ledge
#

archipelago

#

multi game rando

runic kraken
#

ah yea I know that.
What would you use for checks tho? Card unlocks?

#

How is the wording on this? Not sure if i can make it shorter somehow

lean dune
#

"change edition" to me implies that it can affect already editioned cards

#

still suggesting the more vanilla way of putting scaling in the scheme of
"Gains +X thing per Y (currently Z thing)"

stone brook
#

you can probably cut "on this"

runic kraken
sand oyster
#

From most recent steamodded injector exe on github, I don't think this is normal

solemn ledge
pastel wolf
#

Very on theme for windows

#

It goes oh its injecting why don't i have a cry about it

sand oyster
runic kraken
solemn ledge
pastel wolf
#

I couldn't tell you why windows detects it like that cuz im not a genius but i know its safe

cobalt wedge
#

It detects it as a trojan because, technically, by the way it operates, it IS a trojan

pastel wolf
#

Its just not a dangerous one lol

stone brook
#

yea, steamodded functions exactly the same as a trojan

#

so windows goes like "hey! thats a trojan!"

#

if you really dont want to go thru with the .exe, you can use lovely to patch steamodded in on runtime

cobalt wedge
#

Someone innocently gifts a wooden horse
Windows goes "We don't get fooled again"

solemn ledge
#

I am

#

so confused with what to do rn

lean dune
sand oyster
#

so this is completely safe then?

solemn ledge
#

I'll need to ask an arch expert x3

lean dune
#

just follow that

#

classic injector has too many issues tbh

lean dune
cunning canopy
#

local thunk please fix!!1!1!1!!1111! /j

lean dune
#

lmao

#

literally unplayable

cobalt wedge
cunning canopy
#

you just uhh enable visibility os hidden folders and find AppData in Users

cobalt wedge
#

I probably wrote something wrong in my file

stone brook
#

try lowercase .lua maybe

#

not sure if that would make a difference but

#

it could

lean dune
#

might

#

%AppData%/Balatro/Mods is where it needs to go

cunning canopy
#

make a folder if you need

lean dune
#

if you do get it to run, there's a syntax error in your file, line 49 is missing a }

cobalt wedge
#

Is it?

#

Huh.

lean dune
#

yeah

cobalt wedge
#

I was basing it off two other mods that look like that to me. Where on that line should I be putting it?

stone brook
#

... does math.random(2) always return 2?

#

no it doesnt...

#

what the fuck is this luck

lean dune
lean dune
cobalt wedge
#

Odd. What did I do different? The other two mods don't have that.

stone brook
#

i genuinely do not know whats going on here. math.random is a lua function, right?

#

i changed it so it repeats until b==1, and it ALWAYS starts on 2

lean dune
lean dune
stone brook
#

same issue

#

math.random(x) is supposed to be 1, x inclusive

cobalt wedge
#

Um... huh. I put another mod in the same place, that mod works, mine doesn't

#

Mine doesn't show up

lean dune
cunning canopy
#

you guys ever faced the final boss of Balatro named Three Pair?

lean dune
#

yes

digital lily
#

fun fact: this is how the game looks when you set CRT to 500%

lean dune
boreal ibex
cunning canopy
#

yes

digital lily
#

and this is 1000% with crt bloom off

lean dune
#

phuck

cunning canopy
#

stop increasing it please 🙂

digital lily
#

with bloom on it looks a bit worse

lean dune
#

ok i begone

cunning canopy
#

oh god no

stone brook
#

okay im pretty sure math.random is just flawed

#

here i was spending hours trying to figure out why my joker kept giving me photograph, out of hundreds of options

solemn ledge
#

...
LOL

stone brook
#

what the fuck do i do now LMFAO

#

surely im not making my own random function...

cobalt wedge
#

woo, got it to crash!

#

That means it loaded!

#

😛

digital lily
cinder sage
cobalt wedge
#

But... where is the problem with the Deck?

stone brook
cunning canopy
lean dune
#

might still be about there being no seed

#

the games pseudorandom func will ensure it's consistent with the game's seed

#

(who said 10 of spades?)

past tendon
cinder sage
stone brook
#

new joker: X2 mult for free but you have to play at -1000% crt

hollow umbra
#

Anyone that has been modding. How easy is it to add like a new deck or a new joker. If I start I'd want to make something that doesn't stray too far from vanilla

digital lily
lean dune
cobalt wedge
#

ah

lean dune
cunning canopy
#

localthunk remove some glitches dawg /j

cobalt wedge
#

think I found it

#

Forgot how much fun "Hunt The Bracket" was

lean dune
#

wait until you stumble over the game's UI code at all

rigid jewel
#

Wait until you find an <eof> expected near "end" error

#

searching through 2.5K lines of code to find where you forgot an end

astral crown
#

does anyone know what the lua version of balatro is? (just for some math utilities that I see are only available from a certain version onwards)

stone brook
#

okay i figured it out, if anyone else has issues with random, the first call of math.random() after setting math.randomseed() is pretty much not random. calling math.random() after the first call is ACTUALLY (pseudo)random

digital lily
#

this will be balatro in 500BC (10000% crt)

cunning canopy
#

STOP INCREASING IT PLEASE

past tendon
#

We need to go higher

cunning canopy
#

NO

solemn ledge
#

yes!

rapid epoch
digital lily
#

(flashbang alert) this is -10 000%

cinder sage
#

why is it frowning :(

solemn ledge
#

:(

digital lily
#

wow it sure is frowning

#

i guess the game doesnt like the treatment its receiving

cobalt wedge
#

I dunno

#

THe top looks happy

digital lily
#

i still find it cool how you can a function can go "yeah sure, -10000 input value, ill render that just fine"

lilac wind
#

When I turn off my virus protection, and then download steam modded, then turn my protection back on, it automatically deletes the file. Any clue how to stop this from happening

rare shell
#

thats math, nyeah

cobalt wedge
#

I got my mod working, thank you. Tweaking my challenge - "Yacht" - now

astral crown
#

so I got my modded joker to work, functionaly, but visually I'm having some issues. this is my calculate code:

#

my expectation was that it would send an "upgrade" message for each card, but it doesn't

#

and I don't know how to display a message at "end_calculate" that displays the chips and multi both

#

the context.individual is exactly the same as the one I see in the source code for hiker and stuff

#

so I don't really understand it

#

oh never mind the first question I just figured it out. So it's just about how do I display two messages basically at the end

astral crown
#

🤔

cobalt wedge
#

Time for me to make a github account? That's where we upload our mods, right?

fallow bramble
#

(beside upgrade)

#

What if you put everything in the same return?

granite silo
#

Have we found the issue that causes games to CTD when hovering jokers? It dosent seem to be mod specific based on my testing

astral crown
astral crown
fallow bramble
granite silo
fallow bramble
#

Dunno if it's a Steamodded issue, usually that happened to me when my mod didn't had something properly linked

granite silo
#

if nobody else has this issue anymore its probably on me. Ill check if i have everything installed correctly

fallow bramble
astral crown
# fallow bramble Put everything in the first return and replace the 'message' line with `extra = ...

No no. You don't understand. It's like Wee Joke. Each card played triggers an upgrade - and then at the end it adds mult and chips. The setup is correct and functionally working as intended. The only thing I don't know is how to make the joker itself display two messages (jokers like scholar do it per card, but here it should be the joker itself). There's no example in core code of something similar

fallow bramble
fickle elbow
#

how do you implement a tarot card in 0.9.7 because my way of doing it results in this crash when i hover over it

astral crown
#

'*don't really understand it

fallow bramble
#

Show your code

astral crown
#

I tried sending these as chips and mult too, just to try and see if these are keywords

fallow bramble
#

Wait you only got the calculate function so far?

#

Also its elseif context.cardarea.. nor just "if"

astral crown
#

oh there's more code but I don't see how relevant it is

#

and I don't understand why it matters that it's an elseif

fallow bramble
astral crown
#

I'm familiar with this and I've gone over it. It's okay, thank you for trying to help, I'm new to this so I'm picking it up as I go

fallow bramble
#

Someone more competent might help you lol, I'm off, gl 👍

astral crown
#

thanks!

granite silo
hexed surge
#

is this rare negative brainstorm

#

i didn't even use dev tools

#

i just got it normally is this rare?

coral shale
stone brook
#

i think i encountered 2 separate lua quirks today that caused me to be stuck on one singular feature of my joker

#

fun fact if you try to make a set where the keys are numbers, you have to manually track the size of the set!

spring thorn
#

my first time makin a joker, how's this balance-wise? should i add a max or smth or is it good as-is

alpine cosmos
#

this is like
scaling money if you have a build involving gold cards

stone brook
#

maybe only scale on boss blinds?

#

i like the idea, but its def really stronf

#

stronf*

#

strong*

#

lmao

boreal ibex
#

by round, do you mean small blind & big blind & boss? im pretty sure thats what they mean

spring thorn
#

yeah, currently its just any blind; i kinda like the idea of it bein boss-only though

boreal ibex
#

i think boss-only is the way to go

alpine cosmos
#

what about like:
for every round beaten with one hand, gain +2 hand size
for every hand played after the first, -1 hand size

#

though that works too

stone brook
#

hand size is a 'premium' stat, so you have to be really conservative with adding it if you want it to be balanced

#

does anyone know if showman lets you get cavendish without destroying banana first?

spring thorn
#

ooh, i kinda like that too
itd definitely still be powerful but at least itd punish u for reckless plays
then again if u got the right setup a +1 hand size would guarantee a first turn win even early on, but then again again the right setup could win with just 1 hand size so idk
ill put both ideas on the grill for now, thanks fellas

spring thorn
stone brook
#

<3

#

i would check myself but im away from the pc rn, ty ty

spring thorn
stone brook
#

👍 ty ty

lucid lily
#

Is there a known way to hook up VSCode to debug the game when youve injected code via lovely/steamodded?

round oar
cobalt wedge
#

Is there a way to have the starting hand be one size, but draw more or less cards after the first hand?

#

In a challenge, I mean?

lucid lily
ancient junco
#

im so confused right now :/ I can provide mod list, but ive made a few for myself

fickle elbow
weak mortar
fickle elbow
#

the game is scared.

weak mortar
#

quaking in fear

cinder sage
#

i mean maybe a little less excessively

cobalt wedge
#

I don't see where it wants me to put a ]

boreal ibex
fickle elbow
#

balatro is more important then earthquake

sleek granite
#

take #G.CHALLENGES+1, out of the table.insert call

willow dome
#

earthquakes are temporary but balatro is forever

boreal ibex
#

true

cobalt wedge
sleek granite
#

well you dont need it lol

cobalt wedge
#

so just

sleek granite
#

maybe its not The Problem here tho i'll keep looking

cobalt wedge
#

table.insert(G.CHALLENGES,{

#

?

sleek granite
#

yeah

cobalt wedge
#

Wonder why the other mod I checked out had it.

#

Actually... quite a few that I see have it

civic grail
cobalt wedge
#

Was this some old thing?

#

Before the code was looked into more?

sleek granite
#

¯_(ツ)_/¯