#making-mods-general
1 messages · Page 130 of 1
note that outside of 2.1 with localization changes, there would be near zero change between a content pack in 2.0 and 2.4 other than some shiny toys not being available
having an issue with my json and i followed the documents
um, the whole json would be more helpful
The validator yelled about it being 2.0, and if it is attempting to read as 2.0 instead of 2.0.0, it's worth changing. EditData has undergone quite a few fixes in that time
{
"Format": "2.4.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"253": {
"Edibility": "43"
},
"395":
"Edibility": "13"
}
}
]
}
well we cant point out the exact error with just a screenshot, but it tells you what line to look at
oh gotcha yep
also EditData itself hasnt really changed like at all since 2.0
I probably scrolled too far in the changelogs then, but still
even 2.0 didn't change much, it was mainly just adding priority and all the backwards compat to try and make non1.6 native content packs work at all
Better to at least attempt to update it to see if it fixes anything
Note that the version at runtime, and the format version are related but distinct
My SpaceCore animation looks identical in format to theirs, but mine works
There can be wild optimisations of what EditData does under the hood that does not matter what formatversion gets used
So unless there's an issue elsewhere with the actual assets, I don't know what would be wrong otherwise.
But it's late for me, and nobody else was answering them, so if y'all want to take over, by all means ❤️
i tried using that CP-A to spacecore thing and it totally didn't work either, but i just gave up on it afterwards lol
i might want to take another look and see what's wrong
yeah, you'll need to make it a rug
is it possible to marry a custom npc, but have their "kiss" be a hug like krobus instead 🤔
I think some people have made NPC behave like that yes
if only there was a mod to give more Furniture customization options...
Hello, I'm new to the modding scene of this wonderfull game and I have a question. If I want to, can I make a mod that generates custom layouts for the farm? Like I want to use an algorithm to generate worlds, and I thought that dooing that in Stardew would be nice.
A map builder or a random map generator? I don’t think I’ve seen either
i think deep woods does procedural stuff? not updated for 1.6 yet though
I want to make one using Wave Function Collapse, in that way I can decide what "tiles" to use and will be costumizable. Like if you get your own "tiles" the farm layout will be generated using them...
I wanted to know if it's possible. I need to use that algorithm for my final project for my thesis at uni. And I tought why not build something for a game...
I would love to see it implemented. But I think SDV maps are too much hard coded for it to work, safe for having heavy restrictions
it would be very hard to get anything sensible to work, due to the nature of Stardew tile(sets) and layers
I will take a look at the algorithm though. it may be useful to another project of mine
You can probably do something with the farm map, but not other maps
And yeah, for it to be coherent that's need a ton of conditions
Hey! In this series, I'll guide you through everything you need to know to make a Stardew Valley mod! In this episode, we make a simple map and test it in game!
Things I mentioned in the video:
#1 - Tiled - https://www.mape...
just keep looking at the screen. draw the cute beds. do not look at the walls. ignore the hundreds of baby spiders. draw a bunny.
I didn't watch this and is pretty old, but still...
thats what i was thinking
Well, you should try making a map the normal way first
then you'll see what we're talking about
Can I use .NET 8.0?
nope, .NET 6.0
ok thanks
do i need to pass the helper instance of ModEntry to every other class, or can I do the 'create a static instance of it and make it public' thing?
it doesnt seem to work for me, only works when i use it in the main class
I mean. Depends on what you what
I had mods that put the various parts of Helper in a static field.
I had mods that passed in the various parts of Helper.
But yeah, pass it in or make it static, your choice
the problem was that i tried it but im not able to invoke the function i intend to call after asset load
not sure whats my mistake here
but the function triggers when i move the event trigger to ModEntry class, but doesnt work in a second class
You're using a static constructor
Don't do that unless you have to
Static constructors are called whenever a class is even vaguely touched, even if by reflection only
Wait no I can't read
oh so ig event trigger related mechanics might not even be loaded in the SModHelper yet
No, where are you calling that function?
its though another class, but basically this
do i need to create the object of the class first before invoking the method?
the materials im adding to the inventory do take effect
so atleast the control goes to the applyRoleEffects method
its just that the AssetRequest thing is not detecting anything
this all seem to work when i have it in the main class, but keeping different asset load logic in the same class feels cringe
You need to call that in the Entry method of ModEntry
It's fine to split stuff up but if u don't call smth in mod entry to setup the hook then it never happens
oh so i need to call the secondayOnAssettLoad(secondClass) from a primaryOnAssetLoad(main class)
that would work ig
thanks
You need to call it in ModEntry.Entry specifically
Eg I setup the events here
https://github.com/Mushymato/LivestockBazaar/blob/main/LivestockBazaar/ModEntry.cs#L26
But the handling method lives in here
https://github.com/Mushymato/LivestockBazaar/blob/main/LivestockBazaar/AssetManager.cs
oh thanks ill go through this
hi! this might be an odd question, but is there a mod that disables ||bigfoot||?
i know its silly but, stardew valley is supposed to be relaxing for me but ever since i discovered that there is a ||bigfoot easter egg|| i've been a bit paranoid and i avoid places where he can be seen.
I really hate playing like this, i just want to relax while playing instead of being so on guard all the time.
censored for spoilers hhh
Random question: Do you think it's possible for SMAPI or content patcher (whichever one it is) to be coded to read Dynamic Tokens, Config Schema, and Custom Locations from an include?
"Is there a mod for" questions belong in #modded-stardew, but I could easily make that mod for you (or you could easily make it) just by replacing the spritesheet with an empty image
So if I am replacing an asset like "animals/horse", and then I change the config, do I invalidate "animals/horse" or the asset that I replaced
oh, sorry! i literally joined this server 3 minutes ago specifically for this xD
I have 0 experience with modding, i dont know where to find those files or remove the jumpscare-ey sounds it plays
oh theres a sound?Thats a little more annoying since I'd have to find what sound file it is
So the files
!unpack
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!
the only hard part is finding the image (and sound)
yeah i believe a little alert sound plays and big footsteps when he shows up / runs away
oh, sob..
an alert sound might be difficult since its probably used in multiple places in the game
so removing it would cause issues
if thats the case then this might be a job for C# modders
Do you know which spritesheet it's in?
found it in characters
If I knew that, I could try to figure out where it actually activates in the game and which sound it uses...
Could you just patch out the event trigger
@fervent horizon You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
https://www.youtube.com/watch?v=G-ueFAdEuD8
i found out by this video, the man in the video shows bits of code and talks about how it works, i dont know if this can help?
Stardew Valley has a new resident!
Info for when/where to spot it: (Unsure if it is the same on console)
https://docs.google.com/spreadsheets/d/1l59NkJzKzy2WQeJlBjImq8RPYZQmRfJd5_iQQg1GJUg/edit?usp=drivesdk
FAQ:
Q: What is its name?
A: Asldkfjsquaskutanfsldk
Q: ???
A: ¯_(ツ)_/¯
Watch Live on Twitch for Challenge and Speedruns:
https://www.tw...
...that is certainly a filename.
oh cool
lol yes people think its CA trying to write sasquatch
oh god i got jumpscared by him yesterday
Yeah I think editing the actual event is out of my realm of knowledge but someone else might be able to
aw, okay! thank you for still trying to help though! should i resend my message in #modded-stardew ?
Yeah, someone in there may already have a solution
okay, thank you so much!!
Friend
Asking this again, since it got buried
So if I am replacing an asset like "animals/horse", and then I change the config, do I invalidate "animals/horse" or the asset that I replaced
You need to invalidate Animals/horse yes
I'm not sure what is meant by asset you replaced
Ok, that is probably why it wasn't updating
I was invalidating my asset
Not the target
anyone know where the dialogue from cutscenes is located in the files? i tried looking in Content->Data->Events, but the only version of the community center cutscene i can find is afterwards when Morris comes.
i'm trying to edit some dialogue from lewis when he gives the speech
You can use your text editors search in files function to find the line in a whole folde
Notepad++ can do this and i assume VSC too
that's smarter than poking around in a million files, lol. thank you!
Yup haha
Anyways errant thought. I used to play this petsite game where you could decorate a "tree" png with different ornaments and show it to people. Would be kind of fun to have a tree furniture ingame that you can interact with, either with a simple dress up menu where you click through options, or an item slots thing and you put little ornament items on the tree 
thatd be so cute!
This is the most "ideas guy" ive been in this channel but if anyone is interested on working on it with me I'd ofc do all the art
imagine if your spouse could add unique ornaments that fit their vibes 
like a motorcycle ornament for seb or something
I think u can probably make it secretly a table with multiple slots (using furniture framework)

