#⚙・modding-general
1 messages · Page 2 of 1
But I get that it wasnt a priority this game is so good I only knew about it yesterday and I already have lots of time on it
I’m starting a community mod so if ya wanna try, feel free to pop in
depends on your prior coding knowledge and how ambitious you are. i don't know lua but I have some programming experience and i was able to make some simple changes fairly quickly (half joker only takes 0.5 from stencil multiplier)
and that took me like 20 minutes?
Yeah i've got no prior experience coding and ive just started cuz i wanna add my own jokers in
me too
I can understand what the code does when i read it but idk how to write it lmao
i have a small bit of coding experience but not much
probably want to wait for someone to make an API for adding jokers then tbj
where can you find the card/edition sprite sheet
editions are shaders
how difficult do yall think it would be to add a whole new card rarity? I wanna add "shiny" cards (obv stolen from pokemon) that are SUPER rare and combine the abilities of all the other special card types
youd get it like 1 in 300 runs but itd still be neat i think
I do a little bit, but im waiting for the tools to develop a bit further before I try
was hoping someone with more experience in that kinda thing may know lmao
but obv the game is super new
Like I said before, for now I'm mainly focusing on Sprites / Texture Pack then I will go over other subjects
noted
I wonder if the game would add a new collection page itself if there was another joker over 150
i would assume adding stuff to the collection would be its own separate process
just adding a card on its own probably wouldnt do that
from the 1 time i dabbled in isaac modding the main thing i learned is that pretty much everything is done separately
and you just have to make sure you do all the different steps cuz nothing gets automatically done
the bigger a change/addition you want to make, the more it's connected to generally and the more places it can go wrong
All with green borders are complete
WIP Balatro Calculator
lmao the four sinful jokers
that could be a meme
like that meme with the dragon heads or whatever
I only did the clubs, I still need to do mime and the other three
I'm making some progress !
https://i.imgur.com/VpknyS2.png
Can someone provide me some sprites that I can test as replacements of the game files ?
this is a good basic image for a joker sprite replacement ig
I would need the whole map for now, I want to test replacements before additions
Vulcan for Flush Five (in the example mods of Steamodded)
how do i install the modloader
Crimson, what program(s) do you use to get into the game files and retexture the cards/effects? Coming from making texture packs for Minecraft, I would just get into the game folder, but since it is a .exe, how do you do it?
Misprint is a fun one
you can unzip the exe with 7zip
and- what is the difference between the 1x and 2x textures
The number of pixels
So the resolution
Yooooo
For now, registering a sprite more or less look like that in term of code:
local sprite_jkr = SMODS.Sprite:new("Joker", tmp_mod.path .. "image_jkr.png", 71, 95, "asset_atli")
sprite_jkr:register()
So Name, Path to to the file, Nbr Pixel X, Nbr Pixel Y, Asset Type
I need to figure out a way to properly use the resolution setting with the Path
I was thinking about using the Mod Path as top level then assets/1x and assets/2x with every assets under it
So in my example it would instead look like this
local sprite_jkr = SMODS.Sprite:new("Joker", "image_jkr.png", 71, 95, "asset_atli")
But the Path in your Mod directory would be TheExampleMod/assets/1x/image_jkr.png or TheExampleMod/assets/2x/image_jkr.png
@hardy brook @novel shell You are the 2 most involved in the assets creation, would this look usable on your side ?
Same @white scarab what do you think about it ?
has anyone made any custom challenges
neat
is assigning it to a texture still how it was in the 0.9.0 ver? That could probably be made easier for single-image textures instead of spritesheets
So the image would just be a single joker, correct?
or added to the original sprite?
For this one we are speaking about the global Sprite
The Map
But
The code already permits to add sprite in addition to other ones, for example single jokers
I just need to find a way to make it usable by other game objects
I think I get it? I'd have to mess around with it in-game
I've successfully modified the existing challenges
haven't tried adding a new one, I was just using it to test other changes I made
starting work on building a display that will show the next cards to be drawn for an eventual "Seer" joker (preview the next X cards), just wanted to get the basics of actually getting the next cards from the deck and displaying them SOMEWHERE
is fun
Ok in the end I decided to teak it a little bit to be able to register both 1x and 2x with a single call
local sprite_jkr = SMODS.Sprite:new("Joker", tmp_mod.path, "image_jkr.png", 71, 95, "asset_atli")
The Top Path need to be separately provided in the arguments, it make it more modulable and permit to register both 1x and 2x at the same time (since the PX and PY values are the same)
Outside of the asset_images (The playstack_logo and dev one) that will only exist in x1
Self reply, but I think I'm going to have it trigger rendering them if you have the Medium spectral card in your consumable area
@white scarab I will deploy it first without the old capability to use added sprite, so the pp doing textures pack will be able to load them easly
Then, I will implement it once again
i can't download the steamodded file from the github page. says it's a trojan virus and my pc automatically deletes it. what do?
I will try to solve this issue when I can.
Find out how to stop Windows Security from alerting you about or blocking a trusted file, file type, or process, by adding it to the exclusions list.
thank you!
awesome stuff
New Release for the Sprite API: https://github.com/Steamopollys/Steamodded/releases/tag/0.6.0
A wiki page is also disponible to explain how to use it: https://github.com/Steamopollys/Steamodded/wiki/Add-or-Replace-a-Sprite
And an Example Mod: https://canary.discord.com/channels/1116389027176787968/1210420314316738632
NEW FEATURES AND UPDATES FROM 0.6.0
Bumping version to 0.6.0
Rework of the Sprite API
Now able to load assets into the Game
Addition of the Sprite object
You can refer to this new wiki page if you...
this only works if you can download the file, right?
anyone have an idea how fast you could do poker hand probability calculations? like say you select a couple of cards to discard, it would show you the probability for each poker hand that you can get from drawing from your deck. is this possible in real-time with some clever trick or would you need to do all possible drawing cards combinations and check which poker hands would be formed in hand?
Ok I got the mod loader to work, time to cook.
You could rough estimate it fairly quickly
has anyone tried to make any like custom texture decks?
I'm trying to test one for myself rn
im assuming I could just replace the card sprites
but like
then it won't be like fully custom
cause we have multiple decks but we cant customize their faces
A really long list instead of math
Althoug so far I'm having no success.
I don't know what to call for card face textures
I would like to know where can I change in the game file to change the negative card spawn rate
There’s a function poll_edition
I forgot which of the files it’s in but you can Ctrl+F
which file do I need to change
common_events.lua
Just set it to return {negative = true}
Instead of actually doing RNG
I feel like you could "hijack" the colorblind option thingy in card.lua where sprites are being set to add more textures for card faces? I have no idea how i'd go about doing that tho
like different card faces are already built in and you'd just need to add more
can you send the changed dll file to me
bc I cannot seem to open them
I’ve been using Steamodded for all the modding
You’d have to modify the game executable and I’m not sending that lol
Yeah something like that would require you to alter the .exe
what is it
ok figured it out
Def think that the guide should clarify that the sprite.lua file in steamodded provides the exact names you'd need to change specific sprites.
This looks so cursed without inverting the card backs xdd
how do the pixel x and pixel y identifiers work for le sprite deck object thing
ohhh wait nvm
If you have trouble figuring out what the px or py is for a sprite or how to reference check the sprite.lua file in Steamodded-main/core.
It has references to every sprite in the game, including pixel sized and frames.
Now time to figure out how to let jokers stack negative and poly :]
yay ok that makes me understand how to mod this game more
Oh god this is gonna be harder than I thought
i'm making progress on a dumb thing! If you have the Medium spectral card in your consumable slot, it will show you the next three cards in the deck
woah
right now it only updates if it should show at the time that you draw from deck, i need to do some more digging to see if I can have it update as the card is added/removed from the consumable area
Here I am just doing a fun community texture edit thing and you're out here making insanely cool stuff like this
I can't make card art, so you've definitely got me beat there 🙂
Yeah that's sick 🫡🫡🫡
I've been trying to get this freaking mod installed for over an hour now, can anyone help me? I might be taking weird shortcuts but nothing i've done has worked.
I'm using @proud narwhal 's fork of Steamodded, and if I run the .py file directly, it returns an error (it's long so i'll put it in a thread or smth). Windows won't let me download the executable, and wont let me compile the executable either.
I got the main branch of Steamodded to inject something into Balatro.exe, but it only injected 1 file and wouldn't boot.
i mean, i own the game so it's not piracy
yeah hit me up
what does that black hole card do
|| levels all hands by 1 || spoilies for anyone who doesn't want to know
do I put this in the game files or something
This has only been tested so far as "I am able to start a higher stake run" and "I can save a higher stake run and come back to it", but if you want to ignore stake unlock requirements without impacting anything else:
In functions\UI_defintions.lua, for both instances of local max_stake = , set the right hand value to 8. Optionally, for the single instance of local valid_option = , set the right hand value to true (this makes the stake menu look slightly cleaner)
Note that if you undo this mod, if you have a saved run, it will incorrectly list the stake on the menu but going back into the run it appears to still be the higher stake run.
Backup your save before you do this in case it breaks anything.
That message wasn't really a response to yours
ok, so other than continuing a run, i think my dumb little hold a medium card mod is just about set, and the only issue with continuing the save is that I need to grey/scale down the previewed cards
oh, nevermind i broke it again 😦
Can someone help me ?
I have downloaded Steamodded but when I launch the game it crashed immediately. I don't know if I do something wrong when downloading it :/
Do you see any crash report ?
Not at all. The game is launching but crashes when it loads.
Ok I see, do you have any mod in your Mod directory or nothing ?
I have one.
Which is ?
Ok so probably not related, did you install this version ?
https://github.com/Steamopollys/Steamodded/releases/tag/0.6.0
Can you try ton reinstall it by following the update process ?
(Replace Balatra Demo by Balatro)
When it finish, you can run the installer for Steamodded.
Does it mean that I need to executesteamodded_injector.exefirst ?
Same process than before, drag and drop Balatro.exe on the injector
i've downloaded 0.6.0 and tried making my own sprite replacement mod, didn't work
tried putting in NegateTexturePack and that didn't load either
Are you sure the loadder is correctly initialized ?
yup, the AchievementsEnabler loads in correctly
OK, the game is launching. But, the mod doesn't appears. In the Mods folder, I put the .lua file for the mod to work ?
Can you show me your Mods directory ?
yep
i uhhhhh
i kid you not that directory somehow got wiped
Yeah. What's next ?
gimme a moment-
It's not supposed to happen, neither by Balatra or the Modloader
Create the Mods directory and put your Mods inside it
Did it show you an error ?
Not at all.
It just close the window ?
I don't have any terminal showing up.
Yep.
Do you open it with Steam ?
now it failed to load either mod, odd.
Put the first mod lua file directly into Mods
Try to delete the Mods to see what will happen
On the %appdata%/Balatro folder ?
%appdata%/Balatro/Mods
this wasn't necessary for me while testing it this afternoon but neither works now
It doesn't work either.
And the Modloader is working correctly ?
Like, you can see it loaded on the main menu ?
So it's related to the Modloader
Maybe it's one of your profiles
What do you mean ?
Maybe the profile you are using is causing the game to crahs with Mods for some reasons, can you reset the game to vanilla, create a new profile and try again ?
none of the example mods worked so directory issue i suppose
Maybe permissions, can you try to recreate the Mods directory ?
like, it definitely worked earlier today
wiped the entire folder, does not work either
It works !
Amazing, can you send me the profile that was causing the issue so I can try to debug it for next time ?
@tacit mountain This... doesn't seem right
Oh, maybe an issue with the File format !
It happen before
But like, wtf
How did you import them ?
they're still in the Mods folder
No I mean, you dowloaded them by yourself, you did a copy of the code ?
oh i just cloned the repo
i copied them from the repo
but the one i used this afternoon was from the thread
.... let me try that one
Because it's not supposed to reformat them, you use a specific version of Windows ?
okay the one from #1210290099036885042 worked but not the one from the repo
Ok, maybe that's on me and I did an error with the format... do you have a tool like VScode installed on your computer ? So we can check the encoding of the files
wack
That might be on me and because of the WSL...
Thx for the report, I will patch this issue as soon as I can
👍
Something like that happened to me too once I think
I was trying to create a simple mod and Steamodded refused to detect it; then I pretty much pasted the code using the Nothing Mod as a base (with the exact same file and directory contents) and it worked
I wonder if there is a way for me to automaticaly prevent it or patch it
the loader could just check for \r\n as well right?
instead of \n only
yeah i think just change the regex a bit
Yes and no, that's more a lua thing tbf
But I can thecnicaly enfore it I think
Or wait
or uh yeah just hardcode it lol
Maybe when checking if a mod header is valid it ignores newlines and uses the two dashes as separators
That's fair
local headerLine, secondaryLine = fileContent:match("^(.-)\n(.-)\n") or fileContent:match("^(.-)\r\n(.-)\r\n")
ig that could do
Bal⭐tro
five moons don't make a flush, apparently
anyone know where the game handles setting up your initial deck? trying to figure out how checkered deck works
try replacing them with bananas
Back:apply_to_run
oh, I totally missed the back file
🤦♂️
thanks
no wonder the deck stuff seemed arcane
and view deck just crashes haha
also gotta figure out how to not just make all decks 78 cards
and haven't gotten it to work on first load yet, it always needs a profile refresh
@tacit mountain perhaps have sending crash reports be set to off by default while using the mod loader
and yyup all works now, thanks!
should be the case as of 0.5.2
That's indeed the case since 0.5.2
oh alr
Actually Locals never complain to me lol, and I was flooding him since the Demo I think
is there a mod for higher then 4x speed yet
tyty
flushin' with them moons
That's purely textures or you are adding new Suits ?
Judging by this I assume new ones lol
I'm adding suits
LMAO
this looks goofy
christ
dont' mind that ace of spades being listed as stars
nice
Just by curiosity, you're using the Sprite API or not ?
lol nah, I haven't even updated to 0.6
I do wanna switch to that obvs
but I thought I'd hold off until you implement adding additional sprites
That's "Technically" already implemented, I just don't offer a simple interface to use them like I was doing during the Demo
But you can add additional sprites, but I'm not 100% how you can use them right now
I'll deal with that later, for now I'll just 7-zip them in
Oh, so I assume Stars and Moons are not the same assets file as other cards ?
they are, I just added them as new rows to the 8bit deck spritesheets
Oh, so the Sprite API would actually work for you lol
oh well I'll look into that then
Don't worry, it's just so I can figure out what is the best design for this part
@white scarab and me were using a different design before
i assume we can modify stuff individually eventually
Independent sprite for Independent additional card you mean ?
existing cards
I'll still need to figure out how to get the new suits in without having to reload into a different save... is there maybe a way to force a save reload once the game has loaded?
I assume yes
But I never touched the additions of suits nor ranks so I don't know how for now
aight stuff is working fine with the sprite api
epic run
Did you win?
You never win
Where can I see what mods are available for the game?
ah okay im blind haha thanks
i won but its endless
How win endless

