#💻・modding-dev

1 messages · Page 53 of 1

night pagoda
#

yup!

wintry solar
#

let me add 50 more stakes and see how it scales

#

they are a little squashed together, but I think that helps the effect

mellow sable
#

If you zoom in the Cryptid stakes have a small outline

#

Not sure if that’s an issue with the texture or with the UI

wintry solar
#

I think it's a texture thing, I noticed that on some of the decks too

#

I want to eventually make the chips fall into place too, I think that would be pretty cool

wooden nexus
#

First thing's first, planning out all the DNDG Cards to be imported

#

I could do something with them

#

Let's use this card for example

#

You can see the 11 and then bullet point: That's just the same value as an 11 of nothings

#

I COULD save some time and just add ranks and only one suit

mellow sable
#

Maybe it selects the rank and suit when held in hand but you have to guess it

wooden nexus
#

maybe, I was showing it just for the top part there

mellow sable
wooden nexus
#

Yeah, that was my initial idea

#

but then i noticed all the cards fit into the 5 suits

#

It counts as a jack when played in Blackjack so why wouldn't it in a poker setting

#

I'll have to concept how DNDG core concepts would act in Balatro

#

Like how do I do damage or deal with bust limits

#

Of course, I can probably do the first like... 6 or so pages quickly

maiden phoenix
#

electrocute the player irl for damage balatrojoker

wooden nexus
#

Lol

#

"Today, I turned Balatro into a game of Saw"

maiden phoenix
#

"Each discard will cost a family member"

edgy reef
#

Maybe sap some % of current/hand score?

wooden nexus
#

Well i know DNDG gives the base player 100 HP

#

Busting is kinda hard because busting in balatro is just a game over

#

So I could do something like

"When Played, Permanently gain +4 Chips." for the on stand effect...

unkempt thicket
#

how do you get the current chips, this

shell tangle
#

There's G.GAME.current_round.current_hand.chips and .chip_text, which I think it's just chips, I'm not sure why the chip_text is separate, though there might be another way to access it as well. There's also just G.GAME.chips, but, I don't remember what it accesses.

Overall, you should probably take a look through game.lua under Game:init_game_object() to see all the things stored in G.GAME.

sonic mortar
#

in general it's also used to display the buildup as the score tallies up from jokers and bonuses, because the reality is that the game does the score calculation in one go

#

the counter changes as part of the animation process

mellow sable
#

thoughts on this UI for security checks?

glass scaffold
mellow sable
#

it's for the WR leaderboards

glass scaffold
#

oh ok

mellow sable
#

plus you would also be able to use this with the replay feature to cross-reference if a replay with a certain set of mods is compatible with another set

glass scaffold
#

How do I change the color of the card suits

mellow sable
#

for just the text you can use Trance, however you need to make your own textures to change the colors of the suits themselves

glass scaffold
#

So if I want to use the "Card Colors" option, I'll have to do my own textures?

unkempt thicket
#

can I add a new context/variable to a specific card? like how when I add an enhancement I can check if a card has it and apply code, I want to apply a thing to a card that I can check if it has that's not an enhancement. Solved.

dawn oar
#

Is it possible to make a deck start at a different ante

hallow forge
#

yes

unkempt ridge
#
version = "1.0.0"
dump_lua = true
priority = 0

# Quiets down the fire ambience
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = "= function(_prev_volume)"
position = "after"
payload = "if _prev_volume > 0.6 then return _prev_volume = 0.6 else "
match_indent = true```
Alright trying to do some wacky shit, if we can even do this. 
Trying to insert this payload in the misc_functions.lua since it seems like that controls the scoring fire volume. We just wanna cap it to a tenth of the game volume, instead of it seemingly getting louder to match the master volme even if we reduce the game volume to like, 2? Thought we were getting somewhere but uhhhh
realizing we might be outta our league-
frosty dock
#

idk return _prev_volume = 0.6 looks wrong

wintry solar
languid mirage
unkempt ridge
#
[[patches]]
[patches.pattern]
target = "functions/misc_functions.lua"
pattern = "G.ARGS.push.ambient_control = G.SETTINGS.ambient_control"
position = "at"
payload = "--G.ARGS.push.ambient_control = G.SETTINGS.ambient_control"
match_indent = true```
Welp we figured out how to quiet the fire

if absence of noise = quiet then, we did it
regal shoal
#

Hello everyone !
Does someone knows what happened to ranks and suits in the updates for the last month ?
And if it's now possible to create ranks for only specific suits without hooking inject_p_card() ?

#

Should I just use remove_p_card() on concerned ranks ?

#

Or is there any better option ?

tidal edge
#

is this right for code that works like a buffoon pack

regal shoal
#

I just found something else weird, we can't define any custom fields for "G" ? Like I was creating a G.mjst_lib for my library mod and I just realized it's getting nilled somewhere . . .

frosty dock
#

you don't need an object loader

regal shoal
zealous glen
regal shoal
shell tangle
zealous glen
#

Then the function is only available locally

regal shoal
#

Yeah but that also means that you have to copy the code from one mod to another

#

I may do that if this is the only option

zealous glen
#

I mean, you only need to load from the correct place

regal shoal
#

I don't think you can load outside the repo of a mod ?

zealous glen
#

Well, defining something semi-globally also needs the code to be somewhere in a repo

#

If what you want to do is inside of a run, there's another solution

regal shoal
#

I'm all ears

zealous glen
#

This creates a dictionary inside G.GAME which is per run

regal shoal
#

Hmm I see, that's interesting ty !

tidal edge
#

does anyone know what the error is reffering to

shell tangle
#

Because your atlas isn't in SMODS format and still using cryptid's custom format, without the way to load that custom format in. Use SMODS.Atlas.

wintry solar
#

basically, don't look at cryptid for how to use smods

#

it doesn't do it in a conventional way

languid mirage
#

@wintry solar hello, could you please help me with something UI related

I need to limit the menu height so that black part (on screenshot) is gone. Been trying to do it for a long time myself, but I have no clue what do I need to change to limit height

https://github.com/stupxd/Cartomancer/blob/main/mod.lua

wintry solar
#

sure let me take a look

#

can you throw a maxh in your tab config?

languid mirage
#

I already tried maxh in a bunch of places

#

where exactly

#

should I put it

#

if I add maxh to parent node it makes text super small and doesnt change the height of anything

wintry solar
#

I think perhaps in your local tab_config = {blalala}

languid mirage
#

doesnt seem to change anything

wintry solar
#

when you hold G+A which boxes are stretching it?

languid mirage
#

tab_config is the orange area btw

wintry solar
#

what happens if you change root on line 178 to r or c

languid mirage
#

iirc it breaks buttons alignment

#

lemme try

wintry solar
#

I don't see why that node should be so tall

languid mirage
#

same

#

that's why I'm desperate for help 😭

#

oh my god

#

my insane suspicion was correct

languid mirage
#

so I added 1 more option...

#

