#making-mods-general
1 messages ¡ Page 303 of 1
you can't add custom colors yet. one of the C# nerds in here can probably be sniped into adding that functionality though
im sad enough that using color_prismatic gives me colorless jelly
In scope for smd
atra i become frighten u wont ever release that now
each time u say something is inscope
Thank you so much!
me everytime I add another furniture piece: did I do that right?
In scope doesn't mean it'll make the first release
hmm
on a scale of 1 to don't how bad an idea it is to patch ColoredObject.color.Value to return a rotating rainbow color depending on game time
i thought prismatic valley framework literally did that
Yup
When I say something is in scope I usually know how to do it lol already
red
that one doesnt seem to handle ColoredObject
why it no gif
and my solution would not require transpilers
Also it seems to tint the entire sprite
instead of just the jelly goop/wine water/ect.
because discord ass
Meanwhile Leo memories I'm still not 100% on how to dehardcode it
CanRevisitLeoMemory?
wow it just edits away the precondition
how does this handle things like mail being set
On it already tbh
The dehardcode idea of Leo memory was that any NPC should be able to have a dialogue prompt to see the events that are no longer possible due to multiplayer state making the event semi non-canon anymore wrapped around a "memory" of the event
Multiple layers of hardcoding too
- Hardcoded to Leo but only when in the mountain with I think some other conditions
- The list of eligible events are hardcoded
- The preconditions it will replace or ignore are hardcoded
It's a pretty neat feature that I don't think is even documented on the wiki as a feature Leo has, because it's multiplayer only
I was thinking
- A trigger action to play an event (I know spacecore has it but) which can optionally set the flag
- An event command to mark an event as a re-watch
this should become less bad now that we dont have forks right
or well, eventually wont have forks 
I was also going to do something about the forks yeah
Oh yeah the other layer of Leo memory being hardcoded, someone needs to have progressed his story to do the world changing behaviour so that he will now go the valley.
In particular it doesn't need to be host, a farmhand can progress Leo to the point host needs to use the memory system to see the events
It's (b) tbh
ok whats the S name for this one sinz
The trigger action can happen as part of dialogue and the trigger action can also contain a gsq
Sleo Smemory Sdehardcode
I do consider it a dehardcoding, its just not slightly
my goal would be to preserve its functionality, but extract out the layers of hardcoded-ness into an asset
now, whether SMD should do it, or 1.6.16...
event making question... is there a way to momentarily show an image on the screen? Specifically, I want to flash the world map (as it appears in the Loosesprites folder, and in the menu tab of the world map), almost like a cutscene? Like have a character say "look at this map!", then the image appears on the screen, then disappears and the event continues? I am so bad at event coding istg
you're not bad at this, this is advanced stuff
there are ways to display stuff but you can't display the exact world map as it would appear to the player currently in game without C# trickery to my knowledge
someone may have a clever workaround
hmmm, that's good to know. I was hoping to just pull it so that it could be compatible with the Remapping project... but I might have to think of a clever work around
if its just ur own map then drawing it is fine?
if it was just showing a texture, it is more in the realm of possibility, but the actual worldmap is more complex than a texture
in terms of just having a Big image, I know Lucikiel and Lavril both have a "CG" moment in their respective intro events. Although Lavril's may have not been literally the 1st event because it's a series of events, so it might have been the 3rd or 4th
I'll take a look at L&L... thank you all! Yeah the map seems really dynamic, rather than being a still image, it's layered for the seasons, and for different farm maps
they do it via taking you to temporary maps with it in the map
(I should specify those are 2 different mods! Lucikiel is separate from Lavril, both on nexus huhu)
ahhh I see!
for context... hoping to use these sprites to have my npc show off her map, then have it come up on screen.... but maybe it doesn't have to exactly be the world map. I just don't want to have to worry about expansion compatibility and the remapping project.... so maybe a vague "world map" would do a better job
here i go back to the drawing board haha!
I know Passerby shows an image in a cutscene, and the way it does it is making it a tilesheet and putting up a custom event location that's just that image
and all the NPCs are at -3000 so you don't see them
I know this because I just looked at how they did it because I want to have my NPC show some wallet pics of his family
I wonder if that's how Eli and Dylan do that opening cutscene with Dylan, with the tidepool
clever clever
okay, that's great fuel for thought
Your npc is super cute 
so....about my adventures into furniture land...
I think theres a few things i still gotta figure out
like, why are my paintings aint behaving and wheres the rest of my coffee tables
on the plus side, I require both of those fireplaces
Hello, I'm trying to update my downloaded FF mods using the migration script but I stumbled on a problem. For one of the mods, the terminal is asking me to give an absolute path into "Stardew Valley/Content (unpacked)" since one of the images is taken from the game files. I copied the path but the terminal keeps saying that the path doesn't exist. Can someone help me out? This is what I did:
okay, possibilities: wrong tilesheet size for the coffee tables maybe?
Yeah that looks like a typo situation
i did 2 1 instead of 2 2
The wall hangings... hm. What Type are you using for them?
painting
!unpack just unpack it then
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!
I already unpacked it. But it's still not working for some reason đ
You can see in the screenshot that I used the path of the unpacked content yet it still doesn't work
do your paintings work in an unmodded house?
ok, corrected a few things lets see how my furniture fares
no
but i mightve found the issue so i will test
before i send the code again
ok paintings work now
guess when i set a specific tile size i cant jsut go -1 on the footprint
Oh yeah that was what I was gonna guess. but you beat me to it
-1 sets it to a default size that might not match what you're doing
oh wait I just saw something about rotations when I was double checking the fields
This tutorial explains how to add custom furniture using the new 1.6 game update features and Content Patcher. The tutorial assumes you already have the game unpacked and that you have some basic familiarity with the Content Patcher format. The mods referenced as examples in this tutorial are Bonsai...
They have to be in a certain place on the tilesheet apparently
in relation to each other
ohhh
i knew of the placement
but i didnt know the numbers had specific meanings
huh
im on that page why didnt i read to the end
still dont get it
i copied the exact placements for rug and coffee table
And you have it marked as having two rotations, I assume
ya
ok i got one whole table now but only one rotation

