#vivid/stasis Balatro mod

1 messages · Page 1 of 1 (latest)

ionic wigeon
#

Mod officially sanctioned by cheryl

#

Every single one of these(besides obama come on), and another card WIP are all at 0%
will edit as time progresses

#

ignore my complete typography error in the title

#

vivid/stasis Balatro mod

lilac radish
#

lmaooo

elfin notch
#

ooh this is fun

ionic wigeon
#

:3

#

this is in the idea stage

#

so throw out

lilac radish
#

idea: add in the entire ||betweenspace|| to unlock jokers

ionic wigeon
#

in my balatro mod??

ionic wigeon
#

we need a ranch joker dont we

livid field
#

is this a reference to the hit condiment ranch from the united states of america

lilac radish
#

saturday eats a raw egg and says poggers

graceful grotto
#

those look nice

ionic wigeon
#

any complaints

graceful grotto
#

TVO seems powerful with a bunch of negatives/legendaries

#

bear creek park also synergies well with fib

ionic wigeon
#

Eri :)

elfin notch
#

commentator's curse feels a little too weak, in comparison to like, card sharp

ionic wigeon
#

hmm

elfin notch
#

honestly okaihou express could be fun if it was xmult instead

#

base mult feels a little weak considering how hard it is to play without numbers

#

tsuki also feels weak, its like, a different hanging chad with better synergy with glass

ionic wigeon
#

yeah idrk

#

high card retriggers 6 times ig

ionic wigeon
#

any notes

#

?

elfin notch
#

hmmm

#

what if

#

"all cards retrigger for each unscored card played?"

#

idk

graceful grotto
#

do we know when this mod will start production?

ionic wigeon
#

asap

ionic wigeon
#

still making sure everything is good

ionic wigeon
#

idrk entirely how to use the api, but once I figure out how I'm going to start cranking these out

#

might make a github for collection purposes

graceful grotto
#

mods need to be open-source on github, so best to create it soon

ionic wigeon
#

yeah fair enough

graceful grotto
#

there's some people here that can help with creating jokers

#

its also nice to look at the source code for help

#

its not public but iykyk

indigo magnet
#

btw from what i know the shopkeeper's name is Tori

ionic wigeon
#

it is, Tori and shopkeeper are two different cards because at some point they were thought to be different iirc

#

or just funny nonspecific stuff

#

I'd love some help/balancing though

livid field
#

theres no problems there

#

you just use 7zip or a similar software to open the archive that is the .exe and read the contents

#

not comparable to something like disassembling or decompiling a games binaries, balatro does not have any such thing

loud urchin
livid field
ionic wigeon
#

...

loud urchin
#

I was just clearing up a possible technicality. Not really any other point I was trying to make

ionic wigeon
#

isn't this conversation more fitting of a... general modding chat discussion

livid field
#

meh

#

you just need to know that using the games source code is a normal thing and that demonizing it like the other guy did is pretty wrong

#

that's all im trying to say

ionic wigeon
#

anywhom, I'm wanting to start working on this in code, but I want someone to help ig

livid field
#

well ask questions and people will answer them

ionic wigeon
#

I have no idea where to even START

#

I have VSC and stuff, but idk where the balatro joker code that I can reference is

livid field
#

oh you mean

#

that's smods wiki stuff

ionic wigeon
#

noted

livid field
#

wrong link

ionic wigeon
#

no worries

livid field
#

but the stuff is under SMODS.Center there

ionic wigeon
#

alright, I'll probably start working on it soon
Will use a placeholder of some kind

#

how should I sort the jokers? by rarity then by name?

#

past 150 anyway

#

where can i make this in?

#

im trying to get everything set up properly on a github and stuff so I can start working on it

opaque burrow
ionic wigeon
#

im feeling really stupid right now

#

what do i do lmaop

#

more specifically, how do i make a github page to upload these to

#

idrk how mod pages are meant to look tbh

#

also, how do i use the steamodded api

opaque burrow
# ionic wigeon more specifically, how do i make a github page to upload these to

