#Joker Forge - Create Balatro Mods Visually and Export the Lua Files (WIP)

1 messages · Page 2 of 1

heady frost
#

lmao

wild pier
#

btw add skip tags to your list of like upcoming stuff

slate glen
#

ahhh

#

is this a fixable issue?

#

or should i make it 1

heady frost
heady dock
#

speaking of skip tags, there should probably be an option to create skip tags

slate glen
#

damn balatro thinks my ass can't possibly be poor

heady dock
#

for jokers ofc

slate glen
#

tag creation would be fun

wild pier
#

and like a key press

heady frost
#

ill solve the player money bug now

heady frost
slate glen
#

lovely

heady dock
#

also something that i ran into is that passively adding hands just doesnt work for some reason

nimble island
#

do i just download it again and it should be fine?

heady frost
heady frost
icy crow
#

Is there a way to display text currently (for example "upgraded" text)?

wild pier
#

btw have you seen the code by smg9000 that plays a video popup

#

and if not i’ll send you the code file

#

btw also the gif popup too

icy crow
heady frost
heady frost
wild pier
heady dock
#

Common, Uncommon, Rare and Legendary text colors should probably also be added to the color selection (also the fancy animated text color thats used for editions if possible)

nimble island
#

i have to say you might have genuinely revolutionised modding, thank you

icy crow
#

Would be cool if each effect had a switch "trigger on blueprint" or something.
Toggling the

and not context.blueprint

Part of if's
(Unless that's already possible)

heady frost
icy crow
#

Or just toggled and giving a warning or something when clicked

#

And a confirmation button

heady frost
heady frost
wild pier
#

okay idea. "Each Interaction" "Each Key Press" "Screamer [Shows image and plays.ogg audio and image fades out with audio, Also a setting that only dissapears when audio is over aka no fade out]" ”Replaces Joker "

#

and probably boss blind [need a 21 frame spritesheet horizantly tho.]

heady frost
#

will definitely be present in the next update haha

#

if i was not a solo dev and i had a team behind me, that would be top priority lol

heady dock
icy crow
#

I read something about the name of context.joker_main trigger and I don't know if it was solved but I had "When Joker is scored" or something along the lines of that

#

*read while checking what I missed in this channel

heady frost
#

you are correct though, "when a joker is scored" is much more accurate than "after the round" or something

icy crow
#

There's a context.end_of_round or something similar

heady dock
#

checking what type of consumable was used for the using consumable trigger should be added to the yet to be implemented list

#

also, retriggering discarded cards is currently an option but as far as i know it doesnt actually work on any discard effects

heady frost
heady frost
heady frost
heady dock
#

yeah i only tested with rebate

icy crow
#

This context is used for triggering normal scoring effects on jokers
Is the description of context.joker_main in documentation

#

Could add it in Smaller text as the description of the trigger

heady frost
# heady dock yeah i only tested with rebate

if u already tested it and it doesnt work then yeah youre probably right it doesnt work lol, ill remove it from the list of valid effects until i figure out a way to solve it

heady frost
heady dock
#

im pretty sure morefluff has a joker that retriggers discard effects, maybe it could be worth looking at the code for that

heady frost
#

i will add it to the github as an issue

nimble island
#

all i need to do is learn how to make joker art and i can be an official modder

heady frost
#

if u did the art for that joker that you was doing earlier, youre already much better than i am haha

nimble island
#

i didnt but i wish i could

#

it was just for an example mod so i dont feel bad for swiping it

heady frost
#

when you figure it out, you are free to submit a placeholder art lol

nimble island
#

ill try

slate glen
#

i don’t even wanna attempt drawing pixels

slate glen
#

@heady frost can you add Modify Internal Variable to the when Round ends trigger?

#

i'm surprised it isn't on there

icy crow
slate glen
#

i don't think X Chips works

icy crow
#

Another spelling error 👀

icy crow
heady frost
heady frost
heady frost
icy crow
#

No he said it doesn't work

slate glen
#

yeah my xchips card did nothing

icy crow
heady frost
slate glen
#

i uhh

#

repurposed the joker

#

but it was literally just adding xchips every hand so like

#

does it actually work at all

heady frost
#

it should do, i will test now

slate glen
#

also, i got this one recently

#

the skipping function works, the variable tracks

#

only problem with it is it gives +1 mult during the small blind, when the variable has been set to 0

#

possibly a similar issue to the money being 0?

heady frost
#

xchips is working on my end

heady frost
slate glen
#

i'll put the xchips one back as well and send

heady frost
#

yay thank u

slate glen
restive elk
#

if you want another placeholder image this is what i'm using for my mod

heady frost
heady frost
# slate glen

yeah i see both of these issues, will have a look, thanks for letting me know lol

heady frost
restive elk
#

ya!

hidden oriole
#

site sometimes messes up jokers

heady frost
#

messes up in what way also

hidden oriole
slate glen
#

this man's jokers terrify me

#

some of us were not meant to mod balatro

hidden oriole
slate glen
#

nah they're good jokers

#

they

#

are just scary

hidden oriole
#

i never had plans releasing it public

heady frost
# slate glen

both issues should be fixed now. remaining hands condition was a bit wrong, and yeah the modifyinternalvariable had the same random issue that player money had when it comes to values of 0

hidden oriole
#

nvm it didn't helped at all

heady frost
heady frost
#

yes

slate glen
#

hmm

#

fair

heady frost
# slate glen hmm

but there was a bigger issue that it uncovered too so it was not user error dont worry lol

slate glen
#

ah right

#

we like solving those

#

ty for checking it out

heady frost
#

no worries, i appreciate you guys bug testing so much

#

its like having my very own team of quality assurance because a lot of these i wouldnt have found myself

heady frost
#

oh wait i think i see it

hidden oriole
#

and that is with every other joker

heady frost
hidden oriole
heady frost
#

the images were so fucked i thought you did haha

heady dock
#

im pretty sure there is just an atlas issue, i use cryptid placeholder sprites and one of my jokers just used a different one that the one i put in

heady frost
heady dock
hidden oriole
heady frost
heady dock
#

Medusa changes sprites, should use the common (blue) placeholder sprite but uses the uncommon one instead

hidden dagger
#

place holder joker :)

heady frost
heady dock
#

though i did add more jokers since so that might have changed

heady frost
heady frost
heady frost
#

