#making-mods-general
1 messages · Page 368 of 1
given how many flags you have and who knows what trigger actions have or have not been applied, its best to test on a new save
will do
still showing as false. let me get every relevant patch into smapi.io
quests: https://smapi.io/json/content-patcher/01352141a8724815969db7bf26261956 (lines 11-15)
trigger actions: https://smapi.io/json/content-patcher/4817c96ba45347378c009b0b27efaae1 (line 76)
mail: https://smapi.io/json/content-patcher/49aeae3dc6dc4b6f94d3696ae602c689 (lines 12-13)
desired order of events is:
- an event plays, which sends mail the next day giving the three ingredient quests
- player completes three quests, one of which gives the next quest CuringNiko
- when all three quests are complete, mail flag SeanceIngredientsComplete is set
- event precondition is host has mail SeanceIngredientsComplete (
"{{ModId}}_Seance2/HostMail {{ModId}}_SeanceIngredientsComplete/Time 2000 2600")
everything triggers correctly so far up to the quest CuringNiko being given
what is setting the flags SeanceIngredients1 through 3? have you confirmed you have those flags?
it should be the reaction dialogue inside the quests, let me get that for you
god damn it
no mod id
Those flags don't have your mod id.
🤦
I recommend not putting the action inside i18n.
Just put them directly in the quest field
(unrelated as well, but in your mail.json on line 14, is your mail key meant to use the i18n token there or was that a copy paste mistake?)
it seems like the title and the key got swapped
oops it certainly isn't
luckily it's only used for a minor cosmetic map change
actually i can delete it, that's just supposed to be a mail flag
just to check: like this, correct?
"{{ModId}}_SeanceIngredients1": "ItemDelivery/{{i18n:{{ModId}}_SeanceIngredients1.title}}/{{i18n:{{ModId}}_SeanceIngredients1.text}}/{{i18n:{{ModId}}_SeanceIngredients1.objective}}/EdwinPayne (O)769 10/-1/0/0/false/{{i18n:{{ModId}}_SeanceIngredients1.reaction}}#$action AddMail Host SeanceIngredients1 received",
should work fine as long as you've made sure theres no stray # at the end of your i18n already
Yes but add your mod id!!!!
but add your modid
you guys are saving my life here
(Also just checking but you're aware that i18n keys don't need your mod id right?)
yeah, it was a side effect of the converter unfortunately
nomori fixed it
Ah okay I did briefly read that conversation but since I can never use the converter I didn't really take it in lol
it was a choice between "change {{ModId}} in the i18n to the uniqueid (simple find and replace)" and "remove modid from every location it shouldnt be in all of the jsons everywhere but make sure to keep the ones that SHOULD be there"
regarding this, actually: should actions have # before and after them?
not after if they dont have an action following it but im not sure ifi td break it if they did
best to leave it off just in case
i think
Yes I agree
ok cool
# is a command separator so there's no reason to need one after the final command
Halp
so loud.... /lh
this has been a test of your PSA system
GSQ now returning true! thank you for the help
one final question and then i'll stop annoying you all: do TAS frames need to all be on one row of a spritesheet? i'm trying to make one whose frames look like:
x x
x
but the last frame is just a bar of color as if pixels got stretched
a stretched bar of color does mean it was expecting more texture in whatever direction it was going
temporaryAnimatedSprite Characters\\CharlesRowlandBlackJacket 0 256 32 32 250 3 999 46 88 false false 5 0.0 1 0 0 0 ping_pong
but it may be a symptom of something else
is that a baguette
lmao it's supposed to be a cricket bat but i also unavoidably see a baguette whenever i look at it
unfortunately I've got no idea how tas commands are formatted so
i forget if the pingpong is important, let me see
fwiw I did actually specifically see a cricket bat first
it has a special mention around the frame looping code
is like the only kind of wooden square bat I know
can you show a screenshot the last frame issue in practice?
looks to me like the end of the bat
this is the animation
i might just take ping pong out tbh, i think it might look odd
are you supposed to include the bottom frame in your rectangle?
the only important parts are the source area (0 256 32 32), animation length (3), and pingpong
the source area is the initial frame size, so it'll iterate to the next 32-across, and then should wrap-around to 0-across 32-down
yep, it should be bat cocked, bat mid-swing, then bat held out
I meant cuz your rectangle only includes the first frame, and I didn't know if that was correct or not
oh sorry, i misunderstood
for those reading along at home, we're in temporaryanimatedsprite.update looking at sourcerect.y += sourcerect.height
yes the rectangle is 32 by 32
i leave this in blueberry's hands then
oh no
you're the resident expert right now
as there are no other residents
and I'm on mobile getting ready for sleep
congrats on the promotion
so I can't follow along in the decompile
we hope to have the decompile available as an audiobook sometime soon. maybe even before bed
again if this works without pingpong and looks better without pingpong then we're just removing pingpong
removing ping pong did in fact get rid of the brown bar! sorry, didn't realize you were waiting on me
obv idk how it looks with ping pong but it's acceptable without, so no need to stress more over it
New quote added by irocendar as #6495 (https://discordapp.com/channels/137344473976799233/156109690059751424/1394212648933130250)
Friends, do any of you know if there are any expert mod developers in China?
Odd question. Does anyone know if its possible to make it to where a player can't date or remarry an NPC if they've already broken up with or divorced them? It wouldn't make sense for my NPC to give the player a chance to break his heart yet again.
Not being able to remarry is kind of already accounted for in vanilla? Idk about dating but. You can only remarry a character if you erase their memory of ever having met you
I do say kind of though bc idk if that exactly fits what you wanna do
You will have to ask on xiaohongshu tbh
This is english language sdv server
I think I've asked on many platforms in China, but it feels much more professional here.
lnh and the team behind seven deadly sins are very capable
🥲
It's more useful here to ask what u want 
Like if u have specific desire ppl will either tell you how or just write the c# needed
Even tho i am fluent in chinese all my docs r on github 
The thought of translating all that fills me with dread
Yes, but again this is a english language server
Can you help me
ahh,So what I want to implement is a function: "automatically click the first save file on the cooperation page". Are there any developers familiar with this function? I will pay $20-40 as a reward if someone can help me right now.
🥹
Hm i thought skip intro has that function 
yeah!
SkipIntro will take you to the coop menu, but it won't load the game
likewise AutoLoadGame will load the game, but it won't use the coop menu, so you have to start the coop session inside
But that mod can only redirect to the hostcoop page. It's just one final step away from actually launching (i.e., hosting the server) — clicking the save file button. I hope to be able to automatically click the first save file.
yesyes
Ah lol i guess we gotta PR that in
I've been working on this over the past few days, and I even reached out to the author for help, but it all didn't work out.
🥹
Can you complete the development of this final step?
😳
I think the main problem is just how should the config work
Hi so,are you chinese?
Im doing a tourism rn though maybe ask me in a week
🥹
Hello blueberry!What ideas do you have?
duck!
wow!
the nexus page for AutoLoadGame mentions you can in fact startup as a multiplayer (coop) session:
https://www.nexusmods.com/stardewvalley/mods/2509
Configs
LastFileLoaded: The save name that will be loaded. (This is automatically set whenever you load or save a game. You don't need to set this yourself)
LoadIntoMultiplayer: Load the save as a multiplayer session. (Default False)
ForgetLastFileOnTitle: Only reload the save if the game was quit from ingame, not from the title (Default True)
have you tried it already, or does this not work for you?
I've tried, but this mod no longer works on SMAPI4.2.1.
😭
it's working for me using SMAPI 4.3.1, loads into multiplayer and everything
if you're still running into issues, you could share a log file here via https://log.smapi.io and we could give it a look?
i'll try
wow!!!
Wow, it actually works! This mod couldn't be used on SMAPI 4.2.1 before, but now it can. Thank you everyone!
That's so strange but yey

BETAS has a relationship changed trigger that you could use to add a mail flag upon divorce which you could then use to patch your NPC's Data/Characters entry to set them as unable to romance. You could probably also use it for the breakup by checking if the player has gone from dating to friendly.
no problem! glad it worked out
hasn't been updated since 2019 but it just keeps on workin' hahah
what exactly is a map layer?
xTile.Layers.Layer
in brief, it's a 2D array of tiles, like a mosaic. Tiled lets you make and save any number of layers to your map, and Stardew will fetch specific layers by name when drawing tiles, reading properties, etc
Are u dealing with it in c# or in tiled
booo. Game1.stats.AverageBedTime is just the last time you went to bed
oh wait no it's got a custom setter that averages it out. very cool
unboo
binary 64 msg pack from the c# object
is there such function?
I just intend to read the data on the tiles
but it has multiple layers apparently
so hm, I assume higher layers are just aesthetic?
e.g the player doesnt collide with those
i think you're gonna want to start reading up on the wiki if these concepts are new to you hahah
[[Maps]]
Yeah the example i linked does that
Although if u want to read tile data pls use location.doesTileHaveProperty
Instead of directly accessing layer
why
This is cus you can have tile properties from building
it seems to be working fine w/o that
hm?
If u go read that method it should illustrate why 
Whether you care is separate question ofc
what does it do?
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
I suppose those properties determine If I can walk through it?
I highly recommend decompiling if you are going to interact with game cus otherwise all u got is ppl like me naming random methods
😂 fair enough
There's a dedicated method for passable iirc
tbh I just base it on the github repo
Istilepassable or something
oh
It's also somewhere in GameLocation
yeah I'm using the game location object
How do you have access to the github repo 
It is quite heavy
someone decompiled the game and published it on github lol
well not the executable ofc.
however it works for me
That's not the one pathos maintains then
if it's the one I'm thinking of, it's very out of date
Just decompile it yourself it's easy and you get the up to date stuff
from dani
(anyway, nobody has permission to be publicly posting stardew source code like that, so the best thing to do is decompile it yourself)
right so I just install this tool, and let it do all the work
aight
I'll do it if I need to dive more into the game 😅
I just wanna use python for this :(
thanks for the feedback
So the repo i refer to is the one pathos allows mod authors that have lv50 on this server access to
WAIT WHAT..
is there such thing 😭 .
sounds crazy
it's very helpful!
the repo? it's just a very good decompile
no ❤️
is that it?
all the decompiles have the original var names
so what's so special about this repo lol
and it doesn't come with docs
this one is compilable, has comments on some things and has history for all the various versions
hm
not sure how valuable it is to be able to compile the game, but sounds interesting.
the gate keeping though, is wild.
guess it has something to do with piracy so fair enough
will I get the mod author role if I publish any mod? regardless of how popular it gets?
I'm not sure what's so wild about the screws requirements, especially when you can decompile it yourself and get everything you need that way
yeah
oh
as long as you don't use any AI and it's SFW
no ai¿
nope, server wide ban
damn
Which is not a bad thing because gen AI sucks...
so will I get banned if I admit to use ai 😂 .
right
No, you just can't advertise or share any part of a mod made with substantive AI. Here's the full policy: #bulletin-board message
guess I'll keep it to myself then, thx for the warning.
Also as a community we really frown upon gen AI - if it's for code then it's just silly because it will be wrong. If it's for creative assets, it's stealing others' work and since we make creative work for a hobby we are not too keen on people stealing it.
Tbh if u ever wanna ask ai anything just ask nerds here it's faster
it's irrelevant what github is doing though, what's relevant is that it just is banned here for these reasons
yeah. Good reasons indeed
the issue with asking chatgpt for code advice is it's wrong, expensive, and takes time. if you ask us it's free and quick, and usually still wrong
kinda overkill but I guess it is fair
I just need it for research purposes, why is smapi so hard.. 😭
I think it's pretty hard to find out if someone generated and then fixed up code but
if you want it not to be free, that can also be arranged!
content packs aren’t too difficult and there’s like. Two wikis dedicated to them
Research....purposes....from a generative AI...
I think the fact that i said "fixed up" as a given should give you some hints lol
using ai to build ai lol
About a niche program in a small modding community...
oh yeah
It's not good at niche stuff
am tryna do an ai to playthrough the game
let's just say we've proven we can tell pretty accurately when an error is caused by generative ai nonsense lmao
ai needn't necessarily be generative. think waterbot, but with more of the self-optimising side of learning models @ aba
idk what's a good measureable goal though.
but why...
maybe you guys can provide some input
hasnt been done before, and the environment is quite chaotic
I thought someone made one of these
I don't even mind that as a goal if you don't use genai, I'm just confused 
measurable goal implies you're aiming to use reinforcement learning?
^
yep
I am aware, blueberry. I have in fact worked with non-generative AI myself. But they said they "need chatgpt for research". ChatGPT is generative AI, is it not?
oh, specifically chatgpt, i missed that. you right
in the end It's all chatgpts wrappers..
I'm not sure that would work for a game with goals as varied as stardew tbh
making progress in stardew isn't really linear
walking from point A to point B for e.g u can tell how wrong it is based on the distance
making money is different though..
because u have to sell stuff
Well i cant find it anymore 
yes, I'm aware, but stardew is a game with goals like completing CC
maybe reaching an achievement?,
they don't have a single measurable thing that applies at small enough intervals
reinforcement learning doesn't work if you need to do a massive set of complex actions for any reinforcement to happen
It's the same as chess, u just need some sort of metric in between
but chess HAS measurable metrics in between each step. Stardew doesn't really
well yeah
in chess, it's (single action) (new metric). in Stardew, you take a step to the left vs a step to the right, what changes?
is there any worth doing achievement?
but the algorithm has to pick one
no, they'd be way too far apart again. I think pure reinforcement learning won't work here
Imo maximize profit is less hassle than cc
true but still won't work for reinforcement learning
even if there isnt a metric, maybe just explore the markov process to see which one works best
and just map whatever works. idk
Yeah idk how the model can find out about the Keg Empire
how do you decide which one works best
"which one works best" IS the question at the heart of machine learning
redundance would be interesting. also changes in inventory
essentially reward on collection of good resources
ChuGPT, please post the emoji of a cat ramming its head into a wall
how does that tell your ai if you're going to walk left or right? or to get out of bed?
give it a batch of actions perhaps?
manually? for the entire game?
let it mess around and see what works best
how does it decide what works best 😭
e.g what did it achieve in 30 actions
Scaling back from the lofty goal tho pls go decompile the game 
hmmm think i need to revise the prompt, very different result 
leaving the farmhouse in day 1 and walking like ten steps into the farm is roughly 30 actions
I got the base 64 binary msgpack 😭 for the map and player
You will need to hook up to so many things to first make a scriptable farmer bot
alr did

Yeah and then u gotta write the anya path finding algo to let player bot move around
true
anyways I'm ok working in python.
(assuming you're willing to do that and don't want to have the AI algo handle that too)
a neural net navigating stardew using keyboard and mouse as its output layer would be a fun way to make it walk around but probably not a good way to actually complete the game lmao
but yeah I guess I'll stick to money and gathering resourcces
thought the exact same thing lmao
would be fun at first then it lacks capabilities for complex stuff
I was thinking on some transformer variant RWVK-7 which is pretty much a transformer with a LSTM built in(lstm help remember previous steps)
btw a lot of us here have CS degrees etc or a lot of practical professional development experience so we do know what we're talking about here if you want to ask specific questions (I have a degree in maths and CS for example)
nicee
I mean I'm up if anyone wanna join in this 
I got a team of 3 ppl, they're cracked in ai
certainly I suck at c# lol
No i don't know anything only random ass game knowledge bc i had to touch it for previous mod
anyways I'll go back to work
you're here 24/7
bet u know everything about the game
Unfortunately
Idk man I think that’s kinda cool
chugpt > chatgpt
Hello im New I make my First Mod but I wanted that when I Walk on Grass it should Sound Like Grass or Stone Like Stone I used als Type: Grass Why it doesnt work?
If you upload the map file here, someone might find the issue.
But in general, make sure your "Type" properties are formatted the same way as the normal maps' properties, and that you put them on the "Back" layer. Certain maps also use them in different ways, like Greenhouse.
does the warp tile property work by standing on it or interacting with it?
finally got a minute to look into this, and I really think you would benefit from doing research outside the context of LLMs (especially cutting edge LLM research that would require a small server farm to run live)
ok cool gotta find that then
hi! someone activated my nerd trap card (ik I'm not using that correctly)
oh transformers arent just for language, got any architecture suggestions though?
Can I post a link to a devlog video on my event editor here, or should I just put it to #creative ?
It's about using the editor GUI with sprite picker and map preview, etc. to make it easier to use temporaryAnimatedSprite command in modded events
RWKV (not VK) is very specifically NOT a transformer and is targeted at LLMs
is it related to stardew?
Yes, it's an editor for creating modded events in stardew
I think this channel works then? I’m not a moderator though
No longer a moderator but this seems like the exact sort of thing that should be shown off here
If it's a tool to help people make mods, it should be shown off here as a resource 
Ok, well somebody remove it if it's not allowed 😄
https://youtu.be/zyQ-5PI3tXo
Introducing Stardew Valley Event editor
Oh wait, is it monetized?
No
well we got transformers doing video prediction, also rwkv is as good as any transformer, has lstms built in- and apparently you can get the loss function moving in the span of a low order matrix?)(not sure one of the authors mentioned that).
I hope it's gonna help people mod easier, right now it's still under development
I was there for the drafting so I'm reasonably familiar with them 
“don’t talk to me about the laws, I was there when they were written”
This is really cool, I hope you manage to release it!
The original gavel in my old pfp was a graduation present from Airyn 
I kept it in when I comm'd Vin for a new pfp that wasn't picrew
if you want to try to write a brand new use case that will require considerable compute cost because it’s “as good” as something else in some general sense (algorithms typically have specific strengths and weaknesses, “good enough to do xyz” is like saying a drill is “good enough to saw through wood”), you’re welcome to. But I think rather than throwing existing models at it you should take a deeper look specifically at what was used for video game automation in the past.
that's a good point. I'm trying to learn about RL, nonetheless this game is quite complex, so I suppose it is gonna need some fancy capable architecture for this. Feels like a nn won't cut it.
anyways, wouldn't you like to contribute for this?
I got a small team going.
not really ngl, AI isn’t my main interest rn
fair enough
That's looking really good! I noticed you chose the spritesheet from a dropdown. Does it allow for using custom spritesheets?
does IsGreenhouse T² make the tiles tillable?
woah thats gonna be so useful!
iirc IsGreenhouse is mostly for when you want a location that can plant crops of all seasons, like a greenhouse. What you're looking for is the Diggable tile property: https://stardewvalleywiki.com/Modding:Maps#Known_tile_properties
What does this mean guys?
you can set it to whatevs, as long as it's unique within the list
I have a problem, the NPC I created doesn't want to move into the house I created, I've changed the location but it's still on the previous map, how do I fix it?
!json post what you have
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
(it seems like you're using the deprecated CustomLocations functionality. we recommend using the native method of adding locations via Data/Locations instead)
Hi, thanks! Eventually, yes. I plan to support modded maps, modded textures, modded NPCs, etc.
I think there will be a system where you can add new datapaths that will be scanned for .png files. Or you can duplicate the data from your mods to the editor's datapath
(nvm you are using Data/Locations lol. Though I still recommend adding {{ModId}} into both your location and NPC's ID, so as to not step on the toes of another mod that might add their own NPC named Cataline)
hmm your code looks correct to me. just in case what's the schedule like
Schedule my custom npc? I haven't edited it yet
is it blank then?
if you have lookup anything you can search your NPC and it should show where they are
i use Abigail schedule
How many times have you slept in game since changing her Home?
Zero
I haven't slept since he moved
Thank, I just need to sleep in the game for the npc to move

Yup schedule and home changes don't take effect until the next day
new and improved test version
use debug ebi 1 to try it out
now with 🆕 & 🆒 dark mode when playing at night, beautiful logo, excellent zoom handling, etc
...huh, that's interesting. I thought those were terrainfeatures and not objects. TIL.
I'll have to blacklist those. I should probably also add a resource node check for the pickup code now that I think of it. Until then, have fun picking up rocks
sure hope pathos doesn't see i've spent my weekend ruining stardew valley instead of doing something productive 
what does the mod do ?
Ohh okay so there’s different stops and all that ?
there's one stop 
it's about 380 miles away 
I do collect rocks and other shiny things, perfect!
Can someone tell me what expressions are in this photo? Like number 6 is an angry expression.
(Also, portraits are indexed starting at 0. If you are typing $6 into your dialogue, you'll be getting the one you labeled 7)
(Not sure if it was relevant to you, but I figured it might save you some time if that was the reason you were asking)
Thank you, that was very helpful.
I cannot find the tile property for a interaction warp, ive already tried Warp and TouchAction Warp, am i putting it in wrong or being blind
what kind of interaction?
The property name is Action and the value is the action you want to perform, like Warp. It must be on the Buildings layer
@toxic fulcrum that TAS interface looks awesome!! i can’t wait for you to implement modded assets and release this tool for general use ❤️
To add on to this, it must be on the Buildings object layer, AND there must be a tile on the Buildings tile layer in the same spot so it has something to attach to.
is this right? "name": "Action Warp", "value": "24 64 Greenhouse"
also tried "name": "Action", "value": "Warp 24 64 Greenhouse"
That version looks more correct, but it's a bit unclear without context. They should look like this in Tiled on a buildings-layer tile:
and diggable should look something like this on the Back layer
Hi hi, question... Learning how to use i18n with Dialogue. What's the difference between (using the mod I am learning from for examples) {{i18n:Pool.1}} and {{i18n:Pool{{Result}}.1}} ? It seems to appear after a Question fork, but the other {{i18n:Beach}} and so on don't have the {{Result}} inserted between the numbers, does it influence or could it be influenced by anything or could I just ignore the Result part? (I don't find anything about it on the i18n json file or content json... They also have a version of the same event where they only use {{i18n:Pool.1}} and I am very confused. 
It seems that some text use a different font as it is totally unchanged. For example all items and most menus etc.
In the fonts folder there is sth called SmallFont and sth called SpriteFont.
{{Result}} is probably referring to a content patcher token.
It can be difficult to PURELY learn from example when people use various different concepts all at once
{{Result}} isn't a built-in CP or game feature, so yeah, it should exist as a dynamic token or some such inside one of the mod's files. It'd resolve before the outer token does, so you'd end up with something like {{i18n:Pool1.1}} or {{i18n:Pool2.1}}, or whatever Result turns into, so it'd fetch a different line from the i18n.
You don't need to worry about using it if you don't need that for whatever you're doing, at any rate
Also an i18n can be basically anything you want it to be, it's not super rigid. People just often do the .1, .2, .3 etc thing for organization
Ah... Hm. May I DM any of you to show you maybe then the context helps, I dunno, I am a bit scared of this still 
hello! i ask again, does anyone have contact with gwen? i have not been able to contact him ;-;
there’s also this resource if you’re not aware of it https://nom0ri.github.io/sdv-i18nifier-app/
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
Thank you! I am saving everything I am given and looking at it but then I see something new and I am sadly the kind of learning with applied examples 
Someone see what the Problem is that my Grass dont Sound Like Grass ?
I am basically using the guide for Date Night Rebux mod to add or override their generic dates and there is a guide but that part confused me from their files.
Hi ! I hope I don't post this in the wrong place, but I need some help and advice on how to load a custom spouse room in a mod I'm making. What happens is the spouse room shows as Abigail's room and not as the custom room I created.
There's the part of the code I probably got wrong, but as I don't have an error message in the SMAPI console, I don't know what to change. This is my first mod too so the action keys are somewhat still confusing to me !
|| {
"Action": "EditData",
"Target": "Data/SpouseRooms",
"Entries": {
"GuntherSilvian": "Custom_altariah_[CP]DateableGuntherSVE_GuntherSpouseRoom/0",
"Gunther": "Custom_altariah_[CP]DateableGuntherSVE_GuntherSpouseRoom/0",
}
},
{
"Action": "Load",
"Target": "Maps/Custom_altariah_[CP]DateableGuntherSVE_GuntherSpouseRoom",
"FromFile": "assets/GuntherSpouseRoom.tmx"
},
||
And my assets folder contains the .tmx file as well as the .png tilesheets I used and other .tmx files that got generated as I used the .pngs in Tiled
Sorry for the long post and for interrupting, and thanks in advance for your help 🙂
lol I wanted to use spoiler to minimize the post but I'm such a boomer
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
The validator here is what you want
And then you can link the result here so we can see it in just one link 
Would there be any way to replicate the grandpa eval scene (y3) in an event?
I'm trying to make a mod with Grandpa speaking to you in mind. Thank you!
Thanks ! Here's the link, no errors were found apparently https://smapi.io/json/content-patcher/c6108b7ea48c46d284caed3b2424c6ac
here is a fixed link (comments at the top break it)
https://smapi.io/json/none/12d73390824341e3aa540d72a80b680a
are you learning from an old mod?
Data/SpouseRooms is not a thing after 1.6
same with Data/SpousePatios
also, what is OverworldSprites meant to be for?
Yes I am !
The first 2 events in Data/Events/Farmhouse are the initial and redo versions of that event, so you could probably reuse most of that. The notably hardcoded part is grandpaEvaluation or grandpaEvaluation2, which check your candle/score thing and insert conditional text. I'm not sure if there's a CP-only way to replace that text or check the score directly.
BETAS has a GSQ for grandpa score, though its not CP only with that ofc
What I'm generally trying to do is get the floaty scene with grandpa in the middle, and where grandpa speaks to you after certain milestones.
Though, I'm..... not sure how to do that 
That's where character's sprites are stored in Stardew Valley Expanded files. I thought editing this would apply the sprite I created instead. Tbh this part of my file is such a mess I'm a bit self-aware now XD I don't even think the OverworldSprites part was the one that ended up working
I imagine copying the first chunk of the event would set up the scene similarly, but tbh I've never even seen the evaluation, so I'm not sure 
if you mean thats where the files are in SVE's folder, that has no bearing whatsoever on where the sprites are loaded to in game
Characters/NPCName is where the sprites are, though you've loaded those too anyway, so those should work, but the OverworldSprites ones wont do anything
Imma peek unpacked and see how I can go around it, Esca. Thank you so much!

Someone Can help with my Sound Problem ?
regardless Marique, you'll want to look at this wiki page:
https://stardewvalleywiki.com/Modding:NPC_data
for spouse rooms in particular, you'll want to look at the Social features section
CharacterData is where you set the spouse room and spouse patio information in 1.6+
also, Gunther's internal name is just Gunther, not GuntherSilvian
so what you're doing currently is adding an entirely separate NPC called GuntherSilvian but with the same display name of Gunther
they change the internal name?
if so ignore me
but if thats the case then you dont need to load portraits or sprites to Characters/Gunther if its not used ig
welcome to my compatibility headache
No but in SVE, GuntherSilvian entirely replaces Gunther, so all changes are applied at SVE's Gunther,so in that case GuntherSilvian
SVE Gunther who is a real NPC is named that internally
Yeah it's more accurate to say that SVE Gunther is a different guy and they disable the original one
vanilla gunther is also a real NPC
You know what i mean
i did not, actually
You do have to change to the new one in SVE because the other one's disabled and just won't show up
He's not just an entry in Data/Characters that does nothing lol
He moves and is social
there are two things that are true:
- i didnt know what you meant
- i was confusing Gunther with Gus, which is why (1)
so, my bad
That makes sense lol
ah, the case of the Wrong G
Do you b play the game
Your "Type" property looks correct, unless there are blank spaces in it (like Type or Grass). If not, the problem is probably something else, like loading the wrong copy of your map. Make sure you save your changes to the files, and that the correct map is in your mod's folder.
not in a while, and last time i was doing stuff, i was making my own museums away from Gunther
also i was looking at a Gus mod earlier so he was on the mind
Confirmed, Button made her own museum framework because she hates Gunther
i hate him and his hardcoded item pedestals
look, I CONSISTENTLY forget Sam's name for some reason, I got no room to talk
Every so often, the name "sam" flies out of my head, I do not know why
(
I just mistook gunther with both marlon and gil before finally checking the wiki)
Gil is who I thought Scarlett was equating Gunther to when I thought Gunther was Gus
I somehow feel like that's understandable
far too many Gs
MANY G
G-uys who are too far away from the farm to see when I'm testing monsters or w/e
(though I've seen the first mine cutscene like 500 times, I should remember marlon)
we all get our bearded men who are basically animated map tiles mixed up from time to gime
Now I don't feel as bad mistaking Shane for Sebastian and vice versa lol. Idk why I think Sebastian has a Shane face so I just randomly call him Shane as well
ive skipped the first mine cutscene like 500 times so i shouldnt remember marlon 
I always go through Sebastian, Shane... s... s... s... I know it's not Alex, s...
genuinely forgot Alex existed at all til just now
New quote added by atravita as #6497 (https://discordapp.com/channels/137344473976799233/156109690059751424/1394394032506929153)
How the fuck do i remember this game better than you fools
I cant believe you quoted me before I have the chance to fix the typo
I've been Not Playing Stardew for like 7 years okay
we could, or we could do important stuff like fight with default interface implementations
(I've decided I don't like those today & just made extensions)
(also I will play this again) (eventually) (probably after trying mistria)
next month is actually the 7 year anniversary of edits to my last real save
so many people said fields of mistria is good lol i don’t know if I should try it stardew is already an enormous amount of work
Speak for yourself. I'm learning katseye dances.
oo u like katseye too?
I hear good things and it was tossed at me by my sibling, so I'll get around to it eventually 
but yeah, been playing low-commitment stuff lately, not counting my Blue Prince spree
I want to try it too it seems so great
stardew valley is so tiring but also addicting if u understand
wow, mistria has separate coop animal feed...
you can see I only care about the most important of info
This did not work 😦 and neither is the warp
Theyre on the right layers, i dont understand
What do you have cooking in there 
-# i might get around on mistria tho
look, I don't remember REAL HUMAN names well either
look in my ears and you will see swiss cheese
Other random suggestions:
- Make sure there's actually a tile on the Buildings layer for the warp. There has to actually be a tile on that layer, not just TileData, but an invisible tile works too.
- Check whether your edits are actually being applied in-game. Lookup Anything can show tile properties in-game, for example, but it requires a few steps to set up:
Install Lookup Anything, load the game, quit, open Mods/Lookup Anything/config.json, edit "ShowDataMiningFields": true, load the game again, point your mouse cursor at the tile, and press F1. A huge list of info will appear, and it includes tile properties somewhere.
(I haven't played mistria lol, and probably not for some time since I have some more stuff on my plate)
Want to make my first mod. Kmn right
There is a object on the building layer, i used the little robot, im pretty sure my edits are being applied since i was checking it after i changed some of the tiles and it was, but ill check
Anywa7 I dont think content patcher would work to add a new fish which is my goal - is that right?
Adding a new fish to the game has never been easier than in 1.6; nowadays, fish are a simple set of patches via Content Patcher. There are four required steps: you need to load sprite images, define the fish (as an item, and as a fish) and add it to locations. Optionally, you can add aquarium sprites and data, and fish pond data. I'll be using ...
You could with Content Patcher, yes
Oh wow man that's convenient
You can do a lot of magic with Content Patcher, actually lol
Thanks everyone. Sick day at work today so I might look at this instead
Hi just reporting that the mod author was cool and answered my question, it was as Esca said a dynamic token. They explained me what it was for and everything. So thank you @royal stump and @ornate locust for trying to help me there. 
OMFG IT WORKED Thank you so so much !!!
glad to hear it!!
hi there, i'm pretty new to modmaking (just doing personal edits right now..) I was wondering if there's a way to add audio cues (?)/sound effects from vanilla to tiles by just using Tiled and/or Content Patcher (that aren't just the grass/normal footsteps), or do you have to have C# knowledge?
I tried adding a string of "Action (Name) and playSound slosh (Value) to Tiled and "SetProperties" in the content.json so far, and then a TouchAction version of that...any info/assistance would be helpful 🙏
I hear it isn't very moddable
I would say something about that being fatal for my desire to play a game but
Anything that requires money rn is a hell no
(Context: I'm in house buying territory and stashing funds for that.)
Hi, I have a mod installed that does it's thing on the condition "PLAYER_HAS_MAIL Current WizardReward2", I have no idea what mail that is and I can't find a list of valid mail to figure out how to get it, does anyone know or have a link for a list of mail?
can someone give me a link to the testing tutorial
That's likely in a special order
Check data/specialorders
I shall have a gander, thank you
Wait? Did someone graduate 8th Grade and I missed it? Congratulations!!
I was thinking the exact same but I wasn't sure!
yeah I'm very unlikely to mod it lol, there's only space for one hyperfixation in this head
(last time I kinda seriously modded a game was Stellaris, and I stopped because I didn't like where the game was heading + I was dealing with a 1.6 style modpocalypse every 3 months)
It 100% is a special order, annoying given I have to wait until fall, I'll just modify it so I get it now
is their a wiki tutorial for testing mods
To test a mod, load it into the game and see if it does what you want it to
And check the console for errors
That's about all there is to it
You load up the game and check the console if it doesn't do what you want it to
what if its an event mod how do i skip to the event say a romance event
My personal testing loadout is cjb cheats and then whatever I want to test
Cjb cheats has the ability to modify relationships, time, warp to different locations, etc, both that and cjb item spawner are essential for mod testing imo
debug ebi [event id] in the console
You need c#, or a framework mod that does it for you
It's very simple c# though
I'm getting very carried away in answering that, but it's possible via spacecore 
If you want to play different footstep sound effects for certain tiles, that's not really supported, as far as I know. You can save over each sound effect, but only once per game session, so it's not really dynamic.
If you just want a sound to play once each time a player moves onto a tile (in addition to any footstep sounds), you can, but I think it requires a mod like SpaceCore. Action playSound only works when someone right-clicks a tile, and the game doesn't have a built-in TouchAction playSound.
It's a bit complicated to set up. You'd want to create a trigger action entry in Data/TriggerActions with an entry like this:
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_PlayTileSound": {
"Id": "{{ModId}}_PlayTileSound",
"Trigger": "Manual",
"Action": "spacechase0.SpaceCore_PlaySound wateringCan true",
"MarkActionApplied": false
}
}```
...and then in your map, use the Back layer property `spacechase0.SpaceCore_TriggerAction` with the value `Your.ModIDHere_PlayTileSound`. You'd also need to require SpaceCore in your mod's `manifest.json` file.
emu has a custom footstep thing
I really need to actually release it
make sure to set MarkActionApplied false if you do that
just remembered to edit that in, yeah 
and there is the edit at the same time making me look a fool 
I also made a note to self like 5 months ago to add footstep stuff to EMP, but I'll be glad if any of us get to it
(BETAS is also getting a PlaySound action in its next update too so you'd be able to skip the trigger action middleman if you used it)
Ah okay, this is helpful, thank you 
I may attempt to learn some more C# (I did the tutorial for the button press, but I still don't really understand what I did- ^^')
For now, I may try the SpaceCore way o: I want some nice sounds when the player walks hopefully
Also uh, what's EMU and BETAS? (I'm not sure about all of the abbreviations oops-)
I have a FarmerSprite transpiler that was originally just for splashy water steps but I expanded it to allow any custom TAS and sound effect to play for steps on a given tile
EMU is my map toolkit mod, BETAS is button's kitchen sink c# utility mod
the age old SDV tradition of 3 map mods implementing the same thing
Ah okay, thank you, will jot that down 
given that its meant for content packs i dont think id call it a C# utility mod! i also think "kitchen sink" is a bit unfair 
I'm gonna add in an npc called Gulliver
acceptable if its the animal crossing npc
just spawn him passed out on the beach & antisocial 
tbf it's not the exact same thing. spacecore's is a general-purpose tile trigger action thing, the betas thing is a touch/tile action, and the emu thing is specifically footstep replacement for the farmer sprite
the BETAS version is just an action in general
whether its touch or tile or trigger or dialogue or wherever else an action may be used
fjust how common is this property
I'm not seeing it anywhere
is it someting I should worry abotu
it's not a property it's a method on GameLocation. you wouldn't see it unless you're looking at c#
Hello! In dialogue modding, is there a Content Patcher key format that combines season, day of the month, and year? I couldn’t find anything about it on the wiki.

ok but is it relevant?
there are a couple of ways tiles change passability but the main ones are
- present on building layer
- passable property on building or back
(they've hooked into stardew using python afaik)
What do you mean by combine? Like into dd/mm/yy?
anyways, I shouldn't worry about buildings with this property right?
they don't seem common
buildings can use it technically but most people will probably just use the built-in collision mask feature instead
assuming you mean placeable buildings
I will just note that writing a mod in python means that nobody else will be able to patch it with harmony, since it's external code
It's not a big deal
I just figured I'd warn ya
I'm just exposing a http proxy with all the reflection api methods and stuff, and I js serialize the binaries using msgpack base 64 to give that as a callback
I'm out of the loop wouldnt you still need to make something in C# to interface with the game anyway
yeah
also C# being a worse language to work in than Python is quite the hot take but I digress /s
I need python libraries that's why.
Sorry, I meant day of the week. You know, there is a key format for <season>_<dayOfWeek><Hearts>, I'm wondering if there is one with all of this and the year too!
Sorry, the question I asked before was completely off.
what's stopping you from just {{season}}_{{dayofweek}}_{{heartlevel}} (not the exact token names)
they want the year
are you asking for dialogue keys that trigger on a specific year?
as far as i know the only year differentiation you get in vanilla is "1st year" or "every year after that"
(also for future reference just to reduce confusion, this isnt a Content Patcher thing, this is a vanilla game thing, these arent content patcher keys!)
ah I might have misunderstood the question
I meant that the dialogue varies between in, game years, to support more diverse lines.
it only varies between year 1 and year Every Other Year
you'd use When conditions
I understood it exactly the same as you initially selph haha, I just recognised the format they sent because I was looking at it recently
if you want to emulate it you'd need When conditions like selph suggests
and just swap out the dialogue year by year
but reuse the same keys
Actually, you didn’t, my question wasn’t worded very well.
Thanks a lot!
quick question to doublecheck if i understand (and math) correctly: max friendship points for marriageable charas is 250 x 14 = 3500? 
tyvm, that explains things!
Okay, so I just went on Nexus to see if there's any mod with which we could sell stuff in our inventory instantly. The only one I found was "Quick Sell", though that doesn't work on Mobile, so idk if it's useful.
My idea now is, if anybody would be up for it, creating a mod that does exactly that: allowing the player to sell things directly from their inventory (preferably the menu) via an extra button. (Like the save button for example)
perhaps it's also just too complicated or something; I'm an absolute noob at coding/modding so excuse my poor existence 🥲😔
!modideas you can post a new issue here
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
does anyone know where the parrot stand is
like the png or the tilesheet or whatever
try cursors
another nightmare of a sheet
if you mean this one its in towninterior
oh my gosh thank you
bottom right
also these on Maps/island_tilesheet_1 
reused some sunberry spawns to check how well ftm would work with pif 
working good so far
@royal stump what do you think about allowing special syntax for the MapName property in FTM?
Eg. a MapName that starts with PIF: will be treated differently in GetAllLocationsFromName
Is it possible to change the LocationContext data for the wizard's tower so an unique event plays if the farmer hits 2am there?
I've looked through several mods and all I can find is examples on how to overwrite all of LocationContext (so weather and such) for vanilla locations, or adding the relevant data for custom locations only
...Actually, the passing out event is for hitting 0 HP and for oversleeping you can only get a letter at most, right?
I guess that answers my question
you can have an edit so you receive no letters on meeting condition
(or at least set a custom letter)
Dear Farmer.
I'm afraid you lost consciousness at my house last night. Very unfortunate for you, but most fortunate for me. I assure you I shall return your kidney as soon as the elementals deem it time.
-Rasmodius
did they at least leave us one?
you have to learn the dialysis spell
is it possible these events are repeating every day? ```json
{
"Action": "EditData",
"Target": "Data/Events/Farm",
"Entries": {
"14635124/f Annetta 750/x AnnettaCooking true": "null"
},
},
{
"Action": "EditData",
"Target": "Data/Events/Farm",
"Entries": {
"246351241/f Annetta 1250/x AnnettaCooking true": "null"
},
},
Do PIF's location names have a prefix that could be matched? And do they exist in Game1.locations and Game1.getLocationFromName?
I'd prefer to do something like a foreach with name.StartsWith, rather than add mod-specific handling (despite the old TMXL stuff there). A lot of FTM's code also doesn't use GetAllLocationsFromName, e.g. the pre-save cleanups, and I'm not sure how long refactoring that would take.
i believe x as a precondition is deprecated and should be avoided when possible. You can repeat events by using trigger actions, althought it's entirely possible the whole thing would be better suited as a trigger action
it is also better, when possible, to use string ids for event
PIFs location names always follow a pattern: $"DLX.PIF_MINE_{pid}_{farmerId}_{doorId} with pid being the room model id. We'd want to get all locations that start with the constant + pid for a ftm config. And yes they're available in Game1.locations and Game1.getLocationFromName
Looking around a bit, I guess PID's keys probably aren't specific enough to target room types from a prefix alone (e.g. PID_RoomTypeName_ + etc), so it may need to check with an API or just rely on a Harmony patch.
And as long as getLocationFromName works on them, everything else should hold up.
Would spawning things in every room that begins with "DLX.PIF_MINE_{pid} be enough then? I'm not quite clear on the data model
yes
Hi! I was directed here to ask about fake dependencies in a mod to make sure NPCs clip on top of it instead of under
Like shopkeepers and places ppl generally stand
on top of it? it what? the mod?
So there's this toilet mod and I want to put them everywhere NPCs stand so they're all on toilets but they clip under them
Bathroom HxW, but there are others
Something of a long term project
ok well i'm pretty sure this has nothing to do with dependancy and anything to do with layering
They said in the json to make sure it loads firsty
in other term it's not order of loading the mods, it's order of the different layers, which you will not solve this way
Ohhhhhh
what's a tile index?
i have no idea who said that, where, and why
Modded Farmers
ok then maybe it has a reason to be suggested but i'm pretty sure this will not be a solution to the layering issue
"You can set up false dependencies in the manifest.json of the mod you want to load last. More of a making-mods-general topic though."
Grandma Mae
Ohhhh, I sometimes fail to elaborate properly and this is my first time doing this
(sorry about/disregard any typing confusion, just noticed a key is stuck
)
anyway i should go to bed but i'm not sure you can solve that with furniture themselves, as furniture has some specific layering
however making map patch is bound to be a bit tedious so...
Ok, thank you! I got a couple of other bathroom mods, but saving for furniture catalogue and getting ahead of that in case.
May I ask why you want to put toilets everywhere?
Lmaooo
Like just for funny or is there some mechanical benefit I’m missing?
I don’t get it xD
it’s so funny how u asked lol
But I don’t understand too what would people do with toilets everywhere in the valley
putrid ghost sheet appears to be missing the normal sprites--how are they animated? i'm trying to make a TAS of one
the carbon ghost and normal ghost have all their sprites, which i guess is why i was confused
they hover up and down
i shall peruse the decompile
thank you! i couldn't find where it assigns their spritesheets in the unpacked data, yeah
ingame it most likely uses math.sin/cos to give the floaty appearance, your bet with a TAS is yPeriodic
though I'm not sure how you'd format that in an event command off the top of my head
i think at that point i might just create my own spritesheet with four frames lmao i'm more art-oriented than math
Why can't you just spawn a ghostie
Isn't there a monster variant of the spawn character
i was looking at how to spawn monsters with spacecore but it's a trigger action, not an event command
it animates with A Bunch of Math ™
classic lol thank you for looking
would this work?
No isn't there an event command that spawns a monster
uhh let me go check, if i missed one i'll feel real stupid
Although iirc it has issues with green slimws too so maybe no
there's no spawn, but there's this, if that's what you meant
it looks like MEEP just has an event command for slimes
@blissful panther plz?
let me see how the temp actor looks and go from there
there must have been a reason i didn't do this last time but it's been so long i don't remember, so therefore no reason!
Can Content Patcher add completely custom machines instead of replacing one? I can't find any info saying it can, but I also can't find any info saying it can't so I'm hopeful
[[Modding:Machines]]
check out Cornucopia Artisan Machines for an example mod that adds plenty of new machines
That's where I looked, along with the github repo and missed the quite obvious "how to add/edit machines", sorry
that's perfect thank you, I did look on nexus but wasn't sure what to search besides searching by content patcher tag and crafting tag
is this right?
Don't add the 2
i tried that too : (
Is it on Back layer
Did you name it TileData
And make sure it's grid aligned
for the warp my bigger question is why are you warp into greenhouse like this
(tho you COULD add the 2...)
Do you have a tile on the buildings layer there
Yes
This was part of it
I got diggable tiles working now i think
@spice inlet I ended up using prefixes after all (for safety's sake with typos), just a general prefix: or suffix: at the start. "MapName": "prefix:DLX.PIF_MINE_" should spawn a full set at every PIF location, etc. Try it out if you want, and/or let me know if you have any issues with it.
(all else aside, "MapName": "prefix:" is a fun test)
Hey @lucid iron. Could I ask a favor? 🙏 (Please?)
I may have wares yes tho im doing tourism this week
You can ask anyways for next
Turn on snap to grid
i think i got the line up pretty close but the bottom row of dirt tiles wont till, and i checked theyre the same as the ones right above that do
does anyone know if there are any good tutorials on how to like make a farmhouse or scarecrow mod
like an asset replacer, or...?
yes like CP ideally or AT too
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
Hi, I'm new to modding, I'd like to make a mod to expand dialogues. When I saw other mods of this style, I noticed that it has several characters that I don't know, and I went to check the wiki in the dialogues section and I see that the page is down.
The greenhouse's normal tilesheet already has "Diggable": "T" attached to those tiles' sprites, so your TileData probably shouldn't be affecting things either way. (Any grayed out properties are on the tilesheet, which you can see/edit with this option.)
I understand! No rush.
I was hoping you might add another MMAP. You know how your mushymato.MMAP_FarmHouseFurnitureRemove and mushymato.MMAP_FarmHouseFurnitureAdd let modders erase or replace the starting furniture defined by the Farm map for the FarmHouse map? I was wondering if you would be willing to add a FarmHouse WallIDs and FarmHouse FloorIDs that would do something similar. I know it's possible to define the default Wall and Floor IDs in the FarmHouse map itself, but I'm getting some frustrating bugs with disappearing wallpaper, and the doubly-defined Wall and Floor IDs make it very hard to test. Plus defining it in the FarmHouse map properties doesn't always work. The Bedroom, for example, always takes on the Farm map Wall ID, not the FarmHouse map Wall ID
It wasnt working before i did any of this, and its kinda working now though
perfect ty!
Are you asking about particular characters, or about the Wiki? The wiki has been going down periodically the past several days.
I can send some screenshots or give you more detailed information if you wish, just let me know.
Oh, I want to work on a dialogue expansion for Sam. And I don't have enough information to start on that project.
Hm i don't think farm map has any power over the actual floor/wall zones in the farmhouse
FarmHouseFlooring/FarmHouseWallpaper do set the initial floor and wallpaper yes
It definitely affects the Bedroom FloorId and WallId, even if you define them as something different in the actual FarmHouse map - at least, that's how it's working for me.
this may be out of the scope of Content Patcher but is there a way for a recipe to take an item and output another item in a quantity that changes depending on the "Edibility" field? i.e. and apple with an edibility of 15.2 outputs 3 stone (stone is just a placeholder, will be different)
Thank you!!! You are The Best, @lucid iron
Enjoy your tourism first, though
This can wait until whenever it is convenient for you, of course! @lucid iron
Hello, how do I make a cooking recipe use any egg, as opposed to a specific egg like large white
use -5
do i just put the context tag instead of the specific object id
-5
(context tags don't work sadly)
thank u :3
huh apparently I already have an IsDebrisOrForage check, it's just that apparently worm spots are objects but don't count as debris
what do you do outside of this like for the image part
Don't they count as Arch? or have i read the wiki wrong
I think that's used for other stuff though too
I'm just surprised I have to write in an exception for it, since otherwise IsDebrisOrForage catches all resource nodes and spawned forage items
artifact spots seem to be a bit of an edgecase, I've noticed they've been neglected in a few mods i've come across previously
IsForage is basically a category check + forage_item tag, and artifact/seed spots are category 0 without the tag, ig
(and the debris checks all care about category -999)
also type asdf, which does nothing in particular
and how do you do seasonal stuff like if I wanted the house to change per season
if you mean how to replace the in-game images with your own, you'll want to make a Content Patcher pack; the main wiki's tutorial is here
https://stardewvalleywiki.com/Modding:Content_Patcher
you can use conditions and tokens with content patcher to do seasonal edits of single images
okay ty!
(oh, and AT's own content pack guide is here, since you mentioned that)
https://github.com/Floogen/AlternativeTextures/wiki/Creating-a-Content-Pack
I can't figure out why this custom machine isn't loading into the game, it's using a machine from Cornucopia Artisan Machines as a base so don't mind the texture names, a lot of it will change, https://smapi.io/json/content-patcher/4c20566fe67c4c199c540cc91f80d76a
(If it was shorter I'd paste it in here directly)
There's no errors in the smapi log so I think I've just missed a vital load function or something but I cannot figure it out
you also need a Data/BigCraftables entry
you'd add NutrientSlopMachine to Data/BigCraftables, and (BC)NutrientSlopMachine to Data/Machines
Ahhh gotcha thank you, I thought it looked too empty
hi again
I think I added the TriggerAction entry and the SpaceCore dependency, as well as the Back layer property (the pink one, right?) to the map in Tiled...I don't think I have an error when I load it in the game (although the validator doesn't like it...I think I wrote line 20 how it is on the wiki page: https://smapi.io/json/content-patcher/8cd1770f35854ea4b1cc0cd09ada8e39)
when I try to test and walk on it though, I can no longer walk on the squares, even though I have a Passable T property on them (the Building layer property)...should I be handling this a different way? 
Sorry just bumping this incase anyone knows if this is possible, preferably I'd like to work out the output quantity using this: Floor(Input Edibility / 2.5 / Output Edibility)
But I'd also settle for the rounded value instead of the floored value
Edit: this is so I don't have to add each input to the recipe manually
as far as I stuff I can see there:
- "Action" doesn't use a [list], just a single "string", e.g.
"Action": "your action here",
(it's easy to mix up with "Actions", which does use a list like that) - "MarkActionApplied" doesn't go in the action(s), it's a separate setting alongside the others
https://smapi.io/json/content-patcher/1d87c4f8ccc44747a84c5af05f009750
there's an item edibility GSQ, but no way to programmatically do stuff based on it, so it's only possible if you're willing to write out all the possible cases
the map tiles being impassable shouldn't have anything to do with the spacecore property itself, but I'm not as familiar with how passable/etc interact, unfortunately (or Tiled in general, compared to other folks here)
ohhh okay, I'll see if I can fix up the code then o:
Thank you so much for assisting
🙏
this is definitely a use case more fitting for a custom output method in C#
In that case I''ll write a mix of python to make the recipe file and load it using content patcher cause I do not know C# at all, I remember someone saying you can dump a list of laoded objects using SMAPI, how do I do this?
by all possible cases I meant stuff like stack modifiers where "if input edibility is larger than 5 add one more stack"
do you plan on generating a recipe for every single edibility -299 through Infinity
yeah that's my plan 
anything with a positive edibility ideally, unless machines won't output items if the output quantity is in the nagative or zero
i mean like there isnt an upper limit on edibility. what are you generating with python here
Just recipes, the python won't be included with the mod, that'll just be my method to replace manually making recipes for every item in the game you can eat
what about modded items, or mods that change the edibility of vanilla items
tbc "im not concerned about those" is a valid answer
the item with the highest edibility in vanilla is magic rock candy at 200, anything higher is fake/doesn't matter (half /s)
if we're bucketing edibility stack count increases every 2.5 edibility that's only 80 entries in StackModifiers
“only”
I already have taken account of mod added items by using python to read the mods json files (if it's a content patcher mod) looking for items with an edibility, mods that change vanilla items edibility I didn't even think of
Don't I have to write a recipe for every item? like all the fruits, drinks, vegitables, etc I'd have to account for the amount of items rather than values of edibility
well that only works if you have the mod installed when you generate the recipes
no, machine rules do support "if item satisfies this condition set/increase/change stack count"
the issue is that you have to write out every condition
because you can't do "take edibility, do calculations on it and set stack count as that number" without C#
I'd have to rely on bug reports added by people who download the mod, I can't account for all mods unfortunatly but thats something I'll have to deal with
It's easy if u r in c# tho 
And "write out every condition" is easier now that u can template it
I'd personally just do steps of 100 edibility
so your machine rule can have "edibility is 5, set stack to 1. edibility is 10, set stack to 2. edibility is 15, set stack to 3, etc." repeat until 200
And cap at 3
If I knew C# (and could actually get it to build) I'd be set, I wouln't have to rely on any other frameworls, It'd be heaven for me
Well frameworks is just other people's c#
you can set the input of machines to use edibility instead of the item ID?
I'm aware, but my ideal for mods I make is to make users download as little extra things as possible, even if they do probably already have it
you can look at StackModifiers in this page: https://stardewvalleywiki.com/Modding:Item_queries#Item_spawn_fields
My ideal for installing mods is for them to use common tested c# instead of one off niche c# that may be in conflict tbh
it's basically a list of entries where "if this condition satisfies, do this modification to the stack count of the output"
(to answer your question, no, item input is still based on ID/tag)
[[Modding:Game_state_queries]] are said conditions
very fair point, I didn't think of that at all, common frameworks like Content Patcher also make it easier to debug when things go wrong
It does depend on what exactly you are doing
For machine outputs there is a OutputMethod thing you can specify
And essentially take control of how the machine logic works
This has very low chances of conflict
So instead I could write the recipe to use anything in the fish tag and change the output stack size based off edibility/energy?
(but it could be like "any fruit item" or etc)
However if you were gonna have to harmony patch anything then you need to think about other people patching same thing
yep
That's fantastic news, the only edge case I'd have to think about is if a mod adds a new catagory (If that's possible)
It is but only visually
"Wem.Tilly": "$action AddMail Current Wem.Tilly_EggMail{{i18n:Wem.Tilly_spring13}}", This is returning
Failed to parse $action token for Data\Festivals\spring13:Wem.Tilly: optional index 3 (MailType mailType) has value 'is', which can't be parsed as an enum of type 'StardewValley.Network.NetEvents.MailType'.
Does anyone know what this means/can figure out why the addmail isn't working
oh mayb ei have to add the type
as tomorrow
since there's something after
How do i prevent non edible items from being added to the machine if I specify catagories that can be added? i.e. if a catagory is usually only edible items but a mod adds a none edible item to it
why are you putting i18n inside the command
oh wait i have to separate it
the input trigger has a Condition field you can use
how do i separate in this case? where do the # go
is it #$action.......EggMail#{{i18n}}
wait is this part of a mail's body
that makes more sense
yeah split it, the game thought your i18n was part of the command
How do I split it properly?
I can't find input trigger on the Modding:Machines page on stadew wiki, is it "RequiredTags" under "OutputRules>Triggers"?
first time using a command that isnt $b or $e lol
this looks right (but im on my phone)
RequiredTags is the context tag for the input item (like category_fish)
condition is the Condition field below
all commands are separated with #
coming back to this, it seems like adding them as actors doesn't animate them
i guess i'll draw a spritesheet myself, unless anyone has any wisdom on how to spawn them with spacecore during an event
Looking at the "ITEM_EDIBILITY <target> [min] [max]" trigger condition for machines, if I supply a [min] do I also have to supply a [max] too or can I leave it blank for the default unlimited value?
anything that is wrapped in [] is optional
perfect, thank you
if it was [min max] then they would be a package deal, but since they are separate you only need one
would a valid condition be "ITEM_EDIBILITY Input 2", where it would accept the input if the edibility is 2 or more? just want to make sure I'm reading the <target> field correctly
seems right to me
perfect thank you!
is there a way to animate the farmer swinging or holding a weapon in an event? i tried showing their sword block frame but their hands are empty
Struggling with the "RequiredTags" field, getting this error:
Error converting value "category_artisan_goods" to type 'System.Collections.Generic.List`1[System.String]'
Tried category_artisan_goods, "category_artisan_goods", "-26", and -26, What's the correct way to write the category?
Ahhh gotcha, Thank you
Is there a way to list the RequiredTags as an OR list rather than AND? given it allows NOT (!) operators, I'm hoping it allows OR (||) operators too
Hi, I'm making an add-on for 6480's Yet Another (Balanced) Quality Goods Mod. Having trouble with a part.
This is my code, based on 6480's code
"Changes": [
{
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"(BC)17",
"OutputRules",
"birdb.CP.Alpaca_AlpacaYarn",
"OutputItem",
"birdb.CP.Alpaca_AlpacaYarn"
],
"Entries": {
"CopyQuality": true,
"PriceModifiers": [
{
"Id": "DraconicArcher.qualitygoods",
"Modification": "Multiply",
"Amount": "{{Profit Scaling}}"
}
]
}
}
]
}```
And this is the code from the mod I'm trying to adjust:
```{
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [ "(BC)17", "OutputRules" ],
"Entries": {
"{{ModId}}_AlpacaYarn": {
"Id": "{{ModId}}_AlpacaYarn",
"Triggers":
[
{
"RequiredItemId": "(O){{ModId}}_AlpacaWool"
}
],
"OutputItem":
[
{
"ItemId": "(O){{ModId}}_AlpacaYarn"
}
],
"MinutesUntilReady": 720
}
}
},```
Everything else I've done works, but those didn't have {{ModId}} as part of the code
Ahhh didn't know multiple entries were allowed, perfect thank you
Sorry, Atlas. Wasn't trying to interrupt
the last entry in your TargetField should be "(O)birdb.CP.Alpaca_AlpacaYarn"
Oh. I guess I missed that. Thank you.
No worries at all
last item in TargetFIeld needs an (O) at the front
How do I make a custom category context tag for a custom item? do I just add "Category": "category_atlasv_<ItemCategoryName>" in the "Entries": section?
you can add arbitrary context tags if that's what you're asking, but that won't change the category of the object
you can't do custom categories, but you can do a custom category label for a specific item using spacecore
you'd edit its entry in Data/Objects to add that tag, but yes what wren said
I get the feeling this might be an x/y problem
I just want to add some kind of identifier to my custom item so it can't go through my machine
wait, I can just add the item name
brain block moment, never mind
there's an automatic context tag for item id, but I recommend making a custom tag and adding it to the item instead, so other people can also easily blacklist their own items if they want
How do I add a custom tag to an item? I'm not seeing it on Modding:Items on the wiki
Ahhh it was in objects not items, Thank you once again
I found out that you were able to mod switch using the Linux Ubuntu method and I was wondering after modding a little bit on PC, why does the switch method recommend 1.5.4 version and not 1.6 for modding, and do any of the current 1.6+ mods work for 1.5.4 or do I have to find mods that work for 1.5.4 only?
modding on the nintendo switch, i believe
ahh
1.5.4 is a completely different framework tbh
to answer your questions, it's because modding on the switch is perilously not supported, and no you can't use 1.6 mods on 1.5.4
My understanding is that xna works on arm and monogame does not
isn't android modding only supported on 1.5.4 for the same reason? ARM processors working differently
ah it's the installing arm linux on switch thing
I don't really know how this stuff all works, but if you're running stardew off of a Linux isn't it different than running it off switch natively?
Well yes
yes, but the processor that runs the switch system (the CPU) is still ARM based
hmm, okay, I guess I'll just stick to PC if I wanna mod then
No, the android build is Different
meaning certain features used in SMAPI itself aren't available I believe
ahhh gotcha, forgive my misinformation
That's an intresting prospect, I'll have to give it a look
one of the best purchases I've ever bought, Highly recommend
Tbh I've always wondered if you could just build stardew's dependencies for ARM
Hi guys I have a question
I don't have an ARM machine though so
!ask
Ask your question or describe your issue here, and someone will help if they can!
So I am trying to download mods on my Mac but it's not working and I've literally tried everything
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
click on the link to the channel in that message
in VSCode I'm getting a "Duplicate Object Key" warning when I include a second "RequiredTags" field in the "Triggers" list, can this just be ignored and Content Patcher will still load it fine?
that's definitely wrong
you don't add two RequiredTags into one trigger, you add two entries into Triggers (it's a list)
wait no
I explained that wrong
ok fixed
this?:
"Triggers": [
{
"RequiredTags": ["category_artisan_goods", "atlasv_slop_machine_exclude"],
"Condition": "ITEM_EDIBILITY Input 2"
}
isn't "RequiredTags" and AND list not an OR list?
so it would only trigger if an item has both tags, and not an item that has ether or
no, you add another {} block inside Triggers
OHH understood
the rule will activate if either of the triggers activates
"Triggers": [
{
"RequiredTags": ["atlasv_slop_machine_exclude"],
"Condition": "ITEM_EDIBILITY Input 2"
}
{
"RequiredTags": ["category_artisan_goods"],
"Condition": "ITEM_EDIBILITY Input 2"
}
]
This then I guess
yep
perfect thank you
That's not gonna work for exclusions I think?
If an item has both "category_artisan_goods" and "atlasv_slop_machine_exclude" tags, do they have to be in a certain order if I want to use "!atlasv_slop_machine_exclude"?
beat me to my follow up question
ah yeah I wasnt quite paying attention to what the tags mean
I figured out the word to describe it, is there a peticular order of operations for excluding an item with 2 tags
so you would add "!atlas _slop_machine_exclude" to every trigger rule so it'd be "whatever the first tag is + not contains that tag"
I'm assuming you want to have multiple triggers, one for fruit, one for veggies, ect.
Ohh okay
and yes, that is the case
(in case anyone cares/was waiting for it, BETAS 2.15.0 is now out with 10 new triggers, 12 new GSQs, 16 new tractions, and 2 new tokenizable strings
)
I was waiting for that so I can sleep 💞
Oh- Does it have the PlaySound action thing now? 
it does!
aaaa yay
I will try to include that tomorrow then (I couldn't figure out the spacecore way oops-
)
#$r Q_Navyresponse1 0 Q_Navy_reaction1#Uh, what?
#$r Q_Navyresponse2 10 Q_Navy_reaction2#Yes, actually... [give a detailed lecture about 20th century naval battles]",
"crystal_dialogue.Q_Navyreaction1": "Yeah, not surprising. Like, when am I ever gonna need to know this stuff?$6#$b#Thanks, though.",
"crystal_dialogue.Q_Navyreaction2": "Wow, I can't believe you just knew all that. You're a lifesaver!$h",
"crystal_dialogue.Q_Navy_fallback": "Thanks again for your help with this assignment.$h",```
how do i correctly format this?
Am I right in thinking that the categories "Object.booksCategory" and "Object.skillBooksCategory" aren't able to added to "Triggers" for content packs as they don't have an assigned context tag?
(https://stardewvalleywiki.com/Modding:Items#Categories for the list of catagories)
you could use the item_type_asdf tag i guess
and then check if they are the book category in the condition or somethin maybe. idk what that trigger stuff actually does but they will have that context tag given to them
at least, the vanilla ones will
Just trying to cover all edge cases, say if a C# mod adds something to the "Object.booksCategory" and my machine accepts it cause theres no way to prevent it
the vanilla ones are also given book_item though so if you give up caring about modded books potentially not doing that then you can use that
it's entirely for modded book items, as no vanilla ones has an edibility value
You cannot prevent a C# mod from messing with your machine full stop
(Yes I know it's silly for a book to have an edibility but I'm making a mod that makes nutrient slop, silly ideas are inevitable)
It's less of a preventing a C# mod from messing with the machine, and more preventing a user accidentally turning a skill book into food, becuase I know if that's a thing, I will acidentally do it
theres also no guaranteeing that even the things that do have category tags wouldnt have them removed from a specific instance of that item
no way of covering every circumstance, as much I want to, I'm not omnipotent, it'll stay as an edgecase for now until someone encounters it
id be willing to bet that book_item and item_type_asdf would cover most if not all cases, modded or otherwise
gotcha, thank you
Other than needing i18n, it looks ok to me. What are you asking for help with specifically?
this is copied from i18n :) a player reported this error: https://smapi.io/log/95737154e14e4f85b3698559c158e22d
Log Info: SMAPI 4.3.1 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 16 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
There's gotta be a better way to add recipes for every edible item, Stardew Valley Expanded (one of if not the most downloaded expansion) has edible items with an edibility value of 999, to cover everything it's gunna be 18500 trigger checks, down scaling is 100% needed
You can local token it tho
What's in your dialogue.json? The error is that your dialogue key Q_Navy_reaction2 wasn't found in the NPC's list of dialogue keys.
The way to do it is, add the overall machine rule once
🧱