I assume you made an account, click your profile in the top right of github, your repositories, the green New button, and that'll be your base.

Install Github Desktop, put a work directory somewhere, and start making your mod in there. Once you're ready to put your work into the world, start up Github Desktop, and push your files to the repository.

Mod pages on github are usually done in a README.md, which you can stylize with markdown - if you don't know how to use markdown, search up a markdown editor, it's just the stuff that lets you do stuff like italics and bold in discord.

livid field
ionic wigeon
#

doesn't that require a... connection to the api??

livid field
#

all the arguments and what you need to put are detailed on the wiki

opaque burrow
# ionic wigeon also, how do i use the steamodded api

This you will have to learn for yourself and figure out how to program, and if you don't, you'll be relying on someone else to program for you.

It can happen, but most of the time, if they have enough interest to learn how to program mods for Balatro, it's because they have projects in mind they already want to work on, so they probably won't be as inclined to take on other people's projects as well, and it most likely won't get picked up by anyone.

I do heavily suggest reading my example joker mod in the steamodded examples carefully, I think I did well with introducing people with only a rough understanding into it, but I do also recommend looking into other well known mods - excluding Cryptid, because it does a bunch of code very weirdly for several reasons - but, just look through, read them, and see how they do things.

livid field
#

its local

ionic wigeon
#

im used to having to import for shit like this

#

if not thats cool

livid field
#

im confused

#

you know lua right?

ionic wigeon
#

hahahaha

#

no

#

thats the problem

#

i know like 6 other coding languages

opaque burrow
#

All the API stuff is automatically usable, because steamodded loads it's API and then loads mods into the game, so if you want to use any stuff from steamodded, just start with SMODS.whatever.

ionic wigeon
#

oh ok yeah that makes sense

#

code like i imported it already lol

opaque burrow
#

If you were doing a mod using lovely's dll injector directly instead, it'd be a completely different story, but Steamodded is very nice.

ionic wigeon
#

do i need a thing to use as a placeholder?
does someone have a like... placeholder png

opaque burrow
#

There isn't really, you could just copy the standard Joker from balatro's resources and use it for your placeholder though.

ionic wigeon
#

alright so, for example

#

Nurse, the easiest one here I think

#

how do I display how many chips it will give(do i do this at all?)

livid field
#

if you want you can just register an atlas with a placeholder image and just use that for all the jokers though

livid field
ionic wigeon
#

im on the page, i just dont know how exactly to write the display text

opaque burrow
#

Line 42.

ionic wigeon
opaque burrow
#

That appears to be line 106, which is not line 42, which is under the part that explains the structure of jokers.

ionic wigeon
#

this is what im referencing to... make the display text in the first place

opaque burrow
#

Read the comments I left, they're there to explain things.

ionic wigeon
#

so how do i make the chips scaling value 40

#

would i change this to chips = 40?

#

or chip_gain 40 and chips = 0

opaque burrow
#

Second one, and then you'd add the value of chip_gain to chips when the scaling triggers. chips would obviously be what you'd use to actually add chips during the scoring phase.

ionic wigeon
#

gotcha

#

how should i balance cost for these

opaque burrow
#

Up to you, cards do have different costs within their own rarities, and Legendaries all have a value of, I'm pretty sure $20,

#

I'd say look at the base game cards, and use that to evaluate it based on what you think fits. Give me a second to find that file, it's been a bit and I no longer have it memorized.

#

It should in game.lua, around line 367.

#

It contains cost, rarity, and names, and all the stuff you're probably defining at the moment, so if you want to base them on vanilla, it's a good place to look at.

ionic wigeon
#

i think 4 makes sense

#

based on other chip jokers that are common

#

having trouble figuring out how loc_vars works

#

mostly because i dont know what the variables do, or the requirements for the vars

opaque burrow
#

The vars are what you define yourself in loc_vars. Should only be a few lines down from the loc_txt description.

#

Wait, misread that as trouble with loc_txt -

ionic wigeon
#