but im gonna test further with a bunch of duplicated extra credit jokers

hidden oriole
#

wait

#

i reloaded the site aqnd now everything works fine

heady frost
#

code works in mysterious ways...

hidden dagger
# heady frost <3

could you actully change it to this one because i fucked up the montains lol

heady frost
#

tbh i dont see the difference lol, great joker art tho

hidden oriole
#

i have a silly idea

icy crow
#

God

heady frost
hidden dagger
hidden oriole
heady frost
#

also finally fixed this UI bug haha

slate glen
hidden oriole
heady dock
#

having an "after hand" trigger would be nice, as in like the same context that ice cream loses chips. would also make for a more convenient place to reset variables that should be reset each hand

heady frost
#

(after i finish what ive been cooking up)

heady frost
#

added auto-save functionalty. now it will save changes to your browsers storage so you dont have to worry about accidently hitting refresh!

icy crow
hidden oriole
#

is it possible to make animated joker support

heady frost
#

no unfortunately not

#

i would not even know how to add that in lol

icy crow
#

Maybe some day

young relic
#

also i think im stupid but how do i make the "create joker" effect give another modded joker

hidden oriole
heady frost
#

i havent tested it with modded jokers so if you encounter an error let me know but it should just work

icy crow
#

Wasn't it j_<prefix>_<name> for modded ?

#

I'm not sure tho

#

Just recall format with prefix

young relic
heady frost
#

if its about the creating a joker from another mod check if you have the correct prefix for it lol

young relic
#

might just be the prefix though so

icy crow
#

At least it's not the error with the code generation balatrojoker

heady frost
#

i always test with cavendish golden_joker

#

anyways i added the "when a hand finishes scoring" trigger

hidden oriole
#

i love negative mult

icy crow
#

Wait it's not negative tho?

#

Just really small

#

when you're done with jokers what will come next? Consumables or something else?

hidden oriole
icy crow
hidden dagger
#

so im making a joker that gives 2.5 xmult per hand size bellow 8 and it did nothing

heady frost
heady frost
hidden oriole
heady frost
#

after i have reworked the random chance system, i will work on a "global variables" type of system where you can easily access things like consumables used, hands played, etc. as variables

heady frost
hidden oriole
icy crow
#

I wonder if (when) will my joker idea be available to do here

dandelion
gains 0.5xmult every time this joker has been sold this game
(currently 1.0xmult)
#

(I already made it but it would be fun to tinker with it here)

young relic
#

kinda wish you can force a sticker (i.e eternal) onto a joker with this

#

but that might be a bit complicated to do

heady frost
heady frost
young relic
#

(cough)

icy crow
heady frost
#

no not at the moment because from my understanding a lot of conditions and effects might need changes specifically for that

#

some triggers are easier to add like the after hand played because it uses very similar stuff to hand played and whatnot

#

but I will probably get on it tomorrow "when this joker is sold", "when a joker is sold"

icy crow
#

Is context.selling_card just for jokers, or for consumables too?

blazing yarrow
sour spear
#

is my internet just forcing me to learn lua code to mod

heady dock
#

idk if its been done yet, but i think i've made a pretty accurate recreation of loyalty card

#

also space joker, idk why that one isnt there yet besides the fact that itll trigger during scoring instead of before it

heady frost
heady frost
#

there is a JSON in /public/vanillaremade.json. the vanilla remade page just takes jokers from there, you can save that mod as json and just copy paste the joker part into that JSON and it should work

heady dock
#

i dont really know how to do that because i dont use github a lot, could i just send the json files instead

heady frost
#

no worries, send the json over I'll add it

heady dock
#

do you have vanilla joker textures, the ones from the wiki are in a wierd size for some reason

#

oh nvm, i found a good one

icy crow
heady frost
sour spear
#

amazing

floral hearth
sour spear
#

balancing, never heard of it

heady dock
#

i recreated some more jokers and also figured out that i can and should put the numbers for chance effects as a variable in the description

#

wee joker doesnt have a texture because i could not find a single place that had one in a reasonable aspect ratio

sour spear
#

ngl it would be cool if you can import an animation spritesheet and make an animated joker sprite

icy crow
gusty citrus
#

nevermind, i'm blind and didnt see the first hand drawn trigger itself lmao

gusty citrus
#

i assumed wee just used the same texture except internally scaled down

heady dock
# icy crow

yeah i tried that but its 203 x 271 for whatever reason so you cant use it

icy crow
#

sad

heady dock
#

it has to be 71 x 95 or 142 x 190

icy crow
#

i resized it to 142x190

#

don't know if there's any quality lost tho

icy crow
#

if you disable a rule, save the rules an re-enter the rule editor the rule isn't disabled. if this is the intended behaviour what does disabling even do?

heady frost
#

neither is duplicate, rename, etc.

icy crow
#

oh that makes sense

wheat jetty
#

are you able to export the code of just a single joker

#

instead of an entire mod

heady frost
#

should be easy to do, after i finish what im working on rn

gusty citrus
#

preview goes over

heady dock
#

that is an issue but you should also just add more line breaks because the game doesnt put those in automatically

slate glen
#

@heady frost unconfirmed but hearing reports from others using my mod that my jokers are appearing in the shop multiple times, without using Showman

#

any idea if this is tied to something under the hood?

heady frost
#

this is what im working on currently

heady frost
slate glen
#

and can’t test it atm, at work

#

so they could be making it up but you never know

heady dock
#

im pretty sure this is an issue, i got a duplicate of one of my own jokers once while testing

heady frost
icy crow
#

are legendary jokers really 1k?

#

also 🔥

lapis mauve
#

they're $20

#

even though theyre not avaliable in the shop, you can calculate the buy price by doubling the sell price iirc

#

and legendary jokers sell for $10

heady frost
nimble island
#

is there a way to also create a new rarity like exotic from cryptid or polterworx(RIP), if not, it would be cool

#

btw if anyone wants to use this as legendary art if they have none, you are welcome to

heady frost
swift night
icy crow
#

bunch

swift night
#

Yeah but from joker elements

icy crow
#

after that there's this MAYBE

icy crow
spark patio
#

Editions will be certainly something interesting to code

heady frost
# swift night What mechanics are left to be added?

currently i am working on revamping the random chance system, after that, i need to add 'global variables'. basically variables that are pre-determined and take from existing things that balatro tracks (times rerolled, consumables used, etc.). then all that is left is to refine the code gen, and add atleast as many effects, conditions, and triggers to have every vanilla joker fully replicable.

