#💻・modding-dev

1 messages · Page 21 of 1

random sleet
#

scream

mellow crag
#

Why tf does this happen XD

#

It changed it to normal card size

random sleet
#

i have no idea

#

as far as i can tell my code does all the same things Photograph does but it is clearly unaffected

#

(this happens upon reloading a run)

mellow crag
#

That’s super odd

random sleet
#

ity

#

@golden lake are you happy now

mellow crag
#

Oh my god

#

I love this

golden lake
random sleet
#

legendary oddity moment

golden lake
#

this is awesome

random sleet
mellow crag
#

Is it time to add tiny blind and large blind as variants of small and large blinds?

random sleet
#

large blind as variant of large blind...

mellow crag
#

Oh wait big blind

golden lake
#

also hell yes estradiol in balatro

#

cant wait for streamer reaction

random sleet
#

that was shockingly easy to code

#

(dw i adjusted the delay)

random sleet
#

this was because of leftover stuff from nonconsumable oddities mb mb

crisp coral
#

is this due to set ability

mellow crag
#

damn this is a good pack XD

random sleet
mellow crag
#

btw autumn

#

vampire stamp?

random sleet
#

right now i can't make stamps at all

#

lol

mellow crag
#

oh

#

why?

random sleet
#

seal stuff is borked

quasi jetty
#

cooking

golden lake
#

alch cards are coming to reverie?

#

as compat?

royal ether
#

this is so pog champ

quasi jetty
#

I'm adding codex/morefluff/fusion jokers compat

golden lake
#

youre gonna have to add Con Air for Balatrostuck when we release

#

actually wait

#

Con Heir

mellow crag
#

YESSSSSSSSSSSSSSSSSSSSSSS

#

oh these are so fun

quasi jetty
#

Compats are always fun

golden lake
#

i think you should read homestuck..

mellow crag
#

We should really do compat with Reverie on our end @quasi jetty

random sleet
#

what if i crank up those numbers

shell timber
#

what does radioactive do?

#

oh fusion jokers

#

hm what should a film colour card do

royal ether
#

<- still doesnt know what reverie does

does anyone have a link to github page or something im on mobile so i cant find it

shell timber
royal ether
#

thank

random sleet
#

akai we should collab

golden lake
#

Balatrostuck sadly has no space in either Aspects or Zodiacs for compat because we're working with preset things

maiden phoenix
random sleet
#

what if i make balatro of isaac put in more aspects"
what if i hack ur code

#

and make more aspects

#

did u ever think about that

#

huh

golden lake
#

theres only 12 aspects

crisp coral
#

what if i unaspect your aspects

golden lake
#

13 if you count Piss

crisp coral
#

Piss

random sleet
#

theres unlimited aspects if you just make shit up

golden lake
#

there is a canonical Homestuck character whose classpect is Gent of Piss

#

this is not a joke

mellow crag
golden lake
#

this is real

crisp coral
#

also autumn here's the thing i did for the loc_txt on blind selection