what is the "num of hands remaining" variable

#

i need to multiply chip_mod by that variable to return the chips

opaque burrow
#

The purpose of loc_vars is to provide loc_txt with text variables. It's localization variables and localization text.

ionic wigeon
#

mmhm

#

i still... need hands

opaque burrow
#

If it's not contained within the joker itself, it's usually stored within G.GAME, which is G for Global, and GAME is a table with information relating to the current run. I think the table is created somewhere in game.lua, give me a second to look for it.

ionic wigeon
#

thank you!

opaque burrow
#

Yeah, the function is Game:init_game_object in game.lua.

ionic wigeon
#

alright one sec

#

uh... how do i check the hands remaining using that

#

im having a brainfart

opaque burrow
#

Probably somewhere in there under current round, so it'd be G.GAME.current_round.whatever_it_uses_to_track_hands_remaining, and then you'd use that as the variable.

ionic wigeon
opaque burrow
#

Looks like you found it.

ionic wigeon
#

ok uh

#

im having issues with a couple of things

#

is this good?

#

I want chips to stay at 0, but idk how to make chip_gain affect the outputted chips

opaque burrow
#

Is chip mod in the, I think it's return in the calculate function?

ionic wigeon
#

yes

opaque burrow
#

Looks like it should be applying to me, can you send the calculate function of your code?

ionic wigeon
#

idk how to make the message after

#

:(

#

this message seems detached from the chip_mod, and idrk when chips is ever... used

#

do i need extra.chip_gain at all??

#

the chip value never changes

#

and chips * 0 is 0

opaque burrow
#

Yeah, you don't really need chips at all. I'd keep it as chip_gain or hand_chip_value or whatever you want - name doesn't truly matter, it's more there for clarifying it for yourself.

ionic wigeon
opaque burrow
#

You'd keep chips and have chips = chips + chip_gain if it was scaling on an action, but this is just multiplying it with the hands remaining per round, so not really scaling.

ionic wigeon
#

im gon remove chips

opaque burrow
#

Which joker is this for?

ionic wigeon
#

Nurse

opaque burrow
# ionic wigeon ?

vars = {card.ability.extra.chip_gain * G.GAME.current_round.hands_left} if you don't want it to always just show the unmodifiedchip_gain value.

opaque burrow
ionic wigeon
#

am i missing anything here

opaque burrow
#

Check loc_vars,

ionic wigeon
#

ah good catch

opaque burrow
#

Looks like it should function perfectly fine on first glance to me.

ionic wigeon
#

i dont have functionality set up yet

#

and the joker image is just a placeholder

opaque burrow
#

The calculate function is the functionality.

#

All it needs is a placeholder, I think, and depending on when hands left is counted, you may need to add a +1 to the chip calculation, like if you have 4 hands, play 1 hand, and it goes down to 3 before it ends up reaching the scoring phase, but I don't think it does.

#

Pop some stuff in assets, assign the atlas, put either a mod header at the top or a metadata.json following the wiki on Steamodded, and you should be able to load it up and test it.

ionic wigeon
#

will make a mod header

#

one moment

#

what dependancy does this have?

opaque burrow
#

You can run it with none, or you can throw the current steamodded version in there.

ionic wigeon
#

badge color?

#

/ prefix

#

what do i put for those??

opaque burrow
ionic wigeon
#

how do i make my mod show up in the mods menu?

opaque burrow
#

Badge color is because mods give new items a custom badge to show what mod they're from, under rarity or where you'd see editions like holographic, that says your mod name. Badge color changes that color.

Prefix is just by default the first 4 letters of your mod id, it's mostly to prevent conflicts, like if you have a mod called abcd and it has a joker called "Joker", the key would be called abcd_j_joker, and would not conflict with the base game's joker (just j_joker), and it also wouldn't conflict with efgh's "Joker", since it's name is internally efgh_j_joker.

opaque burrow
ionic wigeon
#

adge/prefix are unedited

opaque burrow
#

Change or delete the prefix, since it might conflict with my prefix, also, MOD_AUTHOR needs to be in [].

ionic wigeon
#

k

#

do i need anything else?

opaque burrow
#

Probably not, but you mentioned knowing other programming languages, I'm sure you know trial and error, boot it up and see if it works.

ionic wigeon
#

not entirely sure whats confusing it

opaque burrow
#

Whoops, need to end your if and your calculate.

ionic wigeon
#

still this

opaque burrow
#

Also needs a comma after key and after the last } for loc_txt.