#

i reckon it will be around a month or so if development goes well until i start working on custom consumables, rarities, editions, etc.

hidden oriole
# icy crow

for decks there'salready mod to create them

heady frost
#

also i need to add functionality to do operations on variables when they get used. for example, add 20 * $chipsvar chips

#

but tbf, you can kinda get away with some of that because you can just increment by 20 or something

#

and i also want to implement a new page where users can upload their jokers, and other users can browse it and duplicate them to their collection, kind of like a showreel on what people have made

lapis mauve
#

please do add an option for jokers not to show up there, and add credit

heady frost
lapis mauve
#

would be really annoying if people claim your joker as their own

heady frost
#

to submit it to the page

heady frost
lapis mauve
keen glade
#

Which still allows the card to be created

heady frost
hidden oriole
heady frost
#

HUGE UPDATE JUST PUSHED OUT. now effects can be grouped up with random chance, you can chain these random chance groups, or not, etc. etc. please let me know about any issues or anything this causes rather here or as an issue on the github repository. this required big updates to a lot of systems so i am expecting things to break haha.

with this feature you can now discern between effects:

if 1/4:
do x
do y

or

if 1/4:
do x

if 1/4:
do y

#

to add effects to a random chance group, just click on the group and add effects in, to add them normally, just click out of the group (anywhere else on the rulecard). i wanted to implement a feature that allowed dragging of effects in and out of these groups, but that will require big changes to the UI, which i want to do all at once when i change it so you can drag blocks from the block palette to your rules.

strong sun
#

Sorry, chiming in because I'm using the Forge to make a joker. Which your latest update actually comes in quite handy for! Does this mean we can have multiple effects for a random chance outcome, like for example a 1 in 8 chance for either a +chips or a +mult?

heady frost
strong sun
#

Alright, excellent

flat valve
#

isn't this a 1 in 8 chance for +chips and another independent 1 in 8 chance for +mult

strong sun
#

Yes, that's exactly what I meant

flat valve
#

fair enough

#

the way you worded your question sounded like a 1 in 8 chance to do something, which then chooses between +chips and +mult

#

this is a really cool project but i can't help but feel that, for some of this functionality, coding in the joker directly is less faff once you have vscode set up

#

then again i know how to code

heady frost
heady frost
strong sun
flat valve
#

if you want to do effects that complex i feel like a visual editor falls apart unless it's SUPER robust

flat valve
#

there's so many undocumented smods features as-is, and if a whole community can't document them one person stands no chance documenting and adding all of that stuff into a visual format

heady frost
toxic aspen
flat valve
#

not being negative or anything, it is a really cool project and the website looks super clean

heady frost
#

its not like jokerforge will ever replace standard mod coding for balatro lol, if you want some crazy effects like the ones seen in cryptid or whatever, then you are always gonna be better off coding it manually lol

flat valve
#

it's like mcreator where i feel like it doesn't actually lower the bar that much anyways

#

if you have no idea how to code and you make anything more than small-scale joker mods you're going to massively struggle debugging, and people are going to struggle to read generated code

heady frost
#

i think you are just thinking about your particular use case

#

in what world does making modding more accessible equal a bad thing for people

strong sun
#

Would it be possible to add an effect to a joker where it can actively destroy the played hand itself? Like Immolate's effect

heady dock
#

i mean you currently could probably just destroy every individual card when its scored to get something close to that

heady frost
strong sun
#

Okay, that tracks

heady frost
#

i need to make some proper docs haha

#

one day...

sour spear
#

it would be nice when if joker is triggered, play custom sound effect to replace the default joker trigger

heady frost
# sour spear it would be nice when if joker is triggered, play custom sound effect to replace...

very good idea actually, i was thinking about adding a new type of blocks "cosmetic blocks" that allows sounds or animations to be played https://github.com/Jayd-H/joker-forge/issues/76

GitHub

these blocks can be placed anywhere in and around the the effects, and will be reserved for playing animations or sounds. could also just be regular effect files "play sound" "play a...

#

but that would be after all the main functionality is done

flat valve
# heady frost in what world does making modding more accessible equal a bad thing for people

that's fair but i feel like (aside from python) lua is one of the simplest coding languages to pick up, and aside from actually writing the code the skills you need to get a joker working are the exact same you would need to get it running in a visual editor. not to mention exporting from a site and moving that mod into your mods folder for every change is a much MUCH slower way of debugging than having your git repo rigged directly to your mods folder and making changes in there

#

so whether it's actually more accessible than putting efforts into the VERY incomplete smods docs or into good modding tutorials, i'm not sure

heady frost
#

again, i think you are just thinking about it from your perspective because you know how to code

flat valve
#

wanting to mod and not liking programming are kind of antithetical i feel

heady frost
#

and it is not the exact same skills between coding and putting 3 blocks together

heady frost
#

wanting to mod is wanting to create, wanting to code is wanting to code

flat valve
#

there are plenty of programmers in need of art

#

i make art for people and they're willing to do prs on my own mod

heady frost
#

and there is more to creating something as simple as a balatro mod than just writing code, its debugging, finding the specific code you want, atlas creation, etc.

flat valve
#

you wouldn't be able to debug if you couldn't code either

#

something breaks with your jokerforge mod? good luck

heady frost
flat valve
#

i don't want to be negative but i feel like if you're going solo on a mod you kind of have to program, there's not much getting around it

flat valve
heady frost
flat valve
#

i have a joker done in 5/10 minutes and then i spend 20 minutes fixing it

heady frost
#

you say you dont want to be negative, but you are just hating with zero basis. like i said, in what world is making a tool like this a bad thing

flat valve
heady frost
#

at the end of the day, no tool is better than just straight up coding. but making these things more accessible is never a bad thing

flat valve
flat valve
heady frost
heady frost
#

you see where this argument gets you, i just dont know how you can see something that makes something more accessible and dislike it because you already know how to do that thing the less-accessible way

flat valve
flat valve
heady frost
#

compared to minceraft and other games ive modded, balatro is by far the easiest, that is why i wanted to make this

#

i feel like you are just arguing for the sake of arguing, if you dont like it, dont use it haha its not harming anyone

flat valve
#

