#making-mods-general
1 messages · Page 398 of 1
?
Use data layers (the mod) to show accessible tiles
qi dissaproves i'd imagine
i can't just make them impassble somehow right? i need to like, change them

the Buildings layer blocks passage, so you can just put the same tile (or a blank one) on that layer
cheating,,, i like it
hey! I'm trying to make a dialouge mod, how would one make it so that there were multiple possible dialouge options for one prompt? (I'm aware of the $c thing btw, but it's too restrictive) like for example, instead of having one ipossible line for the key "spring_1", i could have multiple responses.
not sure if I put it right, I can explain further if I was unclear!
if you're not using tools the game itself is aware of (like $c), then you can randomize the value of the key by using one of the layers available to you before the game sees it: CP's Random token and/or i18n
is there a resource that explains those? I'm very new to this lol
here's the documentation for content patcher's tokens: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md
was just gonna ask where random is in docs
and here's one tutorial about using i18n for this purpose https://stardewmodding.wiki.gg/wiki/Tips:_Using_i18n_for_Easy_Dialogue_Randomisation
ichor too quick
this might help if you don't know much about i18n: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Translation
Thanks! I've genulinely got no clue what I'm doing lol, just mimicking a random dialouge mod using the wiki as a source
fake it till you make it, as they say
if you need any specific help with something feel free to come back
im going to check if my map is escapable now... 😭
I am lol, appreciate the help here!
uhm,, i have earthy enabled
it looks good tho!!
ty
-# don't ping me in reply please
never do this map makers. this just leads to recolor incomp

yay
thoughts on the map?
I think it looks really nice!
I think you can still chair out through diagonals

But that's a Feature so dw about it
Yeah, I would put a secret somewhere if you did that or something. Could be fun!
It's nice! maybe add some background (idk the word sorry) to the land though? it looks a bit like an island
chair clipping is sacred, to me
using a chair hard
Claude this is a summit replace
chair clipping?
It's gonna have a bg bc it summit
it will have bg 
You should try it in your perfection save
oh crap
nw
heh sorry forgot it was an addition/overlay
iz alright 
(but if u wish for a panorama bg on custom maps i got just the thing order now from 1-800-mmap)
placing and then sitting on a chair to get out of bounds. use it to get to quarry mine early, for example
now to test with my 280+ mods
Silly question all - wondering if anyone else has seen this issue. I added Mahogany seeds to my FTM foragables... and players cant pick them up. They just... sit there.
oh yeah I was missing the placing part lmao
Everything else works fine
i don't need to load my map if i'm just replacing it right
I can add stumps. Yeah
Nope EditMap is all u need
\ (ed: please forgive this. a rare cat intrusion)
Oop @
ok. So I should replace the mahogany seeds. Simple enough.
let them write code
kewl. there isn't some kinda unknown when condition to make the map change only when the player reached perfection
or is there
There's mailflag right
offense intended (lovingly) to my cat, he too dumb
Hey that's offensive to those of us who are likely (arguably) dumber than your cat....
so am I and that doesn’t stop me /j
and can still code
I think he can do a harmony skipping prefix, as a treat

