#making-mods-general
1 messages Β· Page 591 of 1
Honestly I don't really know what to do with ambient light it kinda doesn't work for me when i need it
yea
feels more like a placebo
AmbientLight only works for indoor locations
Isn't there a way to ignore outdoor lighting
aw
As wiki mentions under this property
Could you make the map a PIF lol
PIF?
personal indoor farm, wouldn't that give you access to indoor location functions? I might be wrong lol
it's a wild guess
Is there any downsides of just marking this map as indoors in properties
Oh yeah that's a more reasonable way to try
Like it's not that bad unless there's something hardcoded
Like music or
Something else
IgnoreOutdoorLighting can only be set with C#
would be good to see that migrated to a property for 1.6.16 though
i'll give it a look
my water wont work
yea this
you can do indoorWater T
ill try that
Map property as well
thats just coloring though, not obscuring of vision
i dont want to do a hackjob with this
You can make it darker, something like a fog
It's something to really play with Ig
Tho vignette could do a lot here too if you know how to make it work
yea i can do that
i think ill start to work on the soundtrack for this map next, this default desert music kinda ruins the vibe of the area
well the Woods map does some real zany stuff to get its own ambient lighting to scale with the time of day so simply setting another location to ignore outdoors lighting wouldn't be productive
So apparently, the concept of creating colored crops is stored on the seed, not the crop.
So when I randomize which crop comes from which seed, Whatever crop comes from a flower seed, ends up a colored crop
Hello peopleee. I am still having trouble with my house interior- I've tried to change things but it didn't work. I ran it through a map fixer and it still doesn't load. I have no clue what I'm doing wrong (knowing me it's probably something extremely simple that I just missed or can't understand). https://smapi.io/log/faa1da69ff214f48a44b6cf8e5e1e3b2 Any help would be extremely appreciated 
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 21 C# mods and 8 content packs.
Are you able to load up your .tmx file in a code editor, like VSCode? You need to find lumi_towninterior_fronttiles and remove the file path and make sure your mod is listing lumi's mod as a dependency since you aren't using their tilesheet for your mod, but rather your mod is depending on their mod for the tilesheet to load. Usually when someone makes a map, I often see them use another modders tilesheet but forget to remove the file path.
"Surprise Everything Gift loaded map 'assets\Maps' with invalid tilesheet path 'lumi_towninterior_fronttiles'. The tilesheet couldn't be found relative to either the map file or the game's content folder."
"SMAPI blocked asset replacement for 'Maps/Kandie.SurpriseEverythingGift_InteriorOfKandiesHouse': the 'Surprise Everything Gift' content pack incorrectly set asset to a null value."
"Couldn't create the 'Kandie.SurpriseEverythingGift_KandiesHouse' location. Is its data in Data/Locations invalid?"
imporant lines of the log
I can yes. I have already listed that mod as a dependency. I've tried to change the file paths numerous times but it still doesn't work
try having a copy of it in your mod folder and have it pathed to there
bc if that works then your only issue would be how you're having it get that tilesheet
What does that mean, exactly? Do you mean have a copy of the mod in my mods folder? Or the folder where mods go? I'm sorry if that doesn't make sense
the png for the tilesheet
Ooh ok
Yeah put it next to the tmx file
Alrighty
Okay so I did that and tried to go into the house but it still didn't work https://smapi.io/log/b4fd9260eae94bbe99b0b1cba97983be
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 21 C# mods and 8 content packs.
now its the tilesheet 'z_luan.Extras_furniture_Rugs2'
Yeah looks like it resolved the other error and moved onto the next, so it would be to do with how the tilesheets are setup
how many tilesheets did you borrow from, not the location of your map π€
oh true howd you set em up?
I can't remember, I'm sorry
Are you able to load up the TMX file in a code editor?
Yes I can
xan is there a smapi log share for tmx files?
I wish haha
Are you able to do that and do a search for one of these tilesheets and see if it has a file path?
Oh ok
π
What do I do now?
π€£ show us
not exactly, though you can use https://stardew.button.gay/tools/mapfixer to check your map and fix common issues yourself
Map Fixer: Upload .tmx files to fix common map errors.
it's never acceptable to send a screenshot of text π
Faster to copy paste the single line of code
Okie dokie
<image source="lumi_towninterior_fronttiles.png" width="400" height="2192"/>
Like that?
Yup, and that looks correct as well
πββοΈ idk what this means, seems important and blueberry could help, its missing specifically the tilesheet, not the file for it
the tilesheet is set up in what i would imagine is effectively limbo
you're using it obviously but the game and mod cant find it
Next step would be to look at the JSON for how the map is loaded
Your loading of the target map I guess? Like where you have coded up in JSON about this location you used the tilesheets for.
You can put it here: https://smapi.io/json
And then we can see it.
"assets/Maps/InteriorOfKandiesHouse.tmx"
Is assets meant to be upper case?
Your folders will tell you, check your assets folder that holds all of this
Make sure your folder paths are correct.
Okay I checked. It is uppercased. Should I change it?
ye
You should make sure all your coding reflects the file paths exactly
Okie dokie
You have a lot of lines with lower case
you have the exterior capitalized right though so i imagine that's why it's there πββοΈ
Yeah test it after making those changes
log :3
Give me a second, my father needs me. Sorryyyy
dw bro
Well the file paths might be working now, but you are having issues entering the location maybe because of the entering tile and exit tile are the same (19 31)
Oh- I'll try change that
that doesnt matter if its a click action, the exit is only when you move π€
What should I do, then?
is it a c# mod?
and the log is win+r "%appdata%" (or find it urself in user), roaming, stardewvalley, errorlogs
oooo :3 i cannot help you, @brave fable do you know c# or who would be able to help with this?
lowkey might wanna see if you can find anything online and if not sleep on it see if anyone replies in the morning π
Yeah as much I would like to help I need to hop off the PC soon, but could point you in the right direction @neon gyro
Ok, and you've done all of this as a SMAPI C# mod not any content patcher or any frameworks or anything else along with it?
Have you made mods using C# before? Or is this your first time?
Ok that's awesome you're giving it a go! So without seeing your code it's hard to know the exact issue, but I assume you're trying to add a wolf like a monster?
Be careful with YouTube tutorials, they get obsolete very quickly
I see, so it might be a good idea to go into this with one specific goal, and if you want to put your Wolf into the game, you'll need to decide how it will be in the game and to what capacity. I think focusing on it being a monster would be best, but it will be a bit hard. There have been users asking for a custom monster framework, I've looking into it and the scope is quite large and I haven't got the time sadly.
Ok you could have it spawn like a creature? I could suggest Nature In The Valley, but I would be biased since I use it myself for my mods π
There is also the option of having it like a companion or trinket, there's framework for that as well.
It's a framework that allows you to create something much like what you want, and they spawn in the maps, and you catch them with a net.
No problem! If you need help with Nature In The Valley or Trinket Tinker type mods, you can find me, same name, on Nexus and pm me
Trinket Tinker is good if you want the wolf to follow you around and use abilities.
And these only require content patcher and their framework, you don't need any C# so it would be a bit easier to start with too
The mod frameworks I recommended
The files you mentioned for your C# mod are fine and quite normal for what is required. It does depend on how they are coded of course. Also, to append your wolf to the usual vanilla spawning pool, you might need to use Harmony.
This isn't too bad at all actually, I think your main concern in this file would be the getRandomTile because you really want to make sure you can find a valid spawn tile first.
Sometimes tiles can be invalid
Ok so basically, doing something like Vector2 spawnTile = location.getRandomTile(Game1.random); is like saying, give me any tile for this location.
So instead of just doing that, you do this:
- Pick a random tile
- Check if the tile is valid
- if it isn't, try another one
- keep going until a valid one is found
So you'll want to do something like for (int i = 0; i < 30; i++)
Try doing this process up to 30 times
and in that, you'll want to do your getRandomTile, then if the tile is a location on the map, if the location is clear/valid, if it is not too close to the player etc,
if all of these things pass, then use that tile, otherwise skip and try again
Your spawn error may be related to something else in your wolf.cs but this makes your spawning safer.
No problem π
I see now, yeah that's where you crash is happening.
You are trying to build a wolf but before your wolf code starts, Stardew is trying to load the monster info for 'wolf' and it can't find it and it crashes.
I think remove this line:
var monsterData = Game1.content.Load<Dictionary<string, string>>("Data\\Monsters");
at least for now
and simplify it
instead put it's values like health, maxhealth, damagetofarmer etc.
Yeah keep it simple and see how it goes
You could do something like just this:
public Wolf(Vector2 position)
: base("Wolf", position)
{
Health = 50;
MaxHealth = 50;
DamageToFarmer = 7;
}
And then expand from there
I am not looking at it in my VSCode atm, but yes it looks like it
I am getting ready to head home from my PC lol
So I am out of time I'm afraid lol
You've got a good handle on it though, just keep at it π
Goodluck!
Okay sooo- I managed to get the map to actually load (I just copied the tilesheet things I was using into the map folder. I'm not gonna keep them there, I just did it so I could test to make sure everything worked.) But it seems like something went wrong-? I mean, I can walk around the house and everything but-
Loiks like somehow the front layer got offset??
That's what I figured. Is there anyway to fix it?
You probably moved the layer in Tiled which isn't supported by SDV
You have to move it back to match the game positions and then crop everything out and paste to the right place
Dang, alrighty then
Is that a Front layer?
Yeah
Just click on it in Tiled menu and then press M and move it two tiles up
Then press ctrl a, ctrl x, ctrl v and put it in the right position
This way you move tiles and not the layer
Oh okie dokie. Thank youu
i make translations for some mode but when i enter the game translate not working i cant understand why anyone can help me?
I don't have access to my laptop atm so I can't look for it rn. But does anyone know how'd you add support for putting hats on an item similar to the alien rarecrow?
probably patch checkForAction and draw on the object's class, and store the hat in a custom modData field; you could use preservedParentSheetIndex like scarecrows do, but that might conflict with some object types
and doesn't preserve any info that a string in modData wouldn't, anyway
I havent played since forever, any updates about what mods HD portraits need? Last I checked only portraiture was widely used, curious on what changed
spacecore too, me thinks
I honestly really hope the issues I found for SpaceCore get fixed or even just acknowledged before my mod is ready to release. They've been up on Github for about a week but there hasn't been any activity yet
For the time being I might just need to lower the speed debuff for my debuff to 1, so it then gets doubled to 2. Cuz -4 speed is WAY too big of a downside π
And hopefully it's not something stupid on my end that's causing the effects to double 
they're looked at, don't worry. Casey is just busy.
Alrighty
im sitting in a similar boat with a diff spacecore issue, hoping it'll get fixed lol
Btw I'm not too familiar with GitHub, am I able to give my posts the Bug tag or does Casey have to do it themselves?
im sadly not too knowledgeable bout github either, sorry
Ah, alright no worries!
if you want to try, the labels thing on the right sidebar looks like this when you're allowed
not sure what github's default rules are for those either, though
ah, supposedly it's for people with repo permissions only
Dang, alright
A week is a very short time in terms of typical spacecore updates, fwiw. If you send a PR you might be able to get Casey to take a look a bit sooner (since itβs easier to just merge in), but mainly it depends on her schedule which is a bit unpredictable.
It depends on what permissions you have
Questions:
a) is designating this map as a cellar instead of a general location causing the player to warp to the farmhouse entryway upon exiting it, regardless of the warps I made for it?
b) if I change it to a regular location, how would I add cellar (cask) functionality to it?
the relevant content.json excerpt:
{
"Action": "EditData",
"Target": "Data/Locations",
"Entries": {
"{{ModID}}_GreenhouseCellar": {
"CreateOnLoad": {
"MapPath": "Maps/{{ModID}}_GreenhouseCellar",
"Type": "StardewValley.Locations.Cellar"
}
}
}
},
Cellar type locations are hardcoded to have every warp lead to the farmhouse yes
You can add the map property CanCaskHere for non-cellar locations
so "property": "cancaskhere" (with the proper coding grammar) would do this? or would it be "addproperty": ?
I don't know. CP's EditMap documentation would say. Or just add it in the tmx itself
For others: it's "mapproperties"
Okay, how do I fix my mod's CP errors? They are mostly related to a pair of map patches that add a seasonal background behind transparent greenhouse glass. The mod's name is "Greenhouse with Orangery and Cellar for SVE", aka "GOCSVE".
I'm pretty sure the error: game issue is a case of updating one section of code to match another.
(Yes, I need to update/replace some other mods; however, they are not the root of this problem.)
https://smapi.io/log/9620d424c48e4d9eac02cbe3413f0edf
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
I would also recommend Tilesheetinator if you're not already using it
Um. How does that butt into this:
(I know that three of the seasonal maps are absent. That will change once I get the other problems ironed out.)
And yes, I use tilesheetinator.
@torpid sparrow: look at closedmessage stuff (18h ago)
oh fuck
i frogot i was gonna do that
Remind me to look at closedmessage stuff in 6 hours
il smack ye upside the ead strawhatwem i sware on me mum. but ok just this once mate (#7148470) (6h | <t:1776382005>)
I think it's a mod called Emily Reimagined. can't find it tho.
I'm not familiar with how to use it personally, but at a glance, it sounds like you'd use the plugin's "set vanilla maps folder" and then "fix missing tilesheets" options, then save the map again.
The affected CP entry is this one: Greenhouse with Orangery and Cellar for SVE > EditMap Maps/Greenhouse #3. It's apparently loading a map just called assets , and that was edited while spring_outdoorsTileSheet wasn't in the same folder as it.
Tilesheetinator apparently works around the issue, but it's what tilesheet climbing errors are about: every tilesheet image needs to be in the same folder while editing a map file, or Tiled adds relative folder directions that don't work in SDV.
π€¦ββοΈ
(oh, and the #4 greenhouse edit too)
There is no map called assets...?
and the Greenhouse #3 & #4 edits are taking the top and bottom 6 tile rows of a backdrop map that is 8 rows high. One of them needs new coords.
I'm not sure why the log's saying that, but I can take a look if you upload the content file they're in https://smapi.io/json
never in my life ive seen so many tsx in a mod folder π
there may be an edit with "Target": "asset" by accident, from the sound of it, but sometimes errors get offset by weird issues
yay got the debuff working 
the icons are fun to make
EditMap Maps/Greenhouse #3 and #4 seem to be assets/{{ModID}}_GreenhouseBackdrop_{{season}}.tmx, so you'd want to run the tilesheet fix on that; CP might just refer to it by a weird name when it's an overlay/replace/etc, I'm not sure
I think the map called assets in that error might be referring to the tilesheet name/ID?
Could absolutely be wrong but that's the only thing I can think of
Following my attempts to correct the tilesheet issues:
https://smapi.io/log/ff50fc0a8f1844e6900b0b4f0c25a8f7
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Forage clarification question here: When it says "the game
combines this list with any forage in the Default location entry;
adds every forage entry whose Condition and Season match to a spawn pool;"
Does that mean, in making custom forage for my Glade location, other "regular" seasonal forage will spawn? (Daffodiles, leeks, etc)? Or does this just explain how it pulls from the list I provide?
i would rather my location only spawn my own forage but if thats gonna get complicated it is not a big deal to me lol
I just havent tested it myself because I still need to make the sprites for my custom forageables
could use placeholders too though ig and just test it myself
I believe you're correct
if you just want your forage you can use FTM/SpaceCore and disable vanilla forage spawns
does anyone have any idea how i could have like sandy particles fall off of my character when the debuff i made is active?
alas, my stubbornness makes me want to avoid dependancies as much as I reasonably can
Ill test it out a bit, i can also just fumble around with the spawn chance and see if I can weigh it out to mostly be my own
tbh ive been wondering myself...so far i havent seen any default vanilla forage spawn on my maps(besides the ones I put in myself) so it just left me even more confused
so you've still got the same tilesheet directory issues-- just to confirm you've used either patch reload or reopened the game entirely after your changes?
on a second check it seems like the Default location doesnt actually have any forage added
so it seems using the vanilla forage feature is fine
Skylark, If you have and it's still erroring, I can walk you through how to check the TMX in a text/code editor for the directory climbing if that helps? I usually fix mine that way rather than trying to re-link them through Tiled.
complete reopening. Hm - I think I forgot to to fix the cellar tilesheets, but that doesn't explain why #3 and #4 still aren't working in-game..
Also, do you know if you're embedding your tilesheets?
the embed shouldn't necessarily matter here unless you aren't and then the issue might be in your TSX file instead
(That error comes from SMAPI, not CP, but I can't figure out why it's using the folder at all, since its supposed to be set to the name of the pipeline asset that is being loaded...)

Oh maybe I'm thinking fishies
No idea. looking up how to tell.
it's almost certainly unrelated to the tilesheet error, but this line should be removed
https://smapi.io/json/content-patcher/f15f3ac9afdd4ed191b37b2a212f694e#code.22
"StardewValley.Locations" isn't a type
(that or it should be "StardewValley.Locations.Cellar", if that was the plan, I lost track a bit)
alright, well, in case you're curious, I've gone ahead and opened up one of my working TMX files inside Visual Studio Code and screencapped it so you can see what a vanilla + modded entry with a custom tilesheet looks like:
highlighted the relevant bits
Vanilla doesn't use the file extension, but my custom one does, and it works fine. The important part is that there are no directories before the image source file's name.
.Locations changed to .GameLocation
Just to confirm: the ones without the - black keyboardsmashing(?) are what I should be seeing.
the sceenshot with the image source and not the layer names is the right section to look at, yep
That said, I am baffled by that first screenshot, I've never seen one with compression values like that in an unpacked TMX. xD
TBH I included the other one only because the strings of apparent nonsense are a bit alarming.
It's just compressed data
Hi! Does anyone know the name of the sound that plays when the player puts an egg into the mayonnaise machine or milk into the cheese press?
yep, I'm just not used to seeing them compressed in the editor
the text is data encoded into a base64 string, it's used to embed files as text without actually having a separate .png or whatever
e.g. my HTML editor for FTM has ore icons like this
And now I know a) it's completely fine and b) not to touch it.
In this case it's just compressed tiles
Not images
Like instead of the big block of 0,0,0,1,53,0,0,1,0 etc you see
I have that page, but I donβt know which of all the sounds handles that effect.
yeah, my first impression was image but the layers don't work that way
You can even change it to XML instead of base64 or CSV if you want. It's ugly though
if it's the same/similar to the shipping bin sound, it'd be Ship
Thanks
It should be in DatA/machines
Sorry, didn't want to assume but too busy to find it myself.
Most of the machines tend to use Ship for the "load item" noise, there's only a few exceptions that I saw on a brief check
Hm. Well, all but one of my applicable tilesheets are embedded, and the one exception is not showing up in the tmx code.
Donβt worry, with the clue fireredlifly gave me I think I know which one it is from the description.
(I did confirm in Data/Machines that it is in fact Ship)
Thanks
Hey. Has anyone been able to get underscore76/TASMod1.6 working? It looks like I'm messing up the installation somehow, and all the Stardew APIs are coming up as null.
My experience with dev is mostly typescript, so I'm no doubt messing up in a really basic way
I'm looking to automate a play through, and underscores vids are fun example I want to replicate
I have installed the nuget package, but I don't know how to check to see if it is in the build
I believe @vestal thorn is the author
Hah, they are, didn't realise they are here
It doesn't show up because it's not embedded. Embedding is putting the relevant tilesheet code in the .tmx. If it's not embedded, you probably have a .ts_x_ you can open instead
(Or you can just embed it)
Yep, earlier when I asked if they were embedded it was because any not embedded are looking for a TSX file
And the TSX file can ALSO have directory-climbing tilesheet paths to be fixed.
I both love and hate making custom fish. Love because I can make silly crap pop out of the water. Hate because I'm detail-oriented and want everything covered; fish item, fish difficulty, fish location, fish pond, roe, aquarium, and anything else relevant. So time consuming just for one fish, and I have like 20+ ideas I want to implement. Thank god I have templates from prior experimenting lol
nexus link? π
https://www.nexusmods.com/stardewvalley/mods/34522 all my stuff is noted (I think those are notes? They are for me lmao), and it's all bare minimum. My file organization might be weird though, fair warning lol.
I did put notes just in case anyone needed to use my mod (for some god forsaken reason) as a template, so hopefully it helps you in some way
you can... hatch... jas?
..I see
Everything in that mod was a spur of the moment "haha what if" thing. Don't question it, even I don't have the answers lol
that's just the modding process
We're stealing hat mouse's children now eh?
Not stealing; creating. 100% entirely artificial with zero artificial additives.

That made absolutely no sense, but neither does my mod so whatever lol
I do want to make an Alternative Textures addon for my mod though. Give my critters some extra skins and whatnot. Need to learn how to do that for modded stuff. After I make more fish.
||fun fact; I originally had a tiny mutant Lewis as a coop animal. Scrapped him though||
so for a long time I wanted to start making a mod for sdv, so i started investigating but there is something i have not clear yet
what are the limits of content patcher?
because I read that content patcher was for simpler things
but also I read that it started admiting more complex things
Now in the 1.6 era you can do multiple animal skins through Content Patcher, no AT required (though AT's tools fully support them)
The limits of what you can do with CP are very very large, it simply cannot be summed in words. There are also other frameworks to do things that CP can't, that work in the same way as you would use CP (json editing).
That said, if you can tell us what you're wanting to make, we can tell you whether it's doable with CP or not (or possible with another framework)
I wanted to add maybe new weapons/tools, crafting stations, mana bar (my general idea is like a magic mod)
are these instructions still current/accurate?
https://discourse.mapeditor.org/t/embed-a-tileset/6971
I usually do those changes in the code-editor so I don't have to fight with Tiled-- there's some weirdness where if all you do is click the embed button, it won't update properly. So you usually have to embed it, change a tile, save, change tile back, save again.
Here's an example of me fixing someone else's from the code editor previously if you are comfortable with that method: #making-mods-general message
(it's easier if it's a tilesheet from a vanilla tileset, because you can just open any vanilla TMX that has them and copy the tilewidth and height data from there.)
downloaded and renamed it with your written instructions.
how do you get the firstgid number?
the firstgid number is set by Tiled when you add a tilesheet, embedded or otherwise, you never want to change that inside the code from what it was originally in your sheet or you might get an invalid GID error.
hm.
Mine may have changed slightly in the example I posted because they had zeroed out tilesheets with no tile count (tilesheets that appeared completely empty when opened in Tiled)
Did embedding them in Tiled do anything?
"Every tileset has its own, independent local tile IDs, typically (but not always) starting at 0. To avoid conflicts within maps using multiple tilesets, GIDs are assigned in sequence based on the size of each tileset. Each tileset is assigned a firstgid within the map, this is the GID that the tile with local ID 0 in the tileset would have."
^ how Tiled determines the GID if it's needed
(editors note: the GIDs may not actually be in sequence in the layer itself if you start rotating/mirroring/flipping your tiles)
(thanks Button!)
(in case you ever wonder why sometimes a .tmx has like, 2336587 as a tile ID for some reason... thats why)
is this phrasing correct?
</tileset>
<tileset firstgid="###" name="z_GlassPanels" tilewidth="16" tileheight="15" tilecount="16" columns="4">
<image source="GlassPanels.png" width="64" height="64"/>
Button js it a bitmask
obviously ### is a placeholder
haven't pulled the gid yet
the first 4 bits of the ID number determine the flipping and rotating and should be cleared/handled/ignored when reading the id if you count that as a bitmask
you should not be manually calculating your own gids
you shouldnt be touching anything about the gids or ids or tilecounts etc
if you embed them Tiled does all that for you. at most you should only ever need to touch the image source
(You do need to actually make sure the map is saved after you embed)
Nothing should need to be manually written out or calculated, yeah. It's either only touch image source or info copy/pasted from a working source.
tilewidth and tileheight need to be 16 or your grid will be all wonky, and it should already be that from the working sources.
typo!
How would I make a character speak in small text in an event script?
like they're murmering under their breath
I think most events just use the speech bubbles / text above head for that?
See Robin's "Hmph" from the initial farmhouse scene after she's called out by Lewis for calling your house crusty to get you to buy an upgrade.
Suggestion: preface it with (aside) as per Shakespeare's play directions if you don't want to do that and can't adjust the text size?
or (under their breath)
nvm found it already embedded farther down in the tmx.
so it's throwing errors when all the tilesheets are as they should be.
send me the TMX?
ah that works
Thank you
also the new log preferably
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 44 C# mods and 41 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
okay, so the image source for z_outdoorsTileSheet was still directory climbing in GreenhouseBackdrop_spring.tmx
of course it was. Thank you!
(line 98/99 in the TMX)
Just got off work, whatβs the error youβre seeing?
it needs to be <image source="spring_outdoorsTileSheet.png" width="400" height="1264"/> , right?
yeah, you're just removing all the /.../ stuff before spring_outdoorsTileSheet.png
also your z_spring_Shadows are still an unembedded TSX in GreenhouseBackdrop_spring, so check the image source in that TSX file if you have a separate/custom one included in your mod, and if not, embed it.
those have been removed because I'm not sure I need to use them - I'm undecided on if it's worth adding tree shadows to a seasonal greenhouse backdrop.
okay, please note that if you remove a tileset in Tiled, you'll need to do the same change a tile, save, change tile back, save again trick to update it
removing tilesets will shift all the subsequent GID values down, so you have to do it that way to remove tilesets safely
it was unused, but I'll add that to my tiled notes doc.
It's also the last one in your tmx, so it's less of an issue, but just good general knowledge
It isn't throwing errors anymore but the backdrop still isn't showing up!
Back to the CP github with me! πΆββ‘οΈ
hmm... do I need to use replacebylayer instead of overlay?
testing
it will actually be the other way around.
I've put up a GitHub issue explaining more, easier to give context there, cheers
Nope! 
y u no work, code?!
//seasonal greenhouse backdrops
{
"Action": "EditMap",
"Target": "Maps/Greenhouse",
"FromFile": "assets/{{ModID}}GreenhouseBackdrop{{season}}.tmx",
"FromArea": { "X": 0, "Y": 0, "Width": 35, "Height": 6 },
"ToArea": { "X": 0, "Y": 1, "Width": 35, "Height": 6 },
"PatchMode": "Overlay"
},
{
"Action": "EditMap",
"Target": "Maps/Greenhouse",
"FromFile": "assets/{{ModID}}GreenhouseBackdrop{{season}}.tmx",
"FromArea": { "X": 0, "Y": 2, "Width": 35, "Height": 6 },
"ToArea": { "X": 0, "Y": 36, "Width": 35, "Height": 6 },
"PatchMode": "Overlay"
},
(ReplaceByLayer doesn't work, either.)
ugh. I'm going to eat before dealing with this.
i believe you might be missing two underscores for the .tmx
They are there but because he didn't put it in back ticks, Discord made them italicize text instead
(I would suggest a: a patch summary and b: adding a priority in case some other mod is overtaking it)
(patch export also exists)
(this is also a good idea)
Silly question and let me know if I should ask in a different channel.
I use Gwenβs medieval buildings with content patcher and it changes Lewisβs truck to be a wagon.
This was like fine, except for when I started using Coal Point Farm, where one of the characters is working on Lewisβs truck frequently, once you fix the bus. Given that his truck is now a wagon in Gwenβs Medieval, it looksβ¦ off.
There isnβt a configuration in her mod to disable the truck alone.
The only thing I can think to do is edit the art in the file and replace it with the truck from earthy stardew valley for personal use, but genuinely canβt think of anything easier I can do to fix it.
Thoughts?
The truck is probably an EditMap inside coal point
You can try looking for it and commenting it out
Thatβs the thing- there is no truck- itβs a character on a platform thatβs made to look like itβs under a truck?
But because thereβs no truck it just makes it look like heβs half cut off laying in front of a wagon
I can send a picture in a bit when I get home
I would prefer to have the truck instead of the wagon as the solution I just donβt know how to go about making that happen
Yeah! Itβs a schedule animation
Ty
Yeah then if u wanna art u gotta go edit the pngs
Thanks! Iβll grab a pic when I get home to explain better and ask there
You are able to make this a content patcher mod if you wish to share it with others
But it's ok if u just go change the png as is for personal use
Thatβs true, it would be compatibility fix between the two if I could manage a content patcher mod
Iβll look into it; thank you for your help!
does anyone know if it's possible to have the farmer swing a specific weapon in an event?
could empty (no tiles) placeholder layers be causing this?
Invisible tiles could overtake yours if they are not using Overlay and load/edit after you do.
so all of the layers in the backdrop tmx are background 1 , etc, and in the greenhouse map there are corresponding empty layers with the same names under the other ones.
so they should be being effected when CP replacebylayer's them
...is the issue that the backdrop also needs dummy layers?
Hello community, I was wondering if anyone can point me towards places where I might be able to commission a coding wizard to help me fix my existing portrait mod. Because I have zero idea on what I'm doing for this update, I refuse to use AI, and would love to pay someone to help me make some fixes.
!commissions
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
Sick, thank you
But a portrait mod is easy to make (art aside)
I have all the art down
You can try it yourself
Its the coding, since it's for Lance from SVE
okay, so I've opened the vanilla Greenhouse for now since I don't have SVE downloaded, and in the vanilla map, for instance, the walls are actually mostly on the Buildings layer
So to cover it, your tiles also need to be on the Buildings layer or Buildings2, etc.
It's not really different for him, still doing editimage stuff basically
I mean, I already have the code working, but there are some really weird things I need to fix since Flash placed Lance sprites all over the place. My new sprites do not overlap with the old ones, so I can't overlay
And I don't want to mess with people's recolors
Hm why wouldn't your's overlap
What do you mean by them being placed all over the place?
Ah, so there are like six different tile files with stray Lance sprites
!modder's pie
If u wanna get fancy use the mask feature added in 2.9
I am not at all competent in coding, I made this mod a year ago and I'm finding that people are getting the OG sprites for certain events
But I have an update for the portraits, I just want to get the random things dialed in if that makes sense
I did replace the sprites, on those tilesheets, but I don't think I have the callouts right. Beyond that, all the sprites are on big tilesheets which would change people's recolors of SVE. I think? I'm not sure what I'm doing haha
You'd have to get more info from people who's encountering the bugs like which exact event
For editing big images you can use ToArea
Thanks, I'll make a note of that
The new Mask feature added in Content Patcher 2.9.0 allows you to target specific sections of a sprite sheet to remove so you can follow up with an Overlay for only those you want to change.
(helpful if your new sprite is smaller than the original or covers less pixels in spots)
Thank you both for taking the time to explain!
Yeah my sprites are on the left, when I last did a comparison
Thank you guys for the direction!
sooo is this a naming convention problem? (paths layer not shown in the screenshot with the tile data layer)
Yeah, you can't have Layers named Backdrop, they will not be found
The only acceptable layer names are:
- Back
- Buildings
- Paths
- Front
- Always Front
- And the above names with numbers (negative or positive) following them to denote draw order.
Why do I never find things like this until after I've screwed up? (rhetorical)
Before & after renaming
as you can see, I still have some mistakes to fix....
yep, just some framing to issues fix
some of those just need to move back another draw layer or two
Now, figuring out how to add day/night lighting and what I want to do with the clutter.
Also, if I'm using my custom greenhouse clutter tilesheet (assembled from Nexus tilesheets, with a good deal of my own modifications) in Tiled or making a furniture CP for it so I can redecorate....
On that note, how would I credit the other pixelsmiths whose work I assembled, as such a tilesheet cannot take the normal dependency route?
Well first do you have permission to use edited versions of them
(if you don't, and their mod page doesn't grant permission, then you can't publish the mod, but it's fine for a personal edit)
(And to be extra clear, there is very much a difference between tilesheets made for mod authors to use, and tilesheets made for mod authors to use and modify)
If you're using their unmodified tilesheets in your map and it's a tilesheet mod/resource, then that's fine to have a dependency set. The modifying is where it gets trickier.
The other part of it is that I have no idea how I'd even phrase that ask! The other part is that because of the permissions issue, any version uploaded to Nexus would either use towninterior clutter or be a blank slate.
Importantly, however, my edits are overall pretty small - mostly just recolors and second versions of the long-handled tools so you can have them hanging on the wall or leaning up against it. (Barring my unified defaultwood HxW bakery tileset, which is a whole different kettle of fish that is very unlikely to ever see public distribution.)
Tilesheet mods uploaded to Nexus are generally posted with the intent for mod authors to use them, and it is possible to both use them and upload your mod that uses them without actually including their tilesheets in your download
Any edits on the other hand, however small they are, would need to be asked about unless the mod page specifically says you can modify their files
I've gotten permission to use parts of HxW tiles for custom things in the past, so there is no harm in asking for your specific use case! But I did force the dependency as a requirement of my mod just to be safe.
(Likewise with the unified sheet, since that is also an edit and a collation of things, you would need to ask about that too since you would need to distribute those files yourself if you did)
As for how you can use them (and thus make sure they still get their share of credit), generally a tilesheet mod will use Content Patcher to Load their tilesheets to the game, that way your map will still be able to find them once the game is actually running, even without their .pngs in your folder at all. This works as long as the tilesheet mod is also installed alongside your mod, therefore setting them as a requirement is the way you are crediting them, as others using your mod will still need to download from them
My Laundry Machines mod and my Bathroom Renovation mod both use HxW tilesheets (Bathroom Renovations just uses it as a dependency), and Laundry Machines needed to have modified tiles for animations.
"[og pixelsmith username], hello I am a tilesheet chopping manic who has made a crazy frankentilesheet of assets made by yourself and various other community members and with futher minor edits to it in the form of additional color and shadow variants, what would you like me to do about this regarding permissions?"
Slick.
That's one way to ask. Remember they ain't required to say yes, though.
Obviously!
And if one says no, you cannot include your edits or distributions of their work in your publicly distributed mod.
You'd have to redesign your map to use them from the pipeline, if possible
Tbh I'm not really sure what's the purpose of unifying them
Also, if you've just grabbed tiles from their tilesheet without making any changes to the art, please consider finding a way to use their tilesheet mod as is without moving their art to your own sheet.
Yup. That said, most of what I'm using is HimeTarts and vanilla-derived to the point that I'm not even sure it would be accurate to call it theirs anymore? because at this point it's more of a modified vanilla asset. Most of what I've been editing is HimeTart's.
Re: Fireredlily's point - my brain: whining about liking things in one place
If you modified their art, it is theirs.
Or rather, the edits are yours but licensing rights still belong to them about it
You still need permission to modify and distribute, but using it without modifying means there is absolutely no reason to not use their original sheet / the mod as a dependency. π
I know it may seem more qol but it'll be more annoying for you compat wise
Clarification re "is it actually from their art" : they included a vanilla asset in their tilesheet. I remade the included vanilla asset with a new pallette and shadows. Thus the "does that even count at this point". Which is mostly quibbling for the point of clarifying technicallities and community rules/customs regarding transformitive works.
Ppl are far more likely to do recolor support for a tilesheet than specific mod
Tilesheet CP with optional funiture catalog?
If it's a vanilla asset in their tilesheet, is there a reason that you didn't just modify the vanilla asset?
Being a scatterbrain.
While it's impossible to say without seeing the vanilla asset or what the other tilesheet maker did to it, I would think social etiquette would still apply there in considering the idea to be theirs, if that is where you got it from. Again though, it highly depends on how vanilla it is and how much of a spin the other tilesheet maker put on it.
Legally speaking, no one here can give an answer (nor should they confidently try to)
π why I specified rules/customs ie not law! π
I'm not sure what you mean by this are we talking about hxw tilesheets
assets from several hxw tilesheets (among others) compiled into a new tilesheet with some new asset variants added. Originally for personal use, distribution in mod form is being discussed as a hypothetical.
with the caveat that it already exists for my personal use
@torpid sparrow: look at closedmessage stuff (6h ago)
GUH I will I have to eat first
Remind me to look at closedmessage stuff in 2 hours
ffs fine fine i'll do it (#7148810) (2h | <t:1776389235>)
HxW Tilesheets (which would be your dependency most likely) is pretty clear in the permissions as it pertains to edits: On editing assets: You may edit assets in these tilesheets like changing colors of elements or including them into art assets directly so long as this mod is listed as a dependency. Ideally, please make sure the majority use is assets as they are and not edited assets.
^ directed at Skylark
I STG I looked for their premissions guidelines and couldn't find them! Probably my brain being its irritating self, as usual.
If you look on the NexusMods page under the Permissions & Credits section, it directs you to look at the mod description. It's there towards the bottom under the mod author instructions. π
Why is my brain like this.
Anyway, behold (some of) my foul deeds! (in an unusable state.)
minor coding grammar correction: "IsPrismatic": "true"
The following is an incorrect guess: You might have to do an animation sprite sheet, but I'm a CP newb.
You can't do that
Might work tho
Is there a c mod that allows to put hats on npc
Ooh I see
(While IsPrismatic wont work for other reasons already mentioned, using quotes or not does not matter for boolean values in content patcher)
(likewise with ints/floats)
Content Patcher will automatically convert for you as needed. That said, if CP wasn't kind enough to do that, the non-quote version would be correct.
In the past I've used "showFrame 35" for the farmer putting down an object (to the right). I'm not sure where I got that frame ID from, but now I just need the exact same thing but to the left. Anyone know?
Good evening, sweets. Could someone help me? Npc used to talk when we interacted with it, but after I started learning how to put the schedule, it stopped talking and I don't know what error to look for.
Content: https://smapi.io/json/none/b96b3427b92e4f03bedc691053a50686
Schedule: https://smapi.io/json/none/a9e6c1ab1aa347daa423c10b9d961620
Dialogue: https://smapi.io/json/none/52bcbc38b7344da89a5128e175a7bf53
Could someone help me fix this? Please!π
the frame references the frame on the farmer sprite sheet!
you want to also load a blank to your schedule, and use EditData to edit it (like what you're doing to Dialogue), instead of loading schedule.json directly
time to tackle shop closed message
did Si update the wiki? im not sure if there were any more developments after i stopped reading the chat for the night
if not ill backread through here and figure it out
Oh, how could I fix this so I don't make that mistake again, dear?
Yeah, it's been updated.
showFrame has a [flip] argument that you can use to just swap the sprite animation to the other direction
Which is needed in this case
- Load blank json into the schedule asset
- Include your schedule.json file
- Edit schedule.json to resemble your dialogue file (has Changes/EditData targeting your schedule asset)
showFrame <actor> <frame> [flip] so showFrame farmer 35 true to flip it around
thank you I missed that somehow
also this is relevant: Note that setting the farmer's sprite only changes parts of the sprite (some times arms, some times arms and legs and torso but not the head, etc). To rotate the whole sprite, use faceDirection farmer <0/1/2/3> first before modifying the sprite with showFrame.
you'll likely need to do both here since it will only be the arms otherwise
okay turns out im just bad at reading
unless what i was reading was changed
ohhh okay yes the text was changed
@proven spindle Thanks for the change to the OpenShop tile property!! interactable was the key word that made it click for me
super simple change (i just had to change the time parameters set in my tmx)
Glad it helped!
Like that? π₯Ί
Content: https://smapi.io/json/none/795228a1041642168082c801cde8d95b
Schedule: https://smapi.io/json/none/715b3ba0fb14435ea2eb0da9bd37dae9
btw, you can load all of your blanks at the same time if that helps!
instead of writing different entries for each blank load
chat what is the use of loading a blank json
it allows you to use EditData and parse tokens
you can edit dialogue, schedules, etc. instead of just loading them directly
you shouldnt do a conditional load, but conditional edits are ok
You can do a conditional load if you make sure the asset has something loading it at all times. Most times people just don't have reason to.
Aah, how interesting! Thanks for the tip.π ^^
yea looks good
I just have to learn how to get him to talk again now, because he still doesn't allow interaction, despite following the schedule normally. T-T
anyone know what keys they're pressing on the aseprite demo for the shading mode on the main .org webs page?
theres a shading mode? 
nono look
huh? isnt that the same thing?
it fills the whole thing rather than needing to do it all yourself
Huh
That's something I never seen or used
but i cant figure out how they're doing specficially that
bc they draw a shape with pencil, then it fills
yea thats the contour tool
oooooooooohhhhhhh
press d
thank you bro
yea ofc
π€£
fourth time being offered crypto crime π₯Ή
it's not you, its me, i dont like crime π π
crypto crime? is that like someone asking about how get into daytrading?
no its a scam 99% sure :3
smthn about mr beast too
so..
bots occasionally post images with phishing/etc stuff photoshopped onto phones or w/e, it's been a popular format for scams lately
staff wipe them out after a couple seconds
im personally impressed with how fast they are
iirc the bots detect them sometimes, new accounts especially, but junimos are pretty vigilant
i see i see
(other times it's someone who was real but lost their account, etc)
harder to auto-spot weird behavior in some cases
wym
of course mr beast wants to give me 500 dollars
oh, you're so right
doing stuff with particles is quite annoying....
does anyone know what the best way to make sand fall of of the player character when afflicted with a debuff?
@torpid sparrow: look at closedmessage stuff (2h ago)
ha i already did it
Hey guys, I'm having an issue in my custom buildings where if I install an autograbber by default, it doesn't work unless you remove it and place it again. Any ideas why?
im betting its cus autograbber needs to have right class 
(Yes)
wdym?
no particle experts π
You're doing something completely custom, you're kinda in "DIY all on your own" territory here
I use GIMP and make mine with noise spread and wind effects at varying strengths, but I don't think that would help you π
yeah as atra mentioned and per my investigation just now this is a base game problem
posted a suggestion for pathos here: #1387907186713301072 message
Oh okay so it's not something I did
different objects use different "classes" in the C# code, like Furniture is a sub-class of a generic Object with extra code, etc; if the building system just assumes the auto-grabber is a generic object, it won't be spawned with the code that makes it work
Ahh gotcha
that's incidentally what "Type" does in things like Data/Locations, making sure things spawn with a specific sub-type
but if the buildings don't offer that for objects, it's not accessible from CP
in this case the auto grabber doesn't actually use a custom class, but its held chest needs instantiation in the placement logic that IndoorItems doesn't call
ah, yeah, I haven't had to look at that one specifically 
Okay. So it's not actually something I can fix as of this moment and all I can recommend is just pick it up and replace for now?
and turns out SVE Premium Buildings' Auto-Grabbers work because the C# component handles that part π
yep, for now it's probably not fixable except by players jostling it
Damn nice find
maybe we can separate the fix in SVE into a 10 line C# mod
Wish granted, it is now another dependency that people dont want to require πͺ
Is it related to Object.performDropDownAction at all?
the relevant logic is in Object.placementAction
oh right, that 
/// <summary>Check whether the object can be added to a location, and (sometimes) add it to the location.</summary>
/// <remarks>For legacy reasons, the behavior of this method is inconsistent. It'll sometimes add the object to the location itself, and sometimes expect the caller to do it.</remarks>```
also where torches, sign, fences, etc get replaced with functional versions
i think it's my favorite class of comment
Aw man π
Yeah good point, that's where the auto-grabbers internal chest is initialized, that's interesting, never looked at it before
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
No like making new npcs
Thanks!
oh custom i see
im not sure who offers FULL npc commissions
it looks like one specifies fully custom npc
@devout otter hi I saw you offered commissions on the wiki page?
Which one?
Juniisia
I do, yeah.
Do you want to discuss it via DM?
as in actual code or design wise?
kinda both, but i decided i was too lazy to do that and skipped it lol
π€£ fair enough
so technically i got all of the mechanics done for the sandstorm except the vfx, and the enemy i guess
Yes that would be ideal
I wish I could just imagine the code part of my fish done. I spent more time making sprites than doing the other 99% of the content. All the copypasting I'm gonna be doing later... I can't wait for errors to crop up like crazy.
is there a way in content patcher to make it so that dialogue doesnt repeat for a certain amount of time?
Not sure if it helps, but there is this:
$t <topic ID> [day length]
Can specify how long the topic lasts for
ohhh yes ill try that, thank u!!
No problem π
That doesn't stop the dialogue from appearing
That starts a conversation topic, and if you have dialogue for that conversation topic, it will only appear once, but thats true no matter how you start the CT
But if you put that $t into daily dialogue, it will still be able to show up as often as that dialogue key is relevant
True, not sure if there is a way using purely CP though?
You can however combine it if you want to with a separate Content Patcher patch that checks if the conversation topic is active and, if so, Editdata to remove whatever dialogue you dont want to appear for that duration
But if you wanted to do that for every dialogue, that's gonna be a lot of separate CTs and a lot of edits and every single one would need to be starting a CT
So you would be using the HasConversationTopic condition token and to delete the dictionary entry you would set it to null?
Yep
Wow you're a genius
You'd wanna make sure you have dialogue to fallback to though ofc
Like, don't remove your only dialogue thats possible to appear on Sunday
Yeah I see what you mean, it's a lot of work, but doable
I advise you to make a template json with obvious placeholder data (really large values, weird names, stuff that'll stand out to you during a look over if you forget to replace it), save it in a way that will keep you from overwriting it, bugfix it and then make & edit copies of it.
one tactic could be using an unusual word that won't otherwise be appearing in the mod in all of the placeholder names/text, such as "purloined". That way if you miss an entry and your eyes don't catch it, the search function will. Same goes for numerical values.
for example:
{
"Action": "EditMap",
"Target": "Maps/ elephant ",
"FromFile": "assets/{{ModID}}_FarmExpansion.tmx",
"FromArea": { "X": 0, "Y": 0, "Width": 50, "Height": 455 },
"ToArea": { "X": 455, "Y": 455, "Width": 50, "Height": 455 },
"PatchMode": "elephant",
"When": {
"SandboxLayout": "false"
}
},
Where the placeholder word is "elephant" and the placeholder value is "455" as both stand out and are fairly easy to remember.
obviously you could already be doing something like this.
Just saw the ping. Yeah I have templates and unique names that I can safely find and replace. Done that so far with one new fish. It's just covering all the bases I want, like how my mod has an optional toggle for putting roe in a cask (as an example). I've used custom roe IDs instead of the vanilla one, purely because I wanted a color scheme that vanilla wouldn't provide, but yeah. Gotta cover every base, think of all the uses, etc
and yeah, you said that right as I was about to hit enter lol
My main gripe is the fishing difficulties and locations. Most of my fish so far are ocean fish, so luckily I can copy my already existing ocean fish, but still. Lots of little tedious things I wish I could automate or shirk to some underpaid employee or something lol
if there's anything that my limited experiance with CP has shown me, it's that coding is tedious on account of finicky grammar, etc.
I recently learned that capitalization matters. I normally capitalize all my words, like "Campaigner.StinkyFishCheese" for IDs and such, but I had one single instance where it was, using that bad example, "Campaigner.stinkyFishCheese". Whole mod said "NOPE" and didn't load lol
I really need to copy/paste more often instead of typing everything out manually, but a coding friend who refuses to help otherwise told me to do it that way so I can both practice my typing skills and also learn how to code through memorization.
or going from stardew.locations.cellar to stardew.locations and then learning that it's actually stardew.gamelocation ????
lol
indeed!
Anyway I need to sleep so I am offlining for the night, may your typos be minimal and very obvious!
stinky fish cheese...
Especially with variables and IDs it's a good idea to copy paste them to avoid typos and errors caused by them
πββοΈ practicing typing is really good for productivity but only to a certain point for some things, then yea copy pasting is better if you need a lot of the same thing, but with typing it all out you can always search the correct terms in a text editor and make sure all of them are flagged, if not, fix the typos and such :3
i feel like its one of those things where, you start off copy pasting the example, then learn how to write it on your own, then go back to copy pasting because you have 50 items to make XD
How do I add a pass out letter? I looked at the wiki but couldn't find anything for that specific case
so do I put the field in the green part or in the mail text?
That would just be an entry in Data/Mail. What i linked was for if you pass out in a location to have you receive a pass out mail, which would be Data/LocationContexts
so I don't use data/mail for that?
you use data/mail for the actual mail, you use data/locationcontexts to send out a letter whenever you pass out in that area
you have to make a separate editdata Data/LocationContexts yes
don't know if you have something like east scarp but it has a good example for you to follow
and otherwise you can send your .json
YourLocation is the location you define in Data/Locations
YourMail is the mail you define in Data/Mail
{
"Action": "EditData",
"Target": "Data/LocationContexts",
"Entries": {
"YourLocation": {
"PassOutMail": [
{
"Id": "YourId",
"Condition": "PLAYER_LOCATION_NAME Current YourLocation",
"Mail": "YourMail",
"MaxPassOutCost": "Optional see wiki",
"SkipRandomSelection": "Optional see wiki"
}
]
}
}```
i think it would be something like this but i am also not entirely sure
this made me understand it a lot better thanks
Need a bit of guidance. I've got the fish spawning down just fine, but I have two cases that are giving me trouble.
"SquidEater/75/sinker/12/48/600 2600/DATE_RANGE Winter 12 1 Winter 13 1/both/690 .4 685 .1/1/.50/.3/0"```
The first is supposed to be a crabpot fish, but after an ingame week, I've yet to get this thing to spawn in a crab pot though. The second is supposed to only spawn on two days during Winter (specifically Squidfest's dates), but it spawns every day. I think I didn't understand the guides on the modding wiki. What did I do wrong here?
Edit; figured out the crab pot issue, I forgot to add the unused part of the code (688 .45 689 .35 690 .35 between rarity and ocean). Just need help with the second entry now.
DATE_RANGE Winter 12 1 Winter 13 1 is a game state query, which Data/Fish doesn't support; you can only enter season names in that field
if the goal is to only let those be caught during winter 12-13, you might be able to use When conditions on the edit that adds them, though it'll be a bit finnicky (crab pots update overnight & might see the previous day's data)
(edit: right, not a crab pot fish)
...though I suppose the game might not use that season field anyway
the wiki says Data/Locations controls that now
https://stardewvalleywiki.com/Modding:Fish_data
I originally did try using the When condition, but maybe I did it wrong back then too.
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [
"Beach",
"Fish"
],
"Entries": {
"Campaigner.SquidEaterFish": {
"Chance": 0.4,
"When": {
"DATE_RANGE Winter 12 1 Winter 13 1" : "true",
},
"Id": "Campaigner.SquidEaterFish",
"ItemId": "Campaigner.SquidEaterFish"
}
}
}```
I probably did it wrong though, since it clearly didn't work lol
"When" doesn't go in the entry itself, it's a feature alongside Action/Target/etc
...That might be my issue then lol. Gonna move it and test
that said, Data/Locations fish entries should have a "Condition" that actually does support the GSQ there
so When won't be necessary for that, it'd just help with Data/Fish if that was the goal (but it's not, now that I follow)
Yup, replace the word "When" with "Condition"
Alright. Moved it up under Action and changed to Condition. Here's hoping I don't catch my fish now lol
Weird how I DON'T want to catch it for testing lol
to clarify, this should be correct, I think
{
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [
"Beach",
"Fish"
],
"Entries": {
"Campaigner.SquidEaterFish": {
"Chance": 0.4,
"Condition": "DATE_RANGE Winter 12 1 Winter 13 1",
"Id": "Campaigner.SquidEaterFish",
"ItemId": "Campaigner.SquidEaterFish"
}
}
}```
er, one sec
okay now 
Condition is a single string, unlike When, and it does go inside the entry
"When" goes outside and just decides whether CP applies the whole action or not
(not necessary here)
Gotcha
This all sounds like wizardry and witchcraft to a non-coder like myself, but going to try that now
Hey guys, could someone help me? Yesterday I showed up with an issue where npc stopped talking after I tried to add the schedule.
Could someone help me fix this? I really can't solve it myself. T-T
So, I can't seem to catch my custom fish now. I was on winter 27, and the fish stopped appearing (using bait as well as the Visible Fish mod to see it). I rolled time back to the 11th and slept so it'd be the 12th, went to the ocean, and with bait, I still have yet to see my fish. Wonder why that's the case now.
could you also send the Schedule.json
can you post the current version of that change here again?
{
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [
"Beach",
"Fish"
],
"Entries": {
"Campaigner.BeachFishSquidFestSquid": {
"Chance": 0.4,
"Condition": "DATE_RANGE Winter 12 1 Winter 13 1",
"Id": "Campaigner.BeachFishSquidFestSquid",
"ItemId": "Campaigner.FishSquidFestSquid"
}
}
}```
Those are just the lines, but if you need the whole json, I can drop that too
Disregard the SquidFestSquid part, I fixed that already lol
that's the only part that stands out, you'd need it to match* the Data/Fish and also Data/Objects keys
also if you're not in year 1, that date range condition will prevent catching it
could you try and load your Strings/Schedules/{{ModId}}_LuoBinghe through the blank.json.
actually one sec, I keep forgetting date_range is weird, there's a combo that works for multiple years
"Condition": "SEASON winter, DAY_OF_MONTH 12 13" should be winter 12-13 for any year
Alright, I'll try that rq
Sorry, I don't understand what you mean exactly, English is not my strong suit. T-T I'm sorry.
just add a comma and a space and then paste that behind the characters/schedules
Seems like this worked. I'll be testing it a bit more here and there, but so far, using an autofish mod has only yielded the desired fish in Winter 12 and 13 as intended. If it shows up again on the wrong day, I'll come back with the issue, but it seems like this resolved it. Appreciate the guidance! I am never making a fish like this again lmao
Like that?
Yup, i believe that should work
Im realizing i've added so many things since the last time I loaded the game and actually tested things... I should probably do that huh?
It did work and I'm grateful for that, but following his routine, I saw that the introduction and dialogue at the first stop of his programming works, but for example, when he stops at Saloon, I click to interact with his speech and it doesn't work.
Can you tell me what could be doing this problem right now?
Although I'm worried I'm gonna get errors cuz some of my bundles have blank ModId tags waiting for input
Is there a limit to the dialogs I can put on the schedule?
No
Iβll check again in a bit
Thank you and I apologize for the inconvenience. T-T π

Wow I really messed that one up
I messed up a LOT about this file. I guess that's what I get for going back to Notepad++
I saw that only the Saloon dialog that doesn't work, the following others work normally. π€‘
could you upload the i18n file for your current language? (your mod folder/i18n/default.json or similar)
I keep getting inconsistent errors each day with this. (I fixed the WEATHER thing)
First it was Backwoods, Town, and Mountain.
Then it was Forest and Railroad.
Now it's just Mountain..
Here, dear. ^^
Thanks. The saloon key seems correct, so that shouldn't be a problem. Are there any yellow or red error messages in SMAPI's console? (You can upload the log file to https://smapi.io/log too.)
I dont seem to be getting the errors now..? Then again I just went to summer so it's not testing winter spawns now
I guess I messed something up with the winter forageables?
There's only one talking about SpaceCore and Steam being closed. T-T
The schedule's formatting is probably fine, then.
Are you testing on a new save file, or sleeping first? NPC schedules are processed overnight, before the game saves, so it might still be using an older schedule if it changed.
Is there anything different between the winter forageables compared to the fall forageables which DO seem to be working right?
These are also probably revelent
the error you're getting is when the "true" part of your IF action fails, and I think it's failing to mention whatever code went wrong on spacecore's side, so the issue is probably on that end
Yes, I was using an old one. I'm going to create a new one and see if it solves. T-T
Ohh okay... I was kinda thinking that was the case.. but what's weird is that it's only happening for the winter forageables? And I basically had just copy-pasted the code from the other working stuff
But it's probably not actually affecting anything?
I mean, it's probably keeping your action from applying whenever the error happens, so it'll need fixing if possible
I'm not familiar with spacecore's spawn format or code at all, so at a glance, I guess make sure the winter item IDs match your Data/Objects and such?
otherwise they do seem equivalent
Ah shoot okay I misread what you had said
yeah, what I mean is that the if action is running into an error when it runs your TriggerSpawnGroup winter stuff, but then it doesn't report the full error message from spacecore (in other cases, it might do a whole "stack trace" where it says what code lines complained)
and it's just the generic "an error occurred" instead of anything custom from spacecore
auughh of course π
I guess to get somewhere with testing I can try swapping the condition to fall and see if it's the GSQ for winter acting weirdly or if it's something else within those lines
Also yeah I should def prioritize actually adding the items needed to finish all of my bundles (Not necessarily the methods to get them yet, though)
-# or even sprites for the moment..
Once I get this fixed of course
AUUGHGH I GOTTA FIX THIS TOO NOW- 
Would that be related to the "MugShotSourceRect" field in the character file?
Progress
It's not the condition
I mean Theoretically if I just change that block with the block from another set that is working, it should just work? then I just change it back to Winter forageables
omg I was actually kinda hoping that wouldn't work- WHAT IS DIFFERENT IN THAT CODE???
probably that, yeah, it might be offset or the wrong size
(Optional) A rectangle specifying the portion of the character's sprite texture to show as their mug shot icon in the calendar, social menu, and other contexts. Defaults to part of their first sprite, based on Age: (0, 4, 16, 24) for a Child and (0, 0, 16, 24) for a Teen or Adult.
For best results, use an area 16 by 24 pixels in size.
yes, set your MugShotSourceRect for this (and the calendar)
it used to be called SocialTabIconSourceRect, until pathos updated the calendar code to also use it instead of doing whatever secret other thing it was doing before
Does this mean you can use anywhere in their spriteshet
Including not the first slot?
Or different sizes?
Seemingly doesn't even have to be a full slot
This is a 24 x 24 selection of a 32 x 32 sprite starting from pixel 5 on the x axis
Also ughghhg okay so there's something wrong with my winter forageables spawn group...
oh yeah and it HAS to be the spawn group cuz I've kept the Id for this entry the same
oh you think I can just scoot over my building to a spot you like better, sure, let me change 68 map patches
Bro I swapped out the loot table and it worked wth is different π
These 3 berries show up in ga- wait a minute.....
maybe something's wrong with one of their spawnable definitions
apparently the path looks "squished" now with the building there. (there is originally a CLIFF there, so it would still be squished, man)
would commands related to ginger island run if I don't have ginger island unlocked in the save?
As it turns out... yes
I'm gonna have to figure out the spawn rates for all these forageables π
HUHβ HOW BROβ I AM CONFUSED ππ
but wait a minute.. this area should also be spawning forageables from the Dingy forageable group... unless it just missed a 75% chance multiple times?
I created the new save but the Saloon dialog still doesn't work. T-T π€‘
stranger things have happened. missing a 75% repeatedly is perfectly possible
sorry to hear that; I'm not sure what else to suggest then, since I don't write schedules myself 
that could legitimately be the case cuz the other area those forageables spawn does seem to be working.. except for one thing... I think I might have my culprit
The errors can't hide from us forever!! π€π£οΈπ₯π₯
It's okay, anyway, I appreciate all your help. ^^
I appreciate your help too, sweetie. π
DAMMIT- Ok it wasn't the Touga berry
I guess I just remove them from the spawn table one at a time and see if it ends up working
what do you meaaannn it was none of them 
Unless it's two of them?
Oh wait it actually was 
Damn
Sorry had to leave for a bit, does your portrait sheet go up to 18? I ask because both 16 and 17 aren't used in your i18n and this might be what's wrong
but wait if the Touga berry is one of the problems then why isn't the other spawn group breaking π
No it cant be there's nothing different between the entries except for the weights 
Maybe I just messed up something on my testing end with the other berry
Give em an expiration date no?
Isn't there a system in vanilla for that? Or do I have to apply that myself π
by default, anything the game considers forage is deleted on sundays, iirc
Mmmmmm, if you use ftm thereβs :3
Also yeah I absolutely just messed up when testing if the Ginama Berry was the issue 
(FTM has to intentionally dodge that, idk if spacecore offers controls)
Does this also apply to Ginger Island?
I think it was every map, though I'll try to dig up the code that does it, it's kinda vague
Alright
Anyway now I know for SURE what is causing this issue
wait.. Ginama?
π I found the issue
That's the objects.json.. and the CORRECT spelling π
I went on this giant goose chase over a TYPO 
actually an hour long goose chase

esca's "i guess make sure the ids match" was pretty prescient here
OOPS-
I was getting close to bringing up data/objects again
but yeah, ID mismatches will do that, and the trigger actions weren't showing the error reason
I got caught up in my own misreading what Esca had said before I forgot to actually do that 
At least you now know what went wrong π
anyway re: forage expiration, it should happen every sunday morning everywhere except the farm or part of IslandWest (presumably around the farm there)
basically any spawned objects that can be picked up will disappear
Alright, then yeah I just need to tweak the spawn rates and amounts so they don't get horribly out of hand
It feels weird spending a few hours making placeholders instead of like.. ACTUALLY making the items 
oh okay its only been an hour
But I've basically set myself up to max out the size of my current objects sprite sheet
Looking for a bit of help. I'm setting up another fish, and I want it to be catchable on any of the farms. Right now, I have
"Farm_Standard",
"Fish"
],```
I am going to take a wild guess that this only covers the basic farm, but I'd like to add several more entries; Farm_Beach, Farm_Forest, Farm_FourCorners, Farm_Hilltop, Farm_Riverland, Farm_Wilderness, and Farm_MeadowlandsFarm. How would I do this effectively?
If you've unpacked the game you can take a look in Locations.json
But I can also save you the time just gimme a sec
I already have it unpacked and am aware of how to navigate that
it's just that I don't know how to properly set it so a fish spawns in multiple areas
doesn't the farms fish take all fish of their water body type?
-# dont tell me ive misinterpreted what you're asking for
like, if a farm has a water body set as "river", you'll be able to catch all river fish?
I'm not sure as I've never done it, but this was my understanding
Why does Starblue stop working on the main menu when I switch to my custom language?
I understand why the buttons would be the default, but not the background etc
what is actually required to make forage spawn on a custom map? I put the forage info into data/locations, added ForceSpawnForageables TΒ² to the map properties, and slept a few days, but nothing has spawned
as usual i suspect im simply doing something silly
Is this a making mods question or a using mods question? Iβm guessing it edits only a non localised tile sheet or something
Making mods, I'm making a custom language mod
I'm gonna have a look inside starblue abd see what I can see
Also, why is the console printing specifically the second paragraph of my readme.md when loading?
To be honest, this is my first time making a mod bigger than a few patches, so I'm a little bit in the deep end :P
Is this a C# mod? That I can't help with lol.
Nope, entirely Content Patcher
What's the language code for welsh? it doesn't look like there are localised assets particularly for that.
cy, I wouldn't expect there to be anything existing for it already
Oh is this adding a custom language that's not natively supported
So are the Starblue assets replacing specifically the English-localised assets, and that's why it breaks with a custom additional language?
Yep
https://github.com/Suntooth/SDVCymraeg I've only done a few files so far, getting used to the workflow
I'm not so sure that's it. I'm not hugely familiar with recolours so I'm kinda orienting myself to it.
And the language button is the only visual asset you're loading right? Because starblue recolours the vanilla buttons. Maybe something about what gets launched when you click the custom language button is different?
Yep, the only visual asset I'm touching is the language button
have you tried patch summary full?
You can actually see in the video I sent that when I have Cymraeg as the language, the only Starblue assets that are being loaded correctly are the other language buttons
Is that a debug command? /genuine question
!patchsummary
Can you do these steps to provide more info?
- Load your save and view the content that should be patched.
- Type
patch summarydirectly into the SMAPI window and press enter. - Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
- Post the log link here.
you can try patch summary full to get the most detailed level
it should tell you what CP thinks it's doing for each of yours and Starblue's patches
o7 I will try that now, should I disable all of my other mods while doing it?
it's a bit of information overload at first but you can sift through it to get the details
I think the Title image also changes.
other mods installed is fine, but it will increase the amount of extraneous info
so it's up to you
BUT.... I am noticing a lot of blahblah{{language}} in Starblue's code
also when you say disable, are you using a mod manager?
So maybe it's looking for assets localised for cy
Nope, just managing files myself
ok cool, just checking because Vortex can cause really weird issues
Starblue's coding specifically only works if the language is default or Portuguese.
It's coded specifically like that.
I kinda understand why that is, but that does make this a little annoying :P
I guess I'll deal with not having Starblue while testing then?
Also, while I'm here: anyone happen to know the answer to this? :P
It has open permission, too, so if you really want you can just copy its entire tilesheet into your mod.
Fair, I will consider doing that for my local copy if I get really annoyed at not having Starblue
Thanks so much for your help :]
Whaaat... where in the code is this?
Oh also I am looking at Starblue unoficial 1.6
Yep, that's the one I have
Baffled
Oh, I'm looking at the original...
It does look like it tries to load files for specific languages, but only if files exist for that language
Yeah I took from that, that you could dump JunimoNote.cy into it and it would work
But they start by editing with the default asset so I'm not sure why that wouldn't work when you change to an unsupported language
Does nothing from it work when you change language?
Doing some testing, brb
And, also, if you go into GMCM once you've changed language... is it enabled? Because Starblue also doesn't have i18n for cy unless you've put that in. Though again, I'm not sure why that would get in the way.
Also, have a go putting it in another language like DE or something
Okay, doing some testing without other mods and I have been a little bit stupid: it appears to be Universal Recolors that isn't working when set to cy, not Starblue
I thought my interface changes were Starblue π
Sorry for wasting everyone's time looking at Starblue, I'm now gonna go look into the files for Universal Recolors
lol
Yep, looks like for UI it loads the default if it's set to en but the specific language if it's anything else, and of course it doesn't have anything for cy
Well, we got there in the end
Well that would do it!
So, at least rest assured you should still be able to use starblue instead
Yep, I might also put a comment on Universal Recolors to see if they can patch it
Thanks for sticking with me, sorry I ended up wasting a lot of time with the wrong mod :P
No problem at all. I like looking inside mods so I'm good.
Got it working just by removing all of the language: en checks :] Maybe if I ever properly release my translation I'll release this as an unofficial patch for Universal Recolors (since the dev doesn't seem to be updating it anymore and the permissions say it's fine to release unofficial fixes)
what exactly is the problem here?
Are you telling it to go somewhere at 2250 and then somewhere else at 2250 again?
no
tldr use a as little as possible in schedules
it causes it to calculate the arrival time and start that part of the schedule when necessary, but if multiple a steps calculate the same time, it'll conflict and cause that error
(or if just one a step picks the same time as something else)
I'm going to hazard a guess that your a<time> entries might match up to 2250, but I am also curious as to whether or not "postofice" is a typo.
a2450 -> a2500 -> etc will almost certainly not give them enough time for those to happen at separate times
ohh ok I'll try to fix that in the morning thanks
though ig it's more likely to be the ones that go between maps
(also unless they are stopping for a significant amount of time or conducting a special animation at a destination, there is no need to transition from point a to point b with a bunch of small steps in between)
I'm guessing this is a postal route, in which case, you may just need to allow a little more time at each destination.
I can confirm a in schedule is evil and caused me great pain and confusion when i got errors (and also isnt that accurate anyway)
Had to remake everything and delete every a cus it was mean to me
I like to write how long it takes my NPC to walk from a point and to another, just so I can use it to calculate next time they have to make the journey or a similar distance :3c
If I were to never have the NPC walk left or right, would this theoretically be all I need for the spritesheet?
You could also pull a Mister Qi and only do every other side frame. π
(it's why he teleports weirdly during the cheaty summit access event)
I could also just make the one sprite I have bounce 
NPC walking animations are typically only 4 walking frames in each direction, though I am not sure if that's a hard requirement if using frameworks that modify the NPC animations.
oh shoot I didnt consider that
Well these are easy enough to alter cuz like i think it's only actually 3 frames at different elevations
Yeah, it's usually a simple pattern of neutral -> one foot/arm forward -> neutral -> other foot/arm forward
for the front view
I dont need anything complex for them, this is a character that will basically sit in one place for a shop and may have one event associated with it
Hi guys!
I am the author of Combat Overhaul and I use aedenthorn's Buff Framework Mod.
When I use the framework to apply buffs, this happens on my most recent mod update.
I'm constantly getting the error...
[Buff Framework] When: Which and Id (or BuffId) fields are both missing
As a mod author, is there any way to check which line of code causes the error using SMAPI console commands or do I have to manually check all lines of code that uses the framework? As reference, I'm 97% sure that all of my code uses BuffId, but none uses the Which field as it can be left omitted as far as I know.
Would it also be possible the exact conditions that causes the warning to pop up?
I would appreciate any advice. Thank you!
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 108 C# mods and 100 content packs.
the alternative is posting your code so others can check 
Ah, that would be too imposing xD
I don't want people to scan my mess of a code as I haven't done the "Great Cleaning" yet
Maybe I should do the great cleaning now and finally separate my code into different .json files 
"If which is set to -1 or omitted, the built-in buff list is not used and you must set the buffId field. If you do set which, omit the buffId field.
Have you tried using which and just setting it to -1, since you have a buffId?
Just a curiosity based on the documentation.
I can try that. Just for clarification, "omitted" usually means to not even include it, right?
also just confirm that your buffId field is capitalized correctly in case it cares.
But it might be a terminology confusion and I might need to explicitly include it and give it a value of -1
"buffId": "FjorlagRond.MWBRM/TopazRing"
Documentation implies you can leave it out, but it won't hurt to try including it since it also says -1 will make it ignore it as though it were omitted.
Yup, they are all capitalized. I can double check that too though. But afaik, these are all copy-pasted so all are indeed capitalized.
Yes! I'll try that out first! Thanks!!!
I need this critter in the game IMMEDIATELY 
Ok I improved that sprite 
If this NPC is only for a shop do they even need an entry in my characters file?
Like they cant be talked to outside of the shop
Not really
They wouldn't be able to walk around though
Since you'd have to do a map tile in that case
That is perfectly okay she in a box
If they don't feature in an event that would need them to be defined as an actor and don't need a portrait, then they could just be a map tile NPC, which doesn't need a Data/Characters entry.
Oh shoot I do want to do an event with them. But yeah the don't need a portrait
(you might be able to do portrait dialogue without a Data/Characters entry, but I blank on how you would do that, if it is in fact possible.)
You may be able to define a temporary actor sprite on another NPC to fake it for the event
Yeah, that
And It'll use the walk animation just fine?