#Malverk - A Texture Pack Manager

1 messages · Page 2 of 1

high drift
#

nope

#

that's what causes the issue

sweet torrent
#

Aaaah

#

So no SMODS.calculate_context({destroy_card = destroyed_card}) needed either?

#

Interesting, in Ghost Rider it just sets .destroyed = true for the card

dry cargo
#

Im getting a crash upon boot up, i deleted my mod and it boots up fine so i know its something with the code

#

fixed it but it just doesn't show up now

jagged sorrel
#

Malverk seems to cause the game to crash whenever I change profiles too. I don't even have any texture pack mods on.

high drift
#

Your loc_txt in the alttexture should have a table for the text part

jagged sorrel
#

what's a table and why do I need it? I never saw it be required for the examples I've looked at (HD balatro and the Big Naturals texture pack)

high drift
#

In fact you don’t even need the description part on the alt texture

#

It doesn’t do anything

jagged sorrel
#

will change it, in that case

#

any clue on what's causing the profiles to crash?

high drift
#

Have you got a crash report for it?

jagged sorrel
#

gimme a sec, I'll crash it

subtle shard
#

is this the one I reported a while ago?

high drift
#

I fixed the initial one

#

I wonder if this is an outdated Malverk install perhaps

jagged sorrel
#

Couple of notes:

  1. My mod works now! Thanks a lot!
  2. With a texture pack mod enabled, this doesn't happen.
  3. With no texture pack mods, this happens upon switching profiles
high drift
#

Oh I see

#

I’ll fix that tonight

jagged sorrel
#

oh! another thing: Upon switching profiles, textures do not appear until you open the texture menu and close it again

fervent matrix
#

posted this as an issue on the github but just in case it wasn't spotted; for whatever reason, small blind, the wheel, and the head have weird scanlines on 'em?

high drift
#

this is almost certainly something on your end

fervent matrix
#

it happens even if malverk is the only enabled mod, but then Stops if malverk is disabled. unless it's specifically an error with our install of Malverk?

lapis crystal
#

Are there some known conflictions with this mod?

fervent matrix
#

the only things it could be conflicting with in this case are smods (which we updated earlier today) and lovely (which is kinda doubtful? it was updated fairly recently for us). unless this is somehow a "it just is broken on our machine, and our machine in particular" thing? running windows 10, if that helps narrow anything down in the latter case.

wary geode
#

Could I make a texture to be an alternate contrast so that it could be toggled in settings?

#

Or is it playing cards only?
Bc I've heard a lot of complaints that Celestial Funk hurts the eye, and yknow what, I agree :P

high drift
#

You can add alternate textures to toggle between yeah

wary geode
#

how does one do that?

high drift
#

You can add them to the texture pack in the toggle_textures table

dry cargo
#

what is the Key used for the Chips and BlindChips?

dry cargo
#

nvm but i need to know the keys for the stake stickers

high drift
#

They’re linked with the stakes

dry cargo
#

really? mine doesnt seem to be linked

high drift
dry cargo
#

ohh, thank you!

bronze grail
#

How can I load in Undiscovered and Locked joker textures?

high drift
#

You can’t at the moment

thorn shore
#

key

carmine grail
#

do i put in texture mods in the mods folder?

#

ive been tryna install the celestial funk mod, and after i installed malverk my game keeps crashing

#

if i take off the celestial funk from the mods folder, it opens nicely

lunar steppe
#

don't remember ever hearing back about this

high drift
#

What about it? It’s just a random screenshot with no explanation

lunar steppe
#

oh sorry let me explain

#

deck in the background is default yellow deck texture, should be baba yellow deck

high drift
#

Upon what conditions

lunar steppe
#

i have no idea

#

just happened once

lost badge
#

Where can I find the wiki of alt textures I can edit with this?

winter garden
#

Love this manager, but I have a suggestion for a feature to add. The ability to use only part of a texture pack. Say I wanna everything from HD Balatro, but want to use jokers and stickers from another pack, but don't want the rest of that pack to take over.

bronze grail
#

Some packs don't have correct config labels for everything, so Stickers might be listed as one of multiple "Enhancements"

bronze grail
#

With the pack enabled, click it again and it should bring up a little gear icon

winter garden
#

Aha! I see! Thanks!

bronze grail
#

@high drift Is there a way to enable dynamic display only for certain AltTextures?

high drift
#

How do you mean?

marsh charm
#

Does malverk work with playing card replacements?

#

im trying to write the lua file and i cant find the argument to replace them :V

high drift
#

It doesn’t

lunar steppe
bronze grail
# high drift How do you mean?

My Tiny Jokers pack has Jokers, Stickers, and Stakes, and I'd like to add double sized versions of each. I'd like the display icon to only apply based on which Jokers are enabled (1x or 2x)

high drift
#

it'll only choose between textures with a display_pos iirc

bronze grail
high drift
#

huh

#

I'll double check the logic later on

bronze grail
#

thanks, i appreciate it

marsh charm
#

hey i dont get why the one on the left works but the one on the right causes this error

high drift
#

You’re missing a sprite sheet

marsh charm
#

what am i missing

#

or am i calling a sprite sheet wrong

high drift
#

You need a hsJokers.png

marsh charm
#

i renamed the files and it didnt work

high drift
#

In both folders?

marsh charm
#

i may be stupid

#

ok yeah in both folders and it still doesnt work

high drift
#

Crash log?

marsh charm
high drift
#

You have a typo in your texture pack object

marsh charm
#

the keys section?

high drift
#

No the texture pack object

marsh charm
#

wait where

short flower
marsh charm
#

its misspelled on purpose, the key is called jojers not jokers

short flower
#

oh hm

marsh charm
#

i just think jojers is funny

#

will it work if i replace both with jokers?

short flower
#

am no coder

marsh charm
#

lmao

#

thats fair

short flower
#

its looking for hsJokers and the image you posted above in 1x is jsut called jokers, could that be it?

marsh charm
#

nope

high drift
#

The key doesn’t match what you assigned it as

#

It doesn’t matter if the misspelling is intentional if you haven’t done it everywhere it needs to be

dry cargo
#

has a template every been built for this yet?

dry cargo
#

Im getting an Atlas Crash whenever i try to open the pack in the Malverk menu, ive pinpointed the issue to the Planet Alt_Texture

high drift
#

Can you update Malverk and try again?

#

I can't find lines from old versions

dry cargo
#

ill try it in a bit thank you

dry cargo
#

Does Malverk let you replace the shop sign animation

lunar steppe
#

no

dry cargo
#

Damn

queen agate
#

if i use Malverk would i have to remove steammodded first ?

dry cargo
#

Probably not

queen agate
#

say less

dry cargo
#

If you insist

dry cargo
queen agate
lunar steppe
night latch
#

ive been having issues trying to load malverk

rare dew
#

is it normal that the game crashes when you click on the normal joker for base textures?

night latch
#

no like when i try to install it, my game just crashes

severe gorge
#

