#💻・modding-dev
1 messages · Page 220 of 1
local has_glass = false
for _, s_card in ipairs(context.scoring_hand) do
if SMODS.has_enhancement(s_card, "m_glass") then
has_glass = true
break
end
end
OAAAAHGHJ
THATS WHAT I SAID
so does this allow a joker to check if there are glass cards
code?
ITS SUPPOSED TO BE -5 WHY DID IT DO -75
key = 'Banker',
path = 'Banker.png',
px = 71,
py = 95
}
SMODS.Joker{
key = 'banker',
loc_txt = {
name = 'Banker Joker',
text = {
'Gives a {C:attention}loan{} of {C:money}$100{}.',
'Lose {C:money}$5{} at end of round',
'until {C:attention}loan{} is paid back.',
'{C:inactive}(currently {}{C:money}$#1#{}{C:inactive} owed){}'
}
},
atlas = 'Banker',
pos = {x = 0, y = 0},
config = { extra = {
money = 100
}
},
loc_vars = function(self,info_queue,card)
return {vars = {card.ability.extra.money}}
end,
add_to_deck = function(self,card,from_debuff)
card.ability.extra_value = -100 - card.sell_cost
card:set_cost()
ease_dollars(100)
end,
calculate = function(self,card,context)
if context.end_of_round then
card.ability.extra.money = card.ability.extra.money - 5
card.ability.extra_value = card.sell_cost + 5
card:set_cost()
ease_dollars(-5)
end
end
}```
the sound is because when you lose money in balatro, you lose money in real life
the sound was my microphone because i made that noise out of shock lmao
it worked!!!!!! thank you thank you thank you
please tell me this works with the name
try context.end_of_round and context.game_over == false and context.main_eval
no lol
name is more complicated, I can show you what I do in my mod for one of my cards that does that
would appreciate
attempt to index field 'colours' (a nil value)
wait are you talking about dynamically changing the names of cards
anybody know what this crash means?
if so I made an API for that
well that's easier then
ok that worked
can i ask why
that works and why the end of round gave me -75
🧎♀️
hold on it has a bunch of other stuff in it, let me make a version with only the nickname stuff
WINNING
how it the colour nil??
main_eval is true when only your joker is being calculated, because end_of_round is called for other cards too
game_over was not the problem but it's nice to check if the player lost so you don't apply the effect
nvm
wait whys it going down by 6 and not 5 👁️👁️
I have fun with my new joker...
I had to remove some stuff so tell me if it breaks
I also don't think it works for modded cards
dear fucking lord
it used to, but an SMOD update broke it and I had to fix it
I can try and fix it rq
how am i supposed to use it then 😭
yeah so the purpouse it was needed for was "+4 mult for every Glass card played"
if it’s no trouble feel free but i don’t wanna trouble ya
oddly if i play 2 glass cards i still just get +4, not +8
hmmm I don't think a patch is necessary, using generate_ui is much easier I think
then use a number instead of a boolean
ok
no the API is for changing ALL jokers
base game, ones for other mods, ect
oh
where you can't use generate_ui for
then that sounds way out of scope for what they were asking i think?
unless I misunderstood
i just wanted a dynamic name to go with the description😭
i fixed it
if it's just for a single joker generate_ui would be your best bet
I don't really know how it works though
Also have fun with...
in that case
how did you go about that
or did you not even use generate_ui
generate_ui = function(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
full_UI_table.name = localize { type = 'name', set = "Joker", key = card.ability and card.ability.extra.new_key or "j_yourmodsprefix_key", nodes = {} }
SMODS.Center.generate_ui(self, info_queue, card, desc_nodes, specific_vars, full_UI_table)
end
For this you do need 2 entries in the descriptions like you had before and you set card.ability.extra.new_name to the key of what name you want
@plush cove Thank you for telling me about snippets this is glorious
joyousspring is once again used for ui
is there a way to quickly search up a letter in my main.lua?
because i got this funny crash rn
attempt to index field 'M' (a nil value)
and now i gotta go on a wild goose chase to find this strange MMMM
i forgot the most important part lol
you could ctrl + F and search for 'M' with exact match
This blind use probabilities...
thank you
thank YOUUU
ok starting with the 2 entries
how's this
For example
rarity = #
SMODS.Rarity
i feel like im being trolled.
yeah you would set card.ability.extra.new_name to either j_hpfx_choker or j_hpfx_chocker_alt
what file did it tell you to check
😭
is it like 1 = common, 2 = uncommon, 3 = rare, 4 = legendary?
yeah
alrite
literally yes
hook for wat
discarding cards cause im following the castle joker to make the rats
where does this go actually
and are hooks for like specific ranks and suits?
ok how do i make a joker eat itself
new print dependency it’s over
(context: it was setting hand to 1 instead of increasing)
crazy
if you mean where do you change new_name and you want to change when you get it then probably add_to_deck
G.C
Molor
it stands for game.color
silly don
sorry folks
cryptid
or maybe global idk
its global, pretty sure
whats the code to make a joker remove itself from your hand? like when food jokers hit 0
else G.GAME would mean game.game 😭
does it still work when you remove print?
it doesnt
this card has to delete itself when you dont have a loan anymore :V
no like does it go in the joker's CALCULATE
im still trying to figure out why
that's weird
Do you have access to source code?
okay so joker works
it's funny because that stands for _G.G.GAME
i mean it could be the print's fault. if the code is really jank then an extra allocation could cause it to break
generate_ui is a joker function like calculate
i have card.lua
would it be in there
(does print cause a memory allocation? probably)
oh it's its own thing ok (used it literally never)
but when it does it says ERROR
Yeah check for the gros michel/cavendish code and just copy what it does there
is there a more optimised way to do a playing card tally like steel joker without using the update function
you can put the code which counts the steel cards (FOR EXAMPLE) inside calculate without any context
i see no reason to do that
i like update but less laggy :3
would that not be the same as the update function
nop
i think im overriding the chips thing
wth, isnt G.jokers.cards, a variable?
oh so how often would that run
G.jokers.cards is a table containing every joker
not every frame at least
uhhhhh, its hard to explain but its basically when any context happens
yeah but it doesnt seem to work
don't, I would still do it inside a context
why not
are you running G.jokers.cards even when you are not in a run
idk
why do you need to
oh yeaah
because i want to count how many steel cards there are and accurately show the value
lmao
whar
chat i think im bullying the rats too much
i suggest adding if G and G.jokers ❤️
then do it in loc_vars to show the value in the description
and then do it in the context where you need the value
thanks
i may be overworking the rats bepis
its ok, the rats are good workers
but that won't show you the value before the hand is played, only after it
no?
replace any "self"s with "card"
if i did it when i needed it i'd only do it during context.before
how how to make the text look like that?
add ` at the start and end of your text
k
right click a message and press "copy text" then paste it and you can reverse engineer
nope
if its more than one line it needs 3
but also, for that specific scenario, you need triple `
do three of them at the top then lua for text blocks of lua code
HOT DAMN IT LOOKS WORSE
ironically now I'm trying to figure out how to use it with toml cuz its not doing it for me 😭
and then end the message with three `
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = localize('k_Guts_ex'),
colour = G.C.CHIPS,
card = card
}
end
if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS
}
end
end,
calculate = function(self, card, context)
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message =localize ('k_harvested_ex'),
colour = G.C.MULT,
card = card
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
mult_mod = card.ability.extra.mult,
colour = G.C.MULT
}
end
end```
much better
thank GOD
that didnt fix it :(
add lua after the line with the three ` at the top
@sturdy compass
and it will highlight stuff
you can do this
print("so that your code is colored")
huh nice
Do you have Even Better TOML?
they should add that to mobile
absolutely,y my grammar sucs
print("holy shit it works for python too")
print("wait is this the same highlight scheme thats lame")
why does this crash with this code
calculate = function(self,card,context)
if context.end_of_round and context.game_over == false and context.main_eval then
card.ability.extra.money = card.ability.extra.money - 5
card.ability.extra_value = card.ability.extra_value + 5
card:set_cost()
ease_dollars(-5)
if money = 0 then
G.jokers:remove_card(card)
card:remove()
card = nil
end
end
end
yeah
oh python works for mobile?
my night is going better sort of
lua found dead in the alley
if money = 0 needs two =
oh
== for comparing
i may be stupid
i may be stupid :3
lso you should put the remove code in an event
also are you sure you dont wanna check
be positive yall
if the money is equal to or below 0?
wdym
is it not already in an event?
it triggers at the end of the round
i always have smods docs in hand it's like the bible
does anybody know why my message is an error?
elaborate?
ok
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = localize('Guts'),
colour = G.C.CHIPS,
card = card
}
end
if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS
}
end
end,
calculate = function(self, card, context)
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message =localize ('harvested'),
colour = G.C.MULT,
card = card
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
mult_mod = card.ability.extra.mult,
colour = G.C.MULT
}
end
end
```
so like
the chips aint adding
and the message aint messagin
the rats are revolting against me
nvm
is harvested in your localization files
yes
yeah
you can try just "harveste" for now without the localize to see if it works
or if you want to lock your mod to only one language, you can just do message = "Guts"
k
totally not a bad practice
hrrrrm
i did it and now its broken
this works for any function btw
events need to return true
oh
nope still error
i dunno wat ur doing, but if it goes down even more than 0
then it wilt ron at all
adsl;a
WHAT THE HELL IS GOING ON WITH MYG RAMMAR TODAY
also that the chips aint chipping
shouldnt it be chips_mod, or chip_mod works too
oh wait are those 2 calculate functions in one joker??
oh wait
im not supposed to have that am i...
i just noticed that 😭
it doesnt work
absolutely not
you only handle stuff in 1 calculate
did you mean new_key cause i dont see a new_name
ye im sleepy 😴
do y'all know if theres a way to check how many jokers are in a booster pack and get that number as a variable?
oh ok cool
what do you mean you type it all in there
if statements
-# i actually dont know what else to tell you, you use if statements to tell the joker to do various things
i tell my joker to do things by yelling at it
why doesnt it fixed :[
mods i spill my juice help help hep help
if it was working fine without an event i would have left it like that tbh
oh
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = localize == ("Guts"),
colour = G.C.CHIPS,
card = card
}
end
if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message = localize ('harvested'),
colour = G.C.MULT,
card = card
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
mult_mod = card.ability.extra.mult,
colour = G.C.MULT
}
}```
juice_up()
this is not how your supposed to do it yea?
then the event wasn't going to fix that
oh my god
it works, but usually you have if statements all on one line like this
Just learning to mod balatro, what's a good way to detect Wheel Of Fortune failing?
let's say i want something to happen with a 1 in 4 chance, and i also want it to be consistent with seeds (aka set up a pseudorandom function). how would i do that?
place ends until a red one shows up
then delete 1 end
and you have the right amount
so like if context is add_to_deck then do it otherwise do it but with the first key?
just gonna ask this again bcos i am lost asf
oh add_to_deck is not a context, it's another function too
#G.pack_cards.cards?
i put the ends after the purple { yea?
you’re killing me smalls
are you alright toma
no, after the }
help.
of the returns
go find wheel of fortune code
or just basically any code which does the rng
if that works im gonna explode :3
gros michel works too
yeah but wheel of fortune is better
-# i feel like thats a bit biased
i found the gros michel sample code but it doesnt show how to build the pseudorandom function
you don't
build?
build it
i’ll be back…. 
you just do it.
you just put a seed in there
and it works
very simple
pseudorandom("please kill me") works
yeah
thank u
honestly i recommend reading a quick lua course lol
yeah it's just not doing it even though i did everything right
make sure all of your if statements look like this
if (something) then
end
mhm
IF its a return, it should always look like this
return {
}
< -- there should be an end here too
its okay ive been doing it all day
reading is for losers
me when i'm 98% of balatro players
start rewriting each of them one by one
WHATS ALSOIF 😭
and the red is gon
local random_card = pseudorandom_element(G.jokers.cards, pseudoseed("whatever"))
😦
but like out of the jokers the player has
yeah that's it
In this video I cover if statements, What they are, What they can be used for and how to construct you own. I Hope you enjoyed the video, Be sure to leave a like if you liked it and subscribe if you have not already. If you have any questions feels free to leave a comment below.
More information on if statements
http://www.troubleshooters.com/c...
oh really
G.jokers is the owned joker area
im making a card that targets a random other joker
but i dont want it to target itself
how do i prevent that
so when it says genui is a wrapper to loc_vars that doesn’t mean it goes inside loc_vars, but it USES loc_vars right?
have a table which is the same as G.jokers.cards
then remove the card from the table
how
yes
local table <-- dont just use table = G.jokers.cards btw
for i,v in ipairs(table) do
if v == that joker then
table[i] = nil
end
end
so what do i do now
does that work with pseudorandom tho
doesn't it have to be indexed
or am i wrong
is it possible to make a joker that gives money in the cash out screen and not at the end of round
only thing is they don’t elaborate on add_to_deck in the wiki (at least in the same way they do with calculations and loc_vars
so now i’m trying to figure out what exactly i’m putting in there
if i want it to ignore a joker, i have a table with that joker removed and use pseudorandom_element on the new table instead
yes there's a function for that on the wiki
ok i deleted the mult part
now to add it alll back
with the proper stuff
and not be a dummy
just do card.ability.extra.new_key = "the key in question"
have your joker call calc_dollar_bonus
i just copied the code from popcorn and it doesnt work
iunno why
like
it might be not counting the indexes after the one you deleted but i need to check the code
if i shouldnt use table = G.jokers.cards then what should i use
sorry im kind of new to this balatro shit
-# emphasis on the "think"
local newTable = {}
for i,v in ipairs(G.jokers.cards) do
if v ~= card then
newTable[i] = v
end
end
ooooohhh that makes sense
you can just check that v ~= card there
oh yeah, you can put that in there too
then use pseudorandom.element on this instead of G.jokers.cards, and it should work just fine
let's go
or doing the message
let's not go
mhm
if
context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = localize == ('Guts'),
colour = G.C.CHIPS,
card = card
}
end
if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS}
end
if context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message = localize == ('Harvested'),
colour=G.C.Mult,
card=card
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
chip_mod = card.ability.extra.mult,
colour = G.C.MULT}
end
end```
BAM
-# ?
please space out your lines accordingly 💔
change the first "j_hpfx" for "j_hpfx_choker", that's the default
it does
why is
mb
yeah i was gonna say that too
why are they separate lines lol
i kid you not i forgot to put it back
lua doesn't care though
other than that it look fine
it doesnt, BUT WHO DOES THAT 😭
now to make them actually move
here we go
starting today, me
i will turn you into a self-insert legendary joker.
oh wait card.ability.extra.choker should be card.ability.extra.new_key
anyways uhh why they no movey or do the funny messages HMMMMM
i copied the code from banana stand from neato jokers but it still produces the same error code
calculate = function(self,card,context)
if context.end_of_round and context.game_over == false and context.main_eval then
card.ability.extra.money = card.ability.extra.money - 5
card.ability.extra_value = card.ability.extra_value + 5
card:set_cost()
ease_dollars(-5)
if money <= 0 then
G.E_MANAGER:add_event(Event{
-- mostly a copy-paste from gros michel
func = function()
play_sound('tarot1')
card.T.r = -0.2
card:juice_up(0.3, 0.4)
card.states.drag.is = true
card.children.center.pinch.x = true
G.E_MANAGER:add_event(Event{trigger = 'after', delay = 0.3, blockable = false,
func = function()
G.jokers:remove_card(card)
card:remove()
card = nil
return true
end
})
return true
end
})
end
end
end```
wait did i put that
why do other peoples destroy effects work and mine dont :(
I DID 😭
instead of remove_card and remove try card:start_dissolve()
OK NOW moment of truth
so like how should a localization file look like?
look at balatro's en_us.lua
read the docs
N', how do i turn on the uhhh
check how many events r running + fps thingy
on the top left corner of the screen
debugplus setting
still G.jokers:card:start_dissolve(card) or just only card:start_dissolve()
second one
is it concerning for my jokers to have 2 functions in update (its just for changing vars)
honestly
tags :3
im somewhat proud of the rats
sad
beside the fact they're not moving or doing the messages...
maybe i gotta whip these guys awake HMMM
(jk)
peak, show me your code again
-# please tell me you fixed the cursed indentation
i actually cant read your code when it looks like that
no offense 😭
i cant see the indentation on mobile so im immune
uh
ghhhh
i could try to fix the indentation myself lol
if context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = localize == ('Guts'),
colour = G.C.CHIPS,
card = card
}
end if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS}
end if context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message = localize == ('Harvested'),
colour=G.C.Mult,
card=card
}
end if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
chip_mod = card.ability.extra.mult,
colour = G.C.MULT}
end
end```
OASDM
that looks normal?
im sorry, im laughing rn
except the end and if being on the same line
how is this normal 😭
oh i didnt see that
because everything is unreadable 
💔
wait
immune to pain because im always in pain type shit 😭
did you forget to copy the full thing or is this missing a final end statement
i suck
yeah but seriously, the fact that N' can still read code on phone is really impressive
what
...how do you suck at indentation
erm
shhh
theres no end statement to calculate = function(self,card,context)
this was actually the price for being this good at UI.
they can’t read on computer it’s unreadable for them
there is
where
you might be onto something there
i can read but i dont know how to type
if you forgot to copy it
peak, real advise: you should learn how to properly indent your code first before anything else 😭
the messages is probably due to uhh the lack of localization file
i think my handwriting carried over to code
this is truly saddening
how does that happen
its 9:34pm i think im gonna hang up the towel and say i did well enough
💔
i would get an autoformatter
still looking for any insight into this, if anyone's interested.
really the only thing noticeably different that I can think of between when it used to say "Find this Joker from the Soul card" and now, are the Steamodded updates. I am on the current release version.
idk
i didnt figure out how to destroy the card but i fixed the price problem they were having
get an autoformatter, like N' suggested
no, but it will make your code much easier to read and debug
yay
-# i actually cant help you exactly because of that, sorry...
uh which do i get
dont worry criticism is allowed
AHAHAHAHAHAHAHA IT WOR--where's my description?
somebody ate it
well at least you got the most difficult part
immaculate dev vibes
@red flower after 30 painful minutes of brutal brainf###, i added new vars that tell jokers to give hands/discards when they are added/removed, as well as giving more hands/discards when their eidolon is increased :D
very true PLUS the color change works
the code auto handles all of that too, so i just need to add those and it works
yipee
im really proud of you but im too tired to understand a single word you just said
im dying
i dont have one myself, N' is in charge for that one :3
what editor are you using
fair, you will probably get a seizure playing my mod rn lmfao 😭
yeah that's not for lua
oh
search lua
i wonder if the js formatter is for lua /lh
found it yay
dang
00:40
you live on the other side of the world
should head to bed
N', is this gud
i use the one by sumneko or something like that
hm
they made the lsp i think
yeah me too, but im curious whether theres better ones
so im gonna have to update this for the genui right?
hmm
you forgot the after pic
i think that should still work
im not sure why it's not
maybe something with the metadata file?
not metadata im stupid
localization
yeah remember
its cat
for somer reason this isnt picking up the second variable
oh wait you are right, you want the _alt localization to be the same as the not alt
put this in the other description too
imma take a break
so we want two entries
but make them the same anyway
but it's because they have two different ids
yeah because one of them doesn't matter, the name is the important difference
...i see why its 1 hand now
:3
:3
:3
yes
im spreading the :3 disease :3
you got too silly
Or I’m overwhelming the code
Most?
its probably some obvious incorrect stuff in there IF i can read it 😭
Also I need this break because my head is hurting
yeah its all good, you should take a rest
Thanks for helping
ok moment-er of truther-er
im trying to get the selected joker to do the animation where it turns into a different card
it like flips over
does anyone know how to do that
you need events for that
yeah
i had an example but the flip was ugly so i deleted that part
[manifest]
version = "1.0.0"
dump_lua = true
priority = 10
[[patches]]
[patches.pattern]
target = '=[SMODS _ "src/game_object.lua"]'
pattern = 'self.full_path = (self.mod and self.mod.path or SMODS.path) ..'
position = "at"
payload = "self.full_path = (self.path_prefix or self.mod and self.mod.path or SMODS.path) .."
match_indent = true```
ended up making a smods patch to let me load spritesheets from other mods, hmhm
Adds support for path_prefix
to this day i still dont know where the card came from
ALRIGHTTTTTTTTTTTTTTTT
53/52 cards at the end 👀
it really came from the abyss and joined my deck
ok question does the same dynamic change thing work with the tag? like can i hide the mod tag until you already have it in your jokers?
the tag does in fact... give it away... 😭
No like
It gets replaced?
probably
idk how tho
guess i’ll do some theorycrafting
cause i can’t really trick people if you can see the mod tag on the joker 😭
try this too
this isnt really a problem i can show off because it's a problem of something Not Happening- i've replaced the Tarots.png in my retexture, but the planet and tarot cards, uh. aren't reskinning themselves. and i have no damn clue why
anyone got any ideas?
ok so i’ll replace it with air ig or sum 😭
joker:set_ability("j_key_of_the_other")
oh that's
oh, that works?
also N', you should really take a rest
bro sold his soul for this knowledge
i personally stay up late until 4 a lot, but its probably really unhealthy for you and others overall
nope i was slightly wrong
im 70
ZEHHAHAHAHAH
“and others” N’ staying up is killing me actually i’m dying
i’m 4
I’m fresh out of the womb
YEAHHHHH
AT LEAST ITS A PERM FUNCTION, NEVER TOUCHING THIS SHI AGAIN 🗣️
My problem with the rats kinda remind me of SOMEHTING…
Hmm
Crazy?
I was crazy once.
ok so uh i've been having this error pop up everytime i want to play, and for context on how this happened:
i was planning to make jen's almanac high score ambients into a mod and obviously failed, and decided to call it off, but even after deleting the mod folder off of my mods folder, it's still asking for a jen's almanac function
did you turn off JenLib
i'm planning to use jenlib for the mod i'm trying to make, for a community i'm in
since i'm gonna use tetration and hexation
well, the people who are behind these ideas decided to make some tetration jokers
yeah, it's inspired by jen's almanac
also there's this and i don't know what they mean by this
the downscaling of food jokers
:3
So do I need for a new file for the auto formatting or nah?
totally not inspired
Totally!
never used it myself, try reading an instruction
bepis......shenanigans.......huh?
Hmm
:3
Sussy
not inspired
Imma need to see your mod stealing certificate
the backspace:
I feel like this joker could be a mod of its own.
Just sayin', though.
cool status it's so helpful lmao
The detail of the objectives will be given in info_queue.
really cool, ngl
saw "roll 2 dice" and locked in
ok so i did this and now the game crashes on startup because card has a value of nil

