#making-mods-general
1 messages · Page 96 of 1
just thinking of having an item with a helditem and interacting with a chara would pop the helditem and donate to the order
get the 7 dragon balls to complete this quest
hm
6 dragon balls?
what if u just keep calling SpecialOrder.SetDuration whenever u want
it doesnt seem to keep any "start day" so that method just adds 7 day for u
off to harmony mines for u then
yea this doesn't sound very fun anymore lol
blueb has a 5 bedroom 4 bath house in harmony wdym
I wonder if u could do custom objective actually
Maybe if u trick game with a funny namespace
when we start adding 'funny' to our hacky bs is when i get skeptical
objectives are fine for me anyway, just have to screw around with the handler to make it check item.helditem instead of item
I think atra has claimed there's like 5 different mods that make untimed special orders
SVE, RSV, etc etc
Hi classical Mathperson!
EMP

hello other me
ES, SOTE
ah yes small mods with easy to reference code
My headache
Do they all patch istimedquest lol
god i hope so
plus you get to decide who did it best
Yes lol
Hmm patch SpecialOrder.isTimedQuest to return false for the special order to remove the duration display iirc
Just gotta keeping adding days every season or two
Or would it not check duration at all in that case
Still gotta add more days
always the 5 minute funny ideas that turn into harmony and subclass and dialogue fenangling and every other idiot workaround
But if you just want an untimed special order and don't mind an extra dependency then I'd like to shill my own mod for a second:
I keep getting "[Content Patcher] Could not load content pack 'MercyTextures': content pack has no content.json file." what am I doing wrong here?
you told your manifest.json that it was a contentpackfor content patcher, not AT
oh shit ty
Found out earlier that one of my (non-Harmony) mods was getting an InvalidProgramException, I guess due to binary changes in SDV. I know that SMAPI should normally either rewrite things or report incompatibilities. Is this a bug that I should report, or just (bad) luck of the draw that SMAPI didn't happen to pick up whatever that issue was?
it's definitely your mod?
Definitely, and as soon as I rebuilt the mod with no code changes at all, it was fine.
SMAPI did report that it rewrote one method, which could have been related (but not necessarily), so I'm thinking maybe SMAPI rewrote it wrong.
But I don't know that, and frankly am not emotionally invested enough to really go spelunking, since it was apparently trivial to get working again.
No, InvalidProgramException as I said earlier.
That's the error you normally get when you spit out bad IL in a transpiler and such. It could be caused by a mod calling a vanilla method whose parameters have changed - but SMAPI normally rewrites those to deal with optional params.
Anyway... no big deal either way, just thought I'd post a heads up, in case Pathos is sitting on his hands with nothing better to do.
you can give me the mouse and have a cat instead. i am in favor
This occasionally happens yes
Did you use Utility.ForEachItem
oops lol forgot snow is more strict on merges
I am in favor too
Nah. If SMAPI did a bad rewrite then AFAIK the only method it rewrote was Game1.enterMine.
Snow also doesn't like to be rotated
At least, that's the only one that appeared in the log.
yah didnt rotate grass so just gota line stuff up
enterMine does have an optional parameter that looks new/unfamiliar to me (forceLayout). Don't think it was there before.
Possibly, yeah. I've noticed it happening before
And it is a Nullable<int>, which is easy to screw up in IL emission.
(Speaking from experience)
(I had to double-check myself, but EMP doesn't do untimed orders, just custom boards
)
probably meant to add it at some point, though
it's on my to-do list okay
specifically adding a townBush arg to DB's addBush command because I can't point people to your bush mod 