Time to learn coding to port a boykisser texture pack :D
(I'm gonna suffer so much)

#

I already gave up. Im just gonna edit the files

#

(I'm not good at coding)

marsh charm
# high drift It doesn’t matter if the misspelling is intentional if you haven’t done it every...

i dont see where im missing where its not jojers???

local atlas_key = "crew" -- Format: PREFIX_KEY
-- See end of file for notes
local atlas_path = "8BitDeck.png" -- Filename for the image in the asset folder
local atlas_path_hc = "8BitDeck_Alpha.png" -- Filename for the high-contrast version of the texture, if existing

local suits = {"hearts", "clubs", "diamonds", "spades"} -- Which suits to replace
local ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"} -- Which ranks to replace

local description = "Midnight Crew" -- English-language description, also used as default

AltTexture({ -- Jokers
  key = 'jojers', -- the key of the texture
  set = 'Joker', -- define the object type that you are retexturing
  path = 'crewJokers.png', -- the filename of your spritesheet, saved in assets/1x AND assets/2x
  original_sheet = true,
  loc_txt = {
    name = 'Homestuck Joker Replacements',
  },
  keys = {
    'j_invisible'
  }
})

TexturePack({
  key = 'Jimbostuck', -- the key of the texture
  textures = {
    'js_jojers'
  }, 
  loc_txt = { 
    name = 'Jimbostuck',
    text = {
    'Homestuck Resprites'
    }
  }
})```
marsh charm
#

nvm i figured it out

#

my file structure was wrong this whole time lmao

dry cargo
#

In dms

severe gorge
loud swift
#

Is it possible to have an AltTexture object apply to multiple sets? Like apply to tarots and planets for example?

dry cargo
severe gorge
warm field
high drift
#

Have you got a crash report to share?

warm field
#

this is the message that returns after clicking on the base textures

high drift
#

I see, I’ll fix this next time I’m on my dev machine

dry cargo
wise bridge
#

how do i add this mod to balatro? im not good at modding

severe gorge
# wise bridge how do i add this mod to balatro? im not good at modding

You need some requirements.
First, a pc, second, the game. Then, you go to the steamoded github page, and there you can find a link to a tutorial on what to download and where to put it. After you download the requirements, a new folder should appear in your balatro save file folder (aka the %appdata% folder) called mods. You put this mod inside the mods folder, download a compatible texture pack, also put it in the mods folder, and when you boot up the game, you should see in the options a texture pack button. After that, everything should be really simple.

#

Oh my god, it looks like I wrote the Bible

severe gorge
wise bridge
#

i got it to work, is there a way i can add a custom king queen and jack only into balatro?

#

through this mod i mean

high drift
#

No this mod doesn’t change deckskins, that’s built into smods

frosty swift
#

some guys is having this error. any idea what could cause this?

#

may be due to a non-updated version of malverk ?

#

i could not recreate

high drift
#

have you got a copy of the code that's causing the issue?

frosty swift
#

apparently, the mod crashes when changing the language of the game, possibly to chinese

#

it may be due to an absence of a localization file?

high drift
#

It’s complaining about the file path though

frosty swift
#

Yes that's what i don't understand. they told me this crash happened when changing language of the game but i don't get what could cause this. i asked them to update steamodded to see if that was the issue

EDIT: it was an issue with them using an old version of Malverk

rare dew
#

i got an error when trying to replace a blind sprite, any ideas on how to fix?

#

game crashes whenever i boot it up

high drift
#

show code

rare dew
#

main lua?

high drift
#

iirc blinds needed some animated/frames tags

#

check the HD balatro example mod

rare dew
#

alright

#

is it missing frames = 21 line?

#

the only difference im noticing

#

im gonna check

high drift
#

probably

rare dew
#

oh that was it

#

alright its fixed

#

huh

#

now it doesnt replace the blind sprites at all

#

oh wait im stupid

wise bridge
#

does malverk work for playing cards

frosty swift
#

no

frosty swift
wise bridge
#

how do i do SMODS.DeckSkin

#

do i need to create a new folder?

#

im not ggood at coding

#

i haveno idea what im looking at

frosty swift
sleek wave
zinc hare
#

i cant seem to create a new profile, for some reason

#

-# updating lovely was what i needed (NEVERMIND)

night latch
#

wait can someone tell me how to install malverk cause my came just keeps crashing

heavy olive
#

@high drift is it possible to retexture they playing cards?

high drift
#

the pips or the base card background?

heavy olive
high drift
#

use SMODS.DeckSkin

heavy olive
#

wut, im sorry im new to modding and stuff

lunar steppe
night latch
#

when i click on the textures button my game crashes

#

How do I fix this?

severe gorge
#

I may not understand it but there are people here who can help you.

night latch
severe gorge
#

I can't understand anything. I really hope someone with better experience in reading logs can help you. I'm sorry

night latch
#

Thanks for trying

jagged sorrel
#

Is there a way I can use malverk to make a texture pack for a balatro mod instead of the base game?

subtle shard
#

it's trying to copy a table thats too deep (maybe recursive)

#

the crash

jagged sorrel
#

how

high drift
#

what type of cards?

paper escarp
#

question, in the in-game malverk ui, in a texture pack's tooltip where it tells you what it changes, how/where does it pull the colours for the different categories (jokers, tarots, spectrals, planets, etc.)

high drift
paper escarp
#

i see. so it doesn't go through loc_colour()
hm. let's say in something i'm writing, that i'm trying to reassign the colour associated with a given set. what's a good, safe way of interposing that so that it takes my mod's colour for it instead of base? cirThink

normal swallow
#

getting a crash when clicking on "base game textures" in malverk. Also, some texture packs (and the base game textures) I installed seem to show nothing.

high drift
#

Is this in latest version?

normal swallow
high drift
#

download from main rather than the release

#

I believe this is fixed

north temple
#

how the actual fuck dose this work

like what is the base code to create a texture pack
please god 😭

#

i have been doing this for THREE HOURS

not a lot of time but still

north temple
#

1 step closer

normal swallow
lunar steppe
dawn blade
#

is it possible to give retextured vanilla jokers custom badges to differentiate them from unchanged ones

#

but only when the texture pack is enabled

paper escarp
#

i forget, does malverk have functionality to also replace names & descriptions of jokers (or other things it replaces like consumables and blinds), or is that something we purely rely on SMODS for

high drift
#

Malverk does that

velvet adder
paper escarp
#

ah. what's the correct syntax for it?

high drift
#

Check the balatro wilds or marvel universe planet packs

paper escarp
# high drift Check the balatro wilds or marvel universe planet packs

question - is the behaviour of AltTexture({}) such that anything in its localization var gets applied to wherever it's relevant if it's enabled in the pack? how exactly would this apply to seals, as they have two different locations in the G.localization table:

AltTexture({
  key = 'seals',
  set = 'Seal',
  ...
  localization = {
    blue_seal = {
      name = [my new blue seal name]
      text = { [my new blue seal text] }
    }
  }
})

the problem being that blue_seal exists both at G.localization.misc.labels.blue_seal & G.localization.descriptions.Other.blue_seal

and usually you'd want to replace both, but to make matters worse, G.localization.misc.labels.blue_seal is a string value (directly contains the name) and G.localization.descriptions.Other.blue_seal is a table = { name, text }

is there a correct syntax there? the examples you pointed me to only cover planets - but i imagine i would have to write a localisation file specifically for this case

high drift
#

Uhhh I’ll look into this and see how it works, it might have been something I overlooked

feral tide
#

hi gyus i want to try to replace the textures of tarot cards with tarot cards from cyberpunk 2077 on this server there are people who are authors of mods just I do not understand everything in it well

#

an someone explain to me how to do it?

jagged sorrel
#

what would cause this graphical error, and how would I fix it?

jagged sorrel
#

Update: it was probably a one off thing, it wasn’t replicable

#

All good now

slender pelican
#

something is wrong with my Malverk for me.

slender pelican
#

I found the error

#

the code I added

#

AltTexture({ key = 'myprefix_F deck', -- the key of the texture set = 'Cards', -- define the object type that you are retexturing, see wiki for full list of types id = "foxtrotdeck", name = "F deck", path = '8BitDeck.png', -- the filename of your spritesheet, saved in assets/1x AND assets/2x loc_txt = { -- [NYI] Localization text for tooltips displayed in the texture selection screen - can be added to a localization file under [descriptions][alt_texture] name = 'F Texture', text = 'Cards are different' } }) this

slender pelican
#

yes, no?

slender pelican
#

Malverk peeps?

slender pelican
#

I have no idea how to do Malverk

high drift
#

Malverk doesn’t change suits

proper mulch
#

Hey, I tried using the HD textures but they don't seem to work properly

#

It seems like the resolution dropped

lunar steppe
#

enable pixel art smoothing

woven snow
#

Hi! I'm having an issue where the second I click to edit the textures, it crashes my game? I can't find a crash report or anything, it just kinda nukes itself?

I'm on the latest version of both Steamodded (0401a) and Malverk.

lunar steppe
#

methinks one of your other mods has an invalid pack

woven snow
#

okay that fixed that part, but now i'm getting a crash, and i think it's bc of my personal pack? But I can't figure out what's wrong with it

lunar steppe
#

the textures field of the TexturePack shouldn't have .png at the end

woven snow
#

this fixed it! Thank you svm

dry cargo
#

Just to be sure, to replace tags, is the set tags or tag?

paper escarp
upper wedge
#

I'm trying to make a mod that goes over the seals added in pokermon, but I can't seem to figure out what the set is. It has custom seals and stickers in the same texture, so I thought maybe it has a custom set type. I'm trying to replace the custom seals, but if I set the type as seal, it doesn't replace what I want.

pastel fox
unkempt sun
#

the process crashes entirely, leaving no trace of a crash screen
which makes debugging impossible

high drift
#

I think this is likely from a badly configured texture pack, can you try removing them until you find the culprit?

unkempt sun
#

I tried Aikoyori's Paint Job, which should have no problem loading for other people

#

any texture packs would crash the game instantly

#

Malverk UI when no pack is installed is fully empty (no default pack as well), is that normal

paper escarp
# paper escarp question - is the behaviour of ``AltTexture({})`` such that *anything* in its ``...

to elaborate further,

because of the way AltTexture works, only the things in the localization table that share keys in keys get replaced. for example:

AltTexture{
  key = 'myAltTextureKey',
  set = 'Joker',
  path = 'myTexturePath.png',
  keys = {
     'j_joker',
     'j_wee'
    },
  localization = {
    j_joker = {
      name = 'my new base joker name',
      text = {
        'my new base',
        'joker text'
      }
    },
    j_wee = {
      name = 'my new wee joker name',
      text = {
        'my new wee',
        'joker text'
      }
    },
    j_half = {
      name = 'my new half joker name',
      text = {
        'my new half',
        'joker text'
      }
    }
  },
  loc_txt = { name = 'AltText Name In UI' }
}

even though i specify j_half in localization, because it's not present in keys, it doesn't get changed if i turn on the pack. which makes sense, it shouldn't if it's not being replaced. so the thing in localization only gets replaced if its table name matches something present in keys

the problem i was bringing up here was with seals and how each seal has two places in G.localization, one at G.localization.misc.labels.blue_seal, which defines the localization for the label that appears on the description box itself when you over over the seal & G.localization.descriptions.Other.blue_seal, which defines the localization for the text in references to said seal, per seal. my query was how this gets parsed when attempting to change it and what the correct syntax is, as the prior examples you gave me doesn't cover them cirThink

additionally, similarly, since things in localization don't get replaced if their table name isn't present in keys, if i make an AltTexture for the planet set and want to potentially change how planets are referred to, i may want to change the value at ``G.localization.misc.labels.planet`, which i don't think is possible like this?

#

i did also think about a localization file, but isn't it the same case that that it'll only apply anything in the alt_texture = { alt_tex_[texture pack key] = {} } table with keys matching what is enabled in the UI?

austere cloak
#

is there a base i can use to replace boss blinds?

#

im still new to modding and i cant seem to figure out what to actually do here

paper escarp
#

i imagine there's variables i can check to see if my texture pack and options within that texture pack are active. cirThink but is that something i can access from within my mod somehow?

#

i don't word good cirDerp

normal swallow
#

trying to make a texture using Malverk's API, but when I load it up in game, it's completely blank. A complete novice to this sort of stuff so I'm sure it's something glaringly obvious but I can't seem to sus it out.

normal swallow
#

nvm, figured it out

amber moat
#

Is there a way to use Malverk to change the logo image of the main menu, and allow for the individual configuration of textures and localization to be turned on and off? If not, are there any plans for such updates in the future?

high drift
#

How individual are you looking?

celest shell
#

Are tags modifiable with Malverk? I was hoping to do something like this

high drift
#

Tags work yeah

#

I don’t think souls would work on them though as they’re drawn differently to cards

celest shell
#

I forgot to add the tags to the texture pack, so that's why it wasn't recognizing it. But now it's crashing with the tags registered. Did I initialize the tags right?

high drift
#

Looks like it’s failing to create the texture object properly

#

What’s the code looking like?

celest shell
#

This is the main file:

-- Load the vanilla tarot textures
SMODS.load_file('content/Tarots.lua')()

-- Load the vanilla voucher textures
SMODS.load_file('content/Vouchers.lua')()

-- Load the vanilla planet textures
SMODS.load_file('content/Planets.lua')()

-- Load the vanilla Spectral textures
SMODS.load_file('content/Spectrals.lua')()

-- Load the vanilla Tag textures
SMODS.load_file('content/Tags.lua')()

TexturePack {
    key = 'soul_everything',
    textures = {
        'soul_everything_tarots',
        'soul_everything_vouchers',
        'soul_everything_planets',
        'soul_everything_spectrals',
        'soul_everything_tags',
    },
}

-- Load the Credits tab
SMODS.load_file('credits.lua')()

And this is Tags.lua:

AltTexture = {
    key = 'tags',
    set = 'Tag',
    path = 'Tags.png',
    keys = {
        'tag_uncommon',
    }
    -- soul_keys = {
    --     'tag_uncommon',
    -- }
}
high drift
#

Image is definitely correct?

celest shell
#

It points to Tags.png which is the file in assets/1x and 2x. Is there a size limit or general requirements for the image?

high drift
#

nope

#

I dunno, that all looks fine to me

celest shell
#

This is the file I'm using (started on, rather)

high drift
#

Does it work without the soul keys?

celest shell
#

Nope

high drift
#

Oh that image might actually be too big

#

There’s a limit on width for sure in loce2d I think

#

Hard to see on mobile though

celest shell
#

Gotcha. I'll see if that works. No height limit, though?

high drift
#

Not sure on height

#

I know Aura had to stop using single line animation atlas

celest shell
#

hmm, setting it to the default Tag image size still produced the same crash

high drift
#

That is strange

celest shell
#

Do you know of any Malverk mods that change tags for me to reference?

high drift
#

The hd one does

celest shell
#

It is relatively old, though

#

wait, disabling my mod made that one load it looks like

#

I must be doing something wrong somewhere lol

#

Yup, I found the culprit

high drift
#

😭 at least you found it

amber moat
#

my texpack changes some names of jokers

#

i want them can be turn on and off in configs of malverk whlie enable the texture

#

and i want to know if malverk can be used to change the main menu logo

wide steppe
#

I made every joker a soul and this is happening.

#

The one on the right is the cryptid jolly jokers one.

high drift
amber moat
high drift
#

Probably not, no

amber moat
#

ty anyway

paper escarp
#

when you say the logo, what are you referring to? cirThink
my mind immediately goes to the graphic in the title screen, but you might not mean that

vocal hamlet
#

Tbh as more and more mods implement ui texture redskins it would be nice to be able to manage them somehow

paper escarp
# amber moat this

i see
well right now, the only way i know how to replace that is via an SMODS.Atlas structured like

  key = 'balatro',
  path = [your asset path here],
  px = 333,
  py = 216,
  prefix_config = { key = false }
}```
amber moat
#

ty

wary geode
#

Where do I put display_pos? For the longest time I never realized my pack doesn't show the intended texture

calm tusk
#

@high drift sorry to bother you but i can't figure out how to do the floating thing like on legendaries (i am changing perkeo) (sorry for the ping as well 😭)

vocal hamlet
calm tusk
#

alright then

#

thanks

#

guh,,, i did something wrong Leditoroverload

vocal hamlet
calm tusk
#

uh

vocal hamlet
#

Wait it is 0 indeed I think it's hist the only thing that is

#

I think you might add it right to this line but u don't don't remember

atlas = 'Joker', pos = { x = 0, y = 0 }

calm tusk
#

ive been doing the jokers like this and it works

vocal hamlet
#

Does this joker already have a soul sprite? I forgot this was foe malverk

calm tusk
#

yeah it does

#

perkeo

vocal hamlet
#

If so you should just be able to put it in the same place as the soul sprite in the default sprite sheet

calm tusk
#

yeah i suppose but ive been doing this, should i swap to the full sprite sheet way?

vocal hamlet
#

Well if this works for everything else it ought to for perk. I'll look at the malvern page a little

calm tusk
#

oki

vocal hamlet
# calm tusk oki

soul_keys, used to provide a table of keys of objects that should have a floating sprite. Floating sprites should be the next sprite along in your sprite sheet. (Must be used in conjunction with keys)

calm tusk
#

buh

vocal hamlet
#

Sorry for giving you weird irreverent advice at first

calm tusk
#

nah it's fine lol

calm tusk
#

wait i might have found the issue

#

nope

#

i dont have a clue why

high drift
calm tusk
#

not much else it could be Leditoroverload

high drift
#

And what’s going wrong exactly?

calm tusk
high drift
#

Delete the soul_pos, columns and localization properties

calm tusk
#

ok

high drift
#

The columns one might be messing it up, but the others do nothing so might as well delete them

calm tusk
#

fair enough

high drift
#

Everything else looks okay though

calm tusk
#

is that all then?

high drift
#

That’s all I can suggest without my pc

calm tusk
#

oki

high drift
#

Is it still broken?

calm tusk
#

yeah

#

😔

high drift
#

Are the sprite sheets definitely correct?

calm tusk
#

uhhh

high drift
#

A smaller sheet is fine

#

Just make sure 1x and 2x are the same and that there’s the pixel border at the edge

calm tusk
#

okay well now the gray rectangle isnt there but neither is the floating sprite so i assume that was caused by the soul_pos

vocal hamlet
#

The soul sprite didn't have a whole card's worth if space

calm tusk
#

huh

vocal hamlet
#

It's not centered in the same size space as the cerd

#

at least it isn't in what you sent

calm tusk
#

are you saying i should move the sprite down some?

vocal hamlet
#

I mean that's not the issue really, that depends on where your want it to show up. What I mean is side- to-side it isn't in a 71x95 space that I can see

#

Soul sprites have an entire transparent card of the same size as the background card behind them

calm tusk
#

ohh

hallow dock
#

am i able to retexture playing cards with malverk, also what set would i use for that

vocal hamlet
#

Not malverk

hallow dock
#

rats

vocal hamlet
# hallow dock rats

it doesn't mean it's harder really, and afaik a mod can include both a malverk texture pack and a smods deckskin

#

yeah you definitely can, malverk basically just adds an object to use itself

paper escarp
wary geode
#

give example?

high drift
#

display_pos = ‘key’ iirc

calm tusk
#

I'm doing all the tarots, planets and spectrals at the same time so I can use the whole sprite sheet

calm tusk
#

Uh?

night latch
#

im having some trouble getting malverk to work uhhh

#

can someone help me? I get a crash and error when trying to open the textures through the ingame menu

calm tusk
calm tusk
#

I think I misunderstood you as thinking I was making everything float like that

calm tusk
#

now how to do spectrals/tarots/planets....

vocal hamlet
#

so you can reference it

calm tusk
#

ah

#

okay i get it

#

sorry!

paper escarp
#

does context.post_trigger include dollar bonus calc?

paper escarp
#

why did i post this here, i meant to post this in the steamodded thread cirLost

#

oh, i missed the thread by one pixel, thanks discord

magic niche
#

tryna figure out how to set where on the sheet to get the card texture from when replacing something

#

the information provided seems to only be for sheets arranged identically to default?

#

is there a tutorial anywhere for using Keys correctly?

#

like it says to use them for only replacing specific objects (which im doing) and when sprite sheets are laid out differently (also doing)

#

but doesnt explain how

high drift
#

the keys table is the order

magic niche
#

is that provided anywhere? ive been trying to find things out myself before asking but i wouldnt know where to look for that

high drift
#

you define the keys table

magic niche
#

uhh

#

ok to clarify so i dont sound insane

vocal hamlet
high drift
#

no

magic niche
#

im tryna replace Soul in the spectral cards but only soul

#

so rather than making an entire seperate tarots sheet to pull one card

#

im trying to use unused space on enhancements

vocal hamlet
#

I think

high drift
magic niche
#

which means i need to specify that the only card im Replacing is soul, but the position im replacing it with is not the position of soul on that

high drift
#

you either use the original sheet, or you use a new sheet

magic niche
#

ftr im replacing the entirity of enhancements already

vocal hamlet
#

and just have it be soul on the sheet

vocal hamlet
high drift
#

that's irrelevant

magic niche
#

fucked up

vocal hamlet
#

I think the issue with using the unused space on the enhancementsatlas is other things trying to call those pos's for whatever reason

magic niche
#

if something else is trying to call that position on My modded spritesheet thats on them frankly

high drift
magic niche
#

only reason im even replacing the card back for soul is because i replaced the stone itself on the enhancements sheet

#

and so id have to make an entire duplicate tarot sheet, unedited

#

which is Really Stupid

vocal hamlet
magic niche
#

i see

vocal hamlet
#

you just put the objects you want to replace on it in their own grid without worrying about what their original atlases are

magic niche
#

i dont think i even understand how that aure one is doing it

#

cause it says its just replacing c_aura in the keys

vocal hamlet
#

and it's convention is to seperate card types, but I don't think it's needed at all

magic niche
#

i dont think i understand where its position is being defined

#

thats been a running theme in the things im trying to replace so far is i can never figure out how positions are being defined

high drift
#

you dont define the position

magic niche
#

wack

high drift
#

you tell malverk what order your sprites are in, left to right, top to bottom

vocal hamlet
#

right?

magic niche
magic niche
#

i havent been able to find one

vocal hamlet
#

and if you are replacing a whole base game atlas, then you give it a set instead of indivudual keyes, right?

high drift
#
keys = {
  'object 1',
  'object 2',
  ...
}```
magic niche
#

apologies for being an absolute moron but where do i define these

#

for example when i put c_soul, i didnt define that, idk where that is

high drift
#

c_soul is how the game's code refers to the spectral card Soul

magic niche
#

sick, sick, am i fucking Stupid

#

oh oh oh i am assembling the puzzle pieces in my brain

vocal hamlet
magic niche
#

is the vanilla soul card itself the literal only exception to the "soul" floating bit being the card back's position but incremented by 1

#

and therefore what im trying to do is just Too different

#

and not just Not Best Practice but Genuinely Not Possible

vocal hamlet
high drift
#

no it should work like every other card

vocal hamlet
#

whatever they may be

vocal hamlet
magic niche
#

im gonna be real this is the Actual dumbest ive ever felt

vocal hamlet
#

I think this is roughly what you want

magic niche
#

probably?

vocal hamlet
#

wait

magic niche
#

so like, the soul card's stone itself is stored on the enhancers sheet (in vanilla), so given im replacing that whole sheet already it just makes sense to me to replace the stone there, and then theres 2 whole unused card positions, so im like, well surely i can just make one of those be the back instead of adding a new sheet just for that

vocal hamlet
#

``TexturePack({
key = 'your textures',
textures = {'[modprefix]_soultexture', etc},
dynamic_display = true,
loc_txt = {
name = Your textures',
text = {
'whatever the texture pack does'
}```

magic niche
#

in my head it should be easy to just, tell it "sick, use the expected sprite position for soul's stone, and then just, use this space for the card back"

vocal hamlet
magic niche
#

yea the soul stone is just like, the one little bit that isnt working

#

or, well, the stone works

#

its assigning the correct card back for it that isnt

#

if i just tell it to replace soul and then give it the enhancers path it uses green deck for the back cause i guess thats the equivalent position?

high drift
#

take your background sprite and your stone sprite, put them on the same sheet

#

by themselves

#

nothing else

magic niche
#

thats ridiculous but if its genuinely the only way

vocal hamlet
#

yeah like I was saying

#

you just need 2 t,altexture objects and your texturepack object

#

and 2 pngs

#

well maybe 3 alttextrure objects because backs might be seperate

#

but you can def use the same png

magic niche
#

4 cause seals too

#

wouldve all been on the one png as with vanilla

vocal hamlet
#

the rest you can just use the same atlas and orignal_pos

#

or whatever it is

magic niche
#

oh thats what u meant

vocal hamlet
#

it's not that

#

it's original_sheet

magic niche
#

yea

high drift
#

original_sheet is only needed if you're specifying keys

magic niche
#

mucho cringe but if thats just How It Works ill have to

vocal hamlet
#

i guess it defaults to original sheet pos

magic niche
#

gotta leave actual Gaps in the spritesheet

vocal hamlet
#

for unkeyed

vocal hamlet
#

that's how other smods objects work

magic niche
#

yea i got artist brain instead of programmer brain

#

so this is so ass-backwards in my head lol

vocal hamlet
#

it's a bit ass-backwards compared to the smods status quo too

magic niche
#

wack

vocal hamlet
#

not entirely sure why eremel didn't have an option to manually define pos and soul+pos values like other smods stuff

magic niche
#

its already wild to me that i have to use a Different mod to do the cards themselves lol

high drift
#

because it's designed to be as simple as "here's a spritesheet for this object"

vocal hamlet
#

but fair

magic niche
#

it makes sense depending on who the userbase is expected to be tbf

#

im an artist not a programmer

#

so my brains wired for filling out whole spritesheets like this

#

cutting it up and putting it into seperate files is unintuitive to me but probably makes sense to modders ig

high drift
#

it's not for people who have a good understanding of code, the basic structure of an object is

AltTexture({ -- HD Jokers
    key = 'hd_jokers',
    set = 'Joker',
    path = 'hd_jokers.png',
    loc_txt = {
        name = 'HD Jokers'
    }
})```
#

literally the only object that needs cutting up is soul

magic niche
#

thx anyway

#

that said i figure the primary audience for smth like a texture pack manager is uhh

#

artists moreso than programmers

#

idk im not here to look a gift horse in the mouth im glad this thing lets me do this at all

magic niche
#

it worked so im happy

vocal hamlet
#

Glad you got it working

magic niche
#

ty its part of a texture replacement based on lapfox/halley labs

#

a long-running music project

half zephyr
#

i enabled base game features vvhile having other textures on novv i cant turn it off
i get this every time i click on it in textures menu

#

do i redovvnload malverk?

#

still not vvorkin

#

pls help 😭🙏

high drift
#

Just fixed, try updating now

half zephyr
high drift
#

yes

half zephyr
#

u mean update malverk?

high drift
#

yes

half zephyr
#

i dont see any nevv release tho...

magic niche
#

yea that was happening to me too, didnt realise it wasn't Known

half zephyr
high drift
#

download from source

half zephyr
#

i got it from here

high drift
#

no

half zephyr
#

oh from vvhere then

half zephyr
#

ah tysm! vvorking novv

#

👍

night latch
mortal parrot
#

wait how do i even make a texture pack with this

wide steppe
fiery patrol
#

my game isnt crashing and it says the mod is active but theres no texture option showing up

calm tusk
#

hmmm showman texture isnt applying and ive tried both j_showman and j_show_man

subtle shard
#

it's j_ring_master

calm tusk
#

ah ok

tranquil socket
#

hi i'm trying to use this mod to convert a tarot texture replacement into a malverk texture mod
i copied the format of the hd textures mod but i'm getting an error. would like some help

tranquil socket
tranquil socket
high drift
#

your sprites aren't in an assets folder

tranquil socket
tranquil socket
#

sorry to ping you again @high drift but every time i have a malverk tex pack mod installed and attempt to open the malverk textures menu, game crashes by stack overflow
picture of the mods i have here (the highlighted one is the malverk tex pack i've been working on just above)
and attached is my latest crash report reproducing the stack overflow

mortal parrot
#

could anyone guide me through how i could make one of these texture packs?

#

i want to put this into the game

unkempt sun
#

Malverk doesn't do that

tawny cairn
#

Not sure why would Malverk cause a crash in an "in_pool" function with G.playing_cards not existing

lost nacelle
#

i found this balatro texture pack template so hopefully i will be able to convert my final pack to malverk

#

i know literally nothing about lua
-# apparently it's just better python and i know python so uh

wary geode
#

I don't get it. I've established the display_pos but it's not showing up in-game

high drift
#

It defaults to the first texture in the texture pack object iirc

wary geode
#

so how do I fix it

#

I am assuming I swap the block for booster pack on top

high drift
#

Yeah if you want the booster to be the icon

#

So where you have the table of texture keys put the booster one first

wary geode
#

uhhh still doesn't work

high drift
#

Can you show the texture pack object?

wary geode
#

should be this one according to the code but it still shows Mercury

mortal parrot
#

wait how do i even change a joker's texture with this

#

i forgor

high drift
wary geode
#

aah I moved the celestial on top and now it works

#

thanks

#

now to update it on my Github and Nexus

bleak nacelle
#

does malverk support modifying deckskins yet?

high drift
#

No that’s a smods feature

#

It’s not something I plan on adding to Malverk

paper escarp
#

i actually had an interesting feature request idea in relation to applying textures for undiscovered jokers, if that's still planned - where you could specify multiple different soul textures, and when populating the collection page with undiscovered jokers, it picks from them at random. so that way if you open a collections page that's just full of undiscovered jokers, it could look a little more visually interesting than just 15 of the same texture

for instance, i would use it to basically silhouette all the different legendary joker souls in my mod in place of the standard joker silhouette.

although this would probably be awful to implement for how little use it'd get overall cirBlech

tulip flax
#

is there any place with the internal names for everything? i need them to put them in the keys section for the alt textures

untold python
#

I used the language files

high drift
#

You can see them all in the keys.lua in the utils folder of Malverk iirc

tulip flax
#

why does no floating sprite appear on black hole and why does the soul not change its floating sprite?

#

wait actually nvm i think i got it

#

nvm i dont

high drift
tulip flax
#

i did that and it still doesnt work, now the soul just lost its floating sprite

tulip flax
#

tried merging the floating sprites and the base sprites into a single file, which for some reason just doesnt work? like it just ignores the soul_key and just uses whats supposed to be the floating sprite as the sprite for the next card instead

high drift
#

Yes the soul = path is specifically for the card the soul as it’s on a different atlas in vanilla

#

You should order your sprite sheet as card soul card soul

valid harness
#

hey, i've been trying to add localizations to a texture pack I'm making, but when I try to change the seals' names it gives me this error. Here's how the file's structured, and I also made sure the keys were the proper ones

#

Everything else works by the way

tulip flax
tranquil socket
#

is it possible to turn an smods mod that is only a deck skin mod into a malverk mod? or does it need something else to replace too for that to work?

high drift
austere cloak
#

got a malvert crash
[SMODS malverk "utils/ui.lua"]:473: attempt to index local 'texture' [a nil value]

high drift
#

I think this is a miscofigured texture pack crash

austere cloak
#

probably, im still new to editing stuff

#
--- STEAMODDED HEADER
--- MOD_NAME: Regretevator Items/Effects Planet Cards
--- MOD_ID: RegItemPlanetCards
--- MOD_AUTHOR: [Mediumkey]
--- MOD_DESCRIPTION: Replaces planet cards with Items from Regretevator
--- PREFIX: REGP
--- VERSION: 1.0.0
--- DEPENDENCIES: [malverk]

AltTexture{ 
    key = 'planets',
    set = 'Planet',
    path = 'reg-tarot.png',
    original_sheet = true,
    display_pos = 'c_saturn',
    localization = true
}
TexturePack{ 
    key = 'regcards',
    textures = {
        'reg_planets'
    },
    loc_txt = {
        name = 'Items-Effects',
        text = {
                    'Replaces planet cards with Items',
                    '/ effects from Regretevator'
        }
    }
}

what am i doing wrong here

high drift
#

textures should be REGP_plants

austere cloak
#

let me see if removing the p fixes it

#

neither removing the p or adding regp fixed that

#

maybe im using an outdated version?

high drift
#

no it needs to match the capitalisation

austere cloak
#

ah there we go

#

now theres a new crash

#

["malverk.lua"]:138 attempt to index a nill value

#

wires i could use assistance rq @high drift

high drift
#

remove the localization = true line

austere cloak
#

worked

#

thanks alot 😓

paper escarp
#

switch_func? cirLost what switch_func? i've only specified 17 alt textures total, that shouldn't be enough to make it create a second page, right?

wary geode
#

Is there a way to intergrate a texture to another modded features?

I got too many requests on Celestial Funk to support other modded planets like Multiplayer and Cryptid

#

Well not too many tbh, but enough to make me think it's worth my time

high drift
#

yes there is, I can send you some code later today

wary geode
#

Awesome sauce

thick rivet
#

how can i insert the mod inside balatro? @high drift

slim pecan
#

Hi, sorry to bother you, but I keep getting this error when trying to replace the invisible joker with Big Boss

#

AltTexture({
key = 'BB_Invisible',
set = 'Joker',
path = 'BB_Invisible_Texture.png',
keys = {
'j_invisible'
}
})

TexturePack({
key = 'BB_Invisible',
textures = {'Invs_BB'},
loc_txt = {
name = 'Big Boss Invisible',
text = {'When you can't even say', 'my name'}
}
})

slim pecan
slim pecan
high drift
#

you textures keys are wrong

#

they should match the altexture object keys but with your modprefix at the start

slim pecan
#

I guess I'm not sure what the texture keys are supposed to be

#

The j_invisible?

unkempt sun
#

the key of AltTexture

slim pecan
#

I don't really code so I'm confused as to most of the terms. I checked the github and I got lost at ToggleTextures

unkempt sun
#

should be yourmodprefix_BB_Invisible

#

put that inside textures instead the current one

slim pecan
#

Ah so

TexturePack({
key = 'BB_Invisible',
textures = {'BBInv_BB_Invisible'},
loc_txt = {
name = 'Big Boss Invisible',
text = {'When you can't even say', 'my name'}
}
})

high drift
#

yeah

#

outside of giving screenshots with line numbers, your crash isn't helpful in the slightest though

slim pecan
#

I don't know what program I'm supposed to use to mod the game, I'm using notes files

#

Yeah I'm still getting the same "expected near t" error. Not sure if it's syntax or maybe another malverk mod that has a conflicting value

high drift
#

you need an IDE

#

something that will highlight your syntax errors for you

slim pecan
#

Ah I see, any suggestions?

high drift
#

personally I use visual studio code

slim pecan
#

Hahaha thats really funny hold on

slim pecan
#

the apostrophe

unkempt sun
#

add a backslash before the apostrophe to include it as a string character

slim pecan
#

I just used "" instead

unkempt sun
#

that also works

slim pecan
#

now I'm getting the "attempt to index local texture" a nil value
error

#

Whenever I press the textures setting, I'm assuming I need to upload some sort of mod picture?

unkempt sun
#

where did you putBB_Invisible_Texture.png

slim pecan
#

I've got the mod folder, then
BigBossInv.lua
Assets
|___1x
2x

#

1x and 2x have the correct textures

#

2x being 71 x 95 I believe

unkempt sun
#

it's the other way around

slim pecan
#

Ah hold on

#

no I said it wrong my b

#

1x is 71 x 95

#

The problem being on line 473 of utils/ui

#

AltTexture({
key = 'BB_Invisible',
set = 'Joker',
path = 'BB_Invisible_Texture.png',
keys = {
'j_invisible'
}
})

TexturePack({
key = 'BB_Invisible',
textures = {'BigBossInv_BB_Invisible'},
loc_txt = {
name = 'Big Boss Invisible',
text = {"When you can't even say", 'my name'},
}
})

Code repost

high drift
#

Are you using a .json file or a mod header?

slim pecan
unkempt sun
#

is malverk incompatible with mods using mod header

#

I can't seem to find any issues with local texture here

slim pecan
#

I did use a mod header though:
--- STEAMODDED HEADER
--- MOD_NAME: Big Boss Invisible Joker
--- MOD_ID: BigBossInv
--- MOD_AUTHOR: [bayonora, ThisNameTaken]
--- MOD_DESCRIPTION: Changes Invisible card with Big Boss
--- DEPENDENCIES: [malverk]

slim pecan
#

Both named BB_Invisible_Texture

#

.png

#

Is it possibly the _Texture that is messing with it?

high drift
#

So BigB_BB_Invisible

unkempt sun
#

mod header automatically takes the first 4 characters of mod ID as prefix if not specified

slim pecan
#

Ah I see

#

Specify using '' I assume?

high drift
#

Yes

unkempt sun
#

I recommend switching to json tho

#

you must define a prefix there, but it's a lot easier to manage

slim pecan
#

Not sure what a json is, or how to switch

unkempt sun
#

it's a separate file
here's an example

high drift
#

Don’t worry about it

unkempt sun
#

Ig mod header will still be supported

slim pecan
#

Sorry I've only used C++ and a smattering of python

unkempt sun
#

that would be me a year ago

slim pecan
#

Yeah haha

unkempt sun
#

over 11 months of tampering with lua has helped me a lot in understanding Balatro modding

slim pecan
#

Yeah, I'm hoping to do another funny thing with this mod.

unkempt sun
#

json is widely used in many programming languages despite its full extension name (javascript object notation)

slim pecan
#

Oh I see, I might pick that up as I need to add music a bit later

slim pecan
# high drift Don’t worry about it

TexturePack({
key = 'BB_Invisible',
textures = {'BigB_BB_Invisible'},
loc_txt = {
name = 'Big Boss Invisible',
text = {"When you can't even say", 'my name'},
}
})
Switched it up to this and I'm still getting the same texture nil error

high drift
#

Can you send the error

slim pecan
high drift
#

Oh sorry

#

Prefix is lowercase

#

So "bigb_BB_Invisible"

slim pecan
#

I think that did it, thanks a bunch!

#

@high drift @unkempt sun I really appreciate the help :)

high drift
#

I’ve been looking at it, and I’m not 100% on replacing custom planet cards, but I think if you do table.insert(Malverk.keys.Planet, "custom_key") and then add the keys as normal to the alt texture it should work

wary geode
#

I see

#

Thank you, I'll try it later once I get home from work

paper escarp
lethal flower
#

Bug Report:
When I apply the Default Textures and then click it (in the order from highest to lowest list) (click, not drag, if you drag it nothing happens), the game crashes with an error. I will send the error message in just a second.

high drift
#

Update Malverk

#

From source code, the release hasn’t been updated actually

#

I’ll do that now

paper escarp
#

...wait... can malverk not replace the challenge deck skin? cirLost nvm, i implemented something wrong, pebkac cirDerp

fiery patrol
#

im havinng difficulty with this mod, ive installed it into the mods folder along with some of the textures I want (also in the mods folder), but the textures option is not showing up in the menu

untold python
#

Do you have the mod menu on the main menu?

#

If not, steammodded isn't loading

#

If so, does malverk show up in the modlist there?

#

If so, is it on?

fiery patrol
#

it shows up on the modlist as enabled along with all the textures

#

ita just that the mod menu isn't on the main menu

untold python
#

malverk shows up in the options menu usually

fiery patrol
#

it is not there

untold python
#

Very strange
I'd recommend delete and reinstall the mod? That tends to help with most mods that fail to load

twilit scroll
#

How do you set undiscovered_joker/undiscovered_tarot in an AltTexture?

#

Which set?

valid harness
#

i'm also looking for it

#

i was checking at the [Windows Solitaire](#1337605360776646656 message) mod and even if they added every set available it still didn't change the undiscovered cards

twilit scroll
#

HD texture also has textures for them but they're unused, I assume they aren't currently supported and would have to be handled simlilarly to The Soul's soul

wary geode
#

hey what's up with my thing...
I tried adding custom textures for modded content but it didn't read it

#

nevermind guys I forgot to check the box ❤️

twilit scroll
#

Localization for blinds from texture_packs localization doesn't seem to work. In malverk.lua it checks G.P_CENTERS to get the type of object to apply the loc to, but blinds aren't in G.P_CENTERS so it's always nil and gets skipped.

malverk.lua line 150

if pack.localization then
  local loc = G.localization.descriptions.texture_packs[pack.key].localization
  for center, new_loc in pairs(loc) do
    local object = G.P_CENTERS[center] or nil --always nil for blinds
    if object then
      local game_table = AltTextures_Utils.game_table[object.set] or 'P_CENTERS'
      local default_loc = G[game_table][center].default_loc_txt
      if object.set == 'Booster' then
        local temp_center = center:sub(1, -3)
        SMODS.process_loc_text(G.localization.descriptions.Other[temp_center], 'name', new_loc.name and new_loc or default_loc, 'name')
        SMODS.process_loc_text(G.localization.descriptions.Other[temp_center], 'text', new_loc.text and new_loc or default_loc, 'text')
      else 
        SMODS.process_loc_text(G.localization.descriptions[AltTextures_Utils.loc_table[object.set] or object.set][center .. (object.set == Seal and '_seal' or '')], 'name', new_loc.name and new_loc or default_loc, 'name')

        SMODS.process_loc_text(G.localization.descriptions[AltTextures_Utils.loc_table[object.set] or object.set][center .. (object.set == Seal and '_seal' or '')], 'text', new_loc.text and new_loc or default_loc, 'text')
      end
      G[game_table][center].set_card_type_badge = new_loc.badge and Malverk.badges[new_loc.badge] or (G[game_table][center].default_card_type_badge ~= '1' and G[game_table][center].default_card_type_badge or false)
    end
  end
end
paper escarp
twilit scroll
paper escarp
#

oh, i read that

for some reason i misread what you said cirDerp

paper escarp
# paper escarp i actually had an interesting feature request idea in relation to applying textu...

had another, similar idea but this time for locked jokers - and i think this might be outside the scope/spirit of what malverk is/does but i think it would be nice to be able to do different locked graphics based on rarity (i would also say "and/or object type" but given how some are differently shaped such as tarots/spectrals and especially vouchers, i imagine that would have to be the case anyway). imagine being able to have a locked graphic per common, uncommon, rare, etc.

may probably also need a fallback in the case of modded rarities, but it would be nice to be able to pique players' interest in a locked item because it looks different than the rest

untold python
#

I'm pretty sure the shape is just through a shader, and not something unique to the jokers

paper escarp
untold python
#

I meant for stuff like the half joker, or the square joker

paper escarp
#

i was talking exclusively about the locked graphics though cirBox

hollow scaffold
high drift
#

you have Malverk nested

hollow scaffold
high drift
#

in your mods folder, it should be Mods > Malverk > files here not Mods > Malverk > Malverk > files

high drift
#

well it's not installed correctly

hollow scaffold
unkempt sun
lunar bone
#

attempting to make a Malverk texture, and it works, but now my game crashes upon entering the deck preview. how do I fix this?

#

oh it's probably because of ui_assets

#

↖️ stupid. needs to think more

sullen rapids
#

how would i replace the texture for wee joker since it uses the default joker texture

high drift
#

Youd have to use the keys field, or add a texture just for wee

sullen rapids
#

so like do i just define the key as "wee joker" or something like that

high drift
#

it's j_wee iirc

sullen rapids
#

thanks 👍
is there a list for all the keys for future reference?

valid harness
sullen rapids
#

am i missing something?

subtle shard
#

a comma

#

after why so +4

sullen rapids
#

yeah i figured that out the hard way mr_bones

rose thunder
#

Is it possible to rescale the textures?
I'm making all jokers smol but it's not scaling right

subtle shard
#

Not sure for malverk but you can set a size on the atlas

rose thunder
#

wait I can just use px and py in the AltTexture

#

stickers are a bit wonky but whatever

rose thunder
#

Where's the wiki?

lunar bone
rose thunder
#

this is it

#

the only mention of the types is to "see the wiki"

valid harness
high drift
#

I never made a wiki 😭

paper escarp
#

then why write 'see the wiki' 😭

#

unless that was some kind of futureproofing

sand burrow
#

How do I add mod support like cryptid?

terse crest
#

question if people have answers

#

I see the mod as loaded, but the button to select textures does not appear

high drift
#

You’re looking in the options menu right?

terse crest
#

figured it out, sorry

#

i scrolled up, saw the message bout installing worng

#

and then fixed it

paper escarp
high drift
#

I just haven’t done them

paper escarp
#

ah, i see cirISee fair enough

paper escarp
wary geode
#

hello, is it possible to add a "shine" effect to a textured card using malverk?

paper escarp
#

but i don't think this is something malverk can do cirLost you would have to look into doing this via steamodded and just making it a condition based on whether that card is using your malverk atlas

unkempt sun
#

SMODS.DrawStep

hollow scaffold
#

Question, is malverk able to do textures for mods? As in replace a texture in a different mod

high drift
#

it is

#

I'd have to look over some code but it is definitely possible

hollow scaffold
#

id apreciate it ^^

mortal parrot
#

Oo?

#

Artbox texture pack?

hollow scaffold
mortal parrot
#

Ooh

frigid sphinx
#

what is the path for playing cards? im trying to reskin the low contrast suits and i have no idea how to do that

paper escarp
#

wdym by path

#

like, the filepath?

topaz locust
#

Is there a way to change the stickers skin, not the stake ones, the perishable or rental ones

paper escarp
#

same way you replace anything else in malverk? emberuShrug
it does support stickers and there are individual keys for eternal, perishable and rental

paper escarp
frigid sphinx
#

i open the textures library and the game crashes

plucky belfry
#

Hey, @high drift I'll make this quick. Perhaps you could make a small change in your ui.toml file to not have this large gap with your mod installed?
(I just removed the extra padding from the horizontal row and added an empty node to make up for the missing padding.)

#

-# please don't kill me if you see this thanks you

#

-# (also disregard the green button, that's another mod)

high drift
#

what am I looking at

#

oh I see

plucky belfry
#

So, the textures button.

#

The way you have it setup creates some extra padding, which separates the buttons both horizontally and vertically.

#

Since we don't want the second one, because it stacks with the already existing padding, I just removed it and made up for it with an extra empty node.

#

That's everything I did.

#

so maaaaaaaaaaybe just maaaaaaaaaaaybe you could just implement my shitty fix?

high drift
#

maybe if I remember when I next work on malverk

plucky belfry
#

ok

dapper jackal
#

--- STEAMODDED HEADER
--- MOD_NAME: Undertale Tarots
--- MOD_ID: UndertaleTarots
--- MOD_AUTHOR: [VioMarks and WhitetailAni (undertale mod)]
--- MOD_DESCRIPTION: Undertale mod tarot cards but ported as a malverk texture pack
--- PREFIX: UTarots
--- VERSION: 1.0
--- DEPENDENCIES: [malverk]

AltTexture({
key = 'Undertale Tarots', -- the key of the texture
set = 'Tarot', -- define the object type that you are retexturing, see wiki for full list of types
path = '222139.png', -- the filename of your spritesheet, saved in assets/1x AND assets/2x
original_sheet = true,
loc_txt = { -- [NYI] Localization text for tooltips displayed in the texture selection screen - can be added to a localization file under [descriptions][alt_texture]
name = 'tarot',
}
})

TexturePack({
key = 'undertale_tarots', -- the key of the texture
textures = {'tarots'}, -- a table of keys of your AltTexture objects
loc_txt = { -- Localization text for tooltips displayed in the texture selection screen - can be added to a localization file under [descriptions][texture_packs]
name = 'Texture Pack Name',
text = {'description line 1', 'description line 2'}
}
})

#

this is the code

plucky belfry
#

for starters you are using the very old and outated metadata.

#

everything else idk, I haven't used malverk eve

dapper jackal
plucky belfry
#

The header.

#

Use the .json for metadata instead of the header.

dapper jackal
#

that part seems to work fine tho

dapper jackal
high drift
#

Your textures table needs mod orefixes

dapper jackal
#

what are those

high drift
#

Prefixes*

dapper jackal
#

could you give me an example? sorry but i'm really bad at this

high drift
#

textures = {"UTarots_Undertale Tarots"}

dapper jackal
high drift
#

Your atlas isn’t the right size

dapper jackal
#

what's the atlas

plucky belfry
#

Chances are you put the 1x file in the 2x folder.

#

Balatro uses 2 files for its atlases, one normal sized, which goes into /assets/1x, and an identical one, but double the size, which goes in /assets/2x

#

You may be wondering "why is it that way", at which I answer you with "I have no fucking clue."

dapper jackal
#

that solved it

plucky belfry
#

<3

dapper jackal
#

now i gotta hope it doesnt explode when i try to port the boosters

dapper jackal
#

AltTexture({
key = 'Tarot_Booster', -- the key of the texture
set = 'Booster', -- define the object type that you are retexturing, see wiki for full list of types
path = 'booster.png', -- the filename of your spritesheet, saved in assets/1x AND assets/2x
loc_txt = {
name = 'booster'
},
keys = {
'p_tarot_normal_1',
'p_tarot_normal_2',
'p_tarot_normal_3',
'p_tarot_normal_4',
'p_tarot_jumbo_1',
'p_tarot_jumbo_2',
'p_tarot_mega_1',
'p_tarot_mega_2',
},
})

TexturePack({
key = 'undertale_tarots', -- the key of the texture
textures = {'UTarots_Tarot', 'UTarots_Tarot_Booster'}, -- a table of keys of your AltTexture objects
loc_txt = { -- Localization text for tooltips displayed in the texture selection screen - can be added to a localization file under [descriptions][texture_packs]
name = 'Undertale tarots',
text = {'Tarots from the undertale mod', 'but ported as a malverk mod'}
}
})

now there is no crash but the packs dont show

humble peak
#

wait does this support face cards or am i at another dead end

subtle shard
#

No you want to use SMODS.DeckSkin for that

humble peak
#

aaah thank you

dapper jackal
foggy garnet
#

Which are the 8 images that qualify as the "Enhancers"?

foggy garnet
#

Found it

foggy garnet
#

Can someone tell me which is the 16th deck that is a part of the 'backs' for Malverk.

high drift
#

Challenge, bottom left

foggy garnet
high drift
#

Yes

foggy garnet
#

The omlette

#

Considering the layout of the backs I'm surprised it's not the one between plasma and ghost

foggy garnet
#

Can someone tell me which Malverk set covers the white backings of cards?

foggy garnet
#

Alright trying to identify what is what on the enhancers image. Blue are a part of the set "Back", green are the "enhanced" set, gold is "seal". But I have not yet been able to identify which ones are the remaining purples.

lucid jacinth
#

4,0 is locked deck
0,1 is - well, the soul spectral uses that sprite, but i don't think it uses it from this sheet?
5,3 and 6,3 are used for undiscovered items (jokers and everything else)
and 1,4 is an unused deck

#

1,0 is the base card image, though i don't know if this is where the game actually gets it

foggy garnet
#

Oh no I can identify what they are, I'm trying to label which is part of which malverk replacement set

lucid jacinth
#

ah, lol
i don't know that, i haven't actually used malverk in ages

foggy garnet
#

If the game doesn't use the card white from this sheet, any idea from where it is?

lucid jacinth
#

looking through the game's textures i don't see it anywhere else, so i think it is that after all
... and apparently the soul does use that sheet, cause i don't see the soul gem on tarots.png

foggy garnet
#

It is good to know the bottom left deck is unused

lucid jacinth
#

i didn't know you could get your soul sprite from a different sheet than your base sprite

unkempt sun
#

unlike jokers with soul_pos, The Soul loads a shared sprite for the gem separately to use its own juice animation

foggy garnet
#

Do you by chance know how to replace the whites?

high drift
foggy garnet
#

You'll have to forgive me I'm not very well versed in programming

#

Where would that go?

high drift
#

I can send some code later

foggy garnet
#

Merci

foggy garnet
#
    key = 'luigi-enhanced',
    set = 'Enhanced',
    path = 'EnhancersLuigi.png',
    keys = {'m_bonus','m_mult','m_wild','m_glass','m_steel','m_stone','m_gold','c_base'}
})```
#

Um

#

xD

#

Oh interesting

high drift
#

you need to add default_pos = true iirc

foggy garnet
#

Right

#

Let's add that real quick.

#

Let's gooooooooooooo

#

Now I just pray in my corner for locks support.

#

And card sleeve support but that's a whole new can of worms

high drift
#

you should be able to do card sleeves it's just not particularly simple to set up iirc

foggy garnet
#

Yeah no I am replacing the card sleeves

#

The issue is it replaces, all of them.

#

I'd love if it could be defined in malverk as well.

#
        {
            path = 'helluvasleeves.png',  -- your sleeve atlas path
        },
        true
    )
    SMODS.Atlases['casl_sleeve_atlas'].mod = SMODS.current_mod```
#

How I'm currently replacing the card sleeves^

#

Having it as a define-able replacement in Malverk would be neat since then we could define with keys which ones are being replaced and we can toggle it on or off.

#

But that's definitely a stretch goal that would require I imagine a lot of programming.

#

I'm gonna make a nifty graphical guide for this mod

high drift
#

no I mean malverk already supports doing that

#

I just havent documented it anywhere

foggy garnet
#

Oh?

#

Funnily enough I was about to report that c_base isn't documented in the keys list

#

Throwing together this nifty graphical guide for anyone needing a quick reference for sets and key names.

high drift
#

you have a mislabeled back

#

next to ghost

foggy garnet
#

Will fix that.

#

Is the stone able to be replaced?

#

Wait is the mislabeled one also not used by game?

high drift
#

yeah the game doesn't use it

#

you **can **replace the soul sprite I don't remember how off the top of my head

foggy garnet
#

Then until that's identified we have this neat graphical guide for enhancers sets and keys.

#

Will probably save me some time down the line making mods xD

#

So

#

Do you by chance have code I can reference on how to replace the card sleeves through malverk? xD

high drift
#

I don't

foggy garnet
#

I have two mods I'm currently developing that I want to add sleeve support to and would prefer if they properly toggled with the textures.

high drift
#

oh wait maybe

foggy garnet
#

Exciting.

high drift
#

No, I don't

foggy garnet
#

Shit

#

Time to search through all of malverk's code for the word sleeve

#

xD

high drift
#

no that won't find anything

foggy garnet
#

0 results

#

Yeah

high drift
#

Malverk is able to be configured to work with any set of things

foggy garnet
#

Ah

#

I need to grow at least 5 more brain cells if I have any hope of figuring this out then.

#

If I can get it to work it'd be great since then it'd mean people wouldn't have to enable/disable their mods to bring back the vanilla sleeves when they aren't using the deck backs.

#

Um.

#

I think I found a bug?

#

I set up a custom deck white with the c_base and it's working.

#

But then I disabled the texture through the malverk menu and the backs have updated to being off but the whites are still custom.

#

Yeah repeated the error.

#
  1. Turn on texture with c_base texture.
  2. It correctly applies.
  3. Turn off texture with c_base texture.
  4. C_base remains. Other aspects remove correctly.
#
    key = 'luigi-backs',
    set = 'Back',
    path = 'EnhancersLuigi.png',
    original_sheet = true
})

AltTexture({
    key = 'luigi-enhanced',
    set = 'Enhanced',
    path = 'EnhancersLuigi.png',
    keys = {'m_bonus','m_mult','m_wild','m_glass','m_steel','m_stone','m_gold','c_base'},
    original_sheet = true
})

AltTexture({
    key = 'luigi-seal',
    set = 'Seal',
    path = 'EnhancersLuigi.png',
})

TexturePack {
    key = 'cards',
    textures = {
        "LPB_luigi-backs", "LPB_luigi-enhanced", "LPB_luigi-seal",
    },
        loc_txt = {
        name = "Luigi's Balatro",
        text = {
            "Changes the cards into",
            "a Luigi's Casino style."
        }
    }
}```
#

Tried putting the default cards on in the Malverk menu but that didn't fix it either.

foggy garnet
#

Trimmed my code to only have the malverk related sections

foggy garnet
#

Is it possible to trigger other variables based on if something is active in Malverk? Specifically I have tarot cards that tie in with changed tarot card names and descriptions. I'd love it if the custom names and descriptions only trigger is the malverk texture pack is properly on and the tarot config is enabled so that it properly matches.

#

Another bug discovered.

#

I'm on smods 0827c. Trying to toggle any of these options doesn't save when exiting back and there's the error there at the bottom.

grizzled falcon
#

Hey i'm a new to this modding thing and I was told that what I wanted to do for mt Luigi Poker mod would have to be done through a texture pack and not smods. Is there a way to make it so that I can change the white background to the light blue in luigi poker and have it only apply 1.) to base game cards (no jokers, tarots, etc) and 2.) have it the changes apply only when my Luigi Poker mod is running?

#

the change i want is for it to go from the left picture to the right

foggy garnet
#

Malverk runs through smods so smods will be necessary as well.

grizzled falcon
#

oh i thought it used its own separate functions/commands

foggy garnet
#

C_base is used by all of those cards so the only way for it to ignore it would be to add the backings to the card on the face as well but then you wouldn't be able to have enhancers show

#

Actually jokers and tarots don't use that image so they wouldn't be changed.

grizzled falcon
#

aww that sucks, i guess it would be more accurate to the og game but it would suck not being able to see the modifiers :<

foggy garnet
#

I'm confused as to which cards you're trying to exclude from having the blue background

#

Since jokers and tarots don't use it you should be fine

#

I'm using the blue card on my own Luigi's Balatro mod

#

But there's currently a bug where it can't be disabled without a reset.

grizzled falcon
#

i just want the standard cards (ace, face cards, and the number ones) to have the blue background. I would still like for the enhancer things (lucky card, polychrome, steel, mult, etc) to still show up though too cuz it'd be annoying to have to scroll through every card just to see if it has a special effect or not

foggy garnet
#

Then yeah you don't need to exclude anything.

grizzled falcon
bitter sparrow
#

hi, i need help

#

basically i am making a texture pack that replaces jokers,the 2x sprites works but the 1x sprites one wont show..please help

#

this is the 1x folder btw

#

AltTexture({
key = 'amine_jokers',
set = 'Joker',
path = 'amine_jokers.png',
loc_txt = {
name = 'Amines joker madness',
}
})
TexturePack({
key = 'amine_jokers',
textures = {'jokermadness_amine_jokers'},
loc_txt = {
name = 'Amines joker madness',
text = {'The joker madness', 'is real'}
}
})

#

the code since i think i messed something

#

if i did please help

bitter sparrow
#

this is what happens

#

my spritesheet

#

2x spritesheet

bitter sparrow
#

i get this

#

error

bitter sparrow
#

ok i got it fixed

#

even the x1 sprites not showing

foggy garnet
#

What key do we use to replace the soul stone?

#
    key = 'spectralHELLUVA',
    set = 'Spectral',
    path = 'helluvaenhancers.png',
    keys = {},
    soul = 'helluvaenhancers.png',
    soul_key = {'c_soul',},
    loc_txt = { name = 'Helluva Spectrals',},
    keys = {'c_soul'},
    original_sheet = true
})```
#

Okay got this

foggy garnet
nova niche
#

forwarding this here, asked in modding dev and they told me to come here

nova niche
#

🥺

nova niche
#

😔

hollow scaffold
high drift
#

Oh I completely forgot about this, what is it in particular you want a pack for?

hollow scaffold