#making-mods-general
1 messages · Page 508 of 1
Currently greenhouse is a building so if you want to change how it looks you need to edit building data
If you think you have to handle the greenhouse being moved around, then no you don't
No it's a special hardcoding thing lol
On maps that are replacers, not new maps
So would u need it for custom farm 
Haunted
The target is probably Maps/Farm_Greenhouse_Dirt then
You can confirm this by looking at the Content folder
There is a special one for the four corners map!
But seriously, make a nonreplacer unless you really love android
since the event I want to write out needs to happen after a certain event, do I need to write my own event id or should I use the in game event?
Android does not support nonreplacing farms iirc
i don't understand the question
mine?
yeah. if you write the same id as the event you want yours to be after you're just going to override it
Right, thank you
there's a condition for a player seeing an event beforehand
Would you please tell me what it is?
PLAYER_HAS_SEEN_EVENT <player> <id>
thank you
for player, see this:
https://stardewvalleywiki.com/Modding:Game_state_queries#Target_player
if you want it to be an event precondition though it’s different
you can use any game state query as an event precondition (there's a precondition that checks a GSQ)
yeah you need to put GameStateQuery before it if you do that
yeah there's isn't a specific one for seeing an event before
okay. thank you
there should be one for seeing a previous event
either one will work! the non-GSQ one will probably be imperceptibly more performant
so just do whichever one makes sense to you and is likely to be easier to understand/maintain down the line
That makes sense, thank you
Hi guys, I hope you’re doing well and that you’re giving all your heart and your mental health while creating all those little animated pixels.
can i keep a bit of mental health for myself as a treat?
After creating maps and understanding how everything works thanks to you, I’d like to learn how to develop NPCs. Is this the only reference page? https://stardewvalleywiki.com/Modding:NPC_data
(I still struggle with the GitHub interface, so I’m not sure if there’s a dedicated page.)
this might be a dumb question, but I need to make a dialogue tree for an NPC and it's telling me to start with an Introduction, which is obvious even to me. However, I want to meet the NPC in an event. Does that mean the introduction is in the first event, or is it outside of an event?
This helped me a lot for making an NPC. https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC
!npc there are lots of resources, but that page you linked is necessary as well
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
that is the authoritative reference, but see the links everyone else posted ;)
thank you
introduction is a conversation topic only active in the first week or so. if you introduce your character later during an event, then you can create a custom CT for having seen that event
what is this "it" that is telling you to start with intro?
Introduction is a special CT key that the game adds that is visible seven days after starting a game. You don't have to use it, and if your npc is introduced in an event, you may not want to use it, or have your own CT instead
Introduction is a special dialogue key which can be triggered only once, and only during the first six days. it's optional. you can use an event if you like
thanks again
right
1.6.16 (i think) will introduce another way to have a first dialogue line, which works largely the same way but isn't a conversation topic key limited to the first six days (krobus is currently hardcoded to act this way, and the new key will enable it for other NPCs). but that's in the future
I edited a map all by myself, but uh, anyone got a link to somewhere that shows what the different path tiles mean?
Thanks. I was having a heck of a time finding the info.
sure, wiki is full of info but sadly you need to know where they are to find them most of the time 😄
Yee. Also, can I have my own trees be spawned via the tree path tiles already available/ have them only spawn specific trees based on what map they are on? Or would I have to make my own tiles for that? And how would one potentally go about that?
What are you seeing that's instructing you to do a dialogue tree? 
It's plenty possible to have the first appearance of your character in an event (i.e., they do not show up at all prior to the event), though it's a little complicated/annoying to do so. The easier way would be to just make it so the player is likely to see your event before they see the NPC (which is what I do for Jorts and Jean as an example).
https://stardewvalleywiki.com/Modding:NPC_data if you scroll down to Examples the second point is telling me to create the following files and dialogue is the first thing they mention
Ah, I think we're confused cause you called it a tree, we usually just refer to it as a dialogue file 
Sorry lol
Have you looked at the tutorial? That breaks it down in a lot more detail so it should hopefully be less confusing. https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC
Thank you
Hey guys, does anyone know how to create an invisible npc during an event? I need an invisible dummy npc in order to simulate the textAboveHead command for the farmer.
Hello, good afternoon, could someone please help me if possible? Months ago I downloaded a mod that has this lampshade, but my brother deleted my Stardew and I lost the mod's name (old image
).
you want #modded-stardew
hey guys, I am trying to add a simple Quest that works like the Ship Repairing. I basically want to have one tile that I can interact with, where I can 'deposit' a specific Item, like f.E. 500 Wood and after it does that, it should basically just replace a part of a map. (It should just change a broken house with a repaired one). Do I have to use C# for that or is there a simpler method to do this?
I guess it is a bit like the small bridge on the beach
you can use Unlockable Bundles
I guess that would work, yeah. It is a bit of a workaround, but I'll look into that, ty
Hey everyone! I’m working on a small mod expansion and need to make a minor adjustment to Stardew Valley’s town map so I can access a new area. I added a "bridge", but whenever I enter the town it doesn’t show up, even though I can still walk across the water. So the game seems to recognize the change, but the bridge itself isn’t being rendered. I’m not sure how to fix this
How did you add the bridge? Did you make a smaller separate map file of just the bridge, that you placed over the town map?
I used the entire town map, and in the code I only set it to change the map at the coordinates where the bridge is located. Could that be the issue?
I remember I had a similar problem when I tried to add a small wooden bridge in the mountain Map. I think if you fully try to load a separate file, you have to replace the map file in the data/locations folder as well. But honestly, it is way easier to just make a separate map and parse that over the existing map XD
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.
Did you maybe also use the custom locations feature from Content Patcher? That is deprecated by now and that was also a problem that I had
locations are actually a distinct concept from maps and very likely not the issue here
I used Tiled to make the bridge
and how are you applying your changes in json
(CustomLocations also still works, it's just very not recommended)
EditMap isn't an alternative to Tiled, it can be a way to apply edits made in Tiled
I entered the coordinates where the bridge is, but I guess that was wrong. I don’t quite understand what I need to do instead
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.
you've closed out your changes block but put a patch after it. all patches need to be inside the the square brackets of Changes
and also yes please don't use custom locations, follow this tutorial instead https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Custom_Location_(CP)(1.6)
Okay, thank you so much for the help!
good luck and let us know if you still can't get it to work
So when I try to do it via an unlockable Bundle, I have the problem that I can't easily place a new bundle at my location, that works completely separately from the community center, can I?
I'm pretty sure that's exactly what UNlockable Bundles is made for
Every mod I've used that uses it puts a bundle somewhere else entirely, separate from the community center
Okay than I have to look further where I find the unlockable bundles XD
Oooh it's a separate mod. Thank you, that'll be helpful 
I'm workin on makin files so that I have each map stored with their tilesheets in a folder for each location so I don't have to go file hunting if I wanna change any of the maps.
!tilesheetinator you should download this
You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.
See the mod page for full installation and use instructions.
Oh, that actually probably will make it much easier.
and there's several icons you can use, so a repair sign is entirely possible
i believe you can even make custom ones now
so you can do something like vanilla with a yellow "!"
Load a TempActor with blank sprite sheet, basically
You'll need to 1. Load the sprite sheet for the temp actor like you would a regular NPC (portraits not required) and then 2. Add the temp actor at the beginning of your event.
Uh, so my location thing broke. I didn't even change the code. All that changed was that green rain happened.
i'm not sure what a location thing is
Custom location. Sorry for not clarifying. It is bein not great atm, and I am trying to figure out why. I'mma check tiled to see if I messed it up somewhere there, cuz from what I can tell it ain't the jsons.
did the map break?
I'm bringin in the json and the log. Cuz I can't figure it out, literally didn't touch the json before it broke. The warp thing stopped working and for some reason it seems to be lookin for stuff in the actual Stardew folder?
Json https://smapi.io/json/content-patcher/4982412d79d441628974f34cea578dba
Log https://smapi.io/log/dd9455a2f54c45a2abdc8672dfbb8e54
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 10 C# mods and 1 content packs.
did you load your map
MapPath refers to an asset that's been loaded, not a filepath in your mod folder
Yee, I did load it in my content json.
can i see that patch
usually it's good to include all relevant code when sharing jsons
Mk, where I load the map and include the map changes is at the very bottom.
https://smapi.io/json/content-patcher/703862ccad4b430ea835b76bf7b67216
where's that one make a location tutorial 
I followed it.
your target of your load and the map path don't match
Frick.
also please prefix your location with your mod id
It's just a location I'mma scrap, usin it to learn the basics of location creation.
good habits start early!
-# agrees in 'i have terrible habits but yeah that is what you wanna do'
Ok, so the map path and the target of the load match and it still can't find my location.
did you test on a new save
patch reload won't work for creating new locations if that's what you tried
not on its own anyway
Oh. I guess I gotta reload the whole game?
"create on load" means that the location is created when a save is loaded
so you can't just patch reload when in the game
exit to menu and reload the game might work though!
Mk. Thanks. I have it fixed now. Sorry I didn't know that the patch reload doesn't work on locations.
glad it's working!
I cleared some area and added the grave thing as a test. Anyways, now I've got that figured out I'mma go take a break and doodle up my map concepts and probably switch all my actual stuff in my content patch to the mod id token.
I gotta add the mod id token to every reference of a modded item, even in the content json, right?
Have you ever encountered this ? I can’t edit or delete the tileset. I’m completely stuck.
depends what you mean by item but in general yes if you're adding new content it's good to prefix with your mod id
do you have unembedded tilesets in any open maps?
thats what ive been wondering too
cuz i had it happen before but i had my whole tilesheets in there then, not blanks...

When I look for the path, it points me to a .tmx file. It’s really frustrating. In fact, I’m copy-pasting maps that already exist and come from the game. I’m wondering if the problem might be coming from that.
by copy pasting, do you mean you're copying tiles from existing maps and then pasting them into other maps? yeah don't do that
I've seen that issue once (the blanks), and it had to do with someone not properly setting the size of the tilesheet (so the program thought it was 0 wide)
Exact. I do this.
yeah dont do that
yeah that's definitely causing your duplicate tilesheet issue
ty guys
if you really want tilesheets from diff maps then save them as a tsx file so stuff like animations etc are kept
then you can open the tsx in your wip map and embed it
Hi, it’s me again. I still can’t see the bridge, and now I can’t even walk across the water anymore. I don’t understand what I’m doing wrong, it must be something I’m overlooking. I even changed the code, but the issue persists.
!log could you post your log and json pls? sadly idk what i'm doing but the ppl who do will appreciate them LOL
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.
!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.
and the log?
it looks right at a glance to me but the log will say if there's an issue
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 2 C# mods and 0 content packs.
this log says you have no content packs loaded, not even your own
Wait, what? How do I fix that?
a mod cannot be both a .dll/C# mod and a content pack
do you have a manifest?
the format of your json is the content pack format for Content Patcher specifically, thats not a general SMAPI thing
so you must make a separate Content Patcher mod to use a content.json
if there was no manifest you would see an error about the manifest not being found
aah okay
Does your mod have a C# component, siva?
The c# component did log messages
im guessing there is just a content.json inside the C# mods folder under the assumption that it would still be loaded and used automatically
Yes, but since I was planning to add more features, I was going to do some things in C#.
Are you using the mod build config content pack packaging magic
Yeah, you'll have to do what button says and split them. Expansions like Sunberry or Ridgeside are examples of mods with both a C# and CP portion if you want examples
<ContentPacks Include="your-content-pack-location" Version="$(Version)" />
It's an item group
Yeah, that’s the sort of thing I was aiming for
you don't need to be an expansion to have multiple components either, most of my mods add items with CP and behaviours with C#, like raised garden beds, love of cooking, etc
If you do any other content packs (such as FTM or Custom Companions) that don't run through CP, they'll also have to be separate folders 
that's true CP is crazy powerful and you may not even need C# depending
Yeah, but I was planning to add more NPCs, and I understood it was necessary to do that with C#.
Nope! NPCs are generally CP only!
not at all
Okay, so I can do everything with CP?
See the tutorial here: https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC
new game mechanics can not be done with CP only
from what you've said yes
but generally if its something you can see inside your unpacked folder and what you want only needs something in there to be edited to make your idea work, it can be done with CP only
(emphasis on generally)
there are some frameworks that you can utilize for non-vanilla game mechanics tho!
(But depending on how much spaghetti/crimes you're willing to commit, you can get close
)
Guys, I've been trying to learn how to add new furniture for the game. Can anyone tell me how to draw a texture from a file? Is it not this? "TestPainting1": "'Cool Name'/painting/2 2/2 2/1/0/-1/Cool Name/0/Mods\[CP] Test\assets\pic/true"
like the "/Mods[CP] Test\assets\pic"
Guess I freaked out for no reason, hehe. Big thanks to everyone for the help!
i think all the slashes have to be the same direction?
no, the texture needs to be an asset name, not a file path
and its slashes cant be in the same direction
in a slash-delimited string you'll need to escape the slashes
(unless the asset name has no slashes)
you must Load the texture to some target and then put the target in there
ahh
escaping the slashes doesnt matter either, they must be the other direction
we do have a tutorial on the wiki for adding furniture
i assumed discord ate the double \\
but like "\"
I know, but even tho the item is being added the texture isn't being drawn from my assets
@jovial dirge sorry, I don’t accept friend requests unless I’ve spoken to the person for a bit before, but was there something you needed help with?
I tried leaving it blank and the game can draw from the default
as button said you need to load the texture in a separate patch
yeah that is probably it then, I am just using dataedit
id suggest showing us the full json but yeah did you load the texture itself?
I think I’ve understood the issue that’s being mentioned in the comments on your mod on Nexus. The person must be using an older version of Tiled, so your mod doesn’t show up.
So then I just load the texture and instead of putting the address it would just be the name of the asset? like .../Cool Name/0/pic.png/true
there’s an issue in my comments? 
in a load, the fromfile is the path in your mod folder, but the target (whatever you make it) would be what you use for the furniture
I don’t have any new comments and none of the current ones are caused by this, but yes, you need to have an up to date version of tiled for the extension to work.
maybe an example would help:
{
"Changes": [
{
// load the sprite asset from png file to game content
"Action": "Load",
"Target": "Mods/{{ModId}}/MySpriteAsset",
"FromFile": "assets/pic.png"
},
{
// add furniture entry with unique id using our sprite asset as a texture
"Action": "EditData",
"Target": "Data/Furniture",
"Entries": {
"{{ModId}}_MyNiceFurniture": "'Cool Name'/painting/2 2/2 2/1/0/-1/Cool Name/0/Mods\\{{ModId}}\\MySpriteAsset/true"
}
}
]
}
note that with our sprite load change, we're using the asset name in the Target value as the texture field for our furniture, not the relative filepath in the FromFile value
I see OnLocationChange edit on Cursors and I cry
when doing the mod-dump challenge, Cursors is an hilarious asset that takes like 5min for the content pipeline to resolve as so many mods fight over it
skipping prefix on _updateForNewDay 😌
harmony.UnpatchAll() 🙂↕️
Skipping prefix on SGameRunner.Update is a fun one, no one knows the update tick happened (including vanilla)
You are an absolute life saver
I was trying to figure out how to make the load command work without success
(also I've never actually used harmony.PatchAll)
it's always good to read the docs as you go, and maybe also have working example on hand from another mod
though the docs are also full of useful little examples as well
helloooo i got more error to beg you all to help with, here's the error and my json https://smapi.io/json/none/9721290499414e26a1297159ef43e39a
in terms of code crimes, one of the ideas I had for profiler was to have a list of methods in an allowlist, and iterate over all harmony patches and harmony patch the harmony patches for added instrumentation.
ie harmony patch all patches for stuff in the main draw loop
is your modid TheBatteryBunch.Batteries
What docs are u talking about? I was using the wiki but they didn't have an example for adding furniture
you need to use (O) with player_add. the hint is in the "qualified ID"
SHIT okay tysm!!
⤴️ while the CP docs don't specifically mention furniture, the concept is the same: you use a CP Action to add and edit assets to make your changes, following the format of the base game by referencing the unpacked game content folder
but also just use cjb item spawner it's great
..oh
you wrote 0 (zero) instead of O (object)
OH
yes, O

ok thx
YESSS TYSM YALL
You know? The worst thing about learning new things is that now I lowkey wanna start over with my coding. 😂
I'm trying to revive my mod and the coding is so wonky. For example, I was making up random IDs when I should be using this {{ModId}} thing
if you're using Notepad++, Sublime Text, or Visual Studio Code you can just press ctrl+shift+F to do a find-and-replace on your ID to replace it with {{ModId}}
restarting can help sometimes!
though it's worth noting that CP can't parse tokens embedded in TMX files or JSON files added to game content with Load, so those wouldn't be parsed into your actual mod id
Yeah, I know, but there is just a lot that could have been optimized other than that.
you could restart if you like, since as they say you learn far quicker doing something 100 times rather than doing the same thing until it's perfect. but on the other hand it's good to get something reasonably finished before doing it again
But I'm already lazy as it is at updating it, at this point I'' just keep going and trying to make my code look more organized from now on. The old code is ugly but as long as it works... lol
since you're just starting out i'd say get this to a working state, be proud of it, and then restart if you like with what you've learned since
My mod is actually an event mod so It's not really new. I'm just trying to learn to add items so I can make some events that giv rewards
Do I add the ModId token to my textures as well?
But I do have it in my goals to go back and check if I can optimize the old code eventually.
Since it is still working as intended it is not a priority but we'll see.
Thanks a lot blueberry
The item has finally been added and now I know how to add more if I need to
it's typical (but not required) to do something like Mods/{{ModId}}/whatever
all asset names should be globally unique, generally meaning any Action Load Target for assets not already existing in the base game. just don't outsmart yourself by doing something like Target: Mods/{{ModId}}/Characters/{{ModId}}_Simon for an NPC spritesheet when the game is automatically trying to load something like Target: Characters/{{ModId}}_Simon hahah
other places may also expect globally unique names, such as item IDs, npc internal names, item query IDs, and so on
Just append a guid to all your textures (dont do this)
Wait, so it wouldn't work if I went 'assets/Characters/{{ModId}}_Whatever npc'? Or is it just better practice to put the 'Mods/{{ModId}}/ect'?
i mention Characters/{{ModId}}_Simon because the game automatically tries to load the npc spritesheet from Characters/<npc name here> when constructing npcs, which wouldn't start with a unique modid token even though that spritesheet asset didn't exist in the base game
But what about the ModId thing in the earlier fields(?)?
there are hardcoded things the games sometimes tries to pull from. another example is maps; maps HAVE to be loaded into Maps/YourMapName, because that's where the game looks. if you tried to load your map into Mods/{{ModId}}/{{ModId}}_MyCoolMap you would run into an error because the game would go "but that's not maps"
what blueberry is talking about, NPCs, is another example. NPCs MUST have their portraits and sprites loaded to a specific target
Mk.
I don’t know what to put here, and it’s going to keep me from sleeping.
@brave fable Even tho the mod is working now can I ask one more thing about the example u gave just so I know in the future? In "Target": "Mods/{{ModId}}/MySpriteAsset", I can replace the "MySpriteAsset" with anything right? but lets say I need to load a different png as well, can both targets be the same or do I need to create a target for each Png as so they don't overwrite each other?
(Modid as well as od strings are pretty "recent" so you may had reasons to not have them before)
You can always add a rug
Perhaps, I haven't really touched it since late 2024
So, would something like '{
"LogName": "Base Portraits",
"Action": "Load",
"Target": "Portraits/{{ModId}}_AU_TubbineDakota",
"FromFile": "assets/Portraits/{{ModId}}_TubbineDakota.png"
},'
work?
Sorry if asking too many questions.
yep, as long as your NPC internal name is {{ModId}}_AU_TubbineDakota! that's a really long NPC name though; are you sure you want the AU in there?
it'd still be in your NPC's internal name (e.g. {{ModId}}_Simon), but not necessarily as a prefix for the spritesheet asset name (e.g. Characters/{{ModId}}_Simon)
all unique assets must have globally unique names, so two separate spritesheets must have different asset names used as Target values whenever referenced. fortunately asset names are completely arbitrary unless the game or a mod expects them to be in a certain format, such as with NPC spritesheets mentioned above, so you can write anything you want there so long as it's meaningful (to you or whoever is reading) and globally unique (such as with your {{ModId}} token)
I mean, I've gotten into the habit of putting AU, just an abbriviation for the town I wanna make. Their display name is Dakota, which is a funny coincidence that happened while I was making my conlang, cuz in the alien culture they belong to their parents name them for what life the parents want for the child, like Akimil(Sacred Walk) or Kikita(Love life) or Dakota(Happy life).
cool! yeah you can make it whatever you want, i just wanted to make sure you knew you didn't have to for purposes of making it unique, since your Mod ID handles that
Amazing, Thanks
Fair. Also, sorry if sharing too much. So, just double checking, I shouldn't put ModId token in the FromFile? or is that something I should do/best practice?
FromFile is a filepath relative to your [CP] mod folder; it doesn't need to be globally unique since it's looking for an (already unique) file in your folder
it Depends TM. putting your mod id in your filenames can be helpful if you're using {{TargetWithoutPath}}, for example. but no it's not required
i prefixed my tilesheets with handwrittenhello.dbda_ because i loaded like thirty of them with one patch using {{TargetWithoutPath}}
Mk.
Hi! I've got a question about events. Is there currently any way to imitate the egg hunt but for custom events?
One of my mods has code for this, but it broke with 1.6 and I can't seem to find the cause. Thought it'd be worth it to ask if anyone has done it too (or if anyone knows why a player might freeze in place despite calling @event.setUpPlayerControlSequence(ownId);)
Any help would be appreciated 
Oh, like grabbing stuff like haley's heart event?
There is a command for it but I believe it needs C# to actually work
Is it playerControl by chance?
I dont recall doing anything different 
player control sequences require a C# component to function
https://github.com/atravita-mods/StardewMods/blob/d449970ef87b272ddb4b7ed305935fbb9d4fc402/SlightlyMoreDehardcoding/EventCommands/PlayerControl.cs#L93 but I warn you, I didnt test this, someone else did and told me it worked
Alright, I'll upload the code somewhere and send it here 
The custom command: https://hastebin.com/share/efejifugiy.csharp
The patches: https://hastebin.com/share/iwepozevoy.csharp
As far as I remember, this worked fine in 1.5-- it's getting stuck now, though. The festival start music plays and the screen freezes 
Ahh you're doing timer stuff, I didn't touch that
Is there a limit to exactly how many maps someone can add with a content patch? Also, is there a size limit to maps? Just asking for planning reference.
120x120 is the reccomended max i think!
there's a technical limit of about 150x150 before things visually start glitching, but the entire Town map is 110x110 as a size reference for a practical limit
I see, I'll try messing with the timer and see if that's the cause
Hey! for some reason when I give my custom npc a bouquet, her portraits are all messed up (showing mad face instead of happy) can I put something in dialogue to change the dialogue so I can set the portraits correctly? I don't think I made the spritesheet for the portraits incorrectly but I'll check to make sure
Make sure the portrait spritesheet is exactly 128 pixels wide, and the order of portraits matches the vanilla order?
I made these a long while back in 1.5 so if 1.6 changed any of that it's definitely messed up lol. The other possibility is that it was just messed up from the start and I never noticed or forgot to fix it
Either way I'll check right now!
The spritesheet format didn't change in 1.6, though there are some portrait-related dialogue changes (e.g. it won't try to parse invalid values like $harry as a portrait command anymore).
Oh yeah something was messed up. After 3 it's very wrong
Then it's likely that I messed it up and forgot to fix it 
Thank you!
Oh shit only 150x150? I thought it was bigger than that
Welcome!
Where can I read about what these are?
Have you read the wiki page for map modding yet?
Yes. I may have overlooked this but these things don't seem to have anything to tell me what they are specifically
(Those are tile properties.)
They are tile properties
Look left, the data's on the left panel
I believe it is mentioned somewhere on the page, but it's also a large, dense page so I wouldn't be surprised if you missed it
That's specific to cabin tiles, as mentioned in the paths tilesheet section
That'll get you to it
Order determines which cabin each cabin marker is for
So if you have 8 cabin tiles and only 3 cabins it knows where to place them
(New in the upcoming SMAPI 4.4.0: a set_verbose console command which toggles verbose logs during a session for all or specific mods, to simplify troubleshooting.)
So like when you have robin build you cabins for multiplayer?
No, starter cabins only. Constructed cabins can be built anywhere that's valid for building
If you didn't know, you can start the game with prebuilt cabins
Bc there's two types of cabin markers and each type needs its own order
One is for "spread apart" and the other is "close together"
@outer glacier
Thank you
Does their placement matter when building a map? Like does it need to be specific?
No, it's just so that you can tell the game where you want them as a map author
Though they do need to have enough space to fit a cabin obv
You can have as many or as few as you want, but the number you put in will determine the maximum number of starter cabins people can have when using your farm type
The vanilla maps app have 3 of each type, for a maximum of 4-player multiplayer. There's a few modded maps which support up to 8 players
And I need to make sure i have two of everyone I make?
For each spread apart one you need a close together one somewhere on the map, and vice versa
Close together to each of the other tiledata for cabins?
No so like. When you start a save you can choose to have your cabins close together or far apart
Is there a way to identify which is a cluster cabin setting and a spread apart?
They have different IDs and Orders. Does the early ID one count for cluster or spread? Like ID 66 and ID 69 are both Order 1
ID is internal and the game does not ever see it
As a I said there are two different tiles in the paths tilesheet
Please look at the tiles on the path layer where the tiledata objects are
oooh I see
The tiledata is being applied to those times
I have a hard time seeing the little red cabins in the squares
so I see what youre saying now though
It looks like you have the highlight layer setting turned on, I recommend disabling that. It may help with visibility
Yeah I think the guide I followed said to turn that on
I generally do not recommend modding guides unless they're on the official wiki or the modding wiki
The official wiki is mostly documentation rather than tutorials but for most things it is very thorough
I believe it was one of the links the guide sent me to for downloading tiled, smapi, etc
The official wiki page is the one that says to turn the highlight layer setting on
I just ignored it because I found it confusing
What really? Ew
Yeah
Fair enough
Definitely better off
If I am ever confused about which layer something is on, I use ctrl+shift+h to hide all the layers except the one I have selected
It is useful for making sure you're on the correct layer, but it makes it really hard to see the map
again though the hotkey is H so just toggle it on and off whenever you need it, there's nothing saying it always needs to be on or off
Why is there a NPC barrier at the very bottom corner of the map? Does that do anything?
I admittedly have not read the guide bc it came after I was already doing maps
The edges of maps are not solid, so animals could wander off
Guild say it blocks npc movement but when do npc even go down there?
Animals and monsters are also npcs
Weird, I know
Townspeople will greet slimes if you put them in the town
But just for that 1 specific tile?
And your horse used to be able to act as a shopkeeper
Might be the only place that's not blocked another way?
i think you mean horse 
It just here at the bottom of the standard farm map lol
Not a clue honestly. Might just be leftover
There used to be an Easter Egg down there, nto sure when it got removed.
If you have the Building layer highlighted for that map, you may even still see the vestiges of a hidden tunnel. It may be gone by now, though.
That seems to be gone
How do I change map properties?
Specifically to add something like SpawnMountainFarmOreRect
That information is on the page: https://stardewvalleywiki.com/Modding:Maps#Map_properties
Easter egg you say? What is this tunnel?
How would I go about adding a custom npc room?
A spouse room, or just a room that they live in when they're not married?
A spouse room my bad!
For a spouse room you'll need to make a TMX file of your desired room-- I suggest using one of the vanilla spouse rooms as a template so the size is correct.
I've been looking through the wiki and havent found anything. All I can think to do is load it in the content.json but I completely forgot how to do that
And then you'll set the texture for that spouse room as part of your Data/Characters entry for the NPC. 🙂
(If it wasn't for the spouse room, I was gonna point you at my apartments mod as a placement suggestion
)
your apartments mod???
I think I'm going to look into that anyway since it seems like a decent alternative to my npc just living in a "secret" basement that's only shown in two heart events XD
Whatever works
I am very tempted to add fake Artifacts to my Dubious Art Market mod, but not sure if it's possible to add a "Maximum Items donated to the Museum" as a Condition.
By Max Items donated, do you mean for the base game museum completion? Or a specific number?
please do it. i've been meaning to do a joke-counterfeit-items mod for a good while now but i haven't gotten around to it
Poking around at the GSQs and there is MUSEUM_DONATIONS <min count> [max count] [object type]+
if you want museum completion specifically, you can check the mail flag for the stardrop that you get for doing it
^ also that, yes
the flag is better because the max amount of things that can be donated can change with different mod lists
ive learned tiled hotkey lore
When I display a pig using addTemporaryActor during an event and have it walk from right to left, it spins around. Is there a way to make it the inverted image of walking left to right?
Would me showing how I am planning out my maps be done here or in the mod making art channel? It isn't very artistic atm.
anyone can cook!
this is more of a technical help channel. if you want to show off your work, the art channel is probably "better". but either one will do i think
i post my art here all the time, frick the rules
the other channel's just dedicated art chat and help, you can post anything you like here to do with making mods
Hello I have read some modding things on the wiki but I don't know where to start.
what do you want to make?
I wanna make a npc mod with a custom house with silly interactibles to start
ok. i will warn you that making an NPC is a lot of work (not especially difficult, just a lot) and it is easy to get overwhelmed
I'm aware lol
!npc in that case, here's some NPC info to chew on
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
Thank yew ^v^
Basically, I want to gate certain sales so in the early game, Cheap artifacts findable very early on will be available and then as you donate more, the "Vendor" starts making later game Artifacts and discontinues the early game ones. Primarily since the fake artifacts will all have "Gunther can tell you more about this if you donate it to the Museum" as their description but obviously you can't actually donate it. The ruse is up if the player knows for sure they donated something since the description changes when you donate.
I also need to somehow give them the "Artifact" type without them actually being donatable? Is that doable? If not, I have a backup idea.
Oh, I might actually be able to make that Romanceable Bear Mod on my backburner if that NPC maker actually works. I can write Dialogue all day, it's the code for actually adding the NPC I can't do.
How come the Mining Farm map doesn't have SpawnMountainFarmOreRect in map properties?
It's settled, I'm leaning into the Redd comparisons. Time to resprite the Market and draw up a cute little Fox gal.
without checking, i would guess it's hardcoded
Around the time @tiny zealot made the "Romanceable Hat Mouse" mod (Better Known as Hat Mouse Lacey) I joked that I had always wanted to make the Bear from the Maple Syrup Secret Note romanceable, and they Strongly encouraged me to do it. Sadly, it is Well outside my skill level, so it's been backburnered for a while. I'll need to research this NPC Maker.
If it works, I may be able to manage it.
ahh okay, well if you ever get to it i might be able help out a tiny bit! what sorta mods do you ususally do?
I worry thought it will be a buggy mess, however. Depends on how well coded the NPC Maker is, I guess.
no clue i only overhauled vanilla NPCs
I usually make [AT] mods, lol. This Art Market is actually one of my more Complicated mods to date, in that I actually needed to learn how to call Calcifer functions.
aaaa cool!
That reminds me, I need to release my Oatmeal mod one of these days. I've been """Testing""" it for months now, lol.
oh shit my emote mod..
..but there was a slight bug so i can use that as an excuse to procrastinate more
So when adding it to a map im making do i put the <tile X> <tile Y> <tile width> <tile height> in the value section?
All else fails, I can make my Bear like Krobus - They just stand around stationary all day and night and then move into your house if you cozy up to them. Barely any scenes. Minimum Viable Product and all that.
The single largest hurdle I see to my Bear mod is that the Bear is bigger than a standard NPC.
sighs in the injustices done to my blorbo
And can I have multiple of them on the map?
yeah, being so wide will ruin bear's pathfinding without some C# help (there is a framework that can fix it)
or, as you suggested, simply avoid pathfinding entirely /lh
But first: Redd's Family Discount but with the serial numbers filed off.
(DW standing outside arthur's room, but the sign says "wide npc pathfinding") that bug can't stop me because i don't pathfind!
Oh gods I'm reading through the NPC maker and already in over my head lol.
It's like running a marathon
It's fundamentally just one step at a time
If you hit a wall, take a breath, eat something, and keep pressing on
If you start getting cramps we have cold sprays
I just need to remind myself constantly that Lacey wasn't made in one day. Unless Ichortower DID somehow make Lacey in one day, in which case I fear for their sleep schedule. I for one, love sleep. Can't get enough of it. Stayed up until 3AM Making my Art market mod.
I'm still working on my NPC edits, and it's been 5 months so
it is a time commitment
lol wouldn't it be nice to finish in one day! it took me 5 months from "i'm going to make this" to clicking publish on nexus
and then i kept working on her on and off for the subsequent two years+
Some takes even much longer.
i honestly don't expect to be near release for at least another 5 months
i'm working on her right now, for pete's sake /lh
My advice is to give you small milestones to give you the sense of gradual accomplishment. Your NPC succesfully appears in the game? Milestone. Your NPC successfully talks? Milestone? Walks around? Milestone.
Honestly I was absolutely GIDDY when the prototype Art Market worked, which was all the motivation I needed to decide to power through it. I'm sure once I make Romanceable Bear MVP Edition, I'll figure out how to make them more complex later, instead of trying to make the whole thing at once...
...romanceable
(rip torn voice) if you can romance a mouse, you can romance a bear
you can romance the-
claude are you not acquainted with lacey?
it's kind of you to call my mod big 
I thought you want as much as character story as possible!
anyway i will be pleased to introduce you to my golden child, my favorite of all my mods https://www.nexusmods.com/stardewvalley/mods/18177
i dooo but im a coward
i shall download it 🫡
oh turns out i downloaded it but never added it to my game-\
your mod is now officially in my jail for mods i'm not using bc testing file 🫡
json: https://smapi.io/json/content-patcher/f575f4187b2d4bd5bdb521f76b696ff7
log w/ patch summary (look for [X] | [X] | [X] | Default | Include data/Maps.json > EditImage Maps/{{season}}_{{ModId}}_Lighthouse #1 (=> Maps/spring_handwrittenhello.dbda_Lighthouse) ): https://smapi.io/log/842e7f9fbcbe49dda598044000e8f0ca
can someone be a second pair of eyes on this? i got reports that my recolor compatibility wasn't working out of the blue, and i can recreate the issue, but i have no idea what changed. it was working before, and now it's not. the image is successfully changed when patch exporting
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.22631.0, with 30 C# mods and 12 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
in the json you're looking for the patches at lines 5 and 141
Hey guys just wondering, does anyone know why the paths dot for the spouse room I made show up? Should I just not include it at all? it doesn't show up for the vanilla spouse rooms
u didnt put it on paths layer
yeah so.........
thanks

I can't believe that was it maybe I should call it for today because holy wiff😭
So if I want to edit the building data from another mod that adds a building (e.g. the premium coop and barn from SVE), what would I start with?
speaking generally, you write your own patches to change just the bits you want, then make sure your patch runs after the relevant one from the mod in question
Is there a site where i can easily translate this to other languages or i need to manually translate them using google translate
typically you will want to manually translate the values, since the keys in an i18n file should not be edited
Write your own mod to Target Data/Buildings and edit the fields you want to change for them
Can one make a farm outside of the normal farm with a content patcher? Asking for planning reasons.
Or make a place where the player can sleep that isn't a farm?
I don't think any C# is needed to allow crop-growing and such in other locations, but it depends on the definition of "farm", some features are difficult to replicate or move
sleeping somewhere else is largely fine, though, you can use bed tile properties and/or allow players to place their own beds in a given location
Mk. Thinkin bout possibly makin a motel or something in my alien city.
Is Gunther coded as an NPC in the game? If so, where can I go read the code that runs him? If not, how do I make an """NPC""" visit you on your doorstep like he does??
Check Data/Events/Farm
I found him in Data/Characters! He is coded as an NPC but has no schedules or dialogue whatsoever, being powered entirely by events or probably Tile interactions.
Most people are technically characters these days in 1.6, but even if they aren't you can always make temporary actors which bypasses a character/npc requirement
Yar, you can check Marcello in Harvey's 10-heart event for how you can add a character to an event without having to make him an "NPC" in `Data/Characters'.
Basically, I want a character to show up on your doorstep one or twice, and they sit behind a counter otherwise.
Basically exactly like Gunther
Aa, yeah, if you want the NPC to have dialog behind the counter then the simplest way is to make a non-social NPC like Gunther.
Doing more research, I think I'll have to go with the Gunther clone. The hard part is writing the event. I have never done this before. I'll procrastinate and make all the art first.
Step 1 complete:
that's the hard part done 🙂↕️
Reading the How to make a Custom NPC guide.... JORTS IS GAY????
THIS IS HOW I FIND OUT?????
Where does it says that he's gay? /gen
I'm noticing a lot of tone tag use, and I feel I have neglected to include one. Where do I find the list?
But no, It does not actually say that Jorts is gay anywhere, they just apparently happen to have a line for Pride under the Schedule Animations and String Dialogue section, and I had a lot of nagging feelings about Jorts that go away and his character makes more sense to me now if he's Gay. I guess it's headcanon? Fanon?? Not sure what word to use here.
well considering jorts is based off a real cat 🤔
Jorts is accepting of everyone regardless of his own orientation
bumping this before i head to bed
I bonk you for not having Lognames 
i’m the problem it’s me 😔
Aa, it's a dialog compatibility with this mod (which I recommend): https://www.nexusmods.com/stardewvalley/mods/20099
Is it still not changed in game after doing a patch export?
correct
Did you sleep after enabling Earthy?
It did load and edit the asset, it looks like from doing a search for the tilesheet
yeah i'm stumped, because the patch export shows this (those are the right colors)
and i double checked that that's the name of the tilesheet the map is using in tiled
And you haven't accidentally left any tilesheets in the map folder?
nope
Are you due for bed? I can just poke through the mod on my own if you need to go
i still have to brush teeth etc so i'm around for a bit at least
You should be like me and stay up until 3AM working on your mods because you're having a great time! (Do not be like me)
Hm, I could've sworn I already downloaded DBD for my playthrough
too late i already do that lol
Oh no I opened the tab but then I paused on downloading things to do some compatibility patches for mods I already had lol
Aww... the Event tester mod is broken in 1.6 apparently 🙁
SinZ Event Tester works, so you can use that instead
(that is SinZ event tester)
if it has any issues they are news to me and would be 1.6.9+ issues at a minimum as it was used to test 1.6 itself
Oh, I didn't realise it didn't have SinZ in the Nexus name because it has it in the folder name lol
And yeah I have it installed right now
i'm moving really slowly because I am tired but I will keep poking at it
Atra saved the community from one of my alliterations, as it was originally called SinZational Scene Setup https://github.com/SinZ163/StardewMods/tree/main/SinZational Scene Setup but I think Atra built off a decompile and pretty much rewrote the entire thing and at somepoint renamed it to just SinZsEventTester
i appreciate it! ❤️ i’m going to head to bed but i’ll answer any questions etc in the morning if you ping me
Aw I like SinZational Scene Setup... /lh
I have a decent collection of them
Hey friendo, look at this tilesheet source
Tada!
The fix
I just realized there may not actually be a way for an event to occur when you've donated only 1 artifact like I intended? I may have to stick with mail?? Not seeing how the game checks how many artifacts you donated in Gunther's event. It seems to be hardcoded somehow?
Well there are some rewards you can get after donating a certain number of artifacts, so there's surely a way (or hardcoded indeed)
if you can make mail happen you can probably make a next day event happen using a mail flag
There's a MUSEUM_DONATIONS gsq you could use as a condition to trigger action a mailflag
There's no reason to add mail flags into it, because anything you can check with a trigger action entry you can check in the event preconditions anyway.
Looks like the MUSEUM_DONATIONS GSQ Si suggested is the way to go, because you can filter it to just artifacts. So you can check for 1 artifact being donated in the event preconditions.
How would I write that into an event, though? The format doesn't appear to have that? Unless I'm missing something? But for mail, It may be doable, I just need to read more into how to send mail.
The GameStateQuery precondition lets you use any GSQ
So it would be exactly the same as how you'd check it for sending mail
Thank you! I fiddled around with it for a bit and for some reason my janky home-made solution was a (blank) JojaMart outfit for Lewis 😂
How hard would it be to add a color wheel option for chests?
Guessing code is needed, but is it possible?
Isn't there a mod doing it already? like better chests or something? You could look how they did it
Well, not exactly a colorwheel, but close enough I think: https://www.nexusmods.com/stardewvalley/mods/30322?tab=images
This mod too does something similar (again, not a literal colorwheel), but I don't think it's up to date: https://www.nexusmods.com/stardewvalley/mods/4180?tab=images
Man the ChestEX giant chest box looks cool, sucks it's not updated.
No I was just curious if it was possible to add one.
I'd say it's pretty likely that it'd be possible
That color picker on ChestEX is actually what I wanted. Color wheel or box.
Though I couldn't say how compatible such a mod would be with other mods editing chests since you'd probably? need Harmony. But I am by no means knowledgeable about this.
Stones in the mines, are they part of any collection? They aren't in location.ResourceClumps (except the huge ones).
If not, how can I tell if there are stones on a certain tile?
If they're drawn and destroyable, then they're somewhere
it looks like they're in Location.terrainFeatures
actually, maybe not, it seems like what I was looking at is the code to generate trees
They’re in location.Objects iirc
oh
Congrats!
I just found that too, but it seems it's .objects without the capitalization
Thanks Leroy and EnderTedi!
I don't know, sorry. I haven't hit 1,000 UDLs yet lol
You?
You're kidding.
/lh
Wait, that's probably the wrong tone indicator.
Genuine shock, I'm experiencing.
I only have two mods and neither of them are very popular. The mods I do with Bog are all under her account and are popular because of her haha
why do you want to join their mod author discord?
I'm in a fail brain time. How do I cast litter to Item?
cs foreach(var litter in shaft.objects.Pairs) { if(litter.Value.IsBreakableStone()) { litter.Value.performToolAction(pickaxe); } }
The performToolAction method only has one arg, I need it to have all three from Item to break the stones.
this message is so scary every time i see people post it lol... why is it bright red and ominous
I thought I got banned or sumn 
Also.
whoever gets the reference will get another hefty prize of absolutely nothing
NVM figured it out, but that was not going to work anyways. Today is a brain lock day...
My assumption is that it is mostly the system used for bans and stuff that is being repurposed for this minor one off message, and they haven't seen it worth it to visually differenciate it enough
I did a fairy mod but i am really Bad taking pictures for the nexus page, any ideas of what can i do? I still doing them on the phone
I just took screenshots in game for Shane and I think something similar for my vegan fish and salsa mods 😭 screenshot with some text over it
I think we are on the same boat
Kinda annoying that i could only do the screenshots on Android and that resizes pictures as they wish when You upload them
For sure. I do them on my pc which helps
I can't, i have a old laptop from the 2000 and it barely works it's more like a potato with wi-fi 🤣
Some people have a whole Branding thing going on
But tbh im fine with u taking a screenshot and slapping scroll generator on it
Some of the Branding i enjoy include molamole and elle
I love elle's mods
Same
If you make sure the fairy is clearly visible in the thumbnail so people can see what they're downloading, that is good. I'd advise against just uploading the files that you used for the textures the way that some people do, because they're way too small to see anything properly
i just kinda... take an in-game screenshot and just slap it onto nexus. cropped if needed. im usually too lazy to make them look pretty haha. i just need functional
Gotta change My character or maybe do a better looking farm so i can take the pics outside, i just did a random new Game file and took the pics and i'm like uhh this should look better
Thanks for the ideas ❤️
I think I was misunderstood. Im not replacing the greenhouse. Im changing the land thats placed after the greenhouse is MOVED
Yeah atra explained it afterwards
This "land placed" thing is actually a bit of hardcoding not found on additional farms, which is why i didn't know about it
ah
You can double check your Content folder
If an asset is like
Content/Maps/Farm.xnb
Then you be editing Maps/Farm
What do you mean "Nonreplacer"?
You can just add new farm types now
Instead of replacing standard farm
The whole point of my Modest Map mods is to make the default maps cleaner.
Whether u wanna do that is your call
They are intentionally replacers
also havent figured out how to ADD maps just yet
Will probably do that when I make a brand new one
Adding a new map is also just doing a Load
it is??
But instead of Maps/Farm you load to a custom target
Like Maps/inkubus.NewFarm
You also need to add the farm data + the location data to make the map actually exist in game
and the icon on the create screen and minimap?
Yes that's part of the additional farm data
Map is sort of similar to texture in my mind, i.e. a kind of artistic asset that is just loaded
you need data around it to actually give it purpose in game otherwise it's just never accessed
I know BETAS has a "passed out" trigger but what if that but also each time added an increment stat so people could be like "yo you've passed out 10 times I beg you take better care of yourself"? Could you do that with BETAS or would that need C#?
hm i wish it were possible to display bust sprites above the dialogue box for a conversation between two npcs... i know i can do it but only one at a time...
ooh wait maybe use the trigger to add the increment stat and then have separate trigger actions that check how many points they have like {{ModId}}_PassedOutStat, and then trigger dialogue via conversation topic?
Yeah u can hook the betas passed out to increment stat
WHOO
now the harder part, figuring out how to apply that to the player dying+where they died
maybe to start do something to HospitalEvent? if HospitalEvent add Trigger then use trigger to add CT?
Does the TriggerAction fire at the death location or the revival location (honest q)
If GameLocation.startSleep is called but Game1.player.isInBed.Value is false, then the game dims the light and play the player sleep animation but doesn't trigger newday until the player changes location
so I tried to just set Game1.player.isInBed.Value = true; before calling the sleeping question dialog (copied from GameLocation.performTouchAction) to make FF's custom bed sleep spot feature work but it somehow turns to false before GameLocation.startSleep according to a debug prefix I made.
Do u also call the map action sleep at any point?
I let the location handle everything by just doing this:
location.createQuestionDialogue(
Game1.content.LoadString("Strings\\Locations:FarmHouse_Bed_GoToSleep"),
location.createYesNoResponses(), "Sleep", null
);
People used that for NPC house player sleepovers before so it should work
and just with this, it works fine but ONLY IF the custom sleeping spot is roughly where it would be in vanilla, so I assume that some flag is set (maybe player.isInBed) somewhere in the code but I can't find it~~, but if I set Game1.player.isInBed.Value = true; before calling location.createQuestionDialogue, then it somehow turns back to false before GameLocation.startSleep is reached ?!~~ that was on me somehow, still don't know why my collision code was faulty...
[01:24:02 DEBUG Furniture Framework] player is in bed?, True
[01:24:03 DEBUG Furniture Framework] StardewValley.Locations.FarmHouse.startSleep: is player in bed? False
Hm, good q, probably death location? Mines, skull cavern, or volcano
this still happens: Game1.player.isInBed.Value is set to False between when I call location.createQuestionDialogue and when StardewValley.GameLocation.startSleep is called
oh, Farmer has isInBed.Value = base.currentLocation.doesTileHaveProperty(base.TilePoint.X, base.TilePoint.Y, "Bed", "Back") != null || sleptInTemporaryBed.Value;
I'll look at that
Have you looked into how the tent works
no
Hi, I have a doubt, mostly about Nexus instead of mods. Is Nexus using AI on the mods's images? I can't tell if it's just the authors's own edits or if it's Nexus' doing, or something else (maybe Opera?). I'm not even sure it's AI, but it looks like it?
I've seen a few more with such rendering, and I just wanted to know (I'm not trying to attack these particular creators if they're indeed using AI btw). I have the AI tags blocked, so I know I shouldn't be seeing too many AI-related mods, but I'm seeing so many of these kind of edited cover images
I didn't see any news about it, so I'm a bit lost
fixed with this postfix to BedFurniture.DoesTileHaveProperty:
if (layer_name == "Back")
{
if (__result && property_name == "TouchAction")
{ __result = false; }
if (
!__result && property_name == "Bed" &&
tile_x >= __instance.TileLocation.X && tile_x < __instance.TileLocation.X + __instance.getTilesWide() &&
tile_y >= __instance.TileLocation.Y && tile_y < __instance.TileLocation.Y + __instance.getTilesHigh()
)
{
property_value = "T";
__result = true;
}
}
well the pony was made by hand: it's half pixel half smooth. No way to know if the smooth half is actual art though
afaik, nexus is not (yet?) using AI slop for their own stuff, but authors absolutely are
what I mean is that it can't be a Nexus filter
nexus does sometimes over-compress images and crush the detail out of them (not slop, just webp), but it used to be worse before a bunch of us complained about it
Hm that doesn't really look like AI and instead it's adobe illustrator vibes
It looks pretty intentional on author side to do the vectory vibes
And earthy interior 2nd image is the source that got vector filtered
A search for 14790 shows that it's had this thumbnail since 2022
oh yeah, you're right, this has the vibes of a vector image
i owe you a thousand coffees omg thank you so much
Oh yeah leroy i am working on new technology™
tbh idk how that even happened because i thought i deleted that folder and was using tilesheetinator at the time
@woeful lintel it is a gui for making mods such as furniture
I only did cp vanilla furniture + wallpaper output rn but I did try to oop things so that implementing other kinds of output is viable
You can look at the spaget I'll try to organize my interfaces better 
I'm not touching that until spring, but that is awesome!
Yeah I also need a break from UX fiddly lmao
although I don't know If I'll have the motivation to do any UI work with C#/xna
haven't looked at this yet, maybe it's manageable
The way i set it up is that u get the texture draggy stuff for free via an include
And then u do the right side inputs
although I'll work on actually finishing FF3 when I'm done with my master, I'll look into this after, it's really cool!
Plus the c# model behind it ofc
It means the furniture mode and the wallpaper mode can share a good portion of things
I wish I could make UI for stardew with Godot... I would be unstoppable
Yep lmk if u ever want to poke at it
I think I'll just release it as is for basic CP furniture use cases 
Some of the assumptions I made on handling of assets is a little tied down to content logics bc i want to make this useful for many kinds of cp mods
Chue do you look at xmldocs for this
I should but I think trinkets sucked all fun of xmldoc out of my body

But yeah I'll at least doc the stuff that's meant to be maybe implemented by other ppl
In case I don't know, are there any utility or extra features mods for buildings? 
Yeah kind of?
(modding-wise, not user-wise)
But you gotta be more clear
Buildings can use tile properties so it gets access to lots of things for free
I'll have to meddle with DrawLayers (once again)
Ah I did a lot of that in mmap
But only for stuff vanilla doesn't cover
Here's what's in there rn
I want to have two "skins" for a sawmill building, where one has its watermill at left and one for at right
Oh that one u can do with just vanilla i think?
Is it just for visual or is there going to be a location based input/output?
Visual
Ok drawing is too hard actually so I'll try to explain in words
Firstly your entire building needs to be on 1 texture, don't use the drawlayer Texture field
Oh I meant parsing xml doc stuff for your content pack builder
Becuase I'm terror lol
Idk i don't see how this helps
(you can use the same vanilla behavior as the cabins for building skins if it's just visual)
I still have to make decisions about how to enter the data UX wise
Cont. Although you have to make the dimension of each draw you dont have to fill the frame
So imagine you have a big draw layer rect but skin 1 draws the wheel on left
Is there a way to make an animation change positions based on which skin is used?
I didn't see any on the wiki, but maybe I missed something
In the scheme i described you dont change the position on the actual draw layer
You r just make a big mostly transparent texture and change the position within the big box you gave yourself
So the SourceRect points at an empty space, and the whole thing is one or two or whatever DrawLayer?
I did want to make the mmap stuff conditional on what skin but it is kind of pain
Its not as simple as a "only use this DrawLayer if the skin is this type" because there isn't a GSQ/condition for that AFAIK
Well you can use a non transparent base texture if it's just static
I was only talking about the draw layer itself
The watermill is not static
Yeah but isn't the animated parts a draw layer?
Yes
Mhm so i was only talking about that part
Let's say your wheel is like i dunno 32x64 big
And building is 128x64
We'll put the wheel animations beneath the building, on the same png for both skin
If u make the draw layer use source rect 0 64 128 64 and 4 frames, you can have skin 1 put the wheel only on 0 64 32 64, 0 128 32 64, etc
Ohhh
For skin 2 you'd have the wheel on other side 0 96 64 32, 0 96 32 64, etc
So it'll always draw both "wheels", but because of the placement one is always going to be empty space
Yar
Wrong chat, sorry 🥲
I pulled the numbers out of my hat but that's the idea
ALR Got burnt out for like,,, a couple months BUT finally picked up my modding project again and immediately got stuck so chat how did I mess this up?? 😭
Im not getting any red text it's just none of the dialogue I wrote is appearing in game ksjgdkasj
So you can set a seperate SourceRect for the second skin?
No you have to set the same source rect
But that's why u make it big
So that u can just put the wheel where you need it on the texture
The vanilla limitation is that all skins have the same set of draw layer data, and the only thing that can change is the Texture (as long as drawlayer.Texture is null)
That is why we r doing some gymnastics to give us more room to work with on texture
If both have the same texture and same rect, how is one of the wheels going to be empty?
By having that area on the texture transparent
We r being intentionally inefficient here 
Or do you mean having two Textures with almost the same features?
Well you have 2 textures skin 1 and skin 2 yes?
That part isn't negotiable, it's how building skins work in general
It looks like you are setting CT with an event, did you mean to use a trigger action
Its ugly since it only took 30 or so seconds
Me, who has no idea how to use a trigger action: 
Yeah basically
Thats. Smart 
Although bc it is going to be animated you probably wanna move the wheel down
So that the static building gets it's own rect
And u draw the animation for wheel on the rects beneath
And I just expand to the side when I do seasonal variations, yes?
Yep
Thank you chu, you're a genius 
I should probably look into making conditional draw layers happen tho
It was something i suggested few months back but it's probably not happening for 1.6.16
Yeah, probably vanilla wouldn't use that so nope
This is a bit of a detour from your actual problem though
I think what you need to confirm is whether your CT is actually set
Hmmm I think I'm overwhelmed and am gonna come back to this problem later 😭
hey, im writing a remake of stardew valley for the 3ds as a hobby project, and i was wondering, do the maps hold data for buildings at all or are those loaded all through code, the picture seems to make me think that all object positions are defined in code but i may be wrong
Tyy tho for trying to help!!
The farmhouse has special hardcoding shenanigans bc it's added by game
also what are all those tiledata thingies in the map editor, i get some but for example these:
(Farmhouse scary
)
Those r for grass
oh okay
I think it's probably more useful to understand what you want to do exactly though
the tiledata stuff?
Grass, debris, trees, bushes and MP cabins
If the thing you are making isn't going to be an sdv mod, you don't have to be tied down to sdv shenanigans
i know, im trying to keep the code structured similarly to the original though to maintain it in order
If the thing you are making is meant to be a 1:1 port then I'd actually look at whether it's viable to get some flavor of Linux onto 3ds
are those really cabins, ive never seen them placed right there
[[modding:maps]]
not really 1:1 and the 3ds definitely cant handle linux lol, it has like 60mb of usable ram too
This page explains what these map things mean in detail
alright thanks!
(Oh, I missed stumps and boulders)
i can show my progress though, i got all the maps and tilesheets imported and can load them on 3ds
Retuning to your original question, there are objects added in C# for various purposes
But it's saved to the save file just like if a player went and placed an object
Or built a building
You can look at the GameLocation.objects and GameLocation.buildings for this
They get serialized
C++
(C++)
im setting myself up for failure
This isn't an opinion :)
before c++ i was writing all my 3ds homebrew in C which was even worse
C# is a pretty normal high level oop language with the usual nice things like garbage collection and exceptions instead of segfault
C++ likes to pretend to be this 
this is gonna be a long year lmfao
i wonder if i would be even able to release it if i ever finish it
Probably not if u use mr ape's assets
I'm pretty sure I've seen people do that before
Although i doubt CA would actually pursue but historically fan games never win the lawsuit 
yeah id have to figure out a script that builds all assets from your own game files
The 3ds is really underpowered though so it probably wouldn't run something like stardew very well
It was stopped updating at what, 1.1.0?
¯_(ツ)_/¯
yeah
Nintendo always has weaker hardware. They sell based on gimmicks and 1st-party games
Good luck and remember to have fun 
You may want to start with the 32 bit compat branch
hehe
some maps are positioned poorly thats why they are black
ive always thought about stardew being THE dual screen game
it would go on a dual screen so well, inventory on the bottom screen
ooo 3ds stardew
("there are only two things wrong with C++: the initial concept, and the execution.")
memo to future you: 60mb of work ram is going to be a huge problem for this project, for music in particular
the way base stardew works is all the music is .wav files (huge), and they are all loaded fully into memory at game start. so you will need to essentially reimplement the audio system, and almost certainly re-encode the music files
of course you're already rewriting the whole thing in C++, so reimplementing is not a concern per se
What does actual 3ds game do for the musics
(That rail and white bench are layering shenanigans, but I don't remember the exact problem with them)
The Log and that half-circle are working animations iirc?
depends on the hardware, i'm sure, but with so little work ram i figure it must either use a format that can be streamed or have a dedicated audio coprocessor that can handle it
I would if this was still massive improvement for devs coming from like gba or something
like back on the super famicom you would load up the (essentially midi) data and hand it off to the sound chip and that would do all the music playback, and leave your ram and cpu free to do the game parts
i don't remember much about how the gba does it, if i ever knew
Ive wrote a music player, it definitely took ram but not all of it
is there a framework that adds like, a Skins feature but for furniture? besides AT, i should clarify
Actually it might have been streaming from the files not through ram
Opus format
Yeah
No cus you can just make more furniture items 
yeah, but if you just play that then you don't get to find workarounds for all the insane technical limitations you would surely encounter
gba is arm7tdmi, yes
And ds has an arm9
true
Hey guys, I am struggling to get an event starting and I don't really know why. So I load a jsonfile with the event details into the Data/Events folder with the name of my own custom map. I am just testing, so, so far the whole json file only contains this: {"{{ModID}}_ShipRepairing/": "continue/50 50/farmer 50 50 2/skippable/pause 5000/end"}. Normally, the event should play as soon as I step onto my own map, right? Did I do anything wrong or is there a different way to initialize an event?
You can't use tokens like {{ModId}} in a Load
Oooh, okay, yeah makes sense. But it still doesn't work though
I don't need to initialize an event, right? It should just start as soon as I step into the location, unless I add preconditions of course
what’s the target of your load
Just Data/Events. Should I write Data/Events/the name of my map?
yes
although i recommend loading a blank and then using edit data instead so you can use tokens
Important- it should be the id of your location, which may not be the same as the name of your map
yeees, finally it works, thank you
sometimes it is just as simple as that XD
I have them the same so I don't get this problem XD
also for future reference there is no such thing as "loading to a folder" like your initial assumption. Data/Events, when it comes to assets you target, is not a folder, its just an asset name that happens to look like a file path
but is not a file path
I figured I would mention it bc people get maps and locations mixed up a lot
yeah all very good points
Ooooh, yeah that makes sense XD I had that issue before and I was confused by it, but here I completely forgot about that XD
I also have another problem that I thought I found a solution for, but I didn't XD Is there a way to make a token with CP negative? I am trying to do something like "!HasSeenEvent:hostPlayer": "{{ModID}}_ShipRepairing, but it doesn't work with an exclamation mark. I tried something like "query: '{{HasSeenEvent:hostPlayer}}' = '{{ModID}}_ShipRepairing'": false, but I don't think that is designed to do what I am looking for XD
Not token, I meant condition
Or I guess a condition is a token as well XD
You can do "token |contains=value": false
You can't use a bang to negate conditions
I'll look into that, thank you 
It works 🎉 ty
Soo, if one works, the other breaks

What does ur textures look like now?
Left:
Right:
I managed to stick the wheel back on the right, but now the woodlogs wont appear
If both of their SourceRects are the same, the wheels will be half on soil and half on water which defeats the point
Oh do u need it to be adaptive to where the water is?
I mean the wheel's purpose is visuals
Yeah i mean, do u want to let people change the skin as they please
Or auto change skins for them
I didn't think it'd be a variable so that's on me
I suppose it means sacrificing the logs at the right side (they aren't a big deal, they were there just to make the door's side logically impassable)
Are the log pile a draw layer? or part of the base source rect
Nah i think you just need to make the base sourcerect 1 tile wider probably
If u want to send me what you have I can poke around and try to figure something out
Will get back to u in like 8hrs cus theoretically at work rn
Wow all of vpp 
Well I'm lazy :lmao
What is the keyword to search for?
The data file is in: assets > Data > Buildings > New.json
for everything else Sawmill is enough
The shinier stuff is in the beta .dll which probably that pack doesn't need? 
Yeah the plan is I just min repro the sawmill
Hey I'm actually looking for a mod I used to have but can't find anymore. Does anyone know or remember the Wetlands scarecrows that were bird ect?? Thank you! Much appreciated
#modded-stardew might know?
@polar escarp Hi! A comment on the Seasonal Hats page today reminded me that I never actually released the Fashion Sense integration, so I'm working on that now.
I noticed a few quirks when setting the data through Content Patcher though.
Given this code:
// patch A: add basic hat data
{
"Action": "EditData",
"Target": "Data/PeacefulEnd/FashionSense/HatData",
"Entries": {
"{{ModId}}/Hat/{{IdSuffix}}": { // "ParadigmNomad.SeasonalHats/Hat/DeerAntlers"
"Author": "ParadigmNomad",
"PackName": "Seasonal Hats",
"PackId": "{{ModId}}", // "ParadigmNomad.SeasonalHats"
"FromItemId": "(H){{ModId}}_{{IdSuffix}}" // "(H)ParadigmNomad.SeasonalHats_DeerAntlers"
}
}
},
// patch B: disable color tint
{
"Action": "EditData",
"Target": "Data/PeacefulEnd/FashionSense/HatData",
"TargetField": ["{{ModId}}/Hat/{{IdSuffix}}"], // "ParadigmNomad.SeasonalHats/Hat/DeerAntlers"
"Fields": {
"BackHat": { "DisableGrayscale": true },
"RightHat": { "DisableGrayscale": true },
"FrontHat": { "DisableGrayscale": true },
"LeftHat": { "DisableGrayscale": true }
}
}
Issue 1: duplicate entries
Fashion Sense seems to duplicate the entries? For example, the content pack adds an entry with key "ParadigmNomad.SeasonalHats/Hat/UnicornFlowerCrownSpring", but exporting the asset shows both that entry and a copy with the key "ParadigmNomad.SeasonalHats/Hat/Unicorn Flower Crown (Spring)".
Issue 2: null field handling
The [Back|Right|Front|Left]Hat fields are null before patch B edits them, but:
- If we remove
patch B(so they stay null), Fashion Sense injects the default values. The hats work fine in-game, but the color tint breaks their design. - If we keep
patch B(so the fields are initialized to the default value), Fashion Sense skips setting the inner default values. The hats are invisible in-game.
Changes in the final asset when patch B is applied:
- "HatSize": { "Width": 20, "Length": 20 },
+ "HatSize": null,
- "StartingPosition": { "X": 0, "Y": 60 },
+ "StartingPosition": { "X": 0, "Y": 0 },
- "DisableGrayscale": false,
+ "DisableGrayscale": true,
Does the content pack need to manually override HatSize + StartingPosition with the defaults in order to override DisableGrayscale, or is that a bug?
Issue 3: wrong texture used
Seasonal Hats has five versions of each hat: four static versions (spring, summer, fall, winter) and an auto-seasonal version. However all the variants for each hat somehow use the texture for the spring variant.
I can send you a zip of the content pack (and Content Patcher 2.9.0 which it needs) if you want to try it in-game.
You may want to ask about this in #making-mods-art
hmm okay ty ty
gonna return with more code conundrums shortly once my computer stops being bitchy 
code conundrums time! I have a few trigger actions that are supposed to run upon holding and drinking the custom item i made, but sadly they don't work
here's the log and the 2 .jsons involved: https://smapi.io/log/1b21220115404cac9166404ce9224dde https://smapi.io/json/none/ea7d2611c97d41f2800206ec473520b2 https://smapi.io/json/none/155d3c617f244346bd2ef3654d5f630c
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 49 C# mods and 22 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Issue 1 is due to Fashion Sense using the item's name (extracted FromItemId) . It really should be using the given entry instead, I will get that corrected (so ParadigmNomad.SeasonalHats/Hat/UnicornFlowerCrownSpring would be the correct one).
Regarding Issue 2, definitely a bug! I will get that fixed so those two properties are set if they are not given (instead of only setting if the entire model is missing). That way you can set DisableGrayscale and still use the default position / size values.
For Issue 3, I will need to take a look at that content pack and test to see why the texture is not displaying correctly.
hellooo got more questions, does prefixing a condition with ! to make it negative have an equivalent for CP when token things?
Yeah it's the |contains thing mentioned earlier
Here you go!
Repro steps:
- Install these mods.
- Load a save.
- Activate the hand mirror.
- Navigate the Deer Antlers, Elk Antlers, Flower Crown, Mossy Flower Crown Elk Antlers, or Unicorn Flower Crown options.
If you have CJB Item Spawner, you can search paradigm to find the original items to compare their sprites.
The Fashion Sense edits are in patches/add hat with season.json, which has a workaround for the null field issue:
// HACK: when overriding `DisableGrayscale`, we need to explicitly set `HatSize` and `StartingPosition` to their default values.
// These fields are null at this point, so this will initialize them to empty data models.
"BackHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 60 } },
"RightHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 20 } },
"FrontHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 0 } },
"LeftHat": { "DisableGrayscale": true, "HatSize": { "Width": 20, "Length": 20 }, "StartingPosition": { "X": 0, "Y": 40 } }
Let me know if you need anything else!
The normal "token": "value" form is basically "token |contains=value": true

Is it possible to spawn monsters on a custom location with content patcher or do I need FTM?
need FTM or SpaceCore yes
item extensions can do monster spawning upon item use too!
you can have monsters that are reskins of vanilla monsters with custom drops and stats
if you want new behavior that's C#
but bats/mummies/duggies/crabs/dinos/shadow guys/etc. should cover all the basics
(eavesdropping bc also curious)
Like, I'm planning to add a new monster with new sprites and with an existent behavior, it only attacks, doesn't do anything new, is this possible with only content patcher?
with content patcher and a framework, yes
hmm, maybe could monster variety be used for that?? idk, i haven't messed with it yet
to nexus i go!
monster variety adds variants to the vanilla monsters
Oh oki, do you have any frameworks to suggest?
Oh oki oki ty!
you want to spawn new monsters in new locations, that's those two mods
aight here's the monster variety docs! https://github.com/Mushymato/MonsterVariety/blob/main/README.md
as I mentioned, use MV if you want your monster to occasionally replace the ones the game spawns in the mines
just to clarify since I can be unclear at times
yeah, it does seem like effectively a fancy reskin thing that enables custom loot and specific times for said reskin to apply, BUT it does seem like you might be able to add vanilla monster to a location and mess around with their sprites/drops, and then only make that variation apply when in your custom area?
that would, for a third time, be FTM or SpaceCore
oh, to spawn the monsters or all of it?
all of it
gotcha gotcha
no u cant i specifically didn't do that
ohhh
yeah I implicitly said that but didn't want to say it conclusively since I don't own the mod
it can add skin to monsters spawned by other means but spawning is not it's job
oh yeah, I know that bit
that is how bog/aba chose to use it
i can suck at phrasing things at times-
We have had to make it very clear on the mod page that it doesn't affect how many monsters spawn because we keep having comments saying that it's causing too many/not enough monsters to spawn and I'm like "no you're imagining that" lol

How do question dialogues work, and more specifically how do action question dialogues work (such as backpack upgrade, or house upgrade)? Like, those are questions that specifically do not have a followup; but if I try to not add a reaction with $r, it doesn't work
Hii so im pretty new to modding in general..
after looking at things for a short while, i figured out what I wanted to do probably? has to be done with harmony, but I wanna just ask here to confirm my thoughts
If im modifying the game mechanics such as friendship/farming/combat, i need to use harmony right? smapi doesnt support this?