(You might say... you're bushed?)
can anyone explain these 4 water tiles to me in the vanilla tilesheet? Do they go to different water types?
for fishing
you can set different properties to them if you need
but there not for fish but looks
they don't look all that different to me
i think there used for pool or fountian water
oh
Anyone can tell me why my bus stop option is not triggering after the default calico desert dialogue bus option?
cs
dont know anything about dialogue sorry
I think Its too hard to add a bus option. Too bad buslocations isnt being updated it honestly seems like an easy fix.
found the tiles I was looking for. haven't detailed the riverbed yet
yah detailing is rough just takes time though
for the edge, I just placed every copy of the same tile
(Unrelated)
I'm trying to not have my jsons too clogged up (for easier navigation). Is there a way to do an Include for dynamic tokens? I'm using a LOT of em
you can't set dynamic tokens in an included file. they must be in content.json. sorry!
Damn
Someone tell the content patcher team to change this 😂 jk jk
Idk how that would even be coded to work
i suspect reason is probably because dynamic tokens need to be ordered
I registered the same Action in the tiledata of my self-made map as my C# mod, but the interaction in the game does not work.
there is a technical reason, but i forget/don't understand it
tbh, I'm finding it kinda fun
without any more specifics to go on, check these:
- the TileData is tile-snapped correctly on the
Buildingsdata layer - its name is
TileData - it has a tile property called
Action, which is a string, with valueYourCommandHere param1 param2...(params as needed) - your C# component registers the same command
YourCommandHereusingGameLocation.RegisterTileAction
@tiny zealot details are here. RPBFishingGame and FishingGame are the same, I only made the modification to transfer the player's position after the game is over.
Yah I just finished ground area working on water myself as well
I'm starting with my river since I want to use it as my bottom border for the map.
Ah I see
your tile data is misaligned nvm i read the , as a dot
Was going to try my hand at updating a mod but the error it throws is just "DLL couldn't be loaded." Where do I even start with this lol
Also doesn’t some tile data go on the building layer or it won’t work forgot what cases I know one is the Minecart action
did you build the mod
If you're talking to me, yeah I built it and the DLL is there
It's BetterFriendship
post log then
joining Casey on the "still on beta-5" train
Log found, uploaded to: https://smapi.io/log/e9df8233d0704d199de2247ea37917e7
---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Runtime.Caching, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
did the mod include its own System.Runtime.Caching
I'm totally new in modding, i'm trying to do a mod that edits energy values of some foods, but I can't seem to find itemIds or names, neither buffs that I can apply to those foods, I've been tryingg to track them following https://stardewvalleywiki.com/, but I can't find the docs that I'm looking for, any ideas?
I'm using JSON and CP
<ItemGroup>
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.0" />
<PackageReference Include="System.Runtime.Caching" Version="8.0.0" />
</ItemGroup>
yes
Hey guys, I had this code for allowing a bot to make use of a terrain feature in a multiplayer-savvy way:
// If we can get a terrain feature, then have it do the "use" action,
// by temporarily setting the bot farmer to be the Game1 player.
var origPlayer = Game1.player;
Game1.player = farmer;
bool result = feature.performUseAction(tileLocation);
Game1.player = origPlayer;```
But this no longer works, because `Game1.player` is read-only. Any idea how to do this properly now?
How do I use the provided one? It's using an ObjectCache class
@ivory plume just reporting that casey's summary comports with my experience at this time (1.6.11, 4.1.4). loading a gender switch block inside an i18n token bakes in the male value of the block, and only a reload_i18n/patch reload will cause it to reevaluate with the player's current gender
Did you try unpacking data and looking under data/objects?
so strange 😦
What is whalek
about this
^
Seems to me more like it was built against the .NET 8 framework instead of .NET 6.
Also everything related to content patcher is here but you will basically want to edit data fields haven’t looked at food and objects to much but remember seeing values somewhere https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
the game doesn't check interactions during festivals, you have to handle it yourself
Ah yah no clue like I said before I know some actions require different layers to work
Yes! This interaction is in a festival!
I hijacked a question dialogue to get my minigame going
Don’t remember the details anymore but it worked last I checked
I have a bunch of tile actions I did in C#
@rain basalt I just wrote it as the wiki said from https://stardewvalleywiki.com/Modding:Maps#Custom_Actions
Yah haven’t gone that advanced yet sorry
if you're building on Windows, please do mac and linux users a favor and update ModBuildConfig to 4.3.1 to fix the broken zip directories bug
I thought that only applied to people who'd updated to an interim, broken ModBuildConfig, not people who were using the 1.6.8 compatible version?
Never windows for life (jk)
we love all users
Oh, never mind, just saw the 4.3.0.
Thank you guys
Yes! I successfully triggered the Action on a non-festival day!
If I add a delegate to an object's fieldChangeVisibleEvent or OnArrayReplaced event, do I need to be concerned about that getting being saved to the save file? Does that sort of thing get serialized?
I feel like it doesn't but I'm wary of anything to do with net fields or delegates based on shenanigans I've seen them cause in here
no, it shouldn't. it does mean you have to do it every game start
That's fine since I'm adding them to the objects that need them at the start of each day. Tracking them to remove them before end of day is becoming way more complicated than I'd like to deal with, so I'd prefer to just build in a check so if it fires and isn't for the current day it just does nothing rather than having to track all kinds of conditions to run some delegate removal anon functions that I've stored up somewhere.
hello all y'all, I am here again because I tried to make a cooking recipe and it Did Not Work™️
here is the content.json, I'm pretty sure the problem is at "LogName": "Cooking Recipe"
if anybody could help tell me what the heck i'm doing wrong that would be great. thanks in advance!
"did not work" is not a very helpful description. Can you explain what actually happened? Are there error messages? Can you see the recipe in the shop but not buy it? Does it not let you learn it? Does it cook the wrong thing?
sorry, I can see the recipe in the shop, and can buy it, but it shows up as an error item, and when I go to cook it, it doesn't show up in the menu
your shop item ID starts with a (R) which is not any valid item type. You want (O)
oh, ok. thanks!
that's not the only error though, hold on
🫡
ok shop recipe unlocks are kinda weird, but for now to unblock your issues replace every instance of ritzygen.grillbugsteak_GrilledBugSteakCooking with just ritzygen.grillbugsteak_GrilledBugSteak
including in your recipes data and shop data
🫡
explanation: shop entries marked as "recipe" will use the actual item referenced in the ItemId, and since you don't have any items named ritzygen.grillbugsteak_GrilledBugSteakCooking it shows up as an error item
(no probs, as I said recipes are weird. also wait, hold on, that's not all the issues)
when you buy a recipe the game will unlock the recipe with the ID set in the shop entry's ObjectInternalName field, which you don't set, so it will fall back to the Name field of the item definition
so actually you also want to remove the Name field of the Data/Objects entry, since it's set to GrilledBugSteak the shop entry will actually unlock the recipe named GrilledBugSteak, which doesn't exist
without a Name field the game unlocks the recipe equal to the item's ID
(did I mention recipes are weird?)
okey 🫡
anyway that was kinda rambley, apologies. there are some slightly less rambley explanations of the IsRecipe field here: https://stardewvalleywiki.com/Modding:Item_queries#Item_spawn_fields
it is ok, i appreciate the help
sort of unrelated, but I intend to put this mod out on nexus, do you mind if i credit you for helping me with this mod? i understand if you do not want me to, i just like crediting people who help me with stuff, even slightly.
sure, go ahead! 
sick, thank you!
Can anyone give me example code on how to edit monster stats?
So far, I was only able to change weapon stats and it was relatively easy. Will monster stats work the same?
check out Data/Monsters: https://stardewvalleywiki.com/Modding:Monster_data
unfortunately they're still using the slash delimited string format, which makes editing a pain in the ass
monsters are also severely hardcoded so I'm not sure if you changes will apply across the board (e.g. to dangerous variants, etc.)
"Action": "EditData",
"Target": "Data/Monsters",
"TextOperations": [
{
"Operation": "Append",
"Target": [ "Fields", "MONSTERNAMEHERE", "6" ], //field 6 because that's where the drops are at
"Value": "<ITEM ID> <CHANCE I.E. .7>", //space delimited
"Delimiter": " "
},
]
}```
Found this in this channel somewhere but I still cannot comprehend it fully as it only edited monster drops
I have, but thanks for sending the link again.

I can see that now... 
Oops sorry, I think my reply pinged you
ok, I ran the game and went to buy the recipe, it's showing up fine, but the ingredients are the torch crafting recipe ingredients.
If you are trying to spawn monsters with different stat and sprite, you should probably use FTM
can you post your json again?
So... if I want to edit multiple fields, how should I go about it? Do I just
"Target": [ "Fields", "MONSTERNAMEHERE", "1", "2", "3", "4", "5", "6" ]
?
my codeblock is specifically for adding more drops into a monster's data
I just want to modify vanilla monsters atm.
I see, I will need to do more studying then xD thankss
yes, give me a second please
if you want to do something different to the other fields you have to do new editdata blocks since textediting target fields is limited to 3 arguments
Okay, makes sense, thanks a lot.
hmm that looks fine to me. what you unlocked might have been an earlier error recipe? try a fresh save just in case
ok, will do🫡 thamk you
made a new save, it's still doing the torch recipe ingredients thing
weird. try removing {{i18n:recipename.1}} at the end of the recipe and reload?
okey 🫡 got it thamks you
it's still doing this 😔🙏
damn, it might be because I'm sleep deprived but I can't see anything wrong
sorry. hope you can get some rest after this.
it's fine, it was mostly a joke lol
anyway other ppl pls look at this thx
the human eye is good at seeing what is there, but not at what is not
patch export data/objects >>
"ritzygen.grillbugsteak_GrilledBugSteak": {
"Name": null,
"DisplayName": "(no translation:foodname.1)",
"Description": "(no translation:fooddesc.1)",
// . . .
add the Name field, like so:
{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"ritzygen.grillbugsteak_GrilledBugSteak": {
"Name": "ritzygen.grillbugsteak_GrilledBugSteak",
"DisplayName": "{{i18n:foodname.1}}",
"Description": "{{i18n:fooddesc.1}}",
// . . .
}
}
}
you should probably also add a DynamicTokens group under your Changes list per the CP docs and define some Name: FoodName, Value: {{ModId}}_GrilledBugSteak to use throughout your json file instead of rewriting the name over and over
saves on spelling mistakes
patch export on craftingrecipes shows my incredible consistency in naming items over the years 😌
how do i get this thing to work on map tiles??? someone told me once but i forgor
you have to manually patch farm, which is sketchy because you can't determine what kind of farm a player is going to use
patch your strings into StringsFromMaps:
{
"Action": "EditData",
"Target": "Strings/StringsFromMaps",
"Entries": {
"{{ModId}}_String": "{{i18n:world.string}}",
}
}
and add a 🟣 Buildings layer object in the map with the property Action: Message "MyFullModIdHereSinceMapFileStringsArentTokenised_String"
I don't suppose anyone here knows a thing or three about modding fences... I was doing pretty good but the gates are still standard.
how sinful do you think it is to do harmony patch on config change
i will only do it once, the first time a config is enabled during the game session
applying harmony patches at random points during runtime sounds pretty hard for people to troubleshoot if it ever becomes an issue
yea that is the concern 
the reason why i do want to do it is bc the config is meant to be off for most players
not that it likely ever would. sounds funny and carefree in a destructive sense. go for it ☀️
off = no harmony required
Does anyone know how to display the number of star tokens in the upper left corner of the screen during the festival? I can’t understand how the game source code is implemented.
it's pretty simple, check out Event.cs:public void drawAfterMap(SpriteBatch b)
if you don't want to harmony patch Event.cs (fair), just add an event handler to your ModEntry's this.Helper.Events.Display.RenderedWorld and draw it there
if you do that, you won't need to do the b.End / b.Begin awfulness in the event method
simply use e.SpriteBatch.Draw()
Thanks, I'll give it a try
the line b.Draw(Game1.fadeToBlackRect, ...) draws the black box, b.Draw(Game1.mouseCursors, ...) draws the star icon, and Game1.drawWithBorder(Game1.player.festivalScore, ...) draws the text
I just realized if you right click a fence to place the gate, it uses the modded texture, but if you attach a gate to the end of the fence, it uses the vanilla gate texture. not sure if that's considered a bug.
did you patch the entire gate texture
yes
it doesn't seem to be that hardcoded hm
besides inability to make new gate items i mean
did you post your json already
also try patch export your/fence/texture
Thanks to blueberry and guys for helping answer my so many questions
I think this is normal vanilla behavior even with vanilla fences
Try it out maybe?
if you leave the gate open and reload save what happens
if you add a new "Cooking" item it gets added to the Collections page even if it doesn't have a recipe right
yea
(good, makes my job easier. I know that sounds insane but trust me)
You are totally right, I"ve just never realized it and always just been OK with the basic gate look. They don't look very good with my modded fences though : ) thanks for the explanation.
one in the middle is right-click method on vanilla iron gates, as opposed to the one on the left which has the basic wooden fence texture.
thanks, that worked!👍
That should be fixed in Content Patcher 2.4.3, which will be released in a few minutes. Thanks for reporting it!
Shouldn't verifying game files through Steam replace the xnbs in the Content folder so any modified xnbs will get replaced by vanilla ones?
it should
Would someone be able to leave bug report on my mod page? logged myself out
hey everyone, someone reported a translation issue on a line with i18n that is using a failback, so the failback should have worked. In wondered if someone encountered such a case recently and if it's a known issue. If not, i'll try to investigate and do proper test soon (if i remember)
unbelievably buggy mod 
bug
How would I be able to use Dynamic Tokens in a i18n file?
In short, I have a dialogue that I want randomized, specifically song names. I have a Dynamic Token earWorms that has the full list of tokens to have randomized: {"Name": "earWorms","Value": "{{Song1}},{{Song2}},{{Song3}},{{Song4}},{{Song5}},{{Song6}}",},
Then for each song token, it refers to an i18n token of the same name {"Name": "Song1","Value": "{{i18n:Song1}}",},
In my i18n file, I'm hoping that I can have the Dynamic Tokens still be used within the dialogue like this:
dialogue.json: "spring_2": "{{i18n:earWormConvo_1}}#$e#{{i18n:earWormConvo_2}}",
i18n/default.json:
"earWormConvo_1": "I have a song stuck in my head right now. It's been like this for hours.",
"earWormConvo_2": "What's the song's name? Oh, it's {{Random:{{earWorms}}}}",
and the songs look like this in the i18n:
"Song1": "Gone Guru by Lifeseeker.",
"Song2": "TiK ToK by Kesha.",
"Song3": "Freak On a Leash by Korn.",
"Song4": "Party Rock Anthem by LMFAO.",
"Song5": "High School Never Ends by Bowling for Soup.",
"Song6": "Going Under by Evanescence.",
Wait hold on I found an easier way to do it that doesn't use Dynamic Tokens 🤦🏽♂️
What’s the easier way?
dialogue.json: "spring_2": "{{i18n:earWormConvo_start}}#$e#{{i18n:earWormConvo_end_{{Random:{{Numbers7}}}}}}",
i18n/default.json:
"earWormConvo_end_1": "What's the song's name? Oh, it's Gone Guru by Lifeseeker.",
"earWormConvo_end_2": "What's the song's name? Oh, it's TiK ToK by Kesha.",
"earWormConvo_end_3": "What's the song's name? Oh, it's Freak On a Leash by Korn.",
"earWormConvo_end_4": "What's the song's name? Oh, it's Party Rock Anthem by LMFAO.",
"earWormConvo_end_5": "What's the song's name? Oh, it's High School Never Ends by Bowling for Soup.",
"earWormConvo_end_6": "What's the song's name? Oh, it's Going Under by Evanescence.",
"earWormConvo_end_7": "What's the song's name? Oh, it's A Moment of Relief from Resident Evil: Code Veronica.",
there's an easier way than that
In short, I randomize the last number of the i18n token's names
Numbers7 is just 1,2,3,4,5,6,7
No need for me to use dynamic tokens in the i18n files
// i18n
"earWormConvo_2": "What's the song's name? Oh, it's {{SongName}}.",
"Song1": "Gone Guru by Lifeseeker"
// content
"spring_2": "{{i18n:earWormConvo_1}}#$e#{{i18n:earWormConvo_2 |SongName={{earWorms}} }}"
should work
🤔 this is perhaps an odd question, but non-dialogue text boxes that have the player's thoughts, are they in 1st or 2nd person? i want to keep the perspective consistent to the rest of the game...
The vanilla game completely avoids 1st person narrative, so I'd go with 2nd person.
2nd I believe, as with the stardrop message
"You feel an overwhelming sense of relief as you realise you don't have to redo the text boxes."
monologue 
I must do a big mistake by using Farm Type Manager code. I Set my items, the areas and so on. But everytime i start the game to test it my content.json is overwrited... any guss for me where to look at to fix this?
FTM saves the json all the time again, thats normal
so how can i use it for my custom map? maybe i dont want to have only mussles everywhere like the overwriting do ...
if you close the game, edit it and then reopen the game it should work fine and not overwrite it
sadly this dont work. it keep overwriting it.
You can use the range token instead of writing out the numbers you want. {{Random: {{Range: 1, 7}} }}. You can even have more than one range {{Random: {{Range: 1, 7}}, {{Range: 20, 30}} }}
Hi, i have question
where can i get reposit git MonoGame.Framework.dll by StardewValley?
left image: from StardewVallley game & field, globalMatrix & TextureTunkAmount it's have
right image: from git MonoGame original & it's dont have that field
i always get this Code. Doesnt matter what i try to change. Reloading the game, closing, edeting, everytime its overwrited with this ... 😦
due to the way FTM auto-corrects the file in some places & re-saves it, if there are any misplaced fields due to incorrect {} and such, they'll get deleted after loading
I recommend using the HTML editor so it handles that part automatically, but if you upload the non-overwritten version, someone might spot the syntax problems
( @wanton field )
Ah! Thank you! I will check my code again and try by myself. If I can't handle to find a mistake I will come back and ask ❤️
based on release notes i'm reading now for SMAPI 4.1.5 and CP 2.4.3, this may have been fixed in those updates
is there any way to get the inverse transformation made by Game1.GlobalToLocal?
thanks!
The best I think you can expect is to get 'em manually: https://stardewvalleywiki.com/Modding:Modder_Guide/Game_Fundamentals#Positions
I believe screen > absolute is what you want?
I don't see any inverse methods in SDV, but they're also all one-line methods if you want to invert them yourself, e.g.
public static Vector2 GlobalToLocal(xTile.Dimensions.Rectangle viewport, Vector2 globalPosition)
{
return new Vector2(globalPosition.X - (float)viewport.X, globalPosition.Y - (float)viewport.Y);
}```
yep, I have a position that was passed through Game1.GlobalToLocal for drawing, and I wanted to pass it to a vanilla function, but I just saw that this function wants the global position.
oh, it's just a translation
🤔 i think the issue with marriage dialogue being flat is that there's just not enough of it..? they're not based on heart level or day of the week or anything...
Without using dynamic tokens or some other way to insert those conditions into the marriage dialogue it does feel like it's hard to stop it being really generic, yeah.
is it okay to update the game? I assume the main critical problems have been fixed (like the map thing)?
Depends on your tolerance for broken mods and new errors. I've kept a copy of 1.6.8 for continuing my playthrough since I'll lose a lot of mods by updating, but I've moved to 1.6.whatever for mod dev because the mods I have as dependencies are updated and will probably be updated quickly if they break again.
But it doesn't look like things are stable yet so there's still more opportunities for new breaks to happen.
eh I I mostly work on my own content packs so I don't have a personal save anymore, just wanted to make sure it won't crash if I use the furniture or fashion mods. xD
+1 on backing stuff up
+2 on backing stuff up
The big map problem from release day is resolved I believe (by a revert?)
i have left my GOG install (my main one) on 1.6.8 until the new stuff is fully baked
But we still seem to be getting patches 
yeah 1.6.12 is out as of today, and smapi 4.1.5 and CP 2.4.3 (although those do not seem to have fixed the i18n/gender block problem)
so many patches.. already 1.6.12
Are you using Furniture Framework? Leroy hasn't updated it yet so that won't work
I see I see, I'll hold off updating for a week or two then. And no I'm not using FF but I plan to check it out when everything works again, whenever that is 🙂
I fixed my FTM code. But i still struggle with 2 parts in my map making progress... How to get it managed not to make the water walkable? i tried the waves on the Buildings Layer. didnt work for them. AND i have a invisible barricade on the 5 tiles below the bench. I habe no clue why anyone could help with a lil tip where to look closer at?
Was gonna ask this exact question, thanks for update 
Think I'll hold off testing for RWE until we're settled
It's been fun getting my info from seeing the game and SMAPI versions steadily go up in logs in support lol
How does viewport move work in the context of events? It says it moves the camera by the specified coordinates for a specified number of seconds, but currently, I have it set up in a way that isn't working the way it should be. For example, if I plugged in 2 for the x-coordinate, 4 for the y-coordinate, and 5 seconds, would it pan until it's 2 pixels right and 4 pixels below its previous position after 5 seconds? Or would it move 2 pixels right and 4 pixels down every second for 5 seconds, thereby ending up 10 pixels right and 20 pixels below its starting position?
Do lights of lamps placed on tables work in the vanilla game?
Are there any? 
it's possible to place a lamp on a table, right?
I believe it's the latter, but I think it measures in tiles, not pixels.
The only lamps I remember in vanilla are floor lamps, but I haven't seen all the 1.6 stuff.
The wiki says pixels, and the camera barely moves at all when I initiate the event, despite being set to move its position 32 units along the y-axis. If it's measured in tiles, maybe this is a quirk related to it not actually being able to move that far, but it could very well only be moving in pixels.
unfortunately, viewport move is not easy to deal with because it is not connected to tile position the way viewport x y is
it sets a speed for the camera to move on each axis, i think in pixels per frame/tick but it might be some other (related) unit. you can probably get it to line up with the tile grid by making sure you end up moving multiples of 64px but you'd have to do the math and it might not work out exactly
I have it move from the saloon door to the pool table and that’s 3 0 so on my screen it’s about a dialog box distance per unit 🤷🏻♀️
I did try to do the math, but something must be off.
I see.
yeah there's not even a guarantee that the move will take exactly the number of milliseconds you specify, so you might end up being off by a tiny bit just due to GC sweeps or whatever. it's not great
Have you tried stealing a viewport move from a vanilla event to see what it does?
do I have to re-install SMAPI to get the latest version of console commands?
yes
There’s a good diagonal one on Seb’s 4 heart
actually i suppose you could extract it from the SMAPI download somehow, but at that point i would just install it
Viewport x y instantly jump cuts the camera to the specified position, right?
something like that, but it warrants testing. i'm pretty sure the extra parameter true makes it fade in from black
Hi there. Can someone help me understand what 'Exclusive' code in the mod is? I am trying to edit a sprite via CP and I get this error.
I think yes but I like to add fades. I start with moving the viewport 2 or 3 units, 5k or 8k milliseconds and test A LOT. And cry.
!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.
I can now confirm that the latest build of FF still works in the latest SV version on PC
Thanks. I'll probably just try viewport x y for now.
that's what I meant
damn, they do work, I have to reproduce it...
I also have to handle custom Furniture in vanilla slot...
did you give your water tiles the water property?
For finding invisible tiles on the building layer, try using the "select same tile" tool and select an empty tile. Then if some tiles are not selected you can erase them. To make the water non walkable, there is an extra water tile that has "passable:f" which you can use to line the edge of the water. or alternatively add a bunch of tiledata with that property along the edge on the back layer
"Exclusive" is a priority value for Load actions in content patcher. it is the default value for priority, so if you don't specify, the patch will use Exclusive.
only one patch can claim Exclusive priority for a Load of a particular Target. if only one mod claims it, that one is loaded and the others are ignored. if two or more mods try, none of them will be applied.
@tiny zealot Ah! I was having the problem with the two or more trying to load the same target.
(the solution to your problem is to use the appropriate Edit action instead of trying to Load over the other mod; or to edit the other mod to set its priority lower than yours)
if you are planning to publish, you'll want to switch to Edit, since editing the other mod's files is only good on your own computer
For context. I am doing the Nyapu-style seaons retextures. (With permission of course). I am trying to get the replacement files to be placed in [cp] RSV seasonal outfits without the user having to go to Ridgeside Village and having to replace the pictures there. So I wanted to see if I could edit the code where RSV seasonal outfits load over any of the Ridgeside Portraits. I am testing Sonny atm. I can't seem to get his basic portrait to load because of this 'exclusive error.' Here is my log btw. https://smapi.io/log/3c5d5f050b6843e5b15d7610c202b1f3
Log Info: SMAPI 4.1.4 with SDV 1.6.12 build 24312 on Microsoft Windows 11 Home, with 10 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
who removed the numbers from the type field in the furniture data wiki entry? I don't remember where to find the mapping...
You don't have to load to replace the portraits, you can just use EditImage
oh nvmd, they also are in the Furniture class definition
@vernal crest I double checked the code it is using EditImage my bad.
urg. Here I'll just paste my add on to the mods code. "LogName": "RSV Seasonal Appearances - Sonny",
"Action": "EditData",
"Target": "Data/Characters",
"TargetField": [ "Sonny", "Appearance" ],
"Entries": {
//Seasonal Outfits
"{{ModId}}.Sonny": {
"Id": "{{ModId}}.Sonny",
"Portrait": "Portraits/Sonny",
"Sprite": "Characters/Sonny",
"Condition": "{{Sonny|contains= enabled}}, SEASON Spring",
"Precedence": -100
!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.
u can post ur whole json there
No this isn't the code that your log is complaining about. It's the code that is loading the Portraits/Sonny file into the game in the first place that is the problem.
Another added issue is I need sonny to load for all the season except for summer.
is this your code or RSV seasonal outfit code
but you have this in a separate cp mod correct?
@lucid iron Not sure what you mean. I am using their CP in a different mod (test) folder... If that's what you meant.
Yes that means you have it as a separate mod
yea so i think u r run into Load from 2 different mods with Exclusive
Because it's unlikely that Rafseazz would make RSV and then make a mod called RSV Seasonal Outfits that doesn't actually work with RSV.
This is the part that is wrong. It cannot be "Load". RSV already loads a Portraits/Sonny file and you can't try to load a second one. If you want users of your mod to have the RSV Portraits/Sonny file to replaced with yours you need to use "EditImage" to replace their existing one.
{
"LogName": "RSV Load Seasonals - Sonny Portraits",
"Action": "Load",
"Target": "Portraits/Sonny, Portraits/Sonny_summer, Portraits/Sonny_spring24, Portraits/Sonny_fall27-1, Portraits/Sonny_fall27-2, Characters/Sonny_summer, Characters/Sonny_spring24, Characters/Sonny_fall27-1, Characters/Sonny_fall27-2",
"FromFile": "Assets/{{TargetPathOnly}}/Sonny/{{TargetWithoutPath}}.png"
},
Ohhh... so the load is where I went wrong.
Yes
Okay let me erase that and test it.
i think what you would actually need in terms of dependencies is
You should never be using Load with any asset that you're not putting into the game in the first place.
nightmaresky.RSVNyapuStyle > Rafseazz.RSVSeasonalOutfits > Rafseazz.RSVCP
Lmao TIL you can do that
Thanks guys. As a newbie all this code is super confusing.
then all u need to do is EditImage over the targets loaded by Rafseazz.RSVSeasonalOutfits
dont need to specify any appearance data
and then rafseazz is free to change how it works internally if needed
did you read the CP documentation? You should, it will clear up a lot of confusion
At this point I think Chu Nightmaresky actually is editing the RSVSeasonalOutfits mod because there are no other CP mods in their mod list.
adding to this: if you are adding an asset that other mods may try to add (such as the Data/Events for a location that does not have one in vanilla), then you should specify a non-Exclusive priority so that you won't conflict with them
im back at it into the dialogue mines
I am trying to learn as I edit others code (for personal use at first). Yes, I was working IN their mod, but I'll do my own separate CP them. I'll see how that works.
But then users get their events but not mine! If I don't get the events then nobody does
/j
Chu's suggestion is a good one - if RSV Seasonal already has all the appearance data the way you'd want to use it anyway, all your mod has to do is do EditImage replacements of the files used by the RSV Seasonal appearance Sprite/Portrait fields.
Without you needing to include any appearance data in your own mod.
@woeful lintel I've read it, but I think I am kind of dumb when it comes to some of it. I am like "okay I think I get it." Then when I code there are Errors everywhere. and I am like WTH.
Nah that's pretty normal. Sometimes you've got to do it wrong and be corrected before it will click
Like me right now trying to figure out how in the heck do I set up my mods folder so I don't end up with 3 separate copies of my C# mods
That's how I feel 🫠 sometimes I try to fix it and destroyed it much more 😂 I'm working with many many copies right now 😂
Oh and you may already realise this but your mod cannot actually edit another mod. It can edit what another mod has already done to the game, but you can't for example, make your mod try to change the files that are actually inside another mod folder. (Sorry if that is obvious to you - some people think you can and I wasn't sure from your wording what you thought.)
flashbacks to when i caused a stack overflow by intermixing JA and content patcher docs while trying to add a shop entry (it was JA or DGA and i can't remember which)
Nooo why did it build to my mods folder
Apparently I told it to 
staring at my ominous "test for now" folder which has all my wips in it
my C# dev/build env is held up together with string cheese
I'm pretty surprised it's still working after a game update
what am i even doing here...
Which is another 3
@vernal crest Nothing is obvious to me. I did not know you couldn't edit another mod. This would be so much easier if I decided to edit the vanilla game. But Nooo, I have a passion and adoration for others mods (wanting to DL them all). I really like the Nyapu style portraits and I wanted that style for every extension mod I have. The end goal is to make a CP mod for each one to make it easier for others so they don't have to replace the portraits themselves.
Showing us a screenshot so tiny it's difficult to tell what it even is - maybe some text? lol
Hmmm I don't actually know if it would be much easier to just mod the vanilla game. The process for editing another mod's assets (in game) is literally identical to editing vanilla assets - you just check in the mod's files for the names of things instead of checking in your unpacked vanilla files. That's awesome about wanting to share more Nyapu portraits with people :) And you'll get there! Once you figure out one the rest will be much easier.
maybe i should take a break from dialogue...
I regret to report that this behavior persists in 1.6.12/4.1.5/2.4.3. I've attached a minimal repro content pack (start a new save with a female farmer, debug wtc wizard, and talk to him to see the gender block evaluate to "sir", the male portion of the block). SMAPI log is included, in case it's helpful
Time to see if I can hot reload symlinks. Chu don't let me down!
I don't understand how the light of lamps on tables is correct: it's based on the bounding box of the lamp, which is based on the tile position of the table, so if the table is long enough, the light will be completely offset from the lamp (visually)
what is the largest vanilla table?
uh u mean the CP patch reload?
LOL I forgot to install literally any other mods
No I mean hot reload! Visual Studio!
Wa ha ha you can! Pink to lime green hot reload via symlink my beauty
I love that we can have multiple front layers in tiled
damn, I was right, Furniture code is ccompletely busted
might ping CA on this one, this is unplayable
entire floor lamp on a table...
listen, I took the first one that I found in the Funriture catalogue
Wheee I am so excited. Now to fix the smoke colour lest I forget and ship an update with green instead
this will happen with any light Furniture and any table Furniture
is this a map element?
Yeah. Definitely NOT furniture.
Atra thought I was doing furniture when I initially asked for help with it and there was much confusion lol
yeah I remember that
particle stuff is confusing anyway so you got a double dose
like, this is clearly game breaking
To be honest, it's literally just the wizard's cauldron code so I didn't have to figure out anything particle-related at all.
I wonder if someone knows about this
something tells me that lamp should not be on that table..?
yeah, fair enough
(And rokugin pretty much wrote the entire rest of it for me teaching me what to do anyway haha)
it can, it's vanilla behavior. The "issue" is the light emitted by the lamp: it's centered on the left of the table instead of on the lamp
Is it just floor lamps that light up or can table lamps do it too? Also if that was in my game I would not even notice it was off haha
seems like the light-manager is putting the light source at the upper-left corner of the table instead of the lamp
I feel like usually when I’ve put lamps on tables it’s been the 1x1 tables
Which is probably why I’ve never seen this
basically, yes
that was the first thing that I noticed 
I don't want to disrupt the current conversation, but I need fix proposals and support...
Spoilage has currently a big problem with Automate refering to priority
ough, harmony priority I presume?
maybe, not sure yet...
the problem is that if we automate crab cages or mushroom boxes to store items in a chest when they generate, when the new day begins, the items recently stored are already counted as one day old
Thanks! I already found the new issue, it'll be fixed in the upcoming SMAPI 3.1.6 and Content Patcher 2.4.4.
maru has been spending too much time with willy?
so Automate first storage them and so Spoilage do its magic counting them
I tried to change the spoilage counting from DayStarting to DayEnding, but not working. Seems like Automate gets the items at the start of DayEnding
how I could force Spoilage to run before Automate?
You would have to get a hold of the items when they are still in the machine imo
maybe there's an event for when a machine produces an item, or you'd have to postfix the production method (no idea how this works)
GetOutputItem is an easily postfixable function for producing the machine output item
(Not crab pots though)
Everyone needs to spend more time with Willy! I need that Willy expansion 
(those do something different(tm))
Immersive Bachelor Willy?
also not sure if checking the item production would do. or at least I am failing to see it
Spoilage checks once a day
Sorry, it's been a while since I tuned in on the Spoilage discussions but why is it spoiling already outputted items a problem?
.
mushrooms and fishes generated by crab pots and mushroom boxes gets one day old when generated
Ahh like when you immediately check them they're old? Got it.
Might be something in Spoilage logic then, crab pots and mushroom boxes should not toss their stuff into the chest before morning starts
that is if automated to storage in chests
so it is a problem with Automate, because that's what does it
Automate checks by tick though
I need to force Spoilage to runs before Automate stores crab pots and mushroom items on the chests. OR check if they are recently stored
I can't see a way to do either
huh, do "ready in the morning" machines really output during the night and Automate then stuffs them in chests before DayEnding?
probably before DayEnding is called, since I changed Spoilage to run at DayEnding and it didn't helped
I cant remember but arent we in smapi 4.x.x ?
yeah my apologies, if that's really how morning machines works (can't check rn) then it is weird lol
of course it is not a problem only to crab pots and mushroom boxes. I would like a way to make it a fix to any machine that produces once a day
if spoilage increments age at day start and these machines produce before the end of the previous day, you could intercept stuff when it's produced and before automate moves it and give it a -1 age
I can't see any other solution, because technically, these produces were produced the previous day, so they are a day old
and how I would do it without specifically checking for crab pots and mushroom boxes at machine output?
this was mentionned
maybe should change how these kind of machines produces in general
...huh, actually
what functions do you use for your spoilage check
like Utility.ForEachItem?
It's not mine, it's Aedenthorn's yet
I think I know what's happening, and it's not because morning machines produce in the night
private void GameLoop_DayEnding(object? sender, StardewModdingAPI.Events.DayEndingEventArgs e)
{
if (!Config.ModEnabled)
return;
spoilageDict = Helper.GameContent.Load<Dictionary<string, SpoilData>>(dictPath);
foreach (var kvp in Config.CustomSpoilage)
{
spoilageDict.TryAdd(kvp.Key, kvp.Value);
}
Utility.ForEachLocation((loc) => {
foreach (var obj in loc.objects.Values)
{
var chest = (obj as Chest) ?? (obj?.heldObject.Value as Chest);
if (chest is not null)
{
SpoilItems(chest.Items, chest.fridge.Value ? Config.FridgeMult : 1);
}
}
return true;
}, includeInteriors: true);
SpoilItems(Game1.player.Items, Config.PlayerMult);
}
it is in 1.6.8 yet
I intend to update it to 1.6.9 to get ForEachItem instead of checking all map locations for chests
for now it checks all storages and does it's magic of increasing Spoilage Days to each item it encounters there
Ah, nvm then, that's not what I was thinking of
I intend to change it so, when an item is firstly stored it gets a 'life' value
remind me in 9 hours to check morning machine produce time
[remember what they said in anger management...deep breaths...] YES I WOULD BE SO HAPPY TO ASSIST (#6348904) (9h | <t:1731030922>)
😭
indeed, a good way to do it is checking for every item every tick... and if the item exists for a number of ticks, it gets one day old
yet I would need to update for 1.6.9 to be able to see if they are stored in a chest or somewhere else
that's normally a very resource intensive thing as you get more items doing that.
and also learn how game gets the time right with each tick, since there are places that changes how game clock changes
the more items you're checking each tick the worse the performance impact would get
I am very aware of this
You don't do it on tick, there's a time changed event
It's not great but much better than tick
OneSecondUpdateTicking counts one second irl or in game?
irl
use timechanged
if I use timechanged, I would have items without 'life' for 10 min ingame before it changes
could account for that though
There's a chest changed event which will handle case of automate at least
Won't handle ppl leaving machines uncollected
I definitely learned that tick based stuff is very tempermental as well when I did some unreal dev for my game. the worse the performance the longer between ticks.
yeap, ticks accounts for processed time
I had a character glide script that got really long with bad performance, but I wanted it to last a specific time, so I swapped it to deltatime instead
using deltatime made it so my glide would last ~3 seconds every time, instead of 3 seconds on good performance 6 seconds on bad
oh, blueberry updated LoC. Maybe I can migrate to 1.6.9 now
I am good with machines going uncollected
sounds like it's time for me to migrate and do my new Spoilage
yes, they got the water property 😦
I yet need to publish my Night Owl Plus, but I am eerie of taking away the mod name from the original author
Thank you! i will try all of these hints
I'm trying to work on a trigger action that will start an event when a quest is cleared, but the only built-in triggers listed under the trigger actions page on the wiki are related to a day ending or starting, or arriving in a specific location. Is there a built-in trigger action for clearing a quest or seeing an event?
https://www.nexusmods.com/stardewvalley/mods/27100 you could check this out?
there's a questadded one, hmm
Would I need an extra framework like this to make it possible? Or are there already built-in triggers I could use? I'd prefer to figure out whether there are built-in ways to do it before adding an extra framework, since I'd need to talk to the rest of my team before deciding to add another framework for the mod to work.
you can set a mail flag on day start gated on events seen/quest cleared
i believe the list is pretty complete, there's no other secret trigger actions to my knowledge
What would that look like?
so either you do with the limit of vanilla ones (which may then have a bit of delay) or use a custom one (added by a mod or a C# component)
https://stardewvalleywiki.com/Modding:Trigger_actions
look at AddMail. Use received to directly put it in received mails
I've seen that, but how do I hook it up to clearing a quest? Can I add a letter as a reward for a quest?
Hi, Is there any way to convert the characters.js file to Characters.xnb?
I was able to uncompress it with xnbhack but I need to compress it again to update my mod for the switch version
Yes
You need to use something other than stardewxnbhack which is 1 way
Wait, I'm thinking special order.
you can do a lot of stuff if the quest has a dialogue at the end
Answer should still be yes, I just don't know ho--or listen to Lumi actually
huh apparently there is no condition for quest cleared
i usually set a flag that way when i need something, but that's because that was doable before (and still is) but now there's also the action stuff that should work too
i know it supports the 1.6 formats
yeah sadly the game doesn't track quests when completed except with a CT but it's not reliable
Since 1.6.9 added the quest event stuff
the quest event stuff?
It might be easier than before to expose that to content mods
Yeah some C# changes about how quests get marked as complete
for now seems like we need to set flag in quest end dialogue
and then gate an event behind that flag directly, shouldnt need trigger actions for that
For now, I'll try setting the letter as a quest reward, then set the event to trigger if the letter is in your mailbox.
Hi, guys so i'm trying to update a content patcher mod that edits Jas's image like 3 years ago since one of the more recent updates seems to have broken it. I've been trying and testing for about an hour now and can't seem to find the issue, all json files have been validated, and I've been looking through the Content Patcher documentation, but I'm still just kinda lost anyone able to tell me what silly stupid mistake I'm making?
{
"Format": "2.4.0",
"Changes": [
{
"Action": "EditImage",
"Target": "Portraits/Jas",
"FromFile": "assets/Jas.png",
"FromArea": {
"X": 91,
"Y": 46,
"Width": 11,
"Height": 5
},
"ToArea": {
"X": 91,
"Y": 46,
"Width": 11,
"Height": 5
}
}
]
}
For some reason all 1.6 files that don't have the text inside "content" can't be returned to xnb, did that page work for you?
Because it won't let me compress 1.6 files is strange
have you tried extracting it via xnbjs
I'm trying to have it be so my mod is compatible with the poltergeisters seasonal outfits mod, It worked before but it seems to not work now
Yes and said:
Unpack Error!
From: Characters.xnb
Uncaught XnbError: Invalid file Magic found, expecting "XNB", found "und"
For they file of Data/Caracters.xnb?
yes
Could you show me how you do it please?
It is the only file that is giving me problems....
Nvm, i fixed My error
Really
VERY THAKSSSSS FOR THE INFO
❤️🩹
the edit image function for content patcher seems to not be working, I feel as though I am probably doing something wrong, but can't find any flaws in the files...
!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.
!log post your log too, could be that another mod is overwriting your changes
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.
would different colors of a fish need to be different fish altogether?
was debating about adding an Axolotl in a couple colors
I don't think there's any "dye" feature for fish
so I'd have to add a seperate fish for each color then\
As far as I know you would have to have a separate item for each.
Yeah it's like eel and lava eel in vanilla
was thinking 3 colors, and 1 legendary axolotl that's cyan and pink
Technically can't you make one a colored object now
Might take some c#
Hey all: I'm wanting to try to make a farm map for the first time. What is the first place i should go to get started on learning how?
But fish data doesn't let u define color
Can itemspawn do colored itrms
@lucid iron
Log found, uploaded to: https://smapi.io/log/39e72744294e414eb4b92451f5c7266b
!tiled
I have a cyan and pink axolotl plushie named Axl, so the legendary fish would be based on them
Item spawn mostly spawns Item rather than ColoredObject
Thank you ill check our tiled first 🙂
It's probably worth making a general one for mods to use though
Perhaps it could go in someone's machine framework
Patching getFish is always a fun time
why are we patching getfish this time?
funi colored fish
ahhhh
I was thinking 1.6 now cuts out most of the getfish patching
I just had the idea of having color variants of a fish
oh yeah location fish data is an item query right
Yup
I might make my legendary axolotl be caught in my custom map.
anyway yeah look at this section for your color needs: https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6.9#Item_data_changes
i was thinking of preserves bolb
I'd make the legendary variant its own fish
anyway read the decompiled code in the meantime and yeah I'm pretty sure morning-ready machines produce the night before 
looks like I also gotta work around this in my spoilage-adjacent mod
thank you Selph ^.^
I migrated to 1.6.9 successfully. I am now trying to make an unofficial update of Better Friendships.
I got the source, built the solution, checked for errors (had none) and compiled the code.
Yet SMAPI returns this:
15:25:21 ERROR SMAPI Skipped mods
15:25:21 ERROR SMAPI --------------------------------------------------
15:25:21 ERROR SMAPI These mods could not be added to your game.
15:25:21 ERROR SMAPI - Better Friendship 1.1.2 because its DLL couldn't be loaded.
any thoughts?
the full log with trace should show you the reason why it's not loading
Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Pro, with 40 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
check your trace for this
Did you tell smapi to package that
Fwiw smapi stopped using that package last year because it performs horribly
that other person said BetterFriendship has a nuget reference to it
i am unsure what happened in the end
Nuget reference but you still have to tell smapi to package
(The history is that smapi also used to use that package but cut it because it causes...stalls of some sort.)
maybe just change to this mod
similar enough niche
Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Home, with 19 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
These are all the files jsons are error free, yet my patch still seems to not be working
you're missing the patch mode or whatever it was, right?
well, it's replace by default so shouldn't actually be an issue
similar but not good enough
The vanilla version works as intended, but this one is supposed to be compatible with poltergeisters seasonal outfits, all my mod does is replace a small section of Jas's portait to give her a different smile
but for some reason it's no longer working, as it was like a year ago when I made it
Awesome! This helped a lot. i found invisible tiles and now i can work with them to block paths
Teached me much more than expected!
patch summary "Portraits/Jas" then?
Have you checked how the other mod is adding the seasonal outfit? It's not unlikely that they use the Appearances system now and using an entirely different set of portraits for it
this one is the manifest.json which doesnt tell us much, need content.json
they linked 3
seasonal cute Might be using appearances? since from the log it's loading in a Portraits/Jas_Winter_Indoor
hmmm, okay then is there documentation on how I could go about overwriting that in only a small area like I was before?
well, you'd be targeting the images seasonal cute is loading in
you'd just need to target the right one
so you'd have to look at their content.json to see what they are
okay so it's the same
pretty much
You'd need to do it for every different outfit they have in their appearances that use a different target
okay, i'll try and see if I can figure that out lol
Since outfits aren't typically done by editing the base portraits with when conditions anymore in updated or new mods
While you can use the invisible tiles to block paths I'd still recommend using the passable tile property, it's much easier to keep the overview imo
Thank you for the help!
hey guys, is it possible to add a variant to the torch with Alternative textures? most mods that alter the torch are for content patcher only so im just wondering
Thanks. I was looking at it on https://github.com/Pathoschild/SMAPI/blob/develop/docs/technical/mod-package.md
I think the answer is no, but can Big Craftables produce Rings or Weapons?
It is to say, can a custom machine produce an object which prefix is not (O)?
ehehehheehee
The answer to the first question is no
The answer to the second question is yes
(You can only produce things that descent from Object. So Furniture is okay.)
there is this now, though note that I haven't tested it thoroughly
also don't put weapons with enchantments inside machines for now, I didn't account for that yet
https://github.com/zombifier/My_Stardew_Mods/tree/master/ExtraMachineConfig#allow-non-object-outputs-from-machines
But rings and weapons are....ah okay
(if you need a "copy enchantment" feature let me know)
(wait, can weapons be machine input in the first place, I haven't checked)
is there documentation I can reference to try and figure this out lol, I'm still quite lost
you just need to look in the content.json (or other jsons) of the other mod and figure out what Targets they are using under the NPC's "Appearances" section
It seems to be working as intended now. thanks a lot.
I had it changed to this:
<PropertyGroup>
<BundleExtraAssemblies>System</BundleExtraAssemblies>
<IgnoreModFilePatterns>
\.xcf$, <!-- GIMP files-->
^Microsoft.(?!.*(Toolkit.Diagnostics.dll)), <!-- Everyone but MS.Toolkit.Diagnostics-->
.*[/\\]Microsoft.*, <!-- CodeDiagnostics in a bunch of languages?-->
^JetBrains,<!-- Should never be bundled.-->
^Skia <!-- Skiasharp is included with the game-->
</IgnoreModFilePatterns>
</PropertyGroup>
In short, I had to take out System.*.dll$, and ^runtimes[/\\].*, on <IgnoreModFilePatterns> to make it work.
Should I worry or do something else to make it cleaner and avoid importing too many Assemblies?
Interesting, I didn't know any of this
That's a great feature!
your patch will look the same it will just target e.g. Portraits/Jas_Winter_Indoor instead of Portraits/Jas because the other mod has an appearance that sets their portrait to use the winter_indoor version instead
okay, I tried doing that but I seemed to have done something wrong https://smapi.io/json/content-patcher/2571069293c749229b9240a242b5ccdd
your targets should not have file extensions
I would avoid importing unnecessary assemblies yes
I've needed this omg.
So Range checks between the values listed, and then Random checks for each listed value, correct?
you need to make sure you are editing what they are targeting, not what file they are loading from
okay, I think I get you now
they should have something written for the "Portrait" and "Sprite" fields inside the "Appearances" section for each outfit theyve added, thats what you want to target for Portraits/ and Characters/ respectively
so just copy what they wrote in there
if you are using the exact same image to edit all of them, you can also just put them all in one patch by putting them all inside your Target and separated by commas
assuming that they all use the same fromarea and toarea too ofc
it does, it quite literally just changes her smile expression on all of em
https://github.com/Pathoschild/StardewValley#readme this readme doesnt work btw @ivory plume
where did you even get that link from
Trying to find where I can decompile 1.6.9 and stumbled across that lmao
also editing in a ping after the fact wont ping someone
Ik - feel bad for pinging when he's away ><, ill do it later if he doesnt see
right but like what page did you get that link from? decompiling 1.6.9 is the same as decompiling any other version btw
from bouncer

oh is that the private git
that would make sense
why it doesnt work, that is
it probably does work if you have access to it. which i do not so i cannot tell
does that repo even tell you how to decompile the game? i thought it just was the decompile
what is your git account
Yup
That's the private git
You can ask Pathos for access
(Aside: I'm still purple!)
Hopefully junimos do not notice the purple
if you mean trying to see the difference between 1.6.9 / 1.6.10 / 1.6.11, i don't think 10/11 have been update
why is bouncer givin out the private repo link to people who dont have access
Please forget to remoce event roles until the next event
(i know they cant access it anyway but thats part of the "well why then")
i was ask account cus
anaira has the role and levels and therefore can obtain access to this repo
but maybe forgor to log into github acc
It's not automatic, you have to ask Pathos for access
Ping him with your github user
I think chu was asking if she has access but just forgot to sign into the right account
I GOT IT! THANK YOU!
Now I have to do my other one, but that'll be easy now
How to fix this kind of map errors?
In the tbin everything seems to be in order
Ignore the floor I was trying to put the water on the floor and the same thing happens.
It is as if the texture does not load
When the game version changes, you need to re-launch SMAPI so it can update a file. The current red message is scary and technical, so we often have confused players reporting it as a bug or crash.
Any thoughts on this new version?
I like green, it's eye catching without feeling like something has gone wrong lol
I like the green as well, and I think the message is nice and concise
I have to admit, I am curious why SMAPI can't just re-launch itself in that situation
I'm curious about that too, does it have to do with Steam's command line params?
You can bypass all this by using a simlink or a hardlink
green looks better but may make people ignore it, maybe yellow or orange?
also ty btw!
Just hardlink smapi.deps.json to stardew.deps.json
(I do this on my Linux partition)
But I've tested kt on Windows too
Will that cause any issues with having multiple saved versions?
Hi Pathos!
I don't know anything really about links, is it just a reference to a file path?
Aside from needing to launch through Steam/Xbox app/etc, SMAPI would need something external to launch it. Either we'd launch a separate process which then lauches SMAPI, or SMAPI would open a background task to do it. It's a lot more fragile and you run into permission issues, for something that typically happens like once every two years.
The symlink approach is possible, though I'm hesitant given all the issues Vortex causes with its symlinking.
But in the end it's just 'launch SMAPI a second time once every two years', so I don't think it's worth a lot of complexity to automate if we can just have a clear enough message to avoid confusing players.
is there any chance that smapi could fail to update the deps.json file?
ig it'd just be a normal red exception in that case 
New update for the Goat Mod is here! (https://www.nexusmods.com/stardewvalley/mods/27321)
We also launched second community goal on our kofi which will bring more variants to the Hedgehog Mod (https://www.nexusmods.com/stardewvalley/mods/28640)
I've never seen it happen, but yeah that would just be a regular red exception message. By the time you see this message, the file has already been replaced; it's just that .NET won't actually use it for the current process.
These are cute. FWIW, if you post in #modded-stardew you'll get more visibility with people who actually play more often than not lol
just as a heads up, but that kofi stretch goal thing will absolutely get your mod removed from nexus if someone takes notice
Oh yeah, Nexus crackin' down on that stuff now
Muehehehe I finally updated stuff to keep messing with the weather >:3
Time to figure out what this 'Critters' property is in CS, and ze new trigger actions :D
Aka I will break something soon
you might be fine if you omit the mentions of community goal but post ur kofi
its entirely optional to support us and the mod is available to all people for free regardless if they paid something or not, its just a way for us to thank the people that supports our work <3
you will not be fine, no
as it stands now it's definitely solicit mod update for money
Right, I still need to document Critters
I think having any offsite donation links is no longer allowed
you cannot advertise or link to places where you do advertise features in return for money
at all
doomed then 
stretch goals are specifically called out in their donation rules
among other examples
does anyone else read kofi as ko fi and not coffee
I never thought it was coffee lmfao
"Do not overtly or covertly hint at the possibility of further development of your files in exchange for donations."
"Do not offer donations in exchange for files, updates, or assistance."
"Do not attempt to advertise the donation options exaggeratedly or otherwise include excessive usage of donation reminders in your files and/or file page descriptions."
Hi Khloe! Oh, I haven't opened ze documentation yet so I hadn't seen it wasn't there yet 👀 also gotta test out MNE and BC (I use a lot of your wonderful mods)
People asking to be bought a coffee on kofi makes more sense now though
yeah lol
I read it as (co as in co-worker, and fi as the fee in fee fi fo fum)
like I'm fully aware it's coffee but I can't read it as not coe fee
This is like gif, I'm never gonna read or call it jiff
jraphics
Basically you can override which critters spawn of the vanilla critters. Those being: cloud, birdie, firefly, butterfly, rabbit, squirrel, woodpecker, owl, and opossum
And here's a sample of what the entries look like: https://gist.github.com/KhloeLeclair/7e5c0b364f28b237a3b22ed0b8666303
ok but it being jif just doesn't make sense
I still need to publish a MNE update.
this is one of those situations where the person who created it ABSOLUTELY can be wrong about it
and if you disagree with that premise
I cite jk rowling
(Linking to donation sites is still fine, you just can't make mod files/development/updates conditional on receiving donations.)
Oh, gotcha, I'll play around with it later tonight
I like me some critters
it's like being named Geoffrey
if you're named Geoffrey your parents need to get checked
lol
Thank you for all your hard work my dear modders ><
for legal reasons that's a joke
unless its excessive or the site you are linking to has monetisation of mods or modding related assistance being discussed (such as patreon and i imagine kofi as well)
In the future I'd like to have custom critters, but lazy (and I want to check if some other mod has done the hard work and I can just have a soft dependency)
khloe do you mind if i make an alternative mod to almanac
there was custom critters
they dont even allow linking to a discord if paid modding assistance/creation is discussed in that discord
idk if it made it to 1.6
ko-fi has a "free" option available for downloads i believe, but
it is another 2025 soon™️ thing but i do feel stardewui is suited for a mod like that
It's a free country, you can make a wiki-like mod if you like. Almanac is sort of an alternative to Lookup Anything in the first place.
3 cakes 
n cakes
Hmmm there Custom Companions but I guess that is a bit different 
n+1 cakes
trinket trinker
(there is also this link with some more details as well: https://www.nexusmods.com/news/14698)
trinket tinker isnt critters
I am still working on Almanac, for the record. Just... slowly, lol
technically a lot of the Companion code could be repurposed for map critters
but what if i skin the clone-jutsu
become a disney princess
but rn u can only have a companion as a result of equipping a trinket
And I've considered playing with StardewUI for it but honestly it's all procedural UI and I don't think I'd get enough out of it for Almanac to be worth a dependency.
Yep, since that's making assistance conditional on payment. Donations are fine, but payment in exchange for part of the mod (including support) isn't allowed.
yea its difference between starting new mod with a dependency in mind
vs refitting old mod to it, which might as well be writing new mod
Essentially Nexus wants players to donate because they want to support the mod author, not because they're buying something that would normally be offered for free.
whether nexus will actually notice entirely depends on whether nexus staff happens to find it or someone reports it, and without those happening, you might be fine, so long as your team (talking about Bluejay here) is aware that it is, without a doubt, against nexus rules as is
and people in this discord have had their mods taken down for kofis before too, so there is precedent
(I had to change my Patreon tiers a long while back to comply with Nexus policies for reference.)
I'd disagree with you but I don't know which country you're talking about (I could disagree for every country
)
Oh wait custom critters KOd for 1.6.9+ nauuuur, time to learn C#
f
kath what r u trying to do 
hm, that nexus donation thingie i didnt pay too much attention to so far but now ive been thinking...templates probably count as mod assistance then too, huh.
maybe i should change my ko-fi link to just my general pageg
we are putting our content for free for all the players, we offer help and support and updates for all the mods we've published, regardless if somebody supported us on kofi or not, it is not mandatory to support us to get the updates or support ^^
Bluejay, its specifically the stretch goal thing here that will get you into the most nexus trouble
we had an idea for a community goal among our supporters on different site from some friends creating content for another game (Planet Zoo) where people put in their descriptions that they can be flat out commissioned for certain mods
I'm not sure it's been tested; I'd be curious to see what Nexus thinks of the stretch goal approach, but I suspect they would count it as requiring payment for part of the mod (even if everyone gets it after the initial players pay for it).
i have no personal stake in this, im just telling you what nexus rules are
yeah, nexus can be ... obtuse sometimes
🤔 a stretch goal would still mean someone has to pay for it
i cant imagine them not counting it under "Updates in exchange for donations"
stuff like wording not clear enough can be a reason for them to be suspicious
the moderation scanned our mods regarding another issue few weeks ago, wouldn't they taken the mods down if they were breaking the rules?
You'd probably have to frame it as "the stretch goal just means we release it faster to everyone, but everyone gets it when it's ready otherwise"
just in case i changed my link to my ko-fi in general instead to directly to the template, that should be fine, right
considering they don't even want commissions to be advertised, they'll probably not hesitate to take it down tbh
i agree that "give us money to get more content" even if it's not your intent may get you into trouble
(they may just ask to remove link/change wording)
"Do not overtly or covertly hint at the possibility of further development of your files in exchange for donations."
this one also specifically seems to be directed at things like stretch goals
why is it that sometimes smapi gives me a nice link of the mod to update when i upload a mod and sometimes not?
nexus has a very "no money involved in modding please" viewpoint for the most part
(not the entire part, obviously. but most part)
i tested with the same list of mod and got : broken link, partial link, partial link, no link at all
well I've seen mods with things like "contact me on discord to commission me and get the mod you want" in the descriptions and those are quite popular mods in their respective games I had no idea it was something against the rules as it was this explicit ? XD
and i can't tell why
tbh im just glad we got such an active and helpful community that does point out things like these because its all the legal sounding stuff that gets my non-native-englisch brain spinning in perfectly understanding every bit of it, pff
The policies changed to be more explicit recently, right?
it was already in place
nexus has a ton of mods, they cant manually look at every one uploaded. itd need to be reported first
ah
but again, nexus acts on report, usually
they updated the rules for things like Bethesda Modworks or w/e where its officially sanctioned
just because (1) person gets away with it, doesn't mean the whole community will, we're not saying it's wrong of you to get monetary incentive we're saying that nexus will not hesitate to take yours down if it's reported that you have stretch goals
seems like System.Runtimes.Caching requires System.Configuration.ConfigurationManager and System.Security.Cryptography.ProtectedData, so had to add these at the unofficial update since without them SMAPI was yet screaming the dll could not be loaded.
I just released the unofficial update and let's hope no one have big problems with these.
(or ask you to comply to rules)
the "Publisher-Endorsed Paid Modding Rules" section on the donation guidelines page is new as of... idk. a month ago maybe?
basically you're playing a moderation roulette. You may be fine for months, or you may get a report tomorrow
it's whenever someone at the mod team noticies 🤷♂️ which could be any moment
wasnt it that recently two people in here had to change something bout their ko-fi because of the rules
(it is a genuine question, i am not sure what makes the behaviour different, and i like to understand stuff)
the one person i specifically remember is Bog, i believe, for their witchy swamp recolour stuff
i assume you have your update keys all setup yea
it might be broken smapi links if that's what you're talking about?
Can you give some examples of that?
sure, i'll try
Not me just keeping the list of out of date mods open and manually navigating to them on Nexus lmao
Better Friendship (Updated) was one i had to dig into the trenches for iirc but i think that's a forum post
also orangeblossom too no?
possibly! like i said, thats just the one i remembered
I just released an unofficial update of this
i dont remember em all
oh yeah i think those were the two i also remember
https://smapi.io/log/72ba30851fd14339b7b8661dc58597eb links!
https://smapi.io/log/ade7ce18330147868bc5bdf6dd4f1e22 no links
https://smapi.io/log/94e695e553a1406db203f3a8c971a473 just weird "update those!" empty list
Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 54 C# mods and 67 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 54 C# mods and 67 content packs.
Log Info: SMAPI 4.1.5 with SDV 1.6.12 build 24312 on Microsoft Windows 10 Famille, with 48 C# mods and 59 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i'm trying, governor
This part?
I think it just gives links for updates if there are updates registered here:
https://stardewvalleywiki.com/Modding:Mod_compatibility
(of course the state of update and so the number of stuff is varying because i am in process of updating, and i really love and appreciate the convenient list, which is why i'm sad when it's not here. But i do like it when it's here)
Yeah, you've got 19 mods in the purple for that last log
this is the weirdest one
oh isn't the top for c# mods?
no
Oh the top part lol
you see the cp one is a big list of content packs
I've never used the log site for this, didn't really consider it before
so basically, it's super convenient, but i am also unsure of what cause the difference
it may be normal on some cases (but i feel the "consider updating (empty list)" may not in any cases 😄 )
Yeah, missing the suggested fixes section seems fine, but having it and it being empty seems wrong for sure
(anyway i am perfectly aware there's more urgent stuff to deal with. It's just such a cool feature that i'd like to know what enables it)
I forgot I was mid writing dialogue, there is a hell scene in my notepad
And I forgot marriagedialogue was a thing o(<

I wish there was a device that could suck out all the ideas from your brain and turn them into functional dialogue lines that you could load into the game
I need that
Theoretically you could set up one of those voice transcriber things to write down all the lines so you just have to say them out loud, then make a script that formats them
But that's probably overkill lmao
"Hey Google, take notes for me- In this essay I--"
Only if you make them marryable 
Seems to be a log parsing issue; I'll need to look into that when the dust settles on 1.6.9.
thanks 🙂 when you got a chance is cool, it's pretty much non urgent compared to everything else
ok im trying to inject a map between two existing maps would i
A: add warps hoping it replaces existing
B: replace warp map properties with whole string
C: try to null old warps and add new ones
whats your opinion on best practice?
usually u use the cp EditMap AddWarps feature
would the add warps replace the existing ones ?
no i dont think so
So I'll know I've achieved Perfection when you and Blue finally give in. Some day...
in case where you want to remove warps, u need to do MapProperties
I mean if I make another UI heavy mod I'd probably grab it.
But Almanac is mostly just... a few procedurally placed buttons on a rich text widget.
(For the record, that was tongue-in-cheek; the thing's only officially been out for a week, after all)
hmm so one to remove warps with properties and the null comand and one to add warps so two seperate actions
i think they can go on 1 Action
but hold on let me double check
yep map properties happen first when both it and add warp are on same action
Does Rich Text in Stardew context imply some entire custom typography system? I'm curious because the SpriteFont doesn't have any notion of bold, italic and so on. There's only the "fake bold" you get by drawing at the 4 neighboring pixel positions.
Oh, I guess it's also colors.
I don't have anything for italics. Just whatever I can manage with the built-in text rendering.
It's pretty basic, but it lets me make large areas of text more interesting to look at.
I also need to fix my word wrap algorithm at some point but... lazy.
That reminds me that I have forgotten to add text shadows for like the 15th day in a row...
oo i didnt know almanac had content packs
Kind of a moot point right now. The old Almanac didn't support much and the new Almanac is going to not really use any of the current documentation.
New Almanac is designed to allow entirely custom books.
It is a neat system with typography. Given convention, I should probably figure out a way to just have a literal HTML syntax inside labels.
Way back when I thought about HTML+CSS but then I realized I'm not a psychopath and I don't have that kinda time
Maybe if there was a library for that I could start with but I didn't find anything
Yes, I can certainly understand why you didn't go there.
I've already got the markup parser and the DOM so all I'd really need to do (and I realize the word "all" is doing a lot of heavy lifting here) is add a rich text widget that takes children instead of a single text string and processes them into a single layout.
Although maybe more like the way XAML <Span> works so I don't have to deal with arbitrary nesting, because that would suck.
lol you have been caught
I can no longer pretend to be a shiny cheeto 
welcome back to doritoland
One day I'll talk enough to get that role lol
ur a cheeto in my heart
That's a very unhealthy place to have a cheeto
U r a shiny cheeto 
oh shoot orang back
made with real C#
I never really liked chipotle peppers
The real meaning of c# is 'sharp cheddar'
so was C++ the spicy lime version lol
why the hell is atra orange
I LOVE those
chile lime is such a good combo
Can anyone tell me why my dialogue isn't being read correctly? im tring to use the $b command to indicate a pause, but it keeps reading it literally. the other line I wrote works fine, it's just this one that reads it incorrectly which is beyond confusing...
You're still purple!
im happy with my mod progress but dang the amount of trial and error to just get one small section perfect
We could try to find people with red/orange colorblindness
theres many types now