ionic wigeon
opaque burrow
#

Need a comma after the end for loc_vars, now.

ionic wigeon
#

mannnn still

opaque burrow
#

What you're doing is basically defining a table for Steamodded to read from, and you're making a list of information, and you're saying loc_vars is a function, that does the following, so you're defining a function as you're putting it into a list.

#

I think remove the comma after the return, it might be making the return expect a second value?

ionic wigeon
#

...

#

??

opaque burrow
#

Have you been reading the lines at the very top? Very helpful information, something is up with your atlas.

ionic wigeon
#

i know

#

i dont know WHY

opaque burrow
#

Do you have at as /assets/1x and /assets/2x and have a picture named vividstasis1.png in both?

ionic wigeon
#

yes

#

and have a picture in them both

#

(i replaced the top left image with a placeholder)

opaque burrow
#

Named the exact same and everything? Made sure it's a .png and not .jpeg and everything? It's having issues with finding the atlas, is what that is.

ionic wigeon
#

iono man

opaque burrow
#

Zip up the assets folder and send it here.

ionic wigeon
#

i legit just copied an image from cryptid to put the placeholder over

#

is that ok lmao

opaque burrow
#

It might be, I can't really tell what the issue is, and I'm not sure what other information to ask, so probably easiest to see it myself.

ionic wigeon
opaque burrow
#

That's x2 and x1, not 2x and 1x.

ionic wigeon
#

oops...

opaque burrow
#

Simple spelling mistake, happens to the best of us, especially in programming.

ionic wigeon
#

???

#

ohhh

#

YAY

opaque burrow
#

Oh, by the way, for loc_vars and loc_txt, you want that 40 to be #1# since it's the chip_gain amount, and you want the thing that's #1# to be #2#, and add another variable into the loc_vars that's the same chip_gain * hands_left line you used in the calculate area.

#

Functionality should still work, but description is probably off.

ionic wigeon
#

gotchaaaa

opaque burrow
ionic wigeon
#

thank you!

#

the card works!!

opaque burrow
#

Yeah, and now you know the basics.

ionic wigeon
#

yay!

#

thank youuu

ionic wigeon
#

thinking of what card to make next

#

some of them need reworks still

opaque burrow
#

I'd suggest maybe Eri in order to learn a little bit about contexts.

ionic wigeon
#

im making movator, and then I'll do Eri

#

am wondering if I can do (max hands - hands left) to get hands played or something

#

oh WAIT

#

if someone discards it needs to reset movator

#

how do i do that

opaque burrow
#

Here's the specific area.

ionic wigeon
#

need to write an if statement that says that a discard happened at all

ionic wigeon
#

anyone want to test these in a run?

#

wanna check to make sure the two I've added aren't too overpowered, and interact with blueprint

#

(for commons anyway)

ionic wigeon
#

never actually posted the link did i

ionic wigeon
trim olive
#

new to modding, where am i putting this file?

#

i put it in the mods folder and it just crashes after loading

ionic wigeon
#

what's crashing?

#

you need steamodded and this

#

most recent steamodded vers

trim olive
#

this is the crash, i already have lovely and steammodded

ionic wigeon
#

oh I didn't patch something

#

uhhh

#

one moment

trim olive
#

dviperNodokie dokie

ionic wigeon
#

I'm otw home now, I'll ping you again by X:15

#

didnt properly fix my statement there I think

trim olive
#

okie dokie 🙂

ionic wigeon
#

@trim olive you can redownload now, fixed the issue

trim olive
#