if chatgpt can occasionally accidentally give code that compiles, so can he
right how do i use this
When HasFlag
"HasFlag|contains=Farm_Eternal": true
you can also just do "HasFlag": "Farm_Eternal" if it's your only one but i am in the habit of just doing contains every time
For my own records, don't you have to identify the player triggering it? ex. "When": {"HasFlag: CurrentPlayer": "ccPantry"},
for multiplayer?
i dont know. Im remembering what I read on the wiki and has worked for me. So im not sure about nuance
you don't have to specify
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#target-player
yes, if you need something other than the current player. current player is default
it defaults to current player
first time I've heard of this, but yeah, apparently it's a bug with seeds(?) as forage, I'll see if I can reasonably fix it fwiw
seed bug
you can pick them up by hitting them with a pickaxe, but not ideal
see how would i publish this mod, is in itself is a spoiler
(and requires you to click past them, it won't swing if clicked directly, misconfigured items tend to do that)
no glaring red errors 
Well Im glad I accidentally helped. I was trying to fix it myself and was getting mad
welp, i have rtf
don't know if this happens if you install the mod without reaching the summit
or how i;d adress that
quite nice :3
ignore my skirt being in front that's fs
or not

whyyyyy
i didn't touch the bench
is it just not tall enough for some of the sitting animations
wait, is there a missing tile when you load it into the game?
mind if I circle it?
fuck
That's where you go when you need peace after taking the time to get perfection. Stand there and jump
tis unpassable
to be fair to myself this is a tile
it's just like, a mistake
reminds me of myself atm

i didn't change the map dimesions or anything so perfection scene should be fine?? can i like, trigger it
you can't ebi it, since it's built in code when needed and isn't in the data files
if you remove the mailflag Summit_event and set the flag Farm_Eternal, then enter the summit, it should play
i have perfection so should be fine. do i use my mod to remove it? how
debug seenmail Summit_event false will remove a flag (in this case, Summit_event)
alright lettuce try
Instead of certain things being "this tile index on this tilesheet", making them Actions instead

Oh those specific ones right
Shane's indoors
Indoors shane....
shane is more of an outdoors boyfriend
Hm I didn't realize there's like, a line there
yeah,,,
there's prolly a mod to edit the sky
you shouldn't have an outdoors boyfriend. you should always keep your cats boyfriends indoors because otherwise they're kinda environmentally destructive
Is that supposed to be the horizon
C#
In the mmap panorama thing I didn't implement this line and just let the gradient stretch
yeah it always read to me as an ocean view
or is that not in the perfection event
Are you using custom menu background or something?
yes
Well thats probably why it looks funny
buh
Followup in case it helps: Any objects with "Type": "Crafting" or "interactive" in their Data/Objects entry will probably have that pickup issue. You can work around it by spawning them with FTM's "item" category, e.g. like this:
"SpringItemIndex": [
{"Category": "Item", "Name": "Mahogany Seed"}
],```
(I've found the code causing the issue and I'll see about fixing it in future updates, but it may take a while due to ongoing reworks)
PS: Items spawned this way will expire overnight by default, so I'd recommend using `"DaysUntilSpawnsExpire"` to keep them around longer (e.g. `"DaysUntilSpawnsExpire": 0` to make them permanent)
And the mountains and... Stuff
stuff
#nevergonnagiveyouup
perhaps i simply yeet CMB
oh wait
event with spouse is fine but... after ||it just kinda pans up and the map no longer shows||
i kept og map for nothing
i went to check this and debug perfection gives you all the things required for perfection but does not set the flag (or the other flag). to get those you have to sleep a day; then in the morning you can go to the summit
no spouse gets you Lewis (cc) or Morris (joja)
does perfection finish the cc
Well u need it to unlock ginger island
Alguém pode me ajudar nisso por favor
O meu SMAPI não funciona no meu celular
Já baixei nova versão dele
Mas não funciona no meu celular e 32 bits
Não consegui achar um SMAPI que funciona no meu celular
I can't read this but 32 bit and SMAPI don't work
yeah but does it do it via normal means or joja
Bea you need to have CC to get perfection
Normally yeah but with cheats and mods you're capable of doing anything
Also you're perfect the way you are
public static void Perfection(string[] command, IGameLogger log)
{
Game1.game1.parseDebugInput("CompleteCc", log);```
so the first thing it does is whatever `debug completecc` does
well i assume it does what it wants. suppose i'd just check
debug perfection might still have issue with certain custom NPCs, but in general, that + sleeping once should work & avoid the qi cheat thing
(last I checked, the command missed conditionally social NPCs in particular, e.g. someone in SVE)
maybe NPCs with unlock conditions too, since it manually spawns Kent/etc to cover the base game
also yeah, it completes every bundle in the CC and remodels the place, afaict
Lol it misses dwarf
it does befriend dwarf in testing, they exist and count as social from the start & ig the language thing doesn't affect it it gives you the translation book
went before making it official to see if me patch works
not sure if friendAll works without the full perf command tho
oh no,, i've got 100 scenes to get trought in my home
okay yeah, friendAll reveals dwarf on its own but doesn't befriend them 
how dare it, he is friend shaped
fuck
do you only get the flag when you get the achievment

i want it to work when you reach the summit
heck
What if qi just kicks u off in lush foresty summit
yeah don't really need the when condition
oh well
i do wonder if the forest itself loads,,
tree might require new save
Yeah that's the downside of paths trees
sadge
suppose i could make this for new saves and another one with pre-planted onces for ongoing ones
i can't use betas to make them spawn in right
or can i
still no su though
BETAS is for destructive uses of terrain features only, it cannot create
was worth a shot. thanks button
seriously should there be a sun
why no sun 
farmer can do this
this is a feature
is there a way i can add the sun to the panorama thing or is that c#
wait u told me ebfore it is

spin
I dunno, I think mmap's panorama might work in a "bonk the entire vanilla panorama" way?
i'll give that a go
You need to add the customfield to the location data
But honestly it's a long shot, I'll test it myself later and tell u how goes
thank you chu 
Interesting that everything has 3 views because they just mirror the right facing, except shirts. They have all 4 frames drawn manually.. wonder why they didnt just mirror the shirts like everything else
I guess because the shirts are asymmetrical huh
I guess it's because the animations of the arms aren't the same when the farmer is facing left vs right, so shirts would need all 4 directions drawn
I dont think the shirts actually interact with the arms in the sprite, do they? It seems they just overlay the 8x8 area on the chest of the farmer
Some do iirc? Definitely not all of them
I know fashon sense has a ton of big sleeves
Oh fuck sleeves
King Kai, the game mutates specifc pixels on the farmer for sleeves based on three pixels on the shirt
omg what
Im seriously considering not using humans for my mod, trying to recreate farmer construction is proving to be way more difficult than I anticipated
Reject humanity embrace goos
My original idea was to use Junimos, but I got ambitious and wanted randomized humans so I thought of trying to recreate the construction of the farmer, and using the randomization function from character creation
Wanted the town to really feel alive
here we see a developer in its native habitat encountering FarmerRenderer for the first time /lh
Wish I had known how cursed it was beforehand 😅
Can SpaceCore apply category text to items that usually don't have it? The Auto-Grabber doesn't usually have it but Calcifer can apply category text, SpaceCore however doesn't seem to be working unless I messed up the formatting (I don't think I have bc it works on seeds)
https://smapi.io/json/content-patcher/386a36e4a7c34911bb00d114c2ce3fe2
terrifying
About to throw in the towel on human NPCs 🤣
If I am trying to modify an existing event with the Load action, what do I put for the target?
New quote added by atravita as #6568 (https://discordapp.com/channels/137344473976799233/156109690059751424/1407092044077338755)
you Target the asset the event appears in (e.g. Data/Events/Town for an event that occurs in Town), but you don't use Load to modify an existing event. you want EditData
oh ok. how would I modify it using editdata? with entries somehow?
ok. and I could modify an existing event with it?
Really a huge bummer how cursed FarmerRender is
Should have been real easy for me to stitch up random NPCs
would I be able to edit a modded event?
yes, if your patch occurs after the other mod adds their event
ok
i dont really understand how to EDIT an existed event with EditData
you would just make your key under "Entries" be the id of whatever event you want to edit
Dear content patcher. Please give me the ability to have my mods auto water and auto fertilize without having to learn how to do it in C# kthx
oh ok simple enough
and that would directly edit it?
it's the same as adding except you don't have to load a blank first
oh
that would replace the entire event with whatever you write there
ok nice thats what i wanted
do keep in mind the etiquette of handling other people's NPCs and characterizations and stuff, but yeah technically speaking it's simple
Content patcher isn't gonna grant you that, you need to wish upon a C# mod to add the tractions
Logically I know this. But I would rather blame content patcher because it’s funnier (to me)
Cloudy Skies
Maybe dwarves instead of junimos O.o
I’ll take a look. I am trying to add an auto water feature to my greenhouse. So if that works I’ll be happy
Replace junimos with colored dust sprites and I’m sure you’ll find a number of fans haha
Dust sprites? haha
oh I misread
lmao
Doy
nope, misread the second time? been staring at code too long.. I know what you meant rofl
Dust sprites are cute... hmmmm
Haha. The number of times people in modded farmers talk about wanting dust sprites this or that…..
I was going to have human sized buildings for the mod, junimos or dusts will change that completely
I might roll with dwarves tbh, they atleast seem like they could live in a house
I think you should probably focus on the mechanical parts
I have a lot of the mechanical parts done, I am just hanging myself up on this tbh
I should move on
I was gonna try to modify events in my mod, when you have a config option enabled or disabled. Would it work if I just used a When condition?
Re shirt sleeves
You need to dynamically recolor the arms if you want base game logic
But you can also slacc n just draw those (in exchange for not being able to use the vanilla shirts spritesheet)
yes a When condition is how you implement config options, but i'm not sure leaving it up to the player is the best idea. you might run into issues if they try to configure the events to be modded but they don't have the other mod installed, for example
no I'm making a config option for my existing mod + the events are not released yet either
these are two separate mods, both by you? is either a dependency of the other?
no it is 1 mod by me
I think drawing randomized human beings is more hassle than it is worth right now
okay then yes a config option would work
Draw like, grab the arms and hueshift em ahead of time 
Ok, would using a when condition to include a json with the events be my best bet?
you would need two patches for Data/Events/wherever though
in the same file or 2 seperate ones?
explain to me the two config options so i know what you're trying to do better
No it is one config option, that when enabled it allows you to skip the quest events in my mod
By skipping I mean like having the skip button when enabled
to simplify things, why not just always have the skip button enabled? that way players can choose to skip if they want to, no need for a config
and if they don't want to skip the events then they don't click the skip button
sure
just trying to save you work haha
Haha yeah, that would probably be better anyways, its what the base game + mods usually do
exactly