the game is trying to fit tabs and the tab contents

#

as if they were in a column

wintry solar
#

oh I see

#

so it's assuming the contents are below the tabs

#

try changing 174 to a column

languid mirage
#

no change

wintry solar
#

I still don't fully udnerstand the relationship between rows and columns, sometimes they just don't do what I think they should

languid mirage
#

😭

wintry solar
#

maybe put that back to a row and then change the next two to columns

#

so 178 and 181

languid mirage
#

holy shit

#

that worked

wintry solar
#

yeah I remember it's when you combine different types it gets all confused with itself

#

probably why you end up having some many nested nodes

night pagoda
#

I stumbled upon a really weird issue; one of my jokers, when unlocking, doesn't shake, and doesn't "move" with the achievement box

#

But I have literally no idea why this happens because I don't mess with this particular joker's rendering, or anything, really

#

yet it's the only joker that just behaves this way

night pagoda
#

any ideas?

unkempt thicket
#

how do you set_sprite_pos()? like what value does it take it, all examples of it usually take in card.config.card.pos.

unkempt thicket
night pagoda
#

ah, sorry I thought you were answering lol, my bad

#

it needs a table, for ex. set_sprite_pos({x = 0, y = 0}) iirc

unkempt thicket
#

ah i was just putting the numbers not x/y =. thanks

regal wolf
lament fjord
#

There's a lot going on in my modded game

languid mirage
regal wolf
languid mirage
#

ah, lol

#

first UI attempt that isn't a copypaste from an existing menu

#

it was pretty confusing

unkempt thicket
#

how do you change a card's sprite?

narrow maple
#

Does anyone know what the code for a deck with 999 Joker slots would look like?

#

this is all I have for now:

frosty dock
#

that's 0.9.8 docs

narrow maple
#

oops mb Rattling

frosty dock
narrow maple
#

I am :p is there a dif link for the docs

frosty dock
#

as is clearly stated on the main page, only the numbered pages are for 1.0

narrow maple
#

Sorry this is my first time making a mod for anything

frosty dock
#

tbf it wasn't fully clear from the pages themselves that they're outdated. I went ahead and broke the old links and added deprecation notes

maiden phoenix
#

Is in_pool a function similar to can_use ? As in it updates for when it triggers or not

narrow maple
#

I'm having trouble finding the way to add in that a deck has more consumable slots/Joker slots

wintry solar
#

I think it’s called every time a pool is created

narrow maple
maiden phoenix
narrow maple
#

Is there a mod I should look at for a good deck example?

frosty dock
#

you can modify the run in the deck's apply function

narrow maple
frosty dock
#
SMODS.Back {
  ...,
  apply = function(self)
    -- code here
  end
}

but actually there's supported config values you can use in this case, they're relative to the base amount of slots

narrow maple
#

ignoring the comment does this look right?

frosty dock
#

so something like

SMODS.Back {
  ...,
  config = { consumable_slot = 98, joker_slot = 95 },
}

will start you off with both 100 consumable and joker slots

narrow maple
#

so the number is additive with the base amount?

frosty dock
narrow maple
#

(replaced the comment with the config)

frosty dock
#