rightyo, i shall do it after this rundviperLove

ionic wigeon
#

would highly recommend temporarily removing all mods besides base for the v/s mod btw

#

it only has 2 jokers atm

trim olive
#

im gonna quit this run because its not possible to lose😅

trim olive
#

i might not even know what jokers are modded😭

ionic wigeon
#

go to collection

#

there are 2 placeholders with no image

#

151/152

trim olive
#

btw is there a reason that there is 'assets' AND 'assets.zip'

ionic wigeon
#

thats

#

a mistake!

#

will fix

trim olive
#

now i must sit and pray i get the jokersdviperExcited

ionic wigeon
#

yay!

#

they're both commons for now

#

I'm working on adding more actively

trim olive
#

everybody stay calm

ionic wigeon
#

!!!!!!

#

oh my holographic

#

that card might straight carry LOL

trim olive
#

i now need to stay alivedviperSweat

trim olive
#

what is an unplayed hand?

#

i assumed that'd be how many hands i have left when the round ends but the card didnt increase when i had 3 hands left over

ionic wigeon
#

unplayed hand is per round

#

you have 4 hands traditionally

#

i need to subtract 40 i think

#

are you playing on blue deck?

trim olive
#

ohhhh, wait i get it now

#

no im not

#

red deck

ionic wigeon
#

yeah its too high

#

one sec

trim olive
#

i thought it increases by 40 at the end of each round which is why i was confused

#

stay calm x 2

ionic wigeon
#

movator had a display issue on the previous vers

#

i patched it just now, but it will still glitch in your game i think

#

let me know if they're too good as commons lol

trim olive
#

not sure how modding works but i think that they should update at the end of the hand rather than at the start

ionic wigeon
#

uhhh

#

yeah probably

trim olive
#

oh right, it does update at the end of the hand but visually it updates at the start of the round

#

it says upgraded but then does the number it was before the upgrade

ionic wigeon
#

yes

#

it does feel weird to me too

#

idrk

trim olive
ionic wigeon
#

oh naur

#

what ante?

trim olive
#

only 6, the game wasnt giving me any jokers, i was being carried by card luck so i didnt need to discard any so i was racking up the movator

#

i then forgot i had movator and dicarded so i was no longer getting +50mult

ionic wigeon
#

yea

#

rip o7

trim olive
#

start of ante 8 and im yet to find one of the jokers. im being scammed...

#

got lvl 40 pair though😭

#

died on ante 11 but i got it again on ante 2dviperExcited

#

ah found an issue

ionic wigeon
#

?

trim olive
#

it says +40 mult but the actual mult resets each round

ionic wigeon
#

ahhh

#

uh

#

yeah working on that

#

testing, then redownload?

trim olive
#

okie dokie, i havent had a display issue with the movator yet btw

ionic wigeon
#

lol

trim olive
#

OHHH

#

i thought you meant the card would look weird lmao.. oops

trim olive
#

"cards discarded: 24" I wonder which joker I was using

ionic wigeon
#

psssh

trim olive
#

they were at like +200 mult

ionic wigeon
#

damnnn

trim olive
#

"they" because i duped one

ionic wigeon
#

new joker in the works

trim olive
#

i like repetition jokers🥹

ionic wigeon
#

:3

ionic wigeon
#

it should work now

#

I don't remember if I pushed it before leaving for school

#

but I might just recode it on my laptop at school and push it there

ionic wigeon
#

anyone who wants to test lemme know how it goes

trim olive
#

damn

#

just built up a movator to +150 mult with burglar and it got reset because when 'the hook' boss discards 2 cards that counts as a non consecutive hand

ionic wigeon
#

hmmph

#

need to look into that

trim olive
#

retrigger all cards in final hand of round is called dusk

you could rename mountain view to dawn to make it match

ionic wigeon
#

dawn is a character in vivid stasis

#

dawn will be a legendary

trim olive
#

i see, okie dokie

ionic wigeon
#

though when you get on a mountain, what is easier to see?

#

a sunset

trim olive
#

