#⚙・modding-general
1 messages · Page 5 of 1
I now get this error, but it seems to be improving!
Yep, you can see a "Mods" button
let me take a look
oh yeah
i think what's going on is you're directing people to the latest nightly build on github
Even if no mods are loaded @tacit mountain ?
Yep
there are some issues with the modloader rn I think
yeah that release didn't work
I know why hold on
here's the files if you want em
@jovial escarp @near ridge Can you try again ?
i have the same issue , when i drag and drop into the .exe a cmd open and shut down after that , i dont have time to read and when i lunch balatro , i dont habe the button mods
oh does it grab stuff live from a repo
ok
with the 0.6.2 ?
nope
my priority with the colors is making sure there's enough contrast between spades/clubs and hearts/diamonds
Yep 0.6.2
i tried 0.6.2 and nah still getting the same error
0.7.0 is still a Pre Release better not use it unless you need it
there isnt enough between the spades and clubs
maybe try making the spades more purple
Can you share me the error again ?
same thing unfortunately
i am running this in a Wine bottle because the linux instructions need a lot of changes due to me using OpenSUSE Tumbleweed
i have the same error
On latest.
Can you try again ?
same thing
yup
sorry if you got your hopes up
And now ?
unfortunately the issue persists
nope
what file is it not finding i wonder
i broke the game again naneinf
not a number to the infinity power
WHAT DID YOU DO
Well, let me get home and I will generate a new executable
take your time
i broke the game
its even crazier that people have gotten naneinf without cheating
yep
its crazy to get naneinf without mods
while yes naneinf is nice you only actually need like 17 jokers to get naneinf if youre excluding steel cards
i wonder if there's a video anywhere of someone reaching naneinf
i think it would be funny if the game had a hidden (non steam) achievement for getting naneinf
its somewhere in there
This clip is from trousers2000 in the Balatro Discord server. Just wanted to upload it to show everyone that didn't want to download a sketchy 1 GB file from a random link.
lol
bro just copy the steel king with cryptid
thats epic
i was thinking about something simmilar using the snake blind i completely missed this lol
serpent?
There has been no greater lie in history
@jovial escarp Is it still happening ? Everything is working on my side
this is so fucked
Ok it was probably cache lol
I dream of this every time that I open this game and play gold stake on ghost deck.
LET BARON COOK
awesome
Yee it worked!!
Technically it has been balanced, the game just can't handle the value
I think someone did the math and it came out to e4665 or something
e4665???
idk why my mod isn't being detected
It has been balanced. but it's not Balanced
that’s way more than e308 lmao
--- MOD_NAME: RGBP Card Colors Pack
--- MOD_ID: RGBP_Cards
--- MOD_AUTHOR: za0za_0
--- MOD_DESCRIPTION: This mod changes the standard card colors to make Hearts red, Diamonds green, Clubs blue and Spades purple.
----------------------------------------------
------------MOD CODE -------------------------
function SMODS.INIT.RGBP_Cards()
sendDebugMessage("Launching RGBP Card Colors Pack!")
local rgbp_mod = SMODS.findModByID("RGBP_Cards")
local sprite_card = SMODS.Sprite:new("cards_1", rgbp_mod.path, "RGBPDeck.png", 71, 95, "asset_atli")
sprite_card:register()
end
----------------------------------------------
------------MOD CODE END----------------------```
could anyone take a look
@white scarab it was e4665 right?
the folder is named RGBP_Cards
the lua file as well
i don't know what i'm doing wrong
I see now
the mod author HAS to be in brackets
texture mod has been posted
please juice it up
Yep
Yeah, that or a lil higher since I didn’t account for the polychrome jokers
do yall use any specific programs to help make sprites for custom joker cards or is it just good ol ms paint
I like https://krita.org/en/ for raster art, but haven't actually made Joker sprites.
Krita is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.
I've been using paint dot net. But idk what I'm doing when it comes to art
... I guess I made this wee joker sprite as a replacement for non-mod purposes (in Krita).
Aseprite the top dog
It's free if you compile it yourself, or 20$ one time
It's pretty great and has support for plugins if you want to add more to it
https://libresprite.github.io
gonna call this out
LibreSprite is a free and open source program for creating and animating your sprites.
Paint.net works. No ms paint
who even uses ms paint these days
are balatro mods available to be downloaded via thunderstore?
pdn is just better
i don't think any are on there, most of us just share the files in #1209506514763522108 or use a github repo
so it's all manual for now?
depends on what you call manual
we have #1209564621644505158 as our loader
pretty much all mods on here work with it
so you really just have to unzip something into your mods folder... if you wanna call that manual, go ahead
I use aseprite
aseprite is the goat for pixel art
if ur just doing texture changes tho, paint.net is decent
Aseprite is great making new stuff cuz i have access to the whole palette of the game
@carmine flare did you write the uibox override function?
aseprite is probably the best pixel art editor
but i use gimp
i know gimp so i use it
+1 Gimp
I don't think so. I do override the uibox ability function for my mod. Where do I find this function.
I meant the one in your mod, cuz i grabbed that one for the description of mine, i was gonna check if that was allgood
I did write it. It works fine as far as my testing can prove that
It works yeah, it works great, am i okay to use it in mine though?
i think it would be funny if someone made a texture pack that textures the cards all wrong
all kings become 3s of a different suit
Yeah, of course
Also i tried to add colours to the suit variable in the description, but it has an issue with {V:1}{}
Have you got any clue how i'd add the colour of the suit to the description too? Would i need to find a way to add that into the code?
the only way you can tell what hand you play is selecting 5 cards to see what they do 😆
start to decode which cards are which at some point
technically ms paint has layers now, but yeah
it's just a default program, nothing great
Cuz i tried to use {V:1} like idol, but it hates it
this but paired with an automatic randomizer for the textures
pure hell
😆
Wow! is this a sort of Asesprite equivalwent?
yeah, forked off of the last fully open source version of aseprite I believe
Oh, cool! well, I guess I have something to share too then, maybe it will be useful to somebody. There's a modification to GIMP called PhotoGIMP that I think is great
It's basically a bunch of settings and plugins you add to GIMP to make the interface more familiar to photoshop users
It's been useful to me at least
What's up all?
Hi there
I'm trying to figure out what to work on first
on one hand, Hanafuda.
On the other hand, Bunch of random cards
You know...
Wouldn't it be crazy if we could tell Balatro to use different rulesets?
so challenges?
Wee Joker would be awesome if it had a unique sprite like this instead of just being normal joker scaled down
You said Hanafuda cards, so in this instance, imagine having to actually make the hands, like five lights and such
Five Lights is the only one I remember... LOL
short deck poker?
Hanafuda means Flower cards, I kept calling "Flower Card Cards"
lol
I'm just having both the stuff together with hanafuda as a suit and the Hanafuda suit/Score as the rank
Here's the raw asset I made, if you (or someone) wants to try and do something with it.
So yeah, I'm planning to do that or cards from K6T
I feel like the Hanafuda stuff is gonna mess up with the original game, but I'll figure out ways to balance it for both
I'll make a Request post in #1209506514763522108
You adding this to balatro will force me to actually learn Hanafuda proper
Curses haha
lol, semi-learn Hanafuda and KoiKoi
The Point value for Hanafuda are the chip value it gives (so it's either 1, 5, 10, or 20 depending on card), and the Koi Koi score will be the Mult (with an equal multiplier, as you can see with the possible hands)
Hm.. it sounds like a smart rule adaptation
The K6T mod would be just adding ranks
Riichi Mahjong next
people are modding rules into balatro already
i'll hedge a bet and say somebody is going to work on a mod the scope of antibirth on tboi for this game
people that have way more knowledge about game design have the upper hand
im just a sprite switcher
anti what on what?
antibirth mod
the binding of isaac
the mod that, uh,
made it into the game,
because the mod dev just offered to work together on it
oh
Unpopular opinion but I don't like BoA
i dont play it
watching albino play it is exhilarating though
seriously some of the most funny edited stream content on yt
Decided to work on K6T for now
hey folks! took a break for a couple days, but now trying to get this deck mod working again
i'm trying to make a deck which has a similar mechanic to Anaglyph, except instead of the Double Tag, it gives the Negative Tag
so far, i've been able to get the deck to be there, but selecting it immediately crashes the game. i can see that it's citing line 31 as a problem, but i'm not really sure how to fix it
There's no variable named args in that block. Did you mean arg_56_0?
that's how the code was for anaglyph, at least!
changing the "args.context" to "arg_56_0.context" did, at least, fix the crash, which is an improvement! thank you!
however, it's not giving the negative tag
Args is probably defined somewhere in the apply_to_run function and you'll need to figure out where and try and port it into your override
I'm not at home or I would take a quick look but essentially any local vars within back.apply_to_run aren't going to be defined in your override
I'm having a lotta fun coding tbh
Spose that'll change when i actually start coding more abilities rather than just localization
oh yeah, i think that changing code for things like textures and text is much easier
i have a mod for lose quotes right now as well, but i'm only planning on finishing it once i've got this deck done
But it felt so rewarding when i got the effect of watercolour working properly
Modding disables achievements doesn't it? I hope mods get separated into visual and mechanical going forward, and visual ones don't disable achievements at least.
I think there's a mod that reenables them
There’s a mod to reenable achievements, so if you’re purely using visual and QoL there will probably be a configuration for that eventually
The mod options system is still being developed but I’m sure there could be a config where you specify if a mod should disable achievements or not
Does changing file directly into the exe also have the effect of disabling achievements? because for now I just want to use teeny-tiny visual change
So there's 3 face ranks in K6T's deck. Looking at the suit order in, the new order is 0, 1/2, 1-24, Jack, Cav, Bishop, Tower, Queen, King, Ace, Infinity
This is a little different from their order with Infinity between the numbers and face cards
Are you making a deck with tarot playing cards? that's pretty cool
I always thought Knght was a much cooler rank than Jack
I'm recreating the K6T deck alongside hanafuda
Sorry, I don''t know it
Ah, sorry, I was thinking something different entirely, don't mind me
It's cool
I was thinking something akin these lines https://i.etsystatic.com/15543398/r/il/c9ee35/1237427216/il_1140xN.1237427216_8yi4.jpg
Of course, it could cause confusion with Arcana so it's not a good route to take haha
I could add them too
The lower arcana versions
I mean I'm planning to do some big COMPOSITE of all my mods
And some mods are gonna be new suits
I'm always up for the cards themselves looking cool and fresh
Those are probably too detailed to translate to pixel art, but just showing the gist
I do Have to make face cards for Cavalier, Bishop, and Tower
this has been very helpful advice--i've been looking around a lot, and i do feel like i know what i have to actually do. at least, more than before lmao
however i have not actually got the mechanics to work just yet. i'll either try again later tonight, or if someone else looks at the code (or you--no pressure though, would understand if you're too busy or otherwise don't want to for someone random's mod!)
the anaglyph deck code seems to be in Back:trigger_effect which gets passed an args parameter, is there a reason you're adding your deck effect in Back:apply_to_run ?
overriding Back:trigger_effect looks pretty simple to override, no local variables to fiddle with
function Back.trigger_effect(self, args)
local calc_ref = Backtrigger_effectref(self, args)
if self.name == 'Pact Deck' and args.context == 'eval' and G.GAME.last_blind and G.GAME.last_blind.boss then
G.E_MANAGER:add_event(Event({
func = (function()
add_tag(Tag('tag_negative'))
play_sound('generic1', 0.9 + math.random()*0.1, 0.8)
play_sound('holo1', 1.2 + math.random()*0.1, 0.4)
return true
end)
}))
end
return calc_ref
end```
that's how i would write it
IT WORKED!!! thank you so much!!!!!
i believe the reason i was doing it like that was because the example deck given in... the modloader i think? the Absolute Deck, did it like that, so i figured that was how it had to be done
yeah those look like modifiers to the decks themselves before the run starts. i haven't messed with adding decks yet so im not too familiar
i would check that you don't break anaglyph deck or plasma deck with that Back.trigger_effect override. it shouldn't but it's worth testing to be sure
yeah, i believe you're correct there--and thus, the reason it wasn't doing anything (but wasn't crashing) is because you can't defeat a boss the moment you start the run
or i guess beforehand really lol
i will go check anaglyph and plasma!
okay, Anaglyph works perfectly fine
Plasma does not
Plasma does the cool visual effects and is like "yo it's 40 x 40!!!" and then it just gives the actual normal number for the hand before that balancing number change thing
actually wait no, it actually is even worse lol
it changes the chip value but not the mult value
so if i play a 15 x 1 high card, it becomes 8 x 8
except actually it just becomes 8 x 1
probably has something to do with the return statement in the plasma code returning 2 numbers
you could try something like this
function Back.trigger_effect(self, args)
if self.name == 'Pact Deck' and args.context == 'eval' and G.GAME.last_blind and G.GAME.last_blind.boss then
G.E_MANAGER:add_event(Event({
func = (function()
add_tag(Tag('tag_negative'))
play_sound('generic1', 0.9 + math.random()*0.1, 0.8)
play_sound('holo1', 1.2 + math.random()*0.1, 0.4)
return true
end)
}))
end
return Backtrigger_effectref(self, args)
end```
perhaps assigning the return to a variable instead of just directly returning it is the issue
Alright, think that's good for the Bishop card art
Based it somewhat off the K6T version with a bit of custom
yep, this fixed it! Anaglyph, Plasma, and the modded deck all work with this code
thank you so much!!!!
is it possible to enforce mod load order? if, say, i made a utilities mod and then needed to reference a function in that mod from another mod could i make sure the utility is loaded first?
Ok but just here me out here #1212580187716329532 message
lmao
Cool art
i guess you can use some blank font with https://discord.com/channels/1116389027176787968/1210101577550008390
looks sick, can you show it without crt filter?
Give me one moment
i tried downscaling an illustration from yoshitaka amano's tarot deck to balatro size
Here's the sprites I made for it
swag as hell
Might I suggest a Joker card to add?
Mechanic Joker
Destroyed Jokers and Playing Cards
are immediately fixed.
(Probably a Rare seeing you could now take Glass cards and Spectral cards without fear of losing stuff)
ceremonial knight will be broken with this
<@&1133519078540185692> We might have a bot
This is a bot
I timed them out on the off chance is not and I’ll take it to the mod channel on the off chance it’s real
Thanks for the ping
which one was that again?
destroys a card to the left, adds sell value to the mult
thanks @grave panther
anyone with real business wouldn't spam the same message in multiple channels they would just look at the contact info in faq
Card change then
Mechanic Joker
Other Jokers and Playing Cards
cannot be destroyed.
might be just some poor guy from bilibili who is not sure if hes allowed to make video about the game
You know what. I agree.
maybe
isn't there already something like this
besides eternal jokers
Also this person's account is 1 day old
xdd
Haven't found one like it yet
Eternal Jokers are the only thing that are close
but in that sense you can't sell them
Mechanic one can still
@ember kite The exe for balatro is a self unpacking executable, so you just run 7z unzip on the file and all of the code, resources, and textures will be there
can't talk about it anywhere but here though
oh thanks!! i didnt realize this channel existed before so i didnt know lmao
👍
That is so many cards
Yup. That's from K6T
0, 1/2, 1-24, Jack, Cavalier, Bishop, Tower, Queen, King, Ace, Infinity
does infinity just auto win
I decided Infinity for balacing sake just gives you 100 chips
I'll explain more in my #1210976027036352582
Is there a way to easily switch between vanilla balatro and the steamodded version?
I'm a bit confused, the order section doesnt work
this is the order of them in the game, not following the coded order?
I'm not sure either
I kinda just ignored the order since I don't currently plan on adding multiple themed jokers
Also what do they all do?
I know watercolored but I haven't seen the rest
Just the art
order gets overridden when they get added to the joker table.
ah okay
ah a few of them have effects, some dont yet
THEY LOOK SO GOOD
thank you :)
Are you doing the mod all by yourself?
Well, with the help of the more experienced people in here
Most wonderful
i decided to add a bit of code to my mod pack that can fix this issue, https://github.com/lusciousdev/LushMod/blob/main/LushUtil.lua
just sorting the list of mod jokers by order before adding them to the main game lists
Cool
if you add that code to your mod you have to change the for loop that puts the jokers in the center pools. instead of for k, v in pairs(jokers) do you put for k, v in pairsByOrder(jokers) do. in my mod it looks like this
v.key = k
v.order = table_length(G.P_CENTER_POOLS['Joker']) + v.order
G.P_CENTERS[k] = v
table.insert(G.P_CENTER_POOLS['Joker'], v)
if v.rarity and v.set == 'Joker' and not v.demo then
table.insert(G.P_JOKER_RARITY_POOLS[v.rarity], v)
end
end```
How did you trick it into working? I can't figure it out.
Anyone have an idea on how to input the cost of jokers into a variable?
Look at how swashbuckler scores
Good idea, thanks
i keep getting this error
but i've specified self.abilty.extra.chips in the ability table
i can't work this out at the moment and i need to sleep. it has an issue with like 198 and i've already specified the loc_vars
if anyone else has insight to what i'm doing wrong please enlighten me
is the chips in extra
because if so it should be outside, or change it to ability.extra.chips
does the achievement and progression gonna be affected if i install the steamodded ?
progression is unchanged
achievements will be locked unless you use the achievements enabler mod
It is in extra
ok ok i download it and put it in the mods docs
and ill find it if i lunch the game ?
right ?
Also this is just the section for upgrading the joker, no?
You need another one under context.gamearea to trigger it after a hand?
Yeah i was referencing campfire and castle
I wrote one out but never got to see if it worked cuz 198 was broken
I'll get that working and then try to plug in base.cost into the chip mod
Which i think i have to make a G.game thing for
But idk how to do that
@livid yacht what the heck
I’m Campfire! You can see me! :)