you still have SMODS.Back:new(

#

the config is a separate thing

#

you should brush up on some basic lua/programming concepts

night pagoda
narrow maple
unkempt thicket
#

this one doesn't work i know why, but i've tried a few things

zealous glen
wintry solar
#

try changing the atlas line to G.ASSET_ATLAS['SuitEffects']

wintry solar
#

which one did you change?

#

I meant the children.front.atlas, should have specified. I'm not sure what the top line is doing, either

wintry solar
#

where have you defined the atlas?

unkempt thicket
#

it happens with or without the top part of code i removed

frosty dock
#

you need the mod prefix

wintry solar
#

🙃

unkempt thicket
night pagoda
#

when I remove this, it works fine!

#

wtf?

wintry solar
#

that's a funky localization table

night pagoda
#

what's wrong with it?

wintry solar
#

I've never seen it as [1] = 'bla bla bla',

night pagoda
#

I wrote every single table like that here

#

so it shouldn't be the issue

#

Why this weirdness might happen?

maiden phoenix
#

Is your loc the only one with an E:1 out of curiosity?

wintry solar
#

that was my thought

night pagoda
#

nope

#

have others use that aswell

wintry solar
#

I'm not sure why that would cause an issue though

night pagoda
#

Literally no other joker does that

wintry solar
#

sledgehammer works fine?

night pagoda
#

yup

wintry solar
#

what happens if you copy the unlock loc txt from sledgehammer?

night pagoda
#

I wonder what would happen if I will put the same lines in other unlock

#

or that

wintry solar
#

yeah both would check the same thing

night pagoda
#

Now it works normally!!

#

what the fuck?

#

game freaks out about something

wintry solar
#

try typing out the message again

night pagoda
#

still shakes

#

it doesn't like my specific description for some reason

wintry solar
#

thats the wrong description, no?

night pagoda
#

you said to type it out?

#

I removed it completely

#

or did I misunderstood what "type out" means

wintry solar
#

I meant the unlock one

night pagoda
#

yup

#

that's what I did

wintry solar
#

but that video doesn't show the unlock message

night pagoda
#

removing unlock loc just places joker's loc here

wintry solar
#

oh I meant to have the unlock text, just delete it and then type it again

#

not copy and paste

night pagoda
#

hmm

#

(I didn't copy & paste it either)

wintry solar
#

is it still broken in that video? maybe I'm misunderstanding what the problem is?

night pagoda
#

in the last video it isn't, but it's the wrong description

#

when I put the description back (one sec) it breaks again

#

So far:

  • Removing unlock localization completely fixes the shake;
  • Putting other unlock localization that is also 3 lines long fixes the shake;
  • Retyping manually didn't fix the shake
#

I'm lost

wintry solar
#

try line by line

night pagoda
#

okay

#

will leave them empty rather than just removing completely

#

removing the third line fixed it, let me get the lines 1 and 2 back

#

this feels like solving a puzzle

wintry solar
#

hmmm

night pagoda
#

so the problem is in the third line (for some unknown reason)

wintry solar
#

time to check the third line

#

I'd start by removing the formatting

night pagoda
#

formatting removed - shakes

#

so, um

wintry solar
#

huh

maiden phoenix
#

Really dumb idea but have you tried closing the {s:0.8} of this line?

night pagoda
#

Am I in some Thunkage zone?

night pagoda
wintry solar
#

if you add the formatting back in does it work now?

frosty dock
night pagoda
wintry solar
#

this is so strange

night pagoda
#

so my formatting got localthunk-ed mysteriously

wintry solar
#

don't worry, I have a similar issue with some hovering at the moment

night pagoda
#

😔

wintry solar
#

have you tried using just half the formatting?

night pagoda
#

will try

#

that's without E:1

#

and it's fixed

wintry solar
#

what about with just E:1

night pagoda
#

E:1 is at fault here

#

(yet the sledgehammer is unaffected)

wintry solar
#

what a mystery

night pagoda
wintry solar
#

it's a combination of E:1 and Common????????????

night pagoda
#

Changed "Common" to "Blabla" and brought back all the formatting

wintry solar
night pagoda
#

It HATES the word common

#

I now wonder if it breaks for "rare"

#

if so this is some rarity detection bullshit

#

there's emojis in this discord alright but they clearly missed to add insanity's head as an emoji

shell tangle
#

Sounds like an issue you could call uncommon.

wintry solar
#

I figured out the hover crap 😄

hallow forge
#

you should win on red deck asendant stake, just to be sure the ui works /j

wintry solar
#

Does it break on Uncommon?

#

or Legendary?

night pagoda
#

Trying uncommon rn

#

I will change "Common" to "common",
then "Common" to "Commo1"

#

(sorry for flooding this chat, this really needs to be documented so I won't be put in a psych ward)

wintry solar
#

try trifle

night pagoda
#

okay lmao

#

I'll do it letter by letter now

#

starting with "C"

wintry solar
#

okay so it's not all 6 letter strings

night pagoda
#

I tried "Blabla" earlier anyway

wintry solar
#

oh true

night pagoda
#

C-section jokers, epic TBOI reference

#

I wonder if this will be some kind of epic troll by localthunk's ghost and when I will type the word fully it will work like nothing happened

#

Will try "M"

#

(oh god is it cryptid's ghosts)

#

"om" next

#

"Com" is forbidden?

#

Does it think I put a URL or something?

#

This debug is useless! I got nothing!

wintry solar
#

is it okay in the middle of a different word?

night pagoda
#

Only more questions

#

Will try

#

a "reset profile" hotkey would be handy right about now

#

The only solution I can see right now is to cry

maiden phoenix
#

Wait so Comhuh works but not Common?

night pagoda
#

(no this is actually quite funny but it also drives me insane)

wintry solar
#

what about huhcom

night pagoda
#

trying huhcom

#

great

#

my balatro crashed without a crash window

wintry solar
#

well

night pagoda
#

😭🤪🤣😵‍💫👽💀

wintry solar
#

at least we know the problem now

#

time to head into the code and figure out why!

night pagoda
#

this is the place

#

actually

#

let me get it from the dumps instead

#

idk if it's any different but just to be sure

#

wtf are those checks in the events?

#

my brain stopped working, I'll eat a tomato or something, brb

wintry solar
#

this doesnt reference the text at all

languid mirage
#

sick

night pagoda
#

I figured out that it's just juice_up not working for some reason

#

even if it's out of all the conditions and checks, the juice doesn't juice

wintry solar
rough furnace
#

Oh is that the tab menu?

#

Not used to it being so big

night pagoda
rough furnace
#

It's thunk code I'm not going to worry about it

unkempt ridge
#

Feelin stumped here. Error keeps popping up but unsure how or why it is--

#

wait nevermind
we missed a curly bracket

wintry solar
#

shiny stakes 😄

zealous glen
wintry solar
#

it checks the sprite

zealous glen
wintry solar
#

and then it bumps all the other chips upwards

zealous glen
unkempt ridge
wintry solar
#

nope

zealous glen
# unkempt ridge Yes we know K6BD :3

I have two Demiurge Jokers and a Demiurge Showdown Boss Blind implemented (although I’m tweaking one of the Jokers), but I wanted to bounce ideas for the rest

zealous glen
# wintry solar

Can you select bottom then red? It was hard to see from the clip

unkempt ridge
#

Which demiurges do you have?

zealous glen
#

Solomon David (see effect below)

wintry solar
#

it's not the most precise

#

but it works

#

I am also a sad trackpad dev rn

zealous glen
#

And Jagganoth

#

And this is Tyrian Patriarch. @acoustic kiln made a fire sprite which I might use for the Demiurge Blinds

zealous glen
unkempt ridge
#

Ok so
Could do something with Mammon and have something like, tallying up the rankings/chips played of each card triggered, and adding it to a running total?
Don't interrupt the count

#

Might be a bit basic

zealous glen
#

Ohh, I was thinking of just money

#

That’s an interesting idea

wintry solar
#

I mean look at these hitboxes

unkempt ridge
#

Per 1000 chips gain 1$ per round

unkempt ridge
zealous glen
#

I had some ideas for Gog-Agog and Jadis

unkempt ridge
#

Incubus needs ideas but uhhhh
Lousy swordsman

zealous glen
#

Incubus I was considering Enhancements

edgy reef
zealous glen
#

I think it fits the theme of what he tries to offer Allison and the rest of his

#

Idk what they are actually, but those people asking him for stuff

wintry solar
zealous glen
wintry solar
#

how do I enable the keyboard controller

zealous glen
#

Is it keyboard? I thought it was a gaming controller

wintry solar
#

I saw in the blackhole thread you can enable the keyboard to function as a controller

unkempt ridge
#

Although that may be more like Mottom

zealous glen
#

Like her fruits or her court

#

Since ultimately I didn’t go with Jacks and Kings for Solomon, that opens up Face cards too

wintry solar
#

it would appear it just crashes with a controller

#

oh no

#

it's because this option cycle doesnt work on this page

zealous glen
#

@unkempt ridge can I DM you about it?

unkempt ridge
#

Sure

wintry solar
#

you can't get to the stakes with the controller

#

@edgy reef do you know how to enable controller access to UI elements?

edgy reef
#

uhh idk, but there were settings added to BlackHole that enable keyboard mapping and another mod that did something similar

#

Lemme check

#

As for getting the controller onto the stakes, idk how that would operate.

dim nimbus
#

I'm getting a crash where the length of field "full_hand" is a nil value the issue is that it should just be defined??? so im very confused

frosty dock
#

you need to gate for the specific context first where it does exist

wintry solar
#

is it possible for stakes to apply two different stakes?

frosty dock
#

It should, but I believe it's not well tested

zealous glen
#

Tree-shaped stake piles

#

Wait the graph could have a cycle

#

Graph-shaped stake piles

#

Biblically accurate stakes

wintry solar
#

is there a smods function that builds a table of which stakes are applied?

dim nimbus
zealous glen
#

You can read or search the code for whenever eval_card is called with context.full_hand

#

Eremel also had a thread summarizing them

dim nimbus
dim nimbus
#

oh wait is eval the same as eval_card

#

or rather can you use eval on a card

zealous glen
#

Everything is a card, except the nodes, which are nodes, but cards are nodes so it’s ok

frosty dock
#

uhm akshually cards are moveables, which are nodes scholar

zealous glen
dim nimbus
#

I still just don't get it, where would i define full_hand? and nothing i look at ever calls eval_card with full_hand either, not even in the base game, you get eval = function(card) but im not sure if thats identical

frosty dock
#

can I see the offending function maybe?

frosty dock
zealous glen
#

I’m just going “akshually” to your “akshually” joke 😅 😭

frosty dock
zealous glen
#

Now draw them getting a postgraduate education

frosty dock
zealous glen
#

Oh no they died but they can rebuild them

#

Better… faster… stronger…

frosty dock
#

truly the Joke(R)evolution of all time

zealous glen
#

Joker Joker Revolution

dim nimbus
#
    loc_vars = function(self, info_queue, card)
        return {vars = {}}
    end,
    calculate_joker = function(self, context)
        if context.first_hand_drawn then
            local eval = function() return G.GAME.current_round.hands_played == 0 end
        end
        if G.GAME.current_round.hands_played == 0 and #context.full_hand == 1 then
--        for k, v in ipairs(context.full_hand) then
--            v:set_ability(G.P.CENTERS.m_gold, nil, true)
        
            return {
                message = "Sealed!",
                colour = G.C.CHIPS,
                card = self,
            }
        end
    end

Now with calculate_joker it doesnt crash when doing literally anything but it is still not working (for what the gold stuff is thats just wip, i just wanted to be sure the first hand of round stuff was working)

frosty dock
#

calculate_joker doesn't work because it's the wrong name

#

it's supposed to be called calculate

crisp coral
#

the logic is also wrong i believe

frosty dock
#

when is the gold effect supposed to happen?

crisp coral
#

first hand drawn is what it says, so there can't be a full_hand since you can't play hands

dim nimbus
#

im basing it off the dna code, mightve been changes i guess?

crisp coral
#

you might want to use context.before and context.cardarea == G.jokers

#

oh the first hand drawn for DNA is for the shakey effect

frosty dock
#

probably the better card to look at as reference would be midas mask

crisp coral
#

that's separate from the main effect which is below

frosty dock
#

either way, context.before and context.cardarea == G.jokers is probably what you want there

dim nimbus
#

got it, that will probably work, what do those actually do though?

frosty dock
#

that just identifies one specific call to calculate_joker with the timing you need

crisp coral
#

context.before means your effect triggers when played, but before hand is scored

wintry solar
#

context.full_hand == 1 is also bad logic

crisp coral
frosty dock
#

yeah no that part's fine

#

card = self is bad though, needs to be card = card

wintry solar
#

oh I can't read

frosty dock
#

generally don't look too much at base game code, a lot of it is spaghetti

dim nimbus
#

i see...

wintry solar
#

it was a different colour and I assumed it was commented out because I've been looking at tomls all evening 🙃

crisp coral
#

there is no color on mobile lol

dim nimbus
#

what is the code format most people use for codeblocks? i use cpp but theres probably a better one

crisp coral
#

lus

#

lua

dim nimbus
#

ahhhhhhh, i didnt know that was built in

#

i mean it might be working? whats weird is that im never getting the return message

zealous glen
#

Did you call your code?

#

It just defined the function

dim nimbus
#

oh you want to know what its still on calculate joker

#

hmmm that didnt fix it either

wintry solar
#

its (self, card, context)

dim nimbus
#

ah, that makes sense, thank you!

dim nimbus
#

oh no i did it wrong

hallow forge
#

took golden joker a little too literally

dim nimbus
#

hmmmmmmmmm

#

so card:set_ability is a workable function

#

but not self:set_ability?

unkempt ridge
#

Quick ask for debugging but
Is there any way to expand the 'more's? We wanna get more info

dim nimbus
#

okay so, just about everything works, issue now is that the way i grab the enchancement (G.P.CENTER) does not contain my custom made enhancement, so is there anyway to add that one?

unkempt ridge
#

Tryna understand why this is causing problems... Thinking it's something with poker_hands being indexed? Or just an issue with it being, taken.

rain imp
#

In this piece of code in [mod name].lua,

card_pos = 0
local lead_suit = "Clubs"

function spice_hand(suit)
    if card_pos == 0 then 
        lead_suit = suit 
    end
    card_pos = card_pos + 1
    sendDebugMessage(card_pos, lead_suit, suit)
end

sendDebugMessage should send the info about a position of a played card in hand, a first suit played and the current suit played, all in this particular order. However, when triggered, sendDebugMessage just ignores the lead_suit argument, not to mention it sends two others in a wrong order. What am I doing wrong?

#

Oh, wait, now it ignores suit argument

#

Doesn't make it better, it still messes it up

frosty dock
languid mirage
frosty dock
rain imp
#

Ohh

#

Alright, thanks

wintry solar
rain imp
#

Yea, that worked

unkempt ridge
crisp coral
#

aye, good job yall

unkempt ridge
#

now to figure out how to make cryptids scale work with it-
Later

hallow forge
#

I think that works automatically as long as you followed scaling convention but I could be wrong

languid mirage
#

theres a guide in cryptid thread pins

unkempt ridge
#

wait it works first try-

#

Yep it works

Bless

narrow pollen
#

genuinely

#

the most frustrating thing in this game

#

is trying to get text properly localized and displayed

languid mirage
#

how so

#

you can just add localization folder

#

and steamodded will do most of the work for you

dim nimbus
languid mirage
#

are you sure that is the right key

#

usually it has mod prefix as well

#

you can find how it looks like in console when the game loads

dim nimbus
#

ahhh i see, i thought it was just the key in the lua

#

yep that fixed it, thank you!

languid mirage
#

👍

wintry solar
#

Yeah I though it would be a prefix issue

night pagoda
#

How can I inject into something where steamodded already injects?

languid mirage
#

higher priority and edit the code after steamodded injection

#

if you mean lovely patch

night pagoda
#

as in:

night pagoda
#

I set priority to "1"

#

wdym by "after steamodded injection"?

languid mirage
#

maybe the function is in overrides.lua?

#

go to mods/lovely/dump/functions/common_events.lua

#

that'll be the code after steamodded injection

night pagoda
#

it is in dumps

#

this screenshot

#

this part of the code just doesn't want to be replaced or edited

languid mirage
#

¯_(ツ)_/¯

#

could be because of the lovely, but seems to work fine for me

#

oh ye

#

doesn't work with latest lovely release

#

too bad

night pagoda
#

ewww

rain imp
#

Can I get some more information on UI implementation? At least how to make it appear, as I inserted the mentioned test UI block and even tried to call for it, but it doesn't seem to be there

wintry solar
#

can I see the code?

rain imp
#

Almost literally what was sent there

local t={n = G.UIT.ROOT, config = {r = 0.1, minw = 8, minh = 6, align = "tm", padding = 0.2, colour = G.C.BLACK}, nodes = {
    {n = G.UIT.C, config = {minw=4, minh=4, colour = G.C.MONEY, padding = 0.15}, nodes = {
        {n = G.UIT.R, config = {minw=2, minh=2, colour = G.C.RED, padding = 0.15}, nodes = {
            {n = G.UIT.C, config = {minw=1, minh=1, colour = G.C.BLUE, padding = 0.15}},
            {n = G.UIT.C, config = {minw=1, minh=1, colour = G.C.BLUE, padding = 0.15}}
        }},
        
        {n = G.UIT.R, config = {minw=2, minh=1, colour = G.C.RED, padding = 0.15}, nodes = {
            {n = G.UIT.C, config = {minw=1, minh=1, colour = G.C.BLUE, padding = 0.15}},
            {n = G.UIT.C, config = {minw=1, minh=1, colour = G.C.BLUE, padding = 0.15}}
        }}
    }}
}}
end```
And I call it from [mod name].lua (what is a proper name for it?) with `create_tsu_visuals()`
wintry solar
#

well that function doesnt return it

#

and it's not in any sort of container

rain imp
#

Also would've been great to see what that was supposed to be

wintry solar
#

I mean if you throw it in the config example it'll turn up in game

#

but for quick reference,

frosty dock
#

gonna try and cut down on the PRs backlog for a bit

languid mirage
#

🎉🎉🎉

wintry solar
#

@frosty dock do you know where smods calculates which stakes to apply for custom stakes?

frosty dock
#

one sec let me read into it

#

game_object.lua:551 SMODS.setup_stake(i)

granite wren
#

how would i start modding balatro?

wintry solar
#

👍

#

hmmm, this doesn't look very robust

languid mirage
granite wren
#

developing

frosty dock
#

the other (numbered) pages have some useful docs on Steamodded APIs, but get used to reading source code

languid mirage
#

you can open balatro.exe as an archive

#

to do that

frosty dock
#

believe it or not, that info is on the page i sent

granite wren
#

aight

languid mirage
#

incredible

granite wren
#

thanks very much!

wintry solar
#

Looking for some thoughts on stake application. If I have a stake that applies Blue stake and Gold stake for example, would you expect it to apply blue and below twice or once?

frosty dock
#

I would expect blue and below to apply twice since gold already subordinately applies blue and otherwise there would be no reason to state that is also applies blue

#

but it sure is a bit jank

wintry solar
#

it was a poor example, I admit, but I'm thinking ahead to custom stakes. Say I add two different stakes after gold that apply gold and below, but then I want a third after those that applies both

frosty dock
#

I see what you mean

#

generally applying stakes twice doesn't make sense for vanilla stakes, it would only ever make a difference for blue stake actually

wintry solar
#

yeah that's why it was my example xD

#

maybe for ante scaling too?

#

oh no the way it calculates the scale is fixed

frosty dock
#

yeah

#

thinking we just hash already applied stakes then

#

this should do

function SMODS.setup_stake(i, hash)
    hash = hash or {}
    if hash[i] then return end
    hash[i] = true
    if G.P_CENTER_POOLS['Stake'][i].modifiers then
        G.P_CENTER_POOLS['Stake'][i].modifiers()
    end
    if G.P_CENTER_POOLS['Stake'][i].applied_stakes then
        for _, v in pairs(G.P_CENTER_POOLS['Stake'][i].applied_stakes) do
            SMODS.setup_stake(G.P_STAKES["stake_" .. v].stake_level, hash)
        end
    end
end
#

convenient side effect is that cycles will no longer hard crash

wintry solar
#

yeah looks good

#

is there a reason that the increased ante scaling is calculated as G.GAME.modifiers.scaling = math.max(G.GAME.modifiers.scaling or 0, 2) rather than just incrementing the value?

frosty dock
#

not my code, but I assume no

wintry solar
#

I think this should be changed too, for a similar reason

frosty dock
#

i mean yeah, there could be a system of modded stakes like green and purple that increase ante scaling but one doesn't apply the other, so they should result in the same scaling when used on their own

#

or say you had stakes parallel to the base ones, and a stake that applies both gold and alt gold

wintry solar
#

who would have thought that designing a chip tower ui would bring up these issues

frosty dock
#

who would have thunk that to make the deck/stake select screen accessible, I would be bypassing it?

wintry solar
#

is that for blackhole?

edgy reef
#

Yeah

wintry solar
#

neat

#

I mean, the deck/stake select screen is really bad

frosty dock
wintry solar
#

do we want the edition get_weight method to be made the standard?

frosty dock
#

I think it's desirable as to support things like weight-changing vouchers

wintry solar
#

okay cool

#

it only affects non guaranteed polls like editions?

unkempt ridge
#

When developing a mod, is it a good idea to have it be the only mod in a mod pack (outside of dependancies), or is it better to just, have every mod you're already using

languid mirage
#

I usually have all mods that I'm using active, but occasionally would test behaviour without any mods

#

I think it's just preference

#

¯_(ツ)_/¯

#

I'd say that applies as long as you're looking at actual source code for the reference, not just lovely dump

frosty dock
#

ah yes ordering

night pagoda
#

Is Sigil supposed to check in_pool of a suit, because it doesn't now?

#

It spawns the suit even if in_pool forbids it

lament fjord
#

What's the easiest way of ratelimiting a particular thing, say having something that runs at about 60 times a second even if the game is racing at very high frequency

#

Preferrably while letting the rest of the game go at its turbo frequency

frosty dock
#

so partial vsync?

#

I'm not sure that's possible

red flower
#

What thing do you want to ratelimit? If it's a function or something you can probably check the timedelta to run it at a specified interval

wintry solar
#

I plan on doing a poll_enhancements next, and then probably taking a look at the other weight issues that are there

#

but first, I must finish this deck select

frosty dock
#

i can probably do packs if I get to it

unkempt ridge
#

Lil miffed right now
Trying to make it so, upon an 8 being scored, our joker says 'upgrade'.
Weird thing is the joker_is_ actually incrementing the ability.extra.current, so we know that it works and it actually does detect the 8's that are scored
However the message doesn't show up, and we're unsure if we're just missing a little syntax or if it's something else

wintry solar
#

is there scope for adding weights to individual cards?

#

as in, jokers and consumables

frosty dock
#

i think not for now

wintry solar
#

is this a card=card issue

maiden phoenix
unkempt ridge
maiden phoenix
#

Is the upgrade supposed to happen after?

unkempt ridge
#

Yeah, because the 8 is scored, and then it does the +30 effect
That's how if we remember right most jokers do it? Like they don't message before it triggers

slow ocean
#

huh

#

its been a while so i decided to update my steamodded + lovely, but steamodded isn't being loaded?

maiden phoenix
slow ocean
#

it did fire off defender but i allowed an exception

#

oh it did eat it lmao

#

yeah that was it

maiden phoenix
#

Also pretty sure not before and not after is useless when checking for context.joker_main

wintry solar
#

👀

maiden phoenix
#

This is so cool!

#

Ever thought about adding a "Random" button to select a deck at random with such ui improvement?

#

Or is that what "quick start" is for?

wintry solar
#

quick start is in theory supposed to load your last selected settings

#

I need to limit the stakes now

languid mirage
#

I dont rly think automatically selecting stake X if you have reached stake X on selected deck makes sense

#

but it's subjective, I guess

frosty dock
#

now these are some load times

wintry solar
#

it auto selects stake+1 now

languid mirage
#

why wont it select previously played stake (or highest unlocked on that deck) tho

#

like in vanilla

wintry solar
long gust
#

why do you have 60 decks
are you like, cryptid

unkempt ridge
#

This really is an 80-20 moment

maiden phoenix
#

Perhaps context.joker_main is too late, try context.cardarea == G.jokers and not context.before and not context.after

wintry solar
frosty dock
#

making the regular console (somewhat) useful?

edgy reef
#

I feel like all SMODS objects should use set or some equivalent to clarify what’s loading instead of being nil (even for internal classes).

frosty dock
#

most of these aren't even internal

edgy reef
#

Yea

frosty dock
#

maybe I shouldn't DefaultLogger that

#

even setting log level to trace doesn't really affect those timers - it was the boot print stage spam that was killing everything

#

actually I'm not at all sure why it used a win11 terminal this one time... I can't get it to do that again

#

back to spamming console windows

#

i know how to make it do that with lanch args (cmd /c %command --disable-console), but it's kind of weird that it did it on its own 💀

hallow forge
#

does anyone know what the "Abort trap: 6" is?

#

im getting it as an error when trying to open balatro

frosty dock
#

not a clue

#

what system and how does it error?

hallow forge
#

MacOS and when i atttempt to run run_lovely.sh it spits out an erro in terminal and creates an error window but balatro doesn't open at all

#

it showed up after i was editing a .toml file in the lovely folder and then no matter what i did to the files in said folder it kept giving the error

frosty dock
#

yeah idk what that's about 💀

unkempt ridge
#

🐟

Effect doesn't exist yet need to figure out how to spawn consumables

near ivy
#

the font 😭

unkempt ridge
#

Its 🪄 magical 🪄

placid frigate
#

where can i find Steamodded 1.0.0, even when i download from the alpha link on the GitHub page, I comes up at 0.9.8

red flower
placid frigate
#

unless i'm looking at something wrong

red flower
#

Make sure you deleted the old folder and verify the game files on steam

languid mirage
#

its easy to miss because selected stake resets as soon as you go through the deck that doesn't have the stake unlocked, but when you just open the menu it keeps the last selected stake

unkempt ridge
#

Good news is we got our sunfish working
And we got two more jokers on the way-

Should we make this a thread

young cloud
#

ill check it out in a bit here

young cloud
#

damn this has been a rabbit hole

#

pretty sure it has something to do with the use of 'card_eval_status_text' instead of 'message', only issue is that 'message' just outright doesn't work

#

looking at other jokers that trigger per card they seem to use 'extra' instead of 'message', for example Hiker uses "extra = {message = localize('k_upgrade_ex'), colour = G.C.CHIPS}"

#

seems like it should work but it throws an error when used in a mod. I'll dig into it more tmrw but I gotta sleep for now lmao

unkempt ridge
frosty dock
#

I should propagate more aggressive use of the --- LOADER_VERSION_GEQ header flag to force ppl to update steamodded more often balatrojoker

#

also thinking the keyword is a bit long and could be merged into the dependencies header?

#

SMODS.Mods['Steamodded'] = SMODS blueprint

#

--- DEPENDENCIES: [Steamodded>=1.0.0-ALPHA-0731a]

#

thoughts?

languid quiver
frosty dock
wintry solar
#

👀

#

has sendDebugMessage changed?

frosty dock
wintry solar
#

ahhhhh

maiden phoenix
#

Thoughts? Should it stay common? Do I keep the "twice" or not?

hushed cradle
#

is there any documentation for making new rarites with steamodded?

frosty dock
#

there is no such thing as a rarity api in steamodded as of yet

hushed cradle
#

ah nws

#

there are some mods that add custom rarites tho right?

#

i might be able to look through them to see how they do it

limpid flint
#

You mean, cryptid ?

hushed cradle
#

does cryptid then?

#

ill look through that and see if i can figure it out

limpid flint
#

Exotic and epic jokers

hushed cradle
#

oh yeah ofc

maiden phoenix
#

@frosty dock How did you pick the right dependency version of SMOD for the example mods? Where they random?

frosty dock
#

they don't matter because it won't work for versions before the change anyways, so I should actually change it to 0805d

#

but i looked at when the files were last changed

maiden phoenix
#

If I'm transitioning to using dependencies I should use the same version value or leave it be?

#

Not sure if the first SMOD 1.0.0 is enough for my mods 😅

frosty dock
#

basically any version prior to the change will see Steamodded in the dependencies, look for a mod with that ID and fail to find it

maiden phoenix
#

Oh if it includes config then it should be a recent SMOD

frosty dock
#

anything before 0805d is too old for the dep flag to recognize it so those version will always mark mods that use this as incompatible

#

feel free to just use that hash and change it later when something else updates

maiden phoenix
#

Alright 👍

maiden phoenix
#

Also I was wondering the localization folder was a new norm I should be doing too

crisp coral
#

definitely should

wintry solar
#

It will make it easier for others to localize your mod

crisp coral
#

not even for localization, just do it for organization

wintry solar
crisp coral
#

remember to add an option for using the old ui

wintry solar
#

Yeah that’s on my list to put in config values

#

Need to check that is actually works with seeds too

crisp coral
#

also is there any reason for why the deck selected text is not white

wintry solar
#

Just stylistic, I didn’t want it to be too glaring

night pagoda
#

looks great btw!

wintry solar
#

Oh I can maybe look at adding these like info queue objects

night pagoda
#

yup, actually would be better than this

#

since it always shows up

wintry solar
#

If you could hover in the pop up they would in theory work right now

#

But you cannot hover on the pop up afaik

#

Will look into it!

zealous glen
zealous glen
wintry solar
#

What do you mean?

tepid crow
#

the chips animation looks awesome btw eremel

#

not sure about the deck animation yet though

mellow sable
#

This is awesome

crisp coral
#

I'd assume the amount of cards in the animation?????

wintry solar
#

Yeah I need to configure the deck animation a bit better, I’m not happy with it at the moment

mellow sable
wintry solar
#

Also need to stop it from happening when you turn the page

#

It’s currently set to 52 cards but I suppose it can be the number of cards in the deck

crisp coral
#

I'd also like a config for animations

wintry solar
#

It’s already on the list!

tepid crow
#

like their starting position is just below instead of above?

mellow sable
#

Sliding in from the bottom of the screen instead of top, ye

crisp coral
#

also nitpick but the Select Stake button should be like the current PLAY button, bigger and centered

mellow sable
#

It feels weird because of how 2D the textures are anyway tho

wintry solar
#

I want to try and get them coming in like this I think

tepid crow
#

like the opposite of discarding?

crisp coral
#

need a cardarea out of view then move the cards from there

wintry solar
#

I can just create the cards over there I think

tepid crow
#

yeah that's what the game does for discarding iirc

#

(from play cardarea to discard cardarea)

wintry solar
#

I did have a pretend discard area in an earlier attempt

tepid crow
#

but...? 👀

wintry solar
#

It had some odd behaviours that I don’t remember now

tepid crow
#

ah okay

wintry solar
#

If moving the card creation doesn’t work I can try it again

#

My code is set up differently now

stray warren
#

How do I only add the Joker to the G.jokers if there is room? This code isn't quite working.

                if #G.jokers.cards < G.jokers.config.card_limit then
                    G.E_MANAGER:add_event(Event({
                        trigger = 'after',
                        delay = 0.0,
                        func = (function()
                            local created_card = create_card('Joker', G.jokers, nil, nil, nil, nil, "j_half", nil)
                            created_card:add_to_deck()
                            G.jokers:emplace(created_card)
                            return true
                        end
                    )}))
                end
tepid crow
#

you gotta put lua directly after the backticks, no newlines

stray warren
#

I had that, didn't work though for some reason

tepid crow
#

also no spaces

stray warren
#
                -- Add Half Joker to the joker slots, if possible
                if #G.jokers.cards < G.jokers.config.card_limit then
                    G.E_MANAGER:add_event(Event({
                        trigger = 'after',
                        delay = 0.0,
                        func = (function()
                            local created_card = create_card('Joker', G.jokers, nil, nil, nil, nil, "j_half", nil)
                            created_card:add_to_deck()
                            G.jokers:emplace(created_card)
                            return true
                        end
                    )}))
                end
#

there we go

tepid crow
#

there you go

#

did you take a look at what riff-raff does?

stray warren
#

oh yeah. I was looking at Invisible Joker, forgot about riff-raff

frosty dock
#

invis actually doesn't have that check thunk

stray warren
#

Yeah, it was creating it regardless

frosty dock
#

you remove a joker by selling it so it's fine except it can be negative

slow ocean
#

hi folks, troubleshooting here. any reason why this WOULD correctly show the text but not actually give the mult (as in added to the mult bar during scoring)

        if context.joker_main and context.cardarea == G.jokers and card.ability.extra.mult > 0 then
            return {
                message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
                mult = card.ability.extra.mult
            }
        end```
frosty dock
#

mult_mod

slow ocean
#

as shrimple as that

frosty dock
#

welcome to calculation hell

slow ocean
#

was this like a change or am i just rusty

tepid crow
#

we have free if-else trees, enjoy your stay

frosty dock
#

nah you're rusty

tepid crow
slow ocean
#

yeah i am, damn

frosty dock
#

I'll merge it regardless though, it's better than nothing

tepid crow
#

deck manip is usually done through events, which isn't ideal
every time I see an event in a function I need to manipulate I cry a little inside

night pagoda
#

How do I check compatibility when applying a sticker?

frosty dock
#

center['<sticker_key>_compat']

#

but actually not that

tepid crow
frosty dock
stray warren
#

Ok, so I did the check that riff-raff does, but now when my card gets destroyed it doesn't create half joker when quick fix is the fifth joker. If quick fix is the fourth or lower joker it works. How would I get it to work when Quick Fix is the fifth joker and its not negative?

calculate = function(self, card, context)
        if context.end_of_round and not context.blueprint and not (context.individual or context.repetition) then
            if pseudorandom("Quick Fix") < G.GAME.probabilities.normal/card.ability.extra.odds then
                -- Destroy Quick Fix
                G.E_MANAGER:add_event(Event({
                    func = function()
                        play_sound('tarot1')
                        card.T.r = -0.2
                        card:juice_up(0.3,0.4)
                        card.states.drag.is = true
                        card.children.center.pinch.x = true
                        G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.3, blockable = false,
                                                    func = function()
                                                        G.jokers:remove_card(card)
                                                        card:remove()
                                                        card = nil
                                                        return true; end }))
                        return true
                    end
                }))

                -- Add Half Joker to the joker slots, if possible
                if #G.jokers.cards + G.GAME.joker_buffer < G.jokers.config.card_limit then
                    G.E_MANAGER:add_event(Event({
                        trigger = 'before',
                        delay = 0.0,
                        func = (function()
                            local created_card = create_card('Joker', G.jokers, nil, nil, nil, nil, "j_half", nil)
                            created_card:add_to_deck()
                            G.jokers:emplace(created_card)
                            return true
                        end
                    )}))
                end

                return {
                    message = "Destroyed",
                    colour = G.C.MULT,
                    card = card
                }
            else
                return {
                    message = localize('k_safe_ex'),
                    colour = G.C.MULT,
                    card = card
                }
            end
        end
    end
night pagoda
frosty dock
#

oh there's no real system for sticker incompat yet iirc

night pagoda
#

oh okay

tepid crow
edgy reef
#

I started some work on stickers but they still need a bit more work (and proper testing).

zealous glen
tepid crow
frosty dock
#

i sent you the conversation btw

tepid crow
wooden nexus
#

Question: How hard is it to make it so that a card can't use strength or any of the suit changing cards?

stray warren
frosty dock
wooden nexus
#

I see. I may contact mathguy to see either how they do it or if i can implement how they do it

tepid crow
#

you should probably look at mathguy's code

#

he changes can_use or whatever it's called I believe

#

which might be better depending on what your endgoal is

wooden nexus
#

you know the game Dungeons and Degenerate Gamblers?

#

How they have a bunch of cards you can get

#

That basically

tepid crow
stray warren
#

oh you know what, I completely skipped the part of riff-raff that modifies the joker buffer 1889_RowletFacepalm

wooden nexus
#

My DNDG mod is gonna have a base demo add-on, a texture pack, and a bonus expansion using cards from my "Crimson's Gimmick Vol 1" set

#

Along with a mod for DNDG that has said cards too

frosty dock
wooden nexus
#

Example of one of the cards I'd be adding btw

wooden nexus
#

Wait is the Trading Card Mod out already?

wintry solar
#

But what about the spectral aure mentioned? They don’t need a selection

tepid crow
#

no, that's a screenshot pulled from the thread

wooden nexus
#

oh

frosty dock
tepid crow
#

ah

#

good point

#

didn't think about that

#

you'd have to ask mathguy 🙃

#

actually, couldn't can_use_consumable just do a full hand check for those 2?

wintry solar
#

I think it ignoring them would be better, but I don’t know what mathguy has done

tepid crow
#

hmm, right

#

I just hook :set_base regardless for my "strength 10s to aces"

maiden phoenix
stray warren
#

That seems to work, but it still creates a half joker when quick fix is negative, pushing the jokers to 6/5

maiden phoenix
#

You could do a negative check on the card before checking the card_limit

wintry solar
#

try throwing the if statement inside the event that destroys the joker

stray warren
#

So like this? This still won't check for negative though, will it?

maiden phoenix
#

It's not inside the event

stray warren
#

Like this

maiden phoenix
#

Yea, try replacing the <= for < back see if it works

stray warren
#

Alright, it seems to work as intended now (hopefully). Thank you!

wintry solar
#

I think the issue is that because you're removing it in an event, the buffer isn't updated until that event happens

#

having the entire if statement in it's own event should also work

stray warren
#

Interesting. That would probably work, but I've got it working now so i'm not gonna touch it again lol

zealous glen
#

Since events are delayed, conditions checked outside of it may not hold by the time the event executes

wintry solar
zealous glen
wintry solar
#

another alternative

tepid crow
tepid crow
# wintry solar

haha, that one's also kinda funny, but I still think I personally prefer the off-screen one

zealous glen
#

It doesn’t occupy as much screenspace or time

#

It also doesn’t make me wonder about the physics, which is what prompted me to ask about easings and rotations

tepid crow
#

I thought about time too, but I assumed the animation didn't actually need to finish before the next player input?

zealous glen
#

I do like that at least for the standard names, the cards don’t seem to cover the deck name

#

When they come from the side

#

At least at this frame rate

wintry solar
#

oh I can probably stop the rotation, hang on

zealous glen
#

No I said to add more rotation

#

Although that would maybe make it cover the deck name

wintry solar
#

hmmm, I don't know why it rotates

#

straight from the side?

zealous glen
zealous glen
wintry solar
#

The cards are just created off screen

shell tangle
#

What about coming from the very top, like they're being dropped onto the screen?

wintry solar
#

can try that

zealous glen
#

I like this better. I do wonder if it’s too straight, but it looks good

limpid flint
#

Or just pop into existence and then get shuffled

zealous glen
#

wh

shell tangle
# wintry solar

Agreed on the too straight, one more idea, which is that this animation subtracts the cards from the decks on the left, but, unsure how viable or if it'd even look decent, because it would just leave a blank space.

zealous glen
#

I think if it subtracted from the deck icon it would need to be the other animation, but I don’t like that one as much

shell tangle
#

Might be fine if it leaves like a, lightly transparent card or something behind, either of the deck or a generic gray card, but, unsure.

zealous glen
#

Eh, maybe it would look better if the current deck moved back in and the new deck moved out

#

But if you switched decks in different pages Idk how that would look

regal wolf
# wintry solar

i think if u lowered the hight of the animation it would look a lot cleaner

zealous glen
regal wolf
tepid crow
wintry solar
#

I think I like this one best

limpid flint
#

Yeah it makes the deck looks like falling from above

shell tangle
#

Agreed as well.

zealous glen
#

Eh I think between top top right and the one coming from top right right I prefer top right right

#

I’ve come around to it after seeing the alternatives

limpid flint
#

Maybe random a bit don't come from the same place every time

shell tangle
#

Can't wait for the secret 0.01% chance animation for it to solitaire win screen into a deck.

languid mirage
#

the animation is cool and all, but my issue with it is the speed

frosty dock
#

uh what

#

guessing that's just cryptid conflicting

wintry solar
frosty dock
#

surely

edgy reef
#

Yeah Cryptid would have to take ownerhsip of the stickers for this.

#

Although I think I also need to disable the base sticker sprites too.

shell tangle
edgy reef
#

Either that or take ownership of the whole atlas (might also work?)

languid mirage
wintry solar
#

oh I could do that, sure

frosty dock
wintry solar
#

stickers as small sprites when

maiden phoenix
#

Silly question but if has deck has less/more cards than usual, is it taken into account for the anim?

wintry solar
#

not currently

stray warren
#

is there a mod to skip the booster pack opening animation? Trying to test stuff and opening packs takes so long lol

zealous glen
wintry solar
#

ewww no

zealous glen
#

It’s not hard ^^’

#

This was my first version. I had a different version but this was easier to find

#

Nevermind I found it

wintry solar
#

hmmm perhaps

zealous glen
#

I used two ease Events set to the table entries that controls the card’s coordinates

#

Because I didn’t know how else to move them

wintry solar
#

anyone got a deck mod that is significantly bigger or smaller than standard?

maiden phoenix
#

I do

zealous glen
#

No but I wanted to make a deck with IIRC thousands of cards; I had forgotten about it

maiden phoenix
zealous glen
#

Six hundred suits blueprint

muted timber
#

anyone know how to fix

unkempt ridge
#

set crash reports to on for first off

frosty dock
#

no

muted timber
#

did i screw up somewhere

frosty dock
#

never do crash reports when playing modded unless you hate thunk

frosty dock
#

what mods are you running?

muted timber
#

i tried to add a new deck but it crashes when pressing buttons

frosty dock
#

just use steamodded

#

for your own sanity

tepid crow
#

or does it already do that

edgy reef
#

It already does

frosty dock
#

it does that

tepid crow
#

kk

frosty dock
#

this user does not have steamodded installed

tepid crow
#

yeah makes sense how you arrived there now

muted timber
#

what

tepid crow
#

you're directly editing the files, right?

muted timber
#

yeah

tepid crow
#

are you aware there's other ways to mod the game?

wooden nexus
#

lol

frosty dock
#

let me just

muted timber
#

ok

wooden nexus
#

Has Sound as a new section... but not a pack or suit

#

lol

#

nah jk. still worth it

muted timber
#

why does it crash tho

zealous glen
#

game’s haunted

tepid crow
#

presumably you did { {...} = ... }

#

somewhere

muted timber
#

i dont think so

#

i copied based on the existing stuff

frosty dock
#

well editing base game code is hard to debug

#

for one because crash reports are useless without better stack trace, but also because your code is all over the game itself and there's no way to keep track of your changes

muted timber
#

ok

frosty dock
#

I actually got that same thread error earlier today while testing for SMODS.debuff_card balatrojoker

wintry solar
tepid crow
#

either missing 600 or 3

#

does a custom subclass of GameObject not get automatically unlocked?

#

or possibly not even added to P_LOCKED?

frosty dock
#

a custom subclass of GameObject has no association with an implied locked state

#

only centers do

tepid crow
#

my subclass is pretending really hard to be a center actually

#

because last time I checked centers didn't inject properly

#

or something like that

frosty dock
#

ugh what

tepid crow
#

hold on, I'll double check some stuff

frosty dock
#

yeah that part is a bit jank

edgy reef
#

Yeah there was an issue made that inject_class cannot be used by subclasses of a class that already has one.

frosty dock
#

inject_class doesn't run for subclasses where it's already used, inject is also called from there for objects of all subclasses

tepid crow
#

yeah, so instead I extend gameobject and pretend really hard it's actually extending center

frosty dock
#

I'm not sure what the best way to address this would be, probably modifying the default inject_class to look for functions in subclasses before/after injecting?

#

what would these be called... pre_inject/post_inject?

tepid crow
#

didn't flowwey say there was an issue made too?

frosty dock
#

there's just.. uhh.. 17 others

#

the backlog is a bit much, I can't say I couldn't use some extra hands (redeems nacho tong)

tepid crow
frosty dock
#

that one should be quick to concept something for, I think I won't include it in the main injectObjects recursion though

tepid crow
#

actually I don't think that link is right