im still yet to get a mountain view.. ive played like 5 games and got multiple of the other ones

ionic wigeon
#

damn...

#

working on another one

ionic wigeon
#

smh

trim olive
#

nurse

#

one day ill get mountain

ionic wigeon
trim olive
#

i got 1.5mil on ante 10 earlier because movator is a little strong when used with burglar

ionic wigeon
#

working on it

trim olive
#

where tf is this mountain top😭

ionic wigeon
#

idk!!!

#

i think the mods buggex

trim olive
#

ive been making some repetition decks and the game is scamming me

ionic wigeon
#

@trim olive check the github, added new joker and should have fixed the mountain scam

trim olive
#

damn i didnt get notification.. ill have a look when i wake updviperLove

ionic wigeon
#

:3?

trim olive
#

sleeping schedule is a bit dead, i slept for like 11hrs and havent been on balatro yet

ionic wigeon
#

you're good

trim olive
#

rightyo, ive finished making my uno card texture pack, time to use it while using your mod

ionic wigeon
#

!!

trim olive
#

the movator resets every hand

ionic wigeon
#

?!

#

how the FUCK

trim olive
#

😅 it was good changing it to 2 because 5 was busted but yeh.. the number doesnt go up

ionic wigeon
#

odd...

trim olive
#

every hand it does the "reset!" thingy

graceful grotto
ionic wigeon
#

2 mult not

#

2 card

graceful grotto
#

ohh

#

😭

ionic wigeon
#

apparently I accidentally broke it somehow

#

need help still

#

@opaque burrow
can you help me?

opaque burrow
#

With what? Ideally send the snippet of code and explain what's going wrong.

ionic wigeon
#

ok so
I can't send the snippet rn, but, its resetting every hand

#

only happened after I added the hook context

opaque burrow
#

Does hook have context like that? Doesn't look like it should be triggering anyways,

ionic wigeon
#

it reset on hook discard

#

I just didn't know how to specify

opaque burrow
#

Is the problem happening on the version you have on github?

ionic wigeon
#

yes

opaque burrow
#

The multiplier is resetting after every hand played for a maximum of 2 mult?

#

Or do you specifically want it to not reset after the Hook discards 2 cards?

#

Green joker gets -1 mult after the hook discard, which if you're trying to make a riskier version of Movator where you gain mult faster at the risk of a single discard completely ruining what you have built up rather than a simple -1 mult, I think it's true to the game to keep it, especially as a common. It's just like running into one of the suit bosses while having suit jokers of that suit.

opaque burrow
#

Anyways, after a bit of testing, I've decided I have no idea how the hook context works. You can do and G.GAME.blind.name ~= "The Hook", ~= means not equal to in Lua, and that should work, with the caveat that you'll be able to discard normally during the hook and it won't reset you then either.

ionic wigeon
#

mmm

#

I might just keep the hook nuking then

ionic wigeon
#

I'm getting music for this :3

#

you'll see

ionic wigeon
#

Mods still in development, just on hiatus while I wait for others to send ideas for something I'm working on

ionic wigeon
#

still waiting ;(

ionic wigeon
#

I knowss

#

dont worry the song is in development and I have a couple ideas myself

#

new jokers should be added in 1-2 days

noble sentinel
#

hoi, just popping in to keep an eye out to see where this mod goes tuturu

ionic wigeon
#

hi @noble sentinel :3
currently in progression of making the first legendary, and getting a song from kyotsugyon

#

i do have a github page if you want to download the mod

noble sentinel
#

sure thing

ionic wigeon
#

(lovely is also shown how to download here)

noble sentinel
#

am well aware, thank you regardless

ionic wigeon
#

my bad+

ionic wigeon
#

I swear guys im not dead just in deep stasis

#

hahahahah

ionic wigeon
#

teehee

ionic wigeon
#

currently working on Plain Rice, which is like this so far. I dont know how to make it check for cards / booster packs and need help with that

ionic wigeon
#

as it turns out cards and booster packs both count as cards when purchased