yeah it's that until someone tries something more complicated and they have to rewrite their entire codebase because it's auto-generated code and they don't understand a word of it

slate glen
#

yooo random chance is here

#

now I can nerf one of my commons

heady dock
#

like thats just not what this is for

heady frost
heady frost
slate glen
#

wait can I destroy played cards yet

flat valve
slate glen
#

i can’t remember if that was in or not

heady frost
heady frost
slate glen
#

also I just wanna say, I have approx 200 hours of modded Balatro, and I can’t code for shit

using joker forge to make a mod with 40 jokers that work perfectly, which me and a few mates are now playing, has been fantastic

#

i am very grateful for the opportunity to do this

heady frost
#

thank u that means a lot

flat valve
#

not none, clearly

#

but few

slate glen
#

The UI is set up in a way that essentially gives me all the fun of modding without worrying about the programming aspect

heady frost
heady dock
heady frost
#

do you think that once jokerforge is finished, every single mod imaginable will use it? ofcourse not

flat valve
#

i'm just saying that a project can never outgrow jokerforge

heady dock
#

then what point are you even making??

heady frost
#

i dont get how you can even have an argument against a tool that helps with modding

heady dock
heady frost
#

its literally a net positive

#

if a person wanted to make something that jokerforge was not capable of, they wouldnt use jokerforge

#

its not like some rocket science lol

slate glen
#

i think it’s a given that you will always be able to do more when interacting with Lua directly than via Joker Forge

flat valve
#

inevitably you're going to get people starting with jokerforge becuase it's beginner-friendly, and then they end up stuck on it when they want to do something a bit more out there, and then they give up

heady frost
#

yeah, even if i made 1000 new effects and conditions, manually programming will always be superior

slate glen
#

I’m ngl

flat valve
#

it's a collaborative community, there's always programmers needing artists and artists needing programmers. if you can't program find someone who can

slate glen
#

there’s only one cryptid

heady frost
slate glen
#

i think most people who wanna mod balatro just wanna make a few jokers, not the next Ortalab

heady frost
#

exactly

heady dock
heady frost
#

in other news i will try and add the ability to export individual jokers now lol

slate glen
#

if someone wants to make something more out there, chances are they’ve done it already lmao

#

balatro is not a new game anymore

flat valve
#

there's plenty of people trying to get into modding even now

heady frost
#

well send them here lol

flat valve
#

i would honestly rather point them to the modding starter pack

heady frost
#

(which im there)

heady dock
#

depends on if they can code in lua

flat valve
#

you can't get around not knowing what you're doing

#

i couldn't code in lua before i started modding this game

#

i likely would not have gotten far with a mod if i knew about jokerforge

heady frost
heady dock
#

and that also seems like more of a personal issue than anything

flat valve
#

learning lua was a fun experience that i wouldn't want to have deprived myself of

#

i don't think it is you know

#

if you're willing to take such a large shortcut as not coding you aren't going to get far

heady frost
heady frost
flat valve
#

c'mon you can't say that when VanillaRemade exists

#

i literally am not a veteran, i've been at it for a month man

slate glen
#

ngl imma make my mod 150 jokers so I can play it standalone

#

and nobody can stop me 😈

icy crow
#

I made one joker here and got motivation to code more in Lua (after looking at the code it generated)

flat valve
#

don't try and strawman me into being an elitist because i'm not

heady dock
heady frost
flat valve
#

kind of a circular argument

slate glen
#

i did comp sci at a level and learned very quickly that proper coding sucks

icy crow
heady dock
#

thats just an assumption

heady frost
heady frost
flat valve
#

i'm not trying to say it's a completely useless project or anything

heady frost
flat valve
heady dock
flat valve
#

idk what to even tell you

slate glen
#

but like, what do you do if you don’t wanna code, but still wanna make a mod

heady frost
slate glen
#

this is the target demographic joker forge is aiming at

flat valve
#

i've made it pretty clear what my specific concerns are

#

idk does ai help people make art? it's certainly easier

heady frost
#

it is entirely deterministic, ai is not

heady dock
#

its as much of making art as commissioning someone

heady frost
#

you have come in here just to shit on my work when you havent even read a single line of code of it to understand what it is actually doing

slate glen
#

the artistic equivalent of joker forge would be like

flat valve
slate glen
#

instead of having to paint, it’s a jigsaw

#

you’re putting the pieces together

heady dock
flat valve
heady frost
flat valve
slate glen
#

well, that’s not exactly true

heady frost
flat valve
slate glen
#

the user still has to provide appropriate instructions to make the joker function in the way they’re aiming for

heady dock
heady frost
heady dock
#

the difference is that with art, there is infinite ways to create every infinite possible ideas that the creative mind can comprehend

heady frost
#

AI is non-deterministic, if you put in a prompt one day, it might give you a different answer the next day. jokerforge is entirely deterministic, same input = same output every time

heady dock
#

yet with coding, there is a finite number of ways to create infinite possibilities

flat valve
slate glen
#

creating a joker yourself via joker forge, and asking ChatGPT to make Lua code for a joker, are not the same

flat valve
heady frost
#

jokerforge is more akin to aseprite than it is to AI generating images for you. with aseprite, you still have to put in the work to get what you want, but aseprite handles all of the stuff like colour palettes, gives you tools like the pen tool, select tool.

heady dock
#

ai literally has random elements and NO documentation because thats 1. literally impossible and 2. nobody actually knows why it works

slate glen
#

you are essentially stitching chunks of code together

#

you still have to know the order things need to trigger in etc

heady dock
#

it is quite literally exactly that

heady frost
heady frost
slate glen
wild pier
#

how op is this card.

flat valve
#

i'm not talking about non-deterministic output or whatever. i'm talking about accessibilty specifically

slate glen
#

obviously it’s like 10% compared to real coding

#

but still, it is something that requires brain power

heady frost
heady dock
#

joker forge does not

slate glen
heady frost
flat valve
slate glen
#

wait it’s 1 in 25

heady frost
#

but please, go and read the backend code

wild pier
slate glen
heady dock
wild pier
flat valve
heady frost
#

or have other ways of manipulating odds or retriggering jokers

heady dock
slate glen
#

yeah exactly, it’s no good if it only triggers once every two antes

heady dock
#

youre just feeding a machine words that it doesnt understand and it pumps out slop based on some algorithm

#

with some randomness too

flat valve
heady frost
#