can't believe LocalThunk added you to the game
what are the mods available rn?
I just need to work out what the opposite of that is
Chip_mod needs to = the purchase cost of jokers
opposite?
Buy cost not sell cost
i think it's just cost
also idk if selling cards passes a other_card argument
What do you mean
you would need the other card to check its cost wouldn't you
Hmmm
True
I guess we find out
Idk how to write the part that grabs the cost anyway so i'll cross that bridge when i get out of my wheelchair
My Warp Zone Joker collection just got a new face!
Clown Pennywise
If first hand of the round scores 2, 3, 4 or 5, destroy them and gain +2 Mult for each. (Currently +0 Mult)
CLEANSE UP YOUR BODY, CLEANSE UP YOUR SOUL
ALL YOU NEED IS TWIN ISLANDS' MILK!
Minecraft Milk Bucket POV
im trying to modify main menu a bit and can't understand this part
which creates options and quit buttons
i never touched lua before, but im assuming how it works is that if G.F_QUIT_BUTTON is nil it will return nil instead of button object but i have no idea what G.F_QUIT_BUTTON is and why is it there
also second line seems to be just blank separator, but G.F_QUIT_BUTTON also there
am i missing something?
oh nvm it's just boolean var for consoles got it
Minecraft milk bucket
getting an object parser together for string building for bots/APIs
Anyone have a way to listen for a variable change?
I'm looking for when scoring is completed, but I'm not seeing the method for that atm
Maybe update_hand_played
There might be a Lua debug thing for that, but not sure if you can check for variable changes
I think it’s possible to use it for function calls though
OMG PENNYWISE
I love this
I'm not completely sure I understand how to send the reference back for this:
function G.update_hand_played()
contents = updateHandPlayedRef()
io.open("test.txt", "w"):write("test"):close()
return contents
end
```
Anyone able to help me out?
This is the error I'm getting:
Which to me sounds like I'm not doing the passthrough part of this correctly.
I figured it out. ChatGPT for the win.
Lmao
Its been helping me too
I get this when trying to set the modding environment
is there no step where you have to install requirements?
Make sure you have python3, pip3, MPocate/PLocate, 7zip-full, and the python requests library.
nothing pops up about requirements, no. I'm using a nightly
Welp, this is gonna be nuts
Just think, this isn't even the final form of this for the big composite mod
Once I get these working and the hanafuda cards done, I'll just have to combine and reorganize the cards/textures
this nuts
is a thermodinamical miracle
milkracle
same
Anyone thought of doing the inverted tarot as a mod?
Trust me, this is NOTHING
does this need context.cardarea == G.jokers?
cuz its not upgrading when a joker is sold
Got a lot of progress
looking at the campfire code it doesn't return but instead adds an event. id try to replicate that
Need to do 2 more suits as well as coding it in
i'll have a look
okay the upgrade and the adding chips works
i'm confused tho cuz castle is written like this
cuz thats where i got it from
okay, used the one from campfire and now it works
now i need to figure out how to augment the cost of cards into the chip mod
is the cost of a card technically sell_value*2?
was the whole game made with love2d ?
yes
@carmine flare does your uibox override include the "dictionary?" i'd like to tap into these, but i'm not sure if it would work or if i need to write in my own somehow
shouldn't. but i haven't tested.
cuz i've got them in mine and it seems to have an issue
loc_vars = {self.ability.extra.trigger+1, self.ability.extra.every + 1, localize{type = 'variable', key = (self.ability.sundial_remaining == 0 and 'loyalty_active' or 'loyalty_inactive'), vars = {self.ability.sundial_remaining}}}
customJoker = true
i dont think i used the right box
pretty sure localize should use parenthesis not brackets, no?
i haven't really used localize in anything i made so idk how it works but my code shouldn't touch it
that's how loyalty card is written
this is the error message
334 if the line that involves loyalty_active and loyalty_inactive
you're passing a nil value, so something on that line is not existing at the time it tries to combine the strings for the localization
except if i change it to sundial_active and inactive, which dont exist, my card descript just says ERROR hands remaining
but if its loyalty_active when i try to hover it just crashes
loyalty_active and inactive are in the game code cuz they're used by loyalty card.
maybe they get overridden by the override
look at the loyalty card code and see how it checks which one to send?
this image shows how it specifies which variable to put in the description
you have sundial_remaining defined in abilities?
yeah
the whole ticking down thing works
it just won't show hands remaining in
the descriptrio
hang on

if customjoker=true is proper and everything else is functional I can only see self.ability.extra.trigger and self.ability.sundial_remaining are the only other two variables that could be nil at that point
sundial remaining seems to work as after 7 hands the card does the
effect
but it only crashes when those two vars are loyalty_active
/inactve
if i change them to anything else it does this instead
where is self.ability.extra.trigger defined
oh lua
can you show the whole part 😆
that shows self.ability.sundial_remaining defined and extra trigger after it
i can send you the code if you want to have a dig?
I'm just about to eat dinner, but if you haven't figured it out by the time I'm finished up, I can check it out
Cool, thanks
i'll probably try work on another joker for a bit
maybe see if i can get receipt working as intended
Thinking of how I can do Arcana cards without really having the arcana cards to use
I do have a few ideas:
Using the ones found in Persona. That in turn made me find the Visconti-Sforza deck, which has a few others that I don't really see (or are named different) in other decks including the Juggler, Popess, and Time.
Another idea were to reference a similar kind of deck (excluding some that could be taken a bit negatively) called "La Loteria", which is some kind of bingo-esque game.
i'm not sure how to write this part of library card
15 mult per consumable card held
model it after Abstract Joker
+15 mult for each Consumable card (held)
yeah i'm just looking at abstract now
not sure how to grab the number of consumables tho
probably look at the observatory effect
with a deck as huge as this the default hand size would also have to be huge
nah
I'm sorry. I'm doing research on playing cards for mods
The playing card was the reason the sandwich exists!?
im sorry what
The earl of sandwich was obsessed with playing cards that he requested his food to be made into what would become the sandwich
Sandwich Joker when
wild
Could do an Escape map joker to reference the hidden maps on bicycle cards
i was gonna do a bicycle joker at some stage
Should do some other famous jokers
with the 'wheel' hand
But yeah, if you think K6T in Balatro is gonna be rough
Just wait for the composite deck
I'm so lost on how to write this
not sure how to tell how many consumables are in the slots
i don't really wanna bother the dev, for those of you that are making custom cards and are getting familiar with the shared responsibility of the localization files and the game.lua file, have you determined the logic that's going into the variable replacement? Sometimes it seems like it's just reading config or config.extra left to right but there are some that have a #3# like odds-based ones where it seems like it's being calculated elsewhere
yeah
its the first variable defined in this part
theres one for every card in card.lua
i was looking for things by the shortcode rather than the name
that'd be why
cool, thanks
gotta override the ui table to do that
luscious did that, i'm using his section of code
i'm not modding the game directly, trying to write an API for card lookups
would like to use the game logic so it's update-friendly when possible
this is myy... fifth? day modding
some like misprint are gonna need extra attention but the more i can minimize that the better
so i can't really help too much i'm sorry
no you're fine, you pointed me in the right direction!
:P
using your example screenshot i was looking for j_receipt instead of Crinkled Receipt and getting nothing back but the initial definition and the localization
ah yeah
and going "what wizardry goes on here??"
j_receipt is just the slug
the full name is used in the ability and in the ui table
thankfully i don't need to get too into the weeds of parsing since i just need to get to human-readability
any of you very smart coder people know what variable the amount of consumable cards is?
nice
ALTHOUGH
if i look at the description in the main menu the game crashes
orrr
if i look at it in general it crashes hmm
it didn't before but now it does
i'm confused
why does
okay worksagain
fkin watercolour doesnt work properly
I'm surprised nobody's tried to do a mod that brings back cut content
at the moment that'd be only 5 of the decks
oh well, ig
I might add it to my big list
would someone be ever so kind to tell a bloke where the tutorial for changing joker icons/custom skins would be
you'll need to go into the balatro.exe archive, then under resources is all the 1x and 2x files
open the 1x file of the sprite table you wish to edit
then when exporting, export a 1x and a 2x and replace the existing pngs with your new ones
fire thank you sm
why does my this card crash the game when i hover over it only in the jokers area in a game. in collection it works fine
o wait
it's cause i was resuming a run from before i changed the extra value in the card definition
starting a new run and giving myself the card it works fine
sweet :)
if i'm trying to discard a card after a hand is played, do i need to create an event?
probably, the hook code does
yeah thats what i'm lookin at now
it aint pretty but it's at the end of my mod code https://github.com/lusciousdev/LushMod/blob/v0.2.0/LushMod.lua
essentially it just creates a list of cards in hand, highlights 2, discards all highlighted cards
i cannot figure this out
what's not working
Give me a bit, i'll answer that in a sec, it discards, but it discards 2 randomly, so i need to trim it to 1 and make it discard a specific card
okay idunno, its messy as fuck atm
the money effect works fine
but thats the easy part
mfw after hand played effects trigger before chips are added into the total
the for loop is why you're discarding 2 cards
local raised_card = nil
for i=1, #G.hand.cards do
if temp_ID >= G.hand.cards[i].base.id and G.hand.cards[i].ability.effect ~= 'Stone Card' then temp_Mult = G.hand.cards[i].base.nominal; temp_ID = G.hand.cards[i].base.id; raised_card = G.hand.cards[i] end
end
if raised_card == context.other_card then
G.E_MANAGER:add_event(Event({ func = function()
G.hand:add_to_highlighted(raised_card, true)
G.FUNCS.discard_cards_from_highlighted(nil, true)
return true end }))
delay(0.7)
return true
end```
something like that in the context.individual block of the calculate_jokers when context.cardarea == G.hand
where raised fist is essentially
So do i need two blocks? one in context.individial and one in context.cardarea?
tbh i didn't test that code i just kinda wrote it as an example
there might be some syntax issues
fair enough, it'd be a better starting point anywayu
there doesnt seem to be a discard after playing at all
where does the temp_id 15 come into play?
the if statement i took from raised fist
yeah
the return true at the end of the code i gave you is gonna cause some issues
if context.cardarea == G.hand then
if self.ability.name == "Daifugo" then
local temp_Mult, temp_ID = 15, 15
local raised_card = nil
for i=1, #G.hand.cards do
if temp_ID >= G.hand.cards[i].base.id and G.hand.cards[i].ability.effect ~= 'Stone Card' then temp_Mult = G.hand.cards[i].base.nominal; temp_ID = G.hand.cards[i].base.id; raised_card = G.hand.cards[i] end
end
if raised_card == context.other_card then
G.E_MANAGER:add_event(Event({ func = function()
G.hand:add_to_highlighted(raised_card, true)
G.FUNCS.discard_cards_from_highlighted(nil, true)
return true end }))
delay(0.7)
return {}
end
end
end```
i just tested this and it seemed to work. it doesn't add money but i think you had that working
just replace the return {} with the bit that adds money
ah nice
thanks man
moving it to context.individual moves the money effect to the card being discarded
True. You could move just that bit to the final else block
woe
jokers be upon ye
https://github.com/Mysthaps/BalatroMods/blob/main/MystJokers/Jokers.md
Nice. Maybe it would be better if the shaking effect happened after the joker goes active ?
i made the shaking before active to be in line with DNA, Trading Card, etc.
well not Trading Card
Sixth Sense, i think?
sixth sense doesnt wiggle
trading card wiggles
yeah but it's on Discard ain't it
i'll change the jiggle to after active then
uhh
wack
It reminds me more of loyalty card. Also card sharp but that one doesn't wiggle if I remember correctly 🤔
...what
iok why trading card and daifugo both proc at the end of the round
I'm wondering why you're getting two negative popcorns
if you press space with the debug tool it gives you negative popcorn
I never knew of that
oh i coulda used that instead of manually summoning cavendishes
same
Anyone else get virus detected when trying to download the latest steammodded?
Hi not really modding but I have a question is there a way to only view the background in the game the spinning circle is just so hypnotizing i love looking at it would love to have it as wallpaper
is the balatro steamodded loader trustworthy? just sense checking
Yeah, I downloaded it and used it yesterday, it's legit
Windows complains that it's a virus, but you can allow it
it modifies other executables so that's why it looks sus to windows 
someone could probably remove all of the UI elements and take a screenshot of the background, but technically maybe localthunk wouldn't like that, since it's exporting assets from the game in some way. Maybe you should ask him 🤔
cool...
localthunk should release the background shader on wallpaper engine
I had a couple question for modders:
I'm a backend webdev but I've never done gamedev before. Learning Lua and everything.
- How can I run the game on Mac? It's not supported from Steam but Steamodded has instructions for modifying the .exe on MacOS.
- What's the best workflow/tools that you use to make changes and quickly see how they work?
- How are tests created/run?
Frrrrr I would literally watch it for hours its so mesmerizing
I see, is there a way to contact him ?
Well he's in this server, but I don't know if he responds to pings. I just joined recently myself 
If you look in the Credits menu in the game, I think there's an email for his publisher that you could probably send a mail to
If you do get a positive response, come back here and let me know, I'll see if I can get a screenshot of the background for you, that should be a simple enough task 
Thank you so much for the info and the help really appreciate it
I will try both hopefully something works out
So I tried to ping him and got this lmao
If any mod is viewing this can you please tell us what content is exactly blocked from this message ?
Hope this gets his attention somehow 🤞
Not sure about #1, but for #2 I am personally using IntelliJ with EmmyLua plugin. Seems to work well and gives reasonable autocomplete + navigation. To test changes you just have to place the updated Lua scripts into your mods folder and then rerun the game (no hot reload here)
Ok cool, yeah I've familiar with Intellij thankfully 
When I start the game, it's always through Steam, but I'm worried about accidentally unlocking achievements by having some unlockables available from the start in my mod. Is there a way to disable the steam integration? Actually, is there a concern about getting VAC banned from cheating?? 
VAC is only on like
Major games from valve
I just created a profile 2 in game and hit unlock all so it wouldn't impact my main save or give me achievements
Steamodded also disables achievements I believe
Ohh ok cool, good to know
Actually, can you share how you did that? I'm trying to make all Jokers available from the start, BUT undiscovered.
Just the name of the method that you modified, or some of the boilerplate around the method injection, I still haven't quite figured that out yet...
No it's a feature in the game
wait what?
There's literally just an unlock all button in the profile menu
Oh lmaooo 
can you tell I'm an engineer, I was about to spend a week trying to implement it 
Lol yea no need for this fortunately
Oh one more thing, I don't want to bug you more, but I don't understand the arg_455_0 arguments that I see in the Steamodded mods. What do those do? Do I just make up a number that isn't taken by other mods?
I'm not sure why the code is like that either, maybe Steamo can weigh in. Personally I am using normal variable names for parameters lol. You can take a look at my Deck Creator mod code for some alternative examples if it's helpful
Is that mod in the Steamodded examples?
No you can find it in the other modding channel though
Ok cool, thx for the help! 
i think it's like that because those mods are made before release
so external tools were required
ohhh, so they're no longer necessary at all?
nah, it means you should use the actual argument names now
It was code made during the Demo lol, the code was compiled and obfuscated
Ahh got it
Hey, since I've got you here, how do you run/debug Balatro on Mac? 🤔
pretty sure we're not supposed to be doing that, see pinned post
Hello fellow modders, may I ask for some kind of a guide on how to edit the localization strings for Balatro?
it's reasonably straightforward, what are you looking to do?
Are you asking me? I'd like to fix the localization issues with Russian strings
yeah, your file will be in localization/ru.lua
okay, that's what I was wondering, it's stored somewhere outside the Steam directory?
yeah, download and install 7zip if you don't have it, right click the Balatro application, then 7zip -> Extract to Balatro\
oh so that's how it works with Love2D engine, interesting, thanks
yeah i was pleasantly surprised myself
reminds me of a modding for java's Slay the Spire
Do I need to compile it afterwards or just replace the lua inside the archive?
Or use Steammodded or whatever that was
so, what i've been doing has been related to building an API so i haven't been concerned with compiling, but there is a thread in #1209506514763522108 for Steamodded that I believe will pack your changes yeah
yeah i believe the dev is aware of that, it's a false positive
getting unsigned executables to download in Win10/11 is a little harder every day lol
do I need to keep .exe after injecting?
nope no need
Can't help you on that sorry, as much as I can offer possible solutions on the Git, I can't discuss them in this discord
Oh I see the pinned rules now, got it 👌
Sorry localthunk, no harm intended! 🙏
i suspect he'll port to Mac at some point anyway, it's supposedly very straightforward from Love2D
I'm just talking about for devving mods, I've never done dev work on Windows, it's always a pain in the ass imho 😅
It’s planned
I think localthunk just wants the Mac port to be as good as possible
yeah that makes sense, also just getting the launch and initial bug reports out of the way
i'd do it the same way
and hopefully taking a well-earned vacation lol 😎 🏖️
it's been a good launch, hopefully once the money starts clearing from Steam he takes a badass vacation to somewhere cool
same issue
Well, I temp. turned off Windows Defender sec. and browser's Protect for that
That was a mod I made during the demo to add Five of a Flush before it existed. It’s still in the examples list but won’t work with 1.0
ah
lmao
what) that's basically the way with .exe when they aren't archived
long term better off adding an exception to the Balatro folder and saving it straight there
but i don't know crap about windows antivirus at this point on how to do that
well, temporary solution is the most maintained one, rught?
oh it's actually pretty fast
yeah, nothing so permanent as a temporary fix is something i tell my coworkers
but in this case the turning everything off would be the temporary fix and adding the exclusion would be the permanent one
at least until the signing or what else is triggering the false positive is figured out
already tested a few fixed strings with simply replacing .lua file with 7-zip, haven't tried making it into mod yet, need to thoroughly check how to
I've got the steamodded downloaded, but dragging Balatro onto it doesn't seem to be doing anything?
are you dragging .exe or a shortcut?
Got a bug too where I can't switch back to any language than English 🤔
im following the steps to install the mod loader but it doesn't seem to be working, i can only assume the update today broke it?
what are you running it on
oh win10
I kinda wish the injector releases would eliminate online dependencies
other than like 7zip
but licensing and bundling is messy
ohhh is 7zip necessary for it to run properly?
i use winrar so I just assumed it'd be fine
i wonder how easy it actually is to make custom decks and stuff like that
hardest part (for me) is making art lol. the code isn't too complicated
i got an idea for one called the Double Deck
it's just a standard deck except you have two of every card, meaning 104 cards in total
big boy deck
but you have -1 hand size so it's not easy to exploit all the dupes
Its the opposite for me haha
But i have no prior experience coding
Lol the Mac port literally dropped a few hours ago
my productivity is so screwed

winrar says the archive is corrupt when modifying, 7-zip doesn't
Is there a way to use the mod loader without having to install 7-zip fully? I'd rather not have more than one compressed file manager on the system
it might be for that loader specifically, but it isn't generally
fr
once the steam cloud support drops i'm toast
so the balatro exe is an SFX archive which only 7zip is capable of modifying without breaking stuff
the injector downloads a portable CLI version of 7zip to extract the archive
the injector then makes the changes to the files
and uses 7zip to zip it back up
you can do simple asset swaps yourself this way
its also not hard to whip up a mod for steamodded that does the same thing
requires a little bit more digging though
mods are already happening??
mods have been happening since release day
oh okay 🥲
is there a preview score mod?
what mod dose this?
Am confused on how to get any of it to work, i did the download stuff but just loads normally when i try to open it still
did you do this
cool deck idea: start with your most used joker
can someone mod it in that would be cool
Has anyone worked out how to add an end of round gold bonus?
uses seeded run that gives Soul on ante 1 500 times
seeded runs don't count
resets for unseeded runs that give Soul on ante 1 500,000 times
i can get why that might be neat, but personally i find that mechanics which care about previous runs are usually pretty unfun in roguelikes--at least, when it's something like that
unlocking stuff is cool, ofc, but ideally the only way you think about your next run is in the sense of "oh, it'd be cool to do this next run", or "i'll try this deck/strategy/etc next run", rather than "oh i should take this joker which sucks for this run because that way i can get it next run"
at least imo
i think that there would be merit in a deck which begins with a joker though
personally though, i think if you wanna do something like that, it would work best if it's one of these:
- a specific joker (like some kind of deck-specific scaling joker)
- something random (i'd personally prefer if it's from a pool)
- just picking one from your collection (a deck whose ability is like, -2 joker slots or some other big downside, but you get to start with ANY joker, AT ALL, sounds pretty neat)
back in the first demo there was silver deck which gave you a random joker to start with
that was scrapped obviously
yeah i think someone is working on a mod to bring it back iirc
i've seen the scrapped deck list and i'm glad all of them got scrapped
but i also think having mods to bring them back sounds alright, for people who liked them
unrelated to this topic: anyone know how one could change jimbo's win/lose quotes through a mod? i've been banging my head against it for the past like hour or two, and i literally don't even have code that works for it even remotely (Outside of the localization file; i've written the new quote stuff already)
i figured i would understand how to make a mod which calls forth new localization text, and apparently i was wrong lol
i'd personally enjoy a deck that starts with 1-2 cryptids and a random joker that mentions specific ranks, like "walkie talkie" "scholar" or "hit the road jack" for example. i'd also like starting with green joker 0 discards and 1-3 extra hands, would be fun for scaling and fairly easy to tweak balance wise (lowering/removing gold gained from remaining hands for example)
make what?
its just throwing me
trying to make a joker that has an end of round gold calculation
like Golden joker or cloud 9
its proving a pain haha
i can't help with anything modding i'm just nosy lol 
i have ideas i want to do while waiting for joker api to be finalized but i cant do them until monday
pensive
i have no idea what ive done wrong
well upi
Looks like you're still running Steamodded 0.6.2, I think you need to compile 0.7.0 yourself to use this API for now
0.7.0 is available as a pre-release
though it doesn't have custom atlas support i believe
I'm not sure but I think you want to switch the colon and period for the first two lines like
local calculate_dollar_bonusref = Card.calculate_dollar_bonus
function Card:calculate_dollar_bonus(self, context)
Period access is a static reference, then you are replacing the instance level function with the colon access. At least that's my understanding. ChatGPT taught me everything I know about Lua over the last week so take it with a grain of salt
i'd like to make a simple texture pack, i've seen an example of a mod that shows how to replace the regular cards, but i want to replace the planet cards
how are you guys looking at the source code?
how do I uninstall the mod loader?
uninstall and reinstall from steam i assume
you can just verify game files
Someone please make a mod that replaces the texture of the Wee Joker. It just looks... weird.
hows it weird, its just jimbo but small
Looks weird next to all the other jokers on the panel. Maybe it's just my OCD talking, but that definitely looks weird to me.
aight thx
Wait till you see photograph and half joker
I'm in progress with clubs
what are all the faces called?
Amazing, thanks!
Jack, Cavalier, Bishop, Tower, Queen, King
so just the chess pieces
sick
i'd love to make a cavalier deck
Nope there is no tower jack or cavalier in chess
got the same bug, have you managed to fix it ?
Verify game files on Steam
How do I hide this?
so this means that I shouldn't need to download 7zip separately to get it set up properly right?
yeah it just downloads 7zip cli to a temp folder for the duration of the patching process
i see i see
not having 7zip wouldn't be the reason for the error i had up above then?
just try again idk
alright then
if steamo is online i think he could help
thanks
it sounds like its trying to load a dependency from the internet but not finding it there
and throwing its hands up
It’s part of the DebugMode mod
no way to hide it?
idts
If you take a peek at the code that shows the FPS there might be a way, or you could modify the mod to disable that
what do io need to make it work then
I got uno Hearts, Might add that to my big line of crazy mods
I want this game to run at single FPS, damnit
Alright, I should probably start making ranks and such
just try to get anything implemented
i want to figure out how to make my own deck
my deck in question, having specifically spades and hearts be 2s and glass cards
so basically the checkered deck but all glass and 2s
So just ez wins?
yeah, well, just wanna make my dumb ideas come to life
my main idea was if having a deck with less than 52 cards at the start is possible?
Abandoned deck.
oh, right but making one that has way less, talking like, 13 cards at start
I don’t see why it wouldn’t be possible
well I don't understand how to make such a thing even when reading some of the guides
But I suppose this is something I'll figure out another day
Welp. I have a set of Shovel Knight cards I want to mod into the game now.
rook, pawn, and knight
They're called Knight and Rook in other versions
so... technically yes they are
Ah ok
I got another set of cards as an idea to add
and it's gonna be the dumbest thing
How the heck the special cards are gonna work? I dunno
got this to work in the end by downloading the source code and dragging the balatro file directly onto the "steamodded_injector.py" file
no idea why the exe file doesn't work but the python file does but oh well at least it's done now
i do yes, but with all of them installed the exe didn't work anyway
actually no i didn't have luajit-decompiler but i had the others
the exe should automatically download luajit though so i guess the python file does the same
is there a getting started thing that helps me build my first mod?
ive already installed the mod patcher
what a mod should even look like tho is the issue
how would i go about modifying the other stats, like how green deck gives extra money from hands, or like how the black deck adds a joker slot, how would i do that?
Modify game configuration
i meant like for my own decks, should've mentioned that
@clever rampart check out the mod I posted in the other channel called Deck Creator. It will let you change these options and save a new deck with the settings
oh, will it allow me to choose what cards the deck initally has, (refering to my 2s deck that im making)
not yet, I am almost done with the update to allow this though
so, ive never implemented my own mod before. I am modifying a UI element to do some math and show a probability for draw chance of a card type (ace face number, card type and specific card
im guessing its going to be more complicated than just uploading a modified UI_definition.lua file
are you adding stuff at the beginning/end of a function or the middle?
because adding at the beginning/end means you can be sneaky and wrap the function
middle is annoying because you either have to get clever or fully replace the function, which isn't good for mod compat
I can add it at the end but its really bad for my mental parsing
if you've already modified the lua file it's easy to convert btw
this is where I am roughly, im adding that stuff there at the bottom to get variables to work with
Here's this as an example - you set a reference variable to the function you want to change, then call the reference somewhere in the replacement you're doing to call the original function
if you really want to you can just copy and paste the function into your mod and do modifications to just replace it though
note that the only compatibility you break is if someone else wants to change That Function Specifically
so it'd be incompatible with other mods changing that part of the UI, which may be fine
I see, so long as nobody adds something that modifies the UI for card tallies
it would be roughly ok
they might need to.
but they might be just out of the way of what im working on
becasuse theyd be adding to suit_tallies, where im just checking that
not making it from scratch
prety sure theyd be just using an appended bit, and this doesnt particularly need a specific suit to work
k my head done working for the night, hope to get some ground on this later
How difficult is modding if it's just to add cards, for example some Jokers?
from what i see theres not alot of documentation, so youll have to digest examples
game too new
i know this isn't modding specific, but since y'all might know about the game code... how does wheel of fortune pick a joker to modify? I understand how the 1 in 4 with different chances for each enhancement works, but i've heard varying answers on picking a joker.
has anyone developed a tool that lets you search for a seed with specific metrics
I want to edit debuffs about different stakes. I have found related codes, but I don't know how to change them with a MOD file.
asking cuz I want to try a run with something but I know that it requires such extreme luck that it's pointless looking for it manually, considering that what I need needs to happen in a specific order and pretty early on too for it to work
https://github.com/MathIsFun0/Immolate Do you need this?
does this say how far away a specific joker/consumable is
I don't know the usage, sorry...
and does it work with looking for Eternal
I just saw it yestoday.
Can a MOD rewrite some codes in "game.lua"? I really don't understand the running order of the game file, so I can't make the code take effect after the new run starts.
custom filters arent available yet btw
ah
so it doesn't matter
I could always figure out how to save edit to give myself the cards required (and take away the money that they would cost) but I want a seed that can be shared
can't wait to get my hands on modding 👀
they do indeed, and it's destructive - i can probably get sneaky with it, but I haven't bothered looking into that further yet
Thoughts?
I like it, but you should either color the edging as well or color the background
Also, is there any tutorial on how to install mods?
if you're on Windows, get Balamod. decrypt the game first using "./balamod -d" in powershell
Ty
So… I’m not really familiar with github and I can’t really see where the folder I need to install is.
I see a list of a ton of folders, but I’m not sure which one I’m supposed to do or anything like that
Or am I supposed to do all of them?
You've downloaded Balamod and are wondering where to put it?
first time i've heard of balamod
Where do I see the full mod? Am I supposed to be on like a different tab or scroll down or something? I will send a pic of what I mean
Am I supposed to download it all and if so, then where do I put it?
Ohhhhhhh sry
also, win+shift+s will let you take screenshots of your desktop and so you can paste them
I put it in its own folder in the game directory
Really? Shouldn’t it be in the balatro folder?
I run it in steamapps\common\balatro\balamod and it runs fine
You'll want to separate it from the game to keep it organized
It'll find the game exe on its own when you run it
Ok are you sure this is like trusted or something? Because my computer really doesn’t like it
I also ran into that. It's a false positive, but if you're uncomfortable with that, you should stop now.
I would not be surprised if official mod support is added to the game soon.
I’m sorry but this does seem a little uncomfortable for me. Is there any other mod loaders that I could use?
the only other option is to compile it yourself
You could try steamodded, though I'm pretty sure it works in the same way.
most if not all mods currently use steamodded so uh yea
This is the resource I've been following. There's a lot of mods posted there, and information and tools for making mods.
So glad mods are finally here for Balatro and being widely worked on and talked about 😭
Thank you @tacit mountain @stable crag and all the other Mod devs for all your hard work! The community appreciates you guys a ton

Ty 
I just realized there's now a modding channel 
There is! I should also mention MANY others in the community want to thank you all for your awesome work too 😉
https://www.reddit.com/r/balatro/comments/1b4kraw/balatro_mods_are_out_babyyyyy/
This place is only gonna keep getting bigger and bigger, with more attention coming to the game and the mods/modloaders I'd bet >:D
I'd love to see Workshop integration
that would be nice
Same.
Oh yeah! That'd be great and an easy way for tons of users to be able to use mods, even if they don't know how to install mods themselves as easily!
Maybe the devs could talk with the modloader/mod makers and figure out a way to integrate workshop support for the game? I don't imagine it would be too hard after an easy way to install the modloaders is added through workshop! Maybe the devs could even package the modloaders into the game themselves in a future update? 🤔
It'd also be a lot easier to manage mods and install/uninstall them too, would be a very nice feature!
does balatro have steam workshop support yet
oh wait someone just asked about that i can't read
I want to testing mods but i really don't know how it works, can you explain quickly what i need pls ? 
why windows tell me "steamodded_injector.exe" is a virus ?
did you download it from the github?
(also since the app injects code into an app, that's seen as dangerous)
it's probably getting triggered because it downloads dependencies from the internet and makes changes to an executable
if you trust windows defender over common sense i'm afraid you shouldnt be using computers
half true
sorry that was mean
Its basically the whole thing saying, "Oh this app is untrusted and we can't verify if it'll brick your system or not, tread with extreme caution unless you know what you're doing."
it's kinda like a liability waiver
if you trust the person writing the code and understand what the injector does you can safely ignore the warning
Its built to help you be more aware and be able to better protect your system.

