#making-mods-general
1 messages · Page 206 of 1
sure
hi a question, how do i fix this with tiled
what is "this" exactly?
I thought the purpose of play testing was to get bug reports. If it has no bugs, doesn't need to be tested, right?
At least you get the reports, I've heard nothing since alpha 2.
i may have more now that i am finally resume playing game
Should be fixed now, 1.0.9 Everfarm is up. There was an Invisible Building tile that was missing, it was supposed to be blocking you from walking into the river.
Is there any way to log the player's current (not max) stamina with SMAPI? Trying to do this without writing C#. I see player_setstamina, but not get?? 🤔
if you hover over the stamina bar, the number is displayed
I need to write the value to a file or log before it restores at end of day
if you want it to happen automatically, then u probably need C#
im not too clear on what the goal here is
"With SMAPI" and "Without writing C#" sounds contradictory to me.
SMAPI is literally a C# modding framework.
Thanks for the advice. The goal is to log changes in player resources once per day automatically, upon save. I've gotten pretty far with just python parsing and diffing the {save} and {save}_old xml files
F# mods
well if u know how to do that much i think C# will be ez
and nicer bc u just have direct access to gamestate on all these things
Ok, but... why? It's way less work to write a 10-line C# mod than to write a bunch of python to parse XML files.
Maybe you really like XML, I dunno, personally I try to stay as far away as possible.
I don't enjoy xml, but it's json-like enough, and doesn't require compiling any new DLL. Granted, actually learning how to write a mod makes a lot of sense for having this higher degree of control
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Helper.Events.GameLoop.DayEnding = (_, _) => File.WriteAllText("Path/To/File", $"Stamina at end of day: {Game1.player.Stamina}");
Literally a 1-line mod
few more for the ModEntry boilerplate around yet but yep
u can log other stuff here too
(Change WriteAllText to AppendAllText if you want to append rather than overwrite.)
Thanks so much for the help!
(me when Ento said on a mod idea repo post about jumping over things that it would be incredibly difficult, so I did it out of spite because I figured it be done pretty easily with some creative thinking: https://github.com/StardewModders/mod-ideas/issues/69 )
(To be fair, looking back he said it was about the farmer animation part, which, like, true enough)
What farmer animation part lol
it'd be pretty hard to make modern AAA parkour happen in stardew
with the frames we got
Dunno, that's just what his post said there 😛
I didn't do any animation for my impl
Dude, chue, I could not reasonably get the gd farmed jump to not just randomly clip shit
And i did "watering can frame, hoe frame, different hoe frame"
It's surprisingly frog like!
I wish I had an example of "How to patch Data/Buildings to remove the Default_Mailbox entries from ActionTiles and DrawLayers" slams face into desk I'm not great at editing fields, and the Buildings one is particularly difficult to process for me.
Another hard part is that the game has no concept of height
I made it crash without redtext, which is kinda impressive to me 
So you can do a teensy jump fine but if you do a big one you get weird layering issues
the reason why i said 1x2 is cus
i remember mailbox cursed
the 2 is for mailbox
house go in 1
Those of you who know how long it took me to get frog jump to layer that stupid tree in Forest correctly
Yeah, interacting with the layer/depth stuff in stardew can be a pain
If we're ever both active again I still want lower gravity on the moon lol
But yeah, dunno why he thought you needed new animations, composition of current frames works well enough
I didn't even change current frames
The player just stops walking in wahtever frame they were while in air
Definitely interested in doing that!
what does Fragility mean? i tried to find it in objects.json and modding wiki but didnt find anything 
I can't recall, think I just felt like doing a quick silly mod and that was the first thing that came to mind. 😛 I've never interacted with a gull
Welp my ssd with my mods and games has been corrupted. Thankfully I was able to retrieve my wip version of my mod.
Uh, 0 is normal
I'm pretty sure it has something to do with how an object can be broken and/or picked up, can't recall which values are what though
1 means it breaks when you try to pick ot up
I got IT!
Thankfully I update frequently so all other mods had been uploaded to nexus
thanks atra 
You've never interact with gull?
if you want a c# example, i've got a simplified minimap in my halloween mod:
create: https://github.com/b-b-blueberry/Halloween2024/blob/master/Halloween2024/ModEntry.cs#L199
draw: https://github.com/b-b-blueberry/Halloween2024/blob/master/Halloween2024/ModEntry.cs#L489
i figure any minimap implementation is going to require c#, but it's all in how you do it ig
unless you mean literally a mini map, like a very small map
you know what, you probably do mean that
yuup
.
mailto:
now that i think about it some, isn't there a mod that makes a minimap for any old map?
ah a casey mod. was a cointoss whether or not it was from aedenthorn
You're talking about the one that sorta draws the actual map at really tiny scale?
I think yours actually looks a little more minimappish, reducing it to coarse tiles and POIs. The golden middle would be one that does that, but also has very rough terrain indicators and obstacles.
(Which I know makes the scope literally 20x larger but whatever)
i suppose it depends how detailed you want it, mine's just 1px per tile and baked into a single texture, and creating the texture just sets colours by (collidable ? white : black), so no usable info other than walls (which is all it needed for a maze really)
terrain markers would be pretty cool, little trees on the map.
Yeah, it's simple, but reading from the map data rather than the map texture is the right idea. Expand it to understand machines, trees, etc. and it's a full-fledged framework.
honestly of all the dumb hacky solutions in the maze mod my favourite is probably right below the minimap create method
public static NPC CreatePumpkinMan(GameLocation where, Vector2 tile)
{
NPC npc = new(
sprite: new AnimatedSprite("Characters\\Monsters\\Wilderness Golem", 0, 16, 24),
position: tile * Game1.tileSize,
facingDir: 0,
name: "AnsweringMachine")
and his name was answering machine.
is there a when condition i can setup so that a patch only takes place if they are using my specific farm in their playthrough?
Nvm i think I see one
Oui
i really do need to stop posting before thinking
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#world
it has 19 farmable tiles, and all but 4 are where you walk. (Well technically those 4 are where your spouse walks)
Ye! I tried to make it aesthetically pleasing.
gramps picked a good spot for his grave
that has to me the smolest farm ive seen so far
Originally I had the map shorter, but it needs that much height to not cut off the greenhouse when its built 
now to get back to what i was supposed to be doing today 
are there mods for smaller greenhouse/other exteriors at all, or would that just explode as soon as a building recolour mod tried to patch the sprite
u should be able to just change the size
no explode but sprite's gonna be cutoff
plus some buildings have doors of some size
lol tiny buildings that are just the size of the doors
Imagine a barn that is just the size of animal door and the human door next to it.
3x1 barns, 2x1 coops and mills, 1x1 fish ponds, silos, slime hutches, sheds, wells, cabins, and shipping bins
10x2 shipping bin tho (for Wide Pam and Pam Shipping Bin compat)
Shrinking the stable might have issues since it spawns an NPC
Just make a shipping bin that runs across the whole top of the farm
a mod already exists to make the obelisks 1x1
Wow that's a real squeeze
The 1x1 shed mod should also make shed interiors smaller
pretty sure a 1x1 shed is called a chest
Swap Robin with the Dwarf for Construction, all Buildings are now different kinds of holes in the ground.
Me, building every base I've ever had in Minecraft
(And every new playthrough I'm like "This time will be different. This time I'll build normal buildings and stuff." but then I hear the call of the mines)
a house can be dig 3 tile fill 1
Change the interiors too,
Cow's feed trough? a Long narrow Hole
A Chair? a Sitting Hole
Farmhouse Upstairs? PFF, Try Downstairs
your baby's Crib? a Baby Sized Hole.
there's always someone who looks at a perfectly good idea and decides it needs effort 
cask of amontillado
Maybe it's bigger on the inside.
me when I made a smapi mod in Lua and Python to prove a point
Dynamic token in a Condition field seems to apply a day too late. I did this for Central Station tourists: "Action": "EditData", "Target": "Mods/Pathoschild.CentralStation/Tourists", "Entries": { "DolphINaF.VendorPortraits": { "FromMap": "{{InternalAssetKey: assets/LooseSprites/CentralStation.tmx}}", "Tourists": { "Naufal": { "Index": 0, "Condition": "!{{Clerk|contains=Naufal}}", "Dialogue": [ "{{i18n: CentralStation.Naufal.1}}", "{{i18n: CentralStation.Naufal.2}}", "{{i18n: CentralStation.Naufal.3}}" ] }, } } },The dynamic token Clerk has the Naufal value only on Saturday and Sunday, meaning the tourist shouldn't appear on those days. However, they actually disappear on Sunday and Monday instead. It only works correctly on Saturday/Monday if I reload my save on that day.
Is this intended/known? and is there anything I can do to make this work?
niceeeeee
well the mod ideas repo is now fully updated and tagged again, so if any of you ever feel like proving us new helpers wrong... 
we are slowly going through and updating old difficulty levels that have since changed though
Dare I ask what that point was?
something along the lines of smapi mods must be in C#
Yeah apparently TMXL supported Lua scripts, which is kind of wild
Next up, proving that mods can be written in Fortran and Apple Basic.
Which, they totally can - provided you also write the whole interpreter and plugin system.
https://github.com/SinZ163/StardewMods/blob/main/SinZationalSnakeShowcase/modentry.py
apparently I didn't upload the Lua example, let me go find it
Heh, and indeed that demonstrates it is possible if you use .NET to instantiate the Python runtime, which uses a Python library to call into .NET...
it required a support mod do some heavy lifting, but it worked and smapis logging will say its a real mod
("but the point is, it's possible!")
even if at startup its technically starts its life as a content pack
i think that makes it better
wasn't pytk also lua? 
I think I have a way to work around this issue that is a better fix for things anyways, but I'd like to see anyone has insight into this anyways:
In an effort to affect as few items as possible, with my Colored Honey Labels mod I left any pre-existing honey items the player had alone. While developing the mod, any of those pre-existing honey items rendered fine, and that only time there was a texture issue it was when I'd test without my mod active, and the issue was with the ColoredObject honey items my mod had created, not with the pre-existing ones.
Now, however, these pre-existing honey items appear with no texture/sprite at all when my mod is active. Just completely transparent, and with a shadow underneath if in an inventory. My ColoredObject honey items appear and create properly, but I'm confused as to why the "vanilla" ones are broken. My mod edits the Texture, SpriteIndex, and ColorOverlayFromNextIndex of the honey object's data definition, but I'm lost as to why this no longer works for the regular honey item, since it should be able to use that texture and sprite index just fine.
There's also the fact that Lookup Anything shows the modified base honey sprite from my custom texture in its info for both normal and ColoredObject honey items.
Red one is the colored one
What's the alpha value of the ColoredObject's color?
I assume 1. I use the base games color-determining function
The issue is with the non-colored items, though
items generate with a sprite index saved (in parentsheetindex)
Are you sure the non-colored items aren't being instantiated as ColoredItems with no color (i.e. transparent)? We don't know much about how you're switching it over.
should be able to see what value it's at with lookup anything datamining fields
Could also of course be the usual issue of preexisting items having preexisting data, and even if they don't spawn new as ColoredObject, those old items in the inventory are colored when they shouldn't be.
The non-colored items would've been created before my mod was even installed.
If sprite index is saved, and not pulled from the data definition, then that would explain it
so those honey items are trying to be drawn at sprite index 340 of your new fancy sprite sheet
I was temporarily under that impression before, but for some reason thought cache invalidation had fixed things
which I assume is the void
theres a way to fix it i suppose
Yeah that would explain it, since there's nothing there.
if you just detect new install (mailflag or moddata) and then do a pass on every existing honey in the world
with utility foreachitem
Yeah I actually do the opposite if a console command is run to make all honey non-colored again, currently
when i install ur mod i just deleted the honey and spawned new one 
But I'm going to avoid this issue completely by converting all honey to colored on save load and back to vanilla in pre-save
More uninstall-friendly anyways
At least that's my plan now
that seems like Effort
I don't like that I currently expect users to run a console command to clean up their items before they can uninstall; I'd rather it be easier than that
what exactly happen if you don't do anything?
Currently, pre-existing honey items will have no sprite upon install. The faster method (which doesn't address my uninstall stuff I mentioned) would be to convert all honey upon just first save load.
And yeah, upon uninstalled without running the console command, they become weeds and get colored leaves overlaid on to the weeds due to sprite index 1's contents
So my proposed fix would address both of those
ig my concern is what if lots of items in the world
So looks like I'd deal with SaveLoaded and then Saving/Saved for each night's save
I only deal with one unique ID of items, so shouldn't be too bad
The base game has optimized methods for going through items that I'd use (like I do in my console command [which won't be necessary anymore now])
What happened to all the PPJA mods? I see they haven't been updated since 2021.
ded
I'm not sure where to ask this or if it's worth asking but!!
I'm using Yri's Recolor bc I adore it. Some tiles aren't colored and I figured it was due to lack of updates--but then I saw a reddit post (picture is from there) that had my same issue despite being updated with a diff. color set and now I gotta ask...is there something else going on?
Tldr; does anyone recognize this as an issue beyond "recolor needs updating"?
!recolor
Check out Recommendations: Map Recolours for recolors that support 1.6 out of the box.
JA is pretty much dead. CP can do everything it did now.
that bot is glorious
(you're right)
I know that, but I expected all the PPJA mods to be migrated, but the mod author seems to have vanished.
they are asking about PPJA, not JA
and as mentioned PPJA is kill
PPJA = Project Populate JsonAssets.
it used JA didn't it
Cornucopia is the "successor" made by several of its former artists
It did, but JA still works for 1.6, but there's no reason to use it anymore.
But PPJA was popular because it added custom fruit trees, artisanry goods, foods, flowers etc.
(also these questions are rather not related to making mods lol)
I guess I'll check out Cornucopia then, thanks.
Well, Garden Village used PPJA for compat items in shops, that's why I was asking.
Yup,I have personal conversations of all the 1.6 mods I use that still used JA.
you can presumably just remove those, or swap them to Cornucopia variants
I think that would be best, yeah
Yeah, I'm gonna swap them to Cornucopia. Thanks.
On a side note, thanks for walk to the desert. 💯 I am playing a hard CC pack and it is a life saver. Years without desert access would have stucked.
Tarniyar definitely knew what people wanted with this mod, I just hope I can keep improving it.
I'm trying to load a custom portrait for a non-interactable NPC, but it doesn't seem to be working, I'm loading it to "Portraits/Tarniyar.CP.GardenVillage_Rose" and I'm putting "Portrait": "Portraits/Tarniyar.CP.GardenVillage_Rose" in an object inside the Shops Owner model. But it doesn't seem to want to load it?
When I patch export the portrait, it does exist.
Here's my content.json: https://smapi.io/json/content-patcher/1674bb58858c4f02a9ed093b224901d9
Does the shop dialogue appear?
Yeah.
surprisingly you don't use the portrait texture asset key as a value for Portrait, just the npc id:
shop edit: https://github.com/b-b-blueberry/SailorStyles/blob/sdv-1-6/SailorStyles [CP]/assets/shops.json#L34
portrait load: https://github.com/b-b-blueberry/SailorStyles/blob/sdv-1-6/SailorStyles [CP]/assets/character.json#L3-L8
to be clear, the shop attempts to load Portraits/{{Portrait}} with your Portrait value
So, I remove Portraits/ from the shop Owner entries?
But texture asset key should also work! All my portraits in Portraits for Vendors use asset key.
is that so
then am i the one who's doing it wrong...
I did a patch reload and it didn't show up.
and if it should work, why isn't it
wonder if the "Name": "None", "Id": "{{ModId}}_Florist_Open", is the issue then
Aah. Do AnyorNone then.
ah there it is
Reloading did nothing, so I guess I'll relaunch the game.
This does not help with your issue...... but so happy you included batwing sandwiches. I miss them. I have seriously thought of making a mod just to add them back to my game. Now I don't have too.
I will make them poison you specifically now.
Yeah, the portraits still aren't showing up.
Have you changed back to "Portrait": "Portraits/Tarniyar.CP.GardenVillage_Rose"?
To clarify a bit, "Portrait": "Tarniyar.CP.GardenVillage_Rose" would work, if you have an NPC with the internal name of Tarniyar.CP.GardenVillage_Rose.
Yeah, I figured it would.
Hey, would this be a good place to ask about updating a mod to 1.6 when the permissions are murky?
sure
Ok, thanks.
Define murky? Or what mod? Is probably the better question.
So, there's a mod called Animated Medieval Well that was published 5 years ago. It used Gweniaczek's assets from the Medieval Buildings mod with permission and animated them through Content Patcher Animations. Now that Content Patcher Animations is deprecated, I used SpaceCore to make the mod compatible with 1.6, and wrote to the author asking for permission to update the mod. But they haven't been on Nexus since 2021.
Their permissions make me hesitate about what to do: they say that some assets aren't theirs and permissions should be sought from these authors, but there is permission to modify and convert the file, and they say that assets can be used as long as they are credited.
So what is the respectful thing to do in this case? Publish the update on Nexus as is while saying I'll take the mod down if the author contacts me? Is publishing an unofficial update acceptable? Or should I try to ask for Gweniaczek's permission?
i believe you need gwen's permission
anyone know how to make an item bought from a store have like a small chance to instead give a different item?
i know there's the random query but i don't know if i can give them weights
an alternative is to publish your mod as only the json files, and make ppl go download Animated Medieval Well for sprites
semi-related but i think you can do this without any dependencies
it's possible to animate buildings using draw layers, a vanilla feature
If I understood correctly the author's description, they used the original Gwen's asset, but then to animate it they transformed it extensively themselves.
Would it still make sense to seek Gwen's permission then?
you have Modification permission from Animated Medieval Well to modify their changes, but the original art is gwen's
its well no 3 here right
yeah, at some point of time you kinda just have to accept that some mods won't get updates anymore
man i should like
make a guide to do animated buildings with draw layers 
so that ppl can just do this instead of defaulting to spacecore
One of the features of a QoL mod i really liked was you could hold space and drag select over tiles, and it would select that area, and as long as you were in the selected area with a tool out, it would automate use of that tool on valid targets.
So I could select an area, walk around with a pick and autohit the rocks, then autoclear weeds with scythe, then branches with axe, then auto hoe the dirt, and then auto water, all without clicking.
was very nice 
Had a few Config options, like whether the axe would target trees as well, and if they would target Large Debris Objects, Kinda Like how the Tractor Mod works in an odd way.
I didn't even know you could use spacecore haha
chue do you have trinket with big hammer and trinket with axe yet
what does that mean atra
There is one in CP.... I think..... I remember reading something that used Gills rocking chair as an example.
like a trinket with a big hammer that goes around smashing rocks for me
and a trinket with an axe that can cut down trees
rocks yea, the dust spirit do that (though not super loudly)
how can i make them louder
trees i had issues with performToolUse my behated
The opossums are a step in the direction.
give them a different proc sound
Gil in his chair as a building... He can be a mill and he grinds the grains by rocking back and forth on them.
but hm i guess i should look at it again
my prev attempt was like
create bogus axe
attempt to use bogus axe on tree
tree was unharmed, i lost stamina for some reason

prank axe
merely location.explodeAt(here)
I dont think the dust sprite are using a pick axe in their code so you could probably do something similar
thats already solved its just destroy breakable rock
merely OneSecondUpdateTicked() { here.characters.Add(new DustSprite(here)) }
wow yes
not sure why you'd go to all the effort of having a flying axe when u could instead have a rotund beaver following you around gnawing all your trees into dust
I'm creating a bit of animation - NPC Junimos that show up and play with player children. The code looks like:
farmhouse.characters.add(new MyPlaymateNpcClass(...));
Works a treat - until the player leaves the house and comes back. Then, in most cases, one or both of those added characters gets gone. I'd like to understand how that happens (and why it seems to be inconsistent). Anybody know where to look?
I will download that
anyone know a way to make a shop listing actually give you different items sometimes if you buy it multiple times in a row?
the randomitemID will make it equal chance to be a diff item per day
i'd like to have one listing that can always potentially hand out two items, if that makes sense
hm.
i see.
i guess you can do a action on buy additem?
whatever weirdness is at the bottom of farmhouse.resetsharedstate looks responsible
forgor if u could have conditional actiononbuy though, maybe not
hmm
you have If for a conditional action
a big ail
i'll try and explain what i want to happen
i wonder if this tree.instantDestroy will get the town trees though
might be bad without more checks
i want players to go to the hat mouse and buy a hat. i want there to be like a 10% chance or something that sometimes the hat is a different one.
a problem for chu in a day or week
i'm pretty sure the town trees specifically check for takedamage/onaction
ah it's in performToolAction
instantDestroy goes right to performTreeFall which doesnt seem to do any check for whether tree is choppable
this is why i was originally hoping to use performToolAction
so does this mean we can bomb town trees already
could you make the effect of the ring not work if you're in town?
that's a dodge at best tho
Oh wow. The decompile is a bear to read, but it looks like it's hunting for characters with the same name and my Junimos are all named the same, so yeah, that'd do it.
see if i were you i'd just duplicate the check for whether it's a town tree, because if you use performToolAction then you'll just be flooded with popups about breaking trees
Tool use is rather messy. Lots of direct references to Game1.player unfortunately.
And tools have a whole "use lifecycle" that has to be manually driven in exactly the right order through the "state machine" in Game1.pressUseToolButton or whatever it's called.
hmmmm is it more player friendly to just have a 50/50 chance to get either hat available to buy per day? that's what it's doing now
i think yes
the joke here is that one version is a prank hat with a custom debuff
and they are incredibly similar
if u want to make it RANDOM 0.1 for the rare hat i'd like to have a pity for it
Personally, I gave up trying to be clever and just called pressUseToolButton at various points, but this might be a valid case for a Harmony reverse patch if you want to be cleverer.
you will get bug reports about the shop giving the wrong item
like it always appears on the 14th of the month
you can use the RANDOM_SUMMER_RAIN or w/e it is for that
sadly, there's never a use case for a reverse-patch
SYNCED_SUMMER_RAIN_RANDOM
what's that do?
increases the odds every day
hmmm
wow gacha mechanics
used to make sure you get a summer rain
yes
There kind of is here, I seriously thought about doing it myself, fortunately in my case I could let it go with all the static references but this is a real case where you need to invoke a game method from a different context and you want to invoke only parts of it and with slightly different logic. And it is really, really hard to recreate the logic any other way.
it;s because summer rain is Fun TM
Random random = Utility.CreateDaySaveRandom(Game1.hash.GetDeterministicHashCode("summer_rain_chance"));
float chanceToRain = 0.12f + (float)Game1.dayOfMonth * 0.003f;
return random.NextBool(chanceToRain);
thats the entire function
the entire GSQ
what if the usecase is “move fast, break things”? 
how would one use that in a shop data patch then?
so i actually dont know why the wiki says there are arguments for base chance and day multiplier
that’s my usecase for most things tbh
use case FAFO
i dunno i think the problem with reverse patch as i understand is how it only gives you vanilla logic
its just a condition on the shop entry
more easily done with [HarmonyTranspiler] MyFunMethod(List<CodeInstruction> il, List<CodeInstruction> original) { return []; }
u cant obtain the after all other patches logic right
"Id": "{{ModId}}_MushroomizedHat",
"ItemId": "{{ModId}}_MushroomizedHat",
"RandomItemId": [ "(H){{ModId}}_MushroomizedHat", "(H){{ModId}}_MushroomieHat" ],
"Price": "500",
"AvailableStock": -1
},```
this is my current entry
you could fudge it a little to not make it exactly align with rain in the summer by doing like SYNCED_SUMMER_RAIN_RANDOM, RANDOM 0.7 or w/e
so i'd dupe this and add conditions to both copies?
what if the usecase is “move fast, find fun new ways to break things”?
"Id": "{{ModId}}_MushroomizedHat",
"ItemId": "{{ModId}}_MushroomizedHat",
"Condition": "SYNCED_SUMMER_RAIN_RANDOM, RANDOM 0.7",
"Price": "500",
"AvailableStock": -1
},
"{{ModId}}_MushroomieHat": {
"Id": "{{ModId}}_MushroomieHat",
"ItemId": "{{ModId}}_MushroomieHat",
"Condition": null,
"Price": "500",
"AvailableStock": -1
},```
like this?
[HarmonyTranspiler] MyFunMethod(List<CodeInstruction> il, List<CodeInstruction> original) { return Utility.Shuffle(original); }
probably want to have the same condition on both of them, but put a "!" in front of one
also you can probably also do this with CP's random and query tokens too
didnt' even think of that
i'll read some dox
yeah that might be the simplest way here, thanks
how would I go about checking which mod is forcing adoption rather than bio kids?
"Id": "{{ModId}}_MushroomizedHat",
"ItemId": "{{ModId}}_MushroomieHat",
"ActionsOnPurchase": [ "AddItem {{ModId}}{{Random:_MushroomieHat, _MushroomizedHat}}" ],
"Price": "500",
"AvailableStock": -1
},```
well this kinda sorta works, lol
gives me the regular hat and then a bonus one randomly
simplest way would be posting a log file and hoping someone knows ☀️
Unfortunate, because one of the problems right now (playing MP) is that whenever I get multi-marriaged, everyone else crashes out
which means my log is way too big right now to parse
I can fix it later, but it means not fixing it this session. Oh well!
do you have dsv installed? I think that might do that? if I’m not making it up entirely? 
other than that, 50/50
Nope. I'll have to do some heavy testing later
!5050
This method involves splitting up your mods into two halves and testing each set individually. Required mods must be included in each test.
If your issue does not resolve with the first set, then you know two things:
- The problem is in that section of your modlist;
- The other set is good. Don't worry about testing those.
The next step is to start the split again with only the set of mods where the problem occurs. Keep splitting until you can narrow down the source of the problem.
Yeah I know what the 50/50 is 
habit from mh, sorry haha
yeah i think maybe i just will make this a daily chance for simplicity
how often do people go look at the hat store anyway i suppose
unless they've got lacey of course
or dora's friend mice! another great reason to go visit the mouse house
guess i'll get this update out shortly here then
sailor styles hat cat sorely overlooked
Basic Date related Mails get send regardless of online status correct?
Online status?
Are there any community made tilesheets that have all the buildings on it?
If i set a mail to send on spring 1 year 1, will someone who joins the file on say day 3 have that mail?
What about if its sent to arrive spring 6, year 1 and they are offline those days. and rejoin back on the 10th? will they have it?
it's best that you check if the host has mail if it's something expected to change the world
i know this doesn't strictly answer the question tho
and that's because i don't know
i'm just sending out the "Wand Farm" Via a mail atm, and wondering if everyone will get one.
Technically I can just add a trigger to send it out based on a very basic condition anyone should meet, but just wondering if anyone knew
If you send it via trigger action without a condition it will arrive on the first day that anyone loads a save upon installing the mod. I haven't checked it in MP though.
In general having checks for exact days is asking for trouble.
Even vanilla does stuff like >4 days played rather than spring5 y1
Not to my knowledge. If you're wanting to use a building sprite in a map you will either need to Load it into Maps/ yourself or use Button's arbitrary tilesheet access mod.
its more im just wondering if the syntax on the mail data of <season><day of month><year> works as like an always gained if past X date (Its used as instead of a unique ID reference, which means it cant be targeted by event scripts.)
cuz it would be simpler if it does indeed work that way
Can't be targeted by event scripts?
cuz it doesnt have a unique Identifier
out of the loop, why are you not using unique IDs for your mail again
I would've thought you could use (e.g.,) LocalMail spring_2_3 as an event precondition but I can't say I've tried.
Cuz this is apparently an option, and i'm curious how it works exactly, and I dont need to do anything fancy with it.
https://stardewvalleywiki.com/Modding:Mail_data#Key
ah yeah, didn't know that's a thing
though I would recommend just using trigger actions
what if some other mod decides it also wants to send a mail on spring_2_3
Yeah that's why I don't recommend it
ah, I assumed that it would just send them all, otherwise it would have a note saying Dont do this.
we should add that
There wouldn't be an "all" though because the last mod to load would just overwrite the value from the earlier one.
Wouldn't it?
@uncut viper Is there any way to use "Arbitrary Tilesheet Access" without editing the TMX file in notepad and just using tiled?
its the same reason there isnt a note saying "dont add another Data/Objects item called "(O)14"
yes, just recreate the required folder structure inside the folder of your tmx before adding the tilesheet
i.e put a "Content" folder inside the same folder of your tmx and go from there
(I'll add a note to the wiki anyway, how does this sound:
"It's not recommended to use the date-based format for compatibility reasons, because if multiple mods add mail with the same key only one will get sent")
Well I'm not exactly Fluent in how Coding related stuff works, so when the modding wiki says "Hey you can use this Format." Maybe I trust it to work and be functional, because that is what I have to work with.
it SHOULD have a note.
it does work, and it is functional
You know exactly what I mean, if it causes incompatibilities then we shouldn't be putting it as a primary option.
it causes incompatibilities the same way adding two items with the same item ID causes incompatibilities. its also not being put forth as a primary option, its on a wiki page explaining how the game handles mail code
done
The wiki is a reference for how the data in Stardew functions, not a step-by-step guide or, in many cases, a guide to best practice (though sometimes there is stuff about best practice as a little treat).
But it is cool that we all have access to editing the wiki and can update it to add useful stuff like that when we come across it. Rokugin and I reworked some of the Data/Shops page info the other day because the information about dialogue randomisation was wrong (I assume it was correct when it was written but then the game changed and the page didn't).
"Hmmm, I wonder why the animation doesn't work..."
My brand new, handy debug print command: "Animation Data TODO"
They are intended as guides though (even if not step-by-step ones), it IS used and has pretty much always been used for guidance, because for the longest time, there were no step-by-step guides, no templates. When people don't know how to do something or how something works that is where they checked to try to learn, most of the pages even have working examples to mirror and adapt off of, Even the Modding:Mail data page says "This is an advanced guide."
I do agree with it being Data forward, but I believe it should also warn of pitfalls and limitations of usages, as people do reference it a lot to learn.
I'm also pushing on it because I'm kind of annoyed by the "its the same reason there isnt a note saying "dont add another Data/Objects item called "(O)14"." I realize it was probably intended as a joke, but you're is basically saying, "Its common sense if you know how the structure of this works, so there isn't a need to warn anyone in documentation." By opposing the note, when people don't know how the structure works exactly, I see it as setting them up for failure, when its avoidable.
In an attempt to get it back to something more light-hearted, Here have a Tiled Image of the Beach Cave I added to the map i'm working on.
oooh, that's really coool.
This is my first time making an artisan machine mod, and I referenced a couple other modders' code to help me finish this.. when I try to put clothes into this machine it won't work, what can i do? also, what does this mean? please ping thank you! https://smapi.io/json/none/1afeb27853ce4cc381995e81450c1944
What tilesheet/map would blue grass be in?
its spawned using Paths, the same way normal grass and Debris is. Its the Blue tile at the bottom.
(if you need the spritesheet of the grass itself, it's in terrainfeatures/grass)
What is the required/ appropriate resolution for map overlay of farm?
for the Worldmap?
For the worldmap
I'm not sure the exact dimensions but i know the base game versions are in LooseSprites Folder under the names "map" "{{season}}_map" Where {{season}} is used for summer, fall, and winter respecively.
Thank you
it's listed in the assets tab
Are clothes not able to go in machines?
I am not sure as I've never worked with machines, Just wanted to make it clear we aren't ignoring you, its just we tend to stay silent when we can't provide help or knowledge. Maybe https://stardewvalleywiki.com/Modding:Machines can help in the meantime, until someone knowledgable responds?
I tried this a few days ago for my recycling machine modification to try to turn clothing into cloth, clothing cannot currently be used as a machine input.
See my science on this a few weeks ago.
RIP 8 hours of my life 
Well, on the upside, Selph said maybe they might be willing to make clothing able to be input through EMC at some point?
so could shelve it for later
really can be narrowed down to (O) qualified items
I asked Pathos if there’s maybe possibility of adding it to CP
I am so sad I worked on this all day
But I’ll keep it tucked away in meantime thank you
I haven't been around, but I guess nobody else that was around for my science was around to inform you either. Sorry you spent all that time on it!
It’s okay, I just thought I coded it wrong, silly me ):
furniture is a subclass of Object and should theoretically work, maybe
Furniture does work. I scienced that at the same time!
The things I listed in that message should be ones that aren't subclass-objects
I am assuming those are also Invalid for stuff like Recipes as well, so you can't do a conversion step to make it usable as a custom object for machine input?
recipes should be able to do any qualifier now i believe, for machines theres just specifically a statement inside a function that says if (not an object) return
well yes but we do need to emphasise here that BC is big craftable
and they'd just be B if they weren't craftable
If @ivory plume could add all of these as inputs, I’d be so excited to see what mods would come out of them 

which is why it must be emphasized that it is not narrowed down to just (O) items
it is only because all of those things lily listed are not the same C# class or a subclass of Object
So, yeah, I suppose a workaround could be making a crafting recipe to turn clothing into cloth if they do any qualifier, but that's less fun than having a machine do it with animations and stuff. >_>
Also I'd be terrified that it might grab the clothes you're wearing to convert.
Plus I don’t use cloth for all of them
Speaking of Pathos, I noticed the other day that the FarmHouseFurniture Property for maps Requires a Numerical ID (Which they used to be exclusively), where many of the Furniture added in 1.6 has a name ID, so they become invalid targets by default. I'm unsure if this is a Base Game or Smapi processing thing, If I wanted to ask about getting that patched/looked at, should I be poking Pathos? or is that like a bug report thing? I'm unsure.
that is a base game thing and if i had to guess probably something thatd be put in an eventual 1.6.16+ (or maybe not even maybe we're done until 1.7 now or something) but probably worth bringing up to put it on the list, though i dont know if someone else already has
Is there a place/person/method that is recommended for reporting it, or a request list somewhere?
i do not know
i just usually wait until pathos is already here and then say "oh by the way, Pathos"
i know there is a forum for reporting vanilla bugs, but its not really a bug per se
just something that was not unhardcoded
https://forums.stardewvalley.net/forums/game-suggestions.22/ there's this but I dunno how often it's checked
!officialbug
If you've checked that it's not a mod bug:
- Report gameplay bugs to the Stardew Valley developers here: https://forums.stardewvalley.net/forums/12/ (do a quick search first so you don't report something they're already looking into).
- Report typos or translation errors here: https://forums.stardewvalley.net/forums/32/
Alternatively, you can emailsupport@stardewvalley.net
@ivory plume Sorry to Bother You, its Relatively Minor but I wanted to get this to you before I forget. (This message is Replying to relevant message.)
it isnt a bug, though, and it doesnt come up outside of a modding context, so i dont think theyd want it there
like it does work perfectly, just... unfortunately overlooked during the 1.6 alpha
Pathos always says Pings are Fine, But it always makes me nervous to Ping Anyone. 
oml mapping is FUCKING KILLING ME I HAVE BEEN ON THIS 1 BIT FOR 4 HOURS AND I KEEP MISPLACING IT AND NOT REALISING
Do some mods not work on Steam deck vs PC? Probably a dumb question but I'm pushing my Steam deck to it's limits and what works on PC comes with weird bugs on the deck 
This may be better in #1272025932932055121
I'll head there next if I can't figure it out--I didn't want to make a whole post when I know I'm pushing it atm
I mostly wanted to see if people went "oh gosh yeah steam deck is weird"
Fair enough, srry!
general questions about using mods are better off in #modded-stardew by the way, this channel is for making mods
Minor note, you may want to make that bridge 2 wide so you can go over it with a horse.
That would be a game suggestion, not something for me. (This is an original farm map I am editing for my mod) /nbr
!officialsuggestion
.
!suggestion
!bug
BRO WHAT IS IT
idk if this is the right chanel to ask but:
im editing a building mod in photoshop right now, do i need to change any coordinates when i want to change the roof? id like to make it a bit bigger but i will keep the door position
thanks!
I did it.. I FINALLY FUCKING DID IT! HA HAAAAAA YESSSSS
the door position is defined by the TileData in Tiled (iirc, someone correct me if im wrong)
oki great! so it doesnt matter how big the roof is?
ill leave the door where it was
correct, just make sure the roof doesnt overlap the door nor that the door is moved
(someone corect me if im wrong)
thank u so much!!:)
can someone please remind me what the fuck this
loaded | conditions | applied | priority | name + details
------- | ---------- | ------- | -------- | --------------
[X] | [X] | [ ] | High | Loading Seasonal Looks farmer's portrait (Load aedenthorn.FarmerPortraits/portrait)``` can mean
specifically the loaded yes conditions yes applied no part
please 🙏
usually if it's loaded, has proper condition but isn't applied, either :
- you have the wrong target
- you haven't loaded the content yet
the target should be fine, and also, it's working in my game, this is a bug someone else is seeing.
What does "haven't loaded the content yet" mean?
I've got HasFile: FromFile: true in the conditions
basically
in this case i assume, having loaded the save, and spoke to a npc
like, typical example would be : you want to see if shane portrait is applied, you need to have spoken to shane
otherwise the game will not try to apply that portrait
huh
id assumed they would have done that first but technically i didnt ask and they didnt provide a screenshot
ty
farmer portraits i believe are shown when you speak to someone so i assume it's when it's applied
yea
im mostly assuming whatevers going on with their situation is a farmer portraits bug and not on my end, but im going to do my best to help anyway (if nothing else if it's a common bug i might want to do a workaround or something)
tyvm
where exactly can i change the size of a building? or what would i add to define the size? (id like to make the slime hutch bigger than it is)
this wiki page should help for further info on buildings, but i believe what you're looking for is the Size field under "exterior behavior"
yup, i dont know where to change that though, i thought it would just be the slime hutch.xnb file but apparantly its not
can you clarify - did you mean interior size or external building size
!unpack you have to unpack the game first
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
and then use content patcher to edit the building data
of course - for now the external building size is fine because i just want it to look pretty, i just changed the .png file in the mod folder to the new look but i have no idea how to resize the building so it fits the new png
i will try thank u!
(then yeah building data is what you want)
great thank u!
okay ive tried for hours now and i just cant seem to find out how to edit the size, so if anyone can give me a bit of an in depth tutorial i would highly appreciate that 😭
Unfortunately that isn't possible without a major refactor to the game's machine code, which would also be a bit apocalyptic for any mods that work with machines, furniture, tables, etc. It's definitely out of scope for the small 1.6.x patch updates.
I'll add a fix in Stardew Valley 1.6.16 (though there's no ETA for that release). Thanks for reporting it!
yeah I'll probably add this
(if it's not too much effort)
Bless you and your future generations

ok so my workaround idea so far is patch performObjectDropInAction and turn
if (!(dropInItem is Object @object)) return false; into
if (!(dropInItem is Object @object)) @object = MakeWeeds();
because interestingly the machine code path doesn't (seem to) care about @object
and weedses should fail every other code path that does
someone tell me this is a terrible idea quick
Its a beautifully silly idea
welp, ran into the first and likely fatal snag: you can't hold hats and shirts in hand
to put them in the machine
hmm perhaps I'll just add a button press event for that (if machine is set to allow clothes and active slot is clothes then just drop clothes in)
Do you guys get random friend requests from people in this server who've never spoken in this server? Because I do occasionally but ignore them because I have DM requests enabled instead. Wondering if they're trying to contact me about comms or mods though 
I occasionally get them, but people who actually need help will just send a DM request
the times its happened to me (once in here) and in other servers I'm in, they're doing dodgy stuff
I ignore the rest
Okay good
they're almost always scams from experience
I get random friend rqs, and usually ignore them if they don't have a message attached
Like no dm requests or anything
I think usually that indicates spam, but since you’re a known mod author with open commissions… who knows. If they wanted to contact you they can DM though like you said
All the time
That would be AMAZING
That's a really cool idea! It would be nice to add a way to make custom furniture displays for mods with custom furniture. I'm thinking about how Funriture work in vanilla (no price, easy to replace), and how custom Funrniture mods often work (many variants of the same item in different colors), and I think it would be nice to have a way to exchange Funriture for their variants, this way, if you buy a yellow couch, you can exchange it for the same couch of any color.
Of course, I would gladly help setup a Framework to help modders do all this custom stuff. Also if you need help with Furniture specific code, you can ping me, I'll do my best to help!
Hi,
so, I'm checking all parts of my NPC mod one more time (before its official public-wide release, a few pre-testing versions are available here: https://github.com/DenisSilent/Eleanor/releases), and right now I am stuck at my secret mail. For some reason, I can't quite figure out why the mail doesn't trigger/load into the game, or at least to the farmer's mailbox. However, my debug mail (which is commented out & using the same formatting as the one that doesn't work) was OK.
For comparison, I include both the mail that works and the other one that doesn't.
Is there a kind soul that would help me?
not-working mail: https://smapi.io/json/content-patcher/eb22ec37aab648dba515ccf759672d53#L64
working (commented out) mail: https://smapi.io/json/content-patcher/e79240946d3d46a6a9bb4e9c3167a819
i18n: https://smapi.io/json/i18n/43d34bbb523746cd8dbfbea273108721#L572
log: https://smapi.io/log/72ab7399cf1649669f3f722d925c744a
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 64 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
OK turns out this wasn't the problem
you can put hats and shirts into machines just fine
the problem was that, drumrolls please, ||Producer Framework Mod has a skipping prefix that blanket banned all non-objects from being put inside machines||
behold, preserve jar turning hats into fairy roses
anyway this should be in the next version of EMC, with the caveat that it only works if PFM isn't installed
huh.
@mystic skiff sorry for the ping, if you have time can you review https://github.com/Digus/StardewValleyMods/pull/314 ? Thanks! You can see context above
(side note but I got really really lucky lol, I would not have caught this if I didn't have PFM enabled on my test save, and if a user reports that it doesn't work in their personal mod list I probably would have gone insane trying to debug it)
I usually ask people to test without PFM/PFM-related mods first if they have issues with our machines; its happened a few times
Isn't PFM obsolete now anyway. I thought everything it does can be done in CP now? Am I wrong?
PFM still has many features not supported by vanilla CP machines
I have seen logs that have PFM installed with zero packs
but EMC should cover that gap
Some people don't remove mods until they explode
I had someone who reported a bug to me, and they were using PFM, and the only PFM pack they had installed was the template/example pack that had all the vanilla machine rules in it
Lol
Like what? Just curious not looking for a comprehensive list or anything.
(that was somehow preventing our CP-modded rules from working)
the most significant one is fuels on a per-recipe basis instead of per-machine
Oh, that could be useful. I wouldn't use it, I but could see someone wanting it.
That's why EMC covers it
I guess there's also stuff that needs digus' other machines framework custom cask mod
Emc doesn't do anything there right
no, but my impression is that vanilla cask output works fine
i thought so too but havent looked into it
there's AgingMultiplier
which granted is not very flexible
just a 1-2-4 ratio for silver-gold-iridium
need more knobs
I'll add those knobs when there's demand 
But yeah there r various bits of logic locked inside outputmethods, but most machines r exposed
One thing that i was annoyed with is that ItemQueries don't get input item in context
So i had to do outputmethod for trinket upgrade stuff 
This is very much a C# only gripe ofc
(following up from DMs) have you read the guide for content patcher, specifically EditData? https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md
yeah seems interesting, I'll look into this once I have more time
or just the main guide: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
what you would do is Target Data/Buildings, and edit the Slime Hutch entry's Size field
I dunno if this is worth solving bc the deal as i understood is
- item queries get the id of input
- item queries don't get the specific instance of item that was the input
This second case is very much a welp custom outputmethod time situation cus i feel only C# mod care in first place
Shame cus gsq do get the real instance lol
hmm makes sense, if you care about the actual item you'd do custom output method anyway
Does anyone know if the wedding day counts as a festival day?
IS_FESTIVAL_DAY
If not, is there any way to ensure that an event won't trigger on the wedding day?
what coordinates do you guys normally use when testing to see if an npc spawns, im trying to see if my npc will spawn but the coordinates i used @ the bus stop made it so the npc is invisible (orr i messed up!)
what are the coords
yeah IS_FESTIVAL_DAY won't catch weddings
you need BETAS: https://stardew.button.gay/docs/betas/queries
Spiderbuttons.BETAS_PLAYER_WEDDING_TODAY
ahh
Alright. I will fall back on BETAS if I absolutely need to, but I'm happy using a trigger action to set my own timer. I just don't know how to ask the game what the wedding/anniversary date is
let me try a diff placement then
try 19,14
thank you void
Trying to avoid extra mods if possible
i was trying to figure it out lol i was so confused
yeah will do
if its not then i just messed up along the way
was not the coorrdinates, my npc is literally just invisible LOL
I might be able to make a trigger work off of PLAYER_NPC_RELATIONSHIP... going to try that
thank you for the help on that one
huh, odd
its just a me issue
im new to modding and set everything up
prollly skipped a step along the way or something
but no errors pull when it happens so im just crying abt it
you could post your json here if you want someone to check if theres a mistake
i might
could aslo run a patch summary <modID> command to see if all assets loaded
smart, i didn't think abt that
let me give that a shot if this next test doesn't work
should i toss content.json or schedules.json or both
i believe its a schedule issue but i rlly don't know if the npc is just invisible
i get that, i dont know the code for the editing though
and the link seems to work with items
and it wont let me unpack the building file now LOL
did you use the unpacker as linked in the command
as for the code, do you see how the EditData moss soup example targets Data/Objects, edits a single field on the MossSoup item to change its price
yes, i put it in the folder and ran the unpack command but it just did not do anything
i will try it with stardew hack now
you want to do the same but target Data/Buildings, edit a single field on the Slime Hutch entry to change its size
ah you want to use StardewXnbHack in most cases, not the other one
StardewXnbHack should just work™️
once you unpack Data/Buildings it should be clearer as to what you should edit
ahhh okok i get it
yea now there is a size code
so now i just turn it pack into a xnb file and it should work?
XNB mods often break the game and are not recommended. See:
- using XNB mods for more info and a list of Content Patcher alternatives;
- reset your content files to fix problems caused by XNB mods.
For mod creators, see editing XNB files for help unpacking & editing them (including for use with Content Patcher).
follow the guide above to make a basic pack
if content.json is where your dispo is id start there, and yeah maybe post schedule too
!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.
yeah my jsons are all normal
atleast from what the io/json says
ill resubmit and let you guys take a look
even if the validator shows no errors you can have something messed up in there that it might not register
like when you slightly typo one of your IDs, the validator doesnt know that
yeah that's what i was thinking
i've been regoing through all of it and trying to see what i did wrong
this is a very rough draft
so excuse how it looks lol
Put in your console debug where yourNPCname
If you get an error then they're not spawning at all
ah okay, so can i just add the id and then the new size?
If they're not spawning it's often a problem with your portrait or sprite loads.
you dont need the Format: 1.6 in schedules
oh thank you
Ah yeah, I see the problem
Your sprites are targeting Sprites/yournpcname but it should be Characters/yournpcname
ah so that was right originally
it errored out when i had that the first time so i changed it
yeah
make sure to use Fields so you don't override the other fields of the Slime Hutch object
when you're done feel free to post your code at smapi.io/json so ppl can see how you did it
now i wonder what that error was 
i ran so many tests at this point its exhausting lol, i see why you guys get frustrated sometimes
I would also suggest loading a "default" set of sprites and then making your seasonals conditional Edits
(C#) if i'm using reflection to access a private Func, do i use GetField for that? and how would i then invoke it
do you mind going into further detail for me? just so i fully understand and don't mess it up
alright on it!
"Action": "Load",
"Target": "Sprites/Talysi.Astrid",
"FromFile": "assets/Sprites/Astrid_Sprite.png",
"When": {
"Season": "Spring, Fall, Winter"
}```
This part, remove the When condition
Then on your summer sprites, turn that Action: Load into Action: Edit
(Or you can comment it out/remove it if you want to be sure the load works)
we can try edit for now, when summer hits in game ill know lol
based on this, do i still change "Sprites -> Characters"?
kk
(It might need to be EditData, I'm on phone so I can't check the syntax in the CP docs`
{ "Action": "Load", "Target": "Characters/Talysi.Astrid", "FromFile": "assets/Sprites/Astrid_Sprite.png" }, { "Action": "Edit", "Target": "Characters/Talysi.Astrid_Beach", "FromFile": "assets/Sprites/Astrid_Beach.png", "When": { "Season": "Summer" }
oopsies
that's how it looks rn
not a problem, i appreciate your support regardless
sorry for ping
(you can jsut make summer happen with cjb cheats menu
)
(ignore me, see below) GetMethod I think
LOL i told my co op about cjb and he said absolutely never install it 
oh wait I misread
ill give it another test run
I'm actually not sure now lol
(skipping time using cjb cheats/console commands has some quirks that mean it may not work the same as passing it normally in game even after a sleep, so just be aware of that if using it to debug)
No worries, I'm fine with pings 
your mp buddy doesnt seem to like cheats. either way its a great tool for mod testing especially if you dont wanna do too many commands
https://smapi.io/json/content-patcher/9b1901f0fd9e48d7bbfb10cc45ee396a
should work now i think! no errors
just do this:
{
"Action": "EditData",
"Target": "Data/Buildings",
"Fields": {
"Slime Hutch": {
"Size": {
"X": 11,
"Y": 9
},
}
}
}
I especially love going back in time and undo my tea bushes into invisible spots 
note that I use Fields instead of Entries, and specify only the Size field
because if I use Entries I'd wipe the other fields
_memory conversation topics also aren’t affected by skipping time
okay thank youu!
my stardew is starting now ill check how it looks like :D
edit didn't work, so i changed to editdata to make sure it ran
oh editdata didn't work either
Err... one question - I use "Entries" in patches the whole time, it should always load only one patch? Because in my schedules (not only schedules), I always use "Entries" and the code looks like this: https://smapi.io/json/content-patcher/bdb3c29f5185414c835a261030d532b0; but when I run patch export Characters/schedules/StrojvedouciDenis.Eleanor, I'll get all the patches, like here: https://smapi.io/json/none/0371f4e56c8b49a1a4066e5ce2e46ee3. So is there really something different? Or can I safely use "Entries" everywhere?
(BTW, when you or someone else is done with helping others, could you also help me with this? #making-mods-general message)
Probably EditImage then
will give it a shot
(This is why once I get it right once I just copy-paste that next time I need it
)
this is kind of fun to do
Fields are used when you're editing existing entries that are already present
your code looks like you're loading new entries entirely, hence Entries
homescreen acquired
So it's OK to use Entries everywhere if I do new entries (f.e. for new NPC)?
did you change the second to target "Characters/Talysi/Astrid" with the EditImage? In this codeblock you were targetting two different character targets (the normal one and the one used on the island)
yes i did
like just a min ago
cool, just got here so I wasn't sure what had already been corrected
np!!! thanks for the heads up
okay so the npc spawned but she's facing the wrong way lol and i can't talk to her
this is good progress
That is good progress! It means your disposition and images are loading in properly. Now you can check her dialogue file.
i only put intro dialogue as a start
"Hey, what are your plans today?$0$b$e/That's good, Have a good day then!$h"
just some tester stuff
Ah well that's probably why then
I'd drop in a set of Mon/Tues/Wed/etc just for a base.
kk! thank you
Re: facing the wrong way, it could be the facing you spawned her in with, or it could be your spritesheet is out of order -compare with a vanilla sprite sheet to check the latter.
yeah, if you're not editing an object added by the vanilla game or other mods then Entries is fine
out of order?
Do you want to do easily translatable dialogues, a.k.a using i18n for dialogues, or you'll skip that?
If you will want, I'd recommend this page: https://nom0ri.github.io/sdv-i18nifier-app/
More about i18n here:
!i18n
So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!
-
How to make your mod compatible with other languages: stardewmodding.wiki.gg
-
The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".
-
If you're converting from an older version of the game, there's a converter for ease-of-access.
Not to be confused with
{{DynamicTokens}}since these require the specific{{i18n:<KEY>}}modifier
prolly skip, this is a personal mod to test and try new things
if i want to go public with a mod it'll be a few months
the code looks fine to me. how is it broken?maybe the trigger already ran in your test save
i don't want to give out a bad mod to people
This is helpful to me right now, though, so thank you
Yeah, I started with my own NPC mod on August 2024 and will probably release it this month...
good for you!! good luck :D
My first NPC mod was two weeks, my second one is two years and counting. It takes the time it takes 
The mail in secrets file won't spawn in the mailbox (using brand new spring 1 save, also tried sleeping, didn't help)
bah im stuck on not being able to speak to her
I started mine in April(?) of last year, did a bunch of events and burnt out. Buckling down to finish it now
Thanks!
(btw, it's code is here, you might inspire by it, but no guarantees it'll work: https://github.com/DenisSilent/Eleanor)
Want to be done by the end of this month
thanks ill take a look
Did you use "Received" instead of "Now" for your mail action trigger?
what does debug showmail {{ModId}}_Secret.Mail.Eleanor_warning (change {{ModId}} to your mod ID) do
Err... what?
There's a debug command to let you trigger dialogue with a character you can check, you can also use patch summary full and check to see if her dialogue is loading.
A second, please...
If you are using a TriggerAction to send mail, "Received" will skip the mailbox
"Now" will put it in the mailbox right away
Oh! I don't have that there... ( https://smapi.io/json/content-patcher/eb22ec37aab648dba515ccf759672d53#L64)
it did not work :(
Neither the one that works has it...
that loaded a LOT, let me double back and check all of it lol
If <type> is omitted, it defaults to "tomorrow"
So the letter should show up the day after you sleep
It did not, but I'll check it one more time.
Use patch summary "yourModId" full for output only for your mod.
tyty
pls post your smapi log
Yeah, I'd toss your log into SMAPI.io to make it easier to read
also recommended to do it with a minimal mod load
i just noticed that the .json file did not convert
so its just a text file
This. Also, log - https://smapi.io/log/186b2d69a4824225bee2452829b26834
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 64 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
You can ignore that warning
hmm that means the mail is malformed and not loading properly
It's gotta be something with the formatting of the letter, I think
"{{ModId}}_Secret.Mail.Eleanor_warning": "{{i18n:Secret.Mail.Eleanor_warning |DT_dialogues={{DT_dialogues}}}}"
Try putting a random string in there
Just to confirm mail is being sent
My guess is that it doesn't like your |DT_dialogues bit
Like this: "{{ModId}}_Secret_Mail_Eleanor_warning": "{{i18n:aaa}}}}"
It works for events and dialogues...
Sure, but this is in a letter
If you are trying not to send a letter when a flag is sent, use a When condition
The target for your dialogue isn't correct...check the wiki to be sure but I think you should target Dialogue/yournpcname
here's the mail string, for the extra eyeballs in chat willing to take a look
https://smapi.io/json/i18n/43d34bbb523746cd8dbfbea273108721#L572
oh what
i've been staring at the wiki nonstop
Tals have you seen the specific modding wiki
In general, your Target is where in the base game you're putting the data, and you usually have a specific format for where you should be targeting 
i have
So change to this? "Secret.Mail.Eleanor_warning": "Test", (in i18n's default.json)
tia got a cool npc tutorial on there
Ummmm.... what I would do normally at this point is start cutting parts of the string out until I find the thing that is making it mad xD
its what i've been studying nonstop to make sure i get things correct before coming here 😭
yeah try it and run the debug command again
Try "test", then try the whole string without the dynamic tokens
Nope, still the same.
If you're using the NPC tutorial and find anything confusing, please let me know so I can tweak! 
Is this a fresh save? Maybe the trigger action isn't firing
i think i just struggle more than others to understand things since i question everything
Yeah, clean save.
when you guys say the wiki, do you mean this wiki (or extension of it)
https://stardewvalleywiki.com/Modding:NPC_data
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
this, Tals
Here, it's there fully ok...
ye i have this saved too
That tutorial is gold!
ill rego over the details so i make sure i have my understandings correct
it is! tia is a great tutorial maker, very nice to understand it :3
huh
your json file posted above has your mail as {{ModId}}_Secret.Mail.Eleanor_warning
but your patch export says StrojvedouciDenis.Eleanor_Secret_Mail_Eleanor_warning
Down there.
Yeah, also noticed that...
did you change something inbetween posting the question
anyway make sure your trigger and your mail data match exactly
I did and as it didn't work, I revert the changes. Do you want new share files?
sure
Which ones?
trigger, mail, i18n
then the debug command that I posted above doesnt work because you changed the name
what happens if you use the correct mail name
What do you mean? {{ModId}}_Secret_Mail_Eleanor_warning (with {{ModId}} changed to real mod ID StrojvedouciDenis.Eleanor)?
hmm I don't see any reason why this wouldn't work now
does the debug command show "Test" properly
debug showmail StrojvedouciDenis.Eleanor_Secret_Mail_Eleanor_warning
@brittle ledgesorry for ping tia, to verify, should i 100% make a disposition.json rather than putting it all into content.json? & if so, should i put it into assets
FWIW: I'm not seeing anything off, either
Huh?! Now it works!
Good! Now you can start putting other parts of the string back
now swap back to the old i18n and see what happens
I guess it should be fully up to you...
hmm
It doesn't matter where your code goes in this case. If you make a disposition.json, you just need to make sure you use an Action: Include to pull that code in from the JSON file..
you just gotta remember if you do to do an include
Is "disposition.json" a standard(ish) file name? I haven't seen it before
alright that sounds good
oh lol same braincell moment
It works without token parsing...
Character data used to be stored in a file called NPCDispositions.json, so it's a holdover name that people use to reference the data
And also with it.
It's now in Data/Characters instead.
Thank you!
So it's all good now?
now start fresh save and sleep 
Now, let's see if it will trigger...
fingers crossed
Good evening everyone!!!
I created three custom map, which connects to two vanilla maps via few tiles with "AddTile", all warps work fine in the game, but the log writes me this:WARN game Failed parsing warp 'Backwoods Custom_Woods Desert' for location 'Custom_VaiAlDeserto'. Warps must have five fields in the form 'fromX fromY toLocationName toX toY', but got insufficient fields.
I think there is something wrong with the map, but I didn't understand where I went wrong what can cause me this warning?
Full log might be helpful (PS: I have no knowleage about custom maps)
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
id start with posting how you did the warps
If you are adding a Map Properties warp, then you need to use the <(teleport from) x> <(teleport from) y> DestinationLocation <(teleport to) x> <(teleport to) y> format
Where do I write it, here?
Whereas for Tile Properties with Action Warp, you don't need the first two coordinates, so the format is different.
theres a link in the command
Here: https://smapi.io/log
But they are tiles in the map with warp
Clean new save file... and it is NOT in the mailbox... How sad... 
Even after sleeping?
Hey, just for testing, add the "Now" type to your trigger
Because then it should be there once you wake up, without having to sleep to the next day
Trying that.
Then that.
Screenshot your Map Properties pane in Tiled, as well as the pane when you have the TileData object with the Warp on it selected?
Yeah AddMail by defaults adds to the tomorrow mailbox
If that doesn't work, run a debug gq command
So now both of them are there...
if you want it to be immediate add Now to the trigger action
Should I do fully new save again?
Yes. Just have the one trigger action with "Now"
@brittle pasture (i hope tagging u is fine)
https://smapi.io/log/30048b0a70924a03a62b25302e33b12b this is the smapi log, im desperate and i cant find where ive messed up
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 54 C# mods and 213 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
And I think you will see the expected behaviour
Yeah, OK, having that:
"LogName": "Eleanor - secret mails - trigger",
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_Secret_Mail_Eleanor_warning": {
"Id": "{{ModId}}_Secret_Mail_Eleanor_warning",
"Trigger": "DayStarted",
"Action": "AddMail Current {{ModId}}_Secret_Mail_Eleanor_warning Now"
}
}
},```
this is the mod i made but it does nothing (doesnt even show up?)
That looks correct to me
(creating the save)
okay, and what about the Map Properties when you don't have an object selected?
IT IS THERE!!!!!!! 
High five!
Okay, you see where it says Warp there? That's the one it is complaining about
Thanks so much guys for helping me! (Don't worry, you will be mentioned in my changelog!)
Just glad you got it working. I'm going to have to i18nify my stuff before publishing, and I'm not looking forward to it
So thank you for posting the link earlier, too
Should I write it in the properties as well? I thought it was enough to add the tiles.
If you're not using the map property and are just using the tileData object property, you can probably delete that map property.
You're welcome, and with that tool it's pretty fast, so maybe it won't be as bad...
Could not load content pack 'Slime Hutch Resize': content pack doesn't specify the required Format field.
you need a Format field in your content.json file
something like "Format": "2.5.3" should do it
Thank you!!! I got it, I thought about writing it there before but then I added the tiles and forgot about that Thank you!!! ❤️
Is this the CP version?
I don't have one yet
No worries! I default to adding Warps via the CP code myself, so it's easier to change it if needed for mod compatibility
yes, usually the latest version of CP
You saved my life, I was going crazy ❤️
(btw, here's my NPC mod repo with full code, including today's changes, look and inspire, and don't hesitate to ask if you don't know something! https://github.com/DenisSilent/Eleanor)
Nice, thanks! I'm considering whether to put my stuff up on github before release, or just let it live on Nexus
can anyone help with making an NPC?
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
Though if you have specific questions, there's usually someone around here to help 🙂
My full release - version 0.8.0 - will be both on Nexus and GitHub, but now, these 0.7.X, I have them on GitHub. If you don't use .dll (coding with C#), I don't think it's necessary to have the NPC 100% CP (doesn't have to be 100% CP, but...) open source, a.k.a having it on GitHub/page like that.
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.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
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!
(my builder sheet is at the bottom, if you use it and have questions, let me know)
so... any good programs to translate mods? i am translating this mod but unfortunately the program i am using is giving me hell.
it's in korean and normally with the Transtar program it works but nope!
don't feel like workin today!
This might help you: https://www.nexusmods.com/stardewvalley/mods/21317
I don't have any suggestions, but wanted to repeat a small warning: if you use an AI program to translate, sometimes it will hallucinate and add entries that don't exist. So you will have to check the end result over very carefully anyway for extra/missing data
ahh
BTW, that mod is outdated and might not work in SV 1.6.15!
ahh
thank you! i'll test it out since there's some really cool mods i and others can't use due to there not being a translation
Or... as it uses only MFM and CP, it might work, but I'd recommend testing it first!
And that's why I'm doing/creating i18n for my NPC for easy translating!
Slightly related but yeah sometimes google translate flips out and i watch the poor thing start making up words that were nowhere in the sentence 😭
so for the mod right? just install the mod like normal and it'll auto translate it?
so true. i got joza when i tried to run it through google translate
usually it's how i do my translations just run it in a translator and then proofread it
I was trying to translate cooking instructions and watched it go through 7 variations of the sentence, none of the correct
I think what happens is it sees other characters (sometime numbers or units of measurement) and gets confused
noted
I think what it does it it separates out lines to aid in making translation easier? But i think you still might need yo do it yourself
ahh ok! any good tools to run it through?? i usually use multiple
Yeah, using Internationalization (https://www.nexusmods.com/stardewvalley/mods/21317), you still need to translate the sentences yourself (you can copy/paste them into translators, but...)
Im grabbing that nexus link btw haha, makes my job easier
Not like i ever play the game anyways...
okay so the size changed but now this happened?