there is NO ai in jokerforge

flat valve
#

becuase one's art and one's programming yeah yeah

heady frost
#

how is that so difficult to understand

slate glen
#

y’all used Scratch in school to program stuff, right?

this is that

this is that, for balatro kekw

heady dock
#

ai has miniscule input and miniscule control over the output

flat valve
heady dock
#

whats next? gamemaker visual scripting is the same as using ai?

flat valve
#

are you intentionally being bad faith

#

like i can put up with it to a point

slate glen
#

it was a good introduction to programming

heady frost
heady dock
slate glen
#

obviously you can’t reinvent the wheel with scratch but it was something

heady dock
#

that would help your argument make an ounce of sense

flat valve
#

people say ai makes art more accessible

heady dock
#

they say that, but it does not

heady frost
#

send a link to the grab bag mod

heady dock
#

you are literally not making anything

flat valve
#

if you wish

heady frost
#

i will intentionally ensure that everything in grab bag is replicable with jokerforge 😈

flat valve
#

good luck trying to make the record card logic work visually once i add those man. if you really want to be like that about it put your money where your mouth is

heady dock
#

me when coding is different than literal balatro scratch 😱

flat valve
#

holy shit not the point i'm making

#

come ON

heady frost
slate glen
heady dock
#

you keep saying entirely different things

flat valve
heady frost
#

matter of a fact, just code in machine code, you arent learning anything valuable by coding in assembly language

nimble island
#

🍿

heady frost
#

actually, just program by manually flipping bits on transistors, words on a screen make it too accessible and you dont understand what you are doing

slate glen
#

it seems like you’re saying that beginners who use joker forge for a bit are suddenly less capable of learning Lua to code properly, should they wish to take it to the next level

heady dock
heady frost
#

actually, if you arent making your own cpu, then how do you really understand how a computer works

flat valve
heady dock
#

yes you have said that like 12 times now

slate glen
#

I don’t really get the logic there though

heady frost
flat valve
heady frost
#

oh no!

slate glen
#

My mod is playable - is it not good enough for others, just because it wasn’t coded from scratch?

heady dock
nimble island
#

whats even happening

heady frost
#

we get your argument: you dont like jokerforge because it makes it too accessible to make balatro mods and you want people to go through the hardships of learning to program just so they can make a silly mod for a silly game

flat valve
#

you're being bad faith

heady dock
#

idek anymore

heady frost
#

you came in here, shit on what ive been doing, said its "caustic" to the balatro modding community, then expect people to understand your reasoning when you have given nothing but personal anecdotes

#

crazy world we live in

flat valve
#

i help people in #💻・modding-dev like all the time. i never see you in there. i want to make the hobby accessible and i like helping people work things out with their mods

slate glen
# flat valve you're being bad faith

i would argue you’re being bad faith, by insinuating that Joker Forge won’t be able to eventually cover a decent chunk of avenues that potential modders will want to visit

nimble island
#

there is absolutely no reason to hate on this mod.

slate glen
#

like no, it can’t make Cryptid, but it can already do most actions in base Balatro

flat valve
#

i'm saying that this isn't the way i would do it

heady frost
nimble island
#

I didnt know how to make a mod until this, it just makes my life easier

heady frost
slate glen
#

why should people have to learn to code “the proper way” just to make a mod?

#

there’s no test

heady frost
#

balatro modding just is not that deep

slate glen
#

this is just a game

flat valve
heady frost
slate glen
#

then appreciate that in its infancy, joker forge has already attracted beginners who are having a good time?

smoky trail
#

I think @flat valve your argument applies when it comes to building your foundation for something in which you will actually use those skills, I.e, if you’re trying to be a software developer and are using something like scratch (deterministic, same input = same output). It does not apply when people use this tool to easily make things that they are using for entertainment

heady frost
#

if you have an issue with newbies that find it difficult to learn smods, instead of bashing a tool i make in my free time, make some really good and informative smods docs

heady frost
toxic aspen
#

Ur very level headed @heady frost

flat valve
slate glen
#

well there we have it

heady frost
#

honestly guys no bias or anything but i think jokerforge is pretty good

slate glen
#

can we call it a day now

heady frost
#

time to add the AddSealEffect block

nimble island
#

i mean i understand grab bags argument of learning lua and code for a while and then there being an easier way to make all that, but this mod is going to be useful for everyone that didn't want to learn how to code but really wanted to

heady frost
nimble island
flat valve
#

but i mean. is it a bad thing to also pick up programming along the way? you're modifying a game made up of code, might as well interface with it

#

it's a useful and fun way to teach people that skill

smoky trail
heady frost
smoky trail
nimble island
heady frost
#

thank u guys i really appreciate it. when i started working on it like 2 months ago from an idea i didnt expect people would be actually using it lol

#

and now that its causing drama i feel honoured lol

flat valve
#

is this drama

heady frost
# flat valve is this drama

you came in here, shit on my work, said jokerforge was "caustic" to balatro modding. said you would never point newbies to it. then got elitist and tried to highroad me

flat valve
#

i was here to talk about the usefulness of jokerforge as a modding tool, in a community of modders i think it's important to have the discussion

heady frost
#

i dont get why there needs to be a discussion

#

nobody is forcing you to use jokerforge, it is not gonna replace modding

smoky trail
flat valve
cedar zealot
# flat valve the accessibility argument?? that's why i brought it up????

sorry Im late but also putting my 2 or 3 cents after reading

john grab bag youre my goat and all but this ain’t the one if im being fr

from what I used of joker forge, it pretty much is just block coding,
which condenses the more complicated things a new person wouldn’t get into something that they CAN understand

while I do see your argument of “theyre not gonna be able to learn anything when it comes to trying it in lua” that’s kind of intended? block coding programs tend to serve as introductions to more advanced concepts made simple and limited, with the intent of (and actual success) providing a sort of “does this look too hard for you? why not start here for now just to get an idea?”

the best example of this is definitely scratch, which basically perfected the formula. as scratch also includes the actual code logic of each block in their IDE in (I think) their wiki(?) heck, I started in scratch like 6 years ago and made a few decent things. what with templates, tutorials, and guides all the like of things explaining why they did what they do. I’ve even carried some of that knowledge over to lua (to an extent of course, it’s a different language) and it did in fact help my understanding of programming.

