#💻・modding-dev

1 messages · Page 616 of 1

hardy viper
#

i think it's on the github now

#

it might drop alongside 0.9.0 in the upcoming weeks

dusty fractal
#

when you follow an argument to chime in about the topic

#

i think its pretty reasonable to assume

#

so im gonna respond with the point that i dont think X

#

if thats not what you meant, no harm done

#

i HAVE just spent the past 5 minutes being verbally berated by someone with 0 competency and clearly lacking understanding of programming

tall wharf
#

i personally avoid using patches unless necessary

#

...9 files of patches later

chrome widget
#

I typically avoid patches at all costs because I consider them a lot more fragile, even though the resulting code is less efficient

#

Since there's still a lot of performance overhead for a lot of players, I don't think the performance cost of calling functions a few levels deeper matters much in most cases

versed swan
#

lovely panics feel emotionally worse than balatro crashes hence I avoid and acticely reduce patches whenever possible

young leaf
#

my goodness this has been a fight
it really feels like there is no good way to check for if card has both a specific suit and a specific rank in the same calculate function

wind steppe
chrome widget
#

It's just more that esp since SMODS code has become a lot more comprehensive and overrides a lot of vanilla functions, it's far less likely I'll need to redress a hook for a vanilla function than a patch if I follow the same function signature

wind steppe
#

why are you checking context.individual and the cardarea twice

chrome widget
#

Patches break pretty regularly with new SMODS updates for some of my more "intrusive" features, so since I can't guarantee people won't have a dev branch or a future version, hooks are generally safer for compatibility

novel violet
chrome widget
versed swan
#

Tbh if someone likes patches more than hooks, good for them - I don't understand the fuss over it, live and let live

mystic river
#

patches and hooks both have their use cases

#

i prefer most of my code to be in my files, but sometimes the best way to do that is to use a patch to insert a function call

umbral zodiac
#

patches are evil because i dont get to use my beautiful lua

chrome widget
#

There's not fuss over that so much as people can only explain their personal use cases and heuristics for it. Explaining why you use one or the other and your reasoning for it isn't "not letting live" other programmers

wind steppe
#

patches are better than hooks because the hook discards my gold cards

umbral zodiac
#

truth

chrome widget
#

And ultimately programmers benefit from seeing discrete examples and reasoning for certain programming patterns because they're rarely obvious on the onset

dusty fractal
faint yacht
#

-# If I could do less of a destructive patch for my scoring antics... it surely would be safer.

dusty fractal
#

me when i have a basic opinion that patches and hooks are inherently unstable by nature and that id prefer to not use them if its already implemented

wind steppe
#

why are you trying to restart this

#

yes im back though

dusty fractal
#

because you insulted me, lol?

#

wdym

wind steppe
#

a: where
b: why is that a reason to restart this or insult me back

#

surely youre trying to be the bigger person here

dusty fractal
#

what?

#

you picked a random fight why are you pretending to care about that

sturdy compass
#

Picking it back up is not the move good lord

dusty fractal
#

the conversation hasnt even moved on from the topic

#

its been less than an hour

#

i literally went and got some food and came back lol

sturdy compass
#

So? Stirring the pot benefits nobody Emoti_Shrug

dusty fractal
#

so what do u suggest? just let people walk all over me?

wind steppe
#

be civil probably

dusty fractal
#

i would be civil if you were civil in the first place

wind steppe
#

if there is a place where i did insult you please point it out

dusty fractal
#

i just did

#

alright let me repeat:

wind steppe
#

i dont see it

dusty fractal
#

you called my honest opinion 'bait' and then ran off after calling me both wrong and unreasonable

#

foe xample:

#

you picked a fight over the most lukewarm take ive possibly ever given

wind steppe
#

i called it ragebait at the time because, simply, i was getting frustrated and the wording sounded extreme

#

which is a factor in ragebait

dusty fractal
#

i just dont see where i said anything extreme or crazy

#

like where did i say anything even remotely outrageous

#

i think that i had and still ahve a pretty reasonable point that i didnt deviate from

wind steppe
#

the wording (at least to me) implies that you would do nearly anything else except for hooks and patches

umbral zodiac
#

you dont have to be equal with everyone if they disrespect you , you could just be the bigger person and move on

dusty fractal
#

okay

wind steppe
#

mb for the misinterpretation

dusty fractal
#

but i want to know what i said that made this person think that

#

thats why im asking

wind steppe
#

second message in the most recent screenshot

#

cba to type it out

#

also you called hooks unstable

dusty fractal
#

yeah. because they are.

#

thats what hooks are.

wind steppe
#

which would give a good reason for you to try and avoid hooks at all costs

wind steppe
dusty fractal
#

they're inserting code.

wind steppe
#

it helps nobody

dusty fractal
#

restart what dude

wind steppe
#

the argument

dusty fractal
#

its literally a fundemental property of hooks across languages

#

this isnt an argument you are just factually incorrect

umbral zodiac
#

he's literally not fighting your claim 🥀

dusty fractal
#

yes he is

wind steppe
#

frankly you're making yourself look immature

dusty fractal
#

i want to understand

#

why are hooks not unstable

#

like have i just missed something

wind steppe
#

im not a lua expert but basically everyone can testify to hooks almost never causing issues based off of it just being a hook

#

i dont actually know too much about what goes on behind the scenes but this issue just generally doesn't exist

frosty rampart
#

they're not "hooks" in a standard sense, it's maybe not a great name but what can you do

it's just overriding a function
with a good hook, there's no instability. any instability comes from either not checking the inputs properly or not calling the original function properly

wind steppe
#

if you have a counterexample feel free to show me

dusty fractal
#

if you self admittedly dont know what you're talking about

#

why you gotta leap in to call me wrong when you dont have any knowledge about the subject

wind steppe
#

maybe i wouldve been proven wrong

sturdy compass
#

Not hooks

dusty fractal
#

yes

wind steppe
#

ive used hooks i know what they do

#

i do have knowledge from experience

dusty fractal
wind steppe
#

and also

#

if you were correct then i wouldve learned something

#

and i wouldve changed my ways

dusty fractal
#

i dont mean literal insertion of code strictly, but both achieve a similar end result

#

im not saying that hooks are bad and i dont think you shouldnt use them

#

i use hooks and patches

wind steppe
#

i'm not victin i don't argue just to say i'm always correct

frosty rampart
#

from what i can see, this is an argument about literally nothing

dusty fractal
#

i just dont understand why you lept on me saying 'i'd prefer to use implementation from the game and SMODS instead of them'

wind steppe
#

i try to improve

dusty fractal
#

i feel like thats pretty reasonable

mossy minnow
#

i love the reactionary sentiment of two parties

frosty rampart
mossy minnow
dusty fractal
#

