#💻・modding-dev
1 messages · Page 452 of 1
huh
idk im lost i dont think i defined my atlases anywhere
idk
unless its what i did in my jokers
Made a Joker sprite based on an album cover. I feel like it needs some kind of a border to fit with the art style but I'm not sure what.
"mr poly bridge how does one localize"
"DGR oregon trail"
nice
trying to make this enhancement, but idk how it would work. it gives +30 chips if applied to hearts or diamonds but x3 chips to spades or clubs, how would i make this work?
what about wild just a question
like SMODS.Atlas?
yeah how do i make like a file with them in like the structure
tell me exactly what they sayin
how i did mine
yeah but you arent using art
i want to tho
do you have your art?
no not rn
make the art first
just using blank white as a step in
then keep using default atlas
oh
how do i do that
anyway does anyone know how this code would go about
default atlas is jsut simply commenting out the atlas part
wait so SMODS.Atlas { key = "joker", path = "jokers.png", px = 71, py = 95, }
that is fine
yes
so why is balatro telling me no
remove the comma from py = 95,
also put singles on the key and path like 'joker'
not "joker"
no thats making a new atlas
overriding joker atlas
huh
dont do that unil you have art
im using a blank white image rn so there is something there
atlas is how you define where the art is
do you have atlas folder setup?
oh i have that
images are in place?
yeah
whats ur mod prefix
but balatro says this
oh no path
prefix is mm
none of those two things change anything btw
what is your current atlas rn
wym
like this
first update steamodded, latest it 0614a
DO SINGLES NOT DOUBLE QUOTATIONS
im confused
'joker' not "joker"
This doesn't matter, they're equivalent
sorry for the caps
you did something else wrong then
where are you defining your atlas
main.lua ....
in ur .json is main file = main.lua
it is
yeah
ok
wait define it wym
mine looks like this
why parentheses
thats how it works
like regular
so the thing from before
its () with a table inside
this is what mine looks like
lua lets you skip the parenthesis if the first parameter to the function is only one table
again, equivalent code
oh fr?
krada take a ss of the code
thanks
do u have the 1x and 2x
yeah
hm
are you sure they are both called jokers.png
yep
and make sure they're actual PNGs
yep
u could try making the double quotes into singles? idk if it matters tho
send me the x1 version
And you saved the file
disregard this idk what im talking about
wait is the 2nd png double size?
yep
ok then uhhh
yeah
what the flip
Did you save the main.lua file, and if so, what is the crash again
send the whole code if there is any
crash
ill save again just incase then send the crash
press r to reload
while in crash screne
the bottom part almost never helps
the top part is the important part
hm
Can you just send your entire code
yeah just send the entire code
with lines included
for the atlas
your main.lua file
for the entiere main.lua
whya re you loading main.json
the entire codes only 16 long
idk i thought i had to
nah you dont
oh ok
@drowsy heath heres something advanced, can you
go into your mods folder
go into lovely
go into dump
and check teh file...
src/game_object.lua
and show us linea round 29
how to check if cards in hand are steel?
And you don't have any other SMODS.Atlas uses in any of those other files right
SMODS.has_enhancement
won't find it there, lovely dump is for game code, game_object.lua is smods code
oh ur right
shit mb
wiat thtas means i can check it for him
oki
nah
No, the lovely dump is for everything that gets patched.
Sure
Just to make sure can you temporarily remove all the load_file calls
And if it continues to crash then update SMODS
okay
yeah its probably update smods
it didnt crash when i removed them
so it's likely what I said then, some other file has a random SMODS.Atlas call that is wrong
@daring fern no one is realistically gonna patch that file
but yes, you are correct
i figured it out
exactly

