#💻・modding-dev
1 messages · Page 339 of 1
losing my mind over this code. it's almost functional but i can't for the life of me seem to get the contexts right for this effect to trigger at any time but when the cards are brought up to the scoring area rather than on trigger, though the message itself does happen after every trigger
i might be missing something obvious
Change the contexts to context.before
And iterate over the played hand instead.
so only context.before?
Yes.
do you mean for other_card as well
i have
so many questions
what do you mean.ability.consumeable.max_highlighted????
isnt max_highlighted in the config table?? 😭
HELLO?????
IS THIS NECESSARY 😭
WHY CANT YOU JUST USE THE SAME
dsaldmsal
its easy to fix but oh my freaking god is it so weird
i tried modifying marble joker code to try and add a card but it isn't working,, ,
still cant find where the seal code is
Just use the code you did with the shaders and replace it with the code that puts a seal on something.
G.shared_seals[self.seal].role.draw_major = self
G.shared_seals[self.seal]:draw_shader('dissolve', nil, nil, nil, self.children.center)
if self.seal == 'Gold' then G.shared_seals[self.seal]:draw_shader('voucher', nil, self.ARGS.send_to_shader, nil, self.children.center) end
``` Just replace `self.seal` with `"Red"` for example.
You probably need to be using the event manager
All of the score calculation code gets runs instantly when play is pressed. Any animations that happen are a result of events that were queued up during the calculation
not terribly familiar with the event manager so ig that'll be a useful exercise
been trying to keep stuff as clean as possible
alas
like this?
any suggestions on how to start with that?
G.E_MANAGER:add_event(Event({
func = function() {
Do stuff
return true
}
}))
There are other parameters and stuff, you can look into it here
https://github.com/Steamodded/smods/wiki/Guide-‐-Event-Manager
But this is the purest form of event
Are you a protogen or smth else?
r needs to be uppercase.
Also you can remove the last line unless its gold seal.
thank you!
awesome, thx
it does move when you hover over it though, can i stop it from doing that?
and also this
what is this
You seem to have placed the shader wrong.
Replace that with lua G.shared_seals[self.seal].role.draw_major = self G.shared_seals[self.seal]:draw_shader('dissolve', nil, nil, nil, self.children.center) if self.seal == 'Gold' then G.shared_seals[self.seal]:draw_shader('voucher', nil, self.ARGS.send_to_shader, nil, self.children.center) end and replace self.seal with 'Gold'
does it need the if then?
You can remove the if
alright
nice, it works
is there any way of making it stop moving when you hover over the deck?
im trying to have a card similar to hangman where it destroys two cards and takes the difference of them for a new card added to deck. It isnt working not sure why
EX: 7 and 4 makes a 3
base_ranks is defined as ranks in game
I feel like I've seen exactly this
Ortalab
Not exactly the same
Bit very similar
This averages doesn't take the difference
Wait nvm
That's something else?
I tho this might just choose one if the ranks at random
ill lokk
the joker inserts one card into the deck... expected is 51/51, but it registers that i inserted 2 cards in the deck. how do i make the number accurately reflect how many cards are in the deck?
doesn't create_playing_card do emplacing and materializing for you?
oh wait that fixed it ay thank you
is it possible to find the values in center_table.extra and modify them? i looked through the lovely dumps and couldnt find anything then eval'd in game and similarly no results
I mean there's a couple mods with legendaries that double all other jokers values
I think that's what you mean?
i want a joker that adds a 20% to shop items, im aware there is a discount var but that gets SET to a new value when buying a discount voucher
i just want to use add_to_deck and remove_from_deck to change those vars
I don't think that's how vouchers usually do things
G.GAME.disccount.blabla =
There's a very high chance I have no clue what I'm talking about
what's center_table here
so G.GAME.discount = G.discount... + card.ability.extra.discount ?
Is there a meaningful differnece between G.playing_cards and G.deck.cards
when you draw a card then that card is no longer in G.deck.cards
G.playing_cards still includes it
ahhh
does buying_card factor in buying a booster?
No, I don't think, but there is context.open_booster
nah i just wondered if i need to use both contexts or just buying_card
whats the thingy for juice_up card?
card:juice_up()?
ty i could not find that on the wiki and i forgot the syntax
my game does NOT like this, it crashes on this for some reason]
send crashh logg
oh yeah that worked ty!
but also you don't really need to juice up the card yourself, the message already does
Why do regular cards work, but jokers don't?
anyone know why this is working when i try running balatro with the lovely folder
it works when i delete the folder but it just adds it back the next time
Ah, you're dutch?
yup
Are any of the dump files currently opened when you launch it?
nope
Why do regular cards work, but jokers don't?
This is what astral does:
I don't know the details of it, but I suspect your permissions don't allow the dump to be overwritten, or deleted by the code itself, which is why you need to do it manually
also this doesnt work
idunno, it just crashes when i start the game
dont working
then post the crash log
please give as much info as you can
context.cardarea can't be G.jokers and G.play at the same time.
the error here is pretty clear! You've not closed a bracket. Try to follow the color of each bracket and see if there's a counterpart
How do you make the cards work and the jokers work?
Does anyone happen to know if it's possible to change the rotation axis of a soul sprite when creating a custom one with SMODS.DrawStep?
can you screenshot the whole SMODS.Back, i think you're missing something beforehand
----- EDITION DECK -----
SMODS.Back{
atlas = "decks",
name = "Limited Edition Deck",
key = "editiondeck",
pos = {x = 0, y = 0},
loc_txt = {
name = "Limited edition Deck",
text ={
"Start run with",
"{C:attention}13 {}random edition cards in deck"
},
},
apply = function()
G.E_MANAGER:add_event(Event({
func = function()
local cards = {}
for i, card in ipairs(G.playing_cards) do
cards[#cards+1] = card
end
for i = 1, 26 do
local playing_card_object, index = pseudorandom_element(cards, pseudoseed("extradecks_editiondeck"))
local chosen = G.playing_cards[index]
local new_enhancement = SMODS.poll_edition({guaranteed = true, key = 'extradecks_editiondeck'})
chosen:set_edition (poll_edition("extradecks_editiondeck", nil, true, true), true, true)
end
table.remove(cards, index)
end
return true
end
}))
end
}
----- MOD CODE END -----
yeah i didnt get those for some reason
You don't have the lua extension.
So
anyone possibly see why the xchips aint doing anything
i think my context is wrong
this is for an edition that adds 2x chips
wdym
editon?
Whole code for context
Try changing it to x_chips
wanted to start real simple tbh
mmm okay one sec
Also do card = card not card = self
self is the edition.
Also do self.config.xchips
Replace card.ability.xchips with self.config.xchips
good catch
still
new to this shit lmao 💀
let me chec
THAT WORKED THANKS
also just pinging the hivemind
the X1 in big red letters, whats the color code for that for bluew?
is there even one?
like for XCHIPS
{X:chips,C:white}
poll doesnt work anymore 😔
----- EDITION DECK -----
SMODS.Back{
atlas = "decks",
name = "Limited Edition Deck",
key = "editiondeck",
pos = {x = 0, y = 0},
loc_txt = {
name = "Limited edition Deck",
text ={
"Start run with",
"{C:attention}13 {}random edition cards in deck"
},
},
apply = function()
G.E_MANAGER:add_event(Event({
func = function()
local cards = {}
for i, card in ipairs(G.playing_cards) do
cards[#cards+1] = card
end
for i = 1, 26 do
local playing_card_object, index = pseudorandom_element(cards, pseudoseed("extradecks_editiondeck"))
local chosen = G.playing_cards[index]
local new_edition = SMODS.poll_editions({guaranteed = true, key = 'extradecks_editiondeck'})
chosen:set_edition (poll_editions("extradecks_editiondeck", nil, true, true), true, true)
end
table.remove(cards, index)
return true
end
}))
end
}
----- MOD CODE END -----
isnt it poll_edition
It's poll_edition not poll_editions
i tried that but it still doesnt work
peak
ok but the error should be different
Thanks, it works.
It's not SMODS.poll_edition its just poll_edition
oh i didnt see the part before the set_edition
why do you poll edition twice
does anyone know the info_queue for consumable types?
So, I made this joker that stores a playing card.
It works fine in an uninterrupted run but if I have a card stored, go back to the main menu and then continue the run, the game crashes when I hover over the Joker.
Do you think this can be fixed?
Store it in a card area so it gets saved.
does anyone know how i can change the order of my decks? i don't want them all to just be at the end of the vanilla decks
How do I do that, exactly?
No.
i have a striped deck that's pretty much checkered deck but with clubs and diamonds and i'd like to put it after checkered deck
oh ok
do you know how i can make a deck that gives a random joker?
just 1 random joker from all the jokers
at the start
Look at cryptids legendary deck.
im trying to make the things be loaded into a "items" folder but they aint being loaded, how do i make them be loaded?
when i open the game they dont show up
SMODS.load_file("path")()
tyty!
So, how do I make a cardarea for that?
Man
Anyone know where burn_color is?
i think i somehow corrupted it when trying to make a shader
and now the base game wont even compile
I would look at how Balatro Goes Kino does the abduction mechanic
does this work as a list i can call somewhere in the code later?
I don't think this is what you'd use for that
I think you'd just make a normal table of things that count as ore, especially if they're all enhancements
this would try to add them as an entirely different smods object
i think
so just Ore = {'(keys)'}?
oooh, tyty
is there a context/way of changing number of drawn cards?
i don't find where serpent's code is
This is in G.FUNCS.draw_from_deck_to_hand
i did a lovely patch for that
just before the serpent part
this ?
local hand_space = e
if not hand_space then
local limit = G.hand.config.card_limit - #G.hand.cards
local n = 0
while n < #G.deck.cards do
local card = G.deck.cards[#G.deck.cards-n]
limit = limit - 1 + (not card.debuff and card.edition and card.edition.card_limit or 0)
if limit < 0 then break end
n = n + 1
end
hand_space = n
end```
ok i may be stupid, will try smth and come back
im really close to figuring it out! the only thing going wrong is the card is being added anytime
if i play a card it adds like 20 enhanced cards, if i win a blind it adds 7 i think, if i select blind i get like 4
im not sure why but its something atleast
its creating only the cards of the list and have it showing up then going to deck
you're probably not checking context properly
ooooh yeah i forgot to check for context at alll LOL
I GOT IT!
its really easy tbh
just had to change like 3 lines in the marble joker code
want me to send how to do it?
that would be cool thank you
you welcome! 1 sec
still attempting to copy a random joker (as in blueprint effect copy), this time it crashes at a certain line in my program, though idk why
1- love trans rights thing
It's blueprint_compat not blueprint.compat
godang
hell ye
when will this be actually documented well 😭
there is no such thing as good documentation
i was gonna ask to show the part that says the number of the line but nvm someone already found the mistake lol
when someone has the time to document the vanilla game lol
SMODS.blueprint_effect should be there at some point
i feel like the line is wrong (dont mind the text i havent changed it yet)
even pvz1 was ducemnted better than this and that game is 16 years old (actually turned yesterday!)
pseudorandom_element doesn't take a string as far as i remember
you need to do pseudoseed("trans_rights")
pseudoseed("trans_rights") -> 0.378462983290644 or something, pseudorandom_element needs that number
seeds have to be numbers so the game uses pseudoseed to convert those strings. pseudorandom does it automatically but that one does not
ok it copies now!!
though i still need to find a way to get it to actually
activate
I got this, but it also triggers when scoring hand does score (bit ugly since it makes cards get drawn despite round being technically finished, before they're sent back to the deck pile, but still functionnal), is the probleme within the contexts i use?
if context.cardarea == G.jokers
and context.after
and (next(context.poker_hands['Straight']) or next(context.poker_hands['Straight Flush'])) then
card_eval_status_text(context.blueprint or card, 'extra', nil, nil, nil, {message = "ACAB!", colour = G.C.CHIPS})
if G.GAME.blind.name == 'The Serpent' then
for i=1, card.ability.extra.draw do
draw_card(G.deck,G.hand, i*100/(card.ability.extra.draw), 'up', true)
end
else
local hand_space = e or math.min(#G.deck.cards, G.hand.config.card_limit - #G.hand.cards)
for i=1, hand_space + card.ability.extra.draw do
draw_card(G.deck,G.hand, i*100/(hand_space+card.ability.extra.draw), 'up', true)
end
end
end```
hello, again, how does one iterate through the whole deck?
for _, v in ipairs(G.deck.cards) do
ty
what's the effect?
is the difference whether it includes cards which are currently not in deck because they are drawn to hand?
drawing 3 more cards than hand size when played hand contains a straight
yes
G.playing_cards is every card, G.deck.cards are cards currently sitting in the deck.
just a matter of how you interpret what they were asking for then isn't it. does make more sense though than my intuitive intepretation of what they meant
you dont need to check both straight and straight flush because a SF contains a straight
but also I don't understand what the issue is, can you elaborate?
the deck is debatable but the whole deck is not.
it didn't when i just used the 'Straight', thats why i added manuall
the issue is, if i play a straight on the hand that makes the scoring go over the chips required
i draw cards before the end
like, it draws, then put them back in pile
oh i thought you were saying those were separate issues
it executes before the original game draw
that's why i do a lovely patch
i mean, i can keep it as is, it's just ugly for cards to be drawn and put back in pile quickly at the end
and might interact poorly if i intend on doing a joker whose effect would be on drawn cards
this is the patch https://github.com/nh6574/JoyousSpring/blob/58749c3f350bbf101e0167e19bf072008c6119ea/lovely/effects.toml#L6
what does it mean?
what does what mean
i mean, what can/shall i do with it?
I did a similar effect, you can use it as a basis for your own patch
and it would solve your problem
would this work?
im just looking at blueprints' code
thanks !
For what?
i think i now have copied a random joker successfully but i dont know how to make it activate
You have to put a SMODS.blueprint_effect outside of all contexts.
but i just dk how to use it
i havent found another od that uses this effect too to base my code off of😭
do you just want a blueprint clone?
does smod blueprint calculate still break on retriggers
it copies a random joker
how do i make a card with a custom enhancement do something when scored?
You can reference https://github.com/SpectralPack/Cryptid/blob/main/items/misc_joker.lua, search for "oldblueprint"
idk if there are issues with the builtin method
wait i didnt know that was psosible? idk how ot use github really since ive never done it
looking at the docs, isn't it just add a calculate method and use the context (context.main_scoring and context.cardarea == G.play)
god that code is so complicated
how do i make a deck that gives 1 completely random joker at the start of a run?
(and also one that immediately sets all hand levels to 3)
SMODS.add_card{set="Joker"}
does that do a random one?
yes
-# That's still not what it does.
i know but i decided thats what it will do in my mod
doesnt activate :c
because youre returning before it can reach that check at the end
i think i dont understand how the patch works
you need to modify hand_space if you have your joker
(you probably need a check for if the last hand was a straight)
then when should i
probably the copied return should go alongside the blueprint_effect
but i think you need to return blueprint_effect too
this?hand_space = (#G.hand.cards == 0) and 1 or 0
make sure Joker is a local
yes, what that does in my case is set the hand_space to 0 so you don't draw (or 1 if your hand is empty)
so i need to put the blueprint_effect in the Copied return?
also works
lets see
so in my case would be hand_space = card.ability.extra.draw?
thus taking off the fors?
yes but you don't have direct access to card in the patch so you would need to do SMODS.find_card
nah it doesnt do anythn
outside of the smodsjoker then
can i see how you do it
dis is difficult dang
programming
try doing extra = SMODS.blueprint_effect...
i loooove extra table
whats the extra for?
i literally have a system to do a big concatenation of extra tables
same
extra return table
a return table inside a return table if you will
so it does one effect first and then another
aw it still doesnt
chat saturation is a bit high i think
man i wish i could make shaders
Just do it?
hell yeah
ok smart guy how bout you take a crack at it
i grabbed holographic and polychrome from base game, turned holos squares into triangles, and chifted the color scheme of poly to blue purple green
and like
mashed
i hate shaders
them thoehter
I have
yeah
twice
how could i take ownership of aura and wheel of fortune to add iridescent to the mix? like anyway to do that without just completely wiping wheel and aura and starting over?
and second question
how do i change the color of the nameplate lol
bettervanilla
that is
that's defined by your mod metadata
This looks gorgeous! Have you been using the ‘watch shader’ command from debug plus? When I was working on shaders it saved me sooo much time!
Might have to edit the poll_edition function
Hi guys, anyone know of a mod which does progressive unlocks? I am looking for an example of how it’s done
skill issue?
elaborate
Bunco I think?
Only mod I know that has unlocks
I spent like a day or two running into this problem, in order to use a shader you must define the name of your shader at the top of the code with all of the other external variable declarations in the fragment, shader, and then on top of that because the shader runs in the GPU processing engine, you must use one or more variables of the shader itself or will be memory optimized away by the rendering process
☹️
i know some of those words
Patch poll_edition
how lol
Notice how for all of the built-in shaders in the game, they all have an extern variable declaration at the top, and then in the main method it uses the shaders x y or z properties somewhere
lovely patching
I had to solve the same problem, so what I did is I added new consumables that would apply my custom additions and I used it that way.
Or maybe you set the source in in_pool to "wheel_of_fortune" somehow?
Lovely patching can be really difficult to work with because some other mods will also take ownership or alter the base code so it can be extremely difficult to get your patch to actually apply
i actually dont know if i want aura to have iridescent
2x chips is powerful... i was going to make a spectral card that turns all the cards in your hand into stone cards, and then makes one of the iridescent as a way to get em
mesed around some more
like lovely patching is cool yes
perhaps i can combine poll editions and then just
have it have a chance to be iridescent
card.ability.extra.joker doesn't exist?
Maybe one approach you could use would be to disable the spawning of the base wheel of Fortune, and then only spawn your new variant of wheel of Fortune, which has a chance to apply your additions or base editions
like i do a "
x = poll editions
y = iridescent
90% chance to apply x edition, 10% chance to apply y
Why can't you just take_ownership?
i m just looking at other jokers from other mods
i replaced it cuz if it just says 'joker' then it doesnt do anything
That's because its local?
patching poll_edition is just much easier
This might work, I have never had to take ownership or try to alter a built-in card so this could work
like you just do
_options[#_options+1] = "yourkey"
probably after the if so it doesnt affect other modded objects
stild doesnt do anythng ;c
Are you copying jokers that do things in context.setting_blind?
im making a joker copy the ability of a random joker when blind is selected
@daring fern like i do a
pollresults = pollEditions()
iri = freese.editions.iridescent()
then choose pollresults 90% of the time for wheel
so 90% of the time it would give poly holo or foil
10% iridescent
It's not going to do anything unless the joker it's copying does something in context.setting_blind with your current code.
etc
No, patching it would be better in every way.
how do i do a lovely patch in my lua file?
yeah i figured, but what should i do then?
like
just a bit unfamiliar with it thats all
i would obvs want standard packs to be able to rarely come with iridescent as well
like what would i do here do add iridescent to my standard packs etc?
It should do that naturally if its in the pool.
it's a separate .toml file
look at the lovely github for info
you can also copy the structure of the smods patches
okay word
but if i wanted to specifically add it to the list like uop here @daring fern
my custom card area only had 1 button, for jokers its sell and for consums its use, how can i add avialiabitly for a second button?
What do you mean?
hook card:highlight and modify self.children.use_button
so i reworked standard packs to have negative playing cards right
its shown here
that local items table has the weights of the editions
how can i add my custom edition to the table here
here
IT WORKS
isn't it e_modprefix_iridescent
yeah
well if you copy one ability, then next round its incompattible with every joker then it keeps the first ability
oh i think i fixed it
how would one do that 👉 👈
why is it showing nil?
What type of object is this?
enhancement
Use self.config not card.ability
is there a way to change the jokers art pos mid game?
god ill have to change all the enhancements😭
card.children.center:set_sprite_pos iirc
but it is working for evey other but this one
card.children.center:set_sprite_pos({x = number, y = number})
oh goodness
oh wait nvm it was just bugged, restarted and now it works lol
That's actually very straightforward
card.children.center.sprite_pos
It sounds like the plan might be to f lip the sprites of 2 okers
Also you would replace center with floating_sprite if you want to change the soul_pos
i dont need to change soul pos
hey fellas i renamed my mod just now and now its like. not getting detected
i changed everything
complete refactor
json file and everything
any shots in the dark why balatro isnt even recognizing it now
Did you change your prefix?
Screenshot your mod's folder
did you figure this out? If not, I can show you
Did you change everything in your code to match that?
ive only used my prefix once, and my mod is TINY rn
this all we got
Show your JSON?
SMODS version?
didnt touch it
got it working
woa
Yes, but what version?
i mean
this
but like i said
i didnt touch it
mod worked
i closed balatro
renamed everything
open balatro
nothing
This cat will not stop trying to lay down right on my keyboard
That's literally what a joker I made did about 7 hours ago.
ok
Oh my god what does Hollow knight do?!
Also @azure stone so they know about it too
can someone describe what the vid is about, for some reason i cant watch on phone 😭
nothing yet
this is just the art so far
but whatever it is, good job :3
it cycles through the joker art
he has a joker card that seems to change once a second
ahhhh icic
wow, good recommendation on Bunco! These joker concepts are great and the unlock is exactly what I want to do
i can share the shitty code if yall want it
Maybe the return the that puts the close bracket on a new line?
Nvm that'd be stupid prolly
I just dk how Jason formatting handles whitespace
this is fucking stupid the game is just like "we SEE the json file we just dont care"
what
its frover
did you change the mod id
have you tried changing it
ill try it
idk i use loc files for that
im killing balatro with my mind
that
that was it
oh, you can use loc files for this?
-# im gonna check joyousspring once again
yeah it probably saves the id in your save file
i did!
:3
you need this if you want it to look good
or it will have the joker description background
How may I 'undiscover' a joker? I am trying to test my unlock condition and the joker just is staying unlocked 😄
I set it to unlocked = false, discovered = false but it still persists
why did it genuinely never cross my mind that you should be able to use loc file for mod description
😭
Edit the meta.jkr file.
thanks N', im always in ur debt now 🥀
Ohhh thanks! Where is that file?
%APPDATA%/Balatro/profilenumber
Did you use your mod prefix when calling it?
oh wow my message was sent very late
how are you playing the sound
You need mod prefix.
have you appended your mod prefix to the sound ye- yeah theres your problem
kinda like this
NEVER forget your mod prefix
where should i be putting it lol
what is the context for holding in hand?
depends on what holding in hand action you want
Yes.
giving money
I do not specify the path to the sounds I load. I think it just assumes they are in assets/sounds
when playing or at end of round or both?
when playing!
context.individual and context.cardarea == G.hand
tyty!
oh and not context.end_of_round i think
So try putting them in that path. Also when playing it, you'll find the play command needs to include your mod prefix
SMODS.Sound({key = "kirby_poyo", path = "kirby-poyo-time-d.mp3",atlas_table = "ASSET_ATLAS"})
Then I play the sound with play_sound("Fox_kirby_poyo", 1.05)
wh
what is asset atlas
why is there an atlas table specified
greui6y1324534fghkuyerterhtrwerj768ghe34jy45ghyuiret6gr5e4ewhjrfgergferfghrtyrt
Why does your sound have an atlas?
how you do atlas a sound
oops
How does one edit a .jkr file? To me they appear to be gibberish
shouldn't it be ./iridescent.ogg
No?
no i'm not sure though
atlas??
wha
IDK guys, maybe that is not needed but it does work
It is guaranteed not needed.
its because i didnt put a mod prefix
which is CRAZY work to me
but
now its going
It's not even on the wiki page.
the mod prefix thing drove me crazy!
perhaps ill just eat my graphics driver with a fork
do not question react this man for he speaks the truth
is this how we want to play the sound chat
this man is RED QUESTION MARK REACTING ME
Remove the prefix when defining it.
you have to use the prefix to make sure that if other mods have a similarly named file, that it can play the right one. But it felt unintuitive to me for sure
defining it on the SMODS.sound?
Yes.
How would one go about making a pop-up menu? Uwu I got the button code almost working, I just need to actually. Yknow. Give it functionality.
Thanks guys, I love this
Now I have working unlocks
okay so
does this look correct
because it is STILL erroring out
You should not have your prefix when defining anything.
I think I know how to do it but. I want to make sure before I do it, so I don't spend hours trying to fix it
You mean like pointer?
play a card hand?
🤔
Yes but like! A full menu that only appears when you click a button
definitely try checking how Run Info/Options and such create their menu, thats how i made my skill tree ui
I'm trying to patch Buffoon packs so that the first card is forced to be a specific card during an event, but none of the print()s are working 💀
Ty!! I'll do that then
ive been looking back and forth at it and i rly dont understand it; i dont understand if I must have a separate toml file in order to do what i do? or if i can do it directly in my smods joker? im really confused, been trying different (ugly) solutions but nothing seemed to work
sorry for the disturbance again 😔
you need a different toml file for a lovely patch
does it mean i have no other solution than the lovely patch? and is there a doc for it? i don't understand how it's structured
and what it can use or not from the smods joker' file
the problem with doing it in your joker is that theres no context for "after hand played but if you didnt win" afaik. you can make one but thats another solution
i tried using mister bones' chip checking but it applies after... so no change
you can maybe use hand_drawn
is it a context?
yes
ok trying it
its not working 😕
need more info than that
it isnt giving the dollars when held
its supposed to give the mult or dollars or chips when held while the scoring things are being scored
😭
i can gather that
but it isnt giving anything at all
i mean i need the code and the exact effect
ooh okok
i dont even know if this is a joker or what
oh
hmm never did an enhancement, it might use main_scoring instead
main_scoring is for playing the card
i thought i had to add that?
no, its for context.cardarea
read my original comment again
context.cardarea == G.hand
here
crashes on card selecting apparently (took off the context.after)
they meant context.individual and context.cardarea == G.hand and not context.end_of_round
oh thought it was the last one
It should be "When your hand card is a Grass having card hand"
hand_drawn doesnt have poker_hands, you need to check on another context and set a flag
set a flag?
@quartz ravine
ahh so i set a bool true in context after, and on context draw i do my draw stuff
yes
ok thanks !
I love your reaction, and that looks and sounds great!!!
and shiney. I would love a trading card that looks that good
wait
damm
not working still
new to this, but is there a variable similar to v:set_seal but for cards? I'm making a challenge where all cards get replaced with Ace of Clubs but not sure what i can use to do that
Try returning just x_chips
still nothing
check out SMODS.change_base https://github.com/Steamodded/smods/wiki/Utility
lazy bump in case anyone has a quick tip for me here
return repetitions = 1 and then extra = { repetitions = 1, message = "mess" }
awesome, thanks
Don't apply to float.
i think this only works on dev smods not the release btw
no idea
btw does anyone know how i can change the color of this label
in the json
i LITERALLY just mashed the holographic and polychrome shaders together, then changed the holographic code from triangles to diamonds, and redid the hue on poly
just copy the code lol
basically tho
oh okay, but that's fine for now, i'm always using the main branch
i remember reading about extra yesterday, do you also know if the extra table can contain another extra and so on?
the wiki just shows this (advanced)
this is the ONLY thing that does anything
also fellas
this is my iridescent code
its MASSIVE
yes
like this shader took me HOURS
(i have a system that is just a massive chain of extra tables)
do you know what else is massive
in js or jd?
joyous, cards can transfer effects to other cards
we started here bro
Hope you backed up that version, it has its uses
works perfectly now, thanks !
cavendish looks fucking mental
That looks sick, freese
hey ice!
how op is "Hex" but without the destroy part 🤔
Better wheel of fortune in every way.
literally just wheel 2
true
Except spectral pool instead of tarot pool is important
maybe making it so Hex only destroys one random joker is more reasonable as a buff?
You mean a max of one?
I will say, I personally don't think the vanilla editions on jokers are that strong. I prefer a polychrome playing card to a polychrome joker for sure, and same kinda goes for all editions but negative
They do unless it's coming from the joker it is on (like a red seal)
huh
who would put a red seal on a joker thats ridiculous
and where does it end? first you put them on jokers and then what? everything else?
yeah, like... seals on everything...
im considering just removing the downside completely, and make the skill cost like 80 skill points or something
a downside can be an upside with enough jokers that do something on destroy
If you don't want it to be a wheel-but-better, how about destroy one random joker a d add Polychrome to the rest
what if it stripped the editions off of all jokers then applies polychrome
no jokers lost
but
you might lose your foil holo or neg
-# why would you mourn over losing foil and holo, lets be honest
@daring fern im about to start shrimp reacting you
i would 🥀
my xchips become more worthless without foil
Does anyone ever use Hex outside of the ghost deck free one? The randomness is too big a risk for me to ever use it
hey fellas how do you get the default ace on the loading screen to have an edition or put stuff on it btw
is there like
i never used it
an easy way
eternal jokers
the balatro ace?
Fair
hmm, so i have 2 options here:
- destroys one random joker, turns all jokers polychrome (ice suggested)
- strips editions from all jokers that dont have polychrome, then turn a random joker into polychrome 🤔
early spectral pack ill usually sell weaker jokers
That caven'd the dish until it
look at talisman for example, they add a coin to it
but its gotta be an ante one or two
the second option would make you want to opt for a full polychrome joker build, which is not as good as it may sound
[[patches]]
[patches.pattern]
target = "game.lua"
pattern = "replace_card.states.visible = false"
position = "before"
payload = "replace_card:set_edition('editionkey', true, true)"
match_indent = true
overwrite = false
...what if editions scaled?
very slowly, but
oh nice
i hope @daring fern is doing this with a bot, otherwise 
they arent
how would i set the level of each poker hand to 3 at the start of a run with my custom deck?
No?
like, i want the poker hands to start at lvl 3 when you start a run with this deck
this is the most expensive skill in the tarot section, and i think the reason is pretty clearly seen here
you can copy effect of black hole and increase it by 3
its that a trails in the sky reference????
sound bad like maximum 5 joker that 90% common, worse than riff-raff
How do I change rank of a card with a sticker
perhaps, whoever thought of that name must be insanely cool 🤔
bepis you should play trails its one of the inspirations for honkai sr
you wont believe how many people gamble with the judgement
oh, actually?
Hi chat :3
i should probably search it later then
hi carrot
hi 🥕
yeah they said it in an interview when it came out, the combat system is very similar
but, is there not just a way to set the level manually to 3 for each poker hand?
other than it being very different
🤔 i can actually see a bit of inspiration from here, just a bit
I'm trying to get Pikmin working. Why did I decide to do this for my first foray back into modding...
im so excited for the remake
dude thinks hes dr ratio 🥀🪫
-# thats not a girl right
i love olivier
lly
i will put him as my pfp
gun
No dont
it kinda looks like a book
i thought it was a book too
if you already have several jokers, then judgment gets worse, unless of course jokers are useless, I would see it create at least uncommon or with editions to at least pay off.
I thought it was a book three
actually, i had a thought.
what is the structure of an edition when it's instanced?
like, say i have a polychrome joker. can i access the edition and increase its xmult. is that possible
Tbf though, a lot of common modded Jokers are broken
i thought about it being able to create more uncommons at one point too, but some common jokers are pretty strong, so its not exactly a good design choice
That too
and having a bad edition on created jokers might even be a downside, since you cant turn them into negative with ecto
someone quickly run me through lovelypatching poll_editions again?
or does someone have an example of them using it?
It's poll_edition
:#
yeah but like what after lol
is this deck even used?
No.
old plasma deck
Balls
No.
wouldn't even need to change the localisation as it already sources the internal variable by default
foil deck? (i wrong maybe)
No?
Sup
[[patches]]
[patches.pattern]
target = '=[SMODS _ "src/overrides.lua"]'
pattern = '''if _key == "wheel_of_fortune" or _key == "aura" then -- set base game edition polling'''
position = 'after'
match_indent = true
payload = '''
_options[#_options+1] = "e_modprefix_edition"
'''
That is red deck?
Where is like. The code for the deck menu in a run stored
Which is red deck with foil shader?
fair enough
I'm aware.
old Braided Deck lock nice
just a question do you always talk with punctuation like that?
(when my friends do that theyre annoyed or smth)
no? maybe
okay phew
some people do talk like that, i think its cool but im too lazy to even bother chatting like that
Also @quartz ravine turns out you did everything right. I just didnt know that I had to save 😭😭😭
I'm too lazy to go to a translator or think about how to do it correctly since my native language is not English
.-=,~'!"()£%&^%\$`¬|;:[]{}#/*?
awesome thank you
but does anyone know how i can set the hand level to smth?
Sharpness 4
Unbreaking 3
i would also need to change the localization for wheel and aura i guess huh
actually
eh
someone should add enchants to jokers
giving my burnt joker fire aspect
anyone?
level_up_hand
which hand does that level up?
it's a function, the one you give it
this would inject it as equal weight thou.... oh we define weight in the editions RIGHT
SICK
OKAY NICE
how does one change the localization of a vanilla object without taking ownership though btw?
for k, v in pairs(G.GAME.hands) do
level_up_hand(self, k, true, 3)
end?
i think you can just add those to your localization file
and it will replace them
Where would they be stored again?
Sorry, I'm looking and can't find them
like the options menu in a run?
Yes, but like. Okay, Just give me a sec to explain exactly what i want to do. It might not be possible
i think by the point my pc loads the function N' already answered your question 😭
i make a lot of overlay menus for my mod
I wanna create a card area that stores cards of a specific suit, but can only be accessed after pressing a specific button on a card
Oki! I'll look into that then
G.FUNCS.overlay_menu takes in a uibox
i don't think i understand, do i need to edit this?
can be anything
Oki! Thank you
You would need a to copy all the cards to another cardarea and then show them in overlay_menu, I do this with the graveyard and the banish zone in my mod
tried this but it doesnt work
(this is because exiting destroys the cardarea)
Ty so much!! I appreciate it
@daring heron
yes
wheres all the weights of the base game editions stored
or does anyone know them off the top of their head?
im trying to make iridescent rarer than neg just
so this
not knowing where they are
G.P_CENTERS[key].weight
what lua file?
i think it should be as rare as polychrome, negative is definitely better than irid imo 🤔
game.lua
thankya
or maybe a bit rarer than polychrome, since chips are abundant
so xchips is overall more powerful than xmult
irid is 2x chips
or maybe not
yeah, but negative is +1 joker slot
xchips is unfortunantly just as strong as xmult lol
eh i might make it just as rare as neg
its the strongest scoring edition
xchips might be stronger as an edition
yeah multiplying chips in played hand is like the only xchip difference that makes it better
i dont really think x2 chips is stronger than +1 joker slot personally, since it allows you to get more jokers for your build
yeah they might get added by smods somewhere else
i agree with this
true true
i meant for card enhancments tho
like a glass iridescent red seal
good god
ill let irid hit jokers by wheel, prob just as frequently as poly
aura will be a rare rare hit, i want aura hitting irid go "oh shit fr"
but neg jokers are much stronger than irid jokers yeah
im adding a specral card as well
Graveyard: Turns your entire hand into stone cards then applies Iridescent to a random Joker, or Playing card
80% chance it hits a joker 20% chance it hits a playing card
neg playing cards can be too, but there are not many mods that expand on neg playing cards anyways lol
oh
the downside of having more cards in your deck is that you might not draw your best card
and negative playing cards dont have that downside at all, since drawing that allows you to draw another one immediately
so i nerfed negative cards in a way
Mime cannot retrigger negative gold cards or steel cards
Baron cannot target Negative Kings.
Negative steels and golds will still trigger one time right but they cant be retriggered in hand
so this encourages you to use negs to draw more powerfull hands
instead of hoarding them as steel kings for baron lol
i think this is the best way to balance them
just because otherwise negative steel red seal kings hits naninf faster than my uncle finding a new wife after a divorce
(fast)
it actually doesnt do as much as you think, since the fact that neg steel cards still work even when its just once still makes them insanely powerful
you only managed to nerf them, but neg playing cards still have no downsides despite that since, like i said before - the only problem with taking more cards into your deck is that you reduce the odds of drawing your best possible hand, neg cards dont have that downside at all
the downside is your missing out on poly or irid cards
sure you would always draw your deck
but negative glass isnt gonna be as strong as polyglass or irid glass eventually
i think i would never use negative cards to score, honestly
they are just there for the hand effects
thats what im scared about
i want them to be good for hand effects but i want people to also use them for scoring
which is why im nerfing mime and baron on them only
but i dont think thats truly enough