And even if you don’t want to do anything crazy, and just want to make funny guy that makes big number go whoosh, this is a quick and simple way to do it. it should NOT be the go to for everything, and as far as I know isn’t intended to be.

Im currently swapping out parts of my computer, so I can’t exactly check but from what I remember I do think that the code that does get placed could be commented? (If it is already mb) but you know just things that explain what this means in simple terms

also, youre not forced to use this. the Balatro Modding Starter Pack has a multitude of resources to get started so that you can find something that YOU’LL be comfortable with. this is just another option, not the be all end all.

tldr: you make a fair point but that’s not really what this is though

nimble island
#

holy fuck

heady frost
slate glen
#

yeah he’s a geek not a nerd

nimble island
flat valve
heady frost
heady frost
cedar zealot
heady frost
#

if you come in here saying that you dont like jokerforge, then say it is caustic, ofcourse im going to take that as serious

flat valve
#

didn't say that

#

go read that message again, carefully this time

nimble island
#

carefully this time is crazy

heady frost
#

why are you even arguing?

#

i dont get it

#

its a website where you make balatro mods

heady frost
smoky trail
#

Mate, you have a different use case for lua, don’t project it onto people that want to create mods for fun :/

#

To @flat valve ^

flat valve
slate glen
#

fr i just wanted uncommon gros michel

nimble island
#

cant argue with that

heady frost
#

if you dont like jokerforge, why come into the jokerforge channel to start an argument with the guy behind it

#

i just dont understasnd

#

you are free to not like it, just dont use it

slate glen
#

time to go in #💻・modding-dev and suggest joker forge to people who are struggling to code and about to give up modding i guess

flat valve
#

i'm passionate about the hobby? i had not very many opinions about jokerforge at all before this discussion

heady frost
flat valve
#

i poked around and thought "hey this is really clean-looking, but man i feel like this isn't much simpler" and i came in here to make an off-handed comment about

flat valve
#

becuase i'm a person on the internet with an opinion? what do you want me to say to that

#

i don't hate you or your project man

heady frost
#

why do you feel the need to share a negative opinion on something im creating

flat valve
#

i wasn't trying to knock you down a peg either

heady frost
#

what if someone dmed you about grab bag and said that it was not good, and that it is bad to the balatro modding community. ofcourse that is going to hurt a bit

#

there is just no need man

flat valve
#

people have said my mod isn't great a few times and i take it on the chin

heady frost
#

so do i but why do you feel the need to say it at all

flat valve
#

becuase i had concerns about it as an alternative to learning lua?

#

the entire point i've been making??

heady frost
#

you made that claim up, then got angry about it lol

flat valve
#

or, more, learning balatro modding through lua

flat valve
flat valve
nimble island
heady frost
flat valve
#

we were all beginners once, the game's a year old and the modding scene as it exists today is much younger

toxic aspen
#

What does that even mean

flat valve
cedar zealot
#

but they don’t wanna

nimble island
#

what if i dont want to watch 12 videos of how to code lua and download so many files and I just want to do this

heady frost
flat valve
#

SOME

#

did you notice i put the phrase SOME (NOT ALL) in my message

nimble island
#

THEN TALK TO THEM HOLY SHIT

#

NOT US

slate glen
#

you’re not gonna get many takers in here

#

joker forge fans only

heady frost
# flat valve SOME

the ones that want to learn lua, will learn lua. the ones that dont want to or dont care will use jokerforge. it is not one or the other. jokerforge existing does not mean lua programming dissapears overnight

heady frost
flat valve
heady frost
#

i dont even mind you saying jokerforge is bad if its in modding-chat, but you came here to say it which makes it feel mean

nimble island
#

plot twist: grab bag created lua

slate glen
#

anyway tag creation when

#

i want me some rare joker gacha

heady frost
#

without this drama jokerforge would have the ability to create grab bag by now. this was their master plan

nimble island
#

op stop focusing on grab bag and keep improving your mod

flat valve
nimble island
#

SHIT SORRY

flat valve
#

discord has pronouns right there

nimble island
#

WRONG MESSAGE LMAO

heady frost
flat valve
#

it's np, i didn't think of it as intentional

nimble island
#

im done this doesnt involve me

slate glen
#

quit laughing your ass off right now

#

laugh it back on again

nimble island
#

im deleting it sorry

#

its for someone else

slate glen
#

chat we’re not addressing the real issue at hand here

flat valve
#

nothing against you at all, if you ever want sample joker art or sprite edits anything i'd be happy to help on that front (like i know anything about webdev lol)

slate glen
#

what does the joker in Eao’s pfp do

nimble island
nimble island
slate glen
#

well no I do not see

nimble island
#

download and import for the mod

#

all of it

#

then delete it after you see it so only i can have it...

slate glen
#

damn that's pretty good

nimble island
#

yeah?

slate glen
#

i have already thieved you

#

jk

nimble island
slate glen
#

i am probably gonna steal that effect though

#

i can't help it

#

it's good

nimble island
slate glen
#

and it's not like you copyrighted it

nimble island
slate glen
#

a legendary creating negative rares is fire

heady frost
slate glen
#

probably not quite as often though

#

maybe when boss blind is defeated

heady frost
nimble island
heady frost
slate glen
#

submits the entirety of Grab Bag

nimble island
# flat valve *their

tbh i thought they were correcting a punctuation mistake i didnt even read the message im dumb

heady frost
#

TAGS HAVE BEEN ADDED AS AN EFFECT

nimble island
#

damn that was fast

#

holy

#

whats your average typing speed

heady frost
#

let me know if you find any issues with specific tags created, i tested a lot of them but i had to guess some of the ids

heady frost
#

so it looks faster than it was

nimble island
#

still double mine

heady frost
#

but also ive set my code up in a way where adding new effects and conditions is very easy for me to do aslong as i have a nice example of how that effect is done

#

which vanilla remades diet cola was perfect for

nimble island
#

I changed one of my jokers from having to create a diet cola to creating a double tag ts is awesome

nimble island
#

you should make a google doc with all the things you're working on for this mod, like a spreadsheet. some modders do it and make ideas for jokers before coding all of them.

slate glen
#

TAGSSSSSSS

heady frost
#

as u can tell, i got my work cut out for me haha

nimble island
#

how long do you think consumables will take estimated

slate glen
#

think he said about a month earlier

nimble island
#

oh k

nimble island
#

if you made any

slate glen
#