A shelf maybe? If its really big? I was hoping it could have mini ornaments not huge 16x16 objects
but having normal objects means people can use anything which is also nice
The top of the tree belongs to Largemouth Bass
it would be super cool to deck out a tree with any objects you want
if you end up making it, i'd def slap them all over my farm for winter hehe
Now if u want the menu/paper doll version that's gonna be some c# spaget 
yip
I would make it a building probably
intriguing
i'm trying to come up with new gameplay features that avoid me having to do art 
The reasoning for building is cus u can have paint masks
Beautiful pink aluminum tree 
The ornaments shall be draw layers
just set that in config. all of these could be done in a CP mod with config options but thats freaking annoying to navigate into and out of gmcm to try decorating something
Yeah 
a config menu that has a live updating preview
GMCM Options can do that
But again, I think C# might be involved
You can see what I mean if you install customize wedding attire and GMCM options
well, you could make custom items that have a small sprite to use specifically for the tree, but let people put anything anyway
God damnit, this just gave me the idea to add a "Scale" field to custom slots...
why did I never think of this stuff before I work on the mod
yes the winter star tree demands gigantic largemouth bass
You never know what features you need until you scopecreep yourself into needing them. xD
yeah, you can even force it by putting a restriction on a custom slot
k, the slot scale idea is speedrunning breaking my brain: from where to scale the sprite? does it scales shadow?
there would need to be a separate no shadow option
if u wanna make winter star tree work
welp, I'll see that later, it's 3 a.m., and not a FF coding day
there's already a no shadow option
for some reason
i actually just let ppl put shadow scale separately so 0 is no shadow
Uh oh am I going to get accidentally roped into creating my potshot idea
This is a bad habit
idk i assume u posted it to nerd snipe ppl into making it real
I mean, in the interim, a simpler, less interactable version would be to make a tree sprite that has conditional patches for spouse-related ornaments
(if they're spaced out enough and use an overlay patch, it could even have limited polyamory support)
What if I create a giant Christmas tree 
Also good day all, I just got back home and I am fighting sleep
ModManifestBuilder 2.4.1 has been released! With such features as, uh... updating dependencies so Visual Studio calms down
I, for one, am elated by this announcement.
Technically I think I also fixed a potential bug where you depended on a mod with a manifest that was literally just null
But that is so extraordinarily outside the set of possibilities that it shouldn't count as a bug
At that point, it's just cursed and it's probably something you did five years ago.
Also it seems like the changes I made in 2.4.0 to make it stop trying to load the wrong DLL worked?
I mean it seemed like they worked in 2.4.0 too but they still seem to be working so yay
I never ran into that issue, as far as I remember.
Unless you mean the thing where you need to restart Visual Studio after updating an analyzer (you can't fix that).
It isn't an analyzer, so that shouldn't be necessary.
Analyzer or source generator, I mean. But maybe it isn't either.
It's not.
But pre-2.4 it would do this thing where if you updated the MMB version msbuild would keep trying to use the old DLL even while using the new .targets file and it would at best be using outdated stuff and at worst break. Now it doesn't do that.
Truly the only downside to the manifest builder is something that's not its fault.
The only downside is I had to spend a bunch of time figuring out how msbuild works.
<SMAPIDependency Include="furyx639.ToolbarIcons" Version="2.7.1" Required="false"/>
Ah.
Only happens in Rider, so I always just put it down to a Rider bug.
It's pretty powerful once you get used to it. I had to do MSBuild shenanigans to get those game content tests working.
That does seem like a rider bug, yeah.
I guess rider assumes that anything that isn't a Reference is an Item?
I don't know why I capitalized item.
Yeah, an item of SMAPIDependency.
A file would've been a better way to put it
At some point I'll get around to reporting it to them!
I used Rider for a little over a week and eventually got around to accepting that the file and assembly/dependency explorers are just weird.
They're like... almost sort of correct, but in that ineffably Java/IntelliJ-oriented quirky way.
I'm having some trouble locating them, but wasn't there previously a pinned message somewhere that had links to programs that can convert STF and JA to CP?
!converters maybe
A lot of converter tools have been made by helpful members of the community to update outdated mods or convert existing mods to modern or alternative frameworks, and for 1.6. Here's a list:
- Convert XNB mods to Content Patcher
- Convert pants/skirt spritesheets to Fashion Sense
- Convert Custom Furniture mods to DGA/1.6 Content Patcher
- Convert visual Content Patcher mods to Alternative Textures
- Convert BFAV mods to work with 1.6 Content Patcher
- Convert TMXLoader mods to 1.6 Content Patcher
- Convert Custom Music mods to 1.6 Content Patcher
- Convert Shop Tile Framework mods to 1.6 Content Patcher
- Convert hair spritesheets and JSON Assets shirts & hats to Fashion Sense
- Convert regular Content Patcher to i18n format
- Convert JSON Assets to Content Patcher
- Convert fish data from field names to slash delimited values
- Convert markdown text to Nexus' bbcode
- Convert Custom Ore Nodes and Custom Resource Clumps mods to Item Extensions Framework
- Convert Content Patcher Animations to SpaceCore
- Convert More than Necessary to Content Patcher
- Convert SAAT to Content Patcher
Thank you
I am tempted to edit https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started to mention ModManifestBuilder as an alternative to "Add your manifest".
Do you have any way to tell how many people are using it?
Not really without scanning repos for package references.
The big huge repository of every stardew mod used to be good for that but I understand why it's not being updated anymore.
HUh. I Looked at my used by and there's someone's unit testing thing. https://www.nuget.org/packages/Linkoid.Stardew.ValleyUnit.Sdk/#readme-body-tab
Yeah, it's actually more of an integration tester, but it is pretty cool.
casey's mods repo is also there, but that's kind of weird to me. Why does it only show casey's repo when I know more of us use it
Huh. DeepWoods has its API on NuGet. That's actually not a bad idea!
Also, very glad that's being updated/
is it cus nuget knows about casey's repo?
because casey published the content engine syntax
It's probably because casey's repo has over 100 stars
The rest of us just aren't popular 
but pathos uses it im psure
I have an entire six!
Pathos doesn't use ModManifestBuilder afaik
I actually only use it for StardewUI, none of my other mods do.
I mainly did that because I need to keep a whole bunch of versions in sync.
It's more important for mods that you expect other mods to hard reference, also.
Since file versions and all that
Yes, exactly.
Yeah, I converted every single one of my mods to use it when I made a project template using it.
It's very nice if you have a monorepo since you can put most of your fields in the common targets
It's invaluable for doing stuff like tossing a version into a Common.Props and then having that propagate to every manifest, but for me it's very much a take-it-or-leave-it thing for ordinary mods.
the beta was also a factor
And of course content patcher mods (which are the majority) won't use the manifest builder.
auto version up 
I do like that feature, yes. Might be a compelling reason to switch a few mods over to it.
I just like how minimal it makes my csproj files.
either way i think it's worth a mention on getting started, after describing manifest.json
Eh... it makes the csproj files bigger.
the point is to not have separate manifest.json right 
Y'know what, that's actually fair!
it was tripping me up that if u have manifest.json already, ModManifestBuilder took that over what i put in csproj
Speaking of monorepos, does anyone else use symbols to conditionally compile their common projects?
Not often, but in a few places.
Oh wait, common projects? What do you mean, conditionally compile the entire thing?
You mean having a .shproj with "namespaces" that aren't really namespaces, using conditional compilation to omit specific features?
(I did, once upon a time.)
Also consider3d trimming
I wish trimming worked better in c$
I've started giving myself feature flags for different parts of my common project. In a mod's csproj I'll put something like xml <UseCommon>GMCM;UI;Inventory</UseCommon> and my common.targets uses that to define variables like COMMON_GMCM, COMMON_UI, COMMON_INVENTORY then in my files I just put the whole file in #if COMMON_UI etc.
I miss JavaScript's tree shaking lol
That's what I did lol
Ah, ok. Not doing that kind of monorepo.
Same. Just let me define "hey these files don't contain public APIs tree shake them"
Tree shaking in JS is some kinda magic and it has me spoiled
I'm not familiar with this being part of plain old JS. A bunch of JS transpilers do it?
Yeah, most all the modern JS build tools have tree shaking.
It's pretty magical how well it works given how sloppy and dynamic a language JS is
The JS tools, among other things, can usually depend on the minified script being self-contained. Webpack works great on entire apps, but you wouldn't use it for a JS library because of the public API problem.
And since technically everything in .NET, even executables, can be a program or a library, I guess there are challenges related to reflection, dynamic, and so on.
Yeah, but on the other hand, if you are publishing a library the end dev's environment will end up tree shaking your library during their build
The moral of the story is that my feature flags ended up shaving a lot of size off my compiled mods and I am pleased.
How big were those mods? I'm not used to seeing many that couldn't fit on an old floppy disk.
Not like bigger than a floppy big, but I trimmed several hundred KB off the DLL in a couple cases for mods that don't use much of the common project.
I think LookupAnything is the biggest one I have installed.
And that should lead to a good decrease in load times.
Oh wait, Better Crafting is indeed a bit larger.
A few hundred KB really makes a difference in load times?
I expect my users to have potentially thousands of mods so it's more a "I'm doing my part" situation
Every little bit probably helps, and that's a lot of code the runtime no longer needs to worry about.
(Granted I'm somewhat infected by the JS side of things. It would be a way huger event in JS and that colors my perception.)
Most of those thousands tend to be Content Packs, from what I've observed (but I don't spend that much time in #modded-stardew)
content packs r way bigger on average
On the one hand, I respect the effort going toward performance optimization and try to do a lot of the same (in different dimensions, mind you). On the other hand, Amdahl's Law, man...
better crafting would be smaller if u separate the themes
how do i save the day of month in a variable?
same way you save anything else, just grab it from Game1.dayOfMonth
Game1.dayOfMonth```
i did that and i cant monitor.log it, sorry if this is stupid im new
That's the XML docs. You definitely want those if you're writing an extension.
That's how VS (and VSCode, Rider, etc.) gets its intellisense if you don't have the source open.
You'll be missing the second parameter of the log method. It defaults to trace, which won't show in the console unless you specify a higher log level.
oh interest, vscode had always just decompiled it
It can decompile to get the signature, sure, but not the descriptions.
If it were a lot bigger then I might release a version of the mod without it... but half a MB is not much to download, and it has no impact on the game itself.
You know the inane shit you write in the docstrings? That's that file lol
(Well. Inane shit I writel
Mine is not insane, it's helpful.
Most of it, anyway. I don't write crap like x++ // increment X in either regular comments or XMLdocs.
I assume you're better at this than I am, I feel like half the time I'm just explaining what the function name says lol
Experience and introspection, I guess? If you can predict what you are likely to forget in 3 days, that's a good proxy for what other people are not going to be able to work out for themselves.
i had the second parameter but didnt realise i had to log $"{day}" and not just day
Of course it's never perfect. I still stumble on old code and have to ask "why TF did I write that".
If you need docs to explain function names, just imitate CA and write 78-character long names.
DoTheFirstThingExceptWhenTheSecondThingHappensButAlsoMaybeTheThirdThing
Or do_the_first_thing_except_when_the_second_thing_happens_but_also_maybe_the_third_thing if you want to imitate Podunkian! 
If you write snake_case in C#, you are banned from all my repos.
or, recent work code
def pad_to(li: list[int|bool], length: int) -> list[int|bool]:
'''Pads the list out to the length specified'''
# code here
which was what I was feeling about inane comments
Maybe if I bound _ to shift + space I could get behind it...
but yeah, more inane comments
Most docstrings are going to start out with a simple description like that, but they're really there to document the algorithms and edge cases. Does it modify the list in place, or copy it? What happens when the list is already longer than the padding? Etc.
shoutout again to beloved GameLocation.checkForTerrainFeaturesAndObjectsButDestroyNonPlayerItems the longest function name in the game
what
Yes, I see what you mean. When I look at that code, I'm wondering less about whether ApplyPatch applies the patches, and more about WTF that mysterious Buffer thing is.
(or at least it was before 1.6.9)
static local
that's really it, tbh
Why even write doc comments on internal members unless they're really esoteric?
I should define an interface for my harmony patch classes and do discovery rather than manually calling them.
I thought you were trying to improve startup time...
lol, true
Though I suppose you could use a source generator to do discovery at compile time.
Guess it's time to write --- yeah, lol
Same for registering events, trigger commands, etc.
I did do something like that for console commands. And then proceeded to add a grand total of 2 commands.
I've got a few more than 2.
awww poor crops
Hello can someone give me an example of how to use the $y question dialogue. I need a complicated example please.
Is this right...
why complicated?
At least 3 responses/choices
"AsterDialogueThu8Depressed": "$y 'Does it happens to you, when you hold it together after a pretty bad day and then break at the smallest thing?_Way too much._Well, this time, I needed a muffin, here's one for you too. You know you can call me if you need, right?[651]_A bit, sometimes._You can call me next time it happens, if it helps._No, not really_Ah, sounds like you're in a good place'",
Hmm so this one has 3 possible outcomes?
yes
And gives an item
way too much, a bit sometimes, no not really
Ok thank you and I needed to know also if I add a #$b# before the $y would it work?
A dialogue before the question
no idea, i haven't tested this format
Yes
Do I need to add an additional # to separate the commands in dialogue?
I have a dumb question. I just tried using StardewXnbHack and I got a screen full of red text. I am using 1.1.2 version and as far as I know, everything is updated...
im reminding the player of birthdays and using switch cases for the days, i have to check the season first. would it be best practice to use a switch for the seasons too or just if those and switch the days
Did you make sure the StardewXnbHack.exe is in the same folder as Stardew Valley.dll?
What version of SDV and SMAPI are you on?
You need SMAPI 4.1.4 or later.
Can you show a screenshot of the exe in the folder?
(ironiclly, this is the first time in months I started the game and not see something that needs updating
By all accounts that looks correct. 🤔
Well time to update my SMAPI and check then
Works fine here
Does it require being logged into Steam? Not sure how all this works when you own the game on GoG
It shouldn't.
I'm logged in
Hm, maybe re-install SMAPI, just unpacked again and it worked for me too
Yeah, reinstalling SMAPI would be my next step probably
Maybe even delete smapi-internal before doing that
yeah I just removed and re-tried the thing, and it didn't change, so yeah, Smapi is next
don't think I've ever actually uninstalled SMAPI before...
Been working on this dialogue for almost 2 years if someone could tell me if this will work thanks! json "AnnettaDialogueSunMorning": "The waves have been especially restless lately...#$b# $y 'Do you ever feel like the ocean is calling to you, like it's trying to share its secrets?_All the time._I thought I was the only one... maybe it's something we should explore together someday._Sometimes, but I don't understand why._Maybe it's the mystery of it all that draws you in._Not really._Ah, I see. Well, the sea has its own ways of speaking, I guess.'",
This is without the # between #$b# and $y commands
Uninstalling and reinstalling SMAPI didn't fix
Wild idea, but it's worked for me before with dumb things not working, have you tried restarting your computer?
hiya i hope im not interrupting anything! I just have a question on a content.json file i wrote
you're missing a quotation mark before "Seasonal" on line 24
but your Data/Characters edit also doesnt seem properly closed
also you want to use Fields and not Entries for editing Sebastian i imagine, or else you're going to reset every other field to its default
(oh and the quote thing is also on every other one of your patches below line 24 too)
Missing 2 closing } line 12
Rebooted PC, still erroring
for every { you need a matching } in the right place to "close off" blocks of json, and yours are currently not in the right places
Sorry, 3
Hmmm, so strange 
agrees
right now from CP's perspective it looks like you're trying to add an Action: Load inside your Data/Characters edit
Game doesn't have to be actually running for this, right?
Right
would changing load to edit be a better option?
or is that something i shouldnt change
thats not the problem. the problem is that you dont have the right }s in the right places
i see
Should I downgrade my SMAPI?
No, it should work with the latest
are you sure u didnt run this from a different dir
well no, the website says or later, so I should, in theory, be fine
it's in the right folder...
What does your smapi-internal file look like?
why do all those files say november when I literally just reinstalled it a few minutes ago?
Seems like your internals are out of date?
cus they r last changed back then
ok... so... uninstall didn't work right
Do you have some weird thing going on with file permissions and overlay filesystems or something that I don't even understand? Because SMAPI shouldn't load with the wrong versions
I thought about just nuking the whole gamefile, guess that's my next step
🤔
Did you try just deleting smapi-internal like Khloe suggested?
I don't think I've ever intentionally uninstalled SMAPI so I'm not sure what it leaves behind lol
no, I uninstalled smapi, I missed the deleting of the internal folder, I do that
same
Computer's haunted
ok, deleted internal, uninstalled, reinstalled, and everything in internal still says 11-12...
sighs
Can confirm, every computer I've ever owned has been haunted
Did you make sure to download latest SMAPI fresh?
that's my next step, along with a fresh game install
All this does make me glad the save files are separated
indeed
freshly installing SDV, got a fresh copy of SMAPI... crosses fingers
there's some progress
And hope dies...
rebooted, reinstalled all the things... I don't know what else to try
what net version do u have
you mean browser? Chrome
what is that? how do I find it?
i have no clue for windows 
but i guess u should double check smapi internals again
see if it's got 11-28 last changed
I just posted internals, but lemme look again
am I blind? I don't see anything .NET
This is in the game folder, is this what you meant?
how do i do "SetTilesheet" for the outdoorsTileSheet?
SetTilesheet takes the tilesheet name
{
"Position": {
"X": 18,
"Y": 33
},
"Layer": "Front",
"SetTilesheet": "untitled tile sheet",
"SetIndex": 1109
},
like this 
https://dotnet.microsoft.com/en-us/download try updating this i guess
Free downloads for building and running .NET apps on Linux, macOS, and Windows. Runtimes, SDKs, and developer packs for .NET Framework, .NET, and ASP.NET.
Anyone know what the cat is doing here? I’m trying to figure out what to replace it with, but I don’t think I’ve seen the original in game
Ohhh Ty 😭
I don't think I've ever used this?
okay so i got the images to work! yay!
however the display name is still set as sebastian
https://smapi.io/json/content-patcher/658773be0cb94be89f43bc306e46e599
does anyone know how to set up custom NPC to work with NPC Map locations?
i think they do automatically? are you having issues
you need to add the custom location to the world map
^
i don't know the details though, and compat is concern
Hi, I launched new release to my mod.
adding the location to the Data/WorldMap will tell NPCMapLocations about it
look into this perhaps https://www.nexusmods.com/stardewvalley/mods/24210
I was gonna post my example JSON again, but it looks like it finally expired LOL
If anybody could help me with bug said by spaceytoast I'll apreciate a lot
(oh i should add this shouldn't i
)
Personally I'd ask them to give you more information - that doesn't even tell you what's wrong.
Yeah, that's not a real bug report
Lots of mod authors get this kind of thing reported in error, in part because SVE users tend to be extremely inexperienced at debugging (and blame all kinds of random shit on random mods)
thanks. I tried on Nexus, but anyone answer on that platform... that why I tried on this server... I believe on SV Discord community
Tell them no log and no reproduction steps means no bug
Yeah... I published on SVE Discord server too... I wanna be good modder
You really don't need to spend this much effort, unless you want to
Odds are good they have done any number of the following:
- installed SVE wrong in the first place
- have some 3rd mod that's actually breaking the warp
- installed XNB mods that screwed up their save in some new and fun way
My bet would be on some 3rd mod, but who knows
Okey... even that I want to be more active on Discord... so that my excuse to >.<... you know be more sociable
skeleton man 
My only hot tip about warps is that I personally prefer to use the Content Patcher AddWarps feature https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-properties Even though you can also add warps directly to the map using Tiled, I find AddWarps is just a tiny bit more reliable (easy to typo in the map)
Thanks... I still have not earned the mod author medal. Need I to be more active on Discord or produce more mods?
More active on discord, and then you have to request it
I did it on Tiled
You need to chat more to get to Farmer level
okey okey thanks
I am a lazy developer obsessed with simplicity. Thats why preferred to create map mod with C# insted of ContentPatcher
I have read all mod doc on wiki... its super useful and boring
lmao
I prefer to use CP when I can
I find it a fun intellectual exercise to see how much I can push the limits of frameworks
It could be funny... but you know... why use a hammer if I can use a rock?
The stoic way
Eh. It depends tbh
I find that people are more likely to install content pack mods tbh
Well... I want to become good modder... not a famous one 😆
i dont see benefit in using C# just to do smoe content loads 
Thank you for the info... I could help me to improve my downloads
a good modder would use the right tools in the drawer 
That's right... It is not neccesary... is just fun to me touch low levels of programming. I said it... I'm obsessed with simplicity
I'll think about it... It's my first mod and I'm more a code person than a drawing person. On the way I learned that good images and drawings are very important too.
yea sure, im just against rebuilding wheels 
I just did the .NET thing and still getting errors
when i needed non standard behavior in my content patcher map mods i just made a separate framework for it
so that other ppl can theoretically use it too
I mean the downside of doing it yourself is if a base game update breaks it, you have to fix it yourself instead of letting someone else handle it 
I don't get it, and my patience is about out...
Did you try with CP and get no errors?
CP?
yea some wacky thing is happening for you
Content Patcher insted of .NET
did you want to find out some specific thing? i can look for you
they been trying to use stardewxnbhack, not load mod
I just wanted to unpack Contents.... I'm modding and want a fresh copy to play in
I even tried the previous version of stardewxnbhack and got the same error
are you sure you dont have 2 sdv installs somehow
I have an unpacked Contents from 6/7/24... but I feel like something changed in it since then
yeah just once copy
one*
Do you perhap use an Antivirus that might be holding onto the files to scan them at a really inopportune moment?
sdvxnbhack would just be using the install located in the folder it's run from, though. it doesn't run otherwise
right
also hi brenya, nice to see you again ☀️
Hi! waves
pretty sure no, but honestly, I have no clue how to check that
Oh... thanks.. I apologize didnt read previous messages
honestly, I'm so frustrated right now, I don't remember the order of doing things
I don't know
doesnt hurt 
honestly though i don't believe there were many content changes from after 1.6.0
more than the crow shop?
I'm > < close to smashing something
right, let me close everything... again...
brb
crow's the only new asset i think, mostly just pruned stuff
1.6.9, 1.6.10, 1.6.12, 1.6.13, and 1.6.14 all touched Content in some way
sure, but not much significant to your average mod author i think. you can get by perfectly fine on 1.6.0 content
which was like, march 2024
a 6/7/2024 unpack in whichever date order is going to be fine imo
This error seems like being caused by SMAPI. I think StardewXnbHack don't need SMAPI. Am I wrong?
I think a lot of those changes were just removing unused assets, or things like adding the working portraits for Sam and Shane or the ||crow shop||?
You are indeed wrong
1.6.9 has some big things. At least one whole new asset (Data/LostItemsShop), new dialogue keys, translations moved around, some new fields on various models
ah, I forgot about the dialogue keys and the new fields
yeah, dialogue is definitely something I planned on playing with
It doesn't matrer
i wouldn't lose hair over those, though
Thr vase game doesn't use those keys
if u just want to find out the names u can decompile gamedata.dll instead
True, it mostly just added them so modders could use them, yeah? And they're listed on the wiki (the new keys).
yes, very wrong
Did you try executing StardewXnbHack with admin permissions?
I love you
It works?
you're forgiven for being so wrong 😌
but it;s doing the things
So something is messed up with your file permissions
Even though you uninstalled and reinstalled everything
Thanks my lord
Unpacking has always felt a little slow to me, but I never used any other unpacker to compare it to
Tah daaaaaahhhh
(if you ran the SMAPI installer as admin, it does tend to create these exact kind of problems, also)
It's why I try so hard to not suggest running in admin as an option when people can't run the installer due to permissions errors.
I know how to fix this kind of thing on mac, but idk on windows
on mac (and linux) you can pop into the command line and fiddle with perms
I'm so freaking happy my eyes are leaking, this is ridiculous lol
on the other hand, run-as-administrator is a great hammer for making and solving windows permission issues
Windows has the System File Checker that uses a command line to fix itself, math person that I apparently can't distinguish (❤️)
That's Elizabeth
pretty sure that's max
Run as Administrator, the cause of and solution to all some of Windows' problems
I fixed it.
hey guys are there any sprite templates for creating Fashionsense outfits?
Huh. I've never had it have proben on windows before
Sorry, there's three math people running around and my brain is confused
Classical = plain ol newtonian stuff, very macro scale
you can always become a 4th mathperson
Atra is quantum because their funny little electrical chips get into quantum stuff
So far they have all provided the handicap of not changing profile pictures lol
I can't math well consistently enough to be a math person.
nothing stopping you from being a Junior High Maths Person
Arithmetic MathPerson
Meow
Calculus I MathPerson
We need more mathpeople, the natural number e
Against mathpeople MathPerson... could be too?
i'm more of a guess-and-check maths person myself
if only we had hot reload in high school
Empirical MathPerson
Poking my head back in to say thank you to everyone who worked to help me get this issue sorted (and saving what's left of my sanity). I appreciate you all ❤️
Now I'm off to play lol
@ivory plume Hello!
I've noticed that in SMAPI the Helper.Events.Display.Rendered event currently draws under the RenderedActiveMenu, when according to the description it should do the opposite.
It still worked in a earlier 1.6+ version:
https://gitlab.com/delixx/stardew-valley/unlockable-bundles/-/wikis/Home/WalletCurrency
Tested on both 4.1.7 and 4.1.8.
(left RenderedActiveMenu, right Rendered)
Drawing that billboard on the top left
Is this also why text boxes render under GMCM's menu?
gmcm seems fine for me so idk
I'll have to see if I can get a picture of it later, only notice it sometimes
i thought casey fixed the tooltips thing
i notice it on occasion when in a nested menu, such as the tooltips from the modlist page showing up from the mod page
which isn't a render order issue, it's just that gmcm doesn't clear the modlist page hovertext value when entering a mod page
I'm not finding it now, so maybe I'm just thinking from the last version
Rendered should absolutely be drawing after RenderedActiveMenu
Rendered is emitted after the game's draw() method returns
(Unrelated, now I want to add support for UB's custom currencies to Better Crafting since you can technically create a recipe using currency as an ingredient.)
to think that better crafting will let you cook money into a building. what a world
I would complain but that is entirely accurate
i think i should be allowed to make ferrero rocher out of golden walnuts
Technically that isn't possible with BC right now. I deliberately didn't make golden walnuts a supported currency since those are limited and the base game needs most of them.
I could add them I guess. It's possible for a mod to add an additional source of walnuts.
users need to be able to learn critical thinking. let it be a teachable moment when they bake their hard-earned money into a snack
then use them to get special bonus from the governor?
Time to learn how to do crops
MPS does this with the Geode Crusher! You can crack Golden Coconuts open and receive unlimited Golden Walnuts
what practical joker went around hiding walnuts inside coconuts
can you add a new machine rule to crack open a golden pumpkin to get a golden coconut?
What if you just keep cracking open spherical golden things to find slightly smaller spherical golden things
surely you crack open the golden walnut and get a golden egg. surely
Does it require anything special to get an NPC to reject a particular gift? I have an NPC who is highly allergic to fish and can't have it, thus he will not accept them.
they need a reject dialogue for it
you're likely fine to make the item_fish context tag a hated gift. it's very SDV to have a character accept a gift but loathe you for it
see: penny and beer
You can also use RejectItem
Okay awesome, thanks y'all. I appreciate it! I'll see if I can fiddle around and find something that works.
That's true, but I think something that anyone uses anytime is the right to be fool.
Ok I’ve made an AT pack, well, I’m in the middle of making an AT pack, and I’m doing some testing, SMAPI isn’t giving me any errors about my manifest or texture jsons, but my texture simply isnt showing up for AT
Could someone help plz
!json you can use the validator site to share what you've got
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.
@floral canyon RE: better beehouses
Thank u! 🫶🏼
Just send the link here and we can take a look at it
What is Mushroom Door?
OH WAIT
My bad, it is nearly 1am and I have had like 4 redbulls I have left my brain somewhere that is else
😭 four??
Better Beehouses ambient sounds
4 scary
Don’t judge me shrimp
I really need to learn how to read, and I got an A+ in English Lit in school 🙃
Reading is very important 
Meh, I used to drink like 9/10 monsters a day when I was like 17
4 redbulls is tame but I’m old now so
sounds revolting hahah
I was very angsty as a teen 😂

A red bull is only like 111 mg of caffeine, you need 10 grams to be considered a lethal dose
How do you know this
interbutts
I ask as I put instant coffee in my coffee
As someone with a previous heart condition, my limit is probably a lot lower lol
You only have to drink like 9 gallons of red bull for it to be lethal
Maybe on sale 
Part of the treason I go for instant coffee in my coffee (so a 2x coffee) is because it's cheaper lol
I can also get coffee from the work coffee machine
Work beni
the treason of instant coffee?
Just a sanity check here, does this set of trigger actions look right? I'm just copying what I did to apply and remove the cornucopia mail flags at the beginning and end of each day 🤔 I think it's right, but I want to get someones opinion since testing the asdlkjfg1 event relies on tiny random luck
@distant radish alpha version of furniture machine is published here, give it a try and let me know if it works: https://github.com/zombifier/My_Stardew_Mods/tree/master/FurnitureMachine
(side note, outside of bug fixes I will not add any more furniture-related features to this mod; it is more or less complete)
does "6480.bigfootbegone_setmailflag" only ever run once?
Uh crap. I was supposed to add that to the reset, wasn't I
And that's why I'm here! Haha
Thank you!
beyond that, what does the mod do exactly? it's so I can see if it's the desired effect haha
I might be missing the point, but it seems like "MarkActionApplied": false would be an easier way to do it
It's setting the asdlkjfg1 flag, which is a flag the game uses to make sure the ||bigfoot|| easter egg only runs once (one of them)
So the player won't have the easter egg show up, even if they havent actually seen it
I dont understand what it makes easier here (but I didn't design this setup, we just utilize it for cornucopia)
MarkActionApplied: false means it can repeat forever without you needing to set it false in the resetaction trigger
so if a trigger is supposed to be infinitely repeatable then you wouldnt need the resetaction trigger at all
something like this as a single action, I guess?
"6480.bigfootbegone": {
"Id": "6480.bigfootbegone",
"Trigger": "DayStarted DayEnding",
"HostOnly": false,
"Actions": [
"RemoveMail All asdlkjfg1 all",
"AddMail All asdlkjfg1 received"
],
"MarkActionApplied": false
},```
it'd trigger every morning and night while not actually marking itself
I do want to make sure the flag gets removed at DayEnd so they can uninstall if needed
i think the intent with not adding it back immediately is so you can uninstall the mod and not have it remain marked seen
ah, right, I didn't notice that happening 
Yeah, that's why its not just the one trigger
just having the first two actions with removemailflag going on dayending and setmailflag going on daystarted, both with MarkActionApplied false, should be sufficient though unless im missing something
er, first two triggers i mean
If what I have works, I think I'll stick with it rather than risk messing something up on a second execution 😛
I appreciate the input guys!
Next time I use trigger actions, I'll keep that in mind
Loaded the game and ran in and out of Backwoods a few times without any sightings, clearly mod works flawlessly
Seems right 
Can modEntries hold NetFields for common data across players in multiplayer? I have my ModEntry inheriting INetObject but the data in a NetCollection is still differing. Anyone worked with that before?
i think if you want to add netfields and have them work, they need to eventually descend from the NetRoot at the top of the world hierarchy
i dont think ModEntry should inherit net object that seems cursed
Haha very cursed, just trying to find a way of making to feasible
whenever i've thought "i should add netfields somewhere", i usually find another solution (e.g. SMAPI multiplayer messages)
Def not for this, unfortunately
Handling collections of instances for custom objects, kinda like characters
(in Portable Hole, i use smapi messages to keep assorted things in sync, including a data structure, although the structure is not terribly strict about, say, order)
u can just construct the object twice 
yeah i dont see why smapi messages wouldnt work for that
but if u r set on having net fields then just make it a field on mod entry
The object is being interacted with and moving constantly, being animated as well.
is this bosses again
Nooo
animation is also good reason to just make object twice
Its something Ive been at for months, kinda started mid way through the boss work.
i mean sending that kind of data is essentially what a netfield is already doing, no?
it'll look janky if u actually netfield the frame
I mean everything is working atm, just in bugfixing stage / multiplayer compat
at any rate if u r set on having net objects then just make it a field
rather than making all of modentry the net object
I think I needed to set the owner of the field to something
definitely do not have modentry inherit inetobject.
Which is why I needed modEntry as a netobject
yea im saying
make a separate class that inherits inetobject
have a field on mod entry of that class
this is example for smapi messages
I get you, yeah
in which i mail over the save data
making something new that inherits from net anything seems like itd be a lot more troublesome than a smapi message
I mean it might work using smapi messages, but itd be a lot of messages pretty constantly. Whats the performance of smapi messages like?
i mean the data has to be transferred either way
it really doesnt matter which one u r doing they r equally worst case
Should be the same or better than netfields
You get to choose the rate you send messages, you don't with netfields
smapi multiplayer message is pretty low level and doesnt do any implicit syncing shenanigans so its prob better
if anything better bc a smapi message doesnt talk back i imagine
unless you make it talk back
our advice is all pretty theoretical cus you didnt explain what your actual use case is
netfields only send i think every 3rd frame, so you're already on your back foot if you want to use it for animations
I couldn't get color syncing with just netfields
also any lag will have the animation looking janky as chu says
The animations themselves are handled seperately, just iterating through the collection
They look pretty good, or atleast Im happy with them atm
Creatures spawn all around valley, these creatures can be caught, they can run away, then can chase. Most move, fly, swim etc and have associated animations during movement. The creatures currently existent need to be synced between players. The creatures only spawn in active location, disappear when no farmers are in the location anymore. They also disappear after set time. Right now all of x works except the same creatures syncing between players, right now each player has its own creature list.
These r just Critters right
Much like them yep
Critters have a field per location, but I don't know how I could add a field for these in locations
I don't know how well it'd work given the multiplayer fake location business
also are critters synced, IIRC they arent
SpaceCore supports adding new fields to existing classes
Well I assume nature made their own critter like class
But yeah I do think it makes a lot of sense to use smapi message here
With their position, and other important changing data in fields
You don't bother sending anything until a player enters a map with another player in it
It's perhaps bit more work to set up but you have far more control over it
Compared to netfields which work by mystery reflection business
I can see how to get it working, though yeah it would be a bit to set up now
Are you going make your mod a framework?
Ill keep it in mind incase the net path is too annoying to work out
Ornithologist guild let people add birbs and it's great 
There was also custom critter that broke in 1.6.9 rip
rn by default it adds 86 animals, but Im working to have it be alterable
Framework mods refers to C# mods that add new functionality to the game's code, and allows content mods to make use of them without having to make their own C# component. They usually work by reading custom data set in content mods and then apply their changes accordingly.
Ive never thought about how Id make it a framework
I have an agenda and it's to get more ppl to expose their bespoke stuff 
The gist is that you source your data from a custom asset
And let other people edit into the custom asset
There's the older content pack for approach but it's worse because u can't use content patcher tokens with that
I plan on making my Different Horse Skins mod a framework if I can figure it out.
Thats hella cute
Making something a framework is basically feeding your asset through an asset requested event and responding to invalidation of that asset in a sane way.
And, you know, having lots of things to do with your data asset helps. But feeding a data asset through the content pipeline with the asset requested event is the big thing.
@tardy adder vmv names for the dewb addon for u:
"If PLAYER_HAS_MET Current AdelaideRosierVMV ## AddFriendshipPoints AdelaideRosierVMV 75",
"If PLAYER_HAS_MET Current AsterPellegrinVMV ## AddFriendshipPoints AsterPellegrinVMV 75",
"If PLAYER_HAS_MET Current CelestineDuboisVMV ## AddFriendshipPoints CelestineDuboisVMV 75",
"If PLAYER_HAS_MET Current HeliaDiamantiVMV ## AddFriendshipPoints HeliaDiamantiVMV 75",
"If PLAYER_HAS_MET Current MaddyPellegrinVMV ## AddFriendshipPoints MaddyPellegrinVMV 75",
"If PLAYER_HAS_MET Current MariamFortinVMV ## AddFriendshipPoints MariamFortinVMV 75",
"If PLAYER_HAS_MET Current MoiraDuboisVMV ## AddFriendshipPoints MoiraDuboisVMV 75",
"If PLAYER_HAS_MET Current NaveenFaycombeSereneVMV ## AddFriendshipPoints NaveenFaycombeSereneVMV 75",
"If PLAYER_HAS_MET Current OdalisDuboisVelezVMV ## AddFriendshipPoints OdalisDuboisVelezVMV 75",
woah thanks Megan
np, you should just be able to copy paste that into the json for the addon
this is a super beginner question, but i'm trying to make a manifest file and idk what to put as my mod's unique ID?
Your mod's unique id is typically <Author>.<ModName>
thank you!!
hello, does anyone know if there's a way to delete an event in the vanilla game?
can you be more specific? detect an event is running in C#, or checking whether an event has happened in general
Delete, not detect
I want to replace one of the events with my own
i tried to set it as null but it still ended up playing

You could just edit the original event with yours in place
if I change the conditions in the original event will it still work?
maybe your edit isnt applying
you can block it with an always false mailflag prob
I'm wary of straight up blocking/deleting an event, considering how many are requirements of each other
it sounds like this step went wrong
the conditions are part of the event's key, so in order to change them, you have to null out the existing event and add your new one
hm. maybe I'll have to cope with the conditions not being exactly like I want them 😭
it's a story mod so I'm trying to tailor it to the story
it's Hailey's dark room event
I tried to nullify it but maybe I did it wrong before?
ok that event is (i believe) "15/f Haley 2500/p Haley" in HaleyHouse
keep in mind if you have other mods installed, this might affect it also
so if you're using CP, in your Entries you would put
"15/f Haley 2500/p Haley": null,
"15/<your conditions here instead>": "<your event script>",```
i just recently migrated the 1.6 event preconditions data onto the normal wiki page, so you may be interested to check those out https://stardewvalleywiki.com/Modding:Event_data#Event_preconditions
okay!!! I'll try that out, see if it works. thank you!!!
should I keep it in the same set of brackets?
no, don't include the brackets. those are programmer shorthand for "fill in your value here" (and/or "this value is required")
or sometimes "SGML-descended markup language tag" /lh
okay, this is what it looks like. it didnt nullify it unfortunately. (i took out the huge block of event script)
in the null line, you need f Haley 2500 instead of 2250
omg. i didnt even notice it was changed
omg if that has been my problem this entire time im gonna be mad
(is Season Spring a valid precondition?)
(yes!)
yes!
(wtf)
all preconditions got readable names in 1.6
(my z fall z winter z summer)
^
i recommend them over the cryptic letter ones. you can much more easily reason about the actual requirements
oh wow that's so much better
it didnt trigger this time....
very angry at SawEvent instead of SeenEvent tho
my problem was a typo im crying
look on the bright side, you taught me about readable event preconditions 🌥️
haha well im glad i could help there!
at least they tried? 😭
Scenario: I add a patch with a Trigger Action containing a custom modded GSQ, and said patch has a When: HasMod condition for the mod with the custom GSQ. If players do NOT have the mod with the custom GSQ, will they receive unknown query errors?
not if your hasmod is set up right
if the When condition prevents it from loading, then the trigger does not exist at all to the game
That's what I needed to know, thanks.
hiiii genuine question, how would i go about making a portrait mod? (and if i have enough time, a seasonal outfits mod)? i downloaded an npc that recently got updated for 1.6 but the portraits not fitting the sdv style is bothering me
thank you!!!!!
Keep in mind since this is not a new NPC you will not be using "load" to create a new entry in Portraits, but using EditData to change an existing one. https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md
*EditImage
whoops thank you I should not be giving advice around here I'm pretty new myself : )
nodding nodding. i’ll keep these in mind, thank you!
whenever i use move actor in events the actor always goes in the opposite direction no matter what number i give can anyone help 😓
Ok Hypothetical that's not really hypothetical. Say I wanted to have a chance of random dialogue for a day. Say the second (and onwards) day of the green rain, is there a way to have a random dialogue option be picked?
when doing a map can i put more than one "MapProperties": {} into the json file?
ive tried to put more than one because parts of the map can be disabled at players will, but when i did so this part of the code didn't seen to work
and another mod that i was using for reference uses the map properties for nightiles in the same {} for different spots of the map
so now if someone disable this part of the map, this would happen
instead of being all dark
{
"Action": "EditImage",
"Target": "TileSheets/Craftables",
"FromFile": "assets/Beehouses/{{Beehouse Style}}/{{Saturation}}/{{Colorway}}.png",
"FromArea": { "X": 0, "Y": 0,"Width": 32, "Height": 32},
"ToArea": { "X": 32, "Y": 32,"Width": 32, "Height": 32},
},
{
"Action": "EditImage",
"Target": "TileSheets/Craftables",
"FromFile": "assets/Beehouses/{{Beehouse Style}}/{{Foliage}}.png",
"PatchMode": "Overlay",
"FromArea": { "X": 0, "Y": 0,"Width": 32, "Height": 32},
"ToArea": { "X": 32, "Y": 32,"Width": 32, "Height": 32},
"When": {"Season": "winter"}
},
Is there a way to make the second part of this not apply to ginger island? i'm trying to see if there's an applicable token in the content patcher author guide and i'm not sure i'm seeing anything that would do that?
maybe something like this? (but this didn't work for me)
"When": { "Query: '{{location}}' = 'island'": false }
if youre talking about the lights (hopefully i didnt misunderstand this lol), lighting effects added through the Light map property need you to move locations before loading/reloading properly in the map
also yes, you can put multiple map props in the same entry in a JSON file. usually however for day/night tiles, i make two actions: EditMap for DayTiles, and EditMap for NightTiles and Light that is tied to a When condition "Time": "{{Range: 1900, 2600}} so it only triggers at nighttime.
Yes, i was talking bout the lights, thanks for answering
i might be mistaken but it should be LocationName instead of just location?
ah yeah i forgot that was a thing lol
with LocationName you need to specify every location on the island
ah, yeah. i ended up scrolling down further on the guide and forgot it was LocationName
but let me try LocationContext if that covers the whole island?
i kinda forgot about the island not having winter/snow 😂
It's because before it was basically like this:
//PICNIC TABLE { "MapProperties": { "NightTiles": "Front 64 45 403", "Light": "64 45 5"}, "When": { "Picnic": "True" }, }, //FOUNTAIN { "MapProperties": { "NightTiles": "Front 20 22 908", "Light": "20 22 5"}, "MapProperties": { "NightTiles": "Front 32 25 908", "Light": "32 25 5"}, "When": { "Fountain": "True" }, }, //HILL BENCH { "MapProperties": { "NightTiles": "Front 34 34 403", "Light": "34 34 5"}, "When": { "Hillbench": "True" }, }
and it wasn't working, the map was loading and all but the lights didn't. And when looking upon another map's code, i noticed that the parts of the map that were supposed to have night tiles were all in one {} so i did the same and it started working again. Its like this now:
"MapProperties": { "NightTiles": "Front 64 45 403 Front 20 22 908 Front 32 25 908 Front 34 34 403", "Light": "64 45 5 20 22 5 32 25 5 34 34 5"},
but like this that problem happens that when a player disable a certain part of the map, the lights that would be in there aren't disabled too
is it possible to change the value of the 96 in line 153 without doing the transpiling thing?
you can postfix the constructor and set bobberBarHeight to another value, assuming it's not being used later inside it
looks like it is, but only to set bobberBarPos, so you probably need to set both in the postfix
Here’s a thought: I bet they fall back to normal dialogue. You could conditionally null out green rain dialogue when you want yours to show, maybe? And thus override it
Well, I am trying to make my NPC have comments on the green rain each year...I'm just wanting to know how to randomize what would be said.
i18n randomization I think
theres https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC#Translation_(i18n) (other dialogue modders pls correct or link a better one)
I think this might be the one I follow XD Just because it's got Jean and Jorts in it XD
Ohhh i get it now, sometimes i have a hard time understanding english. I've tried to do that, in a part of the code it's like this:
//HILL BENCH { "Target": "Maps/Town", "Action": "EditMap", "FromFile": "assets/TownHouses.tmx", "FromArea": { "X": 51, "Y":36, "Width": 16, "Height": 17 }, "ToArea": { "X": 51, "Y":36, "Width": 16, "Height": 17 }, "NightTiles": "Front 64 45 403", "Light": "64 45 5", "When": { "Hillbench": "True" }, },
And there is more parts of the code written like that, is it right? because now none of the lights are getting on at night, except all of the town's normal lights (that weren't getting on before that)
I think they are getting on now (the base lights from town) bc mines aren't being loaded into the game x-x
i have never edited the vanilla Town map but you might need to add existing Light properties on the town map to your EditMap action
How's that?
i've only ever made entirely new location maps (see: the code for wildflower acres) haha
wait hold on
you need a MapProperty bracket before putting the day/night tiles in, your formatting is wrong
It was like that before, but then that error appearead, where only one of the map properties would work and all of the other lights would be turned off
i am not on my laptop right now so i cant give you the exact format, but you can check the way i add map properties onto a map on wildflower acres
and when i put every tile to have light in the same {} when a part of the map is disabled, the light tiles within that part aren't
and yeah since you are editing a vanilla map you may need to copy and paste values of the day/night tiles and lights on the vanilla town map into your edit map action
mind you, this might end up causing incompatibilities with maps that edit the same target (Maps/Town)
my walk sprites don't look cursed anymore! hurray? 
your new format would obviously make the town lights function as normal bc your map property edits aren't loading due to incorrect formatting.
The thing is, a map can only have one huge Light map property. So if you normally patch the Light field multiple times, only one of them would work because they would override each other.
If you want to make them modular and not one big list, you'd need to do it via Text Operations.
I see, thanks for the answer
How do i do that? is it in the wiki?
Do you guys know any mod that uses Content Patcher to add custom items?
I want to look at their code to use as an example.
Better if these custom items are materials/resources
I learned Text Operations from here https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/text-operations.md
Mm, one of my mods should have an example. Let me check...
Ohh thank you
"LogName": "Rare FlowerLight",
"Action": "EditMap",
"Target": "Maps/Forest",
"TextOperations": [
{
"Operation": "Append",
"Target": ["MapProperties", "Light"],
"Value": "113 92 4",
"Delimiter": " "
}
]
},```
So this basically says "add 113 92 4 to the end of the Light field in MapProperties"
I'll try to do that, thanks a lot
do you want to add a new mining node to the mines?
adding any new item is straightforward; there are plenty of examples
a new node is slightly more involved, and requires another framework
Does OnDayStarted happen after AssetRequested for Data/Machines?
I have some logic which triggers on AssetRequested but needs some information which is only asked on OnDayStarted. Is there a way to make this flow work?
AssetRequested happens when the data is requested, which can be any time, or multiple times if it's invalidated
You want to read your info in OnDayStarted, save it somewhere, invalidate Data/Machines, then in AssetRequested if that data is set modify it accordingly
how to invalidate already loaded Data/Machines.json?
ooh thanks
so I'm assuming it's a hardcoded thing that you can put stairs in a certain building in town? Like there isn't a tileData property I could add that would perform a warp if stairs are placed there?
Yes yes hardcoded
Now that's an idea for MEEP. Got some bug fixes coming up, and that would be a pretty simple addition...
Will Extra Machine Configs work with it?
Hello 👋
Is it possible to use something like "contain" for the condition of LOCATION_NAME? My mod Uppergrade should only work in cellars, but currently, I have to explicitly name every cellar (main house + every cabin) individually. I'm looking for something like
"Condition": "LOCATION_NAME Target Cellar*, ITEM_QUALITY Input 0 2\"
instead of
"Condition": "ANY \"LOCATION_NAME Target Cellar, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar2, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar3, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar4, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar5, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar6, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar7, ITEM_QUALITY Input 0 2\" \"LOCATION_NAME Target Cellar8, ITEM_QUALITY Input 0 2\""
- My mod: https://github.com/Molenfeuer/Uppergrade/blob/main/data/cask.json
- Modding:Game state queries page: https://stardewvalleywiki.com/Modding:Game_state_queries#World
LOCATION_NAME can take multiple values, so you can condense it down to
"Condition": "LOCATION_NAME Target Cellar Cellar2 Cellar3 Cellar4 Cellar5 Cellar6 Cellar7 Cellar8, ITEM_QUALITY Input 0 2"
Okay, nice! This is an advantage. However, I also need the 'like' condition for compatibility reasons. A user asked me if 'Uppergrade' could be made compatible with 'Build More Cellars.' But I think it's not very practical to name every single cellar location from that mod individually.
- The users request: https://www.nexusmods.com/stardewvalley/mods/23823?tab=bugs
- Build More Cellars: https://www.nexusmods.com/stardewvalley/mods/21971
Hm, I don't think GSQs by themselves can do a contain like that, but you could probably do it with a CP token
Try either of these maybe:
"Condition": "LOCATION_NAME Target Cellar Cellar{{Range:0,99}}, ITEM_QUALITY Input 0 2"
"Condition": "{{LocationName |contains= Cellar, Cellar{{Range:0,99}}}}, ITEM_QUALITY Input 0 2"
Thanks! I try it later
(pretty sure Cellar{{Range:0, 99}} will result in Cellar0, 1, 2, 3, 4, 5, 6, etc instead of Cellar0, Cellar1, Cellar2 etc)
Oh!
Ah dammit 😆
In that case, maybe a dynamic token? Hmm...
SO both versions don't work?
Please don't ping me on reply 😅
I did say it was a maybe and that you'd need to try them out to see if they'd work or not
Ohh, sry. I thought "ping" means @|Airyn or so :X I'm (obviously) not a native speaker.
that's just another way to ping
Out of the box in content patcher, I don't think there's a good way to compute a derived set in CP tokens
A Mod token can probably do it easily nevermind, there isn't a good pattern for a token to take another tokens set as an argument
if Query had the option to run on every value of the set rather than just a collapsed string representation of the set, then it could have done it
so i followed this tutorial https://www.youtube.com/watch?v=6rrgzpn_tpg and when i try to warp to Custom_Village it says it cant find location Custom_Village even though everything is correct. is this because the tutorial is old and does not apply anymore? if so how do i load in my custom map that i made in tiled then?
Hey! In this series, I'll guide you through everything you need to know to make a Stardew Valley mod! In this episode, we make a content.json file and a manifest.json file!
Things I mentioned in the video:
#1 - SMAPI - http...
alright i guess thats where the problem lies. thanks!
The majority of video tutorials will be out of date, you're better off sticking to the wikis
technically a map named this way would work so you may have another issue
as an advice however, you need a more solid internal name for your maps
usually people have an unique mod id like nitesky_wonderfulplace and then use that, so your name would be named nitesky_wonderfulplace_village (using {{modid}} when relevant as a shortcut)
@next plaza Hi, i have question about your mod Space Core
in this code does is good if i disable this function for android?
private void GatherLocals();
i might be stupid but i followed ther wiki on creating a new map and i still cant figure out how to get my own map into the game. still says the location cant be found
Please don't ping me on reply.
oh sorry i didnt see your name
Sorry if this question is asked alot or if im supposed to know where something is. I want to get into modding for this game and idk what to do or where to look any help would be appreciated? i just dont want to go down the wrong rabbit hole so i came here first. thank you
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
!gs Assuming you want to create mods. If you want to use them, #modded-stardew is the channel you want
If you would like a guide to setting up mods for Stardew Valley, check out the getting started guide! https://stardewvalleywiki.com/Modding:Player_Guide
I assume this will break a lot of SpaceCore transpilers, as they depend on the local names
can someone who has the time tell my step by step how to add a custom map/area into the game. would be greatly appreaciated, also if you could explain it like im an idiot that would be great. thanks in advance
Do you already have a custom map? 'cause that would drastically change the length of the explanation
not that many after all, it seems. a single SpaceCore transpiler. but it's exposed as an API, so it can break other mods too https://github.com/search?q=repo%3Aspacechase0%2FStardewValleyMods GetLocalIndexForMethod&type=code
"but it's exposed as an API, so it can break other mods too"
Oh sorry, ok
guys how do i make a custom tilesheet works as a chair? i've tried this { "Action": "EditData", "Target": "Assets/ChairTiles", "Entries": { "assets/spring_xcube/64 160": "3/1/up/<offset_0,5> <offset_1> <0>/draw tile 0/draw tile 80" }, }, but it isn't working. Not really sure how should i do it, since it isn't well explained in the wiki
Hm why do u have the < >
yes i have my my own map in tiled using a copy of spring something png
wiki probably has them around required fields and it's not obvious that you don't use them in your json unless it's already obvious to you
it was in the wiki to use it to set a custom sit location
The easiest thing you can do is lookup another custom farm map and see what they did
Basically you use Content Patcher to load a new farm map, but I can't really explain much right now
If that's from example then <value> means replacing the entire thing
Guys is it only me or smapi no longer calls the method Events.Content.AssetRequested more than once per Game load
Did you invalidate
For example in the case of "Data/Shops" it used to call the event every time the shop was opened
I imagine it's some optimization thing cus there's no reason to do that 
before 1.6.9 it was the case
So for your needs, manually invalidate the asset
And then u will get asset requested the next time it's accessed
What is the purpose of invalidating every time you open shop?
to check if the player has a pet => sell pet treats. Now it doesn't unless the save is loaded again
I also tried using Content patcher with When: + tokens. but they always result true
Make a GSQ instead
And use Condition
Well, make if there's not one already 
So if you don't care about specific pet, PLAYER_HAS_PET <player> works
definitely put Condition on your shop items instead of invalidating Data/Shops on the regular
If u need to see if player has cat then u need to make your own GSQ
you can also probably just do an item query for your stuff, which will have a similar effect
is there a condition for mail received?
Omg thank you so much, I didn't know about Game state queries. Now everything works as it should!
{ "Action": "EditData", "Target": "Data/ChairTiles", "Entries": { "assets/spring_xcube/64/160": "3/1/up/offset_0,5/offset_1/0/0/80/false"}, },
I've writed it like this in the code but i'm still unable to make my custom tilesheet work as a bench

