#making-mods-general
1 messages · Page 601 of 1
can you share the .json
that would do it yeah
once again you don't move them to the exact coordinates, you move them in directions
you must always have a 0 in either the x or the y
I'm working on a mod that is basically a fantasy theme alternate start, so the Farm no longer connects to pelican town and needs its own map
I'm having the darnedest time figuring out how to change a locations map, I added a new location context map property to my farm map, registered that location context in content.json. and edited worldmap for that location/contextid but it still shows the valley map on my farm 🫠
any worldmap experts know what i might be missing? Smapi log seems to indicate everything is loaded it just doesnt show up when I open the minimap
As an addendum: Moving up and left would be negative numbers in y and x, whereas moving down and right would be positive numbers in y and x
So moving 2 tiles up would be 0 -2
so if i made vincent walk 15 tiles to the left it would be move Vincent -15 0 3
...okay so vincent moved but manny didnt
is it because hes on a tile which contains TileData?
actually nvm those dont have colission
not certain if this has an impact on events but you have a space before move {{ModId}}_SpeedyManny could you remove that
i did
did the sound play?
yeah the sound played
no idea what THAT error log is though
everything plays out fine except that command
doesnt true continue dialogue instead of command
no you set the continue to either true or false i believe
yeah but very good to know
vincent moved properly before and stopped, like when i had the continue thing
now he completely phased through Manny and went farther for some reason
offscreen
but manny moved properly
can you try move {{ModId}}_SpeedyManny 0 7 2 Vincent -15 0 3 in the same command
wouldnt that defeat the whole purpose of true
yeah but you'd probably want a pause after their move anyway
i also gotta make manny move slower because he has WAY less tiles before Vincent
but the lowest is 2
try it out and see
sadly that's gonna be the case for events, it is a lot of trial and error
yeah, no, he takes WAY too long to notice Manny is there
gonna make it something like -7 instead to match when manny reaches that tile
You could also try making Manny move slower? So Vincent can get further before Manny is reasonably in view
i did
2
didnt do much
also manny is slightly offset for some reason...?
his feet dont match up as the same pixel as vincents
I've seen that in my own events, tbh not too sure how to fix it.
But on another note, you could possibly have Manny start "inside" Marnie's (since that seems to be where he's coming from?) And have him come out after Vincent has already walked a few tiles?
glad to see they are moving, i gotta go and sleep cause it is 2:35 lol, so gn 
nite nite
possibly, but ill just make Vincent move less tiles so that they match up instantly
thanks a bunch for your help duck!!! :3
Would it be okay if i sent my content.json here to try troubleshooting? I'm feeling a little dumb because its been like an hour and i still cant figure it out
Sure!
"
The error code is "Technical details: After parsing a value an unexpected character was encountered: ". Path 'Changes[1].Target', line 13, position 3."
i feel like its going to be something simple but i cant figure it out
You're forgetting commas in IcedCoffee
Thank you
And after EditData
Basically, when in doubt, add a comma 😅
I also don't think the target for the first "EditData" should be CookingRecipes, but I'm blanking on what it should be off the top of my head
Data/Objects, i dont know why i put cooking recipes there actually
now i gotta add an animation....
is adding an animation to events the same thing as animationdescriptions?
It loaded oh my gosh thank you
No problem! We've all been there 😅
Just a heads up, edibility is misspelled 
thank you! i just got it and it had 0 edibility stuff so was about to double check it 
It works! : D and I was able to but the recipe at the saloon and cook it too!
Going to try to make it give a speed buff now 
question, when editing dialogue (marriage or regular) is it always required to load in a blank?
If the asset name doesn't already exist, yes
huh...
is it because E is capitalized
oh yeah that was it
it needs stardewUI and that is not updated
damn
What
StardewUI is made for 1.6 wdym not updated
that's what soundboard asks for, and it's like a month old, so that probably shouldn't be the case
That's also updated (i updated it)
I am officially done creating recipes! 
Not done with them themselves, but the coming up with ideas and putting together the ingredients they need is done! just need to set a few prices and edibility values, create the last of the sprites, and then go through and give buff effects to a lot of the foods, and I'm finally done with my original goal for this update!
ok i think im happy with how it turned out
oh thats adorable
Alo, for some reason my MarriageDialogue is not applying despite the conditions being met, theres no error in the smapi and no "conditions don't match" not sure what is going on here.
(It worked before but I flew to close to the sun by playing around with stuff and I can't go back)
https://smapi.io/json/none/28e785a46c26446ea9bcc904801479ab
https://smapi.io/log/682335c8daa4464e93517654c8e115f9
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 21 C# mods and 4 content packs.
Probably scrapping the idea of an mcq prompt from an object for the standalone cutscene mod. My current idea is to add a shop tab to the library interaction w/ Gunther where you can buy dime novels that serve as initializing items using SpaceCore_PlayEvent. Does anyone see any initial problems with this / have any tips for making shop tabs?
Are you sure they used dialogue from an unedited, character-specific marriage asset? MarriageDialogue assets don't load until they're used, so edits don't apply until then, and the summary will say [x] conditions [ ] applied like that.
Aside from that, it looks like they were loaded earlier due to Event Lookup, and Free Love's token might not be ready that early. It's possible that interferes with patch, though it seems unlikely.
(PS there's an extra 1 at the end of your first link, in case anybody else needs to take a look)
oopsie thanks changed the link, just tested in the game to get the specific dialogue lines and it's not changing any of them
Are all fields in Data/Objects permanently saved to an object's info? I've found that I can't retrospectively change the Texture of objects already created, and I wonder if it's true for other things. If I change context tags for example, will they be updated for objects already in inventory?
The only place I've found reference to this in the modding wiki is for ObjectDisplayName in Item spawn fields.
Generally they are permanently cached on the item yes
That's why the first troubleshooting step with items is telling people to trash it and spawn a new one
I see. I feel like that would be really good information to put on the Modding:Objects page.
Actually, the color context tags and Description seem to be updating for old items.
Do you have a story arc for the character?
Also i have a planned out way of doing events:
-Even numbers events (2,4,6,8,10) will have Manny interact with the townsfolk so that he can feel more welcome (This can either omit the farmer or include it for a choice)
-Odd number events (1,3,5,7,9) will have Manny interact with the farmer directly and usually give them a choice question, they will be more related to the characters lore, or can have something funny
Not really, his origin is from the Arctic but that's about it
Maybe think about what some of his challenges might be, and how he might develop and overcome them, over time, and perhaps with the farmer's input
hmmmm
Like in the event I saw with Vincent - have you explored the challenges of being a "wild animal", gaining the trust of Marnie and the village?
To be completely fair, SVE has a wild bear just randomly EXIT through Marnie's ranch with no explanation whatsoever
so it's not like everyone needs to gain trust
No of course not, it can be a choice to have him just there and accepted
It was just an example of something that could be explored deeper
If he's from the Arctic - what made him leave there? Are there any difficulties adapting to a warmer climate?
Maybe one of the NPCs can be harsher towards Manny, saying he doesn't belong here, but maybe that's too much
Oh yeah Summer is HELL for him
he only wears a tanktop, shorts, and slappers
for that reason
it's shown in his Summer dialogue
Perhaps some storyline that, over a few events, he's able to get AC installed in his house, or some such thing
That would only affect his house, he would still burn outside
What I'm suggesting is to come up with a 'problem', and then have the story work to find a 'solution'.
Yeah, that makes sense
The problem needs to be clear from the middle point of the story, but not sure what it could be
Perhaps he develops a friendship with the wizard who in the end makes him some special magic sunscreen that gives him an aura of cool.
That can occur over a few events
But I'd have that at maybe like 8 hearts, because that would solve it
Or, maybe have it to where the Wizard is still trying to find a permanent variant of the sunscreen, and at 8 hearts he eventually finds it right before Manny collapses from the heat
You can show an event with him struggling with the problem, one meeting the wizard, one working on the problem with the wizard, one where he gets/shows the solution
Yeah, i can also do that
Obviously, doesn't have to be that many. And they can be small events.
Though, there's very small room for many events
Actually wait I'll just make multiple events for, let's say, 2 hearts
Easier that way
But it's nice to have a bit of continuity between events, and to see some character development.
Have to balance having too many events, some of the things could be shown by mentioning it in an event with someone else. Like "the wizard and I are working on a new formula".
ty i was trying to find how to do this, my shell history didnt have it from the last time
where's the rejection dialogue stored? I can't see these keys in the dialogue files
this.CurrentDialogue.Push(((!this.datable.Value) ? this.TryGetDialogue("RejectMermaidPendant_NotDatable") : null) ?? (isDivorced ? this.TryGetDialogue("RejectMermaidPendant_Divorced") : null) ?? (this.isMarriedOrEngaged() ? this.TryGetDialogue("RejectMermaidPendant_NpcWithSomeoneElse", this.getSpouse()?.Name) : null) ?? ((this.datable.Value && friendship != null && friendship.Points < 1500) ? this.TryGetDialogue("RejectMermaidPendant_Under8Hearts") : null) ?? this.TryGetDialogue("RejectMermaidPendant") ?? new Dialogue(this, "Strings\\StringsFromCSFiles:NPC.cs." + ((this.Gender == Gender.Female) ? "3970" : "3971")));

What, already?
its the vscode extension
and updating it didnt help intellisense work so i just have no completiton 😔
sadge
Hello people, is there a way to have a config option overwrite another option?
it works perfectly in rider without having to do anything!
I don't think you can make one change another option, but you can always set your When / Conditions to use them in ways that overwrite the other
For example, you can have an "enable mod" config required on all your patches, so even if the other config conditions are met, that must be on as well
do we have docs for the game's methods now or is rider generating those
The game comes with some XML docs
ooh fancy
Non exhaustive of course
mhm
Newer versions of the SDK should still work when targeting older versions in the csproj
.net6 has been eol since Nov 2024 so makes sense anyway
mhm
Though all the more reason to use my cursed smapi versions that run natively on .net10
is there a way to make vscode stop notifying me about trailing comas in json files? its yellow n annoying
!vscjsonc
In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add
"$schema": "https://smapi.io/schemas/content-patcher.json"
at the start of your content.json file.
mhm, jsonc is just comments, but if you add the schema, that specifies trailing comments are allowed so should work then?
how would i load in a string to a content file? load it with a blank.json and then editdata with fields: {"key": "value"}?
i mean from a content pack
oh i could just look at how an npc mod does it for dialogue
to write to a content file in a cp mod, for the c# mod to later read but i know how to do the reading part
yeah you load it if its your mod and other mods then edit it with editdata (dont need fields if its a normal key:value json)
mhm
that was surprisingly easy
yippee BarnGate™
you should know better than to suggest a domain around me
but i dont want to get that dw
Made that mistake once
which are you responsible for
sneeb
ahh
Although that’s a good one
Does the map action "MinecartTransport" add the location in question to the minecart network? And if not, how would one add a location to the possible minecart locations?
Also, how do you mark a map as a location you can place objects in without them disappearing and a location that is a valid cask location?
you have to editdata, and target "Data/Minecarts"
Gotcha. Thanks!
i believe for casks it is: CanCaskHere T²
😭how did i give myself two number columns
oh nvm i think thats normal for a split
oh yeah ofc lmao i ran nvim inside of an nvim split
do i have to do anything specific to make i18n work in a content pack or just put the things in i18n/default.json and use the tokens?
no that's how it's done
why?
oh jsut the way im doing thinsg with c#
hmm
the dialogue is a key instead of a text
im referncing it with
__instance.CurrentDialogue.Push(
new Dialogue(__instance,
string.IsNullOrEmpty(standard.RejectionDialogueKey)
? "Strings\\StringsFromCSFiles:NPC.cs.3972"
: standard.RejectionDialogueKey)
);
so in the content.json it's just "RejectionDialogueKey": "Mods\\{{ModID}}\\dialogue:reject", which is then "reject": "Your barn is not up to my standards, @!"}
so since its not the c# mod's translations it wouldnt be able to get them
can't you put the "reject": "Your barn is not up to my standards, @!" in an i18n folder?
Yes
Is this the "Making Mods" channel we're supposed to use to ask for the Mod Author role as per the GitHub instructions?
And if so, may have that role pls?
im not referencing it anywhere then though, right?
oh nvm i get what you mean
mods/{{modid}}/dialog would just be changed based on the i18n
You'd do {{i18n:reject}}
In C# you'd do ModHelper.Translation.Get("rejection")
I believe
yes but the c# mod would be looking at it's i18n folder, no?
It would
so it'd be referencing different text to the content pack
I think you need to dm the bouncer
@outer glacier Can I have the mod author role pls?
Does anyone know of a way to revert the 1.4 change that makes it impossible to plant trees on grass outside the farm?
I looked back on when I asked, and I was told to dm the bouncer
I was given the rest of the instructions after that
in the staff and bots section, you can tap the bouncer to send a dm
Wrong ping iro I think
Hi! Can you add yourself to this page if you haven't already?
Let's all collectively blame discord
Sure, how do I do that?
Is there a way to get a list of items like you can with Utility.getAllCharacters()? I've been trying to find it for hours 💀
edit the page and add a new row
Create an account on the wiki, then edit the page, there are instructions on what to add
You will need to edit the page and add your name in the correct place alphabetically.
I don't see an option to edit the page though
It's at the very top of the page once you're logged in
are you logged in?
It'd help if I had an account I guess 😅
I'll make an account as soon as I'm finished creating this i18n file
I discovered I could put ® in my strings and I went a little crazy.
Hello There ♡
I hope I'm right here :3
Atm I'm facing troubles with creating AT textures.
I'm Trying HD - Modding and tried upscaling things equally ...
The good Part: My AT Mod pack does exist in-game, Smapi doesn't show any error code...
The Bad Part:
In-game the texture uploaded is invisible. I can grab the decorative part and I can interact with it but it's simply invisible.
Im a raw beginner and have no Idea what the huuuh I'm doing wrong so if anyone would like to help me and maybe even guide me through the process I would be super happy and grateful 🙏🏻
Huh. Maybe I should be added there 
I don't know exactly where I stand cuz I have had a mod uploaded for 2 years now, but what I'm working on now is an update to in my eyes actually complete said mod 
As long as you've published a mod, you're eligible
Whether you want the role now or later is up to you
I've finished creating i18n entries for 13 different books, now its time to add myself to the wiki!
Have you tested to see if it works with a vanilla-sized texture? That way you could confirm that the AT part was working right. Unfortunately I don't know anything about HD scaling. I didn't know AT could do that.
Yea that's definitely what I'm caught up on. The blue name is really nice but so is the orange name 
-# Also I guess I'm just diminishing the work I put in 2 years ago by considering that incomplete
(even though it literally was)
Anyone knows how to draw on the Paths tile layer using C#?
So according to the source I trusted, stardew automatically compresses the scale 🥲
If the scale is like is the OG size things seem to load correctly... so there's no issue with the folders or json I guess... exept I maybe do the scaling wrong OR it's not even possible to do HD-Modding and the source was incorrect 🤔
I came up with this Idea by seeing some really beautiful AT textures with plenty of details that are Impossible to create with the original scale.
Are the other AT textures you've seen using HD? And if so, are those working for you?
I've added my info to the wiki
Step 1 of my c# only mod - create a GMCM menu: Check
Well my mod took me a lot longer than I anticipated for such a simple thing (trial and error in testing alternate ways of doing things, plus being extra on options). But I've finished it! Tomorrow I'll do the nexus page.
How do you load textures in C#?
So I currently have the following, but am getting the error "assets/books.png for item ... does not exist" (I renamed the Assets folder to "assets")
you need to load your png into an asset first before you can use that asset name in the Texture field
I'm calling this BookTextures = ModEntry.StaticHelper.ModContent.Load<Texture2D>(BookAssetPath); earlier in the code. Is that not how you load the png?
show your full code?
Sure, give me a sec
AssetManager.cs:
internal static class AssetManager
{
public const string BookAssetPath = $"assets/books.png";
public static Texture2D BookTextures = null!;
private static ITranslationHelper Translation = ModEntry.StaticHelper.Translation;
public static void Register()
{
BookTextures = ModEntry.StaticHelper.ModContent.Load<Texture2D>(BookAssetPath);
ModEntry.StaticHelper.Events.Content.AssetRequested += OnAssetRequested;
}
public static void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
IAssetName name = e.NameWithoutLocale;
if (name.IsEquivalentTo("Data/Objects"))
{
e.Edit(EditObject);
}
}
private static void EditObject(IAssetData asset)
{
IDictionary<string, ObjectData> data = asset.AsDictionary<string, ObjectData>().Data;
List<string> contextTags = new List<string>();
contextTags.Add("book_item");
if (ModEntry.Config.EnableAncientFruit)
{
Dictionary<string, string> customFields = new Dictionary<string, string>();
customFields["Spiderbuttons.SpecialPowerUtilities/Books/Messages"] = Translation.Get("AncientFruit.Book.Message");
data[$"{ModEntry.ModId}_Book_AncientFruit"] = new ObjectData()
{
Name = $"{ModEntry.ModId}_Book_AncientFruit",
DisplayName = Translation.Get("AncientFruit.Book.Name"),
Description = Translation.Get("AncientFruit.Book.Description"),
// Type: "asdf"?
Category = -102,
Price = Costs.AncientFruitBookCost(),
Texture = BookAssetPath,
SpriteIndex = 0,
ContextTags = contextTags,
CustomFields = customFields,
};
}
}
}
so what you did was load a texture into a Texture2D object
not a game asset with a name
Dammit
And that would work despite me not actually replacing a file?
that example code loads a png into Portraits/Abigail, which allows you to use Portraits/Abigail in places that ask for an asset name
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Add_a_new_asset (Providing a new asset is exactly like replacing an existing one)
Gotcha. I was under the impression that that would only work with already existing assets.
you remember how in your CP mod you need to Load your textures into a name? you're doing the same thing here
-# that's why you read the whole page
-# ngl I think we should move that section up
Yeah. I figured that was what I was doing wrong
I'm still getting errors, but I have to go. I'll keep chipping away at it later.
Please don't add yourself there without asking for the role here first - the two are linked 
@barren tapir congrats on cheetohood! 
Dw, I wasn't gonna! That's why I I posted that message to let you know I was considering it!
Congrats Nullnnow 
Also yeah congrats Nullnnow! 
Congrats Nullnnow!
Gosh dang it I've been scooped. ignoring the fact that it doesn't look like a mod and/or has full gameplay https://www.reddit.com/r/StardewValley/comments/1t2e3aj/spent_way_too_much_time_envisioning_3d_stardew/
(For reference, I've been working on a mod for months: https://cdn.discordapp.com/attachments/1414326612215992446/1487883860443140368/StardewModdingAPI_Oa4DGCQUvg.mp4?ex=69f83f13&is=69f6ed93&hm=2c9540792338729ad093d6c605f436a79b340d3af8649ce1945052555366968e& )
your making mods general notifications!!
Oh gosh the BEDS. 😂
they were already gone, I accidentally cleared them already somehow
I'll just have to remember to search for mentions:kittycatcasey in:#making-mods-general at some point soon
Incredible work as always of course, it just looks a bit funny for some textures which is a given when trying to port 2D into 3D.
That's how you know they'll give you a good nights rest
Yeah, there's a system in place for replacing the model of just about anything. The always-facing-you sprites is just the placeholder when there is no model
The budget TV has an untextured model for example. Let me see if I can find it
or I guess make a new recording of it
Oh interesting!
oh wait I broke it somehow
apparently
invisible budget tv ooooo
...oh there's a lot more than that broken
what did you do, casey of last time?
eh it happens. I am updating my Patcher mods and I broke them like 10 times because I mistyped a number even though I know I should doublecheck everything. 😂
Anyway, I wanted to ask you wonderful coding experts, if I want a token to NOT activate in multiple locations, is there a way to do it in a single line? I have "LocationName |contains=IslandWest": falsebut I want to add the other 3 zones (South, East, North) without making that line for each of them? Can't quite find it in the docs (English is hard)
Oh nevermind I just needed to rebuild the mod's source since the fix was hotreloaded last time
So cool!
Hey wssp guys
Oh my goodness that's so cool!
you can just ask your question, someone who knows will help you, just be a bit patient
If it's a request to make a mod we don't really take them here
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
stardew 3D???
yes just beecause a few hundred thousand people are in a server (and far less in the making mods channel) doesnt mean they will reply to you instantly
No one, probably

So I see this is what Casey's been doing lately 
for way too long, yes
and probably much longer
there's still so much to do
Oh !I want to be a good and big youtuber to overcome dreams so I need a big n good youtuber to guide me plz
Sorry this is sudden, Is there any chance I could tell you about a few issues I believe I found with SpaceCore's Health and Stamina regeneration buffs?
We make stardew mods here, not guides on how to be a youtuber
I know but I thousands of People's might be there successful peoples
Not really
just because a server has thousands of people doesnt mean that all of them are in one channel at one time
I submitted the issues on GitHub 3 weeks ago, so I at least wanted to let you know they're there, I can see you've been very busy though^^
We can help if you're interested in making stardew mods, but outside of that, you're not going to have any luck
Oh, was one of the pings I got here about that? I did see the github PR
You are asking in the channel for making stardew mods, after all.
So this is sorta what we do lol
Alr got it.
Uhh I never sent a ping about it actually, I kinda held out that it would be seen on GitHub lol
Ah
Well, I did see it
It sounds good, haven't looked at the code yet but it's probably fine
What are Stardew mode btw?
Wait- No it wasn't a pull request-
Oh wow, you're on 6480's commission sheet! i just noticed 
mods.. for stardew
I didn't understand what "PR" was 
Oh.
Well I did see it and am aware 😛
Have you ever modded a game before?
super cool, i wish to be like 6480 one day in terms of quality 
No
I have some controller navigation fixes that are half done that I need to finish up before a new release happens. Once that is done, I'll be going through the outstanding issues before I push a release (suchas the one you posted)
6480 did my current avatar!
Originally for a mod. But now that stardew3d has taken over my brain, who knows when I'll get back to that one
their pixel art quality is insanely accurate
Alrighty! 
I believe I can work around the issues for now, but I figure my workarounds are gonna break once the issues are actually fixed 
I think the ping was from me
I have to say I have the best timing, I was here for a coding question and it was rightfully eclipsed by Spacey's WIP. 😂 Let me try again, can I use "LocationName |contains=IslandWest": false but multiple locations without repeating the whole thing (I want to include all external Island zones S-W-N-E)
Well, there were several different pings from other people too...
I know {{Query}} could do it. I don't know if there's an easier way ort not
yeah i meant to say one of them(im still new to github so i wasnt aware there was a report option there but didnt want to bother you on two platforms)
mine was about the spacecore spawneables, where i changed something in the spawngroup code and still had old spawned stuff on an existing save and it crashed the game
I'll look around some more in the docs, even if there isn't an easier way, thanks all the same!
Hmm. I know there's been some outstanding spawnable bugs, but I didn't realize there was a crash
How to do rain dialogue with content patcher? I'm a bit confused due to the rain dialogue being in a different file, so I assume I have to target and edit that one?
I must've missed that message since I was postponing getting back to my unread ones
so far it hasnt been too much of an issue for me at least since my mod is still in beta which is why i had just been waiting so i guess its good i happen to drop in here just this moment lol(for the future i now know that i can report on github)
there was also something selph had mentioned further down(not sure if youve scrolled that far or not, just in case i meant this #making-mods-general message)
You'd do:
"Action": "EditData",
"Target": "Characters/Dialogue/Rainy",
"Entries": {
"YourNPC": "{{i18n:YourNPC.Rainy}}"
}
With YourNPC.Rainy being an example of what you'd put in default.json, if you use i18n. Otherwise replace the {{i18n:YourNPC.Rainy}} part with the dialogue if you don't use i18n. (Though i18n is encouraged)
Does the Island context + outdoors work for you
The main issue is that I don't know how to write it out. Outdoors works great, it's for my fences overlays, just need the correct wording.
Thank you!
How do you check if a player has read a power book?
Is it a stat that is automatically incremented, and if so, which stat?
One sec, I used that stat for adding a custom power/trigger action. Let me look
Dope. Ty!
I this how you are supposed to change what is displayed when reading a book when you have SpecialPowerUtilities?
Thanks to your help I learned what words to look out for in the docs. I just needed that and the Merge token (that I'd been already using for my Foliage/flowers... facepalms) and in the end, "LocationContext |contains=Island": false, works in a pinch. Thanks again! 
Sorry! I'm running errands so you get me in tiny increments when I'm bored standing in line
Alright.. I think I've finished spriting all of my recipe items! All of the ones I felt like I needed to make at least
They're basically almost all done, I just need to add buffs to like.. half of them or something lol
I would double check the custom field key because I can't remember if it's singular or plural at the end there
I actually don't remember the docs for SPU like at all, so... 
It's fine, I'll check the docs later (I basically copy and pasted what you did with the CP more books mod for the message 😅)
(More Books is the name of the other one so I'm not just being pedantic I promise 😛)
I was surprised to get no errors when I loaded the game. Then I was REALLY surprised to not find any of the new items in the game.
I forgot to actually copy and paste the mod into the game's Mod Folder 
Ahh, there's what I was expecting
No, I know 😅
"ahh, theres the wall of errors i was hoping for. The world makes sense again"
BTW, can I just say, making a C# mod from scratch has been infinitely easier than converting a CP mod to C#.
omg who'd have guessed I forgot commas and had extra brackets 
reminds me of myself, made a contribution to a mod, started the game, did not find my changes, I forgot to build my local repo haha well then I could have waited for ages
Null is orange now congrats
Yep. I ate too many carrots
And now there's a tiny bus and a bunch of kids in my stomach. It's a real predicament
ayy and I only had a few errors with the recipes themselves, though that includes forgetting a whole darn set of i18n entries 
Dang now I'm left not knowing what to do despite having a literal list written down on things I need to do for the mod
The programmer mindset
I was wondering why all translation entries went away, turned out it could not load because I checked wrong for an empty string and then it of course failed, but appart from that there were no errors. So now I have to think what to do next, dive into apis to fix an issue that I don't even understand or contribute to something else haha
Stopped writing my list in favor of baklava 
Whelp, that didn't take long. I was curious what would happen if I set the reload rate to 0. Ended up dying due to explosive ammo
Whelp, time to figure out how to fertilize fruit trees
Hello 🖐️ I'm currently adding (and not replacing) dialogue for Linus. Let's say I want him to say his new line every friday during fall, but apparently in vanilla he has already these (highlighted in yellow). Does my line will replace that ?
those are said all Fridays/all Fridays when having 4 hearts
you can just add a fall_Fri key for the Fridays in fall, that should do the trick
You could also add it using the || characters
https://stardewvalleywiki.com/Modding:Dialogue#Special_tokens
oh these numbers are heart levels ? i didn't know thanks
yea
you can also do fall_Fri2 etc if you also wanna add specific heart level fall dialogue on Fridays
i think i'll do that since the new line is basically a tip for the farmer, 2 hearts seem fair for this
I think, some of them are, yes..
Creating COP models seem to be very difficult.
I've heard there was a program for AT and or COP in the past that basically helps you with the format etc... but it doesn't exist anymore 🙁
But if COP is the only option for HD-Modding I'm open for it x,x
I guess I just need to know where to start then
What is COP?
Content patcher
Oh, never seen anyone use that abbreviation for it
Whelp, time to see if the tree fertilizer book works
what are you making HD
How hard would it be in theory to make FS clothes go on mannequins?
Just wondering if it’s really difficult or something cause I saw there aren’t any
Am I completely off base for trying to use this to allow tree fertilizer to be placed on fruit trees?
private static void Object_placementAction_postfix(StardewValley.Object __instance, GameLocation location, int x, int y, Farmer who)
{
if (!ModEntry.Config.EnableTree || !Utils.PlayerHasBookPower(who, "Tree"))
{
return;
}
Vector2 placementTile = new Vector2(x / 64, y / 64);
TerrainFeature terrainFeature;
string id = __instance.QualifiedItemId;
if (id == "(O)805")
{
if(location.terrainFeatures.TryGetValue(placementTile, out terrainFeature) && terrainFeature is FruitTree tree)
{
var data = tree.GetData();
string key = $"{ModEntry.ModId}_fertilized";
string isFertilized = "false";
if (tree.modData.ContainsKey(key))
{
isFertilized = tree.modData[key];
}
//if (data?.CustomFields != null && data.CustomFields.TryGetValue($"{ModEntry.ModId}_fertilized", out string fertilized))
if (isFertilized == "false")
{
if (tree.growthStage.Value >= 5)
{
Game1.showRedMessageUsingLoadString("Strings\\StringsFromCSFiles:TreeFertilizer1");
location.playSound("cancel");
return;
}
if (isFertilized == "true")
{
Game1.showRedMessageUsingLoadString("Strings\\StringsFromCSFiles:TreeFertilizer2");
location.playSound("cancel");
return;
}
//data.CustomFields.Add($"{ModEntry.ModId}_fertilized", "true");
tree.modData[key] = "true";
location.playSound("dirtyHit");
return;
}
}
}
}
you're missing the return value to denote whether the item was used up, and also I think you need to patch a separate function for "can be placed here" check
Okay. I had a feeling there was another function I needed to patch (I'll look into it more after having dinner), I just wanted to make sure I wasn't massively over complicating things
Atm I'm trying decorating Items and later Furniture. I would like to create something more on the Whimsical/Antique vibe 🙂
yea u can use spacecore for that sort of thing
but before u HD anything, try making item and furniture exist first
not sure what program you're talking about, but VSCode + schema for CP/AT is very useful
you can try smithy to make Furniture
It exists and if it's the original scale it's no longer invisible. But I can't do any HD Texture on the original scale I simply haven't enough pixels to add details
here's example with spacecore
Alo I don't wanna be pushy but new day maybe new ideas? I ended up not figuring anything out last night, their marriage dialogue (Sam, Sebastian,and Abigail's) doesn't change or it takes from the defaults in "MarriageDialogue.json"
What's the name of your mod? I'm not seeing any of the logs you've added in the console
Is the json you provided your content.json file?
If so, you are missing a line
Give me a sec to find it
It should be
{
"Format": "2.9",
"Changes": [ ... ]
}
Finally, if it isn't your content.json file, you need to add the following to the content file:
{
"Action": "Include",
"FromFile": <Insert File Name Here>
}
I'm new to modding, and am making a very small mod for a school project. Can anyone tell me how to add a flower that can be foraged or picked up for a custom quest? I mean to a custom map in Tiled
like a dandelion or something
picked up for a custom quest is pretty straightforward! and custom map is doable as well although you could make it work any map
there's item delivery and item harvest, i'm not sure what specifically you need
my idea is a quest where you have to find and deliver a custom flower that can only be found in one specific area (the cave map i'm making)
im also using content patcher for this, so the quest has to be coded in that way
item delivery
although with how mad i am at this, i might just have it be a pre-existing flower and just have a player get it from a specific place
if u need help feel free to ask here, these are common things people create for their mods so a lot of ppl will be familiar and know how to do it
yeah i probably do
its my first time modding in general so
i just want to add a flower that can be foraged and such
tbh the map is hardest part
: (
adding a custom item is pretty straightforward and so is a quest
map has a few more steps
it's not TOO difficult but between the three, it's the hardest
Sliding in here once again because I need help, not getting an error buf my buff isnt working for some reason (I got it to work with a vanilla buff but the custom one wont work"
https://smapi.io/json/content-patcher/6222f798f64943c1bf5e981118add7ed
Its saying it has no duration, I think i got all the commas this time though
do you know which tileset the dandelion is a part of?
and cursors
not objects
mb
gotta find that to put in tiled now, yay /sar
it’s in Maps
interesting
although if you do that you don't really need the tilesheet since it won't be part of the map
you just
yeah you’ll have to spawn it somehow
use it in your quest
it's done w/ quest
iirc you set the object you want to deliver, with the coords you want it to be at
it's done in the quest
ok thanks
i’m pretty sure a quest like the berry basket or robin’s axe aren’t doable with just CP
They are, lost item quest.
its a lost item nic xd
oh i read wrong i thought you meant NOT specific coords
<x> and <y> are the X and Y tile coordinates to place the item at inside the given <Location>
is fairy in that night event uses the same texture that fairy box uses
So, the The schedule animation square_X_Y_Z bit, has anyone worked with it? I am getting trouble getting my NPC to do anything.
Here is the Schedule:
"Mon": "800 Custom_JunkBeach 47 78 1 square_5_5_2/1400 Custom_JunkBeach 45 75 1 square_19_6_2",
did u sleep a day
IRL or in game?
in game xd
tbh im gonna sleep irl so nighttt everyone
The NPC? no
sleep a day to test schedules
No, you need to sleep a day ingame for schedules to update
if ur testing a monday schedule use cjb to put the day to sunday and then sleep
Oh, sorry, I thought you meant did I make a sleeping animation for the NPC!
i mean u can also just sleep until the next monday if u dont have cjb xd
Yes, I slept a day... I believe. Does the area need to be clear of items?
this is unrelated to your problem but are you using CustomLocations
The location is added in C#
you should consider prefixing it with your mod id
but anyway square only takes two numbers
0800 Forest 79 74 3 square_8_4
The wiki said three? Did it change?
let me check
Emily in the Bar had three, I copied hers...
Maybe it likes a thing after the animation? Will try adding a thing,,,
oh hmm it does say it takes facing direction i wonder if that’s new
but i know two numbers works
do they go to both schedule points without you putting square in?
the third number is optional, fwiw; the game uses both versions, and it just sets a facing direction preference if it exists
(well the variable is named preference, but it happens whenever they stop moving, ig)
I'm going to assume it's for when they pause or something? because when waking in a square, I feel like you face many ways
yeah, if it's not provided they presumably just face whatever direction they were moving
I'm trying to get Tree Fertilzer to be placed on Fruit Trees. I've patched Object.canBePlacedHere so that the tile lights up green when hovering over the fruit tree with tree fertilizer.
Despite this, Object.placementAction is never called when trying to place fertilizer on the fruit tree.
This is despite the fact that placementAction is called when using the fertilizer on a wild sapling.
I want to make a seasonal portrait mod for a character, I have the images done but idk how to use them
Last edited by AirynS on 2025-10-23 07:04:19
If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference bet...
thank youuu
aaa sorry for late reply the json I provided was my "dialogue" file, I do have a content.json with the include/fromfile action
You may need to trace the logic involved more than this, but for one thing, Tree.performUseAction calls Object.canBePlacedHere and conditionally returns false. FruitTree.performUseAction is always true, so you might need to patch the same logic into that.
I CAN'T BELIEVE I FORGOT ABOUT PERFORM USE ACTION
5 harmony patches later, lets see if this finally begins using tree fertilizer (I know for a fact the growth logic won't actually work, rn I'm just trying to print things to the terminal)
so guys I have a quest, this barn is from the "jen's Mega Coop and Barn", I love this mod but its just too...clean, it doesn't have any detail inside, I want to edit and make it more pretty, how can I do it?
FINALLLY IT IS TAKING FERTILIZER!
This is by far the most harmony patches I've had to do for a single book 😅
Now it's time to actually try and add the logic that makes them grow faster.
hope u manage to do it <3
Thanks!
Hopefully this will only be the second most complicated power for me to add
-# I'm almost certain the book that let's you feed golden animal crackers to pigs will be more complicated
A sneak peek of the lighting overhaul mod I'm working on. It's getting closer to a point where I'm happy with it, still many more effects to add though
There's another lighting mod I've seen, but it doesn't get rid of the existing shadows and doesn't apply shadows to the objects off your farm. So it ends up looking all weird, this should be fully coherent across the whole game, and the sun and shadows are all dynamic
That looks really nice! I like that it works with map objects too, like the fences. How much is that hardcoded?
It's a sprite matching system, so it hooks in at the tile draw call level and identifies the indices there. So it should work out of the box with any kind of recoloring mods, new maps, etc. But any that add new content by editing the existing spritesheets or adding new sheets would not work.
I'll probably end up adding a system where other mod devs can supply a json in their mod folder that would give this lighting system all it needs. I've got a little dev tool that lets me open spritesheets and select things from there, set height/depth parameters, the lighting style, etc. so that would go open source too.
Oh wow, that sounds awesome
Thanks!
I'm not sure what the code looks like so I have no idea how doable it is, but I think the tree shadows in particular might look better skewed instead of rotated
Omggg yes please
I swear if it's gon be dynamic
Would you mind elaborating on that? the billboard projection is there to make the trees seem like 3d spherically symmetric objects, I think the skew projection would make them seem flat, no?
does this need content patcher? I cant figure out how to do the manifest right
I think I agree with the suggestion of skewing because without it it lacks the implied angle we're looking at the shadows from, rather than top down, if that makes sense?
Oh I see what you're going for! That makes sense. I was thinking the pine trees looked a bit odd but I think it's just because the vanilla sprites have those flat bottoms
A bit upsetting that it's pretty imposible to make it work with terrain due to how game handles it
100 😔
We just need someone not me to implement the depth buffer 😌
Hi mobile users
I have good news on the dynamic part... the plan is to have smooth updating throughout the day
Also, I will be making cliffs work. just haven't gotten there yet, it will be tricky
Just rewrite monogame 4head that could go wrong
I wonder if making a dynamic normal or height map would somehow do the trick
It is already a thing that exists, you would just need to... fix every single draw call in the game to account for it, I think
Not sure how it's gon work lol
Alas, the video doesn't work on mobile
Oh it's definitely just mobile being terrible
my plan is to just infer cliff height by trying to match bottom/top cliff tiles, not sure how fragile that will be, we will see... and then get direction and try to project the shape out
Good evening, guys! Could someone teach me how to add a mod to #mod-showcase ? If it's not too much trouble, of course. ^^💜
Also, some things in the vid are still weird, no bus shadow, fences shadowing each other. so that will all be fixed too. vid is still early dev
Someone can showcase it for you since you’re not a mod author yet
Hi! I wanna put my face on walkabouts but the site just shows how to pack and replace an xnb and not how to drop it in the mods folder. I also wanna just use one sprite instead of layering it.
Oh god I’m yap supreme again
You need the mod author role to showcase your own mods. As long as your mod does not break any rules, though, you can politely ask for another mod author to showcase your mod for you, though they are not obligated to since it is like a soft vouch for someone
(Notable rules being (but not limited to), do you have permission to publish whats in the mod, no AI, no nsfw)
Ah, I see! In that case, I'll have to work up the courage to ask for it. Unfortunately, my shyness gets in the way. T-T
Thank you, dear. ^^
Honestly might not be that bad. Most things you could just use the inbuilt depth value as z... Which spritebatch technically does already. Mainly you'd have to set manual values for "flat" layers like back, buildings, and alwaysfront, and find a way to get spritebatch to actually write to the depth buffer
Though that doesn't account for translucency, the bane of every graphics programmer
I can assure you if it's within our rules then people would always love to see someone newer showcasing their own work 
I'm very excited for it! It looks really promising
Oh, I think I just understood the skew thing some of you suggested. Right now the shadows are straight on at the screen. but we are looking at the ground with some angle, so they should be skewed with that angle like they are projected on the ground? Is that right? Not sure how I missed that originally, that makes a lot of sense
The way "depth" is done now though only uses the y-coordinate though, no? That wouldn't work for cliffs or valleys going left to right. Also, you'd have to worry about every mod doing their own draw calls, too
That's what I was personally thinking, yeah! Not putting words in Wren's mouth though ofc
My face.
What will eye color change do with this?
not necessarily; it varies by call of course but more often the tile X is also used as a secondary sort value
Not always. It does that for most ground based objects since they're at ground level, but anything not at ground level (fruit tree fruits, temp sprites, etc) use offsets
@stray trellis I'm afraid I'm not sure what you mean with walkabouts but this image would be too HD to just put somewhere in the game on its own, you'd need dependencies if you're intending to use it as a portrait
You have to honestly, otherwise you lose the illusion of depth completely
What site are you talking about?
I'm glad to read that. It definitely makes me feel more at ease, and I completely understand the situation. Thank you for all your help, and I'm sorry for the trouble. ^^💜
Fair, though that still wouldn't help without hardcoding which tilesheet tiles are cliffs and which are not to know when you've gone up and down when traveling left to right
I was gonna paste it over these faces. Just the farmer, not portraits. I dumped the game with the xnb unpacker
I was mostly thinking about cliffs not trees and such
Also the farmer bases are so creepy
Yeah the map layers would be the trickiest thing
Quite possibly you would simply need to redo the whole layer system and all the maps with it
You will not be able to place that picture over the farmers face, I'm not sure if you can even do that with Spacecore's HD stuff. You might want to look into the Farmer Portraits mod, though I'm not sure that allows for HD stuff either
You'd have to shrink it down to fit and you'd lose... basically all of the detail, given that you'd be going down to like, 8 pixels
And where do the pixels go when there's not space for them?
Even at 1:1 scaling the farmer's face is like 32 pixels max
I want it to be pixelated like the game
your image is seemingly about 4000x4000 pixels, and you'd be shrinking it down to about 8x8 pixels. you're going to lose virtually all the detail
But if you did still want to try, you'd want to use Content Patcher to edit the farmer's spritesheet. Or alternatively, use Fashion Sense to make an HD accessory or mask or something, which is probably possible, but I am not familiar with FS as much
Sub pixel art my beloved
you'd be better off just redrawing a rough facsimile
Oooooh, I see what you're all saying, I didn't think about that. Thanks!
The 8x8 thinbg I mean
actually yeah FS HD accessories is a good call, those can do up to 4x more detail, so around 32x32 pixels for a headpiece of the same 8x8 size
it's still a great enough downsize that you'd be better off redrawing a pizza in up-down-left-right directions though hahah
HD then upscale would be pretty funky lool
I still want to try the upscale mod one day
When I said not me earlier I was actually thinking of nominating Blueberry but didn't think bluebs was here at the time. But since they are....
cough, cough
well you can't really HD then upscale because both of them simply draw your image at 1x scale, rather than the default 4x scale for player sprites.
I probably will, lol.
It doesn't have to be perfect, but the 32x32 would be better.
Is the HD in the files on the Fashion Sense page?
I wrote manifest and content files but the mod doesnt seem to work. Could I get someone to look at it and help please?
Run blueberry! Run while you still can!
I see
!json You can upload your json and share the link here to ask someone to take a look
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.
thanks lol
I just thought of something
Keep it up!
FromFile can be the vanilla asset as well right?
No
Oh
Not unless you include a copy of the asset in your mod folder
there's a technical wiki on creating content packs here, linked from the nexus page:
https://github.com/Floogen/FashionSense/wiki
there's also an index of all FS mods from nexusmods here, which includes some HD packs you could use as reference:
https://floogen.github.io/StardewValley/fashion-sense
Wait yeah I see why
Thanks everyone!
on the front page of the index there you can already see an 'iron man helmet' mod as an example for a 1x scale (non-HD, vanilla-style) headpiece, and 'vv's hd cute face pack' as an example for a 4x scale (HD, non-vanilla-style) headpiece
Whole smapi cp unpacking thing
(I actually wonder if it'd be feasible for Content Patcher to let you do that for vanilla assets by just... supplying the actual xnb file... like aside from filepath climbing stopping you, there's no reason you couldnt just point the fromfile to the games own Content folder, I suppose?)
now why on earth would i ever want to redo the entire layering system for the game and all mods which is so pervasive and with such arbitrary parameters and with an unimaginable number of modded uses
(You wouldn't get any modded edits from it ofc but still)
my mind is boggled enough already 🙂↕️
for fun 🥰
i'll leave it to someone who's already patched seemingly every draw call in the game just to make things have rainbow colours
who is that
does anyone know if there are test maps that might have every building and crop on the farm, or something like that? I imagine that would be helpful for something like retexturing alone.
you say that but now i'm not even sure who it was. but it was probably you
the only rainbows i made recently were Agromancy but I patched no draw calls for those rainbows you're thinking of if so
then it was atra 🙂↕️
i made those draw calls from scratch 😌
ill let atra know next time i see em that you nominate them for depth buffer
hi, i don't believe there is, 'specially given you can't have all crops on your farm in any given season because of season and island-only crop restrictions. there is a debug command that sets up a fairly-complete farm though:
https://stardewvalleywiki.com/Modding:Console_commands#Special_farm_setups
That's perfect, thank you!
it's not really meant as a 'zoo'/'gallery' for all types of buildings and animals though, it's missing a lot of things. it'd be neat to see something like that created, though
there's always https://upload.farm/ for downloading lategame/perfection farms
of course you can always put a test farm together yourself with the commands on that wiki page, clearfarm + build + animal will get you half the way, and CJB item spawner + cheats menu will cover you for seeds and crops
Could make a custom farm map that has the Greenhouse property too to get them all planted, and just reuse that farm map/save as needed
(at least I assume theres nothing stopping that property from working on the farm itself)
that's an interesting thought
i've not heard of any farms that do that
I shrunk it to the head and touched up the highlights
now im gonna have this nagging idea of a Debug Farm that has everything you could possibly wanna see in it. every building, every animal, every crop and each growth phase... hm. on the backburner for now
wouldnt be difficult to lock things like growth phases or animal spritesheets and such in stasis with a lil C#
i suppose there's also no reason for the map not to simply be a 100x100 flat colour fullbright room
theres plenty of reason
the most major one being that 100x100 is far too small
what if i have 50 building mods
eh just make location instances for a paginated gallery of buildings
we're reinventing pif
pif the debug expansion ✨ i call it PDF
its got my vote of approval
royalties 🫴
have you been helped with this yet? you can send your manifest via https://smapi.io/json and we can point out errors
Yes i figured it out with the validator thanks
actually uhh
It seems like it's mostly working but in the social page the sprite is the default one
The social page (and calendar) doesn't use appearances
If you want your character's social page to change every season, you'd need to patch their default appearance asset every season.
how do I patch the default appearance asset?
Do EditImage on it.
thank you I got it working
How good is Vortex for Stardew these days?
its ok, i guess..??
i recommend stardrop instead
Ok, thanks everyone!
Question - im toying with the idea of a sprinkler mod that covers a 9x9 space (why idk im just messing around with modding. probably not anything i would post) what do you feel would be a fair cost to craft it? right now I'm on 5 iridium bars, 2 radioactive bars, and a prismatic shard but idk if that is 'balanced' with the vanilla game. or would even be worth it to people in a modded game
Don't think this is good idea :)Who would put radioactive bars in sprinklers 😄
radioactive bar gets used for like 1 item in vanilla so I think this is a decent cost
the other ingredients are fair in a late game scenario
Okay. what about the amounts? the other sprinkler recipes are 1 bar of each. im pretty set on 5 iridium bars but maybe 1 radioactive bar instead of 2?
by the time you're getting radioactive ore, iridium is an after thought so i figure 5 is fair lol
an 9x9 sprinkler is more than 3x the watering size of a 5x5 sprinkler; I'd say 2 is fair
Also keep in mind that it would be 11x11 with a pressure nozzle
one sprinkler for the whole farm XD
it's beautiful
Almost 5 times a regular iridium sprinkler
Actually not counting the tile that the sprinkler takes it would be exactly 5 times
Who's permission would I need to get to make mod addons? The OG code writer and the person that made whatever expansion (Always raining/sunberry/rsv)
omg
I’m pretty sure you can make content packs for the happy birthday mod itself.
Insofar as ARV is concerned, it’s best to contact Hime
@gaunt orbit the skew looks much much better, thank you! shadows look to be on the ground now
insofar?
Uh, yeah?
Is that their name on nexus?
(to the extent that)
No, it’s HimeTarts
The author’s profile can be found on the mod page itself
When you set a Special Order to not be repeatable, does that mean that you won't see it again if you fail it?
Or does that mean "not repeatable if you've done it."
latter
Thankee!
If you fail this mission, it will explode.
I hope there is a mod that notifies You when someone get inside your cabin .
people over in #modded-stardew might know more, this channel is for making mods
Thankyou
@elfin kindle
Hi, you're more than welcome to use Ayeisha's "special delivery" template to send players' multiple items\gifts from Mirren if Ayeisha exists. As I can easily see such a character sending multiple unwanted deliveries to someone.
"event.id/preconditions": "music/-200 -200/farmer 2 2 2 Ayeisha 3 3 0/pause 1500/speak Ayeisha \"Good Morning @. I have a special delivery for you today.\"/pause 500/showFrame Ayeisha 19/pause 800/playSound pickUpItem/speak Ayeisha \"Here you go. [itemid]$h\"/showFrame Ayeisha 8/pause 400/message \"A note is attached:\"/message \"'some kind of message'\"/end",
star wars :) also good timezone
I think I'm gonna try and figure out the fruit tree fertilizer logic before work.
Could someone tell me if this code looks good, or if I need to change any of it?
But first I'm gonna do one more fire frame
Also how would you do this in the quest code?
these are 3 of my quests
{
"Action": "EditData",
"Target": "Data/Quests",
"Entries": {
"TheLimeyDragon.Ayeisha_Quest1": "LostItem/{{i18n:quest.AyeishaLostRing01}}/{{i18n:quest.AyeishaLostRing02}}/{{i18n:quest.AyeishaLostRing03}}/Ayeisha (O)TheLimeyDragon.Ayeisha_Ring Forest 42 10/-1/300/-1/false/{{i18n:quest.AyeishaLostRing04}}",
"TheLimeyDragon.Ayeisha_Quest3": "ItemDelivery/{{i18n:quest.Package.Kiarra01}}/{{i18n:quest.Package.Description}}/{{i18n:quest.Package.Kiarra02}}/Kiarra (O)TheLimeyDragon.Ayeisha_Package/TheLimeyDragon.Ayeisha_Quest4/75/-1/true/{{i18n:quest.Package.Kiarra03}}",
"TheLimeyDragon.Ayeisha_Quest4": "ItemDelivery/{{i18n:quest.Package.Alissa01}}/{{i18n:quest.Package.Description}}/{{i18n:quest.Package.Alissa02}}/Alissa (O)TheLimeyDragon.Ayeisha_Package/TheLimeyDragon.Ayeisha_Quest5/120/-1/true/{{i18n:quest.Package.Alissa03}}",
}
},
I'd also avoid using apostrophes in ids
thanks
you can always open the game's data to understand how it should be formated
got it
I may have lied about only doing one more frame
Oh God, I just realized how many maps I'm gonna need to make for if/when I make this mod a reality.
For context, it will be a mod that essentially adds permanent versions of calico statues to the skull caverns ☠️
Ughh I forgot my mod idea I came up yesterday
I gotta start write things down
I hate my brain
Relatable
So according to the Unlockable Bundles docs, If I wanted to add new (presumably animated) packages for bundles I'd need to crate a custom JunimoNoteTexture. Would that basically just be taking the existing JunimoNote texture and adding onto it then replacing the vanilla one with that, or is there a simpler solution?
IIRC unlockable bundles lets you define custom gui textures, which is probably what you would want here, though you could probably also just use an editimage patch to glue some extra sprites onto the existing texture
I haven't used UB yet so that's only based on what I remember from talking to the author
There is "ShopTexture" but I don't know if that's gonna have the animations of the bundle opening once you complete it
The author is here but I forgot who makes UB
DeLiXxN
Oh right it's delixx
@spice inlet tntdove is looking for help with unlockable bundles, would you mind dropping in?
I'll get back to you in 10min ^^
I'm just looking for exactly how I'd go about adding new colors of the vanilla bundles to use with the PagePackageIndex field, or if I should just settle for using custom ShopTextures
Hi, so just for clarification you're trying to change the bundle texture inside a book, like this one, right?
Yup!
There's currently two ways to do that, one being the vanilla way with the little packages
the packages will draw from the JunimoNoteTexture of the bundle
so if you wanted to change/add the bundle packages you'd ideally add a custom JunimoNoteTexture
but you can also use ShopTexture, ShopAnimation and ShopCompletedAnimation to create a custom sprite
then it would be completely independent of the JunimoNoteTexture
Ahh, Alrighty! And I've just noticed the "JunimoNoteTexture" field in the docs so I don't need to actually replace the vanilla texture
I'm realizing, I could also use a CustomJunimoNoteTexture to make things more compatible with the bigger backpack mod?
sure
haven't really added compatibility for bigger backpack to UB since it would require providing alternative JunimoNoteTextures for each theme, which is just messy to do ;;
Yea that's understandable lol
currently I'd recommend "The Return Of Custom Backpack Framework"
it does the same thing and arguably even better
it already adds a scroll bar to the menu
doesn't touch the menu texture at all
If you just want a simple way for custom packages I could add a PagePackageTexture field
could just ignore the JunimoNoteTexture then
Oh, huh. kinda sounds like that just fixes the issue anyway instead of me having to change the menu for compatibility. Granted, only if people are using this mod and not the other Bigger Backpack mod
That could be pretty handy!
Bigger Backpack was what I was using before I started updating this mod. Since this mod is somewhat for personal use, I figured I'd just not use the bigger backpack anymore, mostly to avoid it looking really strange
Tbh part of me wonders if there would be a way to automatically recolor the vanilla package animation with any given hexcode, adjusting colors and shading automatically, but I actually can't imagine how hard that would be to code 
you could do that with a custom ShopTexture
keep it sort of greyscale and use ShopColor to draw the desired color
Oh.. huh! I'll have to look into that then!
the little junimos in the demo are drawn that way:
Ohhh okay!
I'll probably still need custom PagePackages for the more involved color schemes like these 3 I put together, but that sounds very useful otherwise!
Saves me from having to manually recolor each package I might want a different color for 
But yeah if you want to add a field for a custom PagePackageIndex, I'm sure I wouldn't be the only person who'd find that useful!^^
Does anyone know which font is used for the normal text in the game - looking for the cyrillic one as my mod is now using Cyrillic Pixel-7 Regular - but would love to make it similar as the OG one
If you'll be doing this then I think I'll hold off on setting all the PagePackageIndex numbers and PageLeafRustleColors for now and work on something else in my mod for the time being
LooseSprites/font_bold, LooseSprites/font_colored the rest are in Fonts/
I've quickly added two new properties PagePackageTexture and PagePackageTexturePosition to UB
seemed to work fine when I tested it just now
wanted to send you the prerelease build on discord, but can't due to your privacy settings
Oh, oops lemme change that real quick then
Okay I think you should be good to do so now?
oooh so pretty...
Can I give myself a conversation topic with a debug command? not seeing anything on the wiki for it...
hi atra, what are you up to ^^?
I'm encountering this but I can't find a console command on the wiki to mark an action as unapplied 😭
cliff detection progress
it's a trigger action so you use the "run trigger action" command
Ohhh okay
Um. Nothing useful
Just spamming #programmers-off-topic with opus gifs
Alright my mysteru has evolved
https://smapi.io/log/1bd08a98482e436580b6698265530f7d Person with this log has an error show up where my mod tries to add gift tastes to Zayne, basically saying he doesn't exist. My unlock conditions for his gifts are identical to Ridgeside's
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 235 C# mods and 516 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I had them patch export Gift Tastes, and sure enough he's not on there
But here's the evolution:
PLAYER_HAS_SEEN_EVENT host 75160375 | true
this is the unlock condition for Zayne being giftable
and it is true in their game, but they have not seen the event
and it's only triggering MY gift taste patch, not Ridgeside's somehow
what in the actual hell could do this
Mysteleon
have they been using debug commands to force events or using mods to "forget" them?
Also they had no idea who Zayne was
So they have not seen the even where they meet him
wait hang on I may have something (or I may not)
Show your patch and RSV's
omg it's the wrong event number and I couldn't tell because it's like one number off
@ivory plume Which methods should one look to patch if one were to add support for junimo chests added via Expanded Chests (https://www.nexusmods.com/stardewvalley/mods/7431) that have a unique inventory?
Basically, I'm trying to have each junimo chest that has a unique inventory ID be its own machine network
why ping pathos specifically for that question?
Is there any kind of game state query I can call on that sees if the player has ever turned children into doves?
there is not
PLAYER_STAT Current ChildrenTurnedToDoves 1 should work?
Are you asking about adding multi-chest-network support to Automate?
I didn't realize that was a stat! I was checking the CTs....
I need to spend more time looking at the wiki if I missed that lmao. Thanks
keep in mind if whether a farmhand has doved anyone matters to you that stats are weird and not as reliable in multiplayer, when it comes to checking other players
but if you only care about the current player doing it then no issues
is it possible to add spouse dialogue for when the players health is below a certain number?
You'd need to patch several methods in the MachineManager to inject a new dictionary of custom machine groups (similar to the existing JunimoMachineGroup property). That said, it'd probably be much easier to submit a PR to support chest networks directly instead of trying to Harmony-patch it in.
Whelp, I guess I know what I've gotta do now
BTW, does anyone know where the skull cavern tmx files are? I couldn't find them in the mineshaft directory
The skull cavern uses the same maps as the regular mine
Does anyone know if Tikamin557 is here? I want to ask them something about their coffee machine mod.
they seem to be on here, but not posted anything in since march 2025
All 60 of them?
I don't know for sure if it uses all 60 of them, but if it uses a map file, it will be one of the same 60 the normal mines uses, yes
The game just swaps out the tilesheets as necessary.
UGHHHHHHHHHHHHHHHHH WHY DO I HATE MYSELF
Also, time to retry adding a transpiler
Is this not how you try patching a private method?
should be
can someone help me with my project? idk i need a lot of help since idk nothing about making mod/ detailing inside of a barn
Okay. Is there anything immediately and blatantly wrong with the following?
If it's hard to read - try to install TTS - so you can listen how to make mods
well I don't have the IL on me so I can't tell what you're up to
I think that instruction won't work though
You are 100% correct in that it isn't going to work, that's what I'm trying to figure out 😅
if you need to jump to another instruction you should create a label on the instruction you want to jump to and then use that label
that's for creating a new label
I'm trying to leave a loop. The function has the following IL lines:
IL_00ab: ldloc.s 5
IL_00ad: callvirt instance string StardewValley.Item::get_QualifiedItemId()
IL_00b2: ldstr "(O)789"
IL_00b7: call bool [System.Runtime]System.String::op_Equality(string, string)
IL_00bc: brfalse.s IL_00c0
IL_00be: leave.s IL_012c
Which I'm 99% certain is the equivalent of
if (tackle.QualifiedItemId == "(O)789")
{
break;
}
you need to go to the instruction at IL_012c (via code matching as usual), grab the create a label from there, and pass that label as the operand into your jump instruction
Okay. Ugghhh it's been a day 😅
understanding the way of the IL is a slow and steady process 🌊
minor correction: create a new label at that location
No, that's not the issue. It's a combination of work, being stuck in the purgatory that is automated answering machines for prescription refills, and the fact that I'll need to update Automate if I want my more junimo chests mod to work properly 😅
tbh if compatibility is not important you can also yeet that entire block instead of skipping it
For the past... IDK, like 2 hours, I've been stuck on the phone while trying mod
-# Also, that was my original plan. All that line is doing is checking if the lucky shorts are equipped. I figured exiting would be a better approach though 😜
Banned
does anyone know how to learn coding lolol
i wanna make a mod but all i can make is maps so i should probably learn to code right-
(i dont know how to learn coding) ill take like suggestions </3
what do you want to make is probably my first question
because a lot can be achieved with just json, which isn't coding
!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.
if you end up needing C#, people here recommend the yellow book, and my mom, a programmer, recommends w3schools
Content patcher "code" is very versatile
yk stardew valley expanded
like theres sections where you can visit that arent in the actual game
and they have their own little side quests
that kinda thing
also if i wanna learn to mod i think i needa learn to code icl
someone said that to me once so idk how to code-
is it possible to do a food object that gives a ring-like light as a buff for a time
with cp or some framework
or theres no way but c# way
I made an NPC, building, crop, items, etc. without real code, just content patcher stuff
and quest
Maybe spacecore
You can do quite a lot with content patcher
your description is kind of vague, but with just content patcher
- you can make new locations
- you can add quests and special orders
i mean i thought it was really clear not vague-
well, the vague is subjective on my part
im not really sure whats meant by "sections where you can visit that arent in the actual game"
Yeah that doesn't need C#
i want to make locations you can visit
but i made a guess that you meant new locations and formulated response based on that
so all i gotta do is learn to code a wee little bit then?
Last edited by AtlasVBot on 2025-09-13 18:56:11
you basically just need to learn how to write JSON, which is kind of like writing stuff into a spreadsheet
Nothing harder than JSON/Content Patcher stuff, it's fairly readable
Wait how did I not see that while searching when I made my map what the heck
u unless i did
for new location the other important thing is map making, which people do by tiled
it lets u paint with tiles basically
get tilesheetinator as an add on for Tiled too it'll save your skin lol
I did it without and... it wasn't ideal
much easier when I downloaded it 🙂↕️
back in my days we edited our maps in Content/Maps and copied it to the mod folder both ways up the hill etc
I did mine in my assets maps and linked the sheets to my unpacked files folder (without tilesheetinator) outside and also apparently had a duplicate tilesheet that wasnt a png and I had to go into the code to fix the references for it
the first few times using tiled sure was a time
Oh and never save when Tiled has an error due to not being able to find image paths
Even if you just opened a fully working map, if you save and don't fix the errors Tiled will get angry with you and it won't work even if you didn't make any changes except save the file 
Button, iro, congratulations on finishing apple school!
Quick - what's your favorite apple?
Mine are pink ladies
And geeks for geeks
And geeks for geeks!
more event making time
updating all my mod screenshots because I changed A Mailbox
@ivory plume question regarding the reference assemblies, how/when do those get updated?
I use mod manifest builder and i get these versions atm:
"MinimumApiVersion": "4.4",
"MinimumGameVersion": "1.6.15",
hmmm, is there a way i can make a certain item in a shop available after the player sees an event?
yea use a Condition
what are conditions
well i mean theyre self explanatory but like
is there an example i could use
"Condition": "PLAYER_HAS_SEEN_EVENT TargetPlayer EventId",
with the target player being explained here https://stardewvalleywiki.com/Modding:Game_state_queries#Target_player
you prob want Current
easier than i thought
thanks!
i should probably also consider adding mail messages
most commonly Current is used although Chu or someone else can explain why
we were talking about the binning skill
and the update's tested and working, woo
Current basically just means "you, the person playing the game right now. i am looking at You"
not necessarily a farmhand, not necessarily the host, not some context-based player. You.
(this goes for split screen too. its whichever split screen belongs to the person who needs the condition checked)
yea the reason why i think Current make sense here is bc it's a shop sell item that won't be net sync'd
Thank you for the explanation 
is fine for ppl to have different available stock depending on the condition
updated thumbnail and header too. Woo
Not sure what the mod manifest builder is doing with it, but there's no API changes in SMAPI 4.5.x; so the reference assemblies would be the same. (Which also means "MinimumApiVersion": "4.4.0" is probably correct.)
IDK, what I'm doing wrong. I currently have the following:
// ----- Register Function ------
harmony.Patch(
original: AccessTools.Method(typeof(FishingRod),
"doDoneFishing"),
transpiler: new HarmonyMethod(typeof(BookPowers), nameof(doDoneFishing_transpiler))
);
// ------------------------------
private static IEnumerable<CodeInstruction> doDoneFishing_transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
if (!ModEntry.Config.EnableFishing)
{
ModEntry.StaticMonitor.Log(...);
return instructions;
}
CodeMatcher matcher = new(instructions, generator);
MethodInfo getQualifiedItemIdInfo = AccessTools.PropertyGetter(typeof(Item), nameof(Item.QualifiedItemId));
MethodInfo getIsLocalPlayerInfo = AccessTools.PropertyGetter(typeof(Farmer), nameof(Farmer.IsLocalPlayer));
matcher.MatchStartForward(
new CodeMatch(OpCodes.Ldloc_0),
new CodeMatch(OpCodes.Brfalse_S),
new CodeMatch(OpCodes.Ldloc_0),
new CodeMatch(OpCodes.Callvirt, getIsLocalPlayerInfo),
new CodeMatch(OpCodes.Brfalse_S)
)
.ThrowIfNotMatch(...)
.CreateLabelWithOffsets(1, out var labelLocation)
.MatchStartBackwards(
new CodeMatch(OpCodes.Ldloc_S),
new CodeMatch(OpCodes.Callvirt, getQualifiedItemIdInfo),
new CodeMatch(OpCodes.Ldstr, "(O)789")
)
.ThrowIfNotMatch(...)
.Insert(new CodeInstruction(OpCodes.Brtrue_S, labelLocation)
);
return matcher.InstructionEnumeration();
}
But am getting the following error:
[Money Sinks - Books for Dark Offerings] Mod crashed on entry and might not work correctly. Technical details:
InvalidProgramException: Common Language Runtime detected an invalid program. at System.Runtime.CompilerServices.RuntimeHelpers.PrepareMethod(RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation)
The ellipses in the Log and ThrowIfNotMatch statements are just there bc of Discord's character limit



