#making-mods-general
1 messages ยท Page 122 of 1
as far as I can tell yes? Unless I made my schedule string wrong... which is entirely possible AND probable
yeah, I was considering having Wren have a schedule to inspect the sewers but I did not want to open that can of worms of making the sewers pathable
Your schedule string probably isn't wrong but there probably isn't an NPC warp there (like Secret Woods or the sewers). So you still need to add one.
Again I really appreciate all of the help
I'm guessing SandyHouse is fine, since Sandy has schedule points there
Making things is both incredibly fun and also hard to do because there's just so much to think about :]
(I assume the reason those locations don't have NPC warps available currently is because 1. they're not needed in vanilla and 2. CA probably didn't want characters wandering in there when he was undoubtedly having to troubleshoot his pathing
)
I would have to guess so, since Emily also goes in there to talk to Sandy I think ?
I appreciate it! Especially since that sounds like a neat mod
Looks like she does yeah
boy im not looking forward to making events. Out of everything ive learned to do so far that's the thing i dislike the most
why everyone hate events, it's my favorite part of npcs
if it helps, there's a lot more you might potentially hate more when you learn them later on /lh
war flashbacks of marriageDuties
any of you guys know how to verify if SMAPI has achievements enabled? i put the launch args into steam
i dont know what you mean since smapi doesnt disable achievements but i dont think this is the right channel either way?
I refuse to make Qi marriable ... refuse (mostly because I don't wanna deal with all that)
this is a #modded-stardew question, but SMAPI will warn you if they're not enabled
Writing the events is fine, it's the coding of the events that's the agonizing part
the description says that channel isnt for support
when do achievements get disabled? ive never seen that happen
๐
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
well, the description of this one says its for help creating custom content
neither is this one
annnnny ways
It does get easier once you get used to it. Unless your name is Arknir, you're going to be using the same handful of commands in most events.
that's the best part 
event tester new build is up

retired
are you sure about that
if your name is ichor, you're writing new event commands right now
atra will work on any mod that isn't theirs (which tbh I can see the logic in, it's a lot less work to send a PR vs. maintaining a page and dealing with bug reports, etc.)
but atra maintains this page
with dialogue checker (sinz.check_dialogue and sinz.check_special_orders
this is a mod that only modders will use, it has a small green light
so you are keeping the lights on for your mods
I mean, I'm not?
Eventually we will annoy atra to the point of stopping support for even us
Only the green ones
(/j. small green light)
expound? ๐
check_dialogue with no arguments has you warp around to every npc talking to them once
check_dialogue <NPC> will run through that npc's entire dialogue file, loading and parsing each line of dialogue
check_special_orders just loads the special orders to make sure they're valid and the tags are sensible, etc
ooooooooh
followup questions: does this test both dialogue.json and marriagedialogue.json, and does it just zip through or can you pause or click through?
....just the dialogue.json sorry!
And it zips through
I could make it a pause and click
if you're so inclined! It looks super useful though!
Guess who's back into working on her NPC mod after months of not wanting to do it? THis girrrrrl
npcs hard
Guess who forgot how to make her mod work for tanslations? THIS GIRL!
Maybe I won't add translations...
Yes, I'm having to go through the tutorial written by tiakall...and get confused all over again...
Speaking of, @brittle ledge, this needs to be added to make the files for me to edit?
"LogName": "Blank JSON load", //The logline is not required, but it's useful down the road for labeling your patches so you can tell your problem is, say "NPC Dialogue Patch" and not "NPC Patch #14"
"Action": "Load",
"Target": "Characters/Dialogue/NPCName, Characters/schedules/NPCName, Strings/schedules/NPCName",
"FromFile": "assets/data/blank.json", //this should be wherever you put it in your assets folder - put it in a subfolder if you want.
},```
Correct
Think of it like putting a folder in the game's filing cabinet, so you have somewhere to put your files (edits).
so like, I need to run the mod with this first before I can make/edit the dialouge?
XD
(if that analogy doesnt help, we have 20 others we could try too)
Brain not braining
You need to have that in your NPC file, yes.
you need that stuff in your content.json permanently
no, you're confusing files on disk with game assets (which look like file paths). it's confusing
tia's been helping me for the past like hour ๐ญ
it doesnt create literal files in your folder
it creates fake files that content patcher can edit
no fake files = no editdata
(for these things specifically)
XD
(also, If you use nomori's converter, it makes i18ning after the fact very easy!)
Rn I'm just trying to finish the dispos
and the reason to use EditData is it allows you to use content patcher's tokens. they won't be parsed in a Load action
but I have to relearn....
link? ๐ฅบ
Saving!
I've made the small success of getting the husk of my NPC in the game so i'm vibin there
just gotta y'know...write her now
Further along than me...Mine isn't even showing in game yet... XD
im redoing portraits (again)
Any of you Linux users have debugging from VSCode working and remember how you got there? I get a pretty unhelpful "No launchable target" message and don't know if that's a ModBuildConfig thing or a VSCode thing or just a non-Windows thing.
My mod productivity is at about 8% right now, that could probably double it.
what language are you using? what debugger do you have installed? is it available in your path? is it configured within vscode?
I could probably mess with portraits forever, but the coding stuff 
i wanna learn to mod stardew but i cant do art. like at all
programming is easy tho
I've never done pixel art before Stardew, but I seem to be addicted to it now
thats great!
I have the C# Dev Kit installed. The project builds fine, Solution Explorer appears, etc. It's just the debug command that's not doing much.
art looks fun, i just have no talent for it
<PropertyGroup>
<GamePath>the game path</GamePath>
<StartAction>Program</StartAction>
<StartProgram>$(GamePath)/StardewModdingAPI</StartProgram>
<StartWorkingDirectory>$(GamePath)</StartWorkingDirectory>
</PropertyGroup>
need this in csproj (or maybe targets?)
I thought that ModBuildConfig put that stuff into targets automatically. I'll try anyway though.
this setup is in modbuildconfig but it's disabled for linux
i will try harder at making case to enable it for everyone 
It's weird that ModBuildConfig has no trouble finding the directory and copying/deploying the mod... but just doesn't want to start the debugger for SMAPI.
random Q...Can you make a list of wanted quest items for the item delivery quests for custom NPCs?
Hey so I have slight confusion. I want to make my NPC good friends with Shane and Haley...what would the i18n relationship translation be? or would I just put "Shane" : "friend"
i'd have to check, but if the game supports it at all (i don't think it does) i think it's currently C# territory
then I might just not do delivery quests...maybe... XD
i think for vanilla friends you just put a blank string for them in FriendsAndFamily
if you include a value, it'll use that value in place of the NPC's name. if you leave the value blank ("") instead of null, it'll use their name
heh?!
e.g. my grandpa hates, Shane loves, my "Daddy" loves
don't make me post the image again. i swear i'll do it
I need to see it PLEASE
why can't we make you post the image again as a treat
Pretty broken, actually. But maybe the Mac situation is a lot worse than Linux.
you devils
I never noticed anything weird for debugging but admittedly all I ever do is plonk down a breakpoint and step through
What happens on mac 
also for a selection of winter star gifts, I have a few different items listed. I just want to know if this is good or not?https://smapi.io/json/none/c1f79a45d28d48faa4a754d5b8a5d765
I love this and now am gonna share it with everyone XD
is this the proper format for this? I know the warp itself is right I just don't know if that's how you put it into the tile properties
oh this .. is awful (in a positive way)
are there any good resources for writing mods for smapi?
The wiki is pretty helpful -
Microsoft seems to claim it's possible but the instructions are clear as mud, and the errors even more opaque.
https://github.com/dotnet/vscode-csharp/wiki/Debugging-x64-processes-on-an-arm64-computer
I'm starting to wonder if it'd be less effort just to install the entire friggin' thing - Stardew, SMAPI, Visual Studio, and everything else - on Parallels.
So for setting the home does the ID relate to the map name?
location name specifically, not necessarily the map name (given that map usually refers to the .tmx file asset)
i think u put this in launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "dotnet",
"name": "SMAPI",
"request": "launch",
"projectPath": "${workspaceFolder}/your.csproj",
}
]
}
in short, match your entry key in Data/Locations
at one point i did this to get the smite unit thing to work
Yeah, I had to do a custom launch.json (not at all like the one you just posted, or the one on that page I linked, and the generation inside VSCode fails mysteriously and only produces a tasks.json).
By randomly smashing on different settings, I actually got the game to start, though it crashed almost immediately.
so for mine it would be "{{ModID}}_GlitchHouse"?
Like the name of the map is {{ModID}}_GlitchHouse
map or location? again, important distinction hahah
"Target": "Data/Locations",
"Entries": {
"{{ModID}}_GlitchArea": {
"DisplayName": "Glitch's Area",
"DefaultArrivalTile": {
"X": 51,
"Y": 23
},
"CreateOnLoad": {
"MapPath": "Maps\\{{ModID}}_GlitchArea"
}
},
"{{ModID}}_GlitchHouse": {
"DisplayName": "Main Floor Glitch's house",
"DefaultArrivalTile": {
"X": 7,
"Y": 8
},
"CreateOnLoad": {
"MapPath": "Maps\\{{ModID}}_GlitchHouse"
}```
yep, use the key for your location entry ("{{ModID}}_GlitchArea")
Awesome thanks
well imma use "{{ModID}}_GlitchHouse" since I want him to spawn in his home XD
(I actually got it to work. Mostly. I think it's doing some kind of x64 emulation so it's super slow, but it basically runs.)
another question, NPC warping, would I need to manually add it in for areas being patched over other areas? Like I had to add the warps for my railroad patch like so:
"-1 53 n3rdgirl.GlitchFarmer_GlitchArea 51 24",
"-1 52 n3rdgirl.GlitchFarmer_GlitchArea 51 23"
]```
Would I need to add some for NPCs? Or can I just put it in the map properties itself?
would it be MapProperties?
if you are in full control of the map, yes you can put it directly into the map properties when you make it in Tiled
otherwise you want to use AddWarps to make sure you don't delete warps from other mods
Ok, but like what if I need to it be an NPC warp?
NPCs can use regular warps. if you want it to be npc-only, you need to use NPCWarp
Also I had a random property added to my map... @TileBrush@Tile Brush 1@
What is this?!
terrain brushes I think, not sure
stuff with @ is metadata though, which can be ignored
it's probably fine to remove it but it doesn't hurt to leave it either
Also, for more info on the warp thingy, this is the patch I am making to the railroad (Have one for SVE) and I use AddWarps in the json for the patch. I don't need to worry about NPC warps here?
I think they won't path there if it's blocked? not sure though
Well I'm gonna hope and pray that things won't break...I'm just doing the dispos before trying to get the NPC in the game lol
and, tiledata I have this for a player warp...I need to remember is this the correct formatting for a click warp?
Like I want them to warp to another map but like almost a door warp?
Format looks good for door-like warp
ok
There is the LockedDoorWarp too if you want an actual door warp with time limits and optional friendship requirements
idk how it would work for custom NPC relationships?
Like I'm just curious about that...and I don't want a time limit if the player is in the house?
idk how to do that
it works the same for any NPC, custom or otherwise
Time limit doesn't affect player if they're already in the house, would just keep them from going back in if they leave
the area is IN the house. so I don't want it to be time locked...
LockedDoorWarp <destinationX> <destinationY> <destinationName> <openTime> <closeTime> <NPCname> <friendshipRequirement>
So if you want it friendship locked but not time locked you could do
LockedDoorWarp 8 5 n3rdgirl.GlitchFarmer_GlitchAttic 600 2600 <npcName> 500
Which would make it available from 6 am to 2 am and starting at 2 hearts
Otherwise, just leaving it a regular Warp is fine
And the NPC name, that's the internal name not display right?
Correct
Fun fact, houses do have time limits on them, I had to check because I cheat lmao
I knew trhat becuase i make map mods mainly XD
thank you!
ok another question. TextureName the wiki says The last segment of the NPC's portrait and sprite asset names. For example, set to Abigail to use Portraits/Abigail and Characters/Abigail respectively. Defaults to the internal NPC name. So my sprites are named Glitch_Sprite and portraits are named Glitch_portrait_hands and Glitch_portrait_no_hands I want sometimes for the two varients in portraits to be used...how do?
there are several ways to go about it. you can find the way that works best for you or meets your specific requirements
- use CP When conditions to change TextureName as needed
- use the same conditions to load the appropriate image into the default target asset as needed and don't bother with TextureName
- load the different sprites to different targets and use Appearance to switch between them as needed
and probably more i can't think of offhand
My first thought was something along the lines of the first one you suggested, using Dynamic Tokens to keep from making a bunch of edits
my issue is I want the portraits to be chosen at random... can I have the game give me a one or zero to be the deciding factor? And, would I need to rename the file names? Or would I use internal names?
If you Load the portraits to a Target that ends with Glitch (assuming your NPC is named Glitch internally), you could do an EditImage to conditionally change the portrait loaded to it, I think?
If you want it chosen at random, I wonder if you could combine that with the i18n random trick or not
I wouldn't do an i18n for that, be a problem if someone translated that lol
You can random other stuff, doesn't have to be i18n
I think i might just merge the portraits instead of doing randoms
For this specific need, I think a simple EditImage with Random in the FromFile would be the simplest.
hiii im having trouble with a time based boolean for furniture framework, specifically "When a Furniture is Time Based, every sprite in its sprite-sheet needs to be duplicated: for every "Source Rect" you defined (for the base sprite or for Layers), the Height of the Rectangle will be added to its horizontal position when it's dark outside, this way, your Furniture can change how it looks." (in the image above).
- Would this sprite not be correct? Cause when i add it to my game it doesnt properly update and leads to a blank sprite
so I'll just make an amalgamation of the portraits and make only certain ones have the hand...or I will just not use one...idk yet.
OOO MAYBE I COULD MAKE IT CONFIGURABLE?!
Oh yeah, I almost forgot we did this with my desynced seasonal TARDIS code
"Action": "EditImage",
"PatchMode": "Replace",
"Target": "Buildings/Big Shed",
"FromFile": "assets/{{Random: spring, summer, fall, winter |key=tardis-season}}/Tardis Big Shed.png",
"When": { "TARDIS Big Shed": true }
},```
There's an example with Random and EditImage for you.
I say we because this chat did most of the work on figuring out the random code. >_>
Could it be made configurable?
Also, another question...does TextureName use file names or internal names?
or display names
how goes your npc progress n3rd
Like if I loaded my sprites into Characters/{{ModID}}_Glitch would TextureName use {{ModID}}_Glitch?
Slow...very slow...
As the wiki said, it uses the last segment of the NPC's portrait and sprite asset names.
I don't know what that means >_<
So yeah, {{ModID}}_Glitch.
ok thank you
did ye hear dolphin, i managed to get the barebones of an npc into the game
and i mean bare bones. she don't even talk yet
My When condition is actually using a config option to enable or disable the TARDIS Big Shed, so, that would be how you would set your config options.
Oh Neith?
Yey, what's the plan next?
well I wanted to give her her own area so figuring out tiled and how to add a map will be next
Wiz out here already added the character to the game, meanwhile I'm just still doing the backend things...
N3rdGirl, for example, you could do a config option that had "hands, no hands, random" as choices, and just have three different EditImage blocks based on which one you're doing.
she is little more than a piece of furniture atm n3rd
if ya need help with tiled let me know XD I specialize in map mods
still she's in the game...Mine is not. And it took me like 2 month to get the sprites for him XD >_<
(Also if you make the hands overlay, you can just apply that one hand set to all your portrait sets. Assuming you have more than one set.)
There, fixed my name too XD I have to have it as N3rdGirl cuz it's my nexus profile, but people can call me Rose XD
it's two separate files.
Yar, I just mean that of you have other clothes or something, you can make a hand overlay if you want instead of having two versions of each costume.
yea see if i drew that i'd still be working on shading
(Also I love your art style!)
it would've taken me significantly longer than the week-ish it took for neith
Also just so I can make sure I understand, I can just not add TextureName and let it default to {{ModID}}_Glitch?
This part would take me a week at least.
Not mine
NOT MY ART
I commissioned this
I cannot draw to save my life
oh i love when people say this hold up
If you NPC internal name is {{ModID}}_Glitch, yes.
I advise you look for "balding sebby" in the #making-mods-art
my gorgeous early art
Still better than mine
Also awesome! thank you
MY DISPOS IS DONE!

