#making-mods-general
1 messages ยท Page 522 of 1
WHY ARE THEY NAMED SO SIMILAR?
I thought I could use VSC since I noticed a mod I had already installed had code in it, but I dunno
Same company, and VSC was supposed to be an "easier" VisualStudio
You can definitely use VSC, but that'll be way harder to make a C# mod
Because you need to complie things, and VSC is really not good at it
But you can still use VSC for Content Patcher mods, it's enough
What's the difference between content patcher mods vs other ones?
Content Patcher is a framework that allows you to make a wide variety of mods without coding (it's just JSON files)
A majority of mods today are made with CP, there are even framework for CP to allow you to make even more things without code
When we talk about C# mods, we mean mods that are made using SMAPI and are written in C#, they can do more thing (anything, really), but require knowing or learning C# to do so
Ah, I see. Welp, time to learn to code C#, it seems. Thanks a lot!
Yw ^^ From what I understand you're wanting to do, adding dialogues can quite easily be done using CP only, but everything going beyond vanilla mechanics would indeed require C#
Wanted to try my own hand at a Shane mod, along with some other stuff, so yeah
Hello! If one wants to attatch the monster compendium to a letter, would you use book_void?
or should I use the name?
you use the item ID as reported in Data/Objects
which in this case is Book_Void
(note the capitalization)
Awesome okay thank you ๐
Hi,
I want to create a harmony mod, but the event never trigger. Any ideas why?
[This is the code] (https://pastebin.com/ESqUWFE3)
The console output only: Mod Loaded!, Patched StardewValley.Object.DayUpdate method.
Thanks in advance for the help
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
how do I load a custom texture for a custom building?; just add the png to buildings folder right?
It turns out the most difficult thing about the new Patchmode: Mask is how to arrange the spritesheet's textures so that things don't accidentally overlay each other, while writing as few patching paragraphs (or however they are called, I always forget) in the json as possible, which I believe would require a rather large spritesheet which is mostly a blank space, with textures sprinkled on it seemingly without sense or reason other than my own. Oh well, I made my bed and I will lie in it. Or rather, the Italian equivalent is more apt, as it says "You wanted the bycicle, now ride it", and heck, is my brain doing a workout right now.
Do you have a separate class called HarmonyEvent somewhere? The code there is all inside ModEntry, but refers to it anyway. It could be using the wrong patch.
Other than that, I'm not sure, it looks alright.
You'll need to use a Load action in CP, generally. If the building itself is already set up in Data/Buildings, then for example:
"Junimo Hut": {
"Name": "[LocalizedText Strings\\Buildings:JunimoHut_Name]",
"NameForGeneralType": null,
"Description": "[LocalizedText Strings\\Buildings:JunimoHut_Description]",
"Texture": "Buildings\\Junimo Hut",```
To load a texture for that, you do something like this:
```json
{
"Format": "2.9.0",
"Changes": [
{
"Action": "Load",
"Target": "Buildings/Junimo Hut",
"FromFile": "assets/your_new_texture.png"
},
]
}```
Yeah, i copy paste the code from another file, so i don't need to create two different pastebin
have you tried sleeping to test it? DayUpdate might happen overnight but not after loading
Ok, Which event is called during the loading of the file?
I'm not sure for Harmony targeting, usually things are done around loading with SMAPI events
Item has methods used when items are in the inventory or used by the player, etc, and Object probably has some others too
This is the problem
Hello!
Unlockable Bundles goes to round 4.2.0 with yet another cool update ^^
Featuring a new FloweryBook theme by @elfin palm it also contains various fixes and improvements, but mostly specifically requested features like improved page completion customizability and disallowing contributing previously contributed items.
The DEMO and Android release got updated alongside it.
@royal stump If found a work around. Thank you alot for the help
no idea how to do action tiles
https://stardewvalleywiki.com/Modding:Buildings#Tile_interactions
each thing in the [list] should be its own {object}, with ID + Tile + Action
so basically, add {} around what you've got in there and then an action from here: https://stardewvalleywiki.com/Modding:Maps#Action
"ActionTiles": [
{
"Id": "shipmenu",
"Tile": {"X": 5, "Y": 10},
"Action": "Mailbox" //idk if there's an action for what you're doing, but put it here
}
],```
or the unique building ones like BuildingChest Input/Output, etc
(Quick proof of concept: SMAPI integration with Generic Mod Config Menu, for the settings most likely to be changed by players.)
how do I change the network the minecart action is using?
You can use an Action: MinecartTransport [network ID] [exclude destination ID] map property to open the minecart menu.
like this?
for appearance modding, if I include weather types from a mod like say weather wonders, does that then require the mod to have that as a requirement, or would it not effect someone if they didn't have that mod installed as it is just a condition that would never trigger?
no [], on the wiki [] means this arg is optional
how do I add an argument? Do I use a comma, or put it in the same " "
You can make a conditional patch that would only be applied when that mod is installed; it may cause problems else, and hard requirement for visual things aren't very cool
no comma
the latter, unless you're using specifically a modded gsq
like this?
Just remove the []
It's here to tell you "replace with the thing you want"
awesome, thanks. Just wanted to check before I break something or not realize something is broken and release it
you can't have two sets of "" on the same line, json is yelling at you about it
(however I would double check that the weather gsq doesn't complain about invalid weather. I don't think it does but I may be wrong)
yep, that I can check and not bork it... hopefully
is this in game,,
Yep.

Yay!! Hehehe so excited to use this
oh pathos i havee a question for you!!
were you a moder before becoming a dev?
Pathos still is a modder
Pathos was brought in for 1.6 and started maintaining SMAPI before then
Yep. I've been a programmer since 2000, mod author since 2016, and Stardew Valley developer since 2021.
oooo 
ooh fancy!
thats super cool 
anyway
i found 2 mods that arent compatible in 1 ascept, and i want to somehow fix it, for personmal use. may i get some help
C# or json?
(It's def C#, UI Info Suite 2 and Binning skill)
Ah yeah that is c# for sure
i got all day so
Have you done any procedural programming before?
Oh, c# shouldn't be too bad then
You want the yellow book: https://www.robmiles.com/c-yellow-book/
That's what everyone recommended to me when I asked about learning C# in here once
Plus my mom's personal rec of w3schools
(Is free)
eating it [reading]
I keep getting an error even though the json checker doesn't seem to find anything wrong :')
do you have a video? its hard for me to read that :[
There are a bunch of videos to learn C#, it's just that the book is the reference
OHHH
Somehow I read the first number as 2020
And couldn't figure out why they were backwards
You can probably find an openclassroom course or something
i hate having troublw understand things oriruuyhjd
Tbh if you have a local university try takinf a class through them
im in school rn
Then take a class!
If you can't take a class because your day is full, then you definitely can't learn C# today /gen
today , tomorrow, n monday is free [snowday
]
found a video gonna watch that me thinks
I'm tempted to make a mod. I've never done it before, but I want a skill tree mod.
Vanilla Plus Professions is a professions and talents mod by KediDili. It expands on the vanilla professions by adding new profession choices at levels 15 and 20 and adds a new talent tree for each skill where players can earn talent points to purchase perks that improve various gameplay aspects.
It can be downloaded from Nexus: https://www.nexusmods.com/stardewvalley/mods/20054
is DLL the c# part?
Ok, so vpp is a good example then ^^'
That would most definitely require C#
That's where things get difficult. I don't know how to code.
I regularly took 1.5x the course load of most students
It's doable
I can make the skill tree, but I'll have to find someone to implement it
!comms
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
Hopefully I find someone who I don't have to pay simply because they like the idea
Try w3schools then, iirc they have practice exercises that allow for practical learning
Or check Youtube!
They do have reading on w3schools but I recommend doing practice exercises for sure
is the dll the c#
The dll is the compiled code
To view the code itself, check the source repo of the mods on github - I'm pretty sure they're both open source
So yes, the C#, but not in a format you can read unless you decompile it. Easier to just check the repo
time to find how to open it on mac
Check the repos for now, they're just a browser link
... Does ILSpy exist for Mac
looking
making UI kind of suck tbh it's not as simple as "write some html"
Because if so you can decompile the DLLs with ILSpy
if you want a no UI approach though, you can make use of the powers tab
which does let you just light up whatever icon conditionally
however the actual implementation of the powers is also very likely C#
Why am I the one doing the walkthrough here, I'm a lawyer not a programmer ๐ญ๐ญ /lh
I also refuse to use AI for my code
no one said you should 
I'm avoiding someone making the suggestion
well even if you did use ai for the code i doubt it would work XD so no point even bothering
yes i could help i did it recently
u need to use the terminal to run it tho

!decompile
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
download ilspy, open terminal run these two commands
xattr -l /path/to/application.app```
Ooh, that should really have the VSCode plugin added as an option.
downloading the .net n ilspy
also I never got C# to work on macos so that's where I can't help you from there. The SMAPI packager wouldn't install on VSC, so I can only make C# code on my windows computer
am i fucked,,,
You can 100% do C# on a Mac!
how did you get the package to download on VSC? Without it, you can't run your code
I love how you can mod Stardew Valley so much on a low end computer but can barely play base Minecraft
Hang on my mom has a different IDE lemme ask her what she uses
... Hopefully she's still awake
i downloaded it to my macook itself,,
(Not jetbrains, which is why I don't remember what it's called)
well, stardew is pretty light compared to minecraft. the lack of 3D definitely helps
Nah, this is still on topic
Intellij Idea, she said
If VSCode doesn't do the job I imagine this works
... I hope it's free
For C#?
She got the thing from work, of course
She did mess around with C# on it at some point
the only thing that prevented me from using macos is that I could not install the godot package no matter how much i tried
ModBuildConfig, you mean?
Rider is free now
It wasn't her primary language but she mucked around with it at some point I know for a personal project
... That helps
And is the same company as idea iirc
okay wait
i downloaded ilspy and .net
already had vsc
opened and downloaded both
ilspy isnt showing that i downloaded it wuh
did mac eat it...
use git
mm yeah so you know when you open github and click on that green button
i see it
there should be some kind of quick guide for this kind of stuff yeah
im not really good at explaining any of it myself
Youtube should work for this stuff tbh
while unreliable for stardew modding, pretty reliable for things that don't change constantly lol
hell i'm following 7 year old youtube guides for things XD
you should see how old the tutorials are for modular synths ๐ญ
oh jeez lol
@calm nebula: look (5d ago)
Ah. Uh... I think mac is trying to eat it
it's not i previously sent instructions how to fix it
game folder, and a folder you make
ive never used the ilspycmd before but id say the folder that says stardew valley
well u can try it and see if it works
it isnt ?
do i make the outpath folder there?
so loast
where is outpath
where is outpath
oh why did it send late, and twice
May I ask what exactly it is you're attempting to do? I mod on a Mac and have no problems with C#. I use VSC.
want to make these compatible
with just one part
im just trying to download rn then get there
You want to make them compatible with what exactly, each other?
just this part
Ah. I'm definitely not the person to help you with how exactly to do that, but the outpath is where you want your mod code to be saved. Your development folder. It can be anywhere.
how did you install the godot package for packing up C# mods on VSC?
Which name for my shopping channel do you all think is better?
The Zuzu Shopping Network or The Belmond's Exchange
It's been a hot minute, let me boot up VSC
basically my problem with VSC is that I can't pack up files or run without debugging, I don't have any problems with VS on windows though
I think the first one is more Stardew-related.
hi hi
Ah I see now. VSC deprecated the C# Intellisense extension.
sorry got sucked into plaiyng a mobile game lmao
but like could it be in mods folder?
so in other words i cant on mac now?
is it possible to change multiple descriptions in one go under Target for TextOperations? such as "WhiteEgg_Decsription", "BrownEgg_Description", "LargeBrownEgg_Description" etc etc
now I can only code C# mods once a hour on weekdays 
You can, you'd just need to find a different IDE
Sorry to have given false hope 

I've heard good things about VSCodium
Did you download from the git?
๐ญ
okay no it doesnt waan to work
i might just comm someoen since its actually going insane
yea,,
sometimes it is the solution, at least for a time
esp if it doesnt even work on your device
I already sent this before but
here's how you unpack the game cs files on macos
- download ilspy avalonia
- open terminal and run
xattr -dr com.apple.quarantine /path/to/application.appif you cannot find /path/to/application.app, then you just drag the file onto the terminal window
then run
xattr -l /path/to/application.app
then run the application
x64 is windows is it not
There aren't any existing mods which increase the chance to find ||Golden Animal Crackers|| from various sources, are there? So far I haven't found any.
I think I see where in the code the % chance for them being found from various sources are, in StardewValley.Utility.getTreasureFromGeode(), StardewValley.Utility.trySpawnRareObject(), StarDewValley.Locations.MineShaft.getTreasureRoomItem(), and StardewValley.Tools.FishingRod.openTreasureMenuEndFunction()
However I'm assuming that the only way to really edit those would be with a Harmony Patch? Which always gives me a bit of a headache to work through... ๐
@lucid iron @vernal crest would appreciate your guys' help since you helped me a lot until now and nobody is atm haha
"nobody is here"
i'm essentially looking to edit all instances of egg and milk and cheese in one go
?
i didn't say "nobody is here" if you're talking to me
no worries
that's probably the last help i'll need with this before i'm finished
i'm reading the documentation and it doesn't say i can use multiple instances after "Entries"
DH is typing,, scary
so i'm wondering if i can do smth like "WhiteEgg_Description", "BrownEgg_Description" etc
without having to copy-paste the entire EditData entry like 5 times
What you're looking at there is the ILSpy GUI, which is only for Windows. The only up to date options for ILSpy on Mac or Linux are:
- ilspycmd, which I think you already installed?
- The ILSpy plugin for VSCode.
There are no real guides for option 2, but the wiki's decompile section goes over option 1 here. Just instead of the game assemblies, it would be the mod assemblies.
(Now AFK for... maybe 10 minutes. Responses after!
)
DH, ILspy works for me
oh, it told me its corrupted
can you please follow the instructions I sent you ๐ญ
and i tried /lh i asked which one here
klip PLEASE stop with the passive agressice emoji reactions when its towards me
this is the 6th time in the last 5 ddays i asked you to stop
I believe you should be able to use a custom Content Patcher Token such as Dynamic Token, possibly even a Local Token, to basically use as a variable to repeat the same information everywhere you use it:
i didn't react to any of your shit either lmao you don't get to ask me not to react to other people

do you see me in that conversation anywhere
i pop in to read current chat and pop out
didn't even speak

What is even happening here lol
I don't know
But what I do want to know is if you're tomato soup specifically or a different soup, forsy
Mmmm
I'm gonna make dumpling soup tomorrow
Mm sounds good
I hope I can do the recipe justice!
i am reading that currently
They're so good
i am specifically doing TextOperations and looking at the examples, i don't see an instance where multiple tokens are used after "Entries:"
do you wager it could work?
i give up for now
okay I sent you the windows on by accident, just do the instructions I sent you but download from here https://github.com/icsharpcode/AvaloniaILSpy/releases
thank you
Hmmm. Dumpling mod...
same thing
corrupted
That's quite odd, that it corrupts more than once
each artifacts
idk

๐ฅน
im sorry i wasted all your time
it's not, spirit isn't using the terminal
it wont let me even open it anymore
i am
zsh: permission denied:
as well when anything
which is why you do the 2nd command
I'm out of my depth with Mac work so I'm leaving this to you ngl
I believe so.
For example, in my mod I set a "Smoked Fish Quality" Token in the config through content.json like so:
"AllowValues": "Regular, Silver, Gold, Iridium, Preserved",
"Default": "Preserved",
"Description": "Makes Smoked Fish from the Fish Smoker always come out at the specified Quality. Selecting Preserved makes it match the quality of the raw fish, the way it works in Vanilla."
},```
Then in another .json asset, I reference that Token in the Description for an item like so:
```{
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"FishSmoker_Description": "Place fish inside with a piece of coal to create smoked fish, which is worth double. The quality of the smoked fish is {{Lowercase:{{Smoked Fish Quality}}}}."
}
},```
So the text string set in the config for "Smoked Fish Quality" (regular, silver, gold, iridium, or preserved), gets inserted into the Description for the Fish Smoker item. You could do a similar thing where the entire Description is just a single Token in your case.
thats not worknig either.
I've been using Windows machines all my life and will be shortly getting used to Linux, so yeah
basically macos has a lot of security behind it; it doesn't like to run files it doesn't know about. So you force it by using the terminal
That I did know, it hates SMAPI too
But yeah this is all quite a paternalistic approach to cybersecurity lmao
yeahh lol
i hate this
C'est la vie
You get a nice looking system but the damn thing assumes you're stupid
What a trade-off
" if you cannot find /path/to/application.app, then you just drag the file onto the terminal window"
permission denied again
xattr -dr com.apple.quarantine is to remove the quarantine on the app you're trying to run; giving you permission to run it
you might be able to do this using Fields instead of Entries. what you have now i don't believe will work
oof that's slightly more complex than what i was looking to do haha, but yeah the above (what i did) doesn't work
i tried both separating the entries with quotation marks and putting them all in one
i'll record a video of me doing it
please
last time i was told not to do Fields
okay then yeah don't use fields, i've never used it but i thought it could be used for things like that
so far i didn't have to reference the exact same items and recipes, but when it comes to eggs/milk/cheese (which are all "Any" in recipes) i want to avoid duplicating shit as much as possible
you might SOL, CP doesn't have any sort of foreach or iterating it can do. one by one might be your only option
boxo do you want to dm me?
local tokens may be able to cut down the amount of copy paste but that's another thing i've never used
yeah i can do one by one i was just thinking i could slightly optimize this but it's my first mod and quite frankly i have no idea what i'm doing
i got help with the rest for the most part
You can check the way I have it set up in my mod for reference*, although the full Tokens doc page Content Patcher explains a lot too. In your case you wouldn't need to have the Token set in your config, so you can probably just define a Dynamic Token directly in your content.json.
* In the the content.json & otherChanges.json files of the Better Balance mod on Nexus
(I really recommend keeping your troubleshooting here or in a thread as a resource for people to use in the future!)
the tradeoff with CP's ease of use is its lack of flexibility sadly
yeah that's fair
(ooo good idea,, should i make a thread?)
(Dew it)
i didn't see it set up like this in the documentation either
(If you somehow don't have perms I'll do it for you)
it's always Entries and then one instance of something
Hey soup, mind taking things over to the thread to keep everything consolidated as a sort of resource for the future?
Who knows, maybe other Mac modders will need it
i made it AS SOON and they sent it
I'm unaware of a thread, ping me there?
Yep 
Spirit pinged you in
nice! Thanks for being considerate of others
I'll head out now, I'm having exhaustion fever symptoms so I'm gonna hit the hay before I actually get the fever
aww :( take care of yourself!
We're already in a closed ecosystem, gotta make things accessible to people as far as possible within the ecosystem at least!
go sleep niow!!!
If you're comfortable with wiki editing, you should definitely consider making a resource or tutorial for the modding wiki with common Mac troubleshooting steps, so we can also have an external resource anyone can access!
Wikiwikiwiki...
But yeag
Goodnight! 
haha sure 
(Is very simple and vscodium/vscode have a nifty wiki syntax extension if that floats ya boat)
gn we can talk about it tomorrow
@plucky mirage
So in your case, in your content.json you could define a Dynamic Token like this:
{
"Name": "Egg Description",
"Value": "Put description of eggs here."
}
],```
And then put {{Egg Description}} inside the "" marks in Entries when setting the egg descriptions
oh interesting okay
or wait, where would i put all instances of egg? inside "Value", separated by a comma?
or inside "Name"?
okay, i am reading the documentation - if i understand this correctly, i need to put each egg instance into its own block like the above?
if you want to use a DT to add the same description to every egg, you'll still have to have one patch per egg, but you could shorten the thing under Entries to WhiteEgg_Description": "{{Egg Description}}"
so if i create a Dynamic Token that lists each egg, instead of "Target": [ "Entries", "WhiteEgg_Description" ],, it would be something like "Target": [ "Entries", "{{AllEggs}}" ],?
sorry, my brain is struggling to retain information at this time of night
i am very inexperienced
no, dynamic tokens can only be one thing at a time
what you're wanting is some kind of variable or list to iterate over, which i definitely understand, but which isn't possible
gave up
laptop crashed when opening the decompiled dll
a token is shorthand for "replace {{thing in braces}} with the value it's set as elsewhere"
are you editing entries in Strings/Objects? i'm wondering why someone else said you can't use Fields 
do you have a link to that convo so i can learn why?
so i don't recommend it for someone else haha
yeah let me get it for you
we talked about Fields before this but this is where we had issues: #making-mods-general message
here's where i started talking for the day and had Fields in my original example and was corrected: #making-mods-general message
okay yeah i just read the convo and refreshed myself on entries/fields/targtfield
fields wouldn't work because it's just a string:string dictionary, no models involved
i don't know what any of that means but i'd trust you with my life ๐ซก
nah i just don't wanna have to redo the same EditData for each of like the 5 egg types lmfao
and the like 4 cheeses and all the milks
i don't recommend this but it would technically be possible to use Fields if you edited Data/Objects instead and didn't use text operations. but you'd be overwriting everything instead of just appending your text
also string:string dict means the data is formatted like "key": "value"
yeah i'm just adding a few words to each vanilla description
a model is when the data would be like
"field1": "value",
"field2": "value"
}```
but it's based on having the recipes so i can't just replace the entire description each time
it adds more the more recipes you have discovered
yeah append is def better in every way for what you're doing
If you want all Egg descriptions to be identical, and all Cheese descriptions to be identical, you can make a Dynamic Token for egg descriptions and a Dynamic Token for Cheese descriptions so you only need to have each description written out once.
But then yes you would still need to actually make the change to each item description individually, they could just all reference the same {{Egg Description}} & {{Cheese Description}}
so that would just be a roundabout way to do what i'm already doing no?
hi everyone! I know my way around code but I'm new to modding - I am making my first mod intending to add the ability to lock/unlock signs so you don't accidentally change the item displayed.
I've found out how to use harmony to stop signs from being changed. But now I'm trying to add some sort of "isLocked" property to the sign. Would I add some metadata to the object, context tag? Can't find anything that looks right in the docs. Thanks!
six of one, half dozen of the other. saves you typing out "this item can be used in x y z recipe" one thousand times, but costs a little more effort initially
the way i see it, the description already exists and is written out and needs to be copy-pasted - what i'm trying to avoid is making an entire Action, Target, When, TextOperations for each iteration of an egg and cheese and milk
Could also come in handy if you expect to ever want to change things down the road, so you don't need to do a "Find & Replace All" to change all the descriptions if you ever want to reword them.
but with the method above, that would just be editing the description itself to be consistent
i'd still have to input it manually into each egg and milk and cheese type
with all of the above written out
am i misunderstanding?
yeah dynamic tokens cannot help you with needing a patch for every single item
yeah
alright so the Find & Replace All isn't the issue
i just don't want to have to redo this for every type of egg
and later cheese and milk
but sounds like it's unavoidable
yeah afaict your options are C# or this
on the one hand though, i don't think this would be difficult C#?
just a loop for "add this to these, thanks"
i was told to do this in C# every time i asked which has been about 4 times by now, but i don't know any C# and i'm already too invested in the CP method lmao
it's whatever
i haven't noticed any performance issues in-game so far
it's just my time that's going to waste and i have a bunch
oh yeah i meant for your own sanity not for performance or anything. but if that hurdle is going to frustrate you more than copy pasting 103472 times then go with what feels good
if i was doing this in C# i would've added a bunch of features that the CP method doesn't allow
yeah i've been doing that for a few days already so
might as well finish up
the real issue with this is lack of compatability with pretty much anything but i'm doing this mostly for my friend and i and we don't have any content mods
this is my first mod and i don't have prior experience so i have to make some sacrifices
last time i was hunting a missing bracket for 20min lmfao
such is life
i don't know if dino eggs can be used in regular recipes, if not i'm just finished with the eggs, didn't take too long
just gotta do this for milk and cheese
ah nevermind they are used as any other egg
welp
I don't believe they can
Oh wow, TIL
I definitely would be surprised and a bit disappointed ingame if I accidentally turned a Dinosaur Egg into an Omelet ๐
yeah well now i'm truly done with the eggs
it's not too bad to copy-paste all that shit, i was just thinking there has to be a more optimal solution, but turns out that solution is knowing C# lol
whoever has to read my syntax is gonna hate me ๐ฅถ
h-huh..? hold on i need to test this
i doubt it's true but i can't rest otherwise lol
i also somewhat doubt it but that's 2 sources now ๐ชซ
if it's wrong i copy-pasted for naught ๐
I just tested and at least in my game I can't make Dinosaur Egg Omelets
Probably for the best ๐
Where is that 2nd source?
Unfortunately is pretty common for rumors on video games to get copied from one messageboard/reddit to another without people ever confirming them
yeah the eggs are artfavts
they're "hardcore gamers" surely they're right
i don't have a dino egg to test
Generally I find the Stardew Valley wiki pretty reliable for most things however
https://stardewvalleywiki.com/Dinosaur_Egg
yo what void eggs count for recipes too?
got me fucked up
i gotta copy-paste some more it turns out
what is the give command i'll give myself a dino egg to test rq
someone posted it for me here last time
debug fin dinosauregg
Ah I'm not sure, I always just use the CJB Item Spawner & CJB Cheats Menu mods for testing things out
yyyyeah dino eggs don't count for recipes
just tested and I also canโt make dino omelet
i feel like a boomer who cannot distinguish between a real image and an AI one
void eggs should work though iirc?
yes
what are these """hardcore gamers""" on about
so for cheese recipes, all types of cheese are accepted yeah?
the wiki is very inconclusive about what items are part of the "(Any)" and which aren't
I don't think so?
Wiki seems to say no.
https://stardewvalleywiki.com/Goat_Cheese
nope, beef cheese only
if it doesn't say then assume it doesn't
i guess anything not an animal product won't work
Not vanilla, but I think you can get a sort of similar info with the Lookup Anything mod to activate it on an ingredient and it gives a popup with detailed info, including a list of what cooking / crafting recipes use it as an ingredient
The true heart of a modder
i don't want an entire UI overhaul for one feature
beef cheese is a cursed phrase ty
New quote added by atravita as #7089 (https://discordapp.com/channels/137344473976799233/156109690059751424/1464741939349033112)
i think typing in "mlik" into the wiki searchbar and not understanding why there are no results is my cue to go to bed
have a good one folks
mlik
from what i can tell, context-tags are applied to the Sign item type rather than at the instance level. Does anyone know how to add a property to a base game item instance?
Heyy, quick question. I updated my (CP) Medieval Tiny Greenhouse with a new ambient lighting - nothing big. I had a player add a comment saying that all of their furniture and machines were deleted after the update. I tested and wasn't able to replicate the issue, and honestly I don't see how that would even be possible, but I checked anyways. In what instances would an update cause all the furniture/machines to disappear from a custom shed??
the other method i can think of is storing a isLockedMap which stores a true or false for every Sign instance in the world, but doesnt seem ideal
modData is a dict of string to string that can contain anything you want
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Data#Data_model
are you referring to this?
ahh
most types in the game have it
to make it easier for mods to attach data to object instances
Found it in the code, thank you!! this points me in the right direction
(modData is documented on the 'common data field types' page.)
Just double checking one more time whether I'm right about changes to the % chance of finding ||Golden Animal Crackers|| in those methods requiring Harmony to do:
#making-mods-general message
If so, I may shelve the idea for right now, as the idea of going back down into the Harmony transpiler mines is a bit daunting after mostly forgetting everything about them over the past ~2 years ๐
havent looked at all of the functions but pre/postfix should work too for most/all of them?
seems like it'd be messier and involve awkward math to account for the existing chances, but technically, yeah
ok the fishing rod one needs a transpiler I think
they'd be decent practice transpilers if the goal is just to swap a baked-in float to something else
(but if the goal's not to use Harmony at all, it'd be even messier
)
the fishing rod one you can postfix it and modify the just-opened item grab menu
how would you tell its opened from the fishing rod tho?
check stacktrace or set a variable in a prefix?
the source of the menu is set as the constant 3
which is ItemGrabMenu.source_fishingChest
oh neat, missed that one 
Yeah I'm just looking to basically increase / decrease the effective chance of that particular item dropping.
In some other similar cases I did a non-Harmony workaround to e.g. detect when a particular fruit tree sapling appears as a reward from a golden coconut and immediately swap it for a different one, but in this case there seems to be multiple different scenarios with different menus (or in some cases no menu) being open
the only one left that's dicey is trySpawnRareObject; my vegan transpiler-less solution would be set a static var in the prefix, unset it in the postfix, and then a postfix on createItemDebris that logs whether it was called when that static var was set
I have tinkered with Harmony transpilers for adjusting friendship amounts gained/lost in various circumstances, but that was doing an unofficial update for a different mod, and around ~2 years ago ๐
Does anyone know how to put "complete community center bundle" as a requirement for seeing an event? All I can find is one that requires for the entire community center complete.
thank you
Yeah that was my initial thought, just swapping out the 0.001 or 0.005 etc. to a larger / smaller value.
If non-Harmony/transpiler workarounds are likely to take as much effort anyway, I may wait until I work up the willpower to go through the process of setting one up from scratch.
This guide seems to be relatively recently updated, unless any others are more recommended? (I actually skipped most of the setup part for the transpilers I've worked on before as it was editing an existing mod)
https://stardewmodding.wiki.gg/wiki/Tutorial:_Harmony_Patching
that looks correct at a glance, and not much has changed about Harmony itself in a while, it's just a matter of accounting for future changes in the targeted SDV methods
Hook an event to gamelocation.debris
(though I've never personally tried CodeMatcher stuff like that example, just manual list-of-instructions changes)
Hmm is there any simple way, possibly even through Content Patcher, to require an item of a particular quality level for some sort of interaction (like how certain Bundle items require items to specifically be Gold star quality)?
As far as I know the default systems for crafting / cooking / or item trades (like with the ||raccoons|| or ||island trader||) are all quality-agnostic, right? Unless I'm missing something, would requiring an item be, say, iridium quality for a crafting/cooking recipe or item trade require a bit of tinkering to make possible?
(Trying to think of a way to craft / cook / or trade for ||Golden Animal Crackers|| that requires the player to use iridium-quality Sweet Gem Berries, etc. to do)
Hi, this may be a dumb question, but how do you log within harmony patch methods? I can't access Monitor so I can't log to SMAPI console
you can make a static field on the modentry class for your monitor
or make a static logging class and store the monitor as a static field there
a common pattern I have in my mods is the static class housing the harmony patches has a static Initialize/Init method that accepts the harmony and monitor instances from ModEntry.Entry and stores them in private static fields
thank you! found this old repo when diggin through convos that seems to do the same thing https://github.com/elizabethcd/MoreConversationTopics/blob/556935af2a5a046a42a145aa4a0dba7c9a677c8b/MoreConversationTopics/DivorcePatcher.cs
yup, I either do that or the same with a log class for bigger mods
machines is one pure vanilla method
with crafting you can use spacecore's craft recipe override
Thanks, I'll look into those!
I hadn't realized that machines can specify quality for the input, although using a machine may be a more cumbersome process for the user for a single recipe than I was envisioning.
Hmm now I'm wondering if there are any convenient Events to tie into to allow me to do something like give a 1% chance anytime any crop is harvested or any animal product is harvested, for a ||Golden Animal Cracker|| to also appear?
Possibly would differentiate between player-harvested or Junimo / Auto-Grabber harvested?
you either have to roll your own solution with transpilers or rely on other mods
BETAS have a crop harvested CP event (though it doesn't give you info other than the produce), Extra Animal Config has an animal harvested SMAPI event (though it has a quirk I kinda wanna fix eventually)
(Machine Terrain Framework also has a crop harvested SMAPI event, but it has many quirks that I kinda maybe wanna fix eventually)
hellooo! back with more questions- how should one organize object layers for map actions in tiled? do the names matter? is there a possiblity of getting map actions 'stuck' under tile layers and therefore inaccesible in-game?
(I made those two events (EAC and MTF) solely for my own use, namely to modify a produce instead of changing any world state, that's why they're so scuffed)
I would apologize for my bad coding but the only person who is affected currently is myself
Thanks for the context! I think I'll stay in the brainstorming phase for a bit longer.
I guess it suddenly just really bothers me that the most effective way to collect lots of ||Golden Animal Crackers|| is by fishing, apparently? Looking to somehow directly or indirectly tie it back into Farming somehow.
by map actions, do you mean "Action" and/or other tile properties?
https://www.stardewvalleywiki.com/Modding:Maps#Known_tile_properties
consider: roll a cracker drop every time the player gains farming XP
oh, and generally speaking there's little need to spoiler vanilla stuff here :)
yep, we're only told to use temporary spoiler blocks around new game version releases
there's a difference oh! actions as in action Message
Ah sorry, I guess the last time I was active here was right around the 1.6 drop and that's what I'm remembering ๐
the layers needed by those are mentioned here: https://www.stardewvalleywiki.com/Modding:Maps#Action
but they all need to be on the Buildings property layer, as far as I know (the pink one)
hmm to get around these quirks you can add one more dependency (Extra Machine Config), use its poorly documented feature of "item carrying other items", and use EAC and MTF's API to modify the drops to have them carry the golden animal cracker
in general, the game looks for each tile property on a specific layer like that
oooh gotcha! tysm 
action = buildings, touchaction = back, etc
aaa makes sense
(the quirk is that in both cases the crops/animals events may fire even though there is no harvest and the item is discarded; just modifying the item itself is fine)
also for the record, the properties won't exist in-game if that layer doesn't have some index on it, like an actual Buildings-layer sprite on the blue one
(but you definitely don't want to grab 3 mods just for that one feature)
so buildings tile + a property on it, for an action
gotchaaaa
maybe i can merge them into selphcore like spacecore (chue dont ๐๏ธ me pls)
Oh, that may actually be a really elegant solution...
I'll need to brush up on XP gains again to make sure the stuff I did in the unofficial update to Levelling Adjustments wouldn't interfere / intercept the XP gain from being recognized (since I'll likely be using that alongside my mod)
In terms of organising the object layers in Tiled, please keep them all at the top with the tile layers below them rather than interspersing them between the tile layers for the sake of people who might want to select all the tile layers at once lol (or all the object layers, to hide them)
i ๐๏ธ you instead
and then the chance to drop a cracker can increase depending on the amount of XP earned at once)
will do 
so earning 1xp 10x times doesnt mean it's 10x better than earning 10xp at once
Oooh that immediately addressed the one thing I was thinking, that it might incentivize growing tons of low-value items to force more rolls for the cracker
how to set up the math for that is an exercise for the reader
Haha I don't feel too bad about working out the math for a decent base % chance (will probably record how much Farming XP I earn on a few "typical" days of a "typical" sized farm post-Mastery and work backwards from there).
I just need to brush back up on how XP gains are handled by the game and by the Levelling Adjustments mod in particular, and then look up how to spawn an item appropriately.
But I am liking this potential solution a lot more than most of the other options I was considering earlier. Would make a nice method directly tied to the relevant activity when done naturally, not really a specific way to "grind" for it outside of just doing the stuff that Farming Mastery tends towards anyway (potentially just disincentivizes using Junimo Hut and possibly Auto Grabbers if those don't grant XP)
So it's actually a good thing that those earlier options were too intimidating for me to tackle at the moment ๐
Thanks for the ideas!
Although still a bit of stuff for me to look into that I've forgotten
i am picturing reading the farming exp book and getting a decent to high chance for a cracker drop ("every copy comes with a free cracker" /lh)
Ah that could be a snag...
Although, do the XP books always have a limited stock at the Bookseller?
If it's just being able to buy 2~5 books per month on top of whatever is randomly found from mystery boxes / fishing chests / prize tickets / etc. that's probably fine.
mayhaps you can disallow drops inside the readBook function with the ol' set global var trick
Ah I'll have to look up how that works, but sounds useful
Hey gang, I'm learning to use Tiled to make custom Stardew maps at the moment and every tutorial I find have me copying over tilesheets into my mod files. Is copying over the tilesheet pngs the best practice or is there a way to get Tiled to directly reference the tilesheets in Stardew Valley's content files?
Also, wouldn't copying the tilesheets into my mod make it incompatible with mods that replace Stardew's textures?
I'm brand new to modding Stardew so sorry if this is a stupid question ๐
yo this cracker is stale i want a refund
!tilesheetinator
You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.
See the mod page for full installation and use instructions.
Oh wow, turns out this is such a common question there's an autoresponse! Thanks @Selph โค๏ธ
HMMM where might one find the strings for the books in the library/museum? read through StringsFromMaps and Strings/Locations and the like but I can't find it
hmmm I should go to bed now anyways, but I'll check here for responses later LOL
It is not a stupid question at all. Until Tilesheetinator, we did have to copy tilesheets into our map folders (or, as many people did, make a mapmaking folder containing all the tilesheets and move your map in there) but then the tilesheets would be removed before the mod was published. Now that we have Tilesheetinator you can keep everything where it is because the extension handles Tiled's ability to find the tilesheets.
some of them (and the stuffed bear nearby) are in Strings/StringsFromMaps : ArchaeologyHouse.1 through 9
others are apparently for secret notes, and pull from Strings/Notes
Fantastic! Yeah this extension sounds much better to use than what I've been doing so far lol
(took me a minute to even re-learn that the museum/library map is ArchaeologyHouse)
tilesheetinator is magic. it just tilesheets
speak {{ModId}}_NightNurse \"Your silly little escapades in the local caves are nothing compared to the psychological and physical torment of literal Hell.#$b#But if I cannot stop you...\" why is it breaking the word literal in half??
...I'm just as confused as you are I wasn't aware dialogue boxes could split words
i feel like I had it happen to me, you can use \n before literal
\n doesn't work in dialogue
And a clean split too. You'd think it'd be
liter
al``` or something.
yeah like it doesn't go all the way to the end of the line even
i guess i could remove the word literal? the last word should fit on that line
Does it still split if you replace 'literal' with a different word? Like 'actual' or something?
Hey, does anyone know how to make an NPC disappear from the world just for a few hours, so they donโt show up in it? Or maybe if thereโs a tutorial?
this is what aba does #making-mods-general message
Okay, thank you!
https://smapi.io/json/content-patcher/14bdd649044a4e98b8224d55ccd571c9 is this When condition not formatted right? i have in a patch summary HasSeenEvent | [X] 60367, handwrittenhello.dbda_EdwinMissing but i'm not seeing the map change
dialogue parser merely saving you from the prevalence of overused vocabulary in contemporary vernacular 
dialogue parser should take it up with the writers of the show!
Is the ) on map target intentional?
ikr and they're invisible to me whenever it's my own stuff lol
I didnt notice it right away
it works now! <3
managed to get everything working, thank you sm for pointing me in the right direction!
I wouldn't stress that much about it since people are going to use different zoom levels and fonts anyway which will change where the words end up.
hmm true
Can anyone figure out what's wrong with my Paths tile layer in Tiled?....
My custom map has all the appropriate layers and I've been importing the vanilla tile sheets using Tilesheetinator. Everything from the spring_outdoorsTileSheet has been working as expected, whereas anything from the paths tilesheet is ignored entirely.
Paths layer items are only generated at the beginning of a save
Here's the tileset properties
Are you making a new save to test them?
Oh wait, what does that mean?
you need to make a new save for them to exist
Although I believe you can use Reset Terrain Features to generate them?
Oops I'll give that a try. Thank you!
I've never actually used it
(it's too late now, but in general we strongly recommend making a copy of a vanilla map for your custom maps and then editing it)
they come with tilesheets and map properties already handled, including some animations
I'll definitely do that next time ๐
is there a good reason why the event command changeMapTile edits the location and not the map? i'm dying here
pro tip: if you ever want to learn the difference between locations and maps intimately well, make a dungeon out of setpieces ๐ญ
i fear, unless i can somehow get that changed or come up with some other bullshit, my only option is to cover the map in invisible Front and passable Buildings tiles
does somebody know the cp id for the loom?
(BC)17 (from https://mateusaquino.github.io/stardewids/)
thanks
(There is no such thing as a cp id though.)
idk how to call it
It's just an id
Also for future, that site Nic linked is very useful but you can also check inside the data files yourself
ok, thanks
usually we would call it an item ID!
in case anyone was wondering, tile properties are ALSO LOCATION-SPECIFIC. i'm gonna tear out my hair
adding invisible tiles made the "no tile on layer z at x y" error go away, but the changeMapTiles doesn't actually appear to have happened -_- if anyone has suggestions i'll take them. here's my event script as is, with the important information that it takes place inside a dungeon (location) but i'm using a temporary map (map)
https://smapi.io/json/content-patcher/371affc055854f88a67572a826862c51
i'm headed to bed for now though, good night
the event reads like this:
- start event on map DollHouse
- changeTile (on current map, ie DollHouse)
- change map to setMazeSetPiece immediately
the map tiles changes on DollHouse are probably done but as you change away to another map you probably cant see the change? if you intended to change them on MazeSetPieces you need to change them after the location change
๐คฆ thank you for the sanity check omg i bet that's the issue
i got so preoccupied with making the error disappear i didn't consider the obvious
I cant get my mailboc or chimey smoke working on my custom building
can someone help me figure this out
heres my code
its the first building farmhouse
elaborate on "not working" pls
is the fireplace inside lit?
do you have mail but the mailbox doesnt open? the mailbox only opens if you have mail
no smoke comes out of the chimney on the outside. the mailbox doesnt display any indication of there being mail nor does it have mail or show a dialogue box that says you have no mail
smoke will only come out if there's a lit chimney inside according to the wiki
hence sheku's question
i know i have a chimney inside that is lit the smoke will not come out the top outside
it's good if you know, but we don't know if you don't answer?
to my knowledge, this wasn't a widely tested feature, so i don't know if there's other factors involved
I thought i did answer
is the coords im supposed to be putting like tile coords or image coords?
thats where im getting a little confused
yep its image coords that would explain the chimney
cool i didnt know about this
it must be relative to the building since you don't know where the player will put it
yeah its like the coords on the building picture but there are tile coords and image coords on a picture too i just got the two confused
this thingy i got confused by which to use
I still can't get that mailbox working though and ive no clue why. Ive tried both image and tile coords and its just not functioning hmmm
i don't know what's going on
what do you mean?
When I click on my mailbox for my custom farm building. the mailbox doesnt display any indication of there being mail and does not have mail or show a dialogue box that says you have no mail
that i can't help you
I dont know what information you need from me because I am giving all the information I know to give
i don't need more information, i am saying i can't help
oooh okay thats fine
I was talking to shekurika in the beginning though. idk where they went hehe
I always get nervous @ people too i know it says I can on their name but jfldgds
Hmm, have you got an ActionTiles entry for the mailbox?
yep! need to see it?
{
"Id": "Default_OpenMailbox",
"Tile": {
"X": 6,
"Y": 6
},
"Action": "Mailbox"
}
],```
ive tried both the image coords and the tile coords on the image and its just not wantin to work
Have you tried enabling noclip and running around inside the building texture to see if the action is sitting somewhere unexpected? I usually have to do that for building stuff because I always miscount
ooo let me try that i need to get that mod anyway
when you say miscounted? how are you finding the coords needed? Cause im confused on that
It's in tiles from the building's top left, but I always get confused about whether it's the top left of the image or of just the impassable tiles when it's placed on the map
Ah, it's its size on the map
So you have to start your count for the Y not from the very top of the building, but from its first impassable tile
So my guess is that you have your Y set too low. It looks like a pretty tiny building, so its size is only 6, 2 or 6, 3 I'm guessing?
Oh yeah of course, an X of 6 means it has to be 7 tiles wide
So your mailbox should be 6, 1
You are a genius
its working
now i just need to figure out why the mail box icon isnt there
or would it be hiding behind the house...
i think i mainly need two events and a few spawn data for my update to be mostly ready
but the last steps are always the hardest (it's why they are the last to add, after all)
I dont think the mailbox icon works
oooooo that explains it
as its just an Action and not a mailbox
could i add a trigger action that displays a message you think?
No, it won't update fast enough
Unless you just want it to trigger first thing in the morning, but I can't think what condition you could use. I don't think there's a way to check if there's unread mail.
How do you check for the unread mail?
Hey everybody, could someone point me in the right direction for how to get tilesheetinator to work in Tiled? It's in my extension folder, but it's not showing up in Tiled...
That's why I am asking what are you trying to do, I am not sure if I can help, but if you tell me the problem, I might?
Are you sure it isn't? The options should appear at the bottom of the Map menu
There have been no conversations since Clown explained it all so you can backread to see it
Unless I'm missing something obvious ๐
You may need to restart Tiled and you definitely need to make sure your Tiled is up to date
It should be version 1.11.2
I did already restart tiled, but I'll go check for updates, that may just be the problem...
You can check the version in the Help -> About Tiled window
Aiii it's an outdated version, I've got 1.10, I'll go update now, thank you!
Spiderbuttons.BETAS_MailReceived? 
If I understood what she wants, they want to check if the player received any mails to display an icon above the mailbox right?
It's working! Thank you so much, such an easy solve but I thought I was going crazy lol
oh nvm this is for received mail
That is a good idea but would also flag whenever a mail flag was set
It's surprising how unobtrusively Tiled stays on older versions, actually. You're not the first person to have this issue!
I tried looking, but that doesn't look like it would be possible with JSON.
I can do it with spacecore showing a hud message and i have an idea of how i just cant seem to get it actually working hehe
Not unless a framework makes it possible.
How?
"LogName": "YouHaveMail",
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModID}}_YouHaveMail.Trigger":{
"Id": "{{ModID}}_YouHaveMail.Trigger",
"MarkActionApplied": false,
"Trigger": "DayStarted",
"Condition": "PLAYER_HAS_MAIL Current {{ModID}}_FoundYamay.Mail Mailbox,PLAYER_HAS_MAIL Current {{ModID}}_GiftTilly.Mail Mailbox,PLAYER_HAS_MAIL Current {{ModID}}_UnlockTheZootShop.Mail Mailbox",
"HostOnly": false,
"Action": "spacechase0.SpaceCore_ShowHudMessage \"You've got mail from Yamay Village.\"",
"Actions": null,
"CustomFields": {}
}
}
},```
honestly the tiled version should've been the first thing I checked lol, but it's been a while... Now my map patch finally shows up though and I can start looking into removing the floating bushes and trees from the house haha
im showing the hud message only when my mail is in the mailbox
but its just not quite working ive gotten the hud message working before though
Yes, but that won't work for other people's mail, right?
Hi, is it possible to simulate the harvest action of a player via code?
Hi guys, long time no see
no just mine....
I am wondering if there are modders that would want to talk with me - long story short, I am writing an article about modding and ethics to one of Polish gaming websites, thus, who's best to talk about modding ethics than modders right?
Also, I didn't check, but like is there a tile property for the mailbox or something, or is it fully C#? I don't know much about map editing, and I don't have tiled so I can't check myself.
there is im using it the icon just doesnt work
you can get mail but theres no floating icon notification
Oh ok, will atleast it's functional
i figured it out!
Ahhhhh that's so cool Fellowclown โค๏ธ
i ned a trigger action for each mail when its deliver
(high key love seeing when you post stuff )
Hey!
I found some function that could make my character walk to a certain location:
StardewValley.Pathfinding.PathFindController();
and I think it should have an overload that tells the character to do a certain action when it reaches the end location but I can't really figure out what it actually and how it does things.
Is there a documentation for this kind of thing?
hmmm
wait a minute
Just to be clear, do you want it to only display the icon when any mail or when only your mail is delivered? Because in an effort to procrastinate on both my studying and my own mods, I was gonna take a look for you if doing it in C# wasn't hard and do it myself, but if you don't want all mail anyway then there is no need.
im just gonna do the hud message for when my mail is delivered
fdsfsdfsd
Yeah I have no idea how this endbehaviour and the endbehaviourfunction works
okay so now that I have my custom buildable farm house working completely, with a mail message too. I can move on to fix the other buildings
Oh Based on what the google AI says (since I can't find a single thing about any of this in any docs) it uses Event data to make something happen to a specific character
I don't know about using C# for that sort of thing but I th ink at least with Content Patcher it's animations specified in their schedule?
I wouldnโt trust AI for modding, the game changes a lot over time and makes things outdated
Have you checked the modding wiki? Thatโs usually the best source as it gets updated by people very quickly
I mean yeah, obviously
but there are certain things I can't seem to really find
using ILSpy was way more helpful than the wiki itself
it takes a lot of time to find what I'm seachign for though
I think you're really going to confuse players if they're going to be able to receive all mail with your mailbox but will only be notified of yours.
you think so?
i just want ppl to know the mailbox works
you think theyll check regardless?
What Mailia means is that using chatbots is of no help at all. And is often actually damaging because you get incorrect information.
What about sending some mail on the first day and giving a HUD message for that one to flag to players that they should be checking? That way you're not training them to only check when they get a hud message.
ooo thats a very good idea
I understand it, and I appriciate the feedback. I obviously not using what it says because it1s incorrect like 80% of the time and even if it's right it's not for my usecase.
I was lucky to find the exact function I needed with it and I did manual searching to find the overload I needed.
Are you specifically wanting to use C# rather than making normal use of schedules? Is there something in your usecase that schedules and schedule animations don't meet?
I'm simply way more familiar with generally using C# than anything. So if I can I rather stick to it.
Basically my goal is to make a bot for the game because it was a project idea of mine a few years back, and I thought this would be the mot suitable way to do it.
You can still use C# to use schedules though.
It's often easier to use CP for a lot of things even when you're a C# modder but you can do everything with C#.
I ask just because if they'd achieve your purpose they'd probably be easier since it's already a game mechanic but if it won't meet your needs I don't intend to try to force you.
Well my purpose rn is to make an automatic watering bot of some sort.
I gave up on writing my own path finder since the game has one so that's done.
Rn my goal is to figure out in which way I can get the watering can from my inventory, select it, refill it and use it on the selected tile(s)
Technically I'm seacing for a way to use an item on a specific tile (which would give me the ability to refill/water plants)
Not sure if it can be done through schedulin, I saw there are something to do with animations, and that certain states seem to be affecting player behaviour, but I didn't think it's the right method.
Unfortunately we have passed the bounds of my knowledge and my guesses would be nearly as unhelpful as AI. Perhaps looking at sprinkler code for how to identify tiles that need watering might be a start?
The thing is a few years back I already figured out most of the things, I just never documented it or saved it :/
we didn't either
lol
You don't have to do all that fiddling with tools tbh, just set holedirt state to watered
I remember when I first did it I just warped around and settting states
I could dod that but
I want to make it... realistic?
I will probably do that for the time being though
I want to do a garden planner of some sort because..... I once did a mockup version and why not...
Oh... I can just select an item from invontory and call dofunction on it?
But there's often implications with animations
In C# you find the item from the player's inventory array (or elsewhere like chest) and probably use some flavor of Tool.DoFunction
I don't have decompile open rn so forgive me if i spel wrong
I wouldn't bother doing any of this and instead just set the thing to wet and track the water level in the bot myself elsewhere
psst.. is it possible to make custom eyes (like change the eye-white colour) using fashion sense?
There are a bunch of eye mods for FS so probably
I actually just checked the game's code, and that is very easy to do. I can do it for you if you want.
Maybe a complicated question, but Alternate Textures cant handle swapping out specific parts of a tilesheet in a similar way that Content Patcher can, right? I was playing with making a modular collection of fence sprites, and swapping the sprites for the various parts of the fence using Alternate Textures. But from what I could tell, AT needed the whole fence tilesheet swapped, so I end up with a bunch of tilesheets where only one of the fence elements have been changed, and the rest not. Does this make sense to anyone?
yeah give me a few minutes and ill show what i mean. thanks for taking an interest 
AT needs the whole fence sheet yes, what's the goal?
The goal would be being able to swap out (for example) various textures of just the free standing sprite of a fence post, without having to have a duplicate entire sprite sheet for each alternate texture for one sprite. hang on, pictures are coming that will probably make more sense
I understood what you meant
So like if you want different gate options, you have to duplicate the entire fence rather than just having different gate textures
this is the vanilla fence and ive added numbered labels. when placing just one fence, the game will use the sprite ive labeled 5. ive been using alternate textures to swap out the sprite for number5, but every time i do theres the whole rest of the sprite sheet that isnt needed
Hey guys, I've been looking all around the wiki and moddingwiki, but I can't find the error SMAPI is giving me when I try to load in the interior of a house I'm patching into the map. It's giving me this (I believe this is what's causing it to go wrong): ---> System.Exception: Unable to load map with file path 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods[CP] Blood and Water SDV[NPC]\Assets\Maps\EmilyHouse.tmx'
---> System.InvalidOperationException: There is an error in XML document (45, 27).
yes!
so the AT textures end up looking like this; where the chicken sprites represent unneeded and empty duplicates around the actual individual fence sprite that is wanted changed
Do you have any .tsx files?
thereโs a problem with your map. could you send it here?
especially for the fence texture i labeled 5, i end up wanting way more options for it than any of the other fence sprites. and if AT needs the entire fence tilesheet each time, it adds a lot of duplicates or blanks (duplicates if i put the default fence textures in with the alternate one, or blanks if i put something like my errorchicken there)
I might be misunderstanding the documentation, but it is possible to use CP to edit AT textures. It might not be any better for performance though
So you could use a CP mod with config options to change a fence style within a spritesheet rather than having to change the entire sheet
the main goal of reducing duplicates/blanks would be if i end up finishing the fence enough to warrant publishing it, i think the lack of duplicates would make the mod a lot less cluttered and perhaps a bit more user friendly.
hmm. CP and config options route, would this be able to be set up so it could be easily changed in game while everything is running?
Yes that's what happens with CP configs when users have GMCM installed
the default tilesheet is set up right now so that the sprite variations that are likely to be used the most is located there as default, and then AT is used to manually change for example an end of a fence, if you want to extend it all the way over the tile so that it meets up with a building, for example.
But AT users aren't used to having CP integration, so you'd have to be very explicit on your mod page about it and also expect confused users to come into the comments anyway, having not read the mod page
but the configuration needs to be for specific and individual parts of a fence, and not a global setting for all fence parts of that type, if that makes sense
Ah wait one of the tilesheets was wrong, so now it's giving a directory climbing error again, let me see if I can fix that. If I can't figure it out I'll send the files!
Yes, I know
You'd use CP to target specific areas on the sheet to change according to the config
To use your chicken pictures as an example, you could edit just the second row, third column sprite to swap between those two styles without affecting any others
hmm. how would CP distinguish fencepost 5 between two machines from the other fencepost 5, next to the building, that i want two different textures for, though?
Do you mean the exact same sprite index used in different contexts in game?
So again using the chicken images, do you mean for example having that second row, third column fence part changing depending on whether it was used against the side of a building or not?
two secs, im mocking up an image to show you
(please note, some of the (very nice) sprites are from Shardust's fences, just so thats clear, i cant take credit for their sprites)
Okay, no, you can't change that
in this example image, you can see fence type 5, in a use case where i would want four different textures for it, all at the same time. currently done using AT, but leaving those duplicates
Not if they are all using the same frame
I think Alternate Textures would need to add support for niche use cases like this, if the dupes/blanks were to be avoided
There's no way it can be done at all if they're the same frame
Because how is it supposed to know which texture you want to use in which situation?
Oh it wouldnt be dynamically determined, thats for sure. Manually changed
When you say "fence type 5" you don't mean an entire spritesheet type, do you? Like iron vs wood vs stone. You mean sprite index 5 of the spritesheet?
it can be done currently by overriding the fence tilesheet using AT, its just not really set up for it, hence the errorchickens
ah no sorry, i mean fence part 5, as labeled by me (so a very unofficial number)
yes, the index
Ok thanks, just wanted to be very sure.
No, you can't use CP to do that because all CP can do is change sprite index 5 separately from changing 3 or 4, for instance. It can't change the texture for each instance of fence.
Thats what I thought too.
And if those instances of index 5 were connected to each other, AT couldn't do it either.
So yeah if you want people to have such granular control, you will need to continue as you have been.
It's a cool idea. I would download it going "that's so cool" and would then get too confused in game as to how to set it up and would never use it xD
I do that with modular stuff all the time
Maybe im misunderstanding, but they can be connected to each other. Its all done manually through the use of copious partially filled fence tilesheets in AT ๐
Does AT let you individually change each tile of fence?
yep!
Oh, okay. I didn't know that, sorry. I thought it would be one instance of connected fence tiles.
Its actually pretty cool how far this half-baked idea has gotten using the AT framework, since it doesnt seem like it was really designed to do this. But it kinda sorta works
its entirely possible this modular fence idea would stay an unpublished mod i suppose. might be too user unfriendly as you say
each fence sprite variation is labeled in AT using its naming feature, so that helps a bit with selecting the right texture, but it might not be enough
this is how it looks in the AT menu currently when i go to change one section of the fence
so it tells you that its for a gate on the east (right) side for example
Yeah that's really good
there you see my "errorchickens" in action, they each represent a tilesheet that changes a different form of the fence
it would be for the hardcore decorators / aesthethiciologist i think, its not plug&play in the sense that the fence will look quite right when first plopped down.. but its more or less a one time effort to change the fence alternatives and get things set up looking quite nice (at least in my opinion). having more alternatives for how the fences look makes them seem a lot more purpose built
I think it's very cool and worth publishing if you feel up to it
what if u use connected textures 
instead of making fence
(yes i am once again peddling
What are connected textures?
Ah yes I remember that
the main difference is that unlike fence you can actually just have 2 different furniture connect with each other
I need to reach out to Shardust first and foremost, seeing as the fenceposts are based from their textures. They have been edited a bit sure, but my editing skills are better than my "making sprites from scratch skills", so it wouldnt look at all as good without some of their fence sprites as the original framework. honestly im a little nervous to do so, what if they tell me to go shove it or something 
Will it work for stopping animals wandering?
Ooohhh
i think animal path finder checks the passable
the main thing you can't do is add a gate tho 
oh ๐
but i suppose u can make a piece that is NPCPath banned via the tile property
and passable to players
No gate opening logic, just always open
there is a manual toggle open thing on draw layer actually
tldr u can do it but it's gonna be somewhat complicated 
Hey guys, I was hoping on some advice on how to go about an aspect of the mod I'm trying to make. For 2 characters, I want to heavily change their schedule and dialogue (Emily and Sandy), would it be better to patch all that change into the game or to "disable" original Sandy and Emily and add them as a new NPC?
Are they still supposed to be Emily and Sandy storywise
They are the same in looks and character, but not much else. Emily for example, I want to give her a new house and schedule as well as making her not-dateable so that's already changing like 50% of her character right?
Hmmm. Disabling the originals is probably safest because other mods will still be able to edit their schedule, sprites, portraits etc but as long as they aren't unlocked the player won't see any of that. You'll still need to do huge amounts of changing the base game to remove them and add your replacements instead, but the incompatibility with other mods will be smoother, imo (your mod will be so incompatible with so many mods).
If they aren't meant to still be Emily and Sandy, don't touch either of them at all and just make new NPCs.
Hmm, honestly I hadn't even considered that if my mod works decently other people may be interested in testing it out lol... Inspiration just kind of struck me so I've been making characters and storylines and houses and stuff... Maybe I'll leave Emily be and just change Sandy (and give her an OC wife haha)
If you want other mods to still be able to affect them both, just edit them rather than disabling them. You'll have to do a lot more individual mod compatibility to allow some mods to make changes but not others, but it'll be usable with other mods.
Oh if you were just planning on doing this for personal use then definitely just edit them rather than disabling and making new NPCs
Nooo how will Sandy marry Emily then /hj
making mods for the public is definitely a whole nother thing than just something for yourself. theres so many more considerations when a bunch of people might use a mod with all their different mod setups
haha, I made Emily and Sandy a kiddo, I felt like their friendship/storyline was always way more interesting than Clints slightly creepy crush storyline.
I mean tbf, without tooting (is that the word lol?) my own horn, I feel like my art and ideas may be decent enough it could count as a reasonable mod for others, so if I manage to get the coding reliable enough that I wouldn't be ruining people's games left and right it may just be worth diving into )
:)*
(Clint is only fixated on Emily because he's struggling to accept that he's gay but don't worry he will fall in love with Harvey one day... Mod by Aba coming one day before the heat death of the universe probably)
oh toot away, i just mean if you know from the onset whether or not something youre making is never leaving your personal mod folder, that definitely affects the best routes to go and what you can and cant do
That's a banger headcanon haha
Go for it! I'd definitely be interested
I have the opposite opinion and think you should edit the originals
i may cough doth be projecting a smidge with my going on 10+ assorted little CP mods that change a minor thing here and there and that only i will probably ever see though 
It's going to be annoying as hell to install midsave if they are a new NPC entity and thus have a different friendship tracked
Excuse me chu I actually recommended both thank you very much xD
But also anyone who installs a "this massively changes a vanilla NPC to be nigh unrecognisable from their accepted canon" mod midsave is a fool! A fool, I say!
ohh but this line of thinking is dangerous
(I would totally do it but I would not complain to the mod author about it breaking things.)
"no -sensible- person would install this in their current situation"
meet: the general public
Nah, I'd just tell people it was their own fault if they complained to me about it. I'd point at the giant sign saying "this will break your game if you install it midsave".
I mean I definitely am a waaay way beginner. I once made another custom NPC+house, but that was just adding my sister to the game as an NPC, but this does give me a bit of self confidence that I should just see if I could make something share-worthy!
Good point
I enjoy having users report errors with my mod only for them to not have my mod installed. I am unfazed by users lol
As for what u need to edit it'd mainly be
- character data entry
- portraits and sprites
- daily dialogue
- schedule + associated string assets and animationz
It would add custom NPC anyways, but I guess it resetting your relationship with Emily/Sandy would break immersion a bit
How do I become you when I grow up? (-kat 30 something)
If you have added an NPC and a map to the game already you are way beyond beginner, friendo
Stopping a mod like CFDE from adding dialogue is a little annoying though, if that matters then you'd have to do your EditData late and then just overwrite every key by hand
yeah im like.. beginner you what? ๐ i wouldnt call that beginner
But i guess it's down to question of "if they are this different from vanilla maybe they should just be OCs?"
Thats what I was thinking a bit too. At some point do they just share a portrait, and could that portrait just as well be another blonde NPC? (no offense to the Haley club)
Spend months in #1272025932932055121 before releasing any mods and stock up on PEBCAK errors to laugh at to help you realise that there is no way to ever make all users sensible lol
That being said, Kantrip made a vanilla NPC mod that significantly changed the NPC (Older Sebastian) so it is possible
You just have to be aware of the ramifications, including lower popularity because people will be less willing to try a mod that clashes with their already beloved mods
Yeah it is also kind of not that different from gender swapping vanilla character kind of mod
Oh yeah like Pierre to Piper
If another mod calls piper pierre then that's their problem
That's my wife you're talking about! I mean, the main change for Emily would be that because she's married to Sandy, both live together, which means the schedule changes since they come and go to a different home. So at the core, neither character really changes, but practically it means rewriting like 50% of their code, so it was more from the technical side. You are right though, I could just as easily add a new character instead, I'm just a bit worried it might feel kind of detached?
Sometimes the point of a fan work is that this is a conversation with canon material so u should do it even if compat woes
I don't know why I decided that my error-free playthrough was going to be the one with Piper in it 
Hence why it is a question to ask not a statement I'm making
No, do it. Do it with Emily and Sandy! I will support you!
what is an error-free playthrough? 
Uh oh I have reached the "Aba is nonsensical" time of night lol
A loooooooooot of work haha
I'll have u know i drop everything in game to fix any red error logs 
OH my God am I bothering you guys at night!? It's just evening over here, this question wasn't that important
its 16:25 here
Do not fear, you are not keeping me up lol. Also chu is on the other side of the world from me
Changing Emily very throughly might be problematic since she has significance in the vanilla story, like getting the sewing machine and allowing you to use the sewing machine in their house. You gonna just yank those away?
wait no, 17:25
It's 2:25am
I've always just ignored them before. But this time I went "no, I will have a tidy game!"
And then I downloaded 1,300 mods...
18:25
I feel like the changes mentioned so far are implied to be story
So the sewing machine thing gets text changes at most
Swedish/Euro friend? 
New quote added by atravita as #7092 (https://discordapp.com/channels/137344473976799233/156109690059751424/1465019689657696361)
You quote the weirdest things sometimes Atra
Oh no I forgot about Finland, please forgive me 
It's so fun to be European, because I read this and I was like damn Sweden is far from the Netherlands, but I guess in an international server Sweden and the Netherlands are pretty close haha
The q is is the red error your faulf
Eh only 1/4 of the time
And it's selection bias cus I obviously play with all of my own mods installed 
thats a pretty good percentage i think
It basically matches the % of C# mods on me list that r my own mods
hang on a minute, are you Mushymato?
Yeah
i cant sadly day packed
is yter programing w mosh good
lookin