my deck had an atlas
we will be killing you
It has been patched for me.
also i see you have a deck creator mod
yeah because you made balatro
how you see that
in your crash logs it tells me every mod you have installed
oh yeah aha
its to test if the cards work easily
instead of debug and remembering keybinds
just use debugplus?
bruh
IM LAZY LET IT BE
just press 3 while hovering over a card in collection
to spawn it in
hold tab to open debug menu
gives you a full lsit of everything
thats too much already
my fellow nubby word
what
hello friends. I'm trying to make a deck that starts with lucky 7s. currently the whole deck is lucky. what am i doing wrong
if { G.playing_cards[i] == 7 } then
G.playing_cards[i]:set_ability(G.P_CENTERS.m_lucky)
end
end```
@daring fern mr poly bridge i havent learned decks yet youd know this
your condition in the if statement is always a truthy value cus it's a table
mr poly bridge gotta up they game
but even if you removed the {} it still wouldn't do what you want
Because I have two atlases (1x and 2x), what do I put under Atlas for any given joker
they're the same atlas, one is just bigger, you'd just put whatever key you gave to your atlas
for k, v in pairs(G.playing_cards) do
SMODS.change_base(v, nil, "7")
v:set_ability(G.P_CENTERS.m_lucky)
end
ratmilk now is it all like done what else do i need to be doing
localization is what im doing rn
Oh, so I need to name the PNGs the same thing?
i tried to understand it but idk what im doing
yes
ok
here one sec
huh. thanks for that. im kinda just stumbling through this.
basically its a replacement for loc_txt
so its easier to edit text
and automatically translate
no thats the key saying you are defining jokers
are you sure because that doesnt look like that's a thing (sorry if im being dumb)
eh
where i have pwn_jx1dx1 make it <modprefix>_<jokername>
so how does it know which one im trying to do it for
above this message
yeah see
other people (like me) can contribute localizations to your mod to just.. add, and itll work
so the loc_txt on my jokers i just get rid of it
as the localisation is doing that or like leave it
@hidden sable
It is.
ok sorry 🥹
oh I see that changes them all to 7s. how about a standard deck of 52 cards with just the 4 7s lucky. is there a function that will return the rank of the card so i can make it lucky?
i sitll dk what im supposed to do here do i remove the origional loc_txt or leave it after doing the localisation
original *
i think i messed something up
for k, v in pairs(G.playing_cards) do
if v:get_id() == 7 then
v:set_ability(G.P_CENTERS.m_lucky)
end
end
get_id, thank you
it should automatically apply right? i dont need to do something like loc_txt = localize["pwn_moneysmaro"]
yeah ive got same problem here
wait so do i need to do the run thing in my main lua for it
yeah im lost
No.
why
You need the j_ at the start of the keys.
Where do I specify that I want it to check for steel?
oh
oh
discord didn't scroll
SMODS.has_enhancement(card, "m_steel")
fixed
so it should be working then
is your file structure correct
where is this file what was is it named
the loc file
en-us.lua in the localizations folder
where is localizations folder
in the main mod folder ig
yeah im lost
Is exponential mult a base balatro thing?
no
you sure you got the joker5 right
yeah
No, it's a Talisman thing.
@daring fern we need help
i checked and everything is as should be
did you remove loc_txt from cashgrab
yeah
like this
i copied your spelling
weird
like str8 copy n paste
what is the calculation code, and how do I make it work
return {emult = number}
IT WORKS YIPEE
now i gotta add the rest
pain nothing but pain
I NEED MUSIC
ive done all night in silence
Is there any implementation I need to do? For example “using (blank)”?
is there an effective way to change the spawn rates of hidden consumables both from vanilla and other mods
Like importing from python, or using in C++
whast the localization key for enhancements
ay once its added your codebase will be clean
how do you make it so a card loads it's sprite from an independent png instead of a sheet of jokers?
create and use a different atlas
calculate = function (self, card, context)
if context.cardarea == G.hand then
if SMODS.has_enhancement(card, "m_steel") then
return { emult = card.ability.extra.Emult * random(.1, 20)}
end
end
end
This is not doing what it's supposed to, and is almost certainly wrong. Please help.
m_prefix_key
Is this for a joker
Ye.
card here refers to your joker card
if context.individual and context.cardarea...
...* **math.**random... however you should use pseudorandom instead so it's based on seed
The intended effect is, whenever a steel card scores, exponentiate the mult by a random value from .1 to 20
and ^
im just playing balatro for a break at least i can use my new cards
what myst said and in has_enhancement use context.other_card instead of card
would you do this inside of the joker's lua file or in it's own place? still very new to this
you can do it wherever as long as it happens before your SMODS.Joker call
wherever you defined the main sheet atlas
calculate = function (self, card, context)
if context.individual and context.cardarea == G.hand then
if SMODS.has_enhancement(context.othercard, "m_steel") then
return { emult = card.ability.extra.Emult * math.pseudorandom(.1, 20)}
end
end
end
Like this?
you don't even need it before smods.joker
alright then I still gotta figure this part out
atlas's confuse me
especially since a lot of mods seem to do it differently
I thought it crashed cus it couldn't find the atlas if you did it after
if you're using pseudorandom then pseudorandom(0.1, 20, "unique seed here")
context.other_card instead of othercard
yippee im free from labour
keep using the clean stuff you just made though
nah it's actually loaded when the card is generated
only more creating fun
like instead of making a loc_txt make a localization entry instead
yeah
and if you add a different type of object make a new file
fuck
im currently just playing balatro with my jokers coz its more fun
i need some relief after 7 hours of this
it's not exclusive for integers since it uses math.random
i can't figure out my localization keys
wym
this isnt working correctly
im dumb with this but i could also bring new ideas to the table
but lua's math.random with a min and max parameter is only for integers
the fuck
r u using the name instead of the key for the m_pwn_beaming or is that also the key
that's just what it says
m is for enhancements it says
it even checks for the patch
i have my key named beaming
yeah so i got no clue
@normal crest ?
hello
random(1, 200) / 10
ok
or pseudorandom("wa") * 19.9 + 0.1
any clue why this wont work?
yours is probably more coherent tho
OH
oh damn
how does one make an enhancement
ill give it a try fail and be back hold on
YEAAAAAAAAAAHHHHHHHHHHHHH
well have an idea first
here
take my enhancement
completely blank
its actual listed functionality is handled in a patch
SMODS.Enhancement { -- Beaming Enhancement
key = "beaming",
config = { extra = { odds = 8 } },
loc_vars = function(self, info_queue, card)
return { vars = { (G.GAME and G.GAME.probabilities.normal or 1), card.ability.extra.odds } }
end,
atlas = "beaming",
pos = { x = 0, y = 0 }
}
@drowsy heath also when you do sprites please use sheets
basically a way of editing the games code
i edited the code for drawing cards to draw beaming cards first before drawing the actual cards
It works, but it's also exponentiating at the end of the round, how do I make it not do that.
[manifest]
version = "0.1.0"
dump_lua = true
priority = 0
# Draw Beaming cards first
[[patches]]
[patches.pattern]
target = "functions/state_events.lua"
pattern = "if G.GAME.blind.name == 'The Serpent' and"
position = 'before'
match_indent = true
payload = '''
for i=1, #G.deck.cards do
if #G.hand.cards < G.hand.config.card_limit then
if SMODS.has_enhancement(G.deck.cards[i], "m_pwn_beaming") then
draw_card(G.deck, G.hand, i*100/#G.deck.cards, nil, nil, G.deck.cards[i], 0.07)
hand_space = hand_space - 1
if pseudorandom('glink nuggets') < G.GAME.probabilities.normal / G.deck.cards[i].ability.extra.odds then
local card = G.deck.cards[i]
G.E_MANAGER:add_event(Event({
blocking = false,
trigger = "after",
delay = 1.5,
func = function()
G.E_MANAGER:add_event(Event({
blocking = false,
trigger = "immediate",
func = function()
card:set_ability("c_base")
return true
end
}))
SMODS.calculate_effect({ message = "Shimmer!" }, card)
return true
end
}))
end
end
end
end
'''
@drowsy heath file if ur curious
...
its KINDA complex and scary
im so lost idk how to describe it
What's the current code
which is why i stray away from them as much as possibly
ill leave that for another day 😭
but this patch was prolly the easiest one to make
easy
if you are making simple mods you wont even need patches
calculate = function (self, card, context)
if context.individual and context.cardarea == G.hand then
if SMODS.has_enhancement(context.other_card, "m_steel") then
return { emult = math.random(.1, 20)}
end
end
end
like here look at this
i want my mod to have jokers decks seals and enhancements
Missing a parenthesis.
you think you would need to make a patch to exit a blind without winning and go to shop?
When using Atlas.
SMODS.Consumable { -- Skateboard Item
key = "skateboard",
set = "item",
atlas = "skateboard",
pos = { x = 0, y = 0 },
can_use = function(self, card)
return G.GAME.blind.in_blind and not G.skate_shop
end,
use = function(self, card, area, copier)
G.E_MANAGER:add_event(
Event({
trigger = "immediate",
func = function()
if G.STATE ~= G.STATES.SELECTING_HAND then
return false
end
G.skate_shop = true
G.STATE_COMPLETE = false
G.FUNCS.draw_from_hand_to_discard()
G.FUNCS.draw_from_discard_to_deck()
G.GAME.blind:defeat()
G.STATE = G.STATES.SHOP
G.STATE_COMPLETE = false
return true
end,
}),
"other"
)
end
}
all vanilla smods code
though i did use a hook
but its not for functionality
I'm not actually sure why it'd do what you said it does
its so players cant use it again while inside the shop
ahh yeah i kinda actually undertand that one
which honestly
My current theory is because the game runs individual in hand again because of gold cards.
try path = "jokers/Moonception.png"
could you be more specific?
There needs to be a parenthesis before the bracket
there doesn't
you don't need it
Oh. My fault.
that's a different context called end_of_round tho
do this
what SMODS version do you have
ok yeah no i do need the hook
Yeah, but it still runs the hand, no?
Why?
pretty easy
for my consumables i made a consumabletype
which is also easy
context.individual and context.cardarea == G.hand happens, for example, when a steel card gives 1.5x mult cus it's held in hand
okay so structure wise what do i start with
if you do G.play instead it'll be when that card scores
Yes, I want it to trigger when each steel card does.
if you wanna make a type to contain all of it
SMODS.ConsumableType { -- Items
key = "Item",
primary_colour = HEX("668766"),
secondary_colour = HEX("9dffb1"),
loc_txt = {
name = "Item",
collection = "Items",
undiscovered = {}
},
}
in that case your code looks fine
thats my entire code for making a consumable type
okay okay
which steamodded version are you using
contains a loc_txt because i dont think you can make localization for that
you can
@normal crest can you make locales for consumabletype?
how?
so the actual consumable structure ?
under here?
like this
1.0.0~BETA-0518b-STEAMMODDED
that skatebaord i sent
its a consumable
oh okok thank you
here lemme give you a simpler one
try updating to 0614a I guess, I'm not sure why it'd do that but it's possible
SMODS.Consumable { -- Shotgun Item
key = "shotgun",
set = "Item",
config = { min_highlighted = 1, max_highlighted = 4 },
atlas = "shotgun",
pos = { x = 0, y = 0 },
use = function(self, card, area, copier)
local hand_highlight = G.hand.highlighted
SMODS.destroy_cards(hand_highlight)
delay(1)
local non_highlighted = {}
for _, card in ipairs(G.hand.cards) do
if not card.highlighted then
non_highlighted[#non_highlighted + 1] = card
end
end
delay(.7)
local card_to_destroy = pseudorandom_element(non_highlighted, 'random_destroy')
SMODS.destroy_cards(card_to_destroy)
end
}
this item lets you select 4 cards and destroy them, but willselect 1 extra random card and destroy that too
ok so the game boots, although the joker doesn't appear. the joker is designated in it's own Lua file, how would I get the game to recognize it?
again i am very fucking new so please be patient /w me
show moreplsi dont get it
Are you loading that file
im not sure, I don't think it's designated to load anywhere
since i'm not sure where you would set it up to load jokers from individual lua files
tryna follow the cardsauce way of organization
at the same height in whijch you put descriptions = { etc, put another one called misc and then k_yoursetkey is the badge under cards and b_yoursetid_cards is the name it shows in collection
so this works
id make the key "Cryo" trust it lines up with vanilla keys
okay
where do i store just these 2 values
In your entry file you can do SMODS.load_file("jokers/my_joker.lua")() for example
i'll try that in the main file
rn im just tryna see if the one joker I coded works then I can get around to actually getting things organized properly
do i want to put my consumables in the same lua file or a seperate one for simplicity
yeah sorry, my localization file is quite big, it'd be like that
can someone help me with this nil number error?
hand_chips
probably took this too literally
out of curiosity whay does this one work then
cus you're not accessing any global variables there
uhh... how did this happen?
you forgot the dictionary part, look at my ss again
is chips not global?
OH
chips = -chips
^ nil
ah
you're returning a table that has the key chips there is no global variable here
did I just broke balatro?
was just about to say it didnt work but that's because i am le stupid
i'd need to see the structure of your mod files
dw i didn't even read your crash log
:(
help.
any idea?
i'm not sure
most likely being extremely backwards with this
did you save
can you show your localization file structure
you have to respect lowercase in the file names
you put Moonception in code but the file name is moonception
ohhh
please collapse the things
I can't see shit
tho it looks like you didn't put misc at the right spot
nvm
was there something wrong with this?
what's your consumable type definition again
i want to make a consumable that does what familiar does but with seals instead
Lol
Try keeping only lowercase in the localization file
but keep as it was before in the code
fixed lowercase and the game boots, joker still doesn't appear in collection tho
i can use the familiar spectral card as a base and work off it but dk what i need to change
@drowsy heath change your consumabetype key to lowercase
turns out localization doesnt like it
try what I said first before
uhh can you share your joker file
and yh ill change it back now
cus you're never calling SMODS.Joker to register your joker
you're just returning a table with information about your joker
to make this but seals instead how much would need changing
try replacing return jokerInfo at the end with SMODS.Joker(jokerInfo)
would I leave return there?
also instead of using name = "whatever" it's preferable to use key = "whatever"
@drowsy heath delete last } in locale and replace it with
misc = {
dictionary = {
k_item = "cryo",
b_item_cards = "cryos"
}
}
}
if you want to, it's not doing anything so far
you said you were trying to follow another mod's organization and they probably have a system to load jokers that uses the return value
yeah
i still wanna follow that method since it seems conveinient but i'm lost as to how they do it so for now im just testing to see if I could implement a custom one to begin with
have you checked out vremade
once that works i'll prolly check to see how they organize things
also game boots but card still doesn't appear
it'd go here right?
yeah that looks right, looking at the code your joker has no atlas
yeah i looked at that
so it should look like the +4 mult joker
if you go all the way to end of collection
it doesn't show up to begin with
i just dk what i need to change to what in the structure to make it produce seals on cards instead of enhancements
you restarted your game right
Do you see the mods button in the main menu
how do i get the chip value of a card
not as in id, since that might change for mods and such
yeah the mod shows up in the mods tab
doesn't have a list of contents tho
since its a very basic json
Okay, can you temporarily comment out the load_file thing in your main file
no change
and just try to make some random joker like
SMODS.Joker {
key = 'whatever',
loc_txt = {
name = "whatever",
text = {}
}
}
in the main file
appears
I'm not sure why the other one didn't work
ratmilk my consumable doesnt have any text for some reason
Maybe it's cus it had no loc_txt?
i have added it to the localisation
what does this error even mean
i think it's something with the cards ability but idk
how did you add it
that would parse since it references back to the localization files for it's description but I think I left something out from that
show the end bit of your locale
again I tried to organize the files in a way that I really didn't know how to do
just like everything else is it not right ?
try adding loc_txt to your joker file and loading it again
no that part is for your consumable type not the consumable
ill sort my issue vnow then
i realized something
also it looks like your miscellaneous is unaligned
they have no booster packs
remove what you added
copy this exactly
and delete the last }
and paste that there
and then format
no change
okay
and replace item with cryo
i think what I might do is try porting the Lua file information over to the main file and load the joker through that instead
i can figure out organization later
formated
why is gup the ror2 tag lol
try looking now
see if it shows in collection consumable types
well your mod is working fine, it's just the code you copied from that other mod isn't cus it's incomplete
it did anyway
why I'm getting this?
probably yeah
oh as cryos yeah it did
nice!!!
makes sense
whats the thing to do that
How would I get the localized name of a rank?
just consumable
i wouldnt know how to organize it directly in this case
find at the top where it says Joker = {
has anyone have a wonder why this is happening?
if I had to guess you passed a string to loc_txt's text
I mean in loc_vars
but not much to go off from that crash alone
Like if I'm returning and using localize() what do I put in localize
after all of your joker locales go even along that line and make a new one called cryo = {
then follow what you did under Joker = {
Well, not sure if that is the case...
localize("Queen", "ranks") for example
I've no idea what you're trying to achieve
just chewed down on my teeth and it made the sound when you select a card in balatro
that is painful
congrats, you've unlocked balatro irl
how can i make a return message be just a variable?
Srock do you have any idea what's wrong?
I think what i'll prolly do is restructure the stuff so it's able to be read easier
so the text doesnt work ratmilk
yes, you're passing the wrong arguments to evaluate_poker_hand, and no, idk what they're supposed to look like
for what, also provide acreenshots
really stupid question but is it possible to have a joker check if its been won with before (and also have something else check if a certain joker has been won with before)
Thanks!
config branch
what?
the key for cryo is lowercase correct?
yeah
you told me it had to be lowercase
it's definitely possible, you'd just have to find how the game actually saves that stuff
yeah i was just checking
screenshot how you define your consumable type
G.PROFILES[G.SETTINGS.profile].joker_usage.j_prefix_key
i recommend printing that out in debug plus to see if it's what you need
you still have loc txt
oh shiii i do
remove that and also your loc key in your locale is wrong it says b_item, that's my key change it to cryo
i will check if that works, eventually
YOU TOLD ME TO PASTE IT EXACTLY AS IS 😡
I think what you want is if #G.PROFILES[G.SETTINGS.profile].joker_usage.j_prefix_key.wins > 0
but who knows how
decided to format it
i forgot to change the key!! but still it's just a minor change
just change anywhere down there it says "item" to "cryo"
only need to edit 2 places
so all that sorts the issue with cryo as the type but the consumable itself doesnt have a description
and it should
yeah i'm still thinking about that
you have a correct key right?
screenshot the consumable itself
it's code
okay its very empty but sure
@normal crest c_ is the key for consumables
ts makes me suicidal i stg😭
but it worked
now i just need to make seal hunter hunt for seals
and idk how to do that
gunna study lua all tomorrow to do that but rn i can work on jokers since i have 7 of them and i need more than that
i need to make alot more
then again i still need to be nice to my artist
don't forget to migrate to locale
and whatever you do use sprite sheets
i wont its engraved in my skull by now
there's this free sheet packer tool i know online
i planned on it but why are you so adamant on it , is it 100 times harder if not
https://www.codeandweb.com/free-sprite-sheet-packer prefacing this with IF YOU USE THIS MAKE SURE TO TURN SHEET PADDING TO 0 IN SETTINGS
This is a free online sprite sheet packer - an easy to use application to make css sprites and sprite sheets for Phaser 3. No installation required.
you will have a mess of atlases
yeah fair what other settings to i want to use
nothing much really just make sure padding is 0 or the placements of things will fuck up
c_prefix_key yes
yeah that was a while ago we figured it out, thanks for the help anyway tho
Well what I'm trying to do is that I'm trying to work on trying to make a joker that can swtich out "Three of a Kind" to a "Four of a Kind"
That's what I was trying to do
anyone want to give me a joker idea
im lost on what to do for this one
literally anything im not being specific to an idea and idrc abt the name either they are all over the place already
winter my goat
Yeah shrug my mod just uses an individual atlas for each item
I just find it easier to manage most of the time
had anyone have any idea?
well erm
what does this mean
wait ik what it is
nvm then
the shop was gunna have an unfinished consumable
i just put it in to test that the localisation worked
may i present the most fun card i could think of or cards, the un-ancient jokers
anyone have any idea on how I can fix this?
what is even the intended behaviour
like we could say x or y to try and make this not break the entire game but what's actually supposed to be happening
Does anyone know where I can find documentation for planet cards?
i have a problem and idk why its happening
like i am so clueless
so the un-ancient jokers arnt working properly
the diamond one works fine
but for some reason the rest arnt though its the same code just different suits specified
so why arnt they working
if you want the code i can send it
also i should note it does tell me how much mult it grants on the card but isnt giving it
or basically how poker hands work
Did you forget you can do {X:mult,C:white} or did you just happen to not done it to those jokers yet?
is it possible to remove seals from cards
Then why did they look like that in your pics? Did you added it afterwards?
idk all of my jokers do that i didnt question it
thought it would just be fine to leave it as somet my jokers do
do you know how i can fix the problem with the jokers anyway, the code for them all is the same other than the different suits have been defined on them all yet only the diamond one works
yet it still shows the mult value in game
so i am confuzzled
:set_seal(nil)
Also, for some reason, {X:} ignores spaces, which means this setup would end up look like "X1.5mult" instead of "X1.5 mult".
I'd recommand you do {X:mult,C:white}X#1#{} mult instead.
oh okok so you dk abt the other thing then
what
it was supposed to replace the poker hand with another opkerhand
but yeah.
what did you mean by that
or was it not for me and I was too self-conscious?
even that's some pretty unspecific behaviour ngl
no u answered about the problem in spacing when i also had another question of why the jokers were not triggering their action even tho it showed they granted 1.5x in game
the same code is used for all 4 jokers other than the suit and yet only 1 works
Show us the codes, then. Let's see how much we can help you.
when i say like all the same its 1 word thats changed rlly on all of them other than the key and position
if i want a joker to do that, is it the same?
like i want the joker to remove triggered seals
in hand, discarded or played, as long as the seal is triggered it has a chance to remove it
You might need to insert custom context call, either via hooks or patches.
Otherwise, yeah, just [playing_card]:set_seal(nil) should be fine.
First of all, you might wanna fix the loc_vars in the club one's code.
oh yeah that one i was tinkering with
to find a fix
ignore that
back to normal now
Secondly, you forgot to capitalize the initials of Spades, Hearts, and Clubs in your config.extra.
Yes, they are case-sensitive.
in my defence ive been working on this for like 7 hours str8 setting up everything and all that lot these themselves took like 5 minutes coz its the same
that still didnt fix it
Have you started a new run?
would there be a way to detect when someone clicks on a card from the deck view?
no.... hold on i will now
that has never stopped me before
dk why it mattered on this one
but yes it works
There should be.
is there any way of making a card rainbow (changing colors)?
like polychrome
is Holotro a mod you're making?
Probably like Jimball from cryptid?
that's the point
Yes
neat
i dont wanna make it animated :(
womp womp
damn
can i choose neither
DO NOT LEARN SHADERS THAT SHIT IS PAINFUL
Yes, but that also means you need to give up your idea.
any idea what it might be?
ik
but imma try animate it
it cant be that hard
that's the spirit
another question if u dont mind, is it doable to retrigger "seal effects" not the card just seals ?
wouldnt you be able to just make a joker that mimics the seal when triggered
There should be a cardarea that represent the deck view, and there must be a function that returns whether a card is clicked or not.
I'll take a look ty
so it says hi to the seal and clones what it does instead of trying to retrigger the seal itself or would that overcomplicate it
No if I recall correctly.
That might only solve the problem one seal at a time.
As in, if a mod adds some seals, and another mod adds some more seals...
well js say its not compatible with other mods and have a nice day
dependencies [ NO, NO MORE MODS GO AWAY WE DONT LIKE YOU]
then what about retriggering cards with seals only , that should be doable?
But red seal's effect is not retriggerable, iirc.
(Even though just the retrigger itself is equivalent to retrigger the red seal)
Wonder if it’d be possible to check the seals of cards in context individual and then grab their effects with the joker, that’s how I’d do it I think
Spent all day attempting to get new buttons working on a joker and I finally understand the UIBox to G.FUNCS to Card: to card function flow even if it’s a pain in the ass
The joker what it supposed to do is like replace "Three of a kind" to a "four of a kind"
how is it unspesific?
The thing is
has anyone havem ade a code where it tricks the game with a hand_type?
a different hand type?
Have you tried, like, hook the hand evaluate function, and return 4oaK if the original function says 3oaK?
You can manually set the parameters and do the animations but you can’t just edit the table of them and have the game take care of it iirc
No not really although I did try through the patches but it didn't work the way I thought it would.
Hand evaluate is kinda scary
Hooks and patches are different techniques, though?
Imo
oh.
then what is the real way to do it
for a joker to convert a three of a kind to a four of a kind where the joker counts as a playing card?
one sec, let me type it out for you.
function evaluate_poker_hand(hand)
local results = hook_evaluate_poker_hand(hand)
local has_that_one_joker = next(find_joker([mod prefix]_[the key of that joker]))
local is_3oak = next(results["Three of a Kind"])
local is_4oak = next(results["Four of a Kind"])
if has_that_one_joker and is_3oak and not is_4oak then
results["Four of a Kind"] = results["Three of a Kind"]
end
return results
end```
Honestly, upon inspection, I think patches might be simpler, though.
can i make an animated atlas with soul pos (apart from the animated atlas)?
Well wouldn't doubt it but yeah...
As in, [[patches]] [patches.pattern] target = "functions/state_events.lua" pattern = '''elseif next(poker_hands["Four of a Kind"]) then text = "Four of a Kind"; scoring_hand = poker_hands["Four of a Kind"][1]''' position = "at" match_indent = true payload = '''elseif next(poker_hands["Four of a Kind"]) or next(find_joker([mod prefix]_[the key of that joker])) and next(results["Three of a Kind"]) then text = "Four of a Kind"; scoring_hand = poker_hands["Four of a Kind"][1]'''
Something like that
stability of this patch is questionable
Yeah, I agree.
i like the hook but you'd have to return results and make results["Four of a Kind"] the top result if possible
Ah crap, I forgot about the return part.
edit: fixed!
Probably unnecessary for making 4oaK on top, less it would overwrite 5oaK, FlushHouse, and Flush5.
well not if a higher hand is possible
but 3oak is saved to results.top
actually
nvm
it doesn't matter either way
that should work
what happened?
check traceback
k wait
uhh... I tried that and now... I got this error
ooooh.
i added an animated atlas
does your code have the return in it
also results = hook_evaluate_poker_hand(hand) should be local results = hook_evaluate_poker_hand(hand)
this was the animated atlas i added
huh. guess that was missed what Riv sent me
but yeah
the heck? again?
what does the code look like?
i believe this is steamodded not having the results
so idk
I fortunately thought of like adding these just in case but of course no idea if it would work.
let me try without any extras and check again
add return results
pg now ti still does it-
okay
bump
it worked.
add your mod prefix to the atlas
i think
ill try
yeah ik
yeah
how do you apply chip/mult effects before scoring
same crash
oh you're trying to animate a joker
strnage...
i don't think you use ANIMATION_ATLAS for that
@runic pecan have you got any idea wht it isn't working even with the mod prefix?
this is the code currently
do SMODS.find_card("j_(MODPREFIX)_americanpoker95")
it worked
huh
now the only thing left I think maybe needed to do is that the joker also do a trigger
not sure what would the chips for a single joker would be uppon triggering
deltarune deck?
cause it's supposed to be atleast a reference to this:
smods docs don't seem to specifically disallow that but every implementation of animated jokers i've seen does not do that
wait I think I realized when I saw another video
idk
hrrmmm
how do you perform operations directly on mult
:3
like, without using smods' return Xmult functions
oh god
Straight Flush in disguise
Has someone here ever added another desc box in a Joker's description during a run? (Not during initialization)
it's quite literally straight flush if all cards are above 10
is there a way to modify an already existing rank (i.e. jack) to modify its rank and all that?
?
does this look like ui code
okay so basically i added a rank in-between 10 and jack but it still plays straights with jack and 10 as if the rank i created didn't matter, is there a way to change that?
you'll have to take ownership
how would i do that though?
SMODS.Rank:take_ownership
what plans
I see
it worked! thanks a lot
making some bullshit for fun
!Mult
New here, joined specifically to check out the modding scene cause im starting out with 0 experience when it comes to code. So far, I have a .lua file. and a .json file with the expected(?) id stuffs and things, yet when I try to launch the game and see if my file shows up, it just doesnt. Any help/advice?
thought of tryting to see if I can have the joker have 12 chips but I get this error
wait
turns out I need to make a new run
now look at it now. it's working now.
Wait I just realized.
Apparently this code still takes effect even when playing on a different deck and doesn't stop until I restart the game, how would I make it so that it resets the chance of cards getting negative upon exiting the deck (or entering the main menu, whichever way is more possible)
how can i crash the game giving a custom message?