[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "local loc_target = localize{type = 'raw_descriptions', key = blind_choice.config.key, set = 'Blind', vars = {localize(G.GAME.current_round.most_played_poker_hand, 'poker_hands')}}"
position = "after"
payload = '''
if blind_choice.config.key == 'bl_myst_ancestor' then
    loc_target = localize{type = 'raw_descriptions', key = blind_choice.config.key, set = 'Blind', vars = {math.ceil((G.GAME.round + 1) * 1.5)}}
end
'''
match_indent = true
overwrite = false
#

it sucks

#

but it works

golden lake
#

myst is it possible to do multiline patterns

crisp coral
#

iirc no

random sleet
#

you can with regex

crisp coral
#

yeah regex

shell timber
#

oh god

crisp coral
#

i know everyone loves regex

royal ether
#

shoutout that one website that lets you test regex

#

i think its called regex101 or something

shell timber
royal ether
#

there are different flavours of regex?? hell naw

random sleet
#

akai what if i add the seven deadly sins as aspects

#

fite me

golden lake
royal ether
#

reverie website is very cool epic

golden lake
#

yeah it is

#

i wanna do sth similar to that for balatrostuck

random sleet
#

what if i do it anyway

royal ether
#

same but too bad i suck ass at and hate front end

random sleet
royal ether
#

i havent read nor learned anything about homestuck outside of this discord server so anything is an aspect to me

maiden phoenix
#

Everything is an aspect if you believe hard enough

royal ether
#

exactly

maiden phoenix
#

Aspect Of Arachnei

royal ether
#

aspect of aspect

golden lake
#

@quasi jetty how do you handle frontend without going insane

royal ether
#

probably experience

#

or insanity xdd

maiden phoenix
#

From my experience backend has been the worst to me

random sleet
#

aspect of homestuck

maiden phoenix
#

Aspect of Autumn

royal ether
#

i wish i started on frontend because that shit is so easy to find a easy job for

#

relatively

random sleet
#

lol imagine using your technical expertise in the workplace hahahahahaha

#

man i hate being a factory worker

royal ether
#

im unemployed rn... 😔

maiden phoenix
#

Imagine having technical expertise but job offer says "nice driver licence you got there.... not"

random sleet
#

me when i have two college degrees but no high school diploma or GED...

maiden phoenix
#

Did you do a two-in-one cursus?

mellow crag
#

no more vouchers

random sleet
#

o7

shell timber
#

huzzah

golden lake
maiden phoenix
#

NO!!

royal ether
#

vouchless

mellow crag
#

no vouchers?

maiden phoenix
#

Itay do you think its a bad idea if I add fusions to my mod before Steamodded 1.0.0 comes out?

mellow crag
maiden phoenix
#

Neat

frosty dock
#

:0

#

no vouchers?

random sleet
#

faded voucher (legendary oddity) - redeems a random voucher
thoughts?

shell timber
#

can it redeem vouchers without dependencies?

random sleet
#

no

golden lake
#

autumn can you make a big chunugs oddity

royal ether
#

wtf lucky voucher

random sleet
#

why

golden lake
#

pleaseee

random sleet
#

why dont you make a big chungus oddity

golden lake
#

i can make the art for it..

random sleet
#

you can make the Meme Mod

golden lake
#

you should add it tho

random sleet
#

why

golden lake
#

i already have balatrostuck

#

please please please add big chungus oddity

maiden phoenix
#

Autumn can you add the Big Pooper Shit 1000 as an oddity too?

random sleet
#

no

maiden phoenix
#

Worst mod

random sleet
#

true

golden lake
#

autumn im sending you the big chungus oddity sprite

royal ether
#

that was fast

random sleet
#

what the hell would it even do

royal ether
#

be big

golden lake
#

be chungus

maiden phoenix
golden lake
#

no

maiden phoenix
#

:((

golden lake
#

its for autumn only

royal ether
#

this is so sad

maiden phoenix
#

Make "Aspect of Chungus" then

royal ether
#

you think new modders come in here, see us talking about big chungus oddity/aspect and immediately leave

random sleet
#

i dont think

royal ether
#

oh true mb

remote coral
regal shoal
#

Is there any released mod on 1.0.0 yet ?

random sleet
#

cryptid

maiden phoenix
remote coral
crisp coral
#

i'll try to make mystblinds work on 1.0.0 tonight, no work on graveyard tho

#

might also discontinue mystjokers in favor of graveyard

golden lake
#

autuuuumn i made you the big chungus oddity

crisp coral
#

😭

random sleet
#

why he so small

#

small chungus

quasi jetty
crisp coral
#

tiny chungus

mellow crag
quasi jetty
mellow crag
crisp coral
royal ether
#

i saw some post somewhere saying react uwu mode uses some like cutting edge thing to load faster or something

crisp coral
#

real

golden lake
#

big chungus

#

@random sleet

crisp coral
#

@frosty dock aureeeeeeeeeeee

#

😭

#

pls fix dependencies

golden lake
#

this is an insane asylum

#

and im the joker baby

crisp coral
#

also atlases broke

#

hm

random sleet
royal ether
#

LETS GOOOI

random sleet
#

it's not staying

royal ether
#

NOOOO

random sleet
#

i'm not adding literal trash that does nothing to the pool

crisp coral
#

did aure change something with atlases in the last day

#

oh my fucking god how did i write this wrong

random sleet
#

steamo by steamodded

crisp coral
#

ok i genuinely have no idea what beyond the "Loader improvements" is breaking my atlas

frosty dock
crisp coral
#

hm yeah it's returning nil

#

even though it's still using the correct atlas...?

golden lake
#

aure you keep forgerting

crisp coral
#

two hours of gbj this time

frosty dock
crisp coral
#

gatekeep the new people by fucking up steamodded

#

steamodded 1.0.0 cool people only

frosty dock
regal shoal
#

Isn't it that in GameObject.Sprite :

            if not self.raw_key and self.mod then
                self.key = ('%s_%s'):format(self.mod.prefix, self.key)
            end

When I create something it's duplicated by pref_pref_item and pref_item

maiden phoenix
crisp coral
shell timber
#

the pipe fusion in the shop is crazy

crisp coral
#

is prefix added to sprites now

frosty dock
frosty dock
#

it's scuffed for playing cards

crisp coral
#

oh my fucking god

quasi jetty
crisp coral
#

nvm it still crashed LMAO

quasi jetty
#

Tbh I'm not familiar with alchemical thing

frosty dock
crisp coral
#

what

#

😭

frosty dock
#

it's done on call now

crisp coral
#

okay so register is removed everywhere?

frosty dock
#

for sprites I manipulate the key in register apparently, so double calling it is a problem

frosty dock
regal shoal
maiden phoenix
random sleet
golden lake
#

i should call her

random sleet
#

(i dont know how reliable this is as a source)

mellow crag
#

o-3

random sleet
golden lake
crisp coral
#

okay if i do this

SMODS.Sprite({ key = "MystBlinds", atlas = "ANIMATION_ATLAS", path = "MystBlinds.png", px = 34, py = 34, frames = 21 })
#

the atlas should be myst_MystBlinds right

#

assuming my prefix is myst

frosty dock
#

yeah, but unless you put raw_atlas_key = true on a blind you then register, myst_ also gets prep ended onto your specified atlas

#

So you should also just give it 'MystBlinds'

crisp coral
#

im going to die

#

ty aure

frosty dock
#

the prefixes are meant to be fully internal

#

except it's scuffed for playing cards

random sleet
#

i think blinds are just borked cuz i tried to do em too but it didnt work :(

crisp coral
#

and it's still broken when i select the blind

shell timber
#

im not gonna touch 1.0 until it's finalised

frosty dock
#

I'll investigate then, it's probably my fault

frosty dock
#

since it's a point of interaction between mods and also the base game

crisp coral
#

okay the joker mods work now

#

now to see why the set_ability didn't work

golden lake
crisp coral
#

aure can you also check whether cards' set_ability function gets called

zealous glen
frosty dock
#

the new pattern patch trims trailing whitespace

crisp coral
#

death

frosty dock
#

the space is what makes the line I'm using there unique...

#

regex patch it is

#

now lemme see what tf is wrong with blinds

#

it doesn't crash for me, but it's still wonky

#

wtf

#

nvm I'm not using an atlas

crisp coral
#

Nope

#

i'd assume it's super borked then

frosty dock
#

it's so dumb, seriously

#

i just had to not reset the animatedSprite?

crisp coral
#

LMAO

frosty dock
#

Sprite and AnimatedSprite are ever so slightly infuriatingly different

mellow crag
#

Ummm... the new 1.0 patch kinda broke my sprites XD

golden lake
#

aureeeee

mellow crag
golden lake
#

@frosty dock get over here

crisp coral
#

remove register

#

every register

frosty dock
#

it should only be problematic for sprites

#

next commit is gonna unscuff that though

mellow crag
#

i tried doing it without register, it didn't fix the problem it seems

frosty dock
#

you also must not use the prefix

#

'alchemical_atlas' here, 'alchemical_atlas' there and nothing else, the prefix getting prepended should just be internal

mellow crag
#

oh there's mod prefix for sprites now?

#

where is it placed, at the start or at the end?

frosty dock
#

at start

#

but you don't need to ref it

mellow crag
#

oh?

#

why?

frosty dock
#

key = 'key' will turn into 'prefix_key' internally, but prefix is also prepended to the atlas of other objects you create

mellow crag
frosty dock
#

the same as the value you input for the Sprite's key

mellow crag
#

then im not sure what the issue is with the sprites

#

since it seems like all of the sprits in the mod are broken

crisp coral
#

are your cards' atlases the same as the sprite's key

mellow crag
crisp coral
#

hmst

mellow crag
#

i have no idea what's going on Xd

frosty dock
#

it should work with not calling register...

mellow crag
#

same issue

frosty dock
#

code?

#

also what commit

mellow crag
#
SMODS.Sprite{key = "ca_icon", path = "ca_icon.png", px = 34, py = 34, atlas = "ASSET_ATLAS"}

this is the example of me trying to load the icon sprite

#

it does not load it

frosty dock
#

and how are you using it?

mellow crag
#

first line of my mod's code XD

#

(apart from the header of course)

frosty dock
#

bold of you to assume I'll bother finding that

mellow crag
#

wdym?

#
--- STEAMODDED HEADER
--- MOD_NAME: Codex Arcanum
--- MOD_ID: CodexArcanum
--- MOD_AUTHOR: [itayfeder, Lyman]
--- MOD_DESCRIPTION: Adds a new set of cards: Alchemy!
--- BADGE_COLOUR: C09D75
--- DISPLAY_NAME: Codex Arcanum
--- ICON_ATLAS: ca_icon
--- PREFIX: codexa
----------------------------------------------
------------MOD CODE -------------------------

SMODS.Sprite{key = "ca_icon", path = "ca_icon.png", px = 34, py = 34, atlas = "ASSET_ATLAS"}

frosty dock
#

ah no

mellow crag
#

this is the entire thing that uses this sprite

frosty dock
#

oh the mod icon thingy

mellow crag
#

perhaps there's an issue with the sprite location?

frosty dock
#

that got changed because it was causing issues

mellow crag
#

it's an issue with sprite loading in general

frosty dock
#

it needs to be called modicon now

frosty dock
mellow crag
#

yeah it loaded the icon sprite correctly

#

but that's so odd

#

since it should also load the other sprites

#

but it doesn't

frosty dock
#

wdym

mellow crag
#

every time i try to look at a card from the mod, the game outputs this crash

frosty dock
mellow crag
#

yes

frosty dock
#

can you show me the code for registering one such card

mellow crag
# frosty dock can you show me the code for registering one such card
SMODS.Alchemical = SMODS.Consumable:extend {
    set = "Alchemical",
    prefix = "c_alchemy",
    cost = 3,
    atlas = "alchemical_atlas",
    loc_def = function(self, info_queue)
        info_queue[#info_queue+1] = {key = "alchemical_card", set = "Other"}
    end
}

function CodexArcanum.REG.c_alchemy_ignis() 
    SMODS.Alchemical{
        name = "Ignis",
        key = "ignis",
        config = {extra = 1},
        pos = { x = 0, y = 0 },
        loc_txt = {
          name = "Ignis",
          text = {
            "Gain {C:attention}+1{} discard"
          }
        },
        can_use = function(card) 
            if G.STATE == G.STATES.SELECTING_HAND then card.config.in_booster = false return true end
            return false;
        end,
        use = function(card, area, copier)
            G.E_MANAGER:add_event(Event({trigger = 'after',delay = 0.1,func = function()
                ease_discard(card.ability.extra)
            return true end }))
        end
    }:register()   
end
frosty dock
#

can you not use SMODS.ConsumableType

mellow crag
#

oh?

#

why not?

#

oh wait i do use it

#

but i have some uniform data for all of my alchemicals

#

so putting their data like that is better

#

but it also gives me this error with vouchers and booster packs

frosty dock
#

you can still provide defaults in the consumable type's inject_card function

#

it's better for compat since it also provides collection UI and whatnot

mellow crag
#

i will change it then

frosty dock
#

the issue with this one is that default atlases don't get prepended

#

base SMODS uses these to refer to the vanilla spritesheets

mellow crag
#

how do i make it prepended?

frosty dock
#

by providing it to the constructor of the object instead

mellow crag
#

how do i do that?

#

there is no defined construcotr

frosty dock
#

like, for each object

#

SMODS.Alchemical { atlas = 'blah', key = ... }

#

or enter the default with the prefix

mellow crag
#

then why does the problem appear with vouchers as well?

function CodexArcanum.REG.v_mortar_and_pestle() 
    SMODS.Voucher{
        name = "Mortar and Pestle",
        key = "mortar_and_pestle",
        loc_txt = {
            name = "Mortar and Pestle",
            text = {
                "{C:attention}+1{} consumable slot",
            }
        },
        config = {extra = 1},
        pos = { x = 0, y = 2 },
        atlas = "ca_others_atlas",
        redeem = function(center)
            G.E_MANAGER:add_event(Event({func = function()
                G.consumeables.config.card_limit = G.consumeables.config.card_limit + 1
            return true end }))
        end
    }:register()   
end
frosty dock
#

this causes the exact same crash?

mellow crag
#

yes

frosty dock
#

try without register

mellow crag
#

it is without register

frosty dock
#

your snippet isn't

mellow crag
#

the voucher without register?

frosty dock
#

nothing needs register

random sleet
#

is the sprite "ca_others_atlas" or "ca_ca_others_atlas"

mellow crag
#

the sprite is ca_others_atlas

#

oh it works without the register

#

what

frosty dock
#

...

mellow crag
#

i am very very sorry for wasting your time like this XD

#

oh wait it didn't fix it

#

removed it from everything now, still causes issues with the alchemicals and boosters

frosty dock
#

boosters are your thing, not mine

mellow crag
#

the problem is a sprite registry issue

random sleet
#

the booster's atlases will need to be wary of the mod prefix

frosty dock
random sleet
#

check how mine are set up feder

frosty dock
#

it's an issue of atlas values set as default on a class not getting prepended by a mod prefix because they don't belong to a mod, usually

mellow crag
#

i see

#

okay all is fixed now

#

thanks a bunch!

#

and again

#

very sorry for the problems

frosty dock
#

congrats on delaying the 1.0 release just a bit more

unkempt thicket
#

apples

golden lake
#

aure i think youre the one delaying it by making blunders /j

crisp coral
#

so true

frosty dock
#

gonna have to schedule a release for 2025 at this rate

golden lake
#

were gonna make our own steamodded 1.0 then

#

with blackjack and hookers

frosty dock
#

gl

#

/j

golden lake
#

it will be so good

maiden phoenix
#

And aspects too?

golden lake
#

we will add ADS and MICROTRANSACTIONS to Balatro

unkempt thicket
#

50$ for vouchers

golden lake
#

Steamodded 1.0 feature request: A Pay to Play mode where you have to register your credit card and buy all the jokers by charging your card to Aure's account

#

gambling with real stakes

unkempt thicket
#

where does the money go

frosty dock
#

why is this here... i thought I'd changed that -?

#

have i gone insane

golden lake
frosty dock
#

yes i have, I'm not looking at lovely dumps

golden lake
#

aure what do you think of my feature request

#

is it sufficiently cool

frosty dock
#

we don't encourage gambling around here

unkempt thicket
#

but poker

golden lake
#

think about all the money youd make aure

frosty dock
#

currently I'm more so thinking about how that _front.atlas got there

shell timber
#

tempted to make a cross mod challenge mod

crisp coral
#

integrated challenges

shell timber
#

could go into jestobiology tbh?

frosty dock
#

ok thank god it works

#

it took way too long for me to realize I didn't allow suit colors to just be passed as a string

crisp coral
#

aure can you throw me the six suits

frosty dock
#

no, don't have it ported

#

I'm just using a test mod that I added stars to

#

got this working again without a version being specified

crisp coral
#

can you throw me the stars

frosty dock
#

i need to throw the fix first

crisp coral
#

oug

frosty dock
shell timber
#

autumn has 1500

frosty dock
#
SMODS.Sprite {
    atlas = 'ASSET_ATLAS',
    path = '8BitDeck.png',
    key = 'lc_cards',
    px = 71,
    py = 95,
}
SMODS.Sprite {
    atlas = 'ASSET_ATLAS',
    path = '8BitDeck_opt2.png',
    key = 'hc_cards',
    px = 71,
    py = 95,
}
SMODS.Sprite {
    atlas = 'ASSET_ATLAS',
    path = 'ui_assets.png',
    key = 'lc_ui',
    px = 18,
    py = 18,
}
SMODS.Sprite {
    atlas = 'ASSET_ATLAS',
    path = 'ui_assets_opt2.png',
    key = 'hc_ui',
    px = 18,
    py = 18,
}
SMODS.Suit {
    key = 'Stars',
    card_key = 'R',
    hc_atlas = 'hc_cards',
    lc_atlas = 'lc_cards',
    hc_ui_atlas = 'hc_ui',
    lc_ui_atlas = 'lc_ui',
    loc_txt = {
        singular = 'Star',
        plural = 'Stars',
    },
    hc_colour = HEX'DF509F',
    lc_colour = HEX'DF509F',
    pos = { y = 0 },
    ui_pos = { x = 0, y = 0 },
}
shell timber
#

tablecalls look so wrong

frosty dock
#

stringcalls though

#

HEX'DF509F'

shell timber
#

no way

#

actually they look kinda similar to rust struct instantiation

crisp coral
#

😔

#

actually nevermind, just hmu when you're done porting six suits

#

or someone ports a suits mod

frosty dock
crisp coral
#

okay

frosty dock
#

that was quick-

#

great work

crisp coral
#

i'll just throw stars inside graveyrad

#

self.ability.extra seems to be returning nil in jokers' loc_def

frosty dock
#

and config.extra is defined?

crisp coral
#

yea, config = {extra = 1}

frosty dock
#

can you throw me the code for that joker

crisp coral
#

it works because i can throw it ingame

#
local joker = {
    name = "Spectres", slug = "spectres",
    config = {extra = 1}, rarity = 1, cost = 4, 
    blueprint_compat = true, 
    eternal_compat = true,
    perishable_compat = true,
    loc_txt = {
        name = "Spectres",
        text = {
            "{C:mult}+#2#{} Mult for every",
            "card in the {C:attention}Graveyard{}",
            "{C:inactive}(Currently {C:mult}+#1#{C:inactive} Mult){}"
        }
    },
}

joker.calculate = function(self, context)
    if SMODS.end_calculate_context(context) and G.graveyard and #G.graveyard > 0 then
        return {
            message = localize{type = 'variable', key = 'a_mult', vars = {#G.graveyard}},
            mult_mod = #G.graveyard
        }
    end
end

joker.loc_def = function(self)
    if not G.graveyard then return { 0, self.config.extra } end
    return { #G.graveyard, self.config.extra }
end
#

oh wait

#

self.config.extra isn't used in the calculate

frosty dock
#

it should be ability.extra for jokers

crisp coral
#

no self?

frosty dock
#

self.ability.extra

#

no config

crisp coral
#

wait

#

GOD

#

HOW DID I

#

how the fuck did i manage to write that incorrectly

zealous glen
leaden belfry
#

it seems i get my first mod working, good

crisp coral
#

lovely

zealous glen
#

Rock and roll

leaden belfry
#

you can choose one from three identical stone card from the standard pack

crisp coral
#

wrong

#

if you unstone them they will have different suit and rank

#

so clearly they are different stones

zealous glen
#

I mean AFAYK they’re all 2 of Hearts

#

You don’t know if they modded it too

leaden belfry
#

but i banned every way of unstone a card, so they are the same

#

the certificate gives 0/15 blue seal

boreal tusk
#

been digging about in the base code

#

anyone know where the code for the splash joker is found?

crisp coral
#

state_events.lua

boreal tusk
#

thank you

crisp coral
#

g.funcs.evaluate_play

mellow crag
#

Quick question, how does the legendary system in 1.0 actually work?

#

like, i know there is a way to define a "legendary" consumable, but how do I define one?

frosty dock
#

you need to set hidden = true

#

the card can then show up when pack cards of a set are generated that either matches that of the legendary, or another specified one in soul_set

#

you can also set the rate at which they show up (soul_rate, defaults to 0.3%)

mellow crag
#

oh so i set the soul_set as Alchemical (for my type)?

frosty dock
#

yeah

mellow crag
#

oh i see

#

what does the legendaries field do then?

frosty dock
#

that's a static field, it keeps track of legendary consumables defined this way

mellow crag
#

ohhhhhhhhhhhhhh

#

i see

leaden belfry
#

How can I use the original stone sprite as my custom deck back?

frosty dock
#

there's also can_repeat_soul which will allow multiple such cards to show up in the same pack, this one doesn't really matter unless it has a high rate

frosty dock
#

yeah

mellow crag
#

cool

crisp coral
#

opinions on making The Monster also obliterate Cine cards

frosty dock
#

yes

crisp coral
#

aure has spoken

#

it shall be done

shell timber
#

should also obliterate the boons or whatever they're called

mellow crag
#

aure's decree

#

hereby ordained

mellow crag
#

also DONT MAKE IT OBLITERATE CROPS PLEASE

shell timber
#

the monster would destroy all of the crops

crisp coral
#

the monster canonically eats crops

#

because i said so

mellow crag
#

a new blind

#

the cicada

#

only one tag

frosty dock
#

why

#

what happens on ante 1

#

ethereal is banned on ante 1

mellow crag
#

i changed it

#

XD

frosty dock
#

oh no

mellow crag
#

i have a little script to modify game sources

#

it's just for testing dont worry

frosty dock
#

for centers (not tags), i also implement a delete function

#

SMODS.Joker:take_ownership('joker', {}):delete() totally won't cause the game to kill itself

leaden belfry
#

can there be localization when using steamodded?

frosty dock
#

on 1.0.0? yes

leaden belfry
zealous glen
leaden belfry
#

cool, it worked by setting position

worldly sapphire
#

i can't fix the loc_def not working :|

#

i searched alot

#

and i still can't find it

zealous glen
#

What does it look like right now

worldly sapphire
#

it says XERROR in the mult section

zealous glen
worldly sapphire
#

idk how to create one for this :(

zealous glen
#

The Steamodded wiki should have an example

#

You just want a function that returns an array with the relevant extra variables

worldly sapphire
#

I DID IT

#

ITS WORKING

#

AHHHHHHHHHH

remote coral
worldly sapphire
#

its a flush only card

#

for the flush enthusiasts

#

Flush Exclusive

#

btw, i want to make the upgrade message appear before the mult

#

its appearing after

#

lol

frosty dock
#

chat

#

which one

#

colon allows this default function to exist

#

i saw that reaction

random sleet
#

interesting

frosty dock
#

ok but

#

which one

random sleet
#

colon

frosty dock
#

by extension, this should also be colon

#

@edgy reef was this even tested

edgy reef
#

I remember it working

worldly sapphire
#

how do i make this show the upgrade message before the mult is added?

random sleet
#

oh set_shader func? pog

#

or is that just for stickers

edgy reef
#

Yea I did make a set_shader function for stickers

random sleet
#

i seeee
smth like that for centers would be based

frosty dock
#

uh

#

put that in Card:calculate_seal() and Card:use_consumeable() as well

edgy reef
#

WHA

frosty dock
#

btw colon for calculate too or nah?

#

could be useful for config values

mellow crag
#

Porting for 1.0 is so fun

random sleet
#

colon everywhere

edgy reef
#

It should be consistent with how Jokers are calculated but with the addition of card just in case you need card info

frosty dock
#

calculate just get card, context

#

yeah ship it, colon everywhere on stickers

random sleet
mellow crag
random sleet
#

(it'll be fine eventuallyyyyyy)

frosty dock
random sleet
#

oh true

mellow crag
#

Btw autumn do you want me to maybe try and see if I can make a stamp thingy with a special display and stuff?

random sleet
#

im heading to bed tho sooooo ^^"

#

oh as its own system that isnt seals?

frosty dock
#

how do we like this (create_card)

mellow crag
#

Kinda

#

Not really

#

It will extend the seal stuff

random sleet
#

ohhhh like separate collection menu

edgy reef
mellow crag
random sleet
#

i mean if you wanna do it go ahead

frosty dock
#

also compat_exceptions values are always true and just negate the default

#

that way there's no need to loop all centers

random sleet
#

im eepy tho 😴

random sleet
mellow crag
#

Go to sleep!

random sleet
#

im gettting thereeeee

frosty dock
#

yeah go sleep

random sleet
#

thac currently has poker hands, suits, blinds, and joker stamps disabled pending confirmation of api functionality

random sleet
#

there that's what i was trying to say

#

yea i just need to figure out how to use the new api

#

cuz afaik its doing the same thing the original copy of handapi you sent me was doing

#

where it wasnt scoring any cards even if the hand registers properly

#

and also idk how the composite system works

maiden phoenix
#

I don't understand why the mult message is colored like a chips, does chip_mod override mult_mod's color? (0.9.8)

mellow crag
#

I think

random sleet
#

ik you did but i couldnt get it working on the version in smods

#

but i havent tried again since last night so

maiden phoenix
#

iirc didn't someone made a func that makes an temp eval or something?

worldly sapphire
#

is there a way i can make the upgrade message appear before the mult is applied?

random sleet
#

you should be able to do so by not wrapping card_eval_status_text in an event

worldly sapphire
#

i copied from campfire iic

random sleet
#

it makes an event already so you're delaying it by a lot

worldly sapphire
#

i did not know about that

random sleet
#

campfire works off selling cards, so it might be needed for correct timing in that context

mellow crag
#

is someone making new stakes?

ionic isle
#

mathisfun is, for cryptid

frosty dock
mellow crag
worldly sapphire
#

do i put a else in there

#

nvm

#

i got it working

frosty dock
bitter sand
#

i'm making an enhancement (a negative one so not really an "enhancement") and i want it to divide the mult by 2 but i can't figure out how

#

here's what i put in config but it doesn't work

edgy reef
frosty dock
#

should we have extra contexts then

#

or what does myself mean here

#

I don't like it to be a hacky solution if I have to write docs for it

#

do you have an example?

edgy reef
#

I remember people showing a eval_this function, but I'm not sure how it works.

frosty dock
#
function eval_this(_card, effects)
    if effects then 
        local extras = {mult = false, hand_chips = false}
        if effects.mult_mod then mult = mod_mult(mult + effects.mult_mod);extras.mult = true end
        if effects.chip_mod then hand_chips = mod_chips(hand_chips + effects.chip_mod);extras.hand_chips = true end
        if effects.Xmult_mod then mult = mod_mult(mult*effects.Xmult_mod);extras.mult = true  end
        update_hand_text({delay = 0}, {chips = extras.hand_chips and hand_chips, mult = extras.mult and mult})
        if effects.message then
            card_eval_status_text(_card, 'jokers', nil, nil, nil, effects)
        end
    end
end
#

this?

edgy reef
#

Yea

frosty dock
boreal tusk
#

oooo

zealous glen
frosty dock
#

i was just wondering if that was needed here

#

but eval_this works

zealous glen
#

Can anyone see why this wouldn't work? It seems like alignment doesn't get elements added to it

local joker = {
    slug = "syzygy",
    name = "Syzygy",
    config = {extra={alignment = {}, syzygy = false}},
    pos = { x = 0, y = 0 },
    rarity = 1,
    cost = 1,
    blueprint_compat=false,
    eternal_compat=true,
    unlocked=true,
    discovered=true,
    effect=nil,
    atlas=nil,
    soul_pos=nil,
}

joker.calculate = function(self, context)
    if context.using_consumeable and not context.blueprint and not self.ability.extra.syzygy and context.consumeable.ability.set == 'Planet' then
        self.ability.extra.alignment = self.ability.extra.alignment or {}
        self.ability.extra.alignment[#self.ability.extra.alignment + 1] = tostring(#self.ability.extra.alignment)--context.consumeable.name
        if #self.ability.extra.alignment == 3 then self.ability.extra.syzygy = true end
        G.E_MANAGER:add_event(Event({
            func = function()
                card_eval_status_text(self, 'extra', nil, nil, nil, {message = localize{type='variable', vars={#self.ability.extra.alignment}}, colour = G.C.RED})
                return true
            end
        }))
    end
    if context.end_of_round and not context.individual and not context.repetition and not context.blueprint and G.GAME.blind.boss then
        self.ability.extra.alignment = {}
        self.ability.extra.syzygy = false
        G.E_MANAGER:add_event(Event({
            func = function()
                card_eval_status_text(self, 'extra', nil, nil, nil, {message = localize('k_reset')})
                return true
            end
        }))
    end
end
frosty dock
#

what ver is this for

#

since you're using slug, probably 0.9.8?

zealous glen
frosty dock
#

are you making sure this calculate function gets copied to the joker object in SMODS.Jokers after you register it?

#

(i hate troubleshooting 0.9.8)

zealous glen
#

I get the eval (displaying error)

#

The second eval displaying k_reset works fine

frosty dock
#

oh

#

your localize call is missing a key

zealous glen
#

I think it should work without the key, but that's not the issue

frosty dock
#

huh

zealous glen
#

The alignment itself doesn't seem to contain the variables, or at least not indexed by 1, 2, and 3

#

I didn't paste it here but I have some code defining main_end that's supposed to use the entries of alignment

#

But it also errors there

frosty dock
#

how does it error?

zealous glen
#

Uhhh, I don't have the crash message right now, but the actual effect doesn't even work

#

Lemme get it

zealous glen
wintry solar
#

struggling with this, my count of cards in G.your_collection[j] isn't increasing as I loop through the editions

zealous glen
#

Line 31 is closing the curly brackets after content[#content + 1].nodes=

local _generate_main_end = function(self)
    local content = {}
    if #self.ability.extra.alignment == 0 then
        content[1] = {n=G.UIT.R,config={align = "tm"},nodes={}}
        content[1].nodes={
                {n=G.UIT.T, config={text = "(None yet this Ante.)", colour = G.C.UI.TEXT_INACTIVE, scale = 0.32}},
            }
    else
        for i=1,#self.ability.extra.alignment do
            content[#content + 1] = {n=G.UIT.R,config={align = "cm"},nodes={}}
            content[#content + 1].nodes={
                {n=G.UIT.T, config={text = self.ability.extra.alignment[i], colour = G.C.SECONDARY_SET.Planet, scale = 0.32}},
            }
        end
    end
    return {{n=G.UIT.C, config={align = "bm", minh = 0.4}, nodes=content}}
end
wintry solar
#

am I missing something?

zealous glen
frosty dock
#

the second time you're doing content[#content+1], you already created the previous next entry

#

so if content had no entries, you create content[1] and then try to access content[2], which doesn't exist

zealous glen
#

-_-

frosty dock
#

why not put the nodes table in place of the empty table in the first definition though

zealous glen
#

For now three separate lines work

#

One line might be too wide

frosty dock
#

still no need to separate it out like that

#

but content[#content] the second time will do

zealous glen
frosty dock
#

hm idk

zealous glen
#

But it doesn't work because apparently consumeable.name is (presumably) nil

frosty dock
#

it's consumeable.ability.name you're looking for

zealous glen
zealous glen
frosty dock
#

huh that's odd

zealous glen
frosty dock
#

lmao

crystal cloud
#

hey there, can someone point me in the direction of a mod that destroys a specific socred card or give me a hand with how to do it, i feel like ive looked everywhere, but im probably missing something obvious asf LMAO

zealous glen
crystal cloud
#

i want to destroy a played queen, however ive got no fkn clue how to do that since i cant find documentation on how to do it, and i also cant find any alr existing mods that destroys a specific scored card that i can look at the source code for to get an idea of how to do it

frosty dock
#

usually vanilla code is a good place to start

#

if you ask yourself, what vanilla joker destroys played cards, the answer would be sixth sense

crystal cloud
#

wait there is a vanilla code source out there??

frosty dock
#

here's what you do

#

you look for the Balatro executable

frosty dock
#

and you extract it with 7-zip

crystal cloud
#

oh shit

#

thank you

frosty dock
#

np

bitter sand
#

i want to make an enhancement that divide your mult by 2 but i don't know how (the enhancement is already done i just can't set the mult divided by 2) can someone help me please ?

wintry solar
#

it works 🎉

mellow crag
#

what do they do?

frosty dock
#

amazing

wintry solar
#

at the moment nothing

#

I've been fighting with UIBox for the past day or two

frosty dock
#

does this have API potential?

bitter sand
#

fluorescent looks like he's gonna chase me in my dreams but looks kinda cool

wintry solar
#

I'm planning to try and make it that way yeah

#

I don't really know what I'm doing but we'll figure it out

frosty dock
#

I'd love to add support for it to Steamodded at some point

wintry solar
#

if you have any guidance for making it into an API please send it my way

frosty dock
#

I assume you have been working with version 0.9.8?

wintry solar
#

yeah

zealous glen
frosty dock
# wintry solar yeah

having a look at the source code for 1.0.0 alpha should already give you a rough idea of how APIs will work for it, but I'd say just do your thing for now. as long as things aren't hard-coded, the interface shouldn't be too tricky to convert to 1.0 standards at the end

bitter sand
#

i mean the term "hook" is not familiar to me

frosty dock
#

is card eval not something EnhanceAPI supports?

wintry solar
#

I've been looking at EnhanceAPI for guidance so far

zealous glen
#

if the x_mult is strictly positive, then fractional x_mult should work

#

Ah, but you might need to hook get_chip_x_mult

#

Because that function makes x_mult less than 1 not work

#

I'd suggest hooking get_chip_x_mult to return fractional x_mult only if you Enhancement applies

zealous glen
#

So hooking Card.get_chip_x_mult might look like

local get_chip_x_mult_ref = Card.get_chip_x_mult
Card:get_chip_x_mult = function(context)
  if self.ability.name == "My Enhancement" then
    return 0.5
  else
    return get_chip_x_mult_ref(self, context)
  end
end
bitter sand
#

hum i don't really understand where to put that

zealous glen
#

I think anywhere works

bitter sand
#

outside ?

zealous glen
#

Outside

bitter sand
#

bruh

frosty dock
#

don't think that matters

bitter sand
#

it seems weird since everything is inside of the init function

zealous glen
#

1.0 removes the init function

#

So that makes it more straightforward

frosty dock
#

the function doesn't get called between loading and init, so it can't matter

bitter sand
#

so i just paste it in the code

#

and i replace "My Enhancement" by the name of the enhancement ?

#

but then what do i do of this ?

zealous glen
zealous glen
crystal cloud
#

hey i found sixth sense, but this seems to make no sense to me, where tf does it destroy the six? sorry again if this is obvious, i managed to use some other code that works, however it destroys the queen before the scoring actually happens LMAO

                    if (v:get_id() == 12) then
                        local trash_list = {}
                        table.insert(trash_list, v)
                        local card_to_destroy = v
                        card_to_destroy.getting_sliced = true
                        card_to_destroy:start_dissolve()
                    end
                end
zealous glen
#

because playing cards just use self.ability.x_mult

zealous glen
#

I was just saying that I don't know if self.ability.name is the correct variable that stores the name of the Enhancement in a card

#

Looking at get_chip_mult, it has if self.ability.effect == "Lucky Card" then

#

so maybe it should be self.ability.effect == "My Enhancement"

bitter sand
#

i really don't understand

#

i'm clearly not good enough at code

zealous glen
#

What were you asking?

bitter sand
#

well everything you just send

zealous glen
bitter sand
#

idk

#

i just don't understand

zealous glen
zealous glen
bitter sand
#

i don't even really get what's a f- hook so...

#

i know what a variable is, i know what a function is but a hook idk

zealous glen
#

You could just erase the original function, but then you could break any mod that also tried to change that function

zealous glen
#

By saving the original and returning it, you ensure your mod works with other people's

crystal cloud
zealous glen
zealous glen
crystal cloud
zealous glen
#

New Joker: Syzygy
I don't know why it has this awful gap in the textbox, but it works

austere schooner
#

does this not show up if you're already playing plasma deck?

#

since it'd be a bit redundant

zealous glen
austere schooner
#

clearly if you're using plasma deck it balances and then doubles chips and mult

zealous glen
#

nah

#

I think I'll make it reset after each round

narrow pollen
#

how do you get the number of card ranks in alpha?

#

i would assume it's #SMODS.Ranks

#

but that doesn't seem like it's working

#

why

#

is it so difficult

#

to figure out

#

how many ranks there are in the game

#

why is this what i have to do to get the number of ranks

wintry solar
#

well this at least adds the shaders and adds it to the collection

edgy reef
#

woa

zealous glen
wintry solar
#

anyone know where editions are calculated?

zealous glen
#

I think it’s at the end of the individual playing card evaluation loop

wintry solar
#

yeah during play

edgy reef
#

Generally it's during individual card play and before/after calculating jokers at final scoring.

maiden veldt
#

how would i change the text on an existing joker using the G.localization function?

#

or more specifically, something past the first tab i.e.

    descriptions = {
        Joker = {
            j_joker = {
                name = "Joker", --changing this
                text = {
                    "{C:red,s:1.1}+#1#{} Mult" --or this```
wintry solar
#
function SMODS.Edition:add_to_card(card)
    sendDebugMessage(tostring(card.sort_id))
    local center = G.P_CENTERS[self.slug]
    card.set_edition(self, {
        [center.key:sub(3)] = true
    }, true, true, {
        name = center.key:sub(3),
        config = center.config
    })
    sendDebugMessage("Added edition to card " .. card.sort_id)
    for k, v in pairs(card) do
        sendDebugMessage(k .. ": " .. tostring(v))
    end
end

this doesn't appear to do anything, my consumable just fizzles out and the jokers stay the same, any thoughts as to what i might be missing?

#

when I look at the card at the end, it doesn't have an edition key, but in my set_edition function I can iterate over self.edition

wintry solar
#

I have found the culprit

random sleet
#

based

mellow crag
#

Good morning, evening or afternoon everyone!

random sleet
#

gm feder

#

how are you mr alchemical fella

mellow crag
#

Good

#

Woke up early

#

I’m almost done with porting codex for 1.0

random sleet
#

lets gooo

mellow crag
#

Like, I only have the compat alchemical to implement

#

I don’t think I’ll release it before 1.0 comes out though

#

What have you guys been up to?

edgy reef
#

Not much unfortunately

golden lake
#

morning

mellow crag
#

Btw how would you go about checking if a mod exists in 1.0?

gaunt thistle
#

good morning feder

mellow crag
#

Since there is no init method

#

Also good morning everyone’

gaunt thistle
#

I need feedback on these install instructions plox

#

I hate writing installation guides

golden lake
#

I'd recommend adding Windows and Linux to the first header

gaunt thistle
#

Windows + Proton / Wine

sly forge
#

"Steam Play"

gaunt thistle
#

that being said Linux support should be easy

sly forge
#

is that more known?

gaunt thistle
#

I've heard proton more

#

formatting looks good

#

I don't know how to write it for the people that wont read, but we'll get there when we get there harold

golden lake
gaunt thistle
#

linux? ewwww

#

imagine using linux ewwwwwwwwwwwwwwww

#

🤮

golden lake
#

imagine giving microsoft/apple telemetry on your every move in your os

#

couldnt be me

#

imagine having a watermark telling you you cant run Microsofts shitty copilot, couldnt be me

#

I've switched to Linux when they announced Windows 11

wraith sequoia
#

linux is so much more fun to play with, especially love those SBC handhelds

golden lake
#

After previously openly stating that Windows 10 would be the last Windows operating system that would receive continuous updates

wraith sequoia
#

Balatro even runs on them!

shell timber
#

i should start using linux

gaunt thistle
#

that's it I'm not adding linux support

#

freebsd though BlobSweat

edgy reef
#

WHAT is going on here

golden lake
gaunt thistle
shell timber
#

yeah ik

mellow crag
#

notmario

#

are you updating MoreFluff to 1.0?

shell timber
#

when 1.0 is finalised

golden lake
shell timber
#

yeah i was looking at fedora or mint

mellow crag
#

ohhhh

#

i see

golden lake
#

You can always dualboot Linux, btw

wild gyro
#

i'll switch to linux eventually but my indifference towards my os isnt really helping with that

shell timber
#

i know, i have done in the past

golden lake
shell timber
#

fair enough

gaunt thistle
#

why dualboot when you have cygwin 🙄

golden lake
#

Alternatively you could always get into the Arch rabbithole and set up EndeavourOS

#

Not Manjaro, screw Manjaro and its devs

gaunt thistle
#

im obviously kidding

golden lake
#

Being on an Arch-based distro has its perks though, like having access to the AUR

gaunt thistle
#

linux is great

#

aur is incredible but man, it can really be a ticking timebomb

#

but it doesn't need to be that way - use btrfs snapshots

golden lake
#

I think pretty much all of the software on my computer was downloaded via AUR

#

It's a huge lifesaver, especially with Debian packages

gaunt thistle
#

I run W11 on basically everything nowadays, but that's because I do technical windows-specific stuff for work and it's an absolute PAIN to debug PE executables within Wine.

edgy reef
#

Reworked Starborn to be more inline with the name and also because the effect is hell on earth to make along with being boring (previous effect was "Increased played poker hand mult and chips by 1.5X").

frosty dock
narrow pollen
#

oh, okay

frosty dock
narrow pollen
#

it's not that, i don't think

#

i made a function to detect a mod

frosty dock
#

it was changed in 1.0

mellow crag
#

Cool

#

Thanks a bunch

random sleet
mellow crag
#

@frosty dock how was the tag API implemented? does it still use the 'apply' function for effects?

frosty dock
#

pretty sure I didn't change that

mellow crag
frosty dock
#

I made it consistent between Backs and Tags, but I believe I changed the function in Backs to apply and not the other way around

mellow crag
#

crashed on game start

#

after registering the tag

frosty dock
#

what this

mellow crag
#

after i tried to register my tag, this issue appeared

#
function CodexArcanum.REG.tag_elemental() 
    SMODS.Tag{
        name = "Elemental Tag",
        key = "elemental",
        config = {type = 'new_blind_choice'},
        pos = { x = 0, y = 0 },
        loc_txt = {
            name = "Elemental Tag",
            text = {
                "Gives a free",
                "{C:alchemical}Mega Alchemy Pack"
            }
        },
        atlas = "tag_elemental",
        apply = function(tag, context)
            if context.type == 'new_blind_choice' then 
                local lock = tag.ID
                G.CONTROLLER.locks[lock] = true
                tag:yep('+', G.C.PURPLE,function() 
                    local key = 'p_alchemy_mega_1'
                    local card = Card(G.play.T.x + G.play.T.w/2 - G.CARD_W*1.27/2,
                    G.play.T.y + G.play.T.h/2-G.CARD_H*1.27/2, G.CARD_W*1.27, G.CARD_H*1.27, G.P_CARDS.empty, G.P_CENTERS[key], {bypass_discovery_center = true, bypass_discovery_ui = true})
                    card.cost = 0
                    card.from_tag = true
                    G.FUNCS.use_card({config = {ref_table = card}})
                    card:start_materialize()
                    G.CONTROLLER.locks[lock] = nil
                    return true
                end)
                tag.triggered = true
                return true
            end
        end
    }
end
frosty dock
#

oddity tag was working, no-?

mellow crag
#

yup

#

i will check it out

frosty dock
#

I don't think I broke something at the very least

mellow crag
#

found the issue

#

apprantly the set was not... set

frosty dock
#

oh, that

#

I thought I'd fixed that? maybe I forgot

#

lemme check

random sleet
#

maybe feder hasnt updated

mellow crag
#

i did

random sleet
frosty dock
#

set is present on latest commit

mellow crag
#

oh this is beautiful

random sleet
#

but yeah all 4 oddityapi tags seem functional

frosty dock
#

I pushed like 8h ago

mellow crag
#

yeah they are

mellow crag
#

i wasn't awake 8 hours ago XD

random sleet
#

nice

mellow crag
#

now I only need decks and i am done with porting codex to 1.0!

random sleet
#

is 4 tags too much for oapi lol

frosty dock
#

nah lmao

random sleet
#

maybe i should make them individually configurable

frosty dock
#

alright things seem fairly stable now besides another small mistake

#

have I forgotten any reports?

random sleet
#

or like, move some to Thac

#

i just dont want oapi to have more content than the Bare Essentials yk

slow ocean
#

i was going to say something funny here but

#

actual question

frosty dock
#

yeah maybe move it to thac

random sleet
#

(which is why it doesnt ship with any Oddities)

slow ocean
#

did you ever implement a deck fallback?

edgy reef
#

So far it's all been fine on my end, granted I haven't been playing with all the new APIs

slow ocean
#

like when the game tries to load an unloaded modded deck on selecting new game

frosty dock
#

it should have always defaulted to red deck, the issue we had previously that a hook wasn't replicating that logic

#

it's a non-issue with lovely

slow ocean
#

oh swag

#

aure you should do meth more often

#

lovely clearly enhances everything

frosty dock
#

interesting bit of advice

slow ocean
frosty dock
#

lovely really is lovely

golden lake
#

morningus

slow ocean
#

good evening akai

random sleet
#

that's what i have but from like two days ago i havent been able to sit down and dev or look at commits

frosty dock
#

playing card atlas jank is resolved, same with blinds

#

poker hands work fine on my end, I checked again with spectrum

slow ocean
#

so how many apis have we amalgamated at this point

random sleet
frosty dock
#

seal API might still have jank tbh, not sure what that was about exactly

random sleet
#

so maybe just Relic and Collector's tags get moved to thac

frosty dock
#

I added that, you can now add a legendary key to the rarities table

mellow crag
random sleet
frosty dock
#

though now that I think about it, there may be issues with the pool for it not being created since I use ipairs

random sleet
#

i might just need to see an example of poker hand api, is sixsuits on 1.0?

frosty dock
#

no, I've just been throwing things in a test mod

#

I'll probably port it soon, but I can drop you the code for spectrum later

mellow crag
#

perhaps spectrum should be added to base steamodded

worthy depot
#

That would be wise.

frosty dock
#

hm

#

idk if I want steamodded changing the game's behavior by itself

mellow crag
#

understandable

slow ocean
#

spectrum as a base hand type would be kind of whack to balance around since multiple suits increase how easy it is

frosty dock
#

Also that

mellow crag
#

yeah makes sense

stray warren
#

I'm getting an error engine/sprite.lua:34: attempt to index field 'atlas' (a nil value) when trying to view my jokers in the collection. Did I assign them incorrectly?

    joker_sprites.register()```

```for _, v in pairs(jokers) do
        joker = SMODS.Joker:new(
            v.name,
            v.slug,
            v.config,
            v.pos,
            {name = v.name, text = v.desc},
            v.rarity,
            v.cost,
            nil,
            nil,
            v.blueprint_compat,
            v.eternal_compat,
            nil,
            'jokers',
            nil
        )
        joker.loc_def = v.loc_def
        joker:register()
   end```

Here's an example of one of the jokers in the array that I am registering above:
```{ -- Plague Joker
            name = "Plague Joker",
            slug = 'plague_joker',
            desc = {
                "{C:mult}+1#{} Mult",
                "{X:mult, C:white} X#2# {} base Mult at end of round",
                "{C:green}#3# in #4#{} chance this",
                "card gets destroyed at end of round"
            },
            config = {
                extra = {
                    baseMult = 5,
                    xMult = 2,
                    odds = 8
                }
            },
            pos = {x = 0, y = 0},
            rarity = 2,
            cost = 5,
            loc_def = function(card) return {
                card.ability.extra.baseMult,
                card.ability.extra.xMult,
                G.GAME.probabilities.normal,
                card.ability.extra.odds} end,
            blueprint_compat = true,
            eternal_compat = false
        },```
frosty dock
#

0.9.8 APIs are wacky, I can't tell if the argument placement works out on that

#

isn't atlas the last param?

stray warren
#

I think it's "soul_pos", at least that's what I got from a guide somebody wrote in the modding forum

frosty dock
#

you might be missing one in the middle?

stray warren
#

Weird, a different mod I was working on has the same setup in the joker constructor, and it works just fine

mellow crag
#

Wait, does 1.0 have a deck API. I don't think I see it here

#

oh wait decks in the game are backs

#

forgot

frosty dock
#

yeah

zealous glen
random sleet
#

oh actually does smods consumabletype offer automatic statistics screen creation? if not it probably should 👀 (since it offers collection screen, anyway)

random sleet
#

you should port your alchemical stat screen code for smods

short surge
#

any small mod that makes custom packs?

#

ik alchemy did, but wonders if there's any smaller scale ones to look at

shell timber
#

codex is probably the best place to look

mellow crag
#

wooo codex

ionic isle
#

its bundled with other mods normally but you dont have to do anything fancy to only have voucher packs

zealous glen
zealous glen
#

Idk

short surge
mellow crag
maiden phoenix
#

Itay can you read our dm pretty please

frosty dock
#

1.0 fusion API?

mellow crag
#

With fusion jokers, yes

frosty dock
#

dope

mellow crag
#

Idk I finished porting codex, and I am not sure what to do rn

frosty dock
#

should I port sound.lua or leave as is?

mellow crag
#

You can keep it as is I think

random sleet
#

wouldnt want to piss off its author again

#

hmmmmm should the Collector's Deck just turn Arcana/Celestial/Spectral Packs into Oddity Packs... (deck that turns all consumables into oddities)
its kinda weird not being able to use oddities on cards in your hand in arcana/spectral packs... but im not sure theres a good solution?

night pagoda
random sleet
#

then again if i could crack having the game allow you to use oddities from packs that'd be better anyhow

mellow crag
random sleet
#

none of them, that was Composite Hands

night pagoda
#

Damn

random sleet
#

yall rag on me for having too many projects meanwhile feder