i asked a basic question and then got a non-response

ashen drift
#

love2d

dusty fractal
#

¯_(ツ)_/¯

dusty fractal
wind steppe
umbral zodiac
wind steppe
#

however thats not always what people actually need

frosty rampart
#

i think it's time to cease this discussion, there's nothing to be gained on either side from continuing. if you're trying to make content that makes cards count as face cards, you should hook is_face because that's the only way other content checks if something is a face. if you're trying to make content that makes cards count as multiple ranks at once, you should just wait for the quantum ranks PR to be merged into SMODS because it's not worth the effort to do it yourself (unless you're willing to muck around in a bunch of patches)

mossy minnow
dusty fractal
#

that is what i was fucking asking about in the first place

#

i wanted to know if quantum ranks had been merged yet

#

ffs

frosty rampart
#

you could have checked by searching for "quantum ranks" in the smods pull request list

dusty fractal
#

i couldnt remember what it was actually called

frosty rampart
#

oh that's fair

dusty fractal
#

so i asked here

frosty rampart
#

but yea it's still not merged

dusty fractal
#

damn

#

that sucks

#

any idea when its getting merged

ashen drift
#

shrug

#

its been there for a while

sturdy compass
dusty fractal
sturdy compass
#

Not even the smods devs know

dusty fractal
#

its balatrover

frosty rampart
#

current status

mossy minnow
#

what is quantum ranks

dusty fractal
#

it allows cards to be multiple ranks

frosty rampart
mossy minnow
#

oh my god

#

ts could be peak...

dusty fractal
#

ts

ashen drift
#

it really could

dusty fractal
#

🥀

mossy minnow
wind steppe
dusty fractal
#

??

#

thats literally part of its intended function

frosty rampart
#

i assume if any of the ranks on a card is even/odd then it procs steven/todd

ashen drift
#

it uses modulo iirc

wind steppe
#

i know the current implementation uses modulo

dusty fractal
#

it uses modulo??

#

what you mean Odd Todd and Steven?

frosty rampart
#

oh right they added a whole new is_parity function to cards

ashen drift
#

it does

frosty rampart
#

card:is_parity(0) checks if it's even, card:is_parity(1) checks if it's odd

wind steppe
#

oh sick

wind steppe
#

problem solved

frosty rampart
#

herer's the function code

dusty fractal
#

neat

frosty rampart
#

so you define the parity in the rank itself

#

non-number cards (face cards) have parity = nil

wind steppe
#

get_ranks is interesting

frosty rampart
#

it's pretty much just the same as SMODS.get_enhancements when quantum enhancements are in play
there's also card:is_rank(), which behaves like card:is_suit()

ashen drift
#

will this break card:get_id or is it just replaced with card:is_rank now

wind steppe
#

i assume get_id is still around for backwards compat

frosty rampart
#

it won't break it, but it'd be like checking card.base.suit instead of using card:is_suit()

wind steppe
#

if get_id was removed it would break every mod ever

modest sedge
#

Apologies if this is a stupid question, but is it possible to make a consumable (type X) that gives $2 for each time a consumable of type X is used in the run (e.g. if type X consumables are used 4 times, then give $8)? I'm still very new to Lua and I studied a few thingies but I don't know what to do

daring fern
modest sedge
#

IT WAS THAT EASY???

#

thank you so much

#

so do i just
```use = function(self, card, area, copier)
card.ability.extra.bonus = G.GAME.consumeable_usage_total.typex * 2
bonus = card.ability.extra.bonus
ease_dollars(bonus)
end

modest sedge
#

nice

chrome widget
#

Collecting a collage of all the art I did for my mods for resume purposes

gusty iron
#

how would i make something happen when a card is clicked?

daring fern
gusty iron
#

charms my beloved

young leaf
#

i have a weird question
this is trading card's code from vanillaremake

    key = "trading",
    blueprint_compat = false,
    rarity = 2,
    cost = 6,
    pos = { x = 9, y = 14 },
    config = { extra = { dollars = 3 } },
    loc_vars = function(self, info_queue, card)
        return { vars = { card.ability.extra.dollars } }
    end,
    calculate = function(self, card, context)
        if context.first_hand_drawn then
            local eval = function() return G.GAME.current_round.discards_used == 0 and not G.RESET_JIGGLES end
            juice_card_until(card, eval, true)
        end
        if context.discard and not context.blueprint and
            G.GAME.current_round.discards_used <= 0 and #context.full_hand == 1 then
            return {
                dollars = card.ability.extra.dollars,
                remove = true
            }
        end
    end
}```
what part of this code destroys the card?
ive been making a version of trading card but with first discard being replaced with first hand and cant seem to get it to trigger
it does the jiggle animation and stops after the first hand is played but doesnt do anything else
gusty iron
gusty iron
young leaf
#

oh thats weird my recording only captured my cursor

#

to clarify: i played 5 cards, it gave me over 100 dollars (it was meant to give me 15), then destroyed both the hand that was just played and everything held in hand

young leaf
#

i have embraced the glitch

bold gyro
#

hey y'all, is there a way to check if a new run starts? hooking Game:start_run seems to not work, as it is also called when re-entering a run?

red flower
obtuse silo
#

how does one set up a mod icon?

red flower
umbral spire
#

( #1434965243720892426 ) what would be the tooltip for this block? I know when to use it but not exactly what it checks for ;-;

#

-# tooltip is basically the description

red flower
#

<@&1133519078540185692>

willow scroll
#

i may be stupid how can i make it so a joker sets a blind to a different blind without jank shenanigans

#
if context.ending_shop then
            for i,v in pairs(G.GAME.round_resets.blind_choices) do
                if v ~= "bl_maxboism_thesky" then
                    G.GAME.round_resets.blind_choices[i] = "bl_maxboism_thesky"
                end
            end
        end

i have this but it complains about my blind not having boss defined even if i start a big blind for example

SMODS.Blind {
    key = "thesky",
    dollars = 1,
    mult = 0.5,
    pos = { x = 0, y = 0 },
    atlas = "CustomBlinds",
    discovered = true,
    boss_colour = HEX("8b0307"),
}
#

boss_colour is needed or else it crashes if i hover over it in collections 😭

long sun
#

in controller.lua, there is the line self.cursor_up.target = self.hovering.target or self.focused.target

#

i've inspected self.cursor_up.target but it doesn't seem to be a Card

#

so, how can i check if the deselected thing is a card, and has a specific ID?

umbral spire
#

my internet is fine? (this is in git bash, windows 10 btw) why won't this work?

[[hidden]] MINGW64 ~/Desktop/JokerBlocks (main)
$ ping github.com
Ping request could not find host github.com. Please check the name and try again
.

long sun
red flower
umbral spire
long sun
#

mm

long sun
obtuse silo
#

how would i modify this code to:
A: make the video cover the entire window
B: close the video when the video finishes?

red flower
umbral spire
long sun
#

it's when i deselect a card, i checked that object and it seemed uncardlike ^^;

#

but ya i'll give it a go

willow scroll
keen atlas
red flower
keen atlas
#

can you connect to github from different device

umbral spire
keen atlas
#

can you connect with browser?

umbral spire
keen atlas
#

can you open github from browser

umbral spire
#

yeah?

#

works fine

keen atlas
#

hmm

long sun
umbral spire
long sun
#

i think i'm just gonna remove the functionality altogether ^^;

#

it's for an annoying easter egg

#

and it gets in the way

willow scroll
long sun
#

what is this

#

can i turn this off

red flower
#

thats what i did for hotpot

willow scroll
umbral spire
keen atlas
#

ping doesnt take leading https

obtuse silo
keen atlas
#

what abt nslookup github.com?

umbral spire
umbral spire
keen atlas
umbral spire
#

oh ok

keen atlas
umbral spire
#

or Ok?

keen atlas
#

no you dont need to install anything

#

set this one

umbral spire
keen atlas
#

properties

umbral spire
#

oh

umbral spire
keen atlas
#

set the ipv6 too

umbral spire
#

same as ipv4?

#

settings

keen atlas
#

no

#
2606:4700:4700::1111
2606:4700:4700::1001
umbral spire
#

which one?

#

?

keen atlas
#

ok

umbral spire
#

thats it?

keen atlas
#

yeah

#

try pinging again

umbral spire
keen atlas
#

weird

umbral spire
#

fr

umbral spire
keen atlas
#

idk.......

#

did you set up proxy by any chance

umbral spire
#

?

keen atlas
#

nvm

red flower
umbral spire
umbral spire
keen atlas
#

did you set ipv4 as 2606:4700:4700::1111 or 1.1.1.1

umbral spire
#

1.1.1.1

#

?

keen atlas
#

hm idk then

umbral spire
#

you cant anyways

obtuse silo
#

how do i check the contents of my consumable slots again-

wind steppe
red flower
umbral spire
#

I am genuinely confused on why my computer cant ping github

obtuse silo
#

well i got the game to instantly crash which was kinda the point but not what i was going for-

umbral spire
#

@keen atlas does this tell you anything?

keen atlas
#

no

umbral spire
#

dang it

keen atlas
#

can you still access github from browser though

umbral spire
#

yes?

keen atlas
#

ok cool

umbral spire
crystal perch
#

changing it to pairs does work, but it's having trouble calculating the difference
as shown in the screenshot, it sees Clubs = 3, Diamonds = 2, and Spades = 3 as the original hand and Clubs = 3, Hearts = 2, and Spades = 3 as the new hand.
expected behaviour should be difference = 2, as the two diamonds became two hearts, but instead it's calculating difference = 0, i'm assuming because it's comparing the diamonds to hearts as if they were the same suit when they aren't

#

i'm going to try and math this out, there's def some missing logic, but just figured i'd mention it

red flower
#

i always find it helpful to write these things on paper to figure out the logic

willow scroll
#

for the patch

red flower
#

no idea

keen atlas
willow scroll
umbral spire
# umbral spire

i forgot to scribble the user name 😭
-# not that bad, not my full name or anything anyways

willow scroll
#

actually how do other mods that add replacement blinds for small/big handle it

crystal perch
umbral spire
umbral spire
keen atlas
#

nvm abt it cuz i never use it

umbral spire
#

ah alr

#

does this tell you anything?

keen atlas
keen atlas
umbral spire
obtuse silo
#

is there any way to get the dimensions of the game window?

keen atlas
keen atlas
umbral spire
#

should i check it back?

keen atlas
#

yeah sure

crystal perch
keen atlas
# umbral spire

try open notepad as admin, then edit C:\windows\system32\drivers\etc\hosts, then add 20.205.243.166 github.com

#

btw what abt ping 20.205.243.166 before you added it?

red flower
red flower
keen atlas
#

its a bit hacky but give it a try

umbral spire
keen atlas
#

you edit the file C:\windows\system32\drivers\etc\hosts

umbral spire
#

how-

keen atlas
#

file > open

umbral spire
keen atlas
#

yeah?

umbral spire
#

what do i do??

keen atlas
#

or C:\windows\system32\drivers\etc then click hosts

umbral spire
keen atlas
#

the hosts file is supposed to be there 🤔

hardy viper
#

make one if it isn't ig

umbral spire
keen atlas
#

this
20.205.243.166 github.com

umbral spire
#

uh i created it but it disappeared

#

;-;

keen atlas
#

what

umbral spire
#

it's hidden or something?

hardy viper
#

oh probably

frosty rampart
#

change this

#

to all files

hardy viper
#

that or . windows..

#

oh bruh

#

my bad

keen atlas
#

i didnt notice that too

umbral spire
#

oh

#

so just add that add the bottom?

keen atlas
#

yeah

umbral spire
#

and then ping? (with nslookup or ping?)

keen atlas
#

both works

#

if doesnt try restarting your pc first

willow scroll
# willow scroll might just make a separate blind thats exactly the same otherwise for the boss b...

ok im incredibly salty why is almost every blind type check done with Blind:get_type() EXCEPT

if G.GAME.round_resets.blind == G.P_BLINDS.bl_small then
                            G.GAME.round_resets.blind_states.Small = 'Defeated'
                        elseif G.GAME.round_resets.blind == G.P_BLINDS.bl_big then
                            G.GAME.round_resets.blind_states.Big = 'Defeated'
                        else
                            G.GAME.current_round.voucher = SMODS.get_next_vouchers()
                            G.GAME.round_resets.blind_states.Boss = 'Defeated'
                            for k, v in ipairs(G.playing_cards) do
                                v.ability.played_this_ante = nil
                            end
                        end
umbral spire
shell timber
#

are you sure there isnt any other line that changes github.com in there

umbral spire
#

this is different?

keen atlas
#

that works

umbral spire
#

so its good?

willow scroll
#

crack windows install wdym ping works but nslookup doesnt 😭

keen atlas
#

yeah try it

hardy viper
willow scroll
hardy viper
#

nslookup is smart enough to not parse through the hosts file whenever you run the command egg

willow scroll
candid acorn
#

how can i spawn a random consumable?

#

kinda like cryptid does with the tarot card

#

i tried to find it

#

but theres literally no file for tarot cards in the mod for some reason

slim ferry
#

cryptid tarots are in misc iirc

#

but you can just use set = "Consumeables" in an SMODS.create_card or SMODS.add_card call

candid acorn
#

i tried this

keen atlas
red flower
slim ferry
#

have you ever created a card before

umbral spire
keen atlas
#

😭

umbral spire
slim ferry
umbral spire
umbral spire
keen atlas
umbral spire
keen atlas
#

type yes

#

or somethin

willow scroll
#

Can you do hex codes directly in {C:} for loc files?

umbral spire
# keen atlas type yes

bro i yapped on and on in a tech support server and even they couldn't help, im cooked

umbral spire
tight pumice
#

Is there a context for purchasing a voucher?

umbral spire
#

oh typo

tight pumice
#

Or should I just use context.from_shop and go from there

umbral spire
keen atlas
#

umm

#

try remove then add again the remote url
if that doesnt work you might need to authenticate with ssh key / oauth

daring fern
keen atlas
#

can you try pushing from vscode

umbral spire
#

how

umbral spire
keen atlas
umbral spire
#

oesns't work

#

it says this

#

but it still loads in vscode

#

igtg anyways

#

thanks for the help

keen atlas
turbid igloo
#

guys how do i check the number that i scored? i tryed
calculate = function(self,card,context) if context.joker_main then local totalScore=SMODS.calculate_round_score() if totalScore>10 then return{ chips=10 } end end end
but it gives me an error

turbid igloo
#

hold up

slim ferry
#

update steamodded

#

also preferrably just paste crashes you get in here rather than screenshotting two lines

turbid igloo
#

okok i didnt want to clutter the chat

slim ferry
#

discord turns it into a txt

#

well it shoudl

frosty rampart
#

if it's longer than the character limit it'll turn into a txt file

slim ferry
#

if not you can still do it manually

slim ferry
turbid igloo
#

ok thanks ill keep it in mind next time

wintry solar
#

Or just screenshot the full screen

turbid igloo
#

ok it works now thanks guys

wintry solar
#

That’s normally enough information for most crashes

tall wharf
#

AKYRS.card_area_preview is a wrapper for card area things that works

#

i know it works because it's the same code on the description page that doesn't crash

primal robin
#

If your functions not wrap card area in object container then that's probably an issue

tall wharf
#

it does

clear ocean
tall wharf
#

got it

#

just move everythingto inside tab def functon

civic solstice
#

okay its back to figuring out why my discards arent being set to 0

wintry solar
#

What is mod

civic solstice
#

from this

wintry solar
#

No

civic solstice
#

but idk what mod is ngl i was just given this code ig

#

idk

wintry solar
#

That’s not how that works

modest sedge
mystic river
#

add or 0 after it
but also make sure it's the right value; you might need to include your mod prefix

modest sedge
#

Ohhh okay thank you

unkempt bronze
#

Anyone know how to turn balatro into a zip folder without renaming it? I tried it that way and nothing.

daring fern
unkempt bronze
#

I have a copy of Balatro on my desktop, how do I extract it?

unkempt bronze
modest sedge
# modest sedge Ohhh okay thank you

So is this correct

    use = function(self, card, area, copier)
        card.ability.extra.bonus = (G.GAME.consumeable_usage_total.jabm_typex or 0) * 2
        bonus = card.ability.extra.bonus
        ease_dollars(bonus)
    end,```
daring fern
daring fern
unkempt bronze
slim ferry
#

download 7zip

#

or really any 3rd party thing

modest sedge
slim ferry
#

becasuse most of them let you extract exes

unkempt bronze
#

Thank you, Eris

modest sedge
#

Yeah 7zip or WinRAR will get the job done

unkempt bronze
#

somehow, still won't allow me. Just.. no extraction button

unkempt bronze
slim ferry
#

right click

#

on the file

unkempt bronze
#

I am

#

I see open, run as admin, all the usual stuff but no Open With... and dragging it physically says it's invalid.

slim ferry
unkempt bronze
#

I see no 7-zip. flat as it gets, and it is downloaded!

slim ferry
#

did you actually run the 7zip installer

#

it should show up if you click > right click > more options > 7zip

unkempt bronze
#

I click on it, it says "program files/7zip".

#

I don't know where that even is!

slim ferry
#

okay well thats correct i assume

#

can you use 7zip on a regular zip

unkempt bronze
#

lemme check...

clear ocean
#

what's enhancement_gate

slim ferry
#

because if it isnt anywhere thats probably the issue

slim ferry
frosty rampart
#

(e.g. how lucky cat won't spawn in-game unless you have a lucky card in your deck)

clear ocean
#

speaking about lucky cat

slim ferry
#

wee cat

clear ocean
#

which name is best

#

lucky kitten
wee cat
wee kitty
wee kitten
wee lucky cat
wee lucky kitten

unkempt bronze
clear ocean
#

maybe have it related to a lucky card triggering or not?

normal crest
#

you're missing "Chips" after X0.25

#

presumably

frosty rampart
#

small gains when a lucky card scores, larger gains when a lucky card triggers a lucky effect (but still smaller than X0.25)

clear ocean
normal crest
#

unforgivable

tall wharf
#

game breakin bug

clear ocean
#

pulling my ukulele out for this

#

a father, his son, their cat, and her litter

civic solstice
#

okay guys uh i now that i fixed the no discards deck im making a deck thats entirely 4s now but its lowk just not working

#

da code

gusty iron
civic solstice
#

how long?

gusty iron
clear ocean
#

its just the red deck but the display size is the wee joker size

civic solstice
gusty iron
clear ocean
#

should it be .2 or .1?

unkempt bronze
#

Found exactly what I wanted! hahahahahaha!!!

civic solstice
clear ocean
#

and its one of the locked jokers for this mod

#

is five enough

daring fern
civic solstice
clear ocean
#

maybe it should be more

daring fern
clear ocean
gusty compass
#

I feel like it should be a bit less since retriggers will increase the xchips rampant

clear ocean
#

yeah fair point

civic solstice
#

this looks so fucked

gusty compass
#

+X0.2 for every scored lucky card would be a bit too potent, so perhaps +X0.1 or +X0.05

clear ocean
#

.1 i think is a fair balance since its still a rare joker and meant to be like the wee joker for xchips

gusty compass
#

👍

clear ocean
gusty compass
#

Btw where can I hook a function upon the shop appearing, since I'm trying to get a joker that stays in a specific slot in the shop until it is either bought or it breaks after 3 shops

gusty iron
civic solstice
#

^

gusty iron
#

I love how 2 raised to itself in ANY hyperoperation is just 4

tall wharf
#

hi

gusty iron
clear ocean
gusty iron
clear ocean
#

wait a minute

#

say that again

gusty compass
#

Have a whole hand of lucky cards

gusty iron
civic solstice
#

now i just need more ideas for other decks and the 2 question marked decks

clear ocean
gusty compass
#

I guess so

clear ocean
#

maybe i mean the reason why its gold since it only is a held in effect

tall wharf
#

yessss

gusty iron
unkempt bronze
#
  G.splapp_config = G.splapp_config or {}
  G.FUNCS.DT_lose_game = function() 
    if G.STAGE == G.STAGES.RUN then 
        G.STATE = G.STATES.GAME_OVER; G.STATE_COMPLETE = false 
    end 
    end
 local t = {n=G.UIT.ROOT, config = {align = 'cm', r = 0.1}, nodes={
      UIBox_dyn_container({
      {n=G.UIT.R, config={align = "cm", padding = 0.15}, nodes={
        {n=G.UIT.C, config={align = "cm", padding = 0.15}, nodes={
          UIBox_button{ label = {"One"}, button = "DT_lose_game", minw = 1.7, minh = 0.4, scale = 0.35},
          UIBox_button{ label = {"Two"}, button = "DT_lose_game", minw = 1.7, minh = 0.4, scale = 0.35},
        }},
        {n=G.UIT.C, config={align = "cm", padding = 0.15}, nodes={
          UIBox_button{ label = {"Three"}, button = "DT_lose_game", minw = 1.7, minh = 0.4, scale = 0.35},
          UIBox_button{ label = {"Four"}, button = "DT_lose_game", minw = 1.7, minh = 0.4, scale = 0.35},
        }}
      }}
      }, true)
  }}
  return t
end```
All's left is to time it like yahiamod, scale each one right, and add the question at the top! 
-# I CAN CODE A BUTTON NOW!!
civic solstice
gusty iron
civic solstice
#

tyvm

gusty iron
#

Ywyw

#

And also any card you get would be PERMANENTLY added to your deck, so you have to be careful with what you pick up.

clear ocean
#

i have an idea

#

play a hand with both glass and lucky cards

#

since broken glass is a sign of unluck and typically you don't want to play both since both rely on probability

gusty compass
#

Sure 👍

civic solstice
#

i can try tho

#

actually i can just make it so those cards come back as well

#

i have an idea of how to do that

gusty compass
#

I'm thinking if the card destroyed is that card, just copy it?

civic solstice
#

yea

#

similar to how dna works

#

i can code that, for sure

gusty compass
#

Maybe it can use some sort of Returning sticker that just clones it upon destruction

civic solstice
#

nah this is the entire deck

gusty compass
#

Then go ahead

slim ferry
#

i mean if all cards get returned when destroyed just make it a deck calculate right

gusty compass
#

Yea context.remove_playing_cards could work

#
for k, v in pairs(context.removed) do

end

Yadda yadda

clear ocean
gusty compass
#

Would that work with 1 lucky and 4 glass?

clear ocean
#

yeah

#

as long you have one of each and its a five card hand

gusty compass
#

That's cool

clear ocean
#

idk if the last line has too much characters for an unlock especially for other languages

gusty compass
#

Btw would anyone know how I would hook a function to when a shop appears, or being able to attach buttons to jokers in the shop globally instead of when on_apply is fired

clear ocean
#

idk much about hooks sorry

gusty compass
#

😔

clear ocean
#

all is left is jokerdisplay support

#

i think it works

civic solstice
#

okay i literally just copied the majority of DNAs code and altered some tiny bits lol

#

watch this not work

red flower
civic solstice
#

ive made like 5

gusty compass
#

What is end doing in line 25 😭

civic solstice
#

befpre this

unkempt bronze
#

My first was a DNA clone, and it works!

hardy viper
gusty compass
#

Oh alr

red flower
civic solstice
hardy viper
#

press shift+alt+f

#

it will fix the formatting

#

should make it clear what the end is doing

gusty compass
#

Isn't there some sort of extension that formats code cleanly

hardy viper
#

prettier, yeah, but lua formatter is just fine

civic solstice
gusty compass
#

I found some trouble with the original formatter so I just find the new one better

unkempt bronze
gusty compass
#

Even if it shits around with most of my lists

#

When I don't want it to 🥀

civic solstice
unkempt bronze
#

Ah. Maybe make a table?

gusty compass
#

context.end_of_round and context.game_over?

civic solstice
#

i was thinking it was a context issue

red flower
# civic solstice wdym
  1. DeckCount doesn't exist by itself, it's in config
  2. eval doesn't exist in that conditional block below
  3. context.full_hand is not a thing in end_of_round

also like tomato said there are problems with the syntax

gusty compass
#

Does your cards duplicate when you lose?

red flower
civic solstice
civic solstice
gusty compass
#

You could create a value in G and save it there?

tall wharf
#

how would you save card info

gusty compass
#

No?

#

Alr

red flower
gusty compass
#

😔

unkempt bronze
tall wharf
red flower
#

what if

tall wharf
#

when it gets destroyed

gusty compass
#

So G should be left alone?

#

And you could use G.GAME?

red flower
#

idk i just save my cards to cardareas

frosty rampart
#

there's no reason to save anything to anything global when you can just save a table of card data inside the joker itself

tall wharf
#

i know the art of cardareas

gusty compass
#

It's a deck

frosty rampart
#

deck, whatever

gusty compass
#

Actually, save the cards to a deck config

civic solstice
#

trust me ive done simpler stuff

gusty compass
#

Then at the end of round, sift through the config of the deck and copy as such

red flower
gusty compass
#

Btw N, I was gonna ask, what could I use to attach functions to when a shop appears, since I want to see how I can have jokers and consumables persist between shops in a special shop slot

red flower
#

maybe look at the black market in hotpot

gusty compass
#

Fair idea, I'm not sure where to look for how cardareas are used but ig I can try tmrw

frosty rampart
gusty compass
#

Or you can save the card to the deck config directly, since they are all objects after all

#

Unless I'm wrong

frosty rampart
#

do not

#

saving card objects inside other objects breaks with saves

gusty compass
#

Ok 🥀

frosty rampart
#

it'll behave fine until you quit the game and come back later

civic solstice
gusty compass
#

I was meaning like emplace it in config = {} but I guess I'm the newbie

frosty rampart
frosty rampart
#

oh hell yea that works

#

i figured the save/load stuff was hardcoded to save and load to/from the save files

clear ocean
#

is this fine in the collection i am still not sure if its too long at least for the third and last line

crystal perch
#

that's fine yeah

#

i'd say as long as the description isn't longer than like, obelisk, you're good

civic solstice
crystal perch
#

quick question how can i make a challenge that uses a whitelist for jokers instead of a blacklist, without just banning every joker other than the ones i allow

daring fern
crystal perch
#

yes but then it would make the banned cards tab super full
i guess it can't be helped :/

clear ocean
#

is the unlock condition clear? basically play a high card but it has to be an ace

#
    locked_loc_vars = function(self, info_queue, card)
        return { vars = { localize('High Card', 'poker_hands') } }
    end,
    check_for_unlock = function(self, args)
        local highCard = false local ace = false
        if args.type == 'round_win' then highCard = G.GAME.last_hand_played == 'High Card' and G.GAME.blind.boss end
        if args.type == 'hand_contents' then ace = #args.cards[1]:get_id() == 14 end
        if highCard and ace then return true end
        return false
    end
``` not sure if i did it right. lol.
#

is it because it only checks for one of the args.type and skips the other or something

#

gotta get ready for work and ill be working for the next six hours. uh, just mention me if you know how to fix this

daring fern
civic solstice
#

im fuckin struggling

#

LOL

broken rivet
#

somehow the scaling here is just not activating at all

#

wait huh

#

ok idk what the fuck is going on

#

it's not that

#

it's the joker_main part

#

oh

#

i forgot a return

hardy vessel
#

I'm trying to make a blueprint-like joker that only copies (left + right) jokers of a specific pool. I had the copy effect working fine, but I can't seem to have the joker properly check if other jokers pass the pool check. I'm not exactly sure what is wrong, so any help would be appreciated!

slim ferry
#

config.center.pools is a table of pools

#

you want to loop over G.P_CENTER_POOLS["hch_food"] and see if its in there

#

(Also a food pool with the key Food is very common so more mods will have compat with that

red flower
#

you can do (joker.config.center.pools or {}).hch_food to check

slim ferry
#

wont that only be there for jokers that have that pool defined via the pools field and not the ones that are added into the pool in the definition

red flower
slim ferry
#

awesome

#

thanks N for your cool PRs

viscid talon
#

trying to make a joker that debuffs face cards when it appears

#

it no worky

#
        
        return {vars = {card.ability.extra.xmult}}
    end,

    calculate = function(self, card, context)
        if context.setting_blind then
                debuff = { is_face = true }
        end
        if context.individual and context.cardarea == G.play  then
            if context.other_card:is_face() then
                card.ability.extra.xmult = (card.ability.extra.xmult) + 0.25
            end
        end
    end
}```
red flower
#

and return { debuff = true }

willow scroll
#

how does one control what background music is playing

#

i looked at smods sound but i dont think i get it

red flower
#

the bigger number gets played

zealous glen
willow scroll
#

for example, mute the vanilla bg music when a specific joker is held

red flower
#

no idea

willow scroll
#

it says smth about overriding SMODS.Sound:get_current_music()?

#

i can try that

hardy vessel
zealous glen
red flower
#

in merge_effects

sharp arch
#

back at it again with the same issue
but for clarification
the mod was working fine until i rebooted it so uhhh yeag

willow scroll
#

oh i did sometihng and it kind of works but the rest of the sounds are broken and very delayed

#

please tell me i dont need to make an empty .ogg file

bold sleet
#

Hello, quick question: was there a way to order the jokers/consumables in the collection?

hardy vessel
willow scroll
#

i understand it now

#

oh it works 🔥

sharp arch
#

invisible joker and burnt joker's keys are "j_invis" and j_burnt right

daring fern
sharp arch
gentle cloud
#

hello! so ive been trying to make a cardarea doohickey but for some reason it doesnt shake (or i guess jiggle idrc) or resize alongside the window properly.
please help I've been at this for at least two hours now.

local start_run = Game.start_run
function Game:start_run(args)
    self.grgo_powers = CardArea(
        0,
        0,
        2.3*G.CARD_W,
        0.95*G.CARD_H,
        {
            card_limit=4,
            type = "joker",
            highlight_limit = 1
        }
    )
    GrowlGoofs.powers = G.grgo_powers
    
    start_run(self,args)
    G.grgo_powers.T.x = G.consumeables.T.x
    G.grgo_powers.T.y = G.consumeables.T.y+G.consumeables.T.h+0.23
    G.grgo_powers:hard_set_VT()
end
solid salmon
#

guys for some reason challenge joker wont generate needle joker

sharp arch
#

why is this custom tooltip showing up blank?

clear ocean
#

on break atm

red flower
#

show code

young leaf
#

how do you have a value change in the description for scaling jokers?
i tried the hashtags that vanillaremade uses but that just makes the number displayed nil

red flower
stoic heron
#

thats a cute kitty

rich roost
#

Does anyone know of a mod or tool that will write the game state to a .txt file every time an action is taken

young leaf
#

THAT IS NOT HALF THE BLIND SIZE

gusty iron
#

Make sure youre only triggering it once

young leaf
#

thats what ive been working on
i just copied the event from disabling the wall
but im not sure what context will get it to do it just once at the start of the round

young leaf
#

thats what i thought too

#
        if context.setting_blind then
            return {
                function(self)
                    G.GAME.blind.chips = G.GAME.blind.chips / 2
                    G.GAME.blind.chip_text = number_format(G.GAME.blind.chips)
                end
            }```
faint yacht
#

func = function()

red flower
modest sedge
#
    can_use = function(self)
        return G.hand and #G.hand.cards > 0
    end,

    use = function(self, card, area, copier)
        card.ability.extra.bonus = (G.GAME.consumeable_usage_total.typex or 0) * 2
        bonus = card.ability.extra.bonus
        ease_dollars(bonus)
    end,```

Is this correct? It's giving me $0 every time, instead of $2 for every time a consumable of Type X is used
red flower
modest sedge
red flower
modest sedge
#

dang

pseudo sun
#

So i need a little bit of help, im trying to make a splash text similiar to minecraft's one for my mod. (see img references) Is it possible and can someone help with making it?

#

Im thinking of putting the text contents in a seperate lua file named "splashtext.lua" to make it easier

pseudo sun
river grail
#

no

#

but its 100% in the source code on there

pseudo sun
#

mind linking me to their code?

river grail
#

it's in #1397989781178155009
i would ask if you're able to use it, since its an event and idk how chill the person who wrote it is so

modest sedge
obsidian spear
#

how tf do I do this

clear ocean
#

balanced it out

#

should i add the ace reminder or is it fine like steel joker

#

reminders are more for played suits/ranks

#

for the art, since im not that great at art yet, i was thinking a pilot flying a plane somewhat like this one in gta v's story over islands or mountains. mainly inspired by the airplane missions/gamemodes in gta v and wii sports resort

#

for the name which one is better: flying ace or fighter ace?

timid parrot
#

Or is it X2 with 4 aces and I’m just making an assumption?

clear ocean
#

its similar to steel joker if you have no aces you just get x1 it goes up

#

i don't know why you would want a joker that just takes xmult like that

#

🐎

timid parrot
#

Yeah that makes more sense

#

A bit strong since it starts at X2 but otherwise solid

timid parrot
river grail
#

I know Hot Potato added the whole Minecraft splash text, but is it possible to add other graphics to the menu (besides another card)? I plan on adding some, but it's late and I gotta go to bed before I even begin to investigate 💔

clear ocean
timid parrot
#

Cool

clear ocean
#

one stack of joker ideas is beating a run with a friends of jimbo suit and the joker is related to the respective game or something similar

timid parrot
#

So just changing it in the menu and then winning?

clear ocean
#

yeah since i think it would be hard to track for the whole run

#

might be too niche idk ill come up with more ideas later but its almost midnight just wanted to finish the jokers i made before i went to bed after work

timid parrot
#

I don’t really like that

clear ocean
#

me either

#

it was more of throwing stuff at the wall to see what sticks

timid parrot
#

Maybe reference the game/joker with the unlock

clear ocean
#

maybe... like for bugsnax i guess consume all the food jokers at least once? idk

glass scaffold
#

Does anyone know what language the shaders use for Editions?

final jewel
#

how do I make the joker have the message instead of the card

cerulean rose
#

add a message_card key to your return table

#

also you should look at SMODS.scale_card

final jewel
#

ok thx

#

like message_card = card or message_card = 'Upgraded !'

cerulean rose
#

message_card = card

cerulean rose
#

is there a definitive way to get a joker's loc_vars?

tall wharf
#

just wondering what you're doing with it

cerulean rose
#

so far the best i can come up with is card.config.center.loc_vars and card.config.center:loc_vars({}, card).vars or card:generate_UIBox_ability_table(true)

tall wharf
#

yeah i don't think you can get it from anywhere else other than UIbox ability table because vanilla ones are there

modest sedge
#

how do i get rid of the error

cerulean rose
modest sedge
#

(Sorry, wrong timing)

cerulean rose
modest sedge
#

ohh

tall wharf
#

i think you've got the best solution already

blissful lake
#

Chat am I cooking

#

except for the part where it isn't actually functional because I'm just using JokerForge to brainstorm ideas

deft gust
#

How do I manually call another joker's calculate() function? I want to forcibly trigger the joker outside of its normal timing by setting all the context flags to true.

wind steppe
obsidian spear
wind steppe
#

Steal Cryptlib's Code™

obsidian spear
#

b-b-b-b-but i dunno how :(

wind steppe
#

a bunch of mods have forcetrigger compat designed specifically for it anyways

obsidian spear
wind steppe
#

im going to be honest with you here i havent actually used cryptlib forcetriggers

obsidian spear
#

i had a certain glitched kat helping me

wind steppe
#

i know how to add compatiblity but i dont know how one forcetriggers

#

oh theres a function for that

obsidian spear
#

mmmmmmmmmhm

wind steppe
#

make sure to check if they exist first so you're not overwriting the function in case cryptid does happen to be enabled

obsidian spear
#

already stolen

wind steppe
#

youll need to steal Card:no and Cryptid.deep_copy as well

obsidian spear
#

card:no?

#

do you know which file thats in

deft gust
wind steppe
deft gust
#

Besides that, it mostly just uses eval_card(), right? Where does that function come from?

faint yacht
#

function eval_card(card, context) common_events.lua

#

Keep in mind SMODS has a hook on it.

deft gust
#

I saw it referenced in smods, but nothing happens when I call it

#

I figured out that it should've been SMODS.eval_card(), but now I'm getting this crash

obsidian spear
#

INFO - [G] Bitter's Stuff | loaded Scripts/Atlases.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Consumbles.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Edition.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Hooks.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Misc.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Rarities.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Jokers/BadDev.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Jokers/Funnies.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Jokers/JokerFuncs.lua
INFO - [G] Bitter's Stuff | loaded Scripts/Jokers/Reflection.lua

why isnt my file loading?

btw theres like 1000 or so lines that are just for vanilla stuff

#

at ts point i might just require it for just this

bold sleet
cerulean rose
#

the order parameter:

#

or is it collection_order

bold sleet
#

idk

slim ferry
#

it is order but that is automatically set by steamodded based on load order

#

Cryptid uses order but that is just for internal load order within the mod to get cards in the desired order

rancid flare
#

how can a playing card come back to hand after scoring ?

rancid flare
#

thx

daring fern
#

rancid flare
daring fern
rancid flare
#

v is the card to add to hand ?
to accese its config it's still v.ability.extra or something

rancid flare
# daring fern Yes.
version = "1.0.0"
dump_lua = true
priority = -10

[[patches]]
[patches.pattern]
target = '''functions/state_events.lua'''
pattern = '''
for k, v in ipairs(G.play.cards) do
    if (not v.shattered) and (not v.destroyed) then 
        draw_card(G.play,G.discard, it*100/play_count,'down', false, v)
        it = it + 1
    end
end
'''
position = "at"
payload = '''
local handcards = {}
for k, v in ipairs(G.play.cards) do
    if (not v.shattered) and (not v.destroyed) and v.ability.extra.value==0 then 
        draw_card(G.play,G.discard, it*100/play_count,'down', false, v)
        it = it + 1
    end
    if (not v.shattered) and (not v.destroyed) and v.ability.extra.value>0 then
        table.insert(handcards, v)
        it = it + 1
    end
end
if #handcards > 0 then
    G.FUNCS.draw_from_play_to_hand(handcards)
end
'''
overwrite = true
match_indent = true```
is it good ?
daring fern
candid acorn
#

im trying to make a card spawn a planet card but i just cant get it to work. using set = 'Planet' doesnt seem to work. Can someone help me?

#
  set = 'Planet',
  edition = 'e_negative'
}```
slim ferry
#

the set is correct

#

whats the code surrounding it

candid acorn
# slim ferry whats the code surrounding it
        for i = 1, math.min(#G.hand.highlighted, card.ability.max_highlighted) do
            G.E_MANAGER:add_event(Event({func = function()
                _card = G.hand.highlighted[i]

                if _card.edition then
                    SMODS.add_card{
                        set = 'Tarot',
                        edition = 'e_negative'
                    }
                end
                if _card.seal then
                    SMODS.add_card{
                    set = 'Spectral',
                    edition = 'e_negative'
                    }
                end
                if _card.enhancement then
                    SMODS.add_card{
                        set = 'Planet',
                        edition = 'e_negative'
                    }
                end
                _card:remove()
                return true end}))
        end```
slim ferry
#

_card.enhancement doesnt exist, you want to check next(SMODS.get_enhancements(_card))

daring fern
fossil ermine
#

is it possible to add text to a joker's localization only after its discovered ?

rancid flare
#

how to get a list of all curent tag and how to add a tag

daring fern
rancid flare
#

how to get the name(tag_modprefix_key) of the tag in G.GAME.tags

rancid flare
#

thx

umbral spire
#

bro i just want a github repo 🥀 🥀

rancid flare
#

is it possible to make a card come back when discarded

daring fern
umbral spire
#

HOLY FUC @keen atlas (mb for the ping)

surreal mason
#

Modifying SDM_0's mod and I wanna rename the WoF to "Let's go gambling!"

keen atlas
#

notepad has an update now??

#

oh wait this is dev

ashen drift
umbral spire
#

how do you edit/define global variables again? is it G.GAME.current_round.variable_name?

dapper sun
#

do u guys know how to apply edition shaders to things being drawn directly without adding this warping?

hardy viper
#

what the hell

#

yeah that's very weird

dapper sun
#

fnf in balatro

#

a friend's helping code it for me for my mod

tranquil gull
#

okay so
how do i get the {X:mult,C:white} look with raw ui nodes

#

where in the code is that

red flower
#

also it's just a column node with some rounding

tranquil gull
#

perfect ty

turbid igloo
#

how do i level up all the poker hands?

rapid stag
#

like, at once? i don't know that you can do it in one call, you'd have to iterate through each hand

rancid flare
slim ferry
#

you can link lines

#

click on line number and then the three dots and copy permalink

hardy vessel
#

Is there context I could use to pull the sell value from a destroyed joker? (As in, making a joker that gives double the sell value of another joker that is destroyed)

daring fern
hardy vessel
clear ocean
#

what is better

vernal seal
#

quick question:
why doesn't remove all cards of that suit and only left these cards?

clear ocean
#

weird that shouldve worked also isnt there like a config option for that?

normal crest
#

Because calling remove removes them from G.playing_cards which you are currently looping through

#

you want to store the cards to delete in a local table and then call SMODS.destroy_cards with that table

normal crest
#

not at all

#

like this

local cards = {}
for k, v in pairs(G.playing_cards) do
  if v:is_suit("Hearts") then
    cards[#cards + 1] = v
  end
end
SMODS.destroy_cards(cards)
daring fern
daring fern
# vernal seal oh,alright
for i=#G.playing_cards, 1, -1 do
    if G.playing_cards[i]:is_suit('Hearts') then
        G.playing_cards[i]:remove()
    end
end
clear ocean
#

working on a spectral cousin of these two jokers but not sure what to call it

#

the closest i got was when looking up stuff is paranormal but it doesnt sound like a profession

#

ghosthunter? parapsychologist? practitioner? transmitter?

#

pyromancer?

vernal seal
vale zinc
#

Also, is it possible to call after_scoring() within a Joker?

sharp arch
#
                name = {
                    "This Joker's full name is:",
                    "{s:0.7}(*ahem*){}"
                },
                text = {
                    "Joker That's Been Crumpled Up, ",
                    "{E:1}Torn Slightly{}, Soaked In The Lagoon" ,
                    "And Kissed With {X:blue,C:white}Coral Blue{}",
                    "#2 Semi Gloss Lipstick"
                },
    
            hc_ms_comment = {
                name = {
                    "Mobile Suit",
                },
                text = {
                    "This card comes from the",
                    "{E:1,s:1.3,C:dark_edition}Mobile Suit Gundam{}",
                    "franchise" 

                }
            },
            hc_slander_comment = {
                name = {
                    "Slandering Myself",
                },
                text = {
                    "This card doesnt work properly because",
                    "{E:1,s:1.3,C:attention}I cant fucking code!!! :3{}",
                    "{C:inactive}                 -jabon Gratis{}" 

                }
            },
            hc_vegeta_comment = {
                name = {
                    "vegeta",
                },
                text = {
                    "vegeta :)",

                }
            },```
only the longass comment shows up, did i fuck something again
clear ocean
daring fern
vale zinc
daring fern
sharp arch
#

say, would there be a way to have a hand not score unless theres a specific suit held in hand?

#

workin on a cool asf blind

vale zinc
sharp arch
#

well, i want to make it so you just have to hold it in your hand

vale zinc
#

You'll hafta call debuff_hand() then loop through the player's cards held in hand and see if the player's got so much as a single, say, Diamond. If they do, return false; otherwise, return true.

vernal seal
#

another quick question:
why do Card effects that check default deck size still believe its 52 when cards are removed/added to deck at run start?

#

Erosion should say "36" instead of "52".

rocky plaza
#

@sharp arch
show me the joker code for the extra info queue description that is working
and an instance of the joker code for the extra info queue that is not working

daring fern
sharp arch
#

prettuy sure if you find the issue therethe rest can be fixed

vernal seal
daring fern
rocky plaza
sharp arch
#

if it helps, heres how it looks in game

rocky plaza
#

that is strange

#

can i see the entire loc vars function for that joker

sharp arch
# rocky plaza that is strange
        info_queue[#info_queue + 1] = { key = 'hc_ms_comment', set = 'Other' }
        return {

            vars = {
                card.ability.extra.Xmult,
                card.ability.extra.every + 1,
                localize { type = 'variable', key = (card.ability.extra.loyalty_remaining == 0 and 'loyalty_active' or 'loyalty_inactive'), vars = { card.ability.extra.loyalty_remaining } }
            }
        }
    end,```
rocky plaza
sharp arch
#
        
        info_queue[#info_queue + 1] = { key = 'hc_longass_comment', set = 'Other' }
        return { vars = { card.ability.extra.increase, card.ability.extra.dollars } }
    end,```
rocky plaza
#

the only thing that i can think of that could possibly be messing with this is a syntax issue

rocky plaza
sharp arch
rocky plaza
#

idk but that seems like a no

#

send the loc file here and i can take a look

#

its not crashing which means its finding the entry

sharp arch
rocky plaza
#

and im also assuming theres no unicode shenanigans going on

#

Oh

#

i found the issue

sharp arch
#

lemme guess, i fucked spelling

#

that tends to be an issue with my code

rocky plaza
#

nope

#

u forgot to close a bracket

sharp arch
#

OH MY GOD-

rocky plaza
sharp arch
#

i hate my inabillity to type\

rocky plaza
#

🧠

rocky plaza
sharp arch
#

THHEY WORK AGAIN

rocky plaza
#

🔥

#

dont worry about feeling dumb because you made a syntax error

#

ive had to help multiple people here catch sneaky syntax stuff that was causing bugs

sharp arch
#

thanks

clear ocean
#

we always make em

vale grove
#
    update = function(self, card, dt)
        if card.ability.extra.active == true then
            G.SETTINGS.GAMESPEED = 8
        end
    end,
    remove_from_deck = function(self, card, from_debuff)
        card.ability.extra.active = false
        G.SETTINGS.GAMESPEED = 4
    end,
    add_to_deck = function(self, card, from_debuff)
        card.ability.extra.active = true
    end

i have this function which works but when you win a game go to main menu and boot up a new run it doesnt change the gamespeed how do i fix that?\

vale grove