can an NPC's gift tastes override the universal ones?
yeah, remember Haley hates prismatic shards
https://stardewvalleywiki.com/Modding:Gift_taste_data#How_a_gift_taste_is_determined
tl;dr is most of the time
(unless its stardrop tea)
๐ my npc's walking sprites are absolute jank
Is this based on seeing it in game or just in the sheet?
your sprite and furniture definition looks fine, except the Source Rect Y coordinate, according to your sprite, the top left corner is in (0, 0), not in (0, 16). Also, could you provide a screenshot of what it looks like in game?
just looking at the sheet, as i havent had a chance to see it in-game yet
You should wait to see how it looks in game, if you zoom in enough on any sprite sheet you'll see a lot of jank
It's an unfortunate side-effect of working in any aspect of game dev
ah true
if you use true and false as the allowed values it just does it
you can use FF in the current version (what you'll find on Nexus), this is just a comment for me (sometimes I forget where I left off) because I'm in the middle of the update. When I finish the update, I'll share a python script to automatically update existing packs, and I'll be here to help with any issues that might appear.
Long story short, you can use it without any issue (there's only a minor feature broken in 1.6.9: disabling fish tank light source)
like this V
pretty sure it's just a description tag, one sec
{
"LinusEventTweak":
{
"AllowValues": "true, false",
"Default": "true",
"AllowBlank": false,
"Description": "{{i18n:LinusEventTweak.Description}}",
},```
example
I went with Computer Graphics conventions, it makes sense for the context
that is also technically the wrong way to do config i18n (though its what i do too anyway)
ok
Oh yeah, config i18n has like special keys baked in for CP
yeah it's like a specific k... yeah that
You can find it on the page Button linked
I did that config a looong time before it was i18n'd 
I mean once I get back end stuff done I can try to put the NPC in the game XD Or should I try that first?
i dont actually know what the functional difference is between regular i18n tokens and the special cp config tokens for i18n bc ive never noticed any difference
if it aint broke and all that
whichever way you find easiest
I mean the tutorial I am following doesn't fully show how to add to the game...or is loading the dispos how you do it? >_<
ohhh, I thought you just meant testing-wise
what you are doing in your content.json is the process of adding them to the game
so to spawn in an NPC, you need at bare minimum sprites, portrait, and disposition
ok. I may need to take a break for the night XD It's almost 11
They should spawn in with just that (although they won't talk or move anywhere because you haven't added a schedule or dialogue yet)
Honestly I think dialogue, gift taste, and schedule is gonna be easy
Events is where I'm scared
XD
gift taste is the easiest thing after name and birthday lol
it's exponentially worse from there
Well I'm hitting the hay for now, I need to be up early early tomorrow
there's a ton of event guides to get you started, and a handful of basic commands (move, speak, warp, emote, etc) will get you through most events
yep, for the most part you can draft a skeleton of an event with just move and speak. from there it's all flair
I think having fancy commands is less important than having something interesting to say.
lordy wildflour goods has a lot of dependencies. maybe i can do without testing it lol
100% using the NPC Builder for my scheduel and gift tastes...seeing as I did the dispo and winterstar gifts already
a lot of them are optional
unless you're like me and dont want your npc to have a birthday and dont know what to do about it yet
I don't think it's a required field, is it? [goes to look]
tbh, ive never checked. i just kinda assumed it was and never bothered to look
barfay
but part of that "dont know what to do" is also deciding "do i really want to put none or do i want to put one so people dont complain abt them not having one or wondering why"
vanilla npcs don't either, such as Marlon. but he's also marked as CanSocialize: false
ah nope, it's one of the few required fields
but looks like it has a default none/0 value?
huh, I wonder how Apples/that other fruit thing from RSV did it then
you can hide their birthday
it would still give the friendship though, right?
fruit thing...
junimos are fruit things ig /lh
I assume so, button
if I'm not 5 minutes away from the sweet oblivion of sleep I'd look up SVE/RSV's files
ah, Kiwi, that's what its name was
so is my npc tbf
theyre already gonna need a C# component for things anyway so i guess any trouble i run across i can just harmony my way out of
I was guessing in my head before. "Peaches? No that's the other fruit creature in SVE. Oranges? Cherries? Are they named after a vanilla fruit...?"
i now have a stronge urge to make a pomegranate follow claire's npc around
so close! vanilla is a shape โค๏ธ
i'm not sure if birthday/season are actually required for social charas, i've just marked one of mine as null/0 and it works fine with lookup anything, no errors on gifting
obviously your charas will generally have one if they're sociable, but ignoring it seems fine. even the calendar doesn't error out
oh yeah CharacterData does just say its optional. guess thats intentional then
tho i forgor already the wiki already says that for non socialables
so thats probably why instead actually
i dunno what the intent is then
but i will be sure to abuse it either way
yeah it seems completely optional. it'd make more sense reversed, 'useless for non-social npcs'
i'm excited to see how you abuse not having a birthday lol
it'd be funny to have a character with a birthday set but hidden on the calendar. give them a unique birthday dialogue that gives you some secret bullshit item
oh i just meant abuse being able to make it null. i dont want any deal to be made about a birthday at all for them
if you set the accept gift birthday dialogue to match your regular gift taste dialogues, the friendship bonus alone would be pretty hard to notice 
bonus: give them a spring 1 birthday, spawn them in on spring 2 
unrelated, honestly surprised anyone can even run out of space in the LOC cookbook menu for their recipe and ingredients. my biggest recipe with flavour text and a buff description doesn't even run out of space when i duplicate lines in the flavour text 
i want absolutely no concept of a birthday whatsoever. i do not wish to have hidden birthday conceptps
I mean, wouldn't hurt to try it and see
if it doesnt work the way i want it i will harmony patch whatever i need to in order to get there
if the game accepts null 0 as a birthday, problem solved
I just went and looked at Kiwi's dispo out of curiosity and she has no birthday at all, so presumably the default of null 0 works
one more lil tidbit to add to my pile of notes
๐ i forgot a sleeping sprite for my npc loll
So realistic experience of climbing into bed and staring into the distance
Until 2 am
honk shoo mimimi
Several of mine have no birthday and there's no errors
yeah, as far as I can tell, null birthday season is safe whether an NPC is social or not
(in base game code, at least, since mods could always make bad assumptions)
you can make it so they don't accept this though... its very fun
Wait IS there a difference? If I wanted to make i18n tokens for my CP config options would it have to be special or is it just the same (after scrolling through this chat I just realized that I should do that. I don't know why it never occurred to me to make the configs translateable too...)
Config options have their own specific structure they need to use in the default.json and you don't swap the name, values, or description with a regular i18n key like you would with dialogue and such
If you check the CP docs, there's an example of the structure, but Nomori's i18n-ifier app also has a section to do config i18ns
Thank you :]
Hi! I'm working on translating the game from english to swedish. i've never used SMAPI or content patcher, all im doing is converting the files from XNB to JSON and then editing those files in notepad. Am I doing it right or am I missing something? Just wondering so I'm not wasting a few months doing this hehe :p
You're close - you'll want to use CP to patch the files so that there's less risk of breaking things. Check out the CP documentation, particularly the EditData section, and have a look at the code for some existing translation mods for an idea of how it should be laid out
thanks for the answer ๐ I have a few questions about CP, can I message you in pvirate?
I'd prefer not to, sorry. You can ask here, that way if I don't have an answer or if I'm not around, others can help as well
Alright no worries. So basically, ive downloaded CP and all it has is contentpatcher.dll and a manifest file. How do I use it?
CP itself just gets dropped into your Mods folder same as any other mod, you don't need to do anything with it itself when creating a CP content pack
Oh shoot, I guess ill have to extract it to the correct folder then (I extracted it to downloads)
Nah, you can just move it over there after extracting. Have you not used mods before?
Not for stardew valley, no. Thats why im not very familiar with SMAPI either
!gs I'd recommend playing a little while with some basic mods, that way you'll get to know how they work. Download a few simple dialogue mods in particular, since their coding will be similar to what you'll need for a translation mod
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
Thanks!
!unpack you probably want this to extract all xnb data to json in one go
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!
Thanks that's really useful (:
sometimes i wonder about vs. i really do
nonetheless, it shows this as null
Hi working on mapping again is there any mod that unharcode the crib position in map or do i have to make the map around the crib ?
As far as I'm aware there isn't. But since you can now move both spouse room and entrance quite easily you still have a fair amount of freedom
Oooh you know what mod can be cool? Advanced winemaking
Mix-matching fruits, adjusting yeast, choosing fermenting methods... And depending on how good it is, it could sell for more or even give boosts
That would be a good way to push players to not just throw starfruits into a keg
Go for it!
What are you hoping to achieve here?
The convention for sdv is to use mod unique ID as the harmony id
In your case I would probably want to use HarmonyPriority(int)
To make it generally go first or generally go last
But you should probably copy the modData when you replace the items
If you want this form instead it's just bzp allergies's mod id I believe
No specification on postfix since priority on considered for 1 method anyways
Are you sure
This is an instance method so you also have Object __instance
For the actual object the machine rule is associated with
thank you
happy thanksgiving, americans
Noob question here: how do people update the mods they've created? Do you have to copy paste everything in your files to the new updated files or is there a smoother way?
Just curious about the process in general
I'm so used to version control, such a question seems outlandish to me...
But once you have located the new code, you still have to integrate your stuff into it right?
I was hoping for a program that could mesh both versions together hehe seamlessly...in my dreams prob
I have no idea what you mean, did you re-write your mod from nothing?
Are you talking about updating C# mods for new game versions ?
Well im working on a language translation mod, so the only files im changing is really the dialogue. I just wanted to know if there's a way to locate any new things that need translating and how people go about it really
oh, localize
A language translation mod for the game or for someone elses mod?
for the game ๐
Typically for the game we have version update pages on the wiki that state everything new/changed
okay!! thanks.. do you also know where I can find the example packs on the mod authors page? it says the files are lost and im having trouble adding a light source to my furniture

For translation files specifically, there's also a github available to mod authors that has version control/changes on every game file. You can also unpack and diff the 1.6.8 and 1.6.14 files against each other
actually, here's the line for the light examples: https://github.com/Leroymilo/FurnitureFramework/blob/main/Example Pack/[FF] Example Pack/content.json#L330
thanks!!!
thank you!!
i just dont really understand what im doing wrong
i think maybe its the directional field for the source image
this is what i have right now (i tried to copy an example lamp post mod) but it isnt working
well, first it's "Light Sources", not "Light Source", and it must be a list of light sources, even if there's only one
Is space delim list of qualified item id valid for item query
Like "ItemId": "(O)123 (O)124 (O)125"
no dont think so
No
thank you sm it worked! 
Was syntax like this valid in prev versions of location data
Yesterday I tracked down mystery null fish problem to an item query like this in the farm mod's fish data 
probably an undetected bug
Never valid
Use randomitemids if you want that
Is there a way to know what reminders I have open
I vaguely recall some
You had one about learning to dance in under two weeks
hello.
I'm new here and I'm currently working on my own mod. I'm using content patcher. does anyone know the command for editing dialogue?? I tried "EditFile" and it doesn't work.
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
You may find the docs useful
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnโt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Wait
Pingu are you trying to edit in marriage dialogue to the regular dialogue file?
I re-read the patch and was like "waaaaaaaait a minute....."
hahahah my bad.
pretty sure that's not the right format for editdata, and also dialogue and marriage dialogue are two separate files
...thanks for not scrolling, discord!
seems like it still not working. I think @brittle ledge is right.
is this using content patcher??
Yes
tiakall is right. you need to provide the entries changes as a dictionary, as in their example
I'm confused ๐ฆ
also neat to see how one edits lines through i18n
(I converted my NPCs and RWE over using nomori's converter, I
it)
!json
I thought it gonna be as easy as editimage, lol. I guess not.
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.
put your changes json on the parse above and let me take a look to what you are trying to do
ok wait.
here's a smaller example, this is me editing five lines of Elliott's vanilla dialogue { "Action": "EditData", "Target": "Characters/Dialogue/Elliott", "Entries": { // Vanilla tweaks "Thu2": "{{i18n:elliott.Thu2}}", "summer_Tue6": "{{i18n:elliott.summer_Tue6}}", "event_toast1": "{{i18n:elliott.event_toast1}}", "event_toast2": "{{i18n:elliott.event_toast2}}", "event_toast3": "{{i18n:elliott.event_toast3}}", }, },
I would say it is easier, but it is from a coding monkey pov
(just pretend the fancy i18n stuff is just lines of dialogue
)
for stance and to make it easy for possible translators, I would recommend you to go through the fancy i18n method
ah, thanks! let me try this one.
I really have no idea what this is about sorry lol.
should had been clearer. sorry. I meant your MarriageDialogueShu.json
do I put this on the content.json file?
need to see which entries you are trying to change
yeap
oh I just change the characters name! like Sebastian to Naoki for example.
but change fields as you see fit. in your case, changing Elliot by Sam
ok, got it.
I'm also trying to change the NPC name.
that's why I'm changing the characters name on the dialogue.
the data is written in an easy-but-not-so-much lists and dictionaries form. the "Thu2" for example is the key that identifies the dialogue in the base file
so in the Tiakall example, they are changing the original Elliot's "Thu2" line for whatever is in i18n:elliott.Thu2
ah I see...
to use the i18n location system, you just need to write a default.json with the keys and lines you want to import and put this json in a i18n folder
not sure if the i18n folder can be placed in the assets one right now. can't verify
the vanilla tweaks is just a documentation note, right?? so I can just remove it??
in the Tiakall example, his mod should have at least a i18n\default.json with the key elliot.Thu2 with a line in there
just do it without the i18n thing. see if you can make it work
but before you go down the dialogue mods rabbit hole I would recommend you to read the translation page in the modding wiki
anything that add/change text ingame (evem GMCM text) will be better and easier to everyone if they use i18n
Hi, sorry for asking again. Can I use i18n keys from other mods? Do I have to add them in my own i18n?
Button has a mod for that
you can. You shouldn't. It is under the 'crimes' tag
I would add them in your own i18n
Why is that? I'm adding them for compatibility reasons.
define your compatibility reasons
theres no real reason why you "shouldnt" if you can. especially when depending on the amount of i18n you need to use you might not have permission/an open enough license to redistribute their text in your own mod
So basically I'm adding compatibility with other mods like Cornucorpia for my custom machines. Cornucorpia uses i18n in machine rule which I think my own mod can't use.
can you give an example?
Sure, wait.
You might ask 6480 directly as well, since they're around and active
They might have good ideas as I know that many people have interest in Cornucopia compat type stuff
adding possible dependency issues over multiple mods that wouldn't need that
in this case I see your reason and I permit crimes

in this case though if the compatibility is optional i would not recommend my mod for it, as it requires the dependencies to be required if you intend to use them
I can't seem to send the code here. Got message from Clyde that I can't lol.
Hi
I can't see how using other mods i18n would be optional requirement though
(though im not sure you might need to here anyway, pending wwhat exactly you mean by i18n in a machine rule)
(wait, I can see it. I was being dumb for a moment)
thats my point, if they just want to add compat with cornucopia i18n if corunocpia is installed, then my mod is not the choice here
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
just duplicate the text tbh. It cant be that much
I mean, it would be possible to a c# mod to check if a mod is installed and load it's i18n keys to use
CP would be harder to do
I feel like it's confusing for people when they ask a question and get various hypotheticals discussed
well, the suggestion to use my mod for it wasnt a hypothetical
https://smapi.io/json/content-patcher/bf9817aa56c24aac9530b812c9193a41
Sorry, does this work? Object display name and invalid count message are the ones I'm referring to. And I know I can just copy paste from og mod to my own mod. But I'm kinda not willing to copy paste a lot of i18n keys from all the mods I'm planning to add compat for. Sorry it sounds rude, but I hope you understand.
I feel like giving various hypothetical options and answers for people with questions may help them to decide which path may help them more, so...
Ok
Object display name: personally I would just copy it. Or you can do what they were talking about to take the i18n keys, I wasn't following it closely
Invalid count string: 1.6.9 added a multi-purpose invalid count string to vanilla that can be used for any number of missing items. So you can use the vanilla string there
I'll grab the example
From vanilla dehydrator:
"InvalidCountMessage": "[LocalizedText Strings\\Objects:Machine_NeedsInputCount 5]",
This outputs a message with the string like "Requires (X number) pieces."
Number defined at the end of that localized text block
personally i also think if the stuff you need to copy is like... item names/IDs, thats also just fine to copy. though i imagine you'd need to copy the i18n for every language to make sure the resulting item still stacks? or does displayname not matter for stacking? (im not familiar with the ObjectDisplayName stuff so idk the intricacies there)
Displayname doesnt matter! Only internal name
There are not very many situations in our machines where theres a specific displayname set in the resulting item. Like maybe 4 or 5 total (this is aside from the flavored name items, which have displaynames passed into the String files, so can be accessed by any mod)
then yeah i think people using identifiers like that for things is like, normal and expected for compatibility purposes
Like if I was making this mod, I wouldnt even care about copying all the translated strings over because it's so minor
(but if you're still not comfortable doing it then thinking about it a bit more then my mod might work if you lock everything behind HasMod patches, maybe. no guarantees there, i dont think content patcher would complain about your output rules with null i18n if th patch itself wasnt supposed to be loaded yet? dunno tho. but yeah for this purpose i do agree with 6480 that its just fine)
Guess it's the way then. Thanks!
In AT, are there any performance differences between using one combined texture or a bunch of split textures (when adding a LOT of textures), or is one preferable in any way?
!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.
I believe one spritesheet is more performant, though I don't think this makes a visible difference until you start loading thousands of them
thanks, not exactly thousands but like 200 ๐
they always have to be lined up vertically right, there's no way to change that?
I'm not personally familiar with AT, but I thought you can lay them out however you want and you can specify coords freely?
curseforge nexus or github witch one
!gs (also this is not quite the right channel)
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
(they're identical. That said, use github or nexus, dont use curse)
I don't see a way to specify coords in the properties for the texture.json, and the examples that I looked at where aligned vertically so I assumed it has to be like that
you dont need the preiumin nexus right
It just makes for a very weird looking spritesheet
no you dont
ok
what channel should i ask questopns in
questions
#1272025932932055121 for tech support
#modded-stardew for more general mod-related questions
this is for if you want to make mods
if it's questions about making mods it's here, just not questions about how to use SMAPI and such
or how to install SMAPI I mean
tysm!
I appreciate the enthusiasm of someone that never played modded SDV before and wants to jump straight to making mods
ok so my question is how do i make my first mod now that i installed contant patcher and smapi
!startmodding (you were already pointed to that)
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.
!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.
(ah I didnt see your earlier messages, I thought you were just a mod user)
it says the contant files are all jsons but mine are all .xnb
!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!
thanks sorry i didnt know that was a command
i never noticed that the startmodding command does not actually link to the "Get Started" page
which might be the only place it says how to unpack or decompile?
oh no there is a link to unpacking on the CP one, thats fine then i guess
(ium also dumb and didnt realize the getting started page is linked and that it is actually only for C#, i thought it was for both so i didnt look at that one,. oops)
I sense another XNB mod in progress. Making a Content Patcher mod does not require unpacking XNBs.
i mean, it doesnt require it, no, but unpacking your xnbs is going to be much better than fumbling around trying to figure out what to edit blindly
Content Patcher mods are JSON. Yes, the game's content is XNB. The reason you don't see any JSON files for Content Patcher is that you haven't started making the mod yet and haven't installed any other mods.
unpacking the game's files is still helpful for making the assets, if the mod in question has art!
you need to be able to see the vanilla pngs to see the layout and such
or if you're trying to edit Data models that dont have their vanilla contents on the wiki
ye
or if you need tilesheets for a map
All true, but we haven't established any of that, the OP has not gotten to that stage yet.
having the content folder unpacked is essential for content patcher mod making imo
i would say unpacking is practically required for any mod making
so is making C# mods without decompiling
I think you're fundamentally misunderstanding what unpacking does
This is a silly argument. The CP getting started page is here: https://stardewvalleywiki.com/Modding:Content_Patcher#Get_started
If the OP hasn't gotten to that point yet, then their question wasn't about unpacking.
We don't really know what they're doing, true, but they should still get under the hood and see how things work as a new modder
and since they've started poking around the content folder, it's safe to assume they want to see something that's packed in one of the XNBs
they did get to that point. i assume they just misunderstood the page saying that mods are formatted as json
quibble indeed
yeah let's stop
quibble does not sound like what it should sound
surely squable also shares this meaning I must have heard that somewhere
i always thought a squabble was a lil fight
and ain't a quibble that as well?
both words are very similar in vibe and construction
sounds like arguing over valid words in scrabble
quibble is more like nattering to me 
googling nattering
vocab lessons in making-mods
quibble: slight objection about a trivial matter
squabble: an argument over trivial matters
nattering: to talk about trivial matters
wonderful
hope it gives someone an idea for an event mod for Penny and the kids 
spelling bee event at the library?
that would be very cute actually
it would be amusing to have the farmer join in with a custom lil textbox to put in the answers and potentially lose to Jas
if you win she cries and you feel like a monster
Good, the children must learn that the world is unfair and cruel
as long as you ignore our free house, loving and supportive community, easy source of income, a wizard who builds our magical buildings for us...
i was thinking about giving Jas easy words like bottle and the and the player confusing words like idk catastrophe but the words are literally written on screen...
thats. a good point lmao
i was gonna say you could leave the actual word unsaid but have the farmer overhear Jas trying to pronoiunce it to herself
or Vincent
so you'd get the general sound of the word but not the spelling
i dont think SDV can render much of anything outside of the standard alphabet
it cant even render some diacritics
you'd probably need to import a custom font into monogame for anything else
or maybe we hire voice actors and dub the entire game easy
someone is already trying to
I would be prone to a 'words meanings' contest event where the farmer would need to select the correct meaning from 5 options
one of them could be 'quibble' and giving the other ones definitions among the options
that's if we decide that an young adult participating in a words meaning contest with children would be cute and fair at all
basically stardew "are you smarter than a 5th grader" innit
Egg hunt is just are you faster than a 5th grader
"are you faster than a 5th grader or abigail"
5th graders can be fast
smaller strides tho
No endurance
are we talking about me or the fifth grader here
Sounds like me
tiled makin me lose my mind tbh
Why
Hewo I am slightly confused by the spacecore spawns but if I am braining correctly ...
Make the spawn definitions which then go to spawngroups which those are called by a trigger action.
๐ค
How do I target map?
if my knees work properly I'm faster than any damn 5th graders
keeps saying my tilesheet paths are invalid when i've replaced them several times like i have no idea what to do at this rate.
Make sure your tilesheets are in the same folder as your map when editing
Only move them out when testing/releasing
that's what i'm confused about i'm just using vanilla tilesheets what the hell do i do then?
Same thing
Keep them with your map when editing, remove them from your mods folders when you're done
If you move your map into your unpacked Content folder then you only need to move your map back to your mods folder
Or copy is what I do
I got a weird bug for a mod I'm trying to install, let me know if this is the wrong place to ask about it, but I'm also interested in the bug itself because I don't want to have to run into it.
I'm getting the SMAPI error of X mod was skipped because "it's DLL couldn't be loaded", without any stack trace. The weird part is it seems to load the dll on some environments but not other, for example it loads fine on my window but fails to load on my steam deck.
Anyone know what would cause this?
this is indeed the wrong place to ask about this, you want #1272025932932055121
can someone give me an example for this? unfortunately im slow, is the sheet ID just the name of the sheet, and is the tile id just the regular door bottom tile? Also do i have to set this up for the other tiles of the door? This is how i have it set up: 25 16 TownInterior 120 (Also happy thanksgiving to the Americans!)
Honestly for doors, I find one of the vanilla ones I want to use and copy them
Because they're hardcoded as hell
doors cursed
AnimalShop for example 15 12 1 120 is the set for Marnie's door
So that's tile X of 15, tile Y of 12, Tileset 1 in the Tilesets pane, and tile ID 120 for the bottom of the door
Pretty sure there's only 3 swinging doors, the ones everyone uses for their bedrooms, the ones Harvey's clinic uses and the Saloon doors
Robin only knows how to make 3 doors lmao
robin can do almost everything except make more than 3 doors
I'll probably test some more after I finish with the first part ๐ค
need help with Better Junimos Forestry Redux misbehaving on macOS:
#1311169628847997018 message
if someone can reach there
I tested on my set and it loads properly, but SMAPI seems to refuse to read the dll on macOS
I have windows btw
hi @tardy adder , just mentioning that the PDW mod page doesn't say anywhere that both Main and FTM files are required, and currently 4x as many people have downloaded the Main pack as the FTM pack
you might want to merge both files again, or make it very very very very very very very clear and impossible to ignore that both are required
also important: anyone downloading your mod from the button on the main page header won't even see the FTM pack, and will instead just get the Main pack instantly
same probably goes for mod manager updates and downloads, e.g. Stardrop
Have a custom map, trying to get a custom character to spawn there. Their schedule, disposition, and the content all list the same location but she keeps spawning at the bus stop
If you changed the home schedule in an ongoing save, there's a possibility the change wouldn't take until you sleep once.
Has anyone else figured out how to add stops to the busstop yet?
Hello,
I created a custom event using Content Patcher using the conditions wizard_invitation/f Wizard 500/n LazyMugElementalForce_MagnusInvitationId/t 0900 2000/d Mon Tue Wed Thu Fri Sat Sun/p Wizard/F... do I need to trigger the event on SMAPI?
Debug ebi wizard_invitation do it before the black screen fades out when loading the save.
I've been able to bypass my preconditions like this but not sure if it will work for you
if failed to do it before the black screen fades, one could just sleep and it would be set next morning, right?
Apparentely, I couldn't use the conditions /d Mon Tue Wed Thu Fri Sat Sun
This was causing not to play the event
I'm putting the polish on some new code for Junimatic to allow Junimos to water plants in indoor pots. I'm cribbing the code to show the water splash animation from the game code, and well, the game code is a little less than awesome. Notice how the water splash animation for the pot is apparently drawn underneath the pot (you can just see splooshes at the lower edge of the pot). Here's the game code:
Game1.Multiplayer.broadcastSprites(this.Machine.Location, new TemporaryAnimatedSprite(13, new Vector2(item.X * 64f, item.Y * 64f + 1), Color.White, 10, Game1.random.NextBool(), 70f, 0, 64, (item.Y * 64f + 32f) / 10000f - 0.01f)
{
delayBeforeAnimationStart = 200
});
The last parameter (the (item.Y * 64f + 32f... bit) is named layerDepth and that's my guess as to what needs tweaking. Can anyone confirm or deny and suggest what to do?
(can't help with the coding bit, but that's awesome!)
yeah, that precondition means it WON'T play the event on those days rather than the opposite.
Alas, no joy on removing -0.01f
Is item the pot
Item is the tile location of the pot... (Perhaps the wonky name is a relic of the decompilation)
Just add more float until it looks right 
don't say to me it was checking Mon AND Tue AND Wed AND... to be true
In layer depth higher number draws above
Game uses Y because Y is higher the "lower" you are in screen
Which theoretically is closer to "camera"
But it is not all that consistent so I wouldn't worry too much
fireredlily already said up above, but that precondition needs none of the listed days to be true. so if you list all the days of the week then of course it cant ever run
it's a designer standard to start the XY plane on the left-upper corner somehow. nothing about the "camera"
as a physicist this bugs me everytime
That's also how all rendering is done lol
I may had missed, but I thought about it when I saw earlier. I just didn't said anything because I have no idea how to work with this conditions yet 
I am just astounished my instinct was right in a CP thing after all
Alrighty, I tried changing that -.01f to +10000f and that worked. Any idea what the significance of the magic numbers are? (The /10000f and the -0.01f ?)
atra do u want to move to the universe where scanlines are vertical and d->u r->l
again, designer thing
isnt +10000f like, draw on top of everything 
1f is generally considered the max lol
So don't do that either
but I understand it because crt monitors back then.
It was better to make sure the upper-left pixels where right because that's where most people eyes go first when looking at a screen/text in western world. So making the image form there first was easier to calibrate them
it was just a matter of keeping the standard go on from there
hm so this is the pot's layer depth
Math.Max(0f, (float)((y + 1) * 64 - 24) / 10000f) + (float)x * 1E-05f
why does it have x 
Puttered around a little more and found that -0.01f causes it to not draw, so does 0, but + .01f and above causes it to draw above the pot.
We start rend from middle and go out in spiral
Also we use teensy mirrors
since u know x and y in ur method u can just take this whole thing and add another 1E-05f 
i dunno if 10000f has any significance, only that u typically divide pixel Y value by it to get layer depth
So if you put two next to each other they don't flicker lol
A lot of game is just weird
Like, using vector2 to index a grid of int
whyca.png
Because CA made a game, is my suspicion
Like, instead of doing a bunch of stuff to make programmer happy, he made game
Does anyone know where I can get started on adding a custom building option to robin's shop? I'm trying to make use of the Framework Solid Foundations
oo so we can just us cp to create interactive buildings?
what functionality do you want?
i dont think you can do custom GUIs even with solid foundations
yep, custom ui is always C# territory, even with frameworks to assemble the visuals.
right, the building is the easy part
ya im cool with working with C#, i just do not know where to get started
speaking of, i've already wasted a day trying to align cookbook menu slices over the cookbook menu animation which is a completely different class rendered in some stupid way elsewhere. god i hate matching coordinates
made both components about 2 years apart from one another and i dont remember how anything works or interacts ๐
!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.
so you can add the building itself, and the interaction action with Content Patcher (and the guide above), and do C# for the rest
hippo..
only 2 hippos if text scale is less than 1. otherwise 3 hippos
i hope theyre house hippos
but are they hungry hungry
naturally, it's a cooking mod
okay, so just to make sure, adding the custom building to Robin's shop and the interaction for the building when placed can all be done with CP
a cooking mod sans salt albeit
then anything after the interaction is C#
yeah
building data supports triggering a tile action on click, so you can register a custom action that brings up your custom UI
thank you :D
just bringing it here again, as we yet need help. I tried to update the ModBuildConfig package and released an unofficial update, but didn't solve the issue
And Maximillian has the official author's blessing to make the unofficial update work, just for those curious
I just doesn't have a macOS to reproduce and test it 
I'm not a C# modder, so I can't help much, unfortunately. D:
long story short, SMAPI can't load the dll on macOS, but opens normally in windows...
hello everyone, (i'm brazilian, so, my english is a failure)
There is a mod called Archery that apparently was abandoned by the owner, i wanted to see if anyone would have enough knowledge to update it for SV 1.6.14, pls :( my mod need this mod to work
(https://www.curseforge.com/stardewvalley/mods/archery)
You didn't add a dependency on Better Junimks
So on that mac you're loading before them which ofc doesn't work
damn...
ok, adding dependancy
just learned that adding dependancy can solve load order issues
you are awesome, Atra
Okay so im trying to make a npc who spawns later in the game, would this code work?
no, use a game state query for that field, it expects a string
https://stardewvalleywiki.com/Modding:Game_state_queries
I dont get it because theres no examples of what to do so I used the "ANY" example as a reference and it thinks everything is a comment
well, first, i didnt think about it immediately but the way you're trying to do it will also mean they are only ever unlocked on a single specific day
like, they will only exist on Fall 12, Year 2+
you can use DAYS_PLAYED, i expect
do you want them to appear on that day and exist every day after that?
days_played wont work with multiplayer well
i mean, it can work if all players have playued the same number of days
Also, this is not valid json
but thats not guaranteed
oh darn, never mind then
okay? how do i fix that then i guess because its been working
you want "UnlockedConditions": "DATE_RANGE Fall 12 2"
(it also doesnt account for mods that skip time if they dont account for the days played counter either)
(that means it doesn't account for false gameplay and broken mods, so i don't consider that a defect)
okay i get it now thank you
it worked... and now I am going to eat my foot
i would consider it a defect if it kept an NPC from spawning after i skipped x amount of days
surprised about MP though. the wiki says it is days played in the save file. i guess each farmer stores their own value?
hm
i might be wrong, i thought i tested it at one point but it may have been something else admittedly
either way DATE_RANGE is still better here
is that one on a migration page?
its a 1.6.9 thing so probably
Days Played works fine in MP
The host yells the clients into submission
It's on networldstate lolz
i wonder what i was gettin it confused iwth then
you should try not running a fever instead (feel better soon!)
If I want to make a warp be friendship-level specific (not a door just like, walking into an area/tile) would it generally read like this 30 10 Mrqifriendable_QiHouse 23 9 TheMrQi 1000 with the property tag being "Warp"
I think only LockedDoorWarp can take those arguments
But it doesn't HAVE to be a door AFAIK
LockedDoorWarp is a type of Action so i believe it requires interaction and not just touching, but it can be any tile on the Buildings layer
Alternatively, you could make a conditional patch for the warp that checks the friendship values, if you wanted it on the back layer?
it might also... play the door sound? i'm not sure what handles that
I don't mind if it plays a door sound or anything - the door isnt technically visible (i do not want to texture a new door... or new wall tiles) but it would be fine - i was asking specifically about the warp thing because of the door not being there but if it still works with the other property then im fine with that
not particular about layers or anything with it
tentative fix for obnoxious recipes with long descriptions and too many ingredients
everything's inside.. (this is very impressive)
looks nice
I bet putting a scroll bar to the text would require more mechanics than would be sanely doable right now
this isn't a sane project
the best thing about stardewui is that the scrollbars are already written by someone else
blueberry, the loc gmcm menu is so extra and I love it
I've seen no less than 3 separate UI modders having their sanity taken away by scrollbars
(playing the game for the first time in months)
Just get infinitely big monitors
@proud wyvern FYI the release notes are missing for Pintail 2.6.1 (it's linked from the SMAPI 4.1.8 release notes).
as someone that had their first contact with coding more than 20 years ago and had to code their own scroll bars, I can say they are outwordly
I am the physicist here. I should be the one giving this kind of solution
but if you can make them infinite and spherical at the same time would be awesome...
It took longer than I expected to get them right, too. But I only had to get them right one time!
By the way, if anyone is already using the quasi-public GitHub-only release of Pen Pals, I'm looking for a guinea pig valued partner to test the version that's been converted to the Framework. I think all the work is done, but it's really difficult to do thorough testing or e-patches over the next several days.
for a custom tileset to have seasonal variants, do I just need to have a file named like "Spring_name" "Summer_samename"?
oh i wanted pen pals 
how do you make the fridge behave as a fridge? is it a tile property?
it's a property of the fridge tile in the farmhouse sprite sheet
a hardcoded property, I should clarify, not anything in tiled
I honestly can't find info on doing seasonal tilesheets on the wiki.
so looking at the code, if it's tile no 173 of a tilesheet named "untitled tile sheet" then it will be treated as a fridge
Huh...
(and it has to be in the farmhouse)
fascinating
how did the devs write the ui for the game without ever bothering to write or use some kind of utility library
does the same thing apply to the mini-fridge
yup
supposedly if I make a farmhouse map and fill it with the tile no 173 of said tilesheet, they will all behave like fridges?
I definitely get into some weird code noodles when it's just me
seems plausible
honestly if it was me I'd probably begin writing the UI methods and not get any game done
just
I think only the first tile detected will be
boilerplate and utilities forever
aww
forever and ever
(i believe this is the case)
(with the disclaimer of "im not a map making person)
wait, wrong reply
I found a "AllowMiniFridges" map property in the code, might be new (not documented on the wiki)
๐ค
I'm just hoping to figure this out before I finish all 4 versions of the tilesheet
I was ready to reping it to Shrimply, but you are good to go
right now I only have spring and summer ready to go
so wait... not every map accepts minifridges?
I will need to work it around for my spoilage mod
well if its a custom tilesheet it wont magically be edited for each season, so if you want it to look different per season you'll need the different versions either way. but i do think if you prefix them with the season name it'll probably do it, barring that you could just conditionally load them onto a non-prefixed version
though seasonal tilesheets only happen in Outdoor locations though iirc if that matters to you
I think the part that's confusing me most is the lack of info on this specific aspect of making tilesheets on the wiki
nope, by default farmhouse only
I will need to make a fridge-like chest container

but right now I need to get ready to sleep
good night everyone
guess who forgot to make their walls behave like wall
k, I'm adding fridge to the FF todo list
well, good news is that the mini fridge does indeed work
hooray for functional kitchen!
1.6 fixed the fridge menu using fridge: true containers and in non-farmhouse maps, but it looks like AllowFridges was in 1.6.9 here
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6.9#Map_property_changes
oh, so i can have just the regular farmhouse fridge in a non-farmhouse map?
putting Action Kitchen on a fridge sprite or something works, yeah
I'm not sure if there's a clean way to add hidden storage for that via CP, though
...I will need to see if that is true in the Community Center tomorrow after some sleep
hm, well i need to fix things on my map anyways
i'll try adding a proper fridge
Because that fridge being valid would be another update to my mod that needs to happen LOL
(between this and AllowBeds, I'm not sure if EMP does anything important anymore
)
If I wanted to use the SDV tilesheets from the tilesheets folder and not the maps folder how would I go about doing that in a way that also allows for recolor compatibility?
doesnt that have the GSQ token
you don't, not in a map
yeah, just not sure if that's getting used, I should probably check the requirement list before saying that 
your best bet would be to just provide recolors of the specific parts you used (ex: craftables) to match other recolors out there
๐ค still not sure if i like the regular farmhouse kitchen or the island kitchen more.. island kitchen is only 3 tiles long so it doesn't get cut off weird with retextures for the kitchen
hm
action kitchen just makes the fridge be a kitchen, not fridge
oh, sorry, I misinterpreted earlier 
that kitchen menu works everywhere in 1.6, but yeah, I think you still need to physically add a mini-fridge somewhere
(or with C#, a container with fridge set to true)
looks like the built-in fridge is still limited to farmhouses
Oh good, that means I don't have to release another update two days after my last one
For those familiar with using netfields, is one of these methods better than the other?
My main concern is the Name in the NetFields list not always being the one I observed and recreated as netCropNetFieldName.
const string netCropPropertyName = "netCrop";
// Via NetFields collection on HoeDirt
const string netCropNetFieldName = $"{nameof(TerrainFeature)} ({nameof(HoeDirt)}): {netCropPropertyName}";
NetRef<Crop> dirtNetCrop1 = dirt.NetFields.GetFields().FirstOrDefault(x => x.Name == netCropNetFieldName) as NetRef<Crop>;
// Via reflection on HoeDirt
FieldInfo dirtNetCropFieldInfo = typeof(HoeDirt).GetField(netCropPropertyName, BindingFlags.NonPublic | BindingFlags.Instance);
NetRef<Crop> dirtNetCrop2 = dirtNetCropFieldInfo.GetValue(dirt) as NetRef<Crop>;
This is to get access to a HoeDirt instances's netCrop field directly since it's private
reflection is famously slow, so i assume the other is more performant. but it may not matter unless you're doing it a lot (say, every tick)
Namely so I can rig up to its fieldChangeVisibleEvent in case you're curious
Nope, should ideally happen once at the start of a day
Might happen occasionally when the player harvests things
in that case i would do whichever one will give you less maintenance burden; or if that's not obvious, whichever one you like better ๐
Reassurance that the calculated Name for the field won't change would make me happy. I'd love to see a resource on how it's calculated so I can determine how likely it is to ever change
Not sure net fields are something that has any doc anywhere
Ok, I just looked through the NetFields class (in my SDV decompile) and it spells out how Name is built up, so I think I'll just stick with that over reflection
technically compatible...
omg no it can't scroll the entire description
1 line isnt enough..
Building UIs at 720p is so rough
gotta capture that future mobile market
When doing Dialogue prompts with tile properties - do the i18n tokens work the same? if I just put Dialogue {{i18n:Aos.qigoldkey.desc}} would that work or would I have to do something else
if you add the tile properties with CP, yes
properties in Tiled aren't parsed by CP, so i18n and CP tokens alike won't be resolved
alternatively, you can load your translated dialogues into a strings asset, and reference the asset name and string key in your tile property
I see I see
I'd have to learn how to do... both of those things although I think I have some experience with strings so I will try that first thank you
as always the help is very appreciated
Is there a stardew valley mod with more in depth combat/extended mines?
probably a better question for #modded-stardew , unless you're looking to make one
hello, I'm trying to make a mod that replaces the default farmers undershirt, ect. with the textures from when the farmer is in the spa and I don't really know where to start. I have a lil experience with cp but that's about it. if anyone could point me in the right direction or know of a similar mod that already exists, it would be greatly appreciated
I would preferably want to use vanilla stuff because I'm using fashion sense with furry farmer and would like it to be compatible
im just not sure what triggers the change
Ah, I forgot to merge/rebase master, itโs up on develop https://github.com/Nanoray-pl/Pintail/blob/develop/docs/release-notes.md
Iโll fix it in a bit
and done
Hi! What should the number on "format" be in a contents file? I thought it was the game version but different contents files have different numbers for their mods. Can someone help?
it's based on content patcher format
So whichever template im using is the number I should go with?
what's on the template?
it should match the version number of the content patcher version you are using
older mods used older versions of content patcher naturally, so they have smaller version numbers
Well im doing a translation mod to Swedish and im using the contents file from another mod called stardew Finnish, which is a Finnish translation mod
Alright I see, so as long as I put the latest version in there im good then?
yep
Thanks!!:)
older format versions will probably still work, but it's best to use the latest
but it depends on the mod
if nothing else it makes the monthly stats look nicer
I will make sure to update it just in case :p
lest we wonder why a years old content patcher version got another new mod again
XD
Some disambiguation, if I may therein dabble and thusly request: Trigger Actions are like Smapi Events for Content Patcher (for the most part), right? I have not used them, but I was looking into one (I think about spawning maybe), and I saw that the triggers are like the SMAPI events.
yeah kinda, you can read through this page for more info:
https://stardewvalleywiki.com/Modding:Trigger_actions
Thanks! That's where I was reading!
My mind has throughout struggled to fully grasp them, though I know not why.
"Also note that when making a map edit or adding a custom map, sizes bigger than 155 for height and 199 for width will break the layering."
Saw this in the wiki about maps, is this still a thing? (That being said, a map any larger than that seems likely to take too long to get across.)
I don't think any attempt to fix those limits was made, and a lot of the vertical sprite-layering math still assumes the map is 10000 pixels or less (so ~156 vertical tiles)
I'm not familiar with the horizontal bug details myself, though
I always forget just how small the farmer actually is...
Height should be fine now, I made a massive map to test the size limits
I see a big map on tiled and don't think too much of it
But if you make a map that's wider than 199 tiles tree layering breaks
But when i load it in, it's huge ๐
Specifically breaks at positions beyond the 199 X
So the stump renders above the rest of the tree
I didn't notice any issues making the map 5000 tiles tall lmao
I'm still seeing a lot of layering that divides by 10k, so I'm not sure how that works out, but maybe the vertical bugs were more* complicated than that 
I couldn't ever find any definitive explanations of what broke on tall maps
Huh. Why do trees break?
maybe the draw method just accepts/clamps/ignores layer depth over 1 now
Ultimately, making a map bigger than 200 tiles wide is also bad because walking that distance sucks
Trigger actions are the successor of the weird /x events that sent mail instead of actually being an event, but much much more powerful.
okay, here's what an >156y map supposedly looked like in 2019 when I first heard about it 
if it doesn't obviously wall things off like that, I imagine something was fixed
Oh wow, yeah that's terrible, definitely doesn't do that
Thanks loves!!!
"Aos.QiRoomString9": "An odd looking, unfamiliar stone. What's Mr.Qi doing with it?",
"QiRoomFarStoneDesc": "{{i18n.Aos.QiRoomString9}}",
Is there any reason why this would be considered a token that isn't found? (the first one is the name of the entry in the default file and the other one is the actual line in the String json)
the others are working and the'yre all formatted the same
stuff is usually i18n : not i18n. is the dot and lack of space intented?