Trying to replace the catagory on a Crystalarium using Calcifer:
"21": {
"CustomFields": {
"sophie.Calcifer/Category": "{{i18n: Machines.category}}"
}
},
However I'm getting this error:
[Content Patcher] Can't apply data patch "(CP) Auto-Sorter Building > Include Utils/UtilsLoader.json > Include Utils/BCCatOverride.json > Califer Catagory Overrides for machines" to Data/Objects: there's no record matching key '21' under Fields.
I know for a fact Calcifer uses unqualified IDs cause that's what the other re-categorised items used, 21 should point to Crystalarium right? It's also occured for many other big craftables, however other big craftables have been re-categorised sucessfully
They're in another location, Data/BigCraftables, that's not annoying at all🤦
yeah all the big craftables are in another json than the objects
does someone happens what happens if you have a gift taste reveal in a dialogue for a yet non social character?
like for a character who is hidden in the social menu that the player hasn't met yet?
yes, or with a GSQ not yet true for the socializing part
seems like it'll still add it to the list of gifted items for a specific character, but as far as i can tell that only really would be visible on the social menu, so if theyre not on the social menu then it doesnt matter
i didnt see anywhere that itd stop itself if the character was unsocialiable but there is a possibility i missed it
so, i have a question... i've often seen mods around that add new items to stores, but is there a way to remove an item from a store?
you can set its entry in the Items list to null with Content Patcher, and that will remove it
oh okay, good to know
can also set its sale condition to "FALSE" too which will make it never show up, which may not be a bad idea to prevent other mods that edit that entry from giving warnings in the log bc the item no longer exists
ah, that's good!
if it's your item, you can also set a flag on buying it
and then use this flag as condition to not be present for the item to show
is there a game state query to check if one of certain mod's config options is enabled/disabled? (i know there is the When condition, but im looking for a gsq)
it is my own, and I need the gsq for making a custom Central Station tourist conditionally spawn (idk if you can use when conditions on central station tourists, but if you can that will solve my problem)
you can use tokens in GSQ
oh XD
so if your token can be read as true/false it's useable directly in a GSQ
and all tokens can be made to read true/false if you add the |contains= part
(thanks nic for the proper documentation!)
if it doesnt read as true/false to begin with
oh yeah good point
Ok good to know
also, When conditions can be placed on literally any patch. though ofc you'd need to look at CS's documentation to see if it specifically says they should not be conditional
(but i doubt it)
doubt what?
i doubt they cannot be conditionally patched in
if CS supports GSQs in conditions you should use those. i was only saying it so you'd know that there is no need to wonder if any specific mod supports When conditions. its not decided on a per-mod basis. its a content patcher feature
ok. lol im a bit new to GSQs, how would I check if a config is toggled with GSQs?
I know but how with that 
i can't format it for you without knowing your config options or where you're trying to use the GSQ
try writing something out yourself and feel free to send it here to be checked
Ok. I gtg, I'll be back in like 30 mins, can I ping you then?
sure but i might not be around
Ok
I'm trying to replace the category for seeds from a mod called Alchemistry however I can't seem to figure out why this isn't changing the category, it works on vanilla seeds and I have the mod as a soft dependancy, I think I have the seed ID correct:
{
"LogName": "Califer Catagory Overrides for Alchemistry seeds",
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
//Spring Seeds
"Morghoula.AlchemistryCP_AddersTongueSeeds": {
"CustomFields": {
"sophie.Calcifer/Category": "{{i18n: SpringSeeds.category}}"
}
},
},
// "When": {
// "HasMod": "Morghoula.AlchemistryCP"
// }
},
calcifer has categories?
Category overrides yep!
is it released?
My mod? or calcifer? Calcifer is released, but this is an update to my released mod
no i mean, is calcifer nexus on the version that has this feature 
ppl typically use spacecore for this afaik
(this may or may not be relevant to you or the issue, but the way you currently have your json set up is overwriting the entire CustomFields dictionary)
There's not much documentation reguarding Calcifer but it's being work on, oh and yes it does have this feature, I know for certain cause Another mod uses it
(i was also surprised to hear Calcifer had this feature recently)
That is pretty relevent, I didn't realise it was overwriting the entire thing
you'll need to use TargetField to drill down into the CustomFields part
ok i decompiled to double check it is there 
why decompile, the source is available
the reason why i was worried is cus, last time i told someone calcifer has stats token
its in their docs
Heres a link to the unfinished docs https://github.com/sophiesalacia/StardewMods/tree/main/Calcifer
but soph correct me that it's not there on nexus version
hence decompile to make sure it's in the released version
this is the first i heard of its stat token as well, its amusing to me that unlike the EMP stat token, it does go through the effort of checking whether or not anything changed in its UpdateContext function, but like EMP, it does not matter bc it will return true practically always anyway
anyways back to your problem do u have spacecore too? maybe its getting bonked
both spacecore and calcifer just prefix skip Object.getCategoryName
oof
With using TargetField do I have to have seperate "Action" sections?
well actually, let me double check spacecore, it might be a postfix
yea you do
I do have spaceCore but it isn't interacting with the catagory, I'm adding support for if a user has either of them, Calcifer or SpaceCore
ok yeah spacecore is a postfix, but it only works if its in ObjectExtensionData anyway
yea ok not that problem then
oh no that's so much more rewriting
so SpaceCore will override Calcifer if the user provides both but spacecore wouldnt be removing calcifer if not
they wanna support both
i guess you'd have to init the asset too so it's kinda annoying 
wdym init it
im pretty sure just using Fields and providing the itemid will create it if it does not exist already
and if it does exist itll just edit the one field
i thought it had to have an entry
I do want to support both as a soft dependancy, and only if a config option is enabled, everything works, except modded seeds and the fact I'm overwriting the "CustomFields"
an entry does not need to already exist, one will just be created with default values
at least, this is what i was told and iirc what i recall successfully testing with CMF
or maybe im conflating targetfields behavior with fields
anyways atlas it does look like u r put in right data
do usual sanity check things like patch export ig 
harmony summary and check for getCategoryName if u wanna be extra sure
I seem to have forgotten how patch export works
patch export AtlasV.AutoSorterBuilding
[Content Patcher] Couldn't load asset 'AtlasV.AutoSorterBuilding' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.
Patch reload works with that ID
you need to put the asset name, Data/Objects
Whoops, thank you
comes back with "CustomFields": null
It's being included correctly bc vanilla seed cat overrides are in the same json and they're present
it's applied the old seed cat override json and not the new one? shouldn't "patch reload <PatchName>" invalidate those and reload the new ones?
omg
I'm in the wrong folder
I've been restructuring things for over an hour thinking that it's working because I get no errors
Sanity checks 
Thank you for helping me figure that out, turns out I'm pretty good at restructuring too because I only had 1 error, Target path was wrong
@inland rain hello I am making a mod called Have More Kids that changes the childbirth system and I'm looking into adding support for free love.
Looking at Pregnancy.cs here I believe my custom night event replacing which happens in this postfix gets bonked by the skipping prefix in free love. There's a few things I can do:
- I send in PR to have free love do no pregnancy changes when have more kids is installed, and use free love api on my end to handle picking a spouse to get pregnant
- I send in PR to have free love call have more kids api that I'll make up for this
- I do some reflection/harmony nonsense
What do you prefer
Is there a specific way to write "When the game is in multiplayer" in Content Patcher?
i don't believe so, what is the context
Finally getting to the bugfix for DNR's Winter Star date bug where switchevent doesn't work in cabin
trying to only load Data/Events/Cabin when the player is in multiplayer mode
The actual patch ins I can do easily - just patch them when "IsMainPlayer" is false
But I need the load to probably happen on main player as well with 2+
if there's no Cabin doesn't it not load regardless 
or do you specifically want it to load only on the host
I want it to load on everyone in multiplayer, but if the game is singleplayer, not load it at all
but if there's no Cabin location in the world then the patch never applies right
Wouldn't it throw a (user-facing) error?
No
anyways i know theres gsq IS_MULTIPLAYER
could to the ol condition a mail flag on it trick
i just dont really think u need to 
Nah, if atra's saying it wouldn't throw an error then you're correct chu
I can just load it regardless, no issue, and then just patch in if "IsMainPlayer" is false
well im glad atra is here to vouch for me 
And it'll work for iterative testing, too. If I have to change things for the Winter Star date then I can leave the regular date for the person in the farmhouse, but patch a different date end for the farmhands
Thank you both of you
to elaborate more on never applies, an asset like Data/Events/<event location> won't actually load for real until something requests it, usually in C#
I'm also very dumb so
which could be an informational mod like event lookup ofc
but since it is an events asset it shouldnt do anything until you go to <event location>
(You can make cables in single player(
true. The fork would fork properly and never require Data/Events/Cabin and the IsMainPlayer stops the Data/Events/Cabin EditData
How I didn't remember this is beyond me - my singleplayer farm has three cabins
yea im not sure how you'd like
prevent another player from activating the cabin event 
sorry, my singleplayer vanilla farm*
I think the Farmhouse data asset for events will only trigger an event for the player's house
I think my code can be changed; it seems there is a new method I can target instead of that one
nvm it's complicated :/
Ok i send in some kinda PR then 
I think first option is probably easiest, and I'll populate the same npc parent moddata field on my side
Hello - does anyone have familiarty with the BETAS framework? I'm hoping to make myself a dirty update for a mod that uses Stats as Tokens (currently outdated).
you don't need BETAS to read stats
It seems Content Patcher isn't detecting something in Data/Objects or I haven't done this right, I'm getting this error:
[Content Patcher] Can't apply data patch "(CP) Auto-Sorter Building > Include Utils/UtilsLoader.json > Include Utils/Calcifer/AA_CalciferLoader.json > Include Utils/Calcifer/Seeds.json > Califer Catagory Overrides for Alchemistry seeds" to Data/Objects: the field 'Morghoula.AlchemistryCP_AddersTongueSeeds' doesn't match an existing target
With this code:
{
"LogName": "Califer Catagory Overrides for Alchemistry seeds",
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": ["Morghoula.AlchemistryCP_AddersTongueSeeds", "CustomFields"],
"Entries": {
//Spring Seeds
"sophie.Calcifer/Category": "{{i18n: SpringSeeds.category}}"
},
"When": {
"HasMod": "Morghoula.AlchemistryCP"
}
},
Morghoula.AlchemistryCP_AddersTongueSeeds Does exist in Data/Objects as I'm actively looking at the patch export
but if you specifically wanted them as CP tokens, use EMP
did you add a false dependency on Alchemistry for your mod
I did
You could also use a transpiler to catch the result of the method in _newDayOnFade
I do that a lot
it's an enumerator though, so a bit tricky to catch
this seems worse than me just patching the relevant free love methods with a skip prefix
and very easy to break, when a skipping prefix is not always the worst choice
but since u r active instead of invasion we should do diplomacy 
well, yeah? thats what makes them broken lol
Also, does what you said mean that the game engine has tokens available for a lot of the local player's stats? I could just edit a content.json to the game's reference for those stats and then I wouldn't need "Stats as Tokens" or some framework like that?
if a transpiler doesnt run thats pretty detrimental to a mod
well, it shouldn't run if the code has changed
so stats is just a look up from some string to some number
also a skipping prefix is less likely to need an android specific patch
game uses em to count stuff, and mods can add stats
the native game way to check stat is a game state query called PLAYER_STAT
this you can use in various things that check gsq, for example shop item
a skipping prefix is the most ham-handed solution
I'm not sure I can avoid it here though
Does the game natively record how much of each monster slain / fish caught / itesm foraged / seeds planted / crops gathered / rocks broken
skipping prefixes are overhated ngl, unless it's one of those that reimplement the entire base function because the author can't/don't want to use transpilers
the Game State Queries wiki page has a list of stats the game uses
in the docs for PLAYER_STAT
it isnt 100% exhaustive but iirc includes all the ones that have props to begin with in Stats.cs
Ohh it is THE buttons
Skipping prefixes are good for "do something else and never run original"
bad if its "copy paste original make 1 line change, skip original"
Okay ty
yeah that's true
i am button yes hello 
I'm just trying to make myself a dirty update of the mod New Year's Eve to where it will run without Stats as Tokens
i use skipping prefixes usually if it's a very specific case that needs to be done differently / skipped
There content.json isn't complex, it's brute force for calling a lot of the player's info for the scene
FreeLove is just messy though... much messier than I originally thought it would be going in
(also i think a postfix is by definition the least invasive)
well in Pregnancy.cs case in particular, if you had a postfix there i'd just swap out the event type at the end yea
(i hope everyone can at least agree that if you can do it in a postfix, do it in a postfix)
(finalizer)
but i'd need to reflect into free love to get the picked spouse in that case
i forget finalizers exist, but dont they not always run in some cases?
yeah but then you'd have to hope yours ran after mine
harmony ones specifically
though I probably want people to stay in the postfix box so their stack traces get marked
harmonymethod after
Harmony can set priorities
I thought priorities only work for internal priority
both by int like SMAPI or by specifying someone elses harmony id
never got it to work across instances
that said there's also differences in when spouse is allowed to get pregnant
afaik finalizers always run no matter what, importantly regardless if an exception happened or not
in my profiler beta builds I switched profiler to exclusively use finalizers instead of postfixes for its tracking and seems to have been a bit more reliable.
(i didnt know thats how you did that kind of priority without annotations, very handy to know)
would you, automagic enjoyer, use manual patching though
oh okay 🙂
sometimes i have to, unless i want to add dumb edge cases to my automagic
my automagic would fail if it was trying to patch a mod that wasnt installed, for example
b asically any time i want to conditionally patch i do use manual patching
I can turn it into a postfix, that's easy enough
i still need access to which spouse actually got picked tho
i can just reflection that but adding api prob better
the max number of kids is also decided differently, pure config option vs # of defined unique kids for the mod
yeah lastPregnantSpouse is a static field you could access
Sorry to bother again, just wanted to check if I'm on the right course
Going off of the Game State Queries page, there is the first token the mod wants to get which is total monsters killed. What it does is create a variable "Total Monsters Killed" then it gets that by going to StatsAsTokens with a Query :
"Value": "{{Query: {{Vertigon.StatsAsTokens/MonstersKilled:player=localPlayer|monster=Green Slime}} +
It sums up through the kill count for all the different monsters in game that StatsAsTokens tokenizes.
But I could just ask the game engine for that number and it would look like
"Value": "{{Query: {{PLAYER_STAT localPlayer monstersKilled}}
no, you will need Esca's Modding Plugins if you want to use it in a When condition
you cannot use a Game State Query in a When condition because it is not a token
content patcher query is a different concept
but Esca's Modding Plugins adds a token that resolves a Game State Query
it's for doing stuff like adding numbers together
you’re right.
that should be done in the matching postfix /j
localPlayer would also not be the right syntax for the playerkey, it'd be Current
maybe Chuve if I get what you're saying, the content.json isn't doing a "When" with the player stats
I think I agree there - the content.json wants to create it's own variable, and the When later uses the variable the content.json made
it's actually an If but I digress
ah no i think i confused you lol 
The Query Token =/= Game State Query
Game State Queries are a thing in the vanilla game
Content Patcher Tokens are only a Content Patcher thing
When conditions use Content Patcher tokens
"Query" is the name of a specific Content Patcher token but it is not for Game State Queries
so atm this mod is using a token named Vertigon.StatsAsTokens, you can change them to Esca.EMP/PlayerStat for the most part it looks like
im not sure about this syntax with green slime though, don't think game tracks that? only monstersKilled right
ah i see it's a separate thing, Stats.specificMonstersKilled
Must get Esca's. Got it. And yes, the plan is that it should be a one to one translation with another source of tokens.
The mod funnily enough is trying to get monstersKilled (total) but StatsAsTokens only tokenized each monster separately so the mod had to sum that up XD
MonstersKilled is the stat yes, its possible that Stats- yeah
dunno if that's accessible throuhg anything
well if you dont care then just use monstersKilled
there is a specificMonstersKilled string to int dictionary in Stats
ooh nice
or maybe not string to int idk whatever the hell a StatsDictionary is
but wont be accessible via the Esca's Modding Plugins PlayerStat token
it would be with the EMP GameStateQuery token though
through PLAYER_KILLED_MONSTERS
Yeah I was struggling to find where the tokenized stats were in Esca's github
Let me look at EMP
they do not have individual tokens
so do you prefer if i just reflection/harmony the integration 
i am fine with that it is just what if you wanna rearrange internals
you use the PlayerStat token and provide it an input
e.g. {{Esca.EMP/PlayerStat: MonstersKilled}}
idk the idea of adding api calls seems less clean - then we need one for each mod
ok, then no code change on free love side 
So what I would do is "Value": "{{Query: {{Esca.EMP/PlayerStat monstersKilled}}
need a :
and I woudl still have to find the stat from the wiki
{{Esca.EMP/PlayerStat: monstersKilled}}
and dont need the query cus no maffs
ahhh
with any luck the mod still works now
also use MonstersKilled
not monstersKilled
it may or may not matter but the stat has it capitalized
it was lowercase pre-1.6
is it
the wiki listed monstersKilled, is there somewhere else you're finding those Button?
yes all stats are proprties
thus they get property casing
monstersKilled from 1.5.6 is now obsolete_monstersKilled in 1.6+
im looking in the decompile and also ive just used stats a lot
i thought the string arg is the important one
like a decompiled Stardew file?
hence it may or may not matter. do you know how it works in EMP? bc i dont
always best practice to match the known case, imo
i still stand by this bc the capitalized version is still the canonical version. my saying to use it was never meant to be "use it or it wont work" which is why i immediately said it may or may not matter
what does canonical version mean 
its what it is in the game itself
its present in both forms but, StatsDictionary<TValue> : SerializableDictionaryWithCaseInsensitiveKeys<TValue> so it doesn't matter yay
still im psure the lowercase form is the one rendered into the save
looking at EMPs code is it not disregarding that case insensitivity?
its turning it into a plain Dictionary<string, uint>
hm terrible times 
prime example of why i think it best to follow vanilla where possible
it just doesnt seem like EMP is strictly doing that unless you think accessing Stats.Values directly is the right way to interact with stats (i wouldnt)
i only really used custom stats so in a way it is the right way 
that is definitely still not the right way why are you not using Stats.Increment
or Stats.Get
is that not what u mean by direct access
no i mean by doing Game1.player.stats.Values["My Custom Stat"] = 1
the EMP token is grabbing Game1.player.stats.Values directly
and turning it into a normal dict with case-sensitive keys
i would agree with this
which is why i find the situation unfortunate and agree yes terrible times
I probably should make that case-insensitive, but wrestling all the individual wrapper properties into a CP token seems like a mess
you can just call stats.Get
ive been told by Pathos himself before that as long as I cache the value a token returns immediately after, that grabbing it fresh in GetValues is just fine
so if i were to make a playerstat token i would likely have my own string->int dict that starts empty and fill it up as things are requested in GetValues
and iterate over that dict in UpdateContext
probably, yeah, I just preferred grabbing the dictionary instead of doing it one by one as they're used by tokens
but it's been long enough that I forget my reasoning/excuses, I'll make a note to do something with it
bonus: if you do it the fill-as-needed dict way, you could potentially not return true every time
though i guess also is there anything stopping you from just
making a second StatsDictionary
instead of just a Dictionary<string, uint>
then you'd get the case insensitivity in your cache
I'd rather just make the dictionary case-insensitive unless there's a reason 
seems like more memory for w/e the serializabledict involves
tbh i dont really understand fully how case-insensitive dictionaries work to know if theres a reason not to when copying the keys from an existing dict
which is to say: 🤷♀️
yeah, conceptually I wouldn't expect any issues, though I'll poke it a bit after the change
Guys does exist a way to look up for all items that a mod adds to the game? like for debug i need to know all items for (for example) the mod The Great Catch add
(okay yeah, I was misremembering how some of the properties worked, should be fine to switch to Get caching)
With LookUpAnything it doesnt seems to work as i can just look IF i know the item name
I wanted a filter for like "modname" and then look for everything the mod add
you can guess based on id conventions, but there isn't a mechanism to actually trace the origins of the item
Damn that's very hard when you have alot of mods and want to keep trace of what you add
LA's search mode and i think CJB cheats iirc both would work if you searched by Mod ID if that mod followd the ID convention
it may help to load a save and use the list_items command + your mod ID, if you use the conventional format
i might be misremembering in the search mode thing
This in the smapi console?
yep
CJB Item Spawner lets you search by internal name just fine, i use it to pick from my own modded items all the time
so blueberry. will show all of my items, raisedgardenbeds will do all of the items from that mod, etc
Oh thats a great little tip, I can find my stuff so easily by searching my name
i'm sure if i wasn't named after a literal fruit i could write it without the period there as well. what a thrill
at least theres only like 5 blueberry items in vanilla
ah, but we're not in vanilla, are we 
Berry true
What mod makes your hotbar sideways? or is that part of the open world mod?
i think it's called custom toolbar or something?
it toggles when I press middle mouse button, so I keep toggling it by accident
also it has a bug I need to fix rq
Oh thats pretty cool, I didn't know that was even possible, great for decorating when it always gets in the way
I lake it a lot!
So if I have a dynamic token in CP and it contains comma delimited entries, is there a way i can refer to the dynamic token to pull the value of only one entry?
procedural stuff is hard bc of all the border stuff
|valueAt=#
the lake tiles need a border inside, then a grass border outside, then the light grass needs a dark grass border
So I'm planning to add a shop and shopkeeper NPC whose stock expands with particular other mods I make installed, would there be any problems foreseen if I just have every one of those other mods have identical patch actions to add the NPC and her assets, because I don't feel they're important enough to separate into a standalone mod?
perfectly fine
as long as you put them behind HasMod conditions the player wont even know about those patches unless they have the mod in question installed
as long as you don't overwrite the shop entries (unless you want) and have something like a when condition so error items aren't added, seems like a pretty fine plan
Actually it's pretty similar to a modded catalogue I think?
when adding the shop you should add only the shop info in the intial patch and have a second patch to add the shop entries
otherwise if you add the shop alongside entries ABC, and patch in another mod the shop with entries ABZ, it will remove the C entry
If you add the basic shop in both mods, and add ABC and ABZ separately in other patches, you will get entries ABCZ
etc
basic shop as in, the seller, shop location, basically everything except for the actual items in the shop
i would also consider just having each of the mods do the shared patches with priorities instead of HasMod conditions
you can still add as many entries as you want in the shop creation patch, as long as the other mods dont also re-add the shop itself
if the Main Mod adds the shop and the others all use TargetField then no entries are lost
even if the main mod also adds a bunch of entries in the single patch
in fact adding the shop info itself in both mods would cause problems as the Items list would be overwritten with a default value
(which would be an empty list)
Alrighty, I think I do need to go with what 6480 cautioned because the idea here is there is no "main" mod, I need the shop to exist when any of the mods are installed
yej
So all of the mods each add an empty shop and then have additional patches to add to its stock
if Mod A does an EditData on Data/Shops to add a new shop using Entries like this:
"Entries": {
"{{ModId}}_MyShop": {
...
}
}
and then has a second patch adding to the Items specifically, and then Mod B does the same thing, Mod B will be erasing Mod A's entries
Hmmm
should be solvable with patch priority, no? especially if mud controls all the mods
Yeah put the patch to add the empty shop as being earlier than everything
then the rest will resolve fine
otherwise by default it goes:
empty shop A > add entries A > empty shop B > add entries B
If you make adding the shop come earlier with patch priorities it comes
empty shop A > empty shop B > add entries A > add entries B
hopefully the whole thing makes sense to you
So I need to add a Priority:Early to the shop creation patches in each mod and then they should resolve the way I want them to?
should if you do it right
priorities should solve it, yes. i just wanted to make sure it was pointed out because it wasnt said originally
Cool, I definitely would've missed that if it wasn't brought up so thanks y'all 
this is a very random question but uhhh
im brainstorming events rn and was thinking of what the best way to execute a character fainting animation for their sprite would be
would i want to try to somehow keep it fitting in a 16x32 space or is it easy enough to use custom size sprites for events that i shouldnt worry about that
if you warp the character out and use a TAS you can have whatever size you want
then warp them back in whenever you want them to return to normal
If fainting vertically is fine I've seen such sprites in RPGMaker games and the like that looked fine
Like stuff like this looked fine in top-down perspective
Lol
Maybe! i'm still in the brainstorming phase and not actually sure how i want it to look yet
I'm having fun
https://www.youtube.com/watch?v=PQpgJzaQEmU
wh
what are you making. i am intrigued
Square Hole Bundle
(And yes, I got explicit permission from Alison Burke to use her face in the mod)
That's pretty impressive ngl
I'm waiting on permission from the other tiktok guy, to also use his voice lines
i'd like to have him say "It goes in the Square hole" every time you donate
hopefully he'll answer the DM
Wait til you realize this is my 95th Meme Bundle in this mod. About half of them have wild custom code shenanigans like this one
I'm giving my all. I need to get to 100!
oh my god 😭 
Are the compatible with each others? meme bundle playthrough
Yes of course
Perfect!
it's a whole setting called "Meme Bundles" and you get an entirely meme CC
meme bundles
well i know im gonna have to do a playthrough eventually,,,,
I also let players customize the number of bundles per CC room, so they can have up to 54 bundles in one playthrough if they want
It's part of the Archipelago Randomizer 🙂
YES
I've never had the chance to play the stardew archipelago yet unfortnatly
oooh
Meme Bundles is in the currently-in-beta version 7. If you play the official release, it's not in it yet
same, ive yet to play it
Dynamic HUD that tracks the name of your Town and how many Villagers you currently have :D
hello! I am learning how to create mods related to recipes on this website (https://stardewmodding.wiki.gg/wiki/Category:Tutorials). I found this piece of code:
"Baked Fish": "137 1 246 1/6 5/198/l 12/"
According to the instructions, "/l 12/" should be the unlocking condition for the recipe. However, it is not specified what kind of unlocking condition "/l 12/" represents. If anyone knows, please let me know?Or someone could tell me where to find the answer?
Here's the official wiki that has the reference information for things like this! https://stardewvalleywiki.com/Modding:Recipe_data#Unlock_conditions
l 12 is not any recognized conditions (probably leftover from old versions of SDV)
I have already checked the official materials. The displayed unlock conditions only include "f", "s", "default", and "none", but there is no "l".I think you are right.Thank you for your help.
guys i dont know why but some fishes in my mod can be catched without the minigame , why? what i should check?
Sounds like the behaviour of trash/algae/non-fish fishable, but I don't know what's the real difference code-wise
Those are the settings for all my fishes
that looks good
and the Data/Fish entry?
also you should make the Name the same as the ID
yeah I see the issue, you have a space on your Data/Fish keys
so the name doesn’t match the object
yes
make sure the key in Data/Objects and Data/Fish is identical
fixed! thank you!
(you can also replace all of your Fisherman.AYCFCP text with the {{ModId}} token for clarity and simplicity)
Oh that's very useful! thanks!!
Also , great movie perfect blue!
you have space in some names, is that intended?
like fire salamander when your object is firesalamander
oh
ok i entirely missed selph answer somehow
can i still blame it on waking up, maybe
Blaming it on just waking up is perfectly valid, even if it's 8 at night and you've been awake for 12 hours, it's always 6am somewhere
I successfully made a basic farm map with Tiled and loaded it into the game. I just used the spring tilesheets. Will these update to the other season’s tilesheets as I play?
yes; the game will try and load seasonal tilesheets with the appropriate names for any tilesets with an image source starting with spring_
Only if you don’t include the tilesheets locally (in the mod folder) though iirc?
naturally, this also means it will fail and throw errors if the matching tilesheet images aren't found
Blueb probably remembers better though
nope
far too many unique and clandestine behaviours along the pipeline from tiled to location for me to remember them all hahah
so close spacecore, so close
What's close here?
custom skill buffs aren't listed as or with buffs
oh... it's supposed to be with farming down there
somehow the implementation also means love of cooking doesn't know about its own custom skill buffs 
suppose it would've been too easy if buff effects were iterable, far too easy if arbitrary custom effects were covered in the same behaviour
Does anyone happen to know if changeSprite NPC without the [sprite] argument will change a character back to their default appearance if they're currently using something else?
Um is it just me or did ambientNightLight command is gone from the wiki and the game or am i imagining things this whole time
Hmm. Seems like it doesn't. Is my only option to do this going to be creating a copy of their default appearance that has a suffix to specify in the command...? 
Yes and yes
awesome. thank you 
For me it did, when changing from the beach outfits to the normal ones
It changes them to whatever their current base outfit is but like if it's winter then it just seems to keep them in their winter outfit because that's their base for the season
Ah do you actually want them to go to base outfit
Maybe if you tag a !IS_EVENT on their winter outfit
Or add a IS_EVENT conditioned appearance entry for their base outfit
Besides showFrame and animate in events, how else are NPC sprites used?
Also in walking animations, evidently, but that's only the first 16 on the sheet as far as I know
any animations: spouse patio animations, schedule animations, to name two
if I use i18n for an event, should it be like this?
/speak Abigail "{{i18n:OMEGAlinc.EventPlaceholder1}}"
youll have to escape the quotes like this /speak Abigail \"{{i18n:OMEGAlinc.EventPlaceholder1}}\"
ok thats what I thought thanks
Hello everyone, I want to recolor a tile sheet via config for my custom location. What "Target" should I specify for my tile sheet?
For someone who has never made a mod for any game, only edited minecraft mods and done some basics in javascript, how hard would it be to make a chest colour changer that allows hex codes? Kinda like the colourful chests mod but with hex instead of sliders.
load your original tilesheet, and then editimage the edits
Would you be willing to name more, by any chance? And also how I could find where they are and how they're used? I don't see them in the unpacked content, but I also don't really know where I'm looking
the person who made colorful chests has done this. i'd imagine he used C#
that is very C#
(they specifically mentioned the colourful chests mod in that message)
I don't quite understand how to do this, here is the code I'm trying to use
{
"Action": "Load",
"Target": "assets/spring_van_extra",
"FromFile": "assets/spring_van_extra.png",
},
{
"Action": "EditImage",
"Target": "assets/spring_van_extra",
"FromFile": "assets/spring_van_extra_SBV.png",
"Enabled": "True",
"When": {
"Recolor": "Starblue",
}
},
{
"Action": "EditImage",
"Target": "assets/spring_van_extra",
"FromFile": "assets/spring_van_extra_default.png",
"Enabled": "True",
"When": {
"Recolor": "Vanilla",
}
},
So the actual internal Color struct is rgba, and you can set them on chests yes
Difficult part is honestly the UI
better chests used to have hex codes right im not imagning it
this is exactly what I mean.
isnt better chests ded
it is. i guess my point is that it is possible
I think it was sliders too
ooh right
If anything entering hex is less ui than slider lol
true 
what color pallete is the spring_van_extra.png using? if it's vanilla you can omit the third one
Sorry im not responding my cat is sat on me lol ty for the responses I might see if I can look at how better chests done it
Naw just look at colorful chests
ah that's not available anymore. listen to chu
It's basically same code anyway but more specific to you
I suspect you can clone this and add in a hex option in the gmcm and call it a day
Oo tysm 😊
Yes, spring_van_extra is a vanilla tileset for the mod I tried this but it doesn't work either
{
"Action": "Load",
"Target": "{{ModId}}/SpringVanExtra",
"FromFile": "assets/spring_van_extra.png"
},
{
"Action": "EditImage",
"Target": "Vanillin.VanFarm/SpringVanExtra",
"FromFile": "assets/spring_van_extra_SBV.png",
"Enabled": "True",
"When": {
"Recolor": "Starblue",
}
},
gotta make sure the target is the same
if your modid just Vanillin.VanFarm? better to use that for both or just {{ModId}}
"Enabled": "True" is not needed if you're using When
Still doesn't work, in Tiled my tile sheet is called z_van_extra maybe that's the issue?
{
"Action": "Load",
"Target": "{{ModId}}/SpringVanExtra",
"FromFile": "assets/spring_van_extra.png"
},
{
"Action": "EditImage",
"Target": "{{ModId}}/SpringVanExtra",
"FromFile": "assets/spring_van_extra_SBV.png",
"When": {
"Recolor": "Starblue",
}
},
maybe 
maybe being more matchy like zSpringVanExtra would work?
can you stop tagging me in replies please? i'm already here
In fact, the name of the tile sheet in Tiled will not change anything. I just don’t understand what “Target” needs to be specified for a custom tile sheet.
i think the filename is more important than the tilesheet name
if the name of the png is spring_van_extra try
"Target": "{{ModId}}/spring_van_extra"
or even
"Target": "Maps/spring_van_extra"
I didn't use "Action": "Load" for spring_van_extra because it automatically loads it via TMX map
You need to first load your texture if you want to edit it
im not 100% sure about this but like, does the target need to match the tilesheet file name
i do it that way but i am, unsure really
Uhh 🤔
(And not have it in maps folder otherwise this has priority and you cant edit)
I usually put mine in assets
Ok from what ive found, no, the tilesheet name and target don't have to match BUT they do if you're using it to edit the map
If I'm making a custom window, is there a way to change how light emits from it with CP?

Like you can just specify the "fromfile" to whatever
well yeah ofc
But everything from there needs to match
put the tilesheet and map in different folders
and change fromfile accordingly
Tbh this was by accident where i first loaded the texture to something and then it fucking exploded and died because the asset it was using in the map didn't match the name i loaded it to...
yeah,,, happens to us all
https://smapi.io/json/none/1d8a03016f3c43a7af60630136c01c34
Hi, how are you?
I have a little problem: I want to add a new rule to my machine, but it’s not working. The idea is to make crème anglaise, which requires an egg, and I want to use the egg as the activating item. I’ve tried several tags, both from the wiki and by looking at the game’s objects.json, and even though I have the egg in my inventory along with the other necessary ingredients, the machine doesn’t work.
Here’s the link to the full machine file. The crafting recipe should be: egg (any), sugar, milk (any), and vanilla extract (an item from my mod). The error is probably something silly that I’m not noticing. The validator doesn’t show any errors, and all the other product crafting recipes work fine, but the crème anglaise one doesn’t.
i didn't add a .png to my from file once and was confused why it no worky
only thing i can gather is it's the only recipe using 3 items
Yes, could that cause a problem? Is there a limit to the number of ingredients? Otherwise, the only thing I could try is using just egg and milk, because I tried without sugar—so milk, egg, and vanilla extract—and it didn’t work. I’ve been looking at the Cornucopia Mayonnaise Machine, and it seems like they enter a rule for each type of egg. As a last resort, I could try that; it’s more tedious, but if it works…
i am reading the docs right now and like,,, they long
how to summon selph
so this limitation thing, i don't think that's it bc of using diff numbers
all the examples only go up to 2 though
Ive read fhe emc docs and exploded
Maybe we should summon Saint Selph haha, but I’m not sure if it’s allowed to do a wild @ haha.
uhh
Something like this is probably okay....?
this is a specific we need the author case
also unrelated you got a Flavored_Yogurth in there
Yogurth....
its not against the rules to ping someone
especially when you have a valid reason to do so
In my eagerness to do something different, everything ends up becoming really complicated haha. I don’t want my machines to make the same products as other machines, nor do I want it to seem like I’m copying ideas.
!twocakes
If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.
@brittle pasture 
i'm afraid i'm not overly famliar with EMC to figure out the issue here, would you be able to help?
where? 😯
Hopefully the fridge. Or it will spoil
"selph.ExtraMachineConfig.RequirementTags.1": "milk_item,category_milk,plant_milk_item,alternative_milk_item,!buttermilk_item",
this means your first ingredient needs every tag in this list
if you want an OR list you need separate OutputItem entries
or just use category_milk to catch every milk item
oh yeah cornucopia milk isnt category_milk, in that case add another entry using whichever tag they’re tagged as
(it’s always fine to ping me, though I may not always be available)
I mean a separate output item where everything’s the same aside from the first fuel slot
You can use any egg with one rule. If you use the category_egg tag. The reason cornucopia uses different rule for each kind of egg is so, large eggs dont make the same quality product as a small egg
I’m sorry, I can’t see white images. I’m visually impaired; images with a white background appear to me as a flat white image, with no text or pictures. The LocalizedText string works fine for me, and I also have i18n on the items. The mod is functional; I just have a problem with that rule. In fact, the mod is already published.
🤔 im thinking maybe i can change up something in my mod... maybe i can make embroidery pieces that you can actually place as furniture.

Wait, I got lost haha. My idea is to make it as compatible as possible with mods that add all kinds of milk, but what would the corrected code look like? I think I’ll understand it better that way.
yeah looks good
i still feel like my mod is a little chaotic and disjointed in places
so i can hopefully get back into working on it. i took a step back but now i can take a step forward
see the block bea posted above
i don't have a comprehensive list; those were just two things that came to mind right away.
some animations are in Data/animationDescriptions in the unpacked content; those are mostly schedule animations, though there may be somewhere else they can be referenced.
spouse patio animations are somewhere else, but i forget where. check [[Modding:NPC_data]] maybe?
and in events you have animate as well as showFrame.
may be more stuff but that's what i know offhand
how so? also who doesn't like some chaos~ do changes if they make you happy ofc but hey mod work
But it doesn’t cause any problems in the game, and the item gets the correct name when I produce it. Should I delete it anyway?
i mean not me when im the one working on the mod
chaos bad bc then everything is confusing
but i think i just put too much into it
that's fair
and now everything is tangled up together
Should I make the rule that way? One entry for each type of milk the rule allows?
you are in no way required to. it's your mod
ok i have 1 question: does the vanilla game already have some strange machine that could potentially function like a mortar and pestle
mhm. might wanna add !buttermilk_item to any tags that might already have them
Hayato's use of LocalizedText there is fine, by the way, and is the recommended way to set ObjectDisplayName. Their i18n token is located in the Strings/Objects entry instead.
oooh, inchresting. sorry, didn't know
i can only think of the geode crusher
Flavoured items are their own fun niche of objects
wonder if i should move to also using LocalizedText
So, you mean I should add !buttermilk_item alongside the tags of the milks that the mod requires?
if you don't want it to be used, yeh
Yes, that’s how I have it.
but that's like,,, late-game adjecent
Yeah, I was just explaining it to Bea ^_^
or the bone mill but same thing
well it feels silly to dehydrate a flower and then put it in a geode crusher to create a powder dye...
mayo machine

I’m going to make the suggested changes and I’ll let you know how it goes. Thanks everyone for your patience.
its ok i'll just... make my own mortar and pestle i guess? or skip that step and just like... make the player throw in a whole ass malachite into a dye pot because that makes sense.
The Wood Chipper is used to convert Hardwood and Driftwood into other products. It can be purchased from the Carpenter's Shop for data-sort-value="1000">1,000g starting the first day of Winter in year 1. The player receives a letter about the wood chipper from Robin on the second day of Winter in year 1. A Wood Chipper may be purchased from K...
wood chipper would probably make a powder
flowers are very soft wood if you squint 
yes
In the case of flavoured items it's used in order to allow the name to update after the object has been created. From reading the wiki, that use might also apply to regular objects (since apparently it's needed to change the object's display name if a player changes language after the object has been created and that might be the case for non-flavoured items too) but if it doesn't I don't know that there'd be a great deal of purpose in starting to use LocalizedText. It wouldn't hurt, I don't think, but outside of this sort of case or event dialogue I am not aware of advantages*.
* disclaimer being that I'm only just getting to grips with LocalizedText myself so I might be really missing some overall advantages
everything is wood if you squint
do you use wood glasses
the frames can be made of wood
honestly if you dehydrate a flower wouldn't it just powderise
not necessarily
there's a reason pressed flowers exist
(ofc if you crush it it turns into powder)
get the farmer to grow giant ass crusher claws
cant wait to release my "turn everything into powder" mod where you can put everything into my super cool powderizer and turn fish into powder.
(send help)
(how)
WAG and Alchemistry both adds their own mortar
just make one of them a hard dependency ezpz /s
how u gonna do that
make a machine > input literally anything > output powder
oh

kinda the same concept as the bait maker?
ah yes very easy.
bait maker make bait
i know but kinda the same concept
all machines are the same concept
is there a mod for everything bait
oh yeah
sorry for ping