Your rarity missed a ,.
missing comma in a code
yipee
how fix helpe pleas
HE EXISTS
HE EXISTS
is that a censor on the image or is that in game
if that's ingame im BEGGING you share the method that'll be so useful for what im doing
Probably something like {X:black}-----{}
i'm just copying and pasting code for jen's almanac for the hexation color text but it looks like that
^
since it's the only joker card with hexation in jen's almanac afaik
thankyuhhhhhhhhverymush
But the quadruple ^?
Oh, nvm
-# what does afaik mean actually
there it is
every time i try to reference a custom joker from my mod it crashes and shows this
anyone have any ideas why it happens?
big number
literally just fixed this myself, make sure the closing brackets and commas in your localization file make sense
localization file?
yur
actually yea whats a localization file for?
if you don't have a localization file its prob something else
its for doing multiple languages, i just am using it because i like having my code and descriptors seperate
oh okay
yeah
btw do you know why my joker doesnt have an animation or doesnt do the message?
i just put loc_vars into the main file
do you have a message set in the return?
messages aren't automated, they need to be created c:
i dont think so
how to do that?
message = localize == ('Harvested'),
i got this for message
ur using the wrong equal sign
yea
no equals between local and harvested
but whe i use the = its underlined red
really??
mhm
i think its message = localize ("Harvested!")
not even a space really
message = localize('Harvested'),
but you can have a space that doesn't matter
so like this?
yur
oh
like that
wow
but yeah why don't any of my cards have center defined when i try to reference them
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
same with this?
yea
yur
thanks
no prob c:
and the message is now error
like this (localize('Harvested')?
no
im talking abt the second message
hold on
you could also do message = "Harvested"
if you don't feel like touching locs
yea
k
its what they did for gros michel 2
k
also
my brackets and commas are just fine
okay now the guts part and the chips is working
but not the harvested and mult part
i'll send code for you to see
if context.discard and
not context.other_card.debuff
then
card.ability.extra.chips = card.ability.extra.chips + card.ability.extra.chips_mod
return {
message = "Guts",
colour = G.C.CHIPS,
card = card
}
end
if context.joker_main and card.ability.extra.chips > 0 then
return {
message = localize { type = 'variable', key = 'a_chips', vars = { card.ability.extra.chips } },
chip_mod = card.ability.extra.chips,
colour = G.C.CHIPS}
end
if context.discard and
not context.other_card.debuff
then
card.ability.extra.mult = card.ability.extra.mult + card.ability.extra.mult_mod
return {
message = "Harvested",
colour=G.C.Mult,
card=card
}
end
if context.joker_main and card.ability.extra.mult > 0 then
return {
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } },
chip_mod = card.ability.extra.mult,
colour = G.C.MULT}
end
end```
btw my indentions
suck
as you can see😭
mult_mod = card.ability.extra.mult,
message = localize { type = 'variable', key = 'a_mult', vars = { card.ability.extra.mult } }
i did this and this worked for me
why is this happeniiiiinnnggg uuugghhhh
still no-one knows anything?
please use new calc returns
i wonder
How can I detect end of round?
context.end_of_round
I want to exclude a specific card from showing up in a booster pack, is it possible?
in_pool
not sure if it's done like this and if it'll even work because funny jenlib crash
How would I get the number of jokers that have activated this run
to add to the mult
it'd be like? checking for the booster and then returning false ?
in the in_pool
else return true if not that booster
is there a way to use a custom rgb/hex in loc txt
even after disabling jenlib, it still crashed
Yep. Pass it in as the first member of the loc_vars.colours table, then use {V:1} instead of {C:colour} in the loc_text
This is used as a reference too, so if you change that colour later, it'll update within the text, so you can do fancy rainbow colours
convinient because the joker i am making is not exactly of a sober character
Thanks, but I have a problem.
There is a line "G.GAME.probabilities.normal = G.GAME.probabilities.normal + 1", I suppose that after 1 round it will be equal to 2, but it becomes equal to 8
how do i get the cards selected when a consumable is used
I think that 7 times
maybe try adding "and context.cardarea == G.jokers"?
does anyone know a good way to crash the game on command i dont want to relaunch via steam like a normal person
like with debugplus eval or something
hell yeah thanks
After adding this, the number started to grow even more.