dis my code for the two
"VoidWitchCult.CP.TheFishmongerNPC_MermaidCoffeeTable2": "VoidWitchCult.CP.TheFishmongerNPC_MermaidCoffeeTable2/table/2 2/1 1/2/3000/-1/{{i18n:Furniture.MermaidCoffeeTable}}/72/Mods\\{{ModID}}\\vww_fishmonger_furniture/true/",```
a
already see i did the footprint wrong
what the hell
help
i really dont get rotations
That looks like your tilesheet is shifted up by one
I mean, your coordinates might be 1 off
finally
awesome! loving the glass tops omg

now i gotta know why my banner wont go onto the wall
"VoidWitchCult.CP.TheFishmongerNPC_PirateBanner": "VoidWitchCult.CP.TheFishmongerNPC_PirateBanner/painting/1 3/1 3/1/1000/-1/{{i18n:Furniture.PirateBanner}}/138/Mods\\{{ModID}}\\vww_fishmonger_furniture/true/",```
im blind
hm, maybe i forgor to spawn in a new one
yeah...
Anyway! My adventures are over for now, thats the furniture
thanks for the help, midnight
No problem! spent some time fighting it myself, it's easy to get lots in the numbers
now im a small step closer to my mod update, yippie
maybe someone who understands FTM better can help me with this. https://smapi.io/json/none/66120a95606841a6928fc42e0bb5d8fa
linked is the file im working with, and near as i can tell it simply doesn't work. im not really sure whats going on since nothing in the logs indicates anything major. but no forage spawns. for context below is the block in the farmtypes CP content file that defines everything. im assuming im targeting the farm area correctly. since ftm docs meantion using the ID.
{
"Action":"EditData",
"Target":"Data/AdditionalFarms",
"Entries":{
"Silver.VerdantGladeFarm/VerdantGladeFarm":{
"ID":"Silver.VerdantGladeFarm",
"TooltipStringPath":"Strings/UI:Silver_VerdantGladeFarm",
"MapName":"Silver_VerdantGladeFarm",
"IconTexture":"Mods/Silver.VerdantGladeFarm/Icon",
"WorldMapTexture":"Mods/Silver.VerdantGladeFarm/WorldMap"
}
}
},
Those are gorgeous
thank you 
oh no esca's appeared again as im having ftm problems
- as posted, the file can't be parsed at all because this needs to be an integer, so it throws a yellow warning when I run it:
"PercentExtraSpawnsPerForagingLevel": 12.15, - your farm type's entry key and ID don't match; I'm not sure which one FTM actually sees when it checks a farm type, but that might be causing it not to match
"Silver.VerdantGladeFarm/VerdantGladeFarm":{
"ID":"Silver.VerdantGladeFarm",```
i gasped at the flower cart. perfection 
Interesting. Did not know the interger thing. But also easy fix.
Was also just about to try using the entry name rather than the id variable
Also did not realize they were expected to be the same
I'm not sure if there are any side effects if they don't match, but yeah, fields with both "ID" and an entry key (for json format reasons) are usually intended to be the same
FTM just checks the game's "current farm" value somewhere, and I'm not sure which one gets set there
coming to a store near you....maybe...one day
For future reference, hhd patches Utility.TryOpenShopMenu, so it's replaced before activeClickableMenu ever sees it, and also doesn't do any type matching.
Oh, also: you have "CPConditions" as its own field, like this:
"UniqueAreaID":"FarmAlchemy",
"CPConditions":{
"HasMod":"Morghoula.AlchemistryCP"
},```
It needs to be inside the "ExtraConditions" field:
```json
"ExtraConditions": {
"CPConditions": {
"HasMod":"Morghoula.AlchemistryCP"
}
},```
yep, each area has that field/setting group
cool. i was having trouble identifying what was a setting per area or for the whole forage setting block
at least from the documentation
(out of interestăwhy disallow decimal percentages? just not that important at the time?)
it's a bit easier to tell with the HTML editor, but the "global" settings for forage as a whole are down at the bottom of a new file, and include a "PercentExtraSpawnsPerForagingLevel", the seasonal item indexes, and the forage CustomTileIndex list
I probably figured increasing forage spawn rates by less than 1% would be too fiddly to notice 
that and it's very slightly easier not to handle decimals
okay i released my 1st mod đ
in this case really the difference between 12 and 12.15 is trending to 96% instead of 97% by level 8 (thus doubled forage spawns shortly before level 10).
im not sure why my calcs were based on level 8
i've programmed for enough computers without hardware floating-point that i also enjoy avoiding floats when practical
Floating point accuracy makes me distrust them for integer applications
whomst among us does not enjoy the old chestnut 0.1 + 0.2
You can now capture monsters vanilla & custom monsters (pokemon) and have them attack other mobs for you.
That's a big part of why the game's excessive use of Vector2 over Point drives me nuts
if its not actively causing noticable lag. its optimized enough is my stance on that subject. (ALL ITEMS GSQ moment)
Tile coordinates should only ever be integers, I don't want to know what kind of mantissa evil is happening where I can't see
I like to say: doubles by default
thinking once again about super mario 64 parallel universes, is what
fake news
Unless I'm doing something balls to the wall fast involving both big ass matrices and gpus I won't bother with halves
And I never do that, I'm not that smart
If I get to the point of trying to squeeze a fractional number in 16 bits I usually just switch to ints and use smaller units
Only time I ever actually worked with halfs was cbor
interesting.... still not working at all. but interesting. gods im so very close to giving up and just using the vanilla forest farm forage and calling it a day.
truly 0.1 + 0.2 is the 0.333... * 3 = 1 of our generation
what?

FTM continues to be an enigma i cannot make do what i want.
wait. i think i found the problem... my only entry in IncludeTerrainTypes is grass not Grass as its notated in the documentation. 
... nevermind. seems that wasn't the issue.
okay its seeming like maybe im doing something wrong in packaging. since near as i can tell despite both mods being in the archive. the ftm pack is never getting loaded. im actually now not exactly sure the correct way to handle having a content pack for multiple frameworks in the same 'mod'
... wait might actually just be a bad json thing happening in the ftm packs manifest
this is so stupid that it was only broken because it wasn't being loaded.
oh dear im going to be in dynamic token hell
just leaves figuring out how to apply config values to FTM things. so the farms custom forage can be configured by users instead of being static.
is item extensions like gone for anyone else?
weird if i click it from the sunberry mod its not there
That's a Nexus bug
Something about swapping mod tabs and looking at the requirements?
been happening a couple days now, confused me deeply when I tried to see what mods used Furniture Framework and it was wall to wall 404s
Does picky know about that?
Gotta love user bug reports, they even removed the part of the log that explains what to do...
I feel this on a spiritual level
This looks amazing!
does anyone know how critters work or how to put them in a custom map? i always go to the modding index on the wiki first but there doesnt seem to be anything there
hello.. i couldn't still make the words appear on screen... it still says no translation https://smapi.io/json/none/7847ba065c2d4accbfe3b007c2601a83
Sry if this is a dumb question but can you make it so that a particular dialogue bit wonât set off until after a certain time? (The conversation makes the most sense if it can be set to only trigger after like 4:30 or 5pm) so far I donât see anything on the wiki
what does your i18n default.json look like though?
https://smapi.io/json/content-patcher/162390a9cfcc461ebdf12913d880df63 this is my default.json
and this is inside your i18n folder?
your other i18n lines are working i assume? Maybe it's some quest-specific syntax that goes over my head
yes. I'm using it on the mail and it's working fine
it's on the same file as this event code
did you ask for help with this before? Your question sounds like you already spoke about this problem in the past, but I couldnt find discussion of it. I just want to make sure I dont repeat stuff that you already tried
for example, i18n lines can't be reloaded on patch reload without an additional command
i deleted it earlier coz i tried to fix and find solution on my own đ
but i couldnt
ah lol
sorry yeah I cant figure it out, I'm not experienced with event syntax. might have to wait for others to wake up
oh wait.. i need to do another command?
if you added the new i18n lines while the game was open, yes
Or you have to close and reopen the game
patch reload thelunariegrow.ZayneLi
debug ebi thelunariegrow.ZayneLi_IntroQuest
No you can't reload i18n lines like that
reload_i18n and THEN do patch reload
Hahah
i'm starting to get stressed out and you saved me 
no prob ^^
hehe thankies 
i18n lines are stored using a different system, so you'll have to do that in the future
I'll keep that in mind 
theres a lot of stuff like this that is easy to miss when debugging ! Also for example if you have problems with changing item or crop data, make sure not to test the changed code on an item that already exists, but delete and respawn a new one
(kind of a similar reason)
you can make specific dialogue appear when an NPC is at a certain point of their schedule
there is an example at the very bottom here https://stardewvalleywiki.com/Modding:Schedule_data
Thanks for the help from everyone yesterday, I managed to fix the issue that happens when making a CP "Load" patch when the game is not in english: I added a DoesAssetExist check before passing the load method to AssetRequestedEventArgs.LoadFrom (should have done this from the start but didn't think it would be an issue).
But I still have an issue when doing an "EditImage" CP patch: if the game is not in english and I return to title after loading the patched Furniture, there's a NullReferenceException, then upon reloading the save and trying to display the asset again, there's a ObjectDisposedException.
If anyone wants to help, I have this answer from Pathos (reply link), but I have no idea what it means and how to fix it.
how does map modding work ? ive used tiled before but im not sure how to add in new maps
!cp I think
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
my brain hurts from reading the wiki on mapping mods
which part in particular has you held up? creating the mapăor adding it to the game as a visitable location?
so i have maps i have made in tile and want to import them over as new maps
i have a q. is it possible to have different set of outcomes for an event when choosing an option on a question box?
if you want to add them to the game as the kind of maps that the player and potentially npcs can visit, they need to be made into locations https://stardewvalleywiki.com/Modding:Location_data. additional farm maps are handled in a different way https://stardewvalleywiki.com/Modding:Farm_data
I think I wanna try my hand at making FS outfits.... Where can I start?
look at a small FS pack and see how they do things
Good idea ty
Why does AssetRequestedEventArgs.NameWithoutLocale not remove _international? I'm don't know what I'm doing wrong, but I get a request for Data/Furniture_international and it breaks the system I have
_international isn't a locale in the AssetName format
it is however a static suffix that can be checked
I guess I can just skip the event altogether if the asset name ends with _international
in vanilla its only used for CraneGame to replace text with iconography
Is there any drawback to ignore requests of _international assets? I don't fully understand in what case they're used
in what situation does that happen?
the localizaed variant is attempted first, if that doesn't load (or in the upcoming changess doesn't have load handlers (and isn't vanilla)), it will then try _international, and if that also doesn't work then it does the base asset
I noticed that, but I don't understand why
is the CraneGame _international asset only used if there's no localized asset for the current localization of the game?
if someone loaded CraneGame.jp-JP or whatever, then it wouldn't use _international if in the japanese locale
but english would continue to just use the base asset directly
I'm a dumbass, I can just use e.Name.StartsWith("Data/Furniture") instead of isEquivalentTo...
that was what I was worried about
Data/Furniture/MyExtraThing wouldn't be equivalent to Data/Furniture
yeah but Data/Furniture is a game asset, not a folder. If any mod uses Data/Furniture as a folder in a path to their asset, that's on them.
nothing stops an asset being both, the asset pipeline doesn't care
asset names looking like paths is just a convention from vanilla being coupled to the filesystem, modded assets aren't constrained
I know that, but if a mod has an asset path starting with Data/Furniture, which makes FF try to patch it, that's on them. Asset paths for FF are made with modIDs in them at the start to avoid anything like that.
also Data/FurnitureExtensions would also pass a StarsWith check but fail an equivilency check
How would I check if the asset is the vanilla Data/Furniture then? Do I have to check for the _international variant separately?
that's bothersome
(i also would say that it's the major frameworks responsibility to handle these things, personally, and not put it "on them" when they've done nothing wrong, especially when the issue is known and the solution only amounts to another string check)
Not sure if you got an answer yet, but yes. You can use quickQuestion or forks (I prefer quickQuestion myself)
yep, look into forks and the different types of question commands!
oops jinx!
both of us choosing to respond to the same question four hours later
right like what are the odds
Is this the only way to do this? It looks quite bad and looks like a hack:
if (e.NameWithoutLocale.IsEquivalentTo("Data/Furniture") || e.Name.IsEquivalentTo("Data/Furniture_international"))
I'm guessing the answer is no then
for creating a custom location inside a custom building what files do i need? sorry new to modding
basically the building im creating is a garage which you can enter through 2 different doors
If I want the asset name "abc/def/ghi" to be requested, what do I put in the "texture" field of the Furniture data? would the content pipeline translate the backslashes into slashes from "abc\def\ghi"?
it seems like it does work
If you use NameWithoutLocale it will match the base version and any translated version, you don't need explicit carve-outs for different languages unless you're doing something language specific that can't just use ModTranslationHelper
I'm pretty sure I just tried that, but _international wasn't removed from the asset's NameWithoutLocale... I'll check again if you want
yeah
Oh I thought you meant that as a language code placeholder. There's really an asset sufficed with _international?
You need to make a tmx for the map
yup
Weird
Assuming this is farm building
take a look here
SinZ gave quite a detailed explanation of the use case somewhere above here
So it's probably fine if I just keep using NameWithoutLocale then
Although furniture...
NameWithoutLocale probably should include _international assets
Argh, complications
I don't need more boilerplate for assets there's already so much
Maybe I'll make a source generator to handle it
_international is every one but English iirc
@ivory plume should NameWithoutLocale include _international ?
Technically yes, since <asset name>_international is the base asset name, rather than the international locale code.
(It makes sense with how the content pipeline works under the hood, but it's a bit of a special edge case at a high level.)
Does anyone know whats going on here. I wasnt aware that the game had an issue loading tiled maps....?
!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.
my bad heres the log. i managed to fix the json so theres no issue there. it just seems to be the map yelling at me
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 7 C# mods and 1 content packs.
you have to show us the json too
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 7 C# mods and 1 content packs.
did you use a custom location
Yeah, one i made
asking cus i dont see a load to any maps on this json
so im presuming you used the deprecated CustomLocations in your main content.json?
you should rly use the parser link
Oh dang you're right I did
that said, im not sure why it tried to load as ContentConfig
still recommended to not do this now 
Rokugin here with a quick tutorial on adding a custom location to Data/Locations using Content Patcher.
Github repo can be found here, with the download for the whole mod here.
This tutorial assumes you have SMAPI and Content Patcher installed.
I suggest using VSCode for automatic formatting and real...
i think the goblin who manages dependencies is on strike
may someone expand on this
Huh, never thought of trying that but I see the logic
Okay so:
The patch export command generates a file of all items the game currently has loaded for that data set, regardless of whether it comes from a mod or vanilla
So patch export Data/Crops will generate a file that has all the crops in it
JA adds crops to the game's crops data set
tysmmmmm
And since the patch export will show those crops in vanilla format, it'll basically do the work of converting the format of those crop entries from JA into vanilla/what you need for CP
aaaaaa THANK YOU
The generated file will show up in a 'patch export' folder next to your mods folder
Does anyone know where the đ icon that shows during a night event (meteorite, summer 2 earthquake, etc.) is located? I tried to find it by checking SoundInTheNightEvent.cs and related code but I'm not seeing a reference to it so I can find it in the content files.
patch export will export the data of data/crops, in a format that is basically CP minus a few difference
so once it's done you do a bit of copy paste, adjust ids and a few things if needed and boom, you converted stuff
yippppeeee
Try cursors timesheet
Tilesheet
yeah, I've looked through Cursors a few times... not saying I couldn't have missed it, but I'm not seeing it
I'll be on in a sec I can help look
Also I did not know that JA trick. I'll have to remember that
i found it
it's in cursors_1_6.png
@half tangle ^
Oh, thank you! I did not see it because the code changes the color from the .png's white
Edit: for anyone who sees this later, yes, this is incorrect - I forgot that the game changes the background, not the volume sprite
np!
I was very confused when I didn't see it there on my earlier looks at the file, so I appreciate the second set of eyes pointing it out
hello, i have a question, i want to change a monster sprite from zero, but i want to make it bigger, like, from 32x32 to 34x52, does the game automatically identifies the size of each sprite? or i need to change some data for this?
monsters are a pain in the butt... my Slime Tamer allows for custom monsters but ill be updating it soon due to feedback and learning new things
"angry roger"
Angry Roger isn't implemented i don't think?
what do you mean?
i'm trying to use content patcher for this
There's no behaviors implemented for him and he never appears in the game
You would need to make a c# mod to fix that
oh
There's art and a C# class but I don't think an instance of the class is ever instantiated
well that's a shame
what's the bot command for item ids?
!itemids
So there's some behavior that exists but it never gets used
i was trying to change all monster sprites, and he was the first one
so i used him as a test
i didn't know he wans't implemented
So for a general answer no im pretty sure their bounds are hardcoded as hell
Not all sprites r used either
Tea has templates for each monster in the mod files
nothing you can't fix with a little (a lot of) patching and some good ol fashioned determination lol
(don't do this)
Monsters the Framework...
I think monsters sizes are not that hardcoded, the sprite can take a different size than usual
still needs C# mind
monsters are hardcoded but you can change it with C# & you can define the spritesheet within the code, along with the size
now that state machines are straight up in game data (pet behavior) maybe people will be more receptive now
Hii was wondering if anyone knows how to edit a vanilla map. I made a custom one recently but I wanted to create a path from the vanilla map to the custom map. If anyone could help out that would be nice đ
You can use content patcher to add warps using EditMap
I have warps , its just theres no pathway in the vanilla map that leads to the custom location. For example in SVE the maps have little roads that lead to their custom map. I'd like to redo the vanilla maps as well if that makes sense đ
coming along đ
That'll be a map patch, you can find info about those on the same page that Lily linked you to
Hey guys, I'm not sure if this is the right place to ask, but I want to make an already existing hair mod compatible with the "more elegant farmer body," but I'm unsure how to do it. The hair fits on the head perfectly; the only issue is that it causes the legs and feet to go back to the original body type.
note: the hair mod author said editing for personal use is okay
thank you and Lily c: i'll look into it !
Maybe you should share a link to the hair mod that you're talking about so that people can see what framework it uses and why it might change the body shape
Iâm pretty sure the problems youâre having would be related to odd framework interactions
You could try making this a CP hair pack if itâs small enough to fit
However, hair mods inherently arenât supposed to affect body mods
Iâm guessing that FS somewhere resets the body
But also farmed body mods have the weirdest bugs
I suspect caching is somewhere to blame with most of them
dang đ so it will probably be hard to solve, im cooked
ill let the most jaw dropping beautiful hair mod go then, thank you for the help!
Do u think it's because of farmer renderer having it's own content manager
yea thats how i know im not built for this cause i dont even know what farmer renderer even means đ
Honestly that sounds suspicious but also beyond me
You should be able to make a lot of those hairstyles as CP hairs just fine
its straight forward too
I would try that route then!
It's not animated right
ALRIGHT ill try to make it a CP! hopefully it goes well 𫡠đŤĄ
question am i doing anything wrong doesnt seem to convert
Hi everyone, how are you? I hope it's not too much to ask, but could you check the code I wrote to add a tree? I'm not sure if everything is correctâI tried to include everything in a single file.
Hello everyone, excuse me... I am wondering how one might add a new Tailoring Recipe into the game please. The formating for Tailoring.json looks different from the others and I am a little intimidated.
!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.
(usually I look at another mod for inspiration but I'm not sure who else does Tailoring)
whats the goal here?
Take an item and put it in the sewing machine to produce a hat
ah so u already added the hat item right
yep, so Hat is an item, pseudo hat is an object.
Like you do witht he Lucky Purple shorts.
Issue is that the code for the tailoring looks like this: [ { "FirstItemTags": [ "item_cloth" ], "SecondItemTags": [ "item_ostrich_egg" ], "SpendRightItem": true, "CraftedItemId": "(H)93", "CraftedItemIds": null, "CraftedItemIdFeminine": null, "Id": "(H)93" },
so I'm just really wondering how I editData it in.
well its kind of like trigger actions
you still put entries as a dict
but content patcher will append it for you
Cool, do I need to define order at all like we used to do with fishponds?
(90% of what I know if from copying examples)
you can use id_o_your item id as the SecondItemTags
I Think I might have it, let me see.
to make it basically unique
{
"Changes": [
/* add item*/
{
"LogName": "TailoringRecipes",
"Action": "EditData",
"Target": "Data/TailoringRecipes",
"Entries": {
"Lumisteria.MtVapius_NevarilHat": {
"FirstItemTags": [
"item_cloth"
],
"SecondItemTags": [
"item_nevaril"
],
"SpendRightItem": true,
"CraftedItemId": "(H)Lumisteria.MtVapius_NevarilHat",
"Id": "(H)Lumisteria.MtVapius_NevarilHat"
},
}
},
]
}```
is how i do it
the order only matters if you have a more generic context tag
THank you Lumina! I did look in VMV but I didn't see it. was probably lost
me : "i could makes tailoring recipes for my hats"
me later : "i made tailoring recipe for my hat, good enough" đ
(If it helps, this was exactly how I was going to nut it out myself)
thank you for being ourpioneer. Also I clearly need a more updated version of VMV
it's a pretty small file and there's a lot of them so it's easy to be lost
and thanks đ
I"m gonna have wool as the first item I think
its just making some stitches so you can see
i tried to use that earlier today on that mod exactly and same thing happened to me
that one needs to be manually converted it seems
Thanks Chu and Lumina!
is it like coded differently than the others ?
no idea, i haven't really looked at any CON mods before
hmm, maybe it's a matter of size? i remember kaya having a lot of content
yeah that is my suspicions as well
that the file is too big, since it's not giving me an error or a wrong conversion, just refuses to do anything when the convert button is pressed
Heya! I need some help with something. I'm trying to do an indoor/outdoor variants for each season that would change with a toggle and for some reason it only shows the outdoot variant and I don't know why,. Specially cause I tested it in a festival day and it worked but once I slept to go to another day it stopped working. I made it like this (I'm testing in summer)
"{{ModId}}.RasmodiaSummerIndoor": {
"Id": "{{ModId}}.RasmodiaSummerIndoor",
"Condition": "SEASON Summer",
"Sprite": "Characters/Rasmodia_Summer_Indoor",
"Portrait": "Portraits/Rasmodia_Summer_Indoor",
"Outdoor": false,
"Precedence": -160
},
"{{ModId}}.RasmodiaSummerOutdoor": {
"Id": "{{ModId}}.RasmodiaSummerOutdoor",
"Condition": "SEASON Summer",
"Sprite": "Characters/Rasmodia_Summer_Outdoor",
"Portrait": "Portraits/Rasmodia_Summer_Outdoor",
"Indoor": false,
"Precedence": -160
},```
It's like this for the rest of the seasons, I've looked up how SCA does for indoor/outdoor winter and it's like this so I don't know what I'm missing
"splitting" the file may help then
(obviously while respecting the commas and such)
yeah i thought about it but then went to nap instead and when i woke up i lost all my motivation lol
i also didn't 50-50 my mods today
"after a nap i'll be rested and more focused" "didn't work", a classic
i'll try to find motivation tomorrow again
OKAY NEVERMIND I FOUND THE ERROR I HATE MYSELF
I was just missing an "s", god I'm dumb
it's ok it will happen again if you continue modding
typos, commas, and editing the wrong file all this time are things that just happen
hi, if I want to make a new modded event, is there an easier way to test what the event looks like instead of loading the mod into sv?
Not the first time something like this happens to me so I'm mostly amused at how I overlooked this
you used the url nexusmods.com/mods/2400 instead of nexusmods.com/stardewvalley/mods/2400 âď¸ surprisingly, there are other games on nexus
how do i get started making mods guys ?
!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.
usually people start with an idea or a goal, then get into the brainstorming, then getting to know the tools. if you don't have an aim in mind it's harder to get started
i think my goal is too big as a beginner đ i want to completely change the characters (sprites and portraits) and their dialogue, is it too much ?
Does any mod exist without being in a game scope?
even the modding tools stuff is in the 'game' called site.
And why does nexus seem to occasionally link without the game
i don't know, i only look at stardew mods hahah
depends how proficient you are at digital art and simple creative writing! all characters in their entirety is a pretty big goal, it's better to start out small. let me guess, fandom crossover mod?
yesss haha, mixing my two favs is like a dream
what do you recommend for starting out smaller?
oh and do you know if you can like add in your own cut scenes? not gonna jump into that but like i been thinking about it lol
You certainly can
Making new events (one term for cut scenes) unfortunately does mean wrestling with the event syntax, which is 100% possible but not super beginner friendly
Iâd start with your favorite character maybe?
Plenty of crossover mods only do 1 character
oh okay ! thank youuu
Advantage of events is that you can have 'temporary actors' where it's just portrait, sprite, name and dialogue without needing to build a full npc
thats so cool what
when you change an npc like mod one, does it also change how they look in the events ?
Yes*
oh sickk !!
another question, can you like change things like the intro? where grandpa like dies and leaves you the farm? can you also add letters and stuff... đ
oh and can you change tools? (sorry for all the questions, im having a creative burst lol)
you can retexture almost everything in the game
as for the cutscene, you can retexture the images and change the text
you can't change how it plays out (without C#), but that's probably good enough
okay !! thank you so much
I clicked the dependencies link on my own mod and got there
Broken linknlol
Are you lost
By any chance, does anyone know the sprite path for the tea leaf in SDV?
check springobjects
ok, thanks
yeah it's a bug Nexus is having right now, something about changing mod tabs?
If you refresh, it should give you the right link from the dependencies. Should
@acoustic summit hello, @crude plank said you can apparently catch Bugs with the fishing rod
i feel like this is important enough to ping, but if u desire nexus bug report instead next time lmk
nono, i also wanted to ping i just wanted to check if they're ok with ping before doing it lol
The fishing overlay is having a time...
Sooo, am I making XACP now? XML Adapter for Content Patcher?
Yay!
o7
I think that's a feature of the integrated wildlife add on for NitV (made by the same person)
oh interest, i thought the description meant fishing specifically rather than as a net replacement
this is not that though
integrated wildlife spawns critters when you do different things
this is literally, i can use my fishing rod and never have a net
This mod also adds a new feature which allows you to catch creatures using fishing rods.
perhaps thats the feature
oh.
completely missed that 
sorry
well then i'm glad we pinged them to now have confirmation the feature is working as intended
catching an ant with a fishing rod sounds like a buddhist parable about a completely impossible task lol
I have a question for anyone who knows Fashion Sense. Would it be theoretically possible to make that mod have the farmer reach out their hand? (I'm wondering if I can take a stab at making an umbrella.)
I finally got around to extracting this feature from Archipelago and turning it into a standalone mod đ
https://www.nexusmods.com/stardewvalley/mods/33722
I hope some people find use for it sleep more easily 
I wish I could use that irl 
don't we all 
but to be fair, the reason most of us play stardew is to do stuff we can't do irl 
I too wished I could milk pigs for truffle juice irl
Would prefer if I didn't need to sleep at all IRL, so much time wasted I could be using on MODDING 
peeks at channel. Immediately leaves.
i dont understand why my largemouth bass mod says it hasnt been updated when i uploaded an updated just a few months ago shdjsdfs https://www.nexusmods.com/stardewvalley/mods/19241
Hm. Something fishy is going on there.
Yup
its also atleast a C+
Susfishious, you could say
i always enjoyed the wow!!! cool!!!
Yep its intentional as part of integrated wildlife :), it's main purpose was an easier alternative for catching creatures on the water if people want to use it.
pushing AND pulling!
https://youtu.be/FQhyZsEqAn0
yes, i already made the tmx and configured it also on where to warp, the only thing i haven't got around to is how do make it so the building can be built?
hi! im so sorry if im interrupting anything đ but i want to get into modding and i'm not too sure on how to go about it... i'm especially interested in making custom npcs
!npc
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!
thank you!!
!startmodding To actually start making mods, have a look at how Content Patcher works first and then try the tutorial for making a custom NPC that was in the links Forsy provided.
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.
You're also welcome to come back here to ask for help with stuff :)
heya, Ive been thinking of trying to mod stardew, with just a simple mod, such as a portrait mod, do any of yall know how to get started modding somthing like that, or are there any guides out there??
!gs
If you would like a guide to setting up mods for Stardew Valley, check out the getting started guide! https://stardewvalleywiki.com/Modding:Player_Guide
Wait wrong one
!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.

thanks!!!
My happiness was so short lived
what did you upload?
A completely SFW fashion sense mod that, when checked, passes all the virus checks đŤ
Rip đ false alarm i guess. I hear nexus has been acting a bit weird lately though

I just hope it gets fixed soon, I was really excited 
Nexus has a tendency to mark rar files as virus even tho it isn't. If you uploaded as rar try making it a zip instead
Grats on first release!
How do yâall turn a text file into a .json??? I need to do so, but my pc isnt letting me
For win11: if you have that checked then when you rename a file you can see/change .txt to .json
Thanks!
I'm still trying to make some more tests to determine an issue, but what could cause a pet to just stand still forever?
My current custom pet has a chance to just look in one direction and stay frozen like that.
I have a suspicion that it's one of these two parts here:
THough I'm pretty sure the one that only consists of "null" shouldn't be an issue, since the base-game pets have that.
I believe the null entry means "maintain current behavior"
can you post the full code
There ya go.
If that's the case, then I could omit the "Walk" in the picture I showed.
(pls use smapi.io/json next time!)
nothing seems wrong so far. if you have Lookup Anything, enable data mining fields and F1 on the pet, and find the field CurrentBehavior. what does it say?
I forgot smapi.io was a thing. I'll go give Lookup Anything a try in a mo.
Anyone know of a way to target the menu and load screen music with content patcher? That's not just replacing the audio file.
It's not a location afaik.
I've been jumpscared by the music one too many times.
also MoveSpeed is repeated twice in your pet entry. I don't know if that's responsible for your problem but fix it just in case
[[Modding:Audio]]
you want to add two entries, one for MainTheme and one for title_night, each replacing it with a file of your choosing
My bad. I have been reading through this and the content patcher wiki. I've already done what you suggested, but I would like to not replace the file in the event some other mod might use it.
This was what you're suggesting I do, right?
{
"Format": "2.6.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"Silent_LoadScreen": {
"Id": "title_night",
"FilePaths": [
"{{AbsoluteFilePath: assets/silence.ogg}}"
],
"Looped": true,
"StreamedVorbis": true
}
}
}
]
}
I'm just wondering if you can target the main menu the same way you can target a location.
that code looks good
Snippet of what I'm talking about. A Content Patcher config where I give the Joja Mart its own music and not ambience.wav.
{
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [
"JojaMart",
"Music"
],
"Entries": {
"JojaMart_Background": {
"ID": "JojaMart_Music",
"Track": "JojaMart_Background"
}
}
}
the main menu is not a location, it just is
the game calls Game1.changeMusicTrack("MainTheme"); directly
i got a question about #mod-showcase how does it update when a new mon is posted on Nexus ?
it doesn't, you make a new showcase
oh i thought the bot was reading off api from nexus
For a mod to be showcased, you have to actually make leah (the bot) publish it
Seems like "SoutShort" behaviour is where the pet gets stuck.
The pet was facing left, after the animation ended.
Wait, I see some extra commas here. Could tht be an issue?
that doesn't matter
it doesn't animate?
thanks , i also see that i have to be level 25 ? thanks for pointing me in the right direction
I wonder if animation end behavior changes only activates if it's not looping
ive updated it đ
https://www.nexusmods.com/stardewvalley/mods/33704
still trying to improve it , if anyone has any insights ill be happy to listen
your animation doesn't loop right? my hypothesis is that it might be because of the null entry
if a non-looping animation changes into itself the game doesn't restart it
It seems so, because now my pet doesn't get stuck anymore!
Is there a way to tell if there's UI elements under the cursor when handling the ButtonPressed event? I just realized that FF can take from / place in slots through the menu...
Thanks for the help!
Hmm, maybe I was too quick on the 'fixed' part.
https://smapi.io/log/52b31b753ec74acb99237151ea19698d
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 15 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Damn it
/// Checks if the given coordinates are within the UI bounds
public bool ContainsPoint(int x, int y)
{
return _isOpen && _bounds.Contains(x, y);
}
this is what i did
is there a command for making custom buildings?
Nevermind! I just used "Hold" where I didn't need to. The error's gone now.
how do you get UI objects to call that method on?
// Check cancel button
if (_cancelButton.containsPoint(x, y))
{
Toggle(); // Close the UI
return;
}
_cancelButton = new ClickableComponent(
new Rectangle(_bounds.X + 650, _bounds.Y + 400, 120, 60),
"Cancel"
);
is this a world interaction on the furniture? I think I'd just check that there's no menu active
Yeah, how do I do that? It would be nice if I could prevent clicking through the UI in the top right and the inventory bar.
oh you mean HUD elements
in which case I think iterate through Game1.onScreenMenus should grab them
(I thought you were referring to active menus lol)
then you can check bounds
you would need to check where the mouse is , and suppress button presses
I think I have part of a solution now, but I'll just explain the situation just to be clear:
FF has a keybind to place or remove stuff from Furniture slots (like a table), and this action happens by going through Furniture in the map when the keybing is pressed by using the SMAPI ButtonPressed event hook.
My goal here is to prevent this action when the Furniture is not visible, so either it's behind HUD elements, or the game's menu (with inventory, map, etc) is open. I don't think (?) it's necessary to check UI buttons, just their bounding box would be enough.
could you just check if the Furniture tile is on screen or not ?
Vector2 tile = furniture.TileLocation;
Vector2 screenPos = Game1.GlobalToLocal(Game1.viewport, tile * Game1.tileSize);
Rectangle screenBounds = new Rectangle(0, 0, Game1.viewport.Width, Game1.viewport.Height);
// Checks if furniture tile is on screen.
if (!screenBounds.Contains(screenPos.ToPoint()))
{
return;
}
that doesn't tell me if it's hidden behind a menu or HUD element
This works for the toolbar and the journal button, but it seems like IClickableMenu.isWithinBounds doesn't work for the top left HUD element: it doesn't tell me that I'm clicking on it
int mouseX = Game1.getMouseX();
int mouseY = Game1.getMouseY();
//Mouse is over HUD UI, skipping furniture interaction.
foreach (IClickableMenu menu in Game1.onScreenMenus)
{
if (menu.isWithinBounds(mouseX, mouseY))
{
return;
}
}
what top left one
Yeah, this is what I just tested, and as mentioned it works for some stuff.
the clock/etc is top right and that should also be in onScreenMenus
that thing
lmao I'm switching left and right now
I did that:
Point screen_pos = e.Cursor.GetScaledScreenPixels().ToPoint();
foreach (StardewValley.Menus.IClickableMenu menu in Game1.onScreenMenus)
{
if (menu.isWithinBounds(screen_pos.X, screen_pos.Y))
{
log($"ON MENU {menu.ToString()}");
}
}
And it doesn't log anything when clicking on this, or when clicking in the game menu
hmm, I'm already on bed so can't check the code, though I wouldn't be surprised if the bounds check is just not implemented for that one because it's not clickable in the first place
yeah, makes sense
int mouseX = Game1.getMouseX();
int mouseY = Game1.getMouseY();
// Block click if menu is open
if (Game1.activeClickableMenu != null)
return;
// Block click if mouse is over any main HUD component
foreach (var menu in Game1.onScreenMenus)
{
if (menu.isWithinBounds(mouseX, mouseY))
return;
}
am i missing any ?
I'll try that, thanks!
i won't lol
uh, none of the stuff in the "HUD elements not in onScreenMenus" part actually exists, did you halucinate that?
hold on let me check
yea i thought that is what they would be called in the UI , ill have to actually check the ui coding
if you're using AI, please don't
or at the very least check that whatever the autocompleter filled in actually exists before just posting it
no im looking at source code now
end the stigma dudes dudettes and esteemed others
IIRC the money dial/quest button/etc. are all in onScreenMenus already
okay sorry lol
logging everything in onScreenMenus give me this:
[18:03:44 DEBUG Furniture Framework] StardewValley.Menus.Toolbar
[18:03:44 DEBUG Furniture Framework] StardewValley.Menus.DayTimeMoneyBox
[18:03:44 DEBUG Furniture Framework] StardewValley.Menus.BuffsDisplay
[18:03:44 DEBUG Furniture Framework] StardewModdingAPI.Framework.SChatBox
Gonna check the bounding box of DayTimeMoneyBox and BuffsDisplay, the SMAPI doc says that inputs on the chat are not passed to the API
ok
so the issue is .DayTimeMoneyBox
yup, debugging why isWithinBounds doesn't work for this menu
i wonder if this would work than
if (Game1.onScreenMenus.Any(menu => menu.bounds.Contains(Game1.getMouseX(), Game1.getMouseY())))
{
return;
}
hey guys, so...I don't know why this code just isn't working... like what am I missing?
{ "Action": "EditData",
"Target": "Characters/Dialogue/Wizard",
"When": { "Time": "{{Range: 1200, 2600}}"},
"Update": "OnTimeChange",
"Entries": {"WizardHouse8": "{{i18n:Wizard_Greeting1}} ${{e3}} #$b#{{i18n:Wizard_Greeting2}} ${{e3}} #$e#{{i18n:Wizard_Greeting3}} ",} },
Whenever the conversation reaches #$e#, it loops and restart the conversation again instead of keep going to {{i18n:Wizard_Greeting3}}...
Also...noob question đ how do i write in those fancy code boxes everyone has here on discord?
Again, did you test that this code is valid
menu.bounds doesn't exist, but creating a Rectangle from its position and size works
!embedcode
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
no but it should get any on screen menu in theory
cool thanks! Ill try that next time. Looks way less cluttery
doesnt #$e# go at the end ?
found out the issue: DayTimeMoneyBox overloads isWithingBounds to only check the zoom buttons and the quest button
It's suppose to close down the dialogue box, and the next time I press the NPC the next dialogue after #$e# is suppose to play
I'll go sleep now, but I'll refer you to this announcement, make of that what you will
#bulletin-board message
long story short, this works:
foreach (StardewValley.Menus.IClickableMenu menu in Game1.onScreenMenus)
{
Rectangle bounding_box = new(menu.xPositionOnScreen, menu.yPositionOnScreen, menu.width, menu.height);
if (bounding_box.Contains(screen_pos)) return;
}
so this works because its checking the clickable menus , nice
What's the ${{e3}} meant to be?
It's a dynamic token for expression list
{
"Name": "e0",
"Value": "0",
"When": {
"Query: '{{Portrait Mode}}' = '32' OR '{{HasMod}}' = ('Jellonip.EMagnusPort, Jellonip.CMagnusPort')": true
}
},
{
"Name": "e1",
"Value": "1",
"When": {
"Query: '{{Portrait Mode}}' = '32' OR '{{HasMod}}' = ('Jellonip.EMagnusPort, Jellonip.CMagnusPort')": true
}
},
{
"Name": "e2",
"Value": "2",
"When": {
"Query: '{{Portrait Mode}}' = '32' OR '{{HasMod}}' = ('Jellonip.EMagnusPort, Jellonip.CMagnusPort')": true
}
},
//Expression list Compression
{
"Name": "expressionList",
"Value": "|e0={{e0}} |e1={{e1}} |e2={{e2}} |e3={{e3}} |e4={{e4}} |e5={{e5}} |e6={{e6}} |e7={{e7}} |e8={{e8}} |e9={{e9}} |e10={{e10}} |e11={{e11}} |e12={{e12}} |e13={{e13}} |e14={{e14}} |e15={{e15}} |e16={{e16}} |e17={{e17}} |e18={{e18}} |e19={{e19}} |e20={{e20}} |e21={{e21}} |e22={{e22}} |e23={{e23}} |e24={{e24}} |e25={{e25}} |e26={{e26}} |e27={{e27}} |e28={{e28}} |e29={{e29}} | e30={{e30}} |e31={{e31}}"
},```
It's not my code. This is from Jellonips RRRR code to get 32 portrait expressions instead of the default with only a few. But it's suppose to work in the same way as is $h etc, as I understands it
Since I'm still super noob at coding. I'm borrowing a lot of codes from those who knows how to code, instead of relying on AI...(AI only gives me bad code). This code is mainly for my own use as well, and mainly for learning ^^
I can't say I understand why Jellonip doesn't just use portrait indexes normally, but okay. Does the line work as expected if you replace all the tokens with plain text? So it's just something like "WizardHouse8": "Hi. $1#$b#I'm a wizard. $3#$e#You're not."
Gimme a sec, I'll try that out
Nope, stops at "I'm a wizard" and then loops
I've managed to make #$e# work when applied to the ending of events /end dialogue Wizard \"{{i18n: Wizard.spring.01 {{expressionList}} }}\"",
and then in i18n default folder having "Wizard.spring.01": "$1#$b#I'm a wizard. $3#$e#You're not.",
Try removing the condition so the patch is applied all the time. Not as a permanent fix, but for identifying what's causing it to work incorrectly. Alternatively you could do a patch export on the dialogue the way it is now and see if it's showing up correctly there (patch export Characters/Dialogue/Wizard)
You mean removing the conditions so it becomes like this?
"Target": "Characters/Dialogue/Wizard",
"Entries": {"WizardHouse8": "{{i18n:Wizard_Greeting1}} ${{e3}} #$b#{{i18n:Wizard_Greeting2}} ${{e3}} #$e#{{i18n:Wizard_Greeting3}} ",} },```
Do you mean writing patch export Characters/Dialogue/Wizard into SMAPI?
Another super noob question đ How do I make these kinds of discord boxes?
Yes and yes. To make a code line, you just put one backtick instead of three. ` Like this, only yours will become a code line (I'm using the backslash to escape the backtick so you can see it) `
Okay, also, thank you soo much for you endless patience â¤ď¸
Do you guys know how to make non pixel art portraits? Iâm trying to make a portrait mod, but Im not sure if using art with like, 100x more pixels would even work
You can make portraits that are larger than 64x64px but you have to use Portraiture or another mod* to put them in game. I don't know if there's a restriction on size, but the examples on the Portraiture mod page are pretty big.
* I think maybe Scale Up 2 can do it and maaaaybe SpaceCore? But everyone just uses Portraiture.
Ooooooo
No problem at all, that's what I'm here for :)
I know I have a lot of clueless questions. So I really appreciate you taking the time to explaining it ^^
Also I tried both solutions, and still the same results. Got this from SMAPI as well patch export Characters/Dialogue/Wizard [Content Patcher] Exported asset 'Characters/Dialogue/Wizard' to 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\patch export\Characters_Dialogue_Wizard.json'.
Don't really know if that's how it's suppose to look like...?
The patch export wasn't a solution, it's to see what the dialogue file looks like. Go find that file and open it up to see if the Wizard's line looks like it's meant to. You can share it here if you aren't sure what you're looking for.
Ah I see, then one sec
Okay, looks correct. I wonder if it's related to it being location dialogue.
Could the space between the dialogue and $3#$e# make any difference?
Try changing it to a daily dialogue key instead. The fact that location dialogue is replayable might make #$e# go funny. I never use #$e# because I hate it so I'm not familiar with all its quirks.
Ok, so like this instead?
"Target": "Characters/Dialogue/Wizard",
"Entries": {"spring_Mon8": "Hi.$1#$b#I'm a wizard.$3#$e#You're not.",}```
I wouldn't think so given it doesn't seem to be impacting the #$b# but it doesn't hurt to change it.
Yeah, exactly.
OMG!!!! It finally worked!!!!!! Thank you Sooooo much!!!
So I guess #$e# does not play well with location dialogue
Okay if that was the change that worked, it looks like #$e# won't work with location dialogue because it's repeatable. So stick with #$b#.
Sounds like it. Thank you for the help! I just change out my location dialogues to daily dialogues instead
is there already a mod that add a completely new pet horse? one that dont replace the existing horse?
Does anyone know what to do when Content Patcher doesn't recognize your .json file as valid?
!json
That just means there's some kind of error, probably a comma, a bracket or something.
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.
tyyy
(Basically, upload your json, share the link here and someone will take a look.)
There's a missing comma between the brackets on lines 20 and 21. I've next to no idea how map patches and NPCs work under the hood, though, so that's all I'll say.
does anyone know if it's possible to get a light periwinkle blue glow for a lamp? the mod uses FF so I'm using a custom light source. I've tried changing the hue and saturation of the light source to no end but I cant get a light blue color
here's a pic for reference
Not sure if I'll help, but a basic recomendation is to follow the mod's docs.
Something about lights is here:
https://github.com/Leroymilo/FurnitureFramework/blob/main/doc/Complex Fields/Lights.md
Never used FF, though, so no idea how it should work.
there's no information on how to tweak your light source for a specific color, so that's why I thought I'd ask here
I've also tried using the Color property, but for some reason I cant see any difference after using it?
Did you have it defined like this:
"Color": "DeepPink"
(total brainstorming from FF docs and their example pack; change the color to something from here: https://learn.microsoft.com/en-us/dotnet/api/system.drawing.color?view=net-8.0#properties)
Can you make 2 identical light emitting Furniture whose only difference is the color? It should help see if the colored lighting works
Corrected code:
"Format": "2.5.0",
"Changes": [
{
"Action": "Load",
"Target": "Character/Fyodor",
"FromFile": "assets/Fyo.png"
},
{
"Action": "EditData",
"Target": "Characters/Dialogue/Fyodor",
"Entries": {
"Mon": "hello world",
"Tue": "test1",
"Wed": "test2",
"Thu": "test3",
"Fri": "test4",
"Sat": "test5",
"Sun": "test6"
}
},
{
"Action": "EditMap",
"Target": "Maps/Town",
"Add": "Characters/Fyodor 27 67 2 Fyodor 500 600",
"When": {
"Time": "600 2600",
"Weather": "Sun, Cloud, Wind, Storm, Snow"
}
}
]
}```
One thing that might be hard to work around is that what Light Sources don't apply their light texture directly as-is, they remove a chunk of darkness from the game's night time filter iIrc
hey anyone can help me?why I add reference to StardewModdingAPI.dll but nothing happen T.T
I'm surely added it
upon further experimentation, I cans see that the color property does leave a tint, but still having trouble getting a blue color...the only color I manage to make is green
sorry, internet got cut
So, i did as you said made one lamp's color HotPink and the others Blue.
The difference is there, but really, really small.
yeah, I think I need to change the color of the light source, but that's what I'm having trouble with
Don't reference SMAPI directly, use the ModBuildConfig nuget package
wait...how do i make a manifest for my mod, when i will be using both c# and content patcher?
The simplest solution is to have them separated as 2 folders, each one with its own manifest.
can't i just put the entrydll line in the same manifest or no?
No
That is the only option, I thought.
I find it,then update their path to my game directory?
try to make the light texture more transparent
ok ok thanks
(to be honest, I don't know about any other option than this one)
(There is a helpful thing you can do via mod build config)
Bundling the content pack?
Yeah I do that, it's nice for putting it all nice and tidy into the folders ready for play.
enlighten me please
Less nice for making changes to the content pack while the game is running, but we can't have everything haha
Documentation here: https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig#bundled-content-packs
You still have to have the content pack as its own folder with its own manifest, it just goes inside the C# mod solution folder. I include a screenshot from one of my mod as an example. (Yes my sln file is in the same folder as the csproj, nobody has been able to give me a convincing reason not to lol)
should I lower the opacity or make it a greyer/lighter color?
you can try both, but I meant lowering the opacity.
I'm running tests on my side but I just realized that I broke the reload command at some point, so I'm fixing that first
welp, making the light texture white makes the game darker, which can be usefull
Just noticed another problem: when the lamp is at it's right rotation, the position of the light source is off. is there a way to have different light positions for each rotation?
yes, the "Lights" field is directional
the "Position" field of the light itself is directional, it's even easier to do
Ok, so after some tests: you have to set the color of the light texture as the complementary of the color you want, and the "Color" field only works if the texture is white...
I see lemme try
I should add color code support as well, it's not very hard to do...
what does that mean? like what could mod authors do with that
I could add a thing so that it's possible to put "#FF00FFFF" instead of "Aqua", which gives more freedom for the color
yeah, that's why I'm saying it's not hard to do
I'm thinking about also inverting the color when it's a light Source to make tint more intuitive with the "Color" field
Makes sense!
but I'm not sure how I could fix the fact that the color won't apply to the default black texture since it's multiplicative...
right now, I'm just passing the color to SpriteBatch.Draw
here's an idea: having the Color field default to Black for Light Source and White for Light Glows, and instruct modders to provide a white texture in all cases.
no, that doesn't make sense, it should default to White in both cases, but take the complementary color when it's a Light Source, so the default white turns to black
one of the hardest parts of making this mod was making the light texture the right color, so it would be great if the process was made simpler (by always providing a white texture)
@woeful lintel
Also, can I get some help with the light position? Say, if the light position is
"X": 34, "Y": -48
and I want the right rotation to have a light position of
"X": 20, "Y": -48
how would I do that?
Assuming you have 4 rotations:
"Lights": [
{
"Position": {
"Up": { "X": 34, "Y": -48 },
"Right":{ "X": 20, "Y": -48 },
"Down": { "X": 34, "Y": -48 },
"Left": { "X": 34, "Y": -48 },
}
// Set other properties as usual
}
]
This should work
you can change the position for each rotation independently
no problem!
how do i send my code here cleanly? like what is the command(the !)?
!embedcode
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
you can also use https://smapi.io/json
If it's a small snippet, a code block is ok. If it's going to take up the whole screen, we prefer that people send a json validator link (the website Leroy mentioned).
ok ok i will, sorry if im asking too many questions still new to modding
https://smapi.io/json/content-patcher/0e59b1d034824f8590fd185e357f70c5 - here is the code i don't know if it's correct, I'm only trying to make sure the location is working
Where would I find the data for the stone chest mail delivery in the game files? I'm interested in unpacking it to see the correct syntax for attaching a crafting blueprint to a letter.
I'm at the point in my mod where the letter is showing up, the crafting recipe is appearing (proven via CJB Item Spawner) but the letter shows the syntax literally instead of just attaching a blueprint, so I assume I'm doing something wrong.
Cause the stone chest recipe shows up via mail after you complete the quest, I figured that's where I could see what syntax actually works.
I have that pack/unpack app and Staredew Hack unpacked files, I know how to get it just not which file to look at
A few issues:
- You'll need to add the locations for the maps too; see location data on the wiki (and the 'simple location' example).
- You should ideally use unique names for mod assets added to the
Contentpipeline to avoid conflicts (e.g.Maps/{{ModId}}_GarageTiles). - I'm not sure what
Maps/Buildingsis, butPatchModedoesn't make sense for an"Action": "Load"patch and there's noPositionfield for any patch type. - In your
Data/Buildingspatch: theBuildPricefield should beBuildCost; theindoor+tilesheets+tilesheetIndexfields don't exist; andmaterialsshould beBuildMaterialsand use a different format. See buildings on the wiki, and I don't recommend using AI to generate mod code (it's usually wrong).
Data/mail.json. The key is robinResource.
Beauty, thanks
would this be how you would say in the manifest "you need Content Patcher and Machine Terrain Framework for this to work":
{
"Name": "Bat Boxes",
"Author": "fdoom6",
"Version": "1.0.0",
"Description": "Adds a craftable bat box that attracts bats.",
"UniqueID": "fdoom6.BatBoxes",
"EntryDll": "BatBoxes.dll",
"MinimumApiVersion": "3.0.0",
"UpdateKeys": [],
"Dependencies": [
{
"UniqueID": "Pathoschild.ContentPatcher",
"IsRequired": true
},
{
"UniqueID": "selph.CustomTapperFramework",
"IsRequired": true
}
]
}
I was copying the manifest from Cornucopia that looks like this, asking in case I misinterpreted something:
{
"Name": "Cornucopia - Artisan Machines",
"Author": "Cornucopia",
"Description": "An additional Artisan Goods and Machines mod for Stardew Valley 1.6 Content Patcher",
"Version": "1.0.9",
"MinimumApiVersion": "4.0.0",
"UniqueID": "Cornucopia.ArtisanMachines",
"UpdateKeys": ["Nexus: 24842"],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
},
"Dependencies": [
{
"UniqueID": "selph.ExtraMachineConfig",
"IsRequired": true
},
{
"UniqueID": "Cornucopia.MoreCrops",
"IsRequired": false
},
{
"UniqueID": "Cornucopia.MoreFlowers",
"IsRequired": false
}
]
}
So the type of content pack you are making is content parcher
Which is what cornucopia put in the contentpackfor section
And then, machine terrain framework adds more features, which is akin to extra machine configs in cornucopia
So it goes in the dependencies section
ok, so, like, that's assumed then, don't need it? Should I still call out machine terrain?
You cannot have a mod with both content pack for and entry dll
If you have both you basically just make 2 mods with separate manifests that you ship as 1 thing
Ya.....I see that, and honestly I managed to make it work on my own game like that, thinking of ways to fuse them that won't break stuff (don't worry all reference to JSON assets are gone lol), you may have seen earlier, it's mostly appearing now, having both isn't technically breaking anything, but I can see why 2 in 1 is not the best
I think I'll try moving the ContentPack folder out of the mod folder and adding data from it to my main one to see how it goes, if it messes up I can always put that guy back in
i want to add a buff to an item (and not a bug like initially written)
"Lumisteria.MtVapius_ArtisanGoods_RosemaryTea": {
"Name": "Myriadin Tea",
"DisplayName": "{{i18n: MtVapiusRosemaryTea_Translated}}",
"Description": "{{i18n: MtVapiusRosemaryTea_Description_Translated}}",
"Edibility": "15",
"Type": "Basic",
"Category": -26,
"Price": 164,
"Texture": "Mods\\Lumisteria.MtVapius\\ArtisanGoods",
"SpriteIndex": 8,
"ContextTags": [
"mt_vapius",
"color_green",
],
"IsDrink": true,
"Buffs": [
{
"Duration": 500,
"CustomAttributes": {
"FarmingLevel": 0,
"FishingLevel": 0,
"MiningLevel": 0,
"LuckLevel": 1,
"ForagingLevel": 0,
"MaxStamina": 0,
"MagneticRadius": 0,
"Speed": 0,
"Defense": 0,
"Attack": 0,
"Immunity": 2.0,
},
"CustomFields": {}
},
],
},```
Wiki says that "immunity" is a valid field but only the luck is displayed. Any workaround/solution/change?
the unpacked data/objects list this field, but maybe i need to make like a buff in data/buffs or whatever and then call this one?
the new attributes added in 1.6.9 don't show icons sadly
you'd need data/buffs yeah
ok
and then how do i "call" it?
because maybe i can see about calling an existing immunity buff or something
thanks đ
@ivory plume idk if you've been informed already and I keep forgetting to mention but the smapi log parser website has been having some parsing issues recently to do with mod names and error messages, I've seen this a few times now on several different logs from different people
Do you have an example log? I'm mainly working on the base-game event changes for a bit, but I can take a look once I'm done with those.
Hey all, working on a 14heart event... is it not possible to have events on Ginger Island? I'm trying to start on Island_W but the game is telling me the event doesn't exist
if there's no event here invanilla
you need to load an event file
(put a priority that isn't preventing other mods to do the same)
then edit it
"Buffs": [
{
"Duration": 500,
"CustomAttributes": {
"FarmingLevel": 0,
"FishingLevel": 0,
"MiningLevel": 0,
"LuckLevel": 1,
"ForagingLevel": 0,
"MaxStamina": 0,
"MagneticRadius": 0,
"Speed": 0,
"Defense": 0,
"Attack": 0,
"Immunity": 2.0,
},
"CustomFields": {}
},
{
"BuffId": "Lumisteria.MtVapius_ImmunitySmall",
"Duration": 500,
"CustomFields": {}
},
],```
My current attempt, but i still don't have any immunity buff listed
I see, thank you
"Changes": [
//Buffs entries
{
"LogName": "Buffs Data",
"Action": "EditData",
"Target": "Data/Buffs",
"Entries": {
"Lumisteria.MtVapius_ImmunitySmall": {
"DisplayName": "Immunity",
"IsDebuff": false,
"GlowColor": "#7F22007F",
"Duration": 300,
"MaxDuration": -1,
"IconTexture": "TileSheets\\BuffsIcons",
"IconSpriteIndex": 21,
"Effects": {
"CombatLevel": 0.0,
"FarmingLevel": 0.0,
"FishingLevel": 0.0,
"MiningLevel": 0.0,
"LuckLevel": 0.0,
"ForagingLevel": 0.0,
"MaxStamina": 0.0,
"MagneticRadius": 0.0,
"Speed": 0.0,
"Defense": 0.0,
"Attack": 0.0,
"AttackMultiplier": 0.0,
"Immunity": 2.0,
"KnockbackMultiplier": 0.0,
"WeaponSpeedMultiplier": 0.0,
"CriticalChanceMultiplier": 0.0,
"CriticalPowerMultiplier": 0.0,
"WeaponPrecisionMultiplier": 0.0
},
"ActionsOnApply": null,
"CustomFields": null
},
}
},
]
}```
my buff entry
feel free to ping me with suggestion of fix
I think you'd need to indicate it in the description
in what sense? adding a description field?
yes
hmm, it's listed as optional but i can always see
it shows some text before the buff effects, most of the time for flavor
nope, maybe i need an explicit id for both buffs
yeah the icon isn't showing, i tried changing the order of patches and it's the same (added explicit ids too)
well i will drop that for now and see later
(but again feel free to ping/require additional data)
What if u give it another field like speed does that make it work
Also worth trying debug action AddBuff <the buff id>
let's buff the buff and try
still no buff on the tea. Using command briefly shows a buff that quickly disappears
Hm, might the duration be too short? The wiki does say its in milliseconds (so rn it would be 0.3 seconds)
there's a different scale between buff and food buff, but i feel it should still be listed in the food and appears briefly?
I guess it's 2 issues
I mean in reference to what happened when you used the command, not sure how it might be different when as a food buff with a different duration
yeah duration short is fixed now
it's just that i set a duration using the food buff duration in buff duration not being aware they were different
now, no idea why my tea isn't properly calling the buff
and my buff when used by action is only showing the speed buff but this may be because immunity is special
but then the big question would be "how do i know i'm indeed changing the value properly" (aka "does the field do anything?)
still i don't get why the buff isn't buffing, am i at wrong level or something?
Not sure if this would be right but maybe there needs to be an ID for both entries in Buffs?
i tried that but didn't put updated data
"Buffs": [
{
"ID": "Lumisteria.MtVapius_RosemaryTeaImmunitySmall",
"BuffId": "Lumisteria.MtVapius_ImmunitySmall",
"Duration": 500,
"CustomFields": {}
},
/*{
"ID": "Lumisteria.MtVapius_RosemaryTeaLuckSmall",
"Duration": 500,
"CustomAttributes": {
"FarmingLevel": 0,
"FishingLevel": 0,
"MiningLevel": 0,
"LuckLevel": 1,
"ForagingLevel": 0,
"MaxStamina": 0,
"MagneticRadius": 0,
"Speed": 0,
"Defense": 0,
"Attack": 0,
"Immunity": 2.0,
},
"CustomFields": {}
},*/
],```
Current version (with second buff commented)
currently in this version no buff is showing at all
does someone know of a food using a custom buff? i wonder if it's some limitation/case that wasn't tested
in which case it may worth pinging pathos to check?
thanks for the info, and also I have a direct message regarding to what I'm doing
hm i will try this n maybe report with min repro
thanks, let me know if you do manage to do it so i can compare and see
(also i hate minimal repro so yay i admire you for the will to make one and am grateful for sparing me this)
is it the raw buff or food one?
this is a Data/Buffs buf
i do see CustomAttributes having immunity tho, gonna try that in the proper repro pack
so i think the effect is successful, but theres no + immunity draw in the tooltip
this one is with food buff
ok
so it is applied but invisible?
which can be i suppose conveyed by a custom buff that will have a tooltip like "gives some immunity"?
Check the squid ink
"28": { "DisplayName": "[LocalizedText Strings\\StringsFromCSFiles:Buff_Ravioli_Title]", "Description": "[LocalizedText Strings\\StringsFromCSFiles:Buff_Ravioli_Description]", "IsDebuff": false, "GlowColor": null, "Duration": 180000, "MaxDuration": -1, "IconTexture": "TileSheets\\BuffsIcons", "IconSpriteIndex": 28, "Effects": null, "ActionsOnApply": null, "CustomFields": null },
that helps me not that much đ
Squid Ink Ravioli Buff.png Squid Ink Ravioli Buff You are immune to debuffs Consuming Squid Ink Ravioli
Chu this one
i'm not surprised
so yea lumi just put desc i guess
ok so my next question is : i can either apply the buff directly to food (but it will not show because there's no tooltip) or have a custom buff with a tooltip
BUT
currently one of my issue is : custom buff (in buff data) exists
but food doesn't want to use it
is this correct?
how do i force food to behave?
hm that one i got it to work psure 
ok do you have the format? mine may be not correct
i would say you have either all or true
but maybe not all nospawn true
interesting its not overwriting 
(?)
when i ate apple with this buff and then eat spicy eel they seem to keep both buff
weird
i will copy paste some stuff and test
maybe because in the first case it does add a buff by its id and then doesn't change the food one because it's basically "empty"
displayname is ignored tho
yea it looks like the food/drink thing is special for food
or rather, for buffs without a BuffId
i still can't manage to have a buff displayed
"Lumisteria.MtVapius_ArtisanGoods_RosemaryTea": {
"Name": "Myriadin Tea",
"DisplayName": "{{i18n: MtVapiusRosemaryTea_Translated}}",
"Description": "{{i18n: MtVapiusRosemaryTea_Description_Translated}}",
"Edibility": "15",
"Type": "Basic",
"Category": -26,
"Price": 164,
"Texture": "Mods\\Lumisteria.MtVapius\\ArtisanGoods",
"SpriteIndex": 8,
"ContextTags": [
"mt_vapius",
"color_green",
],
"IsDrink": true,
"Buffs": [
{
"Id": "Drink",
"BuffId": "Lumisteria.MtVapius_ImmunitySmall"
},
],
},```
i feel i'm playing a game "spot the differences" and failing at it
can u send Lumisteria.MtVapius_ImmunitySmall
"Changes": [
//Buffs entries
{
"LogName": "Buffs Data",
"Action": "EditData",
"Target": "Data/Buffs",
"Entries": {
"Lumisteria.MtVapius_ImmunitySmall": {
"DisplayName": "Immunity +2",
"Duration": 10000,
"IconTexture": "TileSheets/BuffsIcons",
"IconSpriteIndex": 21,
"Effects": {
"Immunity": 2
}
},
}
},
]
}```
the buff when added with debug action AddBuff Lumisteria.MtVapius_ImmunitySmall
(so it's not the classic "oh i forgot to include the file")
when i tried i had at least the time
yeah that is what puzzle me
you had a secondary buff, right?
maybe i need to try that
no i didnt
me earlier : "hey it'll be fun to have a non classic stat buff like immunity"
me now : (regret)
ok this is the patch export
"Lumisteria.MtVapius_ArtisanGoods_RosemaryTea": { "Name": "Myriadin Tea", "DisplayName": "Rosemary Tea", "Description": "It increase resistance to debuffs.", "Type": "Basic", "Category": -26, "Price": 164, "Texture": "Mods\\Lumisteria.MtVapius\\ArtisanGoods", "SpriteIndex": 8, "ColorOverlayFromNextIndex": false, "Edibility": 15, "IsDrink": true, "Buffs": [ { "Id": "Drink", "BuffId": "Lumisteria.MtVapius_ImmunitySmall", "IconTexture": null, "IconSpriteIndex": 0, "Duration": 0, "IsDebuff": false, "GlowColor": null, "CustomAttributes": null, "CustomFields": null } ], "GeodeDropsDefaultItems": false, "GeodeDrops": null, "ArtifactSpotChances": null, "CanBeGivenAsGift": true, "CanBeTrashed": true, "ExcludeFromFishingCollection": false, "ExcludeFromShippingCollection": false, "ExcludeFromRandomSale": false, "ContextTags": [ "mt_vapius", "color_green" ], "CustomFields": null },
let me try something silly
ok so i tried making it food but no change
(rather than drink)
i may have some mod interaction because i don't see why you have something so wildly different than me
i only have 3 mods installed
content patcher the test pack and console commands
gonna test with my typical setup now
meanwhile i am doing a limited group to see if that changes anything
Myriadin Tea already exists right
yes
ok there is a mod interaction somewhere because i DO get my buff applied (with still the limitation of invisible datas) in limited set up

the importants of min repro 
i didn't expect something weird to interact
if u 5050 it out im curious what it was
the base game features are weird too, this doesn't help đ
it's apparently not spacecore/ie/ftm/esca modding plugin
i would look at mods that deal with tooltip somehow
informant uiis2
but if u never even get the buff hrm
this one i don't have
@ivory plume what are the chances vanilla get more of these for the newer buff attributes
(setting things up to try a 50/50)
(also appreciate the time you put in this)
ok it's apparently VPP which makes sense since it's likely editing several buff related things
where are the item IDs at? can't find it on the wiki
https://mateusaquino.github.io/stardewids/ this tool helps if you are wanting to quick look up vanilla item ids
!itemid
...okay, I'm a little stumped on this. I'm trying to do compat with Romantic 10 Heart Elliott. Their mod has mine as a false dependency.
Expected actions:
- vanilla event is nulled (R10)
- their version is patched in (R10)
- I edit their version with a Late priority patch (RWE)
What has actually happened:
- original event is not nulled and is my version (RWE)
- SMAPI has yellow about not being able to patch the R10 event because it does not exist
- R10 event (or at least, one version of it) is in patch export
- Both events run when debug ebi is done
It seems like my edits are happening after theirs, even though they have a false dependency on mine. Does false dependency, uh, no longer affect load order or something?
Is there any way to make it dark during an event without loading in a temporary map without ambient lighting? I want light sources to still work but the room to otherwise be dark?
Trying to get the effect of a power outage, with a lantern on a table
There's an event command for ambient light, though I think it'll affect lighting sources in the room as well since it pretty much acts like a filter.
I think that just does color, but I'll try it
it does, but you can keep the hues the same (lower) value to get darker
The second union event in Jorts and Jean uses this (not that I recommend using those events as an easy example of anything
)
false dependancy should still affect priority but my understanding is that priority in patches were added because it's not always the most reliable solution? However i don't get, what exactly is your edits happening after their? another set of edit?
because you do want some of your edit to happen after their
so i guess it's not the fact that it's happening but rather that it's happening on everything rather than just what you want?
I'm not really sure WHAT it's doing since if my mod was going first, the vanilla event should be null, but if their mod was going first, I should be able to patch their event.

imma cry.. that did it