man i ain't falling for that one

#

jk

nimble island
#

shieeey

slate glen
#

bro gon steal me jokers

#

enjoy

#

this is one of two mods, but this is my main one

#

wanna try and get it to 150

meager ginkgo
#

Fuck yeah

#

I love it when programmers make tools for us plebians

#

🔥🔥🔥

nimble island
#

HAMILTON DID THE OTHER 51

slate glen
#

😂

nimble island
#

lmao

#

this is peak

#

but i dont want it

slate glen
#

it's for my community really

#

group of friends, lot of inside jokes here

nimble island
nimble island
slate glen
#

this is easily my favorite effect

nimble island
#

why does it say sped

slate glen
#

i don't think i've seen it in another mod

#

but i could be wrong

#

probably am wrong

nimble island
#

no its original

#

ive downloaded over 30 mods

flat valve
#

i have something similar with xmult

nimble island
#

sorry no its plaigiarism herbie

slate glen
#

i've been had

flat valve
#

i change my mod all the time to stop overlap lol

slate glen
#

meh

#

i will shamelessly steal some

#

but my mod is not for public consumption so that's fine imo

flat valve
#

that's fair, as someone with a public-facing mod if it's overlap with a mod people are likely to play with my own i'd rather take it out

slate glen
#

would not dream of tryna take credit for other people's work

#

but for just me and my mates, meh

#

just made this one, unsure on balancing

#

aura isn't that great, but at the same time, do i want higher odds for it

flat valve
#

it's about 1 card edition a round if you play around it

slate glen
#

hmm

#

maybe it's fine then

flat valve
#

i think that's fine for an uncommon, but spectral packs are otherwise the only way to get card editions

slate glen
#

def feels too powerful to be a common

#

not consistent enough to be a rare

flat valve
#

yeah you'd have to put it down to about a 1 in 5 for it to be a balanced common imo

slate glen
#

also got this one for consumable creation

#

i liked the idea of a wheel before the wheel dogekek

#

sorry i'm just shamelessly joker dumping in forge chat now, my bad

flat valve
#

on average, it takes 5 rounds for this to hit once, or 2 antes with a skip

slate glen
#

back to quietly finding new bugs

flat valve
#

it might be a common

slate glen
#

i'll make it common for now

#

ty

flat valve
#

np

#

but can you imagine the potential...

slate glen
#

yeah i've seen another one like that

#

gains 0.5 xmult when wheel fails

#

bunco?

flat valve
#

maybe?

#

i thought that was cryptid's wheel of hope but i don't play much crpytid

#

it used to be +30 chips but now fortune-related grab bag things also scale it

nimble island
#

im trying to make a consumable that boosts your mult by x5 but you have a 1/10 chance to destroy all your jokers (including itself) after every round

slate glen
#

naughty

nimble island
#

btw (and i wont stop saying this) on friday I beat drspectred in pokermon multiplayer on stream and it was a charity stream. he donated $100 to TENT after i beat him

#

my best brag

slate glen
#

multiplayer eh

#

i used to be a mod there

#

that's my best brag kekw

#

but then it got too big for me to keep up

heady dock
#

what are these doing here, i didnt make them and the joker doesnt have any probabilities

nimble island
heady dock
#

joker slots and consumable slots should be added to passive effects

#

probably some other stuff but i cant think of any

#

oh shop slots probably

heady dock
nimble island
#

does it change anything about the joker

heady dock
#

what does

wispy fog
#

is handsize an option yet, it'd make a Joker im coding for my mod way easier

nimble island
heady dock
heady frost
heady dock
#

they dont show up anywhere in the edit tab

heady frost
#

oh wait

#

i just had a look

heady dock
#

it doesnt have probability

heady frost
#

remaining and random

#

wth

slate glen
heady frost
#

send json lol

heady dock
#

remaining is the one i made btw

flat valve
#

hand size is really annoying tbh i can see why its only got partial support

heady dock
heady frost
heady dock
#

though i think it might be because i clicked the probability group thing on accident and then deleted it

#

and now the variables are just there

heady frost
#

i think it is just making variables out of thin air

#

will have a deeper look at it tomorrow but i see the issue

nimble island
#

its become sentient

heady frost
#

tomorrow i also want to get lots of effects done and add the ability to export individual jokers as code

meager ginkgo
#

is there a way to make a joker not perishable compatible

heady frost
nimble island
#

i thought eternal also meant perishable and rental, like all the bad effects

flat valve
#

you can set seperate compat

heady frost
#

yeah it shouldnt be a hard addition

flat valve
#

if you want to do it manually just add perishable_compat = false as a variable in your SMODS.Joker

#

same with eternal_compat = false

meager ginkgo
#

sob

#

i was going to play with this but none of my joker concepts work 😭

slate glen
#

yo

#

@heady frost i think my destroyed card is taunting me from beyond the grave

flat valve
#

scary ghost cards

#

this happens if you destroy cards in an improper context iirc

heady dock
#

okay so this might be an issue

#

maybe dont let the inspector be as tall

nimble island
nimble island
#

no polychrome for me ig

heady frost
#

i can do that now actually

heady dock
#

okay currently i can fix it by making my browser window thin

nimble island
heady frost
slate glen
meager ginkgo
# nimble island what were some of them
  1. joker that gains xmult when a card changes at all (edition, rank, suit, seal, enhancement, etc)
  2. joker that destroys a random card in hand on scoring a stone card
  3. joker that doubles break probability but increases xmult of spade/club glass jokers
  4. joker that gains xmult when your played hand has exactly 21 chips
heady frost
flat valve
nimble island
flat valve
#

the only one that's difficult is 1, because i think you would have to hook/patch every function that modifies cards, which is a lot of them

heady dock
heady frost
heady dock
#

i think an option for any of the destroying effects to instead destroy all cards in the area would be good to have

heady frost
heady dock
#

also there should be a card edition condition since there is one for all the other properties

flat valve
# meager ginkgo 1. joker that gains xmult when a card changes at all (edition, rank, suit, seal,...

here's the calculate function for 2, including comments. if this doesn't work ping me