Is it possible to restrict mods to a single profile ATM?
Not with Steamodded atm
Mods loaded once per session at the beginning
Profiles can be changed at any time
I’m sure dynamically reloading mods is possible
Maybe not
Closest thing we have is a custom profile I made to prevent cheating in speedruns
Maybe a subtle restart
Gotcha gotcha
Yeah I'd just love to have my 1st profile as a natural progression no mods profile, second profile with mods, and third with no mods but fully unlocked
I'm not itching to mod a ton rn but I'd love to be able to do that once I do feel like loading up some mods
i've just been messing around with mods on one profile, and not having mods on my main profile
https://www.youtube.com/watch?v=eKtfuV9lC7M i did get my dumb "medium card allows you to see into the future" mod working
just thought it'd be fun to set up a little thing that shows what the next 3 cards are in your deck, if you're holding onto a "medium" card in the consumable area.
Is there anyway to make custom jokers yet?
100
thats ante 0
what do you mean by that
Also ante -1
big blind is 1.5x base, but what if it's 1.5x25
It would probably round it, as it does with decimal mult
this is the modding chat we can go see
THATS SO FUCKING COOL
this would go so hard as a voucher
I hope science someday progresses to the point where we see the "Ascention" system (The stake difficulties) replaced with a "choose your challenges" type deal like Inscryption or Wildfrost
being able to have a varied mix of challenges to plague your run would be a bit more fun
I like the idea of having some weird hidden effects on things, I was thinking this would be cute to have if sixth sense is your sixth joker or something like that, but the medium in the consumable slot was easy to test with
I'm not good at math either
I have broken out the calculator once or twice though
I haven't looked into the scoring bits
what if it was very vague, like "Around 10k"
You’d probably need to rewrite things a bit but I could see it being doable
Maybe but I’m already working on a few different mods so probably not for a bit
What if Seer mod was part of the All Seeing Eye deck
Oops All 6s but gone wild
Immune to Face down effects [insert horrendous downside here]
All cards are drawn face down, expect those that would normally be drawn face down
I’ll place that in dev-talk so thunk sees it
k
all debuffed cards are drawn face up, other cards are drawn to joker area
All cards are drawn face down. Cards played previously this ante are drawn face up
[Challenge] Cards discarded previously this run are drawn face down
Diceomancer very fun
please someone make a challenge where every gameplay related action is repeated twice
Hi, on steam deck running balatro with Proton (I prefer it that way so I can run reshade on my games with a separate, proton-based script). I'm stuggling to use the mod loader from the github link. Dropped the steamodded_injector.exe file into my "/run/media/mmcblk0p1/steamapps/common/Balatro" folder where the Balatro.exe lives. Even made the Mods folder in the "/home/deck/.steam/steam/steamapps/compatdata/2379780/pfx/drive_c/users/steamuser/AppData/Roaming/Balatro" folder. Added the EscapeExitButton.lua to that mods folder as a test, but it doesn't show up in game. Any help appreciated!
https://discord.com/channels/1116389027176787968/1210670452716994600
Mod suggestions thread
Is there a "seed reader" at this point in time? I think a run was faked for a contest me and my friends are having but I want to give as much benefit of the doubt as possible to my friend.
As in, I have the seed and want to see how many shops you would need to see for the joker combination to actually come together
There is a searcher but not a reader AFAIK
Although you can use the searcher as a reader if you write specific filters that just print out a list of all the jokers for a single seed, for instance
can i somehow change the whole look of the normal cards? and if so how? like for example make the card background black instead of white?
oh i did it
Man modding the sprites of the game is hard
any tips on using the sprite api? What is px and py and can it even resprite the cards?
1st message is the file directory
I found it
this got so much easier
guessing thnigs was making it easier on me but i didnt find any information on the wiki page
I have some stuff now figured out but still not working 
What textures are you trying to manipulate?
I made a test deck that altered them lemme fetch it rq
Since im trying to make it easier to make a custom card faces for others
with no luck
But thx
This was the core mod code for my test for altering playing card sprites, just swaps the card sprite with "invert_deck.png"
no prob
YES
I DID IT
I GOT THE DECK EFFECT TO WORK
(granted the implementaion is omega scuffed)
Just need to fix the display and we're in business
Anyone know how to alter the display for how much poly multiplies?
Deck Effect?
"Start with Hone. Card Editions are Enhanced" (foil and holo by 2x, poly by 1.5x)
Wow
Probably will tinker with it but the main concept is that
My gosh the reshuffled project is going nuts. Surprised people are contributing
I plan on contributing with a reference to another indie game (Astrea: Six-Sided Oracle) but I need to figure out what to replace and reference
hm...
very cool. now I'm thinking about replacing the base suits with magic the gathering colors and adding another...
lol
i just can't think of any actual reason to do so
maybe if you rethemed some jokers
Did balatro have an update that bricked the modloader?
its not showing the mods tab in the main menu for me anymore
oh no it did break it
all my work for it not to work 10 minutes after being finished
I still have no clue how the UI references the text for effects, nor where to find it.
:]
updates remove the modloader
you need to reinstall it
Huh
now it works
i did reinstall it before askink my question but maybe something else was wrong
thx anyway
The injector no longer works for me
Spent so long yesterday to fix this specific error and now it's back
Are you sure you are running the injector ?
Looks like the command line to bundle the injector
I think it is?
Steamodded-main/injector/build is the only executable in the files so I assume it's the one I'm supposed to drag the balatro.exe to?
I got it working yesterday but I forgot how I circumvented this xdd
You should be downloading the exe from releases…
That was the script to build it lol
I realize that now lmao
Yeah, unless you want to compile it, always use the releases
question for the save editor what would you all want the most next?
Ok I figured out where to go for this
But now I'm confused as to how I'm gonna alter it
That’s the numerical argument specified by the game
So #1# is 1.5 for Polychrome for example
so what #1# actually is
is in game.lua?
Wdym ?
modding goes crazy
not even naneinf
so maybe a smoother rising of target chips can improve gameplay?
I DID IT
Squares and crosses?
Maybe
lmao (v1.0.0k code changes)
Actually uhh it doesn't hold on
it's so over for nope users
F I was running NOPE...
OKAY I GOT IT WORKING
Sorry just one slight bug
For context this is the deck I've been working on since yesterday, all that's left is spicing it up.
(foil and holo are by 2x, poly is by 1.5x)
what does that mean exactly
Foil gives +100 chips, holo gives +20 mult, poly gives 2.25X mult
Something that needs clarifying in the desc
the code actually decide what #1# is
Still gotta figure out where to get the extra cards in the six suits mods
There's a checkbox under the deck selection that enables the 2 extra suits
looking at how 6 suits effects probabilities it would ideally have lik e. hand type rebalancing lol
i think it has a lotta potential as an optional expansion mod
I clicked it and it didn't pop in
Lemme restart the game
Ah there we go
oh you love to see it
This makes me so happy
#1210728178201526373 if you want to check it out. Send the love to the mod maker for adding my sprites in
would love to have the isaac card announcer
I have 6 suits... how is the best hand i can make still a 2 pair?
diluted pool
That's it 100 suit deck
procedurally generated suits
NGL, you could theoretically do something like that
does this come with a buff to the one that makes spades<>clubs / hearts<>diamonds count as the same
Deck back is coming along nicely, although I still have no idea what to name the deck
are the two empty spots in the joker sheet used for anything?
How ironic
- Make a suit template in all black with Jack Queen and King working normally
- Randomly create either RBG or hex values using 00-FF or 0-255 for each color.
- have the program color in the black with the value
- Have a bunch of icons and it randomly choose one
I should do this when Edition Enhance Deck back is finished
And when I give said deck an actual name xdd
I know this might not be the intended thing with six-set but...
what's this for:
if G.playing_cards[iter_57_0].base.id ~= 4 then```
could you post that code?
IT WORKS
WAHOO
Only issue I have right now is that the popups aren't showing what the enhanced values are.
I have no idea how I'm supposed to fix that
do the legendary joker labels use a font?
Also this isn't compatible with other deck mods since I also have no clue as to how to add this deck texture separate without overriding the deck texture
technically yes, but custom-made by localthunk so you won't find it online
is there an example of the F anywhere?
the tarot/planet/spectral lettering is used enough that people have reconstructed a font, but that's a bit different form the legendary font
is it the same font?
no
just try and make something that fits and looks good
yeah, i just wanted to use the 'official' one if it existed
you can copy the letterings that are there directly from the cards
yeah but f isnt on one of the legendary jokers
No, I'm more thinking of it being incompatable with Balatro Reshuffled.
I should probably specify that it's not specifically all deck mods, just the ones that also override the main game textures.
ive noticed some inconsistencies with the font though
like the O in emperor is different than the one in fool
not to mention chariot uses i without the serifs while hermit uses it with the serifs
yeah, that's what i did for the other letters
are you making a new legendary
yeah
alright, my current idea is to first change that debug message to sendDebugMessage(G.playing_cards[i].base.suit) to see if all suits are 1 character
dunno, i'm kind of debugging in the dark cos i'm not using the modloader yet
okay try this
change the line that has lua local suit = string.sub(G.playing_cards[i].base.suit, 1, 1) .. "_"
to lua local suit = G.playing_cards[i].base.suit .. "_"
cos i don't get why they're trimming the suit to just one character
yea or nay?
oh and the i should be whatever that iter variable was
i just changed it cos i didn't like that name
i'm used to i for for loop variables
maybe add a little thing coming off of the top left like on the e
looks worse to me
i think the previous iteration is the best one imo
there are some weirdly shaped letters
like the A
alright i'm gonna look at that 6 suit code for a moment
i removed one trailing pixel from the left of the A because i didn't like it lol
which i should have done from the start
@proud narwhal okay i found the root issue lua function Card:change_suit(new_suit) local new_code = (new_suit == 'Diamonds' and 'D_') or (new_suit == 'Spades' and 'S_') or (new_suit == 'Clubs' and 'C_') or (new_suit == 'Hearts' and 'H_') or (new_suit == 'Stars' and 'R_') or (new_suit == 'Moons' and 'M_')
It's turning Stars in to S_ instead of R_
what would it look like if you moved the a over 1 pixel
and S_ is the one for Spades
so it isnt attached to the K
i think i would have to move the whole thing over one pixel then
@proud narwhal ```lua
local Backapply_to_runRef = Back.apply_to_run
function Back.apply_to_run(arg_56_0)
Backapply_to_runRef(arg_56_0)
if arg_56_0.effect.config.polymult4 then
G.E_MANAGER:add_event(Event({
func = function()
for i = #G.playing_cards, 1, -1 do
sendDebugMessage(G.playing_cards[i].base.suit)
G.playing_cards[i]:set_ability(G.P_CENTERS.m_mult)
G.playing_cards[i]:set_edition({
polychrome = true
}, true, true)
if G.playing_cards[i].base.id ~= 4 then
local suit = ""
--Stars should become R_ instead of S_
if G.playing_cards[i].base.suit == "Stars" then
suit = "R_"
else
suit = string.sub(G.playing_cards[i].base.suit, 1, 1) .. "_"
end
local rank = "4"
G.playing_cards[i]:set_base(G.P_CARDS[suit .. rank])
end
end
return true
end
}))
end
end```
actually whats the legendary's ability
one of these two i think
probably the one without the trailing pixel
Ultimate Random Deck + Six-Suit = just more random cards
Also you can get them in the standard packs
can they show up in the shop with magic trick?
this is really not that important but this should work and you only need to change a single value (the local rank = 4): ```lua
local Backapply_to_runRef = Back.apply_to_run
function Back.apply_to_run(arg_56_0)
Backapply_to_runRef(arg_56_0)
if arg_56_0.effect.config.polymult4 then
G.E_MANAGER:add_event(Event({
func = function()
local rank = 4
for i = #G.playing_cards, 1, -1 do
sendDebugMessage(G.playing_cards[i].base.suit)
G.playing_cards[i]:set_ability(G.P_CENTERS.m_mult)
G.playing_cards[i]:set_edition({
polychrome = true
}, true, true)
if G.playing_cards[i].base.id ~= rank then
local suit = ""
--Stars should become R_ instead of S_
if G.playing_cards[i].base.suit == "Stars" then
suit = "R_"
else
suit = string.sub(G.playing_cards[i].base.suit, 1, 1) .. "_"
end
G.playing_cards[i]:set_base(G.P_CARDS[suit .. rank])
end
end
return true
end
}))
end
end```
Just did a test run on the custom deck, surprised that I didn't even win with an edition on a joker
I am working on a Chinese localization mod. Can someone tell me specifically which English texts have been changed in the new version?
Baron, Shoot The Moon, and DNA moment
Thx!
Is there a tutorial on making a joker? (I need to copy some)
i'm working on a custom joker but i'm flying blind
hopefully the art will be the hardest part lol
you have any ideas for the ability yet
i think something to do with destroying cards but i'm trying to think of how to do it without stepping on Canio's toes too much
but since stuff like madness and ceremonial dagger have to do with destroying cards it makes sense i think
Anyone discussed making a multiplayer Balatro table?
I did briefly think about Texas hold em balatro style during the demo
but logistics seemed too messy
Idea: Each player starts the run normally with the same decks and seed. They meet up at the boss blind and shuffle each player's deck together. Each player has 2 discards within 3 hands (can be edited with jokers or vouchers). First to 2 wins takes the boss blind.
Hi I'm bad at this and a dozen people have probably asked this in the past but
how exactly do you put custom art in the exe
I know you open it like a zip, extract the thing, edit it etc but like
when I try to paste it it just says the file's damaged
a
darn...........................
are you using 7 zip?
winrar
oh or later
i thought i needed to use an older version
does it disable chievos
important
yeah, it does now
noted in whatever the release before 0.6.0 was
so if i get that mod i'm fine to progress just fine with my save?
there's technically nothing stopping you from grabbing 7zip instead of winrar and trying to replace the textures in place without the modloader, but yeah. I think it only disables STEAM achievements, not unlocks or anything like that
oh! yeah turns out it was just a winrar issue
ty <3
After spending a bunch of time on UI, the calculator I'm working on finally can actually do some calculating.
okok so im just tryna make a simple sprite mod, took the negate mod as a base, replaced negate with my name and uhhhh
Your MOD_ID is different from the one used in SMODS.findModByID()
anyone know if the two empty spaces in the joker sheet are used for anything?
exactly enough room for one more legendary joker without adding new rows🔥
#MathurineSweep
yeah I've seen it but haven't done anything about it yet. Should probs be 39 cards of 2 suits
working on kefka sprite. i need to figure out what to do with his hair/head ornament thing
i'm not very good at this 🥹
i think ill come back to it tomorrow
imagine a joker that changes the texture of your cards lol
Does something like a 'reset button' mod exist?
@proud narwhal and I were on call when this happened and I had a better version so I'm uploading it; as I said when I saw this the first time, I saw e35 and then it became sad
Actually I proably should've specified what exactly I meant, I meant a button to reset a run, like holding R in The Binding of Isaac, is that what you thought I meant?
Sure, just wanted to reduce the amount of clicks, it stacks up if you're chain resetting.
You don't need a mod for that, you can hold 'R' like in The Binding of Isaac
Oh, neat.
Is there a tutorial video for adding mods ?
looks awesome did you continue it?
even if that was a valid reason previously, that no longer makes sense. The game is no longer distributed compiled or obfuscated like it used to
ah old thing
I might, no idea how I do the face cards though
hm yea maybe silver or gold with one subtle accent color
how are the card effects made like polychrome holo etc? are these just textures somewhere in the files?
they're shaders
no these are textures i think
mult card are enhancements, polychrome and holo are editions
you can have 1 of each of those, as well as 1 type of seal
we each called it something different lol
look at enhancements in your collection
And why are you discussing that in the modding chat?
We adding rows now in the jokers for the Reshuffled project
btw, is this right?
Trying to figure out how to get this working
that's both the name of the lua and the folder
MurphObvBanana
I'll figure it out
Is there a mod that gives you the score for the hand have chosen before you play it?
ayyyyy
I got it working
Thanks tho
Now to make one for Balatro Reshuffled
i do wanna see texture packs being compatible with each other
did you catch my suggestion on ignoring blanks?
I don't believe it exists yet, but it's a popular idea so I imagine there will be some flavors of it developed soon. Definitely the sort of thing that could be the difference between me playing some of this game and a huge amount of it, because playing at a high level is incredibly tedious without an easy in-game preview.
Totalling what your current hand would give (and what that would make your score total in the current round) fully automatically (no needed hover/extra input) is what I'd personally like to see implementation-wise. Random effects (e.g. Bloodstone) would probably simply not be included (with some simple "+" or such to indicate the total may be higher), tho if one got really fancy there could be +/- 2 standard deviations shown or something.
Seems a little bit to complicated for now
ight
trying to make my own joker lol
i could just expand the current spritesheet.... but i'd love to know how the atlas thing used in FiveOfAFlush works
I need to implement it in the new API
It uses the old sprite library, when the mod was for the 0.9.0 demo
So not added yet
I'm a little overload lol
ah ic
spritesheet editing it is
So how'd you do it?
I'll need to make duplicate jokers for Balatro ReShuffled down the line
far too much comparing to 5oaF
who was the owner of the steammodded repo?
Steamo
- define joker values
- add & update joker to center pool
- add & update localization
- add joker abilities
probably
I'll have to figure that out
took me at least three hours of fiddling to add that without any abilities
I see
Yea this looks about right.
When I was tinkering with making a deck I got a good understanding of how jokers work.
To be more specific file wise:
en-us localization file needs updated so the game knows what to display when joker is selected
Can’t remember the exact function but there’s a massive one in card that handles card scoring
Game:init_item_prototypes() will need to also be updated with your joker info
or just update the G.localization table, no need to mess with the loc files
I didn't look into localization that much
I just assign to the field in G.localization (gets init form the loc file) that I need
Didn't know G.localization was called at all
I think I saw it once but could figure out where it was set up
how do I create a Deck that uses steamodded im farely new to programming lua scripts
Look at one of the examples in the same repo as the steammodded injector
Yeah, I was going to start digging into this a bit this weekend, I originally wanted to make my "seer"/deck peeking thing a joker ability but didn't want to dive into making jokers work while I was also working my 9-5
thanks ill look into it just found the wiki too
wiki?
make sure your file uses LF line endings and not CRLF
else the loader will ignore your mod
i double checked it uses LF endings
got it to work
I'm getting rare cards way more often than the common joker lol
what's this got to do with modding?
wrong bubble my b
nws
Seems like challenges aren't too hard to look into making custom.
Yep, I'm currently making this one #1210670452716994600 message
Question could i use github to upload my balatro texture packs and that?
yeah ofc, who's stopping you?
oh my god lmao
ungodly amalgamation of all the decks
idk i just made my github account
I mean someone did
It only just occurred to me that I'm gonna have to set the deck type to plasma deck since that relies on deck name and I need the exact effect
the card manip of erratic and checkered isn't exact to what I need, so I needed to implement those myself anyways
Can't figure out how to get Card backs, seals, and such working
haven't messed with seals yet unfortunately
I'm not modding the seals themselves, trying to get the texture working
(what is a github license?)
can you show the code you use to load the textures?
you need "center" instead of "Enhancer"
Thank you. I just couldn't figure out what that one was
Is there a list for everything?
Yep
oh perfect
I've legit been guessing for all the others lol
Look at the code
I only see Jokers, Boosters, and Blind_Chips in that one
Wait no mb
Am i missing something there?
Steamodded/core/sprite clarifies what all the textures are supposed to be
I display the base references
thank you thank you
should maybe mention that in the docs
Yep
Updated
ty
Someone could make a sort of multiplayer mod? Not like real pvp or something like that shi* but a highscore chase.
tänk yu
cool
im trying to load in both normal and high contrast decks but get this error any ideas?
this is my code
are they new, or replacing the existing ones? bc the existing ones use a different name
They are new
ah
im using the spriteAPI
and if i just try to load one as in remove the other line of coed
it works
so im not sure why it isnt working with both of them
sprite_card_1 and sprite_card_2 are not registered
Do
sprite_card_1:register()
sprite_card_2:register()
people already modding this game? it just came out T_T
people were doing it before 1.0 I think? Don't quote me
T_T
yeah people were modding the demo lol
Yep, but Localthunk told me to keep it hidden until full release
Even 0.9.0 was modded
It was not really matching demos vibe
And even 0.8.8
And iirc there was even a way to get older versions than 8.8 but idek how
I've been messing with the game since day 1 of the september demo lmao
lmfao
Why would that be sad, there's no reason to say modding a game as something you enjoy and can possibly learn from sad
You saying that just makes you sound stupid
I'm learning to mod it because since the first demo i've been making card art and i want to add it in, because its an awesome game and seeing my content in there would be cool as heck
someone should make a joker that adds a X3.14 if your hand contains a 3, an ace or a 4
and its just a picture of a slice of pie
What's a 1?
ace my bad
😭 dunno why i called it that
i also had no idea until recently that you can make a straight with an ace > 2 > 3 > 4 > 5
makes sense, but i never considered it
fair
I'm working on expending options and features for the "Mods" menu. First addition is a new button appearing when you don't have any Mod loaded, clicking on it create and open the "Mods" directory for you (like @white scarab suggested): https://i.imgur.com/BXldMTz.png
Next stop is mod enabling / disabling
https://canary.discord.com/channels/1116389027176787968/1211082061251874866 why did I do this 💀
something is up with the mod headers being parsed
cloned the repo and built it, injected, created the mods directory, dropped all the example mods in, and none of them load in since its header is malformed or its not a lua file
λ nc -v -l -p 12345 -s localhost
listening on [127.0.0.1] 12345 ...
connect to [127.0.0.1] from DESKTOP-7HFB8KB [127.0.0.1] 36058
Steamodded Debug Socket started !
All the sprites have been loaded!
Skipping non-Lua file or invalid header: AbsoluteDeck.lua
Skipping non-Lua file or invalid header: AchievementsEnabler.lua
Skipping non-Lua file or invalid header: DeckOf4s.lua
Skipping non-Lua file or invalid header: EscapeExitButton.lua
Skipping non-Lua file or invalid header: FOAF_ops.lua
Skipping non-Lua file or invalid header: FiveOfAFlush.lua
Skipping non-Lua file or invalid header: FiveOfAFlush.lua
Skipping non-Lua file or invalid header: LabyrinthDeck.lua
Skipping non-Lua file or invalid header: MoreSpeeds.lua
Skipping non-Lua file or invalid header: NegateTexturePack.lua
Skipping non-Lua file or invalid header: NothingMod.lua
Skipping non-Lua file or invalid header: UltimateRandom.lua
All the sprites have been loaded!
Verify your end of lines type
Need to be LF for now
I'm planning to fix it next patch, it happen to a lot of us
yeah youre right its CRLF
though the match pattern is a bit weird too; ^(.-)\n(.-)\n is a regex match pattern right? took it to a regex builder and it seemed like it didnt match as intended
or does lua have its own meme regex match language?
still getting this app can't run on your pc
LUA Regex works different that classic ones
It have been a nightmare trust me lol
of course it does... ok
damn you windows
the balatros devs clearly have some passion for graphical programming; the whole game is written in this jank lua setup, then the shaders used are extremely sophisticated and pretty neat
I think i'll have to wait til someone learns how to add jokers
cuz i do not have the knowledge
need a language mod
which can add a new language to the game without changing original version
I've been considering writing a mod loader that makes it possible to apply arbitrary changes to the code (by mods), which is practically necessary for any sufficiently flexible modding
like a lot of the implementation for jokers is scattered around the code so it would be impossible to make an API that allows for absolutely everything a modder might want
basically the whole game is modifiable from the global scope + the game object
just a pain navigating which parts to change, and sometimes it requires redefining a function to add some logic plus call the original function
Steamo has basically just made some utility functions to help with sprite and card creation, but it was perfectly possible even without his tooling; the big thing is that he has the injector to start looking for and loading mod files; idk if it acts as a priority list
What langue is used for modding?
Whole game is written in lua, underlying engine is love2d
So the modding is just injecting lua scripts into the game logic and global tables
Honestly it'd probably be smart to just hook all of the functions on the game object to have a debug print of the arguements plus maybe some important game state info before and after the function call
Since from what I can tell the injector adds a tcp socket to dump logs to, but its not really used for much yet
The biggest part is also mod not entering in conflict over each other, if everyone use the same methods to register their additions, it permit to ensure compatibility.
yeah Im not really sure what kind of tactic should be taken if a bunch of mods decide to hook some function and change the state before or after the original logic
if like 3,4,5 mods all want to mess with the game state or step something forward idk how to deal with many hooks being ordered correctly, probably just up to the mod loader loading each mod in the right order, so the hooks are layered correctly
Maybe a mod could list dependencies if it requires those?
Or write in a way that overrides as little as possible
Mod enabling / disabling, dependencies and load order will be a thing
I'm working on this part at this very moment
theres something kind of like that with the secondary mod flag, but I dont think theres a formal mod dependency tree yet
- Mod ig config
After that I think patching the ACE exploit is also pretty important
For my speedrun timer/competition mod it’s an important check to make cheating with it harder
If someone can do a MR about this I would be verry happy
Because that's a lot to do on my side and my work is asking me a lot lately
I’m not talking about how to do it here
Because it’s VERY DANGEROUS
But it exists, and there was a thread where others figured it out, so I could see it being used to cheat or do WAY WORSE
ace is horrifying, I assume
is already aware?
I DM’d him a few weeks before the game released when I found it during the demo
Hopefully he plans on officially patching it in the near future
probably better to do a formal patch from the dev then, since making a mod patch simply instructs people how to do it
If it’s part of the modloader then that at least makes it harder
You have to share files in order to fall for the bug so I don’t see it happening very often
But do be wary of savefiles and other .jkr files you see because those may have malicious payloads
noted
Alright... So Re;Shuffled is getting blursed
Just to show a few previews from submissions
I learned a few things:
People like Persona, Dragon Ball, Yugioh, and horror
New here, is the idea to have logic for each of these? or is this just a texture replacement?
Also regarding an ace, if it requires editing the source of the game, changing any part of the source already puts you in a place to be able to run any kind of code you want, the game isnt sandboxed
Ah gotcha cool!
It does not
Editing the game source is ACE for any game lmao
Discussion of source editing was for patching it
Yeah, you would need to transfer save or other profile files to see the vulnerability
Imagine a save that gives you a rickroll when opened
I feel like I know what specific art you're referencing regarding "horror"
lmao
oh i don't enjoy being jumpscared
Pickle Yorick
yeah thats fun
been thinking alot about whether you can just bind a shader to a card, since if you can, you can inject '3d' stuff into the game
but otherwise, Id like set themes over mechanical themes
Is it time for Super Mario 64 Mario in Balatro?
You control mario to pick your cards
but uhhhhh, idk, spending time not doing that since its in glsl and I dont really understand the fs lang
been thinking about a whole pepe joker set since people have a massive collection of exotic 'rare' pepes that could realistically be converted into cards
its stupid but... idc
I mean I started the Balatro Re;Shuffled thing because of the stupidity we all can make
and then I get mostly cool stuff
Like Persona and Goku Black
Id be interested in contributing to a 2nd edition set mod; something more in the original style of balatro to build off of, since le random jokers arnt as interesting to me as themed sets with minor mini sets, like the suit or hand joker rotations
oh and there was a jojo voucher
definitely something to think about
idk if vintage shogundo playing card mechanics could be mixed into the game organically
oh yeah this is really cool
useful templating for sure
I want to add Dungeon and Degenerate Gamblers cards in
Im not familiar
It's a rogue-like Blackjack game
sounds like a easy 1:1 implementation then 😄
Yes and no
Because it's Blackjack not poker
And it itself has some weird cards that are VERY blackjack and RPG related
Some cards I know I can do like the half a suit, the 1 of suit, Maybe even Pi of suit
11 of diamonds
Negative cards will have to be reworked a little
and it has its own set of tarots
Here I'll dm it to you
so many silly ideas to try....
At the very least I've been making a texture pack
really Im most hungry for:
distinctions from first edition to themed or nth edition jokers with new mechanics
distinctions on booster pack editions, expansion on booster pack variety
high card enchantment / augmentation variety and opportunity
Ive been kind of kicking around the idea of some themed blinds as the ante gets higher too, that affect the store and the possible boss thing... maybe make the game look different according to the theme...
just small things to expand the game
oh my gosh, that's how I should make Negative cards from DNDG work in balatro
+X Chips, but +1 Hand Size while in hand
It makes too much sense
idk why I didnt think of the +1 hand size for negative cards
honestly thats already a huge enchantment, +chips would have to be some pitty amount like 10 or something
are you sure the handsize thing is working correctly here? seems like it was 8/8 cards at the end, but then you drew 2 more normal cards expanding it to 10/10
I'm sure it's not working, but in that video it's fine. It drew another negative card, which gave it the space to draw the 9 of clubs.
8 + 4 = 12 (Gained 4 Negatives)
12 - 3 = 9 (lost 3 negatives, so far so good)
9 + 1 = 10 (Gained 1 negative)
10 - 1 + 1 = 10 (Played 1 and gained 1)
Nope, it's working fine
oh youre right you did draw a negative card, nvm
I’ll have to figure out how to do that but not with negative edition
Ooh i got a cool idea for negative cards in DNDG
What if the steel/gold/etc was under the card somehow
Like on the pips
does the Steamodded code run before or after the main function is run?
because Card.ability should not be nil but it is
for reference
i have no idea what's going on right now. i'm trying to do as the thing says here ((i'm pretty sure this is asking me to remove an extra end, right? since it wants the End of File instead?))
right now here's it with this extra end (at least assuming that's what it is)
but then when i remove that last end, it crashes. like, without any log or anything? the game just instantly closes itself
remove an extra end, the game crashes because of a different issue
That other one too
okay, gotcha, thank you
originally this was a mod where i was replacing the Painted Deck (mostly to see like, if i COULD understand what's going on here, since it's been a while since i last used this coding language) and that involved actually messing with the files themselves
so i think some of the parts of code are messed up because it's like, trying to call back things from the Actual Engine Of The Game™️ rather than only strictly what is necessary for the mod
at least that's my theory anyways. it's also possible i'm wrong lol, this is my first time doing a deck mod
isn't there a function to add a new deck entirely?
yeah--that's what i'm trying to do here now
ah ic
essentially: the first version of this mod was me doing some more direct edits to code from Anaglyph and Painted Deck, to make a very hacky "Can i even mod this game or am I too out of my depth here" type mod
now this is me doing the second version, trying to Actually Do The Proper Way Of Doing Things-style stuff
i was able to get everything working perfectly 100% with what i had previously--but again, that was actually replacing stuff, so naturally i don't want to do that anymore lol
Mods are loaded at the end of game startup since 0.5.1
Or maybe even earlier
so in theory my code should work...?
but it errors on the Card.ability.loyalty_remaining line
que?
Use :
If you don't I'm pretty sure everything in Card will be empty
If not Card himself
Was I correct ?
i haven't checked because i'm in a middle of a run
the true balatro modder grindset: taking a break from modding the game by playing it....
i'm the same way lol, i'm getting close to stopping for the night to grind out some stakes
this did also make me realize: i'm not sure if any modders here would be willing to do this, but it would probably be really helpful if as example mods the base game's decks were made into like, mod form?
in my case, for instance, since the effect i'm going for is based on Anaglyph's mechanic of getting a tag after defeating a Boss Blind (Double Tag for the base game, but for this mod it's the Negative Tag), i'm not sure which parts of that code i should copy (because it does the mechanic i want) and which i shouldn't (because that's more base game engine stuff and thus referencing it again causes problems)
the current examples we have are nice but they're either changing the cards in the deck or are much more specific, which kinda makes it harder to know what translates and what doesn't