calculate = function(self, card, context)
    if context.before then
        local has_stone = false
        -- check for a stone card in scoring hand
        for _, playing_card in ipairs(context.scoring_hand) do
            if SMODS.has_enhancement(context.other_card, 'm_stone') then
                has_stone = true
                break
            end
        end
        -- if there is a stone card in hand, flag a random card as a card to be destroyed
        if has_stone == true then
            local chosen_card = pseudorandom_element(context.full_hand, pseudoseed("seed_name_here"))
            chosen_card.ability.to_destroy = true
        end
    end  
    -- destroy marked card
    if context.destroy_card and context.destroy_card.ability.to_destroy == true then
        return {
            remove = true
        }
    end
end
heady dock
#

yeah appaently not lmao

heady frost
#

i can probably add that in real quick after i fix this inspector height stuff lol

#

that would be easy

flat valve
#

3 requires a hook or a patch afaik, but 4 is very doable

#

in fact, i have done it, including ace as 1 or 11 detection

nimble island
flat valve
#

replaces the entire calculate function in the exported SMODS.Joker object, you should be able to do the description and property settings in jokerforge and just not do any of the calculate logic

meager ginkgo
#

where do i find the calculate section

heady frost
meager ginkgo
#

yeah i mean where do i find the place to put it

flat valve
#

SMODS.Joker is just a big table of stuff seperated by commas basically, you can just insert any number of entries in any order like so

meager ginkgo
#

gotcha

heady frost
nimble island
#

finally shiny cards

meager ginkgo
#

where do i find the SMODS.Joker

icy crow
#

main.lua

meager ginkgo
#

how do i open a lua file

icy crow
#

normal text editor

#

notepad for example

meager ginkgo
#

ah gotcha

icy crow
#

or vscode

meager ginkgo
#

thanks

flat valve
#

it's better to use vscode but that takes a bit of setup

heady dock
#

notepad works but i would recommend something like notepad++ or vsc for coding stuff though

icy crow
#

highlighting is nice

flat valve
#

yeah 100%

nimble island
#

Ive been meaning to ask, @heady frost did you use js for the website

heady frost
nimble island
#

cool

heady frost
#

literally everything is done in typescript lol

flat valve
# meager ginkgo 1. joker that gains xmult when a card changes at all (edition, rank, suit, seal,...

here's no. 4, quite a bit more complex

    calculate = function(self, card, context)
        if context.joker_main then
            local rank_sum = 0
            local ace_count = 0
            for _, playing_card in pairs(context.full_hand) do
                -- tallies the base chips of all scored and unscored cards and the number of aces
                if not SMODS.has_no_rank(playing_card) then
                    rank_sum = rank_sum + playing_card.base.nominal
                end
                if playing_card:get_id() == 14 then
                    ace_count = ace_count + 1
                end
            end
            -- checks for all possible combinations of aces as 1s and 11s
            for i = 1, ace_count + 1 do
                -- less than 21
                if rank_sum < 21 then
                    return {
                        message = rank_sum .. "",
                        colour = G.C.FILTER
                    }
                -- exactly 21, here's where the xmult gain happens
                -- you would also need to add config = { extra = { xmult = 1, xmult_mod = [however much you want to add to xmult] } } into SMODS.Joker
                elseif rank_sum == 21 then
                    card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_mod
                    return {
                        xmult = card.ability.extra.xmult = card.ability.extra.xmult + card.ability.extra.xmult_mod
                    }
                -- change one ace from counting as 11 to counting as 1
                else
                    rank_sum = rank_sum - 10
                end
            end
            -- only runs if all aces count as 1s and hand chips is still higher than 21
            return 
                {
                    message = "Bust!",
                    colour = G.C.RED
                }
        end
    end
heady frost
#

i dont even like the language that much but its a necessity

heady frost
flat valve
nimble island
#

im not used to consistant updates from modders this is amazing

heady frost
#

i am quite quick lol

#

but tbf both changes were easy ones, the random chance stuff took me basically all day lol

heady dock
#

C:dark_edition (edition text effect) should be added to color options. idk if visualising it in the editor would work but would still be a good option to have there

#

okay idk if its dark_edition or just edition anymore

#

the code uses dark_edition though

heady frost
#

tomorrow i wanna hammer out so many little things and wittle down the issues so that will be a tomorrow job

#

i also want to revamp the UI (not the rulebuilder stuff i like that) but i dont know web design lmao

keen glade
flat valve
#

would be cool to have a colour picker for variable colours

heady frost
heady dock
heady frost
#

and at some point i want to make a button that can auto generate descriptions based on the rules you have defined (will not be as good as manually writing it, but gives you a good base to start with)

heady frost
#

i wanna make the docs a mix between actual smods knowledge, and more in depth explanations on how jokerforge generates the code it does

#

aswell as how build upon the code yourself

flat valve
#

you would need to probably add a search function for info_queue integration, the keys of some vanilla objects are counterintuitive

heady frost
#

but docs take a good while to make

heady frost
flat valve
#

at least you can scrape the localisation files for key/name pairs

#

theoretically you could do the same locally for any mod with a localisation file

keen glade
#

-# j_ring_master

heady dock
#

probably wouldnt be used a lot, but balancing score (like plasma deck) could be added as an effect at some point

flat valve
#

i think that's actually really easy to implement

#

you just return { balance = true } in calculate

heady frost
#

tbf if it's that easy I'll add it tomorrow lol

heady dock
flat valve
#

yeah i think so

#

if you wanted to make it the last thing to happen you can always just do it in context.final_scoring_step

young relic
heady frost
heady dock
#

also, is splitting context.jokers_main to its own option currently planned

nimble island
#

I also think it would be a cool addition if we could make the little pixel art for the icon of the mod

#

instead of having the default uncommon joker icon

heady frost
heady dock
#

what about the things that happen before scoring? like space joker or square joker scaling

heady frost
#

then you would use hand played for joker main context. i could make a trigger for context.pre_joker or context.before though

heady dock
#

those two could be added later on probably, they arent extremely important but could have some uses

heady frost
#

yeah, the thing with adding triggers is its very easy to actually code into jokerforge, its just you dont know how many effects and conditions are compatible out of the box

#

im currently experimenting with updates to the joker cards styling because i just dont like it that much

hidden oriole
# slate glen

that looks the sme as you did ctr+r with debugmode while card is being scored

young relic
#

i'm probably doing this wrong

real hill
#

this is awesome actually

young relic
#

uh

#

trying to use a variable for chance doesn't work properly

heady frost
#

i ll take a look at it tomorrow

#

wondering what you guys would think of a potential colour/